github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/ui/app/controllers/variables/variable/index.js (about) 1 import Controller from '@ember/controller'; 2 import { set, action } from '@ember/object'; 3 import { task } from 'ember-concurrency'; 4 import { inject as service } from '@ember/service'; 5 import { tracked } from '@glimmer/tracking'; 6 7 export default class VariablesVariableIndexController extends Controller { 8 queryParams = ['view']; 9 10 @service router; 11 queryParams = ['sortProperty', 'sortDescending']; 12 13 @tracked sortProperty = 'key'; 14 @tracked sortDescending = true; 15 16 get sortedKeyValues() { 17 const sorted = this.model.keyValues.sortBy(this.sortProperty); 18 return this.sortDescending ? sorted : sorted.reverse(); 19 } 20 21 @tracked isDeleting = false; 22 23 @action 24 onDeletePrompt() { 25 this.isDeleting = true; 26 } 27 28 @action 29 onDeleteCancel() { 30 this.isDeleting = false; 31 } 32 33 @task(function* () { 34 try { 35 yield this.model.deleteRecord(); 36 yield this.model.save(); 37 if (this.model.parentFolderPath) { 38 this.router.transitionTo('variables.path', this.model.parentFolderPath); 39 } else { 40 this.router.transitionTo('variables'); 41 } 42 this.flashMessages.add({ 43 title: 'Variable deleted', 44 message: `${this.model.path} successfully deleted`, 45 type: 'success', 46 destroyOnClick: false, 47 timeout: 5000, 48 }); 49 } catch (err) { 50 this.flashMessages.add({ 51 title: `Error deleting ${this.model.path}`, 52 message: err, 53 type: 'error', 54 destroyOnClick: false, 55 sticky: true, 56 }); 57 } 58 }) 59 deleteVariableFile; 60 61 //#region Code View 62 /** 63 * @type {"table" | "json"} 64 */ 65 @tracked 66 view = 'table'; 67 68 toggleView() { 69 if (this.view === 'table') { 70 this.view = 'json'; 71 } else { 72 this.view = 'table'; 73 } 74 } 75 //#endregion Code View 76 77 get shouldShowLinkedEntities() { 78 return ( 79 this.model.pathLinkedEntities?.job || 80 this.model.pathLinkedEntities?.group || 81 this.model.pathLinkedEntities?.task 82 ); 83 } 84 85 toggleRowVisibility(kv) { 86 set(kv, 'isVisible', !kv.isVisible); 87 } 88 }