diff options
Diffstat (limited to 'polygerrit-ui/app/elements/change/gr-commit-info/gr-commit-info.js')
-rw-r--r-- | polygerrit-ui/app/elements/change/gr-commit-info/gr-commit-info.js | 94 |
1 files changed, 32 insertions, 62 deletions
diff --git a/polygerrit-ui/app/elements/change/gr-commit-info/gr-commit-info.js b/polygerrit-ui/app/elements/change/gr-commit-info/gr-commit-info.js index ed8abfe1bd..837de59742 100644 --- a/polygerrit-ui/app/elements/change/gr-commit-info/gr-commit-info.js +++ b/polygerrit-ui/app/elements/change/gr-commit-info/gr-commit-info.js @@ -1,16 +1,19 @@ -// 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. +/** + * @license + * 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'; @@ -19,6 +22,7 @@ properties: { change: Object, + /** @type {?} */ commitInfo: Object, serverConfig: Object, _showWebLink: { @@ -31,64 +35,30 @@ }, }, - _isWebLink(link) { - // This is a whitelist of web link types that provide direct links to - // the commit in the url property. - return link.name === 'gitiles' || link.name === 'gitweb'; + _getWeblink(change, commitInfo, config) { + return Gerrit.Nav.getPatchSetWeblink( + change.project, + commitInfo.commit, + { + weblinks: commitInfo.web_links, + config, + }); }, _computeShowWebLink(change, commitInfo, serverConfig) { - if (serverConfig.gitweb && serverConfig.gitweb.url && - serverConfig.gitweb.type && serverConfig.gitweb.type.revision) { - return true; - } - - if (!commitInfo.web_links) { - return false; - } - - for (const link of commitInfo.web_links) { - if (this._isWebLink(link)) { - return true; - } - } - - return false; + const weblink = this._getWeblink(change, commitInfo, serverConfig); + return !!weblink && !!weblink.url; }, _computeWebLink(change, commitInfo, serverConfig) { - if (!this._computeShowWebLink(change, commitInfo, serverConfig)) { - return; - } - - if (serverConfig.gitweb && serverConfig.gitweb.url && - serverConfig.gitweb.type && serverConfig.gitweb.type.revision) { - return serverConfig.gitweb.url + - serverConfig.gitweb.type.revision - .replace('${project}', change.project) - .replace('${commit}', commitInfo.commit); - } - - let webLink = null; - for (const link of commitInfo.web_links) { - if (this._isWebLink(link)) { - webLink = link.url; - break; - } - } - - if (!webLink) { - return; - } - - return webLink; + const {url} = this._getWeblink(change, commitInfo, serverConfig) || {}; + return url; }, _computeShortHash(commitInfo) { - if (!commitInfo || !commitInfo.commit) { - return; - } - return commitInfo.commit.slice(0, 7); + const {name} = + this._getWeblink(this.change, commitInfo, this.serverConfig) || {}; + return name; }, }); })(); |