summaryrefslogtreecommitdiffstats
path: root/polygerrit-ui/app/elements/change/gr-commit-info/gr-commit-info.js
diff options
context:
space:
mode:
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.js94
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;
},
});
})();