diff --git a/ui/app/adapters/application.js b/ui/app/adapters/application.js index 1e5c97333..bcf223383 100644 --- a/ui/app/adapters/application.js +++ b/ui/app/adapters/application.js @@ -1,15 +1,14 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import { computed, get } from '@ember/object'; import RESTAdapter from 'ember-data/adapters/rest'; import codesForError from '../utils/codes-for-error'; -const { get, computed, inject } = Ember; - export const namespace = 'v1'; export default RESTAdapter.extend({ namespace, - token: inject.service(), + token: service(), headers: computed('token.secret', function() { const token = this.get('token.secret'); diff --git a/ui/app/adapters/job.js b/ui/app/adapters/job.js index 4d18d1625..80398adac 100644 --- a/ui/app/adapters/job.js +++ b/ui/app/adapters/job.js @@ -1,10 +1,10 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import RSVP from 'rsvp'; +import { assign } from '@ember/polyfills'; import ApplicationAdapter from './application'; -const { RSVP, inject, assign } = Ember; - export default ApplicationAdapter.extend({ - system: inject.service(), + system: service(), shouldReloadAll: () => true, diff --git a/ui/app/adapters/token.js b/ui/app/adapters/token.js index 0bd103334..32315037a 100644 --- a/ui/app/adapters/token.js +++ b/ui/app/adapters/token.js @@ -1,10 +1,8 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; import { default as ApplicationAdapter, namespace } from './application'; -const { inject } = Ember; - export default ApplicationAdapter.extend({ - store: inject.service(), + store: service(), namespace: namespace + '/acl', diff --git a/ui/app/app.js b/ui/app/app.js index 831ad6106..c5fb686f8 100644 --- a/ui/app/app.js +++ b/ui/app/app.js @@ -1,3 +1,4 @@ +import Application from '@ember/application'; import Ember from 'ember'; import Resolver from './resolver'; import loadInitializers from 'ember-load-initializers'; @@ -7,10 +8,10 @@ let App; Ember.MODEL_FACTORY_INJECTIONS = true; -App = Ember.Application.extend({ +App = Application.extend({ modulePrefix: config.modulePrefix, podModulePrefix: config.podModulePrefix, - Resolver + Resolver, }); loadInitializers(App, config.modulePrefix); diff --git a/ui/app/components/allocation-row.js b/ui/app/components/allocation-row.js index a258f5b24..5625c092f 100644 --- a/ui/app/components/allocation-row.js +++ b/ui/app/components/allocation-row.js @@ -1,10 +1,10 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import { run } from '@ember/runloop'; import { lazyClick } from '../helpers/lazy-click'; -const { Component, inject, run } = Ember; - export default Component.extend({ - store: inject.service(), + store: service(), tagName: 'tr', diff --git a/ui/app/components/allocation-status-bar.js b/ui/app/components/allocation-status-bar.js index 0a3734626..7f2d1e2fc 100644 --- a/ui/app/components/allocation-status-bar.js +++ b/ui/app/components/allocation-status-bar.js @@ -1,8 +1,6 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; import DistributionBar from './distribution-bar'; -const { computed } = Ember; - export default DistributionBar.extend({ layoutName: 'components/distribution-bar', diff --git a/ui/app/components/attributes-section.js b/ui/app/components/attributes-section.js index f2503c9fc..479865264 100644 --- a/ui/app/components/attributes-section.js +++ b/ui/app/components/attributes-section.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { Component } = Ember; +import Component from '@ember/component'; export default Component.extend({ tagName: '', diff --git a/ui/app/components/client-node-row.js b/ui/app/components/client-node-row.js index e2f9dd19c..2775ed58f 100644 --- a/ui/app/components/client-node-row.js +++ b/ui/app/components/client-node-row.js @@ -1,8 +1,6 @@ -import Ember from 'ember'; +import Component from '@ember/component'; import { lazyClick } from '../helpers/lazy-click'; -const { Component } = Ember; - export default Component.extend({ tagName: 'tr', classNames: ['client-node-row', 'is-interactive'], diff --git a/ui/app/components/distribution-bar.js b/ui/app/components/distribution-bar.js index 105273df6..8c171b11b 100644 --- a/ui/app/components/distribution-bar.js +++ b/ui/app/components/distribution-bar.js @@ -1,10 +1,13 @@ -import Ember from 'ember'; +import Component from '@ember/component'; +import { computed } from '@ember/object'; +import { run } from '@ember/runloop'; +import { assign } from '@ember/polyfills'; +import { guidFor } from '@ember/object/internals'; import d3 from 'npm:d3-selection'; import 'npm:d3-transition'; import WindowResizable from '../mixins/window-resizable'; import styleStringProperty from '../utils/properties/style-string'; -const { Component, computed, run, assign, guidFor } = Ember; const sumAggregate = (total, val) => total + val; export default Component.extend(WindowResizable, { diff --git a/ui/app/components/gutter-menu.js b/ui/app/components/gutter-menu.js index 9ab098cbb..7a5086b76 100644 --- a/ui/app/components/gutter-menu.js +++ b/ui/app/components/gutter-menu.js @@ -1,9 +1,9 @@ -import Ember from 'ember'; - -const { Component, inject, computed } = Ember; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import { computed } from '@ember/object'; export default Component.extend({ - system: inject.service(), + system: service(), sortedNamespaces: computed('system.namespaces.@each.name', function() { const namespaces = this.get('system.namespaces').toArray() || []; diff --git a/ui/app/components/job-deployment.js b/ui/app/components/job-deployment.js index 1a2476be8..feb13f17d 100644 --- a/ui/app/components/job-deployment.js +++ b/ui/app/components/job-deployment.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { Component } = Ember; +import Component from '@ember/component'; export default Component.extend({ classNames: ['job-deployment', 'boxed-section'], diff --git a/ui/app/components/job-deployment/deployment-metrics.js b/ui/app/components/job-deployment/deployment-metrics.js index f2503c9fc..479865264 100644 --- a/ui/app/components/job-deployment/deployment-metrics.js +++ b/ui/app/components/job-deployment/deployment-metrics.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { Component } = Ember; +import Component from '@ember/component'; export default Component.extend({ tagName: '', diff --git a/ui/app/components/job-deployments-stream.js b/ui/app/components/job-deployments-stream.js index 65b700491..0ddb5fedb 100644 --- a/ui/app/components/job-deployments-stream.js +++ b/ui/app/components/job-deployments-stream.js @@ -1,8 +1,7 @@ -import Ember from 'ember'; +import Component from '@ember/component'; +import { computed } from '@ember/object'; import moment from 'moment'; -const { Component, computed } = Ember; - export default Component.extend({ tagName: 'ol', classNames: ['timeline'], diff --git a/ui/app/components/job-diff-fields-and-objects.js b/ui/app/components/job-diff-fields-and-objects.js index f2503c9fc..479865264 100644 --- a/ui/app/components/job-diff-fields-and-objects.js +++ b/ui/app/components/job-diff-fields-and-objects.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { Component } = Ember; +import Component from '@ember/component'; export default Component.extend({ tagName: '', diff --git a/ui/app/components/job-diff.js b/ui/app/components/job-diff.js index 2bba7310e..79371f333 100644 --- a/ui/app/components/job-diff.js +++ b/ui/app/components/job-diff.js @@ -1,6 +1,5 @@ -import Ember from 'ember'; - -const { Component, computed } = Ember; +import { equal } from '@ember/object/computed'; +import Component from '@ember/component'; export default Component.extend({ classNames: ['job-diff'], @@ -10,7 +9,7 @@ export default Component.extend({ verbose: true, - isEdited: computed.equal('diff.Type', 'Edited'), - isAdded: computed.equal('diff.Type', 'Added'), - isDeleted: computed.equal('diff.Type', 'Deleted'), + isEdited: equal('diff.Type', 'Edited'), + isAdded: equal('diff.Type', 'Added'), + isDeleted: equal('diff.Type', 'Deleted'), }); diff --git a/ui/app/components/job-row.js b/ui/app/components/job-row.js index e370cfba9..db9e6e369 100644 --- a/ui/app/components/job-row.js +++ b/ui/app/components/job-row.js @@ -1,8 +1,6 @@ -import Ember from 'ember'; +import Component from '@ember/component'; import { lazyClick } from '../helpers/lazy-click'; -const { Component } = Ember; - export default Component.extend({ tagName: 'tr', classNames: ['job-row', 'is-interactive'], diff --git a/ui/app/components/job-version.js b/ui/app/components/job-version.js index 0ffe77803..978111a93 100644 --- a/ui/app/components/job-version.js +++ b/ui/app/components/job-version.js @@ -1,6 +1,5 @@ -import Ember from 'ember'; - -const { Component, computed } = Ember; +import Component from '@ember/component'; +import { computed } from '@ember/object'; const changeTypes = ['Added', 'Deleted', 'Edited']; diff --git a/ui/app/components/job-versions-stream.js b/ui/app/components/job-versions-stream.js index 8ac011376..b2a92d71a 100644 --- a/ui/app/components/job-versions-stream.js +++ b/ui/app/components/job-versions-stream.js @@ -1,8 +1,7 @@ -import Ember from 'ember'; +import Component from '@ember/component'; +import { computed } from '@ember/object'; import moment from 'moment'; -const { Component, computed } = Ember; - export default Component.extend({ tagName: 'ol', classNames: ['timeline'], diff --git a/ui/app/components/json-viewer.js b/ui/app/components/json-viewer.js index 2d8442e33..cf966757d 100644 --- a/ui/app/components/json-viewer.js +++ b/ui/app/components/json-viewer.js @@ -1,8 +1,8 @@ -import Ember from 'ember'; +import Component from '@ember/component'; +import { computed } from '@ember/object'; +import { run } from '@ember/runloop'; import JSONFormatterPkg from 'npm:json-formatter-js'; -const { Component, computed, run } = Ember; - // json-formatter-js is packaged in a funny way that ember-cli-browserify // doesn't unwrap properly. const { default: JSONFormatter } = JSONFormatterPkg; diff --git a/ui/app/components/list-pagination.js b/ui/app/components/list-pagination.js index c18301d4a..c04aaa9f4 100644 --- a/ui/app/components/list-pagination.js +++ b/ui/app/components/list-pagination.js @@ -1,6 +1,5 @@ -import Ember from 'ember'; - -const { Component, computed } = Ember; +import Component from '@ember/component'; +import { computed } from '@ember/object'; export default Component.extend({ source: computed(() => []), @@ -31,9 +30,11 @@ export default Component.extend({ const lowerBound = Math.max(1, page - spread); const upperBound = Math.min(lastPage, page + spread) + 1; - return Array(upperBound - lowerBound).fill(null).map((_, index) => ({ - pageNumber: lowerBound + index, - })); + return Array(upperBound - lowerBound) + .fill(null) + .map((_, index) => ({ + pageNumber: lowerBound + index, + })); }), list: computed('source.[]', 'page', 'size', function() { diff --git a/ui/app/components/list-pagination/list-pager.js b/ui/app/components/list-pagination/list-pager.js index f2503c9fc..479865264 100644 --- a/ui/app/components/list-pagination/list-pager.js +++ b/ui/app/components/list-pagination/list-pager.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { Component } = Ember; +import Component from '@ember/component'; export default Component.extend({ tagName: '', diff --git a/ui/app/components/list-table.js b/ui/app/components/list-table.js index 39cf15fe6..0b6d63416 100644 --- a/ui/app/components/list-table.js +++ b/ui/app/components/list-table.js @@ -1,6 +1,5 @@ -import Ember from 'ember'; - -const { Component, computed } = Ember; +import Component from '@ember/component'; +import { computed } from '@ember/object'; export default Component.extend({ tagName: 'table', diff --git a/ui/app/components/list-table/sort-by.js b/ui/app/components/list-table/sort-by.js index 9edcb61e7..cd6e3fc2c 100644 --- a/ui/app/components/list-table/sort-by.js +++ b/ui/app/components/list-table/sort-by.js @@ -1,6 +1,5 @@ -import Ember from 'ember'; - -const { Component, computed } = Ember; +import Component from '@ember/component'; +import { computed } from '@ember/object'; export default Component.extend({ tagName: 'th', diff --git a/ui/app/components/list-table/table-body.js b/ui/app/components/list-table/table-body.js index 4c756a699..782917851 100644 --- a/ui/app/components/list-table/table-body.js +++ b/ui/app/components/list-table/table-body.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { Component } = Ember; +import Component from '@ember/component'; export default Component.extend({ tagName: 'tbody', diff --git a/ui/app/components/list-table/table-head.js b/ui/app/components/list-table/table-head.js index c1f0c7825..92a17d670 100644 --- a/ui/app/components/list-table/table-head.js +++ b/ui/app/components/list-table/table-head.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { Component } = Ember; +import Component from '@ember/component'; export default Component.extend({ tagName: 'thead', diff --git a/ui/app/components/search-box.js b/ui/app/components/search-box.js index 19aa76bef..8066f3e0b 100644 --- a/ui/app/components/search-box.js +++ b/ui/app/components/search-box.js @@ -1,13 +1,13 @@ -import Ember from 'ember'; - -const { Component, computed, run } = Ember; +import { reads } from '@ember/object/computed'; +import Component from '@ember/component'; +import { run } from '@ember/runloop'; export default Component.extend({ // Passed to the component (mutable) searchTerm: null, // Used as a debounce buffer - _searchTerm: computed.reads('searchTerm'), + _searchTerm: reads('searchTerm'), // Used to throttle sets to searchTerm debounce: 150, diff --git a/ui/app/components/server-agent-row.js b/ui/app/components/server-agent-row.js index 4ad41ee93..98d401fe0 100644 --- a/ui/app/components/server-agent-row.js +++ b/ui/app/components/server-agent-row.js @@ -1,14 +1,15 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; +import { computed } from '@ember/object'; import { lazyClick } from '../helpers/lazy-click'; -const { Component, inject, computed } = Ember; - export default Component.extend({ // TODO Switch back to the router service once the service behaves more like Route // https://github.com/emberjs/ember.js/issues/15801 // router: inject.service('router'), - _router: inject.service('-routing'), - router: computed.alias('_router.router'), + _router: service('-routing'), + router: alias('_router.router'), tagName: 'tr', classNames: ['server-agent-row', 'is-interactive'], diff --git a/ui/app/components/task-group-row.js b/ui/app/components/task-group-row.js index 4fb239637..98753d615 100644 --- a/ui/app/components/task-group-row.js +++ b/ui/app/components/task-group-row.js @@ -1,8 +1,6 @@ -import Ember from 'ember'; +import Component from '@ember/component'; import { lazyClick } from '../helpers/lazy-click'; -const { Component } = Ember; - export default Component.extend({ tagName: 'tr', diff --git a/ui/app/components/task-log.js b/ui/app/components/task-log.js index 1b066db73..277023859 100644 --- a/ui/app/components/task-log.js +++ b/ui/app/components/task-log.js @@ -1,12 +1,13 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import { computed } from '@ember/object'; +import { run } from '@ember/runloop'; import { task } from 'ember-concurrency'; import { logger } from 'nomad-ui/utils/classes/log'; import WindowResizable from 'nomad-ui/mixins/window-resizable'; -const { Component, computed, inject, run } = Ember; - export default Component.extend(WindowResizable, { - token: inject.service(), + token: service(), classNames: ['boxed-section', 'task-log'], diff --git a/ui/app/controllers/allocations/allocation.js b/ui/app/controllers/allocations/allocation.js index 1ee88420b..75ceaaec3 100644 --- a/ui/app/controllers/allocations/allocation.js +++ b/ui/app/controllers/allocations/allocation.js @@ -1,5 +1,3 @@ -import Ember from 'ember'; - -const { Controller } = Ember; +import Controller from '@ember/controller'; export default Controller.extend({}); diff --git a/ui/app/controllers/allocations/allocation/index.js b/ui/app/controllers/allocations/allocation/index.js index 5a764f2a6..810d0f728 100644 --- a/ui/app/controllers/allocations/allocation/index.js +++ b/ui/app/controllers/allocations/allocation/index.js @@ -1,8 +1,7 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Controller from '@ember/controller'; import Sortable from 'nomad-ui/mixins/sortable'; -const { Controller, computed } = Ember; - export default Controller.extend(Sortable, { queryParams: { sortProperty: 'sort', @@ -12,6 +11,6 @@ export default Controller.extend(Sortable, { sortProperty: 'name', sortDescending: false, - listToSort: computed.alias('model.states'), - sortedStates: computed.alias('listSorted'), + listToSort: alias('model.states'), + sortedStates: alias('listSorted'), }); diff --git a/ui/app/controllers/allocations/allocation/task/index.js b/ui/app/controllers/allocations/allocation/task/index.js index 7374af8fd..790e190ec 100644 --- a/ui/app/controllers/allocations/allocation/task/index.js +++ b/ui/app/controllers/allocations/allocation/task/index.js @@ -1,9 +1,9 @@ -import Ember from 'ember'; - -const { Controller, computed } = Ember; +import { alias } from '@ember/object/computed'; +import Controller from '@ember/controller'; +import { computed } from '@ember/object'; export default Controller.extend({ - network: computed.alias('model.resources.networks.firstObject'), + network: alias('model.resources.networks.firstObject'), ports: computed('network.reservedPorts.[]', 'network.dynamicPorts.[]', function() { return (this.get('network.reservedPorts') || []) .map(port => ({ diff --git a/ui/app/controllers/application.js b/ui/app/controllers/application.js index faa744e96..fc3c5e58e 100644 --- a/ui/app/controllers/application.js +++ b/ui/app/controllers/application.js @@ -1,10 +1,12 @@ +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; +import { run } from '@ember/runloop'; +import { observer, computed } from '@ember/object'; import Ember from 'ember'; import codesForError from '../utils/codes-for-error'; -const { Controller, computed, inject, run, observer } = Ember; - export default Controller.extend({ - config: inject.service(), + config: service(), error: null, diff --git a/ui/app/controllers/clients.js b/ui/app/controllers/clients.js index 41e5c9e2f..f4d0631dc 100644 --- a/ui/app/controllers/clients.js +++ b/ui/app/controllers/clients.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { Controller } = Ember; +import Controller from '@ember/controller'; export default Controller.extend({ isForbidden: false, diff --git a/ui/app/controllers/clients/client.js b/ui/app/controllers/clients/client.js index ed463e813..008169f5e 100644 --- a/ui/app/controllers/clients/client.js +++ b/ui/app/controllers/clients/client.js @@ -1,9 +1,9 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Controller from '@ember/controller'; +import { computed } from '@ember/object'; import Sortable from 'nomad-ui/mixins/sortable'; import Searchable from 'nomad-ui/mixins/searchable'; -const { Controller, computed } = Ember; - export default Controller.extend(Sortable, Searchable, { queryParams: { currentPage: 'page', @@ -20,9 +20,9 @@ export default Controller.extend(Sortable, Searchable, { searchProps: computed(() => ['shortId', 'name']), - listToSort: computed.alias('model.allocations'), - listToSearch: computed.alias('listSorted'), - sortedAllocations: computed.alias('listSearched'), + listToSort: alias('model.allocations'), + listToSearch: alias('listSorted'), + sortedAllocations: alias('listSearched'), actions: { gotoAllocation(allocation) { diff --git a/ui/app/controllers/clients/index.js b/ui/app/controllers/clients/index.js index eedb9ebe8..ac19f9d9d 100644 --- a/ui/app/controllers/clients/index.js +++ b/ui/app/controllers/clients/index.js @@ -1,14 +1,14 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Controller, { inject as controller } from '@ember/controller'; +import { computed } from '@ember/object'; import Sortable from 'nomad-ui/mixins/sortable'; import Searchable from 'nomad-ui/mixins/searchable'; -const { Controller, computed, inject } = Ember; - export default Controller.extend(Sortable, Searchable, { - clientsController: inject.controller('clients'), + clientsController: controller('clients'), - nodes: computed.alias('model.nodes'), - agents: computed.alias('model.agents'), + nodes: alias('model.nodes'), + agents: alias('model.agents'), queryParams: { currentPage: 'page', @@ -25,11 +25,11 @@ export default Controller.extend(Sortable, Searchable, { searchProps: computed(() => ['id', 'name', 'datacenter']), - listToSort: computed.alias('nodes'), - listToSearch: computed.alias('listSorted'), - sortedNodes: computed.alias('listSearched'), + listToSort: alias('nodes'), + listToSearch: alias('listSorted'), + sortedNodes: alias('listSearched'), - isForbidden: computed.alias('clientsController.isForbidden'), + isForbidden: alias('clientsController.isForbidden'), actions: { gotoNode(node) { diff --git a/ui/app/controllers/freestyle.js b/ui/app/controllers/freestyle.js index 71e5bde38..552795608 100644 --- a/ui/app/controllers/freestyle.js +++ b/ui/app/controllers/freestyle.js @@ -1,10 +1,9 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import { computed } from '@ember/object'; import FreestyleController from 'ember-freestyle/controllers/freestyle'; -const { inject, computed } = Ember; - export default FreestyleController.extend({ - emberFreestyle: inject.service(), + emberFreestyle: service(), timerTicks: 0, diff --git a/ui/app/controllers/jobs.js b/ui/app/controllers/jobs.js index 88f3d60e1..e7a69a7d8 100644 --- a/ui/app/controllers/jobs.js +++ b/ui/app/controllers/jobs.js @@ -1,9 +1,10 @@ -import Ember from 'ember'; - -const { Controller, inject, observer, run } = Ember; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; +import { observer } from '@ember/object'; +import { run } from '@ember/runloop'; export default Controller.extend({ - system: inject.service(), + system: service(), queryParams: { jobNamespace: 'namespace', diff --git a/ui/app/controllers/jobs/index.js b/ui/app/controllers/jobs/index.js index 079d30dc3..d0d06e9ee 100644 --- a/ui/app/controllers/jobs/index.js +++ b/ui/app/controllers/jobs/index.js @@ -1,18 +1,19 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import { alias, filterBy } from '@ember/object/computed'; +import Controller, { inject as controller } from '@ember/controller'; +import { computed } from '@ember/object'; import Sortable from 'nomad-ui/mixins/sortable'; import Searchable from 'nomad-ui/mixins/searchable'; -const { Controller, computed, inject } = Ember; - export default Controller.extend(Sortable, Searchable, { - system: inject.service(), - jobsController: inject.controller('jobs'), + system: service(), + jobsController: controller('jobs'), - isForbidden: computed.alias('jobsController.isForbidden'), + isForbidden: alias('jobsController.isForbidden'), - pendingJobs: computed.filterBy('model', 'status', 'pending'), - runningJobs: computed.filterBy('model', 'status', 'running'), - deadJobs: computed.filterBy('model', 'status', 'dead'), + pendingJobs: filterBy('model', 'status', 'pending'), + runningJobs: filterBy('model', 'status', 'running'), + deadJobs: filterBy('model', 'status', 'dead'), queryParams: { currentPage: 'page', @@ -42,9 +43,9 @@ export default Controller.extend(Sortable, Searchable, { } ), - listToSort: computed.alias('filteredJobs'), - listToSearch: computed.alias('listSorted'), - sortedJobs: computed.alias('listSearched'), + listToSort: alias('filteredJobs'), + listToSearch: alias('listSorted'), + sortedJobs: alias('listSearched'), isShowingDeploymentDetails: false, diff --git a/ui/app/controllers/jobs/job.js b/ui/app/controllers/jobs/job.js index fab3c3204..5b8865a11 100644 --- a/ui/app/controllers/jobs/job.js +++ b/ui/app/controllers/jobs/job.js @@ -1,6 +1,5 @@ -import Ember from 'ember'; - -const { Controller, computed } = Ember; +import Controller from '@ember/controller'; +import { computed } from '@ember/object'; export default Controller.extend({ breadcrumbs: computed('model.{name,id}', function() { diff --git a/ui/app/controllers/jobs/job/definition.js b/ui/app/controllers/jobs/job/definition.js index 95144a831..b105b72b0 100644 --- a/ui/app/controllers/jobs/job/definition.js +++ b/ui/app/controllers/jobs/job/definition.js @@ -1,12 +1,11 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Controller, { inject as controller } from '@ember/controller'; import WithNamespaceResetting from 'nomad-ui/mixins/with-namespace-resetting'; -const { Controller, computed, inject } = Ember; - export default Controller.extend(WithNamespaceResetting, { - jobController: inject.controller('jobs.job'), + jobController: controller('jobs.job'), - job: computed.alias('model.job'), + job: alias('model.job'), - breadcrumbs: computed.alias('jobController.breadcrumbs'), + breadcrumbs: alias('jobController.breadcrumbs'), }); diff --git a/ui/app/controllers/jobs/job/deployments.js b/ui/app/controllers/jobs/job/deployments.js index a8c6b1761..0540c98b1 100644 --- a/ui/app/controllers/jobs/job/deployments.js +++ b/ui/app/controllers/jobs/job/deployments.js @@ -1,13 +1,12 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Controller, { inject as controller } from '@ember/controller'; import WithNamespaceResetting from 'nomad-ui/mixins/with-namespace-resetting'; -const { Controller, computed, inject } = Ember; - export default Controller.extend(WithNamespaceResetting, { - jobController: inject.controller('jobs.job'), + jobController: controller('jobs.job'), - job: computed.alias('model'), - deployments: computed.alias('model.deployments'), + job: alias('model'), + deployments: alias('model.deployments'), - breadcrumbs: computed.alias('jobController.breadcrumbs'), + breadcrumbs: alias('jobController.breadcrumbs'), }); diff --git a/ui/app/controllers/jobs/job/index.js b/ui/app/controllers/jobs/job/index.js index 2738cccf1..97b97efb5 100644 --- a/ui/app/controllers/jobs/job/index.js +++ b/ui/app/controllers/jobs/job/index.js @@ -1,12 +1,13 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import { alias } from '@ember/object/computed'; +import Controller, { inject as controller } from '@ember/controller'; +import { computed } from '@ember/object'; import Sortable from 'nomad-ui/mixins/sortable'; import WithNamespaceResetting from 'nomad-ui/mixins/with-namespace-resetting'; -const { Controller, computed, inject } = Ember; - export default Controller.extend(Sortable, WithNamespaceResetting, { - system: inject.service(), - jobController: inject.controller('jobs.job'), + system: service(), + jobController: controller('jobs.job'), queryParams: { currentPage: 'page', @@ -20,15 +21,15 @@ export default Controller.extend(Sortable, WithNamespaceResetting, { sortProperty: 'name', sortDescending: false, - breadcrumbs: computed.alias('jobController.breadcrumbs'), - job: computed.alias('model'), + breadcrumbs: alias('jobController.breadcrumbs'), + job: alias('model'), taskGroups: computed('model.taskGroups.[]', function() { return this.get('model.taskGroups') || []; }), - listToSort: computed.alias('taskGroups'), - sortedTaskGroups: computed.alias('listSorted'), + listToSort: alias('taskGroups'), + sortedTaskGroups: alias('listSorted'), sortedEvaluations: computed('model.evaluations.@each.modifyIndex', function() { return (this.get('model.evaluations') || []).sortBy('modifyIndex').reverse(); diff --git a/ui/app/controllers/jobs/job/loading.js b/ui/app/controllers/jobs/job/loading.js index bb159e836..2251e2d75 100644 --- a/ui/app/controllers/jobs/job/loading.js +++ b/ui/app/controllers/jobs/job/loading.js @@ -1,8 +1,7 @@ -import Ember from 'ember'; - -const { Controller, computed, inject } = Ember; +import { alias } from '@ember/object/computed'; +import Controller, { inject as controller } from '@ember/controller'; export default Controller.extend({ - jobController: inject.controller('jobs.job'), - breadcrumbs: computed.alias('jobController.breadcrumbs'), + jobController: controller('jobs.job'), + breadcrumbs: alias('jobController.breadcrumbs'), }); diff --git a/ui/app/controllers/jobs/job/task-group.js b/ui/app/controllers/jobs/job/task-group.js index 4fc628201..2e2ab25e7 100644 --- a/ui/app/controllers/jobs/job/task-group.js +++ b/ui/app/controllers/jobs/job/task-group.js @@ -1,12 +1,12 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Controller, { inject as controller } from '@ember/controller'; +import { computed } from '@ember/object'; import Sortable from 'nomad-ui/mixins/sortable'; import Searchable from 'nomad-ui/mixins/searchable'; import WithNamespaceResetting from 'nomad-ui/mixins/with-namespace-resetting'; -const { Controller, computed, inject } = Ember; - export default Controller.extend(Sortable, Searchable, WithNamespaceResetting, { - jobController: inject.controller('jobs.job'), + jobController: controller('jobs.job'), queryParams: { currentPage: 'page', @@ -27,9 +27,9 @@ export default Controller.extend(Sortable, Searchable, WithNamespaceResetting, { return this.get('model.allocations') || []; }), - listToSort: computed.alias('allocations'), - listToSearch: computed.alias('listSorted'), - sortedAllocations: computed.alias('listSearched'), + listToSort: alias('allocations'), + listToSearch: alias('listSorted'), + sortedAllocations: alias('listSearched'), breadcrumbs: computed('jobController.breadcrumbs.[]', 'model.{name}', function() { return this.get('jobController.breadcrumbs').concat([ diff --git a/ui/app/controllers/jobs/job/versions.js b/ui/app/controllers/jobs/job/versions.js index 3b2420213..eb669a22b 100644 --- a/ui/app/controllers/jobs/job/versions.js +++ b/ui/app/controllers/jobs/job/versions.js @@ -1,13 +1,12 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Controller, { inject as controller } from '@ember/controller'; import WithNamespaceResetting from 'nomad-ui/mixins/with-namespace-resetting'; -const { Controller, computed, inject } = Ember; - export default Controller.extend(WithNamespaceResetting, { - jobController: inject.controller('jobs.job'), + jobController: controller('jobs.job'), - job: computed.alias('model'), - versions: computed.alias('model.versions'), + job: alias('model'), + versions: alias('model.versions'), - breadcrumbs: computed.alias('jobController.breadcrumbs'), + breadcrumbs: alias('jobController.breadcrumbs'), }); diff --git a/ui/app/controllers/servers.js b/ui/app/controllers/servers.js index a8d0e1f8a..5e6f1bea4 100644 --- a/ui/app/controllers/servers.js +++ b/ui/app/controllers/servers.js @@ -1,11 +1,10 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Controller from '@ember/controller'; import Sortable from 'nomad-ui/mixins/sortable'; -const { Controller, computed } = Ember; - export default Controller.extend(Sortable, { - nodes: computed.alias('model.nodes'), - agents: computed.alias('model.agents'), + nodes: alias('model.nodes'), + agents: alias('model.agents'), queryParams: { currentPage: 'page', @@ -21,6 +20,6 @@ export default Controller.extend(Sortable, { isForbidden: false, - listToSort: computed.alias('agents'), - sortedAgents: computed.alias('listSorted'), + listToSort: alias('agents'), + sortedAgents: alias('listSorted'), }); diff --git a/ui/app/controllers/servers/index.js b/ui/app/controllers/servers/index.js index adf0eee4d..ee49e8f72 100644 --- a/ui/app/controllers/servers/index.js +++ b/ui/app/controllers/servers/index.js @@ -1,8 +1,7 @@ -import Ember from 'ember'; - -const { Controller, computed, inject } = Ember; +import { alias } from '@ember/object/computed'; +import Controller, { inject as controller } from '@ember/controller'; export default Controller.extend({ - serversController: inject.controller('servers'), - isForbidden: computed.alias('serversController.isForbidden'), + serversController: controller('servers'), + isForbidden: alias('serversController.isForbidden'), }); diff --git a/ui/app/controllers/servers/server.js b/ui/app/controllers/servers/server.js index 94f5f0bdd..dd455b3ad 100644 --- a/ui/app/controllers/servers/server.js +++ b/ui/app/controllers/servers/server.js @@ -1,6 +1,5 @@ -import Ember from 'ember'; - -const { Controller, computed } = Ember; +import Controller from '@ember/controller'; +import { computed } from '@ember/object'; export default Controller.extend({ activeTab: 'tags', diff --git a/ui/app/controllers/settings/tokens.js b/ui/app/controllers/settings/tokens.js index 2aad23469..be1db757d 100644 --- a/ui/app/controllers/settings/tokens.js +++ b/ui/app/controllers/settings/tokens.js @@ -1,12 +1,13 @@ -import Ember from 'ember'; - -const { Controller, inject, computed, getOwner } = Ember; +import { inject as service } from '@ember/service'; +import { reads } from '@ember/object/computed'; +import Controller from '@ember/controller'; +import { getOwner } from '@ember/application'; export default Controller.extend({ - token: inject.service(), - store: inject.service(), + token: service(), + store: service(), - secret: computed.reads('token.secret'), + secret: reads('token.secret'), tokenIsValid: false, tokenIsInvalid: false, diff --git a/ui/app/helpers/css-class.js b/ui/app/helpers/css-class.js index a23d3b90d..d7f30127c 100644 --- a/ui/app/helpers/css-class.js +++ b/ui/app/helpers/css-class.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import { helper } from '@ember/component/helper'; /** * CSS Class @@ -12,4 +12,4 @@ export function cssClass([updateType]) { return updateType.replace(/\//g, '-').dasherize(); } -export default Ember.Helper.helper(cssClass); +export default helper(cssClass); diff --git a/ui/app/helpers/format-bytes.js b/ui/app/helpers/format-bytes.js index dc3ab3e15..b2c69ed06 100644 --- a/ui/app/helpers/format-bytes.js +++ b/ui/app/helpers/format-bytes.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { Helper } = Ember; +import Helper from '@ember/component/helper'; const UNITS = ['Bytes', 'KiB', 'MiB']; diff --git a/ui/app/helpers/format-percentage.js b/ui/app/helpers/format-percentage.js index ff4358bc7..cfd409c13 100644 --- a/ui/app/helpers/format-percentage.js +++ b/ui/app/helpers/format-percentage.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import { helper } from '@ember/component/helper'; /** * Percentage Calculator @@ -35,4 +35,4 @@ function safeNumber(value) { return isNaN(value) ? 0 : +value; } -export default Ember.Helper.helper(formatPercentage); +export default helper(formatPercentage); diff --git a/ui/app/helpers/is-object.js b/ui/app/helpers/is-object.js index 0b7dae86d..97dd42e65 100644 --- a/ui/app/helpers/is-object.js +++ b/ui/app/helpers/is-object.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { Helper } = Ember; +import Helper from '@ember/component/helper'; export function isObject([value]) { const isObject = !Array.isArray(value) && value !== null && typeof value === 'object'; diff --git a/ui/app/helpers/lazy-click.js b/ui/app/helpers/lazy-click.js index f9d12dcd2..de96d1c0e 100644 --- a/ui/app/helpers/lazy-click.js +++ b/ui/app/helpers/lazy-click.js @@ -1,6 +1,5 @@ -import Ember from 'ember'; - -const { Helper, $ } = Ember; +import Helper from '@ember/component/helper'; +import $ from 'jquery'; /** * Lazy Click Event diff --git a/ui/app/helpers/pluralize.js b/ui/app/helpers/pluralize.js index 161b366a4..fcab84cbe 100644 --- a/ui/app/helpers/pluralize.js +++ b/ui/app/helpers/pluralize.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { Helper } = Ember; +import Helper from '@ember/component/helper'; export function pluralize([term, count]) { return count === 1 ? term : term.pluralize(); diff --git a/ui/app/helpers/x-icon.js b/ui/app/helpers/x-icon.js index d3c670e54..f53a50543 100644 --- a/ui/app/helpers/x-icon.js +++ b/ui/app/helpers/x-icon.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import { helper } from '@ember/component/helper'; import { inlineSvg } from 'ember-inline-svg/helpers/inline-svg'; // Generated at compile-time by ember-inline-svg @@ -18,4 +18,4 @@ export function xIcon(params, options) { return inlineSvg(SVGs, name, { class: classes }); } -export default Ember.Helper.helper(xIcon); +export default helper(xIcon); diff --git a/ui/app/mixins/searchable.js b/ui/app/mixins/searchable.js index 99a929eed..26557f75a 100644 --- a/ui/app/mixins/searchable.js +++ b/ui/app/mixins/searchable.js @@ -1,6 +1,5 @@ -import Ember from 'ember'; - -const { Mixin, computed, get } = Ember; +import Mixin from '@ember/object/mixin'; +import { get, computed } from '@ember/object'; /** Searchable mixin diff --git a/ui/app/mixins/sortable.js b/ui/app/mixins/sortable.js index 269075cd8..e6a78aaf9 100644 --- a/ui/app/mixins/sortable.js +++ b/ui/app/mixins/sortable.js @@ -1,6 +1,5 @@ -import Ember from 'ember'; - -const { Mixin, computed } = Ember; +import Mixin from '@ember/object/mixin'; +import { computed } from '@ember/object'; /** Sortable mixin diff --git a/ui/app/mixins/window-resizable.js b/ui/app/mixins/window-resizable.js index 3f3c5b7aa..6a7055bdf 100644 --- a/ui/app/mixins/window-resizable.js +++ b/ui/app/mixins/window-resizable.js @@ -1,8 +1,8 @@ -import Ember from 'ember'; +import Mixin from '@ember/object/mixin'; +import { run } from '@ember/runloop'; +import $ from 'jquery'; -const { run, $ } = Ember; - -export default Ember.Mixin.create({ +export default Mixin.create({ setupWindowResize: function() { run.scheduleOnce('afterRender', this, () => { this.set('_windowResizeHandler', this.get('windowResizeHandler').bind(this)); diff --git a/ui/app/mixins/with-forbidden-state.js b/ui/app/mixins/with-forbidden-state.js index 4b1397e09..85f27676a 100644 --- a/ui/app/mixins/with-forbidden-state.js +++ b/ui/app/mixins/with-forbidden-state.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { Mixin } = Ember; +import Mixin from '@ember/object/mixin'; export default Mixin.create({ setupController(controller) { diff --git a/ui/app/mixins/with-model-error-handling.js b/ui/app/mixins/with-model-error-handling.js index 585c61595..484a80148 100644 --- a/ui/app/mixins/with-model-error-handling.js +++ b/ui/app/mixins/with-model-error-handling.js @@ -1,8 +1,6 @@ -import Ember from 'ember'; +import Mixin from '@ember/object/mixin'; import notifyError from 'nomad-ui/utils/notify-error'; -const { Mixin } = Ember; - export default Mixin.create({ model() { return this._super(...arguments).catch(notifyError(this)); diff --git a/ui/app/mixins/with-namespace-resetting.js b/ui/app/mixins/with-namespace-resetting.js index c40407568..ab57f3e3e 100644 --- a/ui/app/mixins/with-namespace-resetting.js +++ b/ui/app/mixins/with-namespace-resetting.js @@ -1,10 +1,10 @@ -import Ember from 'ember'; - -const { Mixin, inject } = Ember; +import { inject as controller } from '@ember/controller'; +import { inject as service } from '@ember/service'; +import Mixin from '@ember/object/mixin'; export default Mixin.create({ - system: inject.service(), - jobsController: inject.controller('jobs'), + system: service(), + jobsController: controller('jobs'), actions: { gotoJobs(namespace) { diff --git a/ui/app/models/agent.js b/ui/app/models/agent.js index aea6c7ee5..63bd7d2b0 100644 --- a/ui/app/models/agent.js +++ b/ui/app/models/agent.js @@ -1,11 +1,10 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import { computed } from '@ember/object'; import Model from 'ember-data/model'; import attr from 'ember-data/attr'; -const { computed, inject } = Ember; - export default Model.extend({ - system: inject.service(), + system: service(), name: attr('string'), address: attr('string'), diff --git a/ui/app/models/allocation.js b/ui/app/models/allocation.js index 6cf164a41..617c1d3f7 100644 --- a/ui/app/models/allocation.js +++ b/ui/app/models/allocation.js @@ -1,4 +1,7 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import { readOnly } from '@ember/object/computed'; +import { computed } from '@ember/object'; +import RSVP from 'rsvp'; import Model from 'ember-data/model'; import attr from 'ember-data/attr'; import { belongsTo } from 'ember-data/relationships'; @@ -7,8 +10,6 @@ import PromiseObject from '../utils/classes/promise-object'; import timeout from '../utils/timeout'; import shortUUIDProperty from '../utils/properties/short-uuid'; -const { computed, RSVP, inject } = Ember; - const STATUS_ORDER = { pending: 1, running: 2, @@ -18,7 +19,7 @@ const STATUS_ORDER = { }; export default Model.extend({ - token: inject.service(), + token: service(), shortId: shortUUIDProperty('id'), job: belongsTo('job'), @@ -56,7 +57,7 @@ export default Model.extend({ return taskGroups && taskGroups.findBy('name', this.get('taskGroupName')); }), - memoryUsed: computed.readOnly('stats.ResourceUsage.MemoryStats.RSS'), + memoryUsed: readOnly('stats.ResourceUsage.MemoryStats.RSS'), cpuUsed: computed('stats.ResourceUsage.CpuStats.TotalTicks', function() { return Math.floor(this.get('stats.ResourceUsage.CpuStats.TotalTicks') || 0); }), diff --git a/ui/app/models/deployment.js b/ui/app/models/deployment.js index 8f4440ba2..02dfb4c81 100644 --- a/ui/app/models/deployment.js +++ b/ui/app/models/deployment.js @@ -1,4 +1,5 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import { computed } from '@ember/object'; import Model from 'ember-data/model'; import attr from 'ember-data/attr'; import { belongsTo, hasMany } from 'ember-data/relationships'; @@ -6,8 +7,6 @@ import { fragmentArray } from 'ember-data-model-fragments/attributes'; import shortUUIDProperty from '../utils/properties/short-uuid'; import sumAggregation from '../utils/properties/sum-aggregation'; -const { computed } = Ember; - export default Model.extend({ shortId: shortUUIDProperty('id'), @@ -35,7 +34,7 @@ export default Model.extend({ }), // Dependent keys can only go one level past an @each so an alias is needed - versionSubmitTime: computed.alias('version.submitTime'), + versionSubmitTime: alias('version.submitTime'), placedCanaries: sumAggregation('taskGroupSummaries', 'placedCanaries'), desiredCanaries: sumAggregation('taskGroupSummaries', 'desiredCanaries'), diff --git a/ui/app/models/evaluation.js b/ui/app/models/evaluation.js index 8afdf15ae..5fcb3550a 100644 --- a/ui/app/models/evaluation.js +++ b/ui/app/models/evaluation.js @@ -1,12 +1,10 @@ -import Ember from 'ember'; +import { bool } from '@ember/object/computed'; import Model from 'ember-data/model'; import attr from 'ember-data/attr'; import { belongsTo } from 'ember-data/relationships'; import { fragmentArray } from 'ember-data-model-fragments/attributes'; import shortUUIDProperty from '../utils/properties/short-uuid'; -const { computed } = Ember; - export default Model.extend({ shortId: shortUUIDProperty('id'), priority: attr('number'), @@ -16,7 +14,7 @@ export default Model.extend({ statusDescription: attr('string'), failedTGAllocs: fragmentArray('placement-failure', { defaultValue: () => [] }), - hasPlacementFailures: computed.bool('failedTGAllocs.length'), + hasPlacementFailures: bool('failedTGAllocs.length'), // TEMPORARY: https://github.com/emberjs/data/issues/5209 originalJobId: attr('string'), diff --git a/ui/app/models/job.js b/ui/app/models/job.js index 4f33983ac..511f89856 100644 --- a/ui/app/models/job.js +++ b/ui/app/models/job.js @@ -1,12 +1,11 @@ -import Ember from 'ember'; +import { collect, sum, bool, equal } from '@ember/object/computed'; +import { computed } from '@ember/object'; import Model from 'ember-data/model'; import attr from 'ember-data/attr'; import { belongsTo, hasMany } from 'ember-data/relationships'; import { fragmentArray } from 'ember-data-model-fragments/attributes'; import sumAggregation from '../utils/properties/sum-aggregation'; -const { computed } = Ember; - export default Model.extend({ region: attr('string'), name: attr('string'), @@ -35,7 +34,7 @@ export default Model.extend({ failedAllocs: sumAggregation('taskGroupSummaries', 'failedAllocs'), lostAllocs: sumAggregation('taskGroupSummaries', 'lostAllocs'), - allocsList: computed.collect( + allocsList: collect( 'queuedAllocs', 'startingAllocs', 'runningAllocs', @@ -44,7 +43,7 @@ export default Model.extend({ 'lostAllocs' ), - totalAllocs: computed.sum('allocsList'), + totalAllocs: sum('allocsList'), pendingChildren: attr('number'), runningChildren: attr('number'), @@ -56,7 +55,7 @@ export default Model.extend({ evaluations: hasMany('evaluations'), namespace: belongsTo('namespace'), - hasPlacementFailures: computed.bool('latestFailureEvaluation'), + hasPlacementFailures: bool('latestFailureEvaluation'), latestEvaluation: computed('evaluations.@each.modifyIndex', 'evaluations.isPending', function() { const evaluations = this.get('evaluations'); @@ -82,7 +81,7 @@ export default Model.extend({ } ), - supportsDeployments: computed.equal('type', 'service'), + supportsDeployments: equal('type', 'service'), runningDeployment: computed('deployments.@each.status', function() { return this.get('deployments').findBy('status', 'running'); diff --git a/ui/app/models/namespace.js b/ui/app/models/namespace.js index 7b05135e8..b5b5f5750 100644 --- a/ui/app/models/namespace.js +++ b/ui/app/models/namespace.js @@ -1,11 +1,9 @@ -import Ember from 'ember'; +import { readOnly } from '@ember/object/computed'; import Model from 'ember-data/model'; import attr from 'ember-data/attr'; -const { computed } = Ember; - export default Model.extend({ - name: computed.readOnly('id'), + name: readOnly('id'), hash: attr('string'), description: attr('string'), }); diff --git a/ui/app/models/node-attributes.js b/ui/app/models/node-attributes.js index 6bfaba7ca..c893d8500 100644 --- a/ui/app/models/node-attributes.js +++ b/ui/app/models/node-attributes.js @@ -1,9 +1,8 @@ -import Ember from 'ember'; +import { get, computed } from '@ember/object'; import attr from 'ember-data/attr'; import Fragment from 'ember-data-model-fragments/fragment'; import flat from 'npm:flat'; -const { computed, get } = Ember; const { unflatten } = flat; export default Fragment.extend({ @@ -12,10 +11,12 @@ export default Fragment.extend({ attributesStructured: computed('attributes', function() { // `unflatten` doesn't sort keys before unflattening, so manual preprocessing is necessary. const original = this.get('attributes'); - const attrs = Object.keys(original).sort().reduce((obj, key) => { - obj[key] = original[key]; - return obj; - }, {}); + const attrs = Object.keys(original) + .sort() + .reduce((obj, key) => { + obj[key] = original[key]; + return obj; + }, {}); return unflatten(attrs, { overwrite: true }); }), diff --git a/ui/app/models/node.js b/ui/app/models/node.js index 6966acfb9..56e489e1d 100644 --- a/ui/app/models/node.js +++ b/ui/app/models/node.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; import Model from 'ember-data/model'; import attr from 'ember-data/attr'; import { hasMany } from 'ember-data/relationships'; @@ -6,8 +6,6 @@ import { fragment } from 'ember-data-model-fragments/attributes'; import shortUUIDProperty from '../utils/properties/short-uuid'; import ipParts from '../utils/ip-parts'; -const { computed } = Ember; - export default Model.extend({ // Available from list response name: attr('string'), diff --git a/ui/app/models/task-event.js b/ui/app/models/task-event.js index 1a26daadc..3d6f464f3 100644 --- a/ui/app/models/task-event.js +++ b/ui/app/models/task-event.js @@ -1,10 +1,9 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; import Fragment from 'ember-data-model-fragments/fragment'; import attr from 'ember-data/attr'; import { fragmentOwner } from 'ember-data-model-fragments/attributes'; import moment from 'moment'; -const { computed } = Ember; const displayProps = [ 'message', 'validationError', diff --git a/ui/app/models/task-group-deployment-summary.js b/ui/app/models/task-group-deployment-summary.js index 9a6b0eab3..9d5c04035 100644 --- a/ui/app/models/task-group-deployment-summary.js +++ b/ui/app/models/task-group-deployment-summary.js @@ -1,10 +1,8 @@ -import Ember from 'ember'; +import { gt } from '@ember/object/computed'; import Fragment from 'ember-data-model-fragments/fragment'; import attr from 'ember-data/attr'; import { fragmentOwner } from 'ember-data-model-fragments/attributes'; -const { computed } = Ember; - export default Fragment.extend({ deployment: fragmentOwner(), @@ -12,7 +10,7 @@ export default Fragment.extend({ autoRevert: attr('boolean'), promoted: attr('boolean'), - requiresPromotion: computed.gt('desiredCanaries', 0), + requiresPromotion: gt('desiredCanaries', 0), placedCanaries: attr('number'), desiredCanaries: attr('number'), diff --git a/ui/app/models/task-group-summary.js b/ui/app/models/task-group-summary.js index 5d937f73b..9e713b8ab 100644 --- a/ui/app/models/task-group-summary.js +++ b/ui/app/models/task-group-summary.js @@ -1,10 +1,8 @@ -import Ember from 'ember'; +import { collect, sum } from '@ember/object/computed'; import Fragment from 'ember-data-model-fragments/fragment'; import attr from 'ember-data/attr'; import { fragmentOwner } from 'ember-data-model-fragments/attributes'; -const { computed } = Ember; - export default Fragment.extend({ job: fragmentOwner(), name: attr('string'), @@ -16,7 +14,7 @@ export default Fragment.extend({ failedAllocs: attr('number'), lostAllocs: attr('number'), - allocsList: computed.collect( + allocsList: collect( 'queuedAllocs', 'startingAllocs', 'runningAllocs', @@ -25,5 +23,5 @@ export default Fragment.extend({ 'lostAllocs' ), - totalAllocs: computed.sum('allocsList'), + totalAllocs: sum('allocsList'), }); diff --git a/ui/app/models/task-group.js b/ui/app/models/task-group.js index b3998a4cd..e5ea67d0e 100644 --- a/ui/app/models/task-group.js +++ b/ui/app/models/task-group.js @@ -1,11 +1,9 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; import Fragment from 'ember-data-model-fragments/fragment'; import attr from 'ember-data/attr'; import { fragmentOwner, fragmentArray } from 'ember-data-model-fragments/attributes'; import sumAggregation from '../utils/properties/sum-aggregation'; -const { computed } = Ember; - export default Fragment.extend({ job: fragmentOwner(), diff --git a/ui/app/models/task-state.js b/ui/app/models/task-state.js index a5b3bff22..217e87459 100644 --- a/ui/app/models/task-state.js +++ b/ui/app/models/task-state.js @@ -1,10 +1,9 @@ -import Ember from 'ember'; +import { none } from '@ember/object/computed'; +import { computed } from '@ember/object'; import Fragment from 'ember-data-model-fragments/fragment'; import attr from 'ember-data/attr'; import { fragment, fragmentOwner, fragmentArray } from 'ember-data-model-fragments/attributes'; -const { computed } = Ember; - export default Fragment.extend({ name: attr('string'), state: attr('string'), @@ -12,7 +11,7 @@ export default Fragment.extend({ finishedAt: attr('date'), failed: attr('boolean'), - isActive: computed.none('finishedAt'), + isActive: none('finishedAt'), allocation: fragmentOwner(), task: computed('allocation.taskGroup.tasks.[]', function() { diff --git a/ui/app/models/token.js b/ui/app/models/token.js index 07243dd8a..37db199ae 100644 --- a/ui/app/models/token.js +++ b/ui/app/models/token.js @@ -1,10 +1,8 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; import Model from 'ember-data/model'; import attr from 'ember-data/attr'; import { hasMany } from 'ember-data/relationships'; -const { computed } = Ember; - export default Model.extend({ secret: attr('string'), name: attr('string'), @@ -14,5 +12,5 @@ export default Model.extend({ policies: hasMany('policy'), policyNames: attr(), - accessor: computed.alias('id'), + accessor: alias('id'), }); diff --git a/ui/app/router.js b/ui/app/router.js index bddf8813d..494a2173d 100644 --- a/ui/app/router.js +++ b/ui/app/router.js @@ -1,7 +1,7 @@ -import Ember from 'ember'; +import EmberRouter from '@ember/routing/router'; import config from './config/environment'; -const Router = Ember.Router.extend({ +const Router = EmberRouter.extend({ location: config.locationType, rootURL: config.rootURL, }); diff --git a/ui/app/routes/allocations/allocation.js b/ui/app/routes/allocations/allocation.js index 60eff663b..17aa8b10c 100644 --- a/ui/app/routes/allocations/allocation.js +++ b/ui/app/routes/allocations/allocation.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; import WithModelErrorHandling from 'nomad-ui/mixins/with-model-error-handling'; -const { Route } = Ember; - export default Route.extend(WithModelErrorHandling); diff --git a/ui/app/routes/allocations/allocation/task.js b/ui/app/routes/allocations/allocation/task.js index 4a57f1ad2..dcf2bda10 100644 --- a/ui/app/routes/allocations/allocation/task.js +++ b/ui/app/routes/allocations/allocation/task.js @@ -1,9 +1,9 @@ -import Ember from 'ember'; - -const { Route, inject, Error: EmberError } = Ember; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; +import EmberError from '@ember/error'; export default Route.extend({ - store: inject.service(), + store: service(), model({ name }) { const allocation = this.modelFor('allocations.allocation'); diff --git a/ui/app/routes/allocations/allocation/task/logs.js b/ui/app/routes/allocations/allocation/task/logs.js index 5e4767eb5..399258f21 100644 --- a/ui/app/routes/allocations/allocation/task/logs.js +++ b/ui/app/routes/allocations/allocation/task/logs.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { Route } = Ember; +import Route from '@ember/routing/route'; export default Route.extend({ model() { diff --git a/ui/app/routes/application.js b/ui/app/routes/application.js index 0a2e57c39..f7437a18c 100644 --- a/ui/app/routes/application.js +++ b/ui/app/routes/application.js @@ -1,9 +1,8 @@ -import Ember from 'ember'; - -const { Route, inject } = Ember; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; export default Route.extend({ - config: inject.service(), + config: service(), resetController(controller, isExiting) { if (isExiting) { diff --git a/ui/app/routes/clients.js b/ui/app/routes/clients.js index f2915a3a9..49559c8c9 100644 --- a/ui/app/routes/clients.js +++ b/ui/app/routes/clients.js @@ -1,12 +1,12 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; +import RSVP from 'rsvp'; import WithForbiddenState from 'nomad-ui/mixins/with-forbidden-state'; import notifyForbidden from 'nomad-ui/utils/notify-forbidden'; -const { Route, inject, RSVP } = Ember; - export default Route.extend(WithForbiddenState, { - store: inject.service(), - system: inject.service(), + store: service(), + system: service(), beforeModel() { return this.get('system.leader'); diff --git a/ui/app/routes/clients/client.js b/ui/app/routes/clients/client.js index 9571d975a..1be621e47 100644 --- a/ui/app/routes/clients/client.js +++ b/ui/app/routes/clients/client.js @@ -1,10 +1,9 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import notifyError from 'nomad-ui/utils/notify-error'; -const { Route, inject } = Ember; - export default Route.extend({ - store: inject.service(), + store: service(), model() { return this._super(...arguments).catch(notifyError(this)); diff --git a/ui/app/routes/index.js b/ui/app/routes/index.js index f07c338c8..7de6fff38 100644 --- a/ui/app/routes/index.js +++ b/ui/app/routes/index.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { Route } = Ember; +import Route from '@ember/routing/route'; export default Route.extend({ redirect() { diff --git a/ui/app/routes/jobs.js b/ui/app/routes/jobs.js index 9d51a55b6..745e326e2 100644 --- a/ui/app/routes/jobs.js +++ b/ui/app/routes/jobs.js @@ -1,12 +1,12 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; +import { run } from '@ember/runloop'; import WithForbiddenState from 'nomad-ui/mixins/with-forbidden-state'; import notifyForbidden from 'nomad-ui/utils/notify-forbidden'; -const { Route, inject, run } = Ember; - export default Route.extend(WithForbiddenState, { - system: inject.service(), - store: inject.service(), + system: service(), + store: service(), beforeModel() { return this.get('system.namespaces'); diff --git a/ui/app/routes/jobs/index.js b/ui/app/routes/jobs/index.js index 8962abd90..0a8317fea 100644 --- a/ui/app/routes/jobs/index.js +++ b/ui/app/routes/jobs/index.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { Route } = Ember; +import Route from '@ember/routing/route'; export default Route.extend({ actions: { diff --git a/ui/app/routes/jobs/job.js b/ui/app/routes/jobs/job.js index fa40f07bd..558ea55e4 100644 --- a/ui/app/routes/jobs/job.js +++ b/ui/app/routes/jobs/job.js @@ -1,10 +1,10 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; +import RSVP from 'rsvp'; import notifyError from 'nomad-ui/utils/notify-error'; -const { Route, RSVP, inject } = Ember; - export default Route.extend({ - store: inject.service(), + store: service(), serialize(model) { return { job_name: model.get('plainId') }; diff --git a/ui/app/routes/jobs/job/definition.js b/ui/app/routes/jobs/job/definition.js index 4f24dbc60..8730f83b8 100644 --- a/ui/app/routes/jobs/job/definition.js +++ b/ui/app/routes/jobs/job/definition.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { Route } = Ember; +import Route from '@ember/routing/route'; export default Route.extend({ model() { diff --git a/ui/app/routes/jobs/job/deployments.js b/ui/app/routes/jobs/job/deployments.js index a048c898a..41363eff6 100644 --- a/ui/app/routes/jobs/job/deployments.js +++ b/ui/app/routes/jobs/job/deployments.js @@ -1,6 +1,5 @@ -import Ember from 'ember'; - -const { Route, RSVP } = Ember; +import Route from '@ember/routing/route'; +import RSVP from 'rsvp'; export default Route.extend({ model() { diff --git a/ui/app/routes/jobs/job/task-group.js b/ui/app/routes/jobs/job/task-group.js index 2be6107ab..def6e57ea 100644 --- a/ui/app/routes/jobs/job/task-group.js +++ b/ui/app/routes/jobs/job/task-group.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { Route } = Ember; +import Route from '@ember/routing/route'; export default Route.extend({ model({ name }) { diff --git a/ui/app/routes/jobs/job/versions.js b/ui/app/routes/jobs/job/versions.js index 637d663c3..6debc85db 100644 --- a/ui/app/routes/jobs/job/versions.js +++ b/ui/app/routes/jobs/job/versions.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { Route } = Ember; +import Route from '@ember/routing/route'; export default Route.extend({ model() { diff --git a/ui/app/routes/not-found.js b/ui/app/routes/not-found.js index 1974ee9ba..a7df89c01 100644 --- a/ui/app/routes/not-found.js +++ b/ui/app/routes/not-found.js @@ -1,6 +1,5 @@ -import Ember from 'ember'; - -const { Route, Error: EmberError } = Ember; +import Route from '@ember/routing/route'; +import EmberError from '@ember/error'; export default Route.extend({ model() { diff --git a/ui/app/routes/servers.js b/ui/app/routes/servers.js index f2915a3a9..49559c8c9 100644 --- a/ui/app/routes/servers.js +++ b/ui/app/routes/servers.js @@ -1,12 +1,12 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; +import RSVP from 'rsvp'; import WithForbiddenState from 'nomad-ui/mixins/with-forbidden-state'; import notifyForbidden from 'nomad-ui/utils/notify-forbidden'; -const { Route, inject, RSVP } = Ember; - export default Route.extend(WithForbiddenState, { - store: inject.service(), - system: inject.service(), + store: service(), + system: service(), beforeModel() { return this.get('system.leader'); diff --git a/ui/app/routes/servers/server.js b/ui/app/routes/servers/server.js index 60eff663b..17aa8b10c 100644 --- a/ui/app/routes/servers/server.js +++ b/ui/app/routes/servers/server.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; import WithModelErrorHandling from 'nomad-ui/mixins/with-model-error-handling'; -const { Route } = Ember; - export default Route.extend(WithModelErrorHandling); diff --git a/ui/app/serializers/allocation.js b/ui/app/serializers/allocation.js index 33cb3ebf5..8a7a5d43b 100644 --- a/ui/app/serializers/allocation.js +++ b/ui/app/serializers/allocation.js @@ -1,10 +1,9 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import { get } from '@ember/object'; import ApplicationSerializer from './application'; -const { get, inject } = Ember; - export default ApplicationSerializer.extend({ - system: inject.service(), + system: service(), attrs: { taskGroupName: 'TaskGroup', diff --git a/ui/app/serializers/application.js b/ui/app/serializers/application.js index bdec30fc1..3d63f5b63 100644 --- a/ui/app/serializers/application.js +++ b/ui/app/serializers/application.js @@ -1,8 +1,6 @@ -import Ember from 'ember'; +import { makeArray } from '@ember/array'; import JSONSerializer from 'ember-data/serializers/json'; -const { makeArray } = Ember; - export default JSONSerializer.extend({ primaryKey: 'ID', diff --git a/ui/app/serializers/deployment.js b/ui/app/serializers/deployment.js index 04e5475a0..2a21f484e 100644 --- a/ui/app/serializers/deployment.js +++ b/ui/app/serializers/deployment.js @@ -1,8 +1,7 @@ -import Ember from 'ember'; +import { get } from '@ember/object'; +import { assign } from '@ember/polyfills'; import ApplicationSerializer from './application'; -const { get, assign } = Ember; - export default ApplicationSerializer.extend({ attrs: { versionNumber: 'JobVersion', diff --git a/ui/app/serializers/evaluation.js b/ui/app/serializers/evaluation.js index 76a2b9b3c..e5faad410 100644 --- a/ui/app/serializers/evaluation.js +++ b/ui/app/serializers/evaluation.js @@ -1,10 +1,10 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import { get } from '@ember/object'; +import { assign } from '@ember/polyfills'; import ApplicationSerializer from './application'; -const { inject, get, assign } = Ember; - export default ApplicationSerializer.extend({ - system: inject.service(), + system: service(), normalize(typeHash, hash) { hash.FailedTGAllocs = Object.keys(hash.FailedTGAllocs || {}).map(key => { diff --git a/ui/app/serializers/job-version.js b/ui/app/serializers/job-version.js index 490b6d740..f05809b3f 100644 --- a/ui/app/serializers/job-version.js +++ b/ui/app/serializers/job-version.js @@ -1,8 +1,6 @@ -import Ember from 'ember'; +import { assign } from '@ember/polyfills'; import ApplicationSerializer from './application'; -const { assign } = Ember; - export default ApplicationSerializer.extend({ attrs: { number: 'Version', diff --git a/ui/app/serializers/job.js b/ui/app/serializers/job.js index 74eeb78b0..e09c95cd8 100644 --- a/ui/app/serializers/job.js +++ b/ui/app/serializers/job.js @@ -1,9 +1,8 @@ -import Ember from 'ember'; +import { get } from '@ember/object'; +import { assign } from '@ember/polyfills'; import ApplicationSerializer from './application'; import queryString from 'npm:query-string'; -const { get, assign } = Ember; - export default ApplicationSerializer.extend({ attrs: { parameterized: 'ParameterizedJob', diff --git a/ui/app/serializers/node.js b/ui/app/serializers/node.js index 376f15d12..e0ecfc9a7 100644 --- a/ui/app/serializers/node.js +++ b/ui/app/serializers/node.js @@ -1,10 +1,8 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; import ApplicationSerializer from './application'; -const { inject } = Ember; - export default ApplicationSerializer.extend({ - config: inject.service(), + config: service(), attrs: { httpAddr: 'HTTPAddr', diff --git a/ui/app/serializers/task-group.js b/ui/app/serializers/task-group.js index 107ddf11e..a834250c9 100644 --- a/ui/app/serializers/task-group.js +++ b/ui/app/serializers/task-group.js @@ -1,8 +1,6 @@ -import Ember from 'ember'; +import { copy } from '@ember/object/internals'; import ApplicationSerializer from './application'; -const { copy } = Ember; - export default ApplicationSerializer.extend({ normalize(typeHash, hash) { // Provide EphemeralDisk to each task diff --git a/ui/app/serializers/token.js b/ui/app/serializers/token.js index ede185aed..7ac46e611 100644 --- a/ui/app/serializers/token.js +++ b/ui/app/serializers/token.js @@ -1,8 +1,6 @@ -import Ember from 'ember'; +import { copy } from '@ember/object/internals'; import ApplicationSerializer from './application'; -const { copy } = Ember; - export default ApplicationSerializer.extend({ primaryKey: 'AccessorID', diff --git a/ui/app/services/config.js b/ui/app/services/config.js index 2c586d97c..80e38e1ea 100644 --- a/ui/app/services/config.js +++ b/ui/app/services/config.js @@ -1,14 +1,14 @@ -import Ember from 'ember'; +import { equal } from '@ember/object/computed'; +import Service from '@ember/service'; +import { get } from '@ember/object'; import config from '../config/environment'; -const { Service, get, computed } = Ember; - export default Service.extend({ unknownProperty(path) { return get(config, path); }, - isDev: computed.equal('environment', 'development'), - isProd: computed.equal('environment', 'production'), - isTest: computed.equal('environment', 'test'), + isDev: equal('environment', 'development'), + isProd: equal('environment', 'production'), + isTest: equal('environment', 'test'), }); diff --git a/ui/app/services/system.js b/ui/app/services/system.js index 111e3bfc2..558b411a9 100644 --- a/ui/app/services/system.js +++ b/ui/app/services/system.js @@ -1,12 +1,11 @@ -import Ember from 'ember'; +import Service, { inject as service } from '@ember/service'; +import { computed } from '@ember/object'; import PromiseObject from '../utils/classes/promise-object'; import { namespace } from '../adapters/application'; -const { Service, computed, inject } = Ember; - export default Service.extend({ - token: inject.service(), - store: inject.service(), + token: service(), + store: service(), leader: computed(function() { const token = this.get('token'); diff --git a/ui/app/services/token.js b/ui/app/services/token.js index d51d7510b..4ce27d9c3 100644 --- a/ui/app/services/token.js +++ b/ui/app/services/token.js @@ -1,8 +1,8 @@ -import Ember from 'ember'; +import Service from '@ember/service'; +import { computed } from '@ember/object'; +import { assign } from '@ember/polyfills'; import fetch from 'nomad-ui/utils/fetch'; -const { Service, computed, assign } = Ember; - export default Service.extend({ secret: computed({ get() { diff --git a/ui/app/utils/classes/abstract-logger.js b/ui/app/utils/classes/abstract-logger.js index 37ab2578b..55eb2da1e 100644 --- a/ui/app/utils/classes/abstract-logger.js +++ b/ui/app/utils/classes/abstract-logger.js @@ -1,16 +1,16 @@ -import Ember from 'ember'; +import { assert } from '@ember/debug'; +import Mixin from '@ember/object/mixin'; +import { computed } from '@ember/object'; +import { assign } from '@ember/polyfills'; import queryString from 'npm:query-string'; -const { Mixin, computed, assign } = Ember; const MAX_OUTPUT_LENGTH = 50000; export default Mixin.create({ url: '', params: computed(() => ({})), logFetch() { - Ember.assert( - 'Loggers need a logFetch method, which should have an interface like window.fetch' - ); + assert('Loggers need a logFetch method, which should have an interface like window.fetch'); }, endOffset: null, diff --git a/ui/app/utils/classes/log.js b/ui/app/utils/classes/log.js index 219be0b4e..5e873182a 100644 --- a/ui/app/utils/classes/log.js +++ b/ui/app/utils/classes/log.js @@ -1,11 +1,13 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import { assert } from '@ember/debug'; +import Evented from '@ember/object/evented'; +import EmberObject, { computed } from '@ember/object'; +import { assign } from '@ember/polyfills'; import queryString from 'npm:query-string'; import { task } from 'ember-concurrency'; import StreamLogger from 'nomad-ui/utils/classes/stream-logger'; import PollLogger from 'nomad-ui/utils/classes/poll-logger'; -const { Object: EmberObject, Evented, computed, assign } = Ember; - const MAX_OUTPUT_LENGTH = 50000; const Log = EmberObject.extend(Evented, { @@ -14,14 +16,12 @@ const Log = EmberObject.extend(Evented, { url: '', params: computed(() => ({})), logFetch() { - Ember.assert( - 'Log objects need a logFetch method, which should have an interface like window.fetch' - ); + assert('Log objects need a logFetch method, which should have an interface like window.fetch'); }, // Read-only state - isStreaming: computed.alias('logStreamer.poll.isRunning'), + isStreaming: alias('logStreamer.poll.isRunning'), logPointer: null, logStreamer: null, diff --git a/ui/app/utils/classes/poll-logger.js b/ui/app/utils/classes/poll-logger.js index 5310f3e45..e6c7078a7 100644 --- a/ui/app/utils/classes/poll-logger.js +++ b/ui/app/utils/classes/poll-logger.js @@ -1,9 +1,7 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; import { task, timeout } from 'ember-concurrency'; import AbstractLogger from './abstract-logger'; -const { Object: EmberObject } = Ember; - export default EmberObject.extend(AbstractLogger, { interval: 1000, diff --git a/ui/app/utils/classes/promise-object.js b/ui/app/utils/classes/promise-object.js index 8732062b3..fd762b728 100644 --- a/ui/app/utils/classes/promise-object.js +++ b/ui/app/utils/classes/promise-object.js @@ -1,5 +1,4 @@ -import Ember from 'ember'; - -const { ObjectProxy, PromiseProxyMixin } = Ember; +import ObjectProxy from '@ember/object/proxy'; +import PromiseProxyMixin from '@ember/object/promise-proxy-mixin'; export default ObjectProxy.extend(PromiseProxyMixin); diff --git a/ui/app/utils/classes/stream-logger.js b/ui/app/utils/classes/stream-logger.js index f19f0c668..ee1018734 100644 --- a/ui/app/utils/classes/stream-logger.js +++ b/ui/app/utils/classes/stream-logger.js @@ -1,10 +1,8 @@ -import Ember from 'ember'; +import EmberObject, { computed } from '@ember/object'; import { task } from 'ember-concurrency'; import TextDecoder from 'nomad-ui/utils/classes/text-decoder'; import AbstractLogger from './abstract-logger'; -const { Object: EmberObject, computed } = Ember; - export default EmberObject.extend(AbstractLogger, { reader: null, diff --git a/ui/app/utils/properties/short-uuid.js b/ui/app/utils/properties/short-uuid.js index 67ac94ea6..0a7af211c 100644 --- a/ui/app/utils/properties/short-uuid.js +++ b/ui/app/utils/properties/short-uuid.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { computed } = Ember; +import { computed } from '@ember/object'; // An Ember.Computed property for taking the first segment // of a uuid. diff --git a/ui/app/utils/properties/style-string.js b/ui/app/utils/properties/style-string.js index 0f91706f8..e6119aced 100644 --- a/ui/app/utils/properties/style-string.js +++ b/ui/app/utils/properties/style-string.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { computed } = Ember; +import { computed } from '@ember/object'; // An Ember.Computed property for transforming an object into an // html compatible style attribute diff --git a/ui/app/utils/properties/sum-aggregation.js b/ui/app/utils/properties/sum-aggregation.js index e6561ced3..41a486a0e 100644 --- a/ui/app/utils/properties/sum-aggregation.js +++ b/ui/app/utils/properties/sum-aggregation.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { computed } = Ember; +import { computed } from '@ember/object'; // An Ember.Computed property for summating all properties from a // set of objects. @@ -9,6 +7,8 @@ const { computed } = Ember; // sum: sumAggregationProperty('list', 'foo') // 4 export default function sumAggregationProperty(listKey, propKey) { return computed(`${listKey}.@each.${propKey}`, function() { - return this.get(listKey).mapBy(propKey).reduce((sum, count) => sum + count, 0); + return this.get(listKey) + .mapBy(propKey) + .reduce((sum, count) => sum + count, 0); }); } diff --git a/ui/app/utils/timeout.js b/ui/app/utils/timeout.js index f9db48850..5cff0fa99 100644 --- a/ui/app/utils/timeout.js +++ b/ui/app/utils/timeout.js @@ -1,6 +1,4 @@ -import Ember from 'ember'; - -const { RSVP } = Ember; +import RSVP from 'rsvp'; // An always failing promise used to race against other promises export default function timeout(duration) { diff --git a/ui/tests/acceptance/allocation-detail-test.js b/ui/tests/acceptance/allocation-detail-test.js index cd31e6c00..f8a7eff95 100644 --- a/ui/tests/acceptance/allocation-detail-test.js +++ b/ui/tests/acceptance/allocation-detail-test.js @@ -1,11 +1,9 @@ -import Ember from 'ember'; +import $ from 'jquery'; import { click, findAll, currentURL, find, visit } from 'ember-native-dom-helpers'; import { test } from 'qunit'; import moduleForAcceptance from 'nomad-ui/tests/helpers/module-for-acceptance'; import moment from 'moment'; -const { $ } = Ember; - let job; let node; let allocation; diff --git a/ui/tests/acceptance/client-detail-test.js b/ui/tests/acceptance/client-detail-test.js index 6cc1743ea..19da35151 100644 --- a/ui/tests/acceptance/client-detail-test.js +++ b/ui/tests/acceptance/client-detail-test.js @@ -1,12 +1,10 @@ -import Ember from 'ember'; +import $ from 'jquery'; import { click, find, findAll, currentURL, visit } from 'ember-native-dom-helpers'; import { test } from 'qunit'; import moduleForAcceptance from 'nomad-ui/tests/helpers/module-for-acceptance'; import { formatBytes } from 'nomad-ui/helpers/format-bytes'; import moment from 'moment'; -const { $ } = Ember; - let node; moduleForAcceptance('Acceptance | client detail', { diff --git a/ui/tests/acceptance/job-deployments-test.js b/ui/tests/acceptance/job-deployments-test.js index f69bebea0..45a6ae426 100644 --- a/ui/tests/acceptance/job-deployments-test.js +++ b/ui/tests/acceptance/job-deployments-test.js @@ -1,10 +1,10 @@ +import { get } from '@ember/object'; +import $ from 'jquery'; import { click, findAll, find, visit } from 'ember-native-dom-helpers'; -import Ember from 'ember'; import { test } from 'qunit'; import moment from 'moment'; import moduleForAcceptance from 'nomad-ui/tests/helpers/module-for-acceptance'; -const { get, $ } = Ember; const sum = (list, key) => list.reduce((sum, item) => sum + get(item, key), 0); let job; diff --git a/ui/tests/acceptance/job-detail-test.js b/ui/tests/acceptance/job-detail-test.js index cf3b1bcc5..efe84c465 100644 --- a/ui/tests/acceptance/job-detail-test.js +++ b/ui/tests/acceptance/job-detail-test.js @@ -1,10 +1,10 @@ +import { get } from '@ember/object'; +import $ from 'jquery'; import { click, findAll, currentURL, find, visit } from 'ember-native-dom-helpers'; -import Ember from 'ember'; import moment from 'moment'; import { test } from 'qunit'; import moduleForAcceptance from 'nomad-ui/tests/helpers/module-for-acceptance'; -const { get, $ } = Ember; const sum = (list, key) => list.reduce((sum, item) => sum + get(item, key), 0); let job; diff --git a/ui/tests/acceptance/job-versions-test.js b/ui/tests/acceptance/job-versions-test.js index 9c63240a4..4d8b161ce 100644 --- a/ui/tests/acceptance/job-versions-test.js +++ b/ui/tests/acceptance/job-versions-test.js @@ -1,11 +1,9 @@ -import Ember from 'ember'; +import $ from 'jquery'; import { findAll, visit } from 'ember-native-dom-helpers'; import { test } from 'qunit'; import moduleForAcceptance from 'nomad-ui/tests/helpers/module-for-acceptance'; import moment from 'moment'; -const { $ } = Ember; - let job; let versions; diff --git a/ui/tests/acceptance/jobs-list-test.js b/ui/tests/acceptance/jobs-list-test.js index c1cbaadbe..4de2869ea 100644 --- a/ui/tests/acceptance/jobs-list-test.js +++ b/ui/tests/acceptance/jobs-list-test.js @@ -1,10 +1,8 @@ -import Ember from 'ember'; +import $ from 'jquery'; import { click, find, findAll, currentURL, visit, fillIn } from 'ember-native-dom-helpers'; import { test } from 'qunit'; import moduleForAcceptance from 'nomad-ui/tests/helpers/module-for-acceptance'; -const { $ } = Ember; - moduleForAcceptance('Acceptance | jobs list', { beforeEach() { // Required for placing allocations (a result of creating jobs) diff --git a/ui/tests/acceptance/nodes-list-test.js b/ui/tests/acceptance/nodes-list-test.js index c78d83b4b..cc0ab00bc 100644 --- a/ui/tests/acceptance/nodes-list-test.js +++ b/ui/tests/acceptance/nodes-list-test.js @@ -1,12 +1,10 @@ -import Ember from 'ember'; +import $ from 'jquery'; import { click, find, findAll, currentURL, visit } from 'ember-native-dom-helpers'; import { test } from 'qunit'; import moduleForAcceptance from 'nomad-ui/tests/helpers/module-for-acceptance'; import { findLeader } from '../../mirage/config'; import ipParts from 'nomad-ui/utils/ip-parts'; -const { $ } = Ember; - function minimumSetup() { server.createList('node', 1); server.createList('agent', 1); diff --git a/ui/tests/acceptance/server-detail-test.js b/ui/tests/acceptance/server-detail-test.js index 94bd414b6..07c14324c 100644 --- a/ui/tests/acceptance/server-detail-test.js +++ b/ui/tests/acceptance/server-detail-test.js @@ -1,10 +1,8 @@ -import Ember from 'ember'; +import $ from 'jquery'; import { find, findAll, currentURL, visit } from 'ember-native-dom-helpers'; import { test } from 'qunit'; import moduleForAcceptance from 'nomad-ui/tests/helpers/module-for-acceptance'; -const { $ } = Ember; - let agent; moduleForAcceptance('Acceptance | server detail', { diff --git a/ui/tests/acceptance/task-detail-test.js b/ui/tests/acceptance/task-detail-test.js index 2c90da4d7..76beef6c8 100644 --- a/ui/tests/acceptance/task-detail-test.js +++ b/ui/tests/acceptance/task-detail-test.js @@ -1,12 +1,10 @@ -import Ember from 'ember'; +import $ from 'jquery'; import { click, findAll, currentURL, find, visit } from 'ember-native-dom-helpers'; import { test } from 'qunit'; import moduleForAcceptance from 'nomad-ui/tests/helpers/module-for-acceptance'; import moment from 'moment'; import ipParts from 'nomad-ui/utils/ip-parts'; -const { $ } = Ember; - let allocation; let task; diff --git a/ui/tests/acceptance/task-group-detail-test.js b/ui/tests/acceptance/task-group-detail-test.js index e729e1300..75404ae1e 100644 --- a/ui/tests/acceptance/task-group-detail-test.js +++ b/ui/tests/acceptance/task-group-detail-test.js @@ -1,12 +1,10 @@ -import Ember from 'ember'; +import $ from 'jquery'; import { click, find, findAll, fillIn, currentURL, visit } from 'ember-native-dom-helpers'; import { test } from 'qunit'; import moduleForAcceptance from 'nomad-ui/tests/helpers/module-for-acceptance'; import { formatBytes } from 'nomad-ui/helpers/format-bytes'; import moment from 'moment'; -const { $ } = Ember; - let job; let taskGroup; let tasks; diff --git a/ui/tests/acceptance/task-logs-test.js b/ui/tests/acceptance/task-logs-test.js index 77614c1e6..9d75fa391 100644 --- a/ui/tests/acceptance/task-logs-test.js +++ b/ui/tests/acceptance/task-logs-test.js @@ -1,10 +1,8 @@ -import Ember from 'ember'; +import { run } from '@ember/runloop'; import { find } from 'ember-native-dom-helpers'; import { test } from 'qunit'; import moduleForAcceptance from 'nomad-ui/tests/helpers/module-for-acceptance'; -const { run } = Ember; - let allocation; let task; diff --git a/ui/tests/acceptance/token-test.js b/ui/tests/acceptance/token-test.js index 2e62bd9e1..028f0d708 100644 --- a/ui/tests/acceptance/token-test.js +++ b/ui/tests/acceptance/token-test.js @@ -1,10 +1,8 @@ +import $ from 'jquery'; import { find, findAll, fillIn, click, visit } from 'ember-native-dom-helpers'; -import Ember from 'ember'; import { test, skip } from 'ember-qunit'; import moduleForAcceptance from 'nomad-ui/tests/helpers/module-for-acceptance'; -const { $ } = Ember; - let job; let node; let managementToken; diff --git a/ui/tests/helpers/destroy-app.js b/ui/tests/helpers/destroy-app.js index 1807e213c..28dec908e 100644 --- a/ui/tests/helpers/destroy-app.js +++ b/ui/tests/helpers/destroy-app.js @@ -1,7 +1,7 @@ -import Ember from 'ember'; +import { run } from '@ember/runloop'; export default function destroyApp(application) { - Ember.run(application, 'destroy'); + run(application, 'destroy'); if (window.server) { window.server.shutdown(); } diff --git a/ui/tests/helpers/module-for-acceptance.js b/ui/tests/helpers/module-for-acceptance.js index e37a54003..44fe4e0e2 100644 --- a/ui/tests/helpers/module-for-acceptance.js +++ b/ui/tests/helpers/module-for-acceptance.js @@ -1,10 +1,8 @@ +import { Promise } from 'rsvp'; import { module } from 'qunit'; -import Ember from 'ember'; import startApp from '../helpers/start-app'; import destroyApp from '../helpers/destroy-app'; -const { RSVP: { Promise } } = Ember; - export default function(name, options = {}) { module(name, { beforeEach() { diff --git a/ui/tests/helpers/module-for-serializer.js b/ui/tests/helpers/module-for-serializer.js index e2a1fec8a..d5cd2fc8b 100644 --- a/ui/tests/helpers/module-for-serializer.js +++ b/ui/tests/helpers/module-for-serializer.js @@ -1,9 +1,7 @@ -import Ember from 'ember'; +import { getOwner } from '@ember/application'; import { moduleForModel } from 'ember-qunit'; import { initialize as fragmentSerializerInitializer } from 'nomad-ui/initializers/fragment-serializer'; -const { getOwner } = Ember; - export default function(modelName, description, options = { needs: [] }) { // moduleForModel correctly wires up #Serializer.store, // but module does not. diff --git a/ui/tests/helpers/start-app.js b/ui/tests/helpers/start-app.js index 56b8b8e02..2ff98a176 100644 --- a/ui/tests/helpers/start-app.js +++ b/ui/tests/helpers/start-app.js @@ -1,4 +1,5 @@ -import Ember from 'ember'; +import { run } from '@ember/runloop'; +import { merge } from '@ember/polyfills'; import Application from '../../app'; import config from '../../config/environment'; import registerPowerSelectHelpers from '../../tests/helpers/ember-power-select'; @@ -6,10 +7,10 @@ import registerPowerSelectHelpers from '../../tests/helpers/ember-power-select'; registerPowerSelectHelpers(); export default function startApp(attrs) { - let attributes = Ember.merge({}, config.APP); - attributes = Ember.merge(attributes, attrs); // use defaults, but you can override; + let attributes = merge({}, config.APP); + attributes = merge(attributes, attrs); // use defaults, but you can override; - return Ember.run(() => { + return run(() => { let application = Application.create(attributes); application.setupForTesting(); application.injectTestHelpers(); diff --git a/ui/tests/integration/task-log-test.js b/ui/tests/integration/task-log-test.js index 2d58d6fe4..7c1999d2c 100644 --- a/ui/tests/integration/task-log-test.js +++ b/ui/tests/integration/task-log-test.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import { run } from '@ember/runloop'; import { test, moduleForComponent } from 'ember-qunit'; import wait from 'ember-test-helpers/wait'; import { find, click } from 'ember-native-dom-helpers'; @@ -6,8 +6,6 @@ import hbs from 'htmlbars-inline-precompile'; import Pretender from 'pretender'; import { logEncode } from '../../mirage/data/logs'; -const { run } = Ember; - const HOST = '1.1.1.1:1111'; const commonProps = { interval: 50, diff --git a/ui/tests/unit/mixins/searchable-test.js b/ui/tests/unit/mixins/searchable-test.js index dbe9d56a6..4478913a2 100644 --- a/ui/tests/unit/mixins/searchable-test.js +++ b/ui/tests/unit/mixins/searchable-test.js @@ -1,15 +1,15 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import { getOwner } from '@ember/application'; +import EmberObject, { computed } from '@ember/object'; import { moduleFor, test } from 'ember-qunit'; import Searchable from 'nomad-ui/mixins/searchable'; -const { getOwner, computed } = Ember; - moduleFor('mixin:searchable', 'Unit | Mixin | Searchable', { subject() { - const SearchableObject = Ember.Object.extend(Searchable, { + const SearchableObject = EmberObject.extend(Searchable, { source: null, searchProps: computed(() => ['id', 'name']), - listToSearch: computed.alias('source'), + listToSearch: alias('source'), }); this.register('test-container:searchable-object', SearchableObject); diff --git a/ui/tests/unit/models/task-group-test.js b/ui/tests/unit/models/task-group-test.js index b5262e4fa..7f7014bcd 100644 --- a/ui/tests/unit/models/task-group-test.js +++ b/ui/tests/unit/models/task-group-test.js @@ -1,7 +1,6 @@ -import Ember from 'ember'; +import { get } from '@ember/object'; import { moduleForModel, test } from 'ember-qunit'; -const { get } = Ember; const sum = (list, key) => list.reduce((sum, item) => sum + get(item, key), 0); moduleForModel('task-group', 'Unit | Model | task-group', { diff --git a/ui/tests/unit/utils/log-test.js b/ui/tests/unit/utils/log-test.js index e4842301a..94faed822 100644 --- a/ui/tests/unit/utils/log-test.js +++ b/ui/tests/unit/utils/log-test.js @@ -1,11 +1,11 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import RSVP from 'rsvp'; +import { run } from '@ember/runloop'; import sinon from 'sinon'; import wait from 'ember-test-helpers/wait'; import { module, test } from 'ember-qunit'; import _Log from 'nomad-ui/utils/classes/log'; -const { Object: EmberObject, RSVP, run } = Ember; - let startSpy, stopSpy, initSpy, fetchSpy; const MockStreamer = EmberObject.extend({