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

Revision 3436, 31.8 KB checked in by amuller, 13 years ago (diff)

Ticket #1395 - Implementação da janela no Expresso

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