Files
gerrit/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog.js
Ravi Mistry 2b5accaa1e Do not repeatedly add the 'revert' message modifications
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
2016-08-16 08:32:17 -04:00

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});
},
});
})();