Skip to content

Commit

Permalink
Update to use native classes
Browse files Browse the repository at this point in the history
  • Loading branch information
lonelyghost authored and kategengler committed Mar 7, 2020
1 parent dc394a7 commit edd4032
Show file tree
Hide file tree
Showing 9 changed files with 96 additions and 70 deletions.
30 changes: 18 additions & 12 deletions app/components/date-nav.js
Original file line number Diff line number Diff line change
@@ -1,29 +1,35 @@
import classic from 'ember-classic-decorator';
import Component from '@ember/component';
import { computed } from '@ember/object';
import moment from 'moment';

export default Component.extend({
tagName: 'section',
@classic
export default class DateNavComponent extends Component {
tagName = 'section';

classNames: ['date-nav'],
classNames = ['date-nav'];

formattedDisplayDate: computed('date', function() {
@computed('date')
get formattedDisplayDate() {
return moment(this.get('date')).utc().format('YYYY-MM-DD');
}),
}

formattedPreviousDate: computed('date', function() {
@computed('date')
get formattedPreviousDate() {
let date = this.get('date');
return moment(date).subtract(1, 'day').format('YYYY-MM-DD');
}),
}

formattedFollowingDate: computed('date', function() {
@computed('date')
get formattedFollowingDate() {
let date = this.get('date');
return moment(date).add(1, 'day').format('YYYY-MM-DD');
}),
}

showFollowingDayLink: computed('date', function() {
@computed('date')
get showFollowingDayLink() {
let dateFromParam = moment(this.get('date'));
let currentDate = moment();
return !dateFromParam.isSame(currentDate, 'day');
})
});
}
}
14 changes: 9 additions & 5 deletions app/controllers/admin/size-calculation-results/index.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
import classic from 'ember-classic-decorator';
import { sort } from '@ember/object/computed';
import Controller from '@ember/controller';

export default Controller.extend({
queryParams: ['date'],
sizeCalculationResultSorting: ['testsRunAt:desc'],
sortedSizeCalculationResults: sort('model', 'sizeCalculationResultSorting'),
});
@classic
export default class SizeCalculationResultsIndexController extends Controller {
queryParams = ['date'];
sizeCalculationResultSorting = ['testsRunAt:desc'];

@sort('model', 'sizeCalculationResultSorting')
sortedSizeCalculationResults;
}
55 changes: 33 additions & 22 deletions app/controllers/admin/size-calculation-results/show.js
Original file line number Diff line number Diff line change
@@ -1,33 +1,44 @@
import { computed } from '@ember/object';
import classic from 'ember-classic-decorator';
import { action, computed } from '@ember/object';
import { inject as service } from '@ember/service';
import Controller from '@ember/controller';
import { alias } from '@ember/object/computed';
import { readOnly } from '@ember/object/computed';

export default Controller.extend({
api: service('api'),
sizeCalculationResult: alias('model'),
addonVersion: alias('sizeCalculationResult.version'),
addon: alias('addonVersion.addon'),
hasRetriedBuild: false,
@classic
export default class SizeCalculationResultsShowController extends Controller {
@service
api;

buildStatus: computed('sizeCalculationResult.succeeded', 'sizeCalculationResult.errorMessage', function() {
@readOnly('model')
sizeCalculationResult;

@readOnly('sizeCalculationResult.version')
addonVersion;

@readOnly('addonVersion.addon')
addon;

hasRetriedBuild = false;

@computed('sizeCalculationResult.succeeded', 'sizeCalculationResult.errorMessage')
get buildStatus() {
if (this.get('sizeCalculationResult.succeeded')) {
return 'succeeded';
}
return this.get('sizeCalculationResult.errorMessage');
}),
}

canRetryBuild: computed('sizeCalculationResult.succeeded', 'hasRetriedBuild', function() {
@computed('sizeCalculationResult.succeeded', 'hasRetriedBuild')
get canRetryBuild() {
return !this.get('sizeCalculationResult.succeeded') && !this.get('hasRetriedBuild');
}),

actions: {
retryBuild() {
this.set('hasRetriedBuild', true);
this.api.request(`/size_calculation_results/${this.get('sizeCalculationResult.id')}/retry`, { method: 'POST' }).catch((e) => {
this.get('hasRetriedBuild', false);
throw e;
});
}
}
});

@action
retryBuild() {
this.set('hasRetriedBuild', true);
this.api.request(`/size_calculation_results/${this.get('sizeCalculationResult.id')}/retry`, { method: 'POST' }).catch((e) => {
this.get('hasRetriedBuild', false);
throw e;
});
}
}
11 changes: 7 additions & 4 deletions app/routes/admin/size-calculation-results/index.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import classic from 'ember-classic-decorator';
import Route from '@ember/routing/route';
import moment from 'moment';

export default Route.extend({
queryParams: {
@classic
export default class SizeCalculationResultsIndexRoute extends Route {
queryParams = {
date: { refreshModel: true }
},
};

model(params) {
params = params || { };
if (!params.date) {
Expand All @@ -20,4 +23,4 @@ export default Route.extend({
include: 'version,version.addon'
});
}
});
}
6 changes: 4 additions & 2 deletions app/routes/admin/size-calculation-results/show.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import classic from 'ember-classic-decorator';
import Route from '@ember/routing/route';

export default Route.extend({
@classic
export default class SizeCalculationResultsShowRoute extends Route {
model(params) {
return this.store.findRecord('size-calculation-result', params.id, {
include: 'version,version.addon',
reload: true
});
}
});
}
4 changes: 2 additions & 2 deletions app/templates/admin/size-calculation-results.hbs
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{{#page-layout showCategories=false}}
<PageLayout @showCategories={{false}}>
{{outlet}}
{{/page-layout}}
</PageLayout>
22 changes: 11 additions & 11 deletions app/templates/admin/size-calculation-results/index.hbs
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{{#date-nav date=date as |nav|}}
{{#link-to 'admin.size-calculation-results.index' (query-params date=nav.formattedPreviousDate) class='previous-day'}}
<DateNav @date={{this.date}} as |nav|>
<LinkTo @route="admin.size-calculation-results.index" @query={{hash date=nav.formattedPreviousDate}} @class="previous-day">
&laquo; previous day
{{/link-to}}
</LinkTo>

Size calculation results for {{nav.formattedDisplayDate}}

{{#if nav.showFollowingDayLink}}
{{#link-to 'admin.size-calculation-results.index' (query-params date=nav.formattedFollowingDate) class='next-day'}}
<LinkTo @route="admin.size-calculation-results.index" @query={{hash date=nav.formattedFollowingDate}} @class='next-day'>
next day &raquo;
{{/link-to}}
</LinkTo>
{{/if}}
{{/date-nav}}
</DateNav>

<table>
<thead>
Expand All @@ -23,12 +23,12 @@
</tr>
</thead>
<tbody>
{{#each sortedSizeCalculationResults as |result|}}
{{#each this.sortedSizeCalculationResults as |result|}}
<tr class="test-size-calculation-result" data-sizeCalculationResultId={{result.id}}>
<td>
{{#link-to 'addons.show' result.version.addon.name}}
<LinkTo @route="addons.show" @model={{result.version.addon.name}}>
{{result.version.addon.name}}
{{/link-to}}
</LinkTo>
</td>
<td>{{result.version.version}}</td>
<td>{{moment-format result.testsRunAt 'YYYY-MM-DD HH:mm' allowEmpty=true}}</td>
Expand All @@ -40,9 +40,9 @@
{{/if}}
</td>
<td>
{{#link-to 'admin.size-calculation-results.show' result.id}}
<LinkTo @route="admin.size-calculation-results.show" @model={{result.id}}>
details
{{/link-to}}
</LinkTo>
</td>
</tr>
{{/each}}
Expand Down
16 changes: 8 additions & 8 deletions app/templates/admin/size-calculation-results/show.hbs
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
<div class="admin-build-result">
<h1>
Size Calculation #{{sizeCalculationResult.id}}
(<span class="test-addon-name">{{#link-to 'addons.show' addon.name}}{{addon.name}}{{/link-to}}</span>
<span class="test-addon-version">{{addonVersion.version}}</span>)
Size Calculation #{{this.sizeCalculationResult.id}}
(<span class="test-addon-name"><LinkTo @route="addons.show" @model={{this.addon.name}}>{{this.addon.name}}</LinkTo></span>
<span class="test-addon-version">{{this.addonVersion.version}}</span>)
</h1>

<div>
Status: <span class="test-build-status">{{buildStatus}}</span>
{{#if canRetryBuild}}
<button type="button" onclick={{action 'retryBuild'}} class="test-retry-build">Retry</button>
Status: <span class="test-build-status">{{this.buildStatus}}</span>
{{#if this.canRetryBuild}}
<button type="button" {{on "click" this.retryBuild}} class="test-retry-build">Retry</button>
{{/if}}
</div>

<div>
Tests run at: <span class="test-run-date">{{moment-format sizeCalculationResult.testsRunAt 'YYYY-MM-DD HH:mm' allowEmpty=true}}</span>
Tests run at: <span class="test-run-date">{{moment-format this.sizeCalculationResult.testsRunAt 'YYYY-MM-DD HH:mm' allowEmpty=true}}</span>
</div>

<h2>Output</h2>
<BuildResultOutput @buildResult={{sizeCalculationResult}} />
<BuildResultOutput @buildResult={{this.sizeCalculationResult}} />
</div>
8 changes: 4 additions & 4 deletions app/templates/components/date-nav.hbs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{{yield
(hash
formattedPreviousDate=formattedPreviousDate
formattedDisplayDate=formattedDisplayDate
formattedFollowingDate=formattedFollowingDate
showFollowingDayLink=showFollowingDayLink
formattedPreviousDate=this.formattedPreviousDate
formattedDisplayDate=this.formattedDisplayDate
formattedFollowingDate=this.formattedFollowingDate
showFollowingDayLink=this.showFollowingDayLink
)
}}

0 comments on commit edd4032

Please sign in to comment.