Ignore:
Timestamp:
11/27/09 10:24:20 (14 years ago)
Author:
amuller
Message:

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/filemanager/js/draw_api.js

    r1704 r1719  
     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 
    146function resizeDiv(){ 
    247        defaultHeight = document.body.clientHeight ? document.body.clientHeight : document.body.offsetHeight; 
     
    449        document.getElementById('content_folders').style.height = defaultHeight - (is_ie ? 230 : 215); 
    550 
    6 } 
    7 function initDrawApi(){ 
    8         cExecute ('/index.php?menuaction=filemanager.user.get_preferences', save_preferences); 
    9         var quotaSize = document.getElementById('quotaSize').value; 
    10         var usedSpace = document.getElementById('usedSpace').value; 
    11         var currentPath = document.getElementById('currentPath').value; 
    12         document.getElementById('divAppboxHeader').innerHTML = title_app; 
    13  
    14  
    15         if (parseInt(quotaSize) != 0) 
    16                 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>'; 
    17         displayMessages(); 
    18         resizeDiv(); 
    19         window.onresize = resizeDiv; 
    20         // Disabled for now 
    21         // document.getElementById('main_table').style.visibility = ""; 
    2251} 
    2352var headerMsgLock = false; 
     
    5786        } 
    5887} 
    59 var preferences; 
    60 function save_preferences(data){ 
    61         preferences = unserialize(data); 
    62 } 
     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 TracChangeset for help on using the changeset viewer.