Ignore:
Timestamp:
11/12/09 09:06:56 (15 years ago)
Author:
amuller
Message:

Ticket #597 - Implementações novas, com arquivos restritos, quota, ckeditor

Location:
sandbox/filemanager/js
Files:
1 added
4 edited

Legend:

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

    r1575 r1627  
     1var menuTimeout; 
     2/* draw_menu(id of menu, left position, top position, menu elements) */ 
     3function draw_menu(id,left_pos,top_pos,elements){ 
     4        var menu = document.getElementById('menu_newFile'+id); 
     5        if (menu == null){ 
     6                menu = document.createElement('DIV'); 
     7                menu.id = "menu_newFile"+id; 
     8                menu.style.left = left_pos+"px"; 
     9                menu.style.top = top_pos+"px"; 
     10                for(j in elements) 
     11                        menu.innerHTML += "<a href="+elements[j]['url']+">"+elements[j]['text']+"</a><br>"; 
     12 
     13                menu.onmouseout = function () { menuTimeout = setTimeout("document.getElementById('menu_newFile"+id+"').style.visibility = 'hidden'",50);} 
     14                menu.onmouseover = function () { clearTimeout(menuTimeout); }; 
     15                menu.className = "menu_box"; 
     16                document.getElementById('tableDivAppbox').appendChild(menu); 
     17        } 
     18        menu.style.visibility = ''; 
     19 
     20} 
    121function formfmValidate(arg) 
    222{ 
     23        var button = document.getElementsByName(arg); 
     24        button = button[0]; 
    325        switch (arg) { 
    426                case 'newdir': 
    5                 case 'newfile': 
    6                         var name = prompt(get_lang('Enter with the name of new file/directory'), ''); 
    7                         var input_text = document.getElementById('newfile_or_dir'); 
    8                         if (name == null || ! validateFileExtension(name)) 
    9                         { 
    10                                 return false; 
    11                         } 
    12                         else 
    13                         { 
    14                                 var fileExtension = name.split("."); 
    15                                 fileExtension = fileExtension[1]; 
    16                                 if (typeof(fileExtension) == 'undefined') 
    17                                         input_text.value = name+".html"; 
    18                                 else 
    19                                         input_text.value = name; 
    20                                 return true; 
    21                         } 
    22                         break 
     27                        break; 
     28                case 'new': 
     29                        elements = new Array(); 
     30                        elements[0] = new Array(); 
     31                        elements[0]['text'] = get_lang('empty file'); 
     32                        elements[0]['url'] = 'javascript:newEmptyFile();'; 
     33                        elements[1] = new Array(); 
     34                        elements[1]['text'] = get_lang('File from model'); 
     35                        address = document.location.toString(); 
     36                        address = address.split("?"); 
     37                        elements[1]['url'] = address[0]+"?menuaction=filemanager.uifilemanager.fileModels"; 
     38                        elements[2] = new Array(); 
     39                        elements[2]['text'] = get_lang('Upload'); 
     40                        address = document.location.toString(); 
     41                        address = address.split("?"); 
     42                        elements[2]['url'] = address[0]+"?menuaction=filemanager.uifilemanager.index&upload=clicked&upload.x=1&path="+base64_encode(document.getElementById('cdtodir').value); 
     43 
     44                        draw_menu(arg,button.parentNode.offsetLeft+50,190,elements); 
     45                        return false; 
     46                        break; 
    2347                case 'edit_comments': 
    2448                case 'rename': 
     
    3458                        else 
    3559                        { 
    36                                 alert(get_lang('Please select a file')); 
     60                                write_msg(get_lang('Please select a file')); 
    3761                                return false; 
    3862                        } 
     63                        break; 
     64                case 'move_to': 
     65                case 'copy_to': 
     66                        filesUrl = ""; 
     67                        var one_checked = false; 
     68                        files=document.getElementsByClassName('checkbox'); 
     69                        for (i = 0; i <  files.length; i++) 
     70                                if (files[i].checked){ 
     71                                        one_checked = true; 
     72                                        filesUrl += "&"+files[i].name+"="+files[i].value; 
     73                                } 
     74                        if (!one_checked) 
     75                        { 
     76                                write_msg(get_lang('Please select a file')); 
     77                                return false; 
     78                        } 
     79                        var elements = new Array(); 
     80                        inputEl = document.getElementsByName('todir'); 
     81                        for(i=0; i< inputEl[0].childNodes.length; i++) 
     82                        { 
     83                                elements[i] = new Array(); 
     84                                elements[i]['text'] =inputEl[0].childNodes[i].innerHTML; 
     85                                address = document.location.toString(); 
     86                                address = address.split("&"); 
     87                                elements[i]['url'] = address[0]+ 
     88                                        "&todir="+inputEl[0].childNodes[i].innerHTML+ 
     89                                        "&"+arg+".x=10"+filesUrl; 
     90                        } 
     91                        draw_menu(arg,button.parentNode.offsetLeft+50,190,elements); 
     92                        return false; 
     93                        break; 
    3994                default: 
    4095                        return true; 
     
    62117        if ( error_flag == true ) 
    63118        { 
    64                 alert(get_lang('File extension forbidden or invalid file') + '.'); 
     119                write_error(get_lang('File extension forbidden or invalid file') + '.'); 
    65120                return false; 
    66121        } 
     
    81136 
    82137} 
     138 
     139 
     140function newEmptyFile(){ 
     141        var name = prompt(get_lang('Enter with the name of new file/directory'), ''); 
     142        var input_text = document.getElementById('newfile_or_dir'); 
     143        if (name != null && name != '' && validateFileExtension(name)) 
     144        { 
     145                var fileExtension = name.split("."); 
     146                fileExtension = fileExtension[1]; 
     147                if (typeof(fileExtension) == 'undefined') 
     148                        input_text.value = name+".html"; 
     149                else 
     150                        input_text.value = name; 
     151                address = document.location.toString(); 
     152                address = address.split("&"); 
     153                document.location = address[0]+"&newfile.x=clicked&newfile_or_dir="+input_text.value; 
     154 
     155        } 
     156 
     157} 
     158 
     159 
     160/* 
     161 * base64.js - Base64 encoding and decoding functions 
     162 * 
     163 * Copyright (c) 2007, David Lindquist <david.lindquist@gmail.com> 
     164 * Released under the MIT license 
     165 */ 
     166 
     167function base64_encode(str) { 
     168        var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; 
     169        var encoded = []; 
     170        var c = 0; 
     171        while (c < str.length) { 
     172                var b0 = str.charCodeAt(c++); 
     173                var b1 = str.charCodeAt(c++); 
     174                var b2 = str.charCodeAt(c++); 
     175                var buf = (b0 << 16) + ((b1 || 0) << 8) + (b2 || 0); 
     176                var i0 = (buf & (63 << 18)) >> 18; 
     177                var i1 = (buf & (63 << 12)) >> 12; 
     178                var i2 = isNaN(b1) ? 64 : (buf & (63 << 6)) >> 6; 
     179                var i3 = isNaN(b2) ? 64 : (buf & 63); 
     180                encoded[encoded.length] = chars.charAt(i0); 
     181                encoded[encoded.length] = chars.charAt(i1); 
     182                encoded[encoded.length] = chars.charAt(i2); 
     183                encoded[encoded.length] = chars.charAt(i3); 
     184        } 
     185        return encoded.join(''); 
     186} 
     187 
     188function base64_decode(str) { 
     189        var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; 
     190        var invalid = { 
     191strlen: (str.length % 4 != 0), 
     192        chars:  new RegExp('[^' + chars + ']').test(str), 
     193        equals: (/=/.test(str) && (/=[^=]/.test(str) || /={3}/.test(str))) 
     194        }; 
     195        if (invalid.strlen || invalid.chars || invalid.equals) 
     196                throw new Error('Invalid base64 data'); 
     197        var decoded = []; 
     198        var c = 0; 
     199        while (c < str.length) { 
     200                var i0 = chars.indexOf(str.charAt(c++)); 
     201                var i1 = chars.indexOf(str.charAt(c++)); 
     202                var i2 = chars.indexOf(str.charAt(c++)); 
     203                var i3 = chars.indexOf(str.charAt(c++)); 
     204                var buf = (i0 << 18) + (i1 << 12) + ((i2 & 63) << 6) + (i3 & 63); 
     205                var b0 = (buf & (255 << 16)) >> 16; 
     206                var b1 = (i2 == 64) ? -1 : (buf & (255 << 8)) >> 8; 
     207                var b2 = (i3 == 64) ? -1 : (buf & 255); 
     208                decoded[decoded.length] = String.fromCharCode(b0); 
     209                if (b1 >= 0) decoded[decoded.length] = String.fromCharCode(b1); 
     210                if (b2 >= 0) decoded[decoded.length] = String.fromCharCode(b2); 
     211        } 
     212        return decoded.join(''); 
     213} 
     214 
     215 
     216function setRestricted(data){ 
     217        if (data.indexOf("True") == 0){ 
     218                returnVal = data.split(':'); 
     219                var img_lock = document.getElementById('restrict_'+returnVal[1]); 
     220                if (img_lock.src.indexOf('button_unlock') > 0) 
     221                { 
     222                        img_lock.src = img_lock.src.replace(/button_unlock/g,'button_lock'); 
     223                        write_msg(get_lang('%1 marked as restricted',returnVal[1])); 
     224                } 
     225                else 
     226                { 
     227                        img_lock.src = img_lock.src.replace(/button_lock/g,'button_unlock'); 
     228                        write_msg(get_lang('%1 unmarked as restricted',returnVal[1])); 
     229                } 
     230        } 
     231        else 
     232                write_error("Could not mark as restricted"); 
     233} 
  • sandbox/filemanager/js/draw_api.js

    r1564 r1627  
    44var usedSpace = document.getElementById('usedSpace').value; 
    55 
    6 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+'M/'+quotaSize+'M)</span></td></tr></tbody></table></td></tr></table>' 
     6document.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>' 
     7 
     8var headerMsgLock = false; 
     9var labelBefore = ""; 
     10function write_msg (message){ 
     11        if (headerMsgLock){ 
     12                setTimeout('write_msg("'+message+'");', 300); 
     13                return; 
     14        } 
     15        headerMsgLock = true; 
     16        headerDiv = document.getElementById("divAppboxHeader"); 
     17        labelBefore = headerDiv.innerHTML; 
     18        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>'; 
     19        setTimeout('headerMsgLock = false; document.getElementById("divAppboxHeader").innerHTML = labelBefore;', 3000); 
     20} 
     21 
     22function write_error (message){ 
     23        if (headerMsgLock){ 
     24                setTimeout('write_error("'+message+'");', 300); 
     25                return; 
     26        } 
     27        headerMsgLock = true; 
     28        headerDiv = document.getElementById("divAppboxHeader"); 
     29        labelBefore = headerDiv.innerHTML; 
     30        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>'; 
     31        setTimeout('headerMsgLock = false; document.getElementById("divAppboxHeader").innerHTML = labelBefore;', 3000); 
     32} 
     33 
     34function displayMessages(){ 
     35        var messages = document.getElementById("allMessages"); 
     36        for (i=0; i < messages.childNodes.length; i++){ 
     37                if (messages.childNodes[i].innerHTML.indexOf(get_lang('Error:')) == 0) 
     38                        write_error(messages.childNodes[i].innerHTML); 
     39                else 
     40                        write_msg(messages.childNodes[i].innerHTML); 
     41        } 
     42} 
     43setTimeout('displayMessages();',500); 
  • sandbox/filemanager/js/global.js

    r1556 r1627  
    11var title_app = '<table height="16px" border=0 width=100% cellspacing=0 cellpadding=2>'+ 
    2 '<tr>'+ 
     2'<tr class="divAppboxHeader">'+ 
    33'<td style="padding-left:17px" width=33% id="content_quota" align=left></td>'+ 
    4 '<td class="divAppboxHeader" width=33% id="main_title">Expresso FileManager</td>'+ 
     4'<td width=33% id="main_title">Expresso FileManager</td>'+ 
    55'<td width=33% id="div_menu_c3" align=right></td>'+ 
    66'</tr></table>'; 
  • sandbox/filemanager/js/refresh.js

    r1575 r1627  
    22 
    33setTimeout("pooling_refresh();",refresh_time); 
    4  
    5  
    6 /* 
    7  * base64.js - Base64 encoding and decoding functions 
    8  * 
    9  * Copyright (c) 2007, David Lindquist <david.lindquist@gmail.com> 
    10  * Released under the MIT license 
    11  */ 
    12  
    13 function base64_encode(str) { 
    14         var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; 
    15         var encoded = []; 
    16         var c = 0; 
    17         while (c < str.length) { 
    18                 var b0 = str.charCodeAt(c++); 
    19                 var b1 = str.charCodeAt(c++); 
    20                 var b2 = str.charCodeAt(c++); 
    21                 var buf = (b0 << 16) + ((b1 || 0) << 8) + (b2 || 0); 
    22                 var i0 = (buf & (63 << 18)) >> 18; 
    23                 var i1 = (buf & (63 << 12)) >> 12; 
    24                 var i2 = isNaN(b1) ? 64 : (buf & (63 << 6)) >> 6; 
    25                 var i3 = isNaN(b2) ? 64 : (buf & 63); 
    26                 encoded[encoded.length] = chars.charAt(i0); 
    27                 encoded[encoded.length] = chars.charAt(i1); 
    28                 encoded[encoded.length] = chars.charAt(i2); 
    29                 encoded[encoded.length] = chars.charAt(i3); 
    30         } 
    31         return encoded.join(''); 
    32 } 
    33  
    34 function base64_decode(str) { 
    35         var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; 
    36         var invalid = { 
    37 strlen: (str.length % 4 != 0), 
    38         chars:  new RegExp('[^' + chars + ']').test(str), 
    39         equals: (/=/.test(str) && (/=[^=]/.test(str) || /={3}/.test(str))) 
    40         }; 
    41         if (invalid.strlen || invalid.chars || invalid.equals) 
    42                 throw new Error('Invalid base64 data'); 
    43         var decoded = []; 
    44         var c = 0; 
    45         while (c < str.length) { 
    46                 var i0 = chars.indexOf(str.charAt(c++)); 
    47                 var i1 = chars.indexOf(str.charAt(c++)); 
    48                 var i2 = chars.indexOf(str.charAt(c++)); 
    49                 var i3 = chars.indexOf(str.charAt(c++)); 
    50                 var buf = (i0 << 18) + (i1 << 12) + ((i2 & 63) << 6) + (i3 & 63); 
    51                 var b0 = (buf & (255 << 16)) >> 16; 
    52                 var b1 = (i2 == 64) ? -1 : (buf & (255 << 8)) >> 8; 
    53                 var b2 = (i3 == 64) ? -1 : (buf & 255); 
    54                 decoded[decoded.length] = String.fromCharCode(b0); 
    55                 if (b1 >= 0) decoded[decoded.length] = String.fromCharCode(b1); 
    56                 if (b2 >= 0) decoded[decoded.length] = String.fromCharCode(b2); 
    57         } 
    58         return decoded.join(''); 
    59 } 
    60  
    61  
    624 
    635 
     
    668        } 
    679        var filename=document.getElementsByName('edit_file'); 
    68         cExecute("/index.php?menuaction=filemanager.uifilemanager.touch&file="+base64_encode(filename[0].value),handler); 
     10        cExecute("/index.php?menuaction=filemanager.vfs_functions.touch&file="+base64_encode(filename[0].value),handler); 
    6911        setTimeout("pooling_refresh();",refresh_time); 
    7012} 
Note: See TracChangeset for help on using the changeset viewer.