Add deleting key
This commit is contained in:
parent
276bbaf8a3
commit
d773bf51b6
9 changed files with 75 additions and 2 deletions
26
app/controllers/admin/keys/key/delete.js
Normal file
26
app/controllers/admin/keys/key/delete.js
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
import Controller from '@ember/controller';
|
||||||
|
import { action } from '@ember/object';
|
||||||
|
import { inject as service } from '@ember/service';
|
||||||
|
|
||||||
|
export default class AdminKeysKeyDeleteController extends Controller {
|
||||||
|
@service router;
|
||||||
|
@service meilisearch;
|
||||||
|
@service toasts;
|
||||||
|
|
||||||
|
@action
|
||||||
|
delete() {
|
||||||
|
return this.meilisearch.deleteKey(this.model.uid).then(() => {
|
||||||
|
// TODO: add toast
|
||||||
|
return this.router.transitionTo('admin.keys');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@action
|
||||||
|
cancel() {
|
||||||
|
const newRouteName = this.router.currentRouteName.replace(
|
||||||
|
/\.(new|edit|delete)$/,
|
||||||
|
''
|
||||||
|
);
|
||||||
|
this.router.transitionTo(newRouteName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -27,6 +27,7 @@ Router.map(function () {
|
||||||
this.route('keys', function () {
|
this.route('keys', function () {
|
||||||
this.route('key', { path: '/:uid' }, function () {
|
this.route('key', { path: '/:uid' }, function () {
|
||||||
this.route('edit');
|
this.route('edit');
|
||||||
|
this.route('delete');
|
||||||
});
|
});
|
||||||
this.route('new');
|
this.route('new');
|
||||||
});
|
});
|
||||||
|
|
|
||||||
3
app/routes/admin/keys/key/delete.js
Normal file
3
app/routes/admin/keys/key/delete.js
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
import Route from '@ember/routing/route';
|
||||||
|
|
||||||
|
export default class AdminKeysKeyDeleteRoute extends Route {}
|
||||||
|
|
@ -45,6 +45,12 @@ export default class MeilisearchService extends Service {
|
||||||
return query(`keys/${uid}`).then((item) => new Key(item));
|
return query(`keys/${uid}`).then((item) => new Key(item));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
deleteKey(uid) {
|
||||||
|
return query(`keys/${uid}`, {
|
||||||
|
method: 'DELETE',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
getTasks(params, options = {}) {
|
getTasks(params, options = {}) {
|
||||||
// Clear from undefined fields
|
// Clear from undefined fields
|
||||||
Object.keys(params).forEach((key) => params[key] ?? delete params[key]);
|
Object.keys(params).forEach((key) => params[key] ?? delete params[key]);
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
<Tabs>
|
<Tabs>
|
||||||
<Tab @route="admin.keys.key.index" @text="View" @model={{@model}} />
|
<Tab @route="admin.keys.key.index" @text="View" @model={{@model}} />
|
||||||
<Tab @route="admin.keys.key.edit" @text="Edit" @model={{@model}} />
|
<Tab @route="admin.keys.key.edit" @text="Edit" @model={{@model}} />
|
||||||
{{!-- <Tab @route="admin.indexes.item.settings" @text="Delete" @model={{@model}} /> --}}
|
<Tab @route="admin.keys.key.delete" @text="Delete" @model={{@model}} />
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|
||||||
{{outlet}}
|
{{outlet}}
|
||||||
|
|
|
||||||
12
app/templates/admin/keys/key/delete.hbs
Normal file
12
app/templates/admin/keys/key/delete.hbs
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
<p>Are you sure you want to delete this key?</p>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
@text='Yes'
|
||||||
|
@style='primary'
|
||||||
|
@onClick={{this.delete}}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
@text='No'
|
||||||
|
@onClick={{this.cancel}}
|
||||||
|
/>
|
||||||
|
|
@ -16,7 +16,9 @@ export default function query(path, options = {}) {
|
||||||
);
|
);
|
||||||
|
|
||||||
return fetch(req).then((response) => {
|
return fetch(req).then((response) => {
|
||||||
if (response.ok) {
|
if (response.status === 204) {
|
||||||
|
return;
|
||||||
|
} else if (response.ok) {
|
||||||
return response.json();
|
return response.json();
|
||||||
} else {
|
} else {
|
||||||
throw new Error('Network response was not OK');
|
throw new Error('Network response was not OK');
|
||||||
|
|
|
||||||
12
tests/unit/controllers/admin/keys/key/delete-test.js
Normal file
12
tests/unit/controllers/admin/keys/key/delete-test.js
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
import { module, test } from 'qunit';
|
||||||
|
import { setupTest } from 'meiliadmin/tests/helpers';
|
||||||
|
|
||||||
|
module('Unit | Controller | admin/keys/key/delete', function (hooks) {
|
||||||
|
setupTest(hooks);
|
||||||
|
|
||||||
|
// TODO: Replace this with your real tests.
|
||||||
|
test('it exists', function (assert) {
|
||||||
|
let controller = this.owner.lookup('controller:admin/keys/key/delete');
|
||||||
|
assert.ok(controller);
|
||||||
|
});
|
||||||
|
});
|
||||||
11
tests/unit/routes/admin/keys/key/delete-test.js
Normal file
11
tests/unit/routes/admin/keys/key/delete-test.js
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
import { module, test } from 'qunit';
|
||||||
|
import { setupTest } from 'meiliadmin/tests/helpers';
|
||||||
|
|
||||||
|
module('Unit | Route | admin/keys/key/delete', function (hooks) {
|
||||||
|
setupTest(hooks);
|
||||||
|
|
||||||
|
test('it exists', function (assert) {
|
||||||
|
let route = this.owner.lookup('route:admin/keys/key/delete');
|
||||||
|
assert.ok(route);
|
||||||
|
});
|
||||||
|
});
|
||||||
Loading…
Reference in a new issue