File Manager
/**
* @namespace WPGMZA
* @module ThemePanel
* @requires WPGMZA
*/
jQuery(function($) {
WPGMZA.ThemePanel = function()
{
var self = this;
this.element = $("#wpgmza-theme-panel");
this.map = WPGMZA.maps[0];
if(WPGMZA.settings.engine == "open-layers"){
this.element.remove();
/* Init OL Theme Panel from here, we could use createInstance for this, but for now it's not needed */
this.olThemePanel = new WPGMZA.OLThemePanel();
return;
}
if(!this.element.length)
{
console.warn("No element to initialise theme panel on");
return;
}
$("#wpgmza-theme-presets").owlCarousel({
items: 6,
dots: true
});
this.element.on("click", "#wpgmza-theme-presets label, .theme-selection-panel label", function(event) {
self.onThemePresetClick(event);
});
$("#wpgmza-open-theme-editor").on("click", function(event) {
$('#wpgmza-map-theme-editor__holder').addClass('active');
$("#wpgmza-theme-editor").addClass('active');
WPGMZA.animateScroll($("#wpgmza-theme-editor"));
});
WPGMZA.themePanel = this;
/*CodeMirror.fromTextArea($("textarea[name='wpgmza_theme_data']")[0], {
lineNumbers: true,
mode: "javascript"
});*/
}
// NB: These aren't used anywhere, but they are recorded here for future use in making preview images
WPGMZA.ThemePanel.previewImageCenter = {lat: 33.701806462148646, lng: -118.15949896058983};
WPGMZA.ThemePanel.previewImageZoom = 11;
WPGMZA.ThemePanel.prototype.onThemePresetClick = function(event)
{
var selectedData = $(event.currentTarget).find("[data-theme-json]").attr("data-theme-json");
var textarea = $("textarea[name='wpgmza_theme_data']");
var existingData = textarea.val();
var allPresetData = [];
$(this.element).find("[data-theme-json]").each(function(index, el) {
allPresetData.push( $(el).attr("data-theme-json") );
});
// NB: This code will only prompt the user to overwrite if a custom theme is not being used. This way you can still flick through the unmodified themes
if(existingData.length && allPresetData.indexOf(existingData) == -1)
{
if(!confirm(WPGMZA.localized_strings.overwrite_theme_data))
return;
}
textarea.val(selectedData);
this.updateMapTheme();
WPGMZA.themeEditor.parse();
}
WPGMZA.ThemePanel.prototype.updateMapTheme = function()
{
var data;
try{
data = JSON.parse($("textarea[name='wpgmza_theme_data']").val());
}catch(e) {
alert(WPGMZA.localized_strings.invalid_theme_data);
return;
}
this.map.setOptions({styles: data});
}
});
File Manager Version 1.0, Coded By Lucas
Email: hehe@yahoo.com