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

Revision 3415, 10.9 KB checked in by amuller, 13 years ago (diff)

Ticket #1391 - Implementando notificação do FM

Line 
1function load(path,el){
2        currentPath = path;
3        contentFolders = document.getElementById('content_folders');
4        for (i=0; i < contentFolders.childNodes.length; i++)
5                if (contentFolders.childNodes[i].className == "sl")
6                        contentFolders.childNodes[i].className = "l";
7        el.className = "sl";
8        current_folder = currentPath;
9        if(last_folder != current_folder){
10                lastPage = 1;
11                current_page = 1;
12                last_folder = current_folder;
13                offset = 0;
14        }
15        toolbar.control('reload');
16}
17
18function check(element){
19        element.firstChild.firstChild.checked = true;
20}
21
22function validateFileExtension(fileName){
23        var error_flag = false;
24        var fileExtension = fileName.split(".");
25        fileExtension = fileExtension[(fileExtension.length-1)];
26        for(var i=0; i<denyFileExtensions.length; i++)
27        {
28                if(denyFileExtensions[i] == fileExtension)
29                {
30                        error_flag = true;
31                        break;
32                }
33
34        }
35
36        if ( error_flag == true )
37        {
38                write_error(get_lang('File extension forbidden or invalid file') + '.');
39                return false;
40        }
41        return true;
42}
43
44function get_lang(_key){
45        var key = _key.toLowerCase();
46        if(array_lang[key])
47                var _value = array_lang[key];
48        else
49                var _value = _key+"*";
50
51        if(arguments.length > 1)
52                for(j = 1; typeof(arguments[j]) != 'undefined'; j++)
53                        _value = _value.replace("%"+j,arguments[j]);
54        return _value;
55
56}
57
58
59function newEmptyFile(){
60        var name = prompt(get_lang('Enter with the name of new file/directory'), '');
61        var input_text = document.getElementById('newfile_or_dir');
62        if (name != null && name != '' && validateFileExtension(name))
63        {
64                var fileExtension = name.split(".");
65                fileExtension = fileExtension[1];
66                if (typeof(fileExtension) == 'undefined')
67                        input_text.value = name+".html";
68                else
69                        input_text.value = name;
70                address = document.location.toString();
71                address = address.split("&");
72                document.location = address[0]+"&newfile.x=1&newfile_or_dir="+input_text.value;
73
74        }
75}
76function newUpload(data){
77        if (data == null)
78        {
79                address = document.location.toString();
80                address = address.split("?");
81                var url = address[0]+"?menuaction=filemanager.uifilemanager.showUploadboxes&path="+base64_encode(currentPath);
82                cExecute_(url,newUpload);
83        }
84        else{
85                draw_window(data);
86        }
87}
88function newAdvancedUpload(){
89        for (i=0; i < navigator.plugins.length; i++)
90                if (navigator.plugins[i].name.match('Java')){
91                        draw_window("<iframe width=\"515\" height=\"320\" src='/filemanager/inc/uploadApp.php?id="+parseInt(Math.random()*Math.pow(10,15))+"'></iframe>");
92                        document.getElementById('dwindow').style.width = "auto";
93                        document.getElementById('dwindow').style.height = "auto";
94                        return;
95                }
96        alert(get_lang("You do not have Java installed, plugin not loaded"));
97}
98
99
100(function( )
101{
102        // TODO: use DES, RSA, PGP, or something strong
103        var sec_key = null;
104        function encode( data )
105        {
106                if (data == null)
107                        return null;
108                ret = "";
109                for ( var i=0;(i < data.length && data.charCodeAt(i) > 31); i++ )
110                {
111                        ret += String.fromCharCode(data.charCodeAt(i) ^ sec_key.charCodeAt(i));
112                }
113                return ret;
114        }
115
116        function crypt( input )
117        {
118                sec_key = input;
119        }
120
121        crypt.prototype.encode = encode;
122        window.crypt = crypt;
123})( );
124
125/*
126 * base64.js - Base64 encoding and decoding functions
127 *
128 * Copyright (c) 2007, David Lindquist <david.lindquist@gmail.com>
129 * Released under the MIT license
130 */
131
132function base64_encode(str) {
133        var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
134        var encoded = [];
135        var c = 0;
136        try { var slen = str.length; } catch (e) { write_error(get_lang('you do not have access to %1',currentPath)); return; };
137        while (c < slen) {
138                var b0 = str.charCodeAt(c++);
139                var b1 = str.charCodeAt(c++);
140                var b2 = str.charCodeAt(c++);
141                var buf = (b0 << 16) + ((b1 || 0) << 8) + (b2 || 0);
142                var i0 = (buf & (63 << 18)) >> 18;
143                var i1 = (buf & (63 << 12)) >> 12;
144                var i2 = isNaN(b1) ? 64 : (buf & (63 << 6)) >> 6;
145                var i3 = isNaN(b2) ? 64 : (buf & 63);
146                encoded[encoded.length] = chars.charAt(i0);
147                encoded[encoded.length] = chars.charAt(i1);
148                encoded[encoded.length] = chars.charAt(i2);
149                encoded[encoded.length] = chars.charAt(i3);
150        }
151        var retBuff = escape(encoded.join(''));
152        return retBuff.replace(/\+/g,"%2B");
153}
154
155function base64_decode(str) {
156        var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
157        var invalid = {
158        strlen: (str.length % 4 != 0),
159        chars:  new RegExp('[^' + chars + ']').test(str),
160        equals: (/=/.test(str) && (/=[^=]/.test(str) || /={3}/.test(str)))
161        };
162        if (invalid.strlen || invalid.chars || invalid.equals)
163                throw new Error('Invalid base64 data');
164        var decoded = [];
165        var c = 0;
166        while (c < str.length) {
167                var i0 = chars.indexOf(str.charAt(c++));
168                var i1 = chars.indexOf(str.charAt(c++));
169                var i2 = chars.indexOf(str.charAt(c++));
170                var i3 = chars.indexOf(str.charAt(c++));
171                var buf = (i0 << 18) + (i1 << 12) + ((i2 & 63) << 6) + (i3 & 63);
172                var b0 = (buf & (255 << 16)) >> 16;
173                var b1 = (i2 == 64) ? -1 : (buf & (255 << 8)) >> 8;
174                var b2 = (i3 == 64) ? -1 : (buf & 255);
175                decoded[decoded.length] = String.fromCharCode(b0);
176                if (b1 >= 0) decoded[decoded.length] = String.fromCharCode(b1);
177                if (b2 >= 0) decoded[decoded.length] = String.fromCharCode(b2);
178        }
179        return decoded.join('');
180}
181
182
183function setRestricted(name){
184        var continue_set = confirm(get_lang('This property will change the visibility of all users that have access to this file, continue?'));
185        if (continue_set)
186                cExecute_('./index.php?menuaction=filemanager.vfs_functions.setRestricted&file='+base64_encode(name)+'&path='+base64_encode(currentPath),handler.restricted);
187}
188
189function presetComments(el){
190        if (permissions['edit'] == 0){
191                el.blur();
192                write_error(get_lang('You have no permission to access this file'));
193        }
194        oldValue = el.value;
195}
196
197function setComments(el){
198        if (el.value == oldValue) return;
199        var filename = base64_encode(el.id);
200        cExecute_('./index.php?menuaction=filemanager.vfs_functions.editComment&file='+filename+'&comment='+base64_encode(el.value),handler.updateComment);
201}
202
203function enterComments(e,el){
204        if (e.keyCode == KEY_ENTER)
205                el.blur();
206}
207
208
209function EditColumns(param){
210        if (param == 'close')
211        {
212                var menu = document.getElementById('menu_col_pref');
213                menu.parentNode.removeChild(menu);
214                return;
215        }
216        if(param == 'save')
217        {
218                var checkBoxes = document.getElementsByName('prefView');
219                var url="";
220                for (var i=0; i < checkBoxes.length; i++)
221                {
222                        if (checkBoxes[i].checked)
223                                preferences[checkBoxes[i].value] = '1';
224                        else
225                                preferences[checkBoxes[i].value] = '0';
226                }
227                cExecute_('./index.php?menuaction=filemanager.user.save_preferences&preferences='+base64_encode(serialize(preferences)),function () { toolbar.control('reload'); EditColumns('close'); });
228                return;
229        }
230        var checkList = (preferences['viewList'] == '1' ? 'checked="checked"': '');
231        var checkIcons = (preferences['viewIcons'] == '1' ? 'checked="checked"': '');
232        var typeHTML = '<input name="prefView" value="viewList" '+checkList+' type="radio">'+get_lang('view as list')+'<input name="prefView" '+checkIcons+' value="viewIcons" type="radio">'+get_lang('view as icons')+'<br>';
233        var check = function(type) { if (preferences[type] =='1') return 'checked'; else return '';};
234        var inputHTML = '<input name="prefView" type="checkbox" value="';
235        form = typeHTML+inputHTML+'mime_type" '+check('mime_type')+'>'+get_lang('type')+'<br>'+
236                inputHTML+'size" '+check('size')+'>'+get_lang('size')+'<br>'+
237                inputHTML+'created" '+check('created')+'>'+get_lang('created')+'<br>'+
238                inputHTML+'modified" '+check('modified')+'>'+get_lang('modified')+'<br>'+
239                inputHTML+'owner" '+check('owner')+'>'+get_lang('owner')+'<br>'+
240                inputHTML+'createdby_id" '+check('createdby_id')+'>'+get_lang('created by')+'<br>'+
241                inputHTML+'modifiedby_id" '+check('modifiedby_id')+'>'+get_lang('modified by')+'<br>'+
242        //      inputHTML+'application" '+check('application')+'>'+get_lang('application')+'<br>'+
243                inputHTML+'comment" '+check('comment')+'>'+get_lang('comment')+'<br>'+
244                inputHTML+'version" '+check('version')+'>'+get_lang('version')+'<br>'+
245                '<input value="'+get_lang('save')+'" onclick="EditColumns(\'save\')" type="button">&nbsp;'+
246                '<input value="'+get_lang('cancel')+'" onclick="EditColumns(\'close\')" type="button">';
247
248                menu = document.createElement('DIV');
249                menu.id = "menu_col_pref";
250                menu.style.left = "100px";
251                menu.style.top = "200px";
252                menu.className = 'menubox';
253                menu.style.zIndex='1';
254                menu.innerHTML = form;
255                document.getElementById('divAppboxHeader').appendChild(menu);
256}
257
258
259function searchFile(){
260        var inputText = document.getElementById('em_message_search');
261        if (inputText.value.length < 4)
262        {
263                alert(get_lang('Your search must have at least 4 characters'));
264                return;
265        }
266        cExecute_('./index.php?menuaction=filemanager.uifilemanager.search&text='+inputText.value,folderList.drawSearch);
267}
268function selectAll(el){
269        checkBoxes = document.getElementsByName('fileman');
270        if (el.checked)
271                for (i=0; i < checkBoxes.length; i++)
272                        checkBoxes[i].checked = true;
273        else
274                for (i=0; i < checkBoxes.length; i++)
275                        checkBoxes[i].checked = false;
276
277}
278function borkb(size){
279                kbyte = 1024;
280                mbyte = kbyte*1024;
281                gbyte = mbyte*1024;
282                if (!size)
283                        size = 0;
284                if (size < kbyte)
285                        return size + 'B';
286                else if (size < mbyte)
287                        return parseInt(size/kbyte) + 'KB';
288                else if (size < gbyte)
289                        if (size/mbyte > 100)
290                                return (size/mbyte).toFixed(0) + 'MB';
291                        else
292                                return (size/mbyte).toFixed(1) + 'MB';
293                else
294                        return (size/gbyte).toFixed(1) + 'GB';
295}
296function addNewInput(){
297        var line = document.getElementById('uploadOption');
298        var newElement = document.createElement('TR');
299        var newElement2 = document.createElement('TD');
300        var newElement3 = document.createElement('TD');
301        newElement2.innerHTML = '<input onchange="javascript:addNewInput();" maxlength="255" name="upload_file[]" type="file">';
302        newElement3.innerHTML = '<input name="upload_comment[]" type="text">';
303        newElement.appendChild(newElement2);
304        newElement.appendChild(newElement3);
305        line.parentNode.appendChild(newElement);
306        document.getElementById('show_upload_boxes').value +=1;
307}
308
309function sendNotification(){
310        var winEl = document.getElementById('uploadOption').parentNode;
311        var emailTo = document.createElement("INPUT");
312        emailTo.name="notifTo[]";
313        emailTo.type="text";
314        emailTo.size="38";
315        var labelTo = document.createElement("SPAN");
316        labelTo.innerHTML = get_lang("Send Notification email to:");
317        winEl.insertBefore(labelTo,document.getElementById('uploadOption'));
318        winEl.insertBefore(emailTo,document.getElementById('uploadOption'));
319}
320
321function sendFiles(){
322                cExecuteForm_(document.getElementById('form_up'),handler.upload);
323                document.getElementById('button_up').style.visibility = "hidden";
324                var line = document.getElementById('uploadOption');
325                line.parentNode.innerHTML = "<img src='"+templatePath+"images/progress.gif'>";
326}
Note: See TracBrowser for help on using the repository browser.