2202 lines
50 KiB
JavaScript
2202 lines
50 KiB
JavaScript
|
"use strict";
|
||
|
|
||
|
function UniteCreatorAdmin(){
|
||
|
|
||
|
var t = this, g_objWrapper;
|
||
|
var g_providerAdmin = new UniteProviderAdminUC();
|
||
|
var g_objIncludes = new UniteCreatorIncludes();
|
||
|
|
||
|
var g_generalSettings = new UniteSettingsUC();
|
||
|
|
||
|
var g_paramsEditorMain = new UniteCreatorParamsEditor();
|
||
|
var g_paramsEditorItems = new UniteCreatorParamsEditor();
|
||
|
|
||
|
var g_objDialogParam = new UniteCreatorParamsDialog();
|
||
|
var g_objDialogItemVariable = new UniteCreatorParamsDialog();
|
||
|
var g_objDialogMainVariable = new UniteCreatorParamsDialog();
|
||
|
|
||
|
var g_codemirrorCss = null, g_codemirrorJs = null;
|
||
|
var g_codemirrorCssItem = null;
|
||
|
var g_codemirrorHtmlItem = null, g_codemirrorHtml = null;
|
||
|
var g_codemirrorHtmlItem2 = null, g_objButtonsPanel;
|
||
|
|
||
|
var g_objAssetsManager = new UCAssetsManager();
|
||
|
var g_objAssetsIncludes = new UCAssetsManager();
|
||
|
var g_settingsItem = new UniteSettingsUC();
|
||
|
var g_settingsJS = new UniteSettingsUC();
|
||
|
|
||
|
var g_addonID = null, g_objItemSettingsWrapper, g_objWrapperItems;
|
||
|
|
||
|
//param panels
|
||
|
var g_paramsPanelMain = new UniteCreatorParamsPanel();
|
||
|
|
||
|
var g_paramsPanelItem = new UniteCreatorParamsPanel();
|
||
|
var g_paramsPanelItem2 = new UniteCreatorParamsPanel();
|
||
|
|
||
|
var g_paramsPanelJs = new UniteCreatorParamsPanel();
|
||
|
var g_paramsPanelCss = new UniteCreatorParamsPanel();
|
||
|
var g_paramsPanelCssItem = new UniteCreatorParamsPanel();
|
||
|
|
||
|
var g_objVariables = new UniteCreatorVariables();
|
||
|
|
||
|
|
||
|
var g_temp = {
|
||
|
isAssetsUpdated: false,
|
||
|
includesLoadPath: "",
|
||
|
isItemsAsPostsMode:false,
|
||
|
itemsByPostsParam:null,
|
||
|
typeCurrentPost: "uc_current_post",
|
||
|
typePost: "uc_post",
|
||
|
putCodeExamplesParams:false
|
||
|
};
|
||
|
|
||
|
|
||
|
if(!g_ucAdmin)
|
||
|
var g_ucAdmin = new UniteAdminUC();
|
||
|
|
||
|
|
||
|
function ____________COMMON____________(){};
|
||
|
|
||
|
|
||
|
/**
|
||
|
* get add options
|
||
|
*/
|
||
|
function getAddonAddOptions(){
|
||
|
|
||
|
var objOptions = g_objWrapper.find("input.uc-addon-addoption");
|
||
|
|
||
|
if(objOptions.length == 0)
|
||
|
return(null);
|
||
|
|
||
|
var optionsAdd = null;
|
||
|
jQuery.each(objOptions,function(index, input){
|
||
|
var objInput = jQuery(input);
|
||
|
var type = input.type;
|
||
|
var name = input.name;
|
||
|
switch(type){
|
||
|
case "checkbox":
|
||
|
var value = objInput.is(":checked");
|
||
|
break;
|
||
|
default:
|
||
|
var value = objInput.val();
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
if(optionsAdd === null)
|
||
|
optionsAdd = {};
|
||
|
|
||
|
optionsAdd[name] = value;
|
||
|
});
|
||
|
|
||
|
|
||
|
return(optionsAdd);
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* get addon options
|
||
|
*/
|
||
|
function getAddonOptions(){
|
||
|
|
||
|
//get item settings
|
||
|
var data = g_settingsItem.getSettingsValues();
|
||
|
data.path_assets = t.getPathAssets();
|
||
|
|
||
|
//get js settings
|
||
|
var dataJSSettings = g_settingsJS.getSettingsValues();
|
||
|
|
||
|
data = jQuery.extend(data, dataJSSettings);
|
||
|
|
||
|
var generalSettingsData = g_generalSettings.getSettingsValues();
|
||
|
|
||
|
data = jQuery.extend(data, generalSettingsData);
|
||
|
|
||
|
var addOptions = getAddonAddOptions();
|
||
|
if(typeof addOptions == "object")
|
||
|
data = jQuery.extend(data, addOptions);
|
||
|
|
||
|
return(data);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* get data from addon view
|
||
|
*/
|
||
|
function getDataFromAddonView(){
|
||
|
|
||
|
var objParams = g_paramsEditorMain.getParamsData();
|
||
|
var objParamsItems = g_paramsEditorItems.getParamsData();
|
||
|
|
||
|
var objParamsCatData = g_paramsEditorMain.getCatData();
|
||
|
|
||
|
var html = g_codemirrorHtml ? g_codemirrorHtml.getValue() : jQuery("#area_addon_html").val();
|
||
|
var htmlItem = g_codemirrorHtmlItem ? g_codemirrorHtmlItem.getValue() : jQuery("#area_addon_html_item").val();
|
||
|
var htmlItem2 = g_codemirrorHtmlItem2 ? g_codemirrorHtmlItem2.getValue() : jQuery("#area_addon_html_item2").val();
|
||
|
|
||
|
var css = g_codemirrorCss ? g_codemirrorCss.getValue() : jQuery("#area_addon_css").val();
|
||
|
var cssItem = g_codemirrorCssItem ? g_codemirrorCssItem.getValue() : jQuery("#area_addon_css_item").val();
|
||
|
var js = g_codemirrorJs ? g_codemirrorJs.getValue() : jQuery("#area_addon_js").val();
|
||
|
|
||
|
var dataIncludes = g_objIncludes.getIncludesTabData();
|
||
|
|
||
|
var options = getAddonOptions();
|
||
|
|
||
|
var variables_item = g_objVariables.getArrVars(g_objVariables.types.ITEM);
|
||
|
var variables_main = g_objVariables.getArrVars(g_objVariables.types.MAIN);
|
||
|
|
||
|
var data = {
|
||
|
title: jQuery("#text_addon_title").val(),
|
||
|
name: jQuery("#text_addon_name").val(),
|
||
|
html: html,
|
||
|
html_item: htmlItem,
|
||
|
html_item2: htmlItem2,
|
||
|
css: css,
|
||
|
css_item: cssItem,
|
||
|
js: js,
|
||
|
includes_js: dataIncludes.arrJS,
|
||
|
includes_jslib: dataIncludes.arrJSLib,
|
||
|
includes_css: dataIncludes.arrCSS,
|
||
|
params: objParams,
|
||
|
params_items: objParamsItems,
|
||
|
options: options,
|
||
|
variables_item: variables_item,
|
||
|
variables_main: variables_main
|
||
|
};
|
||
|
|
||
|
if(objParamsCatData)
|
||
|
data.params_cats = objParamsCatData;
|
||
|
|
||
|
if(g_addonID)
|
||
|
data.id = g_addonID;
|
||
|
|
||
|
return(data);
|
||
|
}
|
||
|
|
||
|
function ____________CODEMIRROR____________(){};
|
||
|
|
||
|
|
||
|
/**
|
||
|
* replace editor text with attribute
|
||
|
*/
|
||
|
function replaceEditorTextWithAttribute(objEditor, type){
|
||
|
|
||
|
var text = objEditor.getSelection();
|
||
|
|
||
|
if(!text)
|
||
|
return(false);
|
||
|
|
||
|
var selections = objEditor.getSelections();
|
||
|
if(selections.length > 1)
|
||
|
return(false);
|
||
|
|
||
|
var type = "text";
|
||
|
|
||
|
var data = {};
|
||
|
data.isnew = true;
|
||
|
data["default_value"] = "max_default";
|
||
|
data["font_editable"] = false;
|
||
|
data["name"] = "max_name";
|
||
|
data["title"] = "title";
|
||
|
data["type"] = "uc_textfield";
|
||
|
|
||
|
g_paramsEditorMain.onAddParamButtonClick(data);
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* set editor events
|
||
|
*/
|
||
|
function initCodeMirrorEvents(editor, type){
|
||
|
|
||
|
editor.on("keyup",function(editor, event){
|
||
|
|
||
|
if(!event)
|
||
|
return(false);
|
||
|
|
||
|
//ctrl+space
|
||
|
if(event.code && event.code == "Space" && event.ctrlKey == true){
|
||
|
replaceEditorTextWithAttribute(editor, type);
|
||
|
}
|
||
|
|
||
|
});
|
||
|
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* set the editor to the text area
|
||
|
*/
|
||
|
function setCodeMirrorEditor(type){
|
||
|
|
||
|
switch(type){
|
||
|
|
||
|
case "html":
|
||
|
|
||
|
if(g_codemirrorHtml)
|
||
|
return(false);
|
||
|
|
||
|
g_codemirrorHtml = true;
|
||
|
|
||
|
setTimeout(function(){
|
||
|
|
||
|
var objTextArea = jQuery("#area_addon_html");
|
||
|
var textArea = objTextArea[0];
|
||
|
|
||
|
var mixedMode = {name: "twig", base: "text/html"};
|
||
|
|
||
|
var mode = objTextArea.data("mode");
|
||
|
if(mode)
|
||
|
mixedMode = mode;
|
||
|
|
||
|
var optionsCM = {
|
||
|
mode: mixedMode,
|
||
|
lineNumbers: true
|
||
|
};
|
||
|
|
||
|
|
||
|
g_codemirrorHtml = CodeMirror.fromTextArea(textArea, optionsCM);
|
||
|
|
||
|
//initCodeMirrorEvents(g_codemirrorHtml, "main");
|
||
|
|
||
|
|
||
|
/*
|
||
|
g_codemirrorHtml.on("change", function(){
|
||
|
trace("on change");
|
||
|
});
|
||
|
*/
|
||
|
|
||
|
}, 500);
|
||
|
|
||
|
break;
|
||
|
case "html_item":
|
||
|
|
||
|
if(g_codemirrorHtmlItem)
|
||
|
return(false);
|
||
|
|
||
|
if(isItemsEnabled() == false)
|
||
|
return(false);
|
||
|
|
||
|
g_codemirrorHtmlItem = true;
|
||
|
|
||
|
setTimeout(function(){
|
||
|
|
||
|
var mixedMode = {
|
||
|
name: "twig", base: "text/html"
|
||
|
//name: "htmlmixed"
|
||
|
};
|
||
|
|
||
|
var optionsCM = {
|
||
|
mode: mixedMode,
|
||
|
lineNumbers: true
|
||
|
};
|
||
|
|
||
|
var objAreaItem = document.getElementById("area_addon_html_item");
|
||
|
|
||
|
g_codemirrorHtmlItem = CodeMirror.fromTextArea(objAreaItem, optionsCM);
|
||
|
|
||
|
}, 500);
|
||
|
|
||
|
break;
|
||
|
|
||
|
case "html_item2":
|
||
|
if(g_codemirrorHtmlItem2)
|
||
|
return(false);
|
||
|
|
||
|
if(isItemsEnabled() == false)
|
||
|
return(false);
|
||
|
|
||
|
g_codemirrorHtmlItem2 = true;
|
||
|
|
||
|
setTimeout(function(){
|
||
|
var mixedMode = {
|
||
|
name: "twig", base: "text/html"
|
||
|
};
|
||
|
var optionsCM = {
|
||
|
mode: mixedMode,
|
||
|
lineNumbers: true
|
||
|
};
|
||
|
|
||
|
g_codemirrorHtmlItem2 = CodeMirror.fromTextArea(document.getElementById("area_addon_html_item2"), optionsCM);
|
||
|
|
||
|
}, 500);
|
||
|
|
||
|
break;
|
||
|
|
||
|
case "css":
|
||
|
|
||
|
if(g_codemirrorCss)
|
||
|
return(false);
|
||
|
|
||
|
g_codemirrorCss = true;
|
||
|
|
||
|
setTimeout(function(){
|
||
|
g_codemirrorCss = CodeMirror.fromTextArea(document.getElementById("area_addon_css"), {
|
||
|
mode: {name: "css"},
|
||
|
lineNumbers: true
|
||
|
});
|
||
|
}, 500);
|
||
|
|
||
|
break;
|
||
|
case "css_item":
|
||
|
if(g_codemirrorCssItem)
|
||
|
return(false);
|
||
|
|
||
|
g_codemirrorCssItem = true;
|
||
|
|
||
|
setTimeout(function(){
|
||
|
g_codemirrorCssItem = CodeMirror.fromTextArea(document.getElementById("area_addon_css_item"), {
|
||
|
mode: {name: "css"},
|
||
|
lineNumbers: true
|
||
|
});
|
||
|
}, 500);
|
||
|
|
||
|
break;
|
||
|
case "js":
|
||
|
|
||
|
if(g_codemirrorJs)
|
||
|
return(false);
|
||
|
|
||
|
g_codemirrorJs = true;
|
||
|
|
||
|
setTimeout(function(){
|
||
|
g_codemirrorJs = CodeMirror.fromTextArea(document.getElementById("area_addon_js"), {
|
||
|
mode: {name: "javascript"},
|
||
|
lineNumbers: true
|
||
|
});
|
||
|
}, 500);
|
||
|
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
function ____________BULK_DIALOG____________(){};
|
||
|
|
||
|
|
||
|
/**
|
||
|
* open bulk dialog
|
||
|
*/
|
||
|
function openBulkDialog(event, params){
|
||
|
|
||
|
var objDialog = jQuery("#uc_dialog_bulk");
|
||
|
g_ucAdmin.validateDomElement(objDialog, "bulk dialog");
|
||
|
|
||
|
var options = {minHeight: 450};
|
||
|
|
||
|
g_ucAdmin.openCommonDialog("uc_dialog_bulk", function(){
|
||
|
|
||
|
params.addon_id = g_addonID;
|
||
|
|
||
|
objDialog.html("loading...");
|
||
|
|
||
|
objDialog.data("params", params);
|
||
|
|
||
|
g_ucAdmin.ajaxRequest("get_addon_bulk_dialog", params, function(response){
|
||
|
|
||
|
objDialog.html(response.html);
|
||
|
|
||
|
});
|
||
|
|
||
|
},options);
|
||
|
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* update selected text
|
||
|
*/
|
||
|
function bulkDialogUpdateSelectedText(){
|
||
|
var objDialog = jQuery("#uc_dialog_bulk");
|
||
|
var objCheckboxes = objDialog.find("input.uc-check-select:checked");
|
||
|
var numSelected = objCheckboxes.length;
|
||
|
|
||
|
jQuery("#uc_bulk_dialog_num_selected").text(numSelected);
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* on checkbox select - mark row
|
||
|
*/
|
||
|
function bulkDialogOnCheckboxSelect(event, objCheckbox){
|
||
|
|
||
|
if(!objCheckbox)
|
||
|
var objCheckbox = jQuery(this);
|
||
|
|
||
|
var isChecked = objCheckbox.is(":checked");
|
||
|
|
||
|
var objRow = objCheckbox.parents("tr");
|
||
|
if(isChecked)
|
||
|
objRow.addClass("unite-row-selected");
|
||
|
else
|
||
|
objRow.removeClass("unite-row-selected");
|
||
|
|
||
|
bulkDialogUpdateSelectedText();
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* init bulk dialog
|
||
|
*/
|
||
|
function initBulkDialog(){
|
||
|
|
||
|
var objDialog = jQuery("#uc_dialog_bulk");
|
||
|
|
||
|
//--- select all click
|
||
|
|
||
|
objDialog.on("click", ".uc-check-all", function(){
|
||
|
|
||
|
var isChecked = jQuery(this).is(":checked");
|
||
|
|
||
|
var objCheckboxes = objDialog.find("input.uc-check-select");
|
||
|
|
||
|
if(isChecked)
|
||
|
objCheckboxes.attr("checked","checked");
|
||
|
else
|
||
|
objCheckboxes.removeAttr("checked");
|
||
|
|
||
|
objCheckboxes.each(function(index, input){
|
||
|
var objInput = jQuery(input);
|
||
|
bulkDialogOnCheckboxSelect(null, objInput);
|
||
|
});
|
||
|
|
||
|
bulkDialogUpdateSelectedText();
|
||
|
});
|
||
|
|
||
|
//--- checkbox click event
|
||
|
|
||
|
objDialog.on("click", "input.uc-check-select", bulkDialogOnCheckboxSelect);
|
||
|
|
||
|
// ---- actions -----
|
||
|
|
||
|
objDialog.on("click", ".uc-action-button", function(){
|
||
|
|
||
|
var objButton = jQuery(this);
|
||
|
|
||
|
var action = objButton.data("action");
|
||
|
var objLoader = objDialog.find(".uc-dialog-loader");
|
||
|
var objTable = objDialog.find(".unite_table_items");
|
||
|
|
||
|
var params = objDialog.data("params");
|
||
|
|
||
|
|
||
|
//get addons id's
|
||
|
var addonsIDs = [];
|
||
|
var objCheckboxes = objDialog.find("input.uc-check-select:checked");
|
||
|
jQuery.each(objCheckboxes, function(index, checkbox){
|
||
|
var addonID = jQuery(checkbox).data("id");
|
||
|
addonsIDs.push(addonID);
|
||
|
});
|
||
|
|
||
|
if(addonsIDs.length == 0){
|
||
|
alert("no addons chosen");
|
||
|
return(false);
|
||
|
}
|
||
|
|
||
|
params.addon_ids = addonsIDs;
|
||
|
params.action_bulk = action;
|
||
|
|
||
|
//set loading state
|
||
|
|
||
|
objDialog.find(".uc-section-selected").css("opacity",0);
|
||
|
objTable.hide();
|
||
|
objLoader.show();
|
||
|
|
||
|
g_ucAdmin.ajaxRequest("update_addons_bulk", params, function(response){
|
||
|
|
||
|
objDialog.html(response.html);
|
||
|
});
|
||
|
|
||
|
|
||
|
});
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
function ____________ITEMS_RELATED____________(){};
|
||
|
|
||
|
|
||
|
/**
|
||
|
* is items enabled
|
||
|
*/
|
||
|
function isItemsEnabled(){
|
||
|
|
||
|
if(g_temp.isItemsAsPostsMode == true)
|
||
|
return(true);
|
||
|
|
||
|
var objValues = g_settingsItem.getSettingsValues();
|
||
|
var enableItems = objValues.enable_items;
|
||
|
enableItems = g_ucAdmin.strToBool(enableItems);
|
||
|
|
||
|
return(enableItems);
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* hide items related objects
|
||
|
*/
|
||
|
function hideItemsRelated(){
|
||
|
g_objWrapperItems.hide();
|
||
|
jQuery(".uc-items-related").hide();
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* show items related objects
|
||
|
*/
|
||
|
function showItemsRelated(){
|
||
|
|
||
|
//don't show if items in posts mode
|
||
|
if(g_temp.isItemsAsPostsMode == true)
|
||
|
return(false);
|
||
|
|
||
|
g_objWrapperItems.show();
|
||
|
jQuery(".uc-items-related").show();
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* get if items is visible
|
||
|
*/
|
||
|
function isItemsVisible(){
|
||
|
|
||
|
var isVisible = g_objWrapperItems.is(":visible");
|
||
|
return(isVisible);
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* set items as posts mode
|
||
|
*/
|
||
|
function setItemsAsPostsMode(param){
|
||
|
|
||
|
//---- items tab -----
|
||
|
|
||
|
//g_settingsItem.setValues({"enable_items":true});
|
||
|
|
||
|
var itemsParamType = param["items_param_type"];
|
||
|
|
||
|
var itemsParam = jQuery.extend({}, param);
|
||
|
itemsParam.type = itemsParamType;
|
||
|
|
||
|
g_temp.isItemsAsPostsMode = true;
|
||
|
g_temp.itemsByPostsParam = itemsParam;
|
||
|
|
||
|
g_objWrapperItems.hide();
|
||
|
jQuery("#uc_tab_itemattr .unite_settings_wrapper").hide();
|
||
|
|
||
|
var itemTabText = param["items_panel_text"];
|
||
|
|
||
|
jQuery(".uc-postsitems-related").remove();
|
||
|
jQuery("#uc_tab_itemattr").append("<div class='uc-postsitems-related'>"+itemTabText+"</div>");
|
||
|
|
||
|
jQuery(".uc-items-related").show();
|
||
|
|
||
|
//refresh current tab
|
||
|
addonSelectTab();
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* remove items as posts mode
|
||
|
*/
|
||
|
function disableItemsAsPostsMode(){
|
||
|
|
||
|
g_temp.isItemsAsPostsMode = false;
|
||
|
g_temp.itemsByPostsParam = null;
|
||
|
|
||
|
jQuery(".uc-items-related").hide();
|
||
|
jQuery(".uc-postsitems-related").remove();
|
||
|
|
||
|
jQuery("#uc_tab_itemattr .unite_settings_wrapper").show();
|
||
|
|
||
|
onSettingsItemsChange();
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* check items by posts mode, and set if do
|
||
|
*/
|
||
|
function checkItemsByPostsMode(arrParams){
|
||
|
|
||
|
var param = getPostsListParam(arrParams);
|
||
|
|
||
|
//set items by posts mode
|
||
|
if(param){
|
||
|
|
||
|
setItemsAsPostsMode(param);
|
||
|
return(false);
|
||
|
|
||
|
}
|
||
|
|
||
|
if(g_temp.isItemsAsPostsMode == true)
|
||
|
disableItemsAsPostsMode();
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
function ____________PARAMS_PANEL____________(){};
|
||
|
|
||
|
/**
|
||
|
* get posts list param from params
|
||
|
*/
|
||
|
function getPostsListParam(arrParams){
|
||
|
|
||
|
if(!arrParams)
|
||
|
return(null);
|
||
|
|
||
|
for(var index in arrParams){
|
||
|
var param = arrParams[index];
|
||
|
|
||
|
switch(param.type){
|
||
|
case "uc_listing":
|
||
|
|
||
|
var useFor = g_ucAdmin.getVal(param, "use_for");
|
||
|
|
||
|
if(useFor == "template" || useFor == "gallery"){
|
||
|
param["items_param_type"] = "uc_listing";
|
||
|
param["items_panel_text"] = "Items as dynamic loop mode";
|
||
|
|
||
|
return(param);
|
||
|
}
|
||
|
|
||
|
break;
|
||
|
case "uc_posts_list":
|
||
|
param["items_param_type"] = "uc_post";
|
||
|
param["items_panel_text"] = "Items as posts mode";
|
||
|
return(param);
|
||
|
break;
|
||
|
case "uc_instagram":
|
||
|
param["items_param_type"] = "uc_instagram_item";
|
||
|
param["items_panel_text"] = "Items as instagram mode";
|
||
|
return(param);
|
||
|
break;
|
||
|
case "uc_form":
|
||
|
param["items_param_type"] = "uc_form_item";
|
||
|
param["items_panel_text"] = "Items as form mode";
|
||
|
return(param);
|
||
|
break;
|
||
|
case "uc_dataset":
|
||
|
param["items_param_type"] = "uc_dataset";
|
||
|
param["items_panel_text"] = "Items as dataset mode";
|
||
|
return(param);
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return(null);
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* check dynamic params
|
||
|
*/
|
||
|
function paramsPanelMainSync_addDynamicParams(arrParams){
|
||
|
|
||
|
//check if dynamic addon
|
||
|
var options = getAddonOptions();
|
||
|
var isDynamicAddon = g_ucAdmin.getVal(options, "dynamic_addon");
|
||
|
isDynamicAddon = g_ucAdmin.strToBool(isDynamicAddon);
|
||
|
|
||
|
if(isDynamicAddon == false)
|
||
|
return(arrParams);
|
||
|
|
||
|
//push post
|
||
|
var objParam = {type:g_temp.typeCurrentPost, name:"current_post"};
|
||
|
arrParams.push(objParam);
|
||
|
|
||
|
return(arrParams);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* add code examples
|
||
|
*/
|
||
|
function addEndingParams_addCodeExamples(arrParams){
|
||
|
|
||
|
//push code examples
|
||
|
var objParam = {type:"uc_code_examples", name:"code_examples", visual:"Twig Code Examples" };
|
||
|
arrParams.push(objParam);
|
||
|
|
||
|
return(arrParams);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* add cod eexamples - js
|
||
|
*/
|
||
|
function addEndingParams_addCodeExamplesJS(arrParams){
|
||
|
|
||
|
//push code examples
|
||
|
var objParam = {type:"uc_code_examples_js", name:"code_examples_js", visual:"JS Code Snippets" };
|
||
|
arrParams.push(objParam);
|
||
|
|
||
|
return(arrParams);
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* add ending params
|
||
|
*/
|
||
|
function paramsPanelMainSync_addEndingParams(arrParams){
|
||
|
|
||
|
if(g_temp.putCodeExamplesParams == true)
|
||
|
arrParams = addEndingParams_addCodeExamples(arrParams);
|
||
|
|
||
|
|
||
|
return(arrParams);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* add ending params
|
||
|
*/
|
||
|
function paramsPanelMainSync_addEndingParamsJS(arrParams){
|
||
|
|
||
|
if(g_temp.putCodeExamplesParams == true)
|
||
|
arrParams = addEndingParams_addCodeExamplesJS(arrParams);
|
||
|
|
||
|
|
||
|
return(arrParams);
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* sync params from ed
|
||
|
*/
|
||
|
function paramsPanelMainSync(){
|
||
|
|
||
|
var arrParams = g_paramsEditorMain.getParamsData();
|
||
|
|
||
|
checkItemsByPostsMode(arrParams);
|
||
|
|
||
|
var arrVars = g_objVariables.getArrVars(g_objVariables.types.MAIN);
|
||
|
|
||
|
//add items param
|
||
|
var hasItems = isItemsEnabled();
|
||
|
|
||
|
arrParams = paramsPanelMainSync_addDynamicParams(arrParams);
|
||
|
|
||
|
arrParams = paramsPanelMainSync_addEndingParams(arrParams);
|
||
|
|
||
|
var arrParamsForCss = jQuery.extend([], arrParams);
|
||
|
var arrParamsForJS = jQuery.extend([], arrParams);
|
||
|
|
||
|
//modify params for js
|
||
|
if(hasItems == true){
|
||
|
|
||
|
//put extra js functions - put_items_json
|
||
|
var textPutItemsJson = "{#use put_items_json(\"clean\") to remove extra data#}";
|
||
|
textPutItemsJson += "\nvar strJsonItems = {{put_items_json()}};";
|
||
|
textPutItemsJson += "\nvar objItems = JSON.parse(strJsonItems);";
|
||
|
textPutItemsJson += "\nconsole.log(objItems);";
|
||
|
|
||
|
var paramPutItemJs = {type:"uc_function", name:"put_items_json()","raw_insert_text":textPutItemsJson};
|
||
|
|
||
|
//put extra js functions - put_attributes_json
|
||
|
var textPutAttributesJson = "{#use put_attributes_json(\"clean\") to remove extra data#}";
|
||
|
textPutAttributesJson += "\nvar strJsonAttributes = {{put_attributes_json()}};";
|
||
|
textPutAttributesJson += "\nvar objAttributes = JSON.parse(strJsonAttributes);";
|
||
|
textPutAttributesJson += "\nconsole.log(objAttributes);";
|
||
|
|
||
|
var paramPutAttributesJs = {type:"uc_function", name:"put_attributes_json()","raw_insert_text":textPutAttributesJson};
|
||
|
|
||
|
|
||
|
var textGetItems = "{# Generate javascript array from items using twig#}";
|
||
|
textGetItems += "\n{% set itemsForJs = get_items() %}";
|
||
|
textGetItems += "\n\nvar arrTitles = [";
|
||
|
textGetItems += "\n {% for item in itemsForJs %}";
|
||
|
textGetItems += "\n \"{{item.title|raw}}\",";
|
||
|
textGetItems += "\n {% endfor %}";
|
||
|
textGetItems += "\n\n];";
|
||
|
textGetItems += "\n\nconsole.log(arrTitles);\n";
|
||
|
|
||
|
var paramGetItemJs = {type:"uc_function",
|
||
|
name:"get_items()",
|
||
|
"raw_insert_text":textGetItems
|
||
|
};
|
||
|
|
||
|
arrParamsForJS.unshift(paramPutAttributesJs);
|
||
|
arrParamsForJS.unshift(paramPutItemJs);
|
||
|
arrParamsForJS.unshift(paramGetItemJs);
|
||
|
|
||
|
}
|
||
|
|
||
|
arrParamsForJS = paramsPanelMainSync_addEndingParamsJS(arrParamsForJS);
|
||
|
|
||
|
//add items related functions
|
||
|
if(hasItems == true){
|
||
|
var paramPutItems = {type:"uc_function", name:"put_items()",raw_insert_text:"{{put_items()}} {# - you can use parameters: \"shuffle\", \"one_random\", \"one_first\" like put_items(\"shuffle\") #}"};
|
||
|
var paramPutItems2 = {type:"uc_function", name:"put_items2()"};
|
||
|
var paramNumItems = {type:"text", name:"uc_num_items"};
|
||
|
|
||
|
//add to top of the params
|
||
|
|
||
|
arrParams.unshift(paramPutItems2);
|
||
|
arrParams.unshift(paramPutItems);
|
||
|
arrParams.unshift(paramNumItems);
|
||
|
}
|
||
|
|
||
|
|
||
|
g_paramsPanelCss.setParams(arrParamsForCss);
|
||
|
|
||
|
|
||
|
g_paramsPanelJs.setParams(arrParamsForJS);
|
||
|
g_paramsPanelMain.setParams(arrParams, arrVars);
|
||
|
|
||
|
//sync item params as well
|
||
|
paramsPanelItemSync();
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* sync params from ed
|
||
|
*/
|
||
|
function paramsPanelItemSync(){
|
||
|
|
||
|
if(g_temp.isItemsAsPostsMode == false)
|
||
|
var arrParamsItems = g_paramsEditorItems.getParamsData();
|
||
|
else{
|
||
|
var arrParamsItems = [];
|
||
|
arrParamsItems.push(g_temp.itemsByPostsParam);
|
||
|
}
|
||
|
|
||
|
var arrVarsItems = g_objVariables.getArrVars(g_objVariables.types.ITEM);
|
||
|
|
||
|
var arrParamsMain = g_paramsEditorMain.getParamsData();
|
||
|
var arrVarsMain = g_objVariables.getArrVars(g_objVariables.types.MAIN);
|
||
|
|
||
|
var arrPanels = [g_paramsPanelItem, g_paramsPanelItem2, g_paramsPanelCssItem];
|
||
|
|
||
|
jQuery.map(arrPanels,function(objPanel){
|
||
|
|
||
|
|
||
|
objPanel.removeAllParams();
|
||
|
objPanel.setParams(arrParamsItems, arrVarsItems, "item");
|
||
|
objPanel.setParams(arrParamsMain, arrVarsMain, "main");
|
||
|
|
||
|
});
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* init param panel globals
|
||
|
*/
|
||
|
function initParamPanelGlobals(arrChildKeys, initParamPanelGlobals, arrAddKeys, arrSkipParams){
|
||
|
|
||
|
var objParamPanel = new UniteCreatorParamsPanel();
|
||
|
objParamPanel.initGlobalSetting_ChildKeys(arrChildKeys, arrAddKeys);
|
||
|
objParamPanel.initGlobalSetting_TemplateCode(initParamPanelGlobals);
|
||
|
objParamPanel.initGlobalSetting_SkipParams(arrSkipParams);
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* init the params panel
|
||
|
*/
|
||
|
function initParamsPanels(arrPanelKeys, arrPanelItemKeys){
|
||
|
|
||
|
//add to beginning main params
|
||
|
var objWrapperMain = jQuery("#uc_params_panel_main");
|
||
|
var objWrapperJs = jQuery("#uc_params_panel_js");
|
||
|
var objWrapperCss = jQuery("#uc_params_panel_css");
|
||
|
var objWrapperCssItem = jQuery("#uc_params_panel_css_item");
|
||
|
|
||
|
var objWrapperItem = jQuery("#uc_params_panel_item");
|
||
|
var objWrapperItem2 = jQuery("#uc_params_panel_item2");
|
||
|
|
||
|
|
||
|
g_paramsPanelMain.init(objWrapperMain,"main", null, arrPanelKeys);
|
||
|
g_paramsPanelJs.init(objWrapperJs,"js", null, arrPanelKeys);
|
||
|
g_paramsPanelCss.init(objWrapperCss,"css", null, arrPanelKeys);
|
||
|
|
||
|
//init items panels
|
||
|
var arrPanelItems = [
|
||
|
[g_paramsPanelItem, objWrapperItem],
|
||
|
[g_paramsPanelItem2, objWrapperItem2],
|
||
|
[g_paramsPanelCssItem, objWrapperCssItem]
|
||
|
];
|
||
|
|
||
|
var itemPrefix = {"item":"item."};
|
||
|
|
||
|
jQuery.map(arrPanelItems, function(arr){
|
||
|
|
||
|
var itemsPanel = arr[0];
|
||
|
var objPanelWrapper = arr[1];
|
||
|
|
||
|
itemsPanel.init(objPanelWrapper,"item", itemPrefix, arrPanelItemKeys);
|
||
|
itemsPanel.initConstants(arrPanelKeys, "main");
|
||
|
itemsPanel.initConstants(arrPanelItemKeys, "item");
|
||
|
|
||
|
});
|
||
|
|
||
|
paramsPanelMainSync();
|
||
|
|
||
|
//on params update event
|
||
|
g_paramsEditorMain.onUpdateEvent(onParamsEditorMainUpdate);
|
||
|
g_paramsEditorItems.onUpdateEvent(paramsPanelItemSync);
|
||
|
|
||
|
g_paramsEditorMain.onEvent(g_paramsEditorMain.events.BULK, openBulkDialog);
|
||
|
g_paramsEditorItems.onEvent(g_paramsEditorItems.events.BULK, openBulkDialog);
|
||
|
|
||
|
|
||
|
//on click events
|
||
|
g_paramsPanelMain.onParamClick(function(textToAdd){
|
||
|
g_ucAdmin.insertToCodeMirror(g_codemirrorHtml, textToAdd);
|
||
|
});
|
||
|
|
||
|
g_paramsPanelJs.onParamClick(function(textToAdd){
|
||
|
g_ucAdmin.insertToCodeMirror(g_codemirrorJs, textToAdd);
|
||
|
});
|
||
|
|
||
|
g_paramsPanelCss.onParamClick(function(textToAdd){
|
||
|
g_ucAdmin.insertToCodeMirror(g_codemirrorCss, textToAdd);
|
||
|
});
|
||
|
|
||
|
g_paramsPanelCssItem.onParamClick(function(textToAdd){
|
||
|
g_ucAdmin.insertToCodeMirror(g_codemirrorCssItem, textToAdd);
|
||
|
});
|
||
|
|
||
|
g_paramsPanelItem.onParamClick(function(textToAdd){
|
||
|
g_ucAdmin.insertToCodeMirror(g_codemirrorHtmlItem, textToAdd);
|
||
|
});
|
||
|
|
||
|
g_paramsPanelItem2.onParamClick(function(textToAdd){
|
||
|
g_ucAdmin.insertToCodeMirror(g_codemirrorHtmlItem2, textToAdd);
|
||
|
});
|
||
|
|
||
|
|
||
|
//delete main variable:
|
||
|
g_paramsPanelMain.onDeleteVariable(function(event, varName){
|
||
|
|
||
|
g_objVariables.deleteVar(g_objVariables.types.MAIN, varName);
|
||
|
paramsPanelMainSync();
|
||
|
});
|
||
|
|
||
|
|
||
|
//delete item variable:
|
||
|
g_paramsPanelItem.onDeleteVariable(function(event, varName){
|
||
|
|
||
|
g_objVariables.deleteVar(g_objVariables.types.ITEM, varName);
|
||
|
paramsPanelItemSync();
|
||
|
|
||
|
});
|
||
|
|
||
|
//delete item2 variable:
|
||
|
g_paramsPanelItem2.onDeleteVariable(function(event, varName){
|
||
|
|
||
|
g_objVariables.deleteVar(g_objVariables.types.ITEM, varName);
|
||
|
paramsPanelItemSync();
|
||
|
|
||
|
});
|
||
|
|
||
|
//on edit Item variable
|
||
|
function onParamsPanelEditItemVariable(event, varIndex){
|
||
|
if(!varIndex || varIndex == undefined)
|
||
|
var varIndex = 0;
|
||
|
|
||
|
var objVar = g_objVariables.getVariable(g_objVariables.types.ITEM, varIndex);
|
||
|
|
||
|
g_ucAdmin.validateNotEmpty(objVar, "variable: " + varIndex);
|
||
|
|
||
|
g_objDialogItemVariable.open(objVar, varIndex, function(objUpdatedVar, varIndex){
|
||
|
|
||
|
g_objVariables.update(g_objVariables.types.ITEM, varIndex, objUpdatedVar);
|
||
|
|
||
|
paramsPanelItemSync();
|
||
|
|
||
|
});
|
||
|
}
|
||
|
|
||
|
//edit item variable:
|
||
|
g_paramsPanelItem.onEditVariable(onParamsPanelEditItemVariable);
|
||
|
g_paramsPanelItem2.onEditVariable(onParamsPanelEditItemVariable);
|
||
|
|
||
|
|
||
|
//edit main variable
|
||
|
g_paramsPanelMain.onEditVariable(function(event, varIndex){
|
||
|
if(!varIndex || varIndex == undefined)
|
||
|
var varIndex = 0;
|
||
|
|
||
|
var objVar = g_objVariables.getVariable(g_objVariables.types.MAIN, varIndex);
|
||
|
|
||
|
g_ucAdmin.validateNotEmpty(objVar, "variable: " + varIndex);
|
||
|
|
||
|
g_objDialogMainVariable.open(objVar, varIndex, function(objUpdatedVar, varIndex){
|
||
|
|
||
|
g_objVariables.update(g_objVariables.types.MAIN, varIndex, objUpdatedVar);
|
||
|
|
||
|
paramsPanelMainSync();
|
||
|
|
||
|
});
|
||
|
|
||
|
});
|
||
|
|
||
|
|
||
|
//on settings change event
|
||
|
g_settingsItem.setEventOnChange(function(){
|
||
|
paramsPanelMainSync();
|
||
|
});
|
||
|
|
||
|
}
|
||
|
|
||
|
function ____________VARIABLES_BUTTONS____________(){};
|
||
|
|
||
|
|
||
|
|
||
|
/**
|
||
|
* init add variable button
|
||
|
*/
|
||
|
function initAddVariableButton(){
|
||
|
|
||
|
//init item add variable
|
||
|
var objButtonAddVariableItem = jQuery("#uc_params_panel_item_addvar");
|
||
|
var objButtonAddVariableItem2 = jQuery("#uc_params_panel_item_addvar2");
|
||
|
|
||
|
//on click - open add variable dialog
|
||
|
objButtonAddVariableItem.add(objButtonAddVariableItem2).on("click",function(){
|
||
|
|
||
|
g_objDialogItemVariable.open(null, 0, function(objVar){
|
||
|
|
||
|
g_objVariables.add(g_objVariables.types.ITEM, objVar);
|
||
|
|
||
|
paramsPanelItemSync();
|
||
|
|
||
|
});
|
||
|
|
||
|
});
|
||
|
|
||
|
|
||
|
//init main add variable
|
||
|
var objButtonAddVariableMain = jQuery("#uc_params_panel_main_addvar");
|
||
|
|
||
|
objButtonAddVariableMain.on("click",function(){
|
||
|
|
||
|
g_objDialogMainVariable.open(null, 0, function(objVar){
|
||
|
|
||
|
g_objVariables.add(g_objVariables.types.MAIN, objVar);
|
||
|
|
||
|
paramsPanelMainSync();
|
||
|
|
||
|
});
|
||
|
|
||
|
});
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* init variables, must init before the params panels
|
||
|
*/
|
||
|
function initVariables(arrVarItems, arrVarMain){
|
||
|
|
||
|
g_objVariables.addFromArray(g_objVariables.types.ITEM, arrVarItems);
|
||
|
g_objVariables.addFromArray(g_objVariables.types.MAIN, arrVarMain);
|
||
|
|
||
|
initAddVariableButton();
|
||
|
}
|
||
|
|
||
|
|
||
|
function ____________INCLUDES_TAB____________(){};
|
||
|
|
||
|
|
||
|
/**
|
||
|
* update include assets checkboxes
|
||
|
*/
|
||
|
function updateIncludesAssetsCheckboxes(){
|
||
|
|
||
|
var arrIncludes = g_objIncludes.getArrAllIncludesUrls();
|
||
|
|
||
|
g_objAssetsIncludes.checkByUrls(arrIncludes);
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* init assets manager in includes folder
|
||
|
*/
|
||
|
function initAssetsManagerIncludes(){
|
||
|
|
||
|
//on checkbox click, add/remove include
|
||
|
g_objAssetsIncludes.eventOnSelectOperation(function(checked, itemData){
|
||
|
|
||
|
if(checked == true)
|
||
|
g_objIncludes.addIncludesFromAssets(itemData);
|
||
|
else{
|
||
|
g_objIncludes.removeIncludeByAsset(itemData);
|
||
|
}
|
||
|
|
||
|
});
|
||
|
|
||
|
//on load path - add addonID
|
||
|
g_objAssetsIncludes.eventOnAjaxLoadpath(function(data){
|
||
|
data.addonID = g_addonID;
|
||
|
return(data);
|
||
|
});
|
||
|
|
||
|
//after update filelist, check assets by url
|
||
|
g_objAssetsIncludes.eventOnUpdateFilelist(function(){
|
||
|
updateIncludesAssetsCheckboxes();
|
||
|
});
|
||
|
|
||
|
//check assets by urls
|
||
|
updateIncludesAssetsCheckboxes();
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* init includes tab
|
||
|
*/
|
||
|
function initIncludesTab(){
|
||
|
|
||
|
g_objIncludes.initIncludesTab(t);
|
||
|
|
||
|
var objIncludesBrowserWrapper = jQuery("#uc_includes_browser");
|
||
|
g_objAssetsIncludes.init(objIncludesBrowserWrapper);
|
||
|
|
||
|
//init includes browser
|
||
|
initAssetsManagerIncludes();
|
||
|
|
||
|
//set on delete event
|
||
|
g_objIncludes.eventOnDelete(function(){
|
||
|
updateIncludesAssetsCheckboxes();
|
||
|
});
|
||
|
|
||
|
g_objIncludes.eventOnInputBlur(function(){
|
||
|
updateIncludesAssetsCheckboxes();
|
||
|
});
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
function ____________ASSETS_TAB____________(){};
|
||
|
|
||
|
|
||
|
/**
|
||
|
* get assets path
|
||
|
*/
|
||
|
this.getPathAssets = function(){
|
||
|
var pathAssets = jQuery("#uc_assets_path").data("path");
|
||
|
return(pathAssets);
|
||
|
};
|
||
|
|
||
|
|
||
|
/**
|
||
|
* get assets url
|
||
|
*/
|
||
|
function getUrlAssets(){
|
||
|
var pathAssets = t.getPathAssets();
|
||
|
if(!pathAssets)
|
||
|
return(pathAssets);
|
||
|
|
||
|
var urlAssets = g_urlAssetsUC + pathAssets + "/";
|
||
|
|
||
|
return(urlAssets);
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* update path for image select based on the assets path
|
||
|
*/
|
||
|
function updateImageSelectPath(){
|
||
|
|
||
|
var pathAddonAssets = t.getPathAssets();
|
||
|
var urlAssets = getUrlAssets();
|
||
|
|
||
|
if(pathAddonAssets){
|
||
|
pathAddonAssets = g_pathAssetsUC+pathAddonAssets;
|
||
|
}
|
||
|
|
||
|
var urlAssets = getUrlAssets();
|
||
|
|
||
|
g_ucAdmin.triggerEvent("update_assets_path", urlAssets);
|
||
|
|
||
|
g_ucAdmin.setAddImagePath(pathAddonAssets, urlAssets);
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* check set path of assets button, enable / disable if needed
|
||
|
*/
|
||
|
function assetsPathCheckButtons(){
|
||
|
|
||
|
//disable button
|
||
|
if(g_objAssetsManager.isStartPath() == true)
|
||
|
g_ucAdmin.disableButton("#uc_button_set_assets_folder");
|
||
|
else
|
||
|
g_ucAdmin.enableButton("#uc_button_set_assets_folder");
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
/**
|
||
|
* init assets path related functions
|
||
|
*/
|
||
|
function initAssetsPath(){
|
||
|
|
||
|
assetsPathCheckButtons();
|
||
|
|
||
|
//init assets folder acions
|
||
|
g_objAssetsManager.eventOnUpdateFilelist(function(){
|
||
|
assetsPathCheckButtons();
|
||
|
});
|
||
|
|
||
|
//set path button:
|
||
|
jQuery("#uc_button_set_assets_folder").on("click",function(){
|
||
|
|
||
|
if(g_ucAdmin.isButtonEnabled(jQuery(this)) == false)
|
||
|
return(false);
|
||
|
|
||
|
var path = g_objAssetsManager.getActivePathRelative();
|
||
|
jQuery("#uc_assets_path").html(path).data("path", path);
|
||
|
jQuery("#uc_button_set_assets_unset").show();
|
||
|
|
||
|
g_temp.includesLoadPath = path;
|
||
|
|
||
|
updateImageSelectPath();
|
||
|
});
|
||
|
|
||
|
//unset path button:
|
||
|
jQuery("#uc_button_set_assets_unset").on("click",function(){
|
||
|
var textNotSet = jQuery("#uc_assets_path").data("textnotset");
|
||
|
jQuery("#uc_assets_path").html(textNotSet).data("path", "");
|
||
|
jQuery(this).hide();
|
||
|
|
||
|
g_temp.includesLoadPath = "";
|
||
|
|
||
|
updateImageSelectPath();
|
||
|
});
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* init assets tab
|
||
|
*/
|
||
|
function initAssetsTab(){
|
||
|
|
||
|
//init assets manager
|
||
|
var objAssetsManagerWrapper = jQuery("#uc_assets_manager");
|
||
|
if(objAssetsManagerWrapper.length == 0)
|
||
|
return(false);
|
||
|
|
||
|
g_objAssetsManager.init(objAssetsManagerWrapper);
|
||
|
|
||
|
initAssetsPath();
|
||
|
|
||
|
//set flag if the assets updated
|
||
|
g_objAssetsManager.eventOnUpdateFiles(function(){
|
||
|
g_temp.isAssetsUpdated = true;
|
||
|
});
|
||
|
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* init changelog tab
|
||
|
*/
|
||
|
function initChangelogTab() {
|
||
|
|
||
|
if (isChangelogEnabled() === false)
|
||
|
return;
|
||
|
|
||
|
var objChangelog = jQuery('#uc_tab_changelog');
|
||
|
var objChangelogForm = objChangelog.find('.uc-changelogs-form');
|
||
|
var objChangelogFormError = objChangelog.find('.uc-changelogs-form-error');
|
||
|
var objChangelogFormErrorTitle = objChangelog.find('.uc-changelogs-form-error-title');
|
||
|
var objChangelogFormErrorContent = objChangelog.find('.uc-changelogs-form-error-content');
|
||
|
var objChangelogFormEditing = objChangelog.find('.uc-changelogs-form-editing');
|
||
|
var objChangelogFormEditingContent = objChangelog.find('.uc-changelogs-form-editing-content');
|
||
|
var objChangelogFormClear = objChangelogForm.find('.uc-changelogs-form-clear');
|
||
|
var objChangelogFormSubmit = objChangelogForm.find('.uc-changelogs-form-submit');
|
||
|
var objChangelogFormId = objChangelogForm.find('[name="id"]');
|
||
|
var objChangelogFormType = objChangelogForm.find('[name="type"]');
|
||
|
var objChangelogFormText = objChangelogForm.find('[name="text"]');
|
||
|
|
||
|
objChangelogFormId.on('input', function () {
|
||
|
var value = jQuery(this).val();
|
||
|
|
||
|
objChangelog
|
||
|
.find('.uc-changelog')
|
||
|
.removeClass('uc-active')
|
||
|
.filter('[data-id="' + value + '"]')
|
||
|
.addClass('uc-active');
|
||
|
});
|
||
|
|
||
|
objChangelogFormClear.on('click', function () {
|
||
|
objChangelogFormError.hide();
|
||
|
objChangelogFormEditing.hide();
|
||
|
objChangelogFormId.val(null).trigger('input');
|
||
|
objChangelogFormType.val(null).trigger('change');
|
||
|
objChangelogFormText.val(null).trigger('input');
|
||
|
});
|
||
|
|
||
|
objChangelogFormSubmit.on('click', function () {
|
||
|
var id = objChangelogFormId.val();
|
||
|
var type = objChangelogFormType.val();
|
||
|
var text = objChangelogFormText.val().trim();
|
||
|
var action = id ? 'update_addon_changelog': 'add_addon_changelog';
|
||
|
var errors = [];
|
||
|
|
||
|
if (!type)
|
||
|
errors.push('Type is empty.');
|
||
|
|
||
|
if (!text)
|
||
|
errors.push('Text is empty.');
|
||
|
|
||
|
if (errors.length > 0) {
|
||
|
objChangelogFormError.show();
|
||
|
objChangelogFormErrorTitle.html('Validation errors:');
|
||
|
objChangelogFormErrorContent.html("- " + errors.join("<br />- "));
|
||
|
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
objChangelogFormError.hide();
|
||
|
|
||
|
g_ucAdmin.setAjaxLoadingButtonID(objChangelogFormSubmit.attr('id'));
|
||
|
|
||
|
g_ucAdmin.ajaxRequest(action, {
|
||
|
addon_id: g_addonID,
|
||
|
id: id,
|
||
|
type: type,
|
||
|
text: text,
|
||
|
}, function () {
|
||
|
objChangelogFormClear.trigger('click');
|
||
|
|
||
|
loadChangelog();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
objChangelog.on('click', '.uc-changelog-edit',function () {
|
||
|
var objRoot = jQuery(this).closest('.uc-changelog');
|
||
|
var content = objRoot.find('.uc-changelog-text').html();
|
||
|
var log = objRoot.data('log');
|
||
|
|
||
|
objChangelogFormClear.trigger('click');
|
||
|
|
||
|
objChangelogFormEditing.show();
|
||
|
objChangelogFormEditingContent.html(content);
|
||
|
|
||
|
objChangelogFormId.val(log.id).trigger('input');
|
||
|
objChangelogFormType.val(log.type).trigger('change');
|
||
|
objChangelogFormText.val(log.text).trigger('input');
|
||
|
});
|
||
|
|
||
|
objChangelog.on('click', '.uc-changelog-delete',function () {
|
||
|
var objButton = jQuery(this);
|
||
|
var objRoot = objButton.closest('.uc-changelog');
|
||
|
var id = objRoot.data('id');
|
||
|
var confirmed = confirm('Are you sure you want to delete the selected log?');
|
||
|
|
||
|
if (confirmed === false)
|
||
|
return;
|
||
|
|
||
|
objButton.prop('disabled', true);
|
||
|
|
||
|
g_ucAdmin.ajaxRequest('delete_addon_changelog', { id: id }, function () {
|
||
|
loadChangelog();
|
||
|
}).always(function () {
|
||
|
objButton.prop('disabled', false);
|
||
|
});
|
||
|
});
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* load changelog
|
||
|
*/
|
||
|
function loadChangelog() {
|
||
|
|
||
|
if (isChangelogEnabled() === false)
|
||
|
return;
|
||
|
|
||
|
var objChangelog = jQuery('#uc_tab_changelog');
|
||
|
var objChangelogLoader = objChangelog.find('.uc-changelogs-loader');
|
||
|
var objChangelogContent = objChangelog.find('.uc-changelogs-content');
|
||
|
|
||
|
objChangelogLoader.show();
|
||
|
objChangelogContent.hide();
|
||
|
|
||
|
g_ucAdmin.ajaxRequest('get_addon_changelog', { addon_id: g_addonID }, function (response) {
|
||
|
objChangelogLoader.hide();
|
||
|
objChangelogContent.html(response.html).show();
|
||
|
});
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* check if changelog enabled
|
||
|
*/
|
||
|
function isChangelogEnabled() {
|
||
|
|
||
|
var objChangelogTab = jQuery("#uc_tablink_changelog");
|
||
|
|
||
|
if (objChangelogTab.length === 0)
|
||
|
return false;
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* init revisions tab
|
||
|
*/
|
||
|
function initRevisionsTab() {
|
||
|
|
||
|
if (isRevisionsEnabled() === false)
|
||
|
return;
|
||
|
|
||
|
g_objAssetsManager.eventOnUpdateFiles(function () {
|
||
|
g_ucAdmin.setSuccessMessageID('null'); // don't show success message
|
||
|
g_ucAdmin.ajaxRequest('create_addon_revision', { id: g_addonID });
|
||
|
});
|
||
|
|
||
|
jQuery(document).on('click', '.uc-revision-restore', function (event) {
|
||
|
var confirmed = confirm('Are you sure you want to restore the widget from this revision?');
|
||
|
|
||
|
if (confirmed === false)
|
||
|
return;
|
||
|
|
||
|
var id = getRevisionId(event.target);
|
||
|
|
||
|
g_ucAdmin.ajaxRequest('restore_addon_revision', { id: g_addonID, revision_id: id }, function () {
|
||
|
location.reload();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
jQuery(document).on('click', '.uc-revision-download', function (event) {
|
||
|
var id = getRevisionId(event.target);
|
||
|
var params = 'id=' + g_addonID + '&revision_id=' + id;
|
||
|
var url = g_ucAdmin.getUrlAjax('download_addon_revision', params);
|
||
|
|
||
|
window.open(url);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* load revisions
|
||
|
*/
|
||
|
function loadRevisions() {
|
||
|
|
||
|
if (isRevisionsEnabled() === false)
|
||
|
return;
|
||
|
|
||
|
var objRevisions = jQuery('#uc_tab_revisions');
|
||
|
var objRevisionsLoader = objRevisions.find('.uc-revisions-loader');
|
||
|
var objRevisionsContent = objRevisions.find('.uc-revisions-content');
|
||
|
|
||
|
objRevisionsLoader.show();
|
||
|
objRevisionsContent.hide();
|
||
|
|
||
|
g_ucAdmin.ajaxRequest('get_addon_revisions', { addon_id: g_addonID }, function (response) {
|
||
|
objRevisionsLoader.hide();
|
||
|
objRevisionsContent.html(response.html).show();
|
||
|
});
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* check if revision enabled
|
||
|
*/
|
||
|
function isRevisionsEnabled() {
|
||
|
|
||
|
var objRevisionsTab = jQuery('#uc_tablink_revisions');
|
||
|
|
||
|
if (objRevisionsTab.length === 0)
|
||
|
return false;
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* get revision id from click event
|
||
|
*/
|
||
|
function getRevisionId(element) {
|
||
|
var $element = jQuery(element);
|
||
|
var $root = $element.closest('.uc-revision');
|
||
|
var id = $root.attr('data-id');
|
||
|
|
||
|
return id;
|
||
|
}
|
||
|
function ____________DYNAMIC____________(){};
|
||
|
|
||
|
/**
|
||
|
* update dynamic post keys
|
||
|
*/
|
||
|
function updateDynamicPostKeys(arrPostChildKeys, key){
|
||
|
|
||
|
var objPanel = new UniteCreatorParamsPanel();
|
||
|
var objChildKeys = objPanel.getGlobalSetting_ChildKeys();
|
||
|
|
||
|
objChildKeys[key] = arrPostChildKeys;
|
||
|
objPanel.updateGlobalSetting_ChildKeys(objChildKeys);
|
||
|
|
||
|
var objChildKeys = objPanel.getGlobalSetting_ChildKeys();
|
||
|
|
||
|
paramsPanelMainSync();
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
/**
|
||
|
* refresh dynamic post fields (custom post)
|
||
|
* and sync again
|
||
|
*/
|
||
|
function refreshDynamicPostFields(){
|
||
|
|
||
|
var options = getAddonOptions();
|
||
|
|
||
|
var postID = g_ucAdmin.getVal(options, "dynamic_post");
|
||
|
var enableCustomFields = g_ucAdmin.getVal(options, "dynamic_post_enable_customfields");
|
||
|
enableCustomFields = g_ucAdmin.strToBool(enableCustomFields);
|
||
|
|
||
|
var enableCategory = g_ucAdmin.getVal(options, "dynamic_post_enable_category");
|
||
|
enableCategory = g_ucAdmin.strToBool(enableCategory);
|
||
|
|
||
|
//if no post ID, replace current post by regular post (no meta keys)
|
||
|
if(!postID){
|
||
|
|
||
|
var objPanel = new UniteCreatorParamsPanel();
|
||
|
var objChildKeys = objPanel.getGlobalSetting_ChildKeys();
|
||
|
|
||
|
var arrPostKeys = g_ucAdmin.getVal(objChildKeys, "uc_post");
|
||
|
|
||
|
updateDynamicPostKeys(arrPostKeys, g_temp.typeCurrentPost);
|
||
|
|
||
|
return(false);
|
||
|
}
|
||
|
|
||
|
//request specific post variables by ajax
|
||
|
ajaxRefreshChildPostParam(postID, enableCustomFields, enableCategory, false, g_temp.typeCurrentPost);
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* refresh child post param
|
||
|
*/
|
||
|
function ajaxRefreshChildPostParam(postID, enableCustomFields, enableCategory, isForWoo, childKey){
|
||
|
|
||
|
var data = {
|
||
|
postid: postID,
|
||
|
enable_custom_fields: enableCustomFields,
|
||
|
enable_category: enableCategory,
|
||
|
enable_woo: isForWoo
|
||
|
};
|
||
|
|
||
|
g_ucAdmin.ajaxRequest("get_post_child_params", data, function(response){
|
||
|
|
||
|
var arrPostParams = g_ucAdmin.getVal(response, "child_params_post");
|
||
|
|
||
|
updateDynamicPostKeys(arrPostParams, childKey);
|
||
|
|
||
|
});
|
||
|
|
||
|
}
|
||
|
|
||
|
function ____________SVG_ICON____________(){};
|
||
|
|
||
|
/**
|
||
|
* get svg preview url
|
||
|
*/
|
||
|
function getUrlSvgPreview(){
|
||
|
|
||
|
var urlAssets = getUrlAssets();
|
||
|
|
||
|
if(!urlAssets)
|
||
|
return(null);
|
||
|
|
||
|
var objItem = g_objAssetsManager.getItemByFilename("preview_icon.svg");
|
||
|
|
||
|
if(!objItem)
|
||
|
return(null);
|
||
|
|
||
|
var urlFull = g_ucAdmin.getVal(objItem, "full_url");
|
||
|
|
||
|
return(urlFull);
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* update preview of svg icon
|
||
|
*/
|
||
|
function updateSvgIconPreview(){
|
||
|
|
||
|
try{
|
||
|
var urlPreview = getUrlSvgPreview();
|
||
|
|
||
|
var objHolder = jQuery("#uc_widget_svg_holder");
|
||
|
|
||
|
if(!urlPreview){
|
||
|
objHolder.css("background-image","url('')");
|
||
|
objHolder.hide();
|
||
|
return(false);
|
||
|
}
|
||
|
|
||
|
objHolder.show();
|
||
|
objHolder.css("background-image","url('"+urlPreview+"')");
|
||
|
|
||
|
}catch(error){
|
||
|
|
||
|
setTimeout(updateSvgIconPreview, 1000);
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
function ____________EVENTS____________(){};
|
||
|
|
||
|
|
||
|
/**
|
||
|
* on update addon button click
|
||
|
*/
|
||
|
function onUpdateAddonClick(){
|
||
|
|
||
|
var data = getDataFromAddonView();
|
||
|
var strData = g_ucAdmin.encodeObjectForSave(data);
|
||
|
var passData = {addon_data:strData};
|
||
|
|
||
|
g_ucAdmin.setAjaxLoaderID("uc_loader_update");
|
||
|
g_ucAdmin.setSuccessMessageID("uc_message_addon_updated");
|
||
|
g_ucAdmin.setAjaxHideButtonID("button_update_addon");
|
||
|
g_ucAdmin.setErrorMessageID("uc_update_addon_error");
|
||
|
|
||
|
g_ucAdmin.ajaxRequest("update_addon", passData);
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* on update addon button click
|
||
|
*/
|
||
|
function onUpdateAddonFromCatalogClick(){
|
||
|
|
||
|
if(confirm("This operation will take the latest version of the addon from the online catalog, and rewrite any custom changes if you made. Proceed?") == false)
|
||
|
return(false);
|
||
|
|
||
|
var data = {};
|
||
|
data.id = g_addonID;
|
||
|
|
||
|
g_ucAdmin.setAjaxLoaderID("uc_loader_update_catalog");
|
||
|
g_ucAdmin.setSuccessMessageID("uc_message_addon_updated_catalog");
|
||
|
g_ucAdmin.setAjaxHideButtonID("uc_button_update_catalog");
|
||
|
g_ucAdmin.setErrorMessageID("uc_update_addon_error");
|
||
|
|
||
|
g_ucAdmin.ajaxRequest("update_addon_from_catalog", data);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* enable code examples
|
||
|
*/
|
||
|
function onShowCodeExamplesClick(){
|
||
|
|
||
|
g_temp.putCodeExamplesParams = true;
|
||
|
|
||
|
paramsPanelMainSync();
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* on export addon click
|
||
|
*/
|
||
|
function onExportAddonClick(){
|
||
|
|
||
|
var params = "id="+g_addonID;
|
||
|
var urlExport = g_ucAdmin.getUrlAjax("export_addon", params);
|
||
|
|
||
|
window.open(urlExport);
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* select tab in addon view
|
||
|
* tab is the link object to tab
|
||
|
*/
|
||
|
function addonSelectTab(objTab, nohash){
|
||
|
|
||
|
if(!objTab)
|
||
|
var objTab = jQuery("#uc_tabs a.uc-tab-selected");
|
||
|
else{
|
||
|
if(objTab.hasClass("uc-tab-selected"))
|
||
|
return(false);
|
||
|
}
|
||
|
|
||
|
var contentID = objTab.data("contentid");
|
||
|
var tabID = objTab.prop("id");
|
||
|
|
||
|
jQuery("#uc_tab_contents .uc-tab-content").hide();
|
||
|
|
||
|
jQuery("#" + contentID).show();
|
||
|
|
||
|
jQuery("#uc_tabs a").not(objTab).removeClass("uc-tab-selected");
|
||
|
objTab.addClass("uc-tab-selected");
|
||
|
|
||
|
//add hash:
|
||
|
if(nohash !== true)
|
||
|
location.hash = "tab="+tabID;
|
||
|
|
||
|
switch(contentID){
|
||
|
case "uc_tab_general":
|
||
|
setTimeout(updateSvgIconPreview, 500);
|
||
|
break;
|
||
|
case "uc_tab_html":
|
||
|
setCodeMirrorEditor("html");
|
||
|
setCodeMirrorEditor("html_item");
|
||
|
setCodeMirrorEditor("html_item2");
|
||
|
break;
|
||
|
case "uc_tab_js":
|
||
|
setCodeMirrorEditor("js");
|
||
|
break;
|
||
|
case "uc_tab_css":
|
||
|
setCodeMirrorEditor("css");
|
||
|
setCodeMirrorEditor("css_item");
|
||
|
break;
|
||
|
case "uc_tab_includes":
|
||
|
|
||
|
//load includes path
|
||
|
|
||
|
if(g_temp.isAssetsUpdated == true || g_temp.includesLoadPath != ""){
|
||
|
g_temp.isAssetsUpdated = false;
|
||
|
|
||
|
if(g_objAssetsIncludes){
|
||
|
var loadPath = "";
|
||
|
if(g_temp.includesLoadPath != ""){
|
||
|
loadPath = g_temp.includesLoadPath;
|
||
|
g_temp.includesLoadPath = "";
|
||
|
}
|
||
|
g_objAssetsIncludes.loadPath(loadPath);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
break;
|
||
|
case "uc_tab_changelog":
|
||
|
loadChangelog();
|
||
|
break;
|
||
|
case "uc_tab_revisions":
|
||
|
loadRevisions();
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* on settings item change - enable items yes/no
|
||
|
*/
|
||
|
function onSettingsItemsChange(){
|
||
|
|
||
|
var enableItems = isItemsEnabled();
|
||
|
var isVisible = isItemsVisible();
|
||
|
|
||
|
if(enableItems == true && isVisible == false)
|
||
|
showItemsRelated();
|
||
|
else
|
||
|
if(enableItems == false && isVisible == true)
|
||
|
hideItemsRelated();
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/**
|
||
|
* on general settings change
|
||
|
*/
|
||
|
function onGeneralSettingChange(event, data){
|
||
|
|
||
|
var settingName = g_ucAdmin.getVal(data, "name");
|
||
|
|
||
|
switch(settingName){
|
||
|
|
||
|
case "dynamic_addon":
|
||
|
paramsPanelMainSync();
|
||
|
break;
|
||
|
case "dynamic_post":
|
||
|
case "dynamic_post_enable_customfields":
|
||
|
case "dynamic_post_enable_taxonomies":
|
||
|
case "dynamic_post_enable_category":
|
||
|
|
||
|
refreshDynamicPostFields();
|
||
|
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* on update main params
|
||
|
* check dynamic change, and sync main params
|
||
|
*/
|
||
|
function onParamsEditorMainUpdate(){
|
||
|
|
||
|
var objLastParam = g_paramsEditorMain.getLastUpdatedParam();
|
||
|
|
||
|
if(!objLastParam){
|
||
|
paramsPanelMainSync();
|
||
|
return(false);
|
||
|
}
|
||
|
|
||
|
var paramType = g_ucAdmin.getVal(objLastParam, "type");
|
||
|
|
||
|
switch(paramType){
|
||
|
case "uc_posts_list":
|
||
|
|
||
|
var postID = g_ucAdmin.getVal(objLastParam, "post_example");
|
||
|
var enableCustomFields = g_ucAdmin.getVal(objLastParam, "use_custom_fields");
|
||
|
enableCustomFields = g_ucAdmin.strToBool(enableCustomFields);
|
||
|
|
||
|
var enableCategory = g_ucAdmin.getVal(objLastParam, "use_category");
|
||
|
enableCategory = g_ucAdmin.strToBool(enableCategory);
|
||
|
|
||
|
var isForWoo = g_ucAdmin.getVal(objLastParam, "for_woocommerce_products");
|
||
|
isForWoo = g_ucAdmin.strToBool(isForWoo);
|
||
|
|
||
|
ajaxRefreshChildPostParam(postID, enableCustomFields, enableCategory, isForWoo, g_temp.typePost);
|
||
|
|
||
|
break;
|
||
|
default:
|
||
|
paramsPanelMainSync();
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* init events
|
||
|
*/
|
||
|
function initEvents(){
|
||
|
|
||
|
//general settings events
|
||
|
g_generalSettings.setEventOnChange(onGeneralSettingChange);
|
||
|
|
||
|
//item tab events
|
||
|
|
||
|
//change files event
|
||
|
g_settingsItem.setEventOnChange(onSettingsItemsChange);
|
||
|
|
||
|
onSettingsItemsChange();
|
||
|
|
||
|
//expand click
|
||
|
jQuery(".uc-tabcontent-link-expand").on("click",function(){
|
||
|
|
||
|
var objLink = jQuery(this);
|
||
|
|
||
|
var objRow = objLink.parents("tr");
|
||
|
|
||
|
var rowClass = "uc-row-expanded";
|
||
|
|
||
|
objRow.addClass(rowClass);
|
||
|
|
||
|
objLink.hide();
|
||
|
|
||
|
|
||
|
});
|
||
|
|
||
|
jQuery("#button_update_addon").on("click",onUpdateAddonClick);
|
||
|
jQuery("#button_export_addon").on("click",onExportAddonClick);
|
||
|
jQuery("#uc_button_update_catalog").on("click",onUpdateAddonFromCatalogClick);
|
||
|
|
||
|
jQuery(".uc-link-code-examples").on("click", onShowCodeExamplesClick);
|
||
|
|
||
|
}
|
||
|
|
||
|
function ____________STICKY_MENU____________(){};
|
||
|
|
||
|
/**
|
||
|
* init sticky menu
|
||
|
*/
|
||
|
function initStickyButtonsPanel(){
|
||
|
|
||
|
var offset = g_objButtonsPanel.offset();
|
||
|
|
||
|
var adminBar = jQuery("#wpadminbar");
|
||
|
|
||
|
var adminBarHeight = 0;
|
||
|
if(adminBar.length)
|
||
|
adminBarHeight = adminBar.height()+2;
|
||
|
|
||
|
var offsetTop = Math.round(offset.top) - adminBarHeight;
|
||
|
|
||
|
|
||
|
jQuery(window).scroll(function () {
|
||
|
|
||
|
var desTop = jQuery(document).scrollTop();
|
||
|
|
||
|
//clearTrace()
|
||
|
//trace(desTop);
|
||
|
//trace(offsetTop);
|
||
|
|
||
|
if(desTop > offsetTop){
|
||
|
g_objButtonsPanel.addClass("uc-stick-top");
|
||
|
} else {
|
||
|
g_objButtonsPanel.removeClass("uc-stick-top");
|
||
|
}
|
||
|
});
|
||
|
|
||
|
}
|
||
|
|
||
|
function ____________INIT____________(){};
|
||
|
|
||
|
|
||
|
/**
|
||
|
* init the params editors
|
||
|
*/
|
||
|
function initParamsEditors(objParamsMain, objParamsItems, arrParamsCats){
|
||
|
|
||
|
var objWrapperMain = jQuery("#attr_wrapper_main");
|
||
|
g_objWrapperItems = jQuery("#attr_wrapper_items");
|
||
|
var objDialogParam = jQuery("#uc_dialog_param_main");
|
||
|
var objDialogItemVariable = jQuery("#uc_dialog_param_variable_item");
|
||
|
var objDialogMainVariable = jQuery("#uc_dialog_param_variable_main");
|
||
|
|
||
|
g_objDialogParam.init(objDialogParam, t);
|
||
|
g_objDialogItemVariable.init(objDialogItemVariable, t);
|
||
|
g_objDialogMainVariable.init(objDialogMainVariable, t);
|
||
|
|
||
|
g_paramsEditorMain.init(objWrapperMain, objParamsMain, g_objDialogParam, arrParamsCats);
|
||
|
g_paramsEditorItems.init(g_objWrapperItems, objParamsItems, g_objDialogParam);
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* init tabs
|
||
|
*/
|
||
|
function initTabs(){
|
||
|
|
||
|
//select current tab
|
||
|
var initTabID = jQuery("#uc_tabs").data("inittab");
|
||
|
|
||
|
var objCurrentTab = jQuery("#"+initTabID);
|
||
|
var hash = location.hash;
|
||
|
if(hash){
|
||
|
var tabID = hash.replace("tab=","");
|
||
|
var objTab = jQuery(tabID);
|
||
|
if(objTab.length)
|
||
|
objCurrentTab = objTab;
|
||
|
}
|
||
|
|
||
|
addonSelectTab(objCurrentTab, true);
|
||
|
|
||
|
jQuery("#uc_tabs a").on("click",function(){
|
||
|
|
||
|
var objTabs = jQuery("#uc_tabs");
|
||
|
if(objTabs.hasClass("uc-tabs-disabled"))
|
||
|
return(false);
|
||
|
|
||
|
var objTab = jQuery(this);
|
||
|
addonSelectTab(objTab);
|
||
|
|
||
|
});
|
||
|
|
||
|
//remove the disabled class
|
||
|
setTimeout(function(){
|
||
|
var objTabs = jQuery("#uc_tabs");
|
||
|
objTabs.removeClass("uc-tabs-disabled");
|
||
|
|
||
|
},1000);
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* init tipsy
|
||
|
*/
|
||
|
function initTipsy() {
|
||
|
|
||
|
if (typeof jQuery("body").tipsy !== "function")
|
||
|
return;
|
||
|
|
||
|
g_objWrapper.tipsy({
|
||
|
selector: ".uc-tip",
|
||
|
delayIn: 200,
|
||
|
offset: 4,
|
||
|
html: true,
|
||
|
gravity: "s",
|
||
|
});
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* init items tab
|
||
|
*/
|
||
|
function initItemsTab(){
|
||
|
|
||
|
g_objItemSettingsWrapper = jQuery("#uc_tab_itemattr").children(".unite_settings_wrapper");
|
||
|
|
||
|
g_settingsItem.init(g_objItemSettingsWrapper);
|
||
|
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* init js tab
|
||
|
*/
|
||
|
function initJSTab(){
|
||
|
|
||
|
var objJSSettingsWrapper = jQuery("#uc_tab_js").find(".unite_settings_wrapper");
|
||
|
|
||
|
g_settingsJS.init(objJSSettingsWrapper);
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* put preview image
|
||
|
*/
|
||
|
function putPreviewImage(urlPreview){
|
||
|
if(!urlPreview || urlPreview == "")
|
||
|
return(false);
|
||
|
|
||
|
var html = "";
|
||
|
html += "<div id='uc_edit_addon_preview_image' class='uc-edit-addon-preview-image' style=\"background-image:url('"+urlPreview+"')\"></div>";
|
||
|
|
||
|
jQuery("#unite_setting_text_preview_row .spanSettingsStaticText").parent().append(html);
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/**
|
||
|
* init view by options related items
|
||
|
*/
|
||
|
function initByOptions(arrOptions){
|
||
|
|
||
|
var urlPreview = arrOptions["url_preview"];
|
||
|
if(urlPreview)
|
||
|
putPreviewImage(urlPreview);
|
||
|
|
||
|
var objPanel = new UniteCreatorParamsPanel();
|
||
|
|
||
|
//set thumb sizes
|
||
|
var objThumbSizes = arrOptions["thumb_sizes"];
|
||
|
if(objThumbSizes){
|
||
|
objPanel.initGlobalSetting_ThumbSizes(objThumbSizes);
|
||
|
}
|
||
|
|
||
|
//set image add fields
|
||
|
var objImageParams = arrOptions["image_add_fields"];
|
||
|
if(objImageParams){
|
||
|
objPanel.initGlobalSetting_ImageAddParams(objImageParams);
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* get control attributes with their values
|
||
|
*/
|
||
|
this.getControlParams = function(type){
|
||
|
|
||
|
switch(type){
|
||
|
default:
|
||
|
case "main":
|
||
|
var arrData = g_paramsEditorMain.getParamsData("control", true);
|
||
|
break;
|
||
|
case "items":
|
||
|
case "item":
|
||
|
var arrData = g_paramsEditorItems.getParamsData("control", true);
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
return(arrData);
|
||
|
};
|
||
|
|
||
|
|
||
|
/**
|
||
|
* edit addon view
|
||
|
*/
|
||
|
this.initEditAddonView = function(){
|
||
|
|
||
|
g_objWrapper = jQuery("#uc_tab_contents");
|
||
|
|
||
|
var objConfig = jQuery("#uc_edit_item_config");
|
||
|
var objParamsMain = objConfig.data("params");
|
||
|
var objParamsItems = objConfig.data("params-items");
|
||
|
var arrPanelKeys = objConfig.data("panel-keys");
|
||
|
|
||
|
var arrPanelItemKeys = objConfig.data("panel-item-keys");
|
||
|
var arrPanelChildKeys = objConfig.data("panel-child-keys");
|
||
|
var arrPanelAddKeys = objConfig.data("panel-add-keys");
|
||
|
var arrPanelTemplateCode = objConfig.data("panel-template-code");
|
||
|
var arrSkipParams = objConfig.data("panel-skip-params");
|
||
|
|
||
|
var arrVariablesItems = objConfig.data("variables-items");
|
||
|
var arrVariablesMain = objConfig.data("variables-main");
|
||
|
var arrParamsCats = objConfig.data("params-cats");
|
||
|
|
||
|
var arrOptions = objConfig.data("options");
|
||
|
|
||
|
var objSettingsWrapper = jQuery("#uc_general_settings");
|
||
|
|
||
|
if(jQuery("#addon_id").length)
|
||
|
g_addonID = jQuery("#addon_id").data("addonid");
|
||
|
|
||
|
g_objButtonsPanel = jQuery("#uc_buttons_panel");
|
||
|
|
||
|
initStickyButtonsPanel();
|
||
|
|
||
|
initItemsTab();
|
||
|
|
||
|
initJSTab();
|
||
|
|
||
|
initTabs();
|
||
|
|
||
|
initTipsy();
|
||
|
|
||
|
g_generalSettings.init(objSettingsWrapper);
|
||
|
|
||
|
initIncludesTab();
|
||
|
|
||
|
initParamsEditors(objParamsMain, objParamsItems, arrParamsCats);
|
||
|
|
||
|
initAssetsTab();
|
||
|
|
||
|
initChangelogTab();
|
||
|
|
||
|
initRevisionsTab();
|
||
|
|
||
|
initByOptions(arrOptions);
|
||
|
|
||
|
initVariables(arrVariablesItems, arrVariablesMain); //must init before params panels
|
||
|
|
||
|
//init param parnels
|
||
|
initParamPanelGlobals(arrPanelChildKeys, arrPanelTemplateCode, arrPanelAddKeys, arrSkipParams);
|
||
|
initParamsPanels(arrPanelKeys, arrPanelItemKeys);
|
||
|
|
||
|
//focus the title if empty
|
||
|
var title = jQuery("#text_addon_title").val();
|
||
|
if(jQuery.trim(title) == "")
|
||
|
jQuery("#text_addon_title").focus();
|
||
|
|
||
|
initEvents();
|
||
|
|
||
|
updateImageSelectPath();
|
||
|
|
||
|
initBulkDialog();
|
||
|
|
||
|
};
|
||
|
|
||
|
this.________________INIT_OTHER_VIEWS_______________ = function(){};
|
||
|
|
||
|
/**
|
||
|
* init assets manager view
|
||
|
*/
|
||
|
this.initAssetsManagerView = function(){
|
||
|
|
||
|
var objAssetsManagerWrapper = jQuery("#uc_assets_manager");
|
||
|
if(objAssetsManagerWrapper.length == 0)
|
||
|
throw new Error("Assets manager not found");
|
||
|
|
||
|
g_objAssetsManager.init(objAssetsManagerWrapper);
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
};
|