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

Revision 3885, 33.7 KB checked in by alexandrecorreia, 13 years ago (diff)

Ticket #1657 - Correcao de layout para exibicao do historico do arquivo

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