Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
before.phtml
Go to the documentation of this file.
1 <?php
7 // @codingStandardsIgnoreFile
8 ?>
9 <?php
11 ?>
12 <script>
13 require([
14  'jquery',
15  'Magento_Ui/js/modal/alert',
16  'prototype'
17 ], function(jQuery, alert){
18 
19 //<![CDATA[
20  // Temporary Class will be replaced after refactoring of import/export functionality
21  varienImport = {
26  ifrElemName: 'import_post_target_frame',
27 
32  uniqueBehaviors: <?= /* @escapeNotVerified */ $block->getUniqueBehaviors() ?>,
33 
38  entityBehaviors: <?= /* @escapeNotVerified */ $block->getEntityBehaviors() ?>,
39 
44  entityBehaviorsNotes: <?= /* @escapeNotVerified */ $block->getEntityBehaviorsNotes() ?>,
45 
50  sampleFilesBaseUrl: '<?= /* @escapeNotVerified */ $block->getUrl('*/*/download/', ['filename' => 'entity-name']) ?>',
51 
56  resetSelectIndex: function(elementId) {
57  var element = jQuery('#' + elementId);
58  if (element) {
59  element[0].selectedIndex = 0;
60  }
61  },
62 
67  showBehavior: function(entity) {
68  var requiredBehavior = this.entityBehaviors[entity];
69  for (i = 0; i < this.uniqueBehaviors.length; i++) {
70  var currentBehavior = this.uniqueBehaviors[i];
71  this.showBehaviorFieldset(currentBehavior, requiredBehavior == currentBehavior);
72  }
73  },
74 
80  showBehaviorFieldset: function(behaviorId, isShow) {
81  var behaviorFieldset = jQuery('#' + behaviorId + '_fieldset'),
82  behaviorFields = jQuery('.' + behaviorId);
83  if (isShow) {
84  behaviorFieldset.show();
85  } else {
86  behaviorFieldset.hide();
87  this.resetSelectIndex(behaviorId);
88  }
89  behaviorFields.each(function(k, behaviorField){
90  behaviorField = jQuery(behaviorField);
91  if (isShow) {
92  behaviorField.prop('disabled', false);
93  behaviorField.addClass('required-entry');
94  } else {
95  behaviorField.prop('disabled', 'disabled');
96  behaviorField.removeClass('required-entry');
97  }
98  });
99  },
100 
105  showUploadFile: function(isShow) {
106  if (isShow == true) {
107  jQuery('#upload_file_fieldset').show();
108  } else {
109  jQuery('#upload_file_fieldset').hide();
110  }
111  },
112 
117  showSampleFile: function(entityId) {
118  var sampleFileSpan = jQuery('#sample-file-span');
119  if (entityId) {
120  var sampleFileLink = this.sampleFilesBaseUrl.replace('entity-name', entityId);
121  jQuery('#sample-file-link').attr('href', sampleFileLink);
122  if (sampleFileSpan.is(':hidden')) {
123  sampleFileSpan.show();
124  }
125  } else {
126  sampleFileSpan.hide();
127  }
128  },
129 
133  handleEntityTypeSelector: function() {
134  var entity = jQuery('#entity');
135  if (entity && entity.val()) {
136  this.showBehavior(entity.val());
137  this.showUploadFile(true);
138  this.showSampleFile(entity.val());
139  } else {
140  this.showBehavior(false);
141  this.showUploadFile(false);
142  this.showSampleFile(false);
143  }
144  this.handleImportBehaviorSelector();
145  },
146 
150  handleImportBehaviorSelector: function() {
151  var entity = jQuery('#entity');
152  if (entity && entity.val()) {
153  var notes = this.entityBehaviorsNotes[entity.val()];
154  var requiredBehavior = this.entityBehaviors[entity.val()];
155  var behaviorInput = jQuery('#' + requiredBehavior);
156  var behavior = behaviorInput && behaviorInput.val();
157  if (behavior && notes[behavior]) {
158  jQuery('#' + requiredBehavior + '-note').html(notes[behavior]);
159  } else {
160  jQuery('#' + requiredBehavior + '-note').html('');
161  }
162  }
163  },
164 
169  postToFrame: function(newActionUrl) {
170  if (!jQuery('[name="' + this.ifrElemName + '"]').length) {
171  jQuery('body').append('<iframe name="' + this.ifrElemName + '" id="' + this.ifrElemName
172  + '" style="display:none;"/>');
173  }
174  jQuery('body')
175  .loader({
176  icon: jQuery('#loading_mask_loader img').attr('src')
177  })
178  .loader('show');
179  var form = jQuery('#edit_form')
180  .one('invalid-form.validate', function(e){jQuery('body').loader('hide')});
181 
182  newActionUrl = (newActionUrl ? newActionUrl : form.attr('action'));
183  if (newActionUrl.lastIndexOf('form_key') === -1) {
184  newActionUrl = newActionUrl +
185  (newActionUrl.lastIndexOf('?') !== -1 ? '&' : '?') +
186  'form_key=' + encodeURIComponent(form.find('[name="form_key"]').val());
187  }
188 
189  form.trigger('save', [{
190  action: newActionUrl,
191  target: this.ifrElemName
192  }]);
193  },
194 
199  postToFrameComplete: function(response) {
200  jQuery('body').loader('hide');
201  jQuery('#' + this.ifrElemName).remove();
202  this.postToFrameProcessResponse(response);
203  },
204 
209  postToFrameProcessResponse: function(response) {
210  if ('object' != typeof(response)) {
211  alert({
212  content: 'Invalid response'
213  });
214 
215  return false;
216  }
217  $H(response).each(function(pair) {
218  switch (pair.key) {
219  case 'show':
220  case 'clear':
221  case 'hide':
222  $H(pair.value).each(function(val) {
223  if ($(val.value)) {
224  $(val.value)[pair.key]();
225  }
226  });
227  break;
228  case 'innerHTML':
229  case 'value':
230  $H(pair.value).each(function(val) {
231  var el = $(val.key);
232  if (el) {
233  el[pair.key] = val.value;
234  // if element does not visible
235  el.offsetWidth || el.up('div.entry-edit').show();
236  }
237  });
238  break;
239  case 'removeClassName':
240  case 'addClassName':
241  $H(pair.value).each(function(val) {
242  if ($(val.key)) $(val.key)[pair.key](val.value);
243  });
244  break;
245  default:
246  alert({
247  content: pair.key + ': ' + pair.value
248  });
249  break;
250  }
251  });
252  },
253 
259  startImport: function(newActionUrl, sourceFileField) {
260  jQuery('#' + sourceFileField).removeClass('required-entry');
261  this.postToFrame(newActionUrl);
262  jQuery('#' + sourceFileField).addClass('required-entry');
263  }
264  };
265 //]]>
266 
267 });
268 </script>
$block
Definition: block.php:8
jQuery('.store-switcher .dropdown-menu li a').each(function()
Definition: switcher.phtml:203