Commit Graph

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
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
66c00e2473 Moved to gradle build system. 2015-02-05 00:41:26 -06:00
3cb9bfc228 Updated .gitignore to ignore new build file name. 2015-01-13 11:57:16 -06:00
950f4a0b70 Added DEV build target and configuration. 2015-01-13 11:55:32 -06:00
12bae10384 New entry field auto-focusses. Bugfix. 2015-01-13 11:55:10 -06:00
7ae584bec9 Cleaning up whitespace. 2014-12-22 09:58:24 -06:00
0da15ef102 Stubs for WebSocket push notifications. 2014-12-22 09:57:31 -06:00
bb713abeed Refresh entry on save. Fixed Ctrl-Enter detection. 2014-12-22 09:55:56 -06:00
3f21f62889 Updated yaws_api.hrl to the version from Yaws 1.98 2014-07-28 08:30:27 -05:00
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
54eb4fdafa Fixed a bug in the makefile: missing the z flag to tar. 2014-03-30 03:36:06 +00:00
59c9544ab9 Updated test database to match latest schema. 2014-03-30 03:33:46 +00:00
846f505f6b Bugfix to periodic refresh behavior. 2013-11-13 10:32:42 -06:00
de405f01f1 Prevent the current mark from rerendering when the user is editing it. 2013-11-04 03:55:41 +00:00
4a7486305c Fixed bug in options definition. 2013-10-26 10:09:01 -05:00
26c5435b5c Makefile now creates build.tar.gz 2013-10-25 16:00:43 +00:00
839646b154 Fixed Session timeouts. 2013-10-25 15:47:20 +00:00
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
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
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
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
0278179452 Extended the session timeout to 6 hours. 2013-10-15 14:26:38 +00:00
8cc257c24e Fixed bugs in initial 2.0 release. 2.1 2013-10-11 16:37:11 -05:00
216b3c5303 Updated to library 2.1. Fixed auto-generated start script. 1.1 2013-10-11 16:34:36 -05:00
774778ee55 Added UUID binary. 2013-10-11 20:45:45 +00:00
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
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
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
9b357359b6 Rewrote resource URLs to use the page protocol. 2013-09-22 21:48:56 +00:00
15750f65d4 Upgrading timestamper-lib version. 2013-09-22 15:23:15 -05:00
4c8d8a9f2d Version 1.5: Fixed an issue with JDBLabsWebTimeline persist. 1.5 2013-09-22 15:19:44 -05:00
621e00deaa Using lists instead of atoms for things being turned into JSON. 2013-09-21 15:52:29 -05:00
100ca8fd74 Added SSL, CORS support for the API. 2013-09-21 17:19:13 +00:00
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
4992d7cac9 Version 1.4: SyncTarget syncOnExit property is meaningful now. 2013-09-13 09:24:44 -05:00
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
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
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
38dc560686 Updated yaws_api.hrl, prod configuration (to live alongside VBS). 2013-09-13 01:56:45 +00:00
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
284a4159d1 Added command to re-read the timeline source. 0.3 2013-08-09 11:45:56 -05:00
6e6d799dee Added TimelineProperties.reloadTimeline() method. 1.2 2013-08-09 11:37:55 -05:00
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
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
769245b690 Working on UI using ANSI escape sequences. 2013-08-08 14:21:00 -05:00
f9e700f27b Updated common-build to 1.10 2013-07-30 11:30:43 -05:00