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

Revision 3610, 11.1 KB checked in by alexandrecorreia, 13 years ago (diff)

Ticket #1395 - Padronizacao das janelas do filemanager com as do Expresso ( Envio de arquivo e mensagens ).

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.height                    = 210;
102                        pArgs.path_filemanager  = path_filemanager;
103                        pArgs.width                     = 450;
104               
105                var _html = Xtools.parse( Xtools.xml("upload_files"), "upload.xsl", pArgs );
106               
107                draw_window( _html, 490, 350, get_lang("upload files") );
108        }
109       
110        address = document.location.toString();
111        address = address.split("?");
112        var url = address[0]+"?menuaction=filemanager.uifilemanager.showUploadboxes&path="+base64_encode(currentPath);
113        cExecute_( url, _newUpload );
114}
115
116function newAdvancedUpload()
117{
118        for ( var i = 0 ; i < navigator.plugins.length; i++ )
119        {
120                if ( navigator.plugins[i].name.match('Java') )
121                {
122                        close_window();
123
124                        loadXtools();
125                       
126                        var pArgs =
127                        {
128                                'iframe_width'          : 515,
129                                'iframe_height'         : 320,
130                                'iframe_src'            : path_filemanager + "inc/uploadApp.php?id="+parseInt(Math.random()*Math.pow(10,15))
131                        };
132                       
133                        var _html = Xtools.parse( Xtools.xml("upload_files_advanced"), "uploadAdvanced.xsl", pArgs);
134                       
135                        draw_window( _html, 530, 345, get_lang("Advanced Upload") );
136                       
137                        return;
138                }
139        }
140       
141        alert(get_lang("You do not have Java installed, plugin not loaded"));
142}
143
144
145(function( )
146{
147        // TODO: use DES, RSA, PGP, or something strong
148        var sec_key = null;
149        function encode( data )
150        {
151                if (data == null)
152                        return null;
153                ret = "";
154                for ( var i=0;(i < data.length && data.charCodeAt(i) > 31); i++ )
155                {
156                        ret += String.fromCharCode(data.charCodeAt(i) ^ sec_key.charCodeAt(i));
157                }
158                return ret;
159        }
160
161        function crypt( input )
162        {
163                sec_key = input;
164        }
165
166        crypt.prototype.encode = encode;
167        window.crypt = crypt;
168})( );
169
170/*
171 * base64.js - Base64 encoding and decoding functions
172 *
173 * Copyright (c) 2007, David Lindquist <david.lindquist@gmail.com>
174 * Released under the MIT license
175 */
176
177function base64_encode(str) {
178        var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
179        var encoded = [];
180        var c = 0;
181        try { var slen = str.length; } catch (e) { write_error(get_lang('you do not have access to %1',currentPath)); return; };
182        while (c < slen) {
183                var b0 = str.charCodeAt(c++);
184                var b1 = str.charCodeAt(c++);
185                var b2 = str.charCodeAt(c++);
186                var buf = (b0 << 16) + ((b1 || 0) << 8) + (b2 || 0);
187                var i0 = (buf & (63 << 18)) >> 18;
188                var i1 = (buf & (63 << 12)) >> 12;
189                var i2 = isNaN(b1) ? 64 : (buf & (63 << 6)) >> 6;
190                var i3 = isNaN(b2) ? 64 : (buf & 63);
191                encoded[encoded.length] = chars.charAt(i0);
192                encoded[encoded.length] = chars.charAt(i1);
193                encoded[encoded.length] = chars.charAt(i2);
194                encoded[encoded.length] = chars.charAt(i3);
195        }
196        var retBuff = escape(encoded.join(''));
197        return retBuff.replace(/\+/g,"%2B");
198}
199
200function base64_decode(str) {
201        var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
202        var invalid = {
203        strlen: (str.length % 4 != 0),
204        chars:  new RegExp('[^' + chars + ']').test(str),
205        equals: (/=/.test(str) && (/=[^=]/.test(str) || /={3}/.test(str)))
206        };
207        if (invalid.strlen || invalid.chars || invalid.equals)
208                throw new Error('Invalid base64 data');
209        var decoded = [];
210        var c = 0;
211        while (c < str.length) {
212                var i0 = chars.indexOf(str.charAt(c++));
213                var i1 = chars.indexOf(str.charAt(c++));
214                var i2 = chars.indexOf(str.charAt(c++));
215                var i3 = chars.indexOf(str.charAt(c++));
216                var buf = (i0 << 18) + (i1 << 12) + ((i2 & 63) << 6) + (i3 & 63);
217                var b0 = (buf & (255 << 16)) >> 16;
218                var b1 = (i2 == 64) ? -1 : (buf & (255 << 8)) >> 8;
219                var b2 = (i3 == 64) ? -1 : (buf & 255);
220                decoded[decoded.length] = String.fromCharCode(b0);
221                if (b1 >= 0) decoded[decoded.length] = String.fromCharCode(b1);
222                if (b2 >= 0) decoded[decoded.length] = String.fromCharCode(b2);
223        }
224        return decoded.join('');
225}
226
227
228function setRestricted(name){
229        var continue_set = confirm(get_lang('This property will change the visibility of all users that have access to this file, continue?'));
230        if (continue_set)
231                cExecute_('./index.php?menuaction=filemanager.vfs_functions.setRestricted&file='+base64_encode(name)+'&path='+base64_encode(currentPath),handler.restricted);
232}
233
234function presetComments(el){
235        if (permissions['edit'] == 0){
236                el.blur();
237                write_error(get_lang('You have no permission to access this file'));
238        }
239        oldValue = el.value;
240}
241
242function setComments(el){
243        if (el.value == oldValue) return;
244        var filename = base64_encode(el.id);
245        cExecute_('./index.php?menuaction=filemanager.vfs_functions.editComment&file='+filename+'&comment='+base64_encode(el.value),handler.updateComment);
246}
247
248function enterComments(e,el){
249        if (e.keyCode == KEY_ENTER)
250                el.blur();
251}
252
253function EditColumns( args )
254{
255        if( args == 'close' )
256        {
257                _winBuild("window_tools_view","remove");
258        }
259        else if( args == 'save')
260        {
261                var checkBoxes = document.getElementsByName('prefView');
262               
263                for ( var i = 0 ; i < checkBoxes.length; i++)
264                {
265                        if( checkBoxes[i].checked === true )
266                                preferences[checkBoxes[i].value] = '1';
267                        else
268                                preferences[checkBoxes[i].value] = '0';
269                }
270
271                cExecute_('./index.php?menuaction=filemanager.user.save_preferences&preferences='+base64_encode(serialize(preferences)),function () { toolbar.control('reload'); EditColumns('close'); });
272        }
273        else
274        {
275                loadXtools();
276               
277                var pTools =
278                {
279                        'checkList'     :       preferences['viewList'],       
280                        'checkIcons':   preferences['viewIcons'],
281                        'check_created'                 : preferences['created'],
282                        'check_createdby_id'    : preferences['createdby_id'],
283                        'check_comment'                 : preferences['comment'],
284                        'check_mime_type'               : preferences['mime_type'],
285                        'check_modified'                : preferences['modified'],
286                        'check_modifiedby_id'   : preferences['modifiedby_id'],
287                        'check_owner'                   : preferences['owner'],
288                        'check_size'                    : preferences['size'],
289                        'check_version'                 : preferences['version'],
290                        'lang_cancel'                   : get_lang('cancel'),
291                        'lang_created_by'               : get_lang('created by'),                       
292                        'lang_created'                  : get_lang('created'),
293                        'lang_comment'                  : get_lang('comment'),
294                        'lang_modified_by'              : get_lang('modified by'),
295                        'lang_modified'                 : get_lang('modified'),
296                        'lang_owner'                    : get_lang('owner'),
297                        'lang_save'                             : get_lang('save'),
298                        'lang_size'                             : get_lang('size'),
299                        'lang_type'                             : get_lang('type'),
300                        'lang_version'                  : get_lang('version'),
301                        'lang_view_as_list'             : get_lang('view as list'),
302                        'lang_view_as_icons'    : get_lang('view as icons'),
303                        'onclickCancel'                 : "EditColumns(\'close\')",
304                        'onclickSave'                   : "EditColumns(\'save\')"
305                }
306               
307                var winTools =
308                {       
309                         id_window              : "window_tools_view",
310                         width                  : 250,
311                         height                 : 290,
312                         top                    : 100,
313                         left                   : 400,
314                         draggable              : true,
315                         visible                : "display",
316                         resizable              : true,
317                         zindex                 : zIndex++,
318                         title                  : "Expresso FileManager - " + get_lang('View'),
319                         closeAction    : "remove",
320                         content                : Xtools.parse(Xtools.xml("view_config"), "view.xsl", pTools)   
321                };
322       
323                _winBuild( winTools );
324        }
325}
326
327
328function searchFile(){
329        var inputText = document.getElementById('em_message_search');
330        if (inputText.value.length < 4)
331        {
332                alert(get_lang('Your search must have at least 4 characters'));
333                return;
334        }
335        cExecute_('./index.php?menuaction=filemanager.uifilemanager.search&text='+inputText.value,folderList.drawSearch);
336}
337function selectAll(el){
338        checkBoxes = document.getElementsByName('fileman');
339        if (el.checked)
340                for (i=0; i < checkBoxes.length; i++)
341                        checkBoxes[i].checked = true;
342        else
343                for (i=0; i < checkBoxes.length; i++)
344                        checkBoxes[i].checked = false;
345
346}
347
348function borkb(size)
349{
350        var kbyte = 1024;
351        var mbyte = kbyte*1024;
352        var gbyte = mbyte*1024;
353       
354        if (!size)
355        {
356                size = 0;
357        }
358
359        if (size < kbyte)
360        {
361                return size + 'B';
362        }
363        else if (size < mbyte)
364        {
365                return parseInt(size/kbyte) + 'KB';
366        }
367        else if (size < gbyte)
368        {
369                if ( size/mbyte > 100)
370                        return (size/mbyte).toFixed(0) + 'MB';
371                else
372                        return (size/mbyte).toFixed(1) + 'MB';
373        }
374        else
375        {
376                return (size/gbyte).toFixed(1) + 'GB';
377        }
378}
379
380function addNewInput()
381{
382        var newElement = document.createElement('div');
383                newElement.innerHTML  = '<input maxlength="255" name="upload_file[]" type="file" style="margin-right:5px;" />' +
384                                                                '<input name="upload_comment[]" type="text" style="margin-right:2px;" />' +
385                                                                '<span style="color:red; cursor:pointer;" onclick="removeInput(this);">'+get_lang('delete')+'</span>';
386       
387        document.getElementById('uploadOption').parentNode.appendChild(newElement);
388}
389
390function removeInput()
391{
392        if( arguments.length > 0 )
393        {
394                var _parent = arguments[0].parentNode;
395               
396                _parent.parentNode.removeChild(_parent);
397        }
398}
399
400function sendNotification()
401{
402        var _div = document.getElementById('sendNotifcation');
403
404        loadXtools();
405               
406        var pArgs =
407        {
408                'lang_delete' : get_lang('delete'),
409                'lang_send_notification_email_to' :     get_lang("Send Notification email to:")
410        };
411               
412        _div.innerHTML += Xtools.parse( Xtools.xml("teste"), "send_notification.xsl", pArgs);
413}
414
415function sendFiles()
416{
417                cExecuteForm_(document.getElementById('form_up'),handler.upload);
418                document.getElementById('button_up').style.visibility = "hidden";
419                var line = document.getElementById('uploadOption');
420                line.parentNode.innerHTML = "<img src='"+templatePath+"images/progress.gif'>";
421}
Note: See TracBrowser for help on using the repository browser.