source: branches/2.2/filemanager/js/common_functions.js @ 3619

Revision 3619, 11.4 KB checked in by alexandrecorreia, 13 years ago (diff)

Ticket #1468 - Notificacao por email de uploads de arquivos enviados pelo modulo Filemanager

Line 
1
2var Xtools      = null;
3
4function load(path,el)
5{
6        currentPath = path;
7        contentFolders = document.getElementById('content_folders');
8        for (i=0; i < contentFolders.childNodes.length; i++)
9                if (contentFolders.childNodes[i].className == "sl")
10                        contentFolders.childNodes[i].className = "l";
11        el.className = "sl";
12        current_folder = currentPath;
13        if(last_folder != current_folder){
14                lastPage = 1;
15                current_page = 1;
16                last_folder = current_folder;
17                offset = 0;
18        }
19        toolbar.control('reload');
20}
21
22function loadXtools()
23{
24        if( Xtools == null )
25                Xtools = new xtools( path_filemanager + "tp/expressowindow/" );
26}
27
28function check(element)
29{
30        element.firstChild.firstChild.checked = true;
31}
32
33function validateFileExtension(fileName)
34{
35        var error_flag = false;
36        var fileExtension = fileName.split(".");
37        fileExtension = fileExtension[(fileExtension.length-1)];
38        for(var i=0; i<denyFileExtensions.length; i++)
39        {
40                if(denyFileExtensions[i] == fileExtension)
41                {
42                        error_flag = true;
43                        break;
44                }
45
46        }
47
48        if ( error_flag == true )
49        {
50                write_error(get_lang('File extension forbidden or invalid file') + '.');
51                return false;
52        }
53        return true;
54}
55
56function get_lang(_key)
57{
58        var key = _key.toLowerCase();
59        if(array_lang[key])
60                var _value = array_lang[key];
61        else
62                var _value = _key+"*";
63
64        if(arguments.length > 1)
65                for(j = 1; typeof(arguments[j]) != 'undefined'; j++)
66                        _value = _value.replace("%"+j,arguments[j]);
67        return _value;
68
69}
70
71
72function newEmptyFile()
73{
74        var name = prompt(get_lang('Enter with the name of new file/directory'), '');
75        var input_text = document.getElementById('newfile_or_dir');
76        if (name != null && name != '' && validateFileExtension(name))
77        {
78                var fileExtension = name.split(".");
79                fileExtension = fileExtension[1];
80                if (typeof(fileExtension) == 'undefined')
81                        input_text.value = name+".html";
82                else
83                        input_text.value = name;
84                address = document.location.toString();
85                address = address.split("&");
86                document.location = address[0]+"&newfile.x=1&newfile_or_dir="+input_text.value;
87
88        }
89}
90
91function newUpload( )
92{
93        var _newUpload = function(data)
94        {
95                loadXtools();
96               
97                var pArgs = unserialize(data);
98                        pArgs.lang_add_file             = get_lang("Add file");
99                        pArgs.lang_click_here   = get_lang("Click here");
100                        pArgs.lang_more_files   = get_lang("More files");
101                        pArgs.lang_send_email   = get_lang("Send email");
102                        pArgs.height                    = 210;
103                        pArgs.path_filemanager  = path_filemanager;
104                        pArgs.width                     = 450;
105               
106                var _html = Xtools.parse( Xtools.xml("upload_files"), "upload.xsl", pArgs );
107               
108                draw_window( _html, 490, 350, get_lang("upload files") );
109        }
110       
111        address = document.location.toString();
112        address = address.split("?");
113        var url = address[0]+"?menuaction=filemanager.uifilemanager.showUploadboxes&path="+base64_encode(currentPath);
114        cExecute_( url, _newUpload );
115}
116
117function newAdvancedUpload()
118{
119        for ( var i = 0 ; i < navigator.plugins.length; i++ )
120        {
121                if ( navigator.plugins[i].name.match('Java') )
122                {
123                        close_window();
124
125                        loadXtools();
126                       
127                        var pArgs =
128                        {
129                                'iframe_width'          : 515,
130                                'iframe_height'         : 320,
131                                'iframe_src'            : path_filemanager + "inc/uploadApp.php?id="+parseInt(Math.random()*Math.pow(10,15))
132                        };
133                       
134                        var _html = Xtools.parse( Xtools.xml("upload_files_advanced"), "uploadAdvanced.xsl", pArgs);
135                       
136                        draw_window( _html, 530, 345, get_lang("Advanced Upload") );
137                       
138                        return;
139                }
140        }
141       
142        alert(get_lang("You do not have Java installed, plugin not loaded"));
143}
144
145
146(function( )
147{
148        // TODO: use DES, RSA, PGP, or something strong
149        var sec_key = null;
150        function encode( data )
151        {
152                if (data == null)
153                        return null;
154                ret = "";
155                for ( var i=0;(i < data.length && data.charCodeAt(i) > 31); i++ )
156                {
157                        ret += String.fromCharCode(data.charCodeAt(i) ^ sec_key.charCodeAt(i));
158                }
159                return ret;
160        }
161
162        function crypt( input )
163        {
164                sec_key = input;
165        }
166
167        crypt.prototype.encode = encode;
168        window.crypt = crypt;
169})( );
170
171/*
172 * base64.js - Base64 encoding and decoding functions
173 *
174 * Copyright (c) 2007, David Lindquist <david.lindquist@gmail.com>
175 * Released under the MIT license
176 */
177
178function base64_encode(str) {
179        var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
180        var encoded = [];
181        var c = 0;
182        try { var slen = str.length; } catch (e) { write_error(get_lang('you do not have access to %1',currentPath)); return; };
183        while (c < slen) {
184                var b0 = str.charCodeAt(c++);
185                var b1 = str.charCodeAt(c++);
186                var b2 = str.charCodeAt(c++);
187                var buf = (b0 << 16) + ((b1 || 0) << 8) + (b2 || 0);
188                var i0 = (buf & (63 << 18)) >> 18;
189                var i1 = (buf & (63 << 12)) >> 12;
190                var i2 = isNaN(b1) ? 64 : (buf & (63 << 6)) >> 6;
191                var i3 = isNaN(b2) ? 64 : (buf & 63);
192                encoded[encoded.length] = chars.charAt(i0);
193                encoded[encoded.length] = chars.charAt(i1);
194                encoded[encoded.length] = chars.charAt(i2);
195                encoded[encoded.length] = chars.charAt(i3);
196        }
197        var retBuff = escape(encoded.join(''));
198        return retBuff.replace(/\+/g,"%2B");
199}
200
201function base64_decode(str) {
202        var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
203        var invalid = {
204        strlen: (str.length % 4 != 0),
205        chars:  new RegExp('[^' + chars + ']').test(str),
206        equals: (/=/.test(str) && (/=[^=]/.test(str) || /={3}/.test(str)))
207        };
208        if (invalid.strlen || invalid.chars || invalid.equals)
209                throw new Error('Invalid base64 data');
210        var decoded = [];
211        var c = 0;
212        while (c < str.length) {
213                var i0 = chars.indexOf(str.charAt(c++));
214                var i1 = chars.indexOf(str.charAt(c++));
215                var i2 = chars.indexOf(str.charAt(c++));
216                var i3 = chars.indexOf(str.charAt(c++));
217                var buf = (i0 << 18) + (i1 << 12) + ((i2 & 63) << 6) + (i3 & 63);
218                var b0 = (buf & (255 << 16)) >> 16;
219                var b1 = (i2 == 64) ? -1 : (buf & (255 << 8)) >> 8;
220                var b2 = (i3 == 64) ? -1 : (buf & 255);
221                decoded[decoded.length] = String.fromCharCode(b0);
222                if (b1 >= 0) decoded[decoded.length] = String.fromCharCode(b1);
223                if (b2 >= 0) decoded[decoded.length] = String.fromCharCode(b2);
224        }
225        return decoded.join('');
226}
227
228
229function setRestricted(name){
230        var continue_set = confirm(get_lang('This property will change the visibility of all users that have access to this file, continue?'));
231        if (continue_set)
232                cExecute_('./index.php?menuaction=filemanager.vfs_functions.setRestricted&file='+base64_encode(name)+'&path='+base64_encode(currentPath),handler.restricted);
233}
234
235function presetComments(el){
236        if (permissions['edit'] == 0){
237                el.blur();
238                write_error(get_lang('You have no permission to access this file'));
239        }
240        oldValue = el.value;
241}
242
243function setComments(el){
244        if (el.value == oldValue) return;
245        var filename = base64_encode(el.id);
246        cExecute_('./index.php?menuaction=filemanager.vfs_functions.editComment&file='+filename+'&comment='+base64_encode(el.value),handler.updateComment);
247}
248
249function enterComments(e,el){
250        if (e.keyCode == KEY_ENTER)
251                el.blur();
252}
253
254function EditColumns( args )
255{
256        if( args == 'close' )
257        {
258                _winBuild("window_tools_view","remove");
259        }
260        else if( args == 'save')
261        {
262                var checkBoxes = document.getElementsByName('prefView');
263               
264                for ( var i = 0 ; i < checkBoxes.length; i++)
265                {
266                        if( checkBoxes[i].checked === true )
267                                preferences[checkBoxes[i].value] = '1';
268                        else
269                                preferences[checkBoxes[i].value] = '0';
270                }
271
272                cExecute_('./index.php?menuaction=filemanager.user.save_preferences&preferences='+base64_encode(serialize(preferences)),function () { toolbar.control('reload'); EditColumns('close'); });
273        }
274        else
275        {
276                loadXtools();
277               
278                var pTools =
279                {
280                        'checkList'     :       preferences['viewList'],       
281                        'checkIcons':   preferences['viewIcons'],
282                        'check_created'                 : preferences['created'],
283                        'check_createdby_id'    : preferences['createdby_id'],
284                        'check_comment'                 : preferences['comment'],
285                        'check_mime_type'               : preferences['mime_type'],
286                        'check_modified'                : preferences['modified'],
287                        'check_modifiedby_id'   : preferences['modifiedby_id'],
288                        'check_owner'                   : preferences['owner'],
289                        'check_size'                    : preferences['size'],
290                        'check_version'                 : preferences['version'],
291                        'lang_cancel'                   : get_lang('cancel'),
292                        'lang_created_by'               : get_lang('created by'),                       
293                        'lang_created'                  : get_lang('created'),
294                        'lang_comment'                  : get_lang('comment'),
295                        'lang_modified_by'              : get_lang('modified by'),
296                        'lang_modified'                 : get_lang('modified'),
297                        'lang_owner'                    : get_lang('owner'),
298                        'lang_save'                             : get_lang('save'),
299                        'lang_size'                             : get_lang('size'),
300                        'lang_type'                             : get_lang('type'),
301                        'lang_version'                  : get_lang('version'),
302                        'lang_view_as_list'             : get_lang('view as list'),
303                        'lang_view_as_icons'    : get_lang('view as icons'),
304                        'onclickCancel'                 : "EditColumns(\'close\')",
305                        'onclickSave'                   : "EditColumns(\'save\')"
306                }
307               
308                var winTools =
309                {       
310                         id_window              : "window_tools_view",
311                         width                  : 250,
312                         height                 : 290,
313                         top                    : 100,
314                         left                   : 400,
315                         draggable              : true,
316                         visible                : "display",
317                         resizable              : true,
318                         zindex                 : zIndex++,
319                         title                  : "Expresso FileManager - " + get_lang('View'),
320                         closeAction    : "remove",
321                         content                : Xtools.parse(Xtools.xml("view_config"), "view.xsl", pTools)   
322                };
323       
324                _winBuild( winTools );
325        }
326}
327
328
329function searchFile(){
330        var inputText = document.getElementById('em_message_search');
331        if (inputText.value.length < 4)
332        {
333                alert(get_lang('Your search must have at least 4 characters'));
334                return;
335        }
336        cExecute_('./index.php?menuaction=filemanager.uifilemanager.search&text='+inputText.value,folderList.drawSearch);
337}
338function selectAll(el){
339        checkBoxes = document.getElementsByName('fileman');
340        if (el.checked)
341                for (i=0; i < checkBoxes.length; i++)
342                        checkBoxes[i].checked = true;
343        else
344                for (i=0; i < checkBoxes.length; i++)
345                        checkBoxes[i].checked = false;
346
347}
348
349function borkb(size)
350{
351        var kbyte = 1024;
352        var mbyte = kbyte*1024;
353        var gbyte = mbyte*1024;
354       
355        if (!size)
356        {
357                size = 0;
358        }
359
360        if (size < kbyte)
361        {
362                return size + 'B';
363        }
364        else if (size < mbyte)
365        {
366                return parseInt(size/kbyte) + 'KB';
367        }
368        else if (size < gbyte)
369        {
370                if ( size/mbyte > 100)
371                        return (size/mbyte).toFixed(0) + 'MB';
372                else
373                        return (size/mbyte).toFixed(1) + 'MB';
374        }
375        else
376        {
377                return (size/gbyte).toFixed(1) + 'GB';
378        }
379}
380
381function addNewInput()
382{
383        var newElement = document.createElement('div');
384                newElement.innerHTML  = '<input maxlength="255" name="upload_file[]" type="file" style="margin-right:5px;" />' +
385                                                                '<input name="upload_comment[]" type="text" style="margin-right:2px;" />' +
386                                                                '<span style="color:red; cursor:pointer;" onclick="removeInput(this);">'+get_lang('delete')+'</span>';
387       
388        document.getElementById('uploadOption').parentNode.appendChild(newElement);
389}
390
391function removeInput()
392{
393        if( arguments.length > 0 )
394        {
395                var _parent = arguments[0].parentNode;
396               
397                _parent.parentNode.removeChild(_parent);
398        }
399}
400
401function sendNotification()
402{
403        var _div = document.getElementById('sendNotifcation');
404
405        loadXtools();
406               
407        var pArgs =
408        {
409                'lang_delete' : get_lang('delete'),
410                'lang_send_notification_email_to' :     get_lang("Send Notification email to:")
411        };
412               
413        _div.innerHTML += Xtools.parse( Xtools.xml("teste"), "send_notification.xsl", pArgs);
414}
415
416function sendFiles()
417{
418        var _formUp                     = document.getElementById('form_up');
419        var _uploadFiles        = document.getElementsByTagName('input');
420        var _flagSend           = true;
421       
422        for( var i = 0 ; i < _uploadFiles.length ; i++ )
423        {
424                if( _uploadFiles[i].name.indexOf("upload_file") > -1 )
425                {
426                        if( _uploadFiles[i].value == "" )
427                        {
428                                removeInput( _uploadFiles[i] );
429                                _flagSend = false;
430                        }
431                }
432        }
433       
434        if( _flagSend )
435        {
436                cExecuteForm_( _formUp ,handler.upload);
437        }
438        else
439                write_msg(get_lang("No file(s) to send") + "!");
440
441        close_window();
442}
Note: See TracBrowser for help on using the repository browser.