82 lines
		
	
	
		
			No EOL
		
	
	
		
			1.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			No EOL
		
	
	
		
			1.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <ModalDialog
 | |
|   {id}
 | |
|   {label}
 | |
|   background="var(--main-bg)"
 | |
| >
 | |
|   <form class="confirmation-dialog-form">
 | |
|     <p>
 | |
|       {text}
 | |
|     </p>
 | |
|     <div class="confirmation-dialog-form-flex">
 | |
|       <button type="button" on:click="onPositive()">
 | |
|         {positiveText || 'OK'}
 | |
|       </button>
 | |
|       <button type="button" on:click="onNegative()">
 | |
|         {negativeText || 'Cancel'}
 | |
|       </button>
 | |
|     </div>
 | |
|   </form>
 | |
| </ModalDialog>
 | |
| <style>
 | |
|   .confirmation-dialog-form-flex {
 | |
|     display: grid;
 | |
|     grid-template-columns: 1fr 1fr;
 | |
|     grid-gap: 10px;
 | |
|     padding: 10px 20px;
 | |
|   }
 | |
|   .confirmation-dialog-form-flex button {
 | |
|     min-width: 125px;
 | |
|   }
 | |
|   .confirmation-dialog-form p {
 | |
|     font-size: 1.3em;
 | |
|     padding: 40px 20px;
 | |
|   }
 | |
| </style>
 | |
| <script>
 | |
|   import ModalDialog from './ModalDialog.html'
 | |
|   import { show } from '../helpers/showDialog'
 | |
|   import { close } from '../helpers/closeDialog'
 | |
|   import { on } from '../../../_utils/eventBus'
 | |
|   import { oncreate as onCreateDialog } from '../helpers/onCreateDialog'
 | |
| 
 | |
|   export default {
 | |
|     oncreate () {
 | |
|       on('destroyDialog', this, this.onDestroyDialog)
 | |
|       onCreateDialog.call(this)
 | |
|     },
 | |
|     methods: {
 | |
|       show,
 | |
|       close,
 | |
|       onDestroyDialog (thisId) {
 | |
|         let {
 | |
|           id,
 | |
|           positiveResult,
 | |
|           onPositive,
 | |
|           onNegative
 | |
|         } = this.get()
 | |
|         if (thisId !== id) {
 | |
|           return
 | |
|         }
 | |
|         if (positiveResult) {
 | |
|           if (onPositive) {
 | |
|             onPositive()
 | |
|           }
 | |
|         } else {
 | |
|           if (onNegative) {
 | |
|             onNegative()
 | |
|           }
 | |
|         }
 | |
|       },
 | |
|       onPositive () {
 | |
|         this.set({ positiveResult: true })
 | |
|         this.close()
 | |
|       },
 | |
|       onNegative () {
 | |
|         this.close()
 | |
|       }
 | |
|     },
 | |
|     components: {
 | |
|       ModalDialog
 | |
|     }
 | |
|   }
 | |
| </script> |