139 Commits

Author SHA1 Message Date
338eab1c96 Merge Web application. 2024-08-04 20:45:13 -05:00
fbc9052e5a Move CLI application code into /cli. 2024-08-04 20:44:46 -05:00
0a49df1828 Merge CLI project. 2024-08-04 20:42:37 -05:00
e32c6358e9 Move library code into lib folder in preparation for consolidating the lib, CLI, and web projects. 2024-08-04 20:42:26 -05:00
Jonathan Bernard
168d7cd03f Moved to gradle. FIXME: This is broken.
The JDB Util dependency has been upgraded to 3.4 from 2.0. This includes
backwords-incompatible changes in the LightOptionParser class used by this
project. I need to re-write that code to use the newer version of
LightOptionParser.
2015-02-05 00:54:06 -06:00
Jonathan Bernard
66c00e2473 Moved to gradle build system. 2015-02-05 00:41:26 -06:00
Jonathan Bernard
3cb9bfc228 Updated .gitignore to ignore new build file name. 2015-01-13 11:57:16 -06:00
Jonathan Bernard
950f4a0b70 Added DEV build target and configuration. 2015-01-13 11:55:32 -06:00
Jonathan Bernard
12bae10384 New entry field auto-focusses. Bugfix. 2015-01-13 11:55:10 -06:00
Jonathan Bernard
7ae584bec9 Cleaning up whitespace. 2014-12-22 09:58:24 -06:00
Jonathan Bernard
0da15ef102 Stubs for WebSocket push notifications. 2014-12-22 09:57:31 -06:00
Jonathan Bernard
bb713abeed Refresh entry on save. Fixed Ctrl-Enter detection. 2014-12-22 09:55:56 -06:00
Jonathan Bernard
3f21f62889 Updated yaws_api.hrl to the version from Yaws 1.98 2014-07-28 08:30:27 -05:00
Jonathan Bernard
dc70b00403 Bugfix, started working on mobile UI.
* Strted making the page responsive (size-based media queries, mobile meta
  tags, and reworked the UI for small sizes).
* Fixed bugs in the periodicRefresh function.
* Changed the yaw.prod.conf file to match the actual PROD coniguration.
2014-03-30 03:37:59 +00:00
Jonathan Bernard
54eb4fdafa Fixed a bug in the makefile: missing the z flag to tar. 2014-03-30 03:36:06 +00:00
Jonathan Bernard
59c9544ab9 Updated test database to match latest schema. 2014-03-30 03:33:46 +00:00
Jonathan Bernard
846f505f6b Bugfix to periodic refresh behavior. 2013-11-13 10:32:42 -06:00
Jonathan Bernard
de405f01f1 Prevent the current mark from rerendering when the user is editing it. 2013-11-04 03:55:41 +00:00
Jonathan Bernard
4a7486305c Fixed bug in options definition. 2013-10-26 10:09:01 -05:00
Jonathan Bernard
26c5435b5c Makefile now creates build.tar.gz 2013-10-25 16:00:43 +00:00
Jonathan Bernard
839646b154 Fixed Session timeouts. 2013-10-25 15:47:20 +00:00
Jonathan Bernard
e8bebb49fb UI and build process tweaks.
* Reworked the buid process to compile SCSS files and move WWW assets
  directories individually.
* Added pulsing animation for the current marker.
* Bugfix for View objects.
2013-10-24 20:42:53 +00:00
Jonathan Bernard
c42a3805c2 Fixed UI surrounding day separators.
* Reworked separator display. Now it is handled by the
  `EntryListView.renderOne` function instead of `EntryListView.render`. This
  way the proper separator is inserted even if we are only adding one new entry
  (like when creating a new entry) and not only when we refresh the list.
* Added a periodic refresh function that is triggered every minute. It
  refreshes the current entry so the duration is current, and refreshes te main
  list when a new day begins.
2013-10-24 14:55:08 +00:00
Jonathan Bernard
f4eeb91d1a Fixed deploy target, new entry creation.
* Modified make target `deploy` to require the `build` target first.
* When creating a new timestamp entry we no longer refresh the collection from
  the server. Now we use the `success` callback to set the server-supplied
  values on the model.
2013-10-22 16:46:34 +00:00
Jonathan Bernard
a3c55e918e Bugfixes: session management, new entry creation.
* Changed the cookie Path value to allow the cookie to be reused for the
  domain, not just ths `/ts_api` path. This allows the user to refresh the page
  and reuse their existing session as long as it is not stale.
* Fixed a bug in the `ts_json:ejson_to_record_strict/2` function. It was
  expecting a record out of `ts_json:ejson_to_record/2` but that function
  returns a tuple with the record and extended data. Because of the way
  `ejson_to_record_strict` uses case statements to check for specific values it
  was still passing the parsed record and data through, but all the checks were
  being bypassed.
* Fixed bugs in the `index.yaws` bootstrap code for the case where the user
  already has a valid session.
* Added `urlRoot` functions to the Backbone model definitions.
* Changed the behavior of the new entry creation method. We were trying to
  fetch just updated attributes from the server for the model we created, but
  we were pulling all the entries due to the URL backbone was using. This led
  to the new client-side model having all the previous entry models as
  attributes. Ideally we would fix the fetch so that only the one model is
  requested from the server, but we run into a catch-22 because the lookup id
  is not know by the client as it is generated on the server-side. For now I
  have changed this behavior so that we still pull all entries, but we pull
  them into the collection. The collection is then smart enough to update the
  entries that have changed (namely the new one). The server returns the newly
  created entry attributes in response to the POST request that the client
  makes initially, so when I have more time to work on this I plan to do away
  with the fetch after create, and just pull in the data from the server's
  response.
* Changed formatting.
2013-10-22 15:32:22 +00:00
Jonathan Bernard
0278179452 Extended the session timeout to 6 hours. 2013-10-15 14:26:38 +00:00
Jonathan Bernard
8cc257c24e Fixed bugs in initial 2.0 release. 2.1 2013-10-11 16:37:11 -05:00
Jonathan Bernard
216b3c5303 Updated to library 2.1. Fixed auto-generated start script. 1.1 2013-10-11 16:34:36 -05:00
Jonathan Bernard
774778ee55 Added UUID binary. 2013-10-11 20:45:45 +00:00
Jonathan Bernard
98032e2b89 Added UUIDs to timestamps, refactored the build process
* Added UUIDs to `ts_entry` records. Updated `ts_json:construct_record` to
  respond to `uuid` member properties if present. UUIDs are not required by the
  strict parsing functions in `ts_json` because the client will make a request
  with no UUID if it is a purely new timestamp. IN fact, this is the normal
  case. The UUID is only present when another tool is syncing its copy of this
  timeline wand adding entries that it has created and assigned UUIDs to.
* `ts_entry:new` will create a UUID for a new entry if it does not already have
  one.
* Restructured the build process to put all build artifacts into a dedicated
  `build` subdirectory, instead of mising them in an amongst the source code.
* Added the `uuid` module to the project. It can be found at

      https://gitorious.org/avtobiff/erlang-uuid

* Rewrote asset URLs to use relative paths instead of absolute paths. Relative
  paths are correct in this case, becuase assets always live alongside the HTML
  pages. This change was needed to accomodate the new organization of the JDB
  Labs dev environment, where all projects live under subdirectories of the
  same virtual server instead of subdomains.
* Tweaked the timestamp entry fields in the web UI to save when the field is
  blurred, not just when <Enter> or <Ctrl>-<Enter> is pressed (though those
  still work).
2013-10-11 20:06:31 +00:00
Jonathan Bernard
d473d74112 Updated lib version 2.0 and promoted CLI to 1.0
`timestamper-lib-java` introduces a breaking change in the way timeline files
are written, so this is considered a new major version change.
1.0
2013-10-11 20:04:12 +00:00
Jonathan Bernard
d720c6c645 Version 2.0: Added UUID to markers, truncated timestamps to seconds field.
* Added a UUID field to TimelineMarker.
* Updated StreamBasedTimelineSource to read and write UUIDs. The current format
  is compatible with the 1.x format, but support for the 1.x format is planned
  to be deprecated for 3.x.

  The UUID is added on the same line as the timestamp, with a `,` separating
  the timestamp and the UUID value.
* Updated JDBLabsWebTimelineSource to use UUIDs to reconcile the different
  timestamp entries (more reliable that using the timestamp value).
2.0
2013-10-11 19:59:44 +00:00
Jonathan Bernard
9b357359b6 Rewrote resource URLs to use the page protocol. 2013-09-22 21:48:56 +00:00
Jonathan Bernard
15750f65d4 Upgrading timestamper-lib version. 2013-09-22 15:23:15 -05:00
Jonathan Bernard
4c8d8a9f2d Version 1.5: Fixed an issue with JDBLabsWebTimeline persist. 1.5 2013-09-22 15:19:44 -05:00
Jonathan Bernard
621e00deaa Using lists instead of atoms for things being turned into JSON. 2013-09-21 15:52:29 -05:00
Jonathan Bernard
100ca8fd74 Added SSL, CORS support for the API. 2013-09-21 17:19:13 +00:00
Jonathan Bernard
1e05258381 Bugfixes.
* ts_api:list_timelines/2 was looking for keys as atoms instead of lists (strings).
* Exported the ts_json:decode_datetime/1 function (needed by ts_api module).
* Fixed a crash case when trying to check the credentials of a non-existent user.
2013-09-15 00:33:02 +00:00
Jonathan Bernard
4992d7cac9 Version 1.4: SyncTarget syncOnExit property is meaningful now. 2013-09-13 09:24:44 -05:00
Jonathan Bernard
e296e87003 Version 1.6: Added help section, bugfix, updated build process.
* Build now includes config and bin resources.
* Build new builds an executable jar.
* Added help section.
* Bugfix for working directory.
0.6
2013-09-13 09:16:08 -05:00
Jonathan Bernard
269a9b9125 Version 0.5: Added support for syncing timelines.
* Added missing libraries required by timeline-lib to support syncable
  timelines.
* Added code to shutdown sync threads upon exit.
0.5
2013-09-13 08:57:45 -05:00
Jonathan Bernard
68ce5bb272 Version 1.3: bugfix, add shutdown for SyncTarget threads.
* SyncTarget now persists the remote timeline after pushing to it.
* Added SyncTarget.shutdown() to allow callers to signal the sync timer thread
  to stop.
* Fixed a bug where a SyncTarget was added instanciated times.
1.3
2013-09-13 08:48:50 -05:00
Jonathan Bernard
38dc560686 Updated yaws_api.hrl, prod configuration (to live alongside VBS). 2013-09-13 01:56:45 +00:00
Jonathan Bernard
76bf676c2c Added edit and delete commands.
* Added `edit` which uses the program in $EDITOR to allow the user to edit the
  current timeline marker.
* Added `delete` to remove the current timeline marker from the timeline.
* Added support for using a named TTY device in order to use an interactive
  program ($EDITOR in this case) to take over interaction with the user. There
  is still a problem with this, in that a process by default only has access to
  its controlling TTY device. This mean, for example, that redirecting the
  subprocess input and output to the TTY will fail to work properly if the
  timestamper CLI process is not part of the same process group as the process
  owning the TTY the user is interacting with. This is the case when using
  nailgun: the java process running TimeStamperCLI is not part of the same
  process group as the user's client shell.

  I think TTY device permissions may be alterable, and we can work around this
  by changing the permissions for the current TTY in the launcher script that
  invokes the nailgun client. Needs more investigation.
* Added package build target to create a zip of the CLI standalone installation.
0.4
2013-08-10 01:40:02 -05:00
Jonathan Bernard
284a4159d1 Added command to re-read the timeline source. 0.3 2013-08-09 11:45:56 -05:00
Jonathan Bernard
6e6d799dee Added TimelineProperties.reloadTimeline() method. 1.2 2013-08-09 11:37:55 -05:00
Jonathan Bernard
e4a756baf5 Moved back to realtime update model.
* Using patched version of Jansi.
* Raw ANSI controls always sent to play well with Nailgun.
0.2
2013-08-08 23:14:18 -05:00
Jonathan Bernard
f78cd57ec7 Can now add marks. Display is single-threaded, refresh on command.
Also implemented save and quit (including cases for Ctrl-D, `exit`, and `quit`)
0.1
2013-08-08 20:09:15 -05:00
Jonathan Bernard
769245b690 Working on UI using ANSI escape sequences. 2013-08-08 14:21:00 -05:00
Jonathan Bernard
f9e700f27b Updated common-build to 1.10 2013-07-30 11:30:43 -05:00