source: sandbox/2.3-MailArchiver/filemanager/js/handler.js @ 6779

Revision 6779, 8.9 KB checked in by rafaelraymundo, 12 years ago (diff)

Ticket #2946 - Liberado Expresso(branch 2.3) integrado ao MailArchiver?.

Line 
1(function()
2{
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()
152        {
153                if( arguments.length > 1 )
154                {       
155                        var _input      = arguments[0];
156                        var _span       = arguments[1]  ;
157                        var _parent     = _input.parentNode;
158
159                        _input.style.height = ( parseInt(_input.style.height) - 4 );
160
161                        _span.style.className   = "fileLink";
162                        _span.innerHTML = _input.value;
163
164                        var _handlerRename =  function(data)
165                        {
166                                var _data = unserialize( data );
167
168                                for( var i = 0 ; i < _data.length; i++ )
169                                {       
170                                        if( _data[i]['error'] )
171                                        {       
172                                                // Remove Input
173                                                if( _input != null )
174                                                        _parent.removeChild( _input );
175
176                                                // Add Span
177                                                if( _span != null )
178                                                {       
179                                                        _parent.appendChild( _span );
180                                                }
181
182                                                write_msg("ERROR : " + _data[i]['error'] );
183                                        }
184
185                                        if( _data[i]['true'] )
186                                        {
187                                                write_msg( _data[i]['true'] );
188                                                toolbar.control('reload');
189                                        }
190                                }
191                        }
192
193                        if( _parent != null )
194                        {       
195                                var url         = './index.php?menuaction=filemanager.vfs_functions.rename';
196                                var params      = 'file='+base64_encode(_input.id.substr(6))+'&to='+base64_encode(_input.value)+'&path='+base64_encode(currentPath);
197
198                                cExecute_(  url,  _handlerRename , params );
199                        }
200
201                }
202        }
203       
204        function restricted(data)
205        {
206                if (data.indexOf("True") == 0)
207                {
208                        returnVal = data.split('|');
209                        var img_lock = document.getElementById('restrict_'+returnVal[1]);
210
211                        if (img_lock.style.backgroundImage.indexOf('button_unlock') > 0)
212                        {
213                                img_lock.style.backgroundImage = img_lock.style.backgroundImage.replace(/button_unlock/g,'button_lock');
214                                write_msg(get_lang('%1 marked as restricted',returnVal[1]));
215                        }
216                        else
217                        {
218                                img_lock.style.backgroundImage = img_lock.style.backgroundImage.replace(/button_lock/g,'button_unlock');
219                                write_msg(get_lang('%1 unmarked as restricted',returnVal[1]));
220                        }
221                }
222                else
223                        write_error("Could not mark as restricted");
224        }
225
226        function updateComment(data)
227        {
228                var returnVal = data.split('|');
229                if (data.indexOf("True") == 0)
230                {
231                        write_msg(get_lang('Updated comment for %1',returnVal[1]));
232                }
233                else
234                {
235                        if (returnVal[1] == "badchar")
236                                write_error(get_lang('Comments cannot contain "%1"',returnVal[2]));
237                        else
238                                write_error(get_lang('You have no permission to access this file'));
239                }
240
241        }
242       
243        function upload(data)
244        {
245                var _inputs             = document.getElementsByTagName('input');
246                var response    = unserialize(data);
247
248                if ( response[ 'postsize' ] )
249                {
250                        /*
251                         * response['postize'] = ERRO POST;
252                         * response['max_postsize] = diretiva do PHP para POST_MAX_SIZE;
253                         */
254
255                        write_msg( get_lang("ERROR: Use the advanced file sending!") );
256                        return false;
257                }
258
259                if ( response[0] != "Ok" )
260                {
261                        for( var i = 0; i < response.length; i++ )
262                        {
263                                for( var j = 0 ; j < _inputs.length ; j++ )
264                                {
265                                        if( _inputs[j].getAttribute('type') == "file")
266                                        {       
267                                                var _indexOf = response[i]['file'].toUpperCase().indexOf(_inputs[j].value.toUpperCase() );
268
269                                                if( response[i]['file'].toUpperCase() === _inputs[j].value.toUpperCase() && _indexOf > -1 )
270                                                {       
271                                                        _inputs[j].parentNode.setAttribute("erroUpload", "true");
272
273                                                        var _parent     = _inputs[j].parentNode;
274                                                        var _div = _parent.firstChild; 
275                                                        _div.style.display              = "block";
276                                                        _div.style.color                        = "red";
277                                                        _div.style.height                       = "16px";
278                                                        _div.style.paddingLeft  = "17px";
279                                                        _div.style.background   = "url('"+path_filemanager+"images/warning.gif') no-repeat left top";
280                                                        _div.style.cursor                       = "pointer";
281                                                        _div.onclick    = function(){this.style.display = 'none';} ;
282
283                                                        if( response[i]['size_max'] )
284                                                        {
285                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: Tamanho do arquivo "
286                                                                        + borkb( response[i]['size'] ) + "  - Permitido  " + borkb( response[i]['size_max'] );
287                                                        }
288                                                        else if( response[i]['badchar'] )
289                                                        {       
290                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: "  + response[i]['badchar'];   
291                                                        }
292                                                        else if( response[i]['directory'] )
293                                                        {       
294                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: "  + response[i]['directory'];
295                                                        }
296                                                        else if( response[i]['sendFile'] )
297                                                        {       
298                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: "  + response[i]['sendFile']; 
299                                                        }
300                                                        else if( response[i]['undefined'] )
301                                                        {
302                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: "  + response[i]['undefined'];
303                                                        }
304                                                        else if( response[i]['filesize'] )
305                                                        {
306                                                                _div.innerHTML = "<span style='font-weight:bold' >Erro </span>:: "  + response[i]['filesize']; 
307                                                        }
308                                                }
309                                                else
310                                                {
311                                                        write_msg( response[i]['undefined'] );
312                                                        _winBuild( "dwindownewUpload" , "remove" );     
313                                                }
314                                        }
315                                }       
316                        }
317
318                        for( var j = 0 ; j < _inputs.length ; j++ )
319                        {       
320                                if ( !_inputs[j].parentNode.getAttribute("erroUpload") && _inputs[j].getAttribute('type') == "file" )
321                                {
322                                        _inputs[j].parentNode.parentNode.removeChild( _inputs[j].parentNode );
323                                        j--;
324                                }
325                        }                       
326                }
327                else
328                {
329                        write_msg(get_lang('All files created sucessfuly'));
330                        _winBuild( "dwindownewUpload" , "remove" );     
331                }       
332
333                connector.hideProgressBar();           
334                toolbar.control('reload');
335        }
336
337        function handler(){}
338
339        handler.prototype.archive                       = archive;
340        handler.prototype.copyto                        = copyto;
341        handler.prototype.del                           = del;
342        handler.prototype.draw_folders_list     = draw_folders_list;
343        handler.prototype.moveto                        = moveto;
344        handler.prototype.refreshDir                    = refreshDir;
345        handler.prototype.rename                        = rename;
346        handler.prototype.restricted                    = restricted;
347        handler.prototype.updateComment = updateComment;
348        handler.prototype.upload                        = upload;
349
350        window.handler = new handler;
351
352})();
Note: See TracBrowser for help on using the repository browser.