mirror of
https://github.com/goharbor/harbor.git
synced 2024-09-07 11:38:07 +02:00
Merge branch 'new-ui-with-sync-image' of https://github.com/vmware/harbor into new-ui-with-sync-image
This commit is contained in:
commit
515364a21e
@ -143,7 +143,8 @@ create table replication_job (
|
|||||||
tags varchar(16384),
|
tags varchar(16384),
|
||||||
creation_time timestamp default CURRENT_TIMESTAMP,
|
creation_time timestamp default CURRENT_TIMESTAMP,
|
||||||
update_time timestamp default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
|
update_time timestamp default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id),
|
||||||
|
INDEX policy (policy_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
create table properties (
|
create table properties (
|
||||||
@ -152,11 +153,8 @@ create table properties (
|
|||||||
primary key (k)
|
primary key (k)
|
||||||
);
|
);
|
||||||
|
|
||||||
insert into properties (k, v) values
|
|
||||||
('schema_version', '0.1.1');
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `alembic_version` (
|
CREATE TABLE IF NOT EXISTS `alembic_version` (
|
||||||
`version_num` varchar(32) NOT NULL
|
`version_num` varchar(32) NOT NULL
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
insert into alembic_version values ('0.2.0');
|
insert into alembic_version values ('0.3.0');
|
||||||
|
@ -124,3 +124,4 @@ class ReplicationJob(Base):
|
|||||||
creation_time = sa.Column(mysql.TIMESTAMP, server_default = sa.text("CURRENT_TIMESTAMP"))
|
creation_time = sa.Column(mysql.TIMESTAMP, server_default = sa.text("CURRENT_TIMESTAMP"))
|
||||||
update_time = sa.Column(mysql.TIMESTAMP, server_default = sa.text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"))
|
update_time = sa.Column(mysql.TIMESTAMP, server_default = sa.text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"))
|
||||||
|
|
||||||
|
__table_args__ = (sa.Index('policy', "policy_id"),)
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
"""0.1.1 to 0.2.0
|
"""0.1.1 to 0.3.0
|
||||||
|
|
||||||
Revision ID: 0.1.1
|
Revision ID: 0.1.1
|
||||||
Revises:
|
Revises:
|
||||||
@ -20,7 +20,7 @@ Revises:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
revision = '0.2.0'
|
revision = '0.3.0'
|
||||||
down_revision = '0.1.1'
|
down_revision = '0.1.1'
|
||||||
branch_labels = None
|
branch_labels = None
|
||||||
depends_on = None
|
depends_on = None
|
@ -11,7 +11,7 @@
|
|||||||
<label for="oldPassword" class="col-sm-3 control-label">// 'old_password' | tr //:</label>
|
<label for="oldPassword" class="col-sm-3 control-label">// 'old_password' | tr //:</label>
|
||||||
<div class="col-sm-7">
|
<div class="col-sm-7">
|
||||||
<input type="password" class="form-control" id="oldPassword" ng-model="user.oldPassword" ng-change="vm.reset()" name="uOldPassword" required>
|
<input type="password" class="form-control" id="oldPassword" ng-model="user.oldPassword" ng-change="vm.reset()" name="uOldPassword" required>
|
||||||
<div class="error-message" ng-messages="form.uOldPassword.$touched && form.uOldPassword.$error">
|
<div class="error-message" ng-messages="(form.$submitted || form.uOldPassword.$touched) && form.uOldPassword.$error">
|
||||||
<span ng-message="required">// 'old_password_is_required' | tr //</span>
|
<span ng-message="required">// 'old_password_is_required' | tr //</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -23,7 +23,7 @@
|
|||||||
<label for="password" class="col-sm-3 control-label">// 'new_password' | tr //:</label>
|
<label for="password" class="col-sm-3 control-label">// 'new_password' | tr //:</label>
|
||||||
<div class="col-sm-7">
|
<div class="col-sm-7">
|
||||||
<input type="password" class="form-control" id="password" ng-model="user.password" ng-change="vm.reset()" name="uPassword" required password>
|
<input type="password" class="form-control" id="password" ng-model="user.password" ng-change="vm.reset()" name="uPassword" required password>
|
||||||
<div class="error-message" ng-messages="form.uPassword.$touched && form.uPassword.$error">
|
<div class="error-message" ng-messages="(form.$submitted || form.uPassword.$touched) && form.uPassword.$error">
|
||||||
<span ng-message="required">// 'password_is_required' | tr //</span>
|
<span ng-message="required">// 'password_is_required' | tr //</span>
|
||||||
<span ng-message="password">// 'password_is_invalid' | tr //</span>
|
<span ng-message="password">// 'password_is_invalid' | tr //</span>
|
||||||
</div>
|
</div>
|
||||||
@ -37,7 +37,7 @@
|
|||||||
<label for="confirmPassword" class="col-sm-3 control-label">// 'confirm_password' | tr //:</label>
|
<label for="confirmPassword" class="col-sm-3 control-label">// 'confirm_password' | tr //:</label>
|
||||||
<div class="col-sm-7">
|
<div class="col-sm-7">
|
||||||
<input type="password" class="form-control" id="confirmPassword" ng-model="user.confirmPassword" ng-change="vm.reset()" name="uConfirmPassword" ng-model-options="{ updateOn: 'blur' }" compare-to="user.password">
|
<input type="password" class="form-control" id="confirmPassword" ng-model="user.confirmPassword" ng-change="vm.reset()" name="uConfirmPassword" ng-model-options="{ updateOn: 'blur' }" compare-to="user.password">
|
||||||
<div class="error-message" ng-messages="form.uConfirmPassword.$touched && form.uConfirmPassword.$error">
|
<div class="error-message" ng-messages="(form.$submitted || form.uConfirmPassword.$touched) && form.uConfirmPassword.$error">
|
||||||
<span ng-message="compareTo">// 'password_does_not_match' | tr //</span>
|
<span ng-message="compareTo">// 'password_does_not_match' | tr //</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -60,4 +60,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -11,19 +11,19 @@
|
|||||||
<label for="email" class="col-sm-3 control-label">// 'email' | tr //:</label>
|
<label for="email" class="col-sm-3 control-label">// 'email' | tr //:</label>
|
||||||
<div class="col-sm-7">
|
<div class="col-sm-7">
|
||||||
<input type="email" class="form-control" id="email" ng-model="user.email" ng-model-options="{ debounce: 500 }" ng-change="vm.reset()" name="uEmail" required data-target="email">
|
<input type="email" class="form-control" id="email" ng-model="user.email" ng-model-options="{ debounce: 500 }" ng-change="vm.reset()" name="uEmail" required data-target="email">
|
||||||
|
<div class="error-message">
|
||||||
|
<div ng-messages="(form.$submitted || form.uEmail.$touched) && form.uEmail.$error">
|
||||||
|
<span ng-message="required">// 'email_is_required' | tr //</span>
|
||||||
|
<span ng-message="email">// 'email_content_illegal' | tr //</span>
|
||||||
|
</div>
|
||||||
|
<span ng-show="vm.hasError">// vm.errorMessage | tr //</span>
|
||||||
|
</div>
|
||||||
<p class="help-block small-size-fonts">// 'forgot_password_description' | tr //</p>
|
<p class="help-block small-size-fonts">// 'forgot_password_description' | tr //</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<span class="asterisk">*</span>
|
<span class="asterisk">*</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="error-message">
|
|
||||||
<div ng-messages="form.$submitted && form.uEmail.$error">
|
|
||||||
<span ng-message="required">// 'email_is_required' | tr //</span>
|
|
||||||
<span ng-message="email">// 'email_content_illegal' | tr //</span>
|
|
||||||
</div>
|
|
||||||
<span ng-show="vm.hasError">// vm.errorMessage | tr //</span>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="col-md-offset-8 col-md-10">
|
<div class="col-md-offset-8 col-md-10">
|
||||||
<button type="submit" class="btn btn-success" ng-click="form.$valid && vm.sendMail(user)" loading-progress hide-target="false" toggle-in-progress="vm.toggleInProgress">// 'send' | tr //</button>
|
<button type="submit" class="btn btn-success" ng-click="form.$valid && vm.sendMail(user)" loading-progress hide-target="false" toggle-in-progress="vm.toggleInProgress">// 'send' | tr //</button>
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
<label for="password" class="col-sm-3 control-label">// 'password' | tr //:</label>
|
<label for="password" class="col-sm-3 control-label">// 'password' | tr //:</label>
|
||||||
<div class="col-sm-7">
|
<div class="col-sm-7">
|
||||||
<input type="password" class="form-control" id="password" ng-model="user.password" ng-change="vm.reset()" name="uPassword" ng-model-options="{ debounce: 250 }" required password>
|
<input type="password" class="form-control" id="password" ng-model="user.password" ng-change="vm.reset()" name="uPassword" ng-model-options="{ debounce: 250 }" required password>
|
||||||
<div class="error-message" ng-messages="form.uPassword.$dirty && form.uPassword.$error">
|
<div class="error-message" ng-messages="(form.$submitted || form.uPassword.$touched) && form.uPassword.$error">
|
||||||
<span ng-message="required">// 'password_is_required' | tr //</span>
|
<span ng-message="required">// 'password_is_required' | tr //</span>
|
||||||
<span ng-message="password">// 'password_is_invalid' | tr //</span>
|
<span ng-message="password">// 'password_is_invalid' | tr //</span>
|
||||||
</div>
|
</div>
|
||||||
@ -25,7 +25,7 @@
|
|||||||
<label for="confirmPassword" class="col-sm-3 control-label">// 'confirm_password' | tr //:</label>
|
<label for="confirmPassword" class="col-sm-3 control-label">// 'confirm_password' | tr //:</label>
|
||||||
<div class="col-sm-7">
|
<div class="col-sm-7">
|
||||||
<input type="password" class="form-control" id="confirmPassword" ng-model="user.confirmPassword" ng-change="vm.reset()" name="uConfirmPassword" ng-model-options="{ debounce: 250 }" compare-to="user.password">
|
<input type="password" class="form-control" id="confirmPassword" ng-model="user.confirmPassword" ng-change="vm.reset()" name="uConfirmPassword" ng-model-options="{ debounce: 250 }" compare-to="user.password">
|
||||||
<div class="error-message" ng-messages="form.uConfirmPassword.$dirty && form.uConfirmPassword.$error">
|
<div class="error-message" ng-messages="(form.$submitted || form.uConfirmPassword.$touched) && form.uConfirmPassword.$error">
|
||||||
<span ng-message="compareTo">// 'password_does_not_match' | tr //</span>
|
<span ng-message="compareTo">// 'password_does_not_match' | tr //</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -35,8 +35,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="col-md-offset-7 col-md-10">
|
<div class="col-md-offset-7 col-md-10">
|
||||||
<input type="submit" class="btn btn-primary" ng-disabled="form.$invalid" ng-click="vm.resetPassword(user)" value="// 'save' | tr //">
|
<button type="submit" class="btn btn-primary" ng-click="form.$valid && vm.resetPassword(user)">// 'save' | tr //</button>
|
||||||
<input type="submit" class="btn btn-default" ng-click="vm.cancel()" value="// 'cancel' | tr //">
|
<button type="submit" class="btn btn-default" ng-click="vm.cancel()">// 'cancel' | tr //</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="error-message">
|
<div class="error-message">
|
||||||
|
@ -12,12 +12,12 @@
|
|||||||
</h1>
|
</h1>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12 col-md-offset-2 main-content">
|
<div class="col-md-12 col-md-offset-2 main-content">
|
||||||
<form name="form" class="form-horizontal css-form" ng-submit="form.$valid">
|
<form name="form" class="form-horizontal css-form" novalidate>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="username" class="col-sm-3 control-label">// 'username' | tr //:</label>
|
<label for="username" class="col-sm-3 control-label">// 'username' | tr //:</label>
|
||||||
<div class="col-sm-7">
|
<div class="col-sm-7">
|
||||||
<input type="text" class="form-control" id="username" ng-model="user.username" name="uUsername" ng-model-options="{ updateOn: 'blur' }" required maxlength="20" invalid-chars user-exists data-target="username">
|
<input type="text" class="form-control" id="username" ng-model="user.username" name="uUsername" ng-model-options="{ updateOn: 'blur' }" required maxlength="20" invalid-chars user-exists data-target="username">
|
||||||
<div class="error-message" ng-messages="form.uUsername.$error" ng-if="form.uUsername.$touched">
|
<div class="error-message" ng-messages="(form.$submitted || form.uUsername.$touched) && form.uUsername.$error" >
|
||||||
<span ng-message="required">// 'username_is_required' | tr //</span>
|
<span ng-message="required">// 'username_is_required' | tr //</span>
|
||||||
<span ng-message="maxlength">// 'username_is_too_long' | tr //</span>
|
<span ng-message="maxlength">// 'username_is_too_long' | tr //</span>
|
||||||
<span ng-message="invalidChars">// 'username_contains_illegal_chars' | tr //</span>
|
<span ng-message="invalidChars">// 'username_contains_illegal_chars' | tr //</span>
|
||||||
@ -32,7 +32,7 @@
|
|||||||
<label for="email" class="col-sm-3 control-label">// 'email' | tr //:</label>
|
<label for="email" class="col-sm-3 control-label">// 'email' | tr //:</label>
|
||||||
<div class="col-sm-7">
|
<div class="col-sm-7">
|
||||||
<input type="email" class="form-control" id="email" ng-model="user.email" name="uEmail" ng-model-options="{ updateOn: 'blur' }" required user-exists data-target="email" maxlength="50">
|
<input type="email" class="form-control" id="email" ng-model="user.email" name="uEmail" ng-model-options="{ updateOn: 'blur' }" required user-exists data-target="email" maxlength="50">
|
||||||
<div class="error-message" ng-messages="form.uEmail.$error" ng-if="form.uEmail.$touched">
|
<div class="error-message" ng-messages="(form.$submitted || form.uEmail.$touched) &&form.uEmail.$error">
|
||||||
<span ng-message="required">// 'email_is_required' | tr //</span>
|
<span ng-message="required">// 'email_is_required' | tr //</span>
|
||||||
<span ng-message="email">// 'email_content_illegal' | tr //</span>
|
<span ng-message="email">// 'email_content_illegal' | tr //</span>
|
||||||
<span ng-message="userExists">// 'email_has_been_taken' | tr //</span>
|
<span ng-message="userExists">// 'email_has_been_taken' | tr //</span>
|
||||||
@ -48,7 +48,7 @@
|
|||||||
<label for="fullName" class="col-sm-3 control-label">// 'full_name' | tr //:</label>
|
<label for="fullName" class="col-sm-3 control-label">// 'full_name' | tr //:</label>
|
||||||
<div class="col-sm-7">
|
<div class="col-sm-7">
|
||||||
<input type="text" class="form-control" id="fullName" ng-model="user.fullName" name="uFullName" ng-model-options="{ updateOn: 'blur' }" required maxlength="20" invalid-chars>
|
<input type="text" class="form-control" id="fullName" ng-model="user.fullName" name="uFullName" ng-model-options="{ updateOn: 'blur' }" required maxlength="20" invalid-chars>
|
||||||
<div class="error-message" ng-messages="form.uFullName.$error" ng-if="form.uFullName.$touched">
|
<div class="error-message" ng-messages="(form.$submitted || form.uFullName.$touched) && form.uFullName.$error">
|
||||||
<span ng-message="required">// 'full_name_is_required' | tr //</span>
|
<span ng-message="required">// 'full_name_is_required' | tr //</span>
|
||||||
<span ng-message="invalidChars">// 'full_name_contains_illegal_chars' | tr //</span>
|
<span ng-message="invalidChars">// 'full_name_contains_illegal_chars' | tr //</span>
|
||||||
<span ng-message="maxlength">// 'full_name_is_too_long' | tr //</span>
|
<span ng-message="maxlength">// 'full_name_is_too_long' | tr //</span>
|
||||||
@ -63,7 +63,7 @@
|
|||||||
<label for="password" class="col-sm-3 control-label">// 'password' | tr //:</label>
|
<label for="password" class="col-sm-3 control-label">// 'password' | tr //:</label>
|
||||||
<div class="col-sm-7">
|
<div class="col-sm-7">
|
||||||
<input type="password" class="form-control" id="password" ng-model="user.password" name="uPassword" ng-model-options="{ updateOn: 'blur' }" required password>
|
<input type="password" class="form-control" id="password" ng-model="user.password" name="uPassword" ng-model-options="{ updateOn: 'blur' }" required password>
|
||||||
<div class="error-message" ng-messages="form.uPassword.$error" ng-if="form.uPassword.$touched">
|
<div class="error-message" ng-messages="(form.$submitted || form.uPassword.$touched) && form.uPassword.$error">
|
||||||
<span ng-message="required">// 'password_is_required' | tr //</span>
|
<span ng-message="required">// 'password_is_required' | tr //</span>
|
||||||
<span ng-message="password">// 'password_is_invalid' | tr //</span>
|
<span ng-message="password">// 'password_is_invalid' | tr //</span>
|
||||||
</div>
|
</div>
|
||||||
@ -77,7 +77,7 @@
|
|||||||
<label for="confirmPassword" class="col-sm-3 control-label">// 'confirm_password' | tr //:</label>
|
<label for="confirmPassword" class="col-sm-3 control-label">// 'confirm_password' | tr //:</label>
|
||||||
<div class="col-sm-7">
|
<div class="col-sm-7">
|
||||||
<input type="password" class="form-control" id="confirmPassword" ng-model="user.confirmPassword" name="uConfirmPassword" ng-model-options="{ updateOn: 'blur' }" compare-to="user.password">
|
<input type="password" class="form-control" id="confirmPassword" ng-model="user.confirmPassword" name="uConfirmPassword" ng-model-options="{ updateOn: 'blur' }" compare-to="user.password">
|
||||||
<div class="error-message" ng-messages="form.uConfirmPassword.$error" ng-if="form.uConfirmPassword.$touched">
|
<div class="error-message" ng-messages="(form.$submitted || form.uConfirmPassword.$touched) && form.uConfirmPassword.$error">
|
||||||
<span ng-message="compareTo">// 'password_does_not_match' | tr //</span>
|
<span ng-message="compareTo">// 'password_does_not_match' | tr //</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -89,7 +89,7 @@
|
|||||||
<label for="comments" class="col-sm-3 control-label">// 'comments' | tr //:</label>
|
<label for="comments" class="col-sm-3 control-label">// 'comments' | tr //:</label>
|
||||||
<div class="col-sm-7">
|
<div class="col-sm-7">
|
||||||
<input type="text" class="form-control" id="comments" ng-model="user.comment" name="uComments" ng-model-options="{ updateOn: 'blur' }" maxlength="20">
|
<input type="text" class="form-control" id="comments" ng-model="user.comment" name="uComments" ng-model-options="{ updateOn: 'blur' }" maxlength="20">
|
||||||
<div class="error-message" ng-messages="form.uComments.$error" ng-if="form.uComments.$touched">
|
<div class="error-message" ng-messages="(form.$submitted || form.uComments.$touched) && form.uComments.$error">
|
||||||
<span ng-show="maxlength">// 'comment_is_too_long' | tr //</span>
|
<span ng-show="maxlength">// 'comment_is_too_long' | tr //</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -97,9 +97,9 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="col-md-offset-8 col-md-10">
|
<div class="col-md-offset-8 col-md-10">
|
||||||
{{ if eq .AddNew true }}
|
{{ if eq .AddNew true }}
|
||||||
<input type="submit" class="btn btn-success" ng-disabled="form.$invalid" ng-click="vm.signUp(user)" value="// 'add_new' | tr //">
|
<button type="submit" class="btn btn-success" ng-click="form.$valid && vm.signUp(user)">// 'add_new' | tr //</button>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
<input type="submit" class="btn btn-success" ng-disabled="form.$invalid" ng-click="vm.signUp(user)" value="// 'sign_up' | tr //">
|
<button type="submit" class="btn btn-success" ng-click="form.$valid && vm.signUp(user)">// 'sign_up' | tr //</button>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user