Skip to content

Commit f8730c9

Browse files
committed
Refactor to change targetElementId dynamically
1 parent 7ba5410 commit f8730c9

File tree

1 file changed

+30
-22
lines changed

1 file changed

+30
-22
lines changed

lib/web/mage/adminhtml/browser.js

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ define([
2020
window.MediabrowserUtility = {
2121
windowId: 'modal_dialog_message',
2222
modalLoaded: false,
23+
targetElementId: false,
2324

2425
/**
2526
* @return {Number}
@@ -60,26 +61,21 @@ define([
6061
}
6162

6263
this.modal.modal('openModal');
64+
self.setTargetElementId(options, url);
6365
$(window).trigger('reload.MediaGallery');
6466

6567
return;
6668
}
6769

68-
if (this.modal) {
69-
this.modal.html($(content).html());
70+
this.modal = $(content).modal($.extend({
71+
title: title || 'Insert File...',
72+
modalClass: 'magento',
73+
type: 'slide',
74+
buttons: []
75+
}, options));
7076

71-
if (options && typeof options.closed !== 'undefined') {
72-
this.modal.modal('option', 'closed', options.closed);
73-
}
74-
} else {
75-
this.modal = $(content).modal($.extend({
76-
title: title || 'Insert File...',
77-
modalClass: 'magento',
78-
type: 'slide',
79-
buttons: []
80-
}, options));
81-
}
8277
this.modal.modal('openModal');
78+
8379
$.ajax({
8480
url: url,
8581
type: 'get',
@@ -89,10 +85,23 @@ define([
8985
}).done(function (data) {
9086
self.modal.html(data).trigger('contentUpdated');
9187
self.modalLoaded = true;
88+
self.setTargetElementId(options, url);
9289
});
9390

9491
},
9592

93+
/**
94+
* Setter for targetElementId property
95+
*
96+
* @param {Object} options
97+
* @param {String} url
98+
*/
99+
setTargetElementId: function (options, url) {
100+
this.targetElementId = options && options.targetElementId ?
101+
options.targetElementId
102+
: url.match(/\/target_element_id\/([\s\S].*?)\//)[1];
103+
},
104+
96105
/**
97106
* Close dialog.
98107
*/
@@ -104,7 +113,6 @@ define([
104113
$.widget('mage.mediabrowser', {
105114
eventPrefix: 'mediabrowser',
106115
options: {
107-
targetElementId: null,
108116
contentsUrl: null,
109117
onInsertUrl: null,
110118
newFolderUrl: null,
@@ -316,14 +324,14 @@ define([
316324
getTargetElement: function () {
317325
var opener, targetElementId;
318326

319-
if (typeof wysiwyg != 'undefined' && wysiwyg.get(this.options.targetElementId)) {
327+
if (!_.isUndefined(wysiwyg) && wysiwyg.get(window.MediabrowserUtility.targetElementId)) {
320328
opener = this.getMediaBrowserOpener() || window;
321-
targetElementId = tinyMceEditors.get(this.options.targetElementId).getMediaBrowserTargetElementId();
329+
targetElementId = tinyMceEditors.get(window.MediabrowserUtility.targetElementId).getMediaBrowserTargetElementId();
322330

323331
return $(opener.document.getElementById(targetElementId));
324332
}
325333

326-
return $('#' + this.options.targetElementId);
334+
return $('#' + window.MediabrowserUtility.targetElementId);
327335
},
328336

329337
/**
@@ -332,12 +340,12 @@ define([
332340
* return {Object|null}
333341
*/
334342
getMediaBrowserOpener: function () {
335-
if (typeof wysiwyg != 'undefined' &&
336-
wysiwyg.get(this.options.targetElementId) &&
337-
typeof tinyMceEditors != 'undefined' &&
338-
!tinyMceEditors.get(this.options.targetElementId).getMediaBrowserOpener().closed
343+
var targetElementId = window.MediabrowserUtility.targetElementId;
344+
345+
if (!_.isUndefined(wysiwyg) && wysiwyg.get(targetElementId) && !_.isUndefined(tinyMceEditors) &&
346+
!tinyMceEditors.get(targetElementId).getMediaBrowserOpener().closed
339347
) {
340-
return tinyMceEditors.get(this.options.targetElementId).getMediaBrowserOpener();
348+
return tinyMceEditors.get(targetElementId).getMediaBrowserOpener();
341349
}
342350

343351
return null;

0 commit comments

Comments
 (0)