source: sandbox/filemanager/js/draw_api.js @ 1719

Revision 1719, 10.6 KB checked in by amuller, 14 years ago (diff)

Ticket #597 - Melhorias no módulo gerenciador de arquivos com ajax

Line 
1
2function getPointer(e) {
3        if (is_ie) {
4                DocX = event.clientX + document.body.scrollLeft;
5                DocY = event.clientY + document.body.scrollTop;
6        } else {
7                DocX = e.pageX;
8                DocY = e.pageY;
9        }
10}
11document.onmousemove = getPointer;
12
13
14function draw_menu(id,elements){
15        var menu = document.getElementById('menu_newFile'+id);
16        if (menu == null){
17                menu = document.createElement('DIV');
18                menu.id = "menu_newFile"+id;
19                menu.style.left = DocX;
20                menu.style.top = DocY;
21                //menu.style.left = left_pos+"px";
22                //menu.style.top = top_pos+"px";
23                for(j in elements)
24                {
25                        if (typeof(elements[j]['img']) != 'undefined'){
26                                var img = document.createElement( 'IMG' );
27                                img.src = elements[j]['img'];
28                                menu.appendChild(img);
29                        }
30                        var link = document.createElement( 'A' );
31                        link.href = elements[j]['url'];
32                        link.appendChild( document.createTextNode( elements[j]['text'] ) );
33                        menu.appendChild(link);
34                        menu.appendChild(document.createElement( 'BR' ));
35                }
36
37                menu.onmouseout = function () { menuTimeout = setTimeout("document.getElementById('menu_newFile"+id+"').style.visibility = 'hidden'",50);}
38                menu.onmouseover = function () { clearTimeout(menuTimeout); };
39                menu.className = 'menubox';
40                menu.style.zIndex='1';
41                document.getElementById('divAppboxHeader').appendChild(menu);
42        }
43        menu.style.visibility = 'visible';
44}
45
46function resizeDiv(){
47        defaultHeight = document.body.clientHeight ? document.body.clientHeight : document.body.offsetHeight;
48        document.getElementById('fmFileWindow').style.height = defaultHeight-170;
49        document.getElementById('content_folders').style.height = defaultHeight - (is_ie ? 230 : 215);
50
51}
52var headerMsgLock = false;
53var labelBefore = "";
54function write_msg (message){
55        if (headerMsgLock){
56                setTimeout('write_msg("'+message+'");', 300);
57                return;
58        }
59        headerMsgLock = true;
60        headerDiv = document.getElementById("divAppboxHeader");
61        labelBefore = headerDiv.innerHTML;
62        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>';
63        setTimeout('headerMsgLock = false; document.getElementById("divAppboxHeader").innerHTML = labelBefore;', 3000);
64}
65
66function write_error (message){
67        if (headerMsgLock){
68                setTimeout('write_error("'+message+'");', 300);
69                return;
70        }
71        headerMsgLock = true;
72        headerDiv = document.getElementById("divAppboxHeader");
73        labelBefore = headerDiv.innerHTML;
74        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>';
75        setTimeout('headerMsgLock = false; document.getElementById("divAppboxHeader").innerHTML = labelBefore;', 3000);
76}
77
78function displayMessages(){
79        var messages = document.getElementById("allMessages");
80
81        for (i=0; i < messages.childNodes.length; i++){
82                if (messages.childNodes[i].innerHTML.indexOf(get_lang('Error:')) == 0)
83                        write_error(messages.childNodes[i].innerHTML);
84                else
85                        write_msg(messages.childNodes[i].innerHTML);
86        }
87}
88
89function loadPreferences(){
90        preferencesEl = document.getElementById('userPreferences');
91        preferences = unserialize(preferencesEl.value);
92}
93
94
95function reloadFiles(newCriteria){
96        if (newCriteria == criteria)
97                order_type = (order_type=='1'?'0':'1')
98        else
99                criteria = newCriteria;
100        toolbar_control('reload');
101}
102function selectAll(el){
103        checkBoxes = document.getElementsByName('fileman');
104        if (el.checked)
105                for (i=0; i < checkBoxes.length; i++)
106                        checkBoxes[i].checked = true;
107        else
108                for (i=0; i < checkBoxes.length; i++)
109                        checkBoxes[i].checked = false;
110
111}
112function borkb(size){
113                kbyte = 1024;
114                mbyte = kbyte*1024;
115                gbyte = mbyte*1024;
116                if (!size)
117                        size = 0;
118                if (size < kbyte)
119                        return size + 'B';
120                else if (size < mbyte)
121                        return parseInt(size/kbyte) + 'KB';
122                else if (size < gbyte)
123                        return (size/mbyte).toFixed(1) + 'MB';
124                else
125                        return parseInt(size/gbyte).toFixed(1) + 'GB';
126}
127
128function drawFiles(data){
129        var fmFileWindow = document.getElementById('fmFileWindow');
130        var files = unserialize(data);
131        fmFileWindow.innerHTML = "";
132        var newpage;
133        var td_hd = '<td style="padding-left: 2px; padding-right: 2px;" valign="middle">';
134        var sp_hd = '<span name="head" style="cursor: pointer; cursor: hand;" onclick="reloadFiles(\'';
135        var sp_tl = '</span></td>';
136        newpage = '<table cellspacing="0" cellpadding="2"><tbody><tr class="message_header">';
137        newpage += td_hd+'<input onclick="selectAll(this)" type="checkbox"></td><td></td><td></td>';
138        newpage += td_hd+sp_hd+'name\')" id="name">'+get_lang('file name')+sp_tl;
139        if (preferences.mime_type =='1')
140                newpage += td_hd+sp_hd+'mime\')" id="mime">'+get_lang('mime type')+sp_tl;
141        if (preferences.size =='1')
142                newpage += td_hd+sp_hd+'size\')" id="size">'+get_lang('size')+'</a>'+sp_tl;
143        if (preferences.created =='1')
144                newpage += td_hd+sp_hd+'created\')" id="created">'+get_lang('created')+'</a>'+sp_tl;
145        if (preferences.modified =='1')
146                newpage += td_hd+sp_hd+'modified\')" id="modified">'+get_lang('modified')+'</a>'+sp_tl;
147        if (preferences.owner =='1')
148                newpage += td_hd+sp_hd+'owner\')" id="owner">'+get_lang('owner')+'</a>'+sp_tl;
149        if (preferences.createdby_id =='1')
150                newpage += td_hd+sp_hd+'creatdby\')" id="creatdby">'+get_lang('created by')+'</a>'+sp_tl;
151        if (preferences.modifiedby_id =='1')
152                newpage += td_hd+sp_hd+'modifdby\')" id="modifdby">'+get_lang('modified by')+'</a>'+sp_tl;
153        if (preferences.comment =='1')
154                newpage += td_hd+sp_hd+'comm\')" id="comm">'+get_lang('comment')+'</a>'+sp_tl;
155        if (preferences.version =='1') newpage += td_hd+sp_hd+'vers\')" id="vers">'+get_lang('version')+'</a>'+sp_tl+'</tr>';
156       
157        var classTr = "tr_msg_read";
158        for (var i=0; i < files.length; i++)
159        {
160                newpage += '<tr class="'+classTr+'">'+td_hd;
161                newpage += '<input name="fileman" value="'+files[i].name+'" type="checkbox"></td>';
162                if (permissions['private']) {
163                        newpage += '<td><img id="restrict_'+files[i].name+'" onclick="setRestricted(\''+files[i].name+'\')" ';
164                        newpage += 'src="'+templatePath+'images/button_'+(files[i].pub == '1'?'lock':'unlock')+'.png"></td>';
165                }
166                else
167                        newpage += '<td></td>';
168
169                if (files[i].mime == 'text/html')
170                        newpage += '<td><a href="/index.php?menuaction=filemanager.uifilemanager.export&file='+base64_encode(files[i].name)+';path='+base64_encode(currentPath)+'"><img alt="'+get_lang('export')+'" title="'+get_lang('export')+'" src="'+templatePath+'images/button_export.png"></a></td>';
171                else
172                        newpage += '<td></td>';
173                newpage += td_hd+'<img src="'+(files[i].icon)+'">';
174                newpage += '<a id="name_'+files[i].name+'" href="/index.php?menuaction=filemanager.uifilemanager.view&file='+base64_encode(files[i].name)+'&path='+base64_encode(currentPath)+'" target="_blank">'+files[i].name+'</a>&nbsp;</td>';
175                if (preferences.mime_type =='1') newpage += td_hd+files[i].mime+'</td>';
176                if (preferences.size =='1') newpage += td_hd+borkb(files[i].size)+'</td>';
177                if (preferences.created =='1') newpage += td_hd+files[i].creatd+'</td>';
178                if (preferences.modified =='1') newpage += td_hd+files[i].modifd+'</td>';
179                if (preferences.owner =='1') newpage += td_hd+files[i].owner+'</td>';
180                if (preferences.createdby_id =='1') newpage += td_hd+files[i].creatdby+'</td>';
181                if (preferences.modifiedby_id =='1') newpage += td_hd+files[i].modifdby+'</td>';
182                if (files[i].comm == null || files[i].comm.length == 0)
183                        files[i].comm = "&lt;"+get_lang("no comments")+"&gt;";
184                if (preferences.comment =='1') newpage += td_hd+'<span id="'+files[i].name+'" onclick="setComments(this)">'+files[i].comm+'</span></td>';
185                if (preferences.version =='1') newpage += td_hd+'<span onclick="loadHistory(\''+files[i].name+'\')">'+files[i].vers+'</span></td></tr>';
186                // /index.php?menuaction=filemanager.uifilemanager.history&amp;file=MDAxMC5lbWw%253D&amp;path=L2hvbWUvem9yZWlh
187                classTr = (classTr == "tr_msg_read"?"tr_msg_read2":"tr_msg_read");
188
189        }
190        fmFileWindow.innerHTML = newpage;
191        header = document.getElementsByName('head');
192        for (var i=0; i < header.length; i++)
193        {
194                if (header[i].id == criteria){
195                        header[i].style.fontWeight = 'bold';
196                        arrow = document.createElement('IMG');
197                        if (order_type == '1')
198                                arrow.src = templatePath+'images/arrow_ascendant.gif';
199                        else
200                                arrow.src = templatePath+'images/arrow_descendant.gif';
201                        header[i].appendChild(arrow);
202                }
203        }
204}
205
206
207function loadToolbar(){
208        if (permissions['read'] == 0)
209                return;
210        var toolbar = document.getElementById('fmMenu');
211        var pageContent = '<table><tbody><tr>';
212        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>'; }
213
214        if (permissions['edit'] != 0){
215                pageContent += createButton('edit');
216                pageContent += createButton('rename');
217        }
218        if (permissions['delete'] != 0){
219                pageContent += createButton('delete');
220                pageContent += createButton('move_to');
221        }
222        pageContent += createButton('copy_to');
223
224        toolbar.innerHTML = pageContent+'</tr></tbody></table>';
225
226
227}
228
229function loadPermissions(data){
230        var permission = parseInt(data);
231        var ACL_READ = 1;
232        var ACL_ADD = 2;
233        var ACL_EDIT = 4;
234        var ACL_DELETE = 8;
235        var ACL_PRIVATE = 16;
236
237        permissions['read']=(permission & ACL_READ);
238        permissions['add']=(permission & ACL_ADD);
239        permissions['edit']=(permission & ACL_EDIT);
240        permissions['delete']=(permission & ACL_DELETE);
241        permissions['private']=(permission & ACL_PRIVATE);
242        loadToolbar();
243        loadPreferences();
244        toolbar_control('reload');
245}
246
247function initDrawApi(){
248        currentPath = document.getElementById('currentPath').value;
249        cExecute('/index.php?menuaction=filemanager.uifilemanager.get_permissions&path='+base64_encode(currentPath),loadPermissions);
250        quotaSize = document.getElementById('quotaSize').value;
251        usedSpace = document.getElementById('usedSpace').value;
252
253        document.getElementById('divAppboxHeader').innerHTML = title_app;
254
255        if (parseInt(quotaSize) != 0)
256                document.getElementById('content_quota').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)+'% ('+(usedSpace/1024/1024).toFixed(1)+'M/'+(quotaSize/1024/1024)+'M)</span></td></tr></tbody></table></td></tr></table>';
257        displayMessages();
258        resizeDiv();
259        window.onresize = resizeDiv;
260        document.body.style.overflow = "hidden";
261
262        // Disabled for now
263        // document.getElementById('main_table').style.visibility = "";
264
265}
266
Note: See TracBrowser for help on using the repository browser.