463a3ebea9
* add popups * add ability to disable entity and banner when entity is disabled * re-add alias-popup template * add accpetance tests for creating entities * add more entity creation acceptance tests * add delete to edit-form * add more identity tests and associated selectors * add onSuccess hook and use UnloadModel route mixins * add ability to toggle entity disabling from the popover * fix store list cache because unloadAll isn't synchronous * fill out tests for identity items and aliases * add ability to enable entity from the detail page * toArray on the peekAll * fix other tests/behavior that relied on a RecordArray * adjust layout for disabled entity and label for disabling an entity on the edit form * add item-details integration tests * move disable field on the entity form * use ghost buttons for delete in identity and policy edit forms * adding computed macros for lazy capability fetching and using them in the identity models
59 lines
1.8 KiB
JavaScript
59 lines
1.8 KiB
JavaScript
import Ember from 'ember';
|
|
import hbs from 'htmlbars-inline-precompile';
|
|
|
|
export default Ember.Component.extend({
|
|
tagName: 'span',
|
|
classNames: ['confirm-action'],
|
|
layout: hbs`
|
|
{{#if showConfirm ~}}
|
|
<span class={{containerClasses}}>
|
|
<span class={{concat 'confirm-action-text ' messageClasses}}>{{if disabled disabledMessage confirmMessage}}</span>
|
|
<button {{action 'onConfirm'}} disabled={{disabled}} class={{confirmButtonClasses}} type="button" data-test-confirm-button=true>{{confirmButtonText}}</button>
|
|
<button {{action 'toggleConfirm'}} type="button" class={{cancelButtonClasses}} data-test-confirm-cancel-button=true>{{cancelButtonText}}</button>
|
|
</span>
|
|
{{else}}
|
|
<button
|
|
class={{buttonClasses}}
|
|
type="button"
|
|
disabled={{disabled}}
|
|
data-test-confirm-action-trigger=true
|
|
{{action 'toggleConfirm'}}
|
|
>
|
|
{{yield}}
|
|
</button>
|
|
{{~/if}}
|
|
`,
|
|
|
|
disabled: false,
|
|
disabledMessage: 'Complete the form to complete this action',
|
|
showConfirm: false,
|
|
messageClasses: 'is-size-8 has-text-grey',
|
|
confirmButtonClasses: 'is-danger is-outlined button',
|
|
containerClasses: '',
|
|
buttonClasses: 'button',
|
|
buttonText: 'Delete',
|
|
confirmMessage: 'Are you sure you want to do this?',
|
|
confirmButtonText: 'Delete',
|
|
cancelButtonClasses: 'button',
|
|
cancelButtonText: 'Cancel',
|
|
// the action to take when we confirm
|
|
onConfirmAction: null,
|
|
|
|
actions: {
|
|
toggleConfirm() {
|
|
this.toggleProperty('showConfirm');
|
|
},
|
|
|
|
onConfirm() {
|
|
const confirmAction = this.get('onConfirmAction');
|
|
|
|
if (typeof confirmAction !== 'function') {
|
|
throw new Error('confirm-action components expects `onConfirmAction` attr to be a function');
|
|
} else {
|
|
confirmAction();
|
|
this.toggleProperty('showConfirm');
|
|
}
|
|
},
|
|
},
|
|
});
|