123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- /**
- * @api
- */
- define([
- 'jquery',
- 'underscore',
- 'mage/translate',
- 'jquery/ui',
- 'Magento_Ui/js/modal/modal'
- ], function ($, _, $t) {
- 'use strict';
- $.widget('mage.confirm', $.mage.modal, {
- options: {
- modalClass: 'confirm',
- title: '',
- focus: '.action-accept',
- actions: {
- /**
- * Callback always - called on all actions.
- */
- always: function () {},
- /**
- * Callback confirm.
- */
- confirm: function () {},
- /**
- * Callback cancel.
- */
- cancel: function () {}
- },
- buttons: [{
- text: $t('Cancel'),
- class: 'action-secondary action-dismiss',
- /**
- * Click handler.
- */
- click: function (event) {
- this.closeModal(event);
- }
- }, {
- text: $t('OK'),
- class: 'action-primary action-accept',
- /**
- * Click handler.
- */
- click: function (event) {
- this.closeModal(event, true);
- }
- }]
- },
- /**
- * Create widget.
- */
- _create: function () {
- this._super();
- this.modal.find(this.options.modalCloseBtn).off().on('click', _.bind(this.closeModal, this));
- this.openModal();
- },
- /**
- * Remove modal window.
- */
- _remove: function () {
- this.modal.remove();
- },
- /**
- * Open modal window.
- */
- openModal: function () {
- return this._super();
- },
- /**
- * Close modal window.
- */
- closeModal: function (event, result) {
- result = result || false;
- if (result) {
- this.options.actions.confirm(event);
- } else {
- this.options.actions.cancel(event);
- }
- this.options.actions.always(event);
- this.element.bind('confirmclosed', _.bind(this._remove, this));
- return this._super();
- }
- });
- return function (config) {
- return $('<div></div>').html(config.content).confirm(config);
- };
- });
|