[1719] | 1 | |
---|
| 2 | function getPointer(e) { |
---|
| 3 | if (is_ie) { |
---|
| 4 | DocX = event.clientX + document.body.scrollLeft; |
---|
| 5 | DocY = event.clientY + document.body.scrollTop; |
---|
| 6 | } else { |
---|
| 7 | DocX = e.pageX; |
---|
| 8 | DocY = e.pageY; |
---|
| 9 | } |
---|
| 10 | } |
---|
| 11 | |
---|
[1730] | 12 | function loadHistory(filename){ |
---|
[1748] | 13 | cExecute('./index.php?menuaction=filemanager.uifilemanager.history&file='+base64_encode(filename)+"&path="+base64_encode(currentPath),draw_window); |
---|
[1730] | 14 | } |
---|
| 15 | |
---|
| 16 | function loadPermissions(data){ |
---|
| 17 | var permission = parseInt(data); |
---|
| 18 | var ACL_READ = 1; |
---|
| 19 | var ACL_ADD = 2; |
---|
| 20 | var ACL_EDIT = 4; |
---|
| 21 | var ACL_DELETE = 8; |
---|
| 22 | var ACL_PRIVATE = 16; |
---|
| 23 | |
---|
| 24 | permissions['read']=(permission & ACL_READ); |
---|
| 25 | permissions['add']=(permission & ACL_ADD); |
---|
| 26 | permissions['edit']=(permission & ACL_EDIT); |
---|
| 27 | permissions['delete']=(permission & ACL_DELETE); |
---|
| 28 | permissions['private']=(permission & ACL_PRIVATE); |
---|
| 29 | toolbar.load(); |
---|
| 30 | } |
---|
[1726] | 31 | function close_window(){ |
---|
| 32 | var menu = document.getElementById('dwindow'); |
---|
[1804] | 33 | if (menu != null) |
---|
| 34 | menu.style.visibility = 'hidden' |
---|
[1726] | 35 | } |
---|
| 36 | function draw_window(htmlData){ |
---|
| 37 | var menu = document.getElementById('dwindow'); |
---|
[1804] | 38 | headerWin = '<div class="message_header" style="width: 100%; heigth: 22px;"'+ |
---|
| 39 | ' onselectstart="return false">'+ |
---|
| 40 | '<img align="right" alt="'+get_lang('close')+'" title="'+get_lang('close')+'" '+ |
---|
[1812] | 41 | 'onclick="close_window()" src="'+templatePath+'/images/close.png">'+ |
---|
[1804] | 42 | get_lang('filemanager')+'</div>'; |
---|
[1726] | 43 | if (!menu){ |
---|
| 44 | menu = document.createElement('DIV'); |
---|
| 45 | menu.id = "dwindow"; |
---|
[1809] | 46 | menu.style.left = 200; |
---|
| 47 | menu.style.width = "400px"; |
---|
[1726] | 48 | menu.style.top = DocY; |
---|
| 49 | menu.className = 'menubox'; |
---|
| 50 | menu.style.zIndex='1'; |
---|
[1804] | 51 | menu.innerHTML = headerWin+htmlData; |
---|
[1841] | 52 | document.getElementById('tdAppbox').appendChild(menu); |
---|
[1726] | 53 | } |
---|
| 54 | else{ |
---|
[1804] | 55 | menu.innerHTML = headerWin+htmlData; |
---|
[1726] | 56 | menu.style.visibility = 'visible'; |
---|
| 57 | } |
---|
[1719] | 58 | |
---|
[1726] | 59 | } |
---|
| 60 | |
---|
[1719] | 61 | function draw_menu(id,elements){ |
---|
| 62 | var menu = document.getElementById('menu_newFile'+id); |
---|
| 63 | if (menu == null){ |
---|
| 64 | menu = document.createElement('DIV'); |
---|
| 65 | menu.id = "menu_newFile"+id; |
---|
| 66 | menu.style.left = DocX; |
---|
| 67 | menu.style.top = DocY; |
---|
| 68 | for(j in elements) |
---|
| 69 | { |
---|
[1854] | 70 | var link = document.createElement( 'A' ); |
---|
[1719] | 71 | if (typeof(elements[j]['img']) != 'undefined'){ |
---|
| 72 | var img = document.createElement( 'IMG' ); |
---|
| 73 | img.src = elements[j]['img']; |
---|
[1854] | 74 | link.appendChild(img); |
---|
[1719] | 75 | } |
---|
| 76 | link.href = elements[j]['url']; |
---|
| 77 | link.appendChild( document.createTextNode( elements[j]['text'] ) ); |
---|
| 78 | menu.appendChild(link); |
---|
| 79 | menu.appendChild(document.createElement( 'BR' )); |
---|
| 80 | } |
---|
| 81 | |
---|
| 82 | menu.onmouseout = function () { menuTimeout = setTimeout("document.getElementById('menu_newFile"+id+"').style.visibility = 'hidden'",50);} |
---|
| 83 | menu.onmouseover = function () { clearTimeout(menuTimeout); }; |
---|
| 84 | menu.className = 'menubox'; |
---|
| 85 | menu.style.zIndex='1'; |
---|
| 86 | document.getElementById('divAppboxHeader').appendChild(menu); |
---|
| 87 | } |
---|
| 88 | menu.style.visibility = 'visible'; |
---|
| 89 | } |
---|
| 90 | |
---|
[1704] | 91 | function resizeDiv(){ |
---|
| 92 | defaultHeight = document.body.clientHeight ? document.body.clientHeight : document.body.offsetHeight; |
---|
| 93 | document.getElementById('fmFileWindow').style.height = defaultHeight-170; |
---|
| 94 | document.getElementById('content_folders').style.height = defaultHeight - (is_ie ? 230 : 215); |
---|
| 95 | |
---|
| 96 | } |
---|
[1627] | 97 | var headerMsgLock = false; |
---|
| 98 | var labelBefore = ""; |
---|
| 99 | function write_msg (message){ |
---|
[1841] | 100 | connector.hideProgressBar(); |
---|
[1627] | 101 | if (headerMsgLock){ |
---|
| 102 | setTimeout('write_msg("'+message+'");', 300); |
---|
| 103 | return; |
---|
| 104 | } |
---|
| 105 | headerMsgLock = true; |
---|
| 106 | headerDiv = document.getElementById("divAppboxHeader"); |
---|
| 107 | labelBefore = headerDiv.innerHTML; |
---|
| 108 | headerDiv.innerHTML = '<table width=100% cellspacing="0" cellpadding="0" border="0"><tbody><tr><th width="40%"></th><th noWrap class="action_info_th">'+message+'</th><th width="40%"></th></tr></tbody></table>'; |
---|
| 109 | setTimeout('headerMsgLock = false; document.getElementById("divAppboxHeader").innerHTML = labelBefore;', 3000); |
---|
| 110 | } |
---|
| 111 | |
---|
| 112 | function write_error (message){ |
---|
[1841] | 113 | connector.hideProgressBar(); |
---|
[1627] | 114 | if (headerMsgLock){ |
---|
| 115 | setTimeout('write_error("'+message+'");', 300); |
---|
| 116 | return; |
---|
| 117 | } |
---|
| 118 | headerMsgLock = true; |
---|
| 119 | headerDiv = document.getElementById("divAppboxHeader"); |
---|
| 120 | labelBefore = headerDiv.innerHTML; |
---|
| 121 | headerDiv.innerHTML = '<table width=100% cellspacing="0" cellpadding="0" border="0"><tbody><tr><th width="40%"></th><th noWrap class="action_error_th">'+message+'</th><th width="40%"></th></tr></tbody></table>'; |
---|
| 122 | setTimeout('headerMsgLock = false; document.getElementById("divAppboxHeader").innerHTML = labelBefore;', 3000); |
---|
| 123 | } |
---|
| 124 | |
---|
| 125 | function displayMessages(){ |
---|
| 126 | var messages = document.getElementById("allMessages"); |
---|
[1694] | 127 | |
---|
[1627] | 128 | for (i=0; i < messages.childNodes.length; i++){ |
---|
| 129 | if (messages.childNodes[i].innerHTML.indexOf(get_lang('Error:')) == 0) |
---|
| 130 | write_error(messages.childNodes[i].innerHTML); |
---|
| 131 | else |
---|
| 132 | write_msg(messages.childNodes[i].innerHTML); |
---|
| 133 | } |
---|
| 134 | } |
---|
[1719] | 135 | |
---|
| 136 | function loadPreferences(){ |
---|
| 137 | preferencesEl = document.getElementById('userPreferences'); |
---|
| 138 | preferences = unserialize(preferencesEl.value); |
---|
[1810] | 139 | preferencesEl.parentNode.removeChild(preferencesEl); |
---|
[1704] | 140 | } |
---|
[1719] | 141 | function reloadFiles(newCriteria){ |
---|
| 142 | if (newCriteria == criteria) |
---|
| 143 | order_type = (order_type=='1'?'0':'1') |
---|
| 144 | else |
---|
| 145 | criteria = newCriteria; |
---|
[1730] | 146 | toolbar.control('reload'); |
---|
[1719] | 147 | } |
---|
| 148 | |
---|
[1730] | 149 | function initDrawApi(){ |
---|
[1880] | 150 | SecEl = document.getElementById('userKey'); |
---|
| 151 | crypt = new crypt(SecEl.value); |
---|
| 152 | SecEl.parentNode.removeChild(SecEl); |
---|
| 153 | |
---|
[1809] | 154 | loadPreferences(); |
---|
[1730] | 155 | currentPath = document.getElementById('currentPath').value; |
---|
| 156 | document.getElementById('divAppboxHeader').innerHTML = title_app; |
---|
| 157 | displayMessages(); |
---|
| 158 | resizeDiv(); |
---|
| 159 | window.onresize = resizeDiv; |
---|
| 160 | document.body.style.overflow = "hidden"; |
---|
[1879] | 161 | cExecute('./index.php?menuaction=filemanager.uifilemanager.get_folders_list',handler.draw_folders_list); |
---|
[1719] | 162 | } |
---|
[1730] | 163 | |
---|
| 164 | function folderList(){ |
---|
| 165 | this.td = '<td style="padding-left: 2px; padding-right: 2px;" valign="middle">'; |
---|
[1719] | 166 | } |
---|
[1730] | 167 | folderList.prototype.init = function(){ |
---|
| 168 | this.element = document.getElementById('fmFileWindow'); |
---|
| 169 | } |
---|
| 170 | folderList.prototype.clear = function(){ |
---|
| 171 | this.element.innerHTML = ""; |
---|
| 172 | } |
---|
| 173 | |
---|
| 174 | folderList.prototype.drawSearch = function(data){ |
---|
| 175 | var fl = folderList; |
---|
[1726] | 176 | var files = unserialize(data); |
---|
| 177 | if (files == null) |
---|
| 178 | { |
---|
| 179 | alert(get_lang('No results found')); |
---|
| 180 | return |
---|
| 181 | } |
---|
[1730] | 182 | toolbar.clear(); |
---|
| 183 | fl.init(); |
---|
| 184 | fl.clear(); |
---|
[1726] | 185 | var newpage; |
---|
| 186 | var sp_hd = '<span name="head" style="cursor: pointer; cursor: hand;"'; |
---|
| 187 | var sp_tl = '</span></td>'; |
---|
[1737] | 188 | newpage = '<table cellspacing="0" cellpadding="2" width="100%"><tbody><tr class="message_header">'; |
---|
[1730] | 189 | newpage += fl.td+'<input onclick="selectAll(this)" type="checkbox"></td><td></td><td></td>'; |
---|
| 190 | newpage += fl.td+sp_hd+' id="name">'+get_lang('file name')+sp_tl; |
---|
| 191 | newpage += fl.td+sp_hd+' id="folder">'+get_lang('folder')+sp_tl; |
---|
[1726] | 192 | if (preferences.mime_type =='1') |
---|
[1730] | 193 | newpage += fl.td+sp_hd+' id="mime">'+get_lang('mime type')+sp_tl; |
---|
[1726] | 194 | if (preferences.size =='1') |
---|
[1730] | 195 | newpage += fl.td+sp_hd+' id="size">'+get_lang('size')+'</a>'+sp_tl; |
---|
[1726] | 196 | if (preferences.created =='1') |
---|
[1730] | 197 | newpage += fl.td+sp_hd+' id="created">'+get_lang('created')+'</a>'+sp_tl; |
---|
[1726] | 198 | if (preferences.modified =='1') |
---|
[1730] | 199 | newpage += fl.td+sp_hd+' id="modified">'+get_lang('modified')+'</a>'+sp_tl; |
---|
[1726] | 200 | if (preferences.createdby_id =='1') |
---|
[1730] | 201 | newpage += fl.td+sp_hd+' id="creatdby">'+get_lang('created by')+'</a>'+sp_tl; |
---|
[1726] | 202 | if (preferences.modifiedby_id =='1') |
---|
[1730] | 203 | newpage += fl.td+sp_hd+' id="modifdby">'+get_lang('modified by')+'</a>'+sp_tl; |
---|
[1726] | 204 | if (preferences.comment =='1') |
---|
[1730] | 205 | newpage += fl.td+sp_hd+' id="comm">'+get_lang('comment')+'</a>'+sp_tl; |
---|
| 206 | if (preferences.version =='1') newpage += fl.td+sp_hd+' id="vers">'+get_lang('version')+'</a>'+sp_tl+'</tr>'; |
---|
| 207 | |
---|
[1726] | 208 | for (var i=0; i < files.length; i++) |
---|
| 209 | { |
---|
[1730] | 210 | newpage += '<tr>'+fl.td; |
---|
[1726] | 211 | newpage += '<input name="fileman" value="'+files[i].name+'" type="checkbox"></td>'; |
---|
| 212 | newpage += '<td></td><td></td>'; |
---|
[1730] | 213 | newpage += fl.td+'<img src="'+files[i].icon+'">'; |
---|
[1748] | 214 | newpage += '<a id="name_'+files[i].name+'" href="./index.php?menuaction=filemanager.uifilemanager.view&file='+base64_encode(files[i].name)+'&path='+base64_encode(files[i].directory)+'" target="_blank">'+files[i].name+'</a> </td>'; |
---|
[1730] | 215 | newpage += fl.td+files[i].directory+'</td>'; |
---|
| 216 | if (preferences.mime_type =='1') newpage += fl.td+files[i].mime_type+'</td>'; |
---|
| 217 | if (preferences.size =='1') newpage += fl.td+borkb(files[i].size)+'</td>'; |
---|
| 218 | if (preferences.created =='1') newpage += fl.td+files[i].created+'</td>'; |
---|
| 219 | if (preferences.modified =='1') newpage += fl.td+files[i].modified+'</td>'; |
---|
| 220 | if (preferences.createdby_id =='1') newpage += fl.td+files[i].createdby_id+'</td>'; |
---|
| 221 | if (preferences.modifiedby_id =='1') newpage += fl.td+files[i].modifiedby_id+'</td>'; |
---|
| 222 | if (preferences.comment =='1') newpage += fl.td+'<span id="'+files[i].name+'">'+files[i].comment+'</span></td>'; |
---|
| 223 | if (preferences.version =='1') newpage += fl.td+'<span>'+files[i].version+'</span></td></tr>'; |
---|
[1719] | 224 | |
---|
[1726] | 225 | } |
---|
[1730] | 226 | fl.element.innerHTML = newpage; |
---|
| 227 | fl.drawStripes(); |
---|
[1726] | 228 | } |
---|
[1784] | 229 | folderList.prototype.createLine = function(file){ |
---|
| 230 | var fl = folderList; |
---|
| 231 | retBuff = fl.td; |
---|
| 232 | retBuff += '<input name="fileman" value="'+file.name+'" type="checkbox"></td>'; |
---|
| 233 | if (permissions['private']) { |
---|
| 234 | retBuff += '<td><img id="restrict_'+file.name+'" onclick="setRestricted(\''+file.name+'\')" '; |
---|
| 235 | retBuff += 'src="'+templatePath+'images/button_'+(file.pub == '1'?'lock':'unlock')+'.png"></td>'; |
---|
| 236 | } |
---|
| 237 | else |
---|
| 238 | retBuff += '<td></td>'; |
---|
[1726] | 239 | |
---|
[1865] | 240 | switch (file.mime) |
---|
| 241 | { |
---|
| 242 | case 'text/html': |
---|
| 243 | retBuff += '<td><a href="./index.php?menuaction=filemanager.uifilemanager.export&file='+base64_encode(file.name)+'&path='+base64_encode(currentPath)+'"><img alt="'+get_lang('export')+'" title="'+get_lang('export')+'" src="'+templatePath+'images/button_export.png"></a></td>'; |
---|
| 244 | break; |
---|
| 245 | case 'application/zip': |
---|
| 246 | retBuff += '<td><a href="javascript:unarchive(\''+file.name+'\')"><img alt="'+get_lang('unarchive')+'" title="'+get_lang('unarchive')+'" src="'+templatePath+'images/button_export.png"></a></td>' |
---|
| 247 | break; |
---|
| 248 | default: |
---|
| 249 | retBuff += '<td></td>'; |
---|
| 250 | } |
---|
[1784] | 251 | retBuff += fl.td+'<img src="'+(file.icon)+'">'; |
---|
[1829] | 252 | if((file.mime).toUpperCase().indexOf('IMAGE') == 0) |
---|
[1891] | 253 | var mousefunc = 'draw_card(\'preview\',\''+file.name+'\')' |
---|
[1829] | 254 | else |
---|
[1893] | 255 | var mousefunc = 'hide_card()'; |
---|
[1829] | 256 | retBuff += '<a onmouseover="'+mousefunc+'" id="name_'+file.name+'" href="./index.php?menuaction=filemanager.uifilemanager.view&file='+base64_encode(file.name)+'&path='+base64_encode(currentPath)+'" target="_blank">'+file.name+'</a> </td>'; |
---|
[1784] | 257 | if (preferences.mime_type =='1') retBuff += fl.td+file.mime+'</td>'; |
---|
| 258 | if (preferences.size =='1') retBuff += fl.td+borkb(file.size)+'</td>'; |
---|
| 259 | var now = new Date(); |
---|
[1874] | 260 | var midnight = Date.parse(now.toDateString()); |
---|
[1784] | 261 | var dtString = ""; |
---|
| 262 | if (preferences.created =='1') { |
---|
| 263 | var created = new Date(); |
---|
| 264 | created.setTime(file.creatd*1000); |
---|
[1874] | 265 | if (created.getTime() > midnight) |
---|
[1784] | 266 | if (created.getMinutes() < 10 ) |
---|
| 267 | dtString = created.getHours()+":0"+created.getMinutes(); |
---|
| 268 | else |
---|
| 269 | dtString = created.getHours()+":"+created.getMinutes(); |
---|
| 270 | else |
---|
| 271 | dtString = created.getDate()+"/"+created.getMonth()+"/"+created.getFullYear(); |
---|
| 272 | retBuff += fl.td+dtString+'</td>'; |
---|
| 273 | } |
---|
| 274 | if (preferences.modified =='1'){ |
---|
| 275 | var modified = new Date(); |
---|
| 276 | modified.setTime(file.modifd*1000); |
---|
| 277 | if (file.modifd != "") |
---|
[1874] | 278 | if (modified.getTime() > midnight) |
---|
[1784] | 279 | if (modified.getMinutes() < 10) |
---|
| 280 | dtString = modified.getHours()+":0"+modified.getMinutes(); |
---|
| 281 | else |
---|
| 282 | dtString = modified.getHours()+":"+modified.getMinutes(); |
---|
| 283 | else |
---|
| 284 | dtString = modified.getDate()+"/"+modified.getMonth()+"/"+modified.getFullYear(); |
---|
| 285 | else |
---|
| 286 | dtString = ""; |
---|
| 287 | retBuff += fl.td+dtString+'</td>'; |
---|
| 288 | } |
---|
[1891] | 289 | if (preferences.owner =='1'){ |
---|
| 290 | retBuff += fl.td; |
---|
| 291 | retBuff += '<div onmouseover="draw_card(\'user\',\''+file.owner+'\')">'+file.owner+'</div></td>'; |
---|
| 292 | } |
---|
| 293 | if (preferences.createdby_id =='1'){ |
---|
| 294 | retBuff += fl.td; |
---|
| 295 | retBuff += '<div onmouseover="draw_card(\'user\',\''+file.creatdby+'\')">'+file.creatdby+'</div></td>'; |
---|
| 296 | } |
---|
| 297 | if (preferences.modifiedby_id =='1'){ |
---|
| 298 | retBuff += fl.td; |
---|
| 299 | retBuff += '<div onmouseover="draw_card(\'user\',\''+file.modifdby+'\')">'+file.modifdby+'</div></td>'; |
---|
| 300 | } |
---|
[1880] | 301 | if (preferences.comment =='1') retBuff += fl.td+'<input id="'+file.name+'" class="inputComment" onkeydown="enterComments(event,this)" onclick="presetComments(this)" onblur="setComments(this)" value="'+(file.comm==null?'':file.comm)+'" alt="'+get_lang('Click to change comments')+'" title="'+get_lang('Click to change comments')+'"></input></td>'; |
---|
[1784] | 302 | if (preferences.version =='1') retBuff += fl.td+'<span onclick="loadHistory(\''+file.name+'\')">'+file.vers+'</span></td>'; |
---|
| 303 | return retBuff; |
---|
| 304 | } |
---|
[1785] | 305 | folderList.prototype.updateQuota = function(quotaSize,usedSpace){ |
---|
[1804] | 306 | if (parseInt(quotaSize) != 0){ |
---|
| 307 | var contentQuota = document.getElementById('content_quota'); |
---|
| 308 | if (contentQuota != null) |
---|
| 309 | contentQuota.innerHTML = '<table width="102" cellspacing="0" cellpadding="0" border="0" id="table_quota"><tbody><tr><td width="102" nowrap="true" height="15" background="../phpgwapi/templates/default/images/dsunused.gif"><table cellspacing="0" cellpadding="0" border="0" style="width: '+parseInt((usedSpace/quotaSize)*100)+'%;"><tbody><tr><td height="15" class="dsused"/></tr></tbody></table></td><td nowrap="true" align="center"><span class="boxHeaderText">'+parseInt(usedSpace/quotaSize*100)+'% ('+borkb(usedSpace)+'/'+borkb(quotaSize)+')</span></td></tr></tbody></table></td></tr></table>'; |
---|
| 310 | } |
---|
[1785] | 311 | } |
---|
[1730] | 312 | folderList.prototype.drawFiles = function(data){ |
---|
| 313 | var fl = folderList; |
---|
[1785] | 314 | var returnData = unserialize(data); |
---|
| 315 | loadPermissions(returnData.permissions); |
---|
| 316 | var files = returnData.files; |
---|
[1730] | 317 | fl.init(); |
---|
| 318 | fl.clear(); |
---|
[1719] | 319 | var newpage; |
---|
| 320 | var sp_hd = '<span name="head" style="cursor: pointer; cursor: hand;" onclick="reloadFiles(\''; |
---|
| 321 | var sp_tl = '</span></td>'; |
---|
[1737] | 322 | newpage = '<table cellspacing="0" cellpadding="2" width="100%"><tbody><tr class="message_header">'; |
---|
[1730] | 323 | newpage += fl.td+'<input onclick="selectAll(this)" type="checkbox"></td><td></td><td></td>'; |
---|
| 324 | newpage += fl.td+sp_hd+'name\')" id="name">'+get_lang('file name')+sp_tl; |
---|
[1719] | 325 | if (preferences.mime_type =='1') |
---|
[1730] | 326 | newpage += fl.td+sp_hd+'mime\')" id="mime">'+get_lang('mime type')+sp_tl; |
---|
[1719] | 327 | if (preferences.size =='1') |
---|
[1730] | 328 | newpage += fl.td+sp_hd+'size\')" id="size">'+get_lang('size')+'</a>'+sp_tl; |
---|
[1719] | 329 | if (preferences.created =='1') |
---|
[1730] | 330 | newpage += fl.td+sp_hd+'creatd\')" id="creatd">'+get_lang('created')+'</a>'+sp_tl; |
---|
[1719] | 331 | if (preferences.modified =='1') |
---|
[1730] | 332 | newpage += fl.td+sp_hd+'modifd\')" id="modifd">'+get_lang('modified')+'</a>'+sp_tl; |
---|
[1719] | 333 | if (preferences.owner =='1') |
---|
[1730] | 334 | newpage += fl.td+sp_hd+'owner\')" id="owner">'+get_lang('owner')+'</a>'+sp_tl; |
---|
[1719] | 335 | if (preferences.createdby_id =='1') |
---|
[1730] | 336 | newpage += fl.td+sp_hd+'creatdby\')" id="creatdby">'+get_lang('created by')+'</a>'+sp_tl; |
---|
[1719] | 337 | if (preferences.modifiedby_id =='1') |
---|
[1730] | 338 | newpage += fl.td+sp_hd+'modifdby\')" id="modifdby">'+get_lang('modified by')+'</a>'+sp_tl; |
---|
[1719] | 339 | if (preferences.comment =='1') |
---|
[1730] | 340 | newpage += fl.td+sp_hd+'comm\')" id="comm">'+get_lang('comment')+'</a>'+sp_tl; |
---|
| 341 | if (preferences.version =='1') newpage += fl.td+sp_hd+'vers\')" id="vers">'+get_lang('version')+'</a>'+sp_tl+'</tr>'; |
---|
[1732] | 342 | if (files != null) |
---|
[1719] | 343 | for (var i=0; i < files.length; i++) |
---|
| 344 | { |
---|
[1784] | 345 | newpage += '<tr>'; |
---|
| 346 | newpage += fl.createLine(files[i]); |
---|
| 347 | newpage += '</tr>'; |
---|
[1719] | 348 | } |
---|
[1732] | 349 | else |
---|
| 350 | newpage = "<b>"+get_lang('no files in this directory.')+"</b>"; |
---|
[1730] | 351 | fl.element.innerHTML = newpage; |
---|
[1719] | 352 | header = document.getElementsByName('head'); |
---|
| 353 | for (var i=0; i < header.length; i++) |
---|
| 354 | { |
---|
| 355 | if (header[i].id == criteria){ |
---|
| 356 | header[i].style.fontWeight = 'bold'; |
---|
| 357 | arrow = document.createElement('IMG'); |
---|
| 358 | if (order_type == '1') |
---|
| 359 | arrow.src = templatePath+'images/arrow_ascendant.gif'; |
---|
| 360 | else |
---|
| 361 | arrow.src = templatePath+'images/arrow_descendant.gif'; |
---|
| 362 | header[i].appendChild(arrow); |
---|
| 363 | } |
---|
| 364 | } |
---|
[1730] | 365 | fl.drawStripes(); |
---|
[1785] | 366 | folderList.updateQuota(returnData.quota.quotaSize,returnData.quota.usedSpace); |
---|
[1719] | 367 | } |
---|
[1730] | 368 | folderList.prototype.drawStripes = function(){ |
---|
| 369 | var classTr = "tr_msg_read"; |
---|
| 370 | folderList.init(); |
---|
| 371 | var elements = folderList.element.firstChild.firstChild.childNodes; |
---|
| 372 | for (var i = 1; i < elements.length; i++){ |
---|
| 373 | elements[i].className = classTr; |
---|
| 374 | classTr = (classTr == "tr_msg_read"?"tr_msg_read2":"tr_msg_read"); |
---|
| 375 | } |
---|
| 376 | } |
---|
| 377 | var folderList = new folderList(); |
---|
[1719] | 378 | |
---|
[1730] | 379 | function toolbar() |
---|
| 380 | { |
---|
| 381 | var element; |
---|
| 382 | } |
---|
| 383 | toolbar.prototype.clear = function (){ |
---|
| 384 | this.element.innerHTML = ""; |
---|
| 385 | } |
---|
| 386 | toolbar.prototype.load = function (){ |
---|
| 387 | this.element = document.getElementById('fmMenu'); |
---|
[1719] | 388 | if (permissions['read'] == 0) |
---|
| 389 | return; |
---|
| 390 | var pageContent = '<table><tbody><tr>'; |
---|
[1730] | 391 | var createButton = function(name) { return '<td name="'+name+'" class="toolButton" onclick="toolbar.control(\''+name+'\');" title="'+name+'"><img src="'+templatePath+'images/button_'+name+'.png" alt="'+name+'"><small>'+get_lang(name.replace('_',' '))+'</small></td>'; } |
---|
[1719] | 392 | |
---|
| 393 | if (permissions['edit'] != 0){ |
---|
| 394 | pageContent += createButton('edit'); |
---|
| 395 | pageContent += createButton('rename'); |
---|
| 396 | } |
---|
| 397 | if (permissions['delete'] != 0){ |
---|
| 398 | pageContent += createButton('delete'); |
---|
| 399 | pageContent += createButton('move_to'); |
---|
| 400 | } |
---|
| 401 | pageContent += createButton('copy_to'); |
---|
| 402 | |
---|
[1730] | 403 | this.element.innerHTML = pageContent+'</tr></tbody></table>'; |
---|
[1719] | 404 | |
---|
| 405 | } |
---|
[1730] | 406 | toolbar.prototype.control = function (arg) |
---|
| 407 | { |
---|
| 408 | //Used to get button position |
---|
| 409 | var button = document.getElementsByName(arg); |
---|
| 410 | button = button[0]; |
---|
| 411 | switch (arg) { |
---|
| 412 | case 'new': |
---|
| 413 | elements = new Array(); |
---|
[1804] | 414 | elements[0] = { 'text': get_lang('empty file'), |
---|
| 415 | 'url': 'javascript:newEmptyFile()'}; |
---|
[1730] | 416 | elements[1] = new Array(); |
---|
| 417 | elements[1]['text'] = get_lang('File from model'); |
---|
| 418 | address = document.location.toString(); |
---|
| 419 | address = address.split("?"); |
---|
| 420 | elements[1]['url'] = address[0]+"?menuaction=filemanager.uifilemanager.fileModels"; |
---|
[1804] | 421 | elements[2] = { 'text' : get_lang('Upload'), |
---|
| 422 | 'url': 'javascript:newUpload()'}; |
---|
[1730] | 423 | draw_menu(arg,elements); |
---|
| 424 | break; |
---|
| 425 | case 'rename': |
---|
| 426 | var one_checked = false; |
---|
| 427 | files=document.getElementsByName('fileman'); |
---|
| 428 | for (i = 0; i < files.length; i++) |
---|
| 429 | if (files[i].checked){ |
---|
| 430 | one_checked = true; |
---|
| 431 | files[i].checked = false; |
---|
| 432 | var nameLink = document.getElementById('name_'+files[i].value); |
---|
| 433 | var inputName = document.createElement('INPUT'); |
---|
| 434 | inputName.id = 'input_'+files[i].value; |
---|
| 435 | var filename = nameLink.innerHTML; |
---|
| 436 | inputName.value = filename; |
---|
[1803] | 437 | inputName.onclick = function () { oldValue = inputName.value; } |
---|
[1846] | 438 | inputName.onblur = function () { if (inputName.value == oldValue) handler.rename(); else cExecute('./index.php?menuaction=filemanager.vfs_functions.rename&file='+base64_encode(this.id.substr(6))+'&to='+base64_encode(this.value)+"&path="+base64_encode(currentPath),handler.rename) }; |
---|
[1791] | 439 | inputName.onkeydown=function (event) {if (event.keyCode == KEY_ENTER) this.blur(); }; |
---|
[1730] | 440 | nameLink.parentNode.appendChild(inputName); |
---|
| 441 | nameLink.parentNode.removeChild(nameLink); |
---|
| 442 | } |
---|
| 443 | if (!one_checked) |
---|
| 444 | write_msg(get_lang('Please select a file')); |
---|
| 445 | break; |
---|
| 446 | case 'edit': |
---|
| 447 | var one_checked = false; |
---|
| 448 | files=document.getElementsByName('fileman'); |
---|
| 449 | for (i = 0; i < files.length; i++) |
---|
| 450 | if (files[i].checked){ |
---|
| 451 | one_checked = true; |
---|
| 452 | var filename=files[i].value; |
---|
| 453 | } |
---|
| 454 | if (one_checked){ |
---|
| 455 | address = document.location.toString(); |
---|
| 456 | address = address.split("&"); |
---|
| 457 | document.location = address[0]+"&"+arg+".x=1&filename="+base64_encode(filename)+".&path="+base64_encode(currentPath); |
---|
| 458 | } |
---|
| 459 | else |
---|
| 460 | { |
---|
| 461 | write_msg(get_lang('Please select a file')); |
---|
| 462 | return; |
---|
| 463 | } |
---|
| 464 | break; |
---|
| 465 | case 'delete': |
---|
| 466 | filesUrl = ""; |
---|
| 467 | var one_checked = false; |
---|
| 468 | files=document.getElementsByName('fileman'); |
---|
| 469 | var j=0; |
---|
| 470 | for (i = 0; i < files.length; i++) |
---|
| 471 | if (files[i].checked){ |
---|
| 472 | one_checked = true; |
---|
[1869] | 473 | filesUrl += "&fileman["+j+"]="+base64_encode(files[i].value); |
---|
[1730] | 474 | j++; |
---|
| 475 | } |
---|
| 476 | if (!one_checked) |
---|
| 477 | { |
---|
| 478 | write_msg(get_lang('Please select a file')); |
---|
| 479 | return; |
---|
| 480 | } |
---|
[1719] | 481 | |
---|
[1748] | 482 | cExecute('./index.php?menuaction=filemanager.vfs_functions.delete&path='+ |
---|
[1846] | 483 | base64_encode(currentPath)+filesUrl,handler.del); |
---|
[1730] | 484 | break; |
---|
[1854] | 485 | case 'archive': |
---|
| 486 | filesUrl = ""; |
---|
| 487 | var one_checked = false; |
---|
| 488 | files=document.getElementsByName('fileman'); |
---|
| 489 | var j=0; |
---|
| 490 | for (i = 0; i < files.length; i++) |
---|
| 491 | if (files[i].checked){ |
---|
| 492 | one_checked = true; |
---|
[1869] | 493 | filesUrl += "&fileman["+j+"]="+base64_encode(files[i].value); |
---|
[1854] | 494 | j++; |
---|
| 495 | } |
---|
| 496 | if (!one_checked) |
---|
| 497 | { |
---|
| 498 | write_msg(get_lang('Please select a file')); |
---|
| 499 | return; |
---|
| 500 | } |
---|
| 501 | password = prompt(get_lang('Please, type a strong password (suggestion: at least 8 characters, letters and numbers) or leave it empty to archive only')); |
---|
[1865] | 502 | if (password == null) |
---|
| 503 | return; |
---|
[1854] | 504 | if (password.length > 0) |
---|
| 505 | { |
---|
| 506 | password2 = prompt(get_lang('Please, retype your password')); |
---|
| 507 | if (password != password2) |
---|
| 508 | { |
---|
| 509 | alert(get_lang('Error:')+get_lang('passwords are differents')); |
---|
| 510 | return; |
---|
| 511 | } |
---|
| 512 | } |
---|
[1880] | 513 | var pswd = crypt.encode(password); |
---|
[1854] | 514 | cExecute('./index.php?menuaction=filemanager.vfs_functions.archive&pswd='+base64_encode(pswd.toString())+'&path='+base64_encode(currentPath)+filesUrl,handler.archive); |
---|
| 515 | break; |
---|
[1730] | 516 | case 'move_to': |
---|
| 517 | case 'copy_to': |
---|
| 518 | filesUrl = ""; |
---|
| 519 | var one_checked = false; |
---|
| 520 | files=document.getElementsByName('fileman'); |
---|
| 521 | var j=0; |
---|
| 522 | for (i = 0; i < files.length; i++) |
---|
| 523 | if (files[i].checked){ |
---|
| 524 | one_checked = true; |
---|
| 525 | filesUrl += "&fileman["+j+"]="+files[i].value; |
---|
| 526 | j++; |
---|
| 527 | } |
---|
| 528 | if (!one_checked) |
---|
| 529 | { |
---|
| 530 | write_msg(get_lang('Please select a file')); |
---|
| 531 | return; |
---|
| 532 | } |
---|
| 533 | var elements = new Array(); |
---|
[1889] | 534 | for(i=0; i< folders.length; i++) |
---|
[1730] | 535 | { |
---|
| 536 | elements[i] = new Array(); |
---|
[1889] | 537 | elements[i]['text']=folders[i]; |
---|
[1730] | 538 | address = document.location.toString(); |
---|
| 539 | address = address.split("&"); |
---|
[1889] | 540 | elements[i]['url'] = "javascript:"+escape(arg)+"('"+folders[i]+"','"+filesUrl+"')"; |
---|
[1730] | 541 | } |
---|
| 542 | draw_menu(arg,elements); |
---|
| 543 | break; |
---|
| 544 | case 'reload': |
---|
[1748] | 545 | cExecute('./index.php?menuaction=filemanager.uifilemanager.dir_ls&path='+base64_encode(currentPath)+'&criteria='+criteria+'&otype='+order_type,folderList.drawFiles); |
---|
[1730] | 546 | return; |
---|
| 547 | case 'tools': |
---|
| 548 | elements = new Array(); |
---|
| 549 | elements[0] = new Array(); |
---|
| 550 | elements[0]['text'] = get_lang('Preferences'); |
---|
| 551 | elements[0]['url'] = 'preferences/preferences.php?appname=filemanager'; |
---|
| 552 | elements[0]['img'] = templatePath+'images/preferences.png'; |
---|
| 553 | elements[1] = new Array(); |
---|
| 554 | elements[1]['text'] = get_lang('Search'); |
---|
| 555 | elements[1]['url'] = 'javascript:\ |
---|
| 556 | document.getElementById("menu_newFiletools").style.visibility="hidden";\ |
---|
| 557 | document.getElementById("em_message_search").focus();'; |
---|
| 558 | elements[1]['img'] = templatePath+'images/search.gif'; |
---|
[1879] | 559 | elements[2] = new Array(); |
---|
| 560 | elements[2]['text'] = get_lang('Edit Folders'); |
---|
| 561 | elements[2]['url'] = 'javascript:editFolders()'; |
---|
| 562 | elements[2]['img'] = templatePath+'images/button_createdir.png'; |
---|
[1730] | 563 | elements[3] = new Array(); |
---|
| 564 | elements[3]['text'] = get_lang('Share Folders'); |
---|
[1748] | 565 | elements[3]['url'] = "./index.php?menuaction=preferences.uiaclprefs.index&acl_app=filemanager"; |
---|
[1730] | 566 | elements[3]['img'] = templatePath+'images/mime16_directory.png'; |
---|
| 567 | elements[4] = new Array(); |
---|
| 568 | elements[4]['text'] = get_lang('Edit Columns'); |
---|
| 569 | elements[4]['url'] = "javascript:EditColumns()"; |
---|
| 570 | elements[4]['img'] = templatePath+'images/editpaste.png'; |
---|
[1854] | 571 | elements[5] = new Array(); |
---|
| 572 | elements[5]['text'] = get_lang('Archive'); |
---|
| 573 | elements[5]['url'] = "javascript:toolbar.control('archive')"; |
---|
| 574 | elements[5]['img'] = templatePath+'images/button_zip.png'; |
---|
[1730] | 575 | draw_menu(arg,elements); |
---|
| 576 | break; |
---|
| 577 | default: |
---|
| 578 | return; |
---|
| 579 | } |
---|
[1719] | 580 | } |
---|
[1730] | 581 | var toolbar = new toolbar(); |
---|
[1719] | 582 | |
---|
[1865] | 583 | function unarchive(filename){ |
---|
[1880] | 584 | password = crypt.encode(prompt(get_lang('Please, type archive password or leave it empty if it is not encrypted'))); |
---|
[1865] | 585 | if (password == null) |
---|
| 586 | return; |
---|
[1880] | 587 | cExecute('./index.php?menuaction=filemanager.vfs_functions.unarchive&pswd='+base64_encode(password)+'&path='+base64_encode(currentPath)+'&file='+base64_encode(filename),handler.archive); |
---|
[1865] | 588 | } |
---|
[1889] | 589 | function move_to(to,filesUrl){ |
---|
| 590 | cExecute('./index.php?menuaction=filemanager.vfs_functions.moveto&from='+base64_encode(currentPath)+'&to='+base64_encode(to)+filesUrl,handler.moveto); |
---|
| 591 | } |
---|
| 592 | function copy_to(to,filesUrl){ |
---|
| 593 | cExecute('./index.php?menuaction=filemanager.vfs_functions.copyto&from='+base64_encode(currentPath)+'&to='+base64_encode(to)+filesUrl,handler.copyto); |
---|
| 594 | } |
---|
[1829] | 595 | |
---|
[1891] | 596 | function draw_card(type,name){ |
---|
[1893] | 597 | clearTimeout(menuTimeout); |
---|
[1891] | 598 | switch(type){ |
---|
| 599 | case 'preview': |
---|
[1893] | 600 | var url = './index.php?menuaction=filemanager.vfs_functions.summary&file='+base64_encode(name)+"&path="+base64_encode(currentPath); |
---|
[1896] | 601 | var htmlData = '<img src=\"'+url+'\">'; |
---|
| 602 | menuTimeout = setTimeout("draw_window_card(\'"+htmlData+"\')",500); |
---|
[1891] | 603 | break; |
---|
| 604 | case 'user': |
---|
[1893] | 605 | var url = './index.php?menuaction=filemanager.user.card&lid='+base64_encode(name); |
---|
[1896] | 606 | menuTimeout = setTimeout("cExecute('"+url+"',draw_window_card)",500); |
---|
[1891] | 607 | break; |
---|
| 608 | default: |
---|
| 609 | break; |
---|
| 610 | } |
---|
[1896] | 611 | |
---|
[1829] | 612 | } |
---|
[1879] | 613 | function editFolders(operation){ |
---|
| 614 | if (operation == 'new'){ |
---|
| 615 | var name = prompt(get_lang('Enter with the name of new file/directory'), ''); |
---|
| 616 | if (name != null && name != '') |
---|
| 617 | { |
---|
| 618 | var parentDir = document.getElementById('folders_box').value; |
---|
| 619 | cExecute('./index.php?menuaction=filemanager.uifilemanager.createdir&path='+base64_encode(parentDir)+'&filename='+base64_encode(name),handler.refreshDir); |
---|
| 620 | currentPath = parentDir+'/'+name; |
---|
| 621 | close_window(); |
---|
| 622 | } |
---|
| 623 | } |
---|
| 624 | else |
---|
[1880] | 625 | if (operation == 'remove'){ |
---|
[1879] | 626 | var Dfolder = document.getElementById('folders_box').value; |
---|
| 627 | if (confirm(get_lang('Do you really want to remove folder: %1?',Dfolder), '')) |
---|
| 628 | { |
---|
[1880] | 629 | cExecute('./index.php?menuaction=filemanager.uifilemanager.removedir&path='+base64_encode(crypt.encode(Dfolder)),handler.refreshDir); |
---|
| 630 | var lastIndex = Dfolder.lastIndexOf('/'); |
---|
[1879] | 631 | currentPath = Dfolder.substr(0,lastIndex); |
---|
| 632 | close_window(); |
---|
| 633 | } |
---|
[1880] | 634 | } |
---|
| 635 | else{ |
---|
| 636 | var buf = "<select id='folders_box'>"; |
---|
| 637 | for (var i=0; i < folders.length; i++) |
---|
| 638 | buf += "<option value='"+folders[i]+"'>"+folders[i]+"</option>"; |
---|
| 639 | buf += "</select>"; |
---|
| 640 | code = "<table><tbody><tr><td>"+buf+"</td></tr><tr><td><input type='button' onclick='editFolders(\"new\")' value='"+get_lang('new folder')+"'></td><td><input type='button' onclick='editFolders(\"remove\")' value='"+get_lang('remove folder')+"'></td></tr></tbody></table>"; |
---|
| 641 | draw_window(code); |
---|
| 642 | } |
---|
[1879] | 643 | } |
---|
[1829] | 644 | |
---|
[1893] | 645 | function draw_window_card(content){ |
---|
| 646 | var menu = document.getElementById('menu_newFile'); |
---|
[1829] | 647 | if (menu == null){ |
---|
| 648 | menu = document.createElement('DIV'); |
---|
| 649 | menu.className = 'menubox'; |
---|
[1893] | 650 | menu.id = "menu_newFile"; |
---|
[1829] | 651 | menu.style.left = DocX; |
---|
| 652 | menu.style.top = (DocY+20)+"px"; |
---|
| 653 | menu.width = "100%"; |
---|
[1893] | 654 | menu.onmouseout = function () { menuTimeout = setTimeout("hide_card()",50);} |
---|
[1829] | 655 | menu.onmouseover = function () { clearTimeout(menuTimeout); }; |
---|
| 656 | menu.style.zIndex='1'; |
---|
[1841] | 657 | document.getElementById('tdAppbox').appendChild(menu); |
---|
[1829] | 658 | } |
---|
| 659 | else |
---|
| 660 | { |
---|
| 661 | menu.style.left = DocX; |
---|
| 662 | menu.style.top = (DocY+20)+"px"; |
---|
| 663 | } |
---|
[1893] | 664 | menu.innerHTML = content; |
---|
[1891] | 665 | |
---|
[1829] | 666 | menu.style.visibility = 'visible'; |
---|
| 667 | clearTimeout(menuTimeout); |
---|
[1893] | 668 | menuTimeout = setTimeout("hide_card()",4000); |
---|
[1829] | 669 | } |
---|
[1893] | 670 | function hide_card(){ |
---|
| 671 | var e=document.getElementById('menu_newFile'); |
---|
[1872] | 672 | if (e!=null) |
---|
| 673 | e.style.visibility = 'hidden'; |
---|
| 674 | } |
---|
[1829] | 675 | |
---|