function getPointer(e) { if (is_ie) { DocX = event.clientX + document.body.scrollLeft; DocY = event.clientY + document.body.scrollTop; } else { DocX = e.pageX; DocY = e.pageY; } } document.onmousemove = getPointer; function loadHistory(filename){ cExecute('./index.php?menuaction=filemanager.uifilemanager.history&file='+base64_encode(filename)+"&path="+base64_encode(currentPath),draw_window); } function loadPermissions(data){ var permission = parseInt(data); var ACL_READ = 1; var ACL_ADD = 2; var ACL_EDIT = 4; var ACL_DELETE = 8; var ACL_PRIVATE = 16; permissions['read']=(permission & ACL_READ); permissions['add']=(permission & ACL_ADD); permissions['edit']=(permission & ACL_EDIT); permissions['delete']=(permission & ACL_DELETE); permissions['private']=(permission & ACL_PRIVATE); toolbar.load(); loadPreferences(); toolbar.control('reload'); } function close_window(){ var menu = document.getElementById('dwindow'); menu.style.visibility = 'hidden' } function draw_window(htmlData){ var menu = document.getElementById('dwindow'); buttonClose = ''; if (!menu){ menu = document.createElement('DIV'); menu.id = "dwindow"; menu.style.left = DocX - 500; menu.style.width = "auto"; menu.style.top = DocY; menu.className = 'menubox'; menu.style.zIndex='1'; menu.innerHTML = htmlData+buttonClose; document.getElementById('divAppboxHeader').appendChild(menu); } else{ menu.innerHTML = htmlData+buttonClose; menu.style.visibility = 'visible'; } } function draw_menu(id,elements){ var menu = document.getElementById('menu_newFile'+id); if (menu == null){ menu = document.createElement('DIV'); menu.id = "menu_newFile"+id; menu.style.left = DocX; menu.style.top = DocY; //menu.style.left = left_pos+"px"; //menu.style.top = top_pos+"px"; for(j in elements) { if (typeof(elements[j]['img']) != 'undefined'){ var img = document.createElement( 'IMG' ); img.src = elements[j]['img']; menu.appendChild(img); } var link = document.createElement( 'A' ); link.href = elements[j]['url']; link.appendChild( document.createTextNode( elements[j]['text'] ) ); menu.appendChild(link); menu.appendChild(document.createElement( 'BR' )); } menu.onmouseout = function () { menuTimeout = setTimeout("document.getElementById('menu_newFile"+id+"').style.visibility = 'hidden'",50);} menu.onmouseover = function () { clearTimeout(menuTimeout); }; menu.className = 'menubox'; menu.style.zIndex='1'; document.getElementById('divAppboxHeader').appendChild(menu); } menu.style.visibility = 'visible'; } function resizeDiv(){ defaultHeight = document.body.clientHeight ? document.body.clientHeight : document.body.offsetHeight; document.getElementById('fmFileWindow').style.height = defaultHeight-170; document.getElementById('content_folders').style.height = defaultHeight - (is_ie ? 230 : 215); } var headerMsgLock = false; var labelBefore = ""; function write_msg (message){ if (headerMsgLock){ setTimeout('write_msg("'+message+'");', 300); return; } headerMsgLock = true; headerDiv = document.getElementById("divAppboxHeader"); labelBefore = headerDiv.innerHTML; headerDiv.innerHTML = '
'+message+'
'; setTimeout('headerMsgLock = false; document.getElementById("divAppboxHeader").innerHTML = labelBefore;', 3000); } function write_error (message){ if (headerMsgLock){ setTimeout('write_error("'+message+'");', 300); return; } headerMsgLock = true; headerDiv = document.getElementById("divAppboxHeader"); labelBefore = headerDiv.innerHTML; headerDiv.innerHTML = '
'+message+'
'; setTimeout('headerMsgLock = false; document.getElementById("divAppboxHeader").innerHTML = labelBefore;', 3000); } function displayMessages(){ var messages = document.getElementById("allMessages"); for (i=0; i < messages.childNodes.length; i++){ if (messages.childNodes[i].innerHTML.indexOf(get_lang('Error:')) == 0) write_error(messages.childNodes[i].innerHTML); else write_msg(messages.childNodes[i].innerHTML); } } function loadPreferences(){ preferencesEl = document.getElementById('userPreferences'); preferences = unserialize(preferencesEl.value); } function reloadFiles(newCriteria){ if (newCriteria == criteria) order_type = (order_type=='1'?'0':'1') else criteria = newCriteria; toolbar.control('reload'); } function initDrawApi(){ currentPath = document.getElementById('currentPath').value; cExecute('./index.php?menuaction=filemanager.uifilemanager.get_permissions&path='+base64_encode(currentPath),loadPermissions); quotaSize = document.getElementById('quotaSize').value; usedSpace = document.getElementById('usedSpace').value; document.getElementById('divAppboxHeader').innerHTML = title_app; if (parseInt(quotaSize) != 0) document.getElementById('content_quota').innerHTML = '
'+parseInt(usedSpace/quotaSize*100)+'% ('+(usedSpace/1024/1024).toFixed(1)+'M/'+(quotaSize/1024/1024)+'M)
'; displayMessages(); resizeDiv(); window.onresize = resizeDiv; document.body.style.overflow = "hidden"; } function folderList(){ this.td = ''; } folderList.prototype.init = function(){ this.element = document.getElementById('fmFileWindow'); } folderList.prototype.clear = function(){ this.element.innerHTML = ""; } folderList.prototype.drawSearch = function(data){ var fl = folderList; var files = unserialize(data); if (files == null) { alert(get_lang('No results found')); return } toolbar.clear(); fl.init(); fl.clear(); var newpage; var sp_hd = ''; newpage += fl.td+sp_hd+' id="name">'+get_lang('file name')+sp_tl; newpage += fl.td+sp_hd+' id="folder">'+get_lang('folder')+sp_tl; if (preferences.mime_type =='1') newpage += fl.td+sp_hd+' id="mime">'+get_lang('mime type')+sp_tl; if (preferences.size =='1') newpage += fl.td+sp_hd+' id="size">'+get_lang('size')+''+sp_tl; if (preferences.created =='1') newpage += fl.td+sp_hd+' id="created">'+get_lang('created')+''+sp_tl; if (preferences.modified =='1') newpage += fl.td+sp_hd+' id="modified">'+get_lang('modified')+''+sp_tl; if (preferences.createdby_id =='1') newpage += fl.td+sp_hd+' id="creatdby">'+get_lang('created by')+''+sp_tl; if (preferences.modifiedby_id =='1') newpage += fl.td+sp_hd+' id="modifdby">'+get_lang('modified by')+''+sp_tl; if (preferences.comment =='1') newpage += fl.td+sp_hd+' id="comm">'+get_lang('comment')+''+sp_tl; if (preferences.version =='1') newpage += fl.td+sp_hd+' id="vers">'+get_lang('version')+''+sp_tl+''; for (var i=0; i < files.length; i++) { newpage += ''+fl.td; newpage += ''; newpage += ''; newpage += fl.td+''; newpage += ''+files[i].name+' '; newpage += fl.td+files[i].directory+''; if (preferences.mime_type =='1') newpage += fl.td+files[i].mime_type+''; if (preferences.size =='1') newpage += fl.td+borkb(files[i].size)+''; if (preferences.created =='1') newpage += fl.td+files[i].created+''; if (preferences.modified =='1') newpage += fl.td+files[i].modified+''; if (preferences.createdby_id =='1') newpage += fl.td+files[i].createdby_id+''; if (preferences.modifiedby_id =='1') newpage += fl.td+files[i].modifiedby_id+''; if (preferences.comment =='1') newpage += fl.td+''+files[i].comment+''; if (preferences.version =='1') newpage += fl.td+''+files[i].version+''; } fl.element.innerHTML = newpage; fl.drawStripes(); } folderList.prototype.drawFiles = function(data){ var fl = folderList; var files = unserialize(data); fl.init(); fl.clear(); var newpage; var sp_hd = ''; newpage += fl.td+''; newpage += fl.td+sp_hd+'name\')" id="name">'+get_lang('file name')+sp_tl; if (preferences.mime_type =='1') newpage += fl.td+sp_hd+'mime\')" id="mime">'+get_lang('mime type')+sp_tl; if (preferences.size =='1') newpage += fl.td+sp_hd+'size\')" id="size">'+get_lang('size')+''+sp_tl; if (preferences.created =='1') newpage += fl.td+sp_hd+'creatd\')" id="creatd">'+get_lang('created')+''+sp_tl; if (preferences.modified =='1') newpage += fl.td+sp_hd+'modifd\')" id="modifd">'+get_lang('modified')+''+sp_tl; if (preferences.owner =='1') newpage += fl.td+sp_hd+'owner\')" id="owner">'+get_lang('owner')+''+sp_tl; if (preferences.createdby_id =='1') newpage += fl.td+sp_hd+'creatdby\')" id="creatdby">'+get_lang('created by')+''+sp_tl; if (preferences.modifiedby_id =='1') newpage += fl.td+sp_hd+'modifdby\')" id="modifdby">'+get_lang('modified by')+''+sp_tl; if (preferences.comment =='1') newpage += fl.td+sp_hd+'comm\')" id="comm">'+get_lang('comment')+''+sp_tl; if (preferences.version =='1') newpage += fl.td+sp_hd+'vers\')" id="vers">'+get_lang('version')+''+sp_tl+''; if (files != null) for (var i=0; i < files.length; i++) { newpage += ''+fl.td; newpage += ''; if (permissions['private']) { newpage += ''; } else newpage += ''; if (files[i].mime == 'text/html') newpage += ''+get_lang('export')+''; else newpage += ''; newpage += fl.td+''; newpage += ''+files[i].name+' '; if (preferences.mime_type =='1') newpage += fl.td+files[i].mime+''; if (preferences.size =='1') newpage += fl.td+borkb(files[i].size)+''; var now = new Date(); var dtString = ""; if (preferences.created =='1') { var created = new Date(); created.setTime(files[i].creatd*1000); if (now.getTime() - created.getTime() < 86400000) dtString = created.getHours()+":"+created.getMinutes(); else dtString = created.getDate()+"/"+created.getMonth()+"/"+created.getFullYear(); newpage += fl.td+dtString+''; } if (preferences.modified =='1'){ var modified = new Date(); modified.setTime(files[i].modifd*1000); if (files[i].modifd != "") if (now.getTime() - modified.getTime() < 86400000) dtString = modified.getHours()+":"+modified.getMinutes(); else dtString = modified.getDate()+"/"+modified.getMonth()+"/"+modified.getFullYear(); else dtString = ""; newpage += fl.td+dtString+''; } if (preferences.owner =='1') newpage += fl.td+files[i].owner+''; if (preferences.createdby_id =='1') newpage += fl.td+files[i].creatdby+''; if (preferences.modifiedby_id =='1') newpage += fl.td+files[i].modifdby+''; if (preferences.comment =='1') newpage += fl.td+''; if (preferences.version =='1') newpage += fl.td+''+files[i].vers+''; } else newpage = ""+get_lang('no files in this directory.')+""; fl.element.innerHTML = newpage; header = document.getElementsByName('head'); for (var i=0; i < header.length; i++) { if (header[i].id == criteria){ header[i].style.fontWeight = 'bold'; arrow = document.createElement('IMG'); if (order_type == '1') arrow.src = templatePath+'images/arrow_ascendant.gif'; else arrow.src = templatePath+'images/arrow_descendant.gif'; header[i].appendChild(arrow); } } fl.drawStripes(); } folderList.prototype.drawStripes = function(){ var classTr = "tr_msg_read"; folderList.init(); var elements = folderList.element.firstChild.firstChild.childNodes; for (var i = 1; i < elements.length; i++){ elements[i].className = classTr; classTr = (classTr == "tr_msg_read"?"tr_msg_read2":"tr_msg_read"); } } var folderList = new folderList(); function toolbar() { var element; } toolbar.prototype.clear = function (){ this.element.innerHTML = ""; } toolbar.prototype.load = function (){ this.element = document.getElementById('fmMenu'); if (permissions['read'] == 0) return; var pageContent = ''; var createButton = function(name) { return ''; } if (permissions['edit'] != 0){ pageContent += createButton('edit'); pageContent += createButton('rename'); } if (permissions['delete'] != 0){ pageContent += createButton('delete'); pageContent += createButton('move_to'); } pageContent += createButton('copy_to'); this.element.innerHTML = pageContent+'
'+name+''+get_lang(name.replace('_',' '))+'
'; } toolbar.prototype.control = function (arg) { //Used to get button position var button = document.getElementsByName(arg); button = button[0]; switch (arg) { case 'new': elements = new Array(); elements[0] = new Array(); elements[0]['text'] = get_lang('empty file'); elements[0]['url'] = 'javascript:newEmptyFile();'; elements[1] = new Array(); elements[1]['text'] = get_lang('File from model'); address = document.location.toString(); address = address.split("?"); elements[1]['url'] = address[0]+"?menuaction=filemanager.uifilemanager.fileModels"; elements[2] = new Array(); elements[2]['text'] = get_lang('Upload'); address = document.location.toString(); address = address.split("?"); elements[2]['url'] = address[0]+"?menuaction=filemanager.uifilemanager.index&upload=clicked&upload.x=1&path="+base64_encode(currentPath); draw_menu(arg,elements); break; case 'rename': var one_checked = false; files=document.getElementsByName('fileman'); for (i = 0; i < files.length; i++) if (files[i].checked){ one_checked = true; files[i].checked = false; var nameLink = document.getElementById('name_'+files[i].value); var inputName = document.createElement('INPUT'); inputName.id = 'input_'+files[i].value; var filename = nameLink.innerHTML; inputName.value = filename; inputName.onblur = function () { cExecute('./index.php?menuaction=filemanager.vfs_functions.rename&file='+base64_encode(this.id.substr(6))+'&to='+base64_encode(this.value)+"&path="+base64_encode(currentPath),updateRename) }; nameLink.parentNode.appendChild(inputName); nameLink.parentNode.removeChild(nameLink); } if (!one_checked) write_msg(get_lang('Please select a file')); break; case 'edit': var one_checked = false; files=document.getElementsByName('fileman'); for (i = 0; i < files.length; i++) if (files[i].checked){ one_checked = true; var filename=files[i].value; } if (one_checked){ address = document.location.toString(); address = address.split("&"); document.location = address[0]+"&"+arg+".x=1&filename="+base64_encode(filename)+".&path="+base64_encode(currentPath); } else { write_msg(get_lang('Please select a file')); return; } break; case 'delete': filesUrl = ""; var one_checked = false; files=document.getElementsByName('fileman'); var j=0; for (i = 0; i < files.length; i++) if (files[i].checked){ one_checked = true; filesUrl += "&fileman["+j+"]="+files[i].value; j++; } if (!one_checked) { write_msg(get_lang('Please select a file')); return; } cExecute('./index.php?menuaction=filemanager.vfs_functions.delete&path='+ base64_encode(currentPath)+filesUrl,handlerDelete); break; case 'move_to': case 'copy_to': filesUrl = ""; var one_checked = false; files=document.getElementsByName('fileman'); var j=0; for (i = 0; i < files.length; i++) if (files[i].checked){ one_checked = true; filesUrl += "&fileman["+j+"]="+files[i].value; j++; } if (!one_checked) { write_msg(get_lang('Please select a file')); return; } var elements = new Array(); inputEl = document.getElementById('content_folders'); for(i=0; i< inputEl.childNodes.length; i++) { if (inputEl.childNodes[i].nodeName != 'SPAN') continue; elements[i] = new Array(); elements[i]['text']=inputEl.childNodes[i].innerHTML; address = document.location.toString(); address = address.split("&"); elements[i]['url'] = address[0]+ "&"+escape(arg)+".x=10"+ "&from="+base64_encode(currentPath)+ "&to="+base64_encode(inputEl.childNodes[i].innerHTML)+ filesUrl; } draw_menu(arg,elements); break; case 'reload': cExecute('./index.php?menuaction=filemanager.uifilemanager.dir_ls&path='+base64_encode(currentPath)+'&criteria='+criteria+'&otype='+order_type,folderList.drawFiles); return; case 'tools': elements = new Array(); elements[0] = new Array(); elements[0]['text'] = get_lang('Preferences'); elements[0]['url'] = 'preferences/preferences.php?appname=filemanager'; elements[0]['img'] = templatePath+'images/preferences.png'; elements[1] = new Array(); elements[1]['text'] = get_lang('Search'); elements[1]['url'] = 'javascript:\ document.getElementById("menu_newFiletools").style.visibility="hidden";\ document.getElementById("em_message_search").focus();'; elements[1]['img'] = templatePath+'images/search.gif'; /* elements[2] = new Array(); elements[2]['text'] = get_lang('Edit Folders'); elements[2]['url'] = 'javascript:EditFolders()'; elements[2]['img'] = 'images/mime16_directory.png'; */ elements[3] = new Array(); elements[3]['text'] = get_lang('Share Folders'); elements[3]['url'] = "./index.php?menuaction=preferences.uiaclprefs.index&acl_app=filemanager"; elements[3]['img'] = templatePath+'images/mime16_directory.png'; elements[4] = new Array(); elements[4]['text'] = get_lang('Edit Columns'); elements[4]['url'] = "javascript:EditColumns()"; elements[4]['img'] = templatePath+'images/editpaste.png'; draw_menu(arg,elements); break; default: return; } } var toolbar = new toolbar();