1721 lines
36 KiB
JavaScript
1721 lines
36 KiB
JavaScript
"use strict";
|
|
|
|
function UCAssetsManager(){
|
|
|
|
var g_objWrapper, g_activePath, g_startPath, g_pathKey, g_objFileList;
|
|
var g_objPanel, g_codeMirror, g_objBrowserMove, g_objErrorFilelist;
|
|
|
|
var g_options = {
|
|
single_item_select:false,
|
|
custom_startPath:null,
|
|
addon_id:null
|
|
};
|
|
|
|
if(!g_ucAdmin){
|
|
var g_ucAdmin = new UniteAdminUC();
|
|
}
|
|
|
|
var t = this;
|
|
|
|
//internal events
|
|
var events = {
|
|
CHANGE_FILELIST: "change_filelist",
|
|
SELECT_ITEM: "select_item",
|
|
UPDATE_FILES: "update_files",
|
|
SELECT_OPERATION: "select_click" //trigger only when clicked on checkbox or on item
|
|
};
|
|
|
|
var g_temp = {
|
|
needRefreshAssets: false,
|
|
isBrowser:false,
|
|
funcOnSelectOperation:null,
|
|
funcOnAjaxLoadPath:null,
|
|
funcOnUpdateFiles:null
|
|
};
|
|
|
|
|
|
function ____________GETTERS______________(){};
|
|
|
|
|
|
/**
|
|
* get data from item
|
|
*/
|
|
function getItemData(objItem){
|
|
var data = {};
|
|
|
|
data["type"] = objItem.data("type");
|
|
data["file"] = objItem.data("file");
|
|
data["url"] = objItem.data("url");
|
|
data["full_url"] = g_ucAdmin.urlToFull(data["url"]);
|
|
data["filepath"] = g_activePath+"/"+data["file"];
|
|
|
|
return(data);
|
|
}
|
|
|
|
|
|
/**
|
|
* get items array from objects
|
|
*/
|
|
function getArrItemsFromObjects(objItems){
|
|
|
|
var arrItems = [];
|
|
|
|
jQuery.each(objItems,function(index, item){
|
|
var objItem = jQuery(item);
|
|
var data = getItemData(objItem);
|
|
data.objItem = objItem;
|
|
|
|
arrItems.push(data);
|
|
});
|
|
|
|
return(arrItems);
|
|
}
|
|
|
|
|
|
/**
|
|
* get checkboxes object
|
|
*/
|
|
function getArrItems(){
|
|
var objItems = getObjItems();
|
|
var arrItems = getArrItemsFromObjects(objItems);
|
|
|
|
return(arrItems);
|
|
}
|
|
|
|
/**
|
|
* get items array by filename
|
|
*/
|
|
function getItemByFilename(filename){
|
|
|
|
var arrItems = getArrItems();
|
|
|
|
var arrItemsNew = arrItems.filter(function(item){
|
|
|
|
if(item.file == filename)
|
|
return(true);
|
|
|
|
return(false);
|
|
});
|
|
|
|
if(arrItemsNew.length == 0)
|
|
return(null);
|
|
|
|
var arrItem = arrItemsNew[0];
|
|
|
|
return(arrItem);
|
|
}
|
|
|
|
|
|
/**
|
|
* get items objects
|
|
*/
|
|
function getObjItems(type){
|
|
var selector = ".uc-filelist-item";
|
|
if(type)
|
|
selector += ".uc-type-"+type;
|
|
|
|
var objItems = g_objWrapper.find(selector);
|
|
|
|
return(objItems);
|
|
}
|
|
|
|
/**
|
|
* get child deletories object - without the ..
|
|
*/
|
|
function getObjChildDirs(){
|
|
var objDirs = getObjItems("dir");
|
|
objDirs = objDirs.not(".uc-dir-back");
|
|
return(objDirs);
|
|
}
|
|
|
|
|
|
/**
|
|
* check if some item selected
|
|
*/
|
|
function isItemSelected(objItem){
|
|
if(objItem.hasClass("uc-filelist-item-selected"))
|
|
return(true);
|
|
|
|
return(false);
|
|
}
|
|
|
|
|
|
/**
|
|
* get selected items objects
|
|
*/
|
|
function getObjSelectedItems(){
|
|
var objItems = g_objWrapper.find(".uc-filelist-item-selected");
|
|
return(objItems);
|
|
}
|
|
|
|
|
|
/**
|
|
* get unselected items objects
|
|
*/
|
|
function getObjUnselectedItems(){
|
|
var objItems = g_objWrapper.find(".uc-filelist-item").not(".uc-filelist-item-selected");
|
|
return(objItems);
|
|
}
|
|
|
|
|
|
/**
|
|
* get all selected items
|
|
*/
|
|
function getArrSelectedItems(){
|
|
var objItems = getObjSelectedItems();
|
|
var arrItems = getArrItemsFromObjects(objItems);
|
|
|
|
return(arrItems);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* get single selected item, if the item is not single throw error
|
|
*/
|
|
function getSelectedSingleItem(){
|
|
var arrItems = getArrSelectedItems();
|
|
if(arrItems.length != 1)
|
|
throw new Error("Wrong number of selected item. Should be 1");
|
|
|
|
var item = arrItems[0];
|
|
return(item);
|
|
}
|
|
|
|
|
|
/**
|
|
* get assets items array
|
|
*/
|
|
function getArrSelectedFiles(){
|
|
|
|
var arrFiles = [];
|
|
var arrItems = getArrSelectedItems();
|
|
|
|
jQuery.each(arrItems, function(index, item){
|
|
arrFiles.push(item.file);
|
|
});
|
|
|
|
return(arrFiles);
|
|
}
|
|
|
|
|
|
/**
|
|
* get num items
|
|
*/
|
|
function getNumItems(type){
|
|
var objItems = getObjItems(type);
|
|
var numItems = objItems.length;
|
|
return(numItems);
|
|
}
|
|
|
|
|
|
/**
|
|
* get num selected items
|
|
*/
|
|
function getNumSelectedItems(){
|
|
var objItems = g_objWrapper.find(".uc-filelist-item-selected");
|
|
var numItems = objItems.length;
|
|
return(numItems);
|
|
}
|
|
|
|
|
|
/**
|
|
* get parent folder
|
|
*/
|
|
function getParentFolder(path){
|
|
|
|
if(path.length == 0)
|
|
return(path);
|
|
|
|
var searchPos = path.length-2;
|
|
|
|
var lastSap = path.lastIndexOf("/", searchPos);
|
|
|
|
if(lastSap == -1)
|
|
lastSap = path.lastIndexOf("\\", searchPos);
|
|
|
|
if(lastSap == -1)
|
|
return(path);
|
|
|
|
path = path.substring(0, lastSap);
|
|
return(path);
|
|
}
|
|
|
|
|
|
/**
|
|
* get path by file. concat file to active path
|
|
*/
|
|
function getPathByFile(file){
|
|
|
|
var path = g_activePath;
|
|
|
|
if(file == ".."){ //get parent path
|
|
path = getParentFolder(path);
|
|
}else{
|
|
var isWinSlash = (path.indexOf("\\") !== -1);
|
|
if(isWinSlash == true)
|
|
path = path + "\\" + file;
|
|
else
|
|
path = path + "/" + file;
|
|
}
|
|
|
|
path = path.replace("//","/");
|
|
path = path.replace("\\\\","\\");
|
|
|
|
return(path);
|
|
}
|
|
|
|
|
|
|
|
function ____________OPERATIONS______________(){};
|
|
|
|
|
|
/**
|
|
* update filepath to the the relevant div
|
|
*/
|
|
function updateActivePath(path){
|
|
g_activePath = path;
|
|
g_objWrapper.find(".uc-assets-activepath .uc-pathname").text(".."+path);
|
|
}
|
|
|
|
|
|
/**
|
|
* check some item
|
|
*/
|
|
function selectItem(objItem, isCheck){
|
|
|
|
//skip unselectable item
|
|
if(objItem.hasClass("uc-filelist-selectable") == false)
|
|
return(true);
|
|
|
|
var objCheckbox = objItem.find(".uc-filelist-checkbox");
|
|
|
|
if(isCheck == true)
|
|
objItem.addClass("uc-filelist-item-selected");
|
|
else
|
|
objItem.removeClass("uc-filelist-item-selected");
|
|
|
|
if(objCheckbox.length != 0){
|
|
objCheckbox.prop('checked', isCheck);
|
|
}
|
|
|
|
triggerEvent(events.SELECT_ITEM, [objItem, isCheck]);
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* select single item
|
|
*/
|
|
function selectSingleItem(objItem){
|
|
|
|
if(objItem.hasClass("uc-filelist-selectable") == false)
|
|
return(true);
|
|
|
|
unselectAllItems(objItem);
|
|
selectItem(objItem, true);
|
|
}
|
|
|
|
|
|
/**
|
|
* toggle item selection
|
|
*/
|
|
function toggleItemSelection(objItem){
|
|
|
|
var isSelected = isItemSelected(objItem);
|
|
|
|
if(isSelected == false)
|
|
selectItem(objItem, true);
|
|
else
|
|
selectItem(objItem, false);
|
|
}
|
|
|
|
|
|
/**
|
|
* select all items
|
|
*/
|
|
function selectAllItems(){
|
|
|
|
var objItems = getObjItems();
|
|
objItems = objItems.filter(".uc-filelist-selectable");
|
|
|
|
jQuery(objItems).each(function(index, item){
|
|
var objItem = jQuery(item);
|
|
selectItem(objItem, true);
|
|
});
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* unselect all items
|
|
*/
|
|
function unselectAllItems(objExcept){
|
|
|
|
var objItems = getObjSelectedItems();
|
|
|
|
if(objExcept)
|
|
objItems = objItems.not(objExcept);
|
|
|
|
jQuery(objItems).each(function(index, item){
|
|
var objItem = jQuery(item);
|
|
selectItem(objItem, false);
|
|
});
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* on delete items click, delete selected items
|
|
*/
|
|
function deleteSelectedFiles(){
|
|
|
|
var arrFiles = getArrSelectedFiles();
|
|
|
|
if(arrFiles.length == 0){
|
|
alert("No Files Chosen");
|
|
return(false);
|
|
}
|
|
|
|
var numFiles = arrFiles.length;
|
|
|
|
var message = "Do you sure you want to delete "+ numFiles+ " files?";
|
|
if(confirm(message) == false)
|
|
return(false);
|
|
|
|
//mark selected files with "deleting class"
|
|
var selectedItems = g_objFileList.find(".uc-filelist-item-selected");
|
|
|
|
selectedItems.addClass("uc-filelist-item-deleting");
|
|
selectedItems.removeClass("uc-filelist-item-selected");
|
|
|
|
g_objWrapper.find(".uc-button-delete-file").hide();
|
|
g_objWrapper.find(".uc-preloader-deleting").show();
|
|
|
|
assetsAjaxRequest("assets_delete_files", {arrFiles: arrFiles, path: g_activePath, pathkey:g_pathKey}, function(response){
|
|
|
|
var htmlList = response.html;
|
|
g_objFileList.html(htmlList);
|
|
|
|
g_objWrapper.find(".uc-preloader-deleting").hide();
|
|
g_objWrapper.find(".uc-button-delete-file").show().addClass("button-disabled");
|
|
|
|
triggerEvent(events.CHANGE_FILELIST);
|
|
triggerEvent(events.UPDATE_FILES);
|
|
});
|
|
|
|
}
|
|
|
|
|
|
function ____________UPLOAD______________(){};
|
|
|
|
|
|
/**
|
|
* upload dialog on close
|
|
*/
|
|
function uploadDialogOnClose(){
|
|
|
|
var objDialog = jQuery("#uc_dialog_upload_files");
|
|
var objManager = objDialog.data("objManager");
|
|
var objDropzone = objDialog.data("dropzone");
|
|
|
|
var isNeedRefresh = objDialog.data("needRefresh");
|
|
|
|
if(isNeedRefresh === true)
|
|
objManager.refreshQuite();
|
|
|
|
objDropzone.removeAllFiles();
|
|
jQuery("#uc_dialog_upload_files").dialog("close");
|
|
|
|
}
|
|
|
|
/**
|
|
* open upload dialog, may occur from different managers
|
|
*/
|
|
function openDialogUpload(objManager){
|
|
|
|
var objDialog = jQuery("#uc_dialog_upload_files");
|
|
|
|
objDialog.data("manager", objManager);
|
|
|
|
var buttonOpts = {};
|
|
|
|
buttonOpts["Close"] = uploadDialogOnClose;
|
|
|
|
objDialog.dialog({
|
|
dialogClass:"unite-ui",
|
|
buttons:buttonOpts,
|
|
minWidth:960,
|
|
modal:true,
|
|
close:uploadDialogOnClose,
|
|
open:function(){
|
|
|
|
objDialog.data("needRefresh", false);
|
|
|
|
var activePath = objManager.getActivePath();
|
|
|
|
jQuery("#uc_dialogupload_activepath").html(activePath);
|
|
jQuery("#uc_input_upload_path").val(activePath);
|
|
jQuery("#uc_input_pathkey").val(g_pathKey);
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
/**
|
|
* init upload files dialog on assets tab
|
|
*/
|
|
function initUploadFilesDialog(){
|
|
|
|
var objDialog = jQuery("#uc_dialog_upload_files");
|
|
if(objDialog.length == 0)
|
|
return(false);
|
|
|
|
var objDropzone = objDialog.data("dropzone");
|
|
if(objDropzone)
|
|
return(false); //allow init only once
|
|
|
|
//init dropzone
|
|
try{
|
|
Dropzone.autoDiscover = false;
|
|
var objDropzone = new Dropzone("#uc_form_dropzone");
|
|
}catch(error){
|
|
|
|
var strError = error + " Some other plugin loading Dropzone in this page. <br> Please check the console wich of them, and turn it off. They should load dropzone library only in their page.";
|
|
|
|
g_ucAdmin.showErrorMessage(strError);
|
|
|
|
throw error;
|
|
|
|
}
|
|
objDialog.data("dropzone", objDropzone);
|
|
|
|
objDropzone.on("addedfile", function(file,second) {
|
|
|
|
triggerEvent(events.UPDATE_FILES);
|
|
objDialog.data("needRefresh", true);
|
|
|
|
});
|
|
|
|
objDropzone.on("queuecomplete", function(file) {
|
|
|
|
var objManager = objDialog.data("manager");
|
|
if(!objManager)
|
|
throw new Error("assets manager not found, something wrong.");
|
|
|
|
objManager.refreshQuite();
|
|
|
|
objDialog.data("needRefresh", false);
|
|
});
|
|
|
|
}
|
|
|
|
|
|
function ____________CREATE_FOLDER______________(){};
|
|
|
|
|
|
/**
|
|
* open create folder dialog
|
|
*/
|
|
function openCreateFolderDialog(){
|
|
|
|
var objDialog = jQuery("#uc_dialog_create_folder");
|
|
if(objDialog.length == 0)
|
|
throw new Error("The create folder dialog must be here");
|
|
|
|
//init fields
|
|
jQuery("#uc_dialog_create_folder_name").val("");
|
|
|
|
//oepn dialog
|
|
g_ucAdmin.openCommonDialog(objDialog);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* create folder
|
|
*/
|
|
function createFolder(){
|
|
|
|
var folderName = jQuery("#uc_dialog_create_folder_name").val();
|
|
|
|
var data = {
|
|
"pathkey":g_pathKey,
|
|
"path":g_activePath,
|
|
"folder_name":folderName
|
|
};
|
|
|
|
data = modifyDataBeforeAjax(data);
|
|
|
|
g_ucAdmin.dialogAjaxRequest("uc_dialog_create_folder", "assets_create_folder", data, function(response){
|
|
g_objFileList.html(response.html);
|
|
|
|
triggerEvent(events.CHANGE_FILELIST);
|
|
triggerEvent(events.UPDATE_FILES);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* init create folder actions
|
|
*/
|
|
function initCreateFolderActions(){
|
|
jQuery("#uc_dialog_create_folder_action").on("click",createFolder);
|
|
jQuery("#uc_dialog_create_folder_name").doOnEnter(createFolder);
|
|
}
|
|
|
|
|
|
function ____________CREATE_FILE______________(){};
|
|
|
|
/**
|
|
* open create folder dialog
|
|
*/
|
|
function openCreateFileDialog(){
|
|
|
|
var objDialog = jQuery("#uc_dialog_create_file");
|
|
if(objDialog.length == 0)
|
|
throw new Error("The create file dialog must be here");
|
|
|
|
//init fields
|
|
jQuery("#uc_dialog_create_file_name").val("");
|
|
|
|
//open dialog
|
|
g_ucAdmin.openCommonDialog(objDialog);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* create folder
|
|
*/
|
|
function createFile(){
|
|
|
|
var fileName = jQuery("#uc_dialog_create_file_name").val();
|
|
|
|
var data = {
|
|
"pathkey":g_pathKey,
|
|
"path":g_activePath,
|
|
"filename":fileName
|
|
};
|
|
|
|
data = modifyDataBeforeAjax(data);
|
|
|
|
g_ucAdmin.dialogAjaxRequest("uc_dialog_create_file", "assets_create_file", data, function(response){
|
|
g_objFileList.html(response.html);
|
|
|
|
triggerEvent(events.CHANGE_FILELIST);
|
|
triggerEvent(events.UPDATE_FILES);
|
|
});
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* init create folder actions
|
|
*/
|
|
function initCreateFileActions(){
|
|
|
|
jQuery("#uc_dialog_create_file_action").on("click",createFile);
|
|
|
|
jQuery("#uc_dialog_create_file_name").doOnEnter(createFile);
|
|
}
|
|
|
|
|
|
function ____________SELECT_ALL______________(){};
|
|
|
|
|
|
/**
|
|
* update select all button state
|
|
*/
|
|
function updateSelectAllButtonState(){
|
|
|
|
var objButton = g_objPanel.find(".uc-button-select-all");
|
|
|
|
var numItems = getNumItems();
|
|
|
|
if(numItems == 0){
|
|
objButton.addClass("button-disabled");
|
|
|
|
objButton.html(objButton.data("textselect"));
|
|
return(false);
|
|
}
|
|
|
|
objButton.removeClass("button-disabled");
|
|
|
|
var numSelected = getNumSelectedItems();
|
|
if(numSelected != numItems){
|
|
objButton.html(objButton.data("textselect"));
|
|
}else{
|
|
objButton.html(objButton.data("textunselect"));
|
|
}
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* select / unselect all files
|
|
*/
|
|
function selectUnselectAll(){
|
|
var objUnselectedItems = getObjUnselectedItems();
|
|
if(objUnselectedItems.length != 0)
|
|
selectAllItems();
|
|
else
|
|
unselectAllItems();
|
|
|
|
}
|
|
|
|
|
|
function ____________EDIT_FILE______________(){};
|
|
|
|
|
|
/**
|
|
* on edit dialog open
|
|
*/
|
|
function onEditDialogOpen(item){
|
|
|
|
var objTextarea = jQuery("#uc_dialog_edit_file_textarea");
|
|
|
|
if(g_codeMirror)
|
|
g_codeMirror.toTextArea();
|
|
|
|
objTextarea.hide();
|
|
|
|
var data = {filename: item.file, path: g_activePath, pathkey: g_pathKey};
|
|
g_ucAdmin.setErrorMessageID("uc_dialog_edit_file_error");
|
|
g_ucAdmin.setAjaxLoaderID("uc_dialog_edit_file_loader");
|
|
assetsAjaxRequest("assets_get_file_content", data, function(response){
|
|
|
|
objTextarea.show();
|
|
objTextarea.val(response.content);
|
|
|
|
var modeName;
|
|
|
|
switch(item.type){
|
|
default:
|
|
case "html":
|
|
modeName = "htmlmixed";
|
|
break;
|
|
case "xml":
|
|
modeName = "xml";
|
|
break;
|
|
case "css":
|
|
modeName = "css";
|
|
break;
|
|
case "javascript":
|
|
modeName = "javascript";
|
|
break;
|
|
}
|
|
|
|
var optionsCM = {
|
|
mode: {name: modeName },
|
|
lineNumbers: true
|
|
};
|
|
|
|
g_codeMirror = CodeMirror.fromTextArea(objTextarea[0], optionsCM);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* on edit dialog save functionality
|
|
*/
|
|
function onEditDialogSave(){
|
|
|
|
if(!g_codeMirror)
|
|
throw new Error("Codemirror editor not found");
|
|
|
|
var content = g_codeMirror.getValue();
|
|
var objDialog = jQuery("#uc_dialog_edit_file");
|
|
|
|
var item = objDialog.data("item");
|
|
|
|
var data = {filename: item.file, path: g_activePath, pathkey: g_pathKey, content: content};
|
|
|
|
g_ucAdmin.setAjaxLoaderID("uc_dialog_edit_file_loadersaving");
|
|
g_ucAdmin.setErrorMessageID("uc_dialog_edit_file_error");
|
|
g_ucAdmin.setSuccessMessageID("uc_dialog_edit_file_success");
|
|
|
|
assetsAjaxRequest('assets_save_file', data, function () {
|
|
triggerEvent(events.UPDATE_FILES);
|
|
});
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* open edit file dialog from selected file
|
|
*/
|
|
function openEditFileDialog(){
|
|
var item = getSelectedSingleItem();
|
|
|
|
var objDialog = jQuery("#uc_dialog_edit_file");
|
|
|
|
var buttonOpts = {};
|
|
|
|
buttonOpts[g_uctext.close] = function(){
|
|
objDialog.dialog("close");
|
|
};
|
|
|
|
buttonOpts[g_uctext.save] = function(){
|
|
onEditDialogSave();
|
|
};
|
|
|
|
var dialogTitle = g_uctext.edit_file+": "+item.file;
|
|
|
|
objDialog.data("item", item);
|
|
|
|
var dialogExtendOptions = {
|
|
"closable" : true,
|
|
"minimizable" : true,
|
|
"maximizable" : true,
|
|
"collapsable" : true
|
|
};
|
|
|
|
|
|
objDialog.dialog({
|
|
dialogClass:"unite-ui",
|
|
buttons:buttonOpts,
|
|
minWidth:"1000",
|
|
minHeight:550,
|
|
title: dialogTitle,
|
|
modal:false,
|
|
open:function(){
|
|
onEditDialogOpen(item);
|
|
}
|
|
}).dialogExtend(dialogExtendOptions);
|
|
|
|
|
|
}
|
|
|
|
function ____________MOVE_FILES______________(){};
|
|
|
|
|
|
/**
|
|
* get path for copy / move, this folder or parent
|
|
*/
|
|
function getPathForCopyMove(){
|
|
var path = g_activePath;
|
|
var objDirs = getObjChildDirs();
|
|
var numDirs = objDirs.length;
|
|
if(objDirs.length == 0)
|
|
path = getParentFolder(path);
|
|
|
|
return(path);
|
|
}
|
|
|
|
|
|
/**
|
|
* set path for move dialog
|
|
*/
|
|
function dialogMoveSetPath(pathMove){
|
|
|
|
jQuery("#uc_dialog_move_files_url").html(pathMove).data("path", pathMove);
|
|
|
|
var objButton = jQuery("#uc_dialog_move_files_action");
|
|
|
|
var objDialog = jQuery("#uc_dialog_move_files");
|
|
var basePath = objDialog.data("base_path");
|
|
|
|
//disable / enable action button
|
|
if(pathMove === basePath)
|
|
objButton.addClass("button-disabled");
|
|
else
|
|
objButton.removeClass("button-disabled");
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* open move files dialog
|
|
*/
|
|
function openMoveFilesDialog(){
|
|
|
|
var options = {
|
|
minWidth:700
|
|
};
|
|
|
|
g_ucAdmin.openCommonDialog("uc_dialog_move_files", function(){
|
|
|
|
var objDialog = jQuery("#uc_dialog_move_files");
|
|
|
|
//save init data
|
|
|
|
objDialog.data("base_path", g_activePath);
|
|
|
|
var arrFiles = getArrSelectedFiles();
|
|
var numFiles = arrFiles.length;
|
|
|
|
if(numFiles == 0)
|
|
return(false);
|
|
|
|
objDialog.data("arr_files", arrFiles);
|
|
|
|
//set move path and load path
|
|
var pathMove = getPathForCopyMove();
|
|
dialogMoveSetPath(pathMove);
|
|
|
|
//update label text
|
|
var objLabel = objDialog.find("#uc_dialog_move_label");
|
|
|
|
var labelText = objLabel.data("text");
|
|
labelText = labelText.replace("%1",numFiles);
|
|
|
|
objLabel.html(labelText+":");
|
|
|
|
g_objBrowserMove.loadPath(pathMove, true);
|
|
}, options);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* do dialog mvoe files request
|
|
*/
|
|
function dialogMoveFilesRequest(actionOnExists){
|
|
|
|
var objDialog = jQuery("#uc_dialog_move_files");
|
|
|
|
var arrFiles = objDialog.data("arr_files");
|
|
var basePath = objDialog.data("base_path");
|
|
|
|
var data = {
|
|
pathkey: g_pathKey,
|
|
pathSource: basePath,
|
|
arrFiles: arrFiles,
|
|
pathTarget: jQuery("#uc_dialog_move_files_url").data("path")
|
|
};
|
|
|
|
if(actionOnExists)
|
|
data.actionOnExists = actionOnExists;
|
|
|
|
jQuery("#uc_dialog_move_files_actions_wrapper").show();
|
|
jQuery("#uc_dialog_move_message").hide();
|
|
|
|
var dialogID = "uc_dialog_move_files";
|
|
g_ucAdmin.setAjaxLoaderID(dialogID + "_loader");
|
|
g_ucAdmin.setErrorMessageID(dialogID + "_error");
|
|
g_ucAdmin.setAjaxHideButtonID(dialogID + "_action");
|
|
|
|
var objSuccessMessage = jQuery("#"+dialogID + "_success");
|
|
|
|
assetsAjaxRequest("assets_move_files", data, function(response){
|
|
|
|
//of not moved
|
|
if(response.hasOwnProperty("done") && response.done === false){
|
|
|
|
jQuery("#uc_dialog_move_files_actions_wrapper").hide();
|
|
jQuery("#uc_dialog_move_message").show();
|
|
jQuery("#uc_dialog_move_message_text").html(response.message);
|
|
|
|
|
|
}else{
|
|
|
|
//if successfully moved
|
|
objSuccessMessage.html(response.message);
|
|
g_objFileList.html(response.html);
|
|
|
|
jQuery("#"+dialogID).dialog("close");
|
|
|
|
triggerEvent(events.CHANGE_FILELIST);
|
|
triggerEvent(events.UPDATE_FILES);
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* init move dialog actions
|
|
*/
|
|
function initMoveFileActions(){
|
|
|
|
var objDialogMove = jQuery("#uc_dialog_move_files");
|
|
|
|
//init move dialog folder browser
|
|
var objBrowserMoveWrapper = jQuery("#uc_movefile_browser");
|
|
|
|
g_objBrowserMove = new UCAssetsManager();
|
|
g_objBrowserMove.init(objBrowserMoveWrapper);
|
|
|
|
//on fielist change
|
|
g_objBrowserMove.eventOnUpdateFilelist(function(){
|
|
var path = g_objBrowserMove.getActivePath();
|
|
dialogMoveSetPath(path);
|
|
});
|
|
|
|
//on checkbox select
|
|
g_objBrowserMove.eventOnSelectOperation(function(){
|
|
|
|
var arrItems = g_objBrowserMove.getArrSelectedItems();
|
|
var numItems = arrItems.length;
|
|
|
|
if(numItems > 1)
|
|
throw new Error("number of selected items can be 1 or 0");
|
|
|
|
if(numItems == 0){
|
|
var path = g_objBrowserMove.getActivePath();
|
|
}else{
|
|
var objItem = arrItems[0];
|
|
var path = objItem.filepath;
|
|
}
|
|
|
|
dialogMoveSetPath(path);
|
|
|
|
});
|
|
|
|
//move files action
|
|
jQuery("#uc_dialog_move_files_action").on("click",function(){
|
|
|
|
if(jQuery(this).hasClass("button-disabled"))
|
|
return(false);
|
|
|
|
dialogMoveFilesRequest();
|
|
});
|
|
|
|
//onExists button click
|
|
objDialogMove.find(".uc-dialog-move-message .unite-button-secondary").on("click",function(){
|
|
var action = jQuery(this).data("action");
|
|
|
|
if(action == "cancel"){ //return to initial position
|
|
jQuery("#uc_dialog_move_files_actions_wrapper").show();
|
|
jQuery("#uc_dialog_move_message").hide();
|
|
jQuery("#uc_dialog_move_files_action").show();
|
|
}else{
|
|
dialogMoveFilesRequest(action);
|
|
}
|
|
});
|
|
}
|
|
|
|
function ____________RENAME_FILES______________(){}
|
|
|
|
|
|
/**
|
|
* open rename files dialog
|
|
*/
|
|
function openRenameFileDialog(){
|
|
|
|
var objDialog = jQuery("#uc_dialog_rename_file");
|
|
if(objDialog.length == 0)
|
|
throw new Error("The rename file dialog must be here");
|
|
|
|
var objItem = getSelectedSingleItem();
|
|
var filename = objItem.file;
|
|
|
|
jQuery("#uc_dialog_rename_file_input").val(filename).select();
|
|
|
|
//open dialog
|
|
g_ucAdmin.openCommonDialog(objDialog);
|
|
|
|
}
|
|
|
|
/**
|
|
* create folder
|
|
*/
|
|
function renameFile(){
|
|
|
|
var fileName = jQuery("#uc_dialog_rename_file_input").val();
|
|
|
|
var objFile = getSelectedSingleItem();
|
|
|
|
var data = {
|
|
"pathkey":g_pathKey,
|
|
"path":g_activePath,
|
|
"filename":objFile.file,
|
|
"filename_new":fileName
|
|
};
|
|
|
|
data = modifyDataBeforeAjax(data);
|
|
|
|
g_ucAdmin.dialogAjaxRequest("uc_dialog_rename_file", "assets_rename_file", data, function(response){
|
|
g_objFileList.html(response.html);
|
|
|
|
triggerEvent(events.CHANGE_FILELIST);
|
|
triggerEvent(events.UPDATE_FILES);
|
|
});
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* init create folder actions
|
|
*/
|
|
function initRenameFileActions(){
|
|
|
|
jQuery("#uc_dialog_rename_file_action").on("click",renameFile);
|
|
|
|
jQuery("#uc_dialog_rename_file_input").doOnEnter(renameFile);
|
|
}
|
|
|
|
function ____________VIEW_FILES______________(){}
|
|
|
|
/**
|
|
* run view files
|
|
*/
|
|
function runViewFile(){
|
|
|
|
var objItem = getSelectedSingleItem();
|
|
|
|
var fullUrl = g_ucAdmin.getVal(objItem, "full_url");
|
|
|
|
if(!fullUrl){
|
|
alert("view not available");
|
|
return(false);
|
|
}
|
|
|
|
window.open(fullUrl);
|
|
}
|
|
|
|
|
|
function ____________UNZIP______________(){}
|
|
|
|
|
|
/**
|
|
* unzip selected file
|
|
*/
|
|
function unzipSelectedFile(){
|
|
var item = getSelectedSingleItem();
|
|
|
|
var data = {pathkey:g_pathKey, path: g_activePath, filename: item.file};
|
|
|
|
var objLoader = g_objPanel.find(".uc-preloader-unzip");
|
|
objLoader.show();
|
|
|
|
assetsAjaxRequest("assets_unzip_file",data,function(response){
|
|
objLoader.hide();
|
|
g_objFileList.html(response.html);
|
|
|
|
triggerEvent(events.CHANGE_FILELIST);
|
|
triggerEvent(events.UPDATE_FILES);
|
|
});
|
|
|
|
}
|
|
|
|
function ____________ACTIONS_PANEL______________(){};
|
|
|
|
|
|
/**
|
|
* check operations buttons
|
|
*/
|
|
function checkActionPanelButtons(){
|
|
|
|
if(g_objPanel.length == 0)
|
|
return(false);
|
|
|
|
var buttonsSingle = g_objPanel.find(".uc-relate-single");
|
|
var buttonsMultiple = g_objPanel.find(".uc-relate-multiple");
|
|
var buttonsAll = buttonsSingle.add(buttonsMultiple);
|
|
var buttonSpecial = g_objPanel.find(".uc-relate-special");
|
|
var buttonsFilesOnly = g_objPanel.find(".uc-relate-file");
|
|
|
|
var numSelected = getNumSelectedItems();
|
|
|
|
if(numSelected == 0){
|
|
g_ucAdmin.disableButton(buttonsAll);
|
|
g_ucAdmin.disableButton(buttonSpecial);
|
|
}
|
|
else
|
|
if(numSelected == 1){ //single mode
|
|
|
|
var item = getSelectedSingleItem();
|
|
var itemType = item.type;
|
|
var isDir = (itemType == "dir");
|
|
|
|
//set buttons for disable
|
|
var buttonsDisable = null;
|
|
if(isDir == true)
|
|
buttonsDisable = buttonsFilesOnly;
|
|
|
|
//remove the disable buttons from the enable list
|
|
if(buttonsDisable)
|
|
buttonsAll = buttonsAll.not(buttonsDisable);
|
|
|
|
g_ucAdmin.enableButton(buttonsAll);
|
|
|
|
if(buttonsDisable)
|
|
g_ucAdmin.disableButton(buttonsDisable);
|
|
|
|
//enable type related buttons
|
|
var classType = ".uc-relate-type-" + itemType;
|
|
var buttonsType = g_objPanel.find(classType);
|
|
|
|
g_ucAdmin.enableButton(buttonsType);
|
|
}
|
|
else{ //multiple mode - single buttons disabled
|
|
g_ucAdmin.disableButton(buttonsSingle);
|
|
g_ucAdmin.disableButton(buttonSpecial);
|
|
|
|
g_ucAdmin.enableButton(buttonsMultiple);
|
|
}
|
|
|
|
//update select panel button
|
|
updateSelectAllButtonState();
|
|
}
|
|
|
|
|
|
/**
|
|
* run some action
|
|
*/
|
|
function runAction(action){
|
|
|
|
if(g_temp.isBrowser == true){
|
|
switch(action){
|
|
case "select_all":
|
|
selectUnselectAll();
|
|
break;
|
|
default:
|
|
trace("wrong browser action: " + action);
|
|
break;
|
|
}
|
|
return(false);
|
|
}
|
|
|
|
//do manager mode actions
|
|
switch(action){
|
|
case "select_all":
|
|
selectUnselectAll();
|
|
break;
|
|
case "delete":
|
|
deleteSelectedFiles();
|
|
break;
|
|
case "upload":
|
|
openDialogUpload(t);
|
|
break;
|
|
case "create_file":
|
|
openCreateFileDialog();
|
|
break;
|
|
case "create_folder":
|
|
openCreateFolderDialog();
|
|
break;
|
|
case "edit":
|
|
openEditFileDialog();
|
|
break;
|
|
case "move":
|
|
openMoveFilesDialog();
|
|
break;
|
|
case "unzip":
|
|
unzipSelectedFile();
|
|
break;
|
|
case "rename":
|
|
openRenameFileDialog();
|
|
break;
|
|
case "view":
|
|
runViewFile();
|
|
break;
|
|
default:
|
|
trace("wrong action: " + action);
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* init actions panel
|
|
*/
|
|
function initActionsPanel(){
|
|
|
|
g_objPanel = g_objWrapper.find(".uc-assets-buttons-panel");
|
|
|
|
if(g_objPanel.length == 0)
|
|
return(false);
|
|
|
|
/**
|
|
* on buttons click - run action
|
|
*/
|
|
g_objPanel.find("a.uc-panel-button").on("click",function(){
|
|
var objButton = jQuery(this);
|
|
if(objButton.hasClass("button-disabled"))
|
|
return(false);
|
|
|
|
var action = jQuery(this).data("action");
|
|
runAction(action);
|
|
});
|
|
|
|
|
|
//init global events
|
|
onEvent(events.SELECT_ITEM, function(){
|
|
checkActionPanelButtons();
|
|
});
|
|
|
|
onEvent(events.CHANGE_FILELIST, function(){
|
|
checkActionPanelButtons();
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
function ____________INIT______________(){};
|
|
|
|
|
|
/**
|
|
* uncheck all assets checkboxes
|
|
*/
|
|
function uncheckOnInit(){
|
|
|
|
var objCheckboxes = g_objWrapper.find(".uc-filelist-checkbox");
|
|
|
|
objCheckboxes.each(function(){
|
|
var checkbox = jQuery(this);
|
|
var initChecked = checkbox.data("initchecked");
|
|
|
|
if(!initChecked)
|
|
checkbox.prop('checked', false);
|
|
});
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* edit manager mode
|
|
*/
|
|
function initManagerMode(){
|
|
|
|
//init dropzone only once
|
|
initUploadFilesDialog();
|
|
|
|
initCreateFolderActions();
|
|
initCreateFileActions();
|
|
initMoveFileActions();
|
|
initRenameFileActions();
|
|
|
|
initActionsPanel();
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* validate that the manager has put only once
|
|
*/
|
|
function validateManagerPutOnce(){
|
|
var isManagerPut = jQuery.data( document.body, "uc-manager-put-once");
|
|
if(isManagerPut === true)
|
|
throw new Error("The file manager can't be put twice to the page");
|
|
|
|
jQuery.data( document.body, "uc-manager-put-once", true );
|
|
}
|
|
|
|
|
|
/**
|
|
* init options
|
|
*/
|
|
function initOptions(){
|
|
|
|
var objOptions = g_objWrapper.data("options");
|
|
|
|
if(typeof objOptions != "object")
|
|
throw new Error("The input options are not object");
|
|
|
|
g_options = jQuery.extend(g_options, objOptions);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* init the assets
|
|
*/
|
|
function init(){
|
|
|
|
g_activePath = g_objWrapper.data("path");
|
|
g_startPath = g_objWrapper.data("startpath");
|
|
|
|
g_temp.isBrowser = g_objWrapper.data("isbrowser");
|
|
g_temp.isBrowser = g_ucAdmin.strToBool(g_temp.isBrowser);
|
|
|
|
g_pathKey = g_objWrapper.data("pathkey");
|
|
g_objFileList = g_objWrapper.find(".uc-filelist");
|
|
g_objErrorFilelist = g_objWrapper.find(".uc-filelist-error");
|
|
|
|
|
|
initOptions();
|
|
|
|
if(g_temp.isBrowser === false){
|
|
|
|
validateManagerPutOnce();
|
|
|
|
initManagerMode();
|
|
}
|
|
|
|
uncheckOnInit();
|
|
|
|
initEvents();
|
|
|
|
//triger change filelist change event
|
|
triggerEvent(events.CHANGE_FILELIST);
|
|
}
|
|
|
|
function ____________EVENTS______________(){};
|
|
|
|
|
|
/**
|
|
* on assets click event, do operations according item
|
|
*/
|
|
function onItemClick(){
|
|
|
|
var objItem = jQuery(this);
|
|
|
|
//protection against double event handling
|
|
var isBelongs = isObjectBelongsToParent(objItem);
|
|
if(isBelongs == false)
|
|
return(true);
|
|
|
|
var type = objItem.data("type");
|
|
var file = objItem.data("file");
|
|
|
|
if(type == "dir"){
|
|
t.loadPath(file);
|
|
return(false);
|
|
}
|
|
|
|
//on filename click:
|
|
|
|
//if browser mode - then do identical to checkbox click
|
|
if(g_temp.isBrowser == true && g_options.single_item_select == false)
|
|
toggleItemSelection(objItem);
|
|
else
|
|
selectSingleItem(objItem);
|
|
|
|
var isSelected = isItemSelected(objItem);
|
|
triggerEvent(events.SELECT_OPERATION, [objItem, isSelected]);
|
|
|
|
}
|
|
|
|
/**
|
|
* check if some object belongs to it's parent
|
|
* to avoid double event handling
|
|
*/
|
|
function isObjectBelongsToParent(obj){
|
|
|
|
var objParent = obj.parents(".uc-assets-wrapper");
|
|
var parentID = objParent.attr("id");
|
|
var wrapperID = t.getID();
|
|
|
|
if(parentID == wrapperID)
|
|
return(true);
|
|
|
|
return(false);
|
|
}
|
|
|
|
|
|
/**
|
|
* on checkbox click
|
|
*/
|
|
function onCheckboxClick(event){
|
|
|
|
event.stopPropagation();
|
|
|
|
var objCheckbox = jQuery(this);
|
|
|
|
var isBelongs = isObjectBelongsToParent(objCheckbox);
|
|
|
|
if(isBelongs == false)
|
|
return(true);
|
|
|
|
var isChecked = objCheckbox.is(":checked");
|
|
|
|
var objItem = objCheckbox.parents(".uc-filelist-item");
|
|
|
|
if(g_options.single_item_select == true){
|
|
if(isChecked == false)
|
|
selectItem(objItem, false); //unselect item
|
|
else
|
|
selectSingleItem(objItem); //select single item
|
|
}
|
|
else
|
|
selectItem(objItem, isChecked);
|
|
|
|
triggerEvent(events.SELECT_OPERATION, [objItem, isChecked]);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* trigger internal event
|
|
*/
|
|
function triggerEvent(eventName, params){
|
|
if(!params)
|
|
var params = null;
|
|
|
|
g_objWrapper.trigger(eventName, params);
|
|
}
|
|
|
|
|
|
/**
|
|
* on internal event
|
|
*/
|
|
function onEvent(eventName, func){
|
|
g_objWrapper.on(eventName, func);
|
|
}
|
|
|
|
|
|
/**
|
|
* init events
|
|
*/
|
|
function initEvents(){
|
|
|
|
g_objFileList.on("click", "input.uc-filelist-checkbox", onCheckboxClick);
|
|
g_objFileList.on("click", "a.uc-filelist-item", onItemClick);
|
|
|
|
//on select item event
|
|
onEvent(events.SELECT_OPERATION, function(event, item, isChecked){
|
|
|
|
var objItem = jQuery(item);
|
|
|
|
if(typeof g_temp.funcOnSelectOperation == "function"){
|
|
var itemData = getItemData(objItem);
|
|
g_temp.funcOnSelectOperation(isChecked, itemData);
|
|
}
|
|
|
|
});
|
|
|
|
|
|
//on update files event
|
|
onEvent(events.UPDATE_FILES, function(){
|
|
|
|
if(typeof g_temp.funcOnUpdateFiles == "function")
|
|
g_temp.funcOnUpdateFiles();
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* get arr selected items bridge
|
|
*/
|
|
this.getArrSelectedItems = function(){
|
|
return getArrSelectedItems();
|
|
}
|
|
|
|
/**
|
|
* check by urls
|
|
*/
|
|
this.checkByUrls = function(arrUrls){
|
|
var arrItems = getArrItems();
|
|
|
|
jQuery(arrItems).each(function(index, data){
|
|
var url = data.full_url;
|
|
var found = (jQuery.inArray(url, arrUrls) != -1);
|
|
selectItem(data.objItem, found);
|
|
});
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* get active path
|
|
*/
|
|
this.getActivePath = function(){
|
|
|
|
return(g_activePath);
|
|
}
|
|
|
|
|
|
/**
|
|
* get relative activepath
|
|
*/
|
|
this.getActivePathRelative = function(){
|
|
|
|
var pathRelative = g_activePath.replace(g_startPath, "");
|
|
pathRelative = g_ucAdmin.stripPathSlashes(pathRelative);
|
|
|
|
return(pathRelative);
|
|
}
|
|
|
|
|
|
/**
|
|
* return if activepath is start path
|
|
*/
|
|
this.isStartPath = function(){
|
|
|
|
var isStart = (g_activePath == g_startPath);
|
|
return(isStart);
|
|
}
|
|
|
|
/**
|
|
* set custom start path
|
|
*/
|
|
this.setCustomStartPath = function(path){
|
|
g_options.custom_startPath = path;
|
|
}
|
|
|
|
|
|
/**
|
|
* modify data before ajax
|
|
*/
|
|
function modifyDataBeforeAjax(data){
|
|
|
|
if(!data)
|
|
data = {};
|
|
|
|
if(g_options.addon_id)
|
|
data["addonID"] = g_options.addon_id;
|
|
|
|
return(data);
|
|
}
|
|
|
|
|
|
/**
|
|
* call ajax request and add data
|
|
*/
|
|
function assetsAjaxRequest(action, data, funcSuccess){
|
|
|
|
data = modifyDataBeforeAjax(data);
|
|
|
|
g_ucAdmin.ajaxRequest(action, data, funcSuccess);
|
|
}
|
|
|
|
|
|
/**
|
|
* load assets dir
|
|
*/
|
|
this.loadPath = function(file, byPath, quiteMode){
|
|
|
|
if(!quiteMode)
|
|
var quiteMode = false;
|
|
|
|
//choose small circle in active bar, or filelist preloader
|
|
var preloaderID = ".uc-preloader-filelist";
|
|
if(quiteMode == true)
|
|
preloaderID = ".uc-preloader-refreshpath";
|
|
|
|
if(!file){
|
|
var path = g_activePath;
|
|
}else{
|
|
|
|
if(byPath === true){
|
|
var path = file;
|
|
}else{ //load by file
|
|
var path = getPathByFile(file);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
if(!path)
|
|
throw new Error("empty path");
|
|
|
|
|
|
//show preloader, hide filelist
|
|
var objPreloader = g_objWrapper.find(preloaderID);
|
|
|
|
if(objPreloader)
|
|
objPreloader.show();
|
|
|
|
if(quiteMode == false)
|
|
g_objFileList.hide();
|
|
|
|
//update active path
|
|
updateActivePath(path);
|
|
|
|
var data = {path: path, pathkey: g_pathKey};
|
|
if(g_temp.funcOnAjaxLoadPath)
|
|
data = g_temp.funcOnAjaxLoadPath(data);
|
|
|
|
if(g_options.custom_startPath != null)
|
|
data.startpath = g_options.custom_startPath;
|
|
|
|
//request path change
|
|
g_objErrorFilelist.hide();
|
|
g_ucAdmin.setErrorMessageID(g_objErrorFilelist);
|
|
assetsAjaxRequest("assets_get_filelist", data, function(response){
|
|
|
|
if(objPreloader)
|
|
objPreloader.hide();
|
|
|
|
var htmlList = response.html;
|
|
g_objFileList.html(htmlList);
|
|
|
|
if(quiteMode == false)
|
|
g_objFileList.show();
|
|
|
|
triggerEvent(events.CHANGE_FILELIST);
|
|
});
|
|
|
|
}
|
|
|
|
/**
|
|
* silent refresh - without visible loader show
|
|
*/
|
|
this.refreshQuite = function(){
|
|
t.loadPath(null, null, true);
|
|
}
|
|
|
|
|
|
/**
|
|
* init the assets manager
|
|
*/
|
|
this.init = function(objWrapper){
|
|
|
|
g_objWrapper = objWrapper;
|
|
|
|
if(g_objWrapper.length == 0)
|
|
throw new Error("Can't find assets wrapper");
|
|
|
|
if(g_objWrapper.hasClass("uc-assets-wrapper") == false)
|
|
throw new Error("Wrong assets manager wrapper");
|
|
|
|
//check startup error
|
|
var startupErrorWrapper = g_objWrapper.find(".uc-assets-startup-error");
|
|
if(startupErrorWrapper.length !== 0)
|
|
return(false);
|
|
|
|
init();
|
|
}
|
|
|
|
|
|
/**
|
|
* get assets manager ID
|
|
*/
|
|
this.getID = function(){
|
|
|
|
var id = g_objWrapper.attr("id");
|
|
return(id);
|
|
}
|
|
|
|
|
|
/**
|
|
* set function on ajax load path, to add additional fields
|
|
*/
|
|
this.eventOnAjaxLoadpath = function(func){
|
|
g_temp.funcOnAjaxLoadPath = func;
|
|
}
|
|
|
|
|
|
/**
|
|
* set function that run after update filelist
|
|
*/
|
|
this.eventOnUpdateFilelist = function(func){
|
|
onEvent(events.CHANGE_FILELIST, func);
|
|
}
|
|
|
|
|
|
/**
|
|
* set function on update files
|
|
*/
|
|
this.eventOnUpdateFiles = function(func){
|
|
g_temp.funcOnUpdateFiles = func;
|
|
}
|
|
|
|
/**
|
|
* on operatio select event
|
|
*/
|
|
this.eventOnSelectOperation = function(func){
|
|
g_temp.funcOnSelectOperation = func;
|
|
}
|
|
|
|
/**
|
|
* get array of items by filename
|
|
*/
|
|
this.getItemByFilename = function(filename){
|
|
|
|
return getItemByFilename(filename);
|
|
}
|
|
|
|
} |