strider
Version:
Brilliant continuous deployment platform
197 lines (178 loc) • 9.04 kB
HTML
{% extends "base.html" %}
{% block preTitle %}
Account -
{% endblock %}
{% block extra_head %}
<link rel="stylesheet" href="/styles/account-plugins-compiled.css">
{% endblock %}
{% block bodyContent %}
<script>
var user = {{ user | scriptjson | raw }};
var providers = {{ providers | scriptjson | raw }};
</script>
<div class="row-fluid" ng-app="Account" ng-controller="AlertsController">
<div class="span12">
<h3>Account Management</h3>
</div>
<div class="notify-wrapper pull-right">
<div id="notify" ng-class="{ visible: message.showing }" class="alert alert-[[ message.type ]]">
<a type="button" class="close" ng-click="clearMessage()">×</a>
<div class="message" ng-bind-html="message.text"></div>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<div class="tabbable tabs-left" ng-controller="AccountController">
<ul class="nav nav-tabs">
<li class="active"><a href="#email" data-toggle="tab">Email Address</a></li>
<li><a href="#password" data-toggle="tab">Password</a></li>
{% if jobsQuantityOnPage.enabled %}
<li><a href="#jobsQuantityOnPage" data-toggle="tab">Job Settings</a></li>
{% endif %}
{% for provider in providers %}
<li>
<a href="#provider-{{ loop.key }}" data-toggle="tab">{{ provider.title }}</a>
</li>
{% endfor %}
{% for job in userConfigs.job %}
<li>
<a href="#job-{{ loop.key }}" data-toggle="tab">{{ job.title }}</a>
</li>
{% endfor %}
</ul>
<div class="tab-content">
{#
To configure what shows up here, change the "accountConfig"
option in the strider.json definition for the provider
plugin. This only shows up if "hosted" is true
#}
{% for message in flash %}
<div class="alert alert-info">{{ message|raw }}</div>
{% endfor %}
{% for provider in providers %}
<div id="provider-{{loop.key}}" class="tab-pane provider-tab">
<h3>{{ provider.title }} Accounts</h3>
<div class="well clearfix" ng-repeat="account in accounts['{{loop.key}}']">
{% if provider.html %}
<button class="btn pull-right btn-danger" ng-click="deleteAccount(account)">Delete Account</button>
<div class="control-group">
<label class="control-label">Account Name</label>
<div class="controls">
<input ng-model="account.title" type="text">
</div>
</div>
<div id="provider-account-{{ loop.key }}" ng-controller="{{provider.controller}}">
{% autoescape false %}
{{ provider.html }}
{% endautoescape %}
</div>
{% else %}
<h3 ng-switch="!!account.display_url" class="clearfix">
<span ng-switch-when="false">[[ account.title ]]</span>
<a target="_blank" href="[[ account.display_url ]]" ng-switch-default>[[ account.title ]]</a>
<button class="btn btn-danger pull-right" ng-click="deleteAccount(account)">Delete Account</button>
</h3>
{% endif %}
</div>
<div ng-switch="!providers['{{ loop.key }}'].template">
<div ng-switch-when="true">
<a class="btn btn-success" href="[[ providers['{{ loop.key }}'].setupLink ]]">Add Account</a>
<span ng-show="accounts['{{ loop.key }}'].length">
<strong>Note:</strong> You may need to sign out of {{ loop.key }} if you want to add a different account
</span>
</div>
<button ng-switch-default class="btn btn-success" ng-click="addAccount('{{ loop.key }}')">Add Account</button>
</div>
</div>
{% endfor %}
{% for job in userConfigs.job %}
<div id="job-{{loop.key}}" class="tab-pane job-tab" ng-controller="{{job.controller}}">
{% autoescape false %}
{{ job.html | raw }}
{% endautoescape %}
</div>
{% endfor %}
<div id="email" class="tab-pane active">
<div id="account_email">
<div class="email-message">
<div class="well">
<fieldset>
<legend>Change Email</legend>
<div class="control-group email">
<label class="control-label"for="email">Account Email Address</label>
</div>
<div class="controls">
<input class="xlarge" type="text" name="email" ng-model="user.email" ng-disabled="user.isAdUser" />
<span class="help-inline email"></span>
</div>
<div class="actions">
<button class="btn" ng-click="changeEmail()" ng-disabled="user.isAdUser">Change Email</button>
</div>
</fieldset>
</div>
</div>
</div>
</div>
<div id="password" class="tab-pane">
<div id="change_password">
<form class="password-message" name="passwordForm">
<div class="well">
<fieldset>
<legend>Change Password</legend>
<div class="control-group password">
<label class="control-label" for="password">New Password</label>
</div>
<div class="controls">
<input class="xlarge" type="password" ng-minlength="8" name="password" ng-model="password" ng-disabled="user.isAdUser">
<span class="help-inline password"></span>
<span ng-show="passwordForm.password.$dirty && passwordForm.password.$error.minlength">Password must be longer than 8 characters</span>
</div>
<div class="control-group password-confirm">
<label class="control-label" for="password_confirm">Confirm Password</label>
</div>
<div class="controls">
<input class="xlarge" type="password" name="confirm_password" ng-model="confirm_password" ng-disabled="user.isAdUser">
<span class="help-inline password-confirm"></span>
<span ng-show="passwordForm.password.$valid && confirm_password !== password">Passwords must match</span>
</div>
<div class="actions">
<button class="btn" ng-click="changePassword()" ng-disabled="!passwordForm.$valid || confirm_password !== password" ng-disabled="user.isAdUser">Change Password</button>
</div>
</fieldset>
</div>
</form>
</div>
</div>
{% if jobsQuantityOnPage.enabled %}
<div id="jobsQuantityOnPage" class="tab-pane">
<div id="change_jobsQuantityOnPage">
<form class="jobsQuantityOnPage-message" name="jobsQuantityOnPageForm">
<div class="well">
<fieldset>
<legend>Job Settings</legend>
<div class="control-group quantity">
<label class="control-label" for="quantity">
Number of Jobs On Build Page ({{ jobsQuantityOnPage.min }}-{{ jobsQuantityOnPage.max }})
</label>
</div>
<div class="controls">
<input class="xlarge" type="number" name="quantity" min="{{ jobsQuantityOnPage.min }}" max="{{ jobsQuantityOnPage.max }}" ng-model="user.jobsQuantityOnPage">
<span class="help-inline jobsQuantityOnPage"></span>
</div>
<div class="actions">
<button class="btn" ng-click="changeJobsQuantityOnPage()" ng-disabled="!jobsQuantityOnPageForm.$valid">Change Quantity</button>
</div>
</fieldset>
</div>
</form>
</div>
</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
{% endblock %}
{% block pageScripts %}
{% endblock %}