As part of the fix for https://bugs.chromium.org/p/chromium/issues/detail?id=624383 an API event callback was added that allowed plugins to modify the revert message in the revert dialog. The problem is that the modified revert message persisted even when the dialog was cancelled. This caused the same block to be repeated added to the revert dialog. This change ensures that the revert message is constructed right before the dialog is shown. All modifications via the API event callback are now discarded if the dialog is cancelled. BUG= https://bugs.chromium.org/p/chromium/issues/detail?id=637300 Change-Id: Iac2725f6872913e9edf9022df928a36d4b6ad6e6
		
			
				
	
	
		
			68 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Copyright (C) 2016 The Android Open Source Project
 | 
						|
//
 | 
						|
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
// you may not use this file except in compliance with the License.
 | 
						|
// You may obtain a copy of the License at
 | 
						|
//
 | 
						|
// http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
//
 | 
						|
// Unless required by applicable law or agreed to in writing, software
 | 
						|
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
// See the License for the specific language governing permissions and
 | 
						|
// limitations under the License.
 | 
						|
(function() {
 | 
						|
  'use strict';
 | 
						|
 | 
						|
  Polymer({
 | 
						|
    is: 'gr-confirm-revert-dialog',
 | 
						|
 | 
						|
    /**
 | 
						|
     * Fired when the confirm button is pressed.
 | 
						|
     *
 | 
						|
     * @event confirm
 | 
						|
     */
 | 
						|
 | 
						|
    /**
 | 
						|
     * Fired when the cancel button is pressed.
 | 
						|
     *
 | 
						|
     * @event cancel
 | 
						|
     */
 | 
						|
 | 
						|
    properties: {
 | 
						|
      branch: String,
 | 
						|
      message: String,
 | 
						|
      commitInfo: Object,
 | 
						|
    },
 | 
						|
 | 
						|
    populateRevertMessage: function() {
 | 
						|
      // Figure out what the revert title should be.
 | 
						|
      var originalTitle = this.commitInfo.message.split('\n')[0];
 | 
						|
      var revertTitle = 'Revert of ' + originalTitle;
 | 
						|
      if (originalTitle.startsWith('Revert of ')) {
 | 
						|
        revertTitle = 'Reland of ' +
 | 
						|
                      originalTitle.substring('Revert of '.length);
 | 
						|
      } else if (originalTitle.startsWith('Reland of ')) {
 | 
						|
        revertTitle = 'Revert of ' +
 | 
						|
                      originalTitle.substring('Reland of '.length);
 | 
						|
      }
 | 
						|
      // Add '> ' in front of the original commit text.
 | 
						|
      var originalCommitText = this.commitInfo.message.replace(/^/gm, '> ');
 | 
						|
 | 
						|
      this.message = revertTitle + '\n\n' +
 | 
						|
                     'Reason for revert: <INSERT REASONING HERE>\n\n' +
 | 
						|
                     'Original issue\'s description:\n' + originalCommitText;
 | 
						|
    },
 | 
						|
 | 
						|
    _handleConfirmTap: function(e) {
 | 
						|
      e.preventDefault();
 | 
						|
      this.fire('confirm', null, {bubbles: false});
 | 
						|
    },
 | 
						|
 | 
						|
    _handleCancelTap: function(e) {
 | 
						|
      e.preventDefault();
 | 
						|
      this.fire('cancel', null, {bubbles: false});
 | 
						|
    },
 | 
						|
  });
 | 
						|
})();
 |