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

Revision 3569, 31.1 KB checked in by alexandrecorreia, 13 years ago (diff)

Ticket #1395 - Padronizacao das janelas do filemanager com as do Expresso.

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