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

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

File:
1 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} 
Note: See TracChangeset for help on using the changeset viewer.