first commit
This commit is contained in:
@@ -0,0 +1,765 @@
|
||||
"use strict";
|
||||
|
||||
function UCManagerAdmin(){
|
||||
|
||||
var g_objWrapper = null;
|
||||
var t = this;
|
||||
var g_objCats,g_arrPlugins = [], g_arrPluginsObj = [];
|
||||
var g_arrActionsFunctions = [];
|
||||
var g_objItems = new UCManagerAdminItems();
|
||||
var g_objActions, g_type, g_name, g_passData, g_customOptions = {}, g_objAjaxDataAdd = null;
|
||||
|
||||
var g_minHeight = 450;
|
||||
|
||||
var g_temp = {
|
||||
hasCats: true,
|
||||
updateHeight: true
|
||||
};
|
||||
|
||||
//internal events
|
||||
this.events = {
|
||||
ITEM_HIDE_EMPTY_TEXT:"hide_empty_text",
|
||||
ITEM_MOUSEOVER: "item_mouseover",
|
||||
ITEM_MOUSEOUT: "item_mouseout",
|
||||
ITEM_SELECTION_CHANGE: "item_selection_change"
|
||||
};
|
||||
|
||||
|
||||
function ___________GENERAL_FUNCTIONS________________(){} //sap for outline
|
||||
|
||||
|
||||
/**
|
||||
* trigger internal event
|
||||
*/
|
||||
this.triggerEvent = function(eventName, params){
|
||||
if(!params)
|
||||
var params = null;
|
||||
|
||||
g_objWrapper.trigger(eventName, params);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* on internal event
|
||||
*/
|
||||
this.onEvent = function(eventName, func){
|
||||
g_objWrapper.on(eventName, func);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* update global height, by of categories and items
|
||||
*/
|
||||
this.updateGlobalHeight = function(catHeight, itemsHeight){
|
||||
|
||||
|
||||
setManagerWidthClass();
|
||||
|
||||
if(g_temp.updateHeight == false)
|
||||
return(true);
|
||||
|
||||
if(!catHeight || catHeight === null){
|
||||
if(g_objCats)
|
||||
var catHeight = g_objCats.getCatsHeight();
|
||||
else
|
||||
var catHeight = 0;
|
||||
}
|
||||
|
||||
|
||||
if(!itemsHeight)
|
||||
var itemsHeight = g_objItems.getItemsMaxHeight();
|
||||
|
||||
var maxHeight = catHeight;
|
||||
|
||||
if(itemsHeight > maxHeight)
|
||||
maxHeight = itemsHeight;
|
||||
|
||||
|
||||
maxHeight += 20;
|
||||
|
||||
if(maxHeight < g_minHeight)
|
||||
maxHeight = g_minHeight;
|
||||
|
||||
//set list height
|
||||
g_objItems.setHeight(maxHeight);
|
||||
|
||||
if(g_objCats)
|
||||
g_objCats.setHeight(maxHeight);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set width class to manager
|
||||
*/
|
||||
function setManagerWidthClass(){
|
||||
|
||||
g_objItems.updateWrapperSizeClass();
|
||||
}
|
||||
|
||||
/**
|
||||
* set global height
|
||||
*/
|
||||
this.setTotalHeight = function(totalHeight){
|
||||
|
||||
g_objItems.setHeight(totalHeight);
|
||||
|
||||
if(g_objCats){
|
||||
var catHeight = totalHeight + 50;
|
||||
g_objCats.setHeight(catHeight);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* validate that the manager is already inited
|
||||
*/
|
||||
function validateInited(){
|
||||
|
||||
var isInited = g_objWrapper.data("inited");
|
||||
|
||||
if(isInited === true)
|
||||
throw new Error("Can't init manager twice");
|
||||
|
||||
g_objWrapper.data("inited", true);
|
||||
}
|
||||
|
||||
/**
|
||||
* make sure the manager is not inited
|
||||
*/
|
||||
function validateNotInited(){
|
||||
|
||||
if(!g_objWrapper)
|
||||
return(false);
|
||||
|
||||
var isInited = g_objWrapper.data("inited");
|
||||
if(isInited === true)
|
||||
throw new Error("The manager has to be not inited for this operation");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* destroy the manager
|
||||
*/
|
||||
this.destroy = function(){
|
||||
|
||||
g_objWrapper.add("#manager_shadow_overlay").off("contextmenu");
|
||||
|
||||
g_objWrapper.find(".unite-context-menu li a").off("mouseup");
|
||||
|
||||
g_objWrapper.find("#button_items_operation").off("click");
|
||||
|
||||
if(g_objCats)
|
||||
g_objCats.destroy();
|
||||
|
||||
g_objItems.destroy();
|
||||
|
||||
g_objActions.destroy();
|
||||
|
||||
g_objWrapper.html("");
|
||||
g_objWrapper = null;
|
||||
}
|
||||
|
||||
|
||||
this. ___________PLUGINS_EXTERNAL________________ = function(){}
|
||||
|
||||
|
||||
/**
|
||||
* add plugin
|
||||
*/
|
||||
this.addPlugin = function(plugin){
|
||||
|
||||
validateNotInited();
|
||||
|
||||
g_arrPlugins.push(plugin);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* add cats action function
|
||||
*/
|
||||
this.addActionFunction = function(func){
|
||||
|
||||
if(typeof func != "function")
|
||||
throw new Error("the action function should be a function type");
|
||||
|
||||
g_arrActionsFunctions.push(func);
|
||||
};
|
||||
|
||||
/**
|
||||
* get action functions
|
||||
*/
|
||||
this.getActionFunctions = function(){
|
||||
|
||||
return(g_arrActionsFunctions);
|
||||
};
|
||||
|
||||
this. ___________EXTERNAL_GETTERS________________ = function(){}
|
||||
|
||||
/**
|
||||
* get custom option by name
|
||||
*/
|
||||
this.getCustomOption = function(name){
|
||||
if(g_customOptions.hasOwnProperty(name) == false)
|
||||
return(undefined);
|
||||
|
||||
var value = g_customOptions[name];
|
||||
|
||||
return(value);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* get all items data - from actions
|
||||
*/
|
||||
this.getItemsData = function(){
|
||||
|
||||
if(typeof g_objActions.getItemsData != "function")
|
||||
throw new Error("get items data function not exists in this type");
|
||||
|
||||
var arrItems = g_objActions.getItemsData();
|
||||
|
||||
return(arrItems);
|
||||
}
|
||||
|
||||
/**
|
||||
* get items data json
|
||||
*/
|
||||
this.getItemsDataJson = function(){
|
||||
var data = t.getItemsData();
|
||||
if(typeof data != "object")
|
||||
return("");
|
||||
|
||||
var dataJson = JSON.stringify(data);
|
||||
|
||||
return(dataJson);
|
||||
}
|
||||
|
||||
/**
|
||||
* get categories object
|
||||
*/
|
||||
this.getObjCats = function(){
|
||||
return(g_objCats);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get items objects
|
||||
*/
|
||||
this.getObjItems = function(){
|
||||
|
||||
return(g_objItems);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get wrapper object
|
||||
*/
|
||||
this.getObjWrapper = function(){
|
||||
|
||||
return(g_objWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* get mouseover item
|
||||
*/
|
||||
this.getMouseOverItem = function(){
|
||||
|
||||
if(g_objCats){
|
||||
var catItem = g_objCats.getMouseOverCat();
|
||||
if(catItem)
|
||||
return(catItem);
|
||||
}
|
||||
|
||||
var item = g_objItems.getMouseOverItem();
|
||||
|
||||
return(item);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* return if the items field enabled
|
||||
*/
|
||||
this.isItemsAreaEnabled = function(){
|
||||
|
||||
if(!g_objCats)
|
||||
return(true);
|
||||
|
||||
if(g_objCats && g_objCats.isSomeCatSelected() == false)
|
||||
return(false);
|
||||
|
||||
return(true);
|
||||
}
|
||||
|
||||
this. ___________EXTERNAL_SETTERS________________ = function(){}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* set some menu on mouse position
|
||||
*/
|
||||
this.showMenuOnMousePos = function(event, objMenu){
|
||||
|
||||
var objOffset = g_objWrapper.offset();
|
||||
var managerY = objOffset.top;
|
||||
var managerX = objOffset.left;
|
||||
|
||||
var menuX = Math.round(event.pageX - managerX);
|
||||
var menuY = Math.round(event.pageY - managerY);
|
||||
|
||||
var menuHeight = objMenu.height();
|
||||
var menuEndY = menuY+menuHeight;
|
||||
|
||||
var parentHeight = g_objWrapper.height();
|
||||
|
||||
//open from bottom
|
||||
if(menuEndY > parentHeight)
|
||||
menuY = menuY - menuHeight;
|
||||
|
||||
jQuery("#manager_shadow_overlay").show();
|
||||
objMenu.css({"left":menuX+"px","top":menuY+"px"}).show();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* hide all context menus
|
||||
*/
|
||||
this.hideContextMenus = function(){
|
||||
jQuery("#manager_shadow_overlay").hide();
|
||||
jQuery("ul.unite-context-menu").hide();
|
||||
};
|
||||
|
||||
/**
|
||||
* return if the manager has cats
|
||||
*/
|
||||
this.isHasCats = function(){
|
||||
|
||||
return(g_temp.hasCats);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* on item context menu click
|
||||
*/
|
||||
function onContextMenuClick(){
|
||||
|
||||
var objLink = jQuery(this);
|
||||
var action = objLink.data("operation");
|
||||
var objMenu = objLink.parents("ul.unite-context-menu");
|
||||
|
||||
var menuType = objMenu.data("type");
|
||||
|
||||
|
||||
//get extra data according the menu type
|
||||
|
||||
var data = null;
|
||||
|
||||
switch(menuType){
|
||||
case "category":
|
||||
data = g_objCats.getContextMenuCatID();
|
||||
break;
|
||||
}
|
||||
|
||||
var actionFound = false;
|
||||
|
||||
if(g_objCats)
|
||||
actionFound = g_objCats.runCategoryAction(action, data);
|
||||
|
||||
if(actionFound == false)
|
||||
t.runItemAction(action, data);
|
||||
|
||||
t.hideContextMenus();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* init context menu events
|
||||
* other context menu functions are located in the items
|
||||
*/
|
||||
function initContextMenus(){
|
||||
|
||||
g_objWrapper.add("#manager_shadow_overlay").on("contextmenu",function(event){
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
//on item right menu click
|
||||
g_objWrapper.find(".unite-context-menu li a").mouseup(onContextMenuClick);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* init plugins
|
||||
*/
|
||||
function initPlugins(){
|
||||
if(g_arrPlugins.length == 0)
|
||||
return(false);
|
||||
|
||||
jQuery.each(g_arrPlugins, function(index, pluginClass){
|
||||
|
||||
|
||||
if(typeof eval(pluginClass) != "function")
|
||||
throw new Error("Plugin "+pluginClass+" not found");
|
||||
|
||||
var objPlugin = eval("new "+pluginClass+"()");
|
||||
objPlugin.init(t);
|
||||
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* init gallery view
|
||||
*/
|
||||
function initManager(selectedCatID){
|
||||
|
||||
g_objWrapper = jQuery("#uc_managerw");
|
||||
if(g_objWrapper.length == 0)
|
||||
return(false);
|
||||
|
||||
g_type = g_objWrapper.data("type");
|
||||
g_name = g_objWrapper.data("managername");
|
||||
g_passData = g_objWrapper.data("passdata");
|
||||
|
||||
//init text
|
||||
var objText = g_objWrapper.data("text");
|
||||
if(objText && typeof objText == "object"){
|
||||
jQuery.extend(g_uctext, objText);
|
||||
g_objWrapper.removeAttr("data-text");
|
||||
}
|
||||
|
||||
|
||||
if(g_type == "inline")
|
||||
g_minHeight = 210;
|
||||
|
||||
validateInited();
|
||||
|
||||
//set if no cats
|
||||
var objCatsSection = jQuery("#cats_section");
|
||||
if(objCatsSection.length == 0){
|
||||
g_temp.hasCats = false;
|
||||
g_objCats = null;
|
||||
}else{
|
||||
g_objCats = new UCManagerAdminCats();
|
||||
}
|
||||
|
||||
if(!g_ucAdmin)
|
||||
g_ucAdmin = new UniteAdminUC();
|
||||
|
||||
if(g_temp.hasCats == true)
|
||||
initCategories();
|
||||
|
||||
|
||||
//init actions
|
||||
switch(g_type){
|
||||
case "addons":
|
||||
g_objActions = new UCManagerActionsAddons();
|
||||
break;
|
||||
case "inline":
|
||||
g_objActions = new UCManagerActionsInline();
|
||||
break;
|
||||
case "pages":
|
||||
g_objActions = new UCManagerActionsPages();
|
||||
break;
|
||||
default:
|
||||
throw new Error("Wrong manager type: " + g_type);
|
||||
break;
|
||||
}
|
||||
|
||||
if(g_objActions)
|
||||
g_objActions.init(t);
|
||||
|
||||
//the items must be inited from the manager action file
|
||||
g_objItems.validateInited();
|
||||
|
||||
//check first item select
|
||||
if(g_objCats){
|
||||
|
||||
if(selectedCatID){
|
||||
var isSelected = g_objCats.selectCategory(selectedCatID);
|
||||
if(isSelected === false)
|
||||
g_objCats.selectFirstCategory();
|
||||
}
|
||||
else
|
||||
g_objCats.selectFirstCategory();
|
||||
}
|
||||
|
||||
t.updateGlobalHeight();
|
||||
|
||||
initPlugins();
|
||||
};
|
||||
|
||||
|
||||
function ___________CATEGORIES________________(){} //sap for outline
|
||||
|
||||
|
||||
/**
|
||||
* init the categories actions
|
||||
*/
|
||||
function initCategories(){
|
||||
|
||||
g_objCats.init(t);
|
||||
|
||||
//init events
|
||||
g_objCats.events.onRemoveSelectedCategory = function(){
|
||||
t.clearItemsPanel();
|
||||
};
|
||||
|
||||
g_objCats.events.onHeightChange = function(){
|
||||
t.updateGlobalHeight();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
function ___________ITEMS_FUNCTIONS________________(){} //sap for outline
|
||||
|
||||
|
||||
/**
|
||||
* update bottom operations
|
||||
*/
|
||||
function updateBottomOperations(){
|
||||
|
||||
var numSelected = g_objItems.getNumItemsSelected();
|
||||
|
||||
var numCats = 0;
|
||||
|
||||
if(g_objCats)
|
||||
var numCats = g_objCats.getNumCats();
|
||||
|
||||
jQuery("#num_items_selected").html(numSelected);
|
||||
|
||||
//in case of less then 2 cats - disable operations
|
||||
if(numCats <= 1){
|
||||
|
||||
jQuery("#item_operations_wrapper").hide();
|
||||
return(false);
|
||||
}
|
||||
|
||||
//in case of more then one cat
|
||||
jQuery("#item_operations_wrapper").show();
|
||||
|
||||
//enable operations
|
||||
if(numSelected > 0){
|
||||
jQuery("#select_item_category").prop("disabled","");
|
||||
jQuery("#item_operations_wrapper").removeClass("unite-disabled");
|
||||
jQuery("#button_items_operation").removeClass("button-disabled");
|
||||
|
||||
}else{ //disable operations
|
||||
jQuery("#select_item_category").prop("disabled","disabled");
|
||||
jQuery("#button_items_operation").addClass("button-disabled");
|
||||
jQuery("#item_operations_wrapper").addClass("unite-disabled");
|
||||
}
|
||||
|
||||
//hide / show operation categories
|
||||
jQuery("#select_item_category option").show();
|
||||
var arrOptions = jQuery("#select_item_category option").get();
|
||||
|
||||
var firstSelected = false;
|
||||
|
||||
var selectedCatID = g_objCats.getSelectedCatID();
|
||||
|
||||
for(var index in arrOptions){
|
||||
var objOption = jQuery(arrOptions[index]);
|
||||
var value = objOption.prop("value");
|
||||
|
||||
if(value == selectedCatID)
|
||||
objOption.hide();
|
||||
else
|
||||
if(firstSelected == false){
|
||||
objOption.prop("selected","selected");
|
||||
firstSelected = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* run items action
|
||||
*/
|
||||
this.runItemAction = function(action, data){
|
||||
|
||||
g_objActions.runItemAction(action, data);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* on select category event
|
||||
*/
|
||||
this.onCatSelect = function(catID){
|
||||
g_objActions.runItemAction("get_cat_items", catID);
|
||||
g_objItems.unselectAllItems("selectCategory");
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* run gallery ajax request
|
||||
*/
|
||||
this.ajaxRequestManager = function(action,data,status,funcSuccess){
|
||||
|
||||
jQuery("#status_loader").show();
|
||||
jQuery("#status_text").show().html(status);
|
||||
|
||||
if(g_objAjaxDataAdd && typeof(data) == "object"){
|
||||
jQuery.extend(data, g_objAjaxDataAdd);
|
||||
}
|
||||
|
||||
g_ucAdmin.ajaxRequest(action,data,function(response){
|
||||
jQuery("#status_loader").hide();
|
||||
jQuery("#status_text").hide();
|
||||
if(typeof funcSuccess == "function")
|
||||
funcSuccess(response);
|
||||
|
||||
g_objItems.checkSelectRelatedItems();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* on bottom GO button click, move items
|
||||
*/
|
||||
function onBottomOperationsClick(){
|
||||
|
||||
var arrIDs = g_objItems.getSelectedItemIDs();
|
||||
|
||||
if(arrIDs.length == 0)
|
||||
return(false);
|
||||
|
||||
var selectedCatID = g_objCats.getSelectedCatID();
|
||||
|
||||
var targetCatID = jQuery("#select_item_category").val();
|
||||
if(targetCatID == selectedCatID){
|
||||
alert("Can't move addons to same category");
|
||||
return(false);
|
||||
}
|
||||
|
||||
var data = {};
|
||||
data.targetCatID = targetCatID;
|
||||
data.selectedCatID = selectedCatID;
|
||||
data.arrAddonIDs = arrIDs;
|
||||
|
||||
g_objActions.runItemAction("move_items", data);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set actions options
|
||||
* some data goes directly to options
|
||||
*/
|
||||
this.setCustomOptions = function(options){
|
||||
g_customOptions = options;
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* set items from data
|
||||
*/
|
||||
this.setItemsFromData = function(arrItems){
|
||||
if(typeof g_objActions.setItemsFromData != "function")
|
||||
throw new Error("set items from data function not exists in this type");
|
||||
|
||||
g_objActions.setItemsFromData(arrItems);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* clear items panel
|
||||
*/
|
||||
this.clearItemsPanel = function(){
|
||||
g_objItems.clearItemsPanel();
|
||||
}
|
||||
|
||||
/**
|
||||
* set object add data to every ajax request
|
||||
*/
|
||||
this.setObjAjaxAddData = function(objData){
|
||||
|
||||
g_objAjaxDataAdd = objData;
|
||||
|
||||
}
|
||||
|
||||
this. ___________EXTERNAL_INIT________________ = function(){}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* init bottom operations
|
||||
*/
|
||||
this.initBottomOperations = function(){
|
||||
|
||||
// do items operations
|
||||
g_objWrapper.find("#button_items_operation").on("click",onBottomOperationsClick);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* init items actions
|
||||
*/
|
||||
this.initItems = function(){
|
||||
|
||||
g_objItems.initItems(t);
|
||||
|
||||
//on selection change
|
||||
g_objItems.events.onItemSelectionChange = function(){
|
||||
updateBottomOperations();
|
||||
|
||||
t.triggerEvent(t.events.ITEM_SELECTION_CHANGE);
|
||||
};
|
||||
|
||||
//on items height change
|
||||
g_objItems.events.onHeightChange = function(itemsHeight){
|
||||
t.updateGlobalHeight(null, itemsHeight);
|
||||
};
|
||||
|
||||
initContextMenus();
|
||||
|
||||
//if items only - clear panel
|
||||
if(g_temp.hasCats == false)
|
||||
g_objItems.updatePanelView();
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* get manager name
|
||||
*/
|
||||
this.getManagerName = function(){
|
||||
|
||||
return(g_name);
|
||||
};
|
||||
|
||||
/**
|
||||
* get manager pass data
|
||||
*/
|
||||
this.getManagerPassData = function(){
|
||||
|
||||
return(g_passData);
|
||||
}
|
||||
|
||||
/**
|
||||
* set not to update height
|
||||
*/
|
||||
this.setNotUpdateHeight = function(){
|
||||
|
||||
g_temp.updateHeight = false;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* init manager
|
||||
*/
|
||||
this.initManager = function(selectedCatID){
|
||||
|
||||
initManager(selectedCatID);
|
||||
};
|
||||
|
||||
|
||||
};
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,534 @@
|
||||
"use strict";
|
||||
|
||||
function UCManagerActionsInline(){
|
||||
|
||||
var t = this;
|
||||
var g_objCats, g_manager, g_objDialogEdit;
|
||||
var g_objWrapper, g_objSettings, g_objSettingsWrapper, g_initByAddonID = null;
|
||||
var g_imageField = null; //field that set to be image for html output
|
||||
var g_dialogFormItem = new UniteCreatorParamsDialog();
|
||||
var g_itemType = "default"; //default / form
|
||||
|
||||
var g_objItems = new UCManagerAdminItems();
|
||||
|
||||
if(!g_ucAdmin){
|
||||
var g_ucAdmin = new UniteAdminUC();
|
||||
}
|
||||
|
||||
var g_temp = {
|
||||
source:""
|
||||
};
|
||||
|
||||
/**
|
||||
* on item button click
|
||||
*/
|
||||
this.runItemAction = function(action, data){
|
||||
|
||||
switch(action){
|
||||
case "add_images":
|
||||
onAddImagesClick();
|
||||
break;
|
||||
case "add_form_item":
|
||||
openFormItemDialog();
|
||||
break;
|
||||
case "add_item":
|
||||
openAddEditItemDialog();
|
||||
break;
|
||||
case "edit_item":
|
||||
if(g_itemType == "form")
|
||||
onEditFormItemClick();
|
||||
else
|
||||
onEditItemClick();
|
||||
break;
|
||||
case "update_order": //do nothing
|
||||
break;
|
||||
case "remove_items":
|
||||
g_objItems.removeSelectedItems();
|
||||
break;
|
||||
case "duplicate_items":
|
||||
g_objItems.duplicateSelectedItems();
|
||||
break;
|
||||
case "select_all_items":
|
||||
g_objItems.selectUnselectAllItems();
|
||||
break;
|
||||
default:
|
||||
trace("wrong action: "+action);
|
||||
break;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
function ________FORM___________(){}
|
||||
|
||||
|
||||
/**
|
||||
* open form item dialog - attributes dialog
|
||||
*/
|
||||
function openFormItemDialog(params, itemID){
|
||||
|
||||
var isEdit = false;
|
||||
if(params)
|
||||
isEdit = true;
|
||||
|
||||
if(isEdit == false){ //add
|
||||
|
||||
g_dialogFormItem.open(null,null,function(objValues){
|
||||
|
||||
appendItem(objValues);
|
||||
|
||||
});
|
||||
|
||||
}else{ //edit
|
||||
|
||||
g_dialogFormItem.open(params, itemID, function(objValues, itemID){
|
||||
|
||||
updateItemByID(itemID, objValues);
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* open edit for item dialog with form data
|
||||
*/
|
||||
function onEditFormItemClick(){
|
||||
|
||||
var objItem = g_objItems.getSelectedItem();
|
||||
if(!objItem)
|
||||
throw new Error("No items found");
|
||||
|
||||
var params = objItem.data("params");
|
||||
var itemID = objItem.data("id");
|
||||
|
||||
openFormItemDialog(params,itemID);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get items data
|
||||
*/
|
||||
this.getItemsData = function(){
|
||||
var objItems = g_objItems.getObjItems();
|
||||
|
||||
var arrItems = [];
|
||||
jQuery.each(objItems, function(index, item){
|
||||
var objItem = jQuery(item);
|
||||
var params = objItem.data("params");
|
||||
arrItems.push(params);
|
||||
});
|
||||
|
||||
return(arrItems);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* set items from data
|
||||
*/
|
||||
this.setItemsFromData = function(arrItems){
|
||||
|
||||
g_objItems.removeAllItems(true);
|
||||
|
||||
if(typeof arrItems != "object")
|
||||
return(false);
|
||||
|
||||
jQuery.each(arrItems, function(index, itemData){
|
||||
appendItem(itemData, true);
|
||||
});
|
||||
|
||||
g_objItems.updateAfterHtmlListChange();
|
||||
};
|
||||
|
||||
|
||||
|
||||
function ________OTHER___________(){}
|
||||
|
||||
|
||||
/**
|
||||
* on add images click
|
||||
*/
|
||||
function onAddImagesClick(){
|
||||
|
||||
g_ucAdmin.openAddImageDialog("Add Images",function(response){
|
||||
|
||||
if(response && jQuery.isArray(response) == false)
|
||||
response = [response];
|
||||
|
||||
jQuery.each(response, function(index, item){
|
||||
|
||||
if(g_temp.source == "addon"){
|
||||
|
||||
var urlAssetsRelative = item.url_assets_relative;
|
||||
var urlImage = item.full_url;
|
||||
|
||||
}else{
|
||||
var urlImage = item.url;
|
||||
}
|
||||
|
||||
urlImage = g_ucAdmin.urlToRelative(urlImage);
|
||||
|
||||
addItemFromImage(urlImage);
|
||||
});
|
||||
|
||||
}, true, g_temp.source);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* open edit item dialog
|
||||
*/
|
||||
function onEditItemClick(){
|
||||
|
||||
var objItem = g_objItems.getSelectedItem();
|
||||
if(!objItem)
|
||||
throw new Error("No items found");
|
||||
|
||||
openAddEditItemDialog(true, objItem);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* open add item dialog
|
||||
*/
|
||||
function openAddEditItemDialog(isEdit, objItem){
|
||||
|
||||
if(!isEdit)
|
||||
var isEdit = false;
|
||||
|
||||
var buttonText = g_uctext.add_item;
|
||||
var titleText = g_uctext.add_item;
|
||||
|
||||
if(isEdit){
|
||||
var params = objItem.data("params");
|
||||
g_objDialogEdit.data("item", objItem);
|
||||
|
||||
buttonText = g_uctext.update_item;
|
||||
titleText = g_uctext.edit_item;
|
||||
}
|
||||
|
||||
var buttonOpts = {};
|
||||
|
||||
buttonOpts[g_uctext.cancel] = function(){
|
||||
g_objDialogEdit.dialog("close");
|
||||
};
|
||||
|
||||
buttonOpts[buttonText] = function(){
|
||||
|
||||
if(isEdit == false)
|
||||
addItemFromDialog();
|
||||
else{
|
||||
var objItem = g_objDialogEdit.data("item");
|
||||
updateItemFromDialog(objItem);
|
||||
}
|
||||
|
||||
g_objDialogEdit.dialog("close");
|
||||
};
|
||||
|
||||
|
||||
g_objDialogEdit.dialog({
|
||||
dialogClass:"unite-ui",
|
||||
buttons:buttonOpts,
|
||||
title: titleText,
|
||||
minWidth:800,
|
||||
modal:true,
|
||||
open:function(){
|
||||
|
||||
if(g_initByAddonID){ //ajax init
|
||||
|
||||
var data = {
|
||||
addonid:g_initByAddonID
|
||||
};
|
||||
|
||||
g_initByAddonID = null;
|
||||
|
||||
g_ucAdmin.ajaxRequest("get_addon_item_settings_html", data, function(response){
|
||||
|
||||
g_objSettingsWrapper.html(response.html);
|
||||
|
||||
initSettingsObject();
|
||||
|
||||
//clear or init settings
|
||||
if(isEdit == false) //add
|
||||
g_objSettings.clearSettings();
|
||||
else //edit
|
||||
g_objSettings.setValues(params);
|
||||
|
||||
});
|
||||
|
||||
}else{
|
||||
|
||||
if(isEdit == false) //add
|
||||
g_objSettings.clearSettings();
|
||||
else //edit
|
||||
g_objSettings.setValues(params);
|
||||
|
||||
}
|
||||
|
||||
g_objSettings.focusFirstInput();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* generate item title
|
||||
*/
|
||||
function generateItemTitle(){
|
||||
var numItems = g_objItems.getNumItems()+1;
|
||||
var title = "Item " + numItems;
|
||||
return(title);
|
||||
}
|
||||
|
||||
/**
|
||||
* get title from params
|
||||
* @param params
|
||||
*/
|
||||
function getTitleFromParams(params){
|
||||
|
||||
if(params.hasOwnProperty("title") == false)
|
||||
return(null);
|
||||
|
||||
var title = params["title"];
|
||||
if(!title)
|
||||
return(null);
|
||||
|
||||
return(title);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* generate item html
|
||||
*/
|
||||
function generateItemHtml(params, id){
|
||||
|
||||
//set title
|
||||
var title = generateItemTitle();
|
||||
var altTitle = getTitleFromParams(params);
|
||||
|
||||
if(altTitle)
|
||||
title = altTitle;
|
||||
|
||||
var description = "";
|
||||
|
||||
//set description style
|
||||
var urlImage = null;
|
||||
|
||||
if(params.hasOwnProperty("thumb"))
|
||||
urlImage = jQuery.trim(params.thumb);
|
||||
|
||||
if(!urlImage && g_imageField && params.hasOwnProperty(g_imageField))
|
||||
urlImage = jQuery.trim(params[g_imageField]);
|
||||
|
||||
//trace('generateItemHtml');
|
||||
//trace(urlImage);
|
||||
|
||||
var descStyle = "";
|
||||
if(urlImage){
|
||||
urlImage = g_ucAdmin.urlToFull(urlImage);
|
||||
descStyle = "style=\"background-image:url('"+urlImage+"')\"";
|
||||
}
|
||||
|
||||
//generatet id
|
||||
if(id){
|
||||
var itemID = g_objItems.getItemIDFromID(id);
|
||||
}else{
|
||||
var objID = g_objItems.getObjNewID();
|
||||
var id = objID.id;
|
||||
var itemID = objID.itemID;
|
||||
}
|
||||
|
||||
|
||||
var $htmlItem = "";
|
||||
$htmlItem += "<li id='" + itemID + "' data-id='"+id+"' data-title="+title+" >";
|
||||
$htmlItem += " <div class=\"uc-item-title unselectable\" unselectable=\"on\">"+title+"</div>";
|
||||
$htmlItem += " <div class=\"uc-item-description unselectable\" unselectable=\"on\" "+descStyle+">"+description+"</div>";
|
||||
$htmlItem += " <div class=\"uc-item-icon unselectable\" unselectable=\"on\"></div>";
|
||||
$htmlItem += "</li>";
|
||||
|
||||
return($htmlItem);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* update item html from params
|
||||
*/
|
||||
function updateItemHtml(objItem, params){
|
||||
|
||||
var id = objItem.data("id");
|
||||
|
||||
var html = generateItemHtml(params, id);
|
||||
|
||||
var objNewItem = g_objItems.replaceItemHtml(objItem, html);
|
||||
|
||||
objNewItem.data("params", params);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* append item from values
|
||||
* @param objValues
|
||||
*/
|
||||
function appendItem(objValues, noUpdate){
|
||||
var htmlItem = generateItemHtml(objValues);
|
||||
var objItem = g_objItems.appendItem(htmlItem, noUpdate);
|
||||
objItem.data("params", objValues);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* add item from dialog
|
||||
*/
|
||||
function addItemFromDialog(){
|
||||
var objValues = g_objSettings.getSettingsValues();
|
||||
appendItem(objValues);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* add item from image
|
||||
*/
|
||||
function addItemFromImage(urlImage){
|
||||
|
||||
var objInfo = g_ucAdmin.pathinfo(urlImage);
|
||||
var params = {};
|
||||
params.title = objInfo.filename;
|
||||
params.image = urlImage;
|
||||
|
||||
appendItem(params);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* update item from dialog
|
||||
*/
|
||||
function updateItemFromDialog(objItem){
|
||||
|
||||
var params = g_objSettings.getSettingsValues();
|
||||
objItem.data("params", params);
|
||||
updateItemHtml(objItem, params);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* update item setting by id
|
||||
*/
|
||||
function updateItemByID(itemID, params){
|
||||
|
||||
var objItem = jQuery("#uc_item_" + itemID);
|
||||
g_ucAdmin.validateDomElement(objItem, "edit item");
|
||||
|
||||
objItem.data("params", params);
|
||||
updateItemHtml(objItem, params);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set thumb field for viewing the thumb
|
||||
*/
|
||||
function init_setImageField(){
|
||||
|
||||
var arrFieldNames = g_objSettings.getFieldNamesByType("image");
|
||||
|
||||
if(arrFieldNames.length == 0)
|
||||
return(false);
|
||||
|
||||
g_imageField = arrFieldNames[0];
|
||||
|
||||
if(arrFieldNames.length > 1){
|
||||
if(jQuery.inArray("image",arrFieldNames) != -1)
|
||||
g_imageField == "image";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* destroy
|
||||
*/
|
||||
this.destroy = function(){
|
||||
|
||||
if(g_objSettings)
|
||||
g_objSettings.destroy();
|
||||
|
||||
//nothing to destroy yet
|
||||
};
|
||||
|
||||
/**
|
||||
* init settings, after the settigns html is set
|
||||
*/
|
||||
function initSettingsObject(){
|
||||
|
||||
g_objSettings = new UniteSettingsUC();
|
||||
g_objSettings.init(g_objSettingsWrapper);
|
||||
|
||||
init_setImageField();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* init the actions
|
||||
*/
|
||||
this.init = function(objManager){
|
||||
|
||||
g_manager = objManager;
|
||||
|
||||
g_manager.initItems();
|
||||
|
||||
g_objCats = g_manager.getObjCats();
|
||||
g_objItems = g_manager.getObjItems();
|
||||
g_objWrapper = g_manager.getObjWrapper();
|
||||
|
||||
//init options
|
||||
var options = g_objWrapper.data("options");
|
||||
var source = g_ucAdmin.getVal(options, "source");
|
||||
|
||||
if(source)
|
||||
g_temp.source = source;
|
||||
|
||||
|
||||
g_objDialogEdit = g_objWrapper.find(".uc-dialog-edit-item");
|
||||
if(g_objDialogEdit.length){
|
||||
|
||||
g_objSettingsWrapper = g_objWrapper.find(".uc-item-config-settings");
|
||||
|
||||
var addonID = g_objSettingsWrapper.data("initbyaddon");
|
||||
if(addonID){
|
||||
g_objSettingsWrapper.data("initbyaddon", null);
|
||||
g_initByAddonID = addonID;
|
||||
}else{ //init settings right away - no ajax
|
||||
|
||||
initSettingsObject();
|
||||
|
||||
}
|
||||
}else
|
||||
g_objDialogEdit = null;
|
||||
|
||||
|
||||
//init form item dialog
|
||||
var objDialogFormItemWrapper = g_objWrapper.find(".uc-dialog-param-form_item");
|
||||
if(objDialogFormItemWrapper.length){
|
||||
g_itemType = "form";
|
||||
g_dialogFormItem.init(objDialogFormItemWrapper);
|
||||
}else
|
||||
g_dialogFormItem = null;
|
||||
|
||||
|
||||
//init from data
|
||||
var arrInitItems = g_objWrapper.data("init-items");
|
||||
|
||||
if(arrInitItems && typeof arrInitItems == "object")
|
||||
t.setItemsFromData(arrInitItems);
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
@@ -0,0 +1,842 @@
|
||||
"use strict";
|
||||
|
||||
function UCManagerAdminCats(){
|
||||
|
||||
var g_catClickReady = false;
|
||||
var g_catFieldRightClickReady = true; //avoid double menu on cat field
|
||||
var g_maxCatHeight = 450;
|
||||
var g_manager, g_objAjaxDataAdd = null;
|
||||
var g_objListCats;
|
||||
|
||||
|
||||
//event functions
|
||||
this.events = {
|
||||
onRemoveSelectedCategory: function(){},
|
||||
onHeightChange: function(){},
|
||||
onOpenCategoryDialog:function(){}
|
||||
};
|
||||
|
||||
|
||||
var g_temp = {
|
||||
isInited: false
|
||||
};
|
||||
|
||||
var t = this;
|
||||
|
||||
|
||||
function _______________INIT______________(){}
|
||||
|
||||
/**
|
||||
* validate that the object is inited
|
||||
*/
|
||||
function validateInited(){
|
||||
if(g_temp.isInited == false)
|
||||
throw new Error("The categories is not inited");
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* init the categories
|
||||
*/
|
||||
function initCats(objManager){
|
||||
|
||||
if(g_temp.isInited == true)
|
||||
throw new Error("Can't init cat object twice");
|
||||
|
||||
g_manager = objManager;
|
||||
g_objListCats = jQuery("#list_cats");
|
||||
|
||||
g_temp.isInited = true;
|
||||
|
||||
if(!g_ucAdmin)
|
||||
g_ucAdmin = new UniteAdminUC();
|
||||
|
||||
initEvents();
|
||||
|
||||
//update sortable categories
|
||||
try{
|
||||
g_objListCats.sortable({
|
||||
axis:'y',
|
||||
start: function( event, ui ) {
|
||||
g_catClickReady = false;
|
||||
},
|
||||
update: function(){
|
||||
updateCatOrder();
|
||||
//save sorting order
|
||||
}
|
||||
});
|
||||
}catch(error){
|
||||
trace("error occured in jquery sortable!");
|
||||
trace(error);
|
||||
}
|
||||
|
||||
initAddCategoryDialog();
|
||||
|
||||
initEditCategoryDialog();
|
||||
|
||||
initDeleteCategoryDialog();
|
||||
}
|
||||
|
||||
|
||||
function _______________GETTERS______________(){}
|
||||
|
||||
/**
|
||||
*
|
||||
* get category by id
|
||||
*/
|
||||
function getCatByID(catID){
|
||||
var objCat = jQuery("#category_" + catID);
|
||||
return(objCat);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get category data
|
||||
*/
|
||||
function getCatData(catID){
|
||||
|
||||
var objCat = getCatByID(catID);
|
||||
if(objCat.length == 0)
|
||||
return(null);
|
||||
|
||||
var data = {};
|
||||
data.id = catID;
|
||||
data.title = objCat.data("title");
|
||||
data.isweb = objCat.data("isweb");
|
||||
data.isweb = g_ucAdmin.strToBool(data.isweb);
|
||||
|
||||
return(data);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* check if some category selected
|
||||
*
|
||||
*/
|
||||
this.isCatSelected = function(catID){
|
||||
|
||||
var selectedCatID = t.getSelectedCatID();
|
||||
|
||||
if(catID == selectedCatID)
|
||||
return(true);
|
||||
|
||||
return(false);
|
||||
};
|
||||
|
||||
|
||||
function _______________SETTERS______________(){}
|
||||
|
||||
|
||||
/**
|
||||
* remove category from html
|
||||
*/
|
||||
function removeCategoryFromHtml(catID){
|
||||
|
||||
jQuery("#category_"+catID).remove();
|
||||
|
||||
//disableCatButtons();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set first category selected
|
||||
*/
|
||||
this.selectFirstCategory = function(){
|
||||
|
||||
var arrCats = getArrCats();
|
||||
if(arrCats.length == 0)
|
||||
return(false);
|
||||
|
||||
var firstCat = arrCats[0];
|
||||
|
||||
var catID = jQuery(firstCat).data("id");
|
||||
t.selectCategory(catID);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* run category action
|
||||
*/
|
||||
this.runCategoryAction = function(action, catID){
|
||||
|
||||
if(!catID)
|
||||
var catID = t.getSelectedCatID();
|
||||
|
||||
switch(action){
|
||||
case "add_category":
|
||||
openAddCategoryDialog();
|
||||
break;
|
||||
case "edit_category":
|
||||
openEditCategoryDialog(catID);
|
||||
break;
|
||||
case "delete_category":
|
||||
openDeleteCategoryDialog(catID);
|
||||
break;
|
||||
default:
|
||||
return(false);
|
||||
break;
|
||||
}
|
||||
|
||||
return(true);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* enable category buttons
|
||||
*/
|
||||
function enableCatButtons(){
|
||||
|
||||
//cat butons:
|
||||
//g_ucAdmin.enableButton("#button_remove_category, #button_edit_category");
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* enable category buttons
|
||||
*/
|
||||
function disableCatButtons(){
|
||||
|
||||
//g_ucAdmin.disableButton("#button_remove_category, #button_edit_category");
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* update categories order
|
||||
*/
|
||||
function updateCatOrder(){
|
||||
|
||||
//get sortIDs
|
||||
var arrSortCats = jQuery( "#list_cats" ).sortable("toArray");
|
||||
var arrSortIDs = [];
|
||||
for(var i=0;i < arrSortCats.length; i++){
|
||||
var catHtmlID = arrSortCats[i];
|
||||
var catID = catHtmlID.replace("category_","");
|
||||
arrSortIDs.push(catID);
|
||||
}
|
||||
|
||||
var data = {cat_order:arrSortIDs};
|
||||
g_manager.ajaxRequestManager("update_cat_order",data,g_uctext.updating_categories_order);
|
||||
}
|
||||
|
||||
function _______________ADD_CATEGORY______________(){}
|
||||
|
||||
/**
|
||||
* add category
|
||||
*/
|
||||
function addCategory(){
|
||||
|
||||
var data = {};
|
||||
data.catname = jQuery("#uc_dialog_add_category_catname").val();
|
||||
|
||||
if(g_objAjaxDataAdd && typeof(data) == "object"){
|
||||
jQuery.extend(data, g_objAjaxDataAdd);
|
||||
}
|
||||
|
||||
g_ucAdmin.dialogAjaxRequest("uc_dialog_add_category", "add_category", data, function(response){
|
||||
|
||||
var html = response.htmlCat;
|
||||
|
||||
jQuery("#list_cats").append(html);
|
||||
|
||||
//update html cats select
|
||||
var htmlSelectCats = response.htmlSelectCats;
|
||||
jQuery("#select_item_category").html(htmlSelectCats);
|
||||
|
||||
t.events.onHeightChange();
|
||||
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* open add category dialog
|
||||
*/
|
||||
function openAddCategoryDialog(){
|
||||
|
||||
g_ucAdmin.openCommonDialog("#uc_dialog_add_category", function(){
|
||||
|
||||
jQuery("#uc_dialog_add_category_catname").val("").focus();
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* init add category dialog
|
||||
*/
|
||||
function initAddCategoryDialog(){
|
||||
|
||||
jQuery("#uc_dialog_add_category_action").on("click",addCategory);
|
||||
|
||||
// set update title onenter function
|
||||
jQuery("#uc_dialog_add_category_catname").keyup(function(event){
|
||||
if(event.keyCode == 13)
|
||||
addCategory();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function _______________EDIT_CATEGORY______________(){}
|
||||
|
||||
/**
|
||||
*
|
||||
* open the edit category dialog by category id
|
||||
*/
|
||||
function openEditCategoryDialog(catID){
|
||||
|
||||
if(catID == -1)
|
||||
return(false);
|
||||
|
||||
var cat = getCatByID(catID);
|
||||
|
||||
if(cat.length == 0){
|
||||
trace("category with id: " + catID + " don't exists");
|
||||
return(false);
|
||||
}
|
||||
|
||||
if(jQuery.isNumeric(catID) == false)
|
||||
return(false);
|
||||
|
||||
//set data
|
||||
var dialogEdit = jQuery("#uc_dialog_edit_category");
|
||||
var isCustom = dialogEdit.data("custom");
|
||||
|
||||
dialogEdit.data("catid", catID);
|
||||
|
||||
//update catid field
|
||||
if(!isCustom){
|
||||
jQuery("#span_catdialog_id").html(catID);
|
||||
|
||||
var title = cat.data("title");
|
||||
jQuery("#uc_dialog_edit_category_title").val(title).focus();
|
||||
}
|
||||
|
||||
var options = {
|
||||
minWidth: 900
|
||||
};
|
||||
|
||||
g_ucAdmin.openCommonDialog("#uc_dialog_edit_category", function(){
|
||||
|
||||
if(!isCustom)
|
||||
jQuery("#uc_dialog_edit_category_title").select();
|
||||
else{
|
||||
t.events.onOpenCategoryDialog(dialogEdit, catID);
|
||||
}
|
||||
|
||||
},options);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* function invoke from the dialog update button
|
||||
*/
|
||||
function updateCategoryTitle(){
|
||||
|
||||
var dialogEdit = jQuery("#uc_dialog_edit_category");
|
||||
|
||||
var catID = dialogEdit.data("catid");
|
||||
|
||||
var cat = getCatByID(catID);
|
||||
|
||||
var newTitle = jQuery("#uc_dialog_edit_category_title").val();
|
||||
var data = {
|
||||
catID: catID,
|
||||
title: newTitle
|
||||
};
|
||||
|
||||
if(g_objAjaxDataAdd && typeof(data) == "object"){
|
||||
jQuery.extend(data, g_objAjaxDataAdd);
|
||||
}
|
||||
|
||||
g_ucAdmin.dialogAjaxRequest("uc_dialog_edit_category", "update_category", data, function(response){
|
||||
|
||||
t.updateTitle(catID, newTitle);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* update category title
|
||||
*/
|
||||
this.updateTitle = function(catID, newTitle){
|
||||
|
||||
var objCat = getCatByID(catID);
|
||||
var numItems = objCat.data("numaddons");
|
||||
|
||||
var newTitleShow = newTitle;
|
||||
if(numItems && numItems != undefined && numItems > 0)
|
||||
newTitleShow += " ("+numItems+")";
|
||||
|
||||
objCat.html("<span>" + newTitleShow + "</span>");
|
||||
|
||||
objCat.data("title",newTitle);
|
||||
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* init edit category dialog
|
||||
*/
|
||||
function initEditCategoryDialog(){
|
||||
|
||||
var objEditDialog = jQuery("#uc_dialog_edit_category");
|
||||
|
||||
if(objEditDialog.length == 0)
|
||||
return(false);
|
||||
|
||||
var isCustom = objEditDialog.data("custom");
|
||||
|
||||
if(isCustom)
|
||||
return(false);
|
||||
|
||||
// set update title onenter function
|
||||
jQuery("#uc_dialog_edit_category_action").on("click",updateCategoryTitle);
|
||||
|
||||
jQuery("#uc_dialog_edit_category_title").doOnEnter(updateCategoryTitle);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function _______________DELETE_CATEGORY______________(){}
|
||||
|
||||
|
||||
/**
|
||||
* remove some category by id
|
||||
*/
|
||||
function deleteCategory(){
|
||||
|
||||
var dialogDelete = jQuery("#uc_dialog_delete_category");
|
||||
var catID = dialogDelete.data("catid");
|
||||
|
||||
var data = {};
|
||||
data.catID = catID;
|
||||
|
||||
var selectedCatID = t.getSelectedCatID();
|
||||
|
||||
//get if selected category will be removed
|
||||
var isSelectedRemoved = (catID == selectedCatID);
|
||||
|
||||
if(g_objAjaxDataAdd && typeof(data) == "object"){
|
||||
jQuery.extend(data, g_objAjaxDataAdd);
|
||||
}
|
||||
|
||||
g_ucAdmin.dialogAjaxRequest("uc_dialog_delete_category", "remove_category", data, function(response){
|
||||
|
||||
removeCategoryFromHtml(catID);
|
||||
|
||||
//update html cats select
|
||||
var htmlSelectCats = response.htmlSelectCats;
|
||||
jQuery("#select_item_category").html(htmlSelectCats);
|
||||
|
||||
//clear the items panel
|
||||
if(isSelectedRemoved == true){
|
||||
|
||||
//run event
|
||||
t.events.onRemoveSelectedCategory();
|
||||
|
||||
t.selectFirstCategory();
|
||||
}
|
||||
|
||||
//fire height change event
|
||||
t.events.onHeightChange();
|
||||
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* open the edit category dialog by category id
|
||||
*/
|
||||
function openDeleteCategoryDialog(catID){
|
||||
|
||||
if(catID == -1)
|
||||
return(false);
|
||||
|
||||
var cat = getCatByID(catID);
|
||||
|
||||
if(cat.length == 0){
|
||||
trace("category with id: " + catID + " don't exists");
|
||||
return(false);
|
||||
}
|
||||
|
||||
//set data
|
||||
var dialogDelete = jQuery("#uc_dialog_delete_category");
|
||||
dialogDelete.data("catid", catID);
|
||||
|
||||
var title = cat.data("title");
|
||||
|
||||
jQuery("#uc_dialog_delete_category_catname").html(title);
|
||||
|
||||
g_ucAdmin.openCommonDialog("#uc_dialog_delete_category");
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* init edit category dialog
|
||||
*/
|
||||
function initDeleteCategoryDialog(){
|
||||
|
||||
// set update title onenter function
|
||||
jQuery("#uc_dialog_delete_category_action").on("click",deleteCategory);
|
||||
|
||||
}
|
||||
|
||||
|
||||
function _______________EVENTS______________(){}
|
||||
|
||||
|
||||
/**
|
||||
* on category list item click
|
||||
*/
|
||||
function onCatListItemClick(event){
|
||||
|
||||
if(g_ucAdmin.isRightButtonPressed(event))
|
||||
return(true);
|
||||
|
||||
if(g_catClickReady == false)
|
||||
return(false);
|
||||
|
||||
if(jQuery(this).hasClass("selected-item"))
|
||||
return(false);
|
||||
|
||||
var catID = jQuery(this).data("id");
|
||||
t.selectCategory(catID);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* on double click
|
||||
*/
|
||||
function onCatListItemDblClick(event){
|
||||
|
||||
if(g_ucAdmin.isRightButtonPressed(event))
|
||||
return(true);
|
||||
|
||||
if(g_catClickReady == false)
|
||||
return(false);
|
||||
|
||||
var catID = jQuery(this).data("id");
|
||||
|
||||
t.runCategoryAction("edit_category",catID);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* on cat list item mousedown
|
||||
*/
|
||||
function onCatListItemMousedown(event){
|
||||
|
||||
if(g_ucAdmin.isRightButtonPressed(event))
|
||||
return(true);
|
||||
|
||||
g_catClickReady = true;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* on category context menu click
|
||||
*/
|
||||
function onCategoryContextMenu(event){
|
||||
|
||||
g_catFieldRightClickReady = false;
|
||||
|
||||
var objCat = jQuery(this);
|
||||
var catID = objCat.data("id");
|
||||
|
||||
if(catID == 0 || catID == "all")
|
||||
return(false);
|
||||
|
||||
var objMenu = jQuery("#rightmenu_cat");
|
||||
|
||||
objMenu.data("catid",catID);
|
||||
g_manager.showMenuOnMousePos(event, objMenu);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* on categories context menu
|
||||
*/
|
||||
function onCatsFieldContextMenu(event){
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
if(g_catFieldRightClickReady == false){
|
||||
g_catFieldRightClickReady = true;
|
||||
return(true);
|
||||
}
|
||||
|
||||
var objMenu = jQuery("#rightmenu_catfield");
|
||||
g_manager.showMenuOnMousePos(event, objMenu);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* on action button click
|
||||
*/
|
||||
function onActionByttonClick(){
|
||||
|
||||
var objButton = jQuery(this);
|
||||
|
||||
if(!g_ucAdmin.isButtonEnabled(objButton))
|
||||
return(false);
|
||||
|
||||
var action = objButton.data("action");
|
||||
|
||||
t.runCategoryAction(action);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* init events
|
||||
*/
|
||||
function initEvents(){
|
||||
|
||||
jQuery(".uc-cat-action-button").on("click",onActionByttonClick);
|
||||
|
||||
//list categories actions
|
||||
jQuery("#list_cats").on("mouseover", "li", function() {
|
||||
jQuery(this).addClass("item-hover");
|
||||
|
||||
});
|
||||
|
||||
jQuery("#list_cats").on("mouseout","li", function() {
|
||||
jQuery(this).removeClass("item-hover");
|
||||
});
|
||||
|
||||
jQuery("#list_cats").on("click", "li", onCatListItemClick);
|
||||
jQuery("#list_cats").on("dblclick", "li", onCatListItemDblClick);
|
||||
|
||||
jQuery("#list_cats").on("mousedown", "li", onCatListItemMousedown );
|
||||
|
||||
//init context menus
|
||||
jQuery("#list_cats").on("contextmenu", "li", onCategoryContextMenu);
|
||||
jQuery("#cats_section").on("contextmenu", onCatsFieldContextMenu);
|
||||
|
||||
}
|
||||
|
||||
this._______________EXTERNAL_GETTERS______________ = function(){}
|
||||
|
||||
|
||||
/**
|
||||
* get selected category ID
|
||||
*/
|
||||
this.getSelectedCatID = function(){
|
||||
var objCat = g_objListCats.find("li.selected-item");
|
||||
if(objCat.length == 0)
|
||||
return(-1);
|
||||
|
||||
var catID = objCat.data("id");
|
||||
|
||||
return(catID);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* get selected category data
|
||||
*/
|
||||
this.getSelectedCatData = function(){
|
||||
|
||||
var selectedCatID = t.getSelectedCatID();
|
||||
|
||||
if(selectedCatID == -1)
|
||||
return(null);
|
||||
|
||||
var data = getCatData(selectedCatID);
|
||||
|
||||
return(data);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* return if some category selected
|
||||
*/
|
||||
this.isSomeCatSelected = function(){
|
||||
|
||||
var selectedCatID = t.getSelectedCatID();
|
||||
|
||||
if(selectedCatID == -1)
|
||||
return(false);
|
||||
|
||||
return(true);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* get height of the categories list
|
||||
*/
|
||||
this.getCatsHeight = function(){
|
||||
|
||||
var catsWrapper = jQuery("#cats_section .cat_list_wrapper");
|
||||
var catHeight = catsWrapper.height();
|
||||
|
||||
if(catHeight > g_maxCatHeight)
|
||||
catHeight = g_maxCatHeight;
|
||||
|
||||
return(catHeight);
|
||||
};
|
||||
|
||||
/**
|
||||
* get arr categories
|
||||
*/
|
||||
function getArrCats(){
|
||||
var arrCats = jQuery("#list_cats li").get();
|
||||
return(arrCats);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* get num categories
|
||||
*/
|
||||
this.getNumCats = function(){
|
||||
var numCats = jQuery("#list_cats li").length;
|
||||
return(numCats);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* get mouseover category
|
||||
*/
|
||||
this.getMouseOverCat = function(){
|
||||
|
||||
var arrCats = getArrCats();
|
||||
|
||||
for(var index in arrCats){
|
||||
var objCat = arrCats[index];
|
||||
objCat = jQuery(objCat);
|
||||
|
||||
var isMouseOver = objCat.ismouseover();
|
||||
if(isMouseOver == true)
|
||||
return(objCat);
|
||||
}
|
||||
|
||||
return(null);
|
||||
};
|
||||
|
||||
|
||||
this._______________EXTERNAL_SETTERS______________ = function(){}
|
||||
|
||||
|
||||
/**
|
||||
* set object add data to every ajax request
|
||||
*/
|
||||
this.setObjAjaxAddData = function(objData){
|
||||
|
||||
g_objAjaxDataAdd = objData;
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* set cat section height
|
||||
*/
|
||||
this.setHeight = function(height){
|
||||
|
||||
jQuery("#cats_section").css("height", height+"px");
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* set html cats list
|
||||
*/
|
||||
this.setHtmlListCats = function(htmlCats){
|
||||
|
||||
jQuery("#list_cats").html(htmlCats);
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* select some category by id
|
||||
*/
|
||||
this.selectCategory = function(catID){
|
||||
|
||||
var fullCatID = "#category_"+catID;
|
||||
|
||||
var cat = jQuery(fullCatID);
|
||||
|
||||
if(cat.length == 0){
|
||||
//g_ucAdmin.showErrorMessage("category with id: "+catID+" not found");
|
||||
return(false);
|
||||
}
|
||||
|
||||
cat.removeClass("item-hover");
|
||||
|
||||
if(cat.hasClass("selected-item"))
|
||||
return(false);
|
||||
|
||||
|
||||
jQuery("#list_cats li").removeClass("selected-item");
|
||||
cat.addClass("selected-item");
|
||||
|
||||
/*
|
||||
if(catID == 0 || catID == "all")
|
||||
disableCatButtons();
|
||||
else
|
||||
enableCatButtons();
|
||||
*/
|
||||
|
||||
g_manager.onCatSelect(catID);
|
||||
|
||||
return(true);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* get context menu category ID
|
||||
*/
|
||||
this.getContextMenuCatID = function(){
|
||||
var catID = jQuery("#rightmenu_cat").data("catid");
|
||||
return(catID);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* destroy the categories
|
||||
*/
|
||||
this.destroy = function(){
|
||||
|
||||
//add category
|
||||
jQuery("#button_add_category").off("click");
|
||||
|
||||
//remove category:
|
||||
jQuery("#button_remove_category").off("click");
|
||||
|
||||
//edit category
|
||||
jQuery("#button_edit_category").off("click");
|
||||
|
||||
var objListItems = jQuery("#list_cats").find("li");
|
||||
objListItems.off("mouseover");
|
||||
objListItems.off("mouseout");
|
||||
objListItems.off("click");
|
||||
objListItems.off("dblclick");
|
||||
objListItems.off("mousedown");
|
||||
|
||||
//init context menus
|
||||
jQuery("#list_cats").off("contextmenu");
|
||||
jQuery("#cats_section").off("contextmenu");
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* init categories
|
||||
*/
|
||||
this.init = function(objManager){
|
||||
|
||||
initCats(objManager);
|
||||
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user