source: trunk/filemanager/js/handler.js @ 5327

Revision 5327, 9.1 KB checked in by alexandrecorreia, 12 years ago (diff)

Ticket #2260 - Sincronismo do módulo Filemanager para o trunk.

RevLine 
[3879]1(function()
[3619]2{
[3879]3        function archive(data)
4        {
5                var returnVal = data.split('|');
[3913]6
[3879]7                if (returnVal[0] == 'False')
[3619]8                {
[3879]9                        write_error(get_lang('It was not possible to execute it'));
10                }
11                else
[3913]12
[3879]13                if (returnVal[0] == 'wpasswd')
[5327]14                {
15                        write_error(get_lang('Wrong password'));
16                        return;
17                }
18                else
19                        write_msg(get_lang('Your operation was successfully executed'));
[3879]20
[5327]21                toolbar.control('reload');
[3913]22        }
23
[3879]24        function copyto(data)
25        {
26                var returnVal = data.split('|');
[3913]27
[3879]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')
[3619]31                {
[3879]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')
[3619]55                        {
[3879]56                                write_error(get_lang('Could not delete %1', _return[i+1]) );
57                                return;
[3619]58                        }
[3879]59                        else
[3019]60                        {
[3879]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                                }
[3019]71                        }
[3619]72                }
[3879]73
74                write_msg(get_lang('Deleted %1',deletedFiles.substr(2)));
75
76                toolbar.control('reload');
[3619]77        }
78
[3879]79        function draw_folders_list(data)
80        {
[5327]81                var contentFolders = document.getElementById('content_folders');
82               
[3879]83                toolbar.control('reload');
84                folders_tree = new dFTree({name: 'main'});
85                folders = unserialize(data);
[5327]86               
87                contentFolders.innerHTML = "";
88               
[3889]89                var rootFold = new dNode({id:'root', caption: get_lang("Directories")});
[5327]90               
[3879]91                folders_tree.add(rootFold,'root');
[3019]92
[3879]93                for ( var i = 0 ; i < folders.length; i++ )
94                {
95                        var lastIndex = folders[i].lastIndexOf('/');
96                        if (folders[i] != "/home/"+preferences.lid)
97                                var name = folders[i].substr(lastIndex+1,folders[i].length);
98                        else
99                                var name = get_lang("My Folder");
100                        var parentDir = folders[i].substr(0,lastIndex);
[3019]101
[3879]102                        if ( parentDir == '/home' )
103                                parentDir = 'root';
[3619]104
[3879]105                        var search_child = function( ListFolders, name )
106                        {
107                                for ( j = 0 ; j < ListFolders.length; j++ )
108                                {
109                                        if ( ListFolders[j].indexOf( name + '/') > -1 )
110                                                return true;
111                                }
[3619]112
[3879]113                                return false;
114                        }
[3619]115
[3879]116                        folder = new dNode({id:folders[i], caption:name, plusSign:search_child(folders,folders[i]), onClick:'load(\''+folders[i]+'\',this)'});
117
118                        if (i == 0)
119                                folders_tree.add(folder,'root');
120                        else
121                                folders_tree.add(folder,parentDir);
122                }
123
[5327]124                folders_tree.draw(contentFolders);
[3879]125
126                folders_tree.openTo(currentPath);
127
128                folders_tree.getNodeById(currentPath)._select();
[5327]129
[3019]130        }
[3879]131
132        function moveto(data)
[3019]133        {
[3879]134                returnVal = data.split('|');
135                if (returnVal[0] == 'NODIR')
136                        write_error(get_lang('Could not copy file because no destination directory is given'));
137                else if(returnVal[0] == 'SOMEERROR'){
138                        write_error(get_lang('Could not move %1 file(s)',returnVal[1]));
139                }
140                else  if(returnVal[0] == 'MOVED'){
141                        if (returnVal[1] == 1)
142                                write_msg(get_lang('File moved successfuly'));
143                        else
144                                write_msg(get_lang('%1 files moved successfuly', returnVal[1]));
145                }
146                handler.refreshDir();
[3019]147        }
148
[3879]149        function refreshDir(data)
[3019]150        {
[5327]151                if( data.toString() === "True" )
152                {
153                        var _action = './index.php?menuaction=filemanager.uifilemanager.get_folders_list';
154                       
155                        cExecute_( _action , draw_folders_list );
156                }
157                else
158                {
159                        write_msg( data );
160                }
[3019]161        }
[3879]162
[3913]163        function rename()
[3019]164        {
[3913]165                if( arguments.length > 1 )
166                {       
167                        var _input      = arguments[0];
168                        var _span       = arguments[1]  ;
169                        var _parent     = _input.parentNode;
[3585]170
[3913]171                        _input.style.height = ( parseInt(_input.style.height) - 4 );
172
173                        _span.style.className   = "fileLink";
174                        _span.innerHTML = _input.value;
175
[3924]176                        var _handlerRename =  function(data)
177                        {
178                                var _data = unserialize( data );
179
180                                for( var i = 0 ; i < _data.length; i++ )
181                                {       
182                                        if( _data[i]['error'] )
183                                        {       
184                                                // Remove Input
185                                                if( _input != null )
186                                                        _parent.removeChild( _input );
187
188                                                // Add Span
189                                                if( _span != null )
190                                                {       
191                                                        _parent.appendChild( _span );
192                                                }
193
194                                                write_msg("ERROR : " + _data[i]['error'] );
195                                        }
196
197                                        if( _data[i]['true'] )
198                                        {
199                                                write_msg( _data[i]['true'] );
200                                                toolbar.control('reload');
201                                        }
202                                }
203                        }
204
[3913]205                        if( _parent != null )
206                        {       
207                                var url         = './index.php?menuaction=filemanager.vfs_functions.rename';
208                                var params      = 'file='+base64_encode(_input.id.substr(6))+'&to='+base64_encode(_input.value)+'&path='+base64_encode(currentPath);
209
210                                cExecute_(  url,  _handlerRename , params );
211                        }
212
[3879]213                }
214        }
[3585]215       
[3879]216        function restricted(data)
[3019]217        {
[3879]218                if (data.indexOf("True") == 0)
[3585]219                {
[3913]220                        returnVal = data.split('|');
221                        var img_lock = document.getElementById('restrict_'+returnVal[1]);
[3879]222
223                        if (img_lock.style.backgroundImage.indexOf('button_unlock') > 0)
[3591]224                        {
[3879]225                                img_lock.style.backgroundImage = img_lock.style.backgroundImage.replace(/button_unlock/g,'button_lock');
226                                write_msg(get_lang('%1 marked as restricted',returnVal[1]));
[3591]227                        }
[3879]228                        else
229                        {
230                                img_lock.style.backgroundImage = img_lock.style.backgroundImage.replace(/button_lock/g,'button_unlock');
231                                write_msg(get_lang('%1 unmarked as restricted',returnVal[1]));
232                        }
[3534]233                }
[3541]234                else
[3879]235                        write_error("Could not mark as restricted");
[3019]236        }
[3585]237
[3879]238        function updateComment(data)
239        {
240                var returnVal = data.split('|');
241                if (data.indexOf("True") == 0)
242                {
243                        write_msg(get_lang('Updated comment for %1',returnVal[1]));
244                }
[3019]245                else
[3879]246                {
247                        if (returnVal[1] == "badchar")
248                                write_error(get_lang('Comments cannot contain "%1"',returnVal[2]));
249                        else
250                                write_error(get_lang('You have no permission to access this file'));
251                }
252
[3019]253        }
[3879]254       
255        function upload(data)
256        {
[3881]257                var _inputs             = document.getElementsByTagName('input');
258                var response    = unserialize(data);
[3619]259
[3889]260                if ( response[ 'postsize' ] )
261                {
262                        /*
263                         * response['postize'] = ERRO POST;
264                         * response['max_postsize] = diretiva do PHP para POST_MAX_SIZE;
265                         */
[3913]266
[3889]267                        write_msg( get_lang("ERROR: Use the advanced file sending!") );
268                        return false;
269                }
270
[3881]271                if ( response[0] != "Ok" )
[3889]272                {
[3879]273                        for( var i = 0; i < response.length; i++ )
274                        {
275                                for( var j = 0 ; j < _inputs.length ; j++ )
276                                {
[3881]277                                        if( _inputs[j].getAttribute('type') == "file")
[3879]278                                        {       
[3881]279                                                var _indexOf = response[i]['file'].toUpperCase().indexOf(_inputs[j].value.toUpperCase() );
[3913]280
[3881]281                                                if( response[i]['file'].toUpperCase() === _inputs[j].value.toUpperCase() && _indexOf > -1 )
282                                                {       
[3896]283                                                        _inputs[j].parentNode.setAttribute("erroUpload", "true");
[3913]284
[3879]285                                                        var _parent     = _inputs[j].parentNode;
286                                                        var _div = _parent.firstChild; 
287                                                        _div.style.display              = "block";
288                                                        _div.style.color                        = "red";
289                                                        _div.style.height                       = "16px";
290                                                        _div.style.paddingLeft  = "17px";
291                                                        _div.style.background   = "url('"+path_filemanager+"images/warning.gif') no-repeat left top";
292                                                        _div.style.cursor                       = "pointer";
[3889]293                                                        _div.onclick    = function(){this.style.display = 'none';} ;
[3913]294
[3879]295                                                        if( response[i]['size_max'] )
296                                                        {
297                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: Tamanho do arquivo "
[3913]298                                                                        + borkb( response[i]['size'] ) + "  - Permitido  " + borkb( response[i]['size_max'] );
[3879]299                                                        }
[3881]300                                                        else if( response[i]['badchar'] )
[3879]301                                                        {       
302                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: "  + response[i]['badchar'];   
303                                                        }
[3881]304                                                        else if( response[i]['directory'] )
[3879]305                                                        {       
306                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: "  + response[i]['directory'];
307                                                        }
[3881]308                                                        else if( response[i]['sendFile'] )
[3879]309                                                        {       
310                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: "  + response[i]['sendFile']; 
311                                                        }
[3881]312                                                        else if( response[i]['undefined'] )
[3879]313                                                        {
[3913]314                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: "  + response[i]['undefined'];
[3879]315                                                        }
[3889]316                                                        else if( response[i]['filesize'] )
317                                                        {
318                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: "  + response[i]['filesize']; 
319                                                        }
[3880]320                                                }
[3913]321                                                else
322                                                {
323                                                        write_msg( response[i]['undefined'] );
324                                                        _winBuild( "dwindownewUpload" , "remove" );     
325                                                }
[3879]326                                        }
327                                }       
[3881]328                        }
[3913]329
[3881]330                        for( var j = 0 ; j < _inputs.length ; j++ )
331                        {       
[3896]332                                if ( !_inputs[j].parentNode.getAttribute("erroUpload") && _inputs[j].getAttribute('type') == "file" )
[3881]333                                {
334                                        _inputs[j].parentNode.parentNode.removeChild( _inputs[j].parentNode );
[3896]335                                        j--;
[3880]336                                }
[3896]337                        }                       
[3881]338                }
339                else
340                {
341                        write_msg(get_lang('All files created sucessfuly'));
342                        _winBuild( "dwindownewUpload" , "remove" );     
[3879]343                }       
344
345                connector.hideProgressBar();           
346                toolbar.control('reload');
[3019]347        }
348
[3879]349        function handler(){}
350
351        handler.prototype.archive                       = archive;
352        handler.prototype.copyto                        = copyto;
353        handler.prototype.del                           = del;
354        handler.prototype.draw_folders_list     = draw_folders_list;
355        handler.prototype.moveto                        = moveto;
[5327]356        handler.prototype.refreshDir            = refreshDir;
[3879]357        handler.prototype.rename                        = rename;
[5327]358        handler.prototype.restricted            = restricted;
359        handler.prototype.updateComment         = updateComment;
[3879]360        handler.prototype.upload                        = upload;
361
362        window.handler = new handler;
[3913]363
[3879]364})();
Note: See TracBrowser for help on using the repository browser.