Merge branch 'master' into gitlab
This commit is contained in:
commit
e3aededcbc
70 changed files with 1000 additions and 265 deletions
|
@ -1,4 +1,4 @@
|
|||
<span class="anchor-element">
|
||||
<a ng-href="{{ href }}" ng-show="href && !isOnlyText"><span ng-transclude></span></a>
|
||||
<a ng-href="{{ href }}" ng-show="href && !isOnlyText" target="{{ target }}"><span ng-transclude></span></a>
|
||||
<span ng-show="!href || isOnlyText"><span ng-transclude></span></span>
|
||||
</span>
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
<div class="container-logs" ng-show="container.logs.isVisible">
|
||||
<div class="log-entry" bindonce ng-repeat="entry in container.logs.visibleEntries">
|
||||
<span class="id" bo-text="$index + container.index + 1" ng-if="!useTimestamps"></span>
|
||||
<span class="id" bo-text="formatDatetime(entry.datetime)" ng-if="useTimestamps"></span>
|
||||
<span class="id" bo-text="formatDatetime(entry.data.datetime)" ng-if="useTimestamps"></span>
|
||||
<span class="message" bo-html="processANSI(entry.message, container)"></span>
|
||||
<span class="timestamp" bo-text="formatDatetime(entry.data.datetime)" ng-if="!useTimestamps"></span>
|
||||
</div>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<span class="build-mini-status-element">
|
||||
<span class="anchor" href="/repository/{{ build.repository.namespace }}/{{ build.repository.name }}/build/{{ build.id }}"
|
||||
is-text-only="!isAdmin">
|
||||
<span class="anchor"
|
||||
href="/repository/{{ build.repository.namespace }}/{{ build.repository.name }}/build/{{ build.id }}"
|
||||
is-only-text="!isAdmin">
|
||||
<div>
|
||||
<span class="build-state-icon" build="build"></span>
|
||||
<span class="timing">
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
|
||||
<div class="col-lg-6 col-md-6 col-sm-5 col-xs-12">
|
||||
<h2 class="co-nav-title-content co-fx-text-shadow" ng-transclude></h2>
|
||||
</div>
|
||||
|
|
|
@ -1 +1 @@
|
|||
<div class="col-lg-3 col-md-3 hidden-sm hidden-xs" ng-transclude></div>
|
||||
<div class="col-lg-3 col-md-3 col-sm-3 hidden-xs" ng-transclude></div>
|
||||
|
|
31
static/directives/multiselect-dropdown.html
Normal file
31
static/directives/multiselect-dropdown.html
Normal file
|
@ -0,0 +1,31 @@
|
|||
<div class="multiselect-dropdown-element">
|
||||
<div class="dropdown" style="text-align: left;">
|
||||
<button class="btn-dropdown btn btn-default" data-toggle="dropdown">
|
||||
<span class="selected-item-template" ng-repeat="item in selectedItems" ng-transcope></span>
|
||||
<span class="none" ng-if="!selectedItems.length">(No {{ itemName }}s selected)</span>
|
||||
<span class="caret" ng-if="!readOnly"></span>
|
||||
</button>
|
||||
|
||||
<ul class="dropdown-menu noclose">
|
||||
<li>
|
||||
<input type="search" class="form-control" ng-model="filter" placeholder="{{ itemName }} filter...">
|
||||
</li>
|
||||
<li role="presentation" class="divider"></li>
|
||||
<li ng-repeat="item in items | filter:filter">
|
||||
<a class="menu-item" href="javascript:void(0)" ng-click="toggleItem(item)">
|
||||
<span class="co-checkable-item" ng-class="isChecked(selectedItems, item) ? 'checked': 'not-checked'">
|
||||
</span>
|
||||
<span class="menu-item-template" ng-transcope></span>
|
||||
</a>
|
||||
</li>
|
||||
<li role="presentation" ng-if="(items | filter:filter).length == 0">
|
||||
<div class="empty">
|
||||
<div class="empty-primary-msg">No matching {{ itemName }}s found</div>
|
||||
<div class="empty-secondary-msg">
|
||||
Please reduce your filter above
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
|
@ -108,8 +108,8 @@
|
|||
data-container="body" data-animation="am-slide-right" bs-aside>
|
||||
<i class="fa fa-bell user-tool"
|
||||
data-placement="bottom" data-title="Notifications" bs-tooltip></i>
|
||||
<span class="notifications-bubble"></span>
|
||||
</a>
|
||||
<span class="notifications-bubble"></span>
|
||||
</span>
|
||||
</li>
|
||||
|
||||
|
@ -185,7 +185,7 @@
|
|||
<span ng-switch-when="repository">
|
||||
<span class="avatar" data="result.namespace.avatar" size="16"></span>
|
||||
<span class="result-name">{{ result.namespace.name }}/{{ result.name }}</span>
|
||||
<div class="description" ng-if="result.description">
|
||||
<div class="result-description" ng-if="result.description">
|
||||
<div class="description markdown-view" content="result.description"
|
||||
first-line-only="true" placeholder-needed="false"></div>
|
||||
</div>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<div class="plan-manager-element">
|
||||
<!-- Loading/Changing -->
|
||||
<div class="quay-spinner 3x" ng-show="planLoading"></div>
|
||||
<div class="cor-loader" ng-show="planLoading"></div>
|
||||
|
||||
<!-- Alerts -->
|
||||
<div class="co-alert co-alert-danger" ng-show="limit == 'over' && !planLoading">
|
||||
|
@ -58,7 +58,7 @@
|
|||
<div ng-switch='plan.deprecated'>
|
||||
<div ng-switch-when='true'>
|
||||
<button class="btn btn-danger" ng-click="cancelSubscription()">
|
||||
<span class="quay-spinner" ng-show="planChanging"></span>
|
||||
<span class="cor-loader-inline" ng-show="planChanging"></span>
|
||||
<span ng-show="!planChanging">Cancel</span>
|
||||
</button>
|
||||
</div>
|
||||
|
@ -66,14 +66,14 @@
|
|||
<button class="btn" ng-show="subscribedPlan.stripeId !== plan.stripeId"
|
||||
ng-class="subscribedPlan.price == 0 ? 'btn-primary' : 'btn-default'"
|
||||
ng-click="changeSubscription(plan.stripeId)">
|
||||
<span class="quay-spinner" ng-show="planChanging"></span>
|
||||
<span class="cor-loader-inline" ng-show="planChanging"></span>
|
||||
<span ng-show="!planChanging && subscribedPlan.price != 0">Change</span>
|
||||
<span ng-show="!planChanging && subscribedPlan.price == 0 && !isExistingCustomer">Start Free Trial</span>
|
||||
<span ng-show="!planChanging && subscribedPlan.price == 0 && isExistingCustomer">Subscribe</span>
|
||||
</button>
|
||||
<button class="btn btn-danger" ng-show="subscription.plan === plan.stripeId && plan.price > 0"
|
||||
ng-click="cancelSubscription()">
|
||||
<span class="quay-spinner" ng-show="planChanging"></span>
|
||||
<span class="cor-loader-inline" ng-show="planChanging"></span>
|
||||
<span ng-show="!planChanging">Cancel</span>
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
@ -54,7 +54,6 @@
|
|||
style="min-width: 66px;">
|
||||
<a href="javascript:void(0)" ng-click="orderBy('tags')">Tags</a>
|
||||
</td>
|
||||
<td class="options-col hidden-xs"></td>
|
||||
</thead>
|
||||
|
||||
<tr ng-repeat="build in fullBuilds">
|
||||
|
@ -139,6 +138,7 @@
|
|||
<td>{{ trigger.config.branchtag_regex || 'All' }}</td>
|
||||
<td>
|
||||
<span class="entity-reference" entity="trigger.pull_robot" ng-if="trigger.pull_robot"></span>
|
||||
<span class="empty" ng-if="!trigger.pull_robot">(None)</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="cor-options-menu">
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
<div class="repo-panel-changes-element">
|
||||
<div class="resource-view" resource="imagesResource"
|
||||
error-message="'Could not load repository images'">
|
||||
<h3 class="tab-header">
|
||||
Visualize Tags:
|
||||
<span class="multiselect-dropdown" items="tagNames" selected-items="selectedTags"
|
||||
item-name="tag" item-checked="updateState()">
|
||||
<span class="tag-span">{{ item }}</span>
|
||||
</span>
|
||||
</h3>
|
||||
|
||||
<!-- No Tags Selected -->
|
||||
<div class="empty" ng-if="!selectedTags.length">
|
||||
<div class="empty-primary-msg">No tags selected to view</div>
|
||||
<div class="empty-secondary-msg">
|
||||
Please select one or more tags in the <i class="fa fa-tags" style="margin-left: 4px; margin-right: 4px;"></i> Tags tab to visualize.
|
||||
Please select one or more tags above.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tags Selected -->
|
||||
<div ng-if="selectedTags.length > 0">
|
||||
<h3 class="tab-header">
|
||||
Visualize Tags:
|
||||
<span class="visualized-tag" ng-repeat="tag in selectedTags">
|
||||
<i class="fa fa-tag"></i>{{ tag }}
|
||||
</span>
|
||||
</h3>
|
||||
|
||||
<div ng-show="selectedTags.length > 0">
|
||||
<div id="image-history row" class="resource-view" resource="imagesResource"
|
||||
error-message="'Cannot load repository images'">
|
||||
|
||||
|
|
|
@ -6,12 +6,12 @@
|
|||
<div class="stat-title">Repo Pulls</div>
|
||||
|
||||
<div class="stat">
|
||||
<div class="stat-value">{{ repository.stats.pulls.today }}</div>
|
||||
<div class="stat-value">{{ repository.stats.pulls.today | abbreviated }}</div>
|
||||
<div class="stat-subtitle">Last 24 hours</div>
|
||||
</div>
|
||||
|
||||
<div class="stat">
|
||||
<div class="stat-value">{{ repository.stats.pulls.thirty_day }}</div>
|
||||
<div class="stat-value">{{ repository.stats.pulls.thirty_day | abbreviated }}</div>
|
||||
<div class="stat-subtitle">Last 30 days</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -21,12 +21,12 @@
|
|||
<div class="stat-title">Repo Pushes</div>
|
||||
|
||||
<div class="stat">
|
||||
<div class="stat-value">{{ repository.stats.pushes.today }}</div>
|
||||
<div class="stat-value">{{ repository.stats.pushes.today | abbreviated }}</div>
|
||||
<div class="stat-subtitle">Last 24 hours</div>
|
||||
</div>
|
||||
|
||||
<div class="stat">
|
||||
<div class="stat-value">{{ repository.stats.pushes.thirty_day }}</div>
|
||||
<div class="stat-value">{{ repository.stats.pushes.thirty_day | abbreviated }}</div>
|
||||
<div class="stat-subtitle">Last 30 days</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -133,12 +133,12 @@
|
|||
</td>
|
||||
<td class="options-col">
|
||||
<span class="cor-options-menu" ng-if="repository.can_write">
|
||||
<span class="cor-option" option-click="askDeleteTag(tag.name)">
|
||||
<i class="fa fa-times"></i> Delete Tag
|
||||
</span>
|
||||
<span class="cor-option" option-click="askAddTag(tag)">
|
||||
<i class="fa fa-plus"></i> Add New Tag
|
||||
</span>
|
||||
<span class="cor-option" option-click="askDeleteTag(tag.name)">
|
||||
<i class="fa fa-times"></i> Delete Tag
|
||||
</span>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -65,7 +65,7 @@
|
|||
<span class="empty" bo-if="robotInfo.teams.length > 0">
|
||||
<span ng-repeat="team in robotInfo.teams"
|
||||
data-title="Team {{ team.name }}" bs-tooltip>
|
||||
<span class="anchor" is-text-only="!organization.admin" href="/organization/{{ organization.name }}/teams/{{ team.name }}">
|
||||
<span class="anchor" is-only-text="!organization.admin" href="/organization/{{ organization.name }}/teams/{{ team.name }}">
|
||||
<span class="avatar" size="24" data="team.avatar"></span>
|
||||
</span>
|
||||
</span>
|
||||
|
@ -78,7 +78,7 @@
|
|||
|
||||
<span class="member-perm-summary" bo-if="robotInfo.repositories.length > 0">
|
||||
Direct Permissions on
|
||||
<span class="anchor hidden-xs" href="javascript:void(0)" is-text-only="!organization.is_admin"
|
||||
<span class="anchor hidden-xs" href="javascript:void(0)" is-only-text="!organization.is_admin"
|
||||
ng-click="showPermissions(robotInfo)">
|
||||
<span bo-text="robotInfo.repositories.length"></span>
|
||||
<span bo-if="robotInfo.repositories.length == 1">repository</span>
|
||||
|
@ -96,7 +96,7 @@
|
|||
<span class="cor-option" option-click="showRobot(robotInfo)">
|
||||
<i class="fa fa-key"></i> View Credentials
|
||||
</span>
|
||||
<span class="cor-option" option-click="deleteRobot(robotInfo)">
|
||||
<span class="cor-option" option-click="askDeleteRobot(robotInfo)">
|
||||
<i class="fa fa-times"></i> Delete Robot {{ robotInfo.name }}
|
||||
</span>
|
||||
</span>
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
<div class="setup-trigger-directive-element">
|
||||
|
||||
<!-- Modal message dialog -->
|
||||
<div class="modal fade" id="setupTriggerModal">
|
||||
<div class="modal-dialog">
|
||||
|
@ -8,8 +7,8 @@
|
|||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title">Setup new build trigger</h4>
|
||||
</div>
|
||||
<div class="modal-body" ng-show="currentView == 'activating'">
|
||||
<span class="quay-spinner"></span> Setting up trigger...
|
||||
<div class="modal-body loading" ng-show="currentView == 'activating'">
|
||||
<span class="cor-loader-inline"></span> Setting up trigger...
|
||||
</div>
|
||||
<div class="modal-body" ng-show="currentView != 'activating'">
|
||||
<!-- Trigger-specific setup -->
|
||||
|
@ -34,8 +33,8 @@
|
|||
</div>
|
||||
|
||||
<!-- Loading pull information -->
|
||||
<div ng-show="currentView == 'analyzing'">
|
||||
<span class="quay-spinner"></span> Checking pull credential requirements...
|
||||
<div ng-show="currentView == 'analyzing'" class="loading">
|
||||
<span class="cor-loader-inline"></span> Checking pull credential requirements...
|
||||
</div>
|
||||
|
||||
<!-- Pull information -->
|
||||
|
@ -125,7 +124,7 @@
|
|||
</div>
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<div class="modal-footer" ng-show="currentView != 'activating'">
|
||||
<button type="button" class="btn btn-primary" ng-disabled="!state.stepValid"
|
||||
ng-click="nextStepCounter = nextStepCounter + 1"
|
||||
ng-show="currentView == 'config'">Next</button>
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
<span class="source-commit-link-elememt">
|
||||
<i class="fa fa-dot-circle-o" data-title="Commit" data-container="body" bs-tooltip></i>
|
||||
<span class="anchor" href="getUrl(commitSha, urlTemplate)" target="_blank" is-only-text="!urlTemplate">
|
||||
{{ commitSha.substring(0, 8) }}
|
||||
<span class="source-commit-link-element">
|
||||
<soan class="commit-circle-container" data-title="Commit" data-container="body" bs-tooltip>
|
||||
<span class="commit-circle"></span>
|
||||
</span>
|
||||
<span class="anchor" href="{{ getUrl(commitSha, urlTemplate) }}" target="_blank"
|
||||
is-only-text="!urlTemplate">
|
||||
{{ commitSha.substring(0, 8) }}
|
||||
</span>
|
||||
</span>
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
<!-- Branch -->
|
||||
<span ng-switch-when="heads">
|
||||
<i class="fa fa-code-fork" data-container="body" data-title="Branch" bs-tooltip></i>
|
||||
<span href="getUrl(ref, branchTemplate, 'branch')" is-only-text="!branchTemplate" target="_blank">{{ getTitle(ref) }}</span>
|
||||
<span class="anchor" href="{{ getUrl(ref, branchTemplate, 'branch') }}" is-only-text="!branchTemplate" target="_blank">{{ getTitle(ref) }}</span>
|
||||
</span>
|
||||
|
||||
<!-- Tag -->
|
||||
<span ng-switch-when="tags">
|
||||
<i class="fa fa-tag" data-container="body" data-title="Tag" bs-tooltip></i>
|
||||
<span href="getUrl(ref, tagTemplate, 'tag')" is-only-text="!tagTemplate" target="_blank">{{ getTitle(ref) }}</span>
|
||||
<span class="anchor" href="{{ getUrl(ref, tagTemplate, 'tag') }}" is-only-text="!tagTemplate" target="_blank">{{ getTitle(ref) }}</span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<span class="step-view-step-content">
|
||||
<span ng-show="!loading">
|
||||
<span ng-transclude></span>
|
||||
</span>
|
||||
<span ng-show="loading">
|
||||
<span class="quay-spinner"></span>
|
||||
<div class="step-view-step-content">
|
||||
<div ng-show="!loading">
|
||||
<div ng-transclude></div>
|
||||
</div>
|
||||
<div ng-show="loading" class="loading-message">
|
||||
<span class="cor-loader-inline"></span>
|
||||
{{ loadMessage }}
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -8,17 +8,12 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="current-repo">
|
||||
<i class="dropdown-select-icon org-icon fa" ng-class="'fa-' + kind"
|
||||
ng-show="!state.currentRepo.avatar_url"></i>
|
||||
<img class="dropdown-select-icon org-icon"
|
||||
ng-src="{{ state.currentRepo.avatar_url ? state.currentRepo.avatar_url : '/static/img/empty.png' }}">
|
||||
|
||||
<!-- Kind Switch -->
|
||||
<a ng-href="https://github.com/{{ state.currentRepo.repo }}" target="_blank" ng-if="kind == 'github'">
|
||||
{{ state.currentRepo.repo }}
|
||||
</a>
|
||||
<a ng-href="https://bitbucket.org/{{ state.currentRepo.repo }}" target="_blank" ng-if="kind == 'bitbucket'">
|
||||
{{ state.currentRepo.repo }}
|
||||
</a>
|
||||
<!-- /Kind Switch -->
|
||||
ng-src="{{ state.currentRepo.avatar_url ? state.currentRepo.avatar_url : '/static/img/empty.png' }}"
|
||||
ng-show="state.currentRepo.avatar_url">
|
||||
{{ state.currentRepo.repo }}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -61,14 +56,17 @@
|
|||
<!-- Icons -->
|
||||
<i class="dropdown-select-icon none-icon fa fa-lg" ng-class="'fa-' + kind"></i>
|
||||
<img class="dropdown-select-icon org-icon"
|
||||
ng-src="{{ state.currentRepo.avatar_url ? state.currentRepo.avatar_url : '/static/image/empty.png' }}">
|
||||
ng-show="state.currentRepo.avatar_url"
|
||||
ng-src="{{ state.currentRepo.avatar_url ? state.currentRepo.avatar_url : '/static/img/empty.png' }}">
|
||||
<i class="dropdown-select-icon org-icon fa fa-lg" ng-class="'fa-' + kind"
|
||||
ng-show="!state.currentRepo.avatar_url"></i>
|
||||
|
||||
<!-- Dropdown menu -->
|
||||
<ul class="dropdown-select-menu scrollable-menu" role="menu">
|
||||
<li ng-repeat-start="org in orgs" role="presentation" class="dropdown-header org-header">
|
||||
<img ng-src="{{ org.info.avatar_url }}" class="org-icon">{{ org.info.name }}
|
||||
</li>
|
||||
<li ng-repeat="repo in org.repos" class="repo-listing">
|
||||
<li ng-repeat="repo in org.repos" class="trigger-repo-listing">
|
||||
<a href="javascript:void(0)" ng-click="selectRepo(repo, org)">
|
||||
<i class="fa fa-lg" ng-class="'fa-' + kind"></i> {{ repo }}
|
||||
</a>
|
||||
|
@ -187,7 +185,7 @@
|
|||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="quay-spinner" ng-show="!locations && !locationError"></div>
|
||||
<div class="cor-loader" ng-show="!locations && !locationError"></div>
|
||||
<div class="alert alert-warning" ng-show="locationError">
|
||||
{{ locationError }}
|
||||
</div>
|
||||
|
|
|
@ -7,39 +7,51 @@
|
|||
|
||||
<!-- Manually built with a user -->
|
||||
<div class="tbd-content" ng-switch-when="manual+user">
|
||||
<i class="fa fa-user"></i> {{ build.job_config.manual_user }}
|
||||
<i class="fa fa-user"></i> {{ build.manual_user }}
|
||||
</div>
|
||||
|
||||
<!-- Source information only (i.e. no info) -->
|
||||
<div class="tbd-content" ng-switch-when="source">
|
||||
Triggered by commit to
|
||||
<div class="trigger-description" short="true" trigger="build.trigger"></div>
|
||||
Triggered by
|
||||
<div class="trigger-description" short="true" trigger="build.trigger"
|
||||
style="display: inline-block; margin-left: 4px;"></div>
|
||||
</div>
|
||||
|
||||
<!-- Just commit SHA -->
|
||||
<div class="tbd-content" ng-switch-when="commitsha">
|
||||
Triggered by commit
|
||||
<span class="source-commit-link"
|
||||
commit-sha="build.job_config.trigger_metadata.commit_sha"></span>
|
||||
commit-sha="build.trigger_metadata.commit_sha"></span>
|
||||
</div>
|
||||
|
||||
<!-- Full Commit Information -->
|
||||
<div class="tbd-content" ng-switch-when="fullcommit">
|
||||
<div class="commit-message">
|
||||
{{ build.job_config.trigger_metadata.commit_info.message }}
|
||||
<span class="anchor" is-only-text="!TriggerService.getFullLinkTemplate(build, 'commit')"
|
||||
target="_blank" href="{{ TriggerService.getFullLinkTemplate(build, 'commit').replace('{sha}', build.trigger_metadata.commit_sha) }}">
|
||||
{{ build.trigger_metadata.commit_info.message }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="commit-information">
|
||||
<span class="commit-who-when">
|
||||
Authored
|
||||
<span am-time-ago="build.job_config.trigger_metadata.commit_info.date"></span>
|
||||
<span class="commit-who">
|
||||
{{ build.job_config.trigger_metadata.commit_info.author.username }}
|
||||
<span am-time-ago="build.trigger_metadata.commit_info.date"></span>
|
||||
<span class="anchor commit-who"
|
||||
href="{{ build.trigger_metadata.commit_info.author.url }}"
|
||||
is-only-text="!build.trigger_metadata.commit_info.author.url"
|
||||
target="_blank">
|
||||
<img ng-src="{{ build.trigger_metadata.commit_info.author.avatar_url }}"
|
||||
ng-if="build.trigger_metadata.commit_info.author.avatar_url">
|
||||
{{ build.trigger_metadata.commit_info.author.username }}
|
||||
</span>
|
||||
</span>
|
||||
<span class="source-commit-link"
|
||||
commit-sha="build.job_config.trigger_metadata.commit_sha"></span>
|
||||
commit-sha="build.trigger_metadata.commit_sha"
|
||||
url-template="TriggerService.getFullLinkTemplate(build, 'commit')"></span>
|
||||
<span class="source-ref-link"
|
||||
ref="build.job_config.trigger_metadata.ref"></span>
|
||||
ref="build.trigger_metadata.ref"
|
||||
branch-template="TriggerService.getFullLinkTemplate(build, 'branch')"
|
||||
tag-template="TriggerService.getFullLinkTemplate(build, 'tag')"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Reference in a new issue