UNPKG

postelf

Version:

a web based solution for email server/client based on postfix

798 lines (702 loc) 52 kB
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["main"],{ /***/ "./src/$$_lazy_route_resource lazy recursive": /*!**********************************************************!*\ !*** ./src/$$_lazy_route_resource lazy namespace object ***! \**********************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function webpackEmptyAsyncContext(req) { // Here Promise.resolve().then() is used instead of new Promise() to prevent // uncaught exception popping up in devtools return Promise.resolve().then(function() { var e = new Error("Cannot find module '" + req + "'"); e.code = 'MODULE_NOT_FOUND'; throw e; }); } webpackEmptyAsyncContext.keys = function() { return []; }; webpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext; module.exports = webpackEmptyAsyncContext; webpackEmptyAsyncContext.id = "./src/$$_lazy_route_resource lazy recursive"; /***/ }), /***/ "./src/app/app-routing.module.ts": /*!***************************************!*\ !*** ./src/app/app-routing.module.ts ***! \***************************************/ /*! exports provided: AppRoutingModule */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppRoutingModule", function() { return AppRoutingModule; }); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); /* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); /* harmony import */ var _login_login_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./login/login.component */ "./src/app/login/login.component.ts"); /* harmony import */ var _wizard_wizard_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./wizard/wizard.component */ "./src/app/wizard/wizard.component.ts"); /* harmony import */ var _test_test_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./test/test.component */ "./src/app/test/test.component.ts"); var __decorate = (undefined && undefined.__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 routes = [ { path: 'login', component: _login_login_component__WEBPACK_IMPORTED_MODULE_2__["LoginComponent"] }, { path: 'wizard', component: _wizard_wizard_component__WEBPACK_IMPORTED_MODULE_3__["WizardComponent"] }, { path: 'test', component: _test_test_component__WEBPACK_IMPORTED_MODULE_4__["TestComponent"] }, ]; var AppRoutingModule = /** @class */ (function () { function AppRoutingModule() { } AppRoutingModule = __decorate([ Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"])({ imports: [_angular_router__WEBPACK_IMPORTED_MODULE_1__["RouterModule"].forRoot(routes)], exports: [_angular_router__WEBPACK_IMPORTED_MODULE_1__["RouterModule"]] }) ], AppRoutingModule); return AppRoutingModule; }()); /***/ }), /***/ "./src/app/app.component.html": /*!************************************!*\ !*** ./src/app/app.component.html ***! \************************************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = "<!--The content below is only a placeholder and can be replaced.-->\n<router-outlet></router-outlet>\n" /***/ }), /***/ "./src/app/app.component.scss": /*!************************************!*\ !*** ./src/app/app.component.scss ***! \************************************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = "" /***/ }), /***/ "./src/app/app.component.ts": /*!**********************************!*\ !*** ./src/app/app.component.ts ***! \**********************************/ /*! exports provided: AppComponent */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppComponent", function() { return AppComponent; }); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); /* harmony import */ var _wizard_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./wizard.service */ "./src/app/wizard.service.ts"); /* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); var __decorate = (undefined && undefined.__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 = (undefined && undefined.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var AppComponent = /** @class */ (function () { function AppComponent(router, wizardService) { this.router = router; this.wizardService = wizardService; this.title = 'postelf'; } AppComponent.prototype.ngOnInit = function () { var _this = this; console.log("this.router.url:" + window.location); if (window.location.toString().lastIndexOf("/") == window.location.toString().length - 1) { this.wizardService.getCurrentConfig().subscribe(function (data) { if (data["code"] == 200 && data["installed"] != "yes") _this.router.navigate(['/wizard']); else _this.router.navigate(['/login']); }, function (err) { console.log("error:" + err); }); } }; AppComponent = __decorate([ Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ selector: 'app-root', template: __webpack_require__(/*! ./app.component.html */ "./src/app/app.component.html"), styles: [__webpack_require__(/*! ./app.component.scss */ "./src/app/app.component.scss")] }), __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"], _wizard_service__WEBPACK_IMPORTED_MODULE_1__["WizardService"]]) ], AppComponent); return AppComponent; }()); /***/ }), /***/ "./src/app/app.module.ts": /*!*******************************!*\ !*** ./src/app/app.module.ts ***! \*******************************/ /*! exports provided: AppModule */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppModule", function() { return AppModule; }); /* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/platform-browser */ "./node_modules/@angular/platform-browser/fesm5/platform-browser.js"); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); /* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm5/forms.js"); /* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/fesm5/http.js"); /* harmony import */ var _app_routing_module__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./app-routing.module */ "./src/app/app-routing.module.ts"); /* harmony import */ var _app_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./app.component */ "./src/app/app.component.ts"); /* harmony import */ var _login_login_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./login/login.component */ "./src/app/login/login.component.ts"); /* harmony import */ var _wizard_wizard_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./wizard/wizard.component */ "./src/app/wizard/wizard.component.ts"); /* harmony import */ var _test_test_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./test/test.component */ "./src/app/test/test.component.ts"); var __decorate = (undefined && undefined.__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 AppModule = /** @class */ (function () { function AppModule() { } AppModule = __decorate([ Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ declarations: [ _app_component__WEBPACK_IMPORTED_MODULE_5__["AppComponent"], _login_login_component__WEBPACK_IMPORTED_MODULE_6__["LoginComponent"], _wizard_wizard_component__WEBPACK_IMPORTED_MODULE_7__["WizardComponent"], _test_test_component__WEBPACK_IMPORTED_MODULE_8__["TestComponent"] ], imports: [ _angular_platform_browser__WEBPACK_IMPORTED_MODULE_0__["BrowserModule"], _app_routing_module__WEBPACK_IMPORTED_MODULE_4__["AppRoutingModule"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormsModule"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["ReactiveFormsModule"], _angular_common_http__WEBPACK_IMPORTED_MODULE_3__["HttpClientModule"] ], providers: [], bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_5__["AppComponent"]] }) ], AppModule); return AppModule; }()); /***/ }), /***/ "./src/app/login/login.component.html": /*!********************************************!*\ !*** ./src/app/login/login.component.html ***! \********************************************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = "<div>\n <div class=\"form-group\">\n <label for=\"username\">Username</label>\n <input type=\"text\" class=\"form-control\" id=\"username\" required name=\"username\">\n </div>\n <div class=\"form-group\">\n <label for=\"password\">Password</label>\n <input type=\"text\" class=\"form-control\" id=\"password\" required name=\"password\">\n </div>\n <div class=\"form-group\">\n <button name=\"login\" id=\"login\" (click)=\"onClickMe()\">Login</button>\n </div>\n</div>" /***/ }), /***/ "./src/app/login/login.component.scss": /*!********************************************!*\ !*** ./src/app/login/login.component.scss ***! \********************************************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = "" /***/ }), /***/ "./src/app/login/login.component.ts": /*!******************************************!*\ !*** ./src/app/login/login.component.ts ***! \******************************************/ /*! exports provided: LoginComponent */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoginComponent", function() { return LoginComponent; }); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); var __decorate = (undefined && undefined.__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 = (undefined && undefined.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var LoginComponent = /** @class */ (function () { function LoginComponent() { } LoginComponent.prototype.ngOnInit = function () { }; LoginComponent.prototype.onClickMe = function () { console.log("onClickMe done"); }; LoginComponent = __decorate([ Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ selector: 'app-login', template: __webpack_require__(/*! ./login.component.html */ "./src/app/login/login.component.html"), styles: [__webpack_require__(/*! ./login.component.scss */ "./src/app/login/login.component.scss")] }), __metadata("design:paramtypes", []) ], LoginComponent); return LoginComponent; }()); /***/ }), /***/ "./src/app/test/test.component.html": /*!******************************************!*\ !*** ./src/app/test/test.component.html ***! \******************************************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = "<p>\n <button id=\"btnRunWizard\" class=\"btn btn-primary\" (click)=\"testRun()\">Wizard Run</button><br>\n <button id=\"btnRunWizard\" class=\"btn btn-primary\" (click)=\"testCreateFolder()\">test create folder</button><br>\n <button id=\"btnRunWizard\" class=\"btn btn-primary\" (click)=\"testWriteFile()\">test write file</button><br>\n <button id=\"btnRunWizard\" class=\"btn btn-primary\" (click)=\"testRestartService()\">test restart service</button><br>\n <button id=\"btnRunWizard\" class=\"btn btn-primary\" (click)=\"testStartCore()\">test start core</button><br>\n <button id=\"btnRunWizard\" class=\"btn btn-primary\" (click)=\"testDependency()\">test check dependency</button><br>\n <button id=\"btnRunWizard\" class=\"btn btn-primary\" (click)=\"testLogin()\">test login</button><br>\n <button id=\"btnRunWizard\" class=\"btn btn-primary\" (click)=\"testGetUser()\">test get user</button><br>\n</p>\n" /***/ }), /***/ "./src/app/test/test.component.scss": /*!******************************************!*\ !*** ./src/app/test/test.component.scss ***! \******************************************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = "" /***/ }), /***/ "./src/app/test/test.component.ts": /*!****************************************!*\ !*** ./src/app/test/test.component.ts ***! \****************************************/ /*! exports provided: TestComponent */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TestComponent", function() { return TestComponent; }); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); /* harmony import */ var _wizard_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../wizard.service */ "./src/app/wizard.service.ts"); var __decorate = (undefined && undefined.__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 = (undefined && undefined.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var TestComponent = /** @class */ (function () { function TestComponent(wizardService) { this.wizardService = wizardService; } TestComponent.prototype.ngOnInit = function () { }; TestComponent.prototype.testRun = function () { console.log("testRun clicked"); this.wizardService.testRunWizard().subscribe(function (data) { console.log(data); }, function (err) { console.log("error:" + err); }); }; TestComponent.prototype.testCreateFolder = function () { console.log("testCreateFolder clicked"); this.wizardService.testCreateFolder().subscribe(function (data) { console.log(data); }, function (err) { console.log("error:" + err); }); }; TestComponent.prototype.testWriteFile = function () { console.log("testWriteFile clicked"); this.wizardService.testWriteFile().subscribe(function (data) { console.log(data); }, function (err) { console.log("error:" + err); }); }; TestComponent.prototype.testRestartService = function () { console.log("testRestartService clicked"); this.wizardService.testRestartService().subscribe(function (data) { console.log(data); }, function (err) { console.log("error:" + err); }); }; TestComponent.prototype.testStartCore = function () { console.log("testStartCore clicked"); this.wizardService.testStartCore().subscribe(function (data) { console.log(data); }, function (err) { console.log("error:" + err); }); }; TestComponent.prototype.testDependency = function () { console.log("testDependency clicked"); this.wizardService.testDependencyMock().subscribe(function (data) { console.log(data); }, function (err) { console.log("error:" + err); }); }; TestComponent.prototype.testLogin = function () { console.log("testLogin clicked"); this.wizardService.testLogin().subscribe(function (data) { console.log(data); }, function (err) { console.log("error:" + err); }); }; TestComponent.prototype.testGetUser = function () { console.log("testGetUser clicked"); this.wizardService.testGetUser().subscribe(function (data) { console.log(data); }, function (err) { console.log("error:" + err); }); }; TestComponent = __decorate([ Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ selector: 'app-test', template: __webpack_require__(/*! ./test.component.html */ "./src/app/test/test.component.html"), styles: [__webpack_require__(/*! ./test.component.scss */ "./src/app/test/test.component.scss")] }), __metadata("design:paramtypes", [_wizard_service__WEBPACK_IMPORTED_MODULE_1__["WizardService"]]) ], TestComponent); return TestComponent; }()); /***/ }), /***/ "./src/app/wizard.service.ts": /*!***********************************!*\ !*** ./src/app/wizard.service.ts ***! \***********************************/ /*! exports provided: WizardService */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WizardService", function() { return WizardService; }); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); /* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/fesm5/http.js"); var __decorate = (undefined && undefined.__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 = (undefined && undefined.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var WizardService = /** @class */ (function () { function WizardService(httpClient) { this.httpClient = httpClient; this.API_URL = 'http://localhost:3030'; this.CORE_API_URL = 'http://localhost:3033'; /*let fullURL=window.location; let strFullURL=fullURL.toString().toLowerCase(); let https=false; if(strFullURL.indexOf("https://")!=-1) https=true; strFullURL=strFullURL.replace("https://",""); strFullURL=strFullURL.replace("http://",""); let idx=strFullURL.indexOf("/"); if(https) this.API_URL="https://"+strFullURL.substr(0,idx); else this.API_URL="http://"+strFullURL.substr(0,idx); */ } WizardService.prototype.testDatabase = function (config) { var headers = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpHeaders"]().set("Content-Type", "application/json"); var ret = this.httpClient.put(this.API_URL + "/wizard-controller", { cmd: "testDatabase", data: config }, { headers: headers }); return ret; }; WizardService.prototype.testDependency = function (config) { var headers = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpHeaders"]().set("Content-Type", "application/json"); var ret = this.httpClient.put(this.API_URL + "/wizard-controller", { cmd: "testDependency", data: config }, { headers: headers }); return ret; }; WizardService.prototype.finishWizard = function (config) { var headers = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpHeaders"]().set("Content-Type", "application/json"); var ret = this.httpClient.put(this.API_URL + "/wizard-controller", { cmd: "finishWizard", data: config }, { headers: headers }); return ret; }; WizardService.prototype.getCurrentConfig = function () { console.log("getCurrentConfig called:" + this.API_URL); var headers = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpHeaders"]().set("Content-Type", "application/json"); var ret = this.httpClient.put(this.API_URL + "/wizard-controller", { cmd: "getConfig" }, { headers: headers }); return ret; }; WizardService.prototype.testRunWizard = function () { var config = {}; var headers = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpHeaders"]().set("Content-Type", "application/json"); var ret = this.httpClient.put(this.API_URL + "/wizard-controller", { cmd: "finishWizard", data: config }, { headers: headers }); return ret; }; WizardService.prototype.testCreateFolder = function () { var config = { path: '/etc/postfix/certs' }; var headers = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpHeaders"]().set("Content-Type", "application/json"); var ret = this.httpClient.put(this.CORE_API_URL + "/postelf-core", { cmd: "createFolder", data: config }, { headers: headers }); return ret; }; WizardService.prototype.testWriteFile = function () { var config = { path: '/etc/postfix/certs/server.csr', content: "aaaaaaaaaaaddddddddddsssssssss" }; var headers = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpHeaders"]().set("Content-Type", "application/json"); var ret = this.httpClient.put(this.CORE_API_URL + "/postelf-core", { cmd: "writeFile", data: config }, { headers: headers }); return ret; }; WizardService.prototype.testRestartService = function () { var config = { service: 'saslauthds' }; var headers = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpHeaders"]().set("Content-Type", "application/json"); var ret = this.httpClient.put(this.CORE_API_URL + "/postelf-core", { cmd: "restartService", data: config }, { headers: headers }); return ret; }; WizardService.prototype.testStartCore = function () { var config = {}; var headers = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpHeaders"]().set("Content-Type", "application/json"); var ret = this.httpClient.put(this.API_URL + "/wizard-controller", { cmd: "startCoreService", data: config }, { headers: headers }); return ret; }; WizardService.prototype.testDependencyMock = function () { var config = {}; var headers = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpHeaders"]().set("Content-Type", "application/json"); var ret = this.httpClient.put(this.API_URL + "/wizard-controller", { cmd: "testDependency", data: config }, { headers: headers }); return ret; }; WizardService.prototype.testLogin = function () { var headers = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpHeaders"]().set("Content-Type", "application/json"); var ret = this.httpClient.post(this.API_URL + "/authentication", { "strategy": "local", "email": "123@123", "password": "123123" }, { headers: headers }); return ret; }; WizardService.prototype.testGetUser = function () { var headers = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpHeaders"]().set("Content-Type", "application/json"); var params = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpParams"]().set("email", "123@123").set("$limit", "1"); var ret = this.httpClient.get(this.API_URL + "/users", { headers: headers, params: params }); return ret; }; WizardService = __decorate([ Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"])({ providedIn: 'root' }), __metadata("design:paramtypes", [_angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpClient"]]) ], WizardService); return WizardService; }()); /***/ }), /***/ "./src/app/wizard/wizard.component.html": /*!**********************************************!*\ !*** ./src/app/wizard/wizard.component.html ***! \**********************************************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = "<div class=\"container\">\n <h1>Install Wizard, Step {{wizard.step}}/{{wizard.totalStep}}</h1>\n\n <div *ngIf=\"wizard.step==1\">\n <form [formGroup]=\"wizardForm1\" > \n <div class=\"form-group\">\n <label for=\"loginAdmin\">Admin Login(email)</label>\n <input type=\"email\" class=\"form-control\" id=\"loginAdmin\" formControlName=\"loginName\" placeholder=\"Admin Login\" >\n <div *ngIf=\"wizardForm1.controls.loginName.invalid && submitted\" class=\"alert alert-danger\">\n <div *ngIf=\"wizardForm1.controls.loginName.errors.required\">\n Admin Login is required.\n </div>\n <div *ngIf=\"wizardForm1.controls.loginName.errors.email\">\n Admin Login is not a vaild email address.\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <label for=\"password\">Password</label>\n <input type=\"password\" class=\"form-control\" id=\"password\" formControlName=\"password\" >\n <div *ngIf=\"wizardForm1.controls.password.invalid && submitted\" class=\"alert alert-danger\">\n <div *ngIf=\"wizardForm1.controls.password.errors.required\">\n Password is required.\n </div>\n <div *ngIf=\"wizardForm1.controls.password.errors.minlength\">\n Password must be at least 6 characters.\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <label for=\"cfmpassword\">Confirm Password</label>\n <input type=\"password\" class=\"form-control\" id=\"cfmPassword\" formControlName=\"cfmPassword\" >\n <div *ngIf=\"wizardForm1.controls.cfmPassword.invalid && submitted\" class=\"alert alert-danger\">\n <div *ngIf=\"wizardForm1.controls.cfmPassword.errors.required\">\n Confirm password is required.\n </div>\n <div *ngIf=\"wizardForm1.controls.cfmPassword.errors.notEquivalent\">\n Confirm password does not match password.\n </div>\n <div *ngIf=\"wizardForm1.controls.cfmPassword.errors.minlength\">\n Confirm password must be at least 6 characters.\n </div>\n </div>\n </div>\n </form>\n </div>\n <div *ngIf=\"wizard.step==2\">\n <form [formGroup]=\"wizardForm2\" > \n <div class=\"form-group\">\n <label for=\"dbAddress\">Database Address</label>\n <input type=\"text\" class=\"form-control\" id=\"dbAddress\" formControlName=\"dbAddress\" placeholder=\"Database address(ip or domain)\" >\n <div *ngIf=\"wizardForm2.controls.dbAddress.invalid && submitted\" class=\"alert alert-danger\">\n <div *ngIf=\"wizardForm2.controls.dbAddress.errors.required\">\n Database address is required.\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <label for=\"dbUSer\">Database User</label>\n <input type=\"text\" class=\"form-control\" id=\"dbUSer\" formControlName=\"dbUSer\" placeholder=\"Database user\" >\n <div *ngIf=\"wizardForm2.controls.dbUSer.invalid && submitted\" class=\"alert alert-danger\">\n <div *ngIf=\"wizardForm2.controls.dbUSer.errors.required\">\n Database user is required.\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <label for=\"dbPassword\">Database Password</label>\n <input type=\"password\" class=\"form-control\" id=\"dbPassword\" formControlName=\"dbPassword\" placeholder=\"Database password\" >\n <div *ngIf=\"wizardForm2.controls.dbPassword.invalid && submitted\" class=\"alert alert-danger\">\n <div *ngIf=\"wizardForm2.controls.dbPassword.errors.required\">\n Database password is required.\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <label for=\"dbName\">Database Name</label>\n <input type=\"text\" class=\"form-control\" id=\"dbName\" formControlName=\"dbName\" placeholder=\"Database name\" >\n <div *ngIf=\"wizardForm2.controls.dbName.invalid && submitted\" class=\"alert alert-danger\">\n <div *ngIf=\"wizardForm2.controls.dbName.errors.required\">\n Database name is required.\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <button id=\"btnTestConnection\" class=\" btn btn-primary\" (click)=\"testDBConnection()\" style=\"margin-bottom: 10px;\">Test DB Connection</button>\n \n <div *ngIf=\"dbTested==2\" class=\"alert alert-danger\">\n Connect to db failed, pleaes check db credentials\n </div>\n <div *ngIf=\"dbTested==1\" class=\"alert alert-success\">\n DB tested OK\n </div>\n <div *ngIf=\"dbTested==0\" class=\"alert alert-warning\">\n Connecting to DB...\n </div>\n </div>\n </form>\n </div>\n <div *ngIf=\"wizard.step==3\">\n <form [formGroup]=\"wizardForm3\" > \n <div class=\"form-group\">\n <label for=\"emailDomain\">Email Domain</label>\n <input type=\"text\" class=\"form-control\" id=\"emailDomain\" formControlName=\"emailDomain\" placeholder=\"Email Domain\" >\n <div *ngIf=\"wizardForm3.controls.emailDomain.invalid && submitted\" class=\"alert alert-danger\">\n <div *ngIf=\"wizardForm3.controls.emailDomain.errors.required\">\n Email domain is required.\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <label for=\"emailUser\">Email User</label>\n <input type=\"text\" class=\"form-control\" id=\"emailUser\" formControlName=\"emailUser\" placeholder=\"Email User\" >\n <div *ngIf=\"wizardForm3.controls.emailUser.invalid && submitted\" class=\"alert alert-danger\">\n <div *ngIf=\"wizardForm3.controls.emailUser.errors.required\">\n Email USer is required.\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <label for=\"emailPassword\">Email Password</label>\n <input type=\"password\" class=\"form-control\" id=\"emailPassword\" formControlName=\"emailPassword\" placeholder=\"Email Password\" >\n <div *ngIf=\"wizardForm3.controls.emailPassword.invalid && submitted\" class=\"alert alert-danger\">\n <div *ngIf=\"wizardForm3.controls.emailPassword.errors.required\">\n Email password is required.\n </div>\n <div *ngIf=\"wizardForm3.controls.emailPassword.errors.minlength\">\n Email password must be at least 6 characters.\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <label for=\"cfmEmailPassword\">Confirm Email Password</label>\n <input type=\"password\" class=\"form-control\" id=\"cfmEmailPassword\" formControlName=\"cfmEmailPassword\" placeholder=\"Confirm Email Password\" >\n <div *ngIf=\"wizardForm3.controls.cfmEmailPassword.invalid && submitted\" class=\"alert alert-danger\">\n <div *ngIf=\"wizardForm3.controls.cfmEmailPassword.errors.required\">\n Confirm email password is required.\n </div>\n <div *ngIf=\"wizardForm3.controls.cfmEmailPassword.errors.notEquivalent\">\n Confirm email password does not match password.\n </div>\n <div *ngIf=\"wizardForm3.controls.cfmEmailPassword.errors.minlength\">\n Confirm email password must be at least 6 characters.\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <label for=\"baseMailFolder\">Path for Email Storage</label>\n <input class=\"form-control\" id=\"baseMailFolder\" formControlName=\"baseMailFolder\" placeholder=\"Path for email storage\">\n <div *ngIf=\"wizardForm3.controls.baseMailFolder.invalid && submitted\" class=\"alert alert-danger\">\n <div *ngIf=\"wizardForm3.controls.baseMailFolder.errors.required\">\n Path for email storage is required.\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <label for=\"runasuser\">Run Postfix/Dovecot as User</label>\n <input class=\"form-control\" id=\"runasuser\" formControlName=\"runasuser\" placeholder=\"Run postfix/dovecot as user\" >\n <div *ngIf=\"wizardForm3.controls.runasuser.invalid && submitted\" class=\"alert alert-danger\">\n <div *ngIf=\"wizardForm3.controls.runasuser.errors.required\">\n Run postfix/dovecot as user is required.\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <label for=\"sudoPassword\">Sudo Password</label>\n <input class=\"form-control\" id=\"sudoPassword\" formControlName=\"sudoPassword\" placeholder=\"Sudo password\" >\n <div *ngIf=\"wizardForm3.controls.sudoPassword.invalid && submitted\" class=\"alert alert-danger\">\n <div *ngIf=\"wizardForm3.controls.sudoPassword.errors.required\">\n Sudo password is required.\n </div>\n </div>\n </div>\n </form>\n </div>\n <div *ngIf=\"wizard.step==4\">\n <form [formGroup]=\"wizardForm4\" > \n <h2 *ngIf=\"dependencyTested==0\">Checking dependency</h2>\n <h2 *ngIf=\"dependencyTested!=0\">Check dependency result</h2>\n <ul>\n <li *ngFor=\"let dep of dependencyResult\">\n <div *ngIf=\"dep.error;then err_result else ok_result\"></div> \n <ng-template #err_result>{{ dep.name }} not installed</ng-template>\n <ng-template #ok_result>{{ dep.name }} check ok</ng-template>\n \n </li>\n </ul>\n </form>\n </div>\n \n <div class=\"form-group\">\n <button id=\"btnPrevious\" *ngIf=\"wizard.step>1\" class=\"btn btn-primary\" (click)=\"previousStep()\">Previous</button>\n <button id=\"btnNext\" *ngIf=\"wizard.step<=wizard.totalStep\" class=\"btn btn-primary\" (click)=\" nextStep()\" [disabled]=\"dependencyTested==0\">\n <span *ngIf=\"wizard.step<wizard.totalStep\">Next</span>\n <span *ngIf=\"wizard.step==wizard.totalStep&&dependencyTested==0\">Check</span>\n <span *ngIf=\"wizard.step==wizard.totalStep&&dependencyTested==1\">Finish</span>\n <span *ngIf=\"wizard.step==wizard.totalStep&&dependencyTested==2\">Check</span>\n </button>\n </div>\n \n \n\n<div>\n" /***/ }), /***/ "./src/app/wizard/wizard.component.scss": /*!**********************************************!*\ !*** ./src/app/wizard/wizard.component.scss ***! \**********************************************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = "#btnPrevious {\n margin-right: 5vw; }\n" /***/ }), /***/ "./src/app/wizard/wizard.component.ts": /*!********************************************!*\ !*** ./src/app/wizard/wizard.component.ts ***! \********************************************/ /*! exports provided: WizardComponent */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WizardComponent", function() { return WizardComponent; }); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); /* harmony import */ var _wizard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./wizard */ "./src/app/wizard/wizard.ts"); /* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm5/forms.js"); /* harmony import */ var _wizard_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../wizard.service */ "./src/app/wizard.service.ts"); /* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm5/router.js"); var __decorate = (undefined && undefined.__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 = (undefined && undefined.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var WizardComponent = /** @class */ (function () { function WizardComponent(router, formBuilder, wizardService) { this.router = router; this.formBuilder = formBuilder; this.wizardService = wizardService; this.checked = false; this.submitted = false; this.dbTested = -1; //0 testing, //1 ok //2 failed this.dependencyTested = -1; this.wizardFinished = -1; this.wizard = new _wizard__WEBPACK_IMPORTED_MODULE_1__["Wizard"](); } WizardComponent.prototype.checkIfMatchingPasswords = function (passwordKey, passwordConfirmationKey) { return function (group) { var passwordInput = group.controls[passwordKey]; var passwordConfirmationInput = group.controls[passwordConfirmationKey]; if (passwordInput.value !== passwordConfirmationInput.value) { return passwordConfirmationInput.setErrors({ notEquivalent: true }); } else { return passwordConfirmationInput.setErrors(null); } }; }; WizardComponent.prototype.ngOnInit = function () { this.wizardForm1 = this.formBuilder.group({ loginName: [this.wizard.loginName, [_angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].required, _angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].email]], password: ['', [_angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].required, _angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].minLength(6)]], cfmPassword: ['', [_angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].required, _angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].minLength(6)]] }, { validator: this.checkIfMatchingPasswords('password', 'cfmPassword') }); this.wizardForm2 = this.formBuilder.group({ dbAddress: ['', [_angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].required]], dbUSer: ['', [_angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].required]], dbPassword: ['', [_angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].required]], dbName: ['', [_angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].required]] }); this.wizardForm3 = this.formBuilder.group({ emailDomain: ['', [_angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].required]], emailUser: ['', [_angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].required]], emailPassword: ['', [_angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].required, _angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].minLength(6)]], cfmEmailPassword: ['', [_angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].required, _angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].minLength(6)]], baseMailFolder: ['', [_angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].required]], runasuser: ['', [_angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].required]], sudoPassword: ['', [_angular_forms__WEBPACK_IMPORTED_MODULE_2__["Validators"].required]], }, { validator: this.checkIfMatchingPasswords('emailPassword', 'cfmEmailPassword') }); this.wizardForm4 = this.formBuilder.group({}); }; WizardComponent.prototype.nextStep = function () { this.submitted = true; if (this["wizardForm" + this.wizard.step].invalid) { return; } for (var keyName in this["wizardForm" + this.wizard.step].controls) { this.wizard[keyName] = this["wizardForm" + this.wizard.step].controls[keyName].value; } console.log("submit ok:" + JSON.stringify(this.wizard)); this.submitted = false; if (this.wizard.step == 4) { if (this.dependencyTested == 1) this.finishWizard(); else this.testDependency(); return; } this.wizard.step++; console.log("next clicked"); if (this.wizard.step == 4) { this.testDependency(); } }; WizardComponent.prototype.previousStep = function () { console.log("previousStep clicked"); this.wizard.step--; }; WizardComponent.prototype.testDBConnection = function () { var _this = this; console.log("testDBConnection"); this.dbTested = 0; this.submitted = true; if (this["wizardForm" + this.wizard.step].invalid) { return; } for (var keyName in this["wizardForm" + this.wizard.step].controls) { this.wizard[keyName] = this["wizardForm" + this.wizard.step].controls[keyName].value; } console.log(JSON.stringify(this.wizard)); this.wizardService.testDatabase(this.wizard).subscribe(function (data) { console.log(data); if (data["error"]) _this.dbTested = 2; else _this.dbTested = 1; }, function (err) { _this.dbTested = 2; console.log("error:" + err); }); }; WizardComponent.prototype.testDependency = function () { var _this = this; console.log("testDependency"); this.dependencyTested = 0; this.wizardService.testDependency(this.wizard).subscribe(function (data) { console.log(data); if (Array.isArray(data)) { _this.dependencyResult = data; } var i = 0; var error = false; console.log(JSON.stringify(data)); for (i = 0; i < _this.dependencyResult.length; i++) { if (_this.dependencyResult[i].error) { _this.dependencyTested = 2; error = true; break; } } if (!error) _this.dependencyTested = 1; }, function (err) { _this.dependencyTested = 2; console.log("error:" + err); }); }; WizardComponent.prototype.finishWizard = function () { var _this = this; console.log("finishWizard"); this.wizardFinished = 0; this.wizardService.finishWizard(this.wizard).subscribe(function (data) { console.log(data); if (data["code"] == 200) { _this.router.navigate(['/login']); _this.wizardFinished = 1; } }, function (err) { _this.wizardFinished = 2; console.log("error:" + err); }); }; WizardComponent = __decorate([ Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({ selector: 'app-wizard', template: __webpack_require__(/*! ./wizard.component.html */ "./src/app/wizard/wizard.component.html"), styles: [__webpack_require__(/*! ./wizard.component.scss */ "./src/app/wizard/wizard.component.scss")] }), __metadata("design:paramtypes", [_angular_router__WEBPACK_IMPORTED_MODULE_4__["Router"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormBuilder"], _wizard_service__WEBPACK_IMPORTED_MODULE_3__["WizardService"]]) ], WizardComponent); return WizardComponent; }()); /***/ }), /***/ "./src/app/wizard/wizard.ts": /*!**********************************!*\ !*** ./src/app/wizard/wizard.ts ***! \**********************************/ /*! exports provided: Wizard */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Wizard", function() { return Wizard; }); var Wizard = /** @class */ (function () { function Wizard() { this.step = 1; this.totalStep = 4; this.loginName = ""; this.password = ""; this.cfmPassword = ""; this.dbAddress = ""; this.dbUSer = ""; this.dbPassword = ""; this.dbName = ""; this.emailDomain = ""; this.emailUser = ""; this.emailPassword = ""; this.cfmEmailPassword = ""; } return Wizard; }()); /***/ }), /***/ "./src/environments/environment.ts": /*!*****************************************!*\ !*** ./src/environments/environment.ts ***! \*****************************************/ /*! exports provided: environment */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "environment", function() { return environment; }); // This file can be replaced during build by using the `fileReplacements` array. // `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`. // The list of file replacements can be found in `angular.json`. var environment = { production: false }; /* * In development mode, for easier debugging, you can ignore zone related error * stack f