Changeset 1627 for sandbox/filemanager/js/common_functions.js
- Timestamp:
- 11/12/09 09:06:56 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sandbox/filemanager/js/common_functions.js
r1575 r1627 1 var menuTimeout; 2 /* draw_menu(id of menu, left position, top position, menu elements) */ 3 function draw_menu(id,left_pos,top_pos,elements){ 4 var menu = document.getElementById('menu_newFile'+id); 5 if (menu == null){ 6 menu = document.createElement('DIV'); 7 menu.id = "menu_newFile"+id; 8 menu.style.left = left_pos+"px"; 9 menu.style.top = top_pos+"px"; 10 for(j in elements) 11 menu.innerHTML += "<a href="+elements[j]['url']+">"+elements[j]['text']+"</a><br>"; 12 13 menu.onmouseout = function () { menuTimeout = setTimeout("document.getElementById('menu_newFile"+id+"').style.visibility = 'hidden'",50);} 14 menu.onmouseover = function () { clearTimeout(menuTimeout); }; 15 menu.className = "menu_box"; 16 document.getElementById('tableDivAppbox').appendChild(menu); 17 } 18 menu.style.visibility = ''; 19 20 } 1 21 function formfmValidate(arg) 2 22 { 23 var button = document.getElementsByName(arg); 24 button = button[0]; 3 25 switch (arg) { 4 26 case 'newdir': 5 case 'newfile': 6 var name = prompt(get_lang('Enter with the name of new file/directory'), ''); 7 var input_text = document.getElementById('newfile_or_dir'); 8 if (name == null || ! validateFileExtension(name)) 9 { 10 return false; 11 } 12 else 13 { 14 var fileExtension = name.split("."); 15 fileExtension = fileExtension[1]; 16 if (typeof(fileExtension) == 'undefined') 17 input_text.value = name+".html"; 18 else 19 input_text.value = name; 20 return true; 21 } 22 break 27 break; 28 case 'new': 29 elements = new Array(); 30 elements[0] = new Array(); 31 elements[0]['text'] = get_lang('empty file'); 32 elements[0]['url'] = 'javascript:newEmptyFile();'; 33 elements[1] = new Array(); 34 elements[1]['text'] = get_lang('File from model'); 35 address = document.location.toString(); 36 address = address.split("?"); 37 elements[1]['url'] = address[0]+"?menuaction=filemanager.uifilemanager.fileModels"; 38 elements[2] = new Array(); 39 elements[2]['text'] = get_lang('Upload'); 40 address = document.location.toString(); 41 address = address.split("?"); 42 elements[2]['url'] = address[0]+"?menuaction=filemanager.uifilemanager.index&upload=clicked&upload.x=1&path="+base64_encode(document.getElementById('cdtodir').value); 43 44 draw_menu(arg,button.parentNode.offsetLeft+50,190,elements); 45 return false; 46 break; 23 47 case 'edit_comments': 24 48 case 'rename': … … 34 58 else 35 59 { 36 alert(get_lang('Please select a file'));60 write_msg(get_lang('Please select a file')); 37 61 return false; 38 62 } 63 break; 64 case 'move_to': 65 case 'copy_to': 66 filesUrl = ""; 67 var one_checked = false; 68 files=document.getElementsByClassName('checkbox'); 69 for (i = 0; i < files.length; i++) 70 if (files[i].checked){ 71 one_checked = true; 72 filesUrl += "&"+files[i].name+"="+files[i].value; 73 } 74 if (!one_checked) 75 { 76 write_msg(get_lang('Please select a file')); 77 return false; 78 } 79 var elements = new Array(); 80 inputEl = document.getElementsByName('todir'); 81 for(i=0; i< inputEl[0].childNodes.length; i++) 82 { 83 elements[i] = new Array(); 84 elements[i]['text'] =inputEl[0].childNodes[i].innerHTML; 85 address = document.location.toString(); 86 address = address.split("&"); 87 elements[i]['url'] = address[0]+ 88 "&todir="+inputEl[0].childNodes[i].innerHTML+ 89 "&"+arg+".x=10"+filesUrl; 90 } 91 draw_menu(arg,button.parentNode.offsetLeft+50,190,elements); 92 return false; 93 break; 39 94 default: 40 95 return true; … … 62 117 if ( error_flag == true ) 63 118 { 64 alert(get_lang('File extension forbidden or invalid file') + '.');119 write_error(get_lang('File extension forbidden or invalid file') + '.'); 65 120 return false; 66 121 } … … 81 136 82 137 } 138 139 140 function newEmptyFile(){ 141 var name = prompt(get_lang('Enter with the name of new file/directory'), ''); 142 var input_text = document.getElementById('newfile_or_dir'); 143 if (name != null && name != '' && validateFileExtension(name)) 144 { 145 var fileExtension = name.split("."); 146 fileExtension = fileExtension[1]; 147 if (typeof(fileExtension) == 'undefined') 148 input_text.value = name+".html"; 149 else 150 input_text.value = name; 151 address = document.location.toString(); 152 address = address.split("&"); 153 document.location = address[0]+"&newfile.x=clicked&newfile_or_dir="+input_text.value; 154 155 } 156 157 } 158 159 160 /* 161 * base64.js - Base64 encoding and decoding functions 162 * 163 * Copyright (c) 2007, David Lindquist <david.lindquist@gmail.com> 164 * Released under the MIT license 165 */ 166 167 function base64_encode(str) { 168 var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; 169 var encoded = []; 170 var c = 0; 171 while (c < str.length) { 172 var b0 = str.charCodeAt(c++); 173 var b1 = str.charCodeAt(c++); 174 var b2 = str.charCodeAt(c++); 175 var buf = (b0 << 16) + ((b1 || 0) << 8) + (b2 || 0); 176 var i0 = (buf & (63 << 18)) >> 18; 177 var i1 = (buf & (63 << 12)) >> 12; 178 var i2 = isNaN(b1) ? 64 : (buf & (63 << 6)) >> 6; 179 var i3 = isNaN(b2) ? 64 : (buf & 63); 180 encoded[encoded.length] = chars.charAt(i0); 181 encoded[encoded.length] = chars.charAt(i1); 182 encoded[encoded.length] = chars.charAt(i2); 183 encoded[encoded.length] = chars.charAt(i3); 184 } 185 return encoded.join(''); 186 } 187 188 function base64_decode(str) { 189 var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; 190 var invalid = { 191 strlen: (str.length % 4 != 0), 192 chars: new RegExp('[^' + chars + ']').test(str), 193 equals: (/=/.test(str) && (/=[^=]/.test(str) || /={3}/.test(str))) 194 }; 195 if (invalid.strlen || invalid.chars || invalid.equals) 196 throw new Error('Invalid base64 data'); 197 var decoded = []; 198 var c = 0; 199 while (c < str.length) { 200 var i0 = chars.indexOf(str.charAt(c++)); 201 var i1 = chars.indexOf(str.charAt(c++)); 202 var i2 = chars.indexOf(str.charAt(c++)); 203 var i3 = chars.indexOf(str.charAt(c++)); 204 var buf = (i0 << 18) + (i1 << 12) + ((i2 & 63) << 6) + (i3 & 63); 205 var b0 = (buf & (255 << 16)) >> 16; 206 var b1 = (i2 == 64) ? -1 : (buf & (255 << 8)) >> 8; 207 var b2 = (i3 == 64) ? -1 : (buf & 255); 208 decoded[decoded.length] = String.fromCharCode(b0); 209 if (b1 >= 0) decoded[decoded.length] = String.fromCharCode(b1); 210 if (b2 >= 0) decoded[decoded.length] = String.fromCharCode(b2); 211 } 212 return decoded.join(''); 213 } 214 215 216 function setRestricted(data){ 217 if (data.indexOf("True") == 0){ 218 returnVal = data.split(':'); 219 var img_lock = document.getElementById('restrict_'+returnVal[1]); 220 if (img_lock.src.indexOf('button_unlock') > 0) 221 { 222 img_lock.src = img_lock.src.replace(/button_unlock/g,'button_lock'); 223 write_msg(get_lang('%1 marked as restricted',returnVal[1])); 224 } 225 else 226 { 227 img_lock.src = img_lock.src.replace(/button_lock/g,'button_unlock'); 228 write_msg(get_lang('%1 unmarked as restricted',returnVal[1])); 229 } 230 } 231 else 232 write_error("Could not mark as restricted"); 233 }
Note: See TracChangeset
for help on using the changeset viewer.