Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/interact.../assets/admin/js
File: admin-scripts.js
iMapsBuilder = {
[0] Fix | Delete
searchInput: {},
[1] Fix | Delete
autocomplete: {},
[2] Fix | Delete
geocoder: {},
[3] Fix | Delete
regionData: {},
[4] Fix | Delete
regionsUsed: {},
[5] Fix | Delete
imageSaved: false,
[6] Fix | Delete
needsUpdate: false,
[7] Fix | Delete
previewBlocked: false,
[8] Fix | Delete
advanced: false,
[9] Fix | Delete
form: document.querySelector('form#post'),
[10] Fix | Delete
};
[11] Fix | Delete
[12] Fix | Delete
iMapsBuilder.editControls = function () {
[13] Fix | Delete
// Basic
[14] Fix | Delete
let addMarker = document.createElement('div');
[15] Fix | Delete
addMarker.setAttribute('id', 'map_click_add_marker');
[16] Fix | Delete
addMarker.innerHTML =
[17] Fix | Delete
'<span class="dashicons dashicons-plus-alt"></span><span class="map_action_label">Add Marker There</span>';
[18] Fix | Delete
[19] Fix | Delete
let coordinatesBox = document.getElementById('map_clicked_coordinates_box');
[20] Fix | Delete
coordinatesBox.appendChild(addMarker);
[21] Fix | Delete
coordinatesBox.style.display = 'block';
[22] Fix | Delete
[23] Fix | Delete
// Advanced
[24] Fix | Delete
if (!iMapsBuilder.advanced) {
[25] Fix | Delete
return;
[26] Fix | Delete
}
[27] Fix | Delete
[28] Fix | Delete
let setCenter = document.createElement('div');
[29] Fix | Delete
setCenter.setAttribute('id', 'map_set_center');
[30] Fix | Delete
setCenter.setAttribute('title', 'Set as initial zoom and center');
[31] Fix | Delete
setCenter.innerHTML =
[32] Fix | Delete
'<span class="dashicons dashicons-admin-post"></span><span class="map_action_label"></span>';
[33] Fix | Delete
[34] Fix | Delete
setCenter.addEventListener('click', function (ev) {
[35] Fix | Delete
let centerData = document.getElementById('map_visual_info').dataset.visual;
[36] Fix | Delete
centerData = JSON.parse(centerData);
[37] Fix | Delete
iMapsBuilder.setInitialCenter(centerData);
[38] Fix | Delete
let icon = ev.target;
[39] Fix | Delete
icon.classList.remove('dashicons-admin-post');
[40] Fix | Delete
icon.classList.add('dashicons-yes-alt');
[41] Fix | Delete
setTimeout(function () {
[42] Fix | Delete
icon.classList.remove('dashicons-yes-alt');
[43] Fix | Delete
icon.classList.add('dashicons-admin-post');
[44] Fix | Delete
}, 2500);
[45] Fix | Delete
});
[46] Fix | Delete
[47] Fix | Delete
let visualBox = document.getElementById('map_visual_info_box');
[48] Fix | Delete
visualBox.appendChild(setCenter);
[49] Fix | Delete
visualBox.style.display = 'block';
[50] Fix | Delete
};
[51] Fix | Delete
[52] Fix | Delete
iMapsBuilder.setInitialCenter = function (centerData) {
[53] Fix | Delete
let zoomField = document.getElementsByName('map_info[viewport][zoomLevel]')[0];
[54] Fix | Delete
let latitudeField = document.getElementsByName('map_info[viewport][homeGeoPoint][latitude]')[0];
[55] Fix | Delete
let longitudeField = document.getElementsByName('map_info[viewport][homeGeoPoint][longitude]')[0];
[56] Fix | Delete
zoomField.value = centerData.zoom;
[57] Fix | Delete
latitudeField.value = centerData.lat;
[58] Fix | Delete
longitudeField.value = centerData.long;
[59] Fix | Delete
[60] Fix | Delete
// rebuildPreview
[61] Fix | Delete
const event = new Event('change');
[62] Fix | Delete
longitudeField.dispatchEvent(event);
[63] Fix | Delete
};
[64] Fix | Delete
[65] Fix | Delete
iMapsBuilder.listenToClicks = function (mapID) {
[66] Fix | Delete
console.log(iMapsData.data[0].container);
[67] Fix | Delete
document
[68] Fix | Delete
.getElementById(iMapsData.data[0].container)
[69] Fix | Delete
.addEventListener('mapEntryClicked', function (ev) {
[70] Fix | Delete
let data = iMapsManager.maps[mapID].map.lastClickedEntry.dataItem.dataContext;
[71] Fix | Delete
iMapsBuilder.populateClickInfo(data);
[72] Fix | Delete
});
[73] Fix | Delete
};
[74] Fix | Delete
[75] Fix | Delete
iMapsBuilder.populateClickInfo = function (data) {
[76] Fix | Delete
var container = document.getElementById('map_click_events_info'),
[77] Fix | Delete
info = '';
[78] Fix | Delete
controls = false;
[79] Fix | Delete
[80] Fix | Delete
if (container && data) {
[81] Fix | Delete
info += 'ID: ' + data.id + '<br>';
[82] Fix | Delete
[83] Fix | Delete
if (data.name) {
[84] Fix | Delete
info += 'Name: ' + data.name + '<br>';
[85] Fix | Delete
}
[86] Fix | Delete
[87] Fix | Delete
if (data.madeFromGeoData) {
[88] Fix | Delete
controls = iMapsBuilder.addRegionButton(data.id, data.name);
[89] Fix | Delete
controls.addEventListener('click', function (ev) {
[90] Fix | Delete
ev.target.classList.remove('dashicons-plus-alt');
[91] Fix | Delete
ev.target.classList.add('dashicons-yes-alt');
[92] Fix | Delete
ev.target.style.pointerEvents = 'none';
[93] Fix | Delete
});
[94] Fix | Delete
}
[95] Fix | Delete
[96] Fix | Delete
if (data.latitude) {
[97] Fix | Delete
info += 'LAT: ' + Number(data.latitude).toFixed(6) + '<br>';
[98] Fix | Delete
info += 'LONG: ' + Number(data.longitude).toFixed(6) + '<br>';
[99] Fix | Delete
}
[100] Fix | Delete
[101] Fix | Delete
if (data.action) {
[102] Fix | Delete
info += 'Action: ' + data.action.replace('igm_', '') + '<br>';
[103] Fix | Delete
}
[104] Fix | Delete
container.parentElement.style.display = 'block';
[105] Fix | Delete
container.innerHTML = info;
[106] Fix | Delete
[107] Fix | Delete
if (controls) {
[108] Fix | Delete
container.appendChild(controls);
[109] Fix | Delete
}
[110] Fix | Delete
}
[111] Fix | Delete
};
[112] Fix | Delete
[113] Fix | Delete
iMapsBuilder.checkMaxInputVars = function () {
[114] Fix | Delete
var numNormInputs = document.getElementsByTagName('input').length;
[115] Fix | Delete
var numTextarea = document.getElementsByTagName('textarea').length;
[116] Fix | Delete
var numInputs = numNormInputs + numTextarea;
[117] Fix | Delete
var warning = '';
[118] Fix | Delete
var firstBox = document.getElementById('titlediv');
[119] Fix | Delete
var reqBox = document.getElementById('map_min_req');
[120] Fix | Delete
var icon = '<span class="dashicons dashicons-yes-alt"></span>';
[121] Fix | Delete
[122] Fix | Delete
console.log('Number of inputs: ', numInputs + numTextarea);
[123] Fix | Delete
console.log('Max Input Vars: ', iMapsOptions.max_input_vars);
[124] Fix | Delete
[125] Fix | Delete
if (parseInt(numInputs) > parseInt(iMapsOptions.max_input_vars * 0.75)) {
[126] Fix | Delete
warning = document.createElement('div');
[127] Fix | Delete
warning.setAttribute('class', 'notice notice-error is-dismissible');
[128] Fix | Delete
warning.innerHTML = '<h1>' + iMapsOptions.messages.maxInputError + '</h1>';
[129] Fix | Delete
icon = firstBox.insertBefore(warning, firstBox.childNodes[0]);
[130] Fix | Delete
[131] Fix | Delete
icon = '<span class="dashicons dashicons-warning"></span>';
[132] Fix | Delete
}
[133] Fix | Delete
[134] Fix | Delete
reqBox.innerHTML =
[135] Fix | Delete
'max_input_vars: ' + numInputs + '/' + iMapsOptions.max_input_vars + ' ' + icon;
[136] Fix | Delete
};
[137] Fix | Delete
[138] Fix | Delete
iMapsBuilder.init = function () {
[139] Fix | Delete
var saveBtn = document.getElementById('publish'),
[140] Fix | Delete
mapID = document.getElementById('post_ID').value;
[141] Fix | Delete
[142] Fix | Delete
// add listener to accordions and clone buttons for maxInputVars
[143] Fix | Delete
iMapsBuilder.addRepeatFieldsListener();
[144] Fix | Delete
[145] Fix | Delete
//check if advanced
[146] Fix | Delete
if (document.body.classList.contains('igm-pro')) {
[147] Fix | Delete
iMapsBuilder.advanced = true;
[148] Fix | Delete
}
[149] Fix | Delete
[150] Fix | Delete
// click action warning
[151] Fix | Delete
iMapsBuilder.clickActionWarnings();
[152] Fix | Delete
[153] Fix | Delete
// add preview
[154] Fix | Delete
if (typeof iMapsData !== 'undefined') {
[155] Fix | Delete
iMapsBuilder.buildPreview();
[156] Fix | Delete
iMapsBuilder.initAvailableRegions();
[157] Fix | Delete
iMapsBuilder.addPreviewImage();
[158] Fix | Delete
iMapsBuilder.listenToClicks(mapID);
[159] Fix | Delete
}
[160] Fix | Delete
[161] Fix | Delete
// save button
[162] Fix | Delete
saveBtn.addEventListener('click', function (ev) {
[163] Fix | Delete
var mapImageField = document.getElementsByName('map_image[mapImage]')[0],
[164] Fix | Delete
mapId = document.getElementById('post_ID').value;
[165] Fix | Delete
[166] Fix | Delete
if (typeof mapImageField === 'undefined') {
[167] Fix | Delete
return;
[168] Fix | Delete
}
[169] Fix | Delete
[170] Fix | Delete
if (!iMapsBuilder.imageSaved) {
[171] Fix | Delete
if (iMaps.maps && iMaps.maps[mapId] && iMaps.maps[mapId].map) {
[172] Fix | Delete
ev.preventDefault();
[173] Fix | Delete
[174] Fix | Delete
var zoomLevel = iMaps.maps[mapId].map.zoomLevel;
[175] Fix | Delete
if (zoomLevel !== 1) {
[176] Fix | Delete
iMaps.maps[mapId].map.goHome(0);
[177] Fix | Delete
}
[178] Fix | Delete
[179] Fix | Delete
iMaps.maps[mapId].map.exporting.getImage('svg').then(function (imgData) {
[180] Fix | Delete
mapImageField.value = imgData;
[181] Fix | Delete
iMapsBuilder.imageSaved = true;
[182] Fix | Delete
ev.target.click();
[183] Fix | Delete
});
[184] Fix | Delete
}
[185] Fix | Delete
}
[186] Fix | Delete
});
[187] Fix | Delete
[188] Fix | Delete
// check for overlay and make sortable
[189] Fix | Delete
iMapsBuilder.sortableOverlay();
[190] Fix | Delete
[191] Fix | Delete
// check for auto labels clear link
[192] Fix | Delete
iMapsBuilder.autoLabelsReset();
[193] Fix | Delete
[194] Fix | Delete
// geocoding fields
[195] Fix | Delete
if (iMapsOptions.googleApiKey && iMapsOptions.googleApiKey !== '') {
[196] Fix | Delete
var geocodingFields = document.getElementsByClassName('geocoding');
[197] Fix | Delete
for (var i = 0; i < geocodingFields.length; i++) {
[198] Fix | Delete
geocodingFields.item(i).classList.remove('geocoding-hide');
[199] Fix | Delete
}
[200] Fix | Delete
[201] Fix | Delete
// enable google autocomplete
[202] Fix | Delete
if (iMapsOptions.googleAutocomplete && iMapsOptions.googleAutocomplete === '1') {
[203] Fix | Delete
iMapsBuilder.initGoogleAutocomplete();
[204] Fix | Delete
} else {
[205] Fix | Delete
iMapsBuilder.initGeocoding();
[206] Fix | Delete
}
[207] Fix | Delete
}
[208] Fix | Delete
[209] Fix | Delete
iMapsBuilder.editControls();
[210] Fix | Delete
iMapsBuilder.prepareAddMarkerActions();
[211] Fix | Delete
[212] Fix | Delete
// check number of inputs
[213] Fix | Delete
setTimeout(function () {
[214] Fix | Delete
iMapsBuilder.checkMaxInputVars();
[215] Fix | Delete
}, 1000);
[216] Fix | Delete
};
[217] Fix | Delete
[218] Fix | Delete
iMapsBuilder.addRepeatFieldsListener = function () {
[219] Fix | Delete
var cloneBts = document.getElementsByClassName('csf-cloneable-add');
[220] Fix | Delete
[221] Fix | Delete
for (var i = 0; i < cloneBts.length; i++) {
[222] Fix | Delete
cloneBts[i].addEventListener('click', iMapsBuilder.checkMaxInputVars, false);
[223] Fix | Delete
}
[224] Fix | Delete
};
[225] Fix | Delete
[226] Fix | Delete
iMapsBuilder.clickActionWarnings = function () {
[227] Fix | Delete
var clickActionBts = document.getElementsByName('map_info[regionDefaults][action]')[0];
[228] Fix | Delete
var clickActionMarkerBts = document.getElementsByName('map_info[markerDefaults][action]')[0];
[229] Fix | Delete
var mainContainer = document.getElementById('map_info');
[230] Fix | Delete
[231] Fix | Delete
clickActionBts.addEventListener('change', function (ev) {
[232] Fix | Delete
if (this.value !== 'none') {
[233] Fix | Delete
mainContainer.classList.add('igm_region_click_check');
[234] Fix | Delete
} else {
[235] Fix | Delete
mainContainer.classList.remove('igm_region_click_check');
[236] Fix | Delete
}
[237] Fix | Delete
});
[238] Fix | Delete
[239] Fix | Delete
clickActionMarkerBts.addEventListener('change', function (ev) {
[240] Fix | Delete
if (this.value !== 'none') {
[241] Fix | Delete
mainContainer.classList.add('igm_marker_click_check');
[242] Fix | Delete
} else {
[243] Fix | Delete
mainContainer.classList.remove('igm_marker_click_check');
[244] Fix | Delete
}
[245] Fix | Delete
});
[246] Fix | Delete
[247] Fix | Delete
// on initial load, check them
[248] Fix | Delete
if (clickActionBts && clickActionBts.value !== 'none') {
[249] Fix | Delete
mainContainer.classList.add('igm_region_click_check');
[250] Fix | Delete
}
[251] Fix | Delete
[252] Fix | Delete
if (clickActionMarkerBts && clickActionMarkerBts.value !== 'none') {
[253] Fix | Delete
mainContainer.classList.add('igm_marker_click_check');
[254] Fix | Delete
}
[255] Fix | Delete
};
[256] Fix | Delete
[257] Fix | Delete
/**
[258] Fix | Delete
* Set up click event to reset auto labels custom coordinates
[259] Fix | Delete
*/
[260] Fix | Delete
iMapsBuilder.autoLabelsReset = function () {
[261] Fix | Delete
var clearLink = document.getElementById('igm-reset-auto-labels');
[262] Fix | Delete
if (clearLink) {
[263] Fix | Delete
clearLink.addEventListener('click', function (ev) {
[264] Fix | Delete
if (confirm(iMapsOptions.messages.resetAutoLabels)) {
[265] Fix | Delete
var regionLabelsCustomCoordinates = document.getElementsByName(
[266] Fix | Delete
'map_info[regionLabels][regionLabelCustomCoordinates]'
[267] Fix | Delete
)[0];
[268] Fix | Delete
regionLabelsCustomCoordinates.value = '';
[269] Fix | Delete
regionLabelsCustomCoordinates.dispatchEvent(new Event('change'));
[270] Fix | Delete
}
[271] Fix | Delete
});
[272] Fix | Delete
}
[273] Fix | Delete
};
[274] Fix | Delete
[275] Fix | Delete
iMapsBuilder.sortableOverlay = function () {
[276] Fix | Delete
// Using jQuery since we'll use jquery-ui for sortable anyway
[277] Fix | Delete
var overlayParent = jQuery('[data-depend-id=overlay]');
[278] Fix | Delete
var overlaySortable;
[279] Fix | Delete
[280] Fix | Delete
if (overlayParent) {
[281] Fix | Delete
overlaySortable = overlayParent.first().closest('ul');
[282] Fix | Delete
[283] Fix | Delete
// take advantage of this function to also set the title attribute for the li with the map id
[284] Fix | Delete
overlaySortable.find('li').each(function () {
[285] Fix | Delete
jQuery(this).attr('title', 'Map ID: ' + jQuery(this).find('input').attr('value'));
[286] Fix | Delete
});
[287] Fix | Delete
}
[288] Fix | Delete
[289] Fix | Delete
// update order when we select a new overlay
[290] Fix | Delete
overlayParent.on('change', function () {
[291] Fix | Delete
iMapsBuilder.updateOrderOverlay();
[292] Fix | Delete
});
[293] Fix | Delete
[294] Fix | Delete
// if there's an order
[295] Fix | Delete
var overlayOrder = document.querySelector('[data-depend-id=overlayOrder]');
[296] Fix | Delete
if (overlayOrder && overlayOrder.value !== '' && overlaySortable) {
[297] Fix | Delete
var orderValues = JSON.parse(overlayOrder.value);
[298] Fix | Delete
if (Array.isArray(orderValues)) {
[299] Fix | Delete
orderValues.reverse();
[300] Fix | Delete
orderValues.forEach(function (val) {
[301] Fix | Delete
var thisOrder = overlaySortable.find('input[value=' + val + ']').closest('li');
[302] Fix | Delete
if (thisOrder) {
[303] Fix | Delete
overlaySortable.prepend(thisOrder);
[304] Fix | Delete
}
[305] Fix | Delete
});
[306] Fix | Delete
}
[307] Fix | Delete
}
[308] Fix | Delete
[309] Fix | Delete
// set sortable behaviour
[310] Fix | Delete
if (overlayParent) {
[311] Fix | Delete
overlaySortable.sortable({
[312] Fix | Delete
placeholder: 'ui-state-highlight',
[313] Fix | Delete
stop: function (event, ui) {
[314] Fix | Delete
iMapsBuilder.previewBlocked = true;
[315] Fix | Delete
iMapsBuilder.blockPreview();
[316] Fix | Delete
iMapsBuilder.updateOrderOverlay();
[317] Fix | Delete
},
[318] Fix | Delete
});
[319] Fix | Delete
overlayParent.disableSelection();
[320] Fix | Delete
}
[321] Fix | Delete
};
[322] Fix | Delete
[323] Fix | Delete
iMapsBuilder.updateOrderOverlay = function () {
[324] Fix | Delete
var overlayOrder = document.querySelector('[data-depend-id=overlayOrder]');
[325] Fix | Delete
var overlaySelected = document.querySelectorAll('input[data-depend-id=overlay]:checked');
[326] Fix | Delete
var order = [];
[327] Fix | Delete
[328] Fix | Delete
if (overlaySelected) {
[329] Fix | Delete
overlaySelected.forEach(function (el) {
[330] Fix | Delete
order.push(el.value);
[331] Fix | Delete
});
[332] Fix | Delete
}
[333] Fix | Delete
order = JSON.stringify(order);
[334] Fix | Delete
overlayOrder.value = order;
[335] Fix | Delete
};
[336] Fix | Delete
[337] Fix | Delete
iMapsBuilder.prepareAddMarkerActions = function () {
[338] Fix | Delete
var addMarkerButton = document.getElementById('map_click_add_marker');
[339] Fix | Delete
var addMarkerButtonIcon = addMarkerButton.querySelector('.dashicons');
[340] Fix | Delete
var addMarkerButtonLabel = addMarkerButton.querySelector('.map_action_label');
[341] Fix | Delete
[342] Fix | Delete
// listen to clicked point event
[343] Fix | Delete
document.addEventListener('mapPointClicked', function (e) {
[344] Fix | Delete
// set coordinates in button
[345] Fix | Delete
addMarkerButton.setAttribute('data-latitude', e.detail.latitude);
[346] Fix | Delete
addMarkerButton.setAttribute('data-longitude', e.detail.longitude);
[347] Fix | Delete
addMarkerButtonIcon.classList.remove('dashicons-yes-alt');
[348] Fix | Delete
addMarkerButtonIcon.classList.add('dashicons-plus-alt');
[349] Fix | Delete
addMarkerButtonLabel.innerHTML = 'Add Marker Here';
[350] Fix | Delete
});
[351] Fix | Delete
[352] Fix | Delete
addMarkerButton.addEventListener(
[353] Fix | Delete
'click',
[354] Fix | Delete
function (e) {
[355] Fix | Delete
e.stopPropagation();
[356] Fix | Delete
[357] Fix | Delete
var lat = addMarkerButton.getAttribute('data-latitude');
[358] Fix | Delete
var long = addMarkerButton.getAttribute('data-longitude');
[359] Fix | Delete
[360] Fix | Delete
iMapsBuilder.addMarker(lat, long);
[361] Fix | Delete
[362] Fix | Delete
addMarkerButtonIcon.classList.remove('dashicons-plus-alt');
[363] Fix | Delete
addMarkerButtonIcon.classList.add('dashicons-yes-alt');
[364] Fix | Delete
addMarkerButtonLabel.innerHTML = 'Marker Added';
[365] Fix | Delete
},
[366] Fix | Delete
false
[367] Fix | Delete
);
[368] Fix | Delete
};
[369] Fix | Delete
[370] Fix | Delete
iMapsBuilder.updateRegionsUsed = function () {
[371] Fix | Delete
var regionFields = document.querySelectorAll('.region-code-autocomplete');
[372] Fix | Delete
var result = [].map.call(regionFields, function (e) {
[373] Fix | Delete
return e.value;
[374] Fix | Delete
});
[375] Fix | Delete
[376] Fix | Delete
iMapsBuilder.regionsUsed = result;
[377] Fix | Delete
return result;
[378] Fix | Delete
};
[379] Fix | Delete
[380] Fix | Delete
iMapsBuilder.addPreviewImage = function () {
[381] Fix | Delete
var mapImage = document.getElementById('map_image_preview'),
[382] Fix | Delete
mapImageField = document.getElementsByName('map_image[mapImage]')[0];
[383] Fix | Delete
[384] Fix | Delete
if (mapImageField && mapImageField.value !== '') {
[385] Fix | Delete
mapImage.innerHTML = '<img class="igm_map_image_preview" src="' + mapImageField.value + '">';
[386] Fix | Delete
}
[387] Fix | Delete
};
[388] Fix | Delete
[389] Fix | Delete
iMapsBuilder.initAvailableRegions = function () {
[390] Fix | Delete
var data = iMapsData.data[0],
[391] Fix | Delete
regionCodes;
[392] Fix | Delete
[393] Fix | Delete
if (data.disabled) {
[394] Fix | Delete
return;
[395] Fix | Delete
}
[396] Fix | Delete
[397] Fix | Delete
if (data.map === 'custom' || data.map.startsWith('http')) {
[398] Fix | Delete
fetch(data.mapURL)
[399] Fix | Delete
.then(function (res) {
[400] Fix | Delete
res.json().then(function (out) {
[401] Fix | Delete
regionCodes = iMapsBuilder.extractGeojson(out);
[402] Fix | Delete
iMapsBuilder.updateRegionsUsed();
[403] Fix | Delete
iMapsBuilder.populateAvailableRegions(regionCodes);
[404] Fix | Delete
});
[405] Fix | Delete
})
[406] Fix | Delete
.catch(function (err) {
[407] Fix | Delete
console.error(err);
[408] Fix | Delete
});
[409] Fix | Delete
} else {
[410] Fix | Delete
mapVar = iMapsRouter.getVarByName(data.map);
[411] Fix | Delete
[412] Fix | Delete
if (typeof window[mapVar] !== 'undefined') {
[413] Fix | Delete
regionCodes = iMapsBuilder.extractGeojson(window[mapVar]);
[414] Fix | Delete
iMapsBuilder.updateRegionsUsed();
[415] Fix | Delete
iMapsBuilder.populateAvailableRegions(regionCodes);
[416] Fix | Delete
} else {
[417] Fix | Delete
return;
[418] Fix | Delete
}
[419] Fix | Delete
}
[420] Fix | Delete
};
[421] Fix | Delete
[422] Fix | Delete
iMapsBuilder.populateAvailableRegions = function (regionCodes) {
[423] Fix | Delete
var data = iMapsData.data[0],
[424] Fix | Delete
regionDataContainer = document.getElementsByName('map_regions_info[regionData]')[0],
[425] Fix | Delete
container = document.getElementById('map_region_data'),
[426] Fix | Delete
currentMap = document.getElementsByName('map_info[map]')[0].selectedOptions[0].text,
[427] Fix | Delete
jsonContainer,
[428] Fix | Delete
containerContent,
[429] Fix | Delete
tree,
[430] Fix | Delete
regionData = {},
[431] Fix | Delete
populateButton,
[432] Fix | Delete
regionDataArray = [],
[433] Fix | Delete
mainContainer = document.getElementById('map_info'),
[434] Fix | Delete
html = document.createElement('div'),
[435] Fix | Delete
used = iMapsBuilder.regionsUsed;
[436] Fix | Delete
[437] Fix | Delete
if (typeof regionCodes === 'undefined') {
[438] Fix | Delete
regionCodes = iMapsBuilder.regionCodes;
[439] Fix | Delete
} else {
[440] Fix | Delete
iMapsBuilder.regionCodes = regionCodes;
[441] Fix | Delete
}
[442] Fix | Delete
[443] Fix | Delete
if (container) {
[444] Fix | Delete
var currentMapEl = document.createElement('p');
[445] Fix | Delete
currentMapEl.innerHTML = currentMap;
[446] Fix | Delete
html.appendChild(currentMapEl);
[447] Fix | Delete
[448] Fix | Delete
// add button to autopopulate map
[449] Fix | Delete
/*
[450] Fix | Delete
populateButton = document.createElement("button");
[451] Fix | Delete
populateButton.innerHTML = "Populate Map with all regions";
[452] Fix | Delete
populateButton.setAttribute("class", "button button-secondary");
[453] Fix | Delete
populateButton.onclick = function (e) {
[454] Fix | Delete
e.preventDefault();
[455] Fix | Delete
[456] Fix | Delete
Object.keys(regionCodes).forEach(function (region) {
[457] Fix | Delete
iMapsBuilder.addRegion(
[458] Fix | Delete
regionCodes[region].id,
[459] Fix | Delete
regionCodes[region].name
[460] Fix | Delete
);
[461] Fix | Delete
});
[462] Fix | Delete
[463] Fix | Delete
// trigger form change event
[464] Fix | Delete
document
[465] Fix | Delete
.getElementsByName("map_info[map]")[0]
[466] Fix | Delete
.dispatchEvent(new Event("change"));
[467] Fix | Delete
};
[468] Fix | Delete
html.appendChild(populateButton);
[469] Fix | Delete
*/
[470] Fix | Delete
var regionCodeEl = document.createElement('code');
[471] Fix | Delete
regionCodeEl.innerHTML = iMapsOptions.messages.regionCode;
[472] Fix | Delete
html.appendChild(regionCodeEl);
[473] Fix | Delete
[474] Fix | Delete
var regionNameEl = document.createElement('span');
[475] Fix | Delete
regionNameEl.innerHTML =
[476] Fix | Delete
iMapsOptions.messages.regionName +
[477] Fix | Delete
'<br> <small>' +
[478] Fix | Delete
iMapsOptions.messages.regionCodeInfo +
[479] Fix | Delete
'</small>';
[480] Fix | Delete
html.appendChild(regionNameEl);
[481] Fix | Delete
[482] Fix | Delete
html.appendChild(document.createElement('br'));
[483] Fix | Delete
html.appendChild(document.createElement('br'));
[484] Fix | Delete
[485] Fix | Delete
Object.keys(regionCodes)
[486] Fix | Delete
.sort()
[487] Fix | Delete
.forEach(function (region) {
[488] Fix | Delete
regionData[regionCodes[region].name] = region;
[489] Fix | Delete
[490] Fix | Delete
regionDataArray.push({
[491] Fix | Delete
label: regionCodes[region].name + ' ' + '(' + region + ')',
[492] Fix | Delete
value: region,
[493] Fix | Delete
});
[494] Fix | Delete
[495] Fix | Delete
// if there's no name property, try NAME or id
[496] Fix | Delete
if (typeof regionCodes[region].name === 'undefined') {
[497] Fix | Delete
if (typeof regionCodes[region].NAME !== 'undefined') {
[498] Fix | Delete
regionCodes[region].name = regionCodes[region].NAME;
[499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function