source: branches/2.2/filemanager/js/handler.js @ 3889

Revision 3889, 9.1 KB checked in by alexandrecorreia, 13 years ago (diff)

Ticket #1660 - Enviar arquivos pelo filemanager, tratado o erro para o php.

RevLine 
[3879]1(function()
[3619]2{
[3879]3        function archive(data)
4        {
5                var returnVal = data.split('|');
6               
7                if (returnVal[0] == 'False')
[3619]8                {
[3879]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'));
[3619]16                        return;
17                }
18                else
[3879]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')
[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        {
81                toolbar.control('reload');
82                folders_tree = new dFTree({name: 'main'});
[3619]83
[3879]84                folders = unserialize(data);
[3019]85
[3889]86                var rootFold = new dNode({id:'root', caption: get_lang("Directories")});
[3879]87                folders_tree.add(rootFold,'root');
[3019]88
[3879]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);
[3019]97
[3879]98                        if ( parentDir == '/home' )
99                                parentDir = 'root';
[3619]100
[3879]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                                }
[3619]108
[3879]109                                return false;
110                        }
[3619]111
[3879]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();
[3019]127        }
[3879]128
129        function moveto(data)
[3019]130        {
[3879]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();
[3019]144        }
145
[3879]146        function refreshDir(data)
[3019]147        {
[3879]148                cExecute_('./index.php?menuaction=filemanager.uifilemanager.get_folders_list',handler.draw_folders_list);
[3019]149        }
[3879]150
151        function rename(data)
[3019]152        {
[3879]153                if ( data == null )
154                {
155                        var returnVal = new Array ("True",oldValue,oldValue);
156                }
[3019]157                else
[3879]158                        var returnVal = data.split('|');
159               
160                if ( returnVal[0] == "True" )
161                {
[3882]162                        if ( returnVal[1] != returnVal[2] )
163                                write_msg(get_lang('Renamed %1 to %2',returnVal[1],returnVal[2]));
[3879]164                       
[3882]165                        var nameLink = document.createElement('A');
[3879]166                        var inputName = document.getElementById('input_'+returnVal[1]);
167                        var trFile = inputName.parentNode.parentNode.parentNode;
[3019]168
[3879]169                        nameLink.innerHTML = returnVal[2];
170                        nameLink.href="./index.php?menuaction=filemanager.uifilemanager.view&file="
171                                        + base64_encode(returnVal[2])+"&path="+base64_encode(currentPath);
172                        nameLink.target = "_blank";
173                        nameLink.id = "name_"+returnVal[2];
[3585]174
[3879]175                        inputName.parentNode.appendChild(nameLink);
176                        inputName.parentNode.removeChild(inputName);
177                        trFile.innerHTML = trFile.innerHTML.replace(returnVal[1],returnVal[2]);
178                        trFile.id = trFile.id.replace(returnVal[1],returnVal[2]);
[3882]179                        toolbar.control('reload');
[3879]180                }
181                else
182                {
183                        if ( returnVal[1] == "badchar" )
184                                write_error(get_lang('File names cannot contain "%1"',returnVal[2]));
185                        else if (returnVal[1] == "slashes")
186                                write_error(get_lang('File names cannot contain \\ or /'));
187                        else if (returnVal[1] == "editing")
188                                write_error(get_lang('This file is being edited right now'));
189                        else
190                                write_error(get_lang('Could not rename %1 to %2', returnVal[1], returnVal[2]));
191                }
192
193        }
[3585]194       
[3879]195        function restricted(data)
[3019]196        {
[3879]197                if (data.indexOf("True") == 0)
[3585]198                {
[3879]199                                returnVal = data.split('|');
200                                var img_lock = document.getElementById('restrict_'+returnVal[1]);
201
202                        if (img_lock.style.backgroundImage.indexOf('button_unlock') > 0)
[3591]203                        {
[3879]204                                img_lock.style.backgroundImage = img_lock.style.backgroundImage.replace(/button_unlock/g,'button_lock');
205                                write_msg(get_lang('%1 marked as restricted',returnVal[1]));
[3591]206                        }
[3879]207                        else
208                        {
209                                img_lock.style.backgroundImage = img_lock.style.backgroundImage.replace(/button_lock/g,'button_unlock');
210                                write_msg(get_lang('%1 unmarked as restricted',returnVal[1]));
211                        }
[3534]212                }
[3541]213                else
[3879]214                        write_error("Could not mark as restricted");
[3019]215        }
[3585]216
[3879]217        function updateComment(data)
218        {
219                var returnVal = data.split('|');
220                if (data.indexOf("True") == 0)
221                {
222                        write_msg(get_lang('Updated comment for %1',returnVal[1]));
223                }
[3019]224                else
[3879]225                {
226                        if (returnVal[1] == "badchar")
227                                write_error(get_lang('Comments cannot contain "%1"',returnVal[2]));
228                        else
229                                write_error(get_lang('You have no permission to access this file'));
230                }
231
[3019]232        }
[3879]233       
234        function upload(data)
235        {
[3881]236                var _inputs             = document.getElementsByTagName('input');
237                var response    = unserialize(data);
[3619]238
[3889]239                if ( response[ 'postsize' ] )
240                {
241                        /*
242                         *
243                         * response['postize'] = ERRO POST;
244                         * response['max_postsize] = diretiva do PHP para POST_MAX_SIZE;
245                         *
246                         */
247                       
248                        write_msg( get_lang("ERROR: Use the advanced file sending!") );
249                        return false;
250                }
251
[3881]252                if ( response[0] != "Ok" )
[3889]253                {
[3879]254                        for( var i = 0; i < response.length; i++ )
255                        {
256                                for( var j = 0 ; j < _inputs.length ; j++ )
257                                {
[3881]258                                        if( _inputs[j].getAttribute('type') == "file")
[3879]259                                        {       
[3881]260                                                var _indexOf = response[i]['file'].toUpperCase().indexOf(_inputs[j].value.toUpperCase() );
261                                               
262                                                if( response[i]['file'].toUpperCase() === _inputs[j].value.toUpperCase() && _indexOf > -1 )
263                                                {       
264                                                        _inputs[j].setAttribute("erroUpload", "true");
265                                                       
[3879]266                                                        var _parent     = _inputs[j].parentNode;
267                                                        var _div = _parent.firstChild; 
268                                                        _div.style.display              = "block";
269                                                        _div.style.color                        = "red";
270                                                        _div.style.height                       = "16px";
271                                                        _div.style.paddingLeft  = "17px";
272                                                        _div.style.background   = "url('"+path_filemanager+"images/warning.gif') no-repeat left top";
273                                                        _div.style.cursor                       = "pointer";
[3889]274                                                        _div.onclick    = function(){this.style.display = 'none';} ;
[3879]275                                                       
276                                                        if( response[i]['size_max'] )
277                                                        {
278                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: Tamanho do arquivo "
279                                                                                          + borkb( response[i]['size'] ) + "  - Permitido  " + borkb( response[i]['size_max'] );
280                                                        }
[3881]281                                                        else if( response[i]['badchar'] )
[3879]282                                                        {       
283                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: "  + response[i]['badchar'];   
284                                                        }
[3881]285                                                        else if( response[i]['directory'] )
[3879]286                                                        {       
287                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: "  + response[i]['directory'];
288                                                        }
[3881]289                                                        else if( response[i]['sendFile'] )
[3879]290                                                        {       
291                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: "  + response[i]['sendFile']; 
292                                                        }
[3881]293                                                        else if( response[i]['undefined'] )
[3879]294                                                        {
295                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: "  + response[i]['undefined'];
296                                                        }
[3889]297                                                        else if( response[i]['filesize'] )
298                                                        {
299                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: "  + response[i]['filesize']; 
300                                                        }
[3880]301                                                }
[3879]302                                        }
303                                }       
[3881]304                        }
305                       
306                        for( var j = 0 ; j < _inputs.length ; j++ )
307                        {       
308                                if ( !_inputs[j].getAttribute("erroUpload") && _inputs[j].getAttribute('type') == "file" )
309                                {
310                                        _inputs[j].parentNode.parentNode.removeChild( _inputs[j].parentNode );
[3880]311                                }
[3881]312                        }
313                }
314                else
315                {
316                        write_msg(get_lang('All files created sucessfuly'));
317                        _winBuild( "dwindownewUpload" , "remove" );     
[3879]318                }       
319
320                connector.hideProgressBar();           
321                toolbar.control('reload');
[3019]322        }
323
[3879]324        function handler(){}
325
326        handler.prototype.archive                       = archive;
327        handler.prototype.copyto                        = copyto;
328        handler.prototype.del                           = del;
329        handler.prototype.draw_folders_list     = draw_folders_list;
330        handler.prototype.moveto                        = moveto;
331        handler.prototype.refreshDir                    = refreshDir;
332        handler.prototype.rename                        = rename;
333        handler.prototype.restricted                    = restricted;
334        handler.prototype.updateComment = updateComment;
335        handler.prototype.upload                        = upload;
336
337        window.handler = new handler;
338       
339})();
Note: See TracBrowser for help on using the repository browser.