From 2241b669f20bf1953194bd009686d66456d13de9 Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Thu, 9 Jul 2020 11:37:00 -0500 Subject: [PATCH] Update to Ember 3.16/Data 3.12 (#8319) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This updates to Ember 3.16 but leaves Ember Data at 3.12 so we don’t need to use the model fragments beta. It can be reviewed on a commit-by-commit basis: blueprint updates, fixes for test failures, and the removal of now-deprecated partials. It’s not a true update to Octane as that would involve turning on template-only components by default, which breaks various things. We can accomplish that separately and then add the edition setting to package.json. --- ui/.editorconfig | 1 - ui/.eslintrc.js | 3 + ui/app/app.js | 10 +- ui/app/components/forbidden-message.js | 5 +- ui/app/components/hamburger-menu.js | 6 + ui/app/components/job-subnav.js | 6 + ui/app/components/list-table.js | 2 +- ui/app/components/loading-spinner.js | 6 + ui/app/components/reschedule-event-row.js | 6 +- ui/app/components/stats-time-series.js | 3 + ui/app/components/svg-patterns.js | 6 + ui/app/resolver.js | 3 - ui/app/router.js | 4 +- ui/app/templates/application.hbs | 2 +- ui/app/templates/clients/index.hbs | 2 +- ui/app/templates/clients/loading.hbs | 2 +- ui/app/templates/components/.gitkeep | 0 ui/app/templates/components/global-header.hbs | 4 +- ui/app/templates/components/gutter-menu.hbs | 4 +- .../hamburger-menu.hbs | 0 .../components/job-page/parts/body.hbs | 2 +- .../subnav.hbs => components/job-subnav.hbs} | 12 +- .../loading-spinner.hbs | 0 .../{partials => components}/nomad-logo.hbs | 0 .../components/stats-time-series.hbs | 1 - ui/app/templates/csi/plugins/index.hbs | 2 +- ui/app/templates/csi/volumes/index.hbs | 2 +- ui/app/templates/exec-loading.hbs | 4 +- ui/app/templates/exec.hbs | 2 +- ui/app/templates/jobs/index.hbs | 2 +- ui/app/templates/jobs/job/allocations.hbs | 2 +- ui/app/templates/jobs/job/definition.hbs | 2 +- ui/app/templates/jobs/job/deployments.hbs | 2 +- ui/app/templates/jobs/job/evaluations.hbs | 2 +- ui/app/templates/jobs/job/loading.hbs | 4 +- ui/app/templates/jobs/job/versions.hbs | 2 +- ui/app/templates/jobs/loading.hbs | 2 +- ui/app/templates/loading.hbs | 2 +- .../templates/partials/forbidden-message.hbs | 10 - ui/app/templates/servers/index.hbs | 2 +- ui/app/templates/servers/loading.hbs | 2 +- ui/config/deprecation-workflow.js | 1 + ui/config/optional-features.json | 5 +- ui/package.json | 44 +- ui/stories/components/header.stories.js | 4 +- ui/testem.js | 4 +- ui/yarn.lock | 2248 ++++++++++++----- 47 files changed, 1744 insertions(+), 696 deletions(-) create mode 100644 ui/app/components/hamburger-menu.js create mode 100644 ui/app/components/job-subnav.js create mode 100644 ui/app/components/loading-spinner.js create mode 100644 ui/app/components/svg-patterns.js delete mode 100644 ui/app/resolver.js delete mode 100644 ui/app/templates/components/.gitkeep rename ui/app/templates/{partials => components}/hamburger-menu.hbs (100%) rename ui/app/templates/{jobs/job/subnav.hbs => components/job-subnav.hbs} (53%) rename ui/app/templates/{partials => components}/loading-spinner.hbs (100%) rename ui/app/templates/{partials => components}/nomad-logo.hbs (100%) delete mode 100644 ui/app/templates/components/stats-time-series.hbs delete mode 100644 ui/app/templates/partials/forbidden-message.hbs diff --git a/ui/.editorconfig b/ui/.editorconfig index 219985c2289f..c35a002406b9 100644 --- a/ui/.editorconfig +++ b/ui/.editorconfig @@ -4,7 +4,6 @@ root = true - [*] end_of_line = lf charset = utf-8 diff --git a/ui/.eslintrc.js b/ui/.eslintrc.js index 87f25659a8f7..cf31b345cb61 100644 --- a/ui/.eslintrc.js +++ b/ui/.eslintrc.js @@ -1,3 +1,5 @@ +'use strict'; + module.exports = { root: true, globals: { @@ -35,6 +37,7 @@ module.exports = { ], 'ember/classic-decorator-hooks': 'error', 'ember/classic-decorator-no-classic-methods': 'error', + 'ember/no-jquery': 'error', }, overrides: [ // node files diff --git a/ui/app/app.js b/ui/app/app.js index 5e9a038ba55d..d8e2088b6b0e 100644 --- a/ui/app/app.js +++ b/ui/app/app.js @@ -1,16 +1,12 @@ import Application from '@ember/application'; -import Resolver from './resolver'; +import Resolver from 'ember-resolver'; import loadInitializers from 'ember-load-initializers'; import config from './config/environment'; -let App; - -App = class AppApplication extends Application { +export default class App extends Application { modulePrefix = config.modulePrefix; podModulePrefix = config.podModulePrefix; Resolver = Resolver; -}; +} loadInitializers(App, config.modulePrefix); - -export default App; diff --git a/ui/app/components/forbidden-message.js b/ui/app/components/forbidden-message.js index 0334535df6a9..f9d0a2cf90a5 100644 --- a/ui/app/components/forbidden-message.js +++ b/ui/app/components/forbidden-message.js @@ -1,5 +1,8 @@ import Component from '@ember/component'; import { tagName } from '@ember-decorators/component'; +import { inject as service } from '@ember/service'; @tagName('') -export default class ForbiddenMessage extends Component {} +export default class ForbiddenMessage extends Component { + @service token; +} diff --git a/ui/app/components/hamburger-menu.js b/ui/app/components/hamburger-menu.js new file mode 100644 index 000000000000..133c7241b3e1 --- /dev/null +++ b/ui/app/components/hamburger-menu.js @@ -0,0 +1,6 @@ +import Component from '@ember/component'; +import { tagName } from '@ember-decorators/component'; + +@tagName('') +export default class HamburgerMenu extends Component { +} diff --git a/ui/app/components/job-subnav.js b/ui/app/components/job-subnav.js new file mode 100644 index 000000000000..5e180f67b770 --- /dev/null +++ b/ui/app/components/job-subnav.js @@ -0,0 +1,6 @@ +import Component from '@ember/component'; +import { tagName } from '@ember-decorators/component'; + +@tagName('') +export default class JobSubnav extends Component { +} diff --git a/ui/app/components/list-table.js b/ui/app/components/list-table.js index 0c06f542e54b..aa9c8fad6e59 100644 --- a/ui/app/components/list-table.js +++ b/ui/app/components/list-table.js @@ -13,7 +13,7 @@ export default class ListTable extends Component { // Plan for a future with metadata (e.g., isSelected) @computed('source.[]') get decoratedSource() { - return this.source.map(row => ({ + return (this.source || []).map(row => ({ model: row, })); } diff --git a/ui/app/components/loading-spinner.js b/ui/app/components/loading-spinner.js new file mode 100644 index 000000000000..f1f1f8734bbe --- /dev/null +++ b/ui/app/components/loading-spinner.js @@ -0,0 +1,6 @@ +import Component from '@ember/component'; +import { tagName } from '@ember-decorators/component'; + +@tagName('') +export default class LoadingSpinner extends Component { +} diff --git a/ui/app/components/reschedule-event-row.js b/ui/app/components/reschedule-event-row.js index 218241d1b164..e6a18747857d 100644 --- a/ui/app/components/reschedule-event-row.js +++ b/ui/app/components/reschedule-event-row.js @@ -14,7 +14,11 @@ export default class RescheduleEventRow extends Component { // An allocation can also be provided directly @overridable('allocationId', function() { - return this.store.findRecord('allocation', this.allocationId); + if (this.allocationId) { + return this.store.findRecord('allocation', this.allocationId); + } + + return null; }) allocation; diff --git a/ui/app/components/stats-time-series.js b/ui/app/components/stats-time-series.js index 0bce656165e1..58b9643d545b 100644 --- a/ui/app/components/stats-time-series.js +++ b/ui/app/components/stats-time-series.js @@ -5,11 +5,14 @@ import d3Format from 'd3-format'; import d3Scale from 'd3-scale'; import d3Array from 'd3-array'; import LineChart from 'nomad-ui/components/line-chart'; +import layout from '../templates/components/line-chart'; import formatDuration from 'nomad-ui/utils/format-duration'; import classic from 'ember-classic-decorator'; @classic export default class StatsTimeSeries extends LineChart { + layout = layout; + xProp = 'timestamp'; yProp = 'percent'; timeseries = true; diff --git a/ui/app/components/svg-patterns.js b/ui/app/components/svg-patterns.js new file mode 100644 index 000000000000..0e97ba0b77f5 --- /dev/null +++ b/ui/app/components/svg-patterns.js @@ -0,0 +1,6 @@ +import Component from '@ember/component'; +import { tagName } from '@ember-decorators/component'; + +@tagName('') +export default class SvgPatterns extends Component { +} diff --git a/ui/app/resolver.js b/ui/app/resolver.js deleted file mode 100644 index 2fb563d6c048..000000000000 --- a/ui/app/resolver.js +++ /dev/null @@ -1,3 +0,0 @@ -import Resolver from 'ember-resolver'; - -export default Resolver; diff --git a/ui/app/router.js b/ui/app/router.js index df40619558bd..12c3c3047dc9 100644 --- a/ui/app/router.js +++ b/ui/app/router.js @@ -1,7 +1,7 @@ import EmberRouter from '@ember/routing/router'; import config from './config/environment'; -class Router extends EmberRouter { +export default class Router extends EmberRouter { location = config.locationType; rootURL = config.rootURL; } @@ -68,5 +68,3 @@ Router.map(function() { this.route('not-found', { path: '/*' }); }); - -export default Router; diff --git a/ui/app/templates/application.hbs b/ui/app/templates/application.hbs index 46da1ce78ef1..c2ed3ae814a2 100644 --- a/ui/app/templates/application.hbs +++ b/ui/app/templates/application.hbs @@ -1,6 +1,6 @@ {{title (if system.shouldShowRegions (concat system.activeRegion " - ")) "Nomad" separator=" - "}} -{{partial "svg-patterns"}} + {{#unless error}} {{outlet}} {{else}} diff --git a/ui/app/templates/clients/index.hbs b/ui/app/templates/clients/index.hbs index 7c58f73cac51..1fb413a4be13 100644 --- a/ui/app/templates/clients/index.hbs +++ b/ui/app/templates/clients/index.hbs @@ -1,7 +1,7 @@ {{title "Clients"}}
{{#if isForbidden}} - {{partial "partials/forbidden-message"}} + {{else}}
diff --git a/ui/app/templates/clients/loading.hbs b/ui/app/templates/clients/loading.hbs index ae06c3078ee9..1b60ae2223ed 100644 --- a/ui/app/templates/clients/loading.hbs +++ b/ui/app/templates/clients/loading.hbs @@ -1 +1 @@ -
{{partial "partials/loading-spinner"}}
+
diff --git a/ui/app/templates/components/.gitkeep b/ui/app/templates/components/.gitkeep deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/ui/app/templates/components/global-header.hbs b/ui/app/templates/components/global-header.hbs index e129a42c3212..7f7c2e4f71ac 100644 --- a/ui/app/templates/components/global-header.hbs +++ b/ui/app/templates/components/global-header.hbs @@ -1,10 +1,10 @@