Severity: Warning
Message: mysqli::real_connect(): (HY000/2002): Cannot assign requested address
Filename: mysqli/mysqli_driver.php
Line Number: 201
Backtrace:
File: /www/wwwroot/dash.konsole.xyz/application/core/MY_Controller.php
Line: 343
Function: __construct
File: /www/wwwroot/dash.konsole.xyz/application/controllers/Api.php
Line: 12
Function: __construct
File: /www/wwwroot/dash.konsole.xyz/index.php
Line: 316
Function: require_once
无法使用提供的设置连接到数据库服务器。
Filename: core/MY_Controller.php
Line Number: 343
"use strict";
function UCManagerAdminItems(){
var t = this;
var g_manager, g_objManagerWrapper, g_objField, g_objWrapper;
var g_itemClickReady = false;
var g_itemSpaceX = 20;
var g_itemSpaceY = 20;
var g_itemsMaxHeight = 0;
var g_lastSelectedItemID = null;
this.events = {
onItemSelectionChange:function(){},
onHeightChange:function(itemsHeight){},
onSpecialItemClick:function(objItem, type){}
};
var g_objDrag = {
isDragMode: false,
isCopyMoveDialog: false,
isClicked: false,
isReorderEnabled: false,
isOverItem:false,
isExitFirstItem:false,
clickedItemID:null,
targetItemID:null,
targetItemType:null,
arrItems: [],
arrItemIDs: [],
arrInvalidTargetItemIDs: []
};
var g_objSelectBar = {
isEnabled: false,
startX: 0,
startY: 0,
mouseX: 0,
mouseY: 0
};
var g_temp = {
isInited: false,
isDisableUnselectAll: false,
disableUnselectTime: 0
};
function _______________INIT______________(){}
/**
* validate that the object is inited
*/
this.validateInited = function(){
if(g_temp.isInited == false)
throw new Error("The items is not inited");
}
/**
* write something to debug line
*/
function debugLine(html){
jQuery("#debug_line").show().html(html);
}
/**
* debug drag object
*/
function debugLineDrag(){
var str = "";
for(key in g_objDrag){
var value = g_objDrag[key];
str += key += " : " + value+" ";
}
debugLine(str);
trace(g_objDrag, true);
}
/**
* init items object
*/
function initItems(objManager){
g_manager = objManager;
g_objManagerWrapper = jQuery("#uc_managerw");
g_temp.isInited = true;
//init context menus
g_objWrapper = g_manager.getObjWrapper();
g_objField = jQuery("#items_list_wrapper");
//on item context menu
jQuery("#uc_list_items").on("contextmenu","li", onItemContextMenu);
//on wrapper context menu
g_objField.on("contextmenu", onFieldContextMenu);
//on click
jQuery("#uc_list_items").on("click", "li", onItemClick);
jQuery("#uc_list_items").on("mousedown", "li", function(event) {
if(g_ucAdmin.isRightButtonPressed(event))
return(true);
g_itemClickReady = true;
});
//background click event
jQuery("#items_list_wrapper").on("click",function(event){
if(g_ucAdmin.isRightButtonPressed(event))
return(true);
if(g_objSelectBar.isEnabled == true)
return(true);
t.unselectAllItems("items_list_wrapper");
});
jQuery("#uc_list_items").on( "mouseenter","li", function() {
jQuery(this).addClass("item-hover");
g_manager.triggerEvent(g_manager.events.ITEM_MOUSEOVER, jQuery(this));
});
//mouse out
jQuery("#uc_list_items").on( "mouseleave", "li",function() {
jQuery(this).removeClass("item-hover");
g_manager.triggerEvent(g_manager.events.ITEM_MOUSEOUT, jQuery(this));
});
//double click
jQuery("#uc_list_items").on( "dblclick", "li",function() {
g_manager.runItemAction("item_default_action");
});
//on items panel button click
jQuery("#manager_buttons .uc-button-item").on("click", onItemsButtonClick);
initItemsDragEvents();
initSelectBar();
}
function _______________GENERAL______________(){}
/**
* get type, item or category of some item
*/
function getItemCategoryType(item){
if(item == null || typeof item == "string")
return("unknown");
var parentID = item.parent().prop("id");
switch(parentID){
case "list_items":
return("item");
break;
case "list_cats":
return("category");
break;
default:
return("unknown");
break;
}
}
/**
* get items array
*/
function getArrItems(){
var arrItems = jQuery("#uc_list_items li").get();
return(arrItems);
}
/**
* get num items in items panel
*/
this.getNumItems = function(){
var numItems = jQuery("#uc_list_items li").length;
return(numItems);
}
/**
* get item by itemID
*/
this.getItemByID = function(itemID){
var objItem = jQuery("#uc_item_"+itemID);
return(objItem);
}
/**
*
* select items by shift mode
*/
function selectItemsShiftMode(itemID){
var arrSelectedItems = t.getSelectedItems();
var arrIDs = t.getArrItemIDs();
//select only one item
if(g_lastSelectedItemID == null || arrSelectedItems.length == 0){
selectItem(itemID);
}else{
//select row of items
var indexLast = arrIDs.indexOf(g_lastSelectedItemID);
var indexCurrent = arrIDs.indexOf(itemID);
if(indexLast == -1 || indexCurrent == -1 || indexLast == indexCurrent)
return(false);
var firstIndex = indexLast;
var secondIndex = indexCurrent;
if(firstIndex > secondIndex){
firstIndex = indexCurrent;
secondIndex = indexLast;
}
t.unselectAllItems("selectItemsShiftMode");
for(var index = firstIndex; index <= secondIndex; index++){
var itemID = arrIDs[index];
selectItem(itemID);
}
}
}
/**
*
* on item mouse up event handler - start the right click menus
*/
function onItemContextMenu(event){
var objItem = jQuery(this);
var itemID = objItem.data("id");
var isSelected = isItemSelected(itemID);
var itemType = getItemType(objItem);
var menuID = "#rightmenu_item";
if(itemType)
menuID += "_"+itemType;
if(isSelected == false){
t.unselectAllItems("onItemContextMenu");
selectItem(itemID);
t.checkSelectRelatedItems();
}
var numSelected = t.getNumItemsSelected();
if(numSelected > 1)
menuID = "#rightmenu_item_multiple";
if(itemType)
menuID += "_"+itemType;
event.preventDefault();
var objMenu = jQuery(menuID);
if(objMenu.length == 0)
return(false);
g_manager.showMenuOnMousePos(event, objMenu);
return(false);
}
/**
* on field context menu, open right click field menu if alowed.
*/
function onFieldContextMenu(event){
event.preventDefault();
if(g_manager.isItemsAreaEnabled() == false)
return(true);
var objMenu = jQuery("#rightmenu_field");
g_manager.showMenuOnMousePos(event, objMenu);
}
/**
* check if the item selected
*/
function isItemSelected(itemID){
var item = t.getItemByID(itemID);
if(item.length == 0)
return(false);
if(item.hasClass("item-selected"))
return(true);
else
return(false);
}
/**
* disable item buttons
*/
function disableItemButtons(){
var objButtons = jQuery("#manager_buttons a.uc-button-item");
g_ucAdmin.disableButton(objButtons);
//skip if no cat selected
if(g_manager.isItemsAreaEnabled() == false)
return(true);
var buttonAdd = objButtons.filter(".uc-button-add");
//enable add button
g_ucAdmin.enableButton(buttonAdd);
//enable select button
var numItems = t.getNumItems();
if(numItems > 0){
var buttonSelect = objButtons.filter(".uc-button-select");
g_ucAdmin.enableButton(buttonSelect);
}
}
/**
* enable all buttons except single if multiple selected
* for each items type has own panel, if types are mixed
*/
function enableItemButtons(numSelected, itemsType){
var buttonsPanelID = "#manager_buttons";
if(itemsType)
buttonsPanelID += "_"+itemsType;
var objButtonsPanel = jQuery(buttonsPanelID);
if(objButtonsPanel.length == 0){
disableItemButtons();
return(false);
}
if(!numSelected)
var numSelected = t.getNumItemsSelected();
g_ucAdmin.enableButton("#manager_buttons a.uc-button-item");
if(numSelected > 1){
g_ucAdmin.disableButton("#manager_buttons a.uc-single-item");
}
if(numSelected < 2)
g_ucAdmin.disableButton("#manager_buttons a.uc-multiple-items");
//treat active/not active related buttons
var numNotActive = t.getNumItemsSelectedNotActive();
if(numNotActive == 0){
g_ucAdmin.disableButton("#manager_buttons a.uc-notactive-item");
}else{
g_ucAdmin.disableButton("#manager_buttons a.uc-active-item");
}
}
/**
* replace item html, remember it's position
*/
function replaceItemHtml(objItem, newHtml){
var pos = objItem.position();
var itemID = objItem.prop("id");
objItem.replaceWith(newHtml);
jQuery("#"+itemID).css({"top":pos.top+"px","left":pos.left+"px"});
}
/**
* on items button click
*/
function onItemsButtonClick(){
var objButton = jQuery(this);
if(objButton.hasClass("button-disabled"))
return(false);
var action = objButton.data("action");
g_manager.runItemAction(action);
}
function ___________ITEMS_SELECTION________________(){}
/**
* get selected items
*/
this.getSelectedItems = function(isjQuery){
var objItems = jQuery("#uc_list_items li.item-selected");
if(isjQuery === true)
return(objItems);
var arrItems = objItems.get();
return(arrItems);
};
/**
* disable unselect all items for a second
*/
function disableUnselectAllItems(){
g_temp.isDisableUnselectAll = true;
g_temp.disableUnselectTime = jQuery.now();
}
/**
* select all items
*/
function selectAllItems(){
jQuery("#uc_list_items li").addClass("item-selected");
g_lastSelectedItemID = null;
t.checkSelectRelatedItems();
}
/**
* unselect some item
*/
function unselectItem(itemID){
var item = t.getItemByID(itemID);
if(item.length == 0)
return(false);
item.removeClass("item-selected");
}
/**
* select some item
*/
function selectItem(itemID){
var item = t.getItemByID(itemID);
if(item.length == 0)
return(false);
item.addClass("item-selected");
}
/**
*
* clear the items panel, and the buttons too.
*/
this.clearItemsPanel = function(){
jQuery("#items_loader").hide();
jQuery("#uc_list_items").html("").hide();
t.hideNoAddonsText();
t.checkSelectRelatedItems();
}
function ___________SELECT_BAR_FUNCTIONS________________(){} //sap for outline
/**
* get all the data for the select bar
*/
function getSelectBarData(){
var data = {};
if(g_objSelectBar.mouseX > g_objSelectBar.startX){
data.left = g_objSelectBar.startX;
data.right = g_objSelectBar.mouseX;
}else{
data.left = g_objSelectBar.mouseX;
data.right = g_objSelectBar.startX;
}
if(g_objSelectBar.mouseY > g_objSelectBar.startY){
data.top = g_objSelectBar.startY;
data.bottom = g_objSelectBar.mouseY;
}else{
data.top = g_objSelectBar.mouseY;
data.bottom = g_objSelectBar.startY;
}
data.width = Math.round(data.right - data.left);
data.height = Math.round(data.bottom - data.top);
//fix position by field position
var objField = jQuery("#items_list_wrapper");
var objOffset = objField.offset();
var fieldY = objOffset.top;
var fieldX = objOffset.left;
data.top = Math.round(data.top - fieldY);
data.left = Math.round(data.left - fieldX);
data.right = Math.round(data.right - fieldX);
data.bottom = Math.round(data.bottom - fieldY);
return(data);
}
/**
* draw select bar
*/
function drawSelectBar(){
var data = getSelectBarData();
//draw the bar
var css = {
"left": data.left+"px",
"top": data.top+"px",
"width": data.width+"px",
"height": data.height+"px"
};
jQuery("#select_bar").show().css(css);
}
/**
* hide the select bar
*/
function hideSelectBar(){
jQuery("#shadow_bar").hide();
jQuery("#select_bar").hide();
}
/**
* get overlap size of 2 objects
*/
function getOverlapSize(item){
var barData = getSelectBarData();
var d0 = item.position(),
x11 = d0.left,
y11 = d0.top,
x12 = d0.left + item.width(),
y12 = d0.top + item.height(),
x21 = barData.left,
y21 = barData.top,
x22 = barData.right,
y22 = barData.bottom,
x_overlap = Math.max(0, Math.min(x12,x22) - Math.max(x11,x21)),
y_overlap = Math.max(0, Math.min(y12,y22) - Math.max(y11,y21)),
size = x_overlap * y_overlap;
return(size);
}
/**
* select item by the select bar position
* mode - normal / shift / control
*/
function runSelectBarSelection(mode){
if(!mode)
var mode = "normal";
switch(mode){
case "shift":
break;
case "control":
break;
case "normal":
t.unselectAllItems("runSelectBarSelection");
break;
default:
trace("unknown selection mode");
return(false);
break;
}
var objBar = jQuery("#select_bar");
var arrItems = getArrItems();
for(var index in arrItems){
var objItem = jQuery(arrItems[index]);
var overlapSize = getOverlapSize(objItem);
if(overlapSize != 0){
var itemID = objItem.data("id");
switch(mode){
case "shift":
case "normal":
selectItem(itemID);
break;
case "control":
if(isItemSelected(itemID))
unselectItem(itemID);
else
selectItem(itemID);
break;
}
}
}
t.checkSelectRelatedItems();
}
/**
* on mouse move select bar event
*/
function onBodyMoseMoveSelectBar(event){
if(g_objSelectBar.isEnabled == true){
if(event.buttons == 0){
hideSelectBar();
g_objSelectBar.isEnabled = false;
}else{
g_objSelectBar.mouseX = event.pageX;
g_objSelectBar.mouseY = event.pageY;
drawSelectBar();
}
}
}
/**
* on mouse move select bar event
*/
function onBodyMoseUpSelectBar(event){
if(g_objSelectBar.isEnabled == true){
event.stopPropagation();
hideSelectBar();
g_objSelectBar.mouseX = event.pageX;
g_objSelectBar.mouseY = event.pageY;
var mode = "normal";
if(event.shiftKey)
mode = "shift";
else if(event.ctrlKey)
mode = "control";
runSelectBarSelection(mode);
g_objSelectBar.isEnabled = false;
disableUnselectAllItems();
}
}
/**
* init the events of the select bar
*/
function initSelectBar(){
//on wrapper mouse down
jQuery("#items_list_wrapper").mousedown(function(event){
if(jQuery(event.target).hasClass("items_list_wrapper") == false)
return(true);
if(g_ucAdmin.isRightButtonPressed(event))
return(true);
var itemOver = t.getMouseOverItem();
if(itemOver != "down")
return(true);
g_objSelectBar.isEnabled = true;
jQuery("#shadow_bar").show();
g_objSelectBar.startX = event.pageX;
g_objSelectBar.startY = event.pageY;
return(true);
});
//on body mousemove - draw the bar
jQuery("body").mousemove(onBodyMoseMoveSelectBar);
// on body mouse up - stop the bar and check selection
jQuery("body").mouseup(onBodyMoseUpSelectBar);
}
/**
* reorder items after dragging.
*/
function reorderItemsAfterDrag(){
var targetID = g_objDrag.targetItemID;
if(targetID == null)
return(false);
var arrIDs = t.getArrItemIDs();
var arrSelectedIDs = g_objDrag.arrItemIDs;
//create new array of item id's
var arrNew = [];
for(var index in arrIDs){
var itemID = arrIDs[index];
if(arrSelectedIDs.indexOf(itemID) != -1)
continue;
if(itemID == targetID){
arrNew = arrNew.concat(arrSelectedIDs);
}
arrNew.push(itemID);
}
//move down selected items
if(targetID == "down")
arrNew = arrNew.concat(arrSelectedIDs);
var objList = jQuery("#uc_list_items");
var objTempList = jQuery("<ul></ul>");
//create new list item
for(var index in arrNew){
var itemID = arrNew[index];
var item = t.getItemByID(itemID);
objTempList.append(item);
}
//objTempList
objTempList.children().each(function(){
objList.append(this);
});
t.updateItemPositions(true);
t.unselectAllItems("reorder");
return(true);
}
/**
* on body mouse down
*/
function onBodyMouseDown(event){
if(g_ucAdmin.isRightButtonPressed(event))
return(true);
}
/**
* on body mouse up event
* check items reordering
*/
function onBodyMouseUp(event){
if(g_ucAdmin.isRightButtonPressed(event))
return(true);
var hideMenus = true;
//debugLineDrag();
g_objDrag.isClicked = false;
if(g_objDrag.isDragMode == true){
//reorder or disable drag mode
if(g_objDrag.isReorderEnabled == true && g_objDrag.isExitFirstItem == true){
//in case of category
if(g_objDrag.targetItemType == "category"){
startCopyMoveDialogMode(event);
hideMenus = false;
}else{ //in case of item
var isReordered = reorderItemsAfterDrag();
if(isReordered == true)
g_manager.runItemAction("update_order");
}
}
}
if(g_objDrag.targetItemType != "category" || g_objDrag.isReorderEnabled == false)
t.resetDragData();
if(hideMenus == true){
g_manager.hideContextMenus();
if(g_objDrag.isCopyMoveDialog == true)
t.resetDragData();
}
}
/**
*
* on body mousemove
*/
function onBodyMouseMove(event){
//debugLineDrag();
if(g_objManagerWrapper.ismouseover() == false){
operateDragIndicator(null);
g_objDrag.isOverItem = false;
g_objDrag.targetItemID = null;
}
}
/**
* on item mouse down - initiate drag functionality
*/
function onItemMouseDown(event){
if(g_ucAdmin.isRightButtonPressed(event))
return(true);
var objItem = jQuery(this);
var itemID = objItem.data("id");
g_objDrag.arrItems = [];
g_objDrag.arrItemIDs = [];
var isSelected = isItemSelected(itemID);
g_objDrag.clickedItemID = itemID;
if(isSelected){
g_objDrag.arrItems = t.getSelectedItems();
g_objDrag.arrItemIDs = t.getSelectedItemIDs();
}else{
g_objDrag.arrItems.push(objItem);
g_objDrag.arrItemIDs.push(itemID);
}
g_objDrag.arrInvalidTargetItemIDs = getInvalidTargetItemIDs();
g_objDrag.isClicked = true;
}
/**
* on wrapper mouse move event
*/
function onGalleryMouseMove(event){
//set drag mode and exit first item vars
if(g_objDrag.isClicked == true && g_objDrag.isDragMode == false){
g_objDrag.isExitFirstItem = false;
g_objDrag.isDragMode = true;
}
if(g_objDrag.isDragMode == true){
var objDraggingTargetItem = g_manager.getMouseOverItem();
var itemType = getItemCategoryType(objDraggingTargetItem);
g_objDrag.targetItemType = itemType;
//if the mouse over item, check if it's valid for reordering
if(objDraggingTargetItem != null){
var targetItemID;
if(objDraggingTargetItem == "down")
targetItemID = "down";
else
targetItemID = objDraggingTargetItem.data("id");
if(g_objDrag.isExitFirstItem == false){
if(g_objDrag.clickedItemID != targetItemID)
g_objDrag.isExitFirstItem = true;
}
g_objDrag.isOverItem = true;
var isValid = isDragTargetItemValid(targetItemID, itemType);
g_objDrag.isReorderEnabled = isValid;
if(isValid)
g_objDrag.targetItemID = targetItemID;
else
g_objDrag.targetItemID = null;
}else{ //if mouse not over item - reorder not enabled
g_objDrag.isReorderEnabled = false;
g_objDrag.isOverItem = false;
g_objDrag.isExitFirstItem = true;
g_objDrag.targetItemID = null;
}
operateDragIndicator(objDraggingTargetItem, itemType);
}
operateDragIcons(event);
}
/**
* init items drag events
*/
function initItemsDragEvents(){
// on body mousemove - operate icon hide
jQuery("body").mousemove(onBodyMouseMove);
//on list wrapper mousemove - operate dragging targetcheck
g_objManagerWrapper.mousemove(onGalleryMouseMove);
//on body mouseup
jQuery("body").mouseup(onBodyMouseUp);
jQuery("body").mousedown(onBodyMouseDown);
//on item mousedown
jQuery("#uc_list_items").on("mousedown", "li",onItemMouseDown);
}
/**
* on item click event
*/
function onItemClick(event){
if(g_ucAdmin.isRightButtonPressed(event))
return(true);
if(g_itemClickReady == false)
return(true);
event.stopPropagation();
var objItem = jQuery(this);
var itemType = getItemType(objItem);
if(itemType){
var processed = t.events.onSpecialItemClick(objItem, itemType);
if(processed === true)
return(false);
}
var itemID = objItem.data("id");
var isMultiple = event.ctrlKey;
if(event.shiftKey == true)
selectItemsShiftMode(itemID);
else
if(event.ctrlKey && isItemSelected(itemID) == true)
unselectItem(itemID);
else{
if(isMultiple == false) //remove ctrl mode
t.unselectAllItems("onItemClick");
selectItem(itemID);
g_lastSelectedItemID = itemID;
}
t.checkSelectRelatedItems();
}
function ___________ITEMS_DRAGGING________________(){} //sap for outline
/**
* hide drag icons
*/
function hideVisualDragData(){
//hide icons and target indicator
var objIndicator = jQuery("#drag_indicator");
objIndicator.hide();
g_objManagerWrapper.css("cursor","default");
}
/**
* show the drag icon, set to mouse position.
*/
function operateDragIcons(event){
if(g_objDrag.isExitFirstItem == false)
return(false);
if(g_objDrag.isDragMode == false){
g_objManagerWrapper.css("cursor","default");
//objIcon.hide();
return(false);
}
//show not alowed icon
if(g_objDrag.isOverItem == true && g_objDrag.isReorderEnabled == false){
g_objManagerWrapper.css("cursor","no-drop");
}else{ //show drag icon
var cursorType = "move";
if(g_objDrag.targetItemType == "category")
cursorType = "copy";
g_objManagerWrapper.css("cursor",cursorType);
}
}
/**
*
* indicate drag indicator by the item that the mouse is over it
*/
function operateDragIndicator(objItem, itemType){
var objIndicator = jQuery("#drag_indicator");
if(objItem == null || objItem == "down" || g_objDrag.isDragMode == false || g_objDrag.isReorderEnabled == false || itemType == "category"){
objIndicator.html("");
objIndicator.hide();
return(false);
}
//set gap from item start
var gapX = -70;
var gapY = 10;
//var id = objItem.data("id");
var pos = objItem.position();
//var itemWidth = objItem.width();
var posX = Math.round(pos.left + gapX);
var posY = pos.top + gapY;
//set indicatory text
if(objIndicator.html() == ""){
var arrDraggingItems = g_objDrag.arrItems;
var numItems = arrDraggingItems.length;
if(numItems == 1){
var objDraggingItem = jQuery(arrDraggingItems[0]);
var html = objDraggingItem.data("title");
objIndicator.html(html);
}else{
var html = numItems + " items";
objIndicator.html(html);
}
}
//set indicator position
objIndicator.show();
objIndicator.css({"top":posY,"left":posX});
//debugLine(id);
}
/**
* check if target item valid for reorder
* item type can be category / item
*/
function isDragTargetItemValid(targetItemID, itemType){
if(g_objDrag.isDragMode == false)
return(false);
//if it's category, drag allowed to non selected only
if(itemType == "category"){
var objCats = g_manager.getObjCats();
if(objCats.isCatSelected(targetItemID))
return(false);
else
return(true);
}
if(g_objDrag.arrInvalidTargetItemIDs.indexOf(targetItemID) == -1)
return(true);
return(false);
}
/**
* start copy / move dialog mode, when dragging to some category
*/
function startCopyMoveDialogMode(event){
g_objDrag.isDragMode = false;
g_objDrag.isCopyMoveDialog = true;
var objMenu = jQuery("#menu_copymove");
g_manager.showMenuOnMousePos(event, objMenu);
}
/**
* get invalid for target reorder put item id's
*/
function getInvalidTargetItemIDs(){
var arrAll = t.getArrItemIDs();
var arrSelected = g_objDrag.arrItemIDs;
var arrInvalid = [];
for(var index in arrAll){
var itemID = arrAll[index];
//check if the item is selected
if(arrSelected.indexOf(itemID) != -1){
arrInvalid.push(itemID);
continue;
}
//check if previous item is selected
if(index == 0)
continue;
var prevItemID = arrAll[index-1];
if(arrSelected.indexOf(prevItemID) != -1)
arrInvalid.push(itemID);
}
var lastItem = arrAll[arrAll.length-1];
//check if can move down
if( arrSelected.length == 1 && arrSelected[0] == lastItem )
arrInvalid.push("down");
return(arrInvalid);
}
this.___________EXTERNAL_GETTERS_______ = function(){}
/**
* update size class
* called by the parent. make it call internally later
*/
this.updateWrapperSizeClass = function(){
var objListWrapper = g_objWrapper.find(".items_list_wrapper");
var width = objListWrapper.width();
if(width < 830)
g_objWrapper.addClass("uc-items-size-small");
else
g_objWrapper.removeClass("uc-items-size-small");
}
/**
* get items height
*/
this.getItemsMaxHeight = function(){
return(g_itemsMaxHeight);
}
/**
* get if some item mouseovered
* if over field, return string - "down"
*/
this.getMouseOverItem = function(){
//check mouseover items
var arrItems = jQuery("#uc_list_items li").get();
for(var index in arrItems){
var objItem = arrItems[index];
objItem = jQuery(objItem);
var isMouseOver = objItem.ismouseover();
if(isMouseOver == true)
return(objItem);
}
//check if down enabled:
var isOverField = jQuery("#items_list_wrapper").ismouseover();
if(isOverField == true)
return("down");
return(null);
}
/**
* get drag object
*/
this.getObjDrag = function(){
return(g_objDrag);
}
/**
* get selected item id's
*/
this.getSelectedItemIDs = function(){
var arrIDs = t.getArrItemIDs(true);
return(arrIDs);
}
/**
* get array of all item id's
*/
this.getArrItemIDs = function(selectedOnly, numericOnly){
if(!selectedOnly)
var selectedOnly = false;
var selector = "#uc_list_items li";
if(selectedOnly == true)
selector = "#uc_list_items li.item-selected";
var arrIDs = [];
jQuery(selector).each(function(){
var itemID = jQuery(this).data("id");
if(numericOnly == true && jQuery.isNumeric(itemID) == false)
return(true);
arrIDs.push(itemID);
});
return(arrIDs);
}
/**
* get items object
*/
this.getObjItems = function(){
var objItems = jQuery("#uc_list_items li");
return(objItems);
};
/**
* get item thumb image
*/
this.getItemThumbImageUrl = function(objItem){
if(!objItem)
return(null);
var divThumb = objItem.find(".uc-item-thumb");
if(divThumb.length == 0)
return(false);
var bgImage = divThumb.css("background-image");
if(!bgImage)
return(null);
bgImage = bgImage.replace("url('","");
bgImage = bgImage.replace("')","");
bgImage = bgImage.replace("url(\"","");
bgImage = bgImage.replace("\")","");
return(bgImage);
};
/**
* get if multiple items or single items selected
*/
this.getNumItemsSelected = function(){
var numSelected = jQuery("#uc_list_items li.item-selected").length;
return(numSelected);
};
/**
* get item type, like web item
*/
function getItemType(objItem){
var type = objItem.data("itemtype");
if(!type)
type = "";
return(type);
}
/**
* get selected items type, if several types found, give first
* if no special types found, returrn 0
*/
this.getSelectedItemsType = function(){
var objSelected = jQuery("#uc_list_items li.item-selected");
if(objSelected.length == 0)
return(null);
for(var i=0;i<objSelected.length;i++){
var item = objSelected[i];
var objItem = jQuery(item);
var type = getItemType(objItem);
if(type)
return(type);
}
return(null);
};
/**
* get number of items that are selected and active
*/
this.getNumItemsSelectedNotActive = function(){
var objSelected = jQuery("#uc_list_items li.item-selected");
if(objSelected.length == 0)
return(0);
var objNotActive = objSelected.filter(".uc-item-notactive");
var numNotActive = objNotActive.length;
return(numNotActive);
}
/**
* get selected item ID
*/
this.getSelectedItemID = function(){
var objItem = t.getSelectedItem();
if(objItem === null)
return(null);
var itemID = objItem.data("id");
return(itemID);
}
/**
* get selected item. if not found, or multiple selected return null
*/
this.getSelectedItem = function(){
//get selected item
var arrItems = t.getSelectedItems();
if(arrItems.length != 1)
return(null);
var objItem = jQuery(arrItems[0]);
return(objItem);
}
/**
* get item absolute position according the manager wrapper
*/
this.getItemWrapperPos = function(objItem){
var offset = objItem.offset();
var offsetWrapper = g_objWrapper.offset();
offset.top -= offsetWrapper.top;
offset.left -= offsetWrapper.left;
return(offset);
}
/**
* get item ID with prefix from number ID
*/
this.getItemIDFromID = function(id){
var itemID = "uc_item_" + id;
return(itemID);
};
/**
* get random item iD
*/
function getRandomID(){
var id = g_ucAdmin.getRandomNumber();
var itemID = t.getItemIDFromID(id);
var output = {id: id, itemID: itemID};
return(output);
}
/**
* get new item ID
*/
this.getObjNewID = function(){
var objID = getRandomID();
while(jQuery("#"+objID.itemID).length)
objID = getRandomID();
return(objID);
}
/**
* get next item, if absent - return null
*/
this.getNextItem = function(objItem){
if(!objItem)
return(false);
var objNextItem = objItem.next();
if(objNextItem.length == 0)
return(null);
return(objNextItem);
}
/**
* get previous item
*/
this.getPrevItem = function(objItem){
if(!objItem)
return(false);
var objPrevItem = objItem.prev();
if(objPrevItem.length == 0)
return(null);
return(objPrevItem);
}
this.___________EXTERNAL_SETTERS_______ = function(){}
/**
* make update after html list of items changes
*/
this.updateAfterHtmlListChange = function(){
t.validateInited();
t.updateItemPositions();
t.checkSelectRelatedItems();
};
/**
* append item to list
*/
this.appendItem = function(htmlItem, noUpdate){
jQuery("#uc_list_items").show();
t.hideNoAddonsText();
var objItem = jQuery(htmlItem);
jQuery("#uc_list_items").append(objItem);
if(noUpdate !== true)
t.updateAfterHtmlListChange();
return(objItem);
};
/**
* replace some item html
*/
this.replaceItemHtml = function(objItem, htmlItem){
var itemID = objItem.data("id");
var isSelected = isItemSelected(itemID);
objItem.replaceWith(htmlItem);
if(isSelected == true)
selectItem(itemID);
t.updateAfterHtmlListChange();
var objNewItem = t.getItemByID(itemID)
return(objNewItem);
};
/**
* remove addons by ids
*/
function removeItemsByIDs(arrIDs){
jQuery.each(arrIDs, function(index, id){
var objItem = t.getItemByID(id);
if(objItem)
objItem.remove();
});
t.updatePanelView(true);
}
/**
* remove selected items
*/
this.removeSelectedItems = function(){
var arrIDs = t.getSelectedItemIDs();
removeItemsByIDs(arrIDs);
};
/**
* duplicate item by ID
*/
function duplicateItem(id, insertToEnd, noUpdate){
var objItem = t.getItemByID(id);
var objCloned = objItem.clone(true);
var objNewID = t.getObjNewID();
objCloned.prop("id", objNewID.itemID);
objCloned.data("id", objNewID.id);
if(insertToEnd === true)
jQuery("#uc_list_items").append(objCloned);
else
objCloned.insertAfter(objItem);
if(noUpdate !== true)
t.updatePanelView(true);
}
/**
* duplciate selected items
*/
this.duplicateSelectedItems = function(){
var arrIDs = t.getSelectedItemIDs();
var numItems = t.getNumItemsSelected();
//t.unselectAllItems("duplicateSelectedItems");
var insertToEnd = false;
if(numItems > 1)
insertToEnd = true;
jQuery.each(arrIDs, function(index, id){
duplicateItem(id, insertToEnd, true);
});
t.updatePanelView(true);
}
/**
* clear all the drag data
*/
this.resetDragData = function(){
g_objDrag.isDragMode = false;
g_objDrag.isCopyMoveDialog = false;
g_objDrag.arrItemIDs = [];
g_objDrag.arrItems = [];
g_objDrag.clickedItemID = null;
g_objDrag.isClicked = false;
g_objDrag.isExitFirstItem = false;
g_objDrag.isOverItem = false;
g_objDrag.isReorderEnabled = false;
g_objDrag.targetItemID = null;
g_objDrag.arrInvalidTargetItemIDs = [];
hideVisualDragData();
}
/**
* select or unselect all items
*/
this.selectUnselectAllItems = function(){
var numSelected = t.getNumItemsSelected();
var arrItems = getArrItems();
if(numSelected == arrItems.length)
t.unselectAllItems("button_select_all_items");
else
selectAllItems();
}
/**
* select single item, unselect others
*/
this.selectSingleItem = function(itemID){
if(typeof itemID == "object")
var itemID = itemID.data("id");
var selectedItemID = t.getSelectedItemID();
if(selectedItemID == itemID)
return(true);
t.unselectAllItems("selectSingleItem");
selectItem(itemID);
t.checkSelectRelatedItems();
}
/**
* set items area height
*/
this.setHeight = function(height){
jQuery("#items_list_wrapper").css("height",height+"px");
}
/**
* update positions of the items
*/
this.updateItemPositions = function(isFancy){
if(!isFancy)
var isFancy = false;
var marginX = g_itemSpaceX;
var marginY = g_itemSpaceX;
var objField = jQuery("#items_list_wrapper");
var fieldWidth = objField.width();
//wait till the max width will be more then 0
if(fieldWidth == 0){
setTimeout(t.updateItemPositions, 500);
return(true);
}
var startPosx = marginX;
var startPosy = marginY;
var maxHeight = 0;
jQuery("#uc_list_items li").each(function(){
var objItem = jQuery(this);
var itemWidth = objItem.width();
var itemHeight = objItem.height();
var endPosX = startPosx + itemWidth;
if(endPosX > (fieldWidth - marginX)){
startPosx = marginX;
startPosy += itemHeight + g_itemSpaceY;
}
if(isFancy == true){
objItem.animate({"left":startPosx, "top":startPosy+"px"},300,"swing");
}
else
objItem.css({"left":startPosx, "top":startPosy+"px"});
startPosx += itemWidth + g_itemSpaceX;
maxHeight = startPosy + itemHeight + marginY;
});
g_itemsMaxHeight = maxHeight;
t.events.onHeightChange(maxHeight);
}
/**
* set list items html
*/
this.setHtmlListItems = function(htmlItems){
jQuery("#items_loader").hide();
jQuery("#uc_list_items").html(htmlItems).show();
if(jQuery("#uc_list_items li").length == 0){
jQuery("#uc_list_items").hide();
jQuery("#no_items_text").show();
}else{
t.hideNoAddonsText();
}
t.updateItemPositions();
}
/**
* remove all items
*/
this.removeAllItems = function(noUpdate){
jQuery("#uc_list_items").html("").hide();
jQuery("#no_items_text").show();
if(noUpdate !== true)
t.checkSelectRelatedItems();
};
/**
* check all select related items
*/
this.checkSelectRelatedItems = function(){
t.validateInited();
var numSelected = t.getNumItemsSelected();
var arrItems = getArrItems();
var itemsType = t.getSelectedItemsType();
var buttonSelectAll = jQuery("#button_select_all_items");
//operate top buttons
if(numSelected == 0){
disableItemButtons();
}else{
enableItemButtons(numSelected, itemsType);
}
//add global classes
if(numSelected == 1)
g_objWrapper.addClass("uc-single-item-selected");
else
g_objWrapper.removeClass("uc-single-item-selected");
if(numSelected == 0)
g_objWrapper.addClass("uc-no-item-selected");
else
g_objWrapper.removeClass("uc-no-item-selected");
if(numSelected > 1)
g_objWrapper.addClass("uc-multiple-item-selected");
else
g_objWrapper.removeClass("uc-multiple-item-selected");
//check the select all button
var textSelect = buttonSelectAll.data("textselect");
var textUnselect = buttonSelectAll.data("textunselect");
if(numSelected > 0 && numSelected == arrItems.length){
buttonSelectAll.html(textUnselect);
}else{
buttonSelectAll.html(textSelect);
}
//update bottom operations
t.events.onItemSelectionChange();
};
/**
* unselect all items
*/
this.unselectAllItems = function(fromWhere){
//don't do the unselect operation if command given
if(g_temp.isDisableUnselectAll == true){
var currentTime = jQuery.now();
var diff = currentTime - g_temp.disableUnselectTime;
g_temp.isDisableUnselectAll = false;
if(diff < 100)
return(true);
}
jQuery("#uc_list_items li").removeClass("item-selected").removeClass("item-hover");
t.checkSelectRelatedItems();
}
/**
* activate selected items
*/
this.acivateSelectedItems = function(isActivate, isUnselect){
var objItems = t.getSelectedItems();
objItems = jQuery(objItems);
if(isActivate == true){
objItems.removeClass("uc-item-notactive");
}else{
objItems.addClass("uc-item-notactive");
}
if(isUnselect === true)
t.unselectAllItems("acivateSelectedItems");
}
/**
* update panel view - enable all related items
*/
this.updatePanelView = function(isFancy){
var numItems = t.getNumItems();
if(numItems == 0){
jQuery("#no_items_text").show();
jQuery("#uc_list_items").hide();
}else{
t.updateItemPositions(isFancy);
jQuery("#uc_list_items").show();
t.hideNoAddonsText();
}
t.checkSelectRelatedItems();
}
/**
* hide no addons text
*/
this.hideNoAddonsText = function(){
jQuery("#no_items_text").hide();
g_manager.triggerEvent(g_manager.events.ITEM_HIDE_EMPTY_TEXT);
}
/**
* set new spaces between items
*/
this.setSpacesBetween = function(spaceX,spaceY){
g_itemSpaceX = spaceX;
g_itemSpaceY = spaceY;
};
/**
* update item screenshot
*/
this.updateItemScreenshot = function(itemID, urlScreenshot){
if(!itemID)
return(false);
var objItem = t.getItemByID(itemID);
if(!objItem)
return(false);
var objThumb = objItem.find(".uc-item-thumb");
if(objThumb.length == 0)
return(false);
objThumb.css("background-image","url('" + urlScreenshot + "')");
};
/**
* get list wrapper object
*/
this.getObjListWrapper = function(){
var objListWrapper = jQuery("#uc_list_items");
return(objListWrapper);
}
/**
* destroy items
*/
this.destroy = function(){
t.validateInited();
//on item context menu
var $objListItems = jQuery("#uc_list_items li");
$objListItems.off("contextmenu");
$objListItems.off("click");
$objListItems.off("mousedown");
$objListItems.off("mouseover");
$objListItems.off("mouseout");
$objListItems.off("dblclick");
jQuery("#manager_buttons .uc-button-item").off("click");
jQuery("#items_list_wrapper").off("contextmenu");
jQuery("#items_list_wrapper").off("click");
//off drag events
jQuery("body").off("mousemove", onGalleryMouseMove);
g_objManagerWrapper.off("mousemove");
jQuery("body").off("mouseup",onBodyMouseUp);
jQuery("body").off("mousedown",onBodyMouseDown);
//off status line events
jQuery("#items_list_wrapper").off("mousedown")
jQuery("body").off("mousemove",onBodyMoseMoveSelectBar);
jQuery("body").off("mouseup",onBodyMoseUpSelectBar);
};
/**
* init the items
*/
this.initItems = function(objManager){
initItems(objManager);
};
}