Merge branch 'master' into gitlab

This commit is contained in:
Joseph Schorr 2015-05-03 12:13:09 -04:00
commit e3aededcbc
70 changed files with 1000 additions and 265 deletions

View file

@ -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>

View file

@ -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>

View file

@ -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">

View file

@ -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>

View file

@ -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>

View 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>

View file

@ -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>

View file

@ -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>

View file

@ -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">

View file

@ -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'">

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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">&times;</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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>