Files
threshold-ui/ui/admin/app/routes/scopes/scope/workers.js
T
bc7ed3f0ed ICU 5247 detailed worker view and ICU 5248 edit worker view (#1246)
* feat: 🎸 Add list view for workers

✅ Closes: ICU-5251

* feat: 🎸 Add route for worker detail and include links in table

* refactor: 💡 Updated id display in table and fixed worker route

* test: 💍 Add workers list test

* feat: 🎸 Add worker detailed view and edit view

Added worker detailed view and editable form view for name and
description of worker

✅ Closes: ICU-5247 ICU-5248

* refactor: 💡 fixed conflict merge

fixed merge conflicts for scope/workers/worker

✅ Closes: ICU-5247

* Update ui/admin/app/routes/scopes/scope/workers.js

Co-authored-by: Dharini Jeeva <dharini@hashicorp.com>

* Update ui/admin/app/templates/scopes/scope/workers/worker/index.hbs

Co-authored-by: Dharini Jeeva <dharini@hashicorp.com>

* test: 💍 Test for worker/update-test.js

Created update-test.js and refactored worker/form.hbs for correct
display of last_seen

✅ Closes: ICU-5247

* Update ui/admin/app/routes/scopes/scope/workers.js

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

* Update ui/admin/app/templates/scopes/scope/workers/worker/index.hbs

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

* Update ui/admin/tests/acceptance/workers/read-test.js

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

* refactor: 💡 code refactor and test creation

Refactored code for detailed worker view, created controller for
detailew worker view to display worker name in breadcrumbs, added test
for `delete`, `update`.

✅ Closes: ICU-5247

* refactor: 💡 Refactor test

Refactor update-test.js and clean up code.

✅ Closes: ICU-5247

* refactor: 💡 fixed workers/update-test.js

added local variable for better test coverage for cancel test in
workers/update-test.js

✅ Closes: ICU-5247

* refactor: 💡 fix test

Refactored yaml file for `last_seen.description`

✅ Closes: ICU-5247

* Update ui/admin/app/routes/scopes/scope/workers.js

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

* removed `type` from  `<form.textarea/>` component

* Update ui/admin/app/controllers/scopes/scope/workers/worker.js

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

* spacing for linter

* refactor: 💡 Refactor test

Refactored `worker/read-test.js` to to test correct authorization

✅ Closes: ICU-5247

* ci: 🎡 Fixed lint

fixed lint

✅ Closes: ICU-5247

* refactor: 💡 Added custom relatvie date to field

Added custom relative date to `last_status_time` input for worker view.

✅ Closes: ICU-5247

* refactor: 💡 refactored yaml file

changed delete dropdown for worker to `actions.delete`

✅ Closes: ICU-5247

* Removed unused services from workers.js

* merge changes from main

* fix lint

* fix lint

* Update index.hbs

lint issues

* refactor: 💡 fixed lint for hbs

fixed linting issues for hbs files

✅ Closes: ICU-5247 ICU-5249

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
Co-authored-by: Dharini Jeeva <dharini@hashicorp.com>
2022-08-29 10:24:41 -04:00

69 lines
1.7 KiB
JavaScript

import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';
import { loading } from 'ember-loading';
import { confirm } from 'core/decorators/confirm';
import { notifySuccess, notifyError } from 'core/decorators/notify';
export default class ScopesScopeWorkersRoute extends Route {
// =services
@service can
@service session;
@service router;
// =methods
/**
* If arriving here unauthenticated, redirect to index for further processing.
*/
beforeModel() {
if (!this.session.isAuthenticated) this.router.transitionTo('index');
}
/**
* Refreshes worker data.
*/
@action
refresh() {
return super.refresh(...arguments);
}
/**
* Save a worker in current scope.
* @param {WorkerModel} worker
* @param {Event} e
*/
@action
@loading
@notifyError(({ message }) => message)
@notifySuccess(({ isNew }) =>
isNew ? 'notifications.create-success' : 'notifications.save-success'
)
async save(worker) {
await worker.save();
if (this.can.can('read model', worker)) {
await this.router.transitionTo('scopes.scope.workers.worker', worker);
} else {
await this.router.transitionTo('scopes.scope.workers');
}
this.refresh();
}
/**
* Delete worker in current scope and redirect to index.
* @param {UserModel} worker
*/
@action
@loading
@confirm('questions.delete-confirm')
@notifyError(({ message }) => message, { catch: true })
@notifySuccess('notifications.delete-success')
async delete(worker) {
await worker.destroyRecord();
await this.router.replaceWith('scopes.scope.workers');
this.refresh();
}
}