Changeset 2566:9bf417837888 for admin/js
- Timestamp:
- 11/17/13 20:25:53 (12 years ago)
- Branch:
- 2.6
- Children:
- 2567:6c11245cbf04, 2568:61c67a7d17fa
- Location:
- admin/js
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
admin/js/_category.js
r0 r2566 1 1 $(function() { 2 2 dotclear.hideLockable(); 3 3 4 4 var tbCategory = new jsToolBar(document.getElementById('cat_desc')); 5 5 tbCategory.draw('xhtml'); -
admin/js/_comment.js
r0 r2566 1 1 $(function() { 2 2 if (!document.getElementById) { return; } 3 3 4 4 var tbComment = new jsToolBar(document.getElementById('comment_content')); 5 5 tbComment.draw('xhtml'); 6 6 7 7 $('#comment-form input[name="delete"]').click(function() { 8 8 return window.confirm(dotclear.msg.confirm_delete_comment); -
admin/js/_comments.js
r2531 r2566 1 1 dotclear.viewCommentContent = function(line,action) { 2 2 var action = action || 'toggle'; 3 var commentId = $(line).attr('id').substr(1); 3 var commentId = $(line).attr('id').substr(1); 4 4 var tr = document.getElementById('ce'+commentId); 5 5 … … 11 11 td.className = 'expand'; 12 12 tr.appendChild(td); 13 13 14 14 // Get comment content 15 15 $.get('services.php',{f:'getCommentById',id: commentId},function(data) { 16 16 var rsp = $(data).children('rsp')[0]; 17 17 18 18 if (rsp.attributes[0].value == 'ok') { 19 19 var comment = $(rsp).find('comment_display_content').text(); 20 20 21 21 if (comment) { 22 22 $(td).append(comment); … … 25 25 var comment_ip = $(rsp).find('comment_ip').text(); 26 26 var comment_spam_disp = $(rsp).find('comment_spam_disp').text(); 27 27 28 28 $(td).append('<p><strong>' + dotclear.msg.website + 29 29 '</strong> ' + comment_site + '<br />' + … … 37 37 } 38 38 }); 39 39 40 40 $(line).toggleClass('expand'); 41 41 line.parentNode.insertBefore(tr,line.nextSibling); -
admin/js/_posts_list.js
r2531 r2566 3 3 var postId = $(line).attr('id').substr(1); 4 4 var tr = document.getElementById('pe'+postId); 5 5 6 6 if ( !tr && ( action == 'toggle' || action == 'open' ) ) { 7 7 tr = document.createElement('tr'); … … 11 11 td.className = 'expand'; 12 12 tr.appendChild(td); 13 13 14 14 // Get post content 15 15 $.get('services.php',{f:'getPostById', id: postId, post_type: ''},function(data) { 16 16 var rsp = $(data).children('rsp')[0]; 17 17 18 18 if (rsp.attributes[0].value == 'ok') { 19 19 var post = $(rsp).find('post_display_content').text(); 20 20 var post_excerpt = $(rsp).find('post_display_excerpt').text(); 21 21 var res = ''; 22 22 23 23 if (post) { 24 24 if (post_excerpt) { … … 32 32 } 33 33 }); 34 34 35 35 $(line).addClass('expand'); 36 36 line.parentNode.insertBefore(tr,line.nextSibling); -
admin/js/_preferences.js
r2101 r2566 3 3 return; 4 4 } 5 5 6 6 var user_email = $('#user_email').val(); 7 7 8 8 $('#user-form').submit(function() { 9 9 var e = this.elements['cur_pwd']; -
admin/js/_users.js
r860 r2566 9 9 var i; 10 10 var msg_cannot_delete = false; 11 11 12 12 $(this).find('input[name="users[]"]').each(function() { 13 13 user_ids.push(this); … … 16 16 nb_posts.push(this.value); 17 17 }); 18 18 19 19 if (action == 'deleteuser') { 20 20 for (i=0; i<user_ids.length; i++) { … … 30 30 } 31 31 } 32 32 33 33 var selectfields = 0; 34 34 for (i=0; i<user_ids.length; i++) { 35 35 selectfields += user_ids[i].checked; 36 36 } 37 37 38 38 if (selectfields == 0) { 39 39 return false; 40 40 } 41 41 42 42 if (action == 'deleteuser') { 43 43 return window.confirm(dotclear.msg.confirm_delete_user.replace('%s',$('input[name="users[]"]:checked').size())); 44 44 } 45 45 46 46 return true; 47 47 }); -
admin/js/_users_actions.js
r1449 r2566 1 1 jQuery.fn.updatePermissionsForm = function() { 2 2 return this.each(function() { 3 3 4 4 var perms = {}; 5 5 var re = /^perm\[(.+?)\]\[(.+?)\]$/; 6 6 var e,prop; 7 7 8 8 // Building a nice object of form elements 9 9 for (var i=0; i<this.elements.length; i++) { 10 10 e = this.elements[i]; 11 11 12 12 if (e.name == undefined) { 13 13 continue; … … 22 22 } 23 23 perms[prop[1]][prop[2]] = e; 24 24 25 25 // select related permissions for admin 26 26 if (prop[2] == 'admin') { … … 49 49 } 50 50 } 51 51 52 52 function admin(E,perms,re) { 53 53 P = E.name.match(re); 54 54 55 55 perms[P[1]]['usage'].checked = E.checked; 56 56 perms[P[1]]['publish'].checked = E.checked; … … 68 68 perms[P[1]]['media_admin'].disabled = E.checked; 69 69 } 70 70 71 71 function contentadmin(E,perms,re) { 72 72 P = E.name.match(re); 73 73 74 74 perms[P[1]]['usage'].checked = E.checked; 75 75 perms[P[1]]['publish'].checked = E.checked; … … 79 79 perms[P[1]]['delete'].disabled = E.checked; 80 80 } 81 81 82 82 function mediaadmin(E,perms,re) { 83 83 P = E.name.match(re); 84 84 85 85 perms[P[1]]['media'].checked = E.checked; 86 86 perms[P[1]]['media'].disabled = E.checked; 87 87 } 88 89 88 89 90 90 }); 91 91 }; -
admin/js/color-picker.js
r2335 r2566 7 7 var colbox, f; 8 8 var colbox = $('#jquery-colorpicker')[0]; 9 9 10 10 if (colbox == undefined) { 11 11 colbox = document.createElement('div'); 12 12 colbox.id = 'jquery-colorpicker'; 13 13 colbox.linkedto = null; 14 14 15 15 $(colbox).addClass('color-color-picker'); 16 16 $(colbox).css({display: 'none', position: 'absolute'}); … … 19 19 f = $.farbtastic(colbox); 20 20 f.linkTo(this); 21 21 22 22 var handler = $(document.createElement('img')); 23 23 handler.attr('src','images/picker.png'); 24 24 handler.attr('alt',''); 25 25 26 26 var span = $(document.createElement('span')); 27 27 28 28 if ($(this).css('position') == 'absolute') { 29 29 span.css('position','absolute'); … … 35 35 } 36 36 span.css('display','inline-block'); 37 37 38 38 /*ligne supprimée car elle ne fait pas le calcul 39 39 du width de l'input et ça fout la merde */ … … 42 42 $(this).wrap(span); 43 43 $(this).after(handler); 44 44 45 45 var offset = $(this).offset(); 46 46 handler.css({ … … 51 51 //right: 0 52 52 }); 53 53 54 54 handler.css({cursor: 'default'}); 55 55 56 56 var This = this; 57 57 handler.click(function() { … … 68 68 $(colbox).show(); 69 69 colbox.linkedto = this; 70 70 71 71 } else { 72 72 $(colbox).hide(); -
admin/js/common.js
r2531 r2566 79 79 p.hide = p.reverse_cookie; 80 80 } 81 81 82 82 var set_user_pref = p.hide ^ p.reverse_user_pref; 83 83 if (p.user_pref && p.unfolded_sections !== undefined && (p.user_pref in p.unfolded_sections)) { … … 131 131 if (p.user_pref && set_user_pref) { 132 132 if (p.hide ^ p.reverse_user_pref) { 133 jQuery.post('services.php', 133 jQuery.post('services.php', 134 134 {'f':'setSectionFold','section':p.user_pref,'value':1,xd_check: dotclear.nonce}, 135 135 function(data) {}); 136 136 } else { 137 jQuery.post('services.php', 137 jQuery.post('services.php', 138 138 {'f':'setSectionFold','section':p.user_pref,'value':0,xd_check: dotclear.nonce}, 139 139 function(data) {}); … … 168 168 }); 169 169 } 170 170 171 171 var singleExpander = function singleExpander(line) { 172 172 $('<input type="image" src="'+dotclear.img_plus_src+'" alt="'+dotclear.img_plus_alt+'"/>') … … 178 178 .prependTo($(line).children().get(0)); // first td 179 179 }; 180 180 181 181 var multipleExpander = function multipleExpander(line,lines) { 182 182 $('<input type="image" src="'+dotclear.img_plus_src+'" alt="'+dotclear.img_plus_alt+'"/>') … … 203 203 } 204 204 } 205 205 206 206 if (action=='open') { 207 207 button.src = dotclear.img_minus_src; … … 211 211 button.alt = dotclear.img_plus_alt; 212 212 } 213 213 214 214 return action; 215 215 } … … 286 286 287 287 $('#content').append(img); 288 288 289 289 // listen for scroll 290 290 var peInPage = $('#help-button').offset().top; … … 428 428 return color; 429 429 } 430 var result = /^rgb\((\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\)$/.exec(color); 430 var result = /^rgb\((\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\)$/.exec(color); 431 431 if ( result === null) { 432 432 return ''; … … 464 464 // remove class no-js from html tag; cf style/default.css for examples 465 465 $('body').removeClass('no-js').addClass('with-js'); 466 466 467 467 $('body').contents().each(function() { 468 468 if (this.nodeType==8) { -
admin/js/confirm-close.js
r0 r2566 1 1 function confirmClose() { 2 2 3 3 if (arguments.length > 0) { 4 4 for (var i=0; i<arguments.length; i++) { … … 13 13 forms: new Array(), 14 14 formSubmit: false, 15 15 16 16 getCurrentForms: function() { 17 17 var formsInPage = this.getForms(); … … 25 25 } 26 26 this.forms.push(tmpForm); 27 27 28 28 chainHandler(f,'onsubmit',function() { 29 29 This.formSubmit = true; … … 31 31 } 32 32 }, 33 33 34 34 compareForms: function() { 35 35 if (this.forms.length == 0) { 36 36 return true; 37 37 } 38 38 39 39 var formsInPage = this.getForms(); 40 40 var f; … … 47 47 } 48 48 } 49 49 50 50 return true; 51 51 }, 52 52 53 53 getForms: function() { 54 54 if (!document.getElementsByTagName || !document.getElementById) { 55 55 return new Array(); 56 56 } 57 57 58 58 if (this.forms_id.length > 0) { 59 59 var res = new Array(); … … 69 69 return document.getElementsByTagName('form'); 70 70 } 71 71 72 72 return new Array(); 73 73 }, 74 74 75 75 getFormElementValue: function(e) { 76 76 if (e.type != undefined && e.type == 'radio') { … … 84 84 } 85 85 }, 86 86 87 87 getFormCheckValue: function(e) { 88 88 if (e.checked) { … … 91 91 return null; 92 92 }, 93 93 94 94 getFormRadioValue: function(e) { 95 95 for (var i=0; i <e.length; i++) { … … 114 114 event_ = window.event; 115 115 } 116 116 117 117 if (!confirmClosePage.formSubmit && !confirmClosePage.compareForms()) { 118 118 event_.returnValue = confirmClosePage.prompt; -
admin/js/date-picker.js
r0 r2566 2 2 { 3 3 if (!document.getElementById) { return; } 4 4 5 5 if (!target || target.nodeName.toLowerCase() != 'input') { 6 6 return; 7 7 } 8 8 9 9 this.target = target; 10 10 this.oTable = document.createElement('table'); … … 17 17 this.oTable.id = 'dc_datepicker_'+target.id; 18 18 this.oTable.className = 'date-picker'; 19 19 20 20 var cur = 1; 21 21 var oRow, oHeading, oSpan; 22 22 23 23 // Set title 24 24 oRow = document.createElement('tr'); 25 25 26 26 // Month block 27 27 oHeading = document.createElement('th'); 28 28 oHeading.colSpan = 4; 29 29 oHeading.className = 'date-picker-month'; 30 30 31 31 var nav = document.createElement('span'); 32 32 nav.appendChild(document.createTextNode(String.fromCharCode(171))); … … 36 36 nav.className = 'date-picker-control'; 37 37 oHeading.appendChild(nav); 38 39 oHeading.appendChild(document.createTextNode(String.fromCharCode(160))); 40 38 39 oHeading.appendChild(document.createTextNode(String.fromCharCode(160))); 40 41 41 nav = document.createElement('span'); 42 42 nav.appendChild(document.createTextNode(String.fromCharCode(187))); … … 46 46 nav.className = 'date-picker-control'; 47 47 oHeading.appendChild(nav); 48 49 oHeading.appendChild(document.createTextNode(String.fromCharCode(160))); 50 48 49 oHeading.appendChild(document.createTextNode(String.fromCharCode(160))); 50 51 51 oHeading.appendChild(this.oMonth); 52 52 53 53 oRow.appendChild(oHeading); 54 54 55 55 // Year block 56 56 oHeading = document.createElement('th'); 57 57 oHeading.colSpan = 3; 58 58 oHeading.className = 'date-picker-year'; 59 59 60 60 oHeading.appendChild(this.oYear); 61 62 oHeading.appendChild(document.createTextNode(String.fromCharCode(160))); 63 61 62 oHeading.appendChild(document.createTextNode(String.fromCharCode(160))); 63 64 64 nav = document.createElement('span'); 65 65 nav.appendChild(document.createTextNode(String.fromCharCode(171))); … … 69 69 nav.className = 'date-picker-control'; 70 70 oHeading.appendChild(nav); 71 72 oHeading.appendChild(document.createTextNode(String.fromCharCode(160))); 73 71 72 oHeading.appendChild(document.createTextNode(String.fromCharCode(160))); 73 74 74 nav = document.createElement('span'); 75 75 nav.appendChild(document.createTextNode(String.fromCharCode(187))); … … 79 79 nav.className = 'date-picker-control'; 80 80 oHeading.appendChild(nav); 81 81 82 82 oRow.appendChild(oHeading); 83 83 84 84 this.oBody.appendChild(oRow); 85 85 86 86 // Create legend 87 87 oRow = document.createElement('tr'); … … 95 95 } 96 96 this.oBody.appendChild(oRow); 97 97 98 98 // Create 6 rows of 7 cols for days 99 99 for (var i=0; i<6; i++) { 100 100 oRow = document.createElement('tr'); 101 101 102 102 for (var j=0; j<7; j++) { 103 103 this.oDates[cur] = document.createElement('td'); … … 107 107 cur++; 108 108 } 109 109 110 110 this.oBody.appendChild(oRow); 111 111 } 112 112 113 113 // Time controls 114 114 oRow = document.createElement('tr'); 115 115 116 116 oHeading = document.createElement('th'); 117 117 oHeading.className = 'date-picker-control'; … … 121 121 oHeading.obj = this; 122 122 oHeading.onclick = function() { this.fn.call(this.obj); }; 123 123 124 124 oRow.appendChild(oHeading); 125 125 126 126 oHeading = document.createElement('th'); 127 127 oHeading.colSpan = 5; 128 128 129 129 oSpan = document.createElement('span'); 130 130 oSpan.className = 'date-picker-control'; … … 143 143 oHeading.appendChild(oSpan); 144 144 oHeading.appendChild(document.createTextNode(String.fromCharCode(160))); 145 145 146 146 this.oHour.size = 3; 147 147 oHeading.appendChild(this.oHour); 148 148 149 149 oHeading.appendChild(document.createTextNode(' : ')); 150 150 151 151 this.oMinute.size = 3; 152 152 oHeading.appendChild(this.oMinute); 153 153 154 154 oHeading.appendChild(document.createTextNode(String.fromCharCode(160))); 155 155 oSpan = document.createElement('span'); … … 167 167 oSpan.obj = this; 168 168 oSpan.onclick = function() { this.fn.call(this.obj,+1); }; 169 169 170 170 oHeading.appendChild(oSpan); 171 171 172 172 oRow.appendChild(oHeading); 173 173 174 174 // Close control 175 175 oHeading = document.createElement('th'); … … 180 180 oHeading.obj = this; 181 181 oHeading.onclick = function() { this.fn.call(this.obj); }; 182 182 183 183 oRow.appendChild(oHeading); 184 184 185 185 this.oBody.appendChild(oRow); 186 186 }; … … 192 192 hour: 0, 193 193 minute: 0, 194 194 195 195 img_src: '', 196 196 img_top: '0.2em', 197 197 now_msg: 'now', 198 198 close_msg: 'close', 199 199 200 200 days: new Array('Monday','Tuesday','Wednesday','Thursday','Friday', 201 201 'Saturday','Sunday'), 202 202 203 203 months: new Array('January','February','March','April','May','June', 204 204 'July','August','September','October','November','December'), 205 206 205 206 207 207 setDate: function() { 208 208 if (this.numberOfDays() < this.day) { 209 209 this.day = this.numberOfDays(); 210 210 } 211 211 212 212 while (this.oYear.hasChildNodes()) { 213 213 this.oYear.removeChild(this.oYear.firstChild) 214 214 } 215 215 this.oYear.appendChild(document.createTextNode(this.year)); 216 216 217 217 while (this.oMonth.hasChildNodes()) { 218 218 this.oMonth.removeChild(this.oMonth.firstChild) … … 220 220 this.oMonth.appendChild(document.createTextNode( 221 221 this.months[this.month-1])); 222 222 223 223 var firstDay = this.firstDay(); 224 224 var nbDays = this.numberOfDays(); 225 225 226 226 // Empty days 227 227 for (var i=1; i<=42; i++) { … … 233 233 this.oDates[i].onclick = function() { return; }; 234 234 } 235 235 236 236 // Insert days from the first day to the last 237 237 for (i=1; i<=nbDays; i++) { 238 238 var j=firstDay+i-1; 239 239 240 240 while (this.oDates[j].hasChildNodes()) { 241 241 this.oDates[j].removeChild(this.oDates[j].firstChild) 242 242 } 243 243 244 244 this.oDates[j].appendChild(document.createTextNode(i)); 245 245 this.oDates[j].index = i; … … 253 253 } 254 254 } 255 255 256 256 // Set time 257 257 this.setHour(this.hour); 258 258 this.setMinute(this.minute); 259 259 }, 260 260 261 261 setHour: function(h) { 262 262 if (h < 0) { h = 23; } 263 263 if (h > 23) { h = 0; } 264 264 if (h < 10) { h = '0'+h; } 265 265 266 266 this.hour = h*1; 267 267 this.oHour.value = h; 268 268 }, 269 269 270 270 setMinute: function(m) { 271 271 if (m < 0) { m = 59; } 272 272 if (m > 59) { m = 0; } 273 273 if (m < 10) { m = '0'+m; } 274 274 275 275 this.minute = m*1; 276 276 this.oMinute.value = m; 277 277 }, 278 278 279 279 changeMonth: function(dir) { 280 280 var y = this.year; 281 281 var m = this.month; 282 282 m = m+dir; 283 283 284 284 if (m > 12) { this.month = 1; this.year++; } 285 285 else if ( m < 1) { this.month = 12; this.year--; } 286 286 else { this.month = m; } 287 287 288 288 this.setDate(); 289 289 }, 290 290 291 291 changeYear: function(dir) { 292 292 this.year = this.year + dir; 293 293 this.setDate(); 294 294 }, 295 295 296 296 changeHour: function(dir) { 297 297 this.setHour(this.hour*1+dir); 298 298 }, 299 299 300 300 changeMinute: function(dir) { 301 301 this.setMinute(this.minute*1+dir); 302 302 }, 303 303 304 304 sendDate: function(d) { 305 305 var m = this.month; 306 306 var hour = this.oHour.value*1; 307 307 var minute = this.oMinute.value*1; 308 308 309 309 if (hour < 0 || hour > 23 || isNaN(hour)) { hour = 0; } 310 310 if (minute < 0 || minute > 59 || isNaN(minute)) { minute = 0; } 311 311 312 312 if (m < 10) { m = '0'+m; } 313 313 if (d < 10) { d = '0'+d; } 314 314 if (hour < 10) { hour = '0'+hour; } 315 315 if (minute < 10) { minute = '0'+minute; } 316 316 317 317 this.target.value = this.year+'-'+m+'-'+d+' '+hour+':'+minute; 318 318 this.close(); 319 319 }, 320 320 321 321 sendNow: function() { 322 322 var dt = new Date(); … … 326 326 var h = dt.getHours(); 327 327 var i = dt.getMinutes(); 328 328 329 329 if (m < 10) { m = '0'+m; } 330 330 if (d < 10) { d = '0'+d; } 331 331 if (h < 10) { h = '0'+h; } 332 332 if (i < 10) { i = '0'+i; } 333 333 334 334 this.target.value = y+'-'+m+'-'+d+' '+h+':'+i; 335 335 this.close(); 336 336 }, 337 337 338 338 close: function() { 339 339 document.body.removeChild(this.oTable); 340 340 }, 341 341 342 342 numberOfDays: function() { 343 343 var res = 31; … … 352 352 } 353 353 } 354 354 355 355 return res; 356 356 }, 357 357 358 358 firstDay: function() { 359 359 var dt = new Date(this.year,this.month-1,1); 360 360 var res = dt.getDay(); 361 361 362 362 if (res == 0) { 363 363 res = 7; 364 364 } 365 365 366 366 return res; 367 367 }, 368 368 369 369 show: function() { 370 370 // Parsing target value … … 385 385 this.minute = dt.getMinutes(); 386 386 } 387 387 388 388 this.oTable.appendChild(this.oBody); 389 389 this.setDate(); … … 392 392 this.oHour.focus(); 393 393 }, 394 394 395 395 setPosition: function() { 396 396 var t_x = this.findPosX(this.target); … … 398 398 var o_h = this.oTable.offsetHeight; 399 399 var o_w = this.oTable.offsetWidth; 400 400 401 401 this.oTable.style.position = 'absolute'; 402 402 this.oTable.style.zIndex = '100'; … … 404 404 this.oTable.style.left = t_x+'px'; 405 405 }, 406 406 407 407 findPosX: function(obj) { 408 408 var curleft = 0; … … 420 420 return curleft; 421 421 }, 422 422 423 423 findPosY: function(obj) { 424 424 var curtop = 0; … … 436 436 return curtop; 437 437 }, 438 438 439 439 draw: function() { 440 440 var imgE = document.createElement('img'); … … 446 446 imgE.fn = this.show; 447 447 imgE.onclick = function() { this.fn.apply(this.obj); }; 448 448 449 449 this.target.parentNode.style.position = 'relative'; 450 450 this.target.parentNode.insertBefore(imgE,this.target.nextSibling); -
admin/js/dragsort-tablerows.js
r0 r2566 1 1 ToolMan._dragsortFactory.makeTableSortable = function(table) { 2 2 if (table == null) return; 3 3 4 4 var helpers = ToolMan.helpers(); 5 5 var coordinates = ToolMan.coordinates(); 6 6 var items = table.getElementsByTagName("tr"); 7 7 8 8 helpers.map(items, function(item) { 9 9 var dragGroup = dragsort.makeSortable(item); -
admin/js/filter-controls.js
r2128 r2566 1 1 $(function() { 2 2 3 3 $filtersform = $('#filters-form'); 4 4 $filtersform.before('<p><a id="filter-control" class="form-control" href="?" style="display:inline">'+dotclear.msg.filter_posts_list+'</a></p>') 5 5 6 6 if( dotclear.msg.show_filters == 'false' ) { 7 7 $filtersform.hide(); … … 11 11 .text(dotclear.msg.cancel_the_filter); 12 12 } 13 13 14 14 $('#filter-control').click(function() { 15 15 if( $(this).hasClass('open') ) { -
admin/js/jsToolBar/jsToolBar.dotclear.js
r1753 r2566 8 8 window.the_toolbar = this; 9 9 args = args || ''; 10 10 11 11 this.elements.link.data = {}; 12 12 var url = this.elements.link.open_url+args; 13 13 14 14 var p_win = window.open(url,'dc_popup', 15 15 'alwaysRaised=yes,dependent=yes,toolbar=yes,height=420,width=520,'+ … … 22 22 jsToolBar.prototype.elements.link.fncall.wiki = function() { 23 23 var data = this.elements.link.data; 24 24 25 25 if (data.href == '') { return; } 26 26 27 27 var etag = '|'+data.href; 28 28 if (data.hreflang) { etag += '|'+data.hreflang; } 29 29 30 30 if (data.title) { 31 31 if (!data.hreflang) { etag += '|'; } 32 32 etag += '|'+data.title; 33 33 } 34 34 35 35 if (data.content) { 36 36 this.encloseSelection('['+data.content,etag+']'); … … 45 45 jsToolBar.prototype.elements.link.fncall.xhtml = function() { 46 46 var data = this.elements.link.data; 47 47 48 48 if (data.href == '') { return; } 49 49 50 50 var stag = '<a href="'+data.href+'"'; 51 51 52 52 if (data.hreflang) { stag += ' hreflang="'+data.hreflang+'"'; } 53 53 if (data.title) { stag += ' title="'+data.title+'"'; } 54 54 stag += '>'; 55 55 var etag = '</a>'; 56 56 57 57 if (data.content) { 58 58 this.encloseSelection('','',function() { … … 68 68 href = title = hreflang = ''; 69 69 hreflang = this.elements.link.default_hreflang; 70 70 71 71 var a = this.getAncestor(); 72 72 73 73 if (a.tagName == 'a') { 74 74 href= a.tag.href || ''; … … 76 76 hreflang = a.tag.hreflang || ''; 77 77 } 78 78 79 79 this.elements.link.popup.call(this,'?href='+href+'&hreflang='+hreflang+'&title='+title); 80 80 }; 81 81 jsToolBar.prototype.elements.link.fncall.wysiwyg = function() { 82 82 var data = this.elements.link.data; 83 83 84 84 var a = this.getAncestor(); 85 85 86 86 if (a.tagName == 'a') { 87 87 if (data.href == '') { … … 106 106 } 107 107 } 108 108 109 109 // Create link 110 110 if (data.content) { … … 123 123 var res = {}; 124 124 var range, commonAncestorContainer; 125 125 126 126 if (this.iwin.getSelection) { //gecko 127 127 var selection = this.iwin.getSelection(); … … 135 135 commonAncestorContainer = range.parentElement(); 136 136 } 137 137 138 138 var ancestorTagName = commonAncestorContainer.tagName.toLowerCase(); 139 139 while (ancestorTagName!='a' && ancestorTagName!='body') { … … 141 141 ancestorTagName = commonAncestorContainer.tagName.toLowerCase(); 142 142 } 143 143 144 144 res.tag = commonAncestorContainer; 145 145 res.tagName = ancestorTagName; 146 146 147 147 return res; 148 148 }; … … 160 160 window.the_toolbar = this; 161 161 this.elements.img_select.data = {}; 162 162 163 163 var p_win = window.open(this.elements.img_select.open_url,'dc_popup', 164 164 'alwaysRaised=yes,dependent=yes,toolbar=yes,height=500,width=760,'+ … … 172 172 var d = this.elements.img_select.data; 173 173 if (d.src == undefined) { return; } 174 174 175 175 this.encloseSelection('','',function(str) { 176 176 var alt = (str) ? str : d.title; 177 177 var res = '(('+d.src+'|'+alt; 178 178 179 179 if (d.alignment == 'left') { 180 180 res += '|L'; … … 186 186 res += '|'; 187 187 } 188 188 189 189 if (d.description) { 190 190 res += '|'+d.description; 191 191 } 192 192 193 193 res += '))'; 194 194 195 195 if (d.link) { 196 196 var ltitle = (alt) ? '||'+alt : ''; 197 197 res = '['+res+'|'+d.url+ltitle+']'; 198 198 } 199 199 200 200 return res; 201 201 }); … … 207 207 var d = this.elements.img_select.data; 208 208 if (d.src == undefined) { return; } 209 209 210 210 this.encloseSelection('','',function(str) { 211 211 var alt = (str) ? str : d.title; 212 212 var res = '<img src="'+d.src+'" alt="'+alt.replace('&','&').replace('>','>').replace('<','<').replace('"','"')+'"'; 213 213 214 214 if (d.alignment == 'left') { 215 215 res += ' style="float: left; margin: 0 1em 1em 0;"'; … … 219 219 res += ' style="margin: 0 auto; display: block;"'; 220 220 } 221 221 222 222 if (d.description) { 223 223 res += ' title="'+d.description.replace('&','&').replace('>','>').replace('<','<').replace('"','"')+'"'; 224 224 } 225 225 226 226 res += ' />'; 227 227 228 228 if (d.link) { 229 229 var ltitle = (alt) ? ' title="'+alt.replace('&','&').replace('>','>').replace('<','<').replace('"','"')+'"' : ''; 230 230 res = '<a href="'+d.url+'"'+ltitle+'>'+res+'</a>'; 231 231 } 232 232 233 233 return res; 234 234 }); … … 238 238 var src = this.elements.img.prompt.call(this); 239 239 if (!src) { return; } 240 240 241 241 var img = this.iwin.document.createElement('img'); 242 242 img.src = src; 243 243 img.setAttribute('alt',this.getSelectedText()); 244 244 245 245 this.insertNode(img); 246 246 }; … … 253 253 var alt = (this.getSelectedText()) ? this.getSelectedText() : d.title; 254 254 if (d.src == undefined) { return; } 255 255 256 256 var img = this.iwin.document.createElement('img'); 257 257 img.src = d.src; 258 258 img.setAttribute('alt',alt); 259 260 259 260 261 261 if (d.alignment == 'left') { 262 262 if (img.style.styleFloat != undefined) { … … 286 286 img.style.display = 'block'; 287 287 } 288 288 289 289 if (d.description) { 290 290 img.setAttribute('title',d.description); 291 291 } 292 292 293 293 if (d.link) { 294 294 var a = this.iwin.document.createElement('a'); … … 309 309 var d = this.elements.mp3_insert.data; 310 310 if (d.player == undefined) { return; } 311 311 312 312 this.encloseSelection('','',function(str) { 313 313 return '\n///html\n' + d.player + '///\n'; … … 317 317 var d = this.elements.mp3_insert.data; 318 318 if (d.player == undefined) { return; } 319 319 320 320 this.encloseSelection('','',function(str) { 321 321 return '\n' + d.player + '\n'; … … 331 331 var d = this.elements.flv_insert.data; 332 332 if (d.player == undefined) { return; } 333 333 334 334 this.encloseSelection('','',function(str) { 335 335 return '\n///html\n' + d.player + '///\n'; … … 339 339 var d = this.elements.flv_insert.data; 340 340 if (d.player == undefined) { return; } 341 341 342 342 this.encloseSelection('','',function(str) { 343 343 return '\n' + d.player + '\n'; … … 360 360 window.the_toolbar = this; 361 361 this.elements.img_select.data = {}; 362 362 363 363 var p_win = window.open(this.elements.post_link.open_url,'dc_popup', 364 364 'alwaysRaised=yes,dependent=yes,toolbar=yes,height=500,width=760,'+ … … 378 378 // Last space element 379 379 jsToolBar.prototype.elements.space3 = { 380 type:'space', 380 type:'space', 381 381 format:{ 382 382 wysiwyg:true, -
admin/js/jsToolBar/jsToolBar.js
r1759 r2566 8 8 * the Free Software Foundation; either version 2 of the License, or 9 9 * (at your option) any later version. 10 * 10 * 11 11 * DotClear is distributed in the hope that it will be useful, 12 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 14 * GNU General Public License for more details. 15 * 15 * 16 16 * You should have received a copy of the GNU General Public License 17 17 * along with DotClear; if not, write to the Free Software … … 23 23 function jsToolBar(textarea) { 24 24 if (!document.createElement) { return; } 25 25 26 26 if (!textarea) { return; } 27 27 28 28 if ((typeof(document["selection"]) == "undefined") 29 29 && (typeof(textarea["setSelectionRange"]) == "undefined")) { 30 30 return; 31 31 } 32 32 33 33 this.textarea = textarea; 34 34 35 35 this.editor = document.createElement('div'); 36 36 this.editor.className = 'jstEditor'; 37 37 38 38 this.textarea.parentNode.insertBefore(this.editor,this.textarea); 39 39 this.editor.appendChild(this.textarea); 40 40 41 41 this.toolbar = document.createElement("div"); 42 42 this.toolbar.className = 'jstElements'; 43 43 this.editor.parentNode.insertBefore(this.toolbar,this.editor); 44 44 45 45 // Dragable resizing (only for gecko) 46 46 if (navigator.appName == 'Microsoft Internet Explorer') 47 47 { 48 48 if (this.editor.addEventListener) 49 { 49 { 50 50 this.handle = document.createElement('div'); 51 51 this.handle.className = 'jstHandle'; … … 56 56 } 57 57 } 58 58 59 59 this.context = null; 60 this.toolNodes = {}; // lorsque la toolbar est dessinée , cet objet est garni 60 this.toolNodes = {}; // lorsque la toolbar est dessinée , cet objet est garni 61 61 // de raccourcis vers les éléments DOM correspondants aux outils. 62 62 }; … … 70 70 jsButton.prototype.draw = function() { 71 71 if (!this.scope) return null; 72 72 73 73 var button = document.createElement('button'); 74 74 button.setAttribute('type','button'); … … 78 78 span.appendChild(document.createTextNode(this.title)); 79 79 button.appendChild(span); 80 80 81 81 if (this.icon != undefined) { 82 82 button.style.backgroundImage = 'url('+this.icon+')'; … … 99 99 span.className = 'jstSpacer'; 100 100 if (this.width) span.style.marginRight = this.width+'px'; 101 101 102 102 return span; 103 103 }; … … 112 112 jsCombo.prototype.draw = function() { 113 113 if (!this.scope || !this.options) return null; 114 114 115 115 var select = document.createElement('select'); 116 116 if (this.className) select.className = className; 117 117 select.title = this.title; 118 118 119 119 for (var o in this.options) { 120 120 //var opt = this.options[o]; … … 124 124 select.appendChild(option); 125 125 } 126 126 127 127 var This = this; 128 128 select.onchange = function() { 129 try { 129 try { 130 130 This.fn.call(This.scope, this.value); 131 131 } catch (e) { alert(e); } 132 132 133 133 return false; 134 134 }; 135 135 136 136 return select; 137 137 }; … … 142 142 mode: 'xhtml', 143 143 elements: {}, 144 144 145 145 getMode: function() { 146 146 return this.mode; 147 147 }, 148 148 149 149 setMode: function(mode) { 150 150 this.mode = mode || 'xhtml'; 151 151 }, 152 152 153 153 switchMode: function(mode) { 154 154 mode = mode || 'xhtml'; 155 155 this.draw(mode); 156 156 }, 157 157 158 158 button: function(toolName) { 159 159 var tool = this.elements[toolName]; … … 175 175 combo: function(toolName) { 176 176 var tool = this.elements[toolName]; 177 177 178 178 if( tool[this.mode] != undefined) { 179 179 180 180 var length = tool[this.mode].list.length; 181 181 182 182 if (typeof tool[this.mode].fn != 'function' || length == 0) { 183 183 return null; … … 190 190 return new jsCombo(tool.title, options, this, tool[this.mode].fn); 191 191 } 192 193 } 194 192 193 } 194 195 195 }, 196 196 draw: function(mode) { 197 197 this.setMode(mode); 198 198 199 199 // Empty toolbar 200 200 while (this.toolbar.hasChildNodes()) { … … 202 202 } 203 203 this.toolNodes = {}; // vide les raccourcis DOM/**/ 204 204 205 205 // Draw toolbar elements 206 206 var b, tool, newTool; 207 207 208 208 for (var i in this.elements) { 209 209 b = this.elements[i]; 210 210 211 211 var disabled = 212 212 b.type == undefined || b.type == '' 213 213 || (b.disabled != undefined && b.disabled) 214 214 || (b.context != undefined && b.context != null && b.context != this.context); 215 215 216 216 if (!disabled && typeof this[b.type] == 'function') { 217 217 tool = this[b.type](i); … … 224 224 } 225 225 }, 226 226 227 227 singleTag: function(stag,etag) { 228 228 stag = stag || null; 229 229 etag = etag || stag; 230 230 231 231 if (!stag || !etag) { return; } 232 232 233 233 this.encloseSelection(stag,etag); 234 234 }, 235 235 236 236 encloseSelection: function(prefix, suffix, fn) { 237 237 this.textarea.focus(); 238 238 239 239 prefix = prefix || ''; 240 240 suffix = suffix || ''; 241 241 242 242 var start, end, sel, scrollPos, subst, res; 243 243 244 244 if (typeof(document["selection"]) != "undefined") { 245 245 sel = document.selection.createRange().text; … … 250 250 sel = this.textarea.value.substring(start, end); 251 251 } 252 252 253 253 if (sel.match(/ $/)) { // exclude ending space char, if any 254 254 sel = sel.substring(0, sel.length - 1); 255 255 suffix = suffix + " "; 256 256 } 257 257 258 258 if (typeof(fn) == 'function') { 259 259 res = (sel) ? fn.call(this,sel) : fn(''); … … 261 261 res = (sel) ? sel : ''; 262 262 } 263 263 264 264 subst = prefix + res + suffix; 265 265 266 266 if (typeof(document["selection"]) != "undefined") { 267 267 var range = document.selection.createRange().text = subst; … … 278 278 } 279 279 }, 280 280 281 281 stripBaseURL: function(url) { 282 282 if (this.base_url != '') { … … 286 286 } 287 287 } 288 288 289 289 return url; 290 290 } … … 355 355 // spacer 356 356 jsToolBar.prototype.elements.space0 = { 357 type:'space', 357 type:'space', 358 358 format:{ 359 359 wysiwyg:true, … … 425 425 // spacer 426 426 jsToolBar.prototype.elements.space1 = { 427 type:'space', 427 type:'space', 428 428 format:{ 429 429 wysiwyg:true, … … 445 445 // spacer 446 446 jsToolBar.prototype.elements.space2 = { 447 type:'space', 447 type:'space', 448 448 format:{ 449 449 wysiwyg:true, … … 523 523 // spacer 524 524 jsToolBar.prototype.elements.space3 = { 525 type:'space', 525 type:'space', 526 526 format:{ 527 527 wysiwyg:true, … … 542 542 href = href || ''; 543 543 hreflang = hreflang || this.elements.link.default_hreflang; 544 544 545 545 href = window.prompt(this.elements.link.href_prompt,href); 546 546 if (!href) { return false; } 547 547 548 548 hreflang = window.prompt(this.elements.link.hreflang_prompt, 549 549 hreflang); 550 550 551 551 return { href: this.stripBaseURL(href), hreflang: hreflang }; 552 552 } … … 560 560 stag = stag+'>'; 561 561 var etag = '</a>'; 562 562 563 563 this.encloseSelection(stag,etag); 564 564 } … … 571 571 if (link.hreflang) { etag = etag+'|'+link.hreflang; } 572 572 etag = etag+']'; 573 573 574 574 this.encloseSelection(stag,etag); 575 575 } -
admin/js/jsToolBar/jsToolBar.wysiwyg.js
r2155 r2566 8 8 * the Free Software Foundation; either version 2 of the License, or 9 9 * (at your option) any later version. 10 * 10 * 11 11 * DotClear is distributed in the hope that it will be useful, 12 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 14 * GNU General Public License for more details. 15 * 15 * 16 16 * You should have received a copy of the GNU General Public License 17 17 * along with DotClear; if not, write to the Free Software … … 32 32 jsToolBar.prototype.draw = function(mode) { 33 33 mode = mode || 'xhtml'; 34 34 35 35 if (this.can_wwg) { 36 36 this.mode = 'wysiwyg'; … … 44 44 jsToolBar.prototype.switchMode = function(mode) { 45 45 mode = mode || 'xhtml'; 46 46 47 47 if (mode == 'xhtml') { 48 48 this.wwg_mode = true; … … 70 70 this.textarea.value = html; 71 71 } 72 72 73 73 function initContent() { 74 74 if (!This.iframe.contentWindow.document || !This.iframe.contentWindow.document.body) { … … 77 77 } 78 78 This.ibody = This.iframe.contentWindow.document.body; 79 79 80 80 if (This.textarea.value != '' && This.textarea.value != '<p></p>') { 81 81 This.ibody.innerHTML = This.applyWysiwygFilters(This.textarea.value); … … 139 139 jsToolBar.prototype.initWindow = function() { 140 140 var This = this; 141 141 142 142 this.iframe = document.createElement('iframe'); 143 143 this.textarea.parentNode.insertBefore(this.iframe,this.textarea.nextSibling); 144 144 145 145 this.switcher = document.createElement('ul'); 146 146 this.switcher.className = 'jstSwitcher'; 147 147 this.editor.appendChild(this.switcher); 148 148 149 149 this.iframe.height = this.textarea.offsetHeight + 0; 150 150 this.iframe.width = this.textarea.offsetWidth + 0; 151 151 152 152 if (this.textarea.tabIndex != undefined) { 153 153 this.iframe.tabIndex = this.textarea.tabIndex; 154 154 } 155 155 156 156 function initIframe() { 157 157 var doc = This.iframe.contentWindow.document; … … 160 160 return false; 161 161 } 162 162 163 163 doc.open(); 164 164 var html = … … 171 171 '</body>\n'+ 172 172 '</html>'; 173 173 174 174 doc.write(html); 175 175 doc.close(); … … 178 178 // warning : doc is now inaccessible for IE6 sp1 179 179 } 180 180 181 181 This.iwin = This.iframe.contentWindow; 182 182 183 183 This.syncContents('textarea'); 184 184 185 185 if (This.wwg_mode == undefined) { 186 186 This.wwg_mode = true; 187 187 } 188 188 189 189 if (This.wwg_mode) { 190 190 This.textarea.style.display = 'none'; … … 192 192 This.iframe.style.display = 'none'; 193 193 } 194 194 195 195 // update textarea on submit 196 196 if (This.textarea.form) { … … 201 201 }); 202 202 } 203 203 204 204 for (var evt in This.iwinEvents) { 205 205 var event = This.iwinEvents[evt]; 206 206 This.addIwinEvent(This.iframe.contentWindow.document, event.type, event.fn, This); 207 207 } 208 208 209 209 This.setSwitcher(); 210 210 try { This.iwin.document.designMode = 'on'; } catch (e) {}; // Firefox needs this 211 211 212 212 return true; 213 213 } … … 241 241 this.switcher.removeChild(this.switcher.firstChild); 242 242 } 243 243 244 244 var This = this; 245 245 function setLink(title,link) { … … 255 255 a = document.createTextNode(title); 256 256 } 257 257 258 258 li.appendChild(a); 259 259 This.switcher.appendChild(li); 260 260 } 261 261 262 262 setLink(this.switcher_visual_title,!this.wwg_mode); 263 263 setLink(this.switcher_source_title,this.wwg_mode); … … 271 271 this.iframe = null; 272 272 } 273 273 274 274 if (this.switcher != undefined && this.switcher.parentNode != undefined) { 275 275 this.switcher.parentNode.removeChild(this.switcher); … … 312 312 jsToolBar.prototype.insertNode = function(node) { 313 313 var range; 314 314 315 315 if (this.iwin.getSelection) { // Gecko 316 316 var sel = this.iwin.getSelection(); 317 317 range = sel.getRangeAt(0); 318 318 319 319 // deselect all ranges 320 320 sel.removeAllRanges(); 321 321 322 322 // empty range 323 323 range.deleteContents(); 324 324 325 325 // Insert node 326 326 range.insertNode(node); 327 327 328 328 range.selectNodeContents(node); 329 329 range.setEndAfter(node); … … 335 335 } 336 336 sel.addRange(range); 337 337 338 338 sel.collapseToEnd(); 339 339 } else { // IE … … 391 391 jsToolBar.prototype.getBlockLevel = function() { 392 392 var blockElts = ['p','h1','h2','h3','h4','h5','h6']; 393 393 394 394 var range, commonAncestorContainer; 395 395 if (this.iwin.getSelection) { //gecko … … 404 404 commonAncestorContainer = range.parentElement(); 405 405 } 406 406 407 407 var ancestorTagName = commonAncestorContainer.tagName.toLowerCase(); 408 408 while (arrayIndexOf(blockElts, ancestorTagName)==-1 && ancestorTagName!='body') { … … 430 430 [/<style[\w\W]*?>[\w\W]*?<\/style>/gim, ''], 431 431 [/<\/?font[\w\W]*?>/gim, ''], 432 433 432 433 434 434 /* Replacements */ 435 435 [/<(\/?)(B|b|STRONG)([\s>\/])/g, "<$1strong$3"], … … 498 498 html = html.replace(/(<[^\/!]>|<[^\/!][^>]*[^\/]>)\s*<\/[^>]*[^-]>/g, ""); 499 499 } 500 500 501 501 /* tous les tags en minuscule */ 502 502 html = html.replace(/<(\/?)([A-Z0-9]+)/g, … … 504 504 return "<" + match1 + match2.toLowerCase(); 505 505 }); 506 506 507 507 /* IE laisse souvent des attributs sans guillemets */ 508 508 var myRegexp = /<[^>]+((\s+\w+\s*=\s*)([^"'][\w~@+$,%\/:.#?=&;!*()-]*))[^>]*?>/; … … 516 516 ) 517 517 } 518 518 519 519 /* les navigateurs rajoutent une unite aux longueurs css nulles */ 520 520 /* note: a ameliorer ! */ … … 522 522 html = html.replace(/(<[^>]+style=(["'])[^>]+[\s:]+)0(pt|px)(\2|\s|;)/gi, "$1"+"0$4"); 523 523 } 524 524 525 525 /* correction des fins de lignes : le textarea edite contient des \n 526 526 * le wysiwyg des \r\n , et le textarea mis a jour SANS etre affiche des \r\n ! */ 527 527 html = html.replace(/\r\n/g,"\n"); 528 528 529 529 /* Trim */ 530 530 html = html.replace(/^\s+/gm,''); 531 531 html = html.replace(/\s+$/gm,''); 532 532 533 533 return html; 534 534 }; … … 538 538 var BQs = this.iwin.document.getElementsByTagName('blockquote'); 539 539 var bqChilds; 540 540 541 541 for (var bq = 0; bq < BQs.length; bq++) { 542 542 bqChilds = BQs[bq].childNodes; … … 572 572 [/(<[a-z][^>]*)margin-right\s*:[^;]*;/mg, "$1"], 573 573 [/(<[a-z][^>]*)margin-top\s*:[^;]*;/mg, "$1"], 574 574 575 575 [/(<[a-z][^>]*)padding\s*:[^;]*;/mg, "$1"], 576 576 [/(<[a-z][^>]*)padding-bottom\s*:[^;]*;/mg, "$1"], … … 578 578 [/(<[a-z][^>]*)padding-right\s*:[^;]*;/mg, "$1"], 579 579 [/(<[a-z][^>]*)padding-top\s*:[^;]*;/mg, "$1"], 580 580 581 581 [/(<[a-z][^>]*)font\s*:[^;]*;/mg, "$1"], 582 582 [/(<[a-z][^>]*)font-family\s*:[^;]*;/mg, "$1"], … … 585 585 [/(<[a-z][^>]*)font-variant\s*:[^;]*;/mg, "$1"], 586 586 [/(<[a-z][^>]*)font-weight\s*:[^;]*;/mg, "$1"], 587 587 588 588 [/(<[a-z][^>]*)color\s*:[^;]*;/mg, "$1"] 589 589 ); … … 593 593 html = html.replace(this.removeFormatRegexp[reg][0], this.removeFormatRegexp[reg][1]); 594 594 } 595 595 596 596 html = this.tagsoup2xhtml(html); 597 597 html = html.replace(/style="\s*?"/mgi,''); … … 693 693 commonAncestorContainer = range.parentElement(); 694 694 } 695 695 696 696 var ancestorTagName = commonAncestorContainer.tagName.toLowerCase(); 697 697 while (ancestorTagName!='a' && ancestorTagName!='body') { … … 699 699 ancestorTagName = commonAncestorContainer.tagName.toLowerCase(); 700 700 } 701 701 702 702 // Update or remove link? 703 703 if (ancestorTagName == 'a') { … … 705 705 hreflang = commonAncestorContainer.hreflang || ''; 706 706 } 707 707 708 708 href = window.prompt(this.elements.link.href_prompt,href); 709 709 710 710 // Remove link 711 711 if (ancestorTagName == 'a' && href=='') { … … 713 713 } 714 714 if (!href) return; // user cancel 715 715 716 716 hreflang = window.prompt(this.elements.link.hreflang_prompt, hreflang); 717 717 718 718 // Update link 719 719 if (ancestorTagName == 'a' && href) { … … 726 726 return; 727 727 } 728 728 729 729 // Create link 730 730 var n = this.getSelectedNode(); -
admin/js/jsToolBar/popup_link.js
r0 r2566 3 3 window.close(); 4 4 }); 5 5 6 6 $('#link-insert-ok').click(function() { 7 7 sendClose(); 8 8 window.close(); 9 9 }); 10 10 11 11 function sendClose() { 12 12 var insert_form = $('#link-insert-form').get(0); 13 13 if (insert_form == undefined) { return; } 14 14 15 15 var tb = window.opener.the_toolbar; 16 16 var data = tb.elements.link.data; 17 17 18 18 data.href = tb.stripBaseURL(insert_form.elements.href.value); 19 19 data.title = insert_form.elements.title.value; -
admin/js/jsToolBar/popup_media.js
r0 r2566 1 1 $(function() { 2 2 var toolBar = window.opener.the_toolbar.textarea; 3 3 4 4 $('#media-insert').onetabload(function() { 5 5 $('#media-insert-cancel').click(function() { 6 6 window.close(); 7 7 }); 8 8 9 9 $('#media-insert-ok').click(function() { 10 10 sendClose(); … … 12 12 }); 13 13 }); 14 14 15 15 function sendClose() { 16 16 var insert_form = $('#media-insert-form').get(0); 17 17 if (insert_form == undefined) { return; } 18 18 19 19 var tb = window.opener.the_toolbar; 20 20 var type = insert_form.elements.type.value; 21 21 22 22 var media_align_grid = { 23 23 left: 'float: left; margin: 0 1em 1em 0;', … … 25 25 center: 'text-align: center;' 26 26 }; 27 27 28 28 if (type == 'image') 29 29 { … … 31 31 tb.elements.img_select.data.alignment = $('input[name="alignment"]:checked',insert_form).val(); 32 32 tb.elements.img_select.data.link = $('input[name="insertion"]:checked',insert_form).val() == 'link'; 33 33 34 34 tb.elements.img_select.data.title = insert_form.elements.title.value; 35 35 tb.elements.img_select.data.description = $('input[name="description"]',insert_form).val(); … … 41 41 var player = $('#public_player').val(); 42 42 var align = $('input[name="alignment"]:checked',insert_form).val(); 43 43 44 44 if (align != undefined && align != 'none') { 45 45 player = '<div style="' + media_align_grid[align] + '">' + player + '</div>'; 46 46 } 47 47 48 48 tb.elements.mp3_insert.data.player = player.replace(/>/g,'>\n'); 49 49 tb.elements.mp3_insert.fncall[tb.mode].call(tb); … … 53 53 var oplayer = $('<div>'+$('#public_player').val()+'</div>'); 54 54 var flashvars = $("[name=FlashVars]",oplayer).val(); 55 55 56 56 var align = $('input[name="alignment"]:checked',insert_form).val(); 57 57 var title = insert_form.elements.title.value; 58 58 59 59 if (title) { 60 60 flashvars = 'title='+encodeURI(title)+'&'+flashvars; … … 64 64 flashvars = flashvars.replace(/(width=\d*)/,'width='+$('#video_w').val()); 65 65 flashvars = flashvars.replace(/(height=\d*)/,'height='+$('#video_h').val()); 66 66 67 67 $("[name=FlashVars]",oplayer).val(flashvars); 68 var player = oplayer.html(); 69 68 var player = oplayer.html(); 69 70 70 if (align != undefined && align != 'none') { 71 71 player = '<div style="' + media_align_grid[align] + '">' + player + '</div>'; 72 72 } 73 73 74 74 tb.elements.flv_insert.data.player = player.replace(/>/g,'>\n'); 75 75 tb.elements.flv_insert.fncall[tb.mode].call(tb); … … 82 82 } 83 83 }; 84 84 85 85 function playerFormat(s) { 86 86 s = s.replace(/</g,'<'); 87 87 s = s.replace(/>/g,'>\n'); 88 88 s = s.replace(/&/g,'&'); 89 89 90 90 return s; 91 91 }; -
admin/js/jsToolBar/popup_posts.js
r0 r2566 3 3 window.close(); 4 4 }); 5 5 6 6 $('#form-entries tr>td.maximal>a').click(function() { 7 7 // Get post_id 8 8 var tb = window.opener.the_toolbar; 9 9 var data = tb.elements.link.data; 10 10 11 11 data.href = tb.stripBaseURL($(this).attr('title')); 12 12 13 13 tb.elements.link.fncall[tb.mode].call(tb); 14 14 window.close(); -
admin/js/prelude.js
r2306 r2566 7 7 $('#wrapper, #help-button, #collapser').addClass('with-prelude'); 8 8 }); 9 9 10 10 $('body').on('click', '#prelude a[href="#help"]', function(e) { 11 11 e.preventDefault();
Note: See TracChangeset
for help on using the changeset viewer.