add modalConfirm service to alert modal confirm

This commit is contained in:
OldHawk
2017-04-23 23:49:52 +08:00
parent 0ef9ef45b2
commit 2515c828c1
2 changed files with 76 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
(function () {
'use strict';
angular
.module('torrents.services')
.factory('ModalConfirmService', ModalConfirmService);
ModalConfirmService.$inject = ['$uibModal'];
function ModalConfirmService($uibModal) {
var modalDefaults = {
backdrop: true,
keyboard: true,
modalFade: true,
templateUrl: '/modules/torrents/client/templates/modal-confirm.client.view.html'
};
var modalOptions = {
closeButtonText: 'Close',
actionButtonText: 'Yes',
headerText: 'Confirm?',
bodyText: 'Confirm this action?'
};
var showModal = function (customModalDefaults, customModalOptions) {
if (!customModalDefaults) customModalDefaults = {};
customModalDefaults.backdrop = 'static';
return this.show(customModalDefaults, customModalOptions);
};
var show = function (customModalDefaults, customModalOptions) {
//Create temp objects to work with since we're in a singleton service
var tempModalDefaults = {};
var tempModalOptions = {};
//Map angular-ui modal custom defaults to modal defaults defined in service
angular.extend(tempModalDefaults, modalDefaults, customModalDefaults);
//Map modal.html $scope custom properties to defaults defined in service
angular.extend(tempModalOptions, modalOptions, customModalOptions);
if (!tempModalDefaults.controller) {
tempModalDefaults.controller = function ($scope, $uibModalInstance) {
$scope.modalOptions = tempModalOptions;
$scope.modalOptions.ok = function (result) {
$uibModalInstance.close(result);
};
$scope.modalOptions.close = function (result) {
$uibModalInstance.dismiss('cancel');
};
};
}
return $uibModal.open(tempModalDefaults).result;
};
return {
showModal: showModal,
show: show
};
}
}());

View File

@@ -0,0 +1,12 @@
<div class="modal-header">
<h3>{{modalOptions.headerText}}</h3>
</div>
<div class="modal-body">
<p>{{modalOptions.bodyText}}</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default"
data-ng-click="modalOptions.close()">{{modalOptions.closeButtonText}}</button>
<button class="btn btn-primary"
data-ng-click="modalOptions.ok();">{{modalOptions.actionButtonText}}</button>
</div>