mirror of
https://github.com/nasa/openmct.git
synced 2024-12-18 20:57:53 +00:00
169eec0a51
* Initial commit of plot refactor for vuejs * Use es6 classes instead of using extend * Use classList api to add and remove classes * Remove angular specific event mechanisms * Refactor plot legend into smaller components * Refactor moving config into MctPlot component. Fix Legend issues. * Refactor XAxis and YAxis into their own components * Remove commented out code * Remove empty initialize method * Fix grid lines and initialize function revert. * Check that plots views are available only to domainObjects that have range and domain * Make css class a computed property * Remove unnecessary legacyObject conversion * Remove comments and commented out code * Remove use of private for vue methods * Remove console logs * Fixes Y-axis ticks display * Add plots and plans to the time strip view * Adds stacked plots and overlay plots * Fix css for stacked plots * Disable Vue plots * Rename Stacked plot item component * Make the time axis a component Ensure plans and timelines use the time axis component and it is displayed correctly ensure plots don't display specific controls when in compact mode * Add missing file * Revert change to state generator metadata * Address Review comment: Remove unnecessary event emitted * Address review comments: Add a note about why nextTick is needed * Display time systems in time strip view Update look and feel (css) * Fix bug with legend when multiple plots are being displayed * Don't show action buttons for stacked plots * Changes to plan view to render as a css grid * Change LinearScale to a class * Remove duplicated comment * Adds missing copyright info * Revert change to stackedplotItem * Styling for Timestrip view WIP - Significant mods to markup and CSS to use CSS grid; - CSS class names changed; * Styling for Timestrip view WIP - Temp mods to illustrate design desires for the appearance of the time axis; * Layout changes for plan in timestrip view * Increase style height to match number of stacked plot items * Fix ticks * Fix removal of activities * Remove event listeners on destroy * Styling for Timestrip view WIP - VERY WIP trying to make the plan component work properly when dropped into a Timestrip view, lots of badness that needs to be fixed; - Refined classes in acivity bars to differentiate between the rect and its text; * Show Vue plots only in timestrip view. Reorder and Remove now works for timestrip objects * Make swim lanes a component to be reused by time strip and plan views Rewrite svg rendering to use javascript rather than d3. Write a prototype of foreign object for svg to render text * Don't show left and right edges when start or end is out of bounds * Descriptive name for Plan views * Adds plan icon and name * Fixes linting issues * Adds basic tests * Fixes broken test. * Adds new test * Fix linting errors. Adds tests * Adds tests * Adds tests for stacked plots * Adds more tests * Removes fdescribe * Adds tests for y-axis ticks * Tests for addition of series to plots * Adds more tests * Adds cursor guides test * Adds tests for interceptors * Adds more plots tests for x and y scale * Use config store * Adding goToOriginalAction tests * Fix tests for plan and time strip views * Fixes height of SVG * Fixes broken tests * Address review comments: remove view options API change. * Remove commented out code * Fix tests * Use the clientWidth of the plan if it's available * Account for the width of labels in the client width * Remove unnecessary test code Co-authored-by: charlesh88 <charlesh88@gmail.com> Co-authored-by: Andrew Henry <akhenry@gmail.com>
201 lines
8.1 KiB
HTML
201 lines
8.1 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">
|
|
<style type="text/css">
|
|
@keyframes splash-spinner {
|
|
0% {
|
|
transform: translate(-50%, -50%) rotate(0deg); }
|
|
100% {
|
|
transform: translate(-50%, -50%) rotate(360deg); } }
|
|
|
|
#splash-screen {
|
|
background-color: black;
|
|
position: absolute;
|
|
top: 0; right: 0; bottom: 0; left: 0;
|
|
z-index: 10000;
|
|
}
|
|
|
|
#splash-screen:before {
|
|
animation-name: splash-spinner;
|
|
animation-duration: 0.5s;
|
|
animation-iteration-count: infinite;
|
|
animation-timing-function: linear;
|
|
border-radius: 50%;
|
|
border-color: rgba(255,255,255,0.25);
|
|
border-top-color: white;
|
|
border-style: solid;
|
|
border-width: 10px;
|
|
content: '';
|
|
display: block;
|
|
opacity: 0.25;
|
|
position: absolute;
|
|
left: 50%; top: 50%;
|
|
height: 100px; width: 100px;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
</body>
|
|
<script>
|
|
const THIRTY_SECONDS = 30 * 1000;
|
|
const ONE_MINUTE = THIRTY_SECONDS * 2;
|
|
const FIVE_MINUTES = ONE_MINUTE * 5;
|
|
const FIFTEEN_MINUTES = FIVE_MINUTES * 3;
|
|
const THIRTY_MINUTES = FIFTEEN_MINUTES * 2;
|
|
const ONE_HOUR = THIRTY_MINUTES * 2;
|
|
const TWO_HOURS = ONE_HOUR * 2;
|
|
const ONE_DAY = ONE_HOUR * 24;
|
|
|
|
[
|
|
'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.PlanLayout());
|
|
openmct.install(openmct.plugins.Timeline());
|
|
openmct.install(openmct.plugins.PlotVue());
|
|
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() - ONE_DAY,
|
|
end: () => Date.now()
|
|
}
|
|
},
|
|
{
|
|
label: 'Last 2 hours',
|
|
bounds: {
|
|
start: () => Date.now() - TWO_HOURS,
|
|
end: () => Date.now()
|
|
}
|
|
},
|
|
{
|
|
label: 'Last hour',
|
|
bounds: {
|
|
start: () => Date.now() - ONE_HOUR,
|
|
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: ONE_DAY
|
|
},
|
|
{
|
|
name: "Realtime",
|
|
timeSystem: 'utc',
|
|
clock: 'local',
|
|
clockOffsets: {
|
|
start: - THIRTY_MINUTES,
|
|
end: THIRTY_SECONDS
|
|
},
|
|
presets: [
|
|
{
|
|
label: '1 Hour',
|
|
bounds: {
|
|
start: - ONE_HOUR,
|
|
end: THIRTY_SECONDS
|
|
}
|
|
},
|
|
{
|
|
label: '30 Minutes',
|
|
bounds: {
|
|
start: - THIRTY_MINUTES,
|
|
end: THIRTY_SECONDS
|
|
}
|
|
},
|
|
{
|
|
label: '15 Minutes',
|
|
bounds: {
|
|
start: - FIFTEEN_MINUTES,
|
|
end: THIRTY_SECONDS
|
|
}
|
|
},
|
|
{
|
|
label: '5 Minutes',
|
|
bounds: {
|
|
start: - FIVE_MINUTES,
|
|
end: THIRTY_SECONDS
|
|
}
|
|
},
|
|
{
|
|
label: '1 Minute',
|
|
bounds: {
|
|
start: - ONE_MINUTE,
|
|
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'],
|
|
{indicator: true}
|
|
));
|
|
openmct.start();
|
|
</script>
|
|
</html>
|