mirror of
https://github.com/kemko/nomad.git
synced 2026-01-01 16:05:42 +03:00
Update to Ember 3.16/Data 3.12 (#8319)
This updates to Ember 3.16 but leaves Ember Data at 3.12 so we don’t need to use the model fragments beta. It can be reviewed on a commit-by-commit basis: blueprint updates, fixes for test failures, and the removal of now-deprecated partials. It’s not a true update to Octane as that would involve turning on template-only components by default, which breaks various things. We can accomplish that separately and then add the edition setting to package.json.
This commit is contained in:
@@ -4,7 +4,6 @@
|
|||||||
|
|
||||||
root = true
|
root = true
|
||||||
|
|
||||||
|
|
||||||
[*]
|
[*]
|
||||||
end_of_line = lf
|
end_of_line = lf
|
||||||
charset = utf-8
|
charset = utf-8
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
root: true,
|
root: true,
|
||||||
globals: {
|
globals: {
|
||||||
@@ -35,6 +37,7 @@ module.exports = {
|
|||||||
],
|
],
|
||||||
'ember/classic-decorator-hooks': 'error',
|
'ember/classic-decorator-hooks': 'error',
|
||||||
'ember/classic-decorator-no-classic-methods': 'error',
|
'ember/classic-decorator-no-classic-methods': 'error',
|
||||||
|
'ember/no-jquery': 'error',
|
||||||
},
|
},
|
||||||
overrides: [
|
overrides: [
|
||||||
// node files
|
// node files
|
||||||
|
|||||||
@@ -1,16 +1,12 @@
|
|||||||
import Application from '@ember/application';
|
import Application from '@ember/application';
|
||||||
import Resolver from './resolver';
|
import Resolver from 'ember-resolver';
|
||||||
import loadInitializers from 'ember-load-initializers';
|
import loadInitializers from 'ember-load-initializers';
|
||||||
import config from './config/environment';
|
import config from './config/environment';
|
||||||
|
|
||||||
let App;
|
export default class App extends Application {
|
||||||
|
|
||||||
App = class AppApplication extends Application {
|
|
||||||
modulePrefix = config.modulePrefix;
|
modulePrefix = config.modulePrefix;
|
||||||
podModulePrefix = config.podModulePrefix;
|
podModulePrefix = config.podModulePrefix;
|
||||||
Resolver = Resolver;
|
Resolver = Resolver;
|
||||||
};
|
}
|
||||||
|
|
||||||
loadInitializers(App, config.modulePrefix);
|
loadInitializers(App, config.modulePrefix);
|
||||||
|
|
||||||
export default App;
|
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
import Component from '@ember/component';
|
import Component from '@ember/component';
|
||||||
import { tagName } from '@ember-decorators/component';
|
import { tagName } from '@ember-decorators/component';
|
||||||
|
import { inject as service } from '@ember/service';
|
||||||
|
|
||||||
@tagName('')
|
@tagName('')
|
||||||
export default class ForbiddenMessage extends Component {}
|
export default class ForbiddenMessage extends Component {
|
||||||
|
@service token;
|
||||||
|
}
|
||||||
|
|||||||
6
ui/app/components/hamburger-menu.js
Normal file
6
ui/app/components/hamburger-menu.js
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import Component from '@ember/component';
|
||||||
|
import { tagName } from '@ember-decorators/component';
|
||||||
|
|
||||||
|
@tagName('')
|
||||||
|
export default class HamburgerMenu extends Component {
|
||||||
|
}
|
||||||
6
ui/app/components/job-subnav.js
Normal file
6
ui/app/components/job-subnav.js
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import Component from '@ember/component';
|
||||||
|
import { tagName } from '@ember-decorators/component';
|
||||||
|
|
||||||
|
@tagName('')
|
||||||
|
export default class JobSubnav extends Component {
|
||||||
|
}
|
||||||
@@ -13,7 +13,7 @@ export default class ListTable extends Component {
|
|||||||
// Plan for a future with metadata (e.g., isSelected)
|
// Plan for a future with metadata (e.g., isSelected)
|
||||||
@computed('source.[]')
|
@computed('source.[]')
|
||||||
get decoratedSource() {
|
get decoratedSource() {
|
||||||
return this.source.map(row => ({
|
return (this.source || []).map(row => ({
|
||||||
model: row,
|
model: row,
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|||||||
6
ui/app/components/loading-spinner.js
Normal file
6
ui/app/components/loading-spinner.js
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import Component from '@ember/component';
|
||||||
|
import { tagName } from '@ember-decorators/component';
|
||||||
|
|
||||||
|
@tagName('')
|
||||||
|
export default class LoadingSpinner extends Component {
|
||||||
|
}
|
||||||
@@ -14,7 +14,11 @@ export default class RescheduleEventRow extends Component {
|
|||||||
|
|
||||||
// An allocation can also be provided directly
|
// An allocation can also be provided directly
|
||||||
@overridable('allocationId', function() {
|
@overridable('allocationId', function() {
|
||||||
return this.store.findRecord('allocation', this.allocationId);
|
if (this.allocationId) {
|
||||||
|
return this.store.findRecord('allocation', this.allocationId);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
})
|
})
|
||||||
allocation;
|
allocation;
|
||||||
|
|
||||||
|
|||||||
@@ -5,11 +5,14 @@ import d3Format from 'd3-format';
|
|||||||
import d3Scale from 'd3-scale';
|
import d3Scale from 'd3-scale';
|
||||||
import d3Array from 'd3-array';
|
import d3Array from 'd3-array';
|
||||||
import LineChart from 'nomad-ui/components/line-chart';
|
import LineChart from 'nomad-ui/components/line-chart';
|
||||||
|
import layout from '../templates/components/line-chart';
|
||||||
import formatDuration from 'nomad-ui/utils/format-duration';
|
import formatDuration from 'nomad-ui/utils/format-duration';
|
||||||
import classic from 'ember-classic-decorator';
|
import classic from 'ember-classic-decorator';
|
||||||
|
|
||||||
@classic
|
@classic
|
||||||
export default class StatsTimeSeries extends LineChart {
|
export default class StatsTimeSeries extends LineChart {
|
||||||
|
layout = layout;
|
||||||
|
|
||||||
xProp = 'timestamp';
|
xProp = 'timestamp';
|
||||||
yProp = 'percent';
|
yProp = 'percent';
|
||||||
timeseries = true;
|
timeseries = true;
|
||||||
|
|||||||
6
ui/app/components/svg-patterns.js
Normal file
6
ui/app/components/svg-patterns.js
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import Component from '@ember/component';
|
||||||
|
import { tagName } from '@ember-decorators/component';
|
||||||
|
|
||||||
|
@tagName('')
|
||||||
|
export default class SvgPatterns extends Component {
|
||||||
|
}
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
import Resolver from 'ember-resolver';
|
|
||||||
|
|
||||||
export default Resolver;
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import EmberRouter from '@ember/routing/router';
|
import EmberRouter from '@ember/routing/router';
|
||||||
import config from './config/environment';
|
import config from './config/environment';
|
||||||
|
|
||||||
class Router extends EmberRouter {
|
export default class Router extends EmberRouter {
|
||||||
location = config.locationType;
|
location = config.locationType;
|
||||||
rootURL = config.rootURL;
|
rootURL = config.rootURL;
|
||||||
}
|
}
|
||||||
@@ -68,5 +68,3 @@ Router.map(function() {
|
|||||||
|
|
||||||
this.route('not-found', { path: '/*' });
|
this.route('not-found', { path: '/*' });
|
||||||
});
|
});
|
||||||
|
|
||||||
export default Router;
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<HeadLayout />
|
<HeadLayout />
|
||||||
{{title (if system.shouldShowRegions (concat system.activeRegion " - ")) "Nomad" separator=" - "}}
|
{{title (if system.shouldShowRegions (concat system.activeRegion " - ")) "Nomad" separator=" - "}}
|
||||||
{{partial "svg-patterns"}}
|
<SvgPatterns />
|
||||||
{{#unless error}}
|
{{#unless error}}
|
||||||
{{outlet}}
|
{{outlet}}
|
||||||
{{else}}
|
{{else}}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{{title "Clients"}}
|
{{title "Clients"}}
|
||||||
<section class="section">
|
<section class="section">
|
||||||
{{#if isForbidden}}
|
{{#if isForbidden}}
|
||||||
{{partial "partials/forbidden-message"}}
|
<ForbiddenMessage />
|
||||||
{{else}}
|
{{else}}
|
||||||
<div class="toolbar">
|
<div class="toolbar">
|
||||||
<div class="toolbar-item">
|
<div class="toolbar-item">
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
<section class="section has-text-centered">{{partial "partials/loading-spinner"}}</section>
|
<section class="section has-text-centered"><LoadingSpinner /></section>
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
<nav class="navbar is-primary">
|
<nav class="navbar is-primary">
|
||||||
<div class="navbar-brand">
|
<div class="navbar-brand">
|
||||||
<span data-test-header-gutter-toggle class="gutter-toggle" aria-label="menu" onclick={{action onHamburgerClick}}>
|
<span data-test-header-gutter-toggle class="gutter-toggle" aria-label="menu" onclick={{action onHamburgerClick}}>
|
||||||
{{partial "partials/hamburger-menu"}}
|
<HamburgerMenu />
|
||||||
</span>
|
</span>
|
||||||
<LinkTo @route="jobs" class="navbar-item is-logo">
|
<LinkTo @route="jobs" class="navbar-item is-logo">
|
||||||
{{partial "partials/nomad-logo"}}
|
<NomadLogo />
|
||||||
</LinkTo>
|
</LinkTo>
|
||||||
</div>
|
</div>
|
||||||
{{#unless (media "isMobile")}}
|
{{#unless (media "isMobile")}}
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
<div class="gutter {{if isOpen "is-open"}}">
|
<div class="gutter {{if isOpen "is-open"}}">
|
||||||
<header class="collapsed-menu {{if isOpen "is-open"}}">
|
<header class="collapsed-menu {{if isOpen "is-open"}}">
|
||||||
<span data-test-gutter-gutter-toggle class="gutter-toggle" aria-label="menu" onclick={{action onHamburgerClick}}>
|
<span data-test-gutter-gutter-toggle class="gutter-toggle" aria-label="menu" onclick={{action onHamburgerClick}}>
|
||||||
{{partial "partials/hamburger-menu"}}
|
<HamburgerMenu />
|
||||||
</span>
|
</span>
|
||||||
<span class="logo-container">
|
<span class="logo-container">
|
||||||
{{partial "partials/nomad-logo"}}
|
<NomadLogo />
|
||||||
</span>
|
</span>
|
||||||
</header>
|
</header>
|
||||||
<aside class="menu">
|
<aside class="menu">
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 236 B After Width: | Height: | Size: 236 B |
@@ -1,4 +1,4 @@
|
|||||||
{{partial "jobs/job/subnav"}}
|
<JobSubnav @job={{@job}} />
|
||||||
<section class="section">
|
<section class="section">
|
||||||
{{yield}}
|
{{yield}}
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
<div data-test-subnav="job" class="tabs is-subnav">
|
<div data-test-subnav="job" class="tabs is-subnav">
|
||||||
<ul>
|
<ul>
|
||||||
<li data-test-tab="overview"><LinkTo @route="jobs.job.index" @model={{job}} @activeClass="is-active">Overview</LinkTo></li>
|
<li data-test-tab="overview"><LinkTo @route="jobs.job.index" @model={{@job}} @activeClass="is-active">Overview</LinkTo></li>
|
||||||
<li data-test-tab="definition"><LinkTo @route="jobs.job.definition" @model={{job}} @activeClass="is-active">Definition</LinkTo></li>
|
<li data-test-tab="definition"><LinkTo @route="jobs.job.definition" @model={{@job}} @activeClass="is-active">Definition</LinkTo></li>
|
||||||
<li data-test-tab="versions"><LinkTo @route="jobs.job.versions" @model={{job}} @activeClass="is-active">Versions</LinkTo></li>
|
<li data-test-tab="versions"><LinkTo @route="jobs.job.versions" @model={{@job}} @activeClass="is-active">Versions</LinkTo></li>
|
||||||
{{#if job.supportsDeployments}}
|
{{#if job.supportsDeployments}}
|
||||||
<li data-test-tab="deployments"><LinkTo @route="jobs.job.deployments" @model={{job}} @activeClass="is-active">Deployments</LinkTo></li>
|
<li data-test-tab="deployments"><LinkTo @route="jobs.job.deployments" @model={{@job}} @activeClass="is-active">Deployments</LinkTo></li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<li data-test-tab="allocations"><LinkTo @route="jobs.job.allocations" @model={{job}} @activeClass="is-active">Allocations</LinkTo></li>
|
<li data-test-tab="allocations"><LinkTo @route="jobs.job.allocations" @model={{@job}} @activeClass="is-active">Allocations</LinkTo></li>
|
||||||
<li data-test-tab="evaluations"><LinkTo @route="jobs.job.evaluations" @model={{job}} @activeClass="is-active">Evaluations</LinkTo></li>
|
<li data-test-tab="evaluations"><LinkTo @route="jobs.job.evaluations" @model={{@job}} @activeClass="is-active">Evaluations</LinkTo></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
@@ -1 +0,0 @@
|
|||||||
{{partial "components/line-chart"}}
|
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<section class="section">
|
<section class="section">
|
||||||
{{#if isForbidden}}
|
{{#if isForbidden}}
|
||||||
{{partial "partials/forbidden-message"}}
|
<ForbiddenMessage />
|
||||||
{{else}}
|
{{else}}
|
||||||
<div class="toolbar">
|
<div class="toolbar">
|
||||||
<div class="toolbar-item">
|
<div class="toolbar-item">
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<section class="section">
|
<section class="section">
|
||||||
{{#if isForbidden}}
|
{{#if isForbidden}}
|
||||||
{{partial "partials/forbidden-message"}}
|
<ForbiddenMessage />
|
||||||
{{else}}
|
{{else}}
|
||||||
<div class="toolbar">
|
<div class="toolbar">
|
||||||
<div class="toolbar-item">
|
<div class="toolbar-item">
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<nav class="navbar is-popup">
|
<nav class="navbar is-popup">
|
||||||
<div class="navbar-brand">
|
<div class="navbar-brand">
|
||||||
<div class="navbar-item is-logo">
|
<div class="navbar-item is-logo">
|
||||||
{{partial "partials/nomad-logo"}}
|
<NomadLogo />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -13,5 +13,5 @@
|
|||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<div class="exec-window loading">
|
<div class="exec-window loading">
|
||||||
{{partial "partials/loading-spinner"}}
|
<LoadingSpinner />
|
||||||
</div>
|
</div>
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
<nav class="navbar is-popup">
|
<nav class="navbar is-popup">
|
||||||
<div class="navbar-brand">
|
<div class="navbar-brand">
|
||||||
<div class="navbar-item is-logo">
|
<div class="navbar-item is-logo">
|
||||||
{{partial "partials/nomad-logo"}}
|
<NomadLogo />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{#if system.shouldShowRegions}}
|
{{#if system.shouldShowRegions}}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{{title "Jobs"}}
|
{{title "Jobs"}}
|
||||||
<section class="section">
|
<section class="section">
|
||||||
{{#if isForbidden}}
|
{{#if isForbidden}}
|
||||||
{{partial "partials/forbidden-message"}}
|
<ForbiddenMessage />
|
||||||
{{else}}
|
{{else}}
|
||||||
<div class="toolbar">
|
<div class="toolbar">
|
||||||
<div class="toolbar-item">
|
<div class="toolbar-item">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{{title "Job " job.name " allocations"}}
|
{{title "Job " job.name " allocations"}}
|
||||||
{{partial "jobs/job/subnav"}}
|
<JobSubnav @job={{job}} />
|
||||||
<section class="section">
|
<section class="section">
|
||||||
{{#if allocations.length}}
|
{{#if allocations.length}}
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{{title "Job " job.name " definition"}}
|
{{title "Job " job.name " definition"}}
|
||||||
{{partial "jobs/job/subnav"}}
|
<JobSubnav @job={{job}} />
|
||||||
<section class="section">
|
<section class="section">
|
||||||
{{#unless isEditing}}
|
{{#unless isEditing}}
|
||||||
<div class="boxed-section">
|
<div class="boxed-section">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{{title "Job " job.name " deployments"}}
|
{{title "Job " job.name " deployments"}}
|
||||||
{{partial "jobs/job/subnav"}}
|
<JobSubnav @job={{job}} />
|
||||||
<section class="section">
|
<section class="section">
|
||||||
<JobDeploymentsStream @deployments={{model.deployments}} />
|
<JobDeploymentsStream @deployments={{model.deployments}} />
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{{title "Job " job.name " evaluations"}}
|
{{title "Job " job.name " evaluations"}}
|
||||||
{{partial "jobs/job/subnav"}}
|
<JobSubnav @job={{job}} />
|
||||||
<section class="section">
|
<section class="section">
|
||||||
{{#if sortedEvaluations.length}}
|
{{#if sortedEvaluations.length}}
|
||||||
<ListTable
|
<ListTable
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
{{partial "jobs/job/subnav"}}
|
<JobSubnav @job={{job}} />
|
||||||
<section class="section has-text-centered">{{partial "partials/loading-spinner"}}</section>
|
<section class="section has-text-centered"><LoadingSpinner /></section>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{{title "Job " job.name " versions"}}
|
{{title "Job " job.name " versions"}}
|
||||||
{{partial "jobs/job/subnav"}}
|
<JobSubnav @job={{job}} />
|
||||||
<section class="section">
|
<section class="section">
|
||||||
<JobVersionsStream @versions={{model.versions}} @verbose={{true}} />
|
<JobVersionsStream @versions={{model.versions}} @verbose={{true}} />
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
<section class="section has-text-centered">{{partial "partials/loading-spinner"}}</section>
|
<section class="section has-text-centered"><LoadingSpinner /></section>
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
<PageLayout>
|
<PageLayout>
|
||||||
<section class="section has-text-centered">{{partial "partials/loading-spinner"}}</section>
|
<section class="section has-text-centered"><LoadingSpinner /></section>
|
||||||
</PageLayout>
|
</PageLayout>
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
<div data-test-error class="empty-message">
|
|
||||||
<h3 data-test-error-title class="empty-message-headline">Not Authorized</h3>
|
|
||||||
<p data-test-error-message class="empty-message-body">
|
|
||||||
{{#if token.secret}}
|
|
||||||
Your <LinkTo @route="settings.tokens">ACL token</LinkTo> does not provide the required permissions. Contact your administrator if this is an error.
|
|
||||||
{{else}}
|
|
||||||
Provide an <LinkTo @route="settings.tokens">ACL token</LinkTo> with requisite permissions to view this.
|
|
||||||
{{/if}}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{{title "Servers"}}
|
{{title "Servers"}}
|
||||||
<section class="section">
|
<section class="section">
|
||||||
{{#if isForbidden}}
|
{{#if isForbidden}}
|
||||||
{{partial "partials/forbidden-message"}}
|
<ForbiddenMessage />
|
||||||
{{else}}
|
{{else}}
|
||||||
<ListPagination
|
<ListPagination
|
||||||
@source={{sortedAgents}}
|
@source={{sortedAgents}}
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
<section class="section has-text-centered">{{partial "partials/loading-spinner"}}</section>
|
<section class="section has-text-centered"><LoadingSpinner /></section>
|
||||||
|
|||||||
@@ -7,5 +7,6 @@ self.deprecationWorkflow.config = {
|
|||||||
{ handler: 'throw', matchId: 'ember-console.deprecate-logger' },
|
{ handler: 'throw', matchId: 'ember-console.deprecate-logger' },
|
||||||
{ handler: 'throw', matchId: 'ember-test-helpers.rendering-context.jquery-element' },
|
{ handler: 'throw', matchId: 'ember-test-helpers.rendering-context.jquery-element' },
|
||||||
{ handler: 'throw', matchId: 'ember-cli-page-object.is-property' },
|
{ handler: 'throw', matchId: 'ember-cli-page-object.is-property' },
|
||||||
|
{ handler: 'throw', matchId: 'ember-views.partial' },
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
{
|
{
|
||||||
"jquery-integration": false
|
"application-template-wrapper": false,
|
||||||
|
"default-async-observers": true,
|
||||||
|
"jquery-integration": false,
|
||||||
|
"template-only-glimmer-components": false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
"test": "tests"
|
"test": "tests"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "./node_modules/ember-cli/bin/ember build -prod",
|
"build": "ember build --environment=production",
|
||||||
"precommit": "lint-staged",
|
"precommit": "lint-staged",
|
||||||
"lint:hbs": "ember-template-lint .",
|
"lint:hbs": "ember-template-lint .",
|
||||||
"lint:js": "eslint .",
|
"lint:js": "eslint .",
|
||||||
@@ -32,7 +32,9 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/plugin-proposal-object-rest-spread": "^7.4.3",
|
"@babel/plugin-proposal-object-rest-spread": "^7.4.3",
|
||||||
"@ember/optional-features": "^0.7.0",
|
"@ember/optional-features": "^1.3.0",
|
||||||
|
"@glimmer/component": "^1.0.0",
|
||||||
|
"@glimmer/tracking": "^1.0.0",
|
||||||
"@hashicorp/structure-icons": "^1.3.0",
|
"@hashicorp/structure-icons": "^1.3.0",
|
||||||
"@storybook/ember-cli-storybook": "^0.2.0",
|
"@storybook/ember-cli-storybook": "^0.2.0",
|
||||||
"anser": "^1.4.8",
|
"anser": "^1.4.8",
|
||||||
@@ -50,55 +52,53 @@
|
|||||||
"d3-time-format": "^2.1.0",
|
"d3-time-format": "^2.1.0",
|
||||||
"d3-transition": "^1.1.0",
|
"d3-transition": "^1.1.0",
|
||||||
"duration-js": "^4.0.0",
|
"duration-js": "^4.0.0",
|
||||||
"ember-ajax": "^5.0.0",
|
"ember-auto-import": "^1.5.3",
|
||||||
"ember-auto-import": "^1.2.21",
|
|
||||||
"ember-can": "^2.0.0",
|
"ember-can": "^2.0.0",
|
||||||
"ember-classic-decorator": "^1.0.8",
|
"ember-classic-decorator": "^1.0.8",
|
||||||
"ember-cli": "~3.12.0",
|
"ember-cli": "~3.16.2",
|
||||||
"ember-cli-babel": "^7.7.3",
|
"ember-cli-babel": "^7.17.2",
|
||||||
"ember-cli-clipboard": "^0.13.0",
|
"ember-cli-clipboard": "^0.13.0",
|
||||||
"ember-cli-dependency-checker": "^3.1.0",
|
"ember-cli-dependency-checker": "^3.2.0",
|
||||||
"ember-cli-deprecation-workflow": "^1.0.1",
|
"ember-cli-deprecation-workflow": "^1.0.1",
|
||||||
"ember-cli-eslint": "^5.1.0",
|
"ember-cli-eslint": "^5.1.0",
|
||||||
"ember-cli-funnel": "^0.6.1",
|
"ember-cli-funnel": "^0.6.1",
|
||||||
"ember-cli-htmlbars": "^3.0.1",
|
"ember-cli-htmlbars": "^4.2.2",
|
||||||
"ember-cli-htmlbars-inline-precompile": "^2.1.0",
|
"ember-cli-inject-live-reload": "^2.0.2",
|
||||||
"ember-cli-inject-live-reload": "^2.0.1",
|
|
||||||
"ember-cli-mirage": "^1.1.2",
|
"ember-cli-mirage": "^1.1.2",
|
||||||
"ember-cli-moment-shim": "^3.5.0",
|
"ember-cli-moment-shim": "^3.5.0",
|
||||||
"ember-cli-page-object": "^1.17.2",
|
"ember-cli-page-object": "^1.17.2",
|
||||||
"ember-cli-sass": "^10.0.0",
|
"ember-cli-sass": "^10.0.0",
|
||||||
"ember-cli-sri": "^2.1.1",
|
"ember-cli-sri": "^2.1.1",
|
||||||
"ember-cli-string-helpers": "^1.5.0",
|
"ember-cli-string-helpers": "^1.5.0",
|
||||||
"ember-cli-template-lint": "^1.0.0-beta.1",
|
"ember-cli-template-lint": "^1.0.0-beta.3",
|
||||||
"ember-cli-uglify": "^2.1.0",
|
"ember-cli-uglify": "^3.0.0",
|
||||||
"ember-composable-helpers": "^2.0.3",
|
"ember-composable-helpers": "^2.0.3",
|
||||||
"ember-concurrency": "^1.0.0",
|
"ember-concurrency": "^1.0.0",
|
||||||
"ember-copy": "^1.0.0",
|
"ember-copy": "^1.0.0",
|
||||||
"ember-data": "~3.12.0",
|
"ember-data": "~3.12.0",
|
||||||
"ember-data-model-fragments": "4.0.0",
|
"ember-data-model-fragments": "4.0.0",
|
||||||
"ember-decorators": "^6.1.1",
|
"ember-decorators": "^6.1.1",
|
||||||
"ember-export-application-global": "^2.0.0",
|
"ember-export-application-global": "^2.0.1",
|
||||||
"ember-fetch": "^6.5.0",
|
"ember-fetch": "^7.0.0",
|
||||||
"ember-inflector": "^3.0.0",
|
"ember-inflector": "^3.0.0",
|
||||||
"ember-inline-svg": "^0.3.0",
|
"ember-inline-svg": "^0.3.0",
|
||||||
"ember-load-initializers": "^2.0.0",
|
"ember-load-initializers": "^2.1.1",
|
||||||
"ember-maybe-import-regenerator": "^0.1.6",
|
"ember-maybe-import-regenerator": "^0.1.6",
|
||||||
"ember-moment": "^7.8.1",
|
"ember-moment": "^7.8.1",
|
||||||
"ember-overridable-computed": "^1.0.0",
|
"ember-overridable-computed": "^1.0.0",
|
||||||
"ember-page-title": "^5.0.2",
|
"ember-page-title": "^5.0.2",
|
||||||
"ember-power-select": "^3.0.4",
|
"ember-power-select": "^3.0.4",
|
||||||
"ember-qunit": "^4.4.1",
|
"ember-qunit": "^4.6.0",
|
||||||
"ember-qunit-nice-errors": "^1.2.0",
|
"ember-qunit-nice-errors": "^1.2.0",
|
||||||
"ember-resolver": "^5.0.1",
|
"ember-resolver": "^7.0.0",
|
||||||
"ember-responsive": "^3.0.4",
|
"ember-responsive": "^3.0.4",
|
||||||
"ember-sinon": "^4.0.0",
|
"ember-sinon": "^4.0.0",
|
||||||
"ember-source": "~3.12.0",
|
"ember-source": "~3.16.0",
|
||||||
"ember-test-selectors": "^2.1.0",
|
"ember-test-selectors": "^2.1.0",
|
||||||
"ember-truth-helpers": "^2.0.0",
|
"ember-truth-helpers": "^2.0.0",
|
||||||
"eslint": "^5.16.0",
|
"eslint": "^5.16.0",
|
||||||
"eslint-plugin-ember": "^6.2.0",
|
"eslint-plugin-ember": "^7.7.2",
|
||||||
"eslint-plugin-node": "^9.0.1",
|
"eslint-plugin-node": "^11.0.0",
|
||||||
"faker": "^4.1.0",
|
"faker": "^4.1.0",
|
||||||
"flat": "^4.0.0",
|
"flat": "^4.0.0",
|
||||||
"fuse.js": "^3.4.4",
|
"fuse.js": "^3.4.4",
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
"pretender": "^3.0.1",
|
"pretender": "^3.0.1",
|
||||||
"prettier": "^1.4.4",
|
"prettier": "^1.4.4",
|
||||||
"query-string": "^5.0.0",
|
"query-string": "^5.0.0",
|
||||||
"qunit-dom": "^0.9.0",
|
"qunit-dom": "^1.0.0",
|
||||||
"sass": "^1.17.3",
|
"sass": "^1.17.3",
|
||||||
"testem": "^3.0.3",
|
"testem": "^3.0.3",
|
||||||
"testem-multi-reporter": "^1.2.0",
|
"testem-multi-reporter": "^1.2.0",
|
||||||
@@ -134,7 +134,7 @@
|
|||||||
"ember-cli-string-utils": "^1.1.0"
|
"ember-cli-string-utils": "^1.1.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "8.* || >= 10.*"
|
"node": "10.* || >= 12"
|
||||||
},
|
},
|
||||||
"private": true,
|
"private": true,
|
||||||
"ember-addon": {
|
"ember-addon": {
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ export let Header = () => {
|
|||||||
<nav class="navbar is-primary">
|
<nav class="navbar is-primary">
|
||||||
<div class="navbar-brand">
|
<div class="navbar-brand">
|
||||||
<span class="gutter-toggle" aria-label="menu">
|
<span class="gutter-toggle" aria-label="menu">
|
||||||
{{partial "partials/hamburger-menu"}}
|
<HamburgerMenu />
|
||||||
</span>
|
</span>
|
||||||
<span class="navbar-item is-logo">
|
<span class="navbar-item is-logo">
|
||||||
{{partial "partials/nomad-logo"}}
|
<NomadLogo />
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="navbar-end">
|
<div class="navbar-end">
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
/* eslint-env node */
|
'use strict';
|
||||||
|
|
||||||
const MultiReporter = require('testem-multi-reporter');
|
const MultiReporter = require('testem-multi-reporter');
|
||||||
const TapReporter = require('testem/lib/reporters/tap_reporter');
|
const TapReporter = require('testem/lib/reporters/tap_reporter');
|
||||||
const XunitReporter = require('testem/lib/reporters/xunit_reporter');
|
const XunitReporter = require('testem/lib/reporters/xunit_reporter');
|
||||||
@@ -9,6 +10,7 @@ const config = {
|
|||||||
disable_watching: true,
|
disable_watching: true,
|
||||||
launch_in_ci: ['Chrome'],
|
launch_in_ci: ['Chrome'],
|
||||||
launch_in_dev: ['Chrome'],
|
launch_in_dev: ['Chrome'],
|
||||||
|
browser_start_timeout: 120,
|
||||||
browser_args: {
|
browser_args: {
|
||||||
// New format in testem/master, but not in a release yet
|
// New format in testem/master, but not in a release yet
|
||||||
// Chrome: {
|
// Chrome: {
|
||||||
|
|||||||
2246
ui/yarn.lock
2246
ui/yarn.lock
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user