74 lines
2.9 KiB
JavaScript
74 lines
2.9 KiB
JavaScript
(function () {
|
|
global.dashModule
|
|
.directive('dialog', ['$timeout', '$', 'utilsService', dialogDirective]);
|
|
|
|
function dialogDirective($timeout, $, utilsService) {
|
|
return {
|
|
restrict: 'A',
|
|
scope: {
|
|
buttonsNames: '=',
|
|
onConfirmation: '=',
|
|
onCancel: '=',
|
|
onClose: '=',
|
|
parameters: '=',
|
|
hasButtons: '=',
|
|
isModal: '='
|
|
},
|
|
link: function ($scope, $element) {
|
|
utilsService.registerFunction('setButtonEnabled', setButtonEnabled);
|
|
$timeout(function () {
|
|
let buttons = {};
|
|
if ($scope.hasButtons) {
|
|
const confirmationBtn = $scope.buttonsNames ? $scope.buttonsNames.confirmation : 'Yes';
|
|
const cancelBtn = $scope.buttonsNames ? $scope.buttonsNames.cancel : 'Cancel';
|
|
buttons[confirmationBtn] = {
|
|
id: 'yes-confirmation-btn',
|
|
text: confirmationBtn,
|
|
click: function () {
|
|
$scope.onConfirmation($scope.parameters);
|
|
$(this).dialog('close');
|
|
}
|
|
};
|
|
buttons[cancelBtn] = {
|
|
id: 'cancel-btn',
|
|
text: cancelBtn,
|
|
click: function () {
|
|
$(this).dialog('close');
|
|
}
|
|
};
|
|
}
|
|
|
|
$($element).dialog({
|
|
resizable: false,
|
|
height: 'auto',
|
|
width: '35%',
|
|
position: {
|
|
my: 'top',
|
|
at: 'top',
|
|
of: window
|
|
},
|
|
modal: $scope.isModal,
|
|
close: function () {
|
|
if (typeof $scope.onClose !== 'undefined') {
|
|
$scope.onClose($scope.parameters);
|
|
}
|
|
},
|
|
buttons
|
|
});
|
|
});
|
|
|
|
function setButtonEnabled(isConfirmationButtonEnabled) {
|
|
if (isConfirmationButtonEnabled) {
|
|
$('#yes-confirmation-btn').removeClass('confirmation-button-disabled');
|
|
$('#yes-confirmation-btn').attr('disabled', false);
|
|
} else {
|
|
$('#yes-confirmation-btn').addClass('confirmation-button-disabled');
|
|
$('#yes-confirmation-btn').attr('disabled', true);
|
|
}
|
|
}
|
|
|
|
}
|
|
};
|
|
}
|
|
})();
|