14 'Magento_Ui/js/modal/alert',
18 'Magento_Ui/js/modal/modal' 19 ],
function($, alert){
21 $.widget(
"adminhtml.dialogRates", $.
mage.modal, {
28 this._getFormData(this.options.itemRateDefault);
30 openModal:
function() {
31 var zipIsRange = this.modal.find(
'#zip_is_range');
33 this._applyItem(this.options.itemRateDefault);
34 if (this.options.itemRate && !$.isEmptyObject(this.options.itemRate)) {
35 this._applyItem(this.options.itemRate);
37 zipIsRange.attr(
'checked', zipIsRange.val() == 1);
38 zipIsRange.trigger(
'change');
42 closeModal:
function() {
45 _applyItem:
function(rate) {
46 var dialogElement = this.modal;
48 $.each(rate,
function(key,
value) {
52 dialogElement.find(
'[name="' + key +
'"]').attr(
'value',
value);
55 updateItemRate:
function() {
56 this._getFormData(this.options.itemRate);
58 _getFormData:
function(data) {
59 $.each(this.modal.find(
':input'),
function() {
68 this.settings = settings || {};
69 this.isEntityEditable = this.settings.is_entity_editable ||
false;
71 this.
edit =
function() {
72 var listItem = $(
this).closest(
'.mselect-list-item');
73 var that = listItem.children(
'.mselect-edit');
74 var
id = listItem.find(
'input[type="checkbox"]').attr(
'value'),
77 $(
'body').trigger(
'processStart');
81 url:
'<?= /* @escapeNotVerified */ $block->getTaxRateLoadUrl() ?>',
82 success:
function(result, status) {
83 $(
'body').trigger(
'processStop');
86 item.itemElement = that.prev();
88 .dialogRates({itemRate: item})
89 .dialogRates(
'openModal');
92 if (result.error_message)
94 content: result.error_message
98 content:
'<?= /* @escapeNotVerified */ __('An error occurred
') ?>' 103 $(
'body').trigger(
'processStop');
105 content:
'<?= /* @escapeNotVerified */ __('An error occurred
') ?>' 114 mselectContainer:
'#tax_rate + section.mselect-list',
115 toggleAddButton:
false,
116 addText:
'<?= /* @escapeNotVerified */ __('Add New Tax Rate
') ?>',
118 nextPageUrl:
'<?php echo $block->escapeHtml($block->getTaxRatesPageUrl())?>',
119 selectedValues: this.settings.selected_values,
120 mselectInputSubmitCallback:
function (
value, options) {
121 var select = $(
'#tax_rate');
122 select.append(
'<option value="" selected="selected">' +
value +
'</option>');
124 .replace(/%mselectCheckedClass%|%mselectDisabledClass%|%iseditable%|%isremovable%/gi,
'')
125 .replace(/%checked%|%disabled%/gi,
'')
126 .replace(/%mselectListItemClass%/gi, options.mselectListItemClass))
127 .
find(
'[type=checkbox]')
128 .attr(
'checked',
true)
129 .addClass(options.mselectCheckedClass)
132 .find(
'.' + options.mselectItemsWrapperClass +
'');
133 itemsWrapper.children(
'.' + options.mselectListItemClass +
'').length
138 var taxRate = $(
'#tax_rate'),
139 taxRateField = taxRate.parent(),
141 taxRateFormElement = $(
'#<?= /* @escapeNotVerified */ \Magento\Tax\Block\Adminhtml\Rate\Form::FORM_ELEMENT_ID ?>');
143 if (!this.isEntityEditable) {
145 options[
'layout'] =
'<section class="block %mselectListClass%">' 146 +
'<div class="block-content"><div class="%mselectItemsWrapperClass%">' 149 +
'<div class="%mselectInputContainerClass%">' 150 +
'<input type="text" class="%mselectInputClass%" title="%inputTitle%"/>' 151 +
'<span class="%mselectButtonCancelClass%" title="%cancelText%"></span>' 152 +
'<span class="%mselectButtonSaveClass%" title="Add"></span>' 155 options[
'mselectInputSubmitCallback'] =
null;
158 taxRate.multiselect2(options);
160 taxRateField.find(
'.mselect-button-add').off(
'click');
162 taxRateField.find(
'.mselect-list')
163 .on(
'click.mselect-edit',
'.mselect-edit', this.
edit)
164 .on(
"click.mselect-delete",
".mselect-delete",
function () {
165 if (!confirm(
'<?= /* @escapeNotVerified */ __('Do you really want to
delete this tax rate?
') ?>')) {
170 select = that.closest(
'.mselect-list').prev(),
171 rateValue = that.parent().find(
'input[type="checkbox"]').val();
173 $(
'body').trigger(
'processStart');
177 tax_calculation_rate_id: rateValue,
178 form_key: $(
'input[name="form_key"]').val()
181 url:
'<?= /* @escapeNotVerified */ $block->getTaxRateDeleteUrl() ?>',
182 success:
function(result, status) {
183 $(
'body').trigger(
'processStop');
184 if (result.success) {
185 that.parent().remove();
186 select.find(
'option').each(
function() {
187 if (this.
value === rateValue) {
191 select.trigger(
'change.hiddenSelect');
193 if (result.error_message)
195 content: result.error_message
199 content:
'<?= /* @escapeNotVerified */ __('An error occurred
') ?>' 204 $(
'body').trigger(
'processStop');
206 content:
'<?= /* @escapeNotVerified */ __('An error occurred
') ?>' 213 .
on(
'click.mselectAdd',
'.mselect-button-add',
function () {
215 .dialogRates({itemRate: {}})
216 .dialogRates(
'openModal');
218 .
on(
'click.mselect-checked',
'.mselect-list-item input',
function (event) {
220 checkedClassName =
'mselect-checked';
221 el[el.is(
':checked') ?
'addClass' :
'removeClass'](checkedClassName);
223 .
on(
'dblclick.mselect-list-item',
'.mselect-list-item label span', this.
edit);
227 title:
'<?= /* @escapeNotVerified */ __('Tax Rate
') ?>',
229 id:
'<?= /* @escapeNotVerified */ $block->getJsId() ?>',
230 modalClass:
'tax-rate-popup',
231 closed:
function () {
235 text:
'<?= /* @escapeNotVerified */ __('Save
') ?>',
236 'class':
'action-save action-primary',
238 this.updateItemRate();
239 var itemRate = this.option(
'itemRate'),
240 itemRateData = $.extend({}, itemRate);
242 if (itemRateData.itemElement) {
243 delete itemRateData.itemElement;
249 $(
'.tax-rate-popup').trigger(
'processStart');
250 $(
'.loading-mask').css(
'z-index',
'1004');
255 url:
'<?= /* @escapeNotVerified */ $block->getTaxRateSaveUrl() ?>',
256 success:
function(result, status) {
257 $(
'body').trigger(
'processStop');
258 if (result.success) {
259 itemRate.code = result.code;
260 if (itemRate.tax_calculation_rate_id) {
261 itemRate.itemElement.find(
'span').html(itemRate.code);
263 itemRate.tax_calculation_rate_id = result.tax_calculation_rate_id;
264 taxRateField.find(
'.mselect-input').val(itemRate.code);
265 taxRateField.find(
'.mselect-save').trigger(
'mousedown');
266 taxRateField.find(
'option[value=""]:last')
267 .val(itemRate.tax_calculation_rate_id);
268 taxRateField.find(
'input[type="checkbox"][value="' + itemRate.code +
'"]')
269 .val(itemRate.tax_calculation_rate_id);
270 taxRateField.find(
'select').trigger(
'change.hiddenSelect');
274 if (result.error_message)
276 content: result.error_message
280 content:
'<?= /* @escapeNotVerified */ __('An error occurred
') ?>' 285 $(
'body').trigger(
'processStop');
287 content:
'<?= /* @escapeNotVerified */ __('An error occurred
') ?>' 295 $(
'.grid-loading-mask').hide();
$block setTitle( 'CMS Block Title') -> setIdentifier('fixture_block') ->setContent('< h1 >Fixture Block Title</h1 >< a href=" store url</a><p> Config value
taxRateField find('.mselect-list') .on( 'click.mselect-edit'
if( $form)() ?>< script > require(['jquery' mage mage
taxRateField this edit() this edit
itemsWrapperchildren('.'+options.mselectListItemClass+'').length ? itemsWrapper.children('.'+options.mselectListItemClass+'() taxRateFormElement
itemsWrapperchildren('.'+options.mselectListItemClass+'').length ? itemsWrapper.children('.'+options.mselectListItemClass+'() taxRateForm
taxRateField this edit on("click.mselect-delete", ".mselect-delete", function() { if(!confirm('<?=/*@escapeNotVerified */__( 'Do you really want to delete this tax rate?') ?>')) { return;} var that=$(this), select=that.closest('.mselect-list').prev(), rateValue=that.parent().find( 'input[type="checkbox"]').val();$( 'body').trigger( 'processStart');var ajaxOptions={ type:'POST', data:{ tax_calculation_rate_id:rateValue, form_key:$( 'input[name="form_key"]').val() }, dataType:'json', url:'<?=/*@escapeNotVerified */$block->getTaxRateDeleteUrl() ?>', success:function(result, status) { $( 'body').trigger( 'processStop');if(result.success) { that.parent().remove();select.find( 'option').each(function() { if(this.value===rateValue) { $(this).remove();} });select.trigger( 'change.hiddenSelect');} else { if(result.error_message) alert({ content:result.error_message });else alert({ content:'<?=/*@escapeNotVerified */__( 'An error occurred') ?>' });} }, error:function() { $( 'body').trigger( 'processStop');alert({ content:'<?=/*@escapeNotVerified */__( 'An error occurred') ?>' });} };$.ajax(ajaxOptions);}) .on( 'click.mselectAdd'
window TaxRateEditableMultiselect