{"action":"created","issue":{"url":"https://api.github.com/repos/nasa/openmctweb/issues/204","labels_url":"https://api.github.com/repos/nasa/openmctweb/issues/204/labels{/name}","comments_url":"https://api.github.com/repos/nasa/openmctweb/issues/204/comments","events_url":"https://api.github.com/repos/nasa/openmctweb/issues/204/events","html_url":"https://github.com/nasa/openmctweb/pull/204","id":112913756,"number":204,"title":"[Time Conductor] Support non-UTC domains","user":{"login":"VWoeltjen","id":1685764,"avatar_url":"https://avatars.githubusercontent.com/u/1685764?v=3","gravatar_id":"","url":"https://api.github.com/users/VWoeltjen","html_url":"https://github.com/VWoeltjen","followers_url":"https://api.github.com/users/VWoeltjen/followers","following_url":"https://api.github.com/users/VWoeltjen/following{/other_user}","gists_url":"https://api.github.com/users/VWoeltjen/gists{/gist_id}","starred_url":"https://api.github.com/users/VWoeltjen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/VWoeltjen/subscriptions","organizations_url":"https://api.github.com/users/VWoeltjen/orgs","repos_url":"https://api.github.com/users/VWoeltjen/repos","events_url":"https://api.github.com/users/VWoeltjen/events{/privacy}","received_events_url":"https://api.github.com/users/VWoeltjen/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"VWoeltjen","id":1685764,"avatar_url":"https://avatars.githubusercontent.com/u/1685764?v=3","gravatar_id":"","url":"https://api.github.com/users/VWoeltjen","html_url":"https://github.com/VWoeltjen","followers_url":"https://api.github.com/users/VWoeltjen/followers","following_url":"https://api.github.com/users/VWoeltjen/following{/other_user}","gists_url":"https://api.github.com/users/VWoeltjen/gists{/gist_id}","starred_url":"https://api.github.com/users/VWoeltjen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/VWoeltjen/subscriptions","organizations_url":"https://api.github.com/users/VWoeltjen/orgs","repos_url":"https://api.github.com/users/VWoeltjen/repos","events_url":"https://api.github.com/users/VWoeltjen/events{/privacy}","received_events_url":"https://api.github.com/users/VWoeltjen/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/nasa/openmctweb/milestones/3","html_url":"https://github.com/nasa/openmctweb/milestones/Ballard","labels_url":"https://api.github.com/repos/nasa/openmctweb/milestones/3/labels","id":1364443,"number":3,"title":"Ballard","description":"","creator":{"login":"VWoeltjen","id":1685764,"avatar_url":"https://avatars.githubusercontent.com/u/1685764?v=3","gravatar_id":"","url":"https://api.github.com/users/VWoeltjen","html_url":"https://github.com/VWoeltjen","followers_url":"https://api.github.com/users/VWoeltjen/followers","following_url":"https://api.github.com/users/VWoeltjen/following{/other_user}","gists_url":"https://api.github.com/users/VWoeltjen/gists{/gist_id}","starred_url":"https://api.github.com/users/VWoeltjen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/VWoeltjen/subscriptions","organizations_url":"https://api.github.com/users/VWoeltjen/orgs","repos_url":"https://api.github.com/users/VWoeltjen/repos","events_url":"https://api.github.com/users/VWoeltjen/events{/privacy}","received_events_url":"https://api.github.com/users/VWoeltjen/received_events","type":"User","site_admin":false},"open_issues":43,"closed_issues":18,"state":"open","created_at":"2015-10-19T17:19:20Z","updated_at":"2015-10-28T15:57:58Z","due_on":"2015-11-06T08:00:00Z","closed_at":null},"comments":4,"created_at":"2015-10-22T23:42:47Z","updated_at":"2015-10-28T16:16:14Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/nasa/openmctweb/pulls/204","html_url":"https://github.com/nasa/openmctweb/pull/204","diff_url":"https://github.com/nasa/openmctweb/pull/204.diff","patch_url":"https://github.com/nasa/openmctweb/pull/204.patch"},"body":"Adds support for non-UTC (and non-time-like) domains to the time conductor, permitting handling of Mars time and other distinct forms.\r\n\r\nSummary of changes:\r\n* Add a `TimeSystem` interface, which provides generic details about how to interpret values for different time systems.\r\n* Add a `TimeService` interface, for composite services which provide the above\r\n* Implement a `TimeService` aggregator and a provider for UTC \r\n* Add a `system` property to telemetry domain metadata\r\n  * Importantly, this is distinct from domains themselves: \r\n  * Assume UTC (in millis since 1970) if no time system is specified.\r\n* Add JSDoc for telemetry metadata to reflect the above\r\n\r\nStill a work in progress; remaining to do:\r\n- [x] Add tests for classes in ~~platform/time~~ `platform/commonUI/formatting` and other new scripts.\r\n- [x] Add JSDoc for new interfaces/classes\r\n- [x] Utilize time service wherever timestamps from telemetry are formatted for display\r\n- [x] Update tests for modified components\r\n- [x] Separate date-time text-input/pickers into an `mct-control` (per feedback from #202)\r\n- [x] Remove `now`, increment methods from `TimeSystem`; rename to `DateFormat` or `Format`\r\n- [x] Expose different time systems via an extension category instead of composite services\r\n- [x] ~~Add a `domainService` which includes both domain options and their formats.~~ Don't see this as necessary at this point, `TIME_CONDUCTOR_DOMAINS` plus telemetry metadata remains sufficient.\r\n\r\nOpening pull request early for feedback (esp. from @larkin); in particular:\r\n\r\n* Not feeling great about interface depth (adding both `TimeService` and `TimeSystem`), but sticking all these methods on `TimeService` (along with a parameter identifying the time system) made both using it and implementing it awkward.\r\n* Naming: Is there a better name than `TimeSystem`, `TimeService`? \r\n  * Some single-word alternatives to `TimeSystem` include:\r\n    * `Chronology`\r\n    * `Temporality`\r\n    * `Continuity`\r\n    * `Continuum` \r\n    * `Calendar`\r\n  * One of the challenges with naming here is that these are almost-but-not-always time-like; counters and the like will need to be dealt with here. `Continuum` seems most accurate in that regard but is at best confusing and at worst confounding.\r\n* Should `TimeSystem` instances just be a new extension category?"},"comment":{"url":"https://api.github.com/repos/nasa/openmctweb/issues/comments/151897409","html_url":"https://github.com/nasa/openmctweb/pull/204#issuecomment-151897409","issue_url":"https://api.github.com/repos/nasa/openmctweb/issues/204","id":151897409,"user":{"login":"VWoeltjen","id":1685764,"avatar_url":"https://avatars.githubusercontent.com/u/1685764?v=3","gravatar_id":"","url":"https://api.github.com/users/VWoeltjen","html_url":"https://github.com/VWoeltjen","followers_url":"https://api.github.com/users/VWoeltjen/followers","following_url":"https://api.github.com/users/VWoeltjen/following{/other_user}","gists_url":"https://api.github.com/users/VWoeltjen/gists{/gist_id}","starred_url":"https://api.github.com/users/VWoeltjen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/VWoeltjen/subscriptions","organizations_url":"https://api.github.com/users/VWoeltjen/orgs","repos_url":"https://api.github.com/users/VWoeltjen/repos","events_url":"https://api.github.com/users/VWoeltjen/events{/privacy}","received_events_url":"https://api.github.com/users/VWoeltjen/received_events","type":"User","site_admin":false},"created_at":"2015-10-28T16:16:14Z","updated_at":"2015-10-28T16:16:14Z","body":"Ready for review. Change summary is described above; only thing to add is that I made some changes to plot to partially address #218 (known issue, moved from closed-source issue tracker); that is, made plot aware enough of domains to utilize formats by fixing some of the ordering problems that contributed to #218. Domain options are now refreshed regularly (perhaps too often, but don't see an impact when profiling) to ensure appropriate formats are used in plot when domain selected from time conductor changes.\r\n\r\n### Author Checklist\r\n\r\n1. Changes address original issue? Y\r\n2. Unit tests included and/or updated with changes? Y\r\n3. Command line build passes? Y\r\n4. Expect to pass code review? Y\r\n"}}