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 @@