diff --git a/app/components/admin-addon-review-form.hbs b/app/components/admin-addon-review-form.hbs index 1fb4ba2d..955415cd 100644 --- a/app/components/admin-addon-review-form.hbs +++ b/app/components/admin-addon-review-form.hbs @@ -1,22 +1,18 @@
Review this addon
-
+
    {{#each this.questions as |question|}}
  1. {{question.text}}
    - - {{component btn - value=1 - label="Yes"}} - {{component btn - value=2 - label="No"}} - {{component btn - value=3 - label="N/A"}} - {{component btn - value=4 - label="Unknown"}} + +
  2. {{/each}} diff --git a/app/components/admin-addon-review-form.js b/app/components/admin-addon-review-form.js index dec3cb87..993b3888 100644 --- a/app/components/admin-addon-review-form.js +++ b/app/components/admin-addon-review-form.js @@ -1,55 +1,56 @@ -/* eslint-disable ember/no-component-lifecycle-hooks */ -import classic from 'ember-classic-decorator'; -import { inject } from '@ember/service'; -import Component from '@ember/component'; import { action } from '@ember/object'; -import { task, timeout } from 'ember-concurrency'; -import { questions } from '../models/review'; +import { inject as service } from '@ember/service'; +import Component from '@glimmer/component'; +import { tracked } from 'tracked-built-ins'; +import { dropTask, timeout } from 'ember-concurrency'; +import { questions } from 'ember-observer/models/review'; -@classic export default class AdminAddonReviewForm extends Component { - addon = null; - reviewProperties = null; + @tracked reviewProperties = tracked({}); + + @tracked + recentlySaved = false; + + @tracked + reviewText = null; + questions = questions; - @inject() + @service store; - didReceiveAttrs() { - super.didReceiveAttrs(...arguments); - this.reset(); - } - + @action reset() { - this.set('reviewProperties', {}); + this.reviewProperties = tracked({}); + this.reviewText = null; } @action selectOption(fieldName, value) { - this.set(`reviewProperties.${fieldName}`, value); + this.reviewProperties[fieldName] = value; } - @(task(function* () { + @dropTask + *saveReview() { let newReview = this.store.createRecord('review', this.reviewProperties); newReview.set('review', this.reviewText); - newReview.set('version', this.get('addon.latestAddonVersion')); + newReview.set('version', this.args.addon.get('latestAddonVersion')); try { yield newReview.save(); - this.addon.set('latestReview', newReview); - yield this.addon.save(); + this.args.addon.set('latestReview', newReview); + yield this.args.addon.save(); this.reset(); this.complete.perform(); } catch (e) { console.error(e); // eslint-disable-line no-console window.alert('Failed to create review'); } - }).drop()) - saveReview; + } - @(task(function* () { - this.set('recentlySaved', true); + @dropTask + *complete() { + this.recentlySaved = true; yield timeout(2000); - this.set('recentlySaved', false); - }).drop()) - complete; + this.recentlySaved = false; + } } diff --git a/app/components/admin-addon.hbs b/app/components/admin-addon.hbs index 45a7fd2a..7c4d1ce2 100644 --- a/app/components/admin-addon.hbs +++ b/app/components/admin-addon.hbs @@ -1,10 +1,10 @@

    - - {{this.addon.name}} - {{#if this.addon.isOfficial}} + + {{@addon.name}} + {{#if @addon.isOfficial}} {{/if}} - {{#if this.addon.isCliDependency}} + {{#if @addon.isCliDependency}} {{/if}} @@ -12,74 +12,74 @@
    - {{this.addon.latestAddonVersion.version}} from + {{@addon.latestAddonVersion.version}} from
    -
    description {{this.addon.description}}
    - {{#if this.addon.demoUrl}} +
    description {{@addon.description}}
    + {{#if @addon.demoUrl}} {{/if}}
    - license {{this.addon.license}} + license {{@addon.license}}
    npm keywords - {{#each this.addon.keywords as |keyword|}} - + {{#each @addon.keywords as |keyword|}} + {{value.keyword}}{{separator}} {{/each}}
    - {{#if this.addon.ranking}} - Ranks #{{this.addon.ranking}} of the top 100 addons! + {{#if @addon.ranking}} + Ranks #{{@addon.ranking}} of the top 100 addons! {{/if}}
    - + Score {{val}}
    - {{#if this.addon.repositoryUrl}} - {{this.addon.repositoryUrl}} + {{#if @addon.repositoryUrl}} + {{@addon.repositoryUrl}} {{else}} Missing {{/if}} -  {{svg-icon "google"}} +  {{svg-icon "google"}} | - {{svg-icon "github"}} - + {{svg-icon "github"}} +
    - - - - - - - - + + + + + + + +
    - +
    -