source: branches/2.2/filemanager/js/draw_api.js @ 3661

Revision 3661, 33.2 KB checked in by alexandrecorreia, 13 years ago (diff)

Ticket #1468 - Notificacao por email de uploads de arquivos enviados pelo modulo Filemanager

Line 
1
2var offset;
3var showHidden  = null;
4var Xtools              = null;
5var zIndex              = 1000;
6
7function getPointer(e) {
8        if (is_ie) {
9                DocX = event.clientX + document.body.scrollLeft;
10                DocY = event.clientY + document.body.scrollTop;
11        } else {
12                DocX = e.pageX;
13                DocY = e.pageY;
14        }
15}
16
17function loadHistory(filename){
18        cExecute_('./index.php?menuaction=filemanager.uifilemanager.history&file='+base64_encode(filename)+"&path="+base64_encode(currentPath),draw_window);
19}
20
21function loadXtools()
22{
23        if( Xtools == null )
24                Xtools = new xtools( path_filemanager + "tp/expressowindow/" );
25}
26
27function loadPermissions(data)
28{
29        var permission = parseInt(data);
30        var ACL_READ = 1;
31        var ACL_ADD = 2;
32        var ACL_EDIT = 4;
33        var ACL_DELETE = 8;
34        var ACL_PRIVATE = 16;
35
36        permissions['read']=(permission & ACL_READ);
37        permissions['add']=(permission & ACL_ADD);
38        permissions['edit']=(permission & ACL_EDIT);
39        permissions['delete']=(permission & ACL_DELETE);
40        permissions['private']=(permission & ACL_PRIVATE);
41        toolbar.load();
42}
43
44function close_window()
45{
46        _winBuild( 'dwindow' + (zIndex-1) , "remove" );
47}
48
49function draw_window( )
50{
51        if( arguments.length > 0 )
52        {
53                var htmlData    = arguments[0];
54                var sizeW               = ( arguments[1] ) ? arguments[1] : 420 ;
55                var sizeH               = ( arguments[2] ) ? arguments[2] : 200 ;
56                var titleAction = ( arguments[3] ) ? " - " + arguments[3] : "";
57               
58               
59                var _janela =
60                {
61                        id_window       : "dwindow"+zIndex,
62                        width           : sizeW,
63                        height          : sizeH,
64                        top             : 200,
65                        left            : ( ( screen.width / 2 ) - ( sizeW / 2) ),
66                        draggable       : true,
67                        visible         : "display",
68                        resizable       : true,
69                        zindex          : ++zIndex,
70                        title           : "Expresso - " + get_lang("filemanager") + titleAction,
71                        closeAction     : "remove",
72                        content         : htmlData
73                };
74       
75                _winBuild( _janela );
76        }
77       
78}
79
80function draw_menu()
81{
82        var _options    = arguments[0];
83        var _parent             = arguments[1];
84        var dt                  = new Date();   
85       
86        if( showHidden == null )
87                showHidden = new ShowHidden( 200 );
88
89        var _itens = "";
90               
91        for( var i in _options )
92        {
93                if( _options[i].constructor == Function )
94                        continue;
95
96                _itens += '<img src="' + _options[i][2] + '" '+ _options[i][3] +'/>';
97                _itens += '<a href='+_options[i][1]+' style="cursor:pointer; margin:3px;">' + _options[i][0] + '</a><br/>'
98        }
99
100        var _optionsItens                               = document.createElement("div");
101                _optionsItens.id                        = "fastMenuFileManager";
102                _optionsItens.className         = "x-menu";
103                _optionsItens.style.zIndex      = zIndex++;
104                _optionsItens.innerHTML         = _itens;
105                _optionsItens.onclick           = function(){ showHidden.hiddenObject(false); };
106                _optionsItens.onmouseout        = function(){ showHidden.hiddenObject(false); };
107                _optionsItens.onmouseover       = function(){ showHidden.hiddenObject(true); };
108                                                         
109                showHidden.action('onmouseover', 'onmouseout', _optionsItens);
110
111                _parent.parentNode.appendChild( _optionsItens );
112}
113
114function resizeDiv(){
115        defaultHeight = document.body.clientHeight ? document.body.clientHeight : document.body.offsetHeight;
116        document.getElementById('fmFileWindow').style.height = defaultHeight-170;
117        document.getElementById('content_folders').style.height = defaultHeight - (is_ie ? 230 : 215);
118
119}
120var headerMsgLock = false;
121var labelBefore = "";
122function write_msg (message){
123        connector.hideProgressBar();
124        if (headerMsgLock){
125                setTimeout('write_msg("'+message+'");', 300);
126                return;
127        }
128        headerMsgLock = true;
129        headerDiv = document.getElementById("main_title");
130        labelBefore = headerDiv.innerHTML;
131        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>';
132        setTimeout('headerMsgLock = false; document.getElementById("main_title").innerHTML = labelBefore;', 3000);
133}
134
135function write_error (message){
136        connector.hideProgressBar();
137        if (headerMsgLock){
138                setTimeout('write_error("'+message+'");', 300);
139                return;
140        }
141        headerMsgLock = true;
142        headerDiv = document.getElementById("main_title");
143        labelBefore = headerDiv.innerHTML;
144        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>';
145        setTimeout('headerMsgLock = false; document.getElementById("main_title").innerHTML = labelBefore;', 3000);
146}
147
148function displayMessages(){
149        var messages = document.getElementById("allMessages");
150
151        for (i=0; i < messages.childNodes.length; i++){
152                if (messages.childNodes[i].innerHTML.indexOf(get_lang('Error:')) == 0)
153                        write_error(messages.childNodes[i].innerHTML);
154                else
155                        write_msg(messages.childNodes[i].innerHTML);
156        }
157}
158
159function loadPreferences(){
160        preferencesEl = document.getElementById('userPreferences');
161        preferences = unserialize(preferencesEl.value);
162        preferencesEl.parentNode.removeChild(preferencesEl);
163}
164function reloadFiles(newCriteria){
165        if (newCriteria == criteria)
166                order_type = (order_type=='1'?'0':'1')
167        else
168                criteria = newCriteria;
169        toolbar.control('reload');
170}
171
172function initDrawApi(){
173        SecEl = document.getElementById('userKey');
174        crypt = new crypt(SecEl.value);
175        SecEl.parentNode.removeChild(SecEl);
176
177        loadPreferences();
178        preferences.files_per_page = (preferences.files_per_page != undefined) ? preferences.files_per_page : 10;
179        offset = (current_page-1)*preferences.files_per_page;
180
181        currentPath = document.getElementById('currentPath').value;
182        document.getElementById('divAppboxHeader').innerHTML = title_app;
183        displayMessages();
184        resizeDiv();
185        window.onresize = resizeDiv;
186        document.body.style.overflow = "hidden";
187        cExecute_('./index.php?menuaction=filemanager.uifilemanager.get_folders_list',handler.draw_folders_list);
188}
189
190function folderList(){
191        this.td = '<td style="padding-left: 2px; padding-right: 2px;" valign="middle">';
192}
193folderList.prototype.init = function(){
194        this.element = document.getElementById('fmFileWindow');
195}
196folderList.prototype.clear = function(){
197        this.element.innerHTML = "";
198}
199
200folderList.prototype.drawSearch = function(data){
201        var fl = folderList;
202        var files = unserialize(data);
203        if (files == null)
204        {
205                alert(get_lang('No results found'));
206                return
207        }
208        toolbar.clear();
209        fl.init();
210        fl.clear();
211        var newpage;
212        var sp_hd = '<span name="head" style="cursor: pointer; cursor: hand;"';
213        var sp_tl = '</span></td>';
214        newpage = '<table cellspacing="0" cellpadding="2" width="100%"><tbody><tr class="message_header">';
215        newpage += fl.td+'<input onclick="selectAll(this)" type="checkbox"></td><td></td><td></td>';
216        newpage += fl.td+sp_hd+' id="name">'+get_lang('file name')+sp_tl;
217        newpage += fl.td+sp_hd+' id="folder">'+get_lang('folder')+sp_tl;
218        if (preferences.mime_type =='1')
219                newpage += fl.td+sp_hd+' id="mime_type">'+get_lang('mime type')+sp_tl;
220        if (preferences.size =='1')
221                newpage += fl.td+sp_hd+' id="size">'+get_lang('size')+'</a>'+sp_tl;
222        if (preferences.created =='1')
223                newpage += fl.td+sp_hd+' id="created">'+get_lang('created')+'</a>'+sp_tl;
224        if (preferences.modified =='1')
225                newpage += fl.td+sp_hd+' id="modified">'+get_lang('modified')+'</a>'+sp_tl;
226        if (preferences.createdby_id =='1')
227                newpage += fl.td+sp_hd+' id="createdby_id">'+get_lang('created by')+'</a>'+sp_tl;
228        if (preferences.modifiedby_id =='1')
229                newpage += fl.td+sp_hd+' id="modifiedby_id">'+get_lang('modified by')+'</a>'+sp_tl;
230        if (preferences.comment =='1')
231                newpage += fl.td+sp_hd+' id="comment">'+get_lang('comment')+'</a>'+sp_tl;
232        if (preferences.version =='1') newpage += fl.td+sp_hd+' id="version">'+get_lang('version')+'</a>'+sp_tl+'</tr>';
233
234        for (var i=0; i < files.length; i++)
235        {
236                newpage += '<tr>'+fl.td;
237                newpage += '<input name="fileman" value="'+files[i].name+'" type="checkbox"></td>';
238                newpage += '<td></td><td></td>';
239                newpage += fl.td+'<img src="'+files[i].icon+'">';
240                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>&nbsp;</td>';
241                newpage += fl.td+files[i].directory+'</td>';
242                if (preferences.mime_type =='1') newpage += fl.td+files[i].mime_type+'</td>';
243                if (preferences.size =='1') newpage += fl.td+borkb(files[i].size)+'</td>';
244                if (preferences.created =='1') newpage += fl.td+files[i].created+'</td>';
245                if (preferences.modified =='1') newpage += fl.td+files[i].modified+'</td>';
246                if (preferences.createdby_id =='1') newpage += fl.td+files[i].createdby_id+'</td>';
247                if (preferences.modifiedby_id =='1') newpage += fl.td+files[i].modifiedby_id+'</td>';
248                if (preferences.comment =='1') newpage += fl.td+'<span id="'+files[i].name+'">'+files[i].comment+'</span></td>';
249                if (preferences.version =='1') newpage += fl.td+'<span>'+files[i].version+'</span></td></tr>';
250
251        }
252        fl.element.innerHTML = newpage;
253        fl.drawStripes();
254}
255folderList.prototype.createLine = function(file){
256                var fl = folderList;
257                retBuff = '<tr id="line_'+file.name+'" onmouseout="clearTimeout(menuTimeout)" onmousedown="_dragArea.dragEl=this;_dragArea.operation=\'drag\'">';
258                retBuff += fl.td;
259                retBuff += '<input name="fileman" value="'+file.name+'" type="checkbox"></td>';
260                if (permissions['private']) {
261                        retBuff += '<td><div id="restrict_'+file.name+'" onclick="setRestricted(\''+file.name+'\')" ';
262                        retBuff += 'style="background-image:url('+templatePath+'images/button_'+(file.pub == '1'?'lock':'unlock')+'.png);background-repeat: repeat-none;width:15px;height:12px;"></div></td>';
263                }
264                else
265                        retBuff += '<td></td>';
266
267                switch (file.mime_type)
268                {
269                        case 'text/html':
270                                retBuff += '<td><a href="./index.php?menuaction=filemanager.uifilemanager.export&file='+base64_encode(file.name)+'&path='+base64_encode(currentPath)+'"><div class="exportButton" alt="'+get_lang('export')+'" title="'+get_lang('export')+'"></div></a></td>';
271                                break;
272                        case 'application/zip':
273                                retBuff += '<td><div class="exportButton" onclick="unarchive(\''+file.name+'\')" alt="'+get_lang('unarchive')+'" title="'+get_lang('unarchive')+'"></a></td>'
274                                break;
275                        default:
276                                retBuff += '<td></td>';
277                }
278                retBuff += fl.td+'<div style="background-image:url('+(file.icon)+'); background-repeat: no-repeat; height:16px; padding-left: 18px; overflow: hidden;">';
279                if((file.mime_type).toUpperCase().indexOf('IMAGE') == 0)
280                        var mousefunc = 'draw_card(\'preview\',\''+file.name+'\')'
281                else
282                        var mousefunc = 'hide_card()';
283                retBuff += '<span class="fileLink" onmouseover="'+mousefunc+'" id="name_'+file.name+'" onclick="window.open(\'./index.php?menuaction=filemanager.uifilemanager.view&file='+base64_encode(file.name)+'&path='+base64_encode(currentPath)+'\');">'+file.name+'</span></div></td>';
284                if (preferences.mime_type =='1') retBuff += fl.td+file.mime_type+'</td>';
285                if (preferences.size =='1') retBuff += fl.td+borkb(file.size)+'</td>';
286                var now = new Date();
287                var midnight = Date.parse(now.toDateString());
288                var dtString = "";
289                if (preferences.created =='1') {
290                        var created = new Date();
291                        created.setTime(file.created*1000);
292                        if (created.getTime() > midnight)
293                                if (created.getMinutes() < 10 )
294                                        dtString = created.getHours()+":0"+created.getMinutes();
295                                else
296                                        dtString = created.getHours()+":"+created.getMinutes();
297                        else {
298                                dtString = (created.getDate() < 10) ? "0"+created.getDate()+"/" : created.getDate()+"/";
299                                dtString += (created.getMonth() < 9) ? "0" : "";
300                                dtString += (created.getMonth()+1)+"/"+created.getFullYear();
301                        }
302                        retBuff += fl.td+dtString+'</td>';
303                }
304                if (preferences.modified =='1'){
305                        var modified = new Date();
306                        modified.setTime(file.modified*1000);
307                        if (file.modified != "")
308                                if (modified.getTime() > midnight)
309                                        if (modified.getMinutes() < 10)
310                                                dtString = modified.getHours()+":0"+modified.getMinutes();
311                                        else
312                                                dtString = modified.getHours()+":"+modified.getMinutes();
313                                else {
314                                        dtString = (modified.getDate() < 10) ? "0"+modified.getDate()+"/" : modified.getDate()+"/";
315                                        dtString += (modified.getMonth() < 9) ? "0" : "";
316                                        dtString += (modified.getMonth()+1)+"/"+modified.getFullYear();
317                                }
318                        else
319                                dtString = "";
320                        retBuff += fl.td+dtString+'</td>';
321                }
322                if (preferences.owner =='1'){
323                        retBuff += fl.td;
324                        retBuff += '<div onmouseover="draw_card(\'user\',\''+file.owner+'\')">'+file.owner+'</div></td>';
325                }
326                if (preferences.createdby_id =='1'){
327                        retBuff += fl.td;
328                        retBuff += '<div onmouseover="draw_card(\'user\',\''+file.createdby_id+'\')">'+file.createdby_id+'</div></td>';
329                }
330                if (preferences.modifiedby_id =='1'){
331                        retBuff += fl.td;
332                        retBuff += '<div onmouseover="draw_card(\'user\',\''+file.modifiedby_id+'\')">'+file.modifiedby_id+'</div></td>';
333                }
334                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.comment==null?'':file.comment)+'" alt="'+get_lang('Click to change comments')+'" title="'+get_lang('Click to change comments')+'"></input></td>';
335                if (preferences.version =='1') retBuff += fl.td+'<span onclick="loadHistory(\''+file.name+'\')">'+file.version+'</span></td>';
336                retBuff += "</tr>";
337                return retBuff;
338}
339folderList.prototype.updateQuota = function(quotaSize,usedSpace){
340        if (parseInt(quotaSize) != 0){
341                var contentQuota = document.getElementById('content_quota');
342                if (contentQuota != null)
343                        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>';
344        }
345}
346folderList.prototype.drawFiles = function(data){
347        var fl = folderList;
348        var returnData = unserialize(data);
349        loadPermissions(returnData.permissions);
350        var files = returnData.files;
351        draw_paging(returnData.files_count,data);
352        fl.init();
353        fl.clear();
354        var newpage = '';
355        if (preferences.viewIcons == 1){
356                for (var i = 0; i < files.length; i++)
357                {
358                        newicon = '<div class="icon">';
359                        newicon += '<a href="./index.php?menuaction=filemanager.uifilemanager.view&file='+base64_encode(files[i].name)+'&path='+base64_encode(currentPath)+'" target="_blank">';
360                        newicon += '<div style="width:64; height:64; background-image:url('+files[i].icon+'); background-repeat: no-repeat;"></div>';
361                        newicon += '<span class="iconCaption">'+files[i].name+'</span>';
362                        newicon += '</a></div>';
363                        newpage += newicon;
364                }
365
366                fl.element.innerHTML = newpage;
367        }
368        else
369        {
370                var sp_hd = '<span name="head" style="cursor: pointer; cursor: hand;" onclick="reloadFiles(\'';
371                var sp_tl = '</span></td>';
372                newpage = '<table cellspacing="0" cellpadding="2" width="100%"><tbody><tr class="message_header">';
373                newpage += fl.td+'<input onclick="selectAll(this)" type="checkbox"></td><td></td><td></td>';
374                newpage += fl.td+sp_hd+'name\')" id="name">'+get_lang('file name')+sp_tl;
375                if (preferences.mime_type =='1')
376                        newpage += fl.td+sp_hd+'mime_type\')" id="mime_type">'+get_lang('mime type')+sp_tl;
377                if (preferences.size =='1')
378                        newpage += fl.td+sp_hd+'size\')" id="size">'+get_lang('size')+'</a>'+sp_tl;
379                if (preferences.created =='1')
380                        newpage += fl.td+sp_hd+'created\')" id="created">'+get_lang('created')+'</a>'+sp_tl;
381                if (preferences.modified =='1')
382                        newpage += fl.td+sp_hd+'modified\')" id="modified">'+get_lang('modified')+'</a>'+sp_tl;
383                if (preferences.owner =='1')
384                        newpage += fl.td+sp_hd+'owner\')" id="owner">'+get_lang('owner')+'</a>'+sp_tl;
385                if (preferences.createdby_id =='1')
386                        newpage += fl.td+sp_hd+'createdby_id\')" id="createdby_id">'+get_lang('created by')+'</a>'+sp_tl;
387                if (preferences.modifiedby_id =='1')
388                        newpage += fl.td+sp_hd+'modifiedby_id\')" id="modifiedby_id">'+get_lang('modified by')+'</a>'+sp_tl;
389                if (preferences.comment =='1')
390                        newpage += fl.td+sp_hd+'comment\')" id="comment">'+get_lang('comment')+'</a>'+sp_tl;
391                if (preferences.version =='1') newpage += fl.td+sp_hd+'version\')" id="version">'+get_lang('version')+'</a>'+sp_tl+'</tr>';
392                if (files != null)
393                        for (var i = 0; i < files.length; i++)
394                        {
395                                newpage += fl.createLine(files[i]);
396                        }
397                else
398                        newpage = "<b>"+get_lang('no files in this directory.')+"</b>";
399                fl.element.innerHTML = newpage;
400                header = document.getElementsByName('head');
401                for (var i=0; i < header.length; i++)
402                {
403                        if (header[i].id == criteria){
404                                header[i].style.fontWeight = 'bold';
405                                arrow = document.createElement('IMG');
406                                if (order_type == '1')
407                                        arrow.src = templatePath+'images/arrow_ascendant.gif';
408                                else
409                                        arrow.src = templatePath+'images/arrow_descendant.gif';
410                                header[i].appendChild(arrow);
411                        }
412                }
413                fl.drawStripes();
414        }
415        folderList.updateQuota(returnData.quota.quotaSize,returnData.quota.usedSpace);
416}
417folderList.prototype.drawStripes = function(){
418        var classTr = "tr_msg_read";
419        folderList.init();
420        var elements = folderList.element.firstChild.firstChild.childNodes;
421        for (var i = 1; i < elements.length; i++){
422                elements[i].className = classTr;
423                classTr = (classTr == "tr_msg_read"?"tr_msg_read2":"tr_msg_read");
424        }
425}
426var folderList = new folderList();
427
428function toolbar()
429{
430        var element;
431}
432toolbar.prototype.clear = function (){
433        this.element.innerHTML = "";
434}
435toolbar.prototype.load = function (){
436        this.element = document.getElementById('fmMenu');
437        if (permissions['read'] == 0){
438                this.element.innerHTML = "";
439                return;
440        }
441        var pageContent = '<table><tbody><tr>';
442        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>'; }
443
444        if (permissions['edit'] != 0){
445                pageContent += createButton('edit');
446                pageContent += createButton('rename');
447        }
448        if (permissions['delete'] != 0){
449                pageContent += createButton('delete');
450                pageContent += createButton('move_to');
451        }
452        pageContent += createButton('copy_to');
453
454        this.element.innerHTML = pageContent+'</tr></tbody></table>';
455
456}
457toolbar.prototype.getCheckedFiles = function () {
458        filesUrl = "";
459        var one_checked = false;
460        files=document.getElementsByName('fileman');
461        var j=0;
462        for (i = 0; i <  files.length; i++)
463                if (files[i].checked){
464                        one_checked = true;
465                        filesUrl += "&fileman["+j+"]="+base64_encode(files[i].value);
466                        j++;
467                }
468        if (!one_checked)
469        {
470                write_msg(get_lang('Please select a file'));
471                return;
472        }
473        return filesUrl;
474}
475
476toolbar.prototype.control = function ()
477{
478        var _arg        = arguments[0];
479        var _parent     = ( arguments[1] ) ? arguments[1] : null ;
480
481        switch ( _arg )
482        {
483                case 'new':
484                       
485                        address = document.location.toString();
486                        address = address.split("?");
487                       
488                        var itens = [
489                                        [ get_lang('empty file'),'javascript:newEmptyFile()',templatePath+'images/group_close.gif', '' ],
490                                        [ get_lang('File from model'), address[0]+"?menuaction=filemanager.uifilemanager.fileModels", templatePath+'images/group_close.gif', '' ],
491                                        [ get_lang('Upload'), 'javascript:newUpload()', templatePath+'images/group_close.gif', '' ]
492                                    ];
493                       
494                        draw_menu( itens, _parent );
495
496                        break;
497                       
498                case 'rename':
499                        var one_checked = false;
500                        files=document.getElementsByName('fileman');
501                        for (i = 0; i <  files.length; i++)
502                                if (files[i].checked){
503                                        one_checked = true;
504                                        files[i].checked = false;
505                                        var nameLink = document.getElementById('name_'+files[i].value);
506                                        var inputName = document.createElement('INPUT');
507                                        inputName.id = 'input_'+files[i].value;
508                                        var filename = nameLink.innerHTML;
509                                        inputName.value = filename;
510                                        inputName.onclick = function () { oldValue = inputName.value; }
511                                        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) };
512                                        inputName.onkeydown=function (event) {if (event.keyCode == KEY_ENTER) this.blur(); };
513                                        nameLink.parentNode.appendChild(inputName);
514                                        nameLink.parentNode.removeChild(nameLink);
515                                }
516                        if (!one_checked)
517                                write_msg(get_lang('Please select a file'));
518                        break;
519                case 'edit':
520                        var one_checked = false;
521                        files=document.getElementsByName('fileman');
522                        for (i = 0; i <  files.length; i++)
523                                if (files[i].checked){
524                                        one_checked = true;
525                                        var filename=files[i].value;
526                                }
527                        if (one_checked){
528                                address = document.location.toString();
529                                address = address.split("&");
530                                document.location = address[0]+"&"+arg+".x=1&filename="+base64_encode(filename)+".&path="+base64_encode(currentPath);
531                        }
532                        else
533                        {
534                                write_msg(get_lang('Please select a file'));
535                                return;
536                        }
537                        break;
538                case 'delete':
539                        var filesUrl = this.getCheckedFiles();
540                        cExecute_('./index.php?menuaction=filemanager.vfs_functions.delete&path='+
541                                        base64_encode(currentPath)+filesUrl,handler.del);
542                        break;
543                case 'archive':
544                        var filesUrl = this.getCheckedFiles();
545                        password = prompt(get_lang('Please, type a strong password (suggestion: at least 8 characters, letters and numbers) or leave it empty to archive only'));
546                        if (password == null)
547                                return;
548                        if (password.length > 0)
549                        {
550                                password2 = prompt(get_lang('Please, retype your password'));
551                                if (password != password2)
552                                {
553                                        alert(get_lang('Error:')+get_lang('passwords are differents'));
554                                        return;
555                                }
556                        }
557                        var pswd = crypt.encode(password);
558                        cExecute_('./index.php?menuaction=filemanager.vfs_functions.archive&pswd='+base64_encode(pswd.toString())+'&path='+base64_encode(currentPath)+filesUrl,handler.archive);
559                        break;
560                case 'move_to':
561                case 'copy_to':
562                       
563                        var filesUrl = this.getCheckedFiles();
564                       
565                        if ( filesUrl != undefined)
566                        {
567                                DocY -= ( folders.length * 30 );
568                               
569                                var action = ( ( _arg == 'move_to') ? get_lang('move to:') : get_lang('copy to:') );
570                               
571                                loadXtools();
572                               
573                                var _xml        = Xtools.xml('files');
574                                var _files      = _xml.documentElement;
575                                var _links      = _xml.createElement('links');
576                               
577                                for( var i = 0 ; i < folders.length ; i++ )
578                                {       
579                                        var _lk = _xml.createElement('lk');
580                                                _lk.setAttribute('function', "javascript:"+escape(_arg)+"('"+folders[i]+"','"+filesUrl+"'); close_window();" );
581                                                _lk.appendChild( _xml.createTextNode( folders[i].replace( my_home_filemanager , get_lang("My folder") ) ) );
582                                                _links.appendChild( _lk );
583                                }
584                               
585                                _files.appendChild( _links );
586
587                                var img_1 = path_filemanager + "templates/default/images/button_copy_to.png";
588                                var img_2 = path_filemanager + "templates/default/images/button_move_to.png";
589                                var img_3 = templatePath+"images/group_close.gif";     
590                               
591                                var pArgs =
592                                {
593                                        'action'        : action,
594                                        'img'           : ( ( _arg == 'move_to') ? img_2 : img_1 ),
595                                        'img_1'         : img_3,
596                                        'width'         : 380,
597                                        'height'        : 200
598                                };
599                               
600                                var code = Xtools.parse( _files, "copy_move_files.xsl", pArgs );
601
602                                draw_window( code , 380, 200 );
603                        }
604
605                        break;
606               
607                case 'reload':
608                       
609                        last_folder = last_folder ? last_folder : currentPath;
610                        current_folder = ( current_folder != "" ) ? current_folder : currentPath;
611                        cExecute_('./index.php?menuaction=filemanager.uifilemanager.dir_ls&path='+base64_encode(currentPath)+'&criteria='+criteria+'&otype='+order_type+'&limit='+preferences.files_per_page+'&offset='+offset,folderList.drawFiles);
612                        return;
613
614                case 'tools':
615                       
616                        var itens = [
617                                        [ get_lang('Preferences'), 'preferences/preferences.php?appname=filemanager', templatePath+'images/preferences.png', 'width="16px" height="16px"' ],
618                                        [ get_lang('Edit Folders'), 'javascript:editFolders()', templatePath+'images/button_createdir.png', 'width="16px" height="16px"'],
619                                        [ get_lang('Share Folders'), './index.php?menuaction=preferences.uiaclprefs.index&acl_app=filemanager', templatePath+'images/mime16_directory.png', 'width="16px" height="16px"'],
620                                        [ get_lang('View'), 'javascript:EditColumns()', templatePath+'images/editpaste.png', 'width="16px" height="16px"' ],
621                                        [ get_lang('Archive'), 'javascript:toolbar.control("archive")', templatePath+'images/button_zip.png', 'width="16px" height="16px"' ]
622                                    ];
623                                               
624                        draw_menu( itens, _parent );
625                       
626                        break;
627                default:
628                        return;
629        }
630}
631
632var toolbar = new toolbar();
633
634function unarchive(filename)
635{
636        password = crypt.encode(prompt(get_lang('Please, type archive password or leave it empty if it is not encrypted')));
637        if (password == null)
638                return;
639        cExecute_('./index.php?menuaction=filemanager.vfs_functions.unarchive&pswd='+base64_encode(password)+'&path='+base64_encode(currentPath)+'&file='+base64_encode(filename),handler.archive);
640}
641
642function move_to(to,filesUrl)
643{
644        cExecute_('./index.php?menuaction=filemanager.vfs_functions.moveto&from='+base64_encode(currentPath)+'&to='+base64_encode(to)+filesUrl,handler.moveto);
645}
646
647function copy_to(to,filesUrl)
648{
649        cExecute_('./index.php?menuaction=filemanager.vfs_functions.copyto&from='+base64_encode(currentPath)+'&to='+base64_encode(to)+filesUrl,handler.copyto);
650}
651
652function draw_card(type,name)
653{
654        clearTimeout(menuTimeout);
655        switch(type){
656                case 'preview':
657                        var url = './index.php?menuaction=filemanager.vfs_functions.summary&file='+base64_encode(name)+"&path="+base64_encode(currentPath);
658                        var htmlData = '<img src=\"'+url+'\">';
659                        menuTimeout = setTimeout("draw_window_card(\'"+htmlData+"\')",500);
660                        break;
661                case 'user':
662                        var url = './index.php?menuaction=filemanager.user.card&lid='+base64_encode(name);
663                        menuTimeout = setTimeout("cExecute_('"+url+"',draw_window_card)",500);
664                        break;
665                default:
666                        break;
667        }
668
669}
670function editFolders( operation )
671{
672       
673        if( operation == 'new' || operation == 'remove')
674        {
675                var _selectFolders      = document.getElementById('folders_box');
676                var Dfolder                     = "";
677                var parentDir           = "";
678               
679                for( var i = 0 ; i < _selectFolders.options.length; i++ )
680                {
681                        if( _selectFolders.options[i].selected )
682                        {
683                                Dfolder         = _selectFolders.options[i].value;
684                                parentDir       = _selectFolders.options[i].value;
685                        }
686                }
687        }
688       
689        if ( operation == 'new' )
690        {
691                var name = prompt(get_lang('Enter with the name of new file/directory'), '');
692               
693                if ( name != null && name != '' )
694                {
695                        if( parentDir == "" )
696                                parentDir = my_home_filemanager;
697                               
698                        var parentDir_en = base64_encode( parentDir );
699                        cExecute_('./index.php?menuaction=filemanager.uifilemanager.createdir&path='+parentDir_en+'&filename='+base64_encode(name), handler.refreshDir);
700                        currentPath = parentDir + '/' + name;
701                        close_window();
702                }
703        }
704        else
705        {
706                if ( operation == 'remove' )
707                {
708                        if( Dfolder != "" )
709                        {       
710                                if ( confirm(get_lang('Do you really want to remove folder: %1?',
711                                                Dfolder.replace(my_home_filemanager, get_lang("My folder"))), '') )
712                                {
713                                        var Dfolder_en = base64_encode( Dfolder );
714                                       
715                                        cExecute_('./index.php?menuaction=filemanager.uifilemanager.removedir&path=' + Dfolder_en ,handler.refreshDir );
716                                        var lastIndex = Dfolder.lastIndexOf('/');
717                                        currentPath = Dfolder.substr(0,lastIndex);
718                                        close_window();
719                                }
720                        }
721                        else
722                                alert( get_lang("You must choose a folder !") );
723                }
724                else
725                {
726                        loadXtools();
727                       
728                        var _xml                = Xtools.xml("root");
729                        var _doc                = _xml.documentElement;
730                        var _folders    = _xml.createElement("folders");
731                       
732                        for( var i = 0; i < folders.length; i++ )
733                        {
734                                if( folders[i].indexOf(my_home_filemanager) > -1 )
735                                {
736                                        var fd = _xml.createElement('name');
737                                                fd.setAttribute('value', folders[i] );
738                                                fd.appendChild( _xml.createTextNode(folders[i].replace(my_home_filemanager, get_lang("My folder"))) );
739                                                _folders.appendChild(fd);
740                                }
741                        }
742                       
743                        _doc.appendChild( _folders );
744                       
745                        var pArgs =
746                        {
747                                'lang_new_folder'                       : get_lang('new folder'),
748                                'lang_remove_folder'            : get_lang('remove folder'),
749                                'path_filemanager'                      : path_filemanager,
750                                'onclick_new_folder'            : 'editFolders("new")',
751                                'onclick_remove_folder'         : 'editFolders("remove")'
752                        };
753                       
754                        var code = Xtools.parse( _doc, "edit_folders.xsl", pArgs );
755                       
756                        draw_window( code, 310, 230 );
757                }
758        }
759}
760
761function draw_window_card(content){
762        var menu = document.getElementById('menu_newFile');
763        if (menu == null){
764                menu = document.createElement('DIV');
765                menu.className = 'menubox';
766                menu.id = "menu_newFile";
767                menu.style.left = DocX;
768                menu.style.top = (DocY+20)+"px";
769                menu.width = "100%";
770                menu.onmouseout = function () { menuTimeout = setTimeout("hide_card()",50);}
771                menu.onmouseover = function () { clearTimeout(menuTimeout); };
772                menu.style.zIndex='1';
773                document.getElementById('divAppbox').appendChild(menu);
774        }
775        else
776        {
777                menu.style.left = DocX;
778                menu.style.top = (DocY+20)+"px";
779        }
780        menu.innerHTML = content;
781
782        menu.style.visibility = 'visible';
783        clearTimeout(menuTimeout);
784        menuTimeout = setTimeout("hide_card()",4000);
785}
786function hide_card(){
787        var e=document.getElementById('menu_newFile');
788        if (e!=null)
789                e.style.visibility = 'hidden';
790}
791
792function draw_paging(num_files,data){
793        num_files = parseInt(num_files);
794        total_pages = 1;
795
796        if(last_folder != current_folder){
797                lastPage = 1;
798                current_page = 1;
799                last_folder = current_folder;
800        }
801
802        if(num_files > parseInt(preferences.files_per_page)) {
803                total_pages = parseInt(num_files/preferences.files_per_page);
804                if((num_files/preferences.files_per_page) > total_pages)
805                        total_pages++;
806        }
807
808        if(total_pages == 1) {
809                if(span_paging = document.getElementById("span_paging")) {
810                        span_paging.parentNode.removeChild(span_paging);
811                }
812                return;
813        }
814
815        span_paging = document.getElementById("span_paging");
816        if(!span_paging){
817                span_paging = document.createElement("DIV");
818                span_paging.id = "span_paging";
819                span_paging.className = "boxHeaderText";
820                span_paging.align="right";
821                document.getElementById("div_menu_c3").appendChild(span_paging);
822        }
823        span_paging.style.width="100%";
824        span_paging.innerHTML="";
825        files_range_begin = 1;
826        files_range_end = preferences.files_per_page;
827        if(current_page != 1) {
828                lnk_page = document.createElement("A");
829                lnk_page.setAttribute("href", "javascript:current_page=1;offset=0;toolbar.control('reload');");
830        }
831        else {
832                lnk_page = document.createElement("SPAN");
833        }
834        span_paging.appendChild(lnk_page);
835
836        lnk_page.innerHTML = "&lt;&lt;";
837        lnk_page.title = get_lang("First");
838        span_paging.innerHTML += "&nbsp;";
839
840        if(current_page == lastPage + numPages)
841                lastPage = current_page - 1;
842        else if((lastPage != 1 && lastPage == current_page) || current_page == total_pages)
843                lastPage = current_page - (numPages - 1);
844        else if(current_page == 1)
845                lastPage = 1;
846
847        if(lastPage < 1)
848                lastPage = 1;
849        else if(lastPage > 1 && (lastPage > (total_pages -(numPages - 1))))
850                lastPage = total_pages -(numPages - 1);
851
852        var     hasMarked = false;
853
854        for(i = lastPage; i <= total_pages; i++) {
855
856                if(current_page == i || (i == total_pages && !hasMarked)) {
857                        lnk_page = document.createElement("SPAN");
858                        span_paging.appendChild(lnk_page);
859                        lnk_page.innerHTML = "&nbsp;<b>"+i+"</b>&nbsp;";
860                        hasMarked = true;
861                        continue;
862                }
863                else{
864                        lnk_page = document.createElement("A");
865                        span_paging.appendChild(lnk_page);
866                        files_range_begin = ((i*preferences.files_per_page)-(preferences.files_per_page-1));
867                        files_range_end = (i*preferences.files_per_page);
868                        lnk_page.setAttribute("href", "javascript:current_page="+i+";offset=((current_page-1)*preferences.files_per_page);toolbar.control('reload');");
869               }
870
871                lnk_page.innerHTML = "&nbsp;...&nbsp;";
872
873                if(i == (lastPage + numPages))
874                                break;
875                else if(lastPage == 1 || i != lastPage)
876                        lnk_page.innerHTML = "&nbsp;"+i+"&nbsp;";
877
878                span_paging.innerHTML += "&nbsp;";                                                                           
879        }
880
881        if(current_page != total_pages) {
882                lnk_page = document.createElement("A");
883                files_range_begin = ((total_pages*preferences.files_per_page)-(preferences.files_per_page-1));
884                files_range_end = (total_pages*preferences.files_per_page);
885                lnk_page.setAttribute("href", "javascript:current_page="+total_pages+";offset=((current_page-1)*preferences.files_per_page);toolbar.control('reload');");
886        }
887        else {
888                lnk_page = document.createElement("SPAN");
889        }
890        span_paging.innerHTML += "&nbsp;";
891        span_paging.appendChild(lnk_page);
892
893        lnk_page.title = get_lang("Last");
894        lnk_page.innerHTML = "&gt;&gt;";
895}
896
Note: See TracBrowser for help on using the repository browser.