harbor/src/ui/static/main.bundle.js
2017-03-15 17:27:10 +08:00

8877 lines
470 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

webpackJsonp([0,4],{
/***/ 10:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var Subject_1 = __webpack_require__(25);
var message_1 = __webpack_require__(389);
var MessageService = (function () {
function MessageService() {
this.messageAnnouncedSource = new Subject_1.Subject();
this.appLevelAnnouncedSource = new Subject_1.Subject();
this.messageAnnounced$ = this.messageAnnouncedSource.asObservable();
this.appLevelAnnounced$ = this.appLevelAnnouncedSource.asObservable();
}
MessageService.prototype.announceMessage = function (statusCode, message, alertType) {
this.messageAnnouncedSource.next(message_1.Message.newMessage(statusCode, message, alertType));
};
MessageService.prototype.announceAppLevelMessage = function (statusCode, message, alertType) {
this.appLevelAnnouncedSource.next(message_1.Message.newMessage(statusCode, message, alertType));
};
MessageService = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [])
], MessageService);
return MessageService;
}());
exports.MessageService = MessageService;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/message.service.js.map
/***/ }),
/***/ 14:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var http_1 = __webpack_require__(20);
__webpack_require__(58);
var shared_const_1 = __webpack_require__(2);
var signInUrl = '/login';
var currentUserEndpint = "/api/users/current";
var signOffEndpoint = "/log_out";
var accountEndpoint = "/api/users/:id";
var langEndpoint = "/language";
var langMap = {
"zh": "zh-CN",
"en": "en-US"
};
/**
* Define related methods to handle account and session corresponding things
*
* @export
* @class SessionService
*/
var SessionService = (function () {
function SessionService(http) {
this.http = http;
this.currentUser = null;
this.headers = new http_1.Headers({
"Content-Type": 'application/json'
});
this.formHeaders = new http_1.Headers({
"Content-Type": 'application/x-www-form-urlencoded'
});
}
//Handle the related exceptions
SessionService.prototype.handleError = function (error) {
return Promise.reject(error.message || error);
};
//Submit signin form to backend (NOT restful service)
SessionService.prototype.signIn = function (signInCredential) {
var _this = this;
//Build the form package
var body = new http_1.URLSearchParams();
body.set('principal', signInCredential.principal);
body.set('password', signInCredential.password);
//Trigger Http
return this.http.post(signInUrl, body.toString(), { headers: this.formHeaders })
.toPromise()
.then(function () { return null; })
.catch(function (error) { return _this.handleError(error); });
};
/**
* Get the related information of current signed in user from backend
*
* @returns {Promise<SessionUser>}
*
* @memberOf SessionService
*/
SessionService.prototype.retrieveUser = function () {
var _this = this;
return this.http.get(currentUserEndpint, { headers: this.headers }).toPromise()
.then(function (response) { return _this.currentUser = response.json(); })
.catch(function (error) { return _this.handleError(error); });
};
/**
* For getting info
*/
SessionService.prototype.getCurrentUser = function () {
return this.currentUser;
};
/**
* Log out the system
*/
SessionService.prototype.signOff = function () {
var _this = this;
return this.http.get(signOffEndpoint, { headers: this.headers }).toPromise()
.then(function () {
//Destroy current session cache
_this.currentUser = null;
}) //Nothing returned
.catch(function (error) { return _this.handleError(error); });
};
/**
*
* Update accpunt settings
*
* @param {SessionUser} account
* @returns {Promise<any>}
*
* @memberOf SessionService
*/
SessionService.prototype.updateAccountSettings = function (account) {
var _this = this;
if (!account) {
return Promise.reject("Invalid account settings");
}
var putUrl = accountEndpoint.replace(":id", account.user_id + "");
return this.http.put(putUrl, JSON.stringify(account), { headers: this.headers }).toPromise()
.then(function () {
//Retrieve current session user
return _this.retrieveUser();
})
.catch(function (error) { return _this.handleError(error); });
};
/**
* Switch the backend language profile
*/
SessionService.prototype.switchLanguage = function (lang) {
var _this = this;
if (!lang) {
return Promise.reject("Invalid language");
}
var backendLang = langMap[lang];
if (!backendLang) {
backendLang = langMap[shared_const_1.enLang];
}
var getUrl = langEndpoint + "?lang=" + backendLang;
return this.http.get(getUrl).toPromise()
.then(function () { return null; })
.catch(function (error) { return _this.handleError(error); });
};
SessionService = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object])
], SessionService);
return SessionService;
var _a;
}());
exports.SessionService = SessionService;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/session.service.js.map
/***/ }),
/***/ 171:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var http_1 = __webpack_require__(20);
__webpack_require__(58);
var passwordChangeEndpoint = "/api/users/:user_id/password";
var sendEmailEndpoint = "/sendEmail";
var resetPasswordEndpoint = "/reset";
var PasswordSettingService = (function () {
function PasswordSettingService(http) {
this.http = http;
this.headers = new http_1.Headers({
"Accept": 'application/json',
"Content-Type": 'application/json'
});
this.options = new http_1.RequestOptions({
'headers': this.headers
});
}
PasswordSettingService.prototype.changePassword = function (userId, setting) {
if (!setting || setting.new_password.trim() === "" || setting.old_password.trim() === "") {
return Promise.reject("Invalid data");
}
var putUrl = passwordChangeEndpoint.replace(":user_id", userId + "");
return this.http.put(putUrl, JSON.stringify(setting), this.options)
.toPromise()
.then(function () { return null; })
.catch(function (error) {
return Promise.reject(error);
});
};
PasswordSettingService.prototype.sendResetPasswordMail = function (email) {
if (!email) {
return Promise.reject("Invalid email");
}
var getUrl = sendEmailEndpoint + "?email=" + email;
return this.http.get(getUrl, this.options).toPromise()
.then(function (response) { return response; })
.catch(function (error) {
return Promise.reject(error);
});
};
PasswordSettingService.prototype.resetPassword = function (uuid, newPassword) {
if (!uuid || !newPassword) {
return Promise.reject("Invalid reset uuid or password");
}
var formHeaders = new http_1.Headers({
"Content-Type": 'application/x-www-form-urlencoded'
});
var formOptions = new http_1.RequestOptions({
headers: formHeaders
});
var body = new http_1.URLSearchParams();
body.set("reset_uuid", uuid);
body.set("password", newPassword);
return this.http.post(resetPasswordEndpoint, body.toString(), formOptions)
.toPromise()
.then(function (response) { return response; })
.catch(function (error) {
return Promise.reject(error);
});
};
PasswordSettingService = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object])
], PasswordSettingService);
return PasswordSettingService;
var _a;
}());
exports.PasswordSettingService = PasswordSettingService;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/password-setting.service.js.map
/***/ }),
/***/ 172:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var http_1 = __webpack_require__(20);
__webpack_require__(58);
var app_config_1 = __webpack_require__(244);
exports.systemInfoEndpoint = "/api/systeminfo";
/**
* Declare service to handle the bootstrap options
*
*
* @export
* @class GlobalSearchService
*/
var AppConfigService = (function () {
function AppConfigService(http) {
this.http = http;
this.headers = new http_1.Headers({
"Content-Type": 'application/json'
});
this.options = new http_1.RequestOptions({
headers: this.headers
});
//Store the application configuration
this.configurations = new app_config_1.AppConfig();
}
AppConfigService.prototype.load = function () {
var _this = this;
return this.http.get(exports.systemInfoEndpoint, this.options).toPromise()
.then(function (response) { return _this.configurations = response.json(); })
.catch(function (error) {
//Catch the error
console.error("Failed to load bootstrap options with error: ", error);
});
};
AppConfigService.prototype.getConfig = function () {
return this.configurations;
};
AppConfigService = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object])
], AppConfigService);
return AppConfigService;
var _a;
}());
exports.AppConfigService = AppConfigService;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/app-config.service.js.map
/***/ }),
/***/ 173:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var StringValueItem = (function () {
function StringValueItem(v, e) {
this.value = v;
this.editable = e;
}
return StringValueItem;
}());
exports.StringValueItem = StringValueItem;
var NumberValueItem = (function () {
function NumberValueItem(v, e) {
this.value = v;
this.editable = e;
}
return NumberValueItem;
}());
exports.NumberValueItem = NumberValueItem;
var BoolValueItem = (function () {
function BoolValueItem(v, e) {
this.value = v;
this.editable = e;
}
return BoolValueItem;
}());
exports.BoolValueItem = BoolValueItem;
var Configuration = (function () {
function Configuration() {
this.auth_mode = new StringValueItem("db_auth", true);
this.project_creation_restriction = new StringValueItem("everyone", true);
this.self_registration = new BoolValueItem(false, true);
this.ldap_base_dn = new StringValueItem("", true);
this.ldap_filter = new StringValueItem("", true);
this.ldap_scope = new NumberValueItem(0, true);
this.ldap_search_dn = new StringValueItem("", true);
this.ldap_search_password = new StringValueItem("", true);
this.ldap_timeout = new NumberValueItem(5, true);
this.ldap_uid = new StringValueItem("", true);
this.ldap_url = new StringValueItem("", true);
this.email_host = new StringValueItem("", true);
this.email_identity = new StringValueItem("", true);
this.email_from = new StringValueItem("", true);
this.email_port = new NumberValueItem(25, true);
this.email_ssl = new BoolValueItem(false, true);
this.email_username = new StringValueItem("", true);
this.email_password = new StringValueItem("", true);
this.token_expiration = new NumberValueItem(5, true);
this.cfg_expiration = new NumberValueItem(30, true);
this.verify_remote_cert = new BoolValueItem(false, true);
}
return Configuration;
}());
exports.Configuration = Configuration;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/config.js.map
/***/ }),
/***/ 174:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var http_1 = __webpack_require__(20);
var Observable_1 = __webpack_require__(3);
__webpack_require__(133);
__webpack_require__(85);
__webpack_require__(132);
var ProjectService = (function () {
function ProjectService(http) {
this.http = http;
this.headers = new http_1.Headers({ 'Content-type': 'application/json' });
this.options = new http_1.RequestOptions({ 'headers': this.headers });
}
ProjectService.prototype.getProject = function (projectId) {
return this.http
.get("/api/projects/" + projectId)
.toPromise()
.then(function (response) { return response.json(); })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
ProjectService.prototype.listProjects = function (name, isPublic, page, pageSize) {
var params = new http_1.URLSearchParams();
params.set('page', page + '');
params.set('page_size', pageSize + '');
return this.http
.get("/api/projects?project_name=" + name + "&is_public=" + isPublic, { search: params })
.map(function (response) { return response; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
ProjectService.prototype.createProject = function (name, isPublic) {
return this.http
.post("/api/projects", JSON.stringify({ 'project_name': name, 'public': isPublic }), this.options)
.map(function (response) { return response.status; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
ProjectService.prototype.toggleProjectPublic = function (projectId, isPublic) {
return this.http
.put("/api/projects/" + projectId + "/publicity", { 'public': isPublic }, this.options)
.map(function (response) { return response.status; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
ProjectService.prototype.deleteProject = function (projectId) {
return this.http
.delete("/api/projects/" + projectId)
.map(function (response) { return response.status; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
ProjectService = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object])
], ProjectService);
return ProjectService;
var _a;
}());
exports.ProjectService = ProjectService;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/project.service.js.map
/***/ }),
/***/ 175:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var http_1 = __webpack_require__(20);
__webpack_require__(58);
var userMgmtEndpoint = '/api/users';
/**
* Define related methods to handle account and session corresponding things
*
* @export
* @class SessionService
*/
var UserService = (function () {
function UserService(http) {
this.http = http;
this.httpOptions = new http_1.RequestOptions({
headers: new http_1.Headers({
"Content-Type": 'application/json'
})
});
}
//Handle the related exceptions
UserService.prototype.handleError = function (error) {
return Promise.reject(error.message || error);
};
//Get the user list
UserService.prototype.getUsers = function () {
var _this = this;
return this.http.get(userMgmtEndpoint, this.httpOptions).toPromise()
.then(function (response) { return response.json(); })
.catch(function (error) { return _this.handleError(error); });
};
//Add new user
UserService.prototype.addUser = function (user) {
var _this = this;
return this.http.post(userMgmtEndpoint, JSON.stringify(user), this.httpOptions).toPromise()
.then(function () { return null; })
.catch(function (error) { return _this.handleError(error); });
};
//Delete the specified user
UserService.prototype.deleteUser = function (userId) {
var _this = this;
return this.http.delete(userMgmtEndpoint + "/" + userId, this.httpOptions)
.toPromise()
.then(function () { return null; })
.catch(function (error) { return _this.handleError(error); });
};
//Update user to enable/disable the admin role
UserService.prototype.updateUser = function (user) {
var _this = this;
return this.http.put(userMgmtEndpoint + "/" + user.user_id, JSON.stringify(user), this.httpOptions)
.toPromise()
.then(function () { return null; })
.catch(function (error) { return _this.handleError(error); });
};
//Set user admin role
UserService.prototype.updateUserRole = function (user) {
var _this = this;
return this.http.put(userMgmtEndpoint + "/" + user.user_id + "/sysadmin", JSON.stringify(user), this.httpOptions)
.toPromise()
.then(function () { return null; })
.catch(function (error) { return _this.handleError(error); });
};
UserService = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object])
], UserService);
return UserService;
var _a;
}());
exports.UserService = UserService;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/user.service.js.map
/***/ }),
/***/ 2:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.supportedLangs = ['en', 'zh'];
exports.enLang = "en";
exports.languageNames = {
"en": "English",
"zh": "中文简体"
};
(function (AlertType) {
AlertType[AlertType["DANGER"] = 0] = "DANGER";
AlertType[AlertType["WARNING"] = 1] = "WARNING";
AlertType[AlertType["INFO"] = 2] = "INFO";
AlertType[AlertType["SUCCESS"] = 3] = "SUCCESS";
})(exports.AlertType || (exports.AlertType = {}));
var AlertType = exports.AlertType;
;
exports.dismissInterval = 15 * 1000;
exports.httpStatusCode = {
"Unauthorized": 401,
"Forbidden": 403
};
(function (DeletionTargets) {
DeletionTargets[DeletionTargets["EMPTY"] = 0] = "EMPTY";
DeletionTargets[DeletionTargets["PROJECT"] = 1] = "PROJECT";
DeletionTargets[DeletionTargets["PROJECT_MEMBER"] = 2] = "PROJECT_MEMBER";
DeletionTargets[DeletionTargets["USER"] = 3] = "USER";
DeletionTargets[DeletionTargets["POLICY"] = 4] = "POLICY";
DeletionTargets[DeletionTargets["TARGET"] = 5] = "TARGET";
DeletionTargets[DeletionTargets["REPOSITORY"] = 6] = "REPOSITORY";
DeletionTargets[DeletionTargets["TAG"] = 7] = "TAG";
})(exports.DeletionTargets || (exports.DeletionTargets = {}));
var DeletionTargets = exports.DeletionTargets;
;
exports.harborRootRoute = "/harbor/dashboard";
exports.signInRoute = "/sign-in";
(function (ActionType) {
ActionType[ActionType["ADD_NEW"] = 0] = "ADD_NEW";
ActionType[ActionType["EDIT"] = 1] = "EDIT";
})(exports.ActionType || (exports.ActionType = {}));
var ActionType = exports.ActionType;
;
exports.ListMode = {
READONLY: "readonly",
FULL: "full"
};
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/shared.const.js.map
/***/ }),
/***/ 243:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var new_user_form_component_1 = __webpack_require__(253);
var session_service_1 = __webpack_require__(14);
var user_service_1 = __webpack_require__(175);
var inline_alert_component_1 = __webpack_require__(80);
var clarity_angular_1 = __webpack_require__(419);
var SignUpComponent = (function () {
function SignUpComponent(session, userService) {
this.session = session;
this.userService = userService;
this.opened = false;
this.staticBackdrop = true;
this.onGoing = false;
this.formValueChanged = false;
}
SignUpComponent.prototype.getNewUser = function () {
return this.newUserForm.getData();
};
Object.defineProperty(SignUpComponent.prototype, "inProgress", {
get: function () {
return this.onGoing;
},
enumerable: true,
configurable: true
});
Object.defineProperty(SignUpComponent.prototype, "isValid", {
get: function () {
return this.newUserForm.isValid && this.error == null;
},
enumerable: true,
configurable: true
});
SignUpComponent.prototype.formValueChange = function (flag) {
if (flag) {
this.formValueChanged = true;
}
if (this.error != null) {
this.error = null; //clear error
}
this.inlienAlert.close(); //Close alert if being shown
};
SignUpComponent.prototype.open = function () {
this.newUserForm.reset(); //Reset form
this.formValueChanged = false;
this.modal.open();
};
SignUpComponent.prototype.close = function () {
if (this.formValueChanged) {
if (this.newUserForm.isEmpty()) {
this.opened = false;
}
else {
//Need user confirmation
this.inlienAlert.showInlineConfirmation({
message: "ALERT.FORM_CHANGE_CONFIRMATION"
});
}
}
else {
this.opened = false;
}
};
SignUpComponent.prototype.confirmCancel = function () {
this.modal.close();
};
//Create new user
SignUpComponent.prototype.create = function () {
var _this = this;
//Double confirm everything is ok
//Form is valid
if (!this.isValid) {
return;
}
//We have new user data
var u = this.getNewUser();
if (!u) {
return;
}
//Start process
this.onGoing = true;
this.userService.addUser(u)
.then(function () {
_this.onGoing = false;
_this.modal.close();
})
.catch(function (error) {
_this.onGoing = false;
_this.error = error;
_this.inlienAlert.showInlineError(error);
});
};
__decorate([
core_1.ViewChild(new_user_form_component_1.NewUserFormComponent),
__metadata('design:type', (typeof (_a = typeof new_user_form_component_1.NewUserFormComponent !== 'undefined' && new_user_form_component_1.NewUserFormComponent) === 'function' && _a) || Object)
], SignUpComponent.prototype, "newUserForm", void 0);
__decorate([
core_1.ViewChild(inline_alert_component_1.InlineAlertComponent),
__metadata('design:type', (typeof (_b = typeof inline_alert_component_1.InlineAlertComponent !== 'undefined' && inline_alert_component_1.InlineAlertComponent) === 'function' && _b) || Object)
], SignUpComponent.prototype, "inlienAlert", void 0);
__decorate([
core_1.ViewChild(clarity_angular_1.Modal),
__metadata('design:type', (typeof (_c = typeof clarity_angular_1.Modal !== 'undefined' && clarity_angular_1.Modal) === 'function' && _c) || Object)
], SignUpComponent.prototype, "modal", void 0);
SignUpComponent = __decorate([
core_1.Component({
selector: 'sign-up',
template: __webpack_require__(825)
}),
__metadata('design:paramtypes', [(typeof (_d = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _d) || Object, (typeof (_e = typeof user_service_1.UserService !== 'undefined' && user_service_1.UserService) === 'function' && _e) || Object])
], SignUpComponent);
return SignUpComponent;
var _a, _b, _c, _d, _e;
}());
exports.SignUpComponent = SignUpComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/sign-up.component.js.map
/***/ }),
/***/ 244:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var AppConfig = (function () {
function AppConfig() {
//Set default value
this.with_notary = false;
this.with_admiral = false;
this.admiral_endpoint = "";
this.auth_mode = "db_auth";
this.registry_url = "";
this.project_creation_restriction = "everyone";
this.self_registration = true;
}
return AppConfig;
}());
exports.AppConfig = AppConfig;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/app-config.js.map
/***/ }),
/***/ 245:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var session_service_1 = __webpack_require__(14);
var StartPageComponent = (function () {
function StartPageComponent(session) {
this.session = session;
this.isSessionValid = false;
}
StartPageComponent.prototype.ngOnInit = function () {
this.isSessionValid = this.session.getCurrentUser() != null;
};
StartPageComponent = __decorate([
core_1.Component({
selector: 'start-page',
template: __webpack_require__(832),
styles: [__webpack_require__(806)]
}),
__metadata('design:paramtypes', [(typeof (_a = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _a) || Object])
], StartPageComponent);
return StartPageComponent;
var _a;
}());
exports.StartPageComponent = StartPageComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/start.component.js.map
/***/ }),
/***/ 246:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var platform_browser_1 = __webpack_require__(121);
var core_1 = __webpack_require__(0);
var forms_1 = __webpack_require__(26);
var http_1 = __webpack_require__(20);
var clarity_angular_1 = __webpack_require__(419);
var CoreModule = (function () {
function CoreModule() {
}
CoreModule = __decorate([
core_1.NgModule({
imports: [
platform_browser_1.BrowserModule,
forms_1.FormsModule,
http_1.HttpModule,
clarity_angular_1.ClarityModule.forRoot()
],
exports: [
platform_browser_1.BrowserModule,
forms_1.FormsModule,
http_1.HttpModule,
clarity_angular_1.ClarityModule
]
}),
__metadata('design:paramtypes', [])
], CoreModule);
return CoreModule;
}());
exports.CoreModule = CoreModule;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/core.module.js.map
/***/ }),
/***/ 247:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var http_1 = __webpack_require__(20);
var base_service_1 = __webpack_require__(251);
__webpack_require__(133);
__webpack_require__(85);
__webpack_require__(132);
exports.logEndpoint = "/api/logs";
var AuditLogService = (function (_super) {
__extends(AuditLogService, _super);
function AuditLogService(http) {
_super.call(this);
this.http = http;
this.httpOptions = new http_1.RequestOptions({
headers: new http_1.Headers({
"Content-Type": 'application/json',
"Accept": 'application/json'
})
});
}
AuditLogService.prototype.listAuditLogs = function (queryParam) {
var _this = this;
return this.http
.post("/api/projects/" + queryParam.project_id + "/logs/filter?page=" + queryParam.page + "&page_size=" + queryParam.page_size, {
begin_timestamp: queryParam.begin_timestamp,
end_timestamp: queryParam.end_timestamp,
keywords: queryParam.keywords,
operation: queryParam.operation,
project_id: queryParam.project_id,
username: queryParam.username
})
.map(function (response) { return response; })
.catch(function (error) { return _this.handleError(error); });
};
AuditLogService.prototype.getRecentLogs = function (lines) {
var _this = this;
return this.http.get(exports.logEndpoint + "?lines=" + lines, this.httpOptions)
.map(function (response) { return response.json(); })
.catch(function (error) { return _this.handleError(error); });
};
AuditLogService = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object])
], AuditLogService);
return AuditLogService;
var _a;
}(base_service_1.BaseService));
exports.AuditLogService = AuditLogService;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/audit-log.service.js.map
/***/ }),
/***/ 248:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var http_1 = __webpack_require__(20);
var Observable_1 = __webpack_require__(3);
__webpack_require__(133);
__webpack_require__(85);
__webpack_require__(132);
var base_service_1 = __webpack_require__(251);
var MemberService = (function (_super) {
__extends(MemberService, _super);
function MemberService(http) {
_super.call(this);
this.http = http;
}
MemberService.prototype.listMembers = function (projectId, username) {
var _this = this;
console.log('Get member from project_id:' + projectId + ', username:' + username);
return this.http
.get("/api/projects/" + projectId + "/members?username=" + username)
.map(function (response) { return response.json(); })
.catch(function (error) { return _this.handleError(error); });
};
MemberService.prototype.addMember = function (projectId, username, roleId) {
console.log('Adding member with username:' + username + ', roleId:' + roleId + ' under projectId:' + projectId);
return this.http
.post("/api/projects/" + projectId + "/members", { username: username, roles: [roleId] })
.map(function (response) { return response.status; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
MemberService.prototype.changeMemberRole = function (projectId, userId, roleId) {
console.log('Changing member role with userId:' + ' to roleId:' + roleId + ' under projectId:' + projectId);
return this.http
.put("/api/projects/" + projectId + "/members/" + userId, { roles: [roleId] })
.map(function (response) { return response.status; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
MemberService.prototype.deleteMember = function (projectId, userId) {
console.log('Deleting member role with userId:' + userId + ' under projectId:' + projectId);
return this.http
.delete("/api/projects/" + projectId + "/members/" + userId)
.map(function (response) { return response.status; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
MemberService = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object])
], MemberService);
return MemberService;
var _a;
}(base_service_1.BaseService));
exports.MemberService = MemberService;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/member.service.js.map
/***/ }),
/***/ 249:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/*
{
"id": 1,
"endpoint": "http://10.117.4.151",
"name": "target_01",
"username": "admin",
"password": "Harbor12345",
"type": 0,
"creation_time": "2017-02-24T06:41:52Z",
"update_time": "2017-02-24T06:41:52Z"
}
*/
var Target = (function () {
function Target() {
}
return Target;
}());
exports.Target = Target;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/target.js.map
/***/ }),
/***/ 250:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var http_1 = __webpack_require__(20);
var Observable_1 = __webpack_require__(3);
__webpack_require__(460);
__webpack_require__(463);
var RepositoryService = (function () {
function RepositoryService(http) {
this.http = http;
}
RepositoryService.prototype.listRepositories = function (projectId, repoName, page, pageSize) {
console.log('List repositories with project ID:' + projectId);
var params = new http_1.URLSearchParams();
params.set('page', page + '');
params.set('page_size', pageSize + '');
return this.http
.get("/api/repositories?project_id=" + projectId + "&q=" + repoName + "&detail=1", { search: params })
.map(function (response) { return response; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
RepositoryService.prototype.listTags = function (repoName) {
return this.http
.get("/api/repositories/tags?repo_name=" + repoName + "&detail=1")
.map(function (response) { return response.json(); })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
RepositoryService.prototype.listNotarySignatures = function (repoName) {
return this.http
.get("/api/repositories/signatures?repo_name=" + repoName)
.map(function (response) { return response.json(); })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
RepositoryService.prototype.listTagsWithVerifiedSignatures = function (repoName) {
var _this = this;
return this.http
.get("/api/repositories/signatures?repo_name=" + repoName)
.map(function (response) { return response; })
.flatMap(function (res) {
return _this.listTags(repoName)
.map(function (tags) {
var signatures = res.json();
tags.forEach(function (t) {
for (var i = 0; i < signatures.length; i++) {
if (signatures[i].tag === t.tag) {
t.verified = true;
break;
}
}
});
return tags;
})
.catch(function (error) { return Observable_1.Observable.throw(error); });
})
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
RepositoryService.prototype.deleteRepository = function (repoName) {
console.log('Delete repository with repo name:' + repoName);
return this.http
.delete("/api/repositories?repo_name=" + repoName)
.map(function (response) { return response.status; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
RepositoryService.prototype.deleteRepoByTag = function (repoName, tag) {
console.log('Delete repository with repo name:' + repoName + ', tag:' + tag);
return this.http
.delete("/api/repositories?repo_name=" + repoName + "&tag=" + tag)
.map(function (response) { return response.status; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
RepositoryService = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object])
], RepositoryService);
return RepositoryService;
var _a;
}());
exports.RepositoryService = RepositoryService;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/repository.service.js.map
/***/ }),
/***/ 251:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var http_1 = __webpack_require__(20);
var BaseService = (function () {
function BaseService() {
}
BaseService.prototype.handleError = function (error) {
// In a real world app, we might use a remote logging infrastructure
var errMsg;
console.log(typeof error);
if (error instanceof http_1.Response) {
var body = error.json() || '';
var err = body.error || JSON.stringify(body);
errMsg = error.status + " - " + (error.statusText || '') + " " + err;
}
else {
errMsg = error.message ? error.message : error.toString();
}
return Promise.reject(error);
};
return BaseService;
}());
exports.BaseService = BaseService;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/base.service.js.map
/***/ }),
/***/ 252:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var create_edit_policy_1 = __webpack_require__(624);
var replication_service_1 = __webpack_require__(79);
var message_service_1 = __webpack_require__(10);
var shared_const_1 = __webpack_require__(2);
var policy_1 = __webpack_require__(617);
var target_1 = __webpack_require__(249);
var core_2 = __webpack_require__(34);
var CreateEditPolicyComponent = (function () {
function CreateEditPolicyComponent(replicationService, messageService, translateService) {
this.replicationService = replicationService;
this.messageService = messageService;
this.translateService = translateService;
this.createEditPolicy = new create_edit_policy_1.CreateEditPolicy();
this.reload = new core_1.EventEmitter();
}
CreateEditPolicyComponent.prototype.prepareTargets = function (targetId) {
var _this = this;
this.replicationService
.listTargets('')
.subscribe(function (targets) {
_this.targets = targets;
if (_this.targets && _this.targets.length > 0) {
var initialTarget = void 0;
(targetId) ? initialTarget = _this.targets.find(function (t) { return t.id == targetId; }) : initialTarget = _this.targets[0];
_this.createEditPolicy.targetId = initialTarget.id;
_this.createEditPolicy.targetName = initialTarget.name;
_this.createEditPolicy.endpointUrl = initialTarget.endpoint;
_this.createEditPolicy.username = initialTarget.username;
_this.createEditPolicy.password = initialTarget.password;
}
}, function (error) { return _this.messageService.announceMessage(error.status, 'Error occurred while get targets.', shared_const_1.AlertType.DANGER); });
};
CreateEditPolicyComponent.prototype.ngOnInit = function () { };
CreateEditPolicyComponent.prototype.openCreateEditPolicy = function (policyId) {
var _this = this;
this.createEditPolicyOpened = true;
this.createEditPolicy = new create_edit_policy_1.CreateEditPolicy();
this.isCreateDestination = false;
this.errorMessageOpened = false;
this.errorMessage = '';
this.pingTestMessage = '';
this.pingStatus = true;
this.testOngoing = false;
if (policyId) {
this.actionType = shared_const_1.ActionType.EDIT;
this.translateService.get('REPLICATION.EDIT_POLICY').subscribe(function (res) { return _this.modalTitle = res; });
this.replicationService
.getPolicy(policyId)
.subscribe(function (policy) {
_this.createEditPolicy.policyId = policyId;
_this.createEditPolicy.name = policy.name;
_this.createEditPolicy.description = policy.description;
_this.createEditPolicy.enable = policy.enabled === 1 ? true : false;
_this.prepareTargets(policy.target_id);
});
}
else {
this.actionType = shared_const_1.ActionType.ADD_NEW;
this.translateService.get('REPLICATION.ADD_POLICY').subscribe(function (res) { return _this.modalTitle = res; });
this.prepareTargets();
}
};
CreateEditPolicyComponent.prototype.newDestination = function (checkedAddNew) {
console.log('CheckedAddNew:' + checkedAddNew);
this.isCreateDestination = checkedAddNew;
if (this.isCreateDestination) {
this.createEditPolicy.targetName = '';
this.createEditPolicy.endpointUrl = '';
this.createEditPolicy.username = '';
this.createEditPolicy.password = '';
}
else {
this.prepareTargets();
}
};
CreateEditPolicyComponent.prototype.selectTarget = function () {
var _this = this;
var result = this.targets.find(function (target) { return target.id == _this.createEditPolicy.targetId; });
if (result) {
this.createEditPolicy.targetId = result.id;
this.createEditPolicy.endpointUrl = result.endpoint;
this.createEditPolicy.username = result.username;
this.createEditPolicy.password = result.password;
}
};
CreateEditPolicyComponent.prototype.onErrorMessageClose = function () {
this.errorMessageOpened = false;
this.errorMessage = '';
};
CreateEditPolicyComponent.prototype.getPolicyByForm = function () {
var policy = new policy_1.Policy();
policy.project_id = this.projectId;
policy.id = this.createEditPolicy.policyId;
policy.name = this.createEditPolicy.name;
policy.description = this.createEditPolicy.description;
policy.enabled = this.createEditPolicy.enable ? 1 : 0;
policy.target_id = this.createEditPolicy.targetId;
return policy;
};
CreateEditPolicyComponent.prototype.getTargetByForm = function () {
var target = new target_1.Target();
target.id = this.createEditPolicy.targetId;
target.name = this.createEditPolicy.targetName;
target.endpoint = this.createEditPolicy.endpointUrl;
target.username = this.createEditPolicy.username;
target.password = this.createEditPolicy.password;
return target;
};
CreateEditPolicyComponent.prototype.createPolicy = function () {
var _this = this;
console.log('Create policy with existing target in component.');
this.replicationService
.createPolicy(this.getPolicyByForm())
.subscribe(function (response) {
console.log('Successful created policy: ' + response);
_this.createEditPolicyOpened = false;
_this.reload.emit(true);
}, function (error) {
_this.errorMessageOpened = true;
_this.errorMessage = error['_body'];
console.log('Failed to create policy:' + error.status + ', error message:' + JSON.stringify(error['_body']));
});
};
CreateEditPolicyComponent.prototype.createOrUpdatePolicyAndCreateTarget = function () {
var _this = this;
console.log('Creating policy with new created target.');
this.replicationService
.createOrUpdatePolicyWithNewTarget(this.getPolicyByForm(), this.getTargetByForm())
.subscribe(function (response) {
console.log('Successful created policy and target:' + response);
_this.createEditPolicyOpened = false;
_this.reload.emit(true);
}, function (error) {
_this.errorMessageOpened = true;
_this.errorMessage = error['_body'];
console.log('Failed to create policy and target:' + error.status + ', error message:' + JSON.stringify(error['_body']));
});
};
CreateEditPolicyComponent.prototype.updatePolicy = function () {
var _this = this;
console.log('Creating policy with existing target.');
this.replicationService
.updatePolicy(this.getPolicyByForm())
.subscribe(function (response) {
console.log('Successful created policy and target:' + response);
_this.createEditPolicyOpened = false;
_this.reload.emit(true);
}, function (error) {
_this.errorMessageOpened = true;
_this.errorMessage = error['_body'];
console.log('Failed to create policy and target:' + error.status + ', error message:' + JSON.stringify(error['_body']));
});
};
CreateEditPolicyComponent.prototype.onSubmit = function () {
if (this.isCreateDestination) {
this.createOrUpdatePolicyAndCreateTarget();
}
else {
if (this.actionType === shared_const_1.ActionType.ADD_NEW) {
this.createPolicy();
}
else if (this.actionType === shared_const_1.ActionType.EDIT) {
this.updatePolicy();
}
}
this.errorMessageOpened = false;
this.errorMessage = '';
};
CreateEditPolicyComponent.prototype.testConnection = function () {
var _this = this;
this.pingStatus = true;
this.translateService.get('REPLICATION.TESTING_CONNECTION').subscribe(function (res) { return _this.pingTestMessage = res; });
this.testOngoing = !this.testOngoing;
var pingTarget = new target_1.Target();
pingTarget.endpoint = this.createEditPolicy.endpointUrl;
pingTarget.username = this.createEditPolicy.username;
pingTarget.password = this.createEditPolicy.password;
this.replicationService
.pingTarget(pingTarget)
.subscribe(function (response) {
_this.testOngoing = !_this.testOngoing;
_this.translateService.get('REPLICATION.TEST_CONNECTION_SUCCESS').subscribe(function (res) { return _this.pingTestMessage = res; });
_this.pingStatus = true;
}, function (error) {
_this.testOngoing = !_this.testOngoing;
_this.translateService.get('REPLICATION.TEST_CONNECTION_FAILURE').subscribe(function (res) { return _this.pingTestMessage = res; });
_this.pingStatus = false;
});
};
__decorate([
core_1.Input(),
__metadata('design:type', Number)
], CreateEditPolicyComponent.prototype, "projectId", void 0);
__decorate([
core_1.Output(),
__metadata('design:type', Object)
], CreateEditPolicyComponent.prototype, "reload", void 0);
CreateEditPolicyComponent = __decorate([
core_1.Component({
selector: 'create-edit-policy',
template: __webpack_require__(856)
}),
__metadata('design:paramtypes', [(typeof (_a = typeof replication_service_1.ReplicationService !== 'undefined' && replication_service_1.ReplicationService) === 'function' && _a) || Object, (typeof (_b = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _b) || Object, (typeof (_c = typeof core_2.TranslateService !== 'undefined' && core_2.TranslateService) === 'function' && _c) || Object])
], CreateEditPolicyComponent);
return CreateEditPolicyComponent;
var _a, _b, _c;
}());
exports.CreateEditPolicyComponent = CreateEditPolicyComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/create-edit-policy.component.js.map
/***/ }),
/***/ 253:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var forms_1 = __webpack_require__(26);
var user_1 = __webpack_require__(638);
var shared_utils_1 = __webpack_require__(33);
var NewUserFormComponent = (function () {
function NewUserFormComponent() {
this.newUser = new user_1.User();
this.confirmedPwd = "";
this.isSelfRegistration = false;
//Notify the form value changes
this.valueChange = new core_1.EventEmitter();
}
Object.defineProperty(NewUserFormComponent.prototype, "isValid", {
get: function () {
var pwdEqualStatus = true;
if (this.newUserForm.controls["confirmPassword"] &&
this.newUserForm.controls["newPassword"]) {
pwdEqualStatus = this.newUserForm.controls["confirmPassword"].value === this.newUserForm.controls["newPassword"].value;
}
return this.newUserForm &&
this.newUserForm.valid && pwdEqualStatus;
},
enumerable: true,
configurable: true
});
NewUserFormComponent.prototype.ngAfterViewChecked = function () {
var _this = this;
if (this.newUserFormRef != this.newUserForm) {
this.newUserFormRef = this.newUserForm;
if (this.newUserFormRef) {
this.newUserFormRef.valueChanges.subscribe(function (data) {
_this.valueChange.emit(true);
});
}
}
};
//Return the current user data
NewUserFormComponent.prototype.getData = function () {
return this.newUser;
};
//Reset form
NewUserFormComponent.prototype.reset = function () {
if (this.newUserForm) {
this.newUserForm.reset();
}
};
//To check if form is empty
NewUserFormComponent.prototype.isEmpty = function () {
return shared_utils_1.isEmptyForm(this.newUserForm);
};
__decorate([
core_1.Input(),
__metadata('design:type', Boolean)
], NewUserFormComponent.prototype, "isSelfRegistration", void 0);
__decorate([
core_1.ViewChild("newUserFrom"),
__metadata('design:type', (typeof (_a = typeof forms_1.NgForm !== 'undefined' && forms_1.NgForm) === 'function' && _a) || Object)
], NewUserFormComponent.prototype, "newUserForm", void 0);
__decorate([
core_1.Output(),
__metadata('design:type', Object)
], NewUserFormComponent.prototype, "valueChange", void 0);
NewUserFormComponent = __decorate([
core_1.Component({
selector: 'new-user-form',
template: __webpack_require__(862),
styles: [__webpack_require__(816)]
}),
__metadata('design:paramtypes', [])
], NewUserFormComponent);
return NewUserFormComponent;
var _a;
}());
exports.NewUserFormComponent = NewUserFormComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/new-user-form.component.js.map
/***/ }),
/***/ 277:
/***/ (function(module, exports) {
module.exports = ""
/***/ }),
/***/ 33:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var shared_const_1 = __webpack_require__(2);
/**
* To handle the error message body
*
* @export
* @returns {string}
*/
exports.errorHandler = function (error) {
if (error) {
if (error.message) {
return error.message;
}
else if (error._body) {
return error._body;
}
else if (error.statusText) {
return error.statusText;
}
else {
return error;
}
}
return "UNKNOWN_ERROR";
};
/**
* To check if form is empty
*/
exports.isEmptyForm = function (ngForm) {
if (ngForm && ngForm.form) {
var values = ngForm.form.value;
if (values) {
for (var key in values) {
if (values[key]) {
return false;
}
}
}
}
return true;
};
/**
* Hanlde the 401 and 403 code
*
* If handled the 401 or 403, then return true otherwise false
*/
exports.accessErrorHandler = function (error, msgService) {
if (error && error.status && msgService) {
if (error.status === shared_const_1.httpStatusCode.Unauthorized) {
msgService.announceAppLevelMessage(error.status, "UNAUTHORIZED_ERROR", shared_const_1.AlertType.DANGER);
return true;
}
else if (error.status === shared_const_1.httpStatusCode.Forbidden) {
msgService.announceAppLevelMessage(error.status, "FORBIDDEN_ERROR", shared_const_1.AlertType.DANGER);
return true;
}
}
return false;
};
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/shared.utils.js.map
/***/ }),
/***/ 374:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var forms_1 = __webpack_require__(26);
var session_service_1 = __webpack_require__(14);
var message_service_1 = __webpack_require__(10);
var shared_const_1 = __webpack_require__(2);
var shared_utils_1 = __webpack_require__(33);
var inline_alert_component_1 = __webpack_require__(80);
var AccountSettingsModalComponent = (function () {
function AccountSettingsModalComponent(session, msgService) {
this.session = session;
this.msgService = msgService;
this.opened = false;
this.staticBackdrop = true;
this.error = null;
this.isOnCalling = false;
this.formValueChanged = false;
}
AccountSettingsModalComponent.prototype.ngOnInit = function () {
//Value copy
this.account = Object.assign({}, this.session.getCurrentUser());
};
AccountSettingsModalComponent.prototype.isUserDataChange = function () {
if (!this.originalStaticData || !this.account) {
return false;
}
for (var prop in this.originalStaticData) {
if (this.originalStaticData[prop]) {
if (this.account[prop]) {
if (this.originalStaticData[prop] != this.account[prop]) {
return true;
}
}
}
}
return false;
};
Object.defineProperty(AccountSettingsModalComponent.prototype, "isValid", {
get: function () {
return this.accountForm && this.accountForm.valid && this.error === null;
},
enumerable: true,
configurable: true
});
Object.defineProperty(AccountSettingsModalComponent.prototype, "showProgress", {
get: function () {
return this.isOnCalling;
},
enumerable: true,
configurable: true
});
AccountSettingsModalComponent.prototype.ngAfterViewChecked = function () {
var _this = this;
if (this.accountFormRef != this.accountForm) {
this.accountFormRef = this.accountForm;
if (this.accountFormRef) {
this.accountFormRef.valueChanges.subscribe(function (data) {
if (_this.error) {
_this.error = null;
}
_this.formValueChanged = true;
_this.inlineAlert.close();
});
}
}
};
AccountSettingsModalComponent.prototype.open = function () {
//Keep the initial data for future diff
this.originalStaticData = Object.assign({}, this.session.getCurrentUser());
this.account = Object.assign({}, this.session.getCurrentUser());
this.formValueChanged = false;
this.opened = true;
};
AccountSettingsModalComponent.prototype.close = function () {
if (this.formValueChanged) {
if (!this.isUserDataChange()) {
this.opened = false;
}
else {
//Need user confirmation
this.inlineAlert.showInlineConfirmation({
message: "ALERT.FORM_CHANGE_CONFIRMATION"
});
}
}
else {
this.opened = false;
}
};
AccountSettingsModalComponent.prototype.submit = function () {
var _this = this;
if (!this.isValid || this.isOnCalling) {
return;
}
//Double confirm session is valid
var cUser = this.session.getCurrentUser();
if (!cUser) {
return;
}
this.isOnCalling = true;
this.session.updateAccountSettings(this.account)
.then(function () {
_this.isOnCalling = false;
_this.opened = false;
_this.msgService.announceMessage(200, "PROFILE.SAVE_SUCCESS", shared_const_1.AlertType.SUCCESS);
})
.catch(function (error) {
_this.isOnCalling = false;
_this.error = error;
if (shared_utils_1.accessErrorHandler(error, _this.msgService)) {
_this.opened = false;
}
else {
_this.inlineAlert.showInlineError(error);
}
});
};
AccountSettingsModalComponent.prototype.confirmCancel = function () {
this.inlineAlert.close();
this.opened = false;
};
__decorate([
core_1.ViewChild("accountSettingsFrom"),
__metadata('design:type', (typeof (_a = typeof forms_1.NgForm !== 'undefined' && forms_1.NgForm) === 'function' && _a) || Object)
], AccountSettingsModalComponent.prototype, "accountForm", void 0);
__decorate([
core_1.ViewChild(inline_alert_component_1.InlineAlertComponent),
__metadata('design:type', (typeof (_b = typeof inline_alert_component_1.InlineAlertComponent !== 'undefined' && inline_alert_component_1.InlineAlertComponent) === 'function' && _b) || Object)
], AccountSettingsModalComponent.prototype, "inlineAlert", void 0);
AccountSettingsModalComponent = __decorate([
core_1.Component({
selector: "account-settings-modal",
template: __webpack_require__(820)
}),
__metadata('design:paramtypes', [(typeof (_c = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _c) || Object, (typeof (_d = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _d) || Object])
], AccountSettingsModalComponent);
return AccountSettingsModalComponent;
var _a, _b, _c, _d;
}());
exports.AccountSettingsModalComponent = AccountSettingsModalComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/account-settings-modal.component.js.map
/***/ }),
/***/ 375:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var core_module_1 = __webpack_require__(246);
var sign_in_component_1 = __webpack_require__(379);
var password_setting_component_1 = __webpack_require__(377);
var account_settings_modal_component_1 = __webpack_require__(374);
var shared_module_1 = __webpack_require__(52);
var sign_up_component_1 = __webpack_require__(243);
var forgot_password_component_1 = __webpack_require__(376);
var reset_password_component_1 = __webpack_require__(378);
var password_setting_service_1 = __webpack_require__(171);
var AccountModule = (function () {
function AccountModule() {
}
AccountModule = __decorate([
core_1.NgModule({
imports: [
core_module_1.CoreModule,
router_1.RouterModule,
shared_module_1.SharedModule
],
declarations: [
sign_in_component_1.SignInComponent,
password_setting_component_1.PasswordSettingComponent,
account_settings_modal_component_1.AccountSettingsModalComponent,
sign_up_component_1.SignUpComponent,
forgot_password_component_1.ForgotPasswordComponent,
reset_password_component_1.ResetPasswordComponent],
exports: [
sign_in_component_1.SignInComponent,
password_setting_component_1.PasswordSettingComponent,
account_settings_modal_component_1.AccountSettingsModalComponent,
reset_password_component_1.ResetPasswordComponent],
providers: [password_setting_service_1.PasswordSettingService]
}),
__metadata('design:paramtypes', [])
], AccountModule);
return AccountModule;
}());
exports.AccountModule = AccountModule;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/account.module.js.map
/***/ }),
/***/ 376:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var forms_1 = __webpack_require__(26);
var password_setting_service_1 = __webpack_require__(171);
var inline_alert_component_1 = __webpack_require__(80);
var ForgotPasswordComponent = (function () {
function ForgotPasswordComponent(pwdService) {
this.pwdService = pwdService;
this.opened = false;
this.onGoing = false;
this.email = "";
this.validationState = true;
this.forceValid = true;
}
Object.defineProperty(ForgotPasswordComponent.prototype, "showProgress", {
get: function () {
return this.onGoing;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ForgotPasswordComponent.prototype, "isValid", {
get: function () {
return this.forgotPwdForm && this.forgotPwdForm.valid && this.forceValid;
},
enumerable: true,
configurable: true
});
ForgotPasswordComponent.prototype.open = function () {
this.opened = true;
this.validationState = true;
this.forceValid = true;
this.forgotPwdForm.resetForm();
};
ForgotPasswordComponent.prototype.close = function () {
this.opened = false;
};
ForgotPasswordComponent.prototype.send = function () {
var _this = this;
//Double confirm to avoid improper situations
if (!this.email) {
return;
}
if (!this.isValid) {
return;
}
this.onGoing = true;
this.pwdService.sendResetPasswordMail(this.email)
.then(function (response) {
_this.onGoing = false;
_this.forceValid = false; //diable the send button
_this.inlineAlert.showInlineSuccess({
message: "RESET_PWD.SUCCESS"
});
})
.catch(function (error) {
_this.onGoing = false;
_this.inlineAlert.showInlineError(error);
});
};
ForgotPasswordComponent.prototype.handleValidation = function (flag) {
if (flag) {
this.validationState = true;
}
else {
this.validationState = this.isValid;
}
};
__decorate([
core_1.ViewChild("forgotPasswordFrom"),
__metadata('design:type', (typeof (_a = typeof forms_1.NgForm !== 'undefined' && forms_1.NgForm) === 'function' && _a) || Object)
], ForgotPasswordComponent.prototype, "forgotPwdForm", void 0);
__decorate([
core_1.ViewChild(inline_alert_component_1.InlineAlertComponent),
__metadata('design:type', (typeof (_b = typeof inline_alert_component_1.InlineAlertComponent !== 'undefined' && inline_alert_component_1.InlineAlertComponent) === 'function' && _b) || Object)
], ForgotPasswordComponent.prototype, "inlineAlert", void 0);
ForgotPasswordComponent = __decorate([
core_1.Component({
selector: 'forgot-password',
template: __webpack_require__(821),
styles: [__webpack_require__(457)]
}),
__metadata('design:paramtypes', [(typeof (_c = typeof password_setting_service_1.PasswordSettingService !== 'undefined' && password_setting_service_1.PasswordSettingService) === 'function' && _c) || Object])
], ForgotPasswordComponent);
return ForgotPasswordComponent;
var _a, _b, _c;
}());
exports.ForgotPasswordComponent = ForgotPasswordComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/forgot-password.component.js.map
/***/ }),
/***/ 377:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var forms_1 = __webpack_require__(26);
var password_setting_service_1 = __webpack_require__(171);
var session_service_1 = __webpack_require__(14);
var shared_const_1 = __webpack_require__(2);
var message_service_1 = __webpack_require__(10);
var shared_utils_1 = __webpack_require__(33);
var inline_alert_component_1 = __webpack_require__(80);
var PasswordSettingComponent = (function () {
function PasswordSettingComponent(passwordService, session, msgService) {
this.passwordService = passwordService;
this.session = session;
this.msgService = msgService;
this.opened = false;
this.oldPwd = "";
this.newPwd = "";
this.reNewPwd = "";
this.error = null;
this.formValueChanged = false;
this.onCalling = false;
}
Object.defineProperty(PasswordSettingComponent.prototype, "isValid", {
//If form is valid
get: function () {
if (this.pwdForm && this.pwdForm.form.get("newPassword")) {
return this.pwdForm.valid &&
(this.pwdForm.form.get("newPassword").value === this.pwdForm.form.get("reNewPassword").value) &&
this.error === null;
}
return false;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PasswordSettingComponent.prototype, "valueChanged", {
get: function () {
return this.formValueChanged;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PasswordSettingComponent.prototype, "showProgress", {
get: function () {
return this.onCalling;
},
enumerable: true,
configurable: true
});
PasswordSettingComponent.prototype.ngAfterViewChecked = function () {
var _this = this;
if (this.pwdFormRef != this.pwdForm) {
this.pwdFormRef = this.pwdForm;
if (this.pwdFormRef) {
this.pwdFormRef.valueChanges.subscribe(function (data) {
_this.formValueChanged = true;
_this.error = null;
_this.inlineAlert.close();
});
}
}
};
//Open modal dialog
PasswordSettingComponent.prototype.open = function () {
this.opened = true;
this.pwdForm.reset();
this.formValueChanged = false;
};
//Close the moal dialog
PasswordSettingComponent.prototype.close = function () {
if (this.formValueChanged) {
if (shared_utils_1.isEmptyForm(this.pwdForm)) {
this.opened = false;
}
else {
//Need user confirmation
this.inlineAlert.showInlineConfirmation({
message: "ALERT.FORM_CHANGE_CONFIRMATION"
});
}
}
else {
this.opened = false;
}
};
PasswordSettingComponent.prototype.confirmCancel = function () {
this.opened = false;
};
//handle the ok action
PasswordSettingComponent.prototype.doOk = function () {
var _this = this;
if (this.onCalling) {
return; //To avoid duplicate click events
}
if (!this.isValid) {
return; //Double confirm
}
//Double confirm session is valid
var cUser = this.session.getCurrentUser();
if (!cUser) {
return;
}
//Call service
this.onCalling = true;
this.passwordService.changePassword(cUser.user_id, {
new_password: this.pwdForm.value.newPassword,
old_password: this.pwdForm.value.oldPassword
})
.then(function () {
_this.onCalling = false;
_this.opened = false;
_this.msgService.announceMessage(200, "CHANGE_PWD.SAVE_SUCCESS", shared_const_1.AlertType.SUCCESS);
})
.catch(function (error) {
_this.onCalling = false;
_this.error = error;
if (shared_utils_1.accessErrorHandler(error, _this.msgService)) {
_this.opened = false;
}
else {
_this.inlineAlert.showInlineError(error);
}
});
};
__decorate([
core_1.ViewChild("changepwdForm"),
__metadata('design:type', (typeof (_a = typeof forms_1.NgForm !== 'undefined' && forms_1.NgForm) === 'function' && _a) || Object)
], PasswordSettingComponent.prototype, "pwdForm", void 0);
__decorate([
core_1.ViewChild(inline_alert_component_1.InlineAlertComponent),
__metadata('design:type', (typeof (_b = typeof inline_alert_component_1.InlineAlertComponent !== 'undefined' && inline_alert_component_1.InlineAlertComponent) === 'function' && _b) || Object)
], PasswordSettingComponent.prototype, "inlineAlert", void 0);
PasswordSettingComponent = __decorate([
core_1.Component({
selector: 'password-setting',
template: __webpack_require__(822)
}),
__metadata('design:paramtypes', [(typeof (_c = typeof password_setting_service_1.PasswordSettingService !== 'undefined' && password_setting_service_1.PasswordSettingService) === 'function' && _c) || Object, (typeof (_d = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _d) || Object, (typeof (_e = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _e) || Object])
], PasswordSettingComponent);
return PasswordSettingComponent;
var _a, _b, _c, _d, _e;
}());
exports.PasswordSettingComponent = PasswordSettingComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/password-setting.component.js.map
/***/ }),
/***/ 378:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var forms_1 = __webpack_require__(26);
var password_setting_service_1 = __webpack_require__(171);
var inline_alert_component_1 = __webpack_require__(80);
var shared_utils_1 = __webpack_require__(33);
var message_service_1 = __webpack_require__(10);
var ResetPasswordComponent = (function () {
function ResetPasswordComponent(pwdService, route, msgService, router) {
this.pwdService = pwdService;
this.route = route;
this.msgService = msgService;
this.router = router;
this.opened = true;
this.onGoing = false;
this.password = "";
this.validationState = {};
this.resetUuid = "";
this.resetOk = false;
}
ResetPasswordComponent.prototype.ngOnInit = function () {
var _this = this;
this.route.queryParams.subscribe(function (params) { return _this.resetUuid = params["reset_uuid"] || ""; });
};
Object.defineProperty(ResetPasswordComponent.prototype, "showProgress", {
get: function () {
return this.onGoing;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ResetPasswordComponent.prototype, "isValid", {
get: function () {
return this.resetPwdForm && this.resetPwdForm.valid && this.samePassword();
},
enumerable: true,
configurable: true
});
ResetPasswordComponent.prototype.getValidationState = function (key) {
return this.validationState &&
this.validationState[key] &&
key === 'reNewPassword' ? this.samePassword() : true;
};
ResetPasswordComponent.prototype.open = function () {
this.resetOk = false;
this.opened = true;
this.resetPwdForm.resetForm();
};
ResetPasswordComponent.prototype.close = function () {
this.opened = false;
};
ResetPasswordComponent.prototype.send = function () {
var _this = this;
//If already reset password ok, navigator to sign-in
if (this.resetOk) {
this.router.navigate(['sign-in']);
return;
}
//Double confirm to avoid improper situations
if (!this.password) {
return;
}
if (!this.isValid) {
return;
}
this.onGoing = true;
this.pwdService.resetPassword(this.resetUuid, this.password)
.then(function () {
_this.onGoing = false;
_this.resetOk = true;
_this.inlineAlert.showInlineSuccess({ message: 'RESET_PWD.RESET_OK' });
})
.catch(function (error) {
_this.onGoing = false;
if (shared_utils_1.accessErrorHandler(error, _this.msgService)) {
_this.close();
}
else {
_this.inlineAlert.showInlineError(shared_utils_1.errorHandler(error));
}
});
};
ResetPasswordComponent.prototype.handleValidation = function (key, flag) {
if (flag) {
if (!this.validationState[key]) {
this.validationState[key] = true;
}
}
else {
this.validationState[key] = this.getControlValidationState(key);
}
};
ResetPasswordComponent.prototype.getControlValidationState = function (key) {
if (this.resetPwdForm) {
var control = this.resetPwdForm.controls[key];
if (control) {
return control.valid;
}
}
return false;
};
ResetPasswordComponent.prototype.samePassword = function () {
if (this.resetPwdForm) {
var control1 = this.resetPwdForm.controls["newPassword"];
var control2 = this.resetPwdForm.controls["reNewPassword"];
if (control1 && control2) {
return control1.value == control2.value;
}
}
return false;
};
__decorate([
core_1.ViewChild("resetPwdForm"),
__metadata('design:type', (typeof (_a = typeof forms_1.NgForm !== 'undefined' && forms_1.NgForm) === 'function' && _a) || Object)
], ResetPasswordComponent.prototype, "resetPwdForm", void 0);
__decorate([
core_1.ViewChild(inline_alert_component_1.InlineAlertComponent),
__metadata('design:type', (typeof (_b = typeof inline_alert_component_1.InlineAlertComponent !== 'undefined' && inline_alert_component_1.InlineAlertComponent) === 'function' && _b) || Object)
], ResetPasswordComponent.prototype, "inlineAlert", void 0);
ResetPasswordComponent = __decorate([
core_1.Component({
selector: 'reset-password',
template: __webpack_require__(823),
styles: [__webpack_require__(457)]
}),
__metadata('design:paramtypes', [(typeof (_c = typeof password_setting_service_1.PasswordSettingService !== 'undefined' && password_setting_service_1.PasswordSettingService) === 'function' && _c) || Object, (typeof (_d = typeof router_1.ActivatedRoute !== 'undefined' && router_1.ActivatedRoute) === 'function' && _d) || Object, (typeof (_e = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _e) || Object, (typeof (_f = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _f) || Object])
], ResetPasswordComponent);
return ResetPasswordComponent;
var _a, _b, _c, _d, _e, _f;
}());
exports.ResetPasswordComponent = ResetPasswordComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/reset-password.component.js.map
/***/ }),
/***/ 379:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var core_2 = __webpack_require__(0);
var forms_1 = __webpack_require__(26);
var session_service_1 = __webpack_require__(14);
var sign_in_credential_1 = __webpack_require__(632);
var sign_up_component_1 = __webpack_require__(243);
var shared_const_1 = __webpack_require__(2);
var forgot_password_component_1 = __webpack_require__(376);
var app_config_service_1 = __webpack_require__(172);
var app_config_1 = __webpack_require__(244);
//Define status flags for signing in states
exports.signInStatusNormal = 0;
exports.signInStatusOnGoing = 1;
exports.signInStatusError = -1;
var SignInComponent = (function () {
function SignInComponent(router, session, route, appConfigService) {
this.router = router;
this.session = session;
this.route = route;
this.appConfigService = appConfigService;
this.redirectUrl = "";
this.appConfig = new app_config_1.AppConfig();
//Status flag
this.signInStatus = exports.signInStatusNormal;
//Initialize sign in credential
this.signInCredential = {
principal: "",
password: ""
};
}
SignInComponent.prototype.ngOnInit = function () {
var _this = this;
this.appConfig = this.appConfigService.getConfig();
this.route.queryParams
.subscribe(function (params) {
_this.redirectUrl = params["redirect_url"] || "";
var isSignUp = params["sign_up"] || "";
if (isSignUp != "") {
_this.signUp(); //Open sign up
}
});
};
Object.defineProperty(SignInComponent.prototype, "isError", {
//For template accessing
get: function () {
return this.signInStatus === exports.signInStatusError;
},
enumerable: true,
configurable: true
});
Object.defineProperty(SignInComponent.prototype, "isOnGoing", {
get: function () {
return this.signInStatus === exports.signInStatusOnGoing;
},
enumerable: true,
configurable: true
});
Object.defineProperty(SignInComponent.prototype, "isValid", {
//Validate the related fields
get: function () {
return this.currentForm.form.valid;
},
enumerable: true,
configurable: true
});
Object.defineProperty(SignInComponent.prototype, "selfSignUp", {
//Whether show the 'sign up' link
get: function () {
return this.appConfig.auth_mode === 'db_auth'
&& this.appConfig.self_registration;
},
enumerable: true,
configurable: true
});
//General error handler
SignInComponent.prototype.handleError = function (error) {
//Set error status
this.signInStatus = exports.signInStatusError;
var message = error.status ? error.status + ":" + error.statusText : error;
console.error("An error occurred when signing in:", message);
};
//Hande form values changes
SignInComponent.prototype.formChanged = function () {
var _this = this;
if (this.currentForm === this.signInForm) {
return;
}
this.signInForm = this.currentForm;
if (this.signInForm) {
this.signInForm.valueChanges
.subscribe(function (data) {
_this.updateState();
});
}
};
//Implement interface
//Watch the view change only when view is in error state
SignInComponent.prototype.ngAfterViewChecked = function () {
if (this.signInStatus === exports.signInStatusError) {
this.formChanged();
}
};
//Update the status if we have done some changes
SignInComponent.prototype.updateState = function () {
if (this.signInStatus === exports.signInStatusError) {
this.signInStatus = exports.signInStatusNormal; //reset
}
};
//Trigger the signin action
SignInComponent.prototype.signIn = function () {
var _this = this;
//Should validate input firstly
if (!this.isValid || this.isOnGoing) {
return;
}
//Start signing in progress
this.signInStatus = exports.signInStatusOnGoing;
//Call the service to send out the http request
this.session.signIn(this.signInCredential)
.then(function () {
//Set status
_this.signInStatus = exports.signInStatusNormal;
//Redirect to the right route
if (_this.redirectUrl === "") {
//Routing to the default location
_this.router.navigateByUrl(shared_const_1.harborRootRoute);
}
else {
_this.router.navigateByUrl(_this.redirectUrl);
}
})
.catch(function (error) {
_this.handleError(error);
});
};
//Open sign up dialog
SignInComponent.prototype.signUp = function () {
this.signUpDialog.open();
};
//Open forgot password dialog
SignInComponent.prototype.forgotPassword = function () {
this.forgotPwdDialog.open();
};
__decorate([
core_2.ViewChild('signInForm'),
__metadata('design:type', (typeof (_a = typeof forms_1.NgForm !== 'undefined' && forms_1.NgForm) === 'function' && _a) || Object)
], SignInComponent.prototype, "currentForm", void 0);
__decorate([
core_2.ViewChild('signupDialog'),
__metadata('design:type', (typeof (_b = typeof sign_up_component_1.SignUpComponent !== 'undefined' && sign_up_component_1.SignUpComponent) === 'function' && _b) || Object)
], SignInComponent.prototype, "signUpDialog", void 0);
__decorate([
core_2.ViewChild('forgotPwdDialog'),
__metadata('design:type', (typeof (_c = typeof forgot_password_component_1.ForgotPasswordComponent !== 'undefined' && forgot_password_component_1.ForgotPasswordComponent) === 'function' && _c) || Object)
], SignInComponent.prototype, "forgotPwdDialog", void 0);
__decorate([
core_2.Input(),
__metadata('design:type', (typeof (_d = typeof sign_in_credential_1.SignInCredential !== 'undefined' && sign_in_credential_1.SignInCredential) === 'function' && _d) || Object)
], SignInComponent.prototype, "signInCredential", void 0);
SignInComponent = __decorate([
core_1.Component({
selector: 'sign-in',
template: __webpack_require__(824),
styles: [__webpack_require__(802)]
}),
__metadata('design:paramtypes', [(typeof (_e = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _e) || Object, (typeof (_f = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _f) || Object, (typeof (_g = typeof router_1.ActivatedRoute !== 'undefined' && router_1.ActivatedRoute) === 'function' && _g) || Object, (typeof (_h = typeof app_config_service_1.AppConfigService !== 'undefined' && app_config_service_1.AppConfigService) === 'function' && _h) || Object])
], SignInComponent);
return SignInComponent;
var _a, _b, _c, _d, _e, _f, _g, _h;
}());
exports.SignInComponent = SignInComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/sign-in.component.js.map
/***/ }),
/***/ 380:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var core_2 = __webpack_require__(34);
var core_3 = __webpack_require__(257);
var shared_const_1 = __webpack_require__(2);
var session_service_1 = __webpack_require__(14);
var AppComponent = (function () {
function AppComponent(translate, cookie, session) {
this.translate = translate;
this.cookie = cookie;
this.session = session;
translate.addLangs(shared_const_1.supportedLangs);
translate.setDefaultLang(shared_const_1.enLang);
//If user has selected lang, then directly use it
var langSetting = this.cookie.get("harbor-lang");
if (!langSetting || langSetting.trim() === "") {
//Use browser lang
langSetting = translate.getBrowserLang();
}
var selectedLang = this.isLangMatch(langSetting, shared_const_1.supportedLangs) ? langSetting : shared_const_1.enLang;
translate.use(selectedLang);
//this.session.switchLanguage(selectedLang).catch(error => console.error(error));
}
AppComponent.prototype.isLangMatch = function (browserLang, supportedLangs) {
if (supportedLangs && supportedLangs.length > 0) {
return supportedLangs.find(function (lang) { return lang === browserLang; });
}
};
AppComponent = __decorate([
core_1.Component({
selector: 'harbor-app',
template: __webpack_require__(826),
styleUrls: []
}),
__metadata('design:paramtypes', [(typeof (_a = typeof core_2.TranslateService !== 'undefined' && core_2.TranslateService) === 'function' && _a) || Object, (typeof (_b = typeof core_3.CookieService !== 'undefined' && core_3.CookieService) === 'function' && _b) || Object, (typeof (_c = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _c) || Object])
], AppComponent);
return AppComponent;
var _a, _b, _c;
}());
exports.AppComponent = AppComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/app.component.js.map
/***/ }),
/***/ 381:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var global_search_service_1 = __webpack_require__(604);
var search_results_1 = __webpack_require__(605);
var shared_utils_1 = __webpack_require__(33);
var shared_const_1 = __webpack_require__(2);
var message_service_1 = __webpack_require__(10);
var search_trigger_service_1 = __webpack_require__(95);
var SearchResultComponent = (function () {
function SearchResultComponent(search, msgService, searchTrigger) {
this.search = search;
this.msgService = msgService;
this.searchTrigger = searchTrigger;
this.searchResults = new search_results_1.SearchResults();
this.currentTerm = "";
//Open or close
this.stateIndicator = false;
//Search in progress
this.onGoing = false;
//Whether or not mouse point is onto the close indicator
this.mouseOn = false;
}
SearchResultComponent.prototype.doFilterProjects = function (event) {
this.searchResults.project = this.originalCopy.project.filter(function (pro) { return pro.name.indexOf(event) != -1; });
};
SearchResultComponent.prototype.clone = function (src) {
var res = new search_results_1.SearchResults();
if (src) {
src.project.forEach(function (pro) { return res.project.push(Object.assign({}, pro)); });
src.repository.forEach(function (repo) { return res.repository.push(Object.assign({}, repo)); });
return res;
}
return res; //Empty object
};
Object.defineProperty(SearchResultComponent.prototype, "listMode", {
get: function () {
return shared_const_1.ListMode.READONLY;
},
enumerable: true,
configurable: true
});
Object.defineProperty(SearchResultComponent.prototype, "state", {
get: function () {
return this.stateIndicator;
},
enumerable: true,
configurable: true
});
Object.defineProperty(SearchResultComponent.prototype, "done", {
get: function () {
return !this.onGoing;
},
enumerable: true,
configurable: true
});
Object.defineProperty(SearchResultComponent.prototype, "hover", {
get: function () {
return this.mouseOn;
},
enumerable: true,
configurable: true
});
//Handle mouse event of close indicator
SearchResultComponent.prototype.mouseAction = function (over) {
this.mouseOn = over;
};
//Show the results
SearchResultComponent.prototype.show = function () {
this.stateIndicator = true;
this.searchTrigger.searchInputStat(true);
};
//Close the result page
SearchResultComponent.prototype.close = function () {
//Tell shell close
this.searchTrigger.closeSearch(true);
this.searchTrigger.searchInputStat(false);
this.stateIndicator = false;
};
//Call search service to complete the search request
SearchResultComponent.prototype.doSearch = function (term) {
var _this = this;
//Do nothing if search is ongoing
if (this.onGoing) {
return;
}
//Confirm page is displayed
if (!this.stateIndicator) {
this.show();
}
this.currentTerm = term;
//If term is empty, then clear the results
if (term === "") {
this.searchResults.project = [];
this.searchResults.repository = [];
return;
}
//Show spinner
this.onGoing = true;
this.search.doSearch(term)
.then(function (searchResults) {
_this.onGoing = false;
_this.originalCopy = searchResults; //Keeo the original data
_this.searchResults = _this.clone(searchResults);
})
.catch(function (error) {
_this.onGoing = false;
if (!shared_utils_1.accessErrorHandler(error, _this.msgService)) {
_this.msgService.announceMessage(error.status, shared_utils_1.errorHandler(error), shared_const_1.AlertType.DANGER);
}
});
};
SearchResultComponent = __decorate([
core_1.Component({
selector: "search-result",
template: __webpack_require__(829),
styles: [__webpack_require__(803)],
providers: [global_search_service_1.GlobalSearchService]
}),
__metadata('design:paramtypes', [(typeof (_a = typeof global_search_service_1.GlobalSearchService !== 'undefined' && global_search_service_1.GlobalSearchService) === 'function' && _a) || Object, (typeof (_b = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _b) || Object, (typeof (_c = typeof search_trigger_service_1.SearchTriggerService !== 'undefined' && search_trigger_service_1.SearchTriggerService) === 'function' && _c) || Object])
], SearchResultComponent);
return SearchResultComponent;
var _a, _b, _c;
}());
exports.SearchResultComponent = SearchResultComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/search-result.component.js.map
/***/ }),
/***/ 382:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var modal_events_const_1 = __webpack_require__(383);
var account_settings_modal_component_1 = __webpack_require__(374);
var search_result_component_1 = __webpack_require__(381);
var password_setting_component_1 = __webpack_require__(377);
var navigator_component_1 = __webpack_require__(384);
var session_service_1 = __webpack_require__(14);
var about_dialog_component_1 = __webpack_require__(407);
var start_component_1 = __webpack_require__(245);
var search_trigger_service_1 = __webpack_require__(95);
var shared_const_1 = __webpack_require__(2);
var HarborShellComponent = (function () {
function HarborShellComponent(route, router, session, searchTrigger) {
this.route = route;
this.router = router;
this.session = session;
this.searchTrigger = searchTrigger;
//To indicator whwther or not the search results page is displayed
//We need to use this property to do some overriding work
this.isSearchResultsOpened = false;
}
HarborShellComponent.prototype.ngOnInit = function () {
var _this = this;
this.searchSub = this.searchTrigger.searchTriggerChan$.subscribe(function (searchEvt) {
_this.doSearch(searchEvt);
});
this.searchCloseSub = this.searchTrigger.searchCloseChan$.subscribe(function (close) {
if (close) {
_this.searchClose();
}
else {
_this.watchClickEvt(); //reuse
}
});
};
HarborShellComponent.prototype.ngOnDestroy = function () {
if (this.searchSub) {
this.searchSub.unsubscribe();
}
if (this.searchCloseSub) {
this.searchCloseSub.unsubscribe();
}
};
Object.defineProperty(HarborShellComponent.prototype, "isStartPage", {
get: function () {
return this.router.routerState.snapshot.url.toString() === shared_const_1.harborRootRoute;
},
enumerable: true,
configurable: true
});
Object.defineProperty(HarborShellComponent.prototype, "showSearch", {
get: function () {
return this.isSearchResultsOpened;
},
enumerable: true,
configurable: true
});
Object.defineProperty(HarborShellComponent.prototype, "isSystemAdmin", {
get: function () {
var account = this.session.getCurrentUser();
return account != null && account.has_admin_role > 0;
},
enumerable: true,
configurable: true
});
Object.defineProperty(HarborShellComponent.prototype, "isUserExisting", {
get: function () {
var account = this.session.getCurrentUser();
return account != null;
},
enumerable: true,
configurable: true
});
//Open modal dialog
HarborShellComponent.prototype.openModal = function (event) {
switch (event.modalName) {
case modal_events_const_1.modalEvents.USER_PROFILE:
this.accountSettingsModal.open();
break;
case modal_events_const_1.modalEvents.CHANGE_PWD:
this.pwdSetting.open();
break;
case modal_events_const_1.modalEvents.ABOUT:
this.aboutDialog.open();
break;
default:
break;
}
};
//Handle the global search event and then let the result page to trigger api
HarborShellComponent.prototype.doSearch = function (event) {
if (event === "") {
if (!this.isSearchResultsOpened) {
//Will not open search result panel if term is empty
return;
}
else {
//If opened, then close the search result panel
this.isSearchResultsOpened = false;
this.searchResultComponet.close();
return;
}
}
//Once this method is called
//the search results page must be opened
this.isSearchResultsOpened = true;
//Call the child component to do the real work
this.searchResultComponet.doSearch(event);
};
//Search results page closed
//remove the related ovevriding things
HarborShellComponent.prototype.searchClose = function () {
this.isSearchResultsOpened = false;
};
//Close serch result panel if existing
HarborShellComponent.prototype.watchClickEvt = function () {
this.searchResultComponet.close();
this.isSearchResultsOpened = false;
};
__decorate([
core_1.ViewChild(account_settings_modal_component_1.AccountSettingsModalComponent),
__metadata('design:type', (typeof (_a = typeof account_settings_modal_component_1.AccountSettingsModalComponent !== 'undefined' && account_settings_modal_component_1.AccountSettingsModalComponent) === 'function' && _a) || Object)
], HarborShellComponent.prototype, "accountSettingsModal", void 0);
__decorate([
core_1.ViewChild(search_result_component_1.SearchResultComponent),
__metadata('design:type', (typeof (_b = typeof search_result_component_1.SearchResultComponent !== 'undefined' && search_result_component_1.SearchResultComponent) === 'function' && _b) || Object)
], HarborShellComponent.prototype, "searchResultComponet", void 0);
__decorate([
core_1.ViewChild(password_setting_component_1.PasswordSettingComponent),
__metadata('design:type', (typeof (_c = typeof password_setting_component_1.PasswordSettingComponent !== 'undefined' && password_setting_component_1.PasswordSettingComponent) === 'function' && _c) || Object)
], HarborShellComponent.prototype, "pwdSetting", void 0);
__decorate([
core_1.ViewChild(navigator_component_1.NavigatorComponent),
__metadata('design:type', (typeof (_d = typeof navigator_component_1.NavigatorComponent !== 'undefined' && navigator_component_1.NavigatorComponent) === 'function' && _d) || Object)
], HarborShellComponent.prototype, "navigator", void 0);
__decorate([
core_1.ViewChild(about_dialog_component_1.AboutDialogComponent),
__metadata('design:type', (typeof (_e = typeof about_dialog_component_1.AboutDialogComponent !== 'undefined' && about_dialog_component_1.AboutDialogComponent) === 'function' && _e) || Object)
], HarborShellComponent.prototype, "aboutDialog", void 0);
__decorate([
core_1.ViewChild(start_component_1.StartPageComponent),
__metadata('design:type', (typeof (_f = typeof start_component_1.StartPageComponent !== 'undefined' && start_component_1.StartPageComponent) === 'function' && _f) || Object)
], HarborShellComponent.prototype, "searchSatrt", void 0);
HarborShellComponent = __decorate([
core_1.Component({
selector: 'harbor-shell',
template: __webpack_require__(830),
styles: [__webpack_require__(804)]
}),
__metadata('design:paramtypes', [(typeof (_g = typeof router_1.ActivatedRoute !== 'undefined' && router_1.ActivatedRoute) === 'function' && _g) || Object, (typeof (_h = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _h) || Object, (typeof (_j = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _j) || Object, (typeof (_k = typeof search_trigger_service_1.SearchTriggerService !== 'undefined' && search_trigger_service_1.SearchTriggerService) === 'function' && _k) || Object])
], HarborShellComponent);
return HarborShellComponent;
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
}());
exports.HarborShellComponent = HarborShellComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/harbor-shell.component.js.map
/***/ }),
/***/ 383:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.modalEvents = {
USER_PROFILE: "USER_PROFILE",
CHANGE_PWD: "CHANGE_PWD",
ABOUT: "ABOUT"
};
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/modal-events.const.js.map
/***/ }),
/***/ 384:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var core_2 = __webpack_require__(34);
var modal_events_const_1 = __webpack_require__(383);
var session_service_1 = __webpack_require__(14);
var core_3 = __webpack_require__(257);
var shared_const_1 = __webpack_require__(2);
var app_config_service_1 = __webpack_require__(172);
var app_config_1 = __webpack_require__(244);
var NavigatorComponent = (function () {
function NavigatorComponent(session, router, translate, cookie, appConfigService) {
this.session = session;
this.router = router;
this.translate = translate;
this.cookie = cookie;
this.appConfigService = appConfigService;
// constructor(private router: Router){}
this.showAccountSettingsModal = new core_1.EventEmitter();
this.showPwdChangeModal = new core_1.EventEmitter();
this.sessionUser = null;
this.selectedLang = shared_const_1.enLang;
this.appConfig = new app_config_1.AppConfig();
}
NavigatorComponent.prototype.ngOnInit = function () {
var _this = this;
this.sessionUser = this.session.getCurrentUser();
this.selectedLang = this.translate.currentLang;
this.translate.onLangChange.subscribe(function (langChange) {
_this.selectedLang = langChange.lang;
//Keep in cookie for next use
_this.cookie.put("harbor-lang", langChange.lang);
});
this.appConfig = this.appConfigService.getConfig();
};
Object.defineProperty(NavigatorComponent.prototype, "isSessionValid", {
get: function () {
return this.sessionUser != null;
},
enumerable: true,
configurable: true
});
Object.defineProperty(NavigatorComponent.prototype, "accountName", {
get: function () {
return this.sessionUser ? this.sessionUser.username : "";
},
enumerable: true,
configurable: true
});
Object.defineProperty(NavigatorComponent.prototype, "currentLang", {
get: function () {
return shared_const_1.languageNames[this.selectedLang];
},
enumerable: true,
configurable: true
});
Object.defineProperty(NavigatorComponent.prototype, "isIntegrationMode", {
get: function () {
return this.appConfig.with_admiral && this.appConfig.admiral_endpoint.trim() != "";
},
enumerable: true,
configurable: true
});
Object.defineProperty(NavigatorComponent.prototype, "admiralLink", {
get: function () {
var routeSegments = [this.appConfig.admiral_endpoint,
"?registry_url=",
encodeURIComponent(window.location.href)
];
return routeSegments.join("");
},
enumerable: true,
configurable: true
});
NavigatorComponent.prototype.matchLang = function (lang) {
return lang.trim() === this.selectedLang;
};
//Open the account setting dialog
NavigatorComponent.prototype.openAccountSettingsModal = function () {
this.showAccountSettingsModal.emit({
modalName: modal_events_const_1.modalEvents.USER_PROFILE,
modalFlag: true
});
};
//Open change password dialog
NavigatorComponent.prototype.openChangePwdModal = function () {
this.showPwdChangeModal.emit({
modalName: modal_events_const_1.modalEvents.CHANGE_PWD,
modalFlag: true
});
};
//Open about dialog
NavigatorComponent.prototype.openAboutDialog = function () {
this.showPwdChangeModal.emit({
modalName: modal_events_const_1.modalEvents.ABOUT,
modalFlag: true
});
};
//Log out system
NavigatorComponent.prototype.logOut = function () {
var _this = this;
this.session.signOff()
.then(function () {
_this.sessionUser = null;
//Naviagte to the sign in route
_this.router.navigate(["/sign-in"]);
})
.catch(); //TODO:
};
//Switch languages
NavigatorComponent.prototype.switchLanguage = function (lang) {
if (shared_const_1.supportedLangs.find(function (supportedLang) { return supportedLang === lang.trim(); })) {
this.translate.use(lang);
}
else {
this.translate.use(shared_const_1.enLang); //Use default
//TODO:
console.error('Language ' + lang.trim() + ' is not suppoted');
}
//Try to switch backend lang
//this.session.switchLanguage(lang).catch(error => console.error(error));
};
//Handle the home action
NavigatorComponent.prototype.homeAction = function () {
if (this.sessionUser != null) {
//Navigate to default page
this.router.navigate(['harbor']);
}
else {
//Naviagte to signin page
this.router.navigate(['sign-in']);
}
};
NavigatorComponent.prototype.openSignUp = function () {
var navigatorExtra = {
queryParams: { "sign_up": true }
};
this.router.navigate([shared_const_1.signInRoute], navigatorExtra);
};
__decorate([
core_1.Output(),
__metadata('design:type', Object)
], NavigatorComponent.prototype, "showAccountSettingsModal", void 0);
__decorate([
core_1.Output(),
__metadata('design:type', Object)
], NavigatorComponent.prototype, "showPwdChangeModal", void 0);
NavigatorComponent = __decorate([
core_1.Component({
selector: 'navigator',
template: __webpack_require__(831),
styles: [__webpack_require__(805)]
}),
__metadata('design:paramtypes', [(typeof (_a = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object, (typeof (_c = typeof core_2.TranslateService !== 'undefined' && core_2.TranslateService) === 'function' && _c) || Object, (typeof (_d = typeof core_3.CookieService !== 'undefined' && core_3.CookieService) === 'function' && _d) || Object, (typeof (_e = typeof app_config_service_1.AppConfigService !== 'undefined' && app_config_service_1.AppConfigService) === 'function' && _e) || Object])
], NavigatorComponent);
return NavigatorComponent;
var _a, _b, _c, _d, _e;
}());
exports.NavigatorComponent = NavigatorComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/navigator.component.js.map
/***/ }),
/***/ 385:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var forms_1 = __webpack_require__(26);
var config_1 = __webpack_require__(173);
var ConfigurationAuthComponent = (function () {
function ConfigurationAuthComponent() {
this.currentConfig = new config_1.Configuration();
}
Object.defineProperty(ConfigurationAuthComponent.prototype, "showLdap", {
get: function () {
return this.currentConfig &&
this.currentConfig.auth_mode &&
this.currentConfig.auth_mode.value === 'ldap_auth';
},
enumerable: true,
configurable: true
});
ConfigurationAuthComponent.prototype.disabled = function (prop) {
return !(prop && prop.editable);
};
ConfigurationAuthComponent.prototype.isValid = function () {
return this.authForm && this.authForm.valid;
};
__decorate([
core_1.Input("ldapConfig"),
__metadata('design:type', (typeof (_a = typeof config_1.Configuration !== 'undefined' && config_1.Configuration) === 'function' && _a) || Object)
], ConfigurationAuthComponent.prototype, "currentConfig", void 0);
__decorate([
core_1.ViewChild("authConfigFrom"),
__metadata('design:type', (typeof (_b = typeof forms_1.NgForm !== 'undefined' && forms_1.NgForm) === 'function' && _b) || Object)
], ConfigurationAuthComponent.prototype, "authForm", void 0);
ConfigurationAuthComponent = __decorate([
core_1.Component({
selector: 'config-auth',
template: __webpack_require__(833),
styles: [__webpack_require__(277)]
}),
__metadata('design:paramtypes', [])
], ConfigurationAuthComponent);
return ConfigurationAuthComponent;
var _a, _b;
}());
exports.ConfigurationAuthComponent = ConfigurationAuthComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/config-auth.component.js.map
/***/ }),
/***/ 386:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var forms_1 = __webpack_require__(26);
var config_service_1 = __webpack_require__(387);
var config_1 = __webpack_require__(173);
var message_service_1 = __webpack_require__(10);
var shared_const_1 = __webpack_require__(2);
var shared_utils_1 = __webpack_require__(33);
var config_2 = __webpack_require__(173);
var deletion_dialog_service_1 = __webpack_require__(48);
var deletion_message_1 = __webpack_require__(68);
var config_auth_component_1 = __webpack_require__(385);
var config_email_component_1 = __webpack_require__(388);
var app_config_service_1 = __webpack_require__(172);
var fakePass = "fakepassword";
var ConfigurationComponent = (function () {
function ConfigurationComponent(msgService, configService, confirmService, appConfigService) {
this.msgService = msgService;
this.configService = configService;
this.confirmService = confirmService;
this.appConfigService = appConfigService;
this.onGoing = false;
this.allConfig = new config_1.Configuration();
this.currentTabId = "";
this.testingOnGoing = false;
}
ConfigurationComponent.prototype.ngOnInit = function () {
var _this = this;
//First load
this.retrieveConfig();
this.confirmSub = this.confirmService.deletionConfirm$.subscribe(function (confirmation) {
_this.reset(confirmation.data);
});
};
ConfigurationComponent.prototype.ngOnDestroy = function () {
if (this.confirmSub) {
this.confirmSub.unsubscribe();
}
};
Object.defineProperty(ConfigurationComponent.prototype, "inProgress", {
get: function () {
return this.onGoing;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ConfigurationComponent.prototype, "testingInProgress", {
get: function () {
return this.testingOnGoing;
},
enumerable: true,
configurable: true
});
ConfigurationComponent.prototype.isValid = function () {
return this.repoConfigForm &&
this.repoConfigForm.valid &&
this.systemConfigForm &&
this.systemConfigForm.valid &&
this.mailConfig &&
this.mailConfig.isValid() &&
this.authConfig &&
this.authConfig.isValid();
};
ConfigurationComponent.prototype.hasChanges = function () {
return !this.isEmpty(this.getChanges());
};
ConfigurationComponent.prototype.isMailConfigValid = function () {
return this.mailConfig &&
this.mailConfig.isValid();
};
Object.defineProperty(ConfigurationComponent.prototype, "showTestServerBtn", {
get: function () {
return this.currentTabId === 'config-email';
},
enumerable: true,
configurable: true
});
Object.defineProperty(ConfigurationComponent.prototype, "showLdapServerBtn", {
get: function () {
return this.currentTabId === 'config-auth' &&
this.allConfig.auth_mode &&
this.allConfig.auth_mode.value === "ldap_auth";
},
enumerable: true,
configurable: true
});
ConfigurationComponent.prototype.isLDAPConfigValid = function () {
return this.authConfig && this.authConfig.isValid();
};
ConfigurationComponent.prototype.tabLinkChanged = function (tabLink) {
this.currentTabId = tabLink.id;
};
/**
*
* Save the changed values
*
* @memberOf ConfigurationComponent
*/
ConfigurationComponent.prototype.save = function () {
var _this = this;
var changes = this.getChanges();
if (!this.isEmpty(changes)) {
this.onGoing = true;
this.configService.saveConfiguration(changes)
.then(function (response) {
_this.onGoing = false;
//API should return the updated configurations here
//Unfortunately API does not do that
//To refresh the view, we can clone the original data copy
//or force refresh by calling service.
//HERE we choose force way
_this.retrieveConfig();
//Reload bootstrap option
_this.appConfigService.load().catch(function (error) { return console.error("Failed to reload bootstrap option with error: ", error); });
_this.msgService.announceMessage(response.status, "CONFIG.SAVE_SUCCESS", shared_const_1.AlertType.SUCCESS);
})
.catch(function (error) {
_this.onGoing = false;
if (!shared_utils_1.accessErrorHandler(error, _this.msgService)) {
_this.msgService.announceMessage(error.status, shared_utils_1.errorHandler(error), shared_const_1.AlertType.DANGER);
}
});
}
else {
//Inprop situation, should not come here
console.error("Save obort becasue nothing changed");
}
};
/**
*
* Discard current changes if have and reset
*
* @memberOf ConfigurationComponent
*/
ConfigurationComponent.prototype.cancel = function () {
var changes = this.getChanges();
if (!this.isEmpty(changes)) {
var msg = new deletion_message_1.DeletionMessage("CONFIG.CONFIRM_TITLE", "CONFIG.CONFIRM_SUMMARY", "", changes, shared_const_1.DeletionTargets.EMPTY);
this.confirmService.openComfirmDialog(msg);
}
else {
//Inprop situation, should not come here
console.error("Nothing changed");
}
};
/**
*
* Test the connection of specified mail server
*
*
* @memberOf ConfigurationComponent
*/
ConfigurationComponent.prototype.testMailServer = function () {
var _this = this;
var mailSettings = {};
var allChanges = this.getChanges();
for (var prop in allChanges) {
if (prop.startsWith("email_")) {
mailSettings[prop] = allChanges[prop];
}
}
this.testingOnGoing = true;
this.configService.testMailServer(mailSettings)
.then(function (response) {
_this.testingOnGoing = false;
_this.msgService.announceMessage(200, "CONFIG.TEST_MAIL_SUCCESS", shared_const_1.AlertType.SUCCESS);
})
.catch(function (error) {
_this.testingOnGoing = false;
_this.msgService.announceMessage(error.status, shared_utils_1.errorHandler(error), shared_const_1.AlertType.WARNING);
});
};
ConfigurationComponent.prototype.testLDAPServer = function () {
var _this = this;
var ldapSettings = {};
var allChanges = this.getChanges();
for (var prop in allChanges) {
if (prop.startsWith("ldap_")) {
ldapSettings[prop] = allChanges[prop];
}
}
console.info(ldapSettings);
this.testingOnGoing = true;
this.configService.testLDAPServer(ldapSettings)
.then(function (respone) {
_this.testingOnGoing = false;
_this.msgService.announceMessage(200, "CONFIG.TEST_LDAP_SUCCESS", shared_const_1.AlertType.SUCCESS);
})
.catch(function (error) {
_this.testingOnGoing = false;
_this.msgService.announceMessage(error.status, shared_utils_1.errorHandler(error), shared_const_1.AlertType.WARNING);
});
};
ConfigurationComponent.prototype.retrieveConfig = function () {
var _this = this;
this.onGoing = true;
this.configService.getConfiguration()
.then(function (configurations) {
_this.onGoing = false;
//Add two password fields
configurations.email_password = new config_2.StringValueItem(fakePass, true);
configurations.ldap_search_password = new config_2.StringValueItem(fakePass, true);
_this.allConfig = configurations;
//Keep the original copy of the data
_this.originalCopy = _this.clone(configurations);
})
.catch(function (error) {
_this.onGoing = false;
if (!shared_utils_1.accessErrorHandler(error, _this.msgService)) {
_this.msgService.announceMessage(error.status, shared_utils_1.errorHandler(error), shared_const_1.AlertType.DANGER);
}
});
};
/**
*
* Get the changed fields and return a map
*
* @private
* @returns {*}
*
* @memberOf ConfigurationComponent
*/
ConfigurationComponent.prototype.getChanges = function () {
var changes = {};
if (!this.allConfig || !this.originalCopy) {
return changes;
}
for (var prop in this.allConfig) {
var field = this.originalCopy[prop];
if (field && field.editable) {
if (field.value != this.allConfig[prop].value) {
changes[prop] = this.allConfig[prop].value;
//Fix boolean issue
if (typeof field.value === "boolean") {
changes[prop] = changes[prop] ? "1" : "0";
}
}
}
}
return changes;
};
/**
*
* Deep clone the configuration object
*
* @private
* @param {Configuration} src
* @returns {Configuration}
*
* @memberOf ConfigurationComponent
*/
ConfigurationComponent.prototype.clone = function (src) {
var dest = new config_1.Configuration();
if (!src) {
return dest; //Empty
}
for (var prop in src) {
if (src[prop]) {
dest[prop] = Object.assign({}, src[prop]); //Deep copy inner object
}
}
return dest;
};
/**
*
* Reset the configuration form
*
* @private
* @param {*} changes
*
* @memberOf ConfigurationComponent
*/
ConfigurationComponent.prototype.reset = function (changes) {
if (!this.isEmpty(changes)) {
for (var prop in changes) {
if (this.originalCopy[prop]) {
this.allConfig[prop] = Object.assign({}, this.originalCopy[prop]);
}
}
}
else {
//force reset
this.retrieveConfig();
}
};
ConfigurationComponent.prototype.isEmpty = function (obj) {
for (var key in obj) {
if (obj.hasOwnProperty(key))
return false;
}
return true;
};
ConfigurationComponent.prototype.disabled = function (prop) {
return !(prop && prop.editable);
};
__decorate([
core_1.ViewChild("repoConfigFrom"),
__metadata('design:type', (typeof (_a = typeof forms_1.NgForm !== 'undefined' && forms_1.NgForm) === 'function' && _a) || Object)
], ConfigurationComponent.prototype, "repoConfigForm", void 0);
__decorate([
core_1.ViewChild("systemConfigFrom"),
__metadata('design:type', (typeof (_b = typeof forms_1.NgForm !== 'undefined' && forms_1.NgForm) === 'function' && _b) || Object)
], ConfigurationComponent.prototype, "systemConfigForm", void 0);
__decorate([
core_1.ViewChild(config_email_component_1.ConfigurationEmailComponent),
__metadata('design:type', (typeof (_c = typeof config_email_component_1.ConfigurationEmailComponent !== 'undefined' && config_email_component_1.ConfigurationEmailComponent) === 'function' && _c) || Object)
], ConfigurationComponent.prototype, "mailConfig", void 0);
__decorate([
core_1.ViewChild(config_auth_component_1.ConfigurationAuthComponent),
__metadata('design:type', (typeof (_d = typeof config_auth_component_1.ConfigurationAuthComponent !== 'undefined' && config_auth_component_1.ConfigurationAuthComponent) === 'function' && _d) || Object)
], ConfigurationComponent.prototype, "authConfig", void 0);
ConfigurationComponent = __decorate([
core_1.Component({
selector: 'config',
template: __webpack_require__(834),
styles: [__webpack_require__(277)]
}),
__metadata('design:paramtypes', [(typeof (_e = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _e) || Object, (typeof (_f = typeof config_service_1.ConfigurationService !== 'undefined' && config_service_1.ConfigurationService) === 'function' && _f) || Object, (typeof (_g = typeof deletion_dialog_service_1.DeletionDialogService !== 'undefined' && deletion_dialog_service_1.DeletionDialogService) === 'function' && _g) || Object, (typeof (_h = typeof app_config_service_1.AppConfigService !== 'undefined' && app_config_service_1.AppConfigService) === 'function' && _h) || Object])
], ConfigurationComponent);
return ConfigurationComponent;
var _a, _b, _c, _d, _e, _f, _g, _h;
}());
exports.ConfigurationComponent = ConfigurationComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/config.component.js.map
/***/ }),
/***/ 387:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var http_1 = __webpack_require__(20);
__webpack_require__(58);
var configEndpoint = "/api/configurations";
var emailEndpoint = "/api/email/ping";
var ldapEndpoint = "/api/ldap/ping";
var ConfigurationService = (function () {
function ConfigurationService(http) {
this.http = http;
this.headers = new http_1.Headers({
"Accept": 'application/json',
"Content-Type": 'application/json'
});
this.options = new http_1.RequestOptions({
'headers': this.headers
});
}
ConfigurationService.prototype.getConfiguration = function () {
return this.http.get(configEndpoint, this.options).toPromise()
.then(function (response) { return response.json(); })
.catch(function (error) { return Promise.reject(error); });
};
ConfigurationService.prototype.saveConfiguration = function (values) {
return this.http.put(configEndpoint, JSON.stringify(values), this.options)
.toPromise()
.then(function (response) { return response; })
.catch(function (error) { return Promise.reject(error); });
};
ConfigurationService.prototype.testMailServer = function (mailSettings) {
return this.http.post(emailEndpoint, JSON.stringify(mailSettings), this.options)
.toPromise()
.then(function (response) { return response; })
.catch(function (error) { return Promise.reject(error); });
};
ConfigurationService.prototype.testLDAPServer = function (ldapSettings) {
return this.http.post(ldapEndpoint, JSON.stringify(ldapSettings), this.options)
.toPromise()
.then(function (response) { return response; })
.catch(function (error) { return Promise.reject(error); });
};
ConfigurationService = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object])
], ConfigurationService);
return ConfigurationService;
var _a;
}());
exports.ConfigurationService = ConfigurationService;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/config.service.js.map
/***/ }),
/***/ 388:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var forms_1 = __webpack_require__(26);
var config_1 = __webpack_require__(173);
var ConfigurationEmailComponent = (function () {
function ConfigurationEmailComponent() {
this.currentConfig = new config_1.Configuration();
}
ConfigurationEmailComponent.prototype.disabled = function (prop) {
return !(prop && prop.editable);
};
ConfigurationEmailComponent.prototype.isValid = function () {
return this.mailForm && this.mailForm.valid;
};
__decorate([
core_1.Input("mailConfig"),
__metadata('design:type', (typeof (_a = typeof config_1.Configuration !== 'undefined' && config_1.Configuration) === 'function' && _a) || Object)
], ConfigurationEmailComponent.prototype, "currentConfig", void 0);
__decorate([
core_1.ViewChild("mailConfigFrom"),
__metadata('design:type', (typeof (_b = typeof forms_1.NgForm !== 'undefined' && forms_1.NgForm) === 'function' && _b) || Object)
], ConfigurationEmailComponent.prototype, "mailForm", void 0);
ConfigurationEmailComponent = __decorate([
core_1.Component({
selector: 'config-email',
template: __webpack_require__(835),
styles: [__webpack_require__(277)]
}),
__metadata('design:paramtypes', [])
], ConfigurationEmailComponent);
return ConfigurationEmailComponent;
var _a, _b;
}());
exports.ConfigurationEmailComponent = ConfigurationEmailComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/config-email.component.js.map
/***/ }),
/***/ 389:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var shared_const_1 = __webpack_require__(2);
var Message = (function () {
function Message() {
this.isAppLevel = false;
}
Object.defineProperty(Message.prototype, "type", {
get: function () {
switch (this.alertType) {
case shared_const_1.AlertType.DANGER:
return 'alert-danger';
case shared_const_1.AlertType.INFO:
return 'alert-info';
case shared_const_1.AlertType.SUCCESS:
return 'alert-success';
case shared_const_1.AlertType.WARNING:
return 'alert-warning';
default:
return 'alert-warning';
}
},
enumerable: true,
configurable: true
});
Message.newMessage = function (statusCode, message, alertType) {
var m = new Message();
m.statusCode = statusCode;
m.message = message;
m.alertType = alertType;
return m;
};
Message.prototype.toString = function () {
return 'Message with statusCode:' + this.statusCode +
', message:' + this.message +
', alert type:' + this.type;
};
return Message;
}());
exports.Message = Message;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/message.js.map
/***/ }),
/***/ 390:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var audit_log_1 = __webpack_require__(611);
var audit_log_service_1 = __webpack_require__(247);
var message_service_1 = __webpack_require__(10);
var shared_const_1 = __webpack_require__(2);
var optionalSearch = { 0: 'AUDIT_LOG.ADVANCED', 1: 'AUDIT_LOG.SIMPLE' };
var FilterOption = (function () {
function FilterOption(iKey, iDescription, iChecked) {
this.iKey = iKey;
this.iDescription = iDescription;
this.iChecked = iChecked;
this.key = iKey;
this.description = iDescription;
this.checked = iChecked;
}
FilterOption.prototype.toString = function () {
return 'key:' + this.key + ', description:' + this.description + ', checked:' + this.checked + '\n';
};
return FilterOption;
}());
var AuditLogComponent = (function () {
function AuditLogComponent(route, router, auditLogService, messageService) {
var _this = this;
this.route = route;
this.router = router;
this.auditLogService = auditLogService;
this.messageService = messageService;
this.queryParam = new audit_log_1.AuditLog();
this.toggleName = optionalSearch;
this.currentOption = 0;
this.filterOptions = [
new FilterOption('all', 'AUDIT_LOG.ALL_OPERATIONS', true),
new FilterOption('pull', 'AUDIT_LOG.PULL', true),
new FilterOption('push', 'AUDIT_LOG.PUSH', true),
new FilterOption('create', 'AUDIT_LOG.CREATE', true),
new FilterOption('delete', 'AUDIT_LOG.DELETE', true),
new FilterOption('others', 'AUDIT_LOG.OTHERS', true)
];
this.pageOffset = 1;
this.pageSize = 2;
//Get current user from registered resolver.
this.route.data.subscribe(function (data) { return _this.currentUser = data['auditLogResolver']; });
}
AuditLogComponent.prototype.ngOnInit = function () {
this.projectId = +this.route.snapshot.parent.params['id'];
console.log('Get projectId from route params snapshot:' + this.projectId);
this.queryParam.project_id = this.projectId;
this.queryParam.page_size = this.pageSize;
};
AuditLogComponent.prototype.retrieve = function (state) {
var _this = this;
if (state) {
this.queryParam.page = state.page.to + 1;
}
this.auditLogService
.listAuditLogs(this.queryParam)
.subscribe(function (response) {
_this.totalRecordCount = response.headers.get('x-total-count');
_this.totalPage = Math.ceil(_this.totalRecordCount / _this.pageSize);
console.log('TotalRecordCount:' + _this.totalRecordCount + ', totalPage:' + _this.totalPage);
_this.auditLogs = response.json();
}, function (error) {
_this.router.navigate(['/harbor', 'projects']);
_this.messageService.announceMessage(error.status, 'Failed to list audit logs with project ID:' + _this.queryParam.project_id, shared_const_1.AlertType.DANGER);
});
};
AuditLogComponent.prototype.doSearchAuditLogs = function (searchUsername) {
this.queryParam.username = searchUsername;
this.retrieve();
};
AuditLogComponent.prototype.doSearchByTimeRange = function (strDate, target) {
var oneDayOffset = 3600 * 24;
switch (target) {
case 'begin':
this.queryParam.begin_timestamp = new Date(strDate).getTime() / 1000;
break;
case 'end':
this.queryParam.end_timestamp = new Date(strDate).getTime() / 1000 + oneDayOffset;
break;
}
console.log('Search audit log filtered by time range, begin: ' + this.queryParam.begin_timestamp + ', end:' + this.queryParam.end_timestamp);
this.retrieve();
};
AuditLogComponent.prototype.doSearchByOptions = function () {
var selectAll = true;
var operationFilter = [];
for (var i in this.filterOptions) {
var filterOption = this.filterOptions[i];
if (filterOption.checked) {
operationFilter.push(this.filterOptions[i].key);
}
else {
selectAll = false;
}
}
if (selectAll) {
operationFilter = [];
}
this.queryParam.keywords = operationFilter.join('/');
this.retrieve();
console.log('Search option filter:' + operationFilter.join('/'));
};
AuditLogComponent.prototype.toggleOptionalName = function (option) {
(option === 1) ? this.currentOption = 0 : this.currentOption = 1;
};
AuditLogComponent.prototype.toggleFilterOption = function (option) {
var selectedOption = this.filterOptions.find(function (value) { return (value.key === option); });
selectedOption.checked = !selectedOption.checked;
if (selectedOption.key === 'all') {
this.filterOptions.filter(function (value) { return value.key !== selectedOption.key; }).forEach(function (value) { return value.checked = selectedOption.checked; });
}
else {
if (!selectedOption.checked) {
this.filterOptions.find(function (value) { return value.key === 'all'; }).checked = false;
}
var selectAll_1 = true;
this.filterOptions.filter(function (value) { return value.key !== 'all'; }).forEach(function (value) {
if (!value.checked) {
selectAll_1 = false;
}
});
this.filterOptions.find(function (value) { return value.key === 'all'; }).checked = selectAll_1;
}
this.doSearchByOptions();
};
AuditLogComponent.prototype.refresh = function () {
this.retrieve();
};
AuditLogComponent = __decorate([
core_1.Component({
selector: 'audit-log',
template: __webpack_require__(837),
styles: [__webpack_require__(807)]
}),
__metadata('design:paramtypes', [(typeof (_a = typeof router_1.ActivatedRoute !== 'undefined' && router_1.ActivatedRoute) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object, (typeof (_c = typeof audit_log_service_1.AuditLogService !== 'undefined' && audit_log_service_1.AuditLogService) === 'function' && _c) || Object, (typeof (_d = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _d) || Object])
], AuditLogComponent);
return AuditLogComponent;
var _a, _b, _c, _d;
}());
exports.AuditLogComponent = AuditLogComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/audit-log.component.js.map
/***/ }),
/***/ 391:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var audit_log_service_1 = __webpack_require__(247);
var session_service_1 = __webpack_require__(14);
var message_service_1 = __webpack_require__(10);
var shared_const_1 = __webpack_require__(2);
var shared_utils_1 = __webpack_require__(33);
var RecentLogComponent = (function () {
function RecentLogComponent(session, msgService, logService) {
this.session = session;
this.msgService = msgService;
this.logService = logService;
this.sessionUser = null;
this.onGoing = false;
this.lines = 10; //Support 10, 25 and 50
this.sessionUser = this.session.getCurrentUser(); //Initialize session
}
RecentLogComponent.prototype.ngOnInit = function () {
this.retrieveLogs();
};
Object.defineProperty(RecentLogComponent.prototype, "inProgress", {
get: function () {
return this.onGoing;
},
enumerable: true,
configurable: true
});
RecentLogComponent.prototype.setLines = function (lines) {
this.lines = lines;
if (this.lines < 10) {
this.lines = 10;
}
this.retrieveLogs();
};
RecentLogComponent.prototype.doFilter = function (terms) {
var _this = this;
if (terms.trim() === "") {
this.recentLogs = this.logsCache.filter(function (log) { return log.username != ""; });
return;
}
this.recentLogs = this.logsCache.filter(function (log) { return _this.isMatched(terms, log); });
};
RecentLogComponent.prototype.refresh = function () {
this.retrieveLogs();
};
RecentLogComponent.prototype.formatDateTime = function (dateTime) {
var dt = new Date(dateTime);
return dt.toLocaleString();
};
RecentLogComponent.prototype.retrieveLogs = function () {
var _this = this;
if (this.lines < 10) {
this.lines = 10;
}
this.onGoing = true;
this.logService.getRecentLogs(this.lines)
.subscribe(function (response) {
_this.onGoing = false;
_this.logsCache = response; //Keep the data
_this.recentLogs = _this.logsCache.filter(function (log) { return log.username != ""; }); //To display
}, function (error) {
_this.onGoing = false;
if (!shared_utils_1.accessErrorHandler(error, _this.msgService)) {
_this.msgService.announceMessage(error.status, shared_utils_1.errorHandler(error), shared_const_1.AlertType.DANGER);
}
});
};
RecentLogComponent.prototype.isMatched = function (terms, log) {
var reg = new RegExp('.*' + terms + '.*', 'i');
return reg.test(log.username) ||
reg.test(log.repo_name) ||
reg.test(log.operation);
};
RecentLogComponent = __decorate([
core_1.Component({
selector: 'recent-log',
template: __webpack_require__(838),
styles: [__webpack_require__(808)]
}),
__metadata('design:paramtypes', [(typeof (_a = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _a) || Object, (typeof (_b = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _b) || Object, (typeof (_c = typeof audit_log_service_1.AuditLogService !== 'undefined' && audit_log_service_1.AuditLogService) === 'function' && _c) || Object])
], RecentLogComponent);
return RecentLogComponent;
var _a, _b, _c;
}());
exports.RecentLogComponent = RecentLogComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/recent-log.component.js.map
/***/ }),
/***/ 392:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var http_1 = __webpack_require__(20);
var project_1 = __webpack_require__(615);
var project_service_1 = __webpack_require__(174);
var message_service_1 = __webpack_require__(10);
var shared_const_1 = __webpack_require__(2);
var core_2 = __webpack_require__(34);
var CreateProjectComponent = (function () {
function CreateProjectComponent(projectService, messageService, translateService) {
this.projectService = projectService;
this.messageService = messageService;
this.translateService = translateService;
this.project = new project_1.Project();
this.create = new core_1.EventEmitter();
}
CreateProjectComponent.prototype.onSubmit = function () {
var _this = this;
this.projectService
.createProject(this.project.name, this.project.public ? 1 : 0)
.subscribe(function (status) {
_this.create.emit(true);
_this.createProjectOpened = false;
}, function (error) {
_this.errorMessageOpened = true;
if (error instanceof http_1.Response) {
switch (error.status) {
case 409:
_this.translateService.get('PROJECT.NAME_ALREADY_EXISTS').subscribe(function (res) { return _this.errorMessage = res; });
break;
case 400:
_this.translateService.get('PROJECT.NAME_IS_ILLEGAL').subscribe(function (res) { return _this.errorMessage = res; });
break;
default:
_this.translateService.get('PROJECT.UNKNOWN_ERROR').subscribe(function (res) {
_this.errorMessage = res;
_this.messageService.announceMessage(error.status, _this.errorMessage, shared_const_1.AlertType.DANGER);
});
}
}
});
};
CreateProjectComponent.prototype.newProject = function () {
this.project = new project_1.Project();
this.createProjectOpened = true;
this.errorMessageOpened = false;
this.errorMessage = '';
};
CreateProjectComponent.prototype.onErrorMessageClose = function () {
this.errorMessageOpened = false;
this.errorMessage = '';
};
__decorate([
core_1.Output(),
__metadata('design:type', Object)
], CreateProjectComponent.prototype, "create", void 0);
CreateProjectComponent = __decorate([
core_1.Component({
selector: 'create-project',
template: __webpack_require__(839),
styles: [__webpack_require__(809)]
}),
__metadata('design:paramtypes', [(typeof (_a = typeof project_service_1.ProjectService !== 'undefined' && project_service_1.ProjectService) === 'function' && _a) || Object, (typeof (_b = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _b) || Object, (typeof (_c = typeof core_2.TranslateService !== 'undefined' && core_2.TranslateService) === 'function' && _c) || Object])
], CreateProjectComponent);
return CreateProjectComponent;
var _a, _b, _c;
}());
exports.CreateProjectComponent = CreateProjectComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/create-project.component.js.map
/***/ }),
/***/ 393:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var session_service_1 = __webpack_require__(14);
var search_trigger_service_1 = __webpack_require__(95);
var shared_const_1 = __webpack_require__(2);
var ListProjectComponent = (function () {
function ListProjectComponent(session, router, searchTrigger) {
this.session = session;
this.router = router;
this.searchTrigger = searchTrigger;
this.pageOffset = 1;
this.paginate = new core_1.EventEmitter();
this.toggle = new core_1.EventEmitter();
this.delete = new core_1.EventEmitter();
this.mode = shared_const_1.ListMode.FULL;
}
ListProjectComponent.prototype.ngOnInit = function () {
};
Object.defineProperty(ListProjectComponent.prototype, "listFullMode", {
get: function () {
return this.mode === shared_const_1.ListMode.FULL;
},
enumerable: true,
configurable: true
});
ListProjectComponent.prototype.goToLink = function (proId) {
this.searchTrigger.closeSearch(false);
var linkUrl = ['harbor', 'projects', proId, 'repository'];
if (!this.session.getCurrentUser()) {
var navigatorExtra = {
queryParams: { "redirect_url": linkUrl.join("/") }
};
this.router.navigate([shared_const_1.signInRoute], navigatorExtra);
}
else {
this.router.navigate(linkUrl);
}
};
ListProjectComponent.prototype.refresh = function (state) {
this.paginate.emit(state);
};
ListProjectComponent.prototype.toggleProject = function (p) {
this.toggle.emit(p);
};
ListProjectComponent.prototype.deleteProject = function (p) {
this.delete.emit(p);
};
__decorate([
core_1.Input(),
__metadata('design:type', Array)
], ListProjectComponent.prototype, "projects", void 0);
__decorate([
core_1.Input(),
__metadata('design:type', Number)
], ListProjectComponent.prototype, "totalPage", void 0);
__decorate([
core_1.Input(),
__metadata('design:type', Number)
], ListProjectComponent.prototype, "totalRecordCount", void 0);
__decorate([
core_1.Output(),
__metadata('design:type', Object)
], ListProjectComponent.prototype, "paginate", void 0);
__decorate([
core_1.Output(),
__metadata('design:type', Object)
], ListProjectComponent.prototype, "toggle", void 0);
__decorate([
core_1.Output(),
__metadata('design:type', Object)
], ListProjectComponent.prototype, "delete", void 0);
__decorate([
core_1.Input(),
__metadata('design:type', String)
], ListProjectComponent.prototype, "mode", void 0);
ListProjectComponent = __decorate([
core_1.Component({
selector: 'list-project',
template: __webpack_require__(840)
}),
__metadata('design:paramtypes', [(typeof (_a = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object, (typeof (_c = typeof search_trigger_service_1.SearchTriggerService !== 'undefined' && search_trigger_service_1.SearchTriggerService) === 'function' && _c) || Object])
], ListProjectComponent);
return ListProjectComponent;
var _a, _b, _c;
}());
exports.ListProjectComponent = ListProjectComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/list-project.component.js.map
/***/ }),
/***/ 394:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var http_1 = __webpack_require__(20);
var member_service_1 = __webpack_require__(248);
var message_service_1 = __webpack_require__(10);
var shared_const_1 = __webpack_require__(2);
var core_2 = __webpack_require__(34);
var member_1 = __webpack_require__(613);
var AddMemberComponent = (function () {
function AddMemberComponent(memberService, messageService, translateService) {
this.memberService = memberService;
this.messageService = messageService;
this.translateService = translateService;
this.member = new member_1.Member();
this.added = new core_1.EventEmitter();
}
AddMemberComponent.prototype.onSubmit = function () {
var _this = this;
console.log('Adding member:' + JSON.stringify(this.member));
this.memberService
.addMember(this.projectId, this.member.username, this.member.role_id)
.subscribe(function (response) {
console.log('Added member successfully.');
_this.added.emit(true);
_this.addMemberOpened = false;
}, function (error) {
_this.errorMessageOpened = true;
if (error instanceof http_1.Response) {
switch (error.status) {
case 404:
_this.translateService.get('MEMBER.USERNAME_DOES_NOT_EXISTS').subscribe(function (res) { return _this.errorMessage = res; });
break;
case 409:
_this.translateService.get('MEMBER.USERNAME_ALREADY_EXISTS').subscribe(function (res) { return _this.errorMessage = res; });
break;
default:
_this.translateService.get('MEMBER.UNKNOWN_ERROR').subscribe(function (res) {
_this.errorMessage = res;
_this.messageService.announceMessage(error.status, _this.errorMessage, shared_const_1.AlertType.DANGER);
});
}
}
console.log('Failed to add member of project:' + _this.projectId, ' with error:' + error);
});
};
AddMemberComponent.prototype.openAddMemberModal = function () {
this.errorMessageOpened = false;
this.errorMessage = '';
this.member = new member_1.Member();
this.addMemberOpened = true;
};
AddMemberComponent.prototype.onErrorMessageClose = function () {
this.errorMessageOpened = false;
this.errorMessage = '';
};
__decorate([
core_1.Input(),
__metadata('design:type', Number)
], AddMemberComponent.prototype, "projectId", void 0);
__decorate([
core_1.Output(),
__metadata('design:type', Object)
], AddMemberComponent.prototype, "added", void 0);
AddMemberComponent = __decorate([
core_1.Component({
selector: 'add-member',
template: __webpack_require__(841)
}),
__metadata('design:paramtypes', [(typeof (_a = typeof member_service_1.MemberService !== 'undefined' && member_service_1.MemberService) === 'function' && _a) || Object, (typeof (_b = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _b) || Object, (typeof (_c = typeof core_2.TranslateService !== 'undefined' && core_2.TranslateService) === 'function' && _c) || Object])
], AddMemberComponent);
return AddMemberComponent;
var _a, _b, _c;
}());
exports.AddMemberComponent = AddMemberComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/add-member.component.js.map
/***/ }),
/***/ 395:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var member_service_1 = __webpack_require__(248);
var add_member_component_1 = __webpack_require__(394);
var message_service_1 = __webpack_require__(10);
var shared_const_1 = __webpack_require__(2);
var deletion_dialog_service_1 = __webpack_require__(48);
var deletion_message_1 = __webpack_require__(68);
var session_service_1 = __webpack_require__(14);
__webpack_require__(874);
__webpack_require__(133);
__webpack_require__(85);
__webpack_require__(132);
exports.roleInfo = { 1: 'MEMBER.PROJECT_ADMIN', 2: 'MEMBER.DEVELOPER', 3: 'MEMBER.GUEST' };
var MemberComponent = (function () {
function MemberComponent(route, router, memberService, messageService, deletionDialogService, session) {
var _this = this;
this.route = route;
this.router = router;
this.memberService = memberService;
this.messageService = messageService;
this.deletionDialogService = deletionDialogService;
this.roleInfo = exports.roleInfo;
//Get current user from registered resolver.
this.currentUser = session.getCurrentUser();
deletionDialogService.deletionConfirm$.subscribe(function (message) {
if (message && message.targetId === shared_const_1.DeletionTargets.PROJECT_MEMBER) {
_this.memberService
.deleteMember(_this.projectId, message.data)
.subscribe(function (response) {
console.log('Successful change role with user ' + message.data);
_this.retrieve(_this.projectId, '');
}, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to change role with user ' + message.data, shared_const_1.AlertType.DANGER); });
}
});
}
MemberComponent.prototype.retrieve = function (projectId, username) {
var _this = this;
this.memberService
.listMembers(projectId, username)
.subscribe(function (response) { return _this.members = response; }, function (error) {
_this.router.navigate(['/harbor', 'projects']);
_this.messageService.announceMessage(error.status, 'Failed to get project member with project ID:' + projectId, shared_const_1.AlertType.DANGER);
});
};
MemberComponent.prototype.ngOnInit = function () {
//Get projectId from route params snapshot.
this.projectId = +this.route.snapshot.parent.params['id'];
console.log('Get projectId from route params snapshot:' + this.projectId);
this.retrieve(this.projectId, '');
};
MemberComponent.prototype.openAddMemberModal = function () {
this.addMemberComponent.openAddMemberModal();
};
MemberComponent.prototype.addedMember = function () {
this.retrieve(this.projectId, '');
};
MemberComponent.prototype.changeRole = function (userId, roleId) {
var _this = this;
this.memberService
.changeMemberRole(this.projectId, userId, roleId)
.subscribe(function (response) {
console.log('Successful change role with user ' + userId + ' to roleId ' + roleId);
_this.retrieve(_this.projectId, '');
}, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to change role with user ' + userId + ' to roleId ' + roleId, shared_const_1.AlertType.DANGER); });
};
MemberComponent.prototype.deleteMember = function (userId) {
var deletionMessage = new deletion_message_1.DeletionMessage('MEMBER.DELETION_TITLE', 'MEMBER.DELETION_SUMMARY', userId + "", userId, shared_const_1.DeletionTargets.PROJECT_MEMBER);
this.deletionDialogService.openComfirmDialog(deletionMessage);
};
MemberComponent.prototype.doSearch = function (searchMember) {
this.retrieve(this.projectId, searchMember);
};
MemberComponent.prototype.refresh = function () {
this.retrieve(this.projectId, '');
};
__decorate([
core_1.ViewChild(add_member_component_1.AddMemberComponent),
__metadata('design:type', (typeof (_a = typeof add_member_component_1.AddMemberComponent !== 'undefined' && add_member_component_1.AddMemberComponent) === 'function' && _a) || Object)
], MemberComponent.prototype, "addMemberComponent", void 0);
MemberComponent = __decorate([
core_1.Component({
template: __webpack_require__(842)
}),
__metadata('design:paramtypes', [(typeof (_b = typeof router_1.ActivatedRoute !== 'undefined' && router_1.ActivatedRoute) === 'function' && _b) || Object, (typeof (_c = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _c) || Object, (typeof (_d = typeof member_service_1.MemberService !== 'undefined' && member_service_1.MemberService) === 'function' && _d) || Object, (typeof (_e = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _e) || Object, (typeof (_f = typeof deletion_dialog_service_1.DeletionDialogService !== 'undefined' && deletion_dialog_service_1.DeletionDialogService) === 'function' && _f) || Object, (typeof (_g = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _g) || Object])
], MemberComponent);
return MemberComponent;
var _a, _b, _c, _d, _e, _f, _g;
}());
exports.MemberComponent = MemberComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/member.component.js.map
/***/ }),
/***/ 396:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var session_service_1 = __webpack_require__(14);
var ProjectDetailComponent = (function () {
function ProjectDetailComponent(route, router, sessionService) {
var _this = this;
this.route = route;
this.router = router;
this.sessionService = sessionService;
this.route.data.subscribe(function (data) { return _this.currentProject = data['projectResolver']; });
}
Object.defineProperty(ProjectDetailComponent.prototype, "isSystemAdmin", {
get: function () {
var account = this.sessionService.getCurrentUser();
return account != null && account.has_admin_role > 0;
},
enumerable: true,
configurable: true
});
ProjectDetailComponent = __decorate([
core_1.Component({
selector: 'project-detail',
template: __webpack_require__(843),
styles: [__webpack_require__(810)]
}),
__metadata('design:paramtypes', [(typeof (_a = typeof router_1.ActivatedRoute !== 'undefined' && router_1.ActivatedRoute) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object, (typeof (_c = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _c) || Object])
], ProjectDetailComponent);
return ProjectDetailComponent;
var _a, _b, _c;
}());
exports.ProjectDetailComponent = ProjectDetailComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/project-detail.component.js.map
/***/ }),
/***/ 397:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var project_service_1 = __webpack_require__(174);
var ProjectRoutingResolver = (function () {
function ProjectRoutingResolver(projectService, router) {
this.projectService = projectService;
this.router = router;
}
ProjectRoutingResolver.prototype.resolve = function (route, state) {
var _this = this;
var projectId = route.params['id'];
return this.projectService
.getProject(projectId)
.then(function (project) {
if (project) {
return project;
}
else {
_this.router.navigate(['/harbor', 'projects']);
return null;
}
});
};
ProjectRoutingResolver = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [(typeof (_a = typeof project_service_1.ProjectService !== 'undefined' && project_service_1.ProjectService) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object])
], ProjectRoutingResolver);
return ProjectRoutingResolver;
var _a, _b;
}());
exports.ProjectRoutingResolver = ProjectRoutingResolver;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/project-routing-resolver.service.js.map
/***/ }),
/***/ 398:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var project_service_1 = __webpack_require__(174);
var create_project_component_1 = __webpack_require__(392);
var list_project_component_1 = __webpack_require__(393);
var message_service_1 = __webpack_require__(10);
var shared_const_1 = __webpack_require__(2);
var deletion_dialog_service_1 = __webpack_require__(48);
var deletion_message_1 = __webpack_require__(68);
var shared_const_2 = __webpack_require__(2);
var types = { 0: 'PROJECT.MY_PROJECTS', 1: 'PROJECT.PUBLIC_PROJECTS' };
var ProjectComponent = (function () {
function ProjectComponent(projectService, messageService, deletionDialogService) {
var _this = this;
this.projectService = projectService;
this.messageService = messageService;
this.deletionDialogService = deletionDialogService;
this.selected = [];
this.projectTypes = types;
this.currentFilteredType = 0;
this.page = 1;
this.pageSize = 3;
this.subscription = deletionDialogService.deletionConfirm$.subscribe(function (message) {
if (message && message.targetId === shared_const_2.DeletionTargets.PROJECT) {
var projectId_1 = message.data;
_this.projectService
.deleteProject(projectId_1)
.subscribe(function (response) {
console.log('Successful delete project with ID:' + projectId_1);
_this.retrieve();
}, function (error) { return _this.messageService.announceMessage(error.status, error, shared_const_1.AlertType.WARNING); });
}
});
}
ProjectComponent.prototype.ngOnInit = function () {
this.projectName = '';
this.isPublic = 0;
};
ProjectComponent.prototype.retrieve = function (state) {
var _this = this;
if (state) {
this.page = state.page.to + 1;
}
this.projectService
.listProjects(this.projectName, this.isPublic, this.page, this.pageSize)
.subscribe(function (response) {
_this.totalRecordCount = response.headers.get('x-total-count');
_this.totalPage = Math.ceil(_this.totalRecordCount / _this.pageSize);
console.log('TotalRecordCount:' + _this.totalRecordCount + ', totalPage:' + _this.totalPage);
_this.changedProjects = response.json();
}, function (error) { return _this.messageService.announceAppLevelMessage(error.status, error, shared_const_1.AlertType.WARNING); });
};
ProjectComponent.prototype.openModal = function () {
this.creationProject.newProject();
};
ProjectComponent.prototype.createProject = function (created) {
if (created) {
this.retrieve();
}
};
ProjectComponent.prototype.doSearchProjects = function (projectName) {
console.log('Search for project name:' + projectName);
this.projectName = projectName;
this.retrieve();
};
ProjectComponent.prototype.doFilterProjects = function (filteredType) {
console.log('Filter projects with type:' + types[filteredType]);
this.isPublic = filteredType;
this.retrieve();
};
ProjectComponent.prototype.toggleProject = function (p) {
var _this = this;
if (p) {
p.public === 0 ? p.public = 1 : p.public = 0;
this.projectService
.toggleProjectPublic(p.project_id, p.public)
.subscribe(function (response) { return console.log('Successful toggled project_id:' + p.project_id); }, function (error) { return _this.messageService.announceMessage(error.status, error, shared_const_1.AlertType.WARNING); });
}
};
ProjectComponent.prototype.deleteProject = function (p) {
var deletionMessage = new deletion_message_1.DeletionMessage('PROJECT.DELETION_TITLE', 'PROJECT.DELETION_SUMMARY', p.name, p.project_id, shared_const_2.DeletionTargets.PROJECT);
this.deletionDialogService.openComfirmDialog(deletionMessage);
};
ProjectComponent.prototype.refresh = function () {
this.retrieve();
};
__decorate([
core_1.ViewChild(create_project_component_1.CreateProjectComponent),
__metadata('design:type', (typeof (_a = typeof create_project_component_1.CreateProjectComponent !== 'undefined' && create_project_component_1.CreateProjectComponent) === 'function' && _a) || Object)
], ProjectComponent.prototype, "creationProject", void 0);
__decorate([
core_1.ViewChild(list_project_component_1.ListProjectComponent),
__metadata('design:type', (typeof (_b = typeof list_project_component_1.ListProjectComponent !== 'undefined' && list_project_component_1.ListProjectComponent) === 'function' && _b) || Object)
], ProjectComponent.prototype, "listProject", void 0);
ProjectComponent = __decorate([
core_1.Component({
selector: 'project',
template: __webpack_require__(844),
styles: [__webpack_require__(811)]
}),
__metadata('design:paramtypes', [(typeof (_c = typeof project_service_1.ProjectService !== 'undefined' && project_service_1.ProjectService) === 'function' && _c) || Object, (typeof (_d = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _d) || Object, (typeof (_e = typeof deletion_dialog_service_1.DeletionDialogService !== 'undefined' && deletion_dialog_service_1.DeletionDialogService) === 'function' && _e) || Object])
], ProjectComponent);
return ProjectComponent;
var _a, _b, _c, _d, _e;
}());
exports.ProjectComponent = ProjectComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/project.component.js.map
/***/ }),
/***/ 399:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var replication_service_1 = __webpack_require__(79);
var message_service_1 = __webpack_require__(10);
var shared_const_1 = __webpack_require__(2);
var target_1 = __webpack_require__(249);
var core_2 = __webpack_require__(34);
var CreateEditDestinationComponent = (function () {
function CreateEditDestinationComponent(replicationService, messageService, translateService) {
this.replicationService = replicationService;
this.messageService = messageService;
this.translateService = translateService;
this.target = new target_1.Target();
this.reload = new core_1.EventEmitter();
}
CreateEditDestinationComponent.prototype.openCreateEditTarget = function (targetId) {
var _this = this;
this.target = new target_1.Target();
this.createEditDestinationOpened = true;
this.errorMessageOpened = false;
this.errorMessage = '';
this.pingTestMessage = '';
this.pingStatus = true;
this.testOngoing = false;
if (targetId) {
this.actionType = shared_const_1.ActionType.EDIT;
this.translateService.get('DESTINATION.TITLE_EDIT').subscribe(function (res) { return _this.modalTitle = res; });
this.replicationService
.getTarget(targetId)
.subscribe(function (target) { return _this.target = target; }, function (error) { return _this.messageService
.announceMessage(error.status, 'DESTINATION.FAILED_TO_GET_TARGET', shared_const_1.AlertType.DANGER); });
}
else {
this.actionType = shared_const_1.ActionType.ADD_NEW;
this.translateService.get('DESTINATION.TITLE_ADD').subscribe(function (res) { return _this.modalTitle = res; });
}
};
CreateEditDestinationComponent.prototype.testConnection = function () {
var _this = this;
this.translateService.get('DESTINATION.TESTING_CONNECTION').subscribe(function (res) { return _this.pingTestMessage = res; });
this.pingStatus = true;
this.testOngoing = !this.testOngoing;
this.replicationService
.pingTarget(this.target)
.subscribe(function (response) {
_this.pingStatus = true;
_this.translateService.get('DESTINATION.TEST_CONNECTION_SUCCESS').subscribe(function (res) { return _this.pingTestMessage = res; });
_this.testOngoing = !_this.testOngoing;
}, function (error) {
_this.pingStatus = false;
_this.translateService.get('DESTINATION.TEST_CONNECTION_FAILURE').subscribe(function (res) { return _this.pingTestMessage = res; });
_this.testOngoing = !_this.testOngoing;
});
};
CreateEditDestinationComponent.prototype.onSubmit = function () {
var _this = this;
this.errorMessage = '';
this.errorMessageOpened = false;
switch (this.actionType) {
case shared_const_1.ActionType.ADD_NEW:
this.replicationService
.createTarget(this.target)
.subscribe(function (response) {
console.log('Successful added target.');
_this.createEditDestinationOpened = false;
_this.reload.emit(true);
}, function (error) {
_this.errorMessageOpened = true;
var errorMessageKey = '';
switch (error.status) {
case 409:
errorMessageKey = 'DESTINATION.CONFLICT_NAME';
break;
case 400:
errorMessageKey = 'DESTINATION.INVALID_NAME';
break;
default:
errorMessageKey = 'UNKNOWN_ERROR';
}
_this.translateService
.get(errorMessageKey)
.subscribe(function (res) {
_this.errorMessage = res;
_this.messageService.announceMessage(error.status, errorMessageKey, shared_const_1.AlertType.DANGER);
});
});
break;
case shared_const_1.ActionType.EDIT:
this.replicationService
.updateTarget(this.target)
.subscribe(function (response) {
console.log('Successful updated target.');
_this.createEditDestinationOpened = false;
_this.reload.emit(true);
}, function (error) {
_this.errorMessageOpened = true;
_this.errorMessage = 'Failed to update target:' + error;
var errorMessageKey = '';
switch (error.status) {
case 409:
errorMessageKey = 'DESTINATION.CONFLICT_NAME';
break;
case 400:
errorMessageKey = 'DESTINATION.INVALID_NAME';
break;
default:
errorMessageKey = 'UNKNOWN_ERROR';
}
_this.translateService
.get(errorMessageKey)
.subscribe(function (res) {
_this.errorMessage = res;
_this.messageService.announceMessage(error.status, errorMessageKey, shared_const_1.AlertType.DANGER);
});
});
break;
}
};
CreateEditDestinationComponent.prototype.onErrorMessageClose = function () {
this.errorMessageOpened = false;
this.errorMessage = '';
};
__decorate([
core_1.Output(),
__metadata('design:type', Object)
], CreateEditDestinationComponent.prototype, "reload", void 0);
CreateEditDestinationComponent = __decorate([
core_1.Component({
selector: 'create-edit-destination',
template: __webpack_require__(845)
}),
__metadata('design:paramtypes', [(typeof (_a = typeof replication_service_1.ReplicationService !== 'undefined' && replication_service_1.ReplicationService) === 'function' && _a) || Object, (typeof (_b = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _b) || Object, (typeof (_c = typeof core_2.TranslateService !== 'undefined' && core_2.TranslateService) === 'function' && _c) || Object])
], CreateEditDestinationComponent);
return CreateEditDestinationComponent;
var _a, _b, _c;
}());
exports.CreateEditDestinationComponent = CreateEditDestinationComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/create-edit-destination.component.js.map
/***/ }),
/***/ 400:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var target_1 = __webpack_require__(249);
var replication_service_1 = __webpack_require__(79);
var message_service_1 = __webpack_require__(10);
var shared_const_1 = __webpack_require__(2);
var deletion_dialog_service_1 = __webpack_require__(48);
var deletion_message_1 = __webpack_require__(68);
var shared_const_2 = __webpack_require__(2);
var create_edit_destination_component_1 = __webpack_require__(399);
var DestinationComponent = (function () {
function DestinationComponent(replicationService, messageService, deletionDialogService) {
var _this = this;
this.replicationService = replicationService;
this.messageService = messageService;
this.deletionDialogService = deletionDialogService;
this.subscription = this.deletionDialogService.deletionConfirm$.subscribe(function (message) {
var targetId = message.data;
_this.replicationService
.deleteTarget(targetId)
.subscribe(function (response) {
console.log('Successful deleted target with ID:' + targetId);
_this.reload();
}, function (error) { return _this.messageService
.announceMessage(error.status, 'Failed to delete target with ID:' + targetId + ', error:' + error, shared_const_1.AlertType.DANGER); });
});
}
DestinationComponent.prototype.ngOnInit = function () {
this.targetName = '';
this.retrieve('');
};
DestinationComponent.prototype.ngOnDestroy = function () {
if (this.subscription) {
this.subscription.unsubscribe();
}
};
DestinationComponent.prototype.retrieve = function (targetName) {
var _this = this;
this.replicationService
.listTargets(targetName)
.subscribe(function (targets) { return _this.targets = targets; }, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to get targets:' + error, shared_const_1.AlertType.DANGER); });
};
DestinationComponent.prototype.doSearchTargets = function (targetName) {
this.targetName = targetName;
this.retrieve(targetName);
};
DestinationComponent.prototype.refreshTargets = function () {
this.retrieve('');
};
DestinationComponent.prototype.reload = function () {
this.retrieve(this.targetName);
};
DestinationComponent.prototype.openModal = function () {
this.createEditDestinationComponent.openCreateEditTarget();
this.target = new target_1.Target();
};
DestinationComponent.prototype.editTarget = function (target) {
if (target) {
this.createEditDestinationComponent.openCreateEditTarget(target.id);
}
};
DestinationComponent.prototype.deleteTarget = function (target) {
if (target) {
var targetId = target.id;
var deletionMessage = new deletion_message_1.DeletionMessage('REPLICATION.DELETION_TITLE_TARGET', 'REPLICATION.DELETION_SUMMARY_TARGET', target.name, target.id, shared_const_2.DeletionTargets.TARGET);
this.deletionDialogService.openComfirmDialog(deletionMessage);
}
};
__decorate([
core_1.ViewChild(create_edit_destination_component_1.CreateEditDestinationComponent),
__metadata('design:type', (typeof (_a = typeof create_edit_destination_component_1.CreateEditDestinationComponent !== 'undefined' && create_edit_destination_component_1.CreateEditDestinationComponent) === 'function' && _a) || Object)
], DestinationComponent.prototype, "createEditDestinationComponent", void 0);
DestinationComponent = __decorate([
core_1.Component({
selector: 'destination',
template: __webpack_require__(846)
}),
__metadata('design:paramtypes', [(typeof (_b = typeof replication_service_1.ReplicationService !== 'undefined' && replication_service_1.ReplicationService) === 'function' && _b) || Object, (typeof (_c = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _c) || Object, (typeof (_d = typeof deletion_dialog_service_1.DeletionDialogService !== 'undefined' && deletion_dialog_service_1.DeletionDialogService) === 'function' && _d) || Object])
], DestinationComponent);
return DestinationComponent;
var _a, _b, _c, _d;
}());
exports.DestinationComponent = DestinationComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/destination.component.js.map
/***/ }),
/***/ 401:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var ReplicationManagementComponent = (function () {
function ReplicationManagementComponent() {
}
ReplicationManagementComponent = __decorate([
core_1.Component({
selector: 'replication-management',
template: __webpack_require__(848),
styles: [__webpack_require__(812)]
}),
__metadata('design:paramtypes', [])
], ReplicationManagementComponent);
return ReplicationManagementComponent;
}());
exports.ReplicationManagementComponent = ReplicationManagementComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/replication-management.component.js.map
/***/ }),
/***/ 402:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var create_edit_policy_component_1 = __webpack_require__(252);
var message_service_1 = __webpack_require__(10);
var shared_const_1 = __webpack_require__(2);
var session_service_1 = __webpack_require__(14);
var replication_service_1 = __webpack_require__(79);
var ruleStatus = [
{ 'key': '', 'description': 'REPLICATION.ALL_STATUS' },
{ 'key': '1', 'description': 'REPLICATION.ENABLED' },
{ 'key': '0', 'description': 'REPLICATION.DISABLED' }
];
var jobStatus = [
{ 'key': '', 'description': 'REPLICATION.ALL' },
{ 'key': 'pending', 'description': 'REPLICATION.PENDING' },
{ 'key': 'running', 'description': 'REPLICATION.RUNNING' },
{ 'key': 'error', 'description': 'REPLICATION.ERROR' },
{ 'key': 'retrying', 'description': 'REPLICATION.RETRYING' },
{ 'key': 'stopped', 'description': 'REPLICATION.STOPPED' },
{ 'key': 'finished', 'description': 'REPLICATION.FINISHED' },
{ 'key': 'canceled', 'description': 'REPLICATION.CANCELED' }
];
var optionalSearch = { 0: 'REPLICATION.ADVANCED', 1: 'REPLICATION.SIMPLE' };
var SearchOption = (function () {
function SearchOption() {
this.policyName = '';
this.repoName = '';
this.status = '';
this.startTime = '';
this.endTime = '';
this.page = 1;
this.pageSize = 5;
}
return SearchOption;
}());
var ReplicationComponent = (function () {
function ReplicationComponent(sessionService, messageService, replicationService, route) {
this.sessionService = sessionService;
this.messageService = messageService;
this.replicationService = replicationService;
this.route = route;
this.ruleStatus = ruleStatus;
this.jobStatus = jobStatus;
this.toggleJobSearchOption = optionalSearch;
this.currentUser = this.sessionService.getCurrentUser();
}
ReplicationComponent.prototype.ngOnInit = function () {
this.projectId = +this.route.snapshot.parent.params['id'];
console.log('Get projectId from route params snapshot:' + this.projectId);
this.search = new SearchOption();
this.currentRuleStatus = this.ruleStatus[0];
this.currentJobStatus = this.jobStatus[0];
this.currentJobSearchOption = 0;
this.retrievePolicies();
};
ReplicationComponent.prototype.retrievePolicies = function () {
var _this = this;
this.replicationService
.listPolicies(this.search.policyName, this.projectId)
.subscribe(function (response) {
_this.changedPolicies = response;
if (_this.changedPolicies && _this.changedPolicies.length > 0) {
_this.initSelectedId = _this.changedPolicies[0].id;
}
_this.policies = _this.changedPolicies;
if (_this.changedPolicies && _this.changedPolicies.length > 0) {
_this.search.policyId = _this.changedPolicies[0].id;
_this.fetchPolicyJobs();
}
else {
_this.changedJobs = [];
}
}, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to get policies with project ID:' + _this.projectId, shared_const_1.AlertType.DANGER); });
};
ReplicationComponent.prototype.openModal = function () {
console.log('Open modal to create policy.');
this.createEditPolicyComponent.openCreateEditPolicy();
};
ReplicationComponent.prototype.openEditPolicy = function (policyId) {
console.log('Open modal to edit policy ID:' + policyId);
this.createEditPolicyComponent.openCreateEditPolicy(policyId);
};
ReplicationComponent.prototype.fetchPolicyJobs = function (state) {
var _this = this;
if (state) {
this.search.page = state.page.to + 1;
}
console.log('Received policy ID ' + this.search.policyId + ' by clicked row.');
this.replicationService
.listJobs(this.search.policyId, this.search.status, this.search.repoName, this.search.startTime, this.search.endTime, this.search.page, this.search.pageSize)
.subscribe(function (response) {
_this.jobsTotalRecordCount = response.headers.get('x-total-count');
_this.jobsTotalPage = Math.ceil(_this.jobsTotalRecordCount / _this.search.pageSize);
_this.changedJobs = response.json();
_this.jobs = _this.changedJobs;
}, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to fetch jobs with policy ID:' + _this.search.policyId, shared_const_1.AlertType.DANGER); });
};
ReplicationComponent.prototype.selectOne = function (policy) {
if (policy) {
this.search.policyId = policy.id;
this.fetchPolicyJobs();
}
};
ReplicationComponent.prototype.doSearchPolicies = function (policyName) {
this.search.policyName = policyName;
this.retrievePolicies();
};
ReplicationComponent.prototype.doFilterPolicyStatus = function (status) {
var _this = this;
console.log('Do filter policies with status:' + status);
this.currentRuleStatus = this.ruleStatus.find(function (r) { return r.key === status; });
if (status.trim() === '') {
this.changedPolicies = this.policies;
}
else {
this.changedPolicies = this.policies.filter(function (policy) { return policy.enabled === +_this.currentRuleStatus.key; });
}
};
ReplicationComponent.prototype.doFilterJobStatus = function (status) {
console.log('Do filter jobs with status:' + status);
this.currentJobStatus = this.jobStatus.find(function (r) { return r.key === status; });
if (status.trim() === '') {
this.changedJobs = this.jobs;
}
else {
this.changedJobs = this.jobs.filter(function (job) { return job.status === status; });
}
};
ReplicationComponent.prototype.doSearchJobs = function (repoName) {
this.search.repoName = repoName;
this.fetchPolicyJobs();
};
ReplicationComponent.prototype.reloadPolicies = function (isReady) {
if (isReady) {
this.retrievePolicies();
}
};
ReplicationComponent.prototype.refreshPolicies = function () {
this.retrievePolicies();
};
ReplicationComponent.prototype.refreshJobs = function () {
this.fetchPolicyJobs();
};
ReplicationComponent.prototype.toggleSearchJobOptionalName = function (option) {
(option === 1) ? this.currentJobSearchOption = 0 : this.currentJobSearchOption = 1;
};
ReplicationComponent.prototype.doJobSearchByTimeRange = function (strDate, target) {
if (!strDate || strDate.trim() === '') {
strDate = 0 + '';
}
var oneDayOffset = 3600 * 24;
switch (target) {
case 'begin':
this.search.startTime = (new Date(strDate).getTime() / 1000) + '';
break;
case 'end':
this.search.endTime = (new Date(strDate).getTime() / 1000 + oneDayOffset) + '';
break;
}
console.log('Search jobs filtered by time range, begin: ' + this.search.startTime + ', end:' + this.search.endTime);
this.fetchPolicyJobs();
};
__decorate([
core_1.ViewChild(create_edit_policy_component_1.CreateEditPolicyComponent),
__metadata('design:type', (typeof (_a = typeof create_edit_policy_component_1.CreateEditPolicyComponent !== 'undefined' && create_edit_policy_component_1.CreateEditPolicyComponent) === 'function' && _a) || Object)
], ReplicationComponent.prototype, "createEditPolicyComponent", void 0);
ReplicationComponent = __decorate([
core_1.Component({
selector: 'replicaton',
template: __webpack_require__(849)
}),
__metadata('design:paramtypes', [(typeof (_b = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _b) || Object, (typeof (_c = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _c) || Object, (typeof (_d = typeof replication_service_1.ReplicationService !== 'undefined' && replication_service_1.ReplicationService) === 'function' && _d) || Object, (typeof (_e = typeof router_1.ActivatedRoute !== 'undefined' && router_1.ActivatedRoute) === 'function' && _e) || Object])
], ReplicationComponent);
return ReplicationComponent;
var _a, _b, _c, _d, _e;
}());
exports.ReplicationComponent = ReplicationComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/replication.component.js.map
/***/ }),
/***/ 403:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var replication_service_1 = __webpack_require__(79);
var create_edit_policy_component_1 = __webpack_require__(252);
var message_service_1 = __webpack_require__(10);
var shared_const_1 = __webpack_require__(2);
var TotalReplicationComponent = (function () {
function TotalReplicationComponent(replicationService, messageService) {
this.replicationService = replicationService;
this.messageService = messageService;
this.policyName = '';
}
TotalReplicationComponent.prototype.ngOnInit = function () {
this.retrievePolicies();
};
TotalReplicationComponent.prototype.retrievePolicies = function () {
var _this = this;
this.replicationService
.listPolicies(this.policyName)
.subscribe(function (response) {
_this.changedPolicies = response;
_this.policies = _this.changedPolicies;
}, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to get policies.', shared_const_1.AlertType.DANGER); });
};
TotalReplicationComponent.prototype.doSearchPolicies = function (policyName) {
this.policyName = policyName;
this.retrievePolicies();
};
TotalReplicationComponent.prototype.openEditPolicy = function (policyId) {
console.log('Open modal to edit policy ID:' + policyId);
this.createEditPolicyComponent.openCreateEditPolicy(policyId);
};
TotalReplicationComponent.prototype.selectPolicy = function (policy) {
if (policy) {
this.projectId = policy.project_id;
}
};
TotalReplicationComponent.prototype.refreshPolicies = function () {
this.retrievePolicies();
};
TotalReplicationComponent.prototype.reloadPolicies = function (isReady) {
if (isReady) {
this.retrievePolicies();
}
};
__decorate([
core_1.ViewChild(create_edit_policy_component_1.CreateEditPolicyComponent),
__metadata('design:type', (typeof (_a = typeof create_edit_policy_component_1.CreateEditPolicyComponent !== 'undefined' && create_edit_policy_component_1.CreateEditPolicyComponent) === 'function' && _a) || Object)
], TotalReplicationComponent.prototype, "createEditPolicyComponent", void 0);
TotalReplicationComponent = __decorate([
core_1.Component({
selector: 'total-replication',
template: __webpack_require__(850),
providers: [replication_service_1.ReplicationService]
}),
__metadata('design:paramtypes', [(typeof (_b = typeof replication_service_1.ReplicationService !== 'undefined' && replication_service_1.ReplicationService) === 'function' && _b) || Object, (typeof (_c = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _c) || Object])
], TotalReplicationComponent);
return TotalReplicationComponent;
var _a, _b, _c;
}());
exports.TotalReplicationComponent = TotalReplicationComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/total-replication.component.js.map
/***/ }),
/***/ 404:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var repository_service_1 = __webpack_require__(250);
var message_service_1 = __webpack_require__(10);
var shared_const_1 = __webpack_require__(2);
var deletion_dialog_service_1 = __webpack_require__(48);
var deletion_message_1 = __webpack_require__(68);
var repositoryTypes = [
{ key: '0', description: 'REPOSITORY.MY_REPOSITORY' },
{ key: '1', description: 'REPOSITORY.PUBLIC_REPOSITORY' }
];
var RepositoryComponent = (function () {
function RepositoryComponent(route, repositoryService, messageService, deletionDialogService) {
var _this = this;
this.route = route;
this.repositoryService = repositoryService;
this.messageService = messageService;
this.deletionDialogService = deletionDialogService;
this.repositoryTypes = repositoryTypes;
this.page = 1;
this.pageSize = 15;
this.subscription = this.deletionDialogService
.deletionConfirm$
.subscribe(function (message) {
var repoName = message.data;
_this.repositoryService
.deleteRepository(repoName)
.subscribe(function (response) {
_this.refresh();
console.log('Successful deleted repo:' + repoName);
}, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to delete repo:' + repoName, shared_const_1.AlertType.DANGER); });
});
}
RepositoryComponent.prototype.ngOnInit = function () {
this.projectId = this.route.snapshot.parent.params['id'];
this.currentRepositoryType = this.repositoryTypes[0];
this.lastFilteredRepoName = '';
this.retrieve();
};
RepositoryComponent.prototype.ngOnDestroy = function () {
if (this.subscription) {
this.subscription.unsubscribe();
}
};
RepositoryComponent.prototype.retrieve = function (state) {
var _this = this;
if (state) {
this.page = state.page.to + 1;
}
this.repositoryService
.listRepositories(this.projectId, this.lastFilteredRepoName, this.page, this.pageSize)
.subscribe(function (response) {
_this.totalRecordCount = response.headers.get('x-total-count');
_this.totalPage = Math.ceil(_this.totalRecordCount / _this.pageSize);
console.log('TotalRecordCount:' + _this.totalRecordCount + ', totalPage:' + _this.totalPage);
_this.changedRepositories = response.json();
}, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to list repositories.', shared_const_1.AlertType.DANGER); });
};
RepositoryComponent.prototype.doFilterRepositoryByType = function (type) {
this.currentRepositoryType = this.repositoryTypes.find(function (r) { return r.key == type; });
};
RepositoryComponent.prototype.doSearchRepoNames = function (repoName) {
this.lastFilteredRepoName = repoName;
this.retrieve();
};
RepositoryComponent.prototype.deleteRepo = function (repoName) {
var message = new deletion_message_1.DeletionMessage('REPOSITORY.DELETION_TITLE_REPO', 'REPOSITORY.DELETION_SUMMARY_REPO', repoName, repoName, shared_const_1.DeletionTargets.REPOSITORY);
this.deletionDialogService.openComfirmDialog(message);
};
RepositoryComponent.prototype.refresh = function () {
this.retrieve();
};
RepositoryComponent = __decorate([
core_1.Component({
selector: 'repository',
template: __webpack_require__(852)
}),
__metadata('design:paramtypes', [(typeof (_a = typeof router_1.ActivatedRoute !== 'undefined' && router_1.ActivatedRoute) === 'function' && _a) || Object, (typeof (_b = typeof repository_service_1.RepositoryService !== 'undefined' && repository_service_1.RepositoryService) === 'function' && _b) || Object, (typeof (_c = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _c) || Object, (typeof (_d = typeof deletion_dialog_service_1.DeletionDialogService !== 'undefined' && deletion_dialog_service_1.DeletionDialogService) === 'function' && _d) || Object])
], RepositoryComponent);
return RepositoryComponent;
var _a, _b, _c, _d;
}());
exports.RepositoryComponent = RepositoryComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/repository.component.js.map
/***/ }),
/***/ 405:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var shared_module_1 = __webpack_require__(52);
var repository_component_1 = __webpack_require__(404);
var list_repository_component_1 = __webpack_require__(619);
var tag_repository_component_1 = __webpack_require__(406);
var top_repo_component_1 = __webpack_require__(622);
var repository_service_1 = __webpack_require__(250);
var RepositoryModule = (function () {
function RepositoryModule() {
}
RepositoryModule = __decorate([
core_1.NgModule({
imports: [
shared_module_1.SharedModule,
router_1.RouterModule
],
declarations: [
repository_component_1.RepositoryComponent,
list_repository_component_1.ListRepositoryComponent,
tag_repository_component_1.TagRepositoryComponent,
top_repo_component_1.TopRepoComponent
],
exports: [repository_component_1.RepositoryComponent, list_repository_component_1.ListRepositoryComponent, top_repo_component_1.TopRepoComponent],
providers: [repository_service_1.RepositoryService]
}),
__metadata('design:paramtypes', [])
], RepositoryModule);
return RepositoryModule;
}());
exports.RepositoryModule = RepositoryModule;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/repository.module.js.map
/***/ }),
/***/ 406:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var repository_service_1 = __webpack_require__(250);
var message_service_1 = __webpack_require__(10);
var shared_const_1 = __webpack_require__(2);
var deletion_dialog_service_1 = __webpack_require__(48);
var deletion_message_1 = __webpack_require__(68);
var tag_view_1 = __webpack_require__(621);
var TagRepositoryComponent = (function () {
function TagRepositoryComponent(route, messageService, deletionDialogService, repositoryService) {
var _this = this;
this.route = route;
this.messageService = messageService;
this.deletionDialogService = deletionDialogService;
this.repositoryService = repositoryService;
this.subscription = this.deletionDialogService.deletionConfirm$.subscribe(function (message) {
var tag = message.data;
if (tag) {
if (tag.verified) {
return;
}
else {
var tagName_1 = tag.tag;
_this.repositoryService
.deleteRepoByTag(_this.repoName, tagName_1)
.subscribe(function (response) {
_this.retrieve();
console.log('Deleted repo:' + _this.repoName + ' with tag:' + tagName_1);
}, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to delete tag:' + tagName_1 + ' under repo:' + _this.repoName, shared_const_1.AlertType.DANGER); });
}
}
});
}
TagRepositoryComponent.prototype.ngOnInit = function () {
this.projectId = this.route.snapshot.params['id'];
this.repoName = this.route.snapshot.params['repo'];
this.tags = [];
this.retrieve();
};
TagRepositoryComponent.prototype.ngOnDestroy = function () {
if (this.subscription) {
this.subscription.unsubscribe();
}
};
TagRepositoryComponent.prototype.retrieve = function () {
var _this = this;
this.tags = [];
this.repositoryService
.listTagsWithVerifiedSignatures(this.repoName)
.subscribe(function (items) {
items.forEach(function (t) {
var tag = new tag_view_1.TagView();
tag.tag = t.tag;
var data = JSON.parse(t.manifest.history[0].v1Compatibility);
tag.architecture = data['architecture'];
tag.author = data['author'];
tag.verified = t.verified || false;
tag.created = data['created'];
tag.dockerVersion = data['docker_version'];
tag.pullCommand = 'docker pull ' + t.manifest.name + ':' + t.tag;
tag.os = data['os'];
_this.tags.push(tag);
});
}, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to list tags with repo:' + _this.repoName, shared_const_1.AlertType.DANGER); });
};
TagRepositoryComponent.prototype.deleteTag = function (tag) {
if (tag) {
var titleKey = void 0, summaryKey = void 0;
if (tag.verified) {
titleKey = 'REPOSITORY.DELETION_TITLE_TAG_DENIED';
summaryKey = 'REPOSITORY.DELETION_SUMMARY_TAG_DENIED';
}
else {
titleKey = 'REPOSITORY.DELETION_TITLE_TAG';
summaryKey = 'REPOSITORY.DELETION_SUMMARY_TAG';
}
var message = new deletion_message_1.DeletionMessage(titleKey, summaryKey, tag.tag, tag, shared_const_1.DeletionTargets.TAG);
this.deletionDialogService.openComfirmDialog(message);
}
};
TagRepositoryComponent = __decorate([
core_1.Component({
selector: 'tag-repository',
template: __webpack_require__(853)
}),
__metadata('design:paramtypes', [(typeof (_a = typeof router_1.ActivatedRoute !== 'undefined' && router_1.ActivatedRoute) === 'function' && _a) || Object, (typeof (_b = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _b) || Object, (typeof (_c = typeof deletion_dialog_service_1.DeletionDialogService !== 'undefined' && deletion_dialog_service_1.DeletionDialogService) === 'function' && _c) || Object, (typeof (_d = typeof repository_service_1.RepositoryService !== 'undefined' && repository_service_1.RepositoryService) === 'function' && _d) || Object])
], TagRepositoryComponent);
return TagRepositoryComponent;
var _a, _b, _c, _d;
}());
exports.TagRepositoryComponent = TagRepositoryComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/tag-repository.component.js.map
/***/ }),
/***/ 407:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var AboutDialogComponent = (function () {
function AboutDialogComponent() {
this.opened = false;
this.version = "0.4.1";
this.build = "4276418";
}
AboutDialogComponent.prototype.open = function () {
this.opened = true;
};
AboutDialogComponent.prototype.close = function () {
this.opened = false;
};
AboutDialogComponent = __decorate([
core_1.Component({
selector: 'about-dialog',
template: __webpack_require__(855),
styles: [__webpack_require__(813)]
}),
__metadata('design:paramtypes', [])
], AboutDialogComponent);
return AboutDialogComponent;
}());
exports.AboutDialogComponent = AboutDialogComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/about-dialog.component.js.map
/***/ }),
/***/ 408:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var defaultInterval = 1000;
var defaultLeftTime = 5;
var PageNotFoundComponent = (function () {
function PageNotFoundComponent(router) {
this.router = router;
this.leftSeconds = defaultLeftTime;
this.timeInterval = null;
}
PageNotFoundComponent.prototype.ngOnInit = function () {
var _this = this;
if (!this.timeInterval) {
this.timeInterval = setInterval(function (interval) {
_this.leftSeconds--;
if (_this.leftSeconds <= 0) {
_this.router.navigate(['harbor']);
clearInterval(_this.timeInterval);
}
}, defaultInterval);
}
};
PageNotFoundComponent.prototype.ngOnDestroy = function () {
if (this.timeInterval) {
clearInterval(this.timeInterval);
}
};
PageNotFoundComponent = __decorate([
core_1.Component({
selector: 'page-not-found',
template: __webpack_require__(863),
styles: [__webpack_require__(817)]
}),
__metadata('design:paramtypes', [(typeof (_a = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _a) || Object])
], PageNotFoundComponent);
return PageNotFoundComponent;
var _a;
}());
exports.PageNotFoundComponent = PageNotFoundComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/not-found.component.js.map
/***/ }),
/***/ 409:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var session_service_1 = __webpack_require__(14);
var shared_const_1 = __webpack_require__(2);
var AuthCheckGuard = (function () {
function AuthCheckGuard(authService, router) {
this.authService = authService;
this.router = router;
}
AuthCheckGuard.prototype.canActivate = function (route, state) {
var _this = this;
return new Promise(function (resolve, reject) {
var user = _this.authService.getCurrentUser();
if (!user) {
_this.authService.retrieveUser()
.then(function () { return resolve(true); })
.catch(function (error) {
//Session retrieving failed then redirect to sign-in
//no matter what status code is.
//Please pay attention that route 'harborRootRoute' support anonymous user
if (state.url != shared_const_1.harborRootRoute) {
var navigatorExtra = {
queryParams: { "redirect_url": state.url }
};
_this.router.navigate([shared_const_1.signInRoute], navigatorExtra);
return resolve(false);
}
else {
return resolve(true);
}
});
}
else {
return resolve(true);
}
});
};
AuthCheckGuard.prototype.canActivateChild = function (route, state) {
return this.canActivate(route, state);
};
AuthCheckGuard = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [(typeof (_a = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object])
], AuthCheckGuard);
return AuthCheckGuard;
var _a, _b;
}());
exports.AuthCheckGuard = AuthCheckGuard;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/auth-user-activate.service.js.map
/***/ }),
/***/ 410:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var session_service_1 = __webpack_require__(14);
var shared_const_1 = __webpack_require__(2);
var SignInGuard = (function () {
function SignInGuard(authService, router) {
this.authService = authService;
this.router = router;
}
SignInGuard.prototype.canActivate = function (route, state) {
var _this = this;
//If user has logged in, should not login again
return new Promise(function (resolve, reject) {
var user = _this.authService.getCurrentUser();
if (!user) {
_this.authService.retrieveUser()
.then(function () {
_this.router.navigate([shared_const_1.harborRootRoute]);
return resolve(false);
})
.catch(function (error) {
return resolve(true);
});
}
else {
_this.router.navigate([shared_const_1.harborRootRoute]);
return resolve(false);
}
});
};
SignInGuard.prototype.canActivateChild = function (route, state) {
return this.canActivate(route, state);
};
SignInGuard = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [(typeof (_a = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object])
], SignInGuard);
return SignInGuard;
var _a, _b;
}());
exports.SignInGuard = SignInGuard;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/sign-in-guard-activate.service.js.map
/***/ }),
/***/ 411:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var session_service_1 = __webpack_require__(14);
var shared_const_1 = __webpack_require__(2);
var SystemAdminGuard = (function () {
function SystemAdminGuard(authService, router) {
this.authService = authService;
this.router = router;
}
SystemAdminGuard.prototype.canActivate = function (route, state) {
var _this = this;
return new Promise(function (resolve, reject) {
var user = _this.authService.getCurrentUser();
if (!user) {
_this.authService.retrieveUser()
.then(function () {
//updated user
user = _this.authService.getCurrentUser();
if (user.has_admin_role > 0) {
return resolve(true);
}
else {
_this.router.navigate([shared_const_1.harborRootRoute]);
return resolve(false);
}
})
.catch(function (error) {
//Session retrieving failed then redirect to sign-in
//no matter what status code is.
//Please pay attention that route 'harborRootRoute' support anonymous user
if (state.url != shared_const_1.harborRootRoute) {
var navigatorExtra = {
queryParams: { "redirect_url": state.url }
};
_this.router.navigate([shared_const_1.signInRoute], navigatorExtra);
return resolve(false);
}
else {
return resolve(true);
}
});
}
else {
if (user.has_admin_role > 0) {
return resolve(true);
}
else {
_this.router.navigate([shared_const_1.harborRootRoute]);
return resolve(false);
}
}
});
};
SystemAdminGuard.prototype.canActivateChild = function (route, state) {
return this.canActivate(route, state);
};
SystemAdminGuard = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [(typeof (_a = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object])
], SystemAdminGuard);
return SystemAdminGuard;
var _a, _b;
}());
exports.SystemAdminGuard = SystemAdminGuard;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/system-admin-activate.service.js.map
/***/ }),
/***/ 412:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var new_user_form_component_1 = __webpack_require__(253);
var session_service_1 = __webpack_require__(14);
var user_service_1 = __webpack_require__(175);
var shared_utils_1 = __webpack_require__(33);
var message_service_1 = __webpack_require__(10);
var shared_const_1 = __webpack_require__(2);
var inline_alert_component_1 = __webpack_require__(80);
var NewUserModalComponent = (function () {
function NewUserModalComponent(session, userService, msgService) {
this.session = session;
this.userService = userService;
this.msgService = msgService;
this.opened = false;
this.onGoing = false;
this.formValueChanged = false;
this.addNew = new core_1.EventEmitter();
}
NewUserModalComponent.prototype.getNewUser = function () {
return this.newUserForm.getData();
};
Object.defineProperty(NewUserModalComponent.prototype, "inProgress", {
get: function () {
return this.onGoing;
},
enumerable: true,
configurable: true
});
Object.defineProperty(NewUserModalComponent.prototype, "isValid", {
get: function () {
return this.newUserForm.isValid && this.error == null;
},
enumerable: true,
configurable: true
});
Object.defineProperty(NewUserModalComponent.prototype, "errorMessage", {
get: function () {
return shared_utils_1.errorHandler(this.error);
},
enumerable: true,
configurable: true
});
NewUserModalComponent.prototype.formValueChange = function (flag) {
if (this.error != null) {
this.error = null; //clear error
}
this.formValueChanged = true;
this.inlineAlert.close();
};
NewUserModalComponent.prototype.open = function () {
this.newUserForm.reset(); //Reset form
this.formValueChanged = false;
this.opened = true;
};
NewUserModalComponent.prototype.close = function () {
if (this.formValueChanged) {
if (this.newUserForm.isEmpty()) {
this.opened = false;
}
else {
//Need user confirmation
this.inlineAlert.showInlineConfirmation({
message: "ALERT.FORM_CHANGE_CONFIRMATION"
});
}
}
else {
this.opened = false;
}
};
NewUserModalComponent.prototype.confirmCancel = function (event) {
this.opened = false;
};
//Create new user
NewUserModalComponent.prototype.create = function () {
var _this = this;
//Double confirm everything is ok
//Form is valid
if (!this.isValid) {
return;
}
//We have new user data
var u = this.getNewUser();
if (!u) {
return;
}
//Session is ok and role is matched
var account = this.session.getCurrentUser();
if (!account || account.has_admin_role === 0) {
return;
}
//Start process
this.onGoing = true;
this.userService.addUser(u)
.then(function () {
_this.onGoing = false;
//TODO:
//As no response data returned, can not add it to list directly
_this.addNew.emit(u);
_this.opened = false;
_this.msgService.announceMessage(200, "USER.SAVE_SUCCESS", shared_const_1.AlertType.SUCCESS);
})
.catch(function (error) {
_this.onGoing = false;
_this.error = error;
if (shared_utils_1.accessErrorHandler(error, _this.msgService)) {
_this.opened = false;
}
else {
_this.inlineAlert.showInlineError(error);
}
});
};
__decorate([
core_1.Output(),
__metadata('design:type', Object)
], NewUserModalComponent.prototype, "addNew", void 0);
__decorate([
core_1.ViewChild(new_user_form_component_1.NewUserFormComponent),
__metadata('design:type', (typeof (_a = typeof new_user_form_component_1.NewUserFormComponent !== 'undefined' && new_user_form_component_1.NewUserFormComponent) === 'function' && _a) || Object)
], NewUserModalComponent.prototype, "newUserForm", void 0);
__decorate([
core_1.ViewChild(inline_alert_component_1.InlineAlertComponent),
__metadata('design:type', (typeof (_b = typeof inline_alert_component_1.InlineAlertComponent !== 'undefined' && inline_alert_component_1.InlineAlertComponent) === 'function' && _b) || Object)
], NewUserModalComponent.prototype, "inlineAlert", void 0);
NewUserModalComponent = __decorate([
core_1.Component({
selector: "new-user-modal",
template: __webpack_require__(866)
}),
__metadata('design:paramtypes', [(typeof (_c = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _c) || Object, (typeof (_d = typeof user_service_1.UserService !== 'undefined' && user_service_1.UserService) === 'function' && _d) || Object, (typeof (_e = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _e) || Object])
], NewUserModalComponent);
return NewUserModalComponent;
var _a, _b, _c, _d, _e;
}());
exports.NewUserModalComponent = NewUserModalComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/new-user-modal.component.js.map
/***/ }),
/***/ 413:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
__webpack_require__(58);
var user_service_1 = __webpack_require__(175);
var new_user_modal_component_1 = __webpack_require__(412);
var core_2 = __webpack_require__(34);
var deletion_dialog_service_1 = __webpack_require__(48);
var deletion_message_1 = __webpack_require__(68);
var shared_const_1 = __webpack_require__(2);
var shared_utils_1 = __webpack_require__(33);
var message_service_1 = __webpack_require__(10);
var UserComponent = (function () {
function UserComponent(userService, translate, deletionDialogService, msgService) {
var _this = this;
this.userService = userService;
this.translate = translate;
this.deletionDialogService = deletionDialogService;
this.msgService = msgService;
this.users = [];
this.onGoing = false;
this.adminMenuText = "";
this.adminColumn = "";
this.deletionSubscription = deletionDialogService.deletionConfirm$.subscribe(function (confirmed) {
if (confirmed && confirmed.targetId === shared_const_1.DeletionTargets.USER) {
_this.delUser(confirmed.data);
}
});
}
UserComponent.prototype.isMatchFilterTerm = function (terms, testedItem) {
return testedItem.indexOf(terms) != -1;
};
UserComponent.prototype.isSystemAdmin = function (u) {
var _this = this;
if (!u) {
return "{{MISS}}";
}
var key = u.has_admin_role ? "USER.IS_ADMIN" : "USER.IS_NOT_ADMIN";
this.translate.get(key).subscribe(function (res) { return _this.adminColumn = res; });
return this.adminColumn;
};
UserComponent.prototype.adminActions = function (u) {
var _this = this;
if (!u) {
return "{{MISS}}";
}
var key = u.has_admin_role ? "USER.DISABLE_ADMIN_ACTION" : "USER.ENABLE_ADMIN_ACTION";
this.translate.get(key).subscribe(function (res) { return _this.adminMenuText = res; });
return this.adminMenuText;
};
Object.defineProperty(UserComponent.prototype, "inProgress", {
get: function () {
return this.onGoing;
},
enumerable: true,
configurable: true
});
UserComponent.prototype.ngOnInit = function () {
this.refreshUser();
};
UserComponent.prototype.ngOnDestroy = function () {
if (this.deletionSubscription) {
this.deletionSubscription.unsubscribe();
}
};
//Filter items by keywords
UserComponent.prototype.doFilter = function (terms) {
var _this = this;
this.originalUsers.then(function (users) {
if (terms.trim() === "") {
_this.users = users;
}
else {
_this.users = users.filter(function (user) {
return _this.isMatchFilterTerm(terms, user.username);
});
}
});
};
//Disable the admin role for the specified user
UserComponent.prototype.changeAdminRole = function (user) {
var _this = this;
//Double confirm user is existing
if (!user || user.user_id === 0) {
return;
}
//Value copy
var updatedUser = {
user_id: user.user_id
};
if (user.has_admin_role === 0) {
updatedUser.has_admin_role = 1; //Set as admin
}
else {
updatedUser.has_admin_role = 0; //Set as none admin
}
this.userService.updateUserRole(updatedUser)
.then(function () {
//Change view now
user.has_admin_role = updatedUser.has_admin_role;
})
.catch(function (error) {
if (!shared_utils_1.accessErrorHandler(error, _this.msgService)) {
_this.msgService.announceMessage(500, shared_utils_1.errorHandler(error), shared_const_1.AlertType.DANGER);
}
});
};
//Delete the specified user
UserComponent.prototype.deleteUser = function (user) {
if (!user) {
return;
}
//Confirm deletion
var msg = new deletion_message_1.DeletionMessage("USER.DELETION_TITLE", "USER.DELETION_SUMMARY", user.username, user, shared_const_1.DeletionTargets.USER);
this.deletionDialogService.openComfirmDialog(msg);
};
UserComponent.prototype.delUser = function (user) {
var _this = this;
this.userService.deleteUser(user.user_id)
.then(function () {
//Remove it from current user list
//and then view refreshed
_this.originalUsers.then(function (users) {
_this.users = users.filter(function (u) { return u.user_id != user.user_id; });
_this.msgService.announceMessage(500, "USER.DELETE_SUCCESS", shared_const_1.AlertType.SUCCESS);
});
})
.catch(function (error) {
if (!shared_utils_1.accessErrorHandler(error, _this.msgService)) {
_this.msgService.announceMessage(500, shared_utils_1.errorHandler(error), shared_const_1.AlertType.DANGER);
}
});
};
//Refresh the user list
UserComponent.prototype.refreshUser = function () {
var _this = this;
//Start to get
this.onGoing = true;
this.originalUsers = this.userService.getUsers()
.then(function (users) {
_this.onGoing = false;
_this.users = users;
return users;
})
.catch(function (error) {
_this.onGoing = false;
if (!shared_utils_1.accessErrorHandler(error, _this.msgService)) {
_this.msgService.announceMessage(500, shared_utils_1.errorHandler(error), shared_const_1.AlertType.DANGER);
}
});
};
//Add new user
UserComponent.prototype.addNewUser = function () {
this.newUserDialog.open();
};
//Add user to the user list
UserComponent.prototype.addUserToList = function (user) {
//Currently we can only add it by reloading all
this.refreshUser();
};
__decorate([
core_1.ViewChild(new_user_modal_component_1.NewUserModalComponent),
__metadata('design:type', (typeof (_a = typeof new_user_modal_component_1.NewUserModalComponent !== 'undefined' && new_user_modal_component_1.NewUserModalComponent) === 'function' && _a) || Object)
], UserComponent.prototype, "newUserDialog", void 0);
UserComponent = __decorate([
core_1.Component({
selector: 'harbor-user',
template: __webpack_require__(867),
styles: [__webpack_require__(818)],
providers: [user_service_1.UserService]
}),
__metadata('design:paramtypes', [(typeof (_b = typeof user_service_1.UserService !== 'undefined' && user_service_1.UserService) === 'function' && _b) || Object, (typeof (_c = typeof core_2.TranslateService !== 'undefined' && core_2.TranslateService) === 'function' && _c) || Object, (typeof (_d = typeof deletion_dialog_service_1.DeletionDialogService !== 'undefined' && deletion_dialog_service_1.DeletionDialogService) === 'function' && _d) || Object, (typeof (_e = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _e) || Object])
], UserComponent);
return UserComponent;
var _a, _b, _c, _d, _e;
}());
exports.UserComponent = UserComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/user.component.js.map
/***/ }),
/***/ 457:
/***/ (function(module, exports) {
module.exports = ".reset-modal-title-override {\n font-size: 14px !important;\n}"
/***/ }),
/***/ 458:
/***/ (function(module, exports) {
module.exports = ".statistic-wrapper {\n padding: 12px;\n margin: 12px;\n text-align: center;\n vertical-align: middle;\n height: 72px;\n min-width: 108px;\n max-width: 216px;\n display: inline-block;\n}\n\n.statistic-data {\n font-size: 48px;\n font-weight: bolder;\n font-family: \"Metropolis\";\n line-height: 48px;\n}\n\n.statistic-text {\n font-size: 24px;\n font-weight: 400;\n line-height: 24px;\n text-transform: uppercase;\n font-family: \"Metropolis\";\n}\n\n.statistic-column-title {\n position: relative;\n top: 40%;\n}"
/***/ }),
/***/ 477:
/***/ (function(module, exports) {
function webpackEmptyContext(req) {
throw new Error("Cannot find module '" + req + "'.");
}
webpackEmptyContext.keys = function() { return []; };
webpackEmptyContext.resolve = webpackEmptyContext;
module.exports = webpackEmptyContext;
webpackEmptyContext.id = 477;
/***/ }),
/***/ 478:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
__webpack_require__(640);
var platform_browser_dynamic_1 = __webpack_require__(571);
var core_1 = __webpack_require__(0);
var environment_1 = __webpack_require__(639);
var _1 = __webpack_require__(610);
if (environment_1.environment.production) {
core_1.enableProdMode();
}
platform_browser_dynamic_1.platformBrowserDynamic().bootstrapModule(_1.AppModule);
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/main.js.map
/***/ }),
/***/ 48:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var Subject_1 = __webpack_require__(25);
var DeletionDialogService = (function () {
function DeletionDialogService() {
this.deletionAnnoucedSource = new Subject_1.Subject();
this.deletionConfirmSource = new Subject_1.Subject();
this.deletionAnnouced$ = this.deletionAnnoucedSource.asObservable();
this.deletionConfirm$ = this.deletionConfirmSource.asObservable();
}
DeletionDialogService.prototype.confirmDeletion = function (message) {
this.deletionConfirmSource.next(message);
};
DeletionDialogService.prototype.openComfirmDialog = function (message) {
this.deletionAnnoucedSource.next(message);
};
DeletionDialogService = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [])
], DeletionDialogService);
return DeletionDialogService;
}());
exports.DeletionDialogService = DeletionDialogService;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/deletion-dialog.service.js.map
/***/ }),
/***/ 52:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var core_module_1 = __webpack_require__(246);
var core_2 = __webpack_require__(257);
var session_service_1 = __webpack_require__(14);
var message_component_1 = __webpack_require__(607);
var message_service_1 = __webpack_require__(10);
var max_length_ext_directive_1 = __webpack_require__(629);
var filter_component_1 = __webpack_require__(626);
var harbor_action_overflow_1 = __webpack_require__(627);
var core_3 = __webpack_require__(34);
var router_1 = __webpack_require__(8);
var deletion_dialog_component_1 = __webpack_require__(625);
var deletion_dialog_service_1 = __webpack_require__(48);
var base_routing_resolver_service_1 = __webpack_require__(631);
var system_admin_activate_service_1 = __webpack_require__(411);
var new_user_form_component_1 = __webpack_require__(253);
var inline_alert_component_1 = __webpack_require__(80);
var list_policy_component_1 = __webpack_require__(628);
var create_edit_policy_component_1 = __webpack_require__(252);
var port_directive_1 = __webpack_require__(630);
var not_found_component_1 = __webpack_require__(408);
var about_dialog_component_1 = __webpack_require__(407);
var auth_user_activate_service_1 = __webpack_require__(409);
var statistics_component_1 = __webpack_require__(634);
var statistics_panel_component_1 = __webpack_require__(633);
var sign_in_guard_activate_service_1 = __webpack_require__(410);
var SharedModule = (function () {
function SharedModule() {
}
SharedModule = __decorate([
core_1.NgModule({
imports: [
core_module_1.CoreModule,
core_3.TranslateModule,
router_1.RouterModule
],
declarations: [
message_component_1.MessageComponent,
max_length_ext_directive_1.MaxLengthExtValidatorDirective,
filter_component_1.FilterComponent,
harbor_action_overflow_1.HarborActionOverflow,
deletion_dialog_component_1.DeletionDialogComponent,
new_user_form_component_1.NewUserFormComponent,
inline_alert_component_1.InlineAlertComponent,
list_policy_component_1.ListPolicyComponent,
create_edit_policy_component_1.CreateEditPolicyComponent,
port_directive_1.PortValidatorDirective,
not_found_component_1.PageNotFoundComponent,
about_dialog_component_1.AboutDialogComponent,
statistics_component_1.StatisticsComponent,
statistics_panel_component_1.StatisticsPanelComponent
],
exports: [
core_module_1.CoreModule,
message_component_1.MessageComponent,
max_length_ext_directive_1.MaxLengthExtValidatorDirective,
filter_component_1.FilterComponent,
harbor_action_overflow_1.HarborActionOverflow,
core_3.TranslateModule,
deletion_dialog_component_1.DeletionDialogComponent,
new_user_form_component_1.NewUserFormComponent,
inline_alert_component_1.InlineAlertComponent,
list_policy_component_1.ListPolicyComponent,
create_edit_policy_component_1.CreateEditPolicyComponent,
port_directive_1.PortValidatorDirective,
not_found_component_1.PageNotFoundComponent,
about_dialog_component_1.AboutDialogComponent,
statistics_component_1.StatisticsComponent,
statistics_panel_component_1.StatisticsPanelComponent
],
providers: [
session_service_1.SessionService,
message_service_1.MessageService,
core_2.CookieService,
deletion_dialog_service_1.DeletionDialogService,
base_routing_resolver_service_1.BaseRoutingResolver,
system_admin_activate_service_1.SystemAdminGuard,
auth_user_activate_service_1.AuthCheckGuard,
sign_in_guard_activate_service_1.SignInGuard]
}),
__metadata('design:paramtypes', [])
], SharedModule);
return SharedModule;
}());
exports.SharedModule = SharedModule;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/shared.module.js.map
/***/ }),
/***/ 600:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var app_component_1 = __webpack_require__(380);
var base_module_1 = __webpack_require__(601);
var harbor_routing_module_1 = __webpack_require__(608);
var shared_module_1 = __webpack_require__(52);
var account_module_1 = __webpack_require__(375);
var config_module_1 = __webpack_require__(606);
var core_2 = __webpack_require__(34);
var missing_trans_handler_1 = __webpack_require__(609);
var http_loader_1 = __webpack_require__(641);
var http_1 = __webpack_require__(20);
var app_config_service_1 = __webpack_require__(172);
function HttpLoaderFactory(http) {
return new http_loader_1.TranslateHttpLoader(http, 'i18n/lang/', '-lang.json');
}
exports.HttpLoaderFactory = HttpLoaderFactory;
function initConfig(configService) {
return function () { return configService.load(); };
}
exports.initConfig = initConfig;
var AppModule = (function () {
function AppModule() {
}
AppModule = __decorate([
core_1.NgModule({
declarations: [
app_component_1.AppComponent,
],
imports: [
shared_module_1.SharedModule,
base_module_1.BaseModule,
account_module_1.AccountModule,
harbor_routing_module_1.HarborRoutingModule,
config_module_1.ConfigurationModule,
core_2.TranslateModule.forRoot({
loader: {
provide: core_2.TranslateLoader,
useFactory: (HttpLoaderFactory),
deps: [http_1.Http]
},
missingTranslationHandler: {
provide: core_2.MissingTranslationHandler,
useClass: missing_trans_handler_1.MyMissingTranslationHandler
}
})
],
providers: [
app_config_service_1.AppConfigService,
{
provide: core_1.APP_INITIALIZER,
useFactory: initConfig,
deps: [app_config_service_1.AppConfigService],
multi: true
}],
bootstrap: [app_component_1.AppComponent]
}),
__metadata('design:paramtypes', [])
], AppModule);
return AppModule;
}());
exports.AppModule = AppModule;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/app.module.js.map
/***/ }),
/***/ 601:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var shared_module_1 = __webpack_require__(52);
var router_1 = __webpack_require__(8);
var project_module_1 = __webpack_require__(614);
var user_module_1 = __webpack_require__(637);
var account_module_1 = __webpack_require__(375);
var repository_module_1 = __webpack_require__(405);
var navigator_component_1 = __webpack_require__(384);
var global_search_component_1 = __webpack_require__(603);
var footer_component_1 = __webpack_require__(602);
var harbor_shell_component_1 = __webpack_require__(382);
var search_result_component_1 = __webpack_require__(381);
var start_component_1 = __webpack_require__(245);
var search_trigger_service_1 = __webpack_require__(95);
var BaseModule = (function () {
function BaseModule() {
}
BaseModule = __decorate([
core_1.NgModule({
imports: [
shared_module_1.SharedModule,
project_module_1.ProjectModule,
user_module_1.UserModule,
account_module_1.AccountModule,
router_1.RouterModule,
repository_module_1.RepositoryModule
],
declarations: [
navigator_component_1.NavigatorComponent,
global_search_component_1.GlobalSearchComponent,
footer_component_1.FooterComponent,
harbor_shell_component_1.HarborShellComponent,
search_result_component_1.SearchResultComponent,
start_component_1.StartPageComponent
],
exports: [harbor_shell_component_1.HarborShellComponent],
providers: [search_trigger_service_1.SearchTriggerService]
}),
__metadata('design:paramtypes', [])
], BaseModule);
return BaseModule;
}());
exports.BaseModule = BaseModule;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/base.module.js.map
/***/ }),
/***/ 602:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var FooterComponent = (function () {
function FooterComponent() {
}
FooterComponent = __decorate([
core_1.Component({
selector: 'footer',
template: __webpack_require__(827)
}),
__metadata('design:paramtypes', [])
], FooterComponent);
return FooterComponent;
}());
exports.FooterComponent = FooterComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/footer.component.js.map
/***/ }),
/***/ 603:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var Subject_1 = __webpack_require__(25);
var search_trigger_service_1 = __webpack_require__(95);
__webpack_require__(461);
__webpack_require__(462);
var deBounceTime = 500; //ms
var GlobalSearchComponent = (function () {
function GlobalSearchComponent(searchTrigger, router) {
this.searchTrigger = searchTrigger;
this.router = router;
//Keep search term as Subject
this.searchTerms = new Subject_1.Subject();
//To indicate if the result panel is opened
this.isResPanelOpened = false;
}
//Implement ngOnIni
GlobalSearchComponent.prototype.ngOnInit = function () {
var _this = this;
this.searchSub = this.searchTerms
.debounceTime(deBounceTime)
.distinctUntilChanged()
.subscribe(function (term) {
_this.searchTrigger.triggerSearch(term);
});
};
GlobalSearchComponent.prototype.ngOnDestroy = function () {
if (this.searchSub) {
this.searchSub.unsubscribe();
}
};
//Handle the term inputting event
GlobalSearchComponent.prototype.search = function (term) {
//Send event even term is empty
this.searchTerms.next(term.trim());
};
GlobalSearchComponent = __decorate([
//ms
core_1.Component({
selector: 'global-search',
template: __webpack_require__(828)
}),
__metadata('design:paramtypes', [(typeof (_a = typeof search_trigger_service_1.SearchTriggerService !== 'undefined' && search_trigger_service_1.SearchTriggerService) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object])
], GlobalSearchComponent);
return GlobalSearchComponent;
var _a, _b;
}());
exports.GlobalSearchComponent = GlobalSearchComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/global-search.component.js.map
/***/ }),
/***/ 604:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var http_1 = __webpack_require__(20);
__webpack_require__(58);
var searchEndpoint = "/api/search";
/**
* Declare service to handle the global search
*
*
* @export
* @class GlobalSearchService
*/
var GlobalSearchService = (function () {
function GlobalSearchService(http) {
this.http = http;
this.headers = new http_1.Headers({
"Content-Type": 'application/json'
});
this.options = new http_1.RequestOptions({
headers: this.headers
});
}
/**
* Search related artifacts with the provided keyword
*
* @param {string} keyword
* @returns {Promise<SearchResults>}
*
* @memberOf GlobalSearchService
*/
GlobalSearchService.prototype.doSearch = function (term) {
var searchUrl = searchEndpoint + "?q=" + term;
return this.http.get(searchUrl, this.options).toPromise()
.then(function (response) { return response.json(); })
.catch(function (error) { return Promise.reject(error); });
};
GlobalSearchService = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object])
], GlobalSearchService);
return GlobalSearchService;
var _a;
}());
exports.GlobalSearchService = GlobalSearchService;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/global-search.service.js.map
/***/ }),
/***/ 605:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var SearchResults = (function () {
function SearchResults() {
this.project = [];
this.repository = [];
}
return SearchResults;
}());
exports.SearchResults = SearchResults;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/search-results.js.map
/***/ }),
/***/ 606:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var core_module_1 = __webpack_require__(246);
var shared_module_1 = __webpack_require__(52);
var config_component_1 = __webpack_require__(386);
var config_service_1 = __webpack_require__(387);
var config_auth_component_1 = __webpack_require__(385);
var config_email_component_1 = __webpack_require__(388);
var ConfigurationModule = (function () {
function ConfigurationModule() {
}
ConfigurationModule = __decorate([
core_1.NgModule({
imports: [
core_module_1.CoreModule,
shared_module_1.SharedModule
],
declarations: [
config_component_1.ConfigurationComponent,
config_auth_component_1.ConfigurationAuthComponent,
config_email_component_1.ConfigurationEmailComponent],
exports: [config_component_1.ConfigurationComponent],
providers: [config_service_1.ConfigurationService]
}),
__metadata('design:paramtypes', [])
], ConfigurationModule);
return ConfigurationModule;
}());
exports.ConfigurationModule = ConfigurationModule;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/config.module.js.map
/***/ }),
/***/ 607:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var core_2 = __webpack_require__(34);
var message_1 = __webpack_require__(389);
var message_service_1 = __webpack_require__(10);
var shared_const_1 = __webpack_require__(2);
var MessageComponent = (function () {
function MessageComponent(messageService, router, translate) {
this.messageService = messageService;
this.router = router;
this.translate = translate;
this.globalMessage = new message_1.Message();
this.messageText = "";
}
MessageComponent.prototype.ngOnInit = function () {
var _this = this;
//Only subscribe application level message
if (this.isAppLevel) {
this.messageService.appLevelAnnounced$.subscribe(function (message) {
_this.globalMessageOpened = true;
_this.globalMessage = message;
_this.messageText = message.message;
_this.translateMessage(message);
});
}
else {
//Only subscribe general messages
this.messageService.messageAnnounced$.subscribe(function (message) {
_this.globalMessageOpened = true;
_this.globalMessage = message;
_this.messageText = message.message;
_this.translateMessage(message);
// Make the message alert bar dismiss after several intervals.
//Only for this case
setInterval(function () { return _this.onClose(); }, shared_const_1.dismissInterval);
});
}
};
//Translate or refactor the message shown to user
MessageComponent.prototype.translateMessage = function (msg) {
var _this = this;
if (!msg) {
return;
}
var key = "";
if (!msg.message) {
key = "UNKNOWN_ERROR";
}
else {
key = typeof msg.message === "string" ? msg.message.trim() : msg.message;
if (key === "") {
key = "UNKNOWN_ERROR";
}
}
//Override key for HTTP 401 and 403
if (this.globalMessage.statusCode === shared_const_1.httpStatusCode.Unauthorized) {
key = "UNAUTHORIZED_ERROR";
}
if (this.globalMessage.statusCode === shared_const_1.httpStatusCode.Forbidden) {
key = "FORBIDDEN_ERROR";
}
this.translate.get(key).subscribe(function (res) { return _this.messageText = res; });
};
Object.defineProperty(MessageComponent.prototype, "needAuth", {
get: function () {
return this.globalMessage ?
(this.globalMessage.statusCode === shared_const_1.httpStatusCode.Unauthorized) ||
(this.globalMessage.statusCode === shared_const_1.httpStatusCode.Forbidden) : false;
},
enumerable: true,
configurable: true
});
Object.defineProperty(MessageComponent.prototype, "message", {
//Show message text
get: function () {
return this.messageText;
},
enumerable: true,
configurable: true
});
MessageComponent.prototype.signIn = function () {
this.router.navigate(['sign-in']);
};
MessageComponent.prototype.onClose = function () {
this.globalMessageOpened = false;
};
__decorate([
core_1.Input(),
__metadata('design:type', Boolean)
], MessageComponent.prototype, "isAppLevel", void 0);
MessageComponent = __decorate([
core_1.Component({
selector: 'global-message',
template: __webpack_require__(836)
}),
__metadata('design:paramtypes', [(typeof (_a = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object, (typeof (_c = typeof core_2.TranslateService !== 'undefined' && core_2.TranslateService) === 'function' && _c) || Object])
], MessageComponent);
return MessageComponent;
var _a, _b, _c;
}());
exports.MessageComponent = MessageComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/message.component.js.map
/***/ }),
/***/ 608:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var sign_in_component_1 = __webpack_require__(379);
var harbor_shell_component_1 = __webpack_require__(382);
var project_component_1 = __webpack_require__(398);
var user_component_1 = __webpack_require__(413);
var replication_management_component_1 = __webpack_require__(401);
var total_replication_component_1 = __webpack_require__(403);
var destination_component_1 = __webpack_require__(400);
var project_detail_component_1 = __webpack_require__(396);
var repository_component_1 = __webpack_require__(404);
var tag_repository_component_1 = __webpack_require__(406);
var replication_component_1 = __webpack_require__(402);
var member_component_1 = __webpack_require__(395);
var audit_log_component_1 = __webpack_require__(390);
var project_routing_resolver_service_1 = __webpack_require__(397);
var system_admin_activate_service_1 = __webpack_require__(411);
var sign_up_component_1 = __webpack_require__(243);
var reset_password_component_1 = __webpack_require__(378);
var recent_log_component_1 = __webpack_require__(391);
var config_component_1 = __webpack_require__(386);
var not_found_component_1 = __webpack_require__(408);
var start_component_1 = __webpack_require__(245);
var auth_user_activate_service_1 = __webpack_require__(409);
var sign_in_guard_activate_service_1 = __webpack_require__(410);
var harborRoutes = [
{ path: '', redirectTo: '/harbor/dashboard', pathMatch: 'full' },
{ path: 'harbor', redirectTo: '/harbor/dashboard', pathMatch: 'full' },
{ path: 'sign-in', component: sign_in_component_1.SignInComponent, canActivate: [sign_in_guard_activate_service_1.SignInGuard] },
{ path: 'sign-up', component: sign_up_component_1.SignUpComponent },
{ path: 'password-reset', component: reset_password_component_1.ResetPasswordComponent },
{
path: 'harbor',
component: harbor_shell_component_1.HarborShellComponent,
children: [
{ path: 'sign-in', component: sign_in_component_1.SignInComponent, canActivate: [sign_in_guard_activate_service_1.SignInGuard] },
{ path: 'sign-up', component: sign_up_component_1.SignUpComponent },
{ path: 'dashboard', component: start_component_1.StartPageComponent, canActivate: [auth_user_activate_service_1.AuthCheckGuard] },
{
path: 'projects',
component: project_component_1.ProjectComponent,
canActivate: [auth_user_activate_service_1.AuthCheckGuard]
},
{
path: 'logs',
component: recent_log_component_1.RecentLogComponent,
canActivate: [auth_user_activate_service_1.AuthCheckGuard]
},
{
path: 'users',
component: user_component_1.UserComponent,
canActivate: [auth_user_activate_service_1.AuthCheckGuard, system_admin_activate_service_1.SystemAdminGuard]
},
{
path: 'replications',
component: replication_management_component_1.ReplicationManagementComponent,
canActivate: [auth_user_activate_service_1.AuthCheckGuard, system_admin_activate_service_1.SystemAdminGuard],
canActivateChild: [auth_user_activate_service_1.AuthCheckGuard, system_admin_activate_service_1.SystemAdminGuard],
children: [
{
path: 'rules',
component: total_replication_component_1.TotalReplicationComponent
},
{
path: 'endpoints',
component: destination_component_1.DestinationComponent
}
]
},
{
path: 'tags/:id/:repo',
component: tag_repository_component_1.TagRepositoryComponent,
canActivate: [auth_user_activate_service_1.AuthCheckGuard]
},
{
path: 'projects/:id',
component: project_detail_component_1.ProjectDetailComponent,
canActivate: [auth_user_activate_service_1.AuthCheckGuard],
canActivateChild: [auth_user_activate_service_1.AuthCheckGuard],
resolve: {
projectResolver: project_routing_resolver_service_1.ProjectRoutingResolver
},
children: [
{
path: 'repository',
component: repository_component_1.RepositoryComponent
},
{
path: 'replication',
component: replication_component_1.ReplicationComponent
},
{
path: 'member',
component: member_component_1.MemberComponent
},
{
path: 'log',
component: audit_log_component_1.AuditLogComponent
}
]
},
{
path: 'configs',
component: config_component_1.ConfigurationComponent,
canActivate: [auth_user_activate_service_1.AuthCheckGuard, system_admin_activate_service_1.SystemAdminGuard],
}
]
},
{ path: "**", component: not_found_component_1.PageNotFoundComponent }
];
var HarborRoutingModule = (function () {
function HarborRoutingModule() {
}
HarborRoutingModule = __decorate([
core_1.NgModule({
imports: [
router_1.RouterModule.forRoot(harborRoutes)
],
exports: [router_1.RouterModule]
}),
__metadata('design:paramtypes', [])
], HarborRoutingModule);
return HarborRoutingModule;
}());
exports.HarborRoutingModule = HarborRoutingModule;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/harbor-routing.module.js.map
/***/ }),
/***/ 609:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var MyMissingTranslationHandler = (function () {
function MyMissingTranslationHandler() {
}
MyMissingTranslationHandler.prototype.handle = function (params) {
var missingText = "{Miss Harbor Text}";
return params.key || missingText;
};
return MyMissingTranslationHandler;
}());
exports.MyMissingTranslationHandler = MyMissingTranslationHandler;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/missing-trans.handler.js.map
/***/ }),
/***/ 610:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
__export(__webpack_require__(380));
__export(__webpack_require__(600));
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/index.js.map
/***/ }),
/***/ 611:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/*
{
"log_id": 3,
"user_id": 0,
"project_id": 0,
"repo_name": "library/mysql",
"repo_tag": "5.6",
"guid": "",
"operation": "push",
"op_time": "2017-02-14T09:22:58Z",
"username": "admin",
"keywords": "",
"BeginTime": "0001-01-01T00:00:00Z",
"begin_timestamp": 0,
"EndTime": "0001-01-01T00:00:00Z",
"end_timestamp": 0
}
*/
var AuditLog = (function () {
function AuditLog() {
this.begin_timestamp = 0;
this.end_timestamp = 0;
}
return AuditLog;
}());
exports.AuditLog = AuditLog;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/audit-log.js.map
/***/ }),
/***/ 612:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var audit_log_component_1 = __webpack_require__(390);
var shared_module_1 = __webpack_require__(52);
var audit_log_service_1 = __webpack_require__(247);
var recent_log_component_1 = __webpack_require__(391);
var LogModule = (function () {
function LogModule() {
}
LogModule = __decorate([
core_1.NgModule({
imports: [shared_module_1.SharedModule],
declarations: [
audit_log_component_1.AuditLogComponent,
recent_log_component_1.RecentLogComponent],
providers: [audit_log_service_1.AuditLogService],
exports: [
audit_log_component_1.AuditLogComponent,
recent_log_component_1.RecentLogComponent]
}),
__metadata('design:paramtypes', [])
], LogModule);
return LogModule;
}());
exports.LogModule = LogModule;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/log.module.js.map
/***/ }),
/***/ 613:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/*
{
"user_id": 1,
"username": "admin",
"email": "",
"password": "",
"realname": "",
"comment": "",
"deleted": 0,
"role_name": "projectAdmin",
"role_id": 1,
"has_admin_role": 0,
"reset_uuid": "",
"creation_time": "0001-01-01T00:00:00Z",
"update_time": "0001-01-01T00:00:00Z"
}
*/
var Member = (function () {
function Member() {
}
return Member;
}());
exports.Member = Member;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/member.js.map
/***/ }),
/***/ 614:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var shared_module_1 = __webpack_require__(52);
var repository_module_1 = __webpack_require__(405);
var replication_module_1 = __webpack_require__(618);
var log_module_1 = __webpack_require__(612);
var project_component_1 = __webpack_require__(398);
var create_project_component_1 = __webpack_require__(392);
var list_project_component_1 = __webpack_require__(393);
var project_detail_component_1 = __webpack_require__(396);
var member_component_1 = __webpack_require__(395);
var add_member_component_1 = __webpack_require__(394);
var project_service_1 = __webpack_require__(174);
var member_service_1 = __webpack_require__(248);
var project_routing_resolver_service_1 = __webpack_require__(397);
var ProjectModule = (function () {
function ProjectModule() {
}
ProjectModule = __decorate([
core_1.NgModule({
imports: [
shared_module_1.SharedModule,
repository_module_1.RepositoryModule,
replication_module_1.ReplicationModule,
log_module_1.LogModule,
router_1.RouterModule
],
declarations: [
project_component_1.ProjectComponent,
create_project_component_1.CreateProjectComponent,
list_project_component_1.ListProjectComponent,
project_detail_component_1.ProjectDetailComponent,
member_component_1.MemberComponent,
add_member_component_1.AddMemberComponent
],
exports: [project_component_1.ProjectComponent, list_project_component_1.ListProjectComponent],
providers: [project_routing_resolver_service_1.ProjectRoutingResolver, project_service_1.ProjectService, member_service_1.MemberService]
}),
__metadata('design:paramtypes', [])
], ProjectModule);
return ProjectModule;
}());
exports.ProjectModule = ProjectModule;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/project.module.js.map
/***/ }),
/***/ 615:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/*
[
{
"project_id": 1,
"owner_id": 1,
"name": "library",
"creation_time": "2017-02-10T07:57:56Z",
"creation_time_str": "",
"deleted": 0,
"owner_name": "",
"public": 1,
"Togglable": true,
"update_time": "2017-02-10T07:57:56Z",
"current_user_role_id": 1,
"repo_count": 0
}
]
*/
var Project = (function () {
function Project() {
}
return Project;
}());
exports.Project = Project;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/project.js.map
/***/ }),
/***/ 616:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var ListJobComponent = (function () {
function ListJobComponent() {
this.paginate = new core_1.EventEmitter();
this.pageOffset = 1;
}
ListJobComponent.prototype.refresh = function (state) {
if (this.jobs) {
this.paginate.emit(state);
}
};
__decorate([
core_1.Input(),
__metadata('design:type', Array)
], ListJobComponent.prototype, "jobs", void 0);
__decorate([
core_1.Input(),
__metadata('design:type', Number)
], ListJobComponent.prototype, "totalRecordCount", void 0);
__decorate([
core_1.Input(),
__metadata('design:type', Number)
], ListJobComponent.prototype, "totalPage", void 0);
__decorate([
core_1.Output(),
__metadata('design:type', Object)
], ListJobComponent.prototype, "paginate", void 0);
ListJobComponent = __decorate([
core_1.Component({
selector: 'list-job',
template: __webpack_require__(847)
}),
__metadata('design:paramtypes', [])
], ListJobComponent);
return ListJobComponent;
}());
exports.ListJobComponent = ListJobComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/list-job.component.js.map
/***/ }),
/***/ 617:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/*
{
"id": 1,
"project_id": 1,
"project_name": "library",
"target_id": 1,
"target_name": "target_01",
"name": "sync_01",
"enabled": 0,
"description": "sync_01 desc.",
"cron_str": "",
"start_time": "0001-01-01T00:00:00Z",
"creation_time": "2017-02-24T06:41:52Z",
"update_time": "2017-02-24T06:41:52Z",
"error_job_count": 0,
"deleted": 0
}
*/
var Policy = (function () {
function Policy() {
}
return Policy;
}());
exports.Policy = Policy;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/policy.js.map
/***/ }),
/***/ 618:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var replication_management_component_1 = __webpack_require__(401);
var replication_component_1 = __webpack_require__(402);
var list_job_component_1 = __webpack_require__(616);
var total_replication_component_1 = __webpack_require__(403);
var destination_component_1 = __webpack_require__(400);
var create_edit_destination_component_1 = __webpack_require__(399);
var shared_module_1 = __webpack_require__(52);
var replication_service_1 = __webpack_require__(79);
var ReplicationModule = (function () {
function ReplicationModule() {
}
ReplicationModule = __decorate([
core_1.NgModule({
imports: [
shared_module_1.SharedModule,
router_1.RouterModule
],
declarations: [
replication_component_1.ReplicationComponent,
replication_management_component_1.ReplicationManagementComponent,
list_job_component_1.ListJobComponent,
total_replication_component_1.TotalReplicationComponent,
destination_component_1.DestinationComponent,
create_edit_destination_component_1.CreateEditDestinationComponent
],
exports: [replication_component_1.ReplicationComponent],
providers: [replication_service_1.ReplicationService]
}),
__metadata('design:paramtypes', [])
], ReplicationModule);
return ReplicationModule;
}());
exports.ReplicationModule = ReplicationModule;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/replication.module.js.map
/***/ }),
/***/ 619:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var search_trigger_service_1 = __webpack_require__(95);
var session_service_1 = __webpack_require__(14);
var shared_const_1 = __webpack_require__(2);
var ListRepositoryComponent = (function () {
function ListRepositoryComponent(router, searchTrigger, session) {
this.router = router;
this.searchTrigger = searchTrigger;
this.session = session;
this.delete = new core_1.EventEmitter();
this.paginate = new core_1.EventEmitter();
this.mode = shared_const_1.ListMode.FULL;
this.pageOffset = 1;
}
ListRepositoryComponent.prototype.deleteRepo = function (repoName) {
this.delete.emit(repoName);
};
ListRepositoryComponent.prototype.refresh = function (state) {
if (this.repositories) {
this.paginate.emit(state);
}
};
Object.defineProperty(ListRepositoryComponent.prototype, "listFullMode", {
get: function () {
return this.mode === shared_const_1.ListMode.FULL;
},
enumerable: true,
configurable: true
});
ListRepositoryComponent.prototype.gotoLink = function (projectId, repoName) {
this.searchTrigger.closeSearch(false);
var linkUrl = ['harbor', 'tags', projectId, repoName];
if (!this.session.getCurrentUser()) {
var navigatorExtra = {
queryParams: { "redirect_url": linkUrl.join("/") }
};
this.router.navigate([shared_const_1.signInRoute], navigatorExtra);
}
else {
this.router.navigate(linkUrl);
}
};
__decorate([
core_1.Input(),
__metadata('design:type', Number)
], ListRepositoryComponent.prototype, "projectId", void 0);
__decorate([
core_1.Input(),
__metadata('design:type', Array)
], ListRepositoryComponent.prototype, "repositories", void 0);
__decorate([
core_1.Output(),
__metadata('design:type', Object)
], ListRepositoryComponent.prototype, "delete", void 0);
__decorate([
core_1.Input(),
__metadata('design:type', Number)
], ListRepositoryComponent.prototype, "totalPage", void 0);
__decorate([
core_1.Input(),
__metadata('design:type', Number)
], ListRepositoryComponent.prototype, "totalRecordCount", void 0);
__decorate([
core_1.Output(),
__metadata('design:type', Object)
], ListRepositoryComponent.prototype, "paginate", void 0);
__decorate([
core_1.Input(),
__metadata('design:type', String)
], ListRepositoryComponent.prototype, "mode", void 0);
ListRepositoryComponent = __decorate([
core_1.Component({
selector: 'list-repository',
template: __webpack_require__(851)
}),
__metadata('design:paramtypes', [(typeof (_a = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _a) || Object, (typeof (_b = typeof search_trigger_service_1.SearchTriggerService !== 'undefined' && search_trigger_service_1.SearchTriggerService) === 'function' && _b) || Object, (typeof (_c = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _c) || Object])
], ListRepositoryComponent);
return ListRepositoryComponent;
var _a, _b, _c;
}());
exports.ListRepositoryComponent = ListRepositoryComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/list-repository.component.js.map
/***/ }),
/***/ 620:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/*
{
"id": "2",
"name": "library/mysql",
"owner_id": 1,
"project_id": 1,
"description": "",
"pull_count": 0,
"star_count": 0,
"tags_count": 1,
"creation_time": "2017-02-14T09:22:58Z",
"update_time": "0001-01-01T00:00:00Z"
}
*/
var Repository = (function () {
function Repository(name, tags_count) {
this.name = name;
this.tags_count = tags_count;
}
return Repository;
}());
exports.Repository = Repository;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/repository.js.map
/***/ }),
/***/ 621:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var TagView = (function () {
function TagView() {
}
return TagView;
}());
exports.TagView = TagView;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/tag-view.js.map
/***/ }),
/***/ 622:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var shared_utils_1 = __webpack_require__(33);
var shared_const_1 = __webpack_require__(2);
var message_service_1 = __webpack_require__(10);
var top_repository_service_1 = __webpack_require__(623);
var repository_1 = __webpack_require__(620);
var TopRepoComponent = (function () {
function TopRepoComponent(topRepoService, msgService) {
this.topRepoService = topRepoService;
this.msgService = msgService;
this.topRepos = [];
}
Object.defineProperty(TopRepoComponent.prototype, "listMode", {
get: function () {
return shared_const_1.ListMode.READONLY;
},
enumerable: true,
configurable: true
});
//Implement ngOnIni
TopRepoComponent.prototype.ngOnInit = function () {
this.getTopRepos();
};
//Get top popular repositories
TopRepoComponent.prototype.getTopRepos = function () {
var _this = this;
this.topRepoService.getTopRepos()
.then(function (repos) { return repos.forEach(function (item) {
var repo = new repository_1.Repository(item.name, item.count);
repo.pull_count = 0;
_this.topRepos.push(repo);
}); })
.catch(function (error) {
_this.msgService.announceMessage(error.status, shared_utils_1.errorHandler(error), shared_const_1.AlertType.WARNING);
});
};
TopRepoComponent = __decorate([
core_1.Component({
selector: 'top-repo',
template: __webpack_require__(854),
providers: [top_repository_service_1.TopRepoService]
}),
__metadata('design:paramtypes', [(typeof (_a = typeof top_repository_service_1.TopRepoService !== 'undefined' && top_repository_service_1.TopRepoService) === 'function' && _a) || Object, (typeof (_b = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _b) || Object])
], TopRepoComponent);
return TopRepoComponent;
var _a, _b;
}());
exports.TopRepoComponent = TopRepoComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/top-repo.component.js.map
/***/ }),
/***/ 623:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var http_1 = __webpack_require__(20);
__webpack_require__(58);
exports.topRepoEndpoint = "/api/repositories/top";
/**
* Declare service to handle the top repositories
*
*
* @export
* @class GlobalSearchService
*/
var TopRepoService = (function () {
function TopRepoService(http) {
this.http = http;
this.headers = new http_1.Headers({
"Content-Type": 'application/json'
});
this.options = new http_1.RequestOptions({
headers: this.headers
});
}
/**
* Get top popular repositories
*
* @param {string} keyword
* @returns {Promise<TopRepo>}
*
* @memberOf GlobalSearchService
*/
TopRepoService.prototype.getTopRepos = function () {
return this.http.get(exports.topRepoEndpoint, this.options).toPromise()
.then(function (response) { return response.json(); })
.catch(function (error) { return Promise.reject(error); });
};
TopRepoService = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object])
], TopRepoService);
return TopRepoService;
var _a;
}());
exports.TopRepoService = TopRepoService;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/top-repository.service.js.map
/***/ }),
/***/ 624:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var CreateEditPolicy = (function () {
function CreateEditPolicy() {
}
return CreateEditPolicy;
}());
exports.CreateEditPolicy = CreateEditPolicy;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/create-edit-policy.js.map
/***/ }),
/***/ 625:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var core_2 = __webpack_require__(34);
var deletion_dialog_service_1 = __webpack_require__(48);
var DeletionDialogComponent = (function () {
function DeletionDialogComponent(delService, translate) {
var _this = this;
this.delService = delService;
this.translate = translate;
this.opened = false;
this.dialogTitle = "";
this.dialogContent = "";
this.annouceSubscription = delService.deletionAnnouced$.subscribe(function (msg) {
_this.dialogTitle = msg.title;
_this.dialogContent = msg.message;
_this.message = msg;
_this.translate.get(_this.dialogTitle).subscribe(function (res) { return _this.dialogTitle = res; });
_this.translate.get(_this.dialogContent, { 'param': msg.param }).subscribe(function (res) { return _this.dialogContent = res; });
//Open dialog
_this.open();
});
}
DeletionDialogComponent.prototype.ngOnDestroy = function () {
if (this.annouceSubscription) {
this.annouceSubscription.unsubscribe();
}
};
DeletionDialogComponent.prototype.open = function () {
this.opened = true;
};
DeletionDialogComponent.prototype.close = function () {
this.opened = false;
};
DeletionDialogComponent.prototype.confirm = function () {
this.delService.confirmDeletion(this.message);
this.close();
};
DeletionDialogComponent = __decorate([
core_1.Component({
selector: 'deletion-dialog',
template: __webpack_require__(857),
styles: [__webpack_require__(814)]
}),
__metadata('design:paramtypes', [(typeof (_a = typeof deletion_dialog_service_1.DeletionDialogService !== 'undefined' && deletion_dialog_service_1.DeletionDialogService) === 'function' && _a) || Object, (typeof (_b = typeof core_2.TranslateService !== 'undefined' && core_2.TranslateService) === 'function' && _b) || Object])
], DeletionDialogComponent);
return DeletionDialogComponent;
var _a, _b;
}());
exports.DeletionDialogComponent = DeletionDialogComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/deletion-dialog.component.js.map
/***/ }),
/***/ 626:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var Subject_1 = __webpack_require__(25);
__webpack_require__(461);
__webpack_require__(462);
var FilterComponent = (function () {
function FilterComponent() {
this.placeHolder = "";
this.currentValue = "";
this.leadingSpacesAdded = false;
this.filterTerms = new Subject_1.Subject();
this.filterEvt = new core_1.EventEmitter();
}
Object.defineProperty(FilterComponent.prototype, "flPlaceholder", {
set: function (placeHolder) {
this.placeHolder = placeHolder;
},
enumerable: true,
configurable: true
});
FilterComponent.prototype.ngOnInit = function () {
var _this = this;
this.filterTerms
.debounceTime(300)
.distinctUntilChanged()
.subscribe(function (terms) {
_this.filterEvt.emit(terms);
});
};
FilterComponent.prototype.valueChange = function () {
//Send out filter terms
this.filterTerms.next(this.currentValue.trim());
};
__decorate([
core_1.Output("filter"),
__metadata('design:type', Object)
], FilterComponent.prototype, "filterEvt", void 0);
__decorate([
core_1.Input("filterPlaceholder"),
__metadata('design:type', String),
__metadata('design:paramtypes', [String])
], FilterComponent.prototype, "flPlaceholder", null);
FilterComponent = __decorate([
core_1.Component({
selector: 'grid-filter',
template: __webpack_require__(858),
styles: [__webpack_require__(815)]
}),
__metadata('design:paramtypes', [])
], FilterComponent);
return FilterComponent;
}());
exports.FilterComponent = FilterComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/filter.component.js.map
/***/ }),
/***/ 627:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var HarborActionOverflow = (function () {
function HarborActionOverflow() {
}
HarborActionOverflow = __decorate([
core_1.Component({
selector: "harbor-action-overflow",
template: __webpack_require__(859)
}),
__metadata('design:paramtypes', [])
], HarborActionOverflow);
return HarborActionOverflow;
}());
exports.HarborActionOverflow = HarborActionOverflow;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/harbor-action-overflow.js.map
/***/ }),
/***/ 628:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var replication_service_1 = __webpack_require__(79);
var deletion_dialog_service_1 = __webpack_require__(48);
var deletion_message_1 = __webpack_require__(68);
var shared_const_1 = __webpack_require__(2);
var message_service_1 = __webpack_require__(10);
var shared_const_2 = __webpack_require__(2);
var ListPolicyComponent = (function () {
function ListPolicyComponent(replicationService, deletionDialogService, messageService) {
var _this = this;
this.replicationService = replicationService;
this.deletionDialogService = deletionDialogService;
this.messageService = messageService;
this.reload = new core_1.EventEmitter();
this.selectOne = new core_1.EventEmitter();
this.editOne = new core_1.EventEmitter();
this.subscription = this.subscription = this.deletionDialogService
.deletionConfirm$
.subscribe(function (message) {
if (message && message.targetId === shared_const_1.DeletionTargets.POLICY) {
_this.replicationService
.deletePolicy(message.data)
.subscribe(function (response) {
console.log('Successful delete policy with ID:' + message.data);
_this.reload.emit(true);
}, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to delete policy with ID:' + message.data, shared_const_2.AlertType.DANGER); });
}
});
}
ListPolicyComponent.prototype.ngOnDestroy = function () {
if (this.subscription) {
this.subscription.unsubscribe();
}
};
ListPolicyComponent.prototype.selectPolicy = function (policy) {
this.selectedId = policy.id;
console.log('Select policy ID:' + policy.id);
this.selectOne.emit(policy);
};
ListPolicyComponent.prototype.editPolicy = function (policy) {
console.log('Open modal to edit policy.');
this.editOne.emit(policy.id);
};
ListPolicyComponent.prototype.enablePolicy = function (policy) {
policy.enabled = policy.enabled === 0 ? 1 : 0;
console.log('Enable policy ID:' + policy.id + ' with activation status ' + policy.enabled);
this.replicationService.enablePolicy(policy.id, policy.enabled);
};
ListPolicyComponent.prototype.deletePolicy = function (policy) {
var deletionMessage = new deletion_message_1.DeletionMessage('REPLICATION.DELETION_TITLE', 'REPLICATION.DELETION_SUMMARY', policy.name, policy.id, shared_const_1.DeletionTargets.POLICY);
this.deletionDialogService.openComfirmDialog(deletionMessage);
};
__decorate([
core_1.Input(),
__metadata('design:type', Array)
], ListPolicyComponent.prototype, "policies", void 0);
__decorate([
core_1.Input(),
__metadata('design:type', Boolean)
], ListPolicyComponent.prototype, "projectless", void 0);
__decorate([
core_1.Input(),
__metadata('design:type', Number)
], ListPolicyComponent.prototype, "selectedId", void 0);
__decorate([
core_1.Output(),
__metadata('design:type', Object)
], ListPolicyComponent.prototype, "reload", void 0);
__decorate([
core_1.Output(),
__metadata('design:type', Object)
], ListPolicyComponent.prototype, "selectOne", void 0);
__decorate([
core_1.Output(),
__metadata('design:type', Object)
], ListPolicyComponent.prototype, "editOne", void 0);
ListPolicyComponent = __decorate([
core_1.Component({
selector: 'list-policy',
template: __webpack_require__(861),
}),
__metadata('design:paramtypes', [(typeof (_a = typeof replication_service_1.ReplicationService !== 'undefined' && replication_service_1.ReplicationService) === 'function' && _a) || Object, (typeof (_b = typeof deletion_dialog_service_1.DeletionDialogService !== 'undefined' && deletion_dialog_service_1.DeletionDialogService) === 'function' && _b) || Object, (typeof (_c = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _c) || Object])
], ListPolicyComponent);
return ListPolicyComponent;
var _a, _b, _c;
}());
exports.ListPolicyComponent = ListPolicyComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/list-policy.component.js.map
/***/ }),
/***/ 629:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var forms_1 = __webpack_require__(26);
exports.assiiChars = /[\u4e00-\u9fa5]/;
function maxLengthExtValidator(length) {
return function (control) {
var value = control.value;
if (!value || value.trim() === "") {
return null;
}
var regExp = new RegExp(exports.assiiChars, 'i');
var count = 0;
var len = value.length;
for (var i = 0; i < len; i++) {
if (regExp.test(value[i])) {
count += 3;
}
else {
count++;
}
}
return count > length ? { 'maxLengthExt': count } : null;
};
}
exports.maxLengthExtValidator = maxLengthExtValidator;
var MaxLengthExtValidatorDirective = (function () {
function MaxLengthExtValidatorDirective() {
this.valFn = forms_1.Validators.nullValidator;
}
MaxLengthExtValidatorDirective.prototype.ngOnChanges = function (changes) {
var change = changes['maxLengthExt'];
if (change) {
var val = change.currentValue;
this.valFn = maxLengthExtValidator(val);
}
else {
this.valFn = forms_1.Validators.nullValidator;
}
};
MaxLengthExtValidatorDirective.prototype.validate = function (control) {
return this.valFn(control);
};
__decorate([
core_1.Input(),
__metadata('design:type', Number)
], MaxLengthExtValidatorDirective.prototype, "maxLengthExt", void 0);
MaxLengthExtValidatorDirective = __decorate([
core_1.Directive({
selector: '[maxLengthExt]',
providers: [{ provide: forms_1.NG_VALIDATORS, useExisting: MaxLengthExtValidatorDirective, multi: true }]
}),
__metadata('design:paramtypes', [])
], MaxLengthExtValidatorDirective);
return MaxLengthExtValidatorDirective;
}());
exports.MaxLengthExtValidatorDirective = MaxLengthExtValidatorDirective;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/max-length-ext.directive.js.map
/***/ }),
/***/ 630:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var forms_1 = __webpack_require__(26);
exports.portNumbers = /[\d]+/;
function portValidator() {
return function (control) {
var value = control.value;
if (!value) {
return { 'port': 65535 };
}
var regExp = new RegExp(exports.portNumbers, 'i');
if (!regExp.test(value)) {
return { 'port': 65535 };
}
else {
var portV = parseInt(value);
if (portV <= 0 || portV > 65535) {
return { 'port': 65535 };
}
}
return null;
};
}
exports.portValidator = portValidator;
var PortValidatorDirective = (function () {
function PortValidatorDirective() {
this.valFn = portValidator();
}
PortValidatorDirective.prototype.validate = function (control) {
return this.valFn(control);
};
PortValidatorDirective = __decorate([
core_1.Directive({
selector: '[port]',
providers: [{ provide: forms_1.NG_VALIDATORS, useExisting: PortValidatorDirective, multi: true }]
}),
__metadata('design:paramtypes', [])
], PortValidatorDirective);
return PortValidatorDirective;
}());
exports.PortValidatorDirective = PortValidatorDirective;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/port.directive.js.map
/***/ }),
/***/ 631:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var router_1 = __webpack_require__(8);
var session_service_1 = __webpack_require__(14);
var shared_const_1 = __webpack_require__(2);
var BaseRoutingResolver = (function () {
function BaseRoutingResolver(session, router) {
this.session = session;
this.router = router;
}
BaseRoutingResolver.prototype.resolve = function (route, state) {
var _this = this;
//To refresh seesion
return this.session.retrieveUser()
.then(function (sessionUser) {
return sessionUser;
})
.catch(function (error) {
//Session retrieving failed then redirect to sign-in
//no matter what status code is.
//Please pay attention that route 'harborRootRoute' support anonymous user
if (state.url != shared_const_1.harborRootRoute) {
var navigatorExtra = {
queryParams: { "redirect_url": state.url }
};
_this.router.navigate(['sign-in'], navigatorExtra);
}
});
};
BaseRoutingResolver = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [(typeof (_a = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object])
], BaseRoutingResolver);
return BaseRoutingResolver;
var _a, _b;
}());
exports.BaseRoutingResolver = BaseRoutingResolver;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/base-routing-resolver.service.js.map
/***/ }),
/***/ 632:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/**
* Declare class for store the sign in data,
* two prperties:
* principal: The username used to sign in
* password: The password used to sign in
*
* @export
* @class SignInCredential
*/
var SignInCredential = (function () {
function SignInCredential() {
}
return SignInCredential;
}());
exports.SignInCredential = SignInCredential;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/sign-in-credential.js.map
/***/ }),
/***/ 633:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var statistics_service_1 = __webpack_require__(635);
var shared_utils_1 = __webpack_require__(33);
var shared_const_1 = __webpack_require__(2);
var message_service_1 = __webpack_require__(10);
var statistics_1 = __webpack_require__(636);
var session_service_1 = __webpack_require__(14);
var StatisticsPanelComponent = (function () {
function StatisticsPanelComponent(statistics, msgService, session) {
this.statistics = statistics;
this.msgService = msgService;
this.session = session;
this.originalCopy = new statistics_1.Statistics();
}
StatisticsPanelComponent.prototype.ngOnInit = function () {
if (this.session.getCurrentUser()) {
this.getStatistics();
}
};
StatisticsPanelComponent.prototype.getStatistics = function () {
var _this = this;
this.statistics.getStatistics()
.then(function (statistics) { return _this.originalCopy = statistics; })
.catch(function (error) {
_this.msgService.announceMessage(error.status, shared_utils_1.errorHandler(error), shared_const_1.AlertType.WARNING);
});
};
Object.defineProperty(StatisticsPanelComponent.prototype, "isValidSession", {
get: function () {
var user = this.session.getCurrentUser();
return user && user.has_admin_role > 0;
},
enumerable: true,
configurable: true
});
StatisticsPanelComponent = __decorate([
core_1.Component({
selector: 'statistics-panel',
template: __webpack_require__(864),
styles: [__webpack_require__(458)],
providers: [statistics_service_1.StatisticsService]
}),
__metadata('design:paramtypes', [(typeof (_a = typeof statistics_service_1.StatisticsService !== 'undefined' && statistics_service_1.StatisticsService) === 'function' && _a) || Object, (typeof (_b = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _b) || Object, (typeof (_c = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _c) || Object])
], StatisticsPanelComponent);
return StatisticsPanelComponent;
var _a, _b, _c;
}());
exports.StatisticsPanelComponent = StatisticsPanelComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/statistics-panel.component.js.map
/***/ }),
/***/ 634:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var StatisticsComponent = (function () {
function StatisticsComponent() {
}
__decorate([
core_1.Input(),
__metadata('design:type', Object)
], StatisticsComponent.prototype, "data", void 0);
StatisticsComponent = __decorate([
core_1.Component({
selector: 'statistics',
template: __webpack_require__(865),
styles: [__webpack_require__(458)]
}),
__metadata('design:paramtypes', [])
], StatisticsComponent);
return StatisticsComponent;
}());
exports.StatisticsComponent = StatisticsComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/statistics.component.js.map
/***/ }),
/***/ 635:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var http_1 = __webpack_require__(20);
__webpack_require__(58);
exports.statisticsEndpoint = "/api/statistics";
/**
* Declare service to handle the top repositories
*
*
* @export
* @class GlobalSearchService
*/
var StatisticsService = (function () {
function StatisticsService(http) {
this.http = http;
this.headers = new http_1.Headers({
"Content-Type": 'application/json'
});
this.options = new http_1.RequestOptions({
headers: this.headers
});
}
StatisticsService.prototype.getStatistics = function () {
return this.http.get(exports.statisticsEndpoint, this.options).toPromise()
.then(function (response) { return response.json(); })
.catch(function (error) { return Promise.reject(error); });
};
StatisticsService = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object])
], StatisticsService);
return StatisticsService;
var _a;
}());
exports.StatisticsService = StatisticsService;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/statistics.service.js.map
/***/ }),
/***/ 636:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var Statistics = (function () {
function Statistics() {
}
return Statistics;
}());
exports.Statistics = Statistics;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/statistics.js.map
/***/ }),
/***/ 637:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var shared_module_1 = __webpack_require__(52);
var user_component_1 = __webpack_require__(413);
var new_user_modal_component_1 = __webpack_require__(412);
var user_service_1 = __webpack_require__(175);
var UserModule = (function () {
function UserModule() {
}
UserModule = __decorate([
core_1.NgModule({
imports: [
shared_module_1.SharedModule
],
declarations: [
user_component_1.UserComponent,
new_user_modal_component_1.NewUserModalComponent
],
exports: [
user_component_1.UserComponent
],
providers: [user_service_1.UserService]
}),
__metadata('design:paramtypes', [])
], UserModule);
return UserModule;
}());
exports.UserModule = UserModule;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/user.module.js.map
/***/ }),
/***/ 638:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/**
* For user management
*
* @export
* @class User
*/
var User = (function () {
function User() {
}
return User;
}());
exports.User = User;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/user.js.map
/***/ }),
/***/ 639:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
// The file contents for the current environment will overwrite these during build.
// The build system defaults to the dev environment which uses `environment.ts`, but if you do
// `ng build --env=prod` then `environment.prod.ts` will be used instead.
// The list of which env maps to which file can be found in `angular-cli.json`.
exports.environment = {
production: false
};
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/environment.js.map
/***/ }),
/***/ 640:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
// This file includes polyfills needed by Angular 2 and is loaded before
// the app. You can add your own extra polyfills to this file.
__webpack_require__(657);
__webpack_require__(650);
__webpack_require__(646);
__webpack_require__(652);
__webpack_require__(651);
__webpack_require__(649);
__webpack_require__(648);
__webpack_require__(656);
__webpack_require__(645);
__webpack_require__(644);
__webpack_require__(654);
__webpack_require__(647);
__webpack_require__(655);
__webpack_require__(653);
__webpack_require__(658);
__webpack_require__(902);
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/polyfills.js.map
/***/ }),
/***/ 68:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var shared_const_1 = __webpack_require__(2);
var DeletionMessage = (function () {
function DeletionMessage(title, message, param, data, targetId) {
this.targetId = shared_const_1.DeletionTargets.EMPTY;
this.title = title;
this.message = message;
this.data = data;
this.targetId = targetId;
this.param = param;
}
return DeletionMessage;
}());
exports.DeletionMessage = DeletionMessage;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/deletion-message.js.map
/***/ }),
/***/ 79:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var http_1 = __webpack_require__(20);
var base_service_1 = __webpack_require__(251);
var Observable_1 = __webpack_require__(3);
__webpack_require__(133);
__webpack_require__(85);
__webpack_require__(132);
__webpack_require__(463);
var ReplicationService = (function (_super) {
__extends(ReplicationService, _super);
function ReplicationService(http) {
_super.call(this);
this.http = http;
}
ReplicationService.prototype.listPolicies = function (policyName, projectId) {
if (!projectId) {
projectId = '';
}
console.log('Get policies with project ID:' + projectId + ', policy name:' + policyName);
return this.http
.get("/api/policies/replication?project_id=" + projectId + "&name=" + policyName)
.map(function (response) { return response.json(); })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
ReplicationService.prototype.getPolicy = function (policyId) {
console.log('Get policy with ID:' + policyId);
return this.http
.get("/api/policies/replication/" + policyId)
.map(function (response) { return response.json(); })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
ReplicationService.prototype.createPolicy = function (policy) {
console.log('Create policy with project ID:' + policy.project_id + ', policy:' + JSON.stringify(policy));
return this.http
.post("/api/policies/replication", JSON.stringify(policy))
.map(function (response) { return response.status; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
ReplicationService.prototype.updatePolicy = function (policy) {
if (policy && policy.id) {
return this.http
.put("/api/policies/replication/" + policy.id, JSON.stringify(policy))
.map(function (response) { return response.status; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
}
return Observable_1.Observable.throw(new Error("Policy is nil or has no ID set."));
};
ReplicationService.prototype.createOrUpdatePolicyWithNewTarget = function (policy, target) {
var _this = this;
return this.http
.post("/api/targets", JSON.stringify(target))
.map(function (response) {
return response.status;
})
.catch(function (error) { return Observable_1.Observable.throw(error); })
.flatMap(function (status) {
if (status === 201) {
return _this.http
.get("/api/targets?name=" + target.name)
.map(function (res) { return res; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
}
})
.flatMap(function (res) {
if (res.status === 200) {
var lastAddedTarget = res.json()[0];
if (lastAddedTarget && lastAddedTarget.id) {
policy.target_id = lastAddedTarget.id;
if (policy.id) {
return _this.http
.put("/api/policies/replication/" + policy.id, JSON.stringify(policy))
.map(function (response) { return response.status; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
}
else {
return _this.http
.post("/api/policies/replication", JSON.stringify(policy))
.map(function (response) { return response.status; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
}
}
}
})
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
ReplicationService.prototype.enablePolicy = function (policyId, enabled) {
console.log('Enable or disable policy ID:' + policyId + ' with activation status:' + enabled);
return this.http
.put("/api/policies/replication/" + policyId + "/enablement", { enabled: enabled })
.map(function (response) { return response.status; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
ReplicationService.prototype.deletePolicy = function (policyId) {
console.log('Delete policy ID:' + policyId);
return this.http
.delete("/api/policies/replication/" + policyId)
.map(function (response) { return response.status; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
// /api/jobs/replication/?page=1&page_size=20&end_time=&policy_id=1&start_time=&status=&repository=
ReplicationService.prototype.listJobs = function (policyId, status, repoName, startTime, endTime, page, pageSize) {
if (status === void 0) { status = ''; }
if (repoName === void 0) { repoName = ''; }
if (startTime === void 0) { startTime = ''; }
if (endTime === void 0) { endTime = ''; }
console.log('Get jobs under policy ID:' + policyId);
return this.http
.get("/api/jobs/replication?policy_id=" + policyId + "&status=" + status + "&repository=" + repoName + "&start_time=" + startTime + "&end_time=" + endTime + "&page=" + page + "&page_size=" + pageSize)
.map(function (response) { return response; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
ReplicationService.prototype.listTargets = function (targetName) {
console.log('Get targets.');
return this.http
.get("/api/targets?name=" + targetName)
.map(function (response) { return response.json(); })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
ReplicationService.prototype.getTarget = function (targetId) {
console.log('Get target by ID:' + targetId);
return this.http
.get("/api/targets/" + targetId)
.map(function (response) { return response.json(); })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
ReplicationService.prototype.createTarget = function (target) {
console.log('Create target:' + JSON.stringify(target));
return this.http
.post("/api/targets", JSON.stringify(target))
.map(function (response) { return response.status; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
ReplicationService.prototype.pingTarget = function (target) {
console.log('Ping target.');
var body = new http_1.URLSearchParams();
body.set('endpoint', target.endpoint);
body.set('username', target.username);
body.set('password', target.password);
return this.http
.post("/api/targets/ping", body)
.map(function (response) { return response.status; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
ReplicationService.prototype.updateTarget = function (target) {
console.log('Update target with target ID' + target.id);
return this.http
.put("/api/targets/" + target.id, JSON.stringify(target))
.map(function (response) { return response.status; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
ReplicationService.prototype.deleteTarget = function (targetId) {
console.log('Deleting target with ID:' + targetId);
return this.http
.delete("/api/targets/" + targetId)
.map(function (response) { return response.status; })
.catch(function (error) { return Observable_1.Observable.throw(error); });
};
ReplicationService = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object])
], ReplicationService);
return ReplicationService;
var _a;
}(base_service_1.BaseService));
exports.ReplicationService = ReplicationService;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/replication.service.js.map
/***/ }),
/***/ 80:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var core_2 = __webpack_require__(34);
var shared_utils_1 = __webpack_require__(33);
var InlineAlertComponent = (function () {
function InlineAlertComponent(translate) {
this.translate = translate;
this.inlineAlertType = 'alert-danger';
this.inlineAlertClosable = true;
this.alertClose = true;
this.displayedText = "";
this.showCancelAction = false;
this.useAppLevelStyle = false;
this.confirmEvt = new core_1.EventEmitter();
}
Object.defineProperty(InlineAlertComponent.prototype, "errorMessage", {
get: function () {
return this.displayedText;
},
enumerable: true,
configurable: true
});
//Show error message inline
InlineAlertComponent.prototype.showInlineError = function (error) {
this.displayedText = shared_utils_1.errorHandler(error);
this.inlineAlertType = 'alert-danger';
this.showCancelAction = false;
this.inlineAlertClosable = true;
this.alertClose = false;
this.useAppLevelStyle = false;
};
//Show confirmation info with action button
InlineAlertComponent.prototype.showInlineConfirmation = function (warning) {
var _this = this;
this.displayedText = "";
if (warning && warning.message) {
this.translate.get(warning.message).subscribe(function (res) { return _this.displayedText = res; });
}
this.inlineAlertType = 'alert-warning';
this.showCancelAction = true;
this.inlineAlertClosable = true;
this.alertClose = false;
this.useAppLevelStyle = true;
};
//Show inline sccess info
InlineAlertComponent.prototype.showInlineSuccess = function (info) {
var _this = this;
this.displayedText = "";
if (info && info.message) {
this.translate.get(info.message).subscribe(function (res) { return _this.displayedText = res; });
}
this.inlineAlertType = 'alert-success';
this.showCancelAction = false;
this.inlineAlertClosable = true;
this.alertClose = false;
this.useAppLevelStyle = false;
};
//Close alert
InlineAlertComponent.prototype.close = function () {
this.alertClose = true;
};
InlineAlertComponent.prototype.confirmCancel = function () {
this.confirmEvt.emit(true);
};
__decorate([
core_1.Output(),
__metadata('design:type', Object)
], InlineAlertComponent.prototype, "confirmEvt", void 0);
InlineAlertComponent = __decorate([
core_1.Component({
selector: 'inline-alert',
template: __webpack_require__(860)
}),
__metadata('design:paramtypes', [(typeof (_a = typeof core_2.TranslateService !== 'undefined' && core_2.TranslateService) === 'function' && _a) || Object])
], InlineAlertComponent);
return InlineAlertComponent;
var _a;
}());
exports.InlineAlertComponent = InlineAlertComponent;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/inline-alert.component.js.map
/***/ }),
/***/ 802:
/***/ (function(module, exports) {
module.exports = ".progress-size-small {\n height: 0.5em !important;\n}\n\n.visibility-hidden {\n visibility: hidden;\n}\n\n.forgot-password-link {\n position: relative;\n line-height: 36px;\n font-size: 14px;\n float: right;\n top: -5px;\n}"
/***/ }),
/***/ 803:
/***/ (function(module, exports) {
module.exports = ".search-overlay {\n display: block;\n position: absolute;\n height: 100%;\n width: 98%;\n /*shoud be lesser than 1000 to aoivd override the popup menu*/\n z-index: 999;\n box-sizing: border-box;\n background: #fafafa;\n top: 0px;\n padding-left: 24px;\n}\n\n.search-header {\n display: inline-block;\n width: 100%;\n position: relative;\n}\n\n.search-title {\n font-size: 28px;\n letter-spacing: normal;\n color: #000;\n}\n\n.search-close {\n position: absolute;\n right: 24px;\n cursor: pointer;\n}\n\n.search-parent-override {\n position: relative !important;\n}\n\n.search-spinner {\n top: 50%;\n left: 50%;\n position: absolute;\n}\n\n.grid-header-wrapper {\n text-align: right;\n}\n\n.grid-filter {\n position: relative;\n top: 8px;\n margin: 0px auto 0px auto;\n}"
/***/ }),
/***/ 804:
/***/ (function(module, exports) {
module.exports = ".side-nav-override {\n box-shadow: 6px 0px 0px 0px #ccc;\n}\n\n.container-override {\n position: relative !important;\n}\n\n.start-content-padding {\n padding-top: 0px !important;\n padding-bottom: 0px !important;\n padding-left: 0px !important;\n}"
/***/ }),
/***/ 805:
/***/ (function(module, exports) {
module.exports = ".sign-in-override {\n padding-left: 0px !important;\n padding-right: 5px !important;\n}\n\n.sign-up-override {\n padding-left: 5px !important;\n}\n\n.custom-divider {\n display: inline-block;\n border-right: 2px inset snow;\n padding: 2px 0px 2px 0px;\n vertical-align: middle;\n height: 24px;\n}\n\n.lang-selected {\n font-weight: bold;\n}\n\n.nav-divider {\n display: inline-block;\n width: 1px;\n height: 40px;\n background-color: #fafafa;\n position: relative;\n top: 10px;\n}"
/***/ }),
/***/ 806:
/***/ (function(module, exports) {
module.exports = ".start-card {\n border-right: 1px solid #cccccc;\n padding: 24px;\n background-color: white;\n height: 100%;\n}\n\n.row-fill-height {\n height: 100%;\n}\n\n.row-margin {\n margin-left: 24px;\n}\n\n.column-fill-height {\n height: 100%;\n}\n\n.my-card-img {\n background-image: url('../../../images/harbor-logo.png');\n background-repeat: no-repeat;\n background-size: contain;\n height: 160px;\n}\n\n.my-card-footer {\n float: right;\n margin-top: 100px;\n}"
/***/ }),
/***/ 807:
/***/ (function(module, exports) {
module.exports = ".advance-option {\n font-size: 12px;\n}\n"
/***/ }),
/***/ 808:
/***/ (function(module, exports) {
module.exports = ".h2-log-override {\n margin-top: 0px !important;\n}\n\n.filter-log {\n float: right;\n margin-right: 24px;\n position: relative;\n top: 8px;\n}\n\n.action-head-pos {\n position: relative;\n top: 20px;\n}\n\n.refresh-btn {\n position: absolute;\n right: -4px;\n top: 8px;\n cursor: pointer;\n}\n\n.custom-lines-button {\n padding: 0px !important;\n min-width: 25px !important;\n}\n\n.lines-button-toggole {\n font-size: 16px;\n text-decoration: underline;\n}"
/***/ }),
/***/ 809:
/***/ (function(module, exports) {
module.exports = ""
/***/ }),
/***/ 810:
/***/ (function(module, exports) {
module.exports = ".display-in-line {\n display: inline-block;\n}\n\n.project-title {\n margin-left: 10px; \n}\n\n.pull-right {\n float: right !important;\n}"
/***/ }),
/***/ 811:
/***/ (function(module, exports) {
module.exports = ""
/***/ }),
/***/ 812:
/***/ (function(module, exports) {
module.exports = ".custom-h2 {\n margin-top: 0px !important;\n}\n\n.custom-add-button {\n font-size: medium;\n margin-left: -12px;\n}\n\n.filter-icon {\n position: relative;\n right: -12px;\n}\n\n.filter-pos {\n float: right;\n margin-right: 24px;\n position: relative;\n top: 8px;\n}\n\n.action-panel-pos {\n position: relative;\n top: 20px;\n}\n\n.refresh-btn {\n position: absolute;\n right: -4px;\n top: 8px;\n cursor: pointer;\n}"
/***/ }),
/***/ 813:
/***/ (function(module, exports) {
module.exports = ".margin-left-override {\n margin-left: 24px !important;\n}\n\n.about-text-link {\n font-family: \"Proxima Nova Light\";\n font-size: 14px;\n color: #007CBB;\n line-height: 24px;\n}\n\n.about-copyright-text {\n font-family: \"Proxima Nova Light\";\n font-size: 13px;\n color: #565656;\n line-height: 16px;\n}\n\n.about-product-title {\n font-family: \"Metropolis Light\";\n font-size: 28px;\n color: #000000;\n line-height: 36px;\n}\n\n.about-version {\n font-family: \"Metropolis\";\n font-size: 14px;\n color: #565656;\n font-weight: 500;\n}\n\n.about-build {\n font-family: \"Metropolis\";\n font-size: 14px;\n color: #565656;\n}"
/***/ }),
/***/ 814:
/***/ (function(module, exports) {
module.exports = ".deletion-icon-inline {\n display: inline-block;\n}\n\n.deletion-title {\n line-height: 24px;\n color: #000000;\n font-size: 22px;\n}\n\n.deletion-content {\n font-size: 14px;\n color: #565656;\n line-height: 24px;\n display: inline-block;\n vertical-align: middle;\n width: 80%;\n}"
/***/ }),
/***/ 815:
/***/ (function(module, exports) {
module.exports = ".filter-icon {\n position: relative;\n right: -12px;\n}"
/***/ }),
/***/ 816:
/***/ (function(module, exports) {
module.exports = ".label-info {\n margin: 0px !important;\n padding: 0px !important;\n margin-top: -5px !important;\n}"
/***/ }),
/***/ 817:
/***/ (function(module, exports) {
module.exports = ".wrapper-back {\n position: absolute;\n top: 50%;\n height: 240px;\n margin-top: -120px;\n text-align: center;\n left: 50%;\n margin-left: -300px;\n}\n\n.status-code {\n font-weight: bolder;\n font-size: 4em;\n color: #A32100;\n vertical-align: middle;\n}\n\n.status-text {\n font-weight: bold;\n font-size: 3em;\n margin-left: 10px;\n vertical-align: middle;\n}\n\n.status-subtitle {\n font-size: 18px;\n}\n\n.second-number {\n font-weight: bold;\n font-size: 2em;\n color: #EB8D00;\n}"
/***/ }),
/***/ 818:
/***/ (function(module, exports) {
module.exports = ".custom-h2 {\n margin-top: 0px !important;\n}\n\n.custom-add-button {\n font-size: medium;\n margin-left: -12px;\n}\n\n.filter-icon {\n position: relative;\n right: -12px;\n}\n\n.filter-pos {\n float: right;\n margin-right: 24px;\n position: relative;\n top: 8px;\n}\n\n.action-panel-pos {\n position: relative;\n top: 20px;\n}\n\n.refresh-btn {\n position: absolute;\n right: -4px;\n top: 8px;\n cursor: pointer;\n}"
/***/ }),
/***/ 820:
/***/ (function(module, exports) {
module.exports = "<clr-modal [(clrModalOpen)]=\"opened\" [clrModalStaticBackdrop]=\"staticBackdrop\">\n <h3 class=\"modal-title\">{{'PROFILE.TITLE' | translate}}</h3>\n <div class=\"modal-body\" style=\"overflow-y: hidden;\">\n <form #accountSettingsFrom=\"ngForm\" class=\"form\">\n <section class=\"form-block\">\n <div class=\"form-group\">\n <label for=\"account_settings_username\" class=\"col-md-4\">{{'PROFILE.USER_NAME' | translate}}</label>\n <input type=\"text\" name=\"account_settings_username\" [(ngModel)]=\"account.username\" disabled id=\"account_settings_username\" size=\"31\">\n </div>\n <div class=\"form-group\">\n <label for=\"account_settings_email\" class=\"col-md-4 required\">{{'PROFILE.EMAIL' | translate}}</label>\n <label for=\"account_settings_email\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-top-left\" [class.invalid]=\"eamilInput.invalid && (eamilInput.dirty || eamilInput.touched)\">\n <input name=\"account_settings_email\" type=\"text\" #eamilInput=\"ngModel\" [(ngModel)]=\"account.email\" \n required \n pattern='^[a-zA-Z0-9.!#$%&*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$' id=\"account_settings_email\" size=\"28\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.EMAIL' | translate}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"account_settings_full_name\" class=\"col-md-4 required\">{{'PROFILE.FULL_NAME' | translate}}</label>\n <label for=\"account_settings_full_name\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-top-left\" [class.invalid]=\"fullNameInput.invalid && (fullNameInput.dirty || fullNameInput.touched)\">\n <input type=\"text\" name=\"account_settings_full_name\" #fullNameInput=\"ngModel\" [(ngModel)]=\"account.realname\" required maxLengthExt=\"20\" id=\"account_settings_full_name\" size=\"28\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.FULL_NAME' | translate}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"account_settings_comments\" class=\"col-md-4\">{{'PROFILE.COMMENT' | translate}}</label>\n <label for=\"account_settings_comments\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-top-left\" [class.invalid]=\"commentInput.invalid && (commentInput.dirty || commentInput.touched)\">\n <input type=\"text\" #commentInput=\"ngModel\" maxLengthExt=\"20\" name=\"account_settings_comments\" [(ngModel)]=\"account.comment\" id=\"account_settings_comments\" size=\"28\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.COMMENT' | translate}}\n </span>\n </label>\n </div>\n </section>\n </form>\n <inline-alert (confirmEvt)=\"confirmCancel($event)\"></inline-alert>\n </div>\n <div class=\"modal-footer\">\n <span class=\"spinner spinner-inline\" style=\"top:8px;\" [hidden]=\"showProgress === false\"></span>\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"close()\">{{'BUTTON.CANCEL' | translate}}</button>\n <button type=\"button\" class=\"btn btn-primary\" [disabled]=\"!isValid || showProgress\" (click)=\"submit()\">{{'BUTTON.OK' | translate}}</button>\n </div>\n</clr-modal>"
/***/ }),
/***/ 821:
/***/ (function(module, exports) {
module.exports = "<clr-modal [(clrModalOpen)]=\"opened\" [clrModalStaticBackdrop]=\"true\">\n <h3 class=\"modal-title\">{{'RESET_PWD.TITLE' | translate}}</h3>\n <label class=\"modal-title reset-modal-title-override\">{{'RESET_PWD.CAPTION' | translate}}</label>\n <div class=\"modal-body\" style=\"overflow-y: hidden;\">\n <form #forgotPasswordFrom=\"ngForm\" class=\"form\">\n <section class=\"form-block\">\n <div class=\"form-group\">\n <label for=\"reset_pwd_email\" class=\"col-md-4 required\">{{'RESET_PWD.EMAIL' | translate}}</label>\n <label for=\"reset_pwd_email\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-bottom-left\" [class.invalid]=\"validationState === false\">\n <input name=\"reset_pwd_email\" type=\"text\" #eamilInput=\"ngModel\" [(ngModel)]=\"email\" \n required \n pattern='^[a-zA-Z0-9.!#$%&*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$' \n id=\"reset_pwd_email\" \n size=\"36\"\n (input)=\"handleValidation(true)\" \n (focusout)=\"handleValidation(false)\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.EMAIL' | translate}}\n </span>\n </label>\n </div>\n </section>\n </form>\n <inline-alert></inline-alert>\n <div style=\"height: 30px;\"></div>\n </div>\n <div class=\"modal-footer\">\n <span class=\"spinner spinner-inline\" style=\"top:8px;\" [hidden]=\"showProgress === false\"></span>\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"close()\">{{'BUTTON.CANCEL' | translate}}</button>\n <button type=\"button\" class=\"btn btn-primary\" [disabled]=\"!isValid || showProgress\" (click)=\"send()\">{{'BUTTON.SEND' | translate}}</button>\n </div>\n</clr-modal>"
/***/ }),
/***/ 822:
/***/ (function(module, exports) {
module.exports = "<clr-modal [(clrModalOpen)]=\"opened\" [clrModalStaticBackdrop]=\"true\">\n <h3 class=\"modal-title\">{{'CHANGE_PWD.TITLE' | translate}}</h3>\n <div class=\"modal-body\" style=\"min-height: 250px; overflow-y: hidden;\">\n <form #changepwdForm=\"ngForm\" class=\"form\">\n <section class=\"form-block\">\n <div class=\"form-group\">\n <label for=\"oldPassword\">{{'CHANGE_PWD.CURRENT_PWD' | translate}}</label>\n <label for=\"oldPassword\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-bottom-left\" [class.invalid]=\"oldPassInput.invalid && (oldPassInput.dirty || oldPassInput.touched)\">\n <input type=\"password\" id=\"oldPassword\" placeholder='{{\"PLACEHOLDER.CURRENT_PWD\" | translate}}'\n required\n name=\"oldPassword\"\n [(ngModel)]=\"oldPwd\"\n #oldPassInput=\"ngModel\" size=\"25\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.CURRENT_PWD' | translate}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"newPassword\">{{'CHANGE_PWD.NEW_PWD' | translate}}</label>\n <label for=\"newPassword\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-top-left\" [class.invalid]=\"newPassInput.invalid && (newPassInput.dirty || newPassInput.touched)\">\n <input type=\"password\" id=\"newPassword\" placeholder='{{\"PLACEHOLDER.NEW_PWD\" | translate}}'\n required\n pattern=\"^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d]{7,}$\"\n name=\"newPassword\"\n [(ngModel)]=\"newPwd\"\n #newPassInput=\"ngModel\" size=\"25\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.PASSWORD' | translate}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"reNewPassword\">{{'CHANGE_PWD.CONFIRM_PWD' | translate}}</label>\n <label for=\"reNewPassword\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-top-left\" [class.invalid]=\"(reNewPassInput.invalid && (reNewPassInput.dirty || reNewPassInput.touched)) || (!newPassInput.invalid && reNewPassInput.value != newPassInput.value)\">\n <input type=\"password\" id=\"reNewPassword\" placeholder='{{\"PLACEHOLDER.CONFIRM_PWD\" | translate}}'\n required\n pattern=\"^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d]{7,}$\"\n name=\"reNewPassword\"\n [(ngModel)]=\"reNewPwd\"\n #reNewPassInput=\"ngModel\" size=\"25\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.CONFIRM_PWD' | translate}}\n </span>\n </label>\n </div>\n </section>\n <inline-alert (confirmEvt)=\"confirmCancel($event)\"></inline-alert>\n </form>\n </div>\n <div class=\"modal-footer\">\n <span class=\"spinner spinner-inline\" style=\"top:8px;\" [hidden]=\"showProgress === false\"></span>\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"close()\">{{'BUTTON.CANCEL' | translate}}</button>\n <button type=\"button\" class=\"btn btn-primary\" [disabled]=\"!isValid || showProgress\" (click)=\"doOk()\">{{'BUTTON.OK' | translate}}</button>\n </div>\n</clr-modal>"
/***/ }),
/***/ 823:
/***/ (function(module, exports) {
module.exports = "<clr-modal [(clrModalOpen)]=\"opened\" [clrModalStaticBackdrop]=\"true\">\n <h3 class=\"modal-title\">{{'RESET_PWD.TITLE' | translate}}</h3>\n <label class=\"modal-title reset-modal-title-override\">{{'RESET_PWD.CAPTION2' | translate}}</label>\n <div class=\"modal-body\" style=\"overflow-y: hidden;\">\n <form #resetPwdForm=\"ngForm\" class=\"form\">\n <section class=\"form-block\">\n <div class=\"form-group\">\n <label for=\"newPassword\">{{'CHANGE_PWD.NEW_PWD' | translate}}</label>\n <label for=\"newPassword\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-bottom-left\" [class.invalid]='getValidationState(\"newPassword\") === false'>\n <input type=\"password\" id=\"newPassword\" placeholder='{{\"PLACEHOLDER.NEW_PWD\" | translate}}'\n required\n pattern=\"^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d]{7,}$\"\n name=\"newPassword\"\n [(ngModel)]=\"password\"\n #newPassInput=\"ngModel\" \n size=\"25\"\n (input)='handleValidation(\"newPassword\", true)'\n (focusout)='handleValidation(\"newPassword\", false)'>\n <span class=\"tooltip-content\">\n {{'TOOLTIP.PASSWORD' | translate}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"reNewPassword\">{{'CHANGE_PWD.CONFIRM_PWD' | translate}}</label>\n <label for=\"reNewPassword\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-bottom-left\" [class.invalid]='getValidationState(\"reNewPassword\") === false'>\n <input type=\"password\" id=\"reNewPassword\" placeholder='{{\"PLACEHOLDER.CONFIRM_PWD\" | translate}}'\n required\n pattern=\"^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d]{7,}$\"\n name=\"reNewPassword\"\n [(ngModel)]=\"ngModel\"\n #reNewPassInput \n size=\"25\"\n (input)='handleValidation(\"reNewPassword\", true)' \n (focusout)='handleValidation(\"reNewPassword\", false)'>\n <span class=\"tooltip-content\">\n {{'TOOLTIP.CONFIRM_PWD' | translate}}\n </span>\n </label>\n </div>\n </section>\n <inline-alert></inline-alert>\n <div style=\"height: 30px;\"></div>\n </form>\n </div>\n <div class=\"modal-footer\">\n <span class=\"spinner spinner-inline\" style=\"top:8px;\" [hidden]=\"showProgress === false\"></span>\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"close()\">{{'BUTTON.CANCEL' | translate}}</button>\n <button type=\"button\" class=\"btn btn-primary\" [disabled]=\"!isValid || showProgress\" (click)=\"send()\">{{'BUTTON.OK' | translate}}</button>\n </div>\n</clr-modal>"
/***/ }),
/***/ 824:
/***/ (function(module, exports) {
module.exports = "<div class=\"login-wrapper\">\n <form #signInForm=\"ngForm\" class=\"login\">\n <label class=\"title\">\n VMware Harbor<span class=\"trademark\">&#8482;</span>\n </label>\n <div class=\"login-group\">\n <label for=\"username\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-top-left\" [class.invalid]=\"userNameInput.invalid && (userNameInput.dirty || userNameInput.touched)\">\n <input class=\"username\" type=\"text\" required\n [(ngModel)]=\"signInCredential.principal\" \n name=\"login_username\" id=\"login_username\" placeholder='{{\"PLACEHOLDER.SIGN_IN_NAME\" | translate}}'\n #userNameInput='ngModel'>\n <span class=\"tooltip-content\">\n {{ 'TOOLTIP.SIGN_IN_USERNAME' | translate }}\n </span>\n </label>\n <label for=\"username\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-top-left\" [class.invalid]=\"passwordInput.invalid && (passwordInput.dirty || passwordInput.touched)\">\n <input class=\"password\" type=\"password\" required \n [(ngModel)]=\"signInCredential.password\" \n name=\"login_password\" id=\"login_password\" placeholder='{{\"PLACEHOLDER.SIGN_IN_PWD\" | translate}}'\n #passwordInput=\"ngModel\">\n <span class=\"tooltip-content\">\n {{ 'TOOLTIP.SIGN_IN_PWD' | translate }}\n </span>\n </label>\n <div class=\"checkbox\">\n <input type=\"checkbox\" id=\"rememberme\">\n <label for=\"rememberme\">{{ 'SIGN_IN.REMEMBER' | translate }}</label>\n <a href=\"javascript:void(0)\" class=\"forgot-password-link\" (click)=\"forgotPassword()\">{{'SIGN_IN.FORGOT_PWD' | translate}}</a>\n </div>\n <div [class.visibility-hidden]=\"!isError\" class=\"error active\">\n {{ 'SIGN_IN.INVALID_MSG' | translate }}\n </div>\n <button [disabled]=\"isOnGoing || !isValid\" type=\"submit\" class=\"btn btn-primary\" (click)=\"signIn()\">{{ 'BUTTON.LOG_IN' | translate }}</button>\n <a href=\"javascript:void(0)\" class=\"signup\" (click)=\"signUp()\" *ngIf=\"selfSignUp\">{{ 'BUTTON.SIGN_UP_LINK' | translate }}</a>\n </div>\n </form>\n</div>\n<sign-up #signupDialog></sign-up>\n<forgot-password #forgotPwdDialog></forgot-password>"
/***/ }),
/***/ 825:
/***/ (function(module, exports) {
module.exports = "<clr-modal [(clrModalOpen)]=\"opened\" [clrModalStaticBackdrop]=\"staticBackdrop\" [clrModalClosable]=\"true\">\n <h3 class=\"modal-title\">{{'SIGN_UP.TITLE' | translate}}</h3>\n <div class=\"modal-body\" style=\"overflow-y: hidden;\">\n <new-user-form isSelfRegistration=\"true\" (valueChange)=\"formValueChange($event)\"></new-user-form>\n <inline-alert (confirmEvt)=\"confirmCancel($event)\"></inline-alert>\n </div>\n <div class=\"modal-footer\">\n <span class=\"spinner spinner-inline\" style=\"top:8px;\" [hidden]=\"inProgress === false\"> </span>\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"close()\">{{'BUTTON.CANCEL' | translate}}</button>\n <button type=\"button\" class=\"btn btn-primary\" [disabled]=\"!isValid || inProgress\" (click)=\"create()\">{{ 'BUTTON.SIGN_UP' | translate }}</button>\n </div>\n</clr-modal>"
/***/ }),
/***/ 826:
/***/ (function(module, exports) {
module.exports = "<router-outlet></router-outlet>"
/***/ }),
/***/ 827:
/***/ (function(module, exports) {
module.exports = ""
/***/ }),
/***/ 828:
/***/ (function(module, exports) {
module.exports = "<form class=\"search\">\n <label for=\"search_input\">\n <input #globalSearchBox id=\"search_input\" type=\"text\" (keyup)=\"search(globalSearchBox.value)\" placeholder='{{\"GLOBAL_SEARCH.PLACEHOLDER\" | translate}}'>\n </label>\n</form>"
/***/ }),
/***/ 829:
/***/ (function(module, exports) {
module.exports = "<div class=\"search-overlay\" *ngIf=\"state\">\n <div id=\"placeholder1\" style=\"height: 24px;\"></div>\n <div class=\"search-header\">\n <span class=\"search-title\">Search results for '{{currentTerm}}'</span>\n <span class=\"search-close\" (mouseover)=\"mouseAction(true)\" (mouseout)=\"mouseAction(false)\">\n <clr-icon shape=\"close\" [class.is-highlight]=\"hover\" size=\"36\" (click)=\"close()\"></clr-icon>\n </span>\n </div>\n <!-- spinner -->\n <div class=\"spinner spinner-lg search-spinner\" [hidden]=\"done\">Search...</div>\n <div id=\"results\">\n <h2>Projects</h2>\n <div class=\"grid-header-wrapper\">\n <grid-filter class=\"grid-filter\" filterPlaceholder='{{\"PROJECT.FILTER_PLACEHOLDER\" | translate}}' (filter)=\"doFilterProjects($event)\"></grid-filter>\n </div>\n <list-project [projects]=\"searchResults.project\" [mode]=\"listMode\"></list-project>\n <h2>Repositories</h2>\n <list-repository [repositories]=\"searchResults.repository\" [mode]=\"listMode\"></list-repository>\n </div>\n</div>"
/***/ }),
/***/ 830:
/***/ (function(module, exports) {
module.exports = "<clr-main-container>\n <global-message [isAppLevel]=\"true\"></global-message>\n <navigator (showAccountSettingsModal)=\"openModal($event)\" (showPwdChangeModal)=\"openModal($event)\"></navigator>\n <div class=\"content-container\">\n <div class=\"content-area\" [class.container-override]=\"showSearch\" [class.start-content-padding]=\"isStartPage\">\n <global-message [isAppLevel]=\"false\"></global-message>\n <!-- Only appear when searching -->\n <search-result></search-result>\n <router-outlet></router-outlet>\n </div>\n <nav class=\"sidenav\" *ngIf=\"isUserExisting\" [class.side-nav-override]=\"showSearch\" (click)='watchClickEvt()'>\n <section class=\"sidenav-content\">\n <a routerLink=\"/harbor/dashboard\" routerLinkActive=\"active\" class=\"nav-link\">{{'SIDE_NAV.DASHBOARD' | translate}}</a>\n <a routerLink=\"/harbor/projects\" routerLinkActive=\"active\" class=\"nav-link\">{{'SIDE_NAV.PROJECTS' | translate}}</a>\n <a routerLink=\"/harbor/logs\" routerLinkActive=\"active\" class=\"nav-link\">{{'SIDE_NAV.LOGS' | translate}}</a>\n <section class=\"nav-group collapsible\" *ngIf=\"isSystemAdmin\">\n <input id=\"tabsystem\" type=\"checkbox\">\n <label for=\"tabsystem\">{{'SIDE_NAV.SYSTEM_MGMT.NAME' | translate}}</label>\n <ul class=\"nav-list\">\n <li><a class=\"nav-link\" routerLink=\"/harbor/users\" routerLinkActive=\"active\">{{'SIDE_NAV.SYSTEM_MGMT.USER' | translate}}</a></li>\n <li><a class=\"nav-link\" routerLink=\"/harbor/replications/endpoints\" routerLinkActive=\"active\">{{'SIDE_NAV.SYSTEM_MGMT.REPLICATION' | translate}}</a></li>\n <li><a class=\"nav-link\" routerLink=\"/harbor/configs\" routerLinkActive=\"active\">{{'SIDE_NAV.SYSTEM_MGMT.CONFIG' | translate}}</a></li>\n </ul>\n </section>\n </section>\n </nav>\n </div>\n</clr-main-container>\n<account-settings-modal></account-settings-modal>\n<password-setting></password-setting>\n<deletion-dialog></deletion-dialog>\n<about-dialog></about-dialog>"
/***/ }),
/***/ 831:
/***/ (function(module, exports) {
module.exports = "<clr-header class=\"header-5 header\">\n <div class=\"branding\">\n <a href=\"javascript:void(0)\" class=\"nav-link\" (click)=\"homeAction()\">\n <clr-icon shape=\"vm-bug\"></clr-icon>\n <span class=\"title\">Harbor</span>\n </a>\n </div>\n <div class=\"header-nav\">\n <a href=\"{{admiralLink}}\" class=\"nav-link\" *ngIf=\"isIntegrationMode\"><span class=\"nav-text\">Management</span></a>\n <a href=\"javascript:void(0)\" routerLink=\"/harbor/dashboard\" class=\"active nav-link\" *ngIf=\"isIntegrationMode\"><span class=\"nav-text\">Registry</span></a>\n </div>\n <global-search></global-search>\n <div class=\"header-actions\">\n <a href=\"javascript:void(0)\" class=\"nav-link nav-text\" routerLink=\"/sign-in\" routerLinkActive=\"active\" *ngIf=\"isSessionValid === false\">{{'SIGN_IN.HEADER_LINK' | translate}}</a>\n <div class=\"nav-divider\" *ngIf=\"!isSessionValid\"></div>\n <a href=\"javascript:void(0)\" class=\"nav-link nav-text\" (click)=\"openSignUp()\" *ngIf=\"isSessionValid === false\">{{'SIGN_UP.TITLE' | translate}}</a>\n <clr-dropdown class=\"dropdown bottom-left\">\n <button class=\"nav-icon\" clrDropdownToggle style=\"width: 98px;\">\n <clr-icon shape=\"world\" style=\"left:-8px;\"></clr-icon>\n <span style=\"padding-right: 8px;\">{{currentLang}}</span>\n <clr-icon shape=\"caret down\"></clr-icon>\n </button>\n <div class=\"dropdown-menu\">\n <a href=\"javascript:void(0)\" clrDropdownItem (click)='switchLanguage(\"en\")' [class.lang-selected]='matchLang(\"en\")'>English</a>\n <a href=\"javascript:void(0)\" clrDropdownItem (click)='switchLanguage(\"zh\")' [class.lang-selected]='matchLang(\"zh\")'>中文简体</a>\n </div>\n </clr-dropdown>\n <clr-dropdown [clrMenuPosition]=\"'bottom-right'\" class=\"dropdown\" *ngIf=\"isSessionValid\">\n <button class=\"nav-text\" clrDropdownToggle>\n <clr-icon shape=\"user\" class=\"is-inverse\" size=\"24\" style=\"left: -2px;\"></clr-icon>\n <span>{{accountName}}</span>\n <clr-icon shape=\"caret down\"></clr-icon>\n </button>\n <div class=\"dropdown-menu\">\n <a href=\"javascript:void(0)\" clrDropdownItem (click)=\"openAccountSettingsModal()\">{{'ACCOUNT_SETTINGS.PROFILE' | translate}}</a>\n <a href=\"javascript:void(0)\" clrDropdownItem (click)=\"openChangePwdModal()\">{{'ACCOUNT_SETTINGS.CHANGE_PWD' | translate}}</a>\n <a href=\"javascript:void(0)\" clrDropdownItem (click)=\"openAboutDialog()\">{{'ACCOUNT_SETTINGS.ABOUT' | translate}}</a>\n <div class=\"dropdown-divider\"></div>\n <a href=\"javascript:void(0)\" clrDropdownItem (click)=\"logOut()\">{{'ACCOUNT_SETTINGS.LOGOUT' | translate}}</a>\n </div>\n </clr-dropdown>\n <a href=\"javascript:void(0)\" class=\"nav-link nav-text\" (click)=\"openAboutDialog()\" *ngIf=\"isSessionValid === false\">{{'ACCOUNT_SETTINGS.ABOUT' | translate}}</a>\n </div>\n</clr-header>"
/***/ }),
/***/ 832:
/***/ (function(module, exports) {
module.exports = "<!-- Authenticated-->\n<div class=\"row row-fill-height row-margin\" *ngIf=\"isSessionValid\">\n <div class=\"col-xs-12 col-sm-12 col-md-12 col-lg-12 col-xl-12\">\n <statistics-panel></statistics-panel>\n <top-repo></top-repo>\n </div>\n</div>\n\n<!-- Guest -->\n<div class=\"row row-fill-height\" *ngIf=\"!isSessionValid\">\n <div class=\"col-xs-12 col-sm-12 col-md-5 col-lg-5 col-xl-5 column-fill-height\">\n <div class=\"start-card\">\n <div class=\"card-img my-card-img\">\n </div>\n <div class=\"card-block\">\n <h3 class=\"card-title\">Getting Start</h3>\n <p class=\"card-text\">\n {{'START_PAGE.GETTING_START' | translate}}\n </p>\n </div>\n <div class=\"card-footer my-card-footer\">\n <a href=\"http://vmware.github.io/harbor/\" target=\"_blank\" class=\"btn btn-sm btn-link\">Learn More</a>\n </div>\n </div>\n </div>\n <div class=\"col-xs-12 col-sm-12 col-md-7 col-lg-7 col-xl-7\">\n <top-repo></top-repo>\n </div>\n</div>"
/***/ }),
/***/ 833:
/***/ (function(module, exports) {
module.exports = "<form #authConfigFrom=\"ngForm\" class=\"form\">\n <section class=\"form-block\">\n <div class=\"form-group\">\n <label for=\"authMode\">{{'CONFIG.AUTH_MODE' | translate }}</label>\n <div class=\"select\">\n <select id=\"authMode\" name=\"authMode\" [disabled]=\"disabled(currentConfig.auth_mode)\" [(ngModel)]=\"currentConfig.auth_mode.value\">\n <option value=\"db_auth\">{{'CONFIG.AUTH_MODE_DB' | translate }}</option>\n <option value=\"ldap_auth\">{{'CONFIG.AUTH_MODE_LDAP' | translate }}</option>\n </select>\n </div>\n <a href=\"javascript:void(0)\" role=\"tooltip\" aria-haspopup=\"true\" class=\"tooltip tooltip-top-right\">\n <clr-icon shape=\"info-circle\" class=\"is-info\" size=\"24\"></clr-icon>\n <span class=\"tooltip-content\">{{'CONFIG.TOOLTIP.AUTH_MODE' | translate}}</span>\n </a>\n </div>\n </section>\n <section class=\"form-block\" *ngIf=\"showLdap\">\n <div class=\"form-group\">\n <label for=\"ldapUrl\" class=\"required\">{{'CONFIG.LDAP.URL' | translate}}</label>\n <label for=\"ldapUrl\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-top-right\" [class.invalid]=\"ldapUrlInput.invalid && (ldapUrlInput.dirty || ldapUrlInput.touched)\">\n <input name=\"ldapUrl\" type=\"text\" #ldapUrlInput=\"ngModel\" [(ngModel)]=\"currentConfig.ldap_url.value\" \n required \n id=\"ldapUrl\" \n size=\"40\" \n [disabled]=\"disabled(currentConfig.ldap_url)\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.ITEM_REQUIRED' | translate}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"ldapSearchDN\" class=\"required\">{{'CONFIG.LDAP.SEARCH_DN' | translate}}</label>\n <label for=\"ldapSearchDN\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-top-right\" [class.invalid]=\"ldapSearchDNInput.invalid && (ldapSearchDNInput.dirty || ldapSearchDNInput.touched)\">\n <input name=\"ldapSearchDN\" type=\"text\" #ldapSearchDNInput=\"ngModel\" [(ngModel)]=\"currentConfig.ldap_search_dn.value\" \n required \n id=\"ldapSearchDN\" \n size=\"40\" [disabled]=\"disabled(currentConfig.ldap_search_dn)\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.ITEM_REQUIRED' | translate}}\n </span>\n </label>\n <a href=\"javascript:void(0)\" role=\"tooltip\" aria-haspopup=\"true\" class=\"tooltip tooltip-top-right\">\n <clr-icon shape=\"info-circle\" class=\"is-info\" size=\"24\"></clr-icon>\n <span class=\"tooltip-content\">{{'CONFIG.TOOLTIP.LDAP_SEARCH_DN' | translate}}</span>\n </a>\n </div>\n <div class=\"form-group\">\n <label for=\"ldapSearchPwd\" class=\"required\">{{'CONFIG.LDAP.SEARCH_PWD' | translate}}</label>\n <label for=\"ldapSearchPwd\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-top-right\" [class.invalid]=\"ldapSearchPwdInput.invalid && (ldapSearchPwdInput.dirty || ldapSearchPwdInput.touched)\">\n <input name=\"ldapSearchPwd\" type=\"password\" #ldapSearchPwdInput=\"ngModel\" [(ngModel)]=\"currentConfig.ldap_search_password.value\" \n required \n id=\"ldapSearchPwd\" \n size=\"40\" [disabled]=\"disabled(currentConfig.ldap_search_password)\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.ITEM_REQUIRED' | translate}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"ldapBaseDN\" class=\"required\">{{'CONFIG.LDAP.BASE_DN' | translate}}</label>\n <label for=\"ldapBaseDN\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-top-right\" [class.invalid]=\"ldapBaseDNInput.invalid && (ldapBaseDNInput.dirty || ldapBaseDNInput.touched)\">\n <input name=\"ldapBaseDN\" type=\"text\" #ldapBaseDNInput=\"ngModel\" [(ngModel)]=\"currentConfig.ldap_base_dn.value\" \n required \n id=\"ldapBaseDN\" \n size=\"40\" [disabled]=\"disabled(currentConfig.ldap_base_dn)\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.ITEM_REQUIRED' | translate}}\n </span>\n </label>\n <a href=\"javascript:void(0)\" role=\"tooltip\" aria-haspopup=\"true\" class=\"tooltip tooltip-top-right\">\n <clr-icon shape=\"info-circle\" class=\"is-info\" size=\"24\"></clr-icon>\n <span class=\"tooltip-content\">{{'CONFIG.TOOLTIP.LDAP_BASE_DN' | translate}}</span>\n </a>\n </div>\n <div class=\"form-group\">\n <label for=\"ldapFilter\">{{'CONFIG.LDAP.FILTER' | translate}}</label>\n <label for=\"ldapFilter\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-top-right\">\n <input name=\"ldapFilter\" type=\"text\" #ldapFilterInput=\"ngModel\" [(ngModel)]=\"currentConfig.ldap_filter.value\" \n id=\"ldapFilter\" \n size=\"40\" [disabled]=\"disabled(currentConfig.ldap_filter)\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.ITEM_REQUIRED' | translate}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"ldapUid\" class=\"required\">{{'CONFIG.LDAP.UID' | translate}}</label>\n <label for=\"ldapUid\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-top-right\" [class.invalid]=\"ldapUidInput.invalid && (ldapUidInput.dirty || ldapUidInput.touched)\">\n <input name=\"ldapUid\" type=\"text\" #ldapUidInput=\"ngModel\" [(ngModel)]=\"currentConfig.ldap_uid.value\" \n required \n id=\"ldapUid\" \n size=\"40\" [disabled]=\"disabled(currentConfig.ldap_uid)\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.ITEM_REQUIRED' | translate}}\n </span>\n </label>\n <a href=\"javascript:void(0)\" role=\"tooltip\" aria-haspopup=\"true\" class=\"tooltip tooltip-top-right\">\n <clr-icon shape=\"info-circle\" class=\"is-info\" size=\"24\"></clr-icon>\n <span class=\"tooltip-content\">{{'CONFIG.TOOLTIP.LDAP_UID' | translate}}</span>\n </a>\n </div>\n <div class=\"form-group\">\n <label for=\"ldapScope\">{{'CONFIG.LDAP.SCOPE' | translate}}</label>\n <div class=\"select\">\n <select id=\"ldapScope\" name=\"ldapScope\" [(ngModel)]=\"currentConfig.ldap_scope.value\" [disabled]=\"disabled(currentConfig.ldap_scope)\">\n <option value=\"1\">{{'CONFIG.SCOPE_BASE' | translate }}</option>\n <option value=\"2\">{{'CONFIG.SCOPE_ONE_LEVEL' | translate }}</option>\n <option value=\"3\">{{'CONFIG.SCOPE_SUBTREE' | translate }}</option>\n </select>\n </div>\n <a href=\"javascript:void(0)\" role=\"tooltip\" aria-haspopup=\"true\" class=\"tooltip tooltip-top-right\">\n <clr-icon shape=\"info-circle\" class=\"is-info\" size=\"24\"></clr-icon>\n <span class=\"tooltip-content\">{{'CONFIG.TOOLTIP.LDAP_SCOPE' | translate}}</span>\n </a>\n </div>\n </section>\n <section class=\"form-block\">\n <div class=\"form-group\">\n <label for=\"proCreation\">{{'CONFIG.PRO_CREATION_RESTRICTION' | translate}}</label>\n <div class=\"select\">\n <select id=\"proCreation\" name=\"proCreation\" [(ngModel)]=\"currentConfig.project_creation_restriction.value\" [disabled]=\"disabled(currentConfig.project_creation_restriction)\">\n <option value=\"everyone\">{{'CONFIG.PRO_CREATION_EVERYONE' | translate }}</option>\n <option value=\"adminonly\">{{'CONFIG.PRO_CREATION_ADMIN' | translate }}</option>\n </select>\n </div>\n <a href=\"javascript:void(0)\" role=\"tooltip\" aria-haspopup=\"true\" class=\"tooltip tooltip-top-right\">\n <clr-icon shape=\"info-circle\" class=\"is-info\" size=\"24\"></clr-icon>\n <span class=\"tooltip-content\">{{'CONFIG.TOOLTIP.AUTH_MODE' | translate}}</span>\n </a>\n </div>\n <div class=\"form-group\">\n <label for=\"selfReg\">{{'CONFIG.SELF_REGISTRATION' | translate}}</label>\n <clr-checkbox name=\"selfReg\" id=\"selfReg\" [(ngModel)]=\"currentConfig.self_registration.value\" [disabled]=\"disabled(currentConfig.self_registration)\">\n <a href=\"javascript:void(0)\" role=\"tooltip\" aria-haspopup=\"true\" class=\"tooltip tooltip-top-right\" style=\"top:-8px;\">\n <clr-icon shape=\"info-circle\" class=\"is-info\" size=\"24\"></clr-icon>\n <span class=\"tooltip-content\">{{'CONFIG.TOOLTIP.SELF_REGISTRATION' | translate}}</span>\n </a>\n </clr-checkbox>\n </div>\n </section>\n</form>"
/***/ }),
/***/ 834:
/***/ (function(module, exports) {
module.exports = "<h1 style=\"display: inline-block;\">{{'CONFIG.TITLE' | translate }}</h1>\n<span class=\"spinner spinner-inline\" [hidden]=\"inProgress === false\"></span>\n<clr-tabs (clrTabsCurrentTabLinkChanged)=\"tabLinkChanged($event)\">\n <clr-tab-link [clrTabLinkId]=\"'config-auth'\" [clrTabLinkActive]=\"true\">{{'CONFIG.AUTH' | translate }}</clr-tab-link>\n <clr-tab-link [clrTabLinkId]=\"'config-replication'\">{{'CONFIG.REPLICATION' | translate }}</clr-tab-link>\n <clr-tab-link [clrTabLinkId]=\"'config-email'\">{{'CONFIG.EMAIL' | translate }}</clr-tab-link>\n <clr-tab-link [clrTabLinkId]=\"'config-system'\">{{'CONFIG.SYSTEM' | translate }}</clr-tab-link>\n\n <clr-tab-content [clrTabContentId]=\"'authentication'\" [clrTabContentActive]=\"true\">\n <config-auth [ldapConfig]=\"allConfig\"></config-auth>\n </clr-tab-content>\n <clr-tab-content [clrTabContentId]=\"'replication'\">\n <form #repoConfigFrom=\"ngForm\" class=\"form\">\n <section class=\"form-block\">\n <div class=\"form-group\">\n <label for=\"verifyRemoteCert\">{{'CONFIG.VERIFY_REMOTE_CERT' | translate }}</label>\n <clr-checkbox name=\"verifyRemoteCert\" id=\"verifyRemoteCert\" [(ngModel)]=\"allConfig.verify_remote_cert.value\" [disabled]=\"disabled(allConfig.verify_remote_cert)\">\n <a href=\"javascript:void(0)\" role=\"tooltip\" aria-haspopup=\"true\" class=\"tooltip tooltip-lg tooltip-top-right\" style=\"top:-8px;\">\n <clr-icon shape=\"info-circle\" class=\"is-info\" size=\"24\"></clr-icon>\n <span class=\"tooltip-content\">{{'CONFIG.TOOLTIP.VERIFY_REMOTE_CERT' | translate }}</span>\n </a>\n </clr-checkbox>\n </div>\n </section>\n </form>\n </clr-tab-content>\n <clr-tab-content [clrTabContentId]=\"'email'\">\n <config-email [mailConfig]=\"allConfig\"></config-email>\n </clr-tab-content>\n <clr-tab-content [clrTabContentId]=\"'system_settings'\">\n <form #systemConfigFrom=\"ngForm\" class=\"form\">\n <section class=\"form-block\">\n <div class=\"form-group\">\n <label for=\"tokenExpiration\" class=\"required\">{{'CONFIG.TOKEN_EXPIRATION' | translate}}</label>\n <label for=\"tokenExpiration\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-top-right\" [class.invalid]=\"tokenExpirationInput.invalid && (tokenExpirationInput.dirty || tokenExpirationInput.touched)\">\n <input name=\"tokenExpiration\" type=\"text\" #tokenExpirationInput=\"ngModel\" [(ngModel)]=\"allConfig.token_expiration.value\" \n required \n pattern=\"^[1-9]{1}[\\d]*$\"\n id=\"tokenExpiration\" \n size=\"40\" [disabled]=\"disabled(allConfig.token_expiration)\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.NUMBER_REQUIRED' | translate}}\n </span>\n </label>\n <a href=\"javascript:void(0)\" role=\"tooltip\" aria-haspopup=\"true\" class=\"tooltip tooltip-top-right\">\n <clr-icon shape=\"info-circle\" class=\"is-info\" size=\"24\"></clr-icon>\n <span class=\"tooltip-content\">{{'CONFIG.TOOLTIP.TOKEN_EXPIRATION' | translate}}</span>\n </a>\n </div>\n </section>\n </form>\n </clr-tab-content>\n</clr-tabs>\n<div>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"save()\" [disabled]=\"!isValid() || !hasChanges()\">{{'BUTTON.SAVE' | translate}}</button>\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"cancel()\" [disabled]=\"!isValid() || !hasChanges()\">{{'BUTTON.CANCEL' | translate}}</button>\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"testMailServer()\" *ngIf=\"showTestServerBtn\" [disabled]=\"!isMailConfigValid()\">{{'BUTTON.TEST_MAIL' | translate}}</button>\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"testLDAPServer()\" *ngIf=\"showLdapServerBtn\" [disabled]=\"!isLDAPConfigValid()\">{{'BUTTON.TEST_LDAP' | translate}}</button>\n <span class=\"spinner spinner-inline\" [hidden]=\"!testingInProgress\"></span>\n</div>"
/***/ }),
/***/ 835:
/***/ (function(module, exports) {
module.exports = "<form #mailConfigFrom=\"ngForm\" class=\"form\">\n <section class=\"form-block\">\n <div class=\"form-group\">\n <label for=\"mailServer\" class=\"required\">{{'CONFIG.MAIL_SERVER' | translate}}</label>\n <label for=\"mailServer\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-top-right\" [class.invalid]=\"mailServerInput.invalid && (mailServerInput.dirty || mailServerInput.touched)\">\n <input name=\"mailServer\" type=\"text\" #mailServerInput=\"ngModel\" [(ngModel)]=\"currentConfig.email_host.value\" \n required \n id=\"mailServer\" \n size=\"40\" [disabled]=\"disabled(currentConfig.email_host)\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.ITEM_REQUIRED' | translate}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"emailPort\" class=\"required\">{{'CONFIG.MAIL_SERVER_PORT' | translate}}</label>\n <label for=\"emailPort\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-top-right\" [class.invalid]=\"emailPortInput.invalid && (emailPortInput.dirty || emailPortInput.touched)\">\n <input name=\"emailPort\" type=\"text\" #emailPortInput=\"ngModel\" [(ngModel)]=\"currentConfig.email_port.value\" \n required \n port\n id=\"emailPort\" \n size=\"40\" [disabled]=\"disabled(currentConfig.email_port)\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.PORT_REQUIRED' | translate}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"emailUsername\">{{'CONFIG.MAIL_USERNAME' | translate}}</label>\n <label for=\"emailUsername\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-top-right\" [class.invalid]=\"false\">\n <input name=\"emailUsername\" type=\"text\" #emailUsernameInput=\"ngModel\" [(ngModel)]=\"currentConfig.email_username.value\" \n id=\"emailUsername\" \n size=\"40\" [disabled]=\"disabled(currentConfig.email_username)\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.ITEM_REQUIRED' | translate}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"emailPassword\">{{'CONFIG.MAIL_PASSWORD' | translate}}</label>\n <label for=\"emailPassword\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-top-right\" [class.invalid]=\"false\">\n <input name=\"emailPassword\" type=\"password\" #emailPasswordInput=\"ngModel\" [(ngModel)]=\"currentConfig.email_password.value\" \n id=\"emailPassword\" \n size=\"40\" [disabled]=\"disabled(currentConfig.email_password)\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.ITEM_REQUIRED' | translate}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"emailFrom\" class=\"required\">{{'CONFIG.MAIL_FROM' | translate}}</label>\n <label for=\"emailFrom\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-top-right\" [class.invalid]=\"emailFromInput.invalid && (emailFromInput.dirty || emailFromInput.touched)\">\n <input name=\"emailFrom\" type=\"text\" #emailFromInput=\"ngModel\" [(ngModel)]=\"currentConfig.email_from.value\" \n required \n id=\"emailFrom\" \n size=\"40\" [disabled]=\"disabled(currentConfig.email_from)\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.ITEM_REQUIRED' | translate}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"selfReg\">{{'CONFIG.MAIL_SSL' | translate}}</label>\n <clr-checkbox name=\"emailSSL\" id=\"emailSSL\" [(ngModel)]=\"currentConfig.email_ssl.value\" [disabled]=\"disabled(currentConfig.email_ssl)\">\n <a href=\"javascript:void(0)\" role=\"tooltip\" aria-haspopup=\"true\" class=\"tooltip tooltip-top-right\" style=\"top:-8px;\">\n <clr-icon shape=\"info-circle\" class=\"is-info\" size=\"24\"></clr-icon>\n <span class=\"tooltip-content\">{{'CONFIG.SSL_TOOLTIP' | translate}}</span>\n </a>\n </clr-checkbox>\n </div>\n </section>\n</form>"
/***/ }),
/***/ 836:
/***/ (function(module, exports) {
module.exports = "<clr-alert [clrAlertType]=\"globalMessage.type\" [clrAlertAppLevel]=\"isAppLevel\" [(clrAlertClosed)]=\"!globalMessageOpened\" (clrAlertClosedChange)=\"onClose()\">\n <div class=\"alert-item\">\n <span class=\"alert-text\">\n {{message}}\n </span>\n <div class=\"alert-actions\" *ngIf=\"needAuth\">\n <button class=\"btn alert-action\" (click)=\"signIn()\">{{ 'BUTTON.LOG_IN' | translate }}</button>\n </div>\n </div>\n</clr-alert>"
/***/ }),
/***/ 837:
/***/ (function(module, exports) {
module.exports = "<div class=\"row\">\n <div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\"> \n <div class=\"row flex-items-xs-right\">\n <div class=\"flex-xs-middle\">\n <button class=\"btn btn-link\" (click)=\"toggleOptionalName(currentOption)\">{{toggleName[currentOption] | translate}}</button>\n </div>\n <div class=\"flex-xs-middle\">\n <grid-filter filterPlaceholder='{{\"AUDIT_LOG.FILTER_PLACEHOLDER\" | translate}}' (filter)=\"doSearchAuditLogs($event)\"></grid-filter>\n <a href=\"javascript:void(0)\" (click)=\"refresh()\"><clr-icon shape=\"refresh\"></clr-icon></a>\n </div>\n </div>\n <div class=\"row flex-items-xs-right\" [hidden]=\"currentOption === 0\">\n <clr-dropdown [clrMenuPosition]=\"'bottom-left'\" >\n <button class=\"btn btn-link\" clrDropdownToggle>\n {{'AUDIT_LOG.ALL_OPERATIONS' | translate}}\n <clr-icon shape=\"caret down\"></clr-icon>\n </button>\n <div class=\"dropdown-menu\">\n <a href=\"javascript:void(0)\" clrDropdownItem *ngFor=\"let f of filterOptions\" (click)=\"toggleFilterOption(f.key)\"><clr-icon shape=\"check\" [hidden]=\"!f.checked\"></clr-icon> {{f.description | translate}}</a>\n </div>\n </clr-dropdown>\n <div class=\"flex-xs-middle\">\n <clr-icon shape=\"date\"></clr-icon><input type=\"date\" #fromTime (change)=\"doSearchByTimeRange(fromTime.value, 'begin')\">\n <clr-icon shape=\"date\"></clr-icon><input type=\"date\" #toTime (change)=\"doSearchByTimeRange(toTime.value, 'end')\">\n </div>\n </div>\n <clr-datagrid (clrDgRefresh)=\"retrieve($event)\">\n <clr-dg-column>{{'AUDIT_LOG.USERNAME' | translate}}</clr-dg-column>\n <clr-dg-column>{{'AUDIT_LOG.REPOSITORY_NAME' | translate}}</clr-dg-column>\n <clr-dg-column>{{'AUDIT_LOG.TAGS' | translate}}</clr-dg-column>\n <clr-dg-column>{{'AUDIT_LOG.OPERATION' | translate}}</clr-dg-column>\n <clr-dg-column>{{'AUDIT_LOG.TIMESTAMP' | translate}}</clr-dg-column>\n <clr-dg-row *ngFor=\"let l of auditLogs\">\n <clr-dg-cell>{{l.username}}</clr-dg-cell>\n <clr-dg-cell>{{l.repo_name}}</clr-dg-cell>\n <clr-dg-cell>{{l.repo_tag}}</clr-dg-cell>\n <clr-dg-cell>{{l.operation}}</clr-dg-cell>\n <clr-dg-cell>{{l.op_time}}</clr-dg-cell>\n </clr-dg-row>\n <clr-dg-footer>\n {{totalRecordCount}} {{'AUDIT_LOG.ITEMS' | translate}}\n <clr-dg-pagination [clrDgPageSize]=\"pageOffset\" [clrDgTotalItems]=\"totalPage\"></clr-dg-pagination>\n </clr-dg-footer>\n </clr-datagrid>\n </div>\n</div>"
/***/ }),
/***/ 838:
/***/ (function(module, exports) {
module.exports = "<div>\n <h2 class=\"h2-log-override\">{{'SIDE_NAV.LOGS' | translate}}</h2>\n <div class=\"action-head-pos\">\n <span>\n <label>{{'RECENT_LOG.SUB_TITLE' | translate}} </label>\n <button type=\"submit\" class=\"btn btn-link custom-lines-button\" [class.lines-button-toggole]=\"lines === 10\" (click)=\"setLines(10)\">10</button>\n <label> | </label>\n <button type=\"submit\" class=\"btn btn-link custom-lines-button\" [class.lines-button-toggole]=\"lines === 25\" (click)=\"setLines(25)\">25</button>\n <label> | </label>\n <button type=\"submit\" class=\"btn btn-link custom-lines-button\" [class.lines-button-toggole]=\"lines === 50\" (click)=\"setLines(50)\">50</button>\n <label>{{'RECENT_LOG.SUB_TITLE_SUFIX' | translate}}</label>\n </span>\n <grid-filter class=\"filter-log\" filterPlaceholder='{{\"AUDIT_LOG.FILTER_PLACEHOLDER\" | translate}}' (filter)=\"doFilter($event)\"></grid-filter>\n <span class=\"refresh-btn\" (click)=\"refresh()\">\n <clr-icon shape=\"refresh\" [hidden]=\"inProgress\" ng-disabled=\"inProgress\"></clr-icon>\n <span class=\"spinner spinner-inline\" [hidden]=\"inProgress === false\"></span>\n </span>\n </div>\n <div>\n <clr-datagrid>\n <clr-dg-column>{{'AUDIT_LOG.USERNAME' | translate}}</clr-dg-column>\n <clr-dg-column>{{'AUDIT_LOG.REPOSITORY_NAME' | translate}}</clr-dg-column>\n <clr-dg-column>{{'AUDIT_LOG.TAGS' | translate}}</clr-dg-column>\n <clr-dg-column>{{'AUDIT_LOG.OPERATION' | translate}}</clr-dg-column>\n <clr-dg-column>{{'AUDIT_LOG.TIMESTAMP' | translate}}</clr-dg-column>\n <clr-dg-row *ngFor=\"let l of recentLogs\">\n <clr-dg-cell>{{l.username}}</clr-dg-cell>\n <clr-dg-cell>{{l.repo_name}}</clr-dg-cell>\n <clr-dg-cell>{{l.repo_tag}}</clr-dg-cell>\n <clr-dg-cell>{{l.operation}}</clr-dg-cell>\n <clr-dg-cell>{{formatDateTime(l.op_time)}}</clr-dg-cell>\n </clr-dg-row>\n <clr-dg-footer>{{ (recentLogs ? recentLogs.length : 0) }} {{'AUDIT_LOG.ITEMS' | translate}}</clr-dg-footer>\n </clr-datagrid>\n </div>\n</div>"
/***/ }),
/***/ 839:
/***/ (function(module, exports) {
module.exports = "<clr-modal [(clrModalOpen)]=\"createProjectOpened\">\n <h3 class=\"modal-title\">{{'PROJECT.NEW_PROJECT' | translate}}</h3>\n <div class=\"modal-body\">\n <form #projectForm=\"ngForm\">\n <section class=\"form-block\">\n <clr-alert [clrAlertType]=\"'alert-danger'\" [(clrAlertClosed)]=\"!errorMessageOpened\" (clrAlertClosedChange)=\"onErrorMessageClose()\">\n <div class=\"alert-item\">\n <span class=\"alert-text\">\n {{errorMessage}}\n </span>\n </div>\n </clr-alert>\n <div class=\"form-group\">\n <label for=\"create_project_name\" class=\"col-md-4\">{{'PROJECT.NAME' | translate}}</label>\n <label for=\"create_project_name\" aria-haspopup=\"true\" role=\"tooltip\" [class.invalid]=\"projectName.invalid && (projectName.dirty || projectName.touched)\" [class.valid]=\"projectName.valid\" class=\"tooltip tooltip-validation tooltip-sm tooltip-bottom-right\">\n <input type=\"text\" id=\"create_project_name\" [(ngModel)]=\"project.name\" name=\"name\" size=\"20\" required minlength=\"2\" #projectName=\"ngModel\">\n <span class=\"tooltip-content\" *ngIf=\"projectName.errors && projectName.errors.required && (projectName.dirty || projectName.touched)\">\n {{'PROJECT.NAME_IS_REQUIRED' | translate}}\n </span>\n <span class=\"tooltip-content\" *ngIf=\"projectName.errors && projectName.errors.minlength && (projectName.dirty || projectName.touched)\">\n {{'PROJECT.NAME_MINIMUM_LENGTH' | translate}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label class=\"col-md-4\">{{'PROJECT.PUBLIC_OR_PRIVATE' | translate}}</label>\n <div class=\"checkbox-inline\">\n <input type=\"checkbox\" id=\"create_project_public\" [(ngModel)]=\"project.public\" name=\"public\">\n <label for=\"create_project_public\"></label>\n </div>\n </div>\n </section>\n </form>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"createProjectOpened = false\">{{'BUTTON.CANCEL' | translate}}</button>\n <button type=\"button\" class=\"btn btn-primary\" [disabled]=\"!projectForm.form.valid\" (click)=\"onSubmit()\">{{'BUTTON.OK' | translate}}</button>\n </div>\n</clr-modal>\n"
/***/ }),
/***/ 840:
/***/ (function(module, exports) {
module.exports = "<clr-datagrid (clrDgRefresh)=\"refresh($event)\">\n <clr-dg-column>{{'PROJECT.NAME' | translate}}</clr-dg-column>\n <clr-dg-column>{{'PROJECT.PUBLIC_OR_PRIVATE' | translate}}</clr-dg-column>\n <clr-dg-column>{{'PROJECT.REPO_COUNT'| translate}}</clr-dg-column>\n <clr-dg-column>{{'PROJECT.CREATION_TIME' | translate}}</clr-dg-column>\n <clr-dg-column>{{'PROJECT.DESCRIPTION' | translate}}</clr-dg-column>\n <clr-dg-row *ngFor=\"let p of projects\">\n <clr-dg-cell><a href=\"javascript:void(0)\" (click)=\"goToLink(p.project_id)\">{{p.name}}</a></clr-dg-cell>\n <clr-dg-cell>{{ (p.public === 1 ? 'PROJECT.PUBLIC' : 'PROJECT.PRIVATE') | translate}}</clr-dg-cell>\n <clr-dg-cell>{{p.repo_count}}</clr-dg-cell>\n <clr-dg-cell>{{p.creation_time}}</clr-dg-cell>\n <clr-dg-cell>\n {{p.description}}\n <harbor-action-overflow *ngIf=\"listFullMode\">\n <a href=\"javascript:void(0)\" class=\"dropdown-item\">{{'PROJECT.NEW_POLICY' | translate}}</a>\n <a href=\"javascript:void(0)\" class=\"dropdown-item\" (click)=\"toggleProject(p)\">{{'PROJECT.MAKE' | translate}} {{(p.public === 0 ? 'PROJECT.PUBLIC' : 'PROJECT.PRIVATE') | translate}} </a>\n <div class=\"dropdown-divider\"></div>\n <a href=\"javascript:void(0)\" class=\"dropdown-item\" (click)=\"deleteProject(p)\">{{'PROJECT.DELETE' | translate}}</a>\n </harbor-action-overflow>\n </clr-dg-cell>\n </clr-dg-row>\n <clr-dg-footer>\n {{totalRecordCount || (projects ? projects.length : 0)}} {{'PROJECT.ITEMS' | translate}}\n <clr-dg-pagination [clrDgPageSize]=\"pageOffset\" [clrDgTotalItems]=\"totalPage\"></clr-dg-pagination>\n </clr-dg-footer>\n</clr-datagrid>"
/***/ }),
/***/ 841:
/***/ (function(module, exports) {
module.exports = "<clr-modal [(clrModalOpen)]=\"addMemberOpened\">\n <h3 class=\"modal-title\">{{'MEMBER.NEW_MEMBER' | translate}}</h3>\n <div class=\"modal-body\">\n <form #memberForm=\"ngForm\">\n <section class=\"form-block\">\n <clr-alert [clrAlertType]=\"'alert-danger'\" [(clrAlertClosed)]=\"!errorMessageOpened\" (clrAlertClosedChange)=\"onErrorMessageClose()\">\n <div class=\"alert-item\">\n <span class=\"alert-text\">\n {{errorMessage}}\n </span>\n </div>\n </clr-alert>\n <div class=\"form-group\">\n <label for=\"member_name\" class=\"col-md-4\">{{'MEMBER.NAME' | translate}}</label>\n <label for=\"member_name\" aria-haspopup=\"true\" role=\"tooltip\" [class.invalid]=\"memberName.invalid && (memberName.dirty || memberName.touched)\" [class.valid]=\"memberName.valid\" class=\"tooltip tooltip-validation tooltip-sm tooltip-bottom-right\">\n <input type=\"text\" id=\"member_name\" [(ngModel)]=\"member.username\" name=\"name\" size=\"20\" #memberName=\"ngModel\" required>\n <span class=\"tooltip-content\" *ngIf=\"memberName.errors && memberName.errors.required && (memberName.dirty || memberName.touched)\">\n Username is required.\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label class=\"col-md-4\">{{'MEMBER.ROLE' | translate}}</label>\n <div class=\"radio\">\n <input type=\"radio\" name=\"roleRadios\" id=\"checkrads_project_admin\" (click)=\"member.role_id = 1\" [checked]=\"member.role_id === 1\">\n <label for=\"checkrads_project_admin\">{{'MEMBER.PROJECT_ADMIN' | translate}}</label>\n </div>\n <div class=\"radio\">\n <input type=\"radio\" name=\"roleRadios\" id=\"checkrads_developer\" (click)=\"member.role_id = 2\" [checked]=\"member.role_id === 2\">\n <label for=\"checkrads_developer\">{{'MEMBER.DEVELOPER' | translate}}</label>\n </div>\n <div class=\"radio\">\n <input type=\"radio\" name=\"roleRadios\" id=\"checkrads_guest\" (click)=\"member.role_id = 3\" [checked]=\"member.role_id === 3\">\n <label for=\"checkrads_guest\">{{'MEMBER.GUEST' | translate}}</label>\n </div>\n </div>\n </section>\n </form>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"addMemberOpened = false\">{{'BUTTON.CANCEL' | translate}}</button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"onSubmit()\">{{'BUTTON.OK' | translate}}</button>\n </div>\n</clr-modal>\n"
/***/ }),
/***/ 842:
/***/ (function(module, exports) {
module.exports = "<div class=\"row\">\n <div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n <div class=\"row flex-items-xs-between\">\n <div class=\"flex-xs-middle\">\n <button class=\"btn btn-link\" (click)=\"openAddMemberModal()\"><clr-icon shape=\"add\"></clr-icon> {{'MEMBER.NEW_MEMBER' | translate }}</button>\n <add-member [projectId]=\"projectId\" (added)=\"addedMember($event)\"></add-member>\n </div>\n <div class=\"flex-xs-middle\">\n <grid-filter filterPlaceholder='{{\"MEMBER.FILTER_PLACEHOLDER\" | translate}}' (filter)=\"doSearch($event)\"></grid-filter>\n <a href=\"javascript:void(0)\" (click)=\"refresh()\">\n <clr-icon shape=\"refresh\"></clr-icon>\n </a>\n </div>\n </div>\n <clr-datagrid>\n <clr-dg-column>{{'MEMBER.NAME' | translate}}</clr-dg-column>\n <clr-dg-column>{{'MEMBER.ROLE' | translate}}</clr-dg-column>\n <clr-dg-row *ngFor=\"let u of members\">\n <clr-dg-cell>{{u.username}}</clr-dg-cell>\n <clr-dg-cell>\n {{roleInfo[u.role_id] | translate}}\n <harbor-action-overflow [hidden]=\"u.user_id === currentUser.user_id\">\n <a href=\"javascript:void(0)\" class=\"dropdown-item\" (click)=\"changeRole(u.user_id, 1)\">{{'MEMBER.PROJECT_ADMIN' | translate}}</a>\n <a href=\"javascript:void(0)\" class=\"dropdown-item\" (click)=\"changeRole(u.user_id, 2)\">{{'MEMBER.DEVELOPER' | translate}}</a>\n <a href=\"javascript:void(0)\" class=\"dropdown-item\" (click)=\"changeRole(u.user_id, 3)\">{{'MEMBER.GUEST' | translate}}</a>\n <div class=\"dropdown-divider\"></div>\n <a href=\"javascript:void(0)\" class=\"dropdown-item\" (click)=\"deleteMember(u.user_id)\">{{'MEMBER.DELETE' | translate}}</a>\n </harbor-action-overflow>\n </clr-dg-cell>\n </clr-dg-row>\n <clr-dg-footer>{{ (members ? members.length : 0) }} {{'MEMBER.ITEMS' | translate}}</clr-dg-footer>\n </clr-datagrid>\n </div>\n</div>"
/***/ }),
/***/ 843:
/***/ (function(module, exports) {
module.exports = "<a style=\"display: block;\" [routerLink]=\"['/harbor', 'projects']\">&lt; {{'PROJECT_DETAIL.PROJECTS' | translate}}</a>\n<h1 class=\"display-in-line\">{{currentProject.name}}</h1>\n<nav class=\"subnav\">\n <ul class=\"nav\">\n <li class=\"nav-item\">\n <a class=\"nav-link\" routerLink=\"repository\" routerLinkActive=\"active\">{{'PROJECT_DETAIL.REPOSITORIES' | translate}}</a>\n </li>\n <li class=\"nav-item\" *ngIf=\"isSystemAdmin\">\n <a class=\"nav-link\" routerLink=\"replication\" routerLinkActive=\"active\">{{'PROJECT_DETAIL.REPLICATION' | translate}}</a>\n </li>\n <li class=\"nav-item\">\n <a class=\"nav-link\" routerLink=\"member\" routerLinkActive=\"active\">{{'PROJECT_DETAIL.USERS' | translate}}</a>\n </li>\n <li class=\"nav-item\">\n <a class=\"nav-link\" routerLink=\"log\" routerLinkActive=\"active\">{{'PROJECT_DETAIL.LOGS' | translate}}</a>\n </li>\n </ul>\n</nav>\n<router-outlet></router-outlet>\n"
/***/ }),
/***/ 844:
/***/ (function(module, exports) {
module.exports = "<h1>{{'PROJECT.PROJECTS' | translate}}</h1>\n<div class=\"row flex-items-xs-between\">\n <div class=\"flex-items-xs-middle\">\n <button class=\"btn btn-link\" (click)=\"openModal()\"><clr-icon shape=\"add\"></clr-icon> {{'PROJECT.NEW_PROJECT' | translate}}</button>\n <create-project (create)=\"createProject($event)\"></create-project>\n </div>\n <div class=\"flex-items-xs-middle\">\n <clr-dropdown [clrMenuPosition]=\"'bottom-left'\">\n <button class=\"btn btn-link\" clrDropdownToggle>\n {{projectTypes[currentFilteredType] | translate}}\n <clr-icon shape=\"caret down\"></clr-icon>\n </button>\n <div class=\"dropdown-menu\">\n <a href=\"javascript:void(0)\" clrDropdownItem (click)=\"doFilterProjects(0)\">{{projectTypes[0] | translate}}</a>\n <a href=\"javascript:void(0)\" clrDropdownItem (click)=\"doFilterProjects(1)\">{{projectTypes[1] | translate}}</a>\n </div>\n </clr-dropdown>\n <grid-filter filterPlaceholder='{{\"PROJECT.FILTER_PLACEHOLDER\" | translate}}' (filter)=\"doSearchProjects($event)\"></grid-filter>\n <a href=\"javascript:void(0)\" (click)=\"refresh()\"><clr-icon shape=\"refresh\"></clr-icon></a>\n </div>\n <div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n <list-project [projects]=\"changedProjects\" (toggle)=\"toggleProject($event)\" (delete)=\"deleteProject($event)\" (paginate)=\"retrieve($event)\" [totalPage]=\"totalPage\" [totalRecordCount]=\"totalRecordCount\"></list-project>\n </div>\n</div>"
/***/ }),
/***/ 845:
/***/ (function(module, exports) {
module.exports = "<clr-modal [(clrModalOpen)]=\"createEditDestinationOpened\">\n <h3 class=\"modal-title\">{{modalTitle}}</h3>\n <div class=\"modal-body\">\n <form #targetForm=\"ngForm\">\n <section class=\"form-block\">\n <clr-alert [clrAlertType]=\"'alert-danger'\" [(clrAlertClosed)]=\"!errorMessageOpened\" (clrAlertClosedChange)=\"onErrorMessageClose()\">\n <div class=\"alert-item\">\n <span class=\"alert-text\">\n {{errorMessage}}\n </span>\n </div>\n </clr-alert>\n <div class=\"form-group\">\n <label for=\"destination_name\" class=\"col-md-4\">{{ 'DESTINATION.NAME' | translate }}<span style=\"color: red\">*</span></label>\n <label class=\"col-md-8\" for=\"destination_name\" aria-haspopup=\"true\" role=\"tooltip\" [class.invalid]=\"targetName.errors && (targetName.dirty || targetName.touched)\" [class.valid]=\"targetName.valid\" class=\"tooltip tooltip-validation tooltip-sm tooltip-bottom-right\">\n <input type=\"text\" id=\"destination_name\" [disabled]=\"testOngoing\" [(ngModel)]=\"target.name\" name=\"targetName\" size=\"20\" #targetName=\"ngModel\" value=\"\" required> \n <span class=\"tooltip-content\" *ngIf=\"targetName.errors && targetName.errors.required && (targetName.dirty || targetName.touched)\">\n {{ 'DESTINATION.NAME_IS_REQUIRED' | translate }}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"destination_url\" class=\"col-md-4\">{{ 'DESTINATION.URL' | translate }}<span style=\"color: red\">*</span></label>\n <label class=\"col-md-8\" for=\"destination_url\" aria-haspopup=\"true\" role=\"tooltip\" [class.invalid]=\"targetEndpoint.errors && (targetEndpoint.dirty || targetEndpoint.touched)\" [class.valid]=\"targetEndpoint.valid\" class=\"tooltip tooltip-validation tooltip-sm tooltip-bottom-right\">\n <input type=\"text\" id=\"destination_url\" [disabled]=\"testOngoing\" [(ngModel)]=\"target.endpoint\" size=\"20\" name=\"endpointUrl\" #targetEndpoint=\"ngModel\" required>\n <span class=\"tooltip-content\" *ngIf=\"targetEndpoint.errors && targetEndpoint.errors.required && (targetEndpoint.dirty || targetEndpoint.touched)\">\n {{ 'DESTINATION.URL_IS_REQUIRED' | translate }}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"destination_username\" class=\"col-md-4\">{{ 'DESTINATION.USERNAME' | translate }}</label>\n <input type=\"text\" class=\"col-md-8\" id=\"destination_username\" [disabled]=\"testOngoing\" [(ngModel)]=\"target.username\" size=\"20\" name=\"username\" #username=\"ngModel\">\n </div>\n <div class=\"form-group\">\n <label for=\"destination_password\" class=\"col-md-4\">{{ 'DESTINATION.PASSWORD' | translate }}</label>\n <input type=\"password\" class=\"col-md-8\" id=\"destination_password\" [disabled]=\"testOngoing\" [(ngModel)]=\"target.password\" size=\"20\" name=\"password\" #password=\"ngModel\">\n </div>\n <div class=\"form-group\">\n <label for=\"spin\" class=\"col-md-4\"></label>\n <span class=\"col-md-8 spinner spinner-inline\" [hidden]=\"!testOngoing\"></span>\n <span [style.color]=\"!pingStatus ? 'red': ''\">{{ pingTestMessage }}</span>\n </div>\n </section>\n </form>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"testConnection()\" [disabled]=\"testOngoing || targetEndpoint.errors\">{{ 'DESTINATION.TEST_CONNECTION' | translate }}</button>\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"createEditDestinationOpened = false\" [disabled]=\"testOngoing\">{{ 'BUTTON.CANCEL' | translate }}</button>\n <button type=\"submit\" class=\"btn btn-primary\" [disabled]=\"!targetForm.form.valid\" (click)=\"onSubmit()\" [disabled]=\"testOngoing\">{{ 'BUTTON.OK' | translate }}</button>\n </div>\n</clr-modal>"
/***/ }),
/***/ 846:
/***/ (function(module, exports) {
module.exports = "<div class=\"row\">\n <div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n <div class=\"row flex-items-xs-between\">\n <div class=\"flex-items-xs-middle\">\n <button class=\"btn btn-link\" (click)=\"openModal()\"><clr-icon shape=\"add\"></clr-icon> {{'DESTINATION.NEW_ENDPOINT' | translate}}</button>\n <create-edit-destination (reload)=\"reload($event)\"></create-edit-destination>\n </div>\n <div class=\"flex-items-xs-middle\">\n <grid-filter filterPlaceholder='{{\"REPLICATION.FILTER_TARGETS_PLACEHOLDER\" | translate}}' (filter)=\"doSearchTargets($event)\"></grid-filter>\n <a href=\"javascript:void(0)\" (click)=\"refreshTargets()\"><clr-icon shape=\"refresh\"></clr-icon></a>\n </div>\n </div>\n <clr-datagrid>\n <clr-dg-column>{{'DESTINATION.NAME' | translate}}</clr-dg-column>\n <clr-dg-column>{{'DESTINATION.URL' | translate}}</clr-dg-column>\n <clr-dg-column>{{'DESTINATION.CREATION_TIME' | translate}}</clr-dg-column>\n <clr-dg-row *ngFor=\"let t of targets\">\n <clr-dg-cell>{{t.name}}</clr-dg-cell>\n <clr-dg-cell>{{t.endpoint}}</clr-dg-cell>\n <clr-dg-cell>{{t.creation_time}}\n <harbor-action-overflow>\n <a href=\"javascript:void(0)\" class=\"dropdown-item\" (click)=\"editTarget(t)\">{{'DESTINATION.TITLE_EDIT' | translate}}</a>\n <a href=\"javascript:void(0)\" class=\"dropdown-item\" (click)=\"deleteTarget(t)\">{{'DESTINATION.DELETE' | translate}}</a>\n </harbor-action-overflow>\n </clr-dg-cell>\n </clr-dg-row>\n <clr-dg-footer>{{ (targets ? targets.length : 0) }} {{'DESTINATION.ITEMS' | translate}}</clr-dg-footer>\n </clr-datagrid>\n </div>\n</div>"
/***/ }),
/***/ 847:
/***/ (function(module, exports) {
module.exports = "<clr-datagrid (clrDgRefresh)=\"refresh($event)\"> \n <clr-dg-column>{{'REPLICATION.NAME' | translate}}</clr-dg-column>\n <clr-dg-column>{{'REPLICATION.STATUS' | translate}}</clr-dg-column>\n <clr-dg-column>{{'REPLICATION.OPERATION' | translate}}</clr-dg-column> \n <clr-dg-column>{{'REPLICATION.CREATION_TIME' | translate}}</clr-dg-column>\n <clr-dg-column>{{'REPLICATION.END_TIME' | translate}}</clr-dg-column>\n <clr-dg-column>{{'REPLICATION.LOGS' | translate}}</clr-dg-column>\n <clr-dg-row *ngFor=\"let j of jobs\">\n <clr-dg-cell>{{j.repository}}</clr-dg-cell>\n <clr-dg-cell>{{j.status}}</clr-dg-cell>\n <clr-dg-cell>{{j.operation}}</clr-dg-cell>\n <clr-dg-cell>{{j.creation_time}}</clr-dg-cell>\n <clr-dg-cell>{{j.update_time}}</clr-dg-cell>\n <clr-dg-cell><a href=\"/api/jobs/replication/{{j.id}}/log\" target=\"_BLANK\"><clr-icon shape=\"clipboard\"></clr-icon></a></clr-dg-cell>\n </clr-dg-row>\n <clr-dg-footer>\n {{ totalRecordCount }} {{'REPLICATION.ITEMS' | translate}} \n <clr-dg-pagination [clrDgPageSize]=\"pageOffset\" [clrDgTotalItems]=\"totalPage\"></clr-dg-pagination>\n </clr-dg-footer>\n</clr-datagrid>"
/***/ }),
/***/ 848:
/***/ (function(module, exports) {
module.exports = "<h2>{{'SIDE_NAV.SYSTEM_MGMT.REPLICATION' | translate}}</h2>\n<nav class=\"subnav\">\n <ul class=\"nav\">\n <li class=\"nav-item\">\n <a class=\"nav-link\" routerLink=\"endpoints\" routerLinkActive=\"active\">{{'REPLICATION.ENDPOINTS' | translate}}</a>\n </li>\n <li class=\"nav-item\">\n <a class=\"nav-link\" routerLink=\"rules\" routerLinkActive=\"active\">{{'REPLICATION.REPLICATION_RULE' | translate}}</a>\n </li>\n </ul>\n</nav>\n<router-outlet></router-outlet>\n"
/***/ }),
/***/ 849:
/***/ (function(module, exports) {
module.exports = "<div class=\"row\">\n <div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n <div class=\"row flex-items-xs-between\">\n <div class=\"flex-xs-middle\">\n <button class=\"btn btn-link\" (click)=\"openModal()\"><clr-icon shape=\"add\"></clr-icon> {{'REPLICATION.NEW_REPLICATION_RULE' | translate}}</button>\n <create-edit-policy [projectId]=\"projectId\" (reload)=\"reloadPolicies($event)\"></create-edit-policy>\n </div>\n <div class=\"flex-xs-middle\">\n <clr-dropdown [clrMenuPosition]=\"'bottom-left'\">\n <button class=\"btn btn-link\" clrDropdownToggle>\n {{currentRuleStatus.description | translate}}\n <clr-icon shape=\"caret down\"></clr-icon>\n </button>\n <div class=\"dropdown-menu\">\n <a href=\"javascript:void(0)\" clrDropdownItem *ngFor=\"let r of ruleStatus\" (click)=\"doFilterPolicyStatus(r.key)\"> {{r.description | translate}}</a>\n </div>\n </clr-dropdown>\n <grid-filter filterPlaceholder='{{\"REPLICATION.FILTER_POLICIES_PLACEHOLDER\" | translate}}' (filter)=\"doSearchPolicies($event)\"></grid-filter>\n <a href=\"javascript:void(0)\" (click)=\"refreshPolicies()\"><clr-icon shape=\"refresh\"></clr-icon></a>\n </div>\n </div>\n <list-policy [policies]=\"changedPolicies\" [projectless]=\"false\" [selectedId]=\"initSelectedId\" (selectOne)=\"selectOne($event)\" (editOne)=\"openEditPolicy($event)\" (reload)=\"reloadPolicies($event)\"></list-policy>\n <div class=\"row flex-items-xs-between\">\n <h5 class=\"flex-items-xs-bottom\" style=\"margin-left: 14px;\">{{'REPLICATION.REPLICATION_JOBS' | translate}}</h5>\n <div class=\"flex-items-xs-bottom\">\n <button class=\"btn btn-link\" (click)=\"toggleSearchJobOptionalName(currentJobSearchOption)\">{{toggleJobSearchOption[currentJobSearchOption] | translate}}</button>\n <grid-filter filterPlaceholder='{{\"REPLICATION.FILTER_POLICIES_PLACEHOLDER\" | translate}}' (filter)=\"doSearchJobs($event)\"></grid-filter>\n <a href=\"javascript:void(0)\" (click)=\"refreshJobs()\"><clr-icon shape=\"refresh\"></clr-icon></a>\n </div>\n </div>\n <div class=\"row flex-items-xs-right\" [hidden]=\"currentJobSearchOption === 0\">\n <clr-dropdown [clrMenuPosition]=\"'bottom-left'\">\n <button class=\"btn btn-link\" clrDropdownToggle>\n {{currentJobStatus.description | translate}}\n <clr-icon shape=\"caret down\"></clr-icon>\n </button>\n <div class=\"dropdown-menu\">\n <a href=\"javascript:void(0)\" clrDropdownItem *ngFor=\"let j of jobStatus\" (click)=\"doFilterJobStatus(j.key)\"> {{j.description | translate}}</a>\n </div>\n </clr-dropdown>\n <div class=\"flex-items-xs-middle\">\n <clr-icon shape=\"date\"></clr-icon><input type=\"date\" #fromTime (change)=\"doJobSearchByTimeRange(fromTime.value, 'begin')\">\n <clr-icon shape=\"date\"></clr-icon><input type=\"date\" #toTime (change)=\"doJobSearchByTimeRange(toTime.value, 'end')\">\n </div>\n </div>\n <list-job [jobs]=\"changedJobs\" [totalPage]=\"jobsTotalPage\" [totalRecordCount]=\"jobsTotalRecordCount\" (paginate)=\"fetchPolicyJobs($event)\"></list-job> \n </div>\n</div>"
/***/ }),
/***/ 850:
/***/ (function(module, exports) {
module.exports = "<div class=\"row\">\n <div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n <div class=\"row flex-items-xs-right\">\n <div class=\"flex-items-xs-middle\">\n <grid-filter filterPlaceholder='{{\"REPLICATION.FILTER_POLICIES_PLACEHOLDER\" | translate}}' (filter)=\"doSearchPolicies($event)\"></grid-filter>\n <a href=\"javascript:void(0)\" (click)=\"refreshPolicies()\"><clr-icon shape=\"refresh\"></clr-icon></a>\n </div>\n </div>\n <create-edit-policy [projectId]=\"projectId\" (reload)=\"reloadPolicies($event)\"></create-edit-policy>\n <list-policy [policies]=\"changedPolicies\" [projectless]=\"true\" (editOne)=\"openEditPolicy($event)\" (selectOne)=\"selectPolicy($event)\" (reload)=\"reloadPolicies($event)\"></list-policy>\n </div>\n</div>"
/***/ }),
/***/ 851:
/***/ (function(module, exports) {
module.exports = "<clr-datagrid (clrDgRefresh)=\"refresh($event)\">\n <clr-dg-column>{{'REPOSITORY.NAME' | translate}}</clr-dg-column>\n <clr-dg-column>{{'REPOSITORY.TAGS_COUNT' | translate}}</clr-dg-column>\n <clr-dg-column>{{'REPOSITORY.PULL_COUNT' | translate}}</clr-dg-column>\n <clr-dg-row *ngFor=\"let r of repositories\">\n <clr-dg-cell><a href=\"javascript:void(0)\" (click)=\"gotoLink(projectId || r.project_id, r.name || r.repository_name)\">{{r.name || r.repository_name}}</a></clr-dg-cell>\n <clr-dg-cell>{{r.tags_count}}</clr-dg-cell>\n <clr-dg-cell>{{r.pull_count}}\n <harbor-action-overflow *ngIf=\"listFullMode\">\n <a href=\"javascript:void(0)\" class=\"dropdown-item\">{{'REPOSITORY.COPY_ID' | translate}}</a>\n <a href=\"javascript:void(0)\" class=\"dropdown-item\">{{'REPOSITORY.COPY_PARENT_ID' | translate}}</a>\n <div class=\"dropdown-divider\"></div>\n <a href=\"javascript:void(0)\" class=\"dropdown-item\" (click)=\"deleteRepo(r.name)\">{{'REPOSITORY.DELETE' | translate}}</a>\n </harbor-action-overflow>\n </clr-dg-cell>\n </clr-dg-row>\n <clr-dg-footer>\n {{totalRecordCount || (repositories ? repositories.length : 0)}} {{'REPOSITORY.ITEMS' | translate}}\n <clr-dg-pagination [clrDgPageSize]=\"pageOffset\" [clrDgTotalItems]=\"totalPage\"></clr-dg-pagination>\n </clr-dg-footer>\n</clr-datagrid>"
/***/ }),
/***/ 852:
/***/ (function(module, exports) {
module.exports = "<div class=\"row\">\n <div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\"> \n <div class=\"row flex-items-xs-right\">\n <div class=\"flex-xs-middle\">\n <grid-filter filterPlaceholder=\"{{'REPOSITORY.FILTER_FOR_REPOSITORIES' | translate}}\" (filter)=\"doSearchRepoNames($event)\"></grid-filter> \n <a href=\"javascript:void(0)\" (click)=\"refresh()\"><clr-icon shape=\"refresh\"></clr-icon></a>\n </div>\n </div>\n <list-repository [projectId]=\"projectId\" [repositories]=\"changedRepositories\" (delete)=\"deleteRepo($event)\" [totalPage]=\"totalPage\" [totalRecordCount]=\"totalRecordCount\" (paginate)=\"retrieve($event)\"></list-repository>\n </div>\n</div>"
/***/ }),
/***/ 853:
/***/ (function(module, exports) {
module.exports = "<a [routerLink]=\"['/harbor', 'projects', projectId, 'repository']\">&lt; {{'REPOSITORY.REPOSITORIES' | translate}}</a>\n<h2>{{repoName}} <span class=\"badge\">{{tags ? tags.length : 0}}</span></h2>\n<clr-datagrid>\n <clr-dg-column>{{'REPOSITORY.TAG' | translate}}</clr-dg-column>\n <clr-dg-column>{{'REPOSITORY.PULL_COMMAND' | translate}}</clr-dg-column>\n <clr-dg-column>{{'REPOSITORY.VERIFIED' | translate}}</clr-dg-column>\n <clr-dg-column>{{'REPOSITORY.AUTHOR' | translate}}</clr-dg-column>\n <clr-dg-column>{{'REPOSITORY.CREATED' | translate}}</clr-dg-column>\n <clr-dg-column>{{'REPOSITORY.DOCKER_VERSION' | translate}}</clr-dg-column>\n <clr-dg-column>{{'REPOSITORY.ARCHITECTURE' | translate}}</clr-dg-column>\n <clr-dg-column>{{'REPOSITORY.OS' | translate}}</clr-dg-column>\n <clr-dg-row *ngFor=\"let t of tags\">\n <clr-dg-cell>{{t.tag}}</clr-dg-cell>\n <clr-dg-cell>{{t.pullCommand}}</clr-dg-cell>\n <clr-dg-cell>\n <clr-icon shape=\"check\" *ngIf=\"t.verified\" style=\"color: #1D5100;\"></clr-icon>\n <clr-icon shape=\"close\" *ngIf=\"!t.verified\" style=\"color: #C92100;\"></clr-icon>\n </clr-dg-cell>\n <clr-dg-cell>{{t.author}}</clr-dg-cell>\n <clr-dg-cell>{{t.created | date: 'yyyy/MM/dd'}}</clr-dg-cell>\n <clr-dg-cell>{{t.dockerVersion}}</clr-dg-cell>\n <clr-dg-cell>{{t.architecture}}</clr-dg-cell>\n <clr-dg-cell>{{t.os}}\n <harbor-action-overflow>\n <a href=\"javascript:void(0)\" class=\"dropdown-item\" (click)=\"deleteTag(t)\">{{'REPOSITORY.DELETE' | translate}}</a>\n </harbor-action-overflow>\n </clr-dg-cell>\n </clr-dg-row>\n <clr-dg-footer>{{tags ? tags.length : 0}} {{'REPOSITORY.ITEMS' | translate}}</clr-dg-footer>\n</clr-datagrid>"
/***/ }),
/***/ 854:
/***/ (function(module, exports) {
module.exports = "<div class=\"card card-block\">\n <h3 class=\"card-title\">Popular Repositories</h3>\n <list-repository [repositories]=\"topRepos\" [mode]=\"listMode\"></list-repository>\n</div>"
/***/ }),
/***/ 855:
/***/ (function(module, exports) {
module.exports = "<clr-modal [(clrModalOpen)]=\"opened\" [clrModalClosable]=\"true\" [clrModalStaticBackdrop]=\"false\">\n <h3 class=\"modal-title margin-left-override\">vmware</h3>\n <div class=\"modal-body margin-left-override\">\n <div class=\"about-product-title\">Harbor</div>\n <div style=\"height: 12px;\"></div>\n <div>\n <span class=\"about-version\">{{'ABOUT.VERSION' | translate}} {{version}}</span>\n <span>|</span>\n <span class=\"about-build\">{{'ABOUT.BUILD' | translate}} {{build}}</span>\n </div>\n <div style=\"height: 12px;\"></div>\n <div>\n <p class=\"about-copyright-text\">{{'ABOUT.COPYRIGHT' | translate}} <a href=\"http://www.vmware.com/go/patents\" target=\"_blank\" class=\"about-text-link\">http://www.vmware.com/go/patents</a></p>\n <p class=\"about-copyright-text\">{{'ABOUT.TRADEMARK' | translate}}</p>\n <p>\n <a href=\"#\" target=\"_blank\" class=\"about-text-link\">{{'ABOUT.END_USER_LICENSE' | translate}}</a><br>\n <a href=\"#\" target=\"_blank\" class=\"about-text-link\">{{'ABOUT.OPEN_SOURCE_LICENSE' | translate}}</a>\n </p>\n <div style=\"height: 24px;\"></div>\n </div>\n </div>\n <div class=\"modal-footer margin-left-override\">\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"close()\">{{'BUTTON.CLOSE' | translate}}</button>\n </div>\n</clr-modal>"
/***/ }),
/***/ 856:
/***/ (function(module, exports) {
module.exports = "<clr-modal [(clrModalOpen)]=\"createEditPolicyOpened\">\n <h3 class=\"modal-title\">{{modalTitle}}</h3>\n <div class=\"modal-body\">\n <form #policyForm=\"ngForm\">\n <section class=\"form-block\">\n <clr-alert [clrAlertType]=\"'alert-danger'\" [(clrAlertClosed)]=\"!errorMessageOpened\" (clrAlertClosedChange)=\"onErrorMessageClose()\">\n <div class=\"alert-item\">\n <span class=\"alert-text\">\n {{errorMessage}}\n </span>\n </div>\n </clr-alert>\n <div class=\"form-group\">\n <label for=\"policy_name\" class=\"col-md-4\">{{'REPLICATION.NAME' | translate}}<span style=\"color: red\">*</span></label>\n <label for=\"policy_name\" class=\"col-md-8\" aria-haspopup=\"true\" role=\"tooltip\" [class.invalid]=\"name.errors && (name.dirty || name.touched)\" [class.valid]=\"name.valid\" class=\"tooltip tooltip-validation tooltip-sm tooltip-bottom-right\">\n <input type=\"text\" id=\"policy_name\" [(ngModel)]=\"createEditPolicy.name\" name=\"name\" #name=\"ngModel\" required>\n <span class=\"tooltip-content\" *ngIf=\"name.errors && name.errors.required && (name.dirty || name.touched)\">\n {{'REPLICATION.NAME_IS_REQUIRED'}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"policy_description\" class=\"col-md-4\">{{'REPLICATION.DESCRIPTION' | translate}}</label>\n <input type=\"text\" class=\"col-md-8\" id=\"policy_description\" [(ngModel)]=\"createEditPolicy.description\" name=\"description\" size=\"20\" #description=\"ngModel\"> \n </div>\n <div class=\"form-group\">\n <label class=\"col-md-4\">{{'REPLICATION.ENABLE' | translate}}</label>\n <div class=\"checkbox-inline\">\n <input type=\"checkbox\" id=\"policy_enable\" [(ngModel)]=\"createEditPolicy.enable\" name=\"enable\" #enable=\"ngModel\">\n <label for=\"policy_enable\"></label>\n </div>\n </div>\n <div class=\"form-group\">\n <label for=\"destination_name\" class=\"col-md-4\">{{'REPLICATION.DESTINATION_NAME' | translate}}<span style=\"color: red\">*</span></label>\n <div class=\"select\" *ngIf=\"!isCreateDestination\">\n <select id=\"destination_name\" [(ngModel)]=\"createEditPolicy.targetId\" name=\"targetId\" (change)=\"selectTarget()\" [disabled]=\"testOngoing\">\n <option *ngFor=\"let t of targets\" [value]=\"t.id\" [selected]=\"t.id == createEditPolicy.targetId\">{{t.name}}</option>\n </select>\n </div>\n <label class=\"col-md-8\" *ngIf=\"isCreateDestination\" for=\"destination_name\" aria-haspopup=\"true\" role=\"tooltip\" [class.invalid]=\"targetName.errors && (targetName.dirty || targetName.touched)\" [class.valid]=\"targetName.valid\" class=\"tooltip tooltip-validation tooltip-sm tooltip-bottom-right\">\n <input type=\"text\" id=\"destination_name\" [(ngModel)]=\"createEditPolicy.targetName\" name=\"targetName\" size=\"20\" #targetName=\"ngModel\" value=\"\" required> \n <span class=\"tooltip-content\" *ngIf=\"targetName.errors && targetName.errors.required && (targetName.dirty || targetName.touched)\">\n {{'REPLICATION.DESTINATION_NAME_IS_REQUIRED' | translate}}\n </span>\n </label>\n <div class=\"checkbox-inline\">\n <input type=\"checkbox\" id=\"check_new\" (click)=\"newDestination(checkedAddNew.checked)\" #checkedAddNew [checked]=\"isCreateDestination\" [disabled]=\"testOngoing\">\n <label for=\"check_new\">{{'REPLICATION.NEW_DESTINATION' | translate}}</label>\n </div>\n </div>\n <div class=\"form-group\">\n <label for=\"destination_url\" class=\"col-md-4\">{{'REPLICATION.DESTINATION_URL' | translate}}<span style=\"color: red\">*</span></label>\n <label for=\"destination_url\" class=\"col-md-8\" aria-haspopup=\"true\" role=\"tooltip\" [class.invalid]=\"endpointUrl.errors && (endpointUrl.dirty || endpointUrl.touched)\" [class.valid]=\"endpointUrl.valid\" class=\"tooltip tooltip-validation tooltip-sm tooltip-bottom-right\">\n <input type=\"text\" id=\"destination_url\" [disabled]=\"testOngoing\" [(ngModel)]=\"createEditPolicy.endpointUrl\" size=\"20\" name=\"endpointUrl\" required #endpointUrl=\"ngModel\">\n <span class=\"tooltip-content\" *ngIf=\"endpointUrl.errors && endpointUrl.errors.required && (endpointUrl.dirty || endpointUrl.touched)\">\n {{'REPLICATION.DESTINATION_URL_IS_REQUIRED' | translate}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"destination_username\" class=\"col-md-4\">{{'REPLICATION.DESTINATION_USERNAME' | translate}}</label>\n <input type=\"text\" class=\"col-md-8\" id=\"destination_username\" [disabled]=\"testOngoing\" [(ngModel)]=\"createEditPolicy.username\" size=\"20\" name=\"username\" #username=\"ngModel\">\n </div>\n <div class=\"form-group\">\n <label for=\"destination_password\" class=\"col-md-4\">{{'REPLICATION.DESTINATION_PASSWORD' | translate}}</label>\n <input type=\"password\" class=\"col-md-8\" id=\"destination_password\" [disabled]=\"testOngoing\" [(ngModel)]=\"createEditPolicy.password\" size=\"20\" name=\"password\" #password=\"ngModel\">\n </div>\n <div class=\"form-group\">\n <label for=\"spin\" class=\"col-md-4\"></label>\n <span class=\"col-md-8 spinner spinner-inline\" [hidden]=\"!testOngoing\"></span>\n <span [style.color]=\"!pingStatus ? 'red': ''\">{{ pingTestMessage }}</span>\n </div>\n </section>\n </form>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"testConnection()\" [disabled]=\"testOngoing\">{{'REPLICATION.TEST_CONNECTION' | translate}}</button>\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"createEditPolicyOpened = false\">{{'BUTTON.CANCEL' | translate }}</button>\n <button type=\"submit\" class=\"btn btn-primary\" [disabled]=\"!policyForm.form.valid\" (click)=\"onSubmit()\">{{'BUTTON.OK' | translate}}</button>\n </div>\n</clr-modal>"
/***/ }),
/***/ 857:
/***/ (function(module, exports) {
module.exports = "<clr-modal [(clrModalOpen)]=\"opened\" [clrModalClosable]=\"false\" [clrModalStaticBackdrop]=\"true\">\n <h3 class=\"modal-title\" class=\"deletion-title\" style=\"margin-top: 0px;\">{{dialogTitle}}</h3>\n <div class=\"modal-body\">\n <div class=\"deletion-icon-inline\">\n <clr-icon shape=\"warning\" class=\"is-warning\" size=\"64\"></clr-icon>\n </div>\n <div class=\"deletion-content\">{{dialogContent}}</div>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"close()\">{{'BUTTON.CANCEL' | translate}}</button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"confirm()\">{{'BUTTON.CONFIRM' | translate}}</button>\n </div>\n</clr-modal>"
/***/ }),
/***/ 858:
/***/ (function(module, exports) {
module.exports = "<span>\n <clr-icon shape=\"filter\" size=\"12\" class=\"is-solid filter-icon\"></clr-icon>\n <input type=\"text\" style=\"padding-left: 15px;\" (keyup)=\"valueChange()\" placeholder=\"{{placeHolder}}\" [(ngModel)]=\"currentValue\"/>\n</span>"
/***/ }),
/***/ 859:
/***/ (function(module, exports) {
module.exports = "<span style=\"float: right; margin-right: 24px;\">\n<clr-dropdown [clrMenuPosition]=\"'bottom-right'\" [clrCloseMenuOnItemClick]=\"true\" style=\"position: absolute;\">\n <button clrDropdownToggle>\n <clr-icon shape=\"ellipses-vertical\"></clr-icon>\n </button>\n <div class=\"dropdown-menu\">\n <ng-content></ng-content>\n </div>\n</clr-dropdown>\n</span>"
/***/ }),
/***/ 860:
/***/ (function(module, exports) {
module.exports = "<clr-alert [clrAlertType]=\"inlineAlertType\" [clrAlertClosable]=\"inlineAlertClosable\" [(clrAlertClosed)]=\"alertClose\" [clrAlertAppLevel]=\"useAppLevelStyle\">\n <div class=\"alert-item\">\n <span class=\"alert-text\">\n {{errorMessage}}\n </span>\n <div class=\"alert-actions\" *ngIf=\"showCancelAction\">\n <button class=\"btn alert-action\" (click)=\"confirmCancel()\">{{'BUTTON.CONFIRM' | translate}}</button>\n </div>\n </div>\n</clr-alert>"
/***/ }),
/***/ 861:
/***/ (function(module, exports) {
module.exports = "<clr-datagrid>\n <clr-dg-column>{{'REPLICATION.NAME' | translate}}</clr-dg-column>\n <clr-dg-column *ngIf=\"projectless\">{{'REPLICATION.PROJECT' | translate}}</clr-dg-column> \n <clr-dg-column>{{'REPLICATION.DESCRIPTION' | translate}}</clr-dg-column>\n <clr-dg-column>{{'REPLICATION.DESTINATION_NAME' | translate}}</clr-dg-column>\n <clr-dg-column>{{'REPLICATION.LAST_START_TIME' | translate}}</clr-dg-column> \n <clr-dg-column>{{'REPLICATION.ACTIVATION' | translate}}</clr-dg-column>\n <clr-dg-row *ngFor=\"let p of policies;let i = index;\" (click)=\"selectPolicy(p)\" [style.backgroundColor]=\"(!projectless && selectedId === p.id) ? '#eee' : ''\">\n <clr-dg-cell>{{p.name}}</clr-dg-cell>\n <clr-dg-cell *ngIf=\"projectless\">{{p.project_name}}</clr-dg-cell>\n <clr-dg-cell>{{p.description}}</clr-dg-cell>\n <clr-dg-cell>{{p.target_name}}</clr-dg-cell>\n <clr-dg-cell>{{p.start_time}}</clr-dg-cell>\n <clr-dg-cell>\n {{ (p.enabled === 1 ? 'REPLICATION.ENABLED' : 'REPLICATION.DISABLED') | translate}}\n <harbor-action-overflow>\n <a href=\"javascript:void(0)\" class=\"dropdown-item\" (click)=\"editPolicy(p)\">{{'REPLICATION.EDIT_POLICY' | translate}}</a>\n <a href=\"javascript:void(0)\" class=\"dropdown-item\" (click)=\"enablePolicy(p)\">{{ (p.enabled === 0 ? 'REPLICATION.ENABLE' : 'REPLICATION.DISABLE') | translate}}</a>\n <a href=\"javascript:void(0)\" class=\"dropdown-item\" (click)=\"deletePolicy(p)\">{{'REPLICATION.DELETE_POLICY' | translate}}</a>\n </harbor-action-overflow>\n </clr-dg-cell>\n </clr-dg-row>\n <clr-dg-footer>{{ (policies ? policies.length : 0) }} {{'REPLICATION.ITEMS' | translate}}</clr-dg-footer>\n</clr-datagrid>"
/***/ }),
/***/ 862:
/***/ (function(module, exports) {
module.exports = "<div>\n <form #newUserFrom=\"ngForm\" class=\"form\">\n <section class=\"form-block\">\n <div class=\"form-group\">\n <label for=\"username\" class=\"col-md-4 required\">{{'PROFILE.USER_NAME' | translate}}</label>\n <label for=\"username\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-bottom-left\" [class.invalid]=\"usernameInput.invalid && (usernameInput.dirty || usernameInput.touched)\">\n <input type=\"text\" placeholder='{{\"PLACEHOLDER.USER_NAME\" | translate}}' required pattern='[^\"~#$%]+' maxLengthExt=\"20\" #usernameInput=\"ngModel\" name=\"username\" [(ngModel)]=\"newUser.username\" id=\"username\" size=\"28\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.USER_NAME' | translate}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"email\" class=\"col-md-4 required\">{{'PROFILE.EMAIL' | translate}}</label>\n <label for=\"email\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-bottom-left\" [class.invalid]=\"eamilInput.invalid && (eamilInput.dirty || eamilInput.touched)\">\n <input name=\"email\" type=\"text\" #eamilInput=\"ngModel\" [(ngModel)]=\"newUser.email\" \n placeholder='{{\"PLACEHOLDER.MAIL\" | translate}}'\n required \n pattern='^[a-zA-Z0-9.!#$%&*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$' id=\"email\" size=\"28\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.EMAIL' | translate}}\n </span>\n </label>\n <label *ngIf=\"isSelfRegistration\" role=\"tooltip\" aria-haspopup=\"true\" class=\"tooltip tooltip-bottom-left\">\n <clr-icon shape=\"info\" class=\"is-info\" size=\"24\"></clr-icon>\n <span class=\"tooltip-content\">\n {{'TOOLTIP.SIGN_UP_MAIL' | translate}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"realname\" class=\"col-md-4 required\">{{'PROFILE.FULL_NAME' | translate}}</label>\n <label for=\"realname\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-bottom-left\" [class.invalid]=\"fullNameInput.invalid && (fullNameInput.dirty || fullNameInput.touched)\">\n <input type=\"text\" placeholder='{{\"PLACEHOLDER.FULL_NAME\" | translate}}' name=\"realname\" #fullNameInput=\"ngModel\" [(ngModel)]=\"newUser.realname\" required maxLengthExt=\"20\" id=\"realname\" size=\"28\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.FULL_NAME' | translate}}\n </span>\n </label>\n <label *ngIf=\"isSelfRegistration\" role=\"tooltip\" aria-haspopup=\"true\" class=\"tooltip tooltip-bottom-left\">\n <clr-icon shape=\"info\" class=\"is-info\" size=\"24\"></clr-icon>\n <span class=\"tooltip-content\">\n {{'TOOLTIP.SIGN_UP_REAL_NAME' | translate}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"newPassword\" class=\"required\">{{'PROFILE.PASSWORD' | translate}}</label>\n <label for=\"newPassword\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-bottom-left\" [class.invalid]=\"newPassInput.invalid && (newPassInput.dirty || newPassInput.touched)\">\n <input type=\"password\" id=\"newPassword\" placeholder='{{\"PLACEHOLDER.NEW_PWD\" | translate}}'\n required\n pattern=\"^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d]{7,}$\"\n name=\"newPassword\"\n [(ngModel)]=\"newUser.password\"\n #newPassInput=\"ngModel\" size=\"28\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.PASSWORD' | translate}}\n </span>\n </label>\n <label *ngIf=\"isSelfRegistration\" role=\"tooltip\" aria-haspopup=\"true\" class=\"tooltip tooltip-bottom-left\">\n <clr-icon shape=\"info\" class=\"is-info\" size=\"24\"></clr-icon>\n <span class=\"tooltip-content\">\n {{'TOOLTIP.PASSWORD' | translate}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"confirmPassword\" class=\"required\">{{'CHANGE_PWD.CONFIRM_PWD' | translate}}</label>\n <label for=\"confirmPassword\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-bottom-left\" [class.invalid]=\"(confirmPassInput.invalid && (confirmPassInput.dirty || confirmPassInput.touched)) || (!confirmPassInput.invalid && confirmPassInput.value != newPassInput.value)\">\n <input type=\"password\" id=\"confirmPassword\" placeholder='{{\"PLACEHOLDER.CONFIRM_PWD\" | translate}}'\n required\n pattern=\"^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d]{7,}$\"\n name=\"confirmPassword\"\n [(ngModel)]=\"confirmedPwd\"\n #confirmPassInput=\"ngModel\" size=\"28\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.CONFIRM_PWD' | translate}}\n </span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"comment\" class=\"col-md-4\">{{'PROFILE.COMMENT' | translate}}</label>\n <label for=\"comment\" aria-haspopup=\"true\" role=\"tooltip\" class=\"tooltip tooltip-validation tooltip-md tooltip-bottom-left\" [class.invalid]=\"commentInput.invalid && (commentInput.dirty || commentInput.touched)\">\n <input type=\"text\" #commentInput=\"ngModel\" name=\"comment\" [(ngModel)]=\"newUser.comment\" maxLengthExt=\"20\" id=\"comment\" size=\"28\">\n <span class=\"tooltip-content\">\n {{'TOOLTIP.COMMENT' | translate}}\n </span>\n </label>\n </div>\n </section>\n </form>\n</div>\n<div style=\"height: 15px;\"></div>"
/***/ }),
/***/ 863:
/***/ (function(module, exports) {
module.exports = "<div class=\"wrapper-back\">\n <div>\n <clr-icon shape=\"warning\" class=\"is-warning\" size=\"96\"></clr-icon>\n <span class=\"status-code\">404</span>\n <span class=\"status-text\">{{'PAGE_NOT_FOUND.MAIN_TITLE' | translate}}</span>\n </div>\n <div class=\"status-subtitle\">\n {{'PAGE_NOT_FOUND.SUB_TITLE' | translate}} <span class=\"second-number\">{{leftSeconds}}</span> {{'PAGE_NOT_FOUND.UNIT' | translate}}\n </div>\n</div>"
/***/ }),
/***/ 864:
/***/ (function(module, exports) {
module.exports = "<div class=\"card card-block\">\n <h3 class=\"card-title\">{{'STATISTICS.TITLE' | translate }}</h3>\n <span class=\"card-text\">\n <div class=\"row\">\n <div class=\"col-xs-2 col-sm-2 col-md-2 col-lg-2 col-xl-2\">\n<span class=\"statistic-column-title\">{{'STATISTICS.PRO_ITEM' | translate }}</span>\n</div>\n<div class=\"col-xs-10 col-sm-10 col-md-10 col-lg-10 col-xl-10\">\n <statistics [data]='{number: originalCopy.my_project_count, label: \"my\"}'></statistics>\n <statistics [data]='{number: originalCopy.public_project_count, label: \"pub\"}'></statistics>\n <statistics [data]='{number: originalCopy.total_project_count, label: \"total\"}' *ngIf=\"isValidSession\"></statistics>\n</div>\n</div>\n<div class=\"row\">\n <div class=\"col-xs-2 col-sm-2 col-md-2 col-lg-2 col-xl-2\">\n <span class=\"statistic-column-title\">{{'STATISTICS.REPO_ITEM' | translate }}</span>\n </div>\n <div class=\"col-xs-10 col-sm-10 col-md-10 col-lg-10 col-xl-10\">\n <statistics [data]='{number: originalCopy.my_repo_count, label: \"my\"}'></statistics>\n <statistics [data]='{number: originalCopy.public_repo_count, label: \"pub\"}'></statistics>\n <statistics [data]='{number: originalCopy.total_repo_count, label: \"total\"}' *ngIf=\"isValidSession\"></statistics>\n </div>\n</div>\n</span>\n</div>"
/***/ }),
/***/ 865:
/***/ (function(module, exports) {
module.exports = "<div class=\"statistic-wrapper\">\n <span class=\"statistic-data\">{{data.number}}</span>\n <span class=\"statistic-text\">{{data.label}}</span>\n</div>"
/***/ }),
/***/ 866:
/***/ (function(module, exports) {
module.exports = "<clr-modal [(clrModalOpen)]=\"opened\" [clrModalStaticBackdrop]=\"staticBackdrop\">\n <h3 class=\"modal-title\">{{'USER.ADD_USER_TITLE' | translate}}</h3>\n <div class=\"modal-body\">\n <new-user-form (valueChange)=\"formValueChange($event)\"></new-user-form>\n <inline-alert (confirmEvt)=\"confirmCancel($event)\"></inline-alert>\n </div>\n <div class=\"modal-footer\">\n <span class=\"spinner spinner-inline\" style=\"top:8px;\" [hidden]=\"inProgress === false\"> </span>\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"close()\">{{'BUTTON.CANCEL' | translate}}</button>\n <button type=\"button\" class=\"btn btn-primary\" [disabled]=\"!isValid || inProgress\" (click)=\"create()\">{{'BUTTON.OK' | translate}}</button>\n </div>\n</clr-modal>"
/***/ }),
/***/ 867:
/***/ (function(module, exports) {
module.exports = "<div>\n <h2 class=\"custom-h2\">{{'SIDE_NAV.SYSTEM_MGMT.USER' | translate}}</h2>\n <div class=\"action-panel-pos\">\n <span>\n <clr-icon shape=\"plus\" class=\"is-highlight\" size=\"24\"></clr-icon>\n <button type=\"submit\" class=\"btn btn-link custom-add-button\" (click)=\"addNewUser()\">{{'USER.ADD_ACTION' | translate}}</button>\n </span>\n <grid-filter class=\"filter-pos\" filterPlaceholder='{{\"USER.FILTER_PLACEHOLDER\" | translate}}' (filter)=\"doFilter($event)\"></grid-filter>\n <span class=\"refresh-btn\" (click)=\"refreshUser()\">\n <clr-icon shape=\"refresh\" [hidden]=\"inProgress\" ng-disabled=\"inProgress\"></clr-icon>\n <span class=\"spinner spinner-inline\" [hidden]=\"inProgress === false\"></span>\n </span>\n </div>\n <div>\n <clr-datagrid>\n <clr-dg-column>{{'USER.COLUMN_NAME' | translate}}</clr-dg-column>\n <clr-dg-column>{{'USER.COLUMN_ADMIN' | translate}}</clr-dg-column>\n <clr-dg-column>{{'USER.COLUMN_EMAIL' | translate}}</clr-dg-column>\n <clr-dg-column>{{'USER.COLUMN_REG_NAME' | translate}}</clr-dg-column>\n <clr-dg-row *clrDgItems=\"let user of users\" [clrDgItem]=\"user\">\n <clr-dg-cell>{{user.username}}</clr-dg-cell>\n <clr-dg-cell>{{isSystemAdmin(user)}}</clr-dg-cell>\n <clr-dg-cell>{{user.email}}</clr-dg-cell>\n <clr-dg-cell>\n {{user.creation_time}}\n <harbor-action-overflow>\n <a href=\"javascript:void(0)\" class=\"dropdown-item\" (click)=\"changeAdminRole(user)\">{{adminActions(user)}}</a>\n <div class=\"dropdown-divider\"></div>\n <a href=\"javascript:void(0)\" class=\"dropdown-item\" (click)=\"deleteUser(user)\">{{'USER.DEL_ACTION' | translate}}</a>\n </harbor-action-overflow>\n </clr-dg-cell>\n </clr-dg-row>\n <clr-dg-footer>{{users.length}} {{'USER.ADD_ACTION' | translate}}</clr-dg-footer>\n </clr-datagrid>\n </div>\n <new-user-modal (addNew)=\"addUserToList($event)\"></new-user-modal>\n</div>"
/***/ }),
/***/ 904:
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(478);
/***/ }),
/***/ 95:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var core_1 = __webpack_require__(0);
var Subject_1 = __webpack_require__(25);
var SearchTriggerService = (function () {
function SearchTriggerService() {
this.searchTriggerSource = new Subject_1.Subject();
this.searchCloseSource = new Subject_1.Subject();
this.searchInputSource = new Subject_1.Subject();
this.searchTriggerChan$ = this.searchTriggerSource.asObservable();
this.searchCloseChan$ = this.searchCloseSource.asObservable();
this.searchInputChan$ = this.searchInputSource.asObservable();
}
SearchTriggerService.prototype.triggerSearch = function (event) {
this.searchTriggerSource.next(event);
};
//Set event to true for shell
//set to false for search panel
SearchTriggerService.prototype.closeSearch = function (event) {
this.searchCloseSource.next(event);
};
//Notify the state change of search box in home start page
SearchTriggerService.prototype.searchInputStat = function (event) {
this.searchInputSource.next(event);
};
SearchTriggerService = __decorate([
core_1.Injectable(),
__metadata('design:paramtypes', [])
], SearchTriggerService);
return SearchTriggerService;
}());
exports.SearchTriggerService = SearchTriggerService;
//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/search-trigger.service.js.map
/***/ })
},[904]);
//# sourceMappingURL=main.bundle.map