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_objItems = new UCManagerAdminItems(); if(!g_ucAdmin){ var g_ucAdmin = new UniteAdminUC(); } /** * on item button click */ this.runItemAction = function(action, data){ switch(action){ case "add_images": onAddImagesClick(); break; case "add_item": openAddEditItemDialog(); break; case "edit_item": 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; } } /** * 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(); } /** * on add images click */ function onAddImagesClick(){ g_ucAdmin.openAddImageDialog("Add Images",function(response){ jQuery.each(response, function(index, item){ var urlImage = item.url; urlImage = g_ucAdmin.urlToRelative(urlImage); addItemFromImage(urlImage); }); },true); } /** * 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); } } }); } /** * 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]); 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 += "