From 50173a4413e23d201a1f6baa8f64b2cf419aa4b3 Mon Sep 17 00:00:00 2001 From: Nikhil Date: Wed, 11 Dec 2019 14:27:13 -0800 Subject: [PATCH] Theming (#2567) * Separate Vue component styles out from SFCs. * Added 'MCT.prototype.getAssetPath' and using 'openmct.setAssetPath' to get relative path for assets. * Re-implements `openmct.plugins.Snow()`, and `openmct.plugins.Espresso()` (as well as a new theme `openmct.plugins.Maelstron()`) --- index.html | 2 + package.json | 4 +- src/MCT.js | 27 +- .../overlays/components/DialogComponent.vue | 86 ----- .../overlays/components/OverlayComponent.vue | 148 -------- .../components/ProgressDialogComponent.vue | 3 - .../overlays/components/dialog-component.scss | 81 +++++ .../components/overlay-component.scss | 142 ++++++++ src/plugins/LADTable/components/LADRow.vue | 4 - .../LADTable/components/LadTableSet.vue | 4 - .../displayLayout/components/BoxView.vue | 13 - .../components/DisplayLayout.vue | 75 ---- .../displayLayout/components/EditMarquee.vue | 60 ---- .../displayLayout/components/ImageView.vue | 15 - .../displayLayout/components/LayoutFrame.vue | 136 -------- .../components/TelemetryView.vue | 34 -- .../displayLayout/components/TextView.vue | 14 - .../displayLayout/components/box-view.scss | 8 + .../components/display-layout.scss | 70 ++++ .../components/edit-marquee.scss | 54 +++ .../displayLayout/components/image-view.scss | 10 + .../components/layout-frame.scss | 131 +++++++ .../components/telemetry-view.scss | 29 ++ .../displayLayout/components/text-view.scss | 9 + .../filters/components/FiltersView.vue | 20 -- .../filters/components/GlobalFilters.vue | 32 -- .../filters/components/filters-view.scss | 15 + .../filters/components/global-filters.scss | 28 ++ .../flexibleLayout/components/dropHint.vue | 4 - .../components/flexible-layout.scss | 320 +++++++++++++++++ .../components/flexibleLayout.vue | 325 ------------------ .../folderView/components/GridItem.vue | 126 ------- .../folderView/components/GridView.vue | 148 -------- .../folderView/components/ListItem.vue | 42 --- .../folderView/components/ListView.vue | 40 --- .../folderView/components/grid-item.scss | 121 +++++++ .../folderView/components/grid-view.scss | 143 ++++++++ .../folderView/components/list-item.scss | 37 ++ .../folderView/components/list-view.scss | 35 ++ src/plugins/plugins.js | 13 +- src/plugins/tabs/components/tabs.scss | 58 ++++ src/plugins/tabs/components/tabs.vue | 63 ---- .../components/TelemetryFilterIndicator.vue | 41 --- .../telemetryTable/components/table-cell.vue | 1 + .../components/table-configuration.vue | 3 - .../telemetryTable/components/table-row.scss | 9 + .../telemetryTable/components/table-row.vue | 12 - .../telemetryTable/components/table.scss | 175 ++++++++++ .../telemetryTable/components/table.vue | 180 ---------- .../telemetry-filter-indicator.scss | 37 ++ src/plugins/themes/espresso-theme.scss | 22 ++ src/plugins/themes/espresso.js | 7 + src/plugins/themes/installTheme.js | 18 + src/plugins/themes/maelstrom-theme.scss | 22 ++ src/plugins/themes/maelstrom.js | 7 + src/plugins/themes/snow-theme.scss | 22 ++ src/plugins/themes/snow.js | 7 + src/plugins/timeConductor/Conductor.vue | 184 ---------- src/plugins/timeConductor/ConductorAxis.vue | 84 ----- src/plugins/timeConductor/ConductorMode.vue | 19 - .../timeConductor/ConductorModeIcon.vue | 112 ------ src/plugins/timeConductor/DatePicker.vue | 101 ------ src/plugins/timeConductor/conductor-axis.scss | 79 +++++ .../timeConductor/conductor-mode-icon.scss | 107 ++++++ src/plugins/timeConductor/conductor-mode.scss | 14 + src/plugins/timeConductor/conductor.scss | 179 ++++++++++ src/plugins/timeConductor/date-picker.scss | 96 ++++++ src/styles/core.scss | 2 + src/styles/vue-styles.scss | 43 +++ src/ui/components/ObjectFrame.vue | 80 ----- src/ui/components/ObjectLabel.vue | 33 -- src/ui/components/ProgressBar.vue | 48 --- src/ui/components/ToggleSwitch.vue | 54 --- src/ui/components/object-frame.scss | 75 ++++ src/ui/components/object-label.scss | 28 ++ src/ui/components/progress-bar.scss | 43 +++ src/ui/components/search.scss | 26 ++ src/ui/components/search.vue | 31 -- src/ui/components/toggle-switch.scss | 48 +++ src/ui/inspector/Elements.vue | 38 -- src/ui/inspector/Inspector.vue | 159 --------- src/ui/inspector/Location.vue | 43 --- src/ui/inspector/elements.scss | 35 ++ src/ui/inspector/inspector.scss | 154 +++++++++ src/ui/inspector/location.scss | 38 ++ src/ui/layout/AppLogo.vue | 9 +- src/ui/layout/CreateButton.vue | 34 -- src/ui/layout/Layout.vue | 244 ------------- src/ui/layout/MCTSearch.vue | 15 - src/ui/layout/app-logo.scss | 6 + src/ui/layout/create-button.scss | 29 ++ src/ui/layout/layout.scss | 238 +++++++++++++ src/ui/layout/mct-search.scss | 10 + src/ui/layout/mct-tree.scss | 138 ++++++++ src/ui/layout/mct-tree.vue | 143 -------- src/ui/layout/pane.scss | 312 +++++++++++++++++ src/ui/layout/pane.vue | 317 ----------------- src/ui/layout/status-bar/Indicators.vue | 132 ------- .../layout/status-bar/NotificationBanner.vue | 79 ----- src/ui/layout/status-bar/indicators.scss | 127 +++++++ .../status-bar/notification-banner.scss | 74 ++++ src/ui/preview/Preview.vue | 31 -- src/ui/preview/preview.scss | 27 ++ .../toolbar/components/toolbar-checkbox.scss | 45 +++ .../toolbar/components/toolbar-checkbox.vue | 51 --- webpack.config.js | 20 +- 106 files changed, 3636 insertions(+), 3690 deletions(-) create mode 100644 src/api/overlays/components/dialog-component.scss create mode 100644 src/api/overlays/components/overlay-component.scss create mode 100644 src/plugins/displayLayout/components/box-view.scss create mode 100644 src/plugins/displayLayout/components/display-layout.scss create mode 100644 src/plugins/displayLayout/components/edit-marquee.scss create mode 100644 src/plugins/displayLayout/components/image-view.scss create mode 100644 src/plugins/displayLayout/components/layout-frame.scss create mode 100644 src/plugins/displayLayout/components/telemetry-view.scss create mode 100644 src/plugins/displayLayout/components/text-view.scss create mode 100644 src/plugins/filters/components/filters-view.scss create mode 100644 src/plugins/filters/components/global-filters.scss create mode 100644 src/plugins/flexibleLayout/components/flexible-layout.scss create mode 100644 src/plugins/folderView/components/grid-item.scss create mode 100644 src/plugins/folderView/components/grid-view.scss create mode 100644 src/plugins/folderView/components/list-item.scss create mode 100644 src/plugins/folderView/components/list-view.scss create mode 100644 src/plugins/tabs/components/tabs.scss create mode 100644 src/plugins/telemetryTable/components/table-row.scss create mode 100644 src/plugins/telemetryTable/components/table.scss create mode 100644 src/plugins/telemetryTable/components/telemetry-filter-indicator.scss create mode 100644 src/plugins/themes/espresso-theme.scss create mode 100644 src/plugins/themes/espresso.js create mode 100644 src/plugins/themes/installTheme.js create mode 100644 src/plugins/themes/maelstrom-theme.scss create mode 100644 src/plugins/themes/maelstrom.js create mode 100644 src/plugins/themes/snow-theme.scss create mode 100644 src/plugins/themes/snow.js create mode 100644 src/plugins/timeConductor/conductor-axis.scss create mode 100644 src/plugins/timeConductor/conductor-mode-icon.scss create mode 100644 src/plugins/timeConductor/conductor-mode.scss create mode 100644 src/plugins/timeConductor/conductor.scss create mode 100644 src/plugins/timeConductor/date-picker.scss create mode 100644 src/styles/vue-styles.scss create mode 100644 src/ui/components/object-frame.scss create mode 100644 src/ui/components/object-label.scss create mode 100644 src/ui/components/progress-bar.scss create mode 100644 src/ui/components/search.scss create mode 100644 src/ui/components/toggle-switch.scss create mode 100644 src/ui/inspector/elements.scss create mode 100644 src/ui/inspector/inspector.scss create mode 100644 src/ui/inspector/location.scss create mode 100644 src/ui/layout/app-logo.scss create mode 100644 src/ui/layout/create-button.scss create mode 100644 src/ui/layout/layout.scss create mode 100644 src/ui/layout/mct-search.scss create mode 100644 src/ui/layout/mct-tree.scss create mode 100644 src/ui/layout/pane.scss create mode 100644 src/ui/layout/status-bar/indicators.scss create mode 100644 src/ui/layout/status-bar/notification-banner.scss create mode 100644 src/ui/preview/preview.scss create mode 100644 src/ui/toolbar/components/toolbar-checkbox.scss diff --git a/index.html b/index.html index f73024f69e..332b04eccd 100644 --- a/index.html +++ b/index.html @@ -43,6 +43,8 @@ ].forEach( openmct.legacyRegistry.enable.bind(openmct.legacyRegistry) ); + + openmct.install(openmct.plugins.Espresso()); openmct.install(openmct.plugins.MyItems()); openmct.install(openmct.plugins.LocalStorage()); openmct.install(openmct.plugins.Generator()); diff --git a/package.json b/package.json index 6c990dc0c4..d15a69e91e 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,8 @@ "comma-separated-values": "^3.6.4", "concurrently": "^3.6.1", "copy-webpack-plugin": "^4.5.2", - "css-loader": "^1.0.0", "cross-env": "^6.0.3", + "css-loader": "^1.0.0", "d3-array": "1.2.x", "d3-axis": "1.0.x", "d3-collection": "1.0.x", @@ -63,7 +63,7 @@ "raw-loader": "^0.5.1", "request": "^2.69.0", "split": "^1.0.0", - "style-loader": "^0.21.0", + "style-loader": "^1.0.1", "v8-compile-cache": "^1.1.0", "vue": "2.5.6", "vue-loader": "^15.2.6", diff --git a/src/MCT.js b/src/MCT.js index 404153ab5a..9b2f145db5 100644 --- a/src/MCT.js +++ b/src/MCT.js @@ -38,7 +38,6 @@ define([ './ui/router/ApplicationRouter', './ui/router/Browse', '../platform/framework/src/Main', - './styles/core.scss', './styles/notebook.scss', './ui/layout/Layout.vue', '../platform/core/src/objects/DomainObjectImpl', @@ -66,7 +65,6 @@ define([ ApplicationRouter, Browse, Main, - coreStyles, NotebookStyles, Layout, DomainObjectImpl, @@ -318,11 +316,26 @@ define([ * @memberof module:openmct.MCT# * @method setAssetPath */ - MCT.prototype.setAssetPath = function (path) { - this.legacyExtension('constants', { - key: "ASSETS_PATH", - value: path - }); + MCT.prototype.setAssetPath = function (assetPath) { + this._assetPath = assetPath; + }; + + /** + * Get path to where assets are hosted. + * @memberof module:openmct.MCT# + * @method getAssetPath + */ + MCT.prototype.getAssetPath = function () { + const assetPathLength = this._assetPath && this._assetPath.length; + if (!assetPathLength) { + return '/'; + } + + if (this._assetPath[assetPathLength - 1] !== '/') { + return this._assetPath + '/'; + } + + return this._assetPath; }; /** diff --git a/src/api/overlays/components/DialogComponent.vue b/src/api/overlays/components/DialogComponent.vue index 23991c0bf6..9193d302bd 100644 --- a/src/api/overlays/components/DialogComponent.vue +++ b/src/api/overlays/components/DialogComponent.vue @@ -33,92 +33,6 @@ - -