/** * @license * Copyright (C) 2017 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'; const ChangeStates = { MERGED: 'Merged', ABANDONED: 'Abandoned', MERGE_CONFLICT: 'Merge Conflict', WIP: 'WIP', PRIVATE: 'Private', }; const WIP_TOOLTIP = 'This change isn\'t ready to be reviewed or submitted. ' + 'It will not appear in dashboards, and email notifications will be ' + 'silenced until the review is started.'; const PRIVATE_TOOLTIP = 'This change is only visible to its owner and ' + 'current reviewers (or anyone with "View Private Changes" permission).'; Polymer({ is: 'gr-change-status', properties: { flat: { type: Boolean, value: false, reflectToAttribute: true, }, status: { type: String, observer: '_updateChipDetails', }, tooltipText: { type: String, value: '', }, }, _computeStatusString(status) { if (status === ChangeStates.WIP && !this.flat) { return 'Work in Progress'; } return status; }, _toClassName(str) { return str.toLowerCase().replace(/\s/g, '-'); }, _updateChipDetails(status, previousStatus) { if (previousStatus) { this.classList.remove(this._toClassName(previousStatus)); } this.classList.add(this._toClassName(status)); switch (status) { case ChangeStates.WIP: this.tooltipText = WIP_TOOLTIP; break; case ChangeStates.PRIVATE: this.tooltipText = PRIVATE_TOOLTIP; break; default: this.tooltipText = ''; break; } }, }); })();