Changeset 298
- Timestamp:
- 01/19/2014 07:19:54 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordpress.org/public_html/style/trac/wp-trac.js
r297 r298 31 31 wpTrac = { 32 32 33 gardener 34 35 init 33 gardener: typeof wpBugGardener !== 'undefined', 34 35 init: function() { 36 36 wpTrac.hacks(); 37 37 if ( ! $(document.body).hasClass( 'plugins' ) ) { … … 41 41 }, 42 42 43 hacks: function() { 44 // Change 'Comments' and 'Stars' columns to dashicons glyphs to save space 45 $('th a[href*="sort=Comments"]').html('<div class="dashicons dashicons-admin-comments"></div>'); 46 $('th a[href*="sort=Stars"]').html('<div class="dashicons dashicons-star-empty"></div>'); 47 43 // These ticket hacks need to be re-run after ticket previews. 44 postPreviewHacks: function() { 48 45 // Automatically preview images. 49 46 $('li.trac-field-attachment').each( function() { … … 77 74 el.children().appendTo( el.prev().children('.trac-ticket-buttons') ).end().end().remove(); 78 75 }); 76 }, 77 78 hacks: function() { 79 var content = $( '#content' ); 80 81 // Change 'Comments' and 'Stars' columns to dashicons glyphs to save space 82 $('th a[href*="sort=Comments"]').html('<div class="dashicons dashicons-admin-comments"></div>'); 83 $('th a[href*="sort=Stars"]').html('<div class="dashicons dashicons-star-empty"></div>'); 84 85 if ( content.hasClass( 'ticket' ) ) { 86 if ( $(document.body).hasClass( 'core' ) ) { 87 wpTrac.coreToMeta(); 88 } 89 90 // A collection of ticket hacks that must be run again after previews. 91 wpTrac.postPreviewHacks(); 92 content.on( 'wpTracPostPreview', wpTrac.postPreviewHacks ); 93 94 // Allow 'Modify Ticket' to be shown even after a Trac preview tries to close it, 95 // but only if it was already open. 96 (function(){ 97 var action, hadClass, 98 form = $('#propertyform'), 99 modify = $('#modify').parent(); 100 101 if ( ! form.length ) { 102 return; 103 } 104 action = form.attr('action'); 105 $(document).ajaxSend( function( event, XMLHttpRequest, ajaxOptions ) { 106 if ( 0 !== action.indexOf( ajaxOptions.url ) ) { 107 return; 108 } 109 hadClass = modify.hasClass('collapsed'); 110 }); 111 $(document).ajaxComplete( function( event, XMLHttpRequest, ajaxOptions ) { 112 if ( 0 !== action.indexOf( ajaxOptions.url ) ) { 113 return; 114 } 115 if ( ! hadClass ) { 116 modify.removeClass('collapsed'); 117 } 118 content.triggerHandler( 'wpTracPostPreview' ); 119 }); 120 })(); 121 } 79 122 80 123 // Add After the Deadline (only add it if it loaded) … … 92 135 // Push live comment previews above 'Modify Ticket' 93 136 $('#ticketchange').insertAfter('#trac-add-comment'); 94 95 // Allow 'Modify Ticket' to be shown even after a Trac preview tries to close it,96 // but only if it was already open.97 (function(){98 var action, hadClass,99 form = $('#propertyform'),100 modify = $('#modify').parent();101 102 if ( ! form.length ) {103 return;104 }105 action = form.attr('action');106 $(document).ajaxSend( function( event, XMLHttpRequest, ajaxOptions ) {107 if ( 0 !== action.indexOf( ajaxOptions.url ) ) {108 return;109 }110 hadClass = modify.hasClass('collapsed');111 });112 $(document).ajaxComplete( function( event, XMLHttpRequest, ajaxOptions ) {113 if ( hadClass || 0 !== action.indexOf( ajaxOptions.url ) ) {114 return;115 }116 modify.removeClass('collapsed');117 });118 })();119 137 120 138 // Toggle the security notice on component change, if rendered … … 224 242 }); 225 243 } 244 }, 245 246 coreToMeta: function() { 247 var component = $('#field-component'); 248 if ( window.location.pathname !== '/newticket' ) { 249 if ( ! wpTrac.gardener && component.val() !== 'WordPress.org site' ) { 250 component.children('option[value="WordPress.org site"]').remove(); 251 } 252 return; 253 } 254 255 component.change( function() { 256 var toggle = $('input[name="attachment"]').parent().add('.ticketdraft').add('.wp-notice').add('div.buttons'); 257 if ( $(this).val() !== 'WordPress.org site' ) { 258 toggle.show(); 259 $('.wp-notice.component').remove(); 260 return; 261 } 262 toggle.hide(); 263 $('div.buttons').after( '<div class="wp-notice component"><p><strong>The WordPress.org site now has its own Trac</strong> at ' + 264 '<a href="//meta.trac.wordpress.org/">meta.trac.wordpress.org</a>.</p><p>Would you mind opening this ticket over there instead? ' + 265 '<a href="//meta.trac.wordpress.org/newticket" id="new-meta-ticket">Click here</a> to copy your summary and description over.</p></div>' ); 266 }); 267 268 $('#propertyform').on( 'click', '#new-meta-ticket', function() { 269 var url, href = $(this).attr( 'href' ); 270 url = href + '?' + $.param({ summary: $('#field-summary').val(), description: $('#field-description').val() }); 271 if ( url.length > 1500 ) { 272 url = href + '?' + $.param({ 273 summary: $('#field-summary').val(), 274 description: "(Couldn't copy over your description as it was too long. Please paste it here. Your old window was not closed.)" 275 }); 276 window.open( url ); 277 } else { 278 window.location.href = url; 279 } 280 return false; 281 }); 226 282 }, 227 283 … … 442 498 } 443 499 if ( content.hasClass( 'ticket' ) ) { 444 $( '#changelog div.change' ).has( 'li.trac-field-cc' ).each( function() { 445 var change = $(this), changes = change.children( 'ul.changes' ); 446 /* Three possibilities: 447 The comment is just a single CC (hide the whole comment) 448 The comment is a CC plus a comment (hide the CC line) 449 The comment contains multiple property changes (hide only the CC line) 450 */ 451 if ( changes.children( 'li' ).length === 1 ) { 452 if ( change.children( 'div.comment' ).length === 0 ) { 453 change.hide(); 454 } else { 455 changes.hide(); 456 } 500 hide_cc_comments(); 501 content.on( 'wpTracPostPreview', hide_cc_comments ); 502 } 503 } 504 505 function hide_cc_comments() { 506 $( '#changelog div.change' ).has( 'li.trac-field-cc' ).each( function() { 507 var change = $(this), changes = change.children( 'ul.changes' ); 508 /* Three possibilities: 509 The comment is just a single CC (hide the whole comment) 510 The comment is a CC plus a comment (hide the CC line) 511 The comment contains multiple property changes (hide only the CC line) 512 */ 513 if ( changes.children( 'li' ).length === 1 ) { 514 if ( change.children( 'div.comment' ).length === 0 ) { 515 change.hide(); 457 516 } else { 458 changes. children( 'li.trac-field-cc' ).hide();517 changes.hide(); 459 518 } 460 }); 461 } 519 } else { 520 changes.children( 'li.trac-field-cc' ).hide(); 521 } 522 }); 462 523 } 463 524
Note: See TracChangeset
for help on using the changeset viewer.