mirror of
				https://github.com/mmumshad/ansible-playable.git
				synced 2025-03-09 23:38:54 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			78 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| import angular from 'angular';
 | |
| 
 | |
| export function Modal($rootScope, $uibModal) {
 | |
|   /**
 | |
|    * Opens a modal
 | |
|    * @param  {Object} scope      - an object to be merged with modal's scope
 | |
|    * @param  {String} modalClass - (optional) class(es) to be applied to the modal
 | |
|    * @return {Object}            - the instance $uibModal.open() returns
 | |
|    */
 | |
|   function openModal(scope = {}, modalClass = 'modal-default') {
 | |
|     var modalScope = $rootScope.$new();
 | |
| 
 | |
|     angular.extend(modalScope, scope);
 | |
| 
 | |
|     return $uibModal.open({
 | |
|       template: require('./modal.html'),
 | |
|       windowClass: modalClass,
 | |
|       scope: modalScope
 | |
|     });
 | |
|   }
 | |
| 
 | |
|   // Public API here
 | |
|   return {
 | |
| 
 | |
|     /* Confirmation modals */
 | |
|     confirm: {
 | |
| 
 | |
|       /**
 | |
|        * Create a function to open a delete confirmation modal (ex. ng-click='myModalFn(name, arg1, arg2...)')
 | |
|        * @param  {Function} del - callback, ran when delete is confirmed
 | |
|        * @return {Function}     - the function to open the modal (ex. myModalFn)
 | |
|        */
 | |
|       delete(del = angular.noop) {
 | |
|         /**
 | |
|          * Open a delete confirmation modal
 | |
|          * @param  {String} name   - name or info to show on modal
 | |
|          * @param  {All}           - any additional args are passed straight to del callback
 | |
|          */
 | |
|         return function(...args) {
 | |
|           var slicedArgs = Reflect.apply(Array.prototype.slice, args);
 | |
|           var name = slicedArgs.shift();
 | |
|           var deleteModal;
 | |
| 
 | |
|           deleteModal = openModal({
 | |
|             modal: {
 | |
|               dismissable: true,
 | |
|               title: 'Confirm Delete',
 | |
|               html: `<p>Are you sure you want to delete <strong>${name}</strong> ?</p>`,
 | |
|               buttons: [{
 | |
|                 classes: 'btn-danger',
 | |
|                 text: 'Delete',
 | |
|                 click(e) {
 | |
|                   deleteModal.close(e);
 | |
|                 }
 | |
|               }, {
 | |
|                 classes: 'btn-default',
 | |
|                 text: 'Cancel',
 | |
|                 click(e) {
 | |
|                   deleteModal.dismiss(e);
 | |
|                 }
 | |
|               }]
 | |
|             }
 | |
|           }, 'modal-danger');
 | |
| 
 | |
|           deleteModal.result.then(function(event) {
 | |
|             Reflect.apply(del, event, slicedArgs);
 | |
|           });
 | |
|         };
 | |
|       }
 | |
|     }
 | |
|   };
 | |
| }
 | |
| 
 | |
| export default angular.module('app2App.Modal', [])
 | |
|   .factory('Modal', Modal)
 | |
|   .name;
 |