mirror of
https://github.com/nasa/openmct.git
synced 2024-12-23 15:02:23 +00:00
4ecd264d93
* basic brush prototype visible * require alt pressed for grab handle. display only * pan and zoom now co-exist * revert selection to times * make LocalTimeSystem UTCBased (Earth based) * add LocalTimeSystem * make isTimeFixed check reusable * linting * zoom axis sets start and end times * pass isFixed as props so we can watch for change from parent * disable cursor for local time and enable for fixed time * linting * resize brush on window resize * just use d3-brush instead of entire d3 package * WIP prototyping conductor history * set global bounds before emitting change event * WIP conductor history * WIP save history to and pull history from local storage * WIP persistence works * reset axis height after prototyping * conductor history functionality complete * clean up refactoring * add presets code cleanup * axis visual tuning * remove unused function calls * change tick to timespan to avoid confusion * fix bounds to use for timespans on pan axis * linting * linting * more linting * linting * change realtime end bound to 30 secondes * add max duration validation * Tweaks to Time Conductor History menu - Enhanced styles for `.c-menu`; - Added hint messaging and separator; - Reversed displayed history array so that latest entry is always first; * refactor to use browser mouse events instead of d3brush * Styling Time Conductor axis area - Styles for `is-zooming` state and brush; - Styles for `is-alt-key-down` for panning; - Styles for hover modified; * resolve merge conflicts * Styling Time Conductor axis and inputs - Moved panning and zooming styles up into `conductor.scss`; - Stubbed in :class names in Conductor.vue; - New theme constants; * fix merge conflict * move zoom/pan styling up to conductor * WIP almost there * fix zoom * move altPressed up to parent * handle no drag on pan * rename inMode vars for clarity * Styling for Time Conductor zoom and pan - Minor fix to hover cursor for alt-pressed panning; * add configurable bounds limit to time conductor * add presets and records * fixes for history * remove lodash * add default configurables for examples * do not install local time system * cleanup * fix indentation remove logging * remove comments * section-hint without section-separator styling * provide reasonable defaults for conductor configuration * specify input to check validation on * improve validation * first check both inputs for valid formats * clear each valid input on new entry * tear down listeners * add user instructions * allow preset bounds to be declared as callback function * set this.left on resize code refactoring Co-authored-by: charlesh88 <charlesh88@gmail.com> Co-authored-by: Deep Tailor <deep.j.tailor@nasa.gov>
120 lines
5.2 KiB
HTML
120 lines
5.2 KiB
HTML
<!--
|
|
Open MCT, Copyright (c) 2014-2020, United States Government
|
|
as represented by the Administrator of the National Aeronautics and Space
|
|
Administration. All rights reserved.
|
|
|
|
Open MCT is licensed under the Apache License, Version 2.0 (the
|
|
"License"); you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
http://www.apache.org/licenses/LICENSE-2.0.
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
License for the specific language governing permissions and limitations
|
|
under the License.
|
|
|
|
Open MCT includes source code licensed under additional open source
|
|
licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
this source code distribution or the Licensing information page available
|
|
at runtime from the About dialog for additional information.
|
|
-->
|
|
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0, shrink-to-fit=no">
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
<title></title>
|
|
<script src="dist/openmct.js"></script>
|
|
<link rel="icon" type="image/png" href="dist/favicons/favicon-96x96.png" sizes="96x96" type="image/x-icon">
|
|
<link rel="icon" type="image/png" href="dist/favicons/favicon-32x32.png" sizes="32x32" type="image/x-icon">
|
|
<link rel="icon" type="image/png" href="dist/favicons/favicon-16x16.png" sizes="16x16" type="image/x-icon">
|
|
</head>
|
|
<body>
|
|
</body>
|
|
<script>
|
|
const THIRTY_SECONDS = 30 * 1000;
|
|
const THIRTY_MINUTES = THIRTY_SECONDS * 60;
|
|
|
|
[
|
|
'example/eventGenerator'
|
|
].forEach(
|
|
openmct.legacyRegistry.enable.bind(openmct.legacyRegistry)
|
|
);
|
|
|
|
openmct.install(openmct.plugins.LocalStorage());
|
|
openmct.install(openmct.plugins.Espresso());
|
|
openmct.install(openmct.plugins.MyItems());
|
|
openmct.install(openmct.plugins.Generator());
|
|
openmct.install(openmct.plugins.ExampleImagery());
|
|
openmct.install(openmct.plugins.UTCTimeSystem());
|
|
openmct.install(openmct.plugins.AutoflowView({
|
|
type: "telemetry.panel"
|
|
}));
|
|
openmct.install(openmct.plugins.DisplayLayout({
|
|
showAsView: ['summary-widget', 'example.imagery']
|
|
}));
|
|
openmct.install(openmct.plugins.Conductor({
|
|
menuOptions: [
|
|
{
|
|
name: "Fixed",
|
|
timeSystem: 'utc',
|
|
bounds: {
|
|
start: Date.now() - THIRTY_MINUTES,
|
|
end: Date.now()
|
|
},
|
|
// commonly used bounds can be stored in history
|
|
// bounds (start and end) can accept either a milliseconds number
|
|
// or a callback function returning a milliseconds number
|
|
// a function is useful for invoking Date.now() at exact moment of preset selection
|
|
presets: [
|
|
{
|
|
label: 'Last Day',
|
|
bounds: {
|
|
start: () => Date.now() - 1000 * 60 * 60 * 24,
|
|
end: () => Date.now()
|
|
}
|
|
},
|
|
{
|
|
label: 'Last 2 hours',
|
|
bounds: {
|
|
start: () => Date.now() - 1000 * 60 * 60 * 2,
|
|
end: () => Date.now()
|
|
}
|
|
},
|
|
{
|
|
label: 'Last hour',
|
|
bounds: {
|
|
start: () => Date.now() - 1000 * 60 * 60,
|
|
end: () => Date.now()
|
|
}
|
|
}
|
|
],
|
|
// maximum recent bounds to retain in conductor history
|
|
records: 10,
|
|
// maximum duration between start and end bounds
|
|
// for utc-based time systems this is in milliseconds
|
|
limit: 1000 * 60 * 60 * 24
|
|
},
|
|
{
|
|
name: "Realtime",
|
|
timeSystem: 'utc',
|
|
clock: 'local',
|
|
clockOffsets: {
|
|
start: - THIRTY_MINUTES,
|
|
end: THIRTY_SECONDS
|
|
}
|
|
}
|
|
]
|
|
}));
|
|
openmct.install(openmct.plugins.SummaryWidget());
|
|
openmct.install(openmct.plugins.Notebook());
|
|
openmct.install(openmct.plugins.LADTable());
|
|
openmct.install(openmct.plugins.Filters(['table', 'telemetry.plot.overlay']));
|
|
openmct.install(openmct.plugins.ObjectMigration());
|
|
openmct.install(openmct.plugins.ClearData(['table', 'telemetry.plot.overlay', 'telemetry.plot.stacked']));
|
|
openmct.start();
|
|
</script>
|
|
</html>
|