862 lines
18 KiB
JavaScript
862 lines
18 KiB
JavaScript
"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);
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
|