index of
/
home
/
thefkyzp
/
www
/
wp-content
/
plugins
/
unlimited-elements-for-elementor
/
js
/
File: /home/thefkyzp/www/wp-content/plugins/unlimited-elements-for-elementor/js/unitecreator_browser.js
"use strict"; /** * browser object */ function UniteCreatorBrowser(){ var g_objWrapper, g_objTabsWrapper, g_objBackButton; var g_objLoader; var g_objCatalog, g_objHeaderMenu; var g_objSearchInput, g_addParams = null; var g_objCache = {}; //return events to the caller with g_temp.funcResponse this.events = { LOADING_ADDON: "loading_addon", ADDON_DATA: "addon_data" }; if(!g_ucAdmin) var g_ucAdmin = new UniteAdminUC(); //temp vars var g_temp = { funcResponse: null, addonType: "", isPages:false, isDialogInited:false, prefix:"", isSelectMode:false, lastOpenedTime:null, objTriggerElement:null, isInsideManager:false }; var t = this; function _______________TABS__________(){} /** * return if tab selected or not */ function isTabSelected(objTab){ if(objTab.hasClass("uc-tab-selected")) return(true); return(false); } /** * select some tab */ function selectTab(objTab){ if(objTab.hasClass("uc-browser-tab") == false) throw new Error("Wrong tab object"); var objOtherTabs = getObjTabs(objTab); objOtherTabs.removeClass("uc-tab-selected"); objTab.addClass("uc-tab-selected"); //show content, hide others var catID = objTab.data("catid"); showContentCategory(catID); } /** * select first visible tab */ function selectFirstVisibleTab(){ var objTabItems = g_objWrapper.find(".uc-browser-tabs-wrapper .uc-tab-item:visible"); if(objTabItems.length == 0) return(false); var objTab = jQuery(objTabItems[0]).children("a"); selectTab(objTab); } /** * on tab click function */ function onTabClick(){ var objTab = jQuery(this); if(isTabSelected(objTab)) return(true); selectTab(objTab); } /** * get obj all tabs without some tab */ function getObjTabs(objWithout){ var objTabs = g_objWrapper.find(".uc-browser-tabs-wrapper .uc-browser-tab"); if(objWithout) objTabs = objTabs.not(objWithout); return(objTabs); } /** * init tabs */ function initTabs(){ var objTabs = getObjTabs(); objTabs.on("click",onTabClick); } function ________CATALOG_HEADER_MENU__________(){} /** * on header menu item click */ function onHeaderMenuClick(){ var objItem = jQuery(this); g_objHeaderMenu.find("a").not(objItem).removeClass("uc-menu-active"); objItem.addClass("uc-menu-active"); var state = objItem.data("state"); trace(state); } /** * init header menu */ function initHeaderMenu(){ g_objHeaderMenu = g_objCatalog.find(".uc-catalog-header-menu"); if(g_objHeaderMenu.length == 0){ g_objHeaderMenu = null; return(false); } g_ucAdmin.validateDomElement(g_objHeaderMenu, "header menu"); g_objHeaderMenu.find("a").on("click",onHeaderMenuClick); } function __________CATALOG_RELATED__________(){} /** * get addon data by name */ this.getAddonData = function(addonName){ if(g_objCache.hasOwnProperty(addonName) == true) return(g_objCache[addonName]); var objAddon = g_objCatalog.find(".uc-browser-addon[data-name='"+addonName+"']"); if(objAddon.length != 1) return(null); var objData = getAddonDataFromAddon(objAddon); return(objData); }; /** * install addon */ this.installAddon = function(objAddon, catTitle, onInstalledFunc){ var addonName = objAddon.data("name"); var isOneClickInstall = false; if(g_temp.isInsideManager == false && (!g_temp.addonType || g_temp.addonType == "layout" || g_temp.addonType == "pages")) isOneClickInstall = true; if(!catTitle) var catTitle = objAddon.data("cattitle"); if(!catTitle){ var objContent = objAddon.parents(".uc-browser-content"); var catTitle = objContent.data("cattitle"); } var objInstalled = objAddon.find(".uc-installed-success"); if(objInstalled.length == 0) objInstalled = null; //set loader objAddon.find(".uc-hover-free").hide(); objAddon.find(".uc-installing").show(); var data = {}; data["name"] = addonName; data["cat"] = catTitle; data["type"] = g_temp.addonType; if(g_temp.isInsideManager) data["from_manager"] = true; g_ucAdmin.setErrorMessageID(function(message){ objAddon.find(".uc-installing div").hide(); objAddon.find(".uc-installing i").hide(); objAddon.find(".uc-installing span").hide(); objAddon.find("h3").show().html(message); }); var action = "install_catalog_addon"; if(g_temp.isPages == true) action = "install_catalog_page"; if(g_addParams) data["params"] = g_addParams; g_ucAdmin.ajaxRequest(action, data, function(response){ //set id var id = g_ucAdmin.getVal(response, "addonid"); if(!id) id = g_ucAdmin.getVal(response, "layoutid"); //set alias, replace name var alias = g_ucAdmin.getVal(response, "alias"); if(alias){ addonName = alias; objAddon.data("name", alias); } if(id){ objAddon.data("id", id); } objAddon.find(".uc-installing").hide(); //trigger global event var installData = response; installData["addontype"] = g_temp.addonType; installData["name"] = addonName; g_ucAdmin.triggerEvent("install_addon", installData); if(isOneClickInstall == false){ objAddon.find(".uc-state-label").hide(); objAddon.data("state","installed"); }else{ //on once click install call response func objAddon.find(".uc-hover-free").show(); if(typeof g_temp.funcResponse == "function") g_temp.funcResponse(response); if(objInstalled) objInstalled.show(); } if(onInstalledFunc) onInstalledFunc(response); }); return(false); }; /** * on addon click */ function onAddonClick(event){ //view page click var target = event.target; var objTarget = jQuery(target); if(objTarget.hasClass("uc-hover-label-preview")) return(true); var objAddon = jQuery(this); var state = objAddon.data("state"); switch(state){ case "free": t.installAddon(objAddon); return(false); break; case "pro": return(true); break; } var objData = getAddonDataFromAddon(objAddon); g_temp.funcResponse(objData); closeCatalog(); } /** * on addon hover */ this.onAddonHover = function(event, objAddon) { if(!objAddon) var objAddon = jQuery(this); var objLabel = objAddon.find(".uc-hover-label") if(objLabel.length == 0) return(true); if(objLabel.attr('installing') === 'true' || objLabel.attr('installed') === 'true') { return false; } if(event.type === "mouseenter" || event.type == "item_mouseover") { objAddon.addClass("hover-label-visible"); objLabel.removeClass('hidden'); } else { objAddon.removeClass("hover-label-visible"); objLabel.addClass('hidden'); } }; /** * check if catalog opened */ function isCatalogOpened(){ var isOpened = g_objCatalog.is(":visible"); return(isOpened); } /** * close the catalog */ function closeCatalog(){ var isOpened = isCatalogOpened(); if(isOpened == false) return(true); if(g_temp.isSelectMode == true){ var timeNow = jQuery.now(); var diff = timeNow - g_temp.lastOpenedTime; if(diff < 300) return(true); } if(g_temp.isSelectMode == false) jQuery("body").removeClass("uc-catalog-open"); g_objWrapper.hide(); g_objCatalog.hide(); } /** * position the catalog */ function positionCatalog(){ if(g_temp.isSelectMode == false) return(false); if(!g_temp.objTriggerElement) return(false); var offset = g_ucAdmin.getCustomDialogOffset(g_objCatalog, g_temp.objTriggerElement); g_objCatalog.offset(offset); //set width var width = g_temp.objTriggerElement.width(); g_objCatalog.width(width+10); } /** * open catalog */ function openCatalog(){ g_temp.lastOpenedTime = jQuery.now(); g_objWrapper.show(); g_objCatalog.show(); if(g_temp.isSelectMode == false){ jQuery("body").addClass("uc-catalog-open"); }else{ //select mode positionCatalog(); } if(g_objSearchInput) g_objSearchInput.focus(); } /** * init catalog events */ function initCatalogEvents(){ //close button g_objCatalog.find(".uc-catalog-button-close").on("click",closeCatalog); g_objCatalog.find(".uc-link-update-catalog").on("click",openDialogCatalogUpdate); if(g_temp.isSelectMode == true){ g_objCatalog.on("click",function(event){ event.stopPropagation(); event.stopImmediatePropagation(); }); jQuery("body").on("click",function(){ closeCatalog(); }); } } /** * get category addons */ function getCatAddons(catID){ var selector = "#uc_browser_content_"+g_temp.prefix+"_"+catID+" .uc-browser-addon"; var objAddons = jQuery(selector); return(objAddons); } /** * init the catalog */ function initCatalog(){ g_objCatalog = g_objWrapper.find(".uc-catalog"); g_ucAdmin.validateDomElement(g_objCatalog, "addon browser catalog"); g_objTabsWrapper = g_objWrapper.find(".uc-browser-tabs-wrapper"); //select mode if(g_objCatalog.hasClass("uc-select-mode")) g_temp.isSelectMode = true; initTabs(); initHeaderMenu(); initCatalogSearch(); initCatalogEvents(); } function _______________SEARCH__________(){} /** * set categories titles according number of items * only on visible items */ function setCategoriesTitles(){ var objTabItems = g_objWrapper.find(".uc-browser-tabs-wrapper .uc-tab-item:visible"); objTabItems.each(function(index, tabItem){ var objItem = jQuery(tabItem); var title = objItem.data("title"); var catID = objItem.data("catid"); var objAddons = getCatAddons(catID); var numAddons = objAddons.not(".uc-item-hidden").length; var showTitle = title+" ("+numAddons+")"; objItem.children("a").html(showTitle); }); } /** * show all addons and cats that been hidden by search */ function search_showAll(){ g_objWrapper.find(".uc-item-hidden").removeClass("uc-item-hidden").show(); setCategoriesTitles(); } /** * do search */ function doCatalogSearch(searchValue){ searchValue = jQuery.trim(searchValue); if(!searchValue){ search_showAll(); return(true); } searchValue = searchValue.toLowerCase(); var objTabItems = g_objWrapper.find(".uc-browser-tabs-wrapper .uc-tab-item"); objTabItems.each(function(index, item){ var objItem = jQuery(this); var title = objItem.data("title"); title = title.toLowerCase(); var pos = title.indexOf(searchValue); var isCatFound = (pos !== -1); var catID = objItem.data('catid'); var objAddons = getCatAddons(catID); var isSomeAddonFound = false; //if category found, all addons will be visible if(isCatFound == true){ objAddons.removeClass("uc-item-hidden").show(); }else{ //if cat not found, check addons jQuery.each(objAddons, function(index, addon){ var objAddon = jQuery(addon); var addonTitle = objAddon.data("title"); addonTitle = addonTitle.toLowerCase(); var posAddon = addonTitle.indexOf(searchValue); var isAddonFound = (posAddon !== -1); if(isAddonFound == true){ isSomeAddonFound = true; objAddon.removeClass("uc-item-hidden").show(); }else{ objAddon.addClass("uc-item-hidden").hide(); } }); //end foreach addons } if(isCatFound == true || isSomeAddonFound == true){ objItem.removeClass("uc-item-hidden").show(); }else objItem.addClass("uc-item-hidden").hide(); }); //select first cat setCategoriesTitles(); selectFirstVisibleTab(); } /** * init search in catalog */ function initCatalogSearch(){ g_objSearchInput = g_objCatalog.find(".uc-catalog-search-input"); if(g_objSearchInput.length == 0){ g_objSearchInput = null; return(false); } var objButtonClear = g_objCatalog.find(".uc-catalog-search-clear"); //-- search input g_ucAdmin.onChangeInputValue(g_objSearchInput, function(){ var value = g_objSearchInput.val(); value = jQuery.trim(value); if(value) objButtonClear.fadeTo(500, 1).removeClass("button-disabled"); else objButtonClear.fadeTo(500,0).addClass("button-disabled"); doCatalogSearch(value); }); //--clear button objButtonClear.on("click",function(){ var objButton = jQuery(this); if(objButton.hasClass("button-disabled")) return(false); //hide button objButton.fadeTo(500,0).addClass("button-disabled"); g_objSearchInput.val(""); search_showAll(); }); } function _______________GENERAL__________(){} /** * get addon data from addon thumbnail */ function getAddonDataFromAddon(objAddon){ var addonName = objAddon.data("name"); if(g_objCache.hasOwnProperty(addonName) == true) return(g_objCache[addonName]); var addonTitle = objAddon.data("title"); var addonID = objAddon.data("id"); var bgImage = null; var objBGImage = objAddon.find(".uc-browser-addon-image"); if(objBGImage.length) bgImage = objBGImage.css("background-image"); //load put new addon data, close the catalog first if(!addonName) addonName = null; if(!addonTitle) addonTitle = null; if(!addonID) addonID = null; var objData = { "name":addonName, "title":addonTitle, "id":addonID, "addontype":g_temp.addonType, "bgimage":bgImage }; g_objCache[addonName] = objData; return(objData); } /** * show content category */ function showContentCategory(catID){ var objContent = jQuery("#uc_browser_content_"+g_temp.prefix+"_"+catID); g_objWrapper.find(".uc-browser-content").not(objContent).hide(); objContent.show(); } /** * open addons browser, for column - add new, for addon - update * objTriggerElement - the button element that trigger the catalog open */ this.openAddonsBrowser = function(currentAddonData, funcResponse, objTriggerElement){ validateInited(); if(!funcResponse) throw new Error("There should be response func"); g_temp.funcResponse = funcResponse; g_temp.objTriggerElement = objTriggerElement; if(!objTriggerElement) g_temp.objTriggerElement = null; openCatalog(); }; /** * init update catalog */ function openDialogCatalogUpdate(){ var options = { dialogClass:"uc-dialog-catalog-update unite-ui-black", height:300 }; g_ucAdmin.openCommonDialog("uc_dialog_catalog_update", function(){ g_ucAdmin.setAjaxLoaderID("uc_dialog_catalog_update_loader"); jQuery("#uc_dialog_catalog_update_message").html("").hide(); g_ucAdmin.setErrorMessageID("uc_dialog_catalog_update_error"); g_ucAdmin.ajaxRequest("check_catalog", {force:true}, function(response){ var errorMessage = g_ucAdmin.getVal(response,"error_message"); if(errorMessage) jQuery("#uc_dialog_catalog_update_error").show().html(errorMessage); jQuery("#uc_dialog_catalog_update_message").html(response.message).show(); }); }, options); } function _______________INIT__________(){} /** * validate that the browser inited */ function validateInited(){ g_ucAdmin.validateDomElement(g_objWrapper, "addon browser"); } /** * init events */ function initEvents(){ g_objWrapper.find(".uc-browser-addon").on("click",onAddonClick); //g_objWrapper.find(".buttons-addon").on("click",onAddonButtonClick); g_objWrapper.find(".uc-browser-addon").on("mouseenter", t.onAddonHover); g_objWrapper.find(".uc-browser-addon").on("mouseleave", t.onAddonHover); if(g_objBackButton) g_objBackButton.on("click",onBackButtonClick); } /** * close catalog */ this.closeCatalog = function(){ closeCatalog(); }; /** * set addon type */ this.setAddonType = function(addontype, isPages, isFromManager){ g_temp.addonType = addontype; g_temp.isPages = isPages; g_temp.isInsideManager = isFromManager; }; /** * init browser object */ this.init = function(objWrapper, addParams){ if(!addParams) var addParams = {}; g_objWrapper = objWrapper; //validate wrapper if(g_objWrapper.length == 0){ console.trace(); return(false); } g_temp.addonType = g_objWrapper.data("addontype"); var isInited = objWrapper.data("is_inited"); if(isInited === true){ trace(g_temp.addonType); console.trace(); throw new Error("The browser is already inited"); } //add params on install submit g_addParams = addParams; g_temp.prefix = g_objWrapper.data("prefix"); var isPages = g_objWrapper.data("ispages"); if(isPages) g_temp.isPages = true; initCatalog(); initEvents(); g_ucAdmin.initActivationDialog(); objWrapper.data("is_inited", true); }; }