source: trunk/filemanager/js/jscode/draw_api.js @ 2888

Revision 2888, 31.6 KB checked in by amuller, 14 years ago (diff)

Ticket #1094 - Corrige algumas falhas referentes a json

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