Ignore:
Timestamp:
03/18/11 18:18:12 (13 years ago)
Author:
alexandrecorreia
Message:

Ticket #1648 - Correcao( codigo ) e melhoria( laytou/informacao ) no upload de arquivos para o servidor.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2/filemanager/js/handler.js

    r3619 r3879  
    1 function handler(){ 
    2 } 
    3  
    4 handler.prototype.del = function(data) 
     1(function() 
    52{ 
    6         var _return = data; 
    7         var deletedFiles = ""; 
     3        function archive(data) 
     4        { 
     5                var returnVal = data.split('|'); 
     6                 
     7                if (returnVal[0] == 'False') 
     8                { 
     9                        write_error(get_lang('It was not possible to execute it')); 
     10                } 
     11                else 
     12                 
     13                if (returnVal[0] == 'wpasswd') 
     14                { 
     15                        write_error(get_lang('Wrong password')); 
     16                        return; 
     17                } 
     18                else 
     19                         write_msg(get_lang('Your operation was successfully executed')); 
     20                 
     21                toolbar.control('reload'); 
     22        } 
     23 
     24        function copyto(data) 
     25        { 
     26                var returnVal = data.split('|'); 
     27                 
     28                if (returnVal[0] == 'NODIR') 
     29                        write_error(get_lang('Could not copy file because no destination directory is given')); 
     30                else if(returnVal[0] == 'SOMEERROR') 
     31                { 
     32                        write_error(get_lang('Could not copy %1 file(s)',returnVal[1])); 
     33                } 
     34                else  if(returnVal[0] == 'COPIED') 
     35                { 
     36                        if (returnVal[1] == 1) 
     37                                write_msg(get_lang('File copied successfuly')); 
     38                        else 
     39                                write_msg(get_lang('%1 files copied successfuly', returnVal[1])); 
     40                } 
     41        } 
     42 
     43        function del(data) 
     44        { 
     45                var _return = data; 
     46                var deletedFiles = ""; 
     47 
     48                _return = _return.substring(0, ( _return.length - 1 ) ); 
     49                _return = _return.split("|"); 
     50 
     51 
     52                for (var i = 0 ; i < _return.length; i++) 
     53                {        
     54                        if ( _return[i] == 'False') 
     55                        { 
     56                                write_error(get_lang('Could not delete %1', _return[i+1]) ); 
     57                                return; 
     58                        } 
     59                        else 
     60                        { 
     61                                if ( _return[i] != "" ) 
     62                                { 
     63                                        deletedFiles += ", " + _return[i]; 
     64                                } 
     65 
     66                                if (i > 3) //to avoid big message 
     67                                { 
     68                                        deletedFiles = "  " + _return.length + " " +get_lang("files"); 
     69                                        break; 
     70                                } 
     71                        } 
     72                } 
     73 
     74                write_msg(get_lang('Deleted %1',deletedFiles.substr(2))); 
     75 
     76                toolbar.control('reload'); 
     77        } 
     78 
     79        function draw_folders_list(data) 
     80        { 
     81                toolbar.control('reload'); 
     82                folders_tree = new dFTree({name: 'main'}); 
     83 
     84                folders = unserialize(data); 
     85 
     86                var rootFold = new dNode({id:'root', caption: get_lang("Directories") }); 
     87                folders_tree.add(rootFold,'root'); 
     88 
     89                for ( var i = 0 ; i < folders.length; i++ ) 
     90                { 
     91                        var lastIndex = folders[i].lastIndexOf('/'); 
     92                        if (folders[i] != "/home/"+preferences.lid) 
     93                                var name = folders[i].substr(lastIndex+1,folders[i].length); 
     94                        else 
     95                                var name = get_lang("My Folder"); 
     96                        var parentDir = folders[i].substr(0,lastIndex); 
     97 
     98                        if ( parentDir == '/home' ) 
     99                                parentDir = 'root'; 
     100 
     101                        var search_child = function( ListFolders, name ) 
     102                        { 
     103                                for ( j = 0 ; j < ListFolders.length; j++ ) 
     104                                { 
     105                                        if ( ListFolders[j].indexOf( name + '/') > -1 ) 
     106                                                return true; 
     107                                } 
     108 
     109                                return false; 
     110                        } 
     111 
     112                        folder = new dNode({id:folders[i], caption:name, plusSign:search_child(folders,folders[i]), onClick:'load(\''+folders[i]+'\',this)'}); 
     113 
     114                        if (i == 0) 
     115                                folders_tree.add(folder,'root'); 
     116                        else 
     117                                folders_tree.add(folder,parentDir); 
     118                } 
     119 
     120                document.getElementById('content_folders').innerHTML = ""; 
     121 
     122                folders_tree.draw(document.getElementById('content_folders')); 
     123 
     124                folders_tree.openTo(currentPath); 
     125 
     126                folders_tree.getNodeById(currentPath)._select(); 
     127        } 
     128 
     129        function moveto(data)  
     130        { 
     131                returnVal = data.split('|'); 
     132                if (returnVal[0] == 'NODIR') 
     133                        write_error(get_lang('Could not copy file because no destination directory is given')); 
     134                else if(returnVal[0] == 'SOMEERROR'){ 
     135                        write_error(get_lang('Could not move %1 file(s)',returnVal[1])); 
     136                } 
     137                else  if(returnVal[0] == 'MOVED'){ 
     138                        if (returnVal[1] == 1) 
     139                                write_msg(get_lang('File moved successfuly')); 
     140                        else 
     141                                write_msg(get_lang('%1 files moved successfuly', returnVal[1])); 
     142                } 
     143                handler.refreshDir(); 
     144        } 
     145 
     146        function refreshDir(data)  
     147        { 
     148                cExecute_('./index.php?menuaction=filemanager.uifilemanager.get_folders_list',handler.draw_folders_list); 
     149        } 
     150 
     151        function rename(data)  
     152        { 
     153                if ( data == null ) 
     154                { 
     155                        var returnVal = new Array ("True",oldValue,oldValue); 
     156                } 
     157                else 
     158                        var returnVal = data.split('|'); 
     159                 
     160                if ( returnVal[0] == "True" ) 
     161                { 
     162                        if (returnVal[1] != returnVal[2]) write_msg(get_lang('Renamed %1 to %2',returnVal[1],returnVal[2])); 
     163                                var nameLink = document.createElement('A'); 
     164                         
     165                        var inputName = document.getElementById('input_'+returnVal[1]); 
     166                        var trFile = inputName.parentNode.parentNode.parentNode; 
     167 
     168                        nameLink.innerHTML = returnVal[2]; 
     169                        nameLink.href="./index.php?menuaction=filemanager.uifilemanager.view&file=" 
     170                                        + base64_encode(returnVal[2])+"&path="+base64_encode(currentPath); 
     171                        nameLink.target = "_blank"; 
     172                        nameLink.id = "name_"+returnVal[2]; 
     173 
     174                        inputName.parentNode.appendChild(nameLink); 
     175                        inputName.parentNode.removeChild(inputName); 
     176                        trFile.innerHTML = trFile.innerHTML.replace(returnVal[1],returnVal[2]); 
     177                        trFile.id = trFile.id.replace(returnVal[1],returnVal[2]); 
     178                } 
     179                else 
     180                { 
     181                        if ( returnVal[1] == "badchar" ) 
     182                                write_error(get_lang('File names cannot contain "%1"',returnVal[2])); 
     183                        else if (returnVal[1] == "slashes") 
     184                                write_error(get_lang('File names cannot contain \\ or /')); 
     185                        else if (returnVal[1] == "editing") 
     186                                write_error(get_lang('This file is being edited right now')); 
     187                        else 
     188                                write_error(get_lang('Could not rename %1 to %2', returnVal[1], returnVal[2])); 
     189                } 
     190 
     191        } 
    8192         
    9         _return = _return.substring(0, ( _return.length - 1 ) ); 
    10         _return = _return.split("|"); 
     193        function restricted(data) 
     194        { 
     195                if (data.indexOf("True") == 0) 
     196                { 
     197                                returnVal = data.split('|'); 
     198                                var img_lock = document.getElementById('restrict_'+returnVal[1]); 
     199 
     200                        if (img_lock.style.backgroundImage.indexOf('button_unlock') > 0) 
     201                        { 
     202                                img_lock.style.backgroundImage = img_lock.style.backgroundImage.replace(/button_unlock/g,'button_lock'); 
     203                                write_msg(get_lang('%1 marked as restricted',returnVal[1])); 
     204                        } 
     205                        else 
     206                        { 
     207                                img_lock.style.backgroundImage = img_lock.style.backgroundImage.replace(/button_lock/g,'button_unlock'); 
     208                                write_msg(get_lang('%1 unmarked as restricted',returnVal[1])); 
     209                        } 
     210                } 
     211                else 
     212                        write_error("Could not mark as restricted"); 
     213        } 
     214 
     215        function updateComment(data) 
     216        { 
     217                var returnVal = data.split('|'); 
     218                if (data.indexOf("True") == 0) 
     219                { 
     220                        write_msg(get_lang('Updated comment for %1',returnVal[1])); 
     221                } 
     222                else 
     223                { 
     224                        if (returnVal[1] == "badchar") 
     225                                write_error(get_lang('Comments cannot contain "%1"',returnVal[2])); 
     226                        else 
     227                                write_error(get_lang('You have no permission to access this file')); 
     228                } 
     229 
     230        } 
    11231         
     232        function upload(data) 
     233        { 
     234                var response = unserialize(data); 
     235 
     236                if ( response[0] == "Ok" ) 
     237                { 
     238                        write_msg(get_lang('All files created sucessfuly')); 
     239                        _winBuild( "dwindownewUpload" , "remove" );      
     240                } 
     241                else 
     242                {        
     243                        var _inputs = document.getElementsByTagName('input'); 
     244 
     245                        for( var i = 0; i < response.length; i++ ) 
     246                        { 
     247                                for( var j = 0 ; j < _inputs.length ; j++ ) 
     248                                { 
     249                                        if( _inputs[j].getAttribute('type') == 'file' ) 
     250                                        {        
     251                                                if( _inputs[j].value.indexOf( response[i]['file'] ) > -1 ) 
     252                                                { 
     253                                                        var _parent     = _inputs[j].parentNode; 
     254                                                        var _div = _parent.firstChild;   
     255                                                        _div.style.display              = "block"; 
     256                                                        _div.style.color                        = "red"; 
     257                                                        _div.style.height                       = "16px"; 
     258                                                        _div.style.paddingLeft  = "17px"; 
     259                                                        _div.style.background   = "url('"+path_filemanager+"images/warning.gif') no-repeat left top"; 
     260                                                        _div.style.cursor                       = "pointer"; 
     261                                                        _div.onclick    = function(){ this.style.display = 'none'; } ; 
     262                                                         
     263                                                        if( response[i]['size_max'] ) 
     264                                                        { 
     265                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: Tamanho do arquivo "  
     266                                                                                          + borkb( response[i]['size'] ) + "  - Permitido  " + borkb( response[i]['size_max'] ); 
     267                                                        } 
     268                                                        else    if( response[i]['badchar'] ) 
     269                                                        {        
     270                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: "  + response[i]['badchar'];    
     271                                                        } 
     272                                                        else    if( response[i]['directory'] ) 
     273                                                        {        
     274                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: "  + response[i]['directory'];  
     275                                                        } 
     276                                                        else    if( response[i]['sendFile'] ) 
     277                                                        {        
     278                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: "  + response[i]['sendFile'];   
     279                                                        } 
     280                                                        else    if( response[i]['undefined'] ) 
     281                                                        { 
     282                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: "  + response[i]['undefined'];  
     283                                                        } 
     284                                                }        
     285                                        } 
     286                                }        
     287                        }        
     288                }        
     289 
     290                connector.hideProgressBar();             
     291                toolbar.control('reload'); 
     292        } 
     293 
     294        function handler(){} 
     295 
     296        handler.prototype.archive                       = archive; 
     297        handler.prototype.copyto                        = copyto; 
     298        handler.prototype.del                           = del; 
     299        handler.prototype.draw_folders_list     = draw_folders_list; 
     300        handler.prototype.moveto                        = moveto; 
     301        handler.prototype.refreshDir                    = refreshDir; 
     302        handler.prototype.rename                        = rename; 
     303        handler.prototype.restricted                    = restricted; 
     304        handler.prototype.updateComment = updateComment; 
     305        handler.prototype.upload                        = upload; 
     306 
     307        window.handler = new handler; 
    12308         
    13         for (var i = 0 ; i < _return.length; i++) 
    14         {        
    15                 if ( _return[i] == 'False') 
    16                 { 
    17                         write_error(get_lang('Could not delete %1', _return[i+1]) ); 
    18                         return; 
    19                 } 
    20                 else 
    21                 { 
    22                         if ( _return[i] != "" ) 
    23                         { 
    24                                 deletedFiles += ", " + _return[i]; 
    25                         } 
    26          
    27                         if (i > 3) //to avoid big message 
    28                         { 
    29                                 deletedFiles = "  " + _return.length + " " +get_lang("files"); 
    30                                 break; 
    31                         } 
    32                 } 
    33         } 
    34          
    35         write_msg(get_lang('Deleted %1',deletedFiles.substr(2))); 
    36          
    37         toolbar.control('reload'); 
    38  
    39 } 
    40  
    41 handler.prototype.rename = function(data) { 
    42         if (data == null){ 
    43                 var returnVal = new Array ("True",oldValue,oldValue); 
    44         } 
    45         else 
    46                 var returnVal = data.split('|'); 
    47         if ( returnVal[0] == "True" ){ 
    48                 if (returnVal[1] != returnVal[2]) write_msg(get_lang('Renamed %1 to %2',returnVal[1],returnVal[2])); 
    49                 var nameLink = document.createElement('A'); 
    50                 var inputName = document.getElementById('input_'+returnVal[1]); 
    51                 var trFile = inputName.parentNode.parentNode.parentNode; 
    52  
    53                 nameLink.innerHTML = returnVal[2]; 
    54                 nameLink.href="./index.php?menuaction=filemanager.uifilemanager.view&file="+base64_encode(returnVal[2])+"&path="+base64_encode(currentPath); 
    55                 nameLink.target = "_blank"; 
    56                 nameLink.id = "name_"+returnVal[2]; 
    57  
    58                 inputName.parentNode.appendChild(nameLink); 
    59                 inputName.parentNode.removeChild(inputName); 
    60                 trFile.innerHTML = trFile.innerHTML.replace(returnVal[1],returnVal[2]); 
    61                 trFile.id = trFile.id.replace(returnVal[1],returnVal[2]); 
    62         } 
    63         else 
    64         { 
    65                 if (returnVal[1] == "badchar") 
    66                         write_error(get_lang('File names cannot contain "%1"',returnVal[2])); 
    67                 else if (returnVal[1] == "slashes") 
    68                         write_error(get_lang('File names cannot contain \\ or /')); 
    69                 else if (returnVal[1] == "editing") 
    70                         write_error(get_lang('This file is being edited right now')); 
    71                 else 
    72                         write_error(get_lang('Could not rename %1 to %2', returnVal[1], returnVal[2])); 
    73         } 
    74  
    75 } 
    76  
    77 handler.prototype.upload = function(data) 
    78 { 
    79          
    80         connector.hideProgressBar(); 
    81         var response = unserialize(data); 
    82         if (response[0] == "Ok") 
    83                 write_msg(get_lang('All files created sucessfuly')); 
    84         else 
    85                 for (var i=0;i < response.length; i++) 
    86                         write_error(response[i]); 
    87         toolbar.control('reload'); 
    88 } 
    89  
    90 handler.prototype.restricted = function(data) 
    91 { 
    92         if (data.indexOf("True") == 0){ 
    93                 returnVal = data.split('|'); 
    94                 var img_lock = document.getElementById('restrict_'+returnVal[1]); 
    95                 if (img_lock.style.backgroundImage.indexOf('button_unlock') > 0) 
    96                 { 
    97                         img_lock.style.backgroundImage = img_lock.style.backgroundImage.replace(/button_unlock/g,'button_lock'); 
    98                         write_msg(get_lang('%1 marked as restricted',returnVal[1])); 
    99                 } 
    100                 else 
    101                 { 
    102                         img_lock.style.backgroundImage = img_lock.style.backgroundImage.replace(/button_lock/g,'button_unlock'); 
    103                         write_msg(get_lang('%1 unmarked as restricted',returnVal[1])); 
    104                 } 
    105         } 
    106         else 
    107                 write_error("Could not mark as restricted"); 
    108 } 
    109  
    110 handler.prototype.archive = function(data) 
    111 { 
    112         returnVal = data.split('|'); 
    113         if (returnVal[0] == 'False') 
    114         { 
    115                 write_error(get_lang('It was not possible to execute it')); 
    116         } 
    117         else 
    118         if (returnVal[0] == 'wpasswd') 
    119         { 
    120                 write_error(get_lang('Wrong password')); 
    121                 return; 
    122         } 
    123         else 
    124                  write_msg(get_lang('Your operation was successfully executed')); 
    125         toolbar.control('reload'); 
    126  
    127 } 
    128  
    129 handler.prototype.updateComment = function (data) 
    130 { 
    131         var returnVal = data.split('|'); 
    132         if (data.indexOf("True") == 0) 
    133         { 
    134                 write_msg(get_lang('Updated comment for %1',returnVal[1])); 
    135         } 
    136         else 
    137         { 
    138                 if (returnVal[1] == "badchar") 
    139                         write_error(get_lang('Comments cannot contain "%1"',returnVal[2])); 
    140                 else 
    141                         write_error(get_lang('You have no permission to access this file')); 
    142         } 
    143  
    144 } 
    145  
    146 handler.prototype.draw_folders_list = function (data) 
    147 { 
    148         toolbar.control('reload'); 
    149         folders_tree = new dFTree({name: 'main'}); 
    150          
    151         folders = unserialize(data); 
    152          
    153         var rootFold = new dNode({id:'root', caption: get_lang("Directories") }); 
    154         folders_tree.add(rootFold,'root'); 
    155          
    156         for ( var i = 0 ; i < folders.length; i++ ) 
    157         { 
    158                 var lastIndex = folders[i].lastIndexOf('/'); 
    159                 if (folders[i] != "/home/"+preferences.lid) 
    160                         var name = folders[i].substr(lastIndex+1,folders[i].length); 
    161                 else 
    162                         var name = get_lang("My Folder"); 
    163                 var parentDir = folders[i].substr(0,lastIndex); 
    164          
    165                 if ( parentDir == '/home' ) 
    166                         parentDir = 'root'; 
    167                  
    168                 var search_child = function( ListFolders, name ) 
    169                 { 
    170                         for ( j = 0 ; j < ListFolders.length; j++ ) 
    171                         { 
    172                                 if ( ListFolders[j].indexOf( name + '/') > -1 ) 
    173                                         return true; 
    174                         } 
    175                          
    176                         return false; 
    177                 } 
    178                  
    179                 folder = new dNode({id:folders[i], caption:name, plusSign:search_child(folders,folders[i]), onClick:'load(\''+folders[i]+'\',this)'}); 
    180                  
    181                 if (i == 0) 
    182                         folders_tree.add(folder,'root'); 
    183                 else 
    184                         folders_tree.add(folder,parentDir); 
    185         } 
    186          
    187         document.getElementById('content_folders').innerHTML = ""; 
    188          
    189         folders_tree.draw(document.getElementById('content_folders')); 
    190      
    191         folders_tree.openTo(currentPath); 
    192          
    193         folders_tree.getNodeById(currentPath)._select(); 
    194 } 
    195  
    196 handler.prototype.copyto = function (data) 
    197 { 
    198         returnVal = data.split('|'); 
    199         if (returnVal[0] == 'NODIR') 
    200                 write_error(get_lang('Could not copy file because no destination directory is given')); 
    201         else if(returnVal[0] == 'SOMEERROR'){ 
    202                 write_error(get_lang('Could not copy %1 file(s)',returnVal[1])); 
    203         } 
    204         else  if(returnVal[0] == 'COPIED'){ 
    205                 if (returnVal[1] == 1) 
    206                         write_msg(get_lang('File copied successfuly')); 
    207                 else 
    208                         write_msg(get_lang('%1 files copied successfuly', returnVal[1])); 
    209         } 
    210 } 
    211  
    212 handler.prototype.moveto = function (data) { 
    213         returnVal = data.split('|'); 
    214         if (returnVal[0] == 'NODIR') 
    215                 write_error(get_lang('Could not copy file because no destination directory is given')); 
    216         else if(returnVal[0] == 'SOMEERROR'){ 
    217                 write_error(get_lang('Could not move %1 file(s)',returnVal[1])); 
    218         } 
    219         else  if(returnVal[0] == 'MOVED'){ 
    220                 if (returnVal[1] == 1) 
    221                         write_msg(get_lang('File moved successfuly')); 
    222                 else 
    223                         write_msg(get_lang('%1 files moved successfuly', returnVal[1])); 
    224         } 
    225         handler.refreshDir(); 
    226 } 
    227 handler.prototype.refreshDir = function (data) { 
    228         cExecute_('./index.php?menuaction=filemanager.uifilemanager.get_folders_list',handler.draw_folders_list); 
    229 } 
    230  
    231 var handler = new handler(); 
     309})(); 
Note: See TracChangeset for help on using the changeset viewer.