48 lines
904 B
TypeScript
48 lines
904 B
TypeScript
import { WebDirective } from './../../types';
|
|
import template from '%/directives/permissions-modal.pug';
|
|
|
|
class PermissionsModalCtrl {
|
|
|
|
$element: JQLite
|
|
callback!: (success: boolean) => void
|
|
|
|
/* @ngInject */
|
|
constructor($element: JQLite) {
|
|
this.$element = $element;
|
|
}
|
|
|
|
dismiss() {
|
|
const elem = this.$element;
|
|
const scope = elem.scope();
|
|
scope.$destroy();
|
|
elem.remove();
|
|
}
|
|
|
|
accept() {
|
|
this.callback(true);
|
|
this.dismiss();
|
|
}
|
|
|
|
deny() {
|
|
this.callback(false);
|
|
this.dismiss();
|
|
}
|
|
}
|
|
|
|
export class PermissionsModal extends WebDirective {
|
|
constructor() {
|
|
super();
|
|
this.restrict = 'E';
|
|
this.template = template;
|
|
this.controller = PermissionsModalCtrl;
|
|
this.controllerAs = 'ctrl';
|
|
this.bindToController = true;
|
|
this.scope = {
|
|
show: '=',
|
|
component: '=',
|
|
permissionsString: '=',
|
|
callback: '='
|
|
};
|
|
}
|
|
}
|