From fa667c896438eeac76ab2c06c642e40a9921ba56 Mon Sep 17 00:00:00 2001 From: Thomas Munzer Date: Tue, 13 Jul 2021 12:17:17 +0200 Subject: [PATCH] update login page --- README.md | 1 + django_app/backend/urls.py | 3 +- django_app/backend/views.py | 51 +++++----- django_app/mso/static/main-es2015.js | 70 +++++++++---- django_app/mso/static/main-es2015.js.map | 2 +- django_app/mso/static/main-es5.js | 96 +++++++++++++----- django_app/mso/static/main-es5.js.map | 2 +- src_angular/src/app/login/login.component.css | 25 ++++- .../src/app/login/login.component.html | 15 ++- src_angular/src/app/login/login.component.ts | 16 ++- src_angular/src/assets/docker.png | Bin 0 -> 24928 bytes src_angular/src/assets/github.png | Bin 0 -> 13001 bytes 12 files changed, 189 insertions(+), 92 deletions(-) create mode 100644 src_angular/src/assets/docker.png create mode 100644 src_angular/src/assets/github.png diff --git a/README.md b/README.md index 3ab4529..9f7d7a7 100644 --- a/README.md +++ b/README.md @@ -60,4 +60,5 @@ A configuration example with explanation is avaiable in the `django/backend/conf DJANGO_DEBUG | Number | 0 | Whether or not Django starts in Debug Mode (0=Production, 1=Debug) | DJANGO_ALLOWED_HOSTS | String | | FQDN on which Django is listening. Only used in Production Mode | GOOGLE_API_KEY | String | | Google API Key to use [Google Map Javascript API](https://developers.google.com/maps/gmp-get-started) | +APP_DISLCAIMER | String | | Disclaimer to display on the login page | diff --git a/django_app/backend/urls.py b/django_app/backend/urls.py index 4c787df..aaec1eb 100644 --- a/django_app/backend/urls.py +++ b/django_app/backend/urls.py @@ -11,6 +11,7 @@ path('sites/', views.get_sites, name='get_sites'), #path('sites/derived/', views.get_site_derived, name='get_site_derived'), path('script', views.script, name="googlemaps"), - path('gap', views.gap, name="gap") + path('gap', views.gap, name="gap"), + path('disclaimer', views.disclaimer, name="disclaimer") ] diff --git a/django_app/backend/views.py b/django_app/backend/views.py index 00ba3c7..c28a817 100644 --- a/django_app/backend/views.py +++ b/django_app/backend/views.py @@ -7,6 +7,7 @@ import json import time import logging +import os from .mist_lib.devices import Devices from .mist_lib.sites import Sites @@ -14,33 +15,22 @@ try: from .config import google_api_key except: - import os google_api_key = os.environ.get("GOOGLE_API_KEY", default="") -# if smtp_enabled: -# smtp_config = { -# "host": os.environ.get("MIST_SMTP_HOST", default=None), -# "port": os.environ.get("MIST_SMTP_PORT", default=587), -# "use_ssl": os.environ.get("MIST_SMTP_SSL", default=True), -# "username": os.environ.get("MIST_SMTP_USER", default=None), -# "password": os.environ.get("MIST_SMTP_PASSWORD", default=None), -# "from_name": os.environ.get("MIST_SMTP_FROM_NAME", default="Wi-Fi Access"), -# "from_email": os.environ.get("MIST_SMTP_FROM_EMAIL", default=None), -# "logo_url": os.environ.get("MIST_SMTP_LOGO_URL", default="https://cdn.mist.com/wp-content/uploads/logo.png"), -# "enable_qrcode": os.environ.get("MIST_SMTP_QRCODE", default=True) -# } -# else: -# smtp_config = None -# try: -# from .config import psk_config -# except: -# psk_config = { -# "salt": os.environ.get("MIST_PSK_SALT", default="$2b$12$SIGWr574/7OggDO4BBJ1D."), -# "length": int(os.environ.get("MIST_PSK_LENGTH", default=12)) -# } -# psk_config["salt"] = str.encode(psk_config["salt"]) +try: + from .config import app_disclaimer +except: + app_disclaimer = os.environ.get("APP_DISCLAIMER", default="") -# mist_smtp = Mist_SMTP(smtp_config) +try: + from .config import app_github_url +except: + app_github_url = os.environ.get("APP_GITHUB_URL", default="") + +try: + from .config import app_docker_url +except: + app_docker_url = os.environ.get("APP_DOCKER_URL", default="") ########## @@ -72,7 +62,6 @@ def update_device_settings(request): return Http404 - ########## # Switch Port @@ -82,7 +71,7 @@ def get_port_status(request): response = Devices().get_device_ports_status(request.body) return JsonResponse(status=response["status"], data=response["data"]) else: - return Http404 + return Http404 ########## # Sites @@ -178,6 +167,16 @@ def gap(request): return JsonResponse({"gap": google_api_key}) +@csrf_exempt +def disclaimer(request): + if request.method == "GET": + return JsonResponse({ + "disclaimer": app_disclaimer, + "github_url": app_github_url, + "docker_url": app_docker_url + }) + + @csrf_exempt def script(request): if request.method == "GET": diff --git a/django_app/mso/static/main-es2015.js b/django_app/mso/static/main-es2015.js index 664f725..adf816b 100644 --- a/django_app/mso/static/main-es2015.js +++ b/django_app/mso/static/main-es2015.js @@ -3053,28 +3053,37 @@ __webpack_require__.r(__webpack_exports__); function LoginComponent_mat_option_9_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "mat-option", 24); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "mat-option", 27); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { - const host_r3 = ctx.$implicit; - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("value", host_r3.value); + const host_r4 = ctx.$implicit; + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("value", host_r4.value); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate1"](" ", host_r3.viewValue, " "); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate1"](" ", host_r4.viewValue, " "); } } function LoginComponent_div_51_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 25); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "div", 26); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 28); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "div", 29); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](2, "mat-spinner"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } } -function LoginComponent_div_52_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 27); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "a", 28); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](2, "img", 29); +function LoginComponent_a_56_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "a", 30); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](1, "img", 31); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); +} if (rf & 2) { + const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpropertyInterpolate"]("href", ctx_r2.github_url, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsanitizeUrl"]); +} } +function LoginComponent_a_57_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "a", 30); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](1, "img", 32); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); +} if (rf & 2) { + const ctx_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpropertyInterpolate"]("href", ctx_r3.docker_url, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsanitizeUrl"]); } } class LoginComponent { constructor(_formBuilder, _http, _router, _appService, _dialog, _platformLocation) { @@ -3088,8 +3097,6 @@ class LoginComponent { this.headers = {}; this.cookies = {}; this.self = {}; - this.show_github_fork_me = false; - this.hostnames_to_show_github_fork_me = ["mso.mist-lab.fr"]; this.hosts = [ { value: 'api.mist.com', viewValue: 'US - manage.mist.com' }, { value: 'api.eu.mist.com', viewValue: 'EU - manage.eu.mist.com' }, @@ -3111,9 +3118,6 @@ class LoginComponent { } //// INIT //// ngOnInit() { - if (this.hostnames_to_show_github_fork_me.indexOf(this._platformLocation.hostname) >= 0) { - this.show_github_fork_me = true; - } this.frmStepLogin = this._formBuilder.group({ host: ['api.mist.com'], credentials: this._formBuilder.group({ @@ -3126,6 +3130,16 @@ class LoginComponent { next: data => this._appService.googleApiKeySet(data.gap), error: error => console.error("Unable to load the Google API Key... Maps won't be available...") }); + this._http.get("/api/disclaimer").subscribe({ + next: data => { + if (data.disclaimer) + this.disclaimer = data.disclaimer; + if (data.github_url) + this.github_url = data.github_url; + if (data.docker_url) + this.docker_url = data.docker_url; + } + }); } //// COMMON //// check_host() { @@ -3230,7 +3244,7 @@ class LoginComponent { } } LoginComponent.ɵfac = function LoginComponent_Factory(t) { return new (t || LoginComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormBuilder"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_common_http__WEBPACK_IMPORTED_MODULE_3__["HttpClient"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_router__WEBPACK_IMPORTED_MODULE_4__["Router"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_connector_service__WEBPACK_IMPORTED_MODULE_5__["ConnectorService"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_material_dialog__WEBPACK_IMPORTED_MODULE_6__["MatDialog"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_common__WEBPACK_IMPORTED_MODULE_7__["PlatformLocation"])); }; -LoginComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: LoginComponent, selectors: [["app-login"]], decls: 53, vars: 9, consts: [[1, "card-outer"], [1, "login-form", 3, "formGroup"], ["fxLayout", "column", 1, "login-form-outer", 3, "formGroup"], [1, "login-form-inner"], ["fxLayout", "column", 1, "login-step"], ["appearance", "outline"], ["formControlName", "host"], [3, "value", 4, "ngFor", "ngForOf"], ["fxLayout", "row", 1, "login-form-or"], ["mat-fab", "", "color", "accent", "aria-label", "AND", 1, "disable-click"], ["fxLayout", "row", 1, "login-step"], ["formGroupName", "credentials", "fxLayout", "column", 1, "login-form-inputs"], ["matInput", "", "formControlName", "email", "type", "email"], ["matInput", "", "type", "password", "formControlName", "password", 3, "keydown.enter"], [2, "margin-bottom", "1em", "min-height", "20px"], [2, "color", "red", "font-weight", "normal"], ["mat-raised-button", "", "color", "primary", 3, "click"], ["fxLayout", "column", 1, "login-form-or"], [3, "vertical"], ["mat-fab", "", "color", "accent", "aria-label", "OR", 1, "disable-click"], ["fxLayout", "column", 1, "login-form-inputs"], ["type", "text", "matInput", "", "formControlName", "token", 3, "keydown.enter"], ["class", "loading", "fxLayout", "row", 4, "ngIf"], ["class", "github-fork-me", 4, "ngIf"], [3, "value"], ["fxLayout", "row", 1, "loading"], ["fxLayout", "column"], [1, "github-fork-me"], ["href", "https://github.com/tmunzer/mist_claim_web_ui", "target", "_blank", 1, "github-fork-me"], ["loading", "lazy", "width", "149", "height", "149", "src", "https://github.blog/wp-content/uploads/2008/12/forkme_right_red_aa0000.png?resize=149%2C149", "alt", "Fork me on GitHub", "data-recalc-dims", "1", 1, "attachment-full", "size-full"]], template: function LoginComponent_Template(rf, ctx) { if (rf & 1) { +LoginComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: LoginComponent, selectors: [["app-login"]], decls: 58, vars: 11, consts: [[1, "card-outer"], [1, "login-form", 3, "formGroup"], ["fxLayout", "column", 1, "login-form-outer", 3, "formGroup"], [1, "login-form-inner"], ["fxLayout", "column", 1, "login-step"], ["appearance", "outline"], ["formControlName", "host"], [3, "value", 4, "ngFor", "ngForOf"], ["fxLayout", "row", 1, "login-form-or"], ["mat-fab", "", "color", "accent", "aria-label", "AND", 1, "disable-click"], ["fxLayout", "row", 1, "login-step"], ["formGroupName", "credentials", "fxLayout", "column", 1, "login-form-inputs"], ["matInput", "", "formControlName", "email", "type", "email"], ["matInput", "", "type", "password", "formControlName", "password", 3, "keydown.enter"], [2, "margin-bottom", "1em", "min-height", "20px"], [2, "color", "red", "font-weight", "normal"], ["mat-raised-button", "", "color", "primary", 3, "click"], ["fxLayout", "column", 1, "login-form-or"], [3, "vertical"], ["mat-fab", "", "color", "accent", "aria-label", "OR", 1, "disable-click", 2, "margin-bottom", "4em"], ["fxLayout", "column", 1, "login-form-inputs"], ["appearance", "outline", 2, "padding", "0"], ["type", "text", "matInput", "", "formControlName", "token", 3, "keydown.enter"], ["class", "loading", "fxLayout", "row", 4, "ngIf"], [1, "disclaimer"], [1, "source"], ["target", "_blank", 3, "href", 4, "ngIf"], [3, "value"], ["fxLayout", "row", 1, "loading"], ["fxLayout", "column"], ["target", "_blank", 3, "href"], ["src", "assets/github.png"], ["src", "assets/docker.png"]], template: function LoginComponent_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "mat-card", 0); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "form", 1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "div", 2); @@ -3293,11 +3307,11 @@ LoginComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineCom _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](39, "h1"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](40, "Access with API Token"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](41, "mat-form-field", 5); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](41, "mat-form-field", 21); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](42, "mat-label"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](43, "API Token"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](44, "input", 21); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](44, "input", 22); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("keydown.enter", function LoginComponent_Template_input_keydown_enter_44_listener() { return ctx.submitToken(); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); @@ -3313,12 +3327,20 @@ LoginComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineCom _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](51, LoginComponent_div_51_Template, 3, 0, "div", 22); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](51, LoginComponent_div_51_Template, 3, 0, "div", 23); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](52, "div", 24); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](53, "div"); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](54); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](52, LoginComponent_div_52_Template, 3, 0, "div", 23); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](55, "div", 25); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](56, LoginComponent_a_56_Template, 2, 1, "a", 26); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](57, LoginComponent_a_57_Template, 2, 1, "a", 26); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("formGroup", ctx.frmStepLogin); @@ -3336,9 +3358,13 @@ LoginComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineCom _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](ctx.error_mess.token); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](4); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.loading); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate1"](" ", ctx.disclaimer, " "); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.github_url); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.show_github_fork_me); - } }, directives: [_angular_material_card__WEBPACK_IMPORTED_MODULE_8__["MatCard"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["ɵangular_packages_forms_forms_y"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["NgControlStatusGroup"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormGroupDirective"], _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_9__["DefaultLayoutDirective"], _angular_material_form_field__WEBPACK_IMPORTED_MODULE_10__["MatFormField"], _angular_material_form_field__WEBPACK_IMPORTED_MODULE_10__["MatLabel"], _angular_material_select__WEBPACK_IMPORTED_MODULE_11__["MatSelect"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["NgControlStatus"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormControlName"], _angular_common__WEBPACK_IMPORTED_MODULE_7__["NgForOf"], _angular_material_button__WEBPACK_IMPORTED_MODULE_12__["MatButton"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormGroupName"], _angular_material_input__WEBPACK_IMPORTED_MODULE_13__["MatInput"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["DefaultValueAccessor"], _angular_material_divider__WEBPACK_IMPORTED_MODULE_14__["MatDivider"], _angular_common__WEBPACK_IMPORTED_MODULE_7__["NgIf"], _angular_material_core__WEBPACK_IMPORTED_MODULE_15__["MatOption"], _angular_material_progress_spinner__WEBPACK_IMPORTED_MODULE_16__["MatSpinner"]], styles: ["mat-card[_ngcontent-%COMP%] {\n background-color: rgb(236 236 236);\n}\n\n.login-form-inner[_ngcontent-%COMP%] {\n font-weight: 600;\n border: none;\n width: auto;\n min-width: 50em;\n position: relative;\n margin: auto;\n padding: 2em;\n border-radius: 0.3em;\n}\n\n.login-form-outer[_ngcontent-%COMP%] {\n width: 100%;\n background-color: rgb(236 236 236);\n}\n\n.login-form-inputs[_ngcontent-%COMP%] {\n padding: 10px;\n width: 25em;\n text-align: center;\n justify-content: space-between;\n}\n\n.login-form-or[_ngcontent-%COMP%] {\n padding: 10px;\n text-align: center;\n justify-content: space-between;\n}\n\n.disable-click[_ngcontent-%COMP%] {\n pointer-events: none;\n cursor: default;\n}\n\n.login-step[_ngcontent-%COMP%] {\n border: solid 1px lightgray;\n background-color: white;\n border-radius: 5px;\n margin: -2em;\n padding: 2em;\n}\n\n.loading[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: #ffffff9c;\n border-radius: 5px;\n}\n\n.loading[_ngcontent-%COMP%] div[_ngcontent-%COMP%] {\n margin: auto;\n align-self: center;\n}\n\n.github-fork-me[_ngcontent-%COMP%] {\n position: absolute;\n right: 0;\n top: 0;\n z-index: 1000;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvZ2luLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxrQ0FBa0M7QUFDdEM7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsWUFBWTtJQUNaLFdBQVc7SUFDWCxlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLFlBQVk7SUFDWixZQUFZO0lBQ1osb0JBQW9CO0FBQ3hCOztBQUVBO0lBQ0ksV0FBVztJQUNYLGtDQUFrQztBQUN0Qzs7QUFFQTtJQUNJLGFBQWE7SUFDYixXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLDhCQUE4QjtBQUNsQzs7QUFFQTtJQUNJLGFBQWE7SUFDYixrQkFBa0I7SUFDbEIsOEJBQThCO0FBQ2xDOztBQUVBO0lBQ0ksb0JBQW9CO0lBQ3BCLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSwyQkFBMkI7SUFDM0IsdUJBQXVCO0lBQ3ZCLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osWUFBWTtBQUNoQjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sT0FBTztJQUNQLFdBQVc7SUFDWCxZQUFZO0lBQ1osMkJBQTJCO0lBQzNCLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFlBQVk7SUFDWixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsUUFBUTtJQUNSLE1BQU07SUFDTixhQUFhO0FBQ2pCIiwiZmlsZSI6ImxvZ2luLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJtYXQtY2FyZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzNiAyMzYgMjM2KTtcbn1cblxuLmxvZ2luLWZvcm0taW5uZXIge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1pbi13aWR0aDogNTBlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHBhZGRpbmc6IDJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwLjNlbTtcbn1cblxuLmxvZ2luLWZvcm0tb3V0ZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzYgMjM2IDIzNik7XG59XG5cbi5sb2dpbi1mb3JtLWlucHV0cyB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICB3aWR0aDogMjVlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4ubG9naW4tZm9ybS1vciB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4uZGlzYWJsZS1jbGljayB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ubG9naW4tc3RlcCB7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggbGlnaHRncmF5O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBtYXJnaW46IC0yZW07XG4gICAgcGFkZGluZzogMmVtO1xufVxuXG4ubG9hZGluZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOWM7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4ubG9hZGluZyBkaXYge1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbi5naXRodWItZm9yay1tZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiAxMDAwO1xufSJdfQ== */"] }); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.docker_url); + } }, directives: [_angular_material_card__WEBPACK_IMPORTED_MODULE_8__["MatCard"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["ɵangular_packages_forms_forms_y"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["NgControlStatusGroup"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormGroupDirective"], _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_9__["DefaultLayoutDirective"], _angular_material_form_field__WEBPACK_IMPORTED_MODULE_10__["MatFormField"], _angular_material_form_field__WEBPACK_IMPORTED_MODULE_10__["MatLabel"], _angular_material_select__WEBPACK_IMPORTED_MODULE_11__["MatSelect"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["NgControlStatus"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormControlName"], _angular_common__WEBPACK_IMPORTED_MODULE_7__["NgForOf"], _angular_material_button__WEBPACK_IMPORTED_MODULE_12__["MatButton"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormGroupName"], _angular_material_input__WEBPACK_IMPORTED_MODULE_13__["MatInput"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["DefaultValueAccessor"], _angular_material_divider__WEBPACK_IMPORTED_MODULE_14__["MatDivider"], _angular_common__WEBPACK_IMPORTED_MODULE_7__["NgIf"], _angular_material_core__WEBPACK_IMPORTED_MODULE_15__["MatOption"], _angular_material_progress_spinner__WEBPACK_IMPORTED_MODULE_16__["MatSpinner"]], styles: ["mat-card[_ngcontent-%COMP%] {\n background-color: rgb(236 236 236);\n}\n\n.login-form-inner[_ngcontent-%COMP%] {\n font-weight: 600;\n border: none;\n width: auto;\n min-width: 50em;\n position: relative;\n margin: auto;\n padding: 2em;\n border-radius: 0.3em;\n}\n\n.login-form-outer[_ngcontent-%COMP%] {\n width: 100%;\n background-color: rgb(236 236 236);\n}\n\n.login-form-inputs[_ngcontent-%COMP%] {\n padding: 10px;\n width: 25em;\n text-align: center;\n justify-content: space-between;\n}\n\n.login-form-or[_ngcontent-%COMP%] {\n padding: 10px;\n text-align: center;\n justify-content: space-between;\n}\n\n.disable-click[_ngcontent-%COMP%] {\n pointer-events: none;\n cursor: default;\n}\n\n.login-step[_ngcontent-%COMP%] {\n border: solid 1px lightgray;\n background-color: white;\n border-radius: 5px;\n margin: -2em;\n padding: 2em;\n}\n\n.loading[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: #ffffff9c;\n border-radius: 5px;\n}\n\n.loading[_ngcontent-%COMP%] div[_ngcontent-%COMP%] {\n margin: auto;\n align-self: center;\n}\n\n.disclaimer[_ngcontent-%COMP%] {\n width: 50em;\n text-align: center;\n margin: auto;\n text-transform: uppercase;\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-weight: 100;\n font-size: smaller;\n}\n\n.source[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n}\n\n.source[_ngcontent-%COMP%] img[_ngcontent-%COMP%] {\n margin: 1em;\n height: 2em;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvZ2luLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxrQ0FBa0M7QUFDdEM7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsWUFBWTtJQUNaLFdBQVc7SUFDWCxlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLFlBQVk7SUFDWixZQUFZO0lBQ1osb0JBQW9CO0FBQ3hCOztBQUVBO0lBQ0ksV0FBVztJQUNYLGtDQUFrQztBQUN0Qzs7QUFFQTtJQUNJLGFBQWE7SUFDYixXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLDhCQUE4QjtBQUNsQzs7QUFFQTtJQUNJLGFBQWE7SUFDYixrQkFBa0I7SUFDbEIsOEJBQThCO0FBQ2xDOztBQUVBO0lBQ0ksb0JBQW9CO0lBQ3BCLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSwyQkFBMkI7SUFDM0IsdUJBQXVCO0lBQ3ZCLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osWUFBWTtBQUNoQjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sT0FBTztJQUNQLFdBQVc7SUFDWCxZQUFZO0lBQ1osMkJBQTJCO0lBQzNCLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFlBQVk7SUFDWixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLFlBQVk7SUFDWix5QkFBeUI7SUFDekIsaURBQWlEO0lBQ2pELGdCQUFnQjtJQUNoQixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQix1QkFBdUI7QUFDM0I7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsV0FBVztBQUNmIiwiZmlsZSI6ImxvZ2luLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJtYXQtY2FyZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzNiAyMzYgMjM2KTtcbn1cblxuLmxvZ2luLWZvcm0taW5uZXIge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1pbi13aWR0aDogNTBlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHBhZGRpbmc6IDJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwLjNlbTtcbn1cblxuLmxvZ2luLWZvcm0tb3V0ZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzYgMjM2IDIzNik7XG59XG5cbi5sb2dpbi1mb3JtLWlucHV0cyB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICB3aWR0aDogMjVlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4ubG9naW4tZm9ybS1vciB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4uZGlzYWJsZS1jbGljayB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ubG9naW4tc3RlcCB7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggbGlnaHRncmF5O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBtYXJnaW46IC0yZW07XG4gICAgcGFkZGluZzogMmVtO1xufVxuXG4ubG9hZGluZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOWM7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4ubG9hZGluZyBkaXYge1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbi5kaXNjbGFpbWVyIHtcbiAgICB3aWR0aDogNTBlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgZm9udC1zaXplOiBzbWFsbGVyO1xufVxuXG4uc291cmNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnNvdXJjZSBpbWcge1xuICAgIG1hcmdpbjogMWVtO1xuICAgIGhlaWdodDogMmVtO1xufSJdfQ== */"] }); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](LoginComponent, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ diff --git a/django_app/mso/static/main-es2015.js.map b/django_app/mso/static/main-es2015.js.map index 8a333cd..c9c3ca8 100644 --- a/django_app/mso/static/main-es2015.js.map +++ b/django_app/mso/static/main-es2015.js.map @@ -1 +1 @@ -{"version":3,"sources":["./src/app/login/login-2FA.ts","./src/app/login/login-2fa.html","./src/app/auto-generated/auto-generated.component.ts","./src/app/auto-generated/auto-generated.component.html","./src/app/common/common-claim.ts","./src/app/common/common-claim.html","./src/environments/environment.ts","./src/app/org/org.component.ts","./src/app/org/org.component.html","./src/app/common/common-error.ts","./src/app/common/common-error.html","./src/app/dashboard/dashboard.component.ts","./src/app/dashboard/dashboard.component.html","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/common/common-warning.ts","./src/app/common/common-warning.html","./src/app/common/common.component.ts","./src/app/common/common.component.html","./src/app/common/common-claim-details.ts","./src/app/common/common-claim-details.html","./src/app/connector.service.ts","./src/app/common/common-unclaim.ts","./src/app/common/common-unclaim.html","./src/app/common/common-pipes.ts","./src/app/app-routing.module.ts","./src/app/login/login.component.ts","./src/app/login/login.component.html","./src/main.ts","./$_lazy_route_resource lazy namespace object"],"names":[],"mappings":"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","file":"main-es2015.js","sourcesContent":["import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'login-2fa',\n templateUrl: 'login-2fa.html',\n})\nexport class TwoFactorDialog {\n public twoFactor: string;\n constructor(public dialogRef: MatDialogRef) { }\n\n close2FA() {\n this.dialogRef.close(this.twoFactor);\n }\n cancel2FA(): void {\n this.dialogRef.close();\n }\n}","\n

2FA Code Required

\n
\n \n Code\n \n \n
\n
\n \n \n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-auto-generated',\n templateUrl: './auto-generated.component.html',\n styleUrls: ['./auto-generated.component.css']\n})\nexport class AutoGeneratedComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","

auto-generated works!

\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\nimport { HttpClient } from '@angular/common/http';\nimport { ErrorDialog } from './common-error';\nimport { ClaimDetailsDialog } from './common-claim-details'\n\nexport interface ClaimCodeElement {\n code: string;\n duplicated: boolean;\n valid: boolean;\n success: boolean;\n reason: string;\n processed: boolean;\n}\n\n@Component({\n selector: 'common-claim',\n templateUrl: 'common-claim.html',\n})\nexport class ClaimDialog {\n constructor(\n public dialogRef: MatDialogRef, private _http: HttpClient, public _dialog: MatDialog, @Inject(MAT_DIALOG_DATA) public data) { }\n claimCodes: ClaimCodeElement[] = [];\n claimButtonDisabled: boolean = true;\n inputClaimCodes: string = \"\";\n body = this.data.body;\n isDone = false;\n claimResult = {};\n isWorking = false;\n\n add(): void {\n var regex = /^[0-9a-zA-Z]{5}-?[0-9a-zA-Z]{5}-?[0-9a-zA-Z]{5}$/i;\n this.inputClaimCodes.split(/[\\s,; ]+/).forEach(element => {\n var claim = element.replace(\";\", \"\").replace(\",\", \"\").trim().toUpperCase();\n if (claim.length > 0) {\n var newClaim = { code: claim, success: null, reason: null, duplicated: false, valid: false, processed: false };\n if (newClaim.code.match(regex)) {\n newClaim.valid = true;\n }\n this.claimCodes.forEach(element => {\n if (element.code == newClaim.code) {\n element.duplicated = true;\n newClaim.duplicated = true;\n }\n })\n this.claimCodes.push(newClaim);\n }\n })\n this.check_issues();\n this.inputClaimCodes = \"\";\n }\n\n edit(claimCode: ClaimCodeElement): void {\n this.inputClaimCodes = claimCode.code;\n var index = this.claimCodes.indexOf(claimCode)\n this.claimCodes.splice(index, 1)\n }\n\n check_issues(): void {\n var issues = {\n invalid: [],\n duplicated: []\n };\n this.claimCodes.forEach(element => {\n if (element.valid == false) {\n issues.invalid.push(element.code);\n }\n if (element.duplicated == true) {\n issues.duplicated.push(element.code);\n }\n })\n if (this.claimCodes.length > 0 && issues.duplicated.length == 0 && issues.invalid.length == 0) {\n this.claimButtonDisabled = false;\n } else {\n this.claimButtonDisabled = true;\n }\n }\n\n remove(claimCode: ClaimCodeElement): void {\n var duplicated_codes = [];\n var index = -1;\n // remove the claim code\n index = this.claimCodes.indexOf(claimCode);\n if (index >= 0) {\n this.claimCodes.splice(index, 1);\n }\n // if the removed claim code has the duplicated flag\n if (claimCode.duplicated) {\n // find other same codes\n this.claimCodes.forEach(element => {\n if (element.code == claimCode.code) {\n duplicated_codes.push(element);\n }\n })\n // if only one other same code, remove the duplicated flash\n if (duplicated_codes.length == 1) {\n index = this.claimCodes.indexOf(duplicated_codes[0]);\n this.claimCodes[index].duplicated = false;\n }\n }\n // check issues for \"claim\" button\n this.check_issues()\n }\n\n // CLAIM NEW CODES\n confirm(): void {\n this.isWorking = true;\n this.isDone = true;\n // Add claim codes to request body\n this.body.claim_codes = [];\n this.claimCodes.forEach(element => {\n this.body.claim_codes.push(element.code)\n })\n // Send request to server\n this._http.post('/api/devices/claim/', this.body).subscribe({\n next: data => {\n // retrieve result data\n this.claimResult = data.results;\n this.claimCodes.forEach(element => {\n element.processed = true;\n var index = -1;\n // if code added to account\n if (this.claimResult[\"added\"].indexOf(element.code) >= 0) {\n element.success = true;\n // if error when adding the code\n } else if (this.claimResult[\"error\"].indexOf(element.code) >= 0) {\n index = this.claimResult[\"error\"].indexOf(element.code);\n element.success = false;\n element.reason = this.claimResult[\"reason\"][index]\n // if code already claimed somewhere\n } else if (this.claimResult[\"duplicated\"].indexOf(element.code) >= 0) {\n element.success = false;\n element.reason = \"Already Claimed\"\n }\n })\n this.isWorking = false;\n },\n error: error => {\n var message: string = \"Unable to create claim the devices... \"\n if (\"error\" in error) { message += error[\"error\"][\"message\"] }\n this.openError(message)\n this.isWorking = false;\n }\n })\n }\n\n\n // EXIT\n cancel(): void {\n this.dialogRef.close();\n }\n // DIALOG BOXES\n // Restart Claim Process\n reset(): void {\n const dialogRef = this._dialog.open(ClaimDialog, {\n data: { body: this.body }\n })\n dialogRef.afterClosed().subscribe(result => {\n this.dialogRef.close();\n })\n }\n // DETAILS\n details(): void {\n console.log(this.claimResult);\n const dialogRef = this._dialog.open(ClaimDetailsDialog, {\n data: this.claimResult\n })\n\n }\n // ERROR\n openError(message: string): void {\n const dialogRef = this._dialog.open(ErrorDialog, {\n data: message\n });\n }\n\n\n}\n\n\n\n","\n

Claim new devices

\n
\n
HINT: you can paste mutliple claim codes separated by a SPACE, a COMMA or a SEMICOLUMN
\n
\n \n Claim Code\n \n \n \n
\n
\n
0\" fxFlex=\"1 1 0\" fxLayout=\"row wrap\" style=\"width: 100%;\">\n \n \n \n \n
\n
\n check_circle\n
\n
\n warning\n
\n
\n warning\n
\n
\n content_copy\n
\n \n \n
\n
\n
\n
\n
\n\n
\n \n \n \n \n \n
","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { Component, OnInit } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { ConnectorService } from '../connector.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ErrorDialog } from './../common/common-error';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-org',\n templateUrl: './org.component.html',\n styleUrls: ['./org.component.css']\n})\nexport class OrgComponent implements OnInit {\n\n headers = {};\n cookies = {};\n host = '';\n self = {};\n search = \"\";\n orgs = [];\n sites = [];\n orgMode: boolean = false;\n selected_org_obj = {\n id: \"\",\n name: \"\"\n };\n org_id: string = \"\";\n site_id: string = \"\";\n me: string = \"\";\n adminMode: boolean = false;\n map = {\n options: {\n scrollwheel: false,\n disableDefaultUI: true,\n draggable: false,\n draggableCursor: \"pointer\",\n clickableIcons: false\n },\n zoom: 12\n }\n\n apiLoaded: Observable;\n claimDisabled: boolean = true;\n topBarLoading = false;\n noSiteToDisplay = false;\n constructor(private _http: HttpClient, private _appService: ConnectorService, public _dialog: MatDialog, private _router: Router) { }\n\n\n ngOnInit() {\n this._appService.headers.subscribe(headers => this.headers = headers)\n this._appService.cookies.subscribe(cookies => this.cookies = cookies)\n this._appService.host.subscribe(host => this.host = host)\n this._appService.self.subscribe(self => this.self = self || {})\n this._appService.org_id.subscribe(org_id => this.org_id = org_id)\n this.me = this.self[\"email\"] || null\n\n var tmp_orgs: string[] = []\n\n // parsing all the orgs/sites from the privileges\n // only orgs with admin/write/installer roles are used\n if (this.self != {} && this.self[\"privileges\"]) {\n this.self[\"privileges\"].forEach(element => {\n if (element[\"role\"] == \"admin\" || element[\"role\"] == \"write\") {\n if (element[\"scope\"] == \"org\") {\n if (tmp_orgs.indexOf(element[\"org_id\"]) < 0) {\n this.orgs.push({ id: element[\"org_id\"], name: element[\"name\"], role: element[\"role\"] })\n tmp_orgs.push(element[\"org_id\"])\n }\n } else if (element[\"scope\"] == \"site\") {\n if (tmp_orgs.indexOf(element[\"org_id\"]) < 0) {\n this.orgs.push({ id: element[\"org_id\"], name: element[\"org_name\"], role: element[\"role\"] })\n tmp_orgs.push(element[\"org_id\"])\n }\n }\n }\n });\n this.orgs = this.sortList(this.orgs, \"name\");\n }\n\n // if only one, using it by default\n if (!this.org_id && this.orgs.length == 1) {\n this.org_id = this.orgs[1][\"id\"]\n }\n // if back button used, retrieving previously selected org\n // or if only one org, loading it automatically\n if (this.org_id) {\n this.orgs.forEach(element => {\n if (element.id == this.org_id) {\n this.selected_org_obj = element;\n this.changeOrg();\n }\n })\n }\n }\n\n // when the user selects a new org\n // disabling the admin mode\n // and loading the sites\n changeOrg() {\n this.loadSites();\n }\n\n // loads the org sites\n loadSites() {\n this.org_id = this.selected_org_obj.id\n this.topBarLoading = true;\n this.claimDisabled = true;\n this.sites = [];\n this._http.post('/api/sites/', { host: this.host, cookies: this.cookies, headers: this.headers, org_id: this.org_id}).subscribe({\n next: data => this.parseSites(data),\n error: error => {\n var message: string = \"There was an error... \"\n if (\"error\" in error) {\n message += error[\"error\"][\"message\"]\n }\n this.topBarLoading = false;\n this.openError(message)\n }\n })\n }\n\n // parse the org sites from HTTP response\n parseSites(data) {\n if (data.sites.length > 0) {\n this.noSiteToDisplay = false;\n this.sites = this.sortList(data.sites, \"name\");\n this.claimDisabled = false;\n } else {\n this.noSiteToDisplay = true;\n }\n this.topBarLoading = false;\n }\n\n\n\n\n // ROUTING FUNCTION\n // used when user wants to claim devices to org\n setOrg(): void {\n this.orgMode = true;\n this.gotoDash(); \n }\n // used when user wants to claim devices to site\n setSite(site): void {\n if (site != null) {\n this.site_id = site.id;\n } else {\n this.site_id = \"\";\n }\n this.orgMode = true;\n this._appService.siteIdSet(this.site_id);\n this.gotoDash();\n }\n // publish variables and go to the dashboard\n gotoDash(): void { \n this._appService.orgModeSet(this.orgMode)\n this._appService.orgIdSet(this.org_id);\n this._router.navigate([\"/dashboard\"]);\n }\n\n\n // COMMON\n sortList(data, attribute) {\n return data.sort(function (a, b) {\n var nameA = a[attribute].toUpperCase(); // ignore upper and lowercase\n var nameB = b[attribute].toUpperCase(); // ignore upper and lowercase\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n })\n }\n\n // DIALOG BOXES\n // ERROR\n openError(message: string): void {\n const dialogRef = this._dialog.open(ErrorDialog, {\n data: message\n });\n }\n}\n","\n
\n
\n \n Organization\n \n \n {{selected_org_obj.name}}\n \n \n {{org.role}}\n {{org.name}}\n \n \n \n\n
\n
\n
\n \n
\n
\n \n \n Please Select an Organization\n \n \n \n
\n You don't have access to any Site in this Organization. Please chose another Organization.\n
\n
\n Only the Sites with \"Administrator\" authorization are listed.\n
\n
\n
\n
\n \n
\n \n {{site.name}}\n \n \n
{{site.address}}
\n
\n
\n
\n \n \n \n Test\n \n \n
\n
\n
\n\n
","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nexport interface ErrorData {\n message: string\n}\n\n@Component({\n selector: 'common-error',\n templateUrl: 'common-error.html',\n})\nexport class ErrorDialog {\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: ErrorData\n ) { }\n ok(): void {\n this.dialogRef.close();\n }\n\n}","

Oops...

\n
\n {{data}}\n
\n
\n \n
","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { HttpClient } from '@angular/common/http';\nimport { FormBuilder, Validators, FormControl } from '@angular/forms';\nimport { Router } from '@angular/router';\n\nimport { MatPaginator } from '@angular/material/paginator';\n\nimport { ErrorDialog } from '../common/common-error';\n\n\nimport { ConnectorService } from '../connector.service';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { interval, Subscription } from 'rxjs';\nimport { element } from 'protractor';\n\n\n// Configuration element from Devices Details\nexport interface DeviceDetailsElement {\n managed: boolean,\n role: string,\n notes: string,\n ip_config: IpConfigElement,\n oob_ip_config: IpConfigElement,\n disable_auto_config: boolean,\n networks: object,\n port_usages: object,\n additional_config_cmds: string[],\n id: string,\n name: string,\n site_id: string,\n org_id: string,\n created_time: number,\n modified_time: number,\n map_id: string | null,\n mac: string,\n serial: string,\n model: string,\n hw_rev: string,\n type: string,\n tag_uuid: string | null,\n tag_id: number | null,\n deviceprofile_id: string | null\n}\n\nexport interface IpConfigElement {\n type: string,\n ip: string | null,\n netmask: string | null,\n gateway: string | null,\n dns: string[] | null,\n dns_suffix: string | null,\n network: string\n}\n\nexport interface PortElement {\n mode: string,\n all_networks: boolean,\n networks: string[],\n port_network: string,\n port_auth: string,\n enable_mac_auth: string,\n guest_network: string,\n bypass_auth_when_server_down: boolean,\n speed: string,\n duplex: string,\n disable_autoneg: boolean,\n mac_limit: number,\n stp_edge: boolean,\n mtu: number,\n disabled: boolean,\n poe_disabled: boolean,\n description: string,\n voip_network: string,\n storm_control: {}\n}\n\n\n// Configuration Elements derived from the site\nexport interface DerivedElement {\n additional_config_cmds: string[],\n network: object,\n port_usages: object,\n switch_matching: SwitchMatchingElement,\n vars: object\n\n}\nexport interface SwitchMatchingElement {\n element: boolean,\n riles: object[]\n}\n\n// Device Elements for the list\nexport interface DeviceElement {\n id: string,\n site_id: string,\n org_id: string,\n mac: string,\n vc_mac: string,\n model: string,\n type: string,\n serial: string,\n status: string,\n members: object[]\n}\n\nexport interface MistDevices {\n results: DeviceElement[];\n total: number;\n limit: number;\n page: number;\n}\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.css']\n})\n\n\nexport class DashboardComponent implements OnInit {\n\n frmPort = this._formBuilder.group({\n mode: \"access\",\n all_networks: false,\n networks: [],\n port_network: \"default\",\n port_auth: \"\",\n enable_mac_auth: \"\",\n guest_network: \"\",\n bypass_auth_when_server_down: false,\n speed: [\"auto\"],\n duplex: [\"auto\"],\n autoneg: true,\n mac_limit: 0,\n stp_edge: true,\n mtu: 1514,\n enabled: true,\n poe: true,\n description: \"\",\n voip_network: \"\",\n storm_control: {}\n })\n\n defaultConfig = {\n mode: \"access\",\n all_networks: false,\n networks: [],\n port_network: \"\",\n port_auth: \"\",\n enable_mac_auth: \"\",\n guest_network: \"\",\n bypass_auth_when_server_down: false,\n speed: \"auto\",\n duplex: \"auto\",\n disable_autoneg: false,\n mac_limit: 0,\n stp_edge: true,\n mtu: 1514,\n disabled: false,\n poe_disabled: false,\n description: \"\",\n voip_network: \"\",\n storm_control: {}\n }\n\n headers = {};\n cookies = {};\n host = '';\n self = {};\n search = \"\";\n orgs = [];\n sites = [];\n maps = [];\n org_id: string = \"\";\n orgMode: boolean = false;\n site_id: string = \"__any__\";\n me: string = \"\";\n\n topBarLoading = false;\n deviceLoading = false;\n\n editingDevice = null;\n editingDeviceSettings = null;\n editingPorts = [];\n editingPortNames = [];\n editingPortsStatus = {}\n displayedPorts = {}\n\n filteredDevicesDatabase: MatTableDataSource | null;\n devices: DeviceElement[] = []\n\n resultsLength = 0;\n displayedColumns: string[] = [\"device\"];\n private _subscription: Subscription\n\n @ViewChild(MatPaginator) paginator: MatPaginator;\n\n constructor(private _router: Router, private _http: HttpClient, private _appService: ConnectorService, public _dialog: MatDialog, private _formBuilder: FormBuilder, private _snackBar: MatSnackBar) { }\n\n //////////////////////////////////////////////////////////////////////////////\n ///// INIT\n //////////////////////////////////////////////////////////////////////////////\n\n ngOnInit() {\n const source = interval(60000);\n\n this._appService.headers.subscribe(headers => this.headers = headers)\n this._appService.cookies.subscribe(cookies => this.cookies = cookies)\n this._appService.host.subscribe(host => this.host = host)\n this._appService.self.subscribe(self => this.self = self || {})\n this._appService.org_id.subscribe(org_id => this.org_id = org_id)\n this._appService.site_id.subscribe(site_id => this.site_id = site_id)\n this._appService.orgMode.subscribe(orgMode => this.orgMode = orgMode)\n \n this.getDevices();\n\n this._subscription = source.subscribe(s => this.getDevices());\n\n }\n\n ngOnDestroy() {\n this._subscription.unsubscribe();\n }\n\n\n //////////////////////////////////////////////////////////////////////////////\n ///// LOAD DEVICE LIST\n //////////////////////////////////////////////////////////////////////////////\n\n getDevices() {\n var body = null\n body = { host: this.host, cookies: this.cookies, headers: this.headers, site_id: this.site_id, full: true }\n\n if (body) {\n this.topBarLoading = true;\n this._http.post('/api/devices/', body).subscribe({\n next: data => {\n var tmp: DeviceElement[] = []\n data[\"results\"].forEach(element => {\n if (this.editingDevice && this.editingDevice.mac == element.mac) {\n this.editingDevice = element;\n }\n });\n this.filteredDevicesDatabase = new MatTableDataSource(data[\"results\"]);\n\n this.filteredDevicesDatabase.paginator = this.paginator;\n this.topBarLoading = false;\n },\n error: error => {\n var message: string = \"There was an error... \"\n if (\"error\" in error) { message += error[\"error\"][\"message\"] }\n this.openError(message)\n }\n })\n\n }\n }\n\n //////////////////////////////////////////////////////////////////////////////\n ///// EDIT DEVICE\n //////////////////////////////////////////////////////////////////////////////\n editDevice(device: DeviceElement): void {\n if (device == this.editingDevice) {\n this._discardDevice();\n }\n else {\n this._discardDevice();\n this.editingDevice = device;\n this._getDeviceSettings()\n this._getPortStatus()\n }\n }\n\n _getDeviceSettings(): void {\n this.deviceLoading = true\n this._http.post('/api/devices/settings/', {\n host: this.host,\n cookies: this.cookies,\n headers: this.headers,\n site_id: this.site_id,\n device_id: this.editingDevice.id\n }).subscribe({\n next: data => {\n this.editingDeviceSettings = data\n this.displayedPorts = data.ports\n this.deviceLoading = false\n this.editingPorts = []\n this.editingPortNames.forEach(element => {\n this.editingPorts.push(this.editingDeviceSettings.ports[element])\n })\n },\n error: error => {\n this.deviceLoading = false\n var message: string = \"Unable to load settings for the Device \" + this.editingDevice.mac + \"... \"\n if (\"error\" in error) { message += error[\"error\"][\"message\"] }\n this.openError(message)\n }\n })\n }\n\n\n _discardDevice(): void {\n this.editingDevice = null;\n this.editingDeviceSettings = null;\n this.editingPorts = [];\n this.editingPortNames = [];\n this.displayedPorts = {};\n this._discardPorts()\n }\n \n powerDraw(member) {\n var percentage = (member.poe.power_draw / member.poe.max_power) * 100\n return percentage\n }\n \n //////////////////////////////////////////////////////////////////////////////\n ///// Ports Status\n //////////////////////////////////////////////////////////////////////////////\n \n _getPortStatus(): void {\n this._http.post('/api/devices/portstatus/', {\n host: this.host,\n cookies: this.cookies,\n headers: this.headers,\n site_id: this.site_id,\n device_mac: this.editingDevice.mac\n }).subscribe({\n next: data => {\n this.editingPortsStatus = data.result\n },\n error: error => {\n this.deviceLoading = false\n var message: string = \"Unable to load ports status for the Device \" + this.editingDevice.mac + \"... \"\n if (\"error\" in error) { message += error[\"error\"][\"message\"] }\n this.openError(message)\n }\n })\n }\n //////////////////////////////////////////////////////////////////////////////\n ///// EDIT Port\n //////////////////////////////////////////////////////////////////////////////\n selectPortFromSwitchView(portName): void {\n let port = this.editingDeviceSettings.ports[portName]\n this.selectPort(port)\n }\n \n selectPort(port): void {\n if (this.editingPorts.includes(port)) {\n this._deletePort(port);\n if (this.editingPorts.length == 1) {\n this._setPortFields(this.editingPorts[0])\n }\n }\n else {\n this._addPort(port);\n if (this.editingPorts.length == 1) {\n this._setPortFields(this.editingPorts[0])\n } else if (this.editingPorts.length == 2) {\n this._setDefaultPortFielts()\n }\n }\n }\n \n // ADD or REMOVE ports from the editing list\n _addPort(port): void {\n this.editingPorts.push(port);\n this.editingPortNames.push(port.port)\n }\n _deletePort(port): void {\n let index = this.editingPorts.indexOf(port)\n this.editingPorts.splice(index, 1)\n let indexName = this.editingPortNames.indexOf(port.port)\n this.editingPortNames.splice(indexName, 1)\n if (this.editingPorts.length == 0) {\n this._discardPorts()\n }\n }\n \n savePorts(): void {\n this.editingPorts.forEach(element => {\n element[\"new_conf\"] = {\n \"mode\": this.frmPort.get(\"mode\").value,\n \"all_networks\": this.frmPort.get(\"all_networks\").value,\n \"networks\": this.frmPort.get(\"networks\").value,\n \"port_network\": this.frmPort.get(\"port_network\").value,\n \"port_auth\": this.frmPort.get(\"port_auth\").value,\n \"enable_mac_auth\": this.frmPort.get(\"enable_mac_auth\").value,\n \"guest_network\": this.frmPort.get(\"guest_network\").value,\n \"bypass_auth_when_server_down\": this.frmPort.get(\"bypass_auth_when_server_down\").value,\n \"autoneg\": this.frmPort.get(\"autoneg\").value,\n \"mac_limit\": this.frmPort.get(\"mac_limit\").value,\n \"stp_edge\": this.frmPort.get(\"stp_edge\").value,\n \"mtu\": this.frmPort.get(\"mtu\").value,\n \"disabled\": this.frmPort.get(\"enabled\").value == false,\n \"poe_disabled\": this.frmPort.get(\"poe\").value == false,\n \"description\": this.frmPort.get(\"description\").value,\n \"voip_network\": this.frmPort.get(\"voip_network\").value,\n \"storm_control\": this.frmPort.get(\"storm_control\").value,\n \"duplex\": this.frmPort.get(\"duplex\").value,\n \"speed\": this.frmPort.get(\"speed\").value\n }\n })\n if (this.frmPort.valid) {\n this.topBarLoading = true\n var body = {\n host: this.host,\n cookies: this.cookies,\n headers: this.headers,\n site_id: this.site_id,\n org_id: this.org_id,\n port_config: this.editingPorts,\n device_id: this.editingDevice.id\n }\n this._http.post('/api/devices/update/', body).subscribe({\n next: data => {\n this.topBarLoading = false\n //this.updateFrmDeviceValues(data.result)\n this._getDeviceSettings()\n this.openSnackBar(\"Device \" + this.editingDevice.mac + \" successfully updated\", \"Done\")\n },\n error: error => {\n this.topBarLoading = false\n var message: string = \"Unable to save changes on Device \" + this.editingDevice.mac + \"... \"\n if (\"error\" in error) { message += error[\"error\"][\"message\"] }\n this.openError(message)\n }\n })\n }\n }\n // Reset the ports selection and form\n _discardPorts(): void {\n this.editingPorts = []\n this.editingPortNames = []\n this.frmPort.reset()\n }\n\n // Set Port Form values\n _setDefaultPortFielts(): void {\n this.updateFrmDeviceValues(this.defaultConfig)\n }\n _setPortFields(port): void {\n var port_usage = \"\"\n // copy default values\n var config = { ...this.defaultConfig }\n // getting the port_usage profile name at the switch level, and, if none, at the site level\n if (\"usage\" in port.device) {\n port_usage = port.device.usage\n } else if (\"usage\" in port.site) {\n port_usage = port.site.usage\n }\n // if there is a configured port_usage, retrieving its configuration at the switch level, and\n // if none, at the site level\n if (port_usage) {\n var port_config = {}\n if (port_usage in this.editingDeviceSettings.device.port_usages) {\n port_config = this.editingDeviceSettings.device.port_usages[port_usage]\n }\n else if (port_usage in this.editingDeviceSettings.site.port_usages) {\n port_config = this.editingDeviceSettings.site.port_usages[port_usage]\n }\n // setting the config object with the port_usage settings\n for (var key in port_config) {\n config[key] = port_config[key]\n }\n }\n this.updateFrmDeviceValues(config)\n }\n\n canbeChecked(portName): boolean {\n return this.editingPortNames.includes(portName);\n }\n //////////////////////////////////////////////////////////////////////////////\n ///// COMMON\n //////////////////////////////////////////////////////////////////////////////\n updateFrmDeviceValues(config: PortElement): void {\n this.frmPort.reset()\n this.frmPort.controls[\"port_network\"].setValue(config.port_network)\n this.frmPort.controls[\"autoneg\"].setValue(config.disable_autoneg == false)\n this.frmPort.controls[\"enabled\"].setValue(config.disabled == false)\n this.frmPort.controls[\"poe\"].setValue(config.poe_disabled == false)\n if (config.disable_autoneg == true) {\n this.frmPort.controls[\"duplex\"] = new FormControl({ value: config.duplex, disabled: true })\n this.frmPort.controls[\"speed\"] = new FormControl({ value: config.speed, disabled: true })\n } else {\n this.frmPort.controls[\"speed\"].setValue(config.speed)\n this.frmPort.controls[\"duplex\"].setValue(config.duplex)\n }\n }\n\n\n sortList(data, attribute) {\n return data.sort(function (a, b) {\n var nameA = a[attribute].toUpperCase(); // ignore upper and lowercase\n var nameB = b[attribute].toUpperCase(); // ignore upper and lowercase\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n })\n }\n\n applyFilter(event: Event) {\n const filterValue = (event.target as HTMLInputElement).value.trim().toLowerCase();\n this.filteredDevicesDatabase.filter = filterValue.trim().toLowerCase();\n\n if (this.filteredDevicesDatabase.paginator) {\n this.filteredDevicesDatabase.paginator.firstPage();\n }\n }\n\n applyPortFilter(event: Event) {\n const filterValue = (event.target as HTMLInputElement).value.trim().toLowerCase();\n this.displayedPorts = {}\n if (filterValue) {\n for (var key in this.editingDeviceSettings.ports) {\n if (key.includes(filterValue)) {\n this.displayedPorts[key] = this.editingDeviceSettings.ports[key]\n }\n }\n } else {\n this.displayedPorts = this.editingDeviceSettings.ports\n }\n }\n\n back(): void {\n this._router.navigate([\"/select\"]);\n }\n\n //////////////////////////////////////////////////////////////////////////////\n ///// DIALOG BOXES\n //////////////////////////////////////////////////////////////////////////////\n // ERROR\n openError(message: string): void {\n const dialogRef = this._dialog.open(ErrorDialog, {\n data: message\n });\n }\n\n // SNACK BAR\n openSnackBar(message: string, action: string) {\n this._snackBar.open(message, action, {\n duration: 5000,\n horizontalPosition: \"center\",\n verticalPosition: \"top\",\n });\n }\n}\n\n\n","\n \n
\n \n
\n
\n\n\n\n
\n Please select a device...\n
\n\n
\n \n
\n\n
\n
\n \n Filter\n \n \n \n
\n\n\n
\n
\n \n
\n
\n
\n {{editingDevice.model}}\n
\n
\n
\n {{index}}
\n
\n
\n RJ45\n
\n
\n
\n
\n
\n
\n
\n\n
\n SFP\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n\n
\n
\n
\n \n Switch Management\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
VLANtypeIP AddressNetmaskGateway
In Band{{editingDeviceSettings.device.ip_config.network}}{{editingDeviceSettings.device.ip_config.type}}{{editingDeviceSettings.device.ip_config.ip}}{{editingDeviceSettings.device.ip_config.netmask}}{{editingDeviceSettings.device.ip_config.gateway}}
Out Band{{editingDeviceSettings.device.oob_ip_config.network}}{{editingDeviceSettings.device.oob_ip_config.type}}{{editingDeviceSettings.device.oob_ip_config.ip}}{{editingDeviceSettings.device.oob_ip_config.netmask}}{{editingDeviceSettings.device.oob_ip_config.gateway}}
\n
\n
\n
\n \n Switch Status\n \n
\n
\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 0\">\n \n \n \n
MEMBER #{{index}}
VC ROLE{{member.vc_role}}
MODEL{{member.model}}
SERIAL{{member.serial}}
MAC ADDRESS{{member.mac}}
POE{{member.poe.power_draw}} W
POE Budget{{member.poe.max_power}} W
TEMP\n
\n
\n \n check_circle\n
\n
\n \n cancel\n \n
\n
\n {{temp.name}}: {{temp.celsius}} °C\n
\n
\n
FAN\n
\n
\n \n check_circle\n
\n
\n \n cancel\n \n
\n
\n {{fan.name}}\n
\n
\n
\n
\n
\n
\n\n
\n
\n\n
= 1\">\n
\n \n {{editingPorts[0].port}}\n 1\" class=\"no-cursor\" style=\"color: black; font-weight: light; width: 20em; text-align: center;\" fxFlex=\"auto\">Multi\n Selection\n \n
\n
\n
\n
\n Port Status\n \n Enabled \n Disabled \n \n
\n
\n PoE\n \n Enabled \n Disabled \n \n
\n
\n \n VLAN\n \n None\n \n {{vlan.key}} ({{vlan.value.vlan_id}})\n \n \n \n\n
\n Auto-Negociation\n \n Enabled \n Disabled \n \n
\n
\n\n \n SPEED\n \n Auto\n 10M\n 100M\n 1G\n 2.5G\n 5G\n \n \n\n \n DUPLEX\n \n Auto\n Full\n Half\n \n \n
\n\n
\n
\n
= 1\">\n \n \n
\n
\n
\n
","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n title = 'Mist Switch Operator';\n\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n \"Mist\n Mist Switch Operator\n\n\n\n\n \n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { HttpClientModule, HttpClientJsonpModule } from '@angular/common/http';\n\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormsModule } from '@angular/forms';\n\nimport { GoogleMapsModule } from '@angular/google-maps';\n\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatDialogModule } from '@angular/material/dialog'\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { Router } from '@angular/router';\n\nimport { StartsWithPipe, MapToArrayPipe } from '@src/app/common/common-pipes';\n\n\nimport { AppRoutingModule } from '@src/app/app-routing.module';\nimport { AppComponent } from '@src/app/app.component';\nimport { LoginComponent } from '@src/app/login/login.component';\nimport { TwoFactorDialog } from '@src/app/login/login-2FA';\nimport { DashboardComponent } from '@src/app/dashboard/dashboard.component';\nimport { ClaimDialog } from '@src/app/common/common-claim';\nimport { UnclaimDialog } from '@src/app/common/common-unclaim';\nimport { ErrorDialog } from '@src/app/common/common-error';\nimport { WarningDialog } from '@src/app/common/common-warning';\nimport { ClaimDetailsDialog } from '@src/app/common/common-claim-details';\nimport { OrgComponent } from '@src/app/org/org.component';\nimport { CommonComponent } from '@src/app/common/common.component';\nimport { AutoGeneratedComponent } from '@src/app/auto-generated/auto-generated.component';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { MatGoogleMapsAutocompleteModule } from '@angular-material-extensions/google-maps-autocomplete';\nimport { AgmCoreModule } from '@agm/core';\n\n@NgModule({\n declarations: [\n AppComponent,\n LoginComponent, TwoFactorDialog,\n DashboardComponent, ClaimDialog, UnclaimDialog, ErrorDialog, WarningDialog, ClaimDetailsDialog,\n OrgComponent,\n CommonComponent,\n StartsWithPipe,\n MapToArrayPipe,\n AutoGeneratedComponent\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n BrowserAnimationsModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n GoogleMapsModule,\n HttpClientModule,\n HttpClientJsonpModule,\n MatButtonModule,\n MatChipsModule,\n MatSelectModule,\n MatFormFieldModule,\n MatInputModule,\n MatStepperModule,\n MatDividerModule,\n MatCardModule,\n MatGridListModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatSlideToggleModule,\n MatTableModule,\n MatCheckboxModule,\n MatProgressBarModule,\n MatToolbarModule,\n MatTooltipModule,\n MatPaginatorModule,\n MatDialogModule,\n FormsModule,\n MatIconModule,\n MatSnackBarModule,\n NgbModule,\n MatGoogleMapsAutocompleteModule,\n AgmCoreModule.forRoot()\n ],\n providers: [{\n provide: MatRadioModule,\n useValue: { color: 'accent' },\n }],\n bootstrap: [AppComponent]\n})\nexport class AppModule {\n // Diagnostic only: inspect router configuration\n constructor(router: Router) {\n // Use a custom replacer to display function names in the route configs\n const replacer = (key, value) => (typeof value === 'function') ? value.name : value;\n }\n}","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nexport interface WarningData {\n text: string,\n vlan_check: [\"\"],\n bigWarning: boolean\n}\n\n@Component({\n selector: 'common-warning',\n templateUrl: 'common-warning.html',\n})\nexport class WarningDialog {\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: WarningData\n ) { }\n ok(): void {\n this.dialogRef.close(true);\n }\n cancel(): void {\n this.dialogRef.close();\n }\n\n}","

Be careful

\n
\n
{{data.text}}
\n
\n
Details:
\n
    \n
  • {{element.reason}}
  • \n
\n
\n
\n
Warning:
\n
Changes may have impact on existing users, especially for users using PSK without VLAN.\n
\n
\n
\n\n
\n \n \n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-common',\n templateUrl: './common.component.html',\n styleUrls: ['./common.component.css']\n})\nexport class CommonComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","

common works!

\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'common-claim-details',\n templateUrl: 'common-claim-details.html',\n})\nexport class ClaimDetailsDialog {\n constructor(\n public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data) { }\n details = this.data;\n \n ngOnInit(){\n console.log(this.details)\n }\n cancel(): void {\n this.dialogRef.close();\n }\n}","

Claim Result Details

\n
\n
{{details | json}}
\n
\n\n
\n \n
","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConnectorService {\n private headersSource = new BehaviorSubject({});\n private cookiesSource = new BehaviorSubject({});\n private hostSource = new BehaviorSubject('');\n private selfSource = new BehaviorSubject({});\n private orgIdSource = new BehaviorSubject(\"\");\n private siteIdSource = new BehaviorSubject(\"\");\n private orgModeSource = new BehaviorSubject(false);\n private googleApiKey = new BehaviorSubject(\"\");\n\n headers = this.headersSource.asObservable();\n host = this.hostSource.asObservable();\n cookies = this.cookiesSource.asObservable();\n self = this.selfSource.asObservable();\n org_id = this.orgIdSource.asObservable();\n site_id = this.siteIdSource.asObservable();\n orgMode = this.orgModeSource.asObservable();\n google_api_key = this.googleApiKey.asObservable();\n\n constructor() { }\n\n headersSet(data: {}) {\n this.headersSource.next(data)\n }\n cookiesSet(data: {}) {\n this.cookiesSource.next(data)\n }\n hostSet(data: string) {\n this.hostSource.next(data)\n }\n selfSet(data: {}) {\n this.selfSource.next(data)\n }\n orgIdSet(data: string){\n this.orgIdSource.next(data)\n }\n siteIdSet(data:string){\n this.siteIdSource.next(data)\n }\n orgModeSet(data:boolean){\n this.orgModeSource.next(data)\n }\n googleApiKeySet(data:string){\n this.googleApiKey.next(data)\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nexport interface DeviceElement {\n mac: string;\n model: string;\n serial: string;\n connected: boolean;\n type: string; \n deviceprofile_name: string;\n height: Int16Array;\n map_id: string;\n name: string;\n orientation: Int16Array;\n site_id: string;\n site_name: string;\n x:Int16Array;\n y: Int16Array;\n }\n\n@Component({\n selector: 'common-unclaim',\n templateUrl: 'common-unclaim.html',\n})\nexport class UnclaimDialog {\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: DeviceElement\n ) { }\n\n confirm(device_mac) {\n this.dialogRef.close(device_mac)\n }\n cancel(): void {\n this.dialogRef.close();\n }\n\n}","

Delete Device

\n
\n This will delete the Device {{data.mac}}. Do you confirm?\n
\n
\n \n \n
","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'startsWith' })\nexport class StartsWithPipe implements PipeTransform {\n transform(fullText: string, textMatch: string): boolean {\n return fullText.startsWith(textMatch);\n }\n}\n\n@Pipe({ name: 'mapToArray' })\nexport class MapToArrayPipe implements PipeTransform {\n transform(value, args: string[]): any {\n let arr = [];\n for (let key in value) {\n arr.push({ key: key, value: value[key] });\n }\n return arr;\n }\n}","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\n\nimport { LoginComponent } from './login/login.component';\nimport { DashboardComponent } from './dashboard/dashboard.component';\nimport { OrgComponent } from './org/org.component';\n\n\nconst routes: Routes = [\n { path: 'login', component: LoginComponent },\n { path: 'select', component: OrgComponent },\n { path: 'dashboard', component: DashboardComponent },\n { path: '', redirectTo: '/login', pathMatch: 'full' }, // redirect to `first-component`\n { path: '**', redirectTo: '/login' }, // redirect to `first-component`\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { HttpClient } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { FormBuilder } from '@angular/forms';\nimport { ConnectorService } from '../connector.service';\nimport {PlatformLocation} from '@angular/common';\nimport { TwoFactorDialog } from './login-2FA';\n\nexport interface TwoFactorData {\n twoFactor: string;\n}\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.css']\n})\n\n\nexport class LoginComponent implements OnInit {\n\n constructor(private _formBuilder: FormBuilder, private _http: HttpClient, private _router: Router, private _appService: ConnectorService, public _dialog: MatDialog, private _platformLocation: PlatformLocation\n ) { }\n\n host = null;\n headers = {};\n cookies = {};\n self = {};\n show_github_fork_me : boolean = false;\n hostnames_to_show_github_fork_me = [ \"mso.mist-lab.fr\"]\n loading: boolean;\n hosts = [\n { value: 'api.mist.com', viewValue: 'US - manage.mist.com' },\n { value: 'api.eu.mist.com', viewValue: 'EU - manage.eu.mist.com' },\n { value: 'api.gc1.mist.com', viewValue: 'GCP - manage.gc1.mist.com' }\n ];\n\n // LOGIN FORM\n frmStepLogin = this._formBuilder.group({\n host: [''],\n credentials: this._formBuilder.group({\n email: [''],\n password: [''],\n }),\n token: [''],\n });\n error_mess = {\n \"credentials\": \"\",\n \"token\": \"\"\n }\n\n\n //// INIT ////\n ngOnInit(): void {\n if (this.hostnames_to_show_github_fork_me.indexOf(this._platformLocation.hostname) >= 0){ \n this.show_github_fork_me = true;\n }\n this.frmStepLogin = this._formBuilder.group({\n host: ['api.mist.com'],\n credentials: this._formBuilder.group({\n email: [''],\n password: [''],\n }),\n token: [\"\"],\n });\n this._http.get('/api/gap').subscribe({\n next: data => this._appService.googleApiKeySet(data.gap),\n error: error => console.error(\"Unable to load the Google API Key... Maps won't be available...\") \n })\n }\n\n //// COMMON ////\n check_host(): boolean {\n if (this.frmStepLogin.value.host != '') {\n return true;\n } else {\n return false;\n }\n }\n\n // RESET AUTHENTICATION FORM\n reset_response(): void {\n this.host = null;\n this._appService.headersSet({});\n this._appService.cookiesSet({});\n this._appService.selfSet({});\n this._appService.hostSet(this.host);\n this.reset_error_mess();\n }\n reset_error_mess(): void{\n this.error_mess = {\n \"credentials\": \"\",\n \"token\": \"\"\n }\n }\n\n // PARSE AUTHENTICATION RESPONSE FROM SERVER\n parse_response(data): void {\n if (\"error\" in data) {\n this.loading = false;\n this.error_mess[\"username\"] = data.error;\n } else if (\"data\" in data) {\n if (\"detail\" in data.data) {\n this.error_message(data[\"method\"], data.data.detail);\n } else if (\"two_factor_required\" in data.data && \"two_factor_passed\" in data.data) {\n if (data.data[\"two_factor_required\"] == false) {\n this.authenticated(data)\n } else if (data.data[\"two_factor_passed\"] == true) {\n this.authenticated(data)\n } else {\n this.open2FA()\n }\n } else {\n this.authenticated(data)\n }\n }\n }\n\n // WHEN AUTHENTICATION IS NOT OK\n error_message(method, message): void {\n this.loading = false;\n this.error_mess[method] = message;\n }\n\n\n // WHEN AUTHENTICATION IS OK\n authenticated(data): void {\n this._appService.headersSet(data.headers);\n this._appService.cookiesSet(data.cookies);\n this._appService.hostSet(data.host);\n this._appService.selfSet(data.data)\n this.loading = false; \n this._router.navigate(['/select']);\n }\n\n //// AUTHENTICATION ////\n submitCredentials(): void {\n this.reset_response();\n if (this.check_host()) {\n this.loading = true;\n this._http.post('/api/login/', { host: this.frmStepLogin.value.host, email: this.frmStepLogin.value.credentials.email, password: this.frmStepLogin.value.credentials.password }).subscribe({\n next: data => this.parse_response(data),\n error: error => this.error_message(\"credentials\", error.error.message) \n })\n }\n }\n submitToken(): void {\n this.reset_response();\n if (this.check_host()) {\n this.loading = true;\n this._http.post('/api/login/', { host: this.frmStepLogin.value.host, token: this.frmStepLogin.value.token }).subscribe({\n next: data => this.parse_response(data),\n error: error => this.error_message(\"credentials\", error.error.message)\n })\n }\n }\n submit2FA(twoFactor: number): void {\n if (this.check_host()) {\n this.loading = true;\n this._http.post('/api/login/', { host: this.frmStepLogin.value.host, email: this.frmStepLogin.value.credentials.email, password: this.frmStepLogin.value.credentials.password, two_factor: twoFactor }).subscribe({\n next: data => this.parse_response(data),\n error: error => this.error_message(\"credentials\", error.error.message) \n })\n }\n }\n\n //// DIALOG BOX ////\n open2FA(): void {\n const dialogRef = this._dialog.open(TwoFactorDialog, {});\n dialogRef.afterClosed().subscribe(result => {\n this.submit2FA(result)\n });\n }\n}","\n\n
\n
\n
\n
\n \n Mist Cloud\n \n \n {{host.viewValue}}\n \n \n \n
\n
\n \n \n \n
\n\n
\n\n
\n

Access with Login/Password

\n \n Email\n \n \n\n \n Password\n \n \n
\n {{error_mess.credentials}}\n
\n
\n \n
\n
\n \n \n \n
\n
\n

Access with API Token

\n \n API Token\n \n \n
\n {{error_mess.token}}\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n\n
\n \"Fork\n
","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"],"sourceRoot":"webpack:///"} \ No newline at end of file +{"version":3,"sources":["./src/app/login/login-2FA.ts","./src/app/login/login-2fa.html","./src/app/auto-generated/auto-generated.component.ts","./src/app/auto-generated/auto-generated.component.html","./src/app/common/common-claim.ts","./src/app/common/common-claim.html","./src/environments/environment.ts","./src/app/org/org.component.ts","./src/app/org/org.component.html","./src/app/common/common-error.ts","./src/app/common/common-error.html","./src/app/dashboard/dashboard.component.ts","./src/app/dashboard/dashboard.component.html","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/common/common-warning.ts","./src/app/common/common-warning.html","./src/app/common/common.component.ts","./src/app/common/common.component.html","./src/app/common/common-claim-details.ts","./src/app/common/common-claim-details.html","./src/app/connector.service.ts","./src/app/common/common-unclaim.ts","./src/app/common/common-unclaim.html","./src/app/common/common-pipes.ts","./src/app/app-routing.module.ts","./src/app/login/login.component.ts","./src/app/login/login.component.html","./src/main.ts","./$_lazy_route_resource lazy namespace object"],"names":[],"mappings":"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","file":"main-es2015.js","sourcesContent":["import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'login-2fa',\n templateUrl: 'login-2fa.html',\n})\nexport class TwoFactorDialog {\n public twoFactor: string;\n constructor(public dialogRef: MatDialogRef) { }\n\n close2FA() {\n this.dialogRef.close(this.twoFactor);\n }\n cancel2FA(): void {\n this.dialogRef.close();\n }\n}","\n

2FA Code Required

\n
\n \n Code\n \n \n
\n
\n \n \n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-auto-generated',\n templateUrl: './auto-generated.component.html',\n styleUrls: ['./auto-generated.component.css']\n})\nexport class AutoGeneratedComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","

auto-generated works!

\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\nimport { HttpClient } from '@angular/common/http';\nimport { ErrorDialog } from './common-error';\nimport { ClaimDetailsDialog } from './common-claim-details'\n\nexport interface ClaimCodeElement {\n code: string;\n duplicated: boolean;\n valid: boolean;\n success: boolean;\n reason: string;\n processed: boolean;\n}\n\n@Component({\n selector: 'common-claim',\n templateUrl: 'common-claim.html',\n})\nexport class ClaimDialog {\n constructor(\n public dialogRef: MatDialogRef, private _http: HttpClient, public _dialog: MatDialog, @Inject(MAT_DIALOG_DATA) public data) { }\n claimCodes: ClaimCodeElement[] = [];\n claimButtonDisabled: boolean = true;\n inputClaimCodes: string = \"\";\n body = this.data.body;\n isDone = false;\n claimResult = {};\n isWorking = false;\n\n add(): void {\n var regex = /^[0-9a-zA-Z]{5}-?[0-9a-zA-Z]{5}-?[0-9a-zA-Z]{5}$/i;\n this.inputClaimCodes.split(/[\\s,; ]+/).forEach(element => {\n var claim = element.replace(\";\", \"\").replace(\",\", \"\").trim().toUpperCase();\n if (claim.length > 0) {\n var newClaim = { code: claim, success: null, reason: null, duplicated: false, valid: false, processed: false };\n if (newClaim.code.match(regex)) {\n newClaim.valid = true;\n }\n this.claimCodes.forEach(element => {\n if (element.code == newClaim.code) {\n element.duplicated = true;\n newClaim.duplicated = true;\n }\n })\n this.claimCodes.push(newClaim);\n }\n })\n this.check_issues();\n this.inputClaimCodes = \"\";\n }\n\n edit(claimCode: ClaimCodeElement): void {\n this.inputClaimCodes = claimCode.code;\n var index = this.claimCodes.indexOf(claimCode)\n this.claimCodes.splice(index, 1)\n }\n\n check_issues(): void {\n var issues = {\n invalid: [],\n duplicated: []\n };\n this.claimCodes.forEach(element => {\n if (element.valid == false) {\n issues.invalid.push(element.code);\n }\n if (element.duplicated == true) {\n issues.duplicated.push(element.code);\n }\n })\n if (this.claimCodes.length > 0 && issues.duplicated.length == 0 && issues.invalid.length == 0) {\n this.claimButtonDisabled = false;\n } else {\n this.claimButtonDisabled = true;\n }\n }\n\n remove(claimCode: ClaimCodeElement): void {\n var duplicated_codes = [];\n var index = -1;\n // remove the claim code\n index = this.claimCodes.indexOf(claimCode);\n if (index >= 0) {\n this.claimCodes.splice(index, 1);\n }\n // if the removed claim code has the duplicated flag\n if (claimCode.duplicated) {\n // find other same codes\n this.claimCodes.forEach(element => {\n if (element.code == claimCode.code) {\n duplicated_codes.push(element);\n }\n })\n // if only one other same code, remove the duplicated flash\n if (duplicated_codes.length == 1) {\n index = this.claimCodes.indexOf(duplicated_codes[0]);\n this.claimCodes[index].duplicated = false;\n }\n }\n // check issues for \"claim\" button\n this.check_issues()\n }\n\n // CLAIM NEW CODES\n confirm(): void {\n this.isWorking = true;\n this.isDone = true;\n // Add claim codes to request body\n this.body.claim_codes = [];\n this.claimCodes.forEach(element => {\n this.body.claim_codes.push(element.code)\n })\n // Send request to server\n this._http.post('/api/devices/claim/', this.body).subscribe({\n next: data => {\n // retrieve result data\n this.claimResult = data.results;\n this.claimCodes.forEach(element => {\n element.processed = true;\n var index = -1;\n // if code added to account\n if (this.claimResult[\"added\"].indexOf(element.code) >= 0) {\n element.success = true;\n // if error when adding the code\n } else if (this.claimResult[\"error\"].indexOf(element.code) >= 0) {\n index = this.claimResult[\"error\"].indexOf(element.code);\n element.success = false;\n element.reason = this.claimResult[\"reason\"][index]\n // if code already claimed somewhere\n } else if (this.claimResult[\"duplicated\"].indexOf(element.code) >= 0) {\n element.success = false;\n element.reason = \"Already Claimed\"\n }\n })\n this.isWorking = false;\n },\n error: error => {\n var message: string = \"Unable to create claim the devices... \"\n if (\"error\" in error) { message += error[\"error\"][\"message\"] }\n this.openError(message)\n this.isWorking = false;\n }\n })\n }\n\n\n // EXIT\n cancel(): void {\n this.dialogRef.close();\n }\n // DIALOG BOXES\n // Restart Claim Process\n reset(): void {\n const dialogRef = this._dialog.open(ClaimDialog, {\n data: { body: this.body }\n })\n dialogRef.afterClosed().subscribe(result => {\n this.dialogRef.close();\n })\n }\n // DETAILS\n details(): void {\n console.log(this.claimResult);\n const dialogRef = this._dialog.open(ClaimDetailsDialog, {\n data: this.claimResult\n })\n\n }\n // ERROR\n openError(message: string): void {\n const dialogRef = this._dialog.open(ErrorDialog, {\n data: message\n });\n }\n\n\n}\n\n\n\n","\n

Claim new devices

\n
\n
HINT: you can paste mutliple claim codes separated by a SPACE, a COMMA or a SEMICOLUMN
\n
\n \n Claim Code\n \n \n \n
\n
\n
0\" fxFlex=\"1 1 0\" fxLayout=\"row wrap\" style=\"width: 100%;\">\n \n \n \n \n
\n
\n check_circle\n
\n
\n warning\n
\n
\n warning\n
\n
\n content_copy\n
\n \n \n
\n
\n
\n
\n
\n\n
\n \n \n \n \n \n
","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { Component, OnInit } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { ConnectorService } from '../connector.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ErrorDialog } from './../common/common-error';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-org',\n templateUrl: './org.component.html',\n styleUrls: ['./org.component.css']\n})\nexport class OrgComponent implements OnInit {\n\n headers = {};\n cookies = {};\n host = '';\n self = {};\n search = \"\";\n orgs = [];\n sites = [];\n orgMode: boolean = false;\n selected_org_obj = {\n id: \"\",\n name: \"\"\n };\n org_id: string = \"\";\n site_id: string = \"\";\n me: string = \"\";\n adminMode: boolean = false;\n map = {\n options: {\n scrollwheel: false,\n disableDefaultUI: true,\n draggable: false,\n draggableCursor: \"pointer\",\n clickableIcons: false\n },\n zoom: 12\n }\n\n apiLoaded: Observable;\n claimDisabled: boolean = true;\n topBarLoading = false;\n noSiteToDisplay = false;\n constructor(private _http: HttpClient, private _appService: ConnectorService, public _dialog: MatDialog, private _router: Router) { }\n\n\n ngOnInit() {\n this._appService.headers.subscribe(headers => this.headers = headers)\n this._appService.cookies.subscribe(cookies => this.cookies = cookies)\n this._appService.host.subscribe(host => this.host = host)\n this._appService.self.subscribe(self => this.self = self || {})\n this._appService.org_id.subscribe(org_id => this.org_id = org_id)\n this.me = this.self[\"email\"] || null\n\n var tmp_orgs: string[] = []\n\n // parsing all the orgs/sites from the privileges\n // only orgs with admin/write/installer roles are used\n if (this.self != {} && this.self[\"privileges\"]) {\n this.self[\"privileges\"].forEach(element => {\n if (element[\"role\"] == \"admin\" || element[\"role\"] == \"write\") {\n if (element[\"scope\"] == \"org\") {\n if (tmp_orgs.indexOf(element[\"org_id\"]) < 0) {\n this.orgs.push({ id: element[\"org_id\"], name: element[\"name\"], role: element[\"role\"] })\n tmp_orgs.push(element[\"org_id\"])\n }\n } else if (element[\"scope\"] == \"site\") {\n if (tmp_orgs.indexOf(element[\"org_id\"]) < 0) {\n this.orgs.push({ id: element[\"org_id\"], name: element[\"org_name\"], role: element[\"role\"] })\n tmp_orgs.push(element[\"org_id\"])\n }\n }\n }\n });\n this.orgs = this.sortList(this.orgs, \"name\");\n }\n\n // if only one, using it by default\n if (!this.org_id && this.orgs.length == 1) {\n this.org_id = this.orgs[1][\"id\"]\n }\n // if back button used, retrieving previously selected org\n // or if only one org, loading it automatically\n if (this.org_id) {\n this.orgs.forEach(element => {\n if (element.id == this.org_id) {\n this.selected_org_obj = element;\n this.changeOrg();\n }\n })\n }\n }\n\n // when the user selects a new org\n // disabling the admin mode\n // and loading the sites\n changeOrg() {\n this.loadSites();\n }\n\n // loads the org sites\n loadSites() {\n this.org_id = this.selected_org_obj.id\n this.topBarLoading = true;\n this.claimDisabled = true;\n this.sites = [];\n this._http.post('/api/sites/', { host: this.host, cookies: this.cookies, headers: this.headers, org_id: this.org_id}).subscribe({\n next: data => this.parseSites(data),\n error: error => {\n var message: string = \"There was an error... \"\n if (\"error\" in error) {\n message += error[\"error\"][\"message\"]\n }\n this.topBarLoading = false;\n this.openError(message)\n }\n })\n }\n\n // parse the org sites from HTTP response\n parseSites(data) {\n if (data.sites.length > 0) {\n this.noSiteToDisplay = false;\n this.sites = this.sortList(data.sites, \"name\");\n this.claimDisabled = false;\n } else {\n this.noSiteToDisplay = true;\n }\n this.topBarLoading = false;\n }\n\n\n\n\n // ROUTING FUNCTION\n // used when user wants to claim devices to org\n setOrg(): void {\n this.orgMode = true;\n this.gotoDash(); \n }\n // used when user wants to claim devices to site\n setSite(site): void {\n if (site != null) {\n this.site_id = site.id;\n } else {\n this.site_id = \"\";\n }\n this.orgMode = true;\n this._appService.siteIdSet(this.site_id);\n this.gotoDash();\n }\n // publish variables and go to the dashboard\n gotoDash(): void { \n this._appService.orgModeSet(this.orgMode)\n this._appService.orgIdSet(this.org_id);\n this._router.navigate([\"/dashboard\"]);\n }\n\n\n // COMMON\n sortList(data, attribute) {\n return data.sort(function (a, b) {\n var nameA = a[attribute].toUpperCase(); // ignore upper and lowercase\n var nameB = b[attribute].toUpperCase(); // ignore upper and lowercase\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n })\n }\n\n // DIALOG BOXES\n // ERROR\n openError(message: string): void {\n const dialogRef = this._dialog.open(ErrorDialog, {\n data: message\n });\n }\n}\n","\n
\n
\n \n Organization\n \n \n {{selected_org_obj.name}}\n \n \n {{org.role}}\n {{org.name}}\n \n \n \n\n
\n
\n
\n \n
\n
\n \n \n Please Select an Organization\n \n \n \n
\n You don't have access to any Site in this Organization. Please chose another Organization.\n
\n
\n Only the Sites with \"Administrator\" authorization are listed.\n
\n
\n
\n
\n \n
\n \n {{site.name}}\n \n \n
{{site.address}}
\n
\n
\n
\n \n \n \n Test\n \n \n
\n
\n
\n\n
","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nexport interface ErrorData {\n message: string\n}\n\n@Component({\n selector: 'common-error',\n templateUrl: 'common-error.html',\n})\nexport class ErrorDialog {\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: ErrorData\n ) { }\n ok(): void {\n this.dialogRef.close();\n }\n\n}","

Oops...

\n
\n {{data}}\n
\n
\n \n
","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { HttpClient } from '@angular/common/http';\nimport { FormBuilder, Validators, FormControl } from '@angular/forms';\nimport { Router } from '@angular/router';\n\nimport { MatPaginator } from '@angular/material/paginator';\n\nimport { ErrorDialog } from '../common/common-error';\n\n\nimport { ConnectorService } from '../connector.service';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { interval, Subscription } from 'rxjs';\nimport { element } from 'protractor';\n\n\n// Configuration element from Devices Details\nexport interface DeviceDetailsElement {\n managed: boolean,\n role: string,\n notes: string,\n ip_config: IpConfigElement,\n oob_ip_config: IpConfigElement,\n disable_auto_config: boolean,\n networks: object,\n port_usages: object,\n additional_config_cmds: string[],\n id: string,\n name: string,\n site_id: string,\n org_id: string,\n created_time: number,\n modified_time: number,\n map_id: string | null,\n mac: string,\n serial: string,\n model: string,\n hw_rev: string,\n type: string,\n tag_uuid: string | null,\n tag_id: number | null,\n deviceprofile_id: string | null\n}\n\nexport interface IpConfigElement {\n type: string,\n ip: string | null,\n netmask: string | null,\n gateway: string | null,\n dns: string[] | null,\n dns_suffix: string | null,\n network: string\n}\n\nexport interface PortElement {\n mode: string,\n all_networks: boolean,\n networks: string[],\n port_network: string,\n port_auth: string,\n enable_mac_auth: string,\n guest_network: string,\n bypass_auth_when_server_down: boolean,\n speed: string,\n duplex: string,\n disable_autoneg: boolean,\n mac_limit: number,\n stp_edge: boolean,\n mtu: number,\n disabled: boolean,\n poe_disabled: boolean,\n description: string,\n voip_network: string,\n storm_control: {}\n}\n\n\n// Configuration Elements derived from the site\nexport interface DerivedElement {\n additional_config_cmds: string[],\n network: object,\n port_usages: object,\n switch_matching: SwitchMatchingElement,\n vars: object\n\n}\nexport interface SwitchMatchingElement {\n element: boolean,\n riles: object[]\n}\n\n// Device Elements for the list\nexport interface DeviceElement {\n id: string,\n site_id: string,\n org_id: string,\n mac: string,\n vc_mac: string,\n model: string,\n type: string,\n serial: string,\n status: string,\n members: object[]\n}\n\nexport interface MistDevices {\n results: DeviceElement[];\n total: number;\n limit: number;\n page: number;\n}\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.css']\n})\n\n\nexport class DashboardComponent implements OnInit {\n\n frmPort = this._formBuilder.group({\n mode: \"access\",\n all_networks: false,\n networks: [],\n port_network: \"default\",\n port_auth: \"\",\n enable_mac_auth: \"\",\n guest_network: \"\",\n bypass_auth_when_server_down: false,\n speed: [\"auto\"],\n duplex: [\"auto\"],\n autoneg: true,\n mac_limit: 0,\n stp_edge: true,\n mtu: 1514,\n enabled: true,\n poe: true,\n description: \"\",\n voip_network: \"\",\n storm_control: {}\n })\n\n defaultConfig = {\n mode: \"access\",\n all_networks: false,\n networks: [],\n port_network: \"\",\n port_auth: \"\",\n enable_mac_auth: \"\",\n guest_network: \"\",\n bypass_auth_when_server_down: false,\n speed: \"auto\",\n duplex: \"auto\",\n disable_autoneg: false,\n mac_limit: 0,\n stp_edge: true,\n mtu: 1514,\n disabled: false,\n poe_disabled: false,\n description: \"\",\n voip_network: \"\",\n storm_control: {}\n }\n\n headers = {};\n cookies = {};\n host = '';\n self = {};\n search = \"\";\n orgs = [];\n sites = [];\n maps = [];\n org_id: string = \"\";\n orgMode: boolean = false;\n site_id: string = \"__any__\";\n me: string = \"\";\n\n topBarLoading = false;\n deviceLoading = false;\n\n editingDevice = null;\n editingDeviceSettings = null;\n editingPorts = [];\n editingPortNames = [];\n editingPortsStatus = {}\n displayedPorts = {}\n\n filteredDevicesDatabase: MatTableDataSource | null;\n devices: DeviceElement[] = []\n\n resultsLength = 0;\n displayedColumns: string[] = [\"device\"];\n private _subscription: Subscription\n\n @ViewChild(MatPaginator) paginator: MatPaginator;\n\n constructor(private _router: Router, private _http: HttpClient, private _appService: ConnectorService, public _dialog: MatDialog, private _formBuilder: FormBuilder, private _snackBar: MatSnackBar) { }\n\n //////////////////////////////////////////////////////////////////////////////\n ///// INIT\n //////////////////////////////////////////////////////////////////////////////\n\n ngOnInit() {\n const source = interval(60000);\n\n this._appService.headers.subscribe(headers => this.headers = headers)\n this._appService.cookies.subscribe(cookies => this.cookies = cookies)\n this._appService.host.subscribe(host => this.host = host)\n this._appService.self.subscribe(self => this.self = self || {})\n this._appService.org_id.subscribe(org_id => this.org_id = org_id)\n this._appService.site_id.subscribe(site_id => this.site_id = site_id)\n this._appService.orgMode.subscribe(orgMode => this.orgMode = orgMode)\n \n this.getDevices();\n\n this._subscription = source.subscribe(s => this.getDevices());\n\n }\n\n ngOnDestroy() {\n this._subscription.unsubscribe();\n }\n\n\n //////////////////////////////////////////////////////////////////////////////\n ///// LOAD DEVICE LIST\n //////////////////////////////////////////////////////////////////////////////\n\n getDevices() {\n var body = null\n body = { host: this.host, cookies: this.cookies, headers: this.headers, site_id: this.site_id, full: true }\n\n if (body) {\n this.topBarLoading = true;\n this._http.post('/api/devices/', body).subscribe({\n next: data => {\n var tmp: DeviceElement[] = []\n data[\"results\"].forEach(element => {\n if (this.editingDevice && this.editingDevice.mac == element.mac) {\n this.editingDevice = element;\n }\n });\n this.filteredDevicesDatabase = new MatTableDataSource(data[\"results\"]);\n\n this.filteredDevicesDatabase.paginator = this.paginator;\n this.topBarLoading = false;\n },\n error: error => {\n var message: string = \"There was an error... \"\n if (\"error\" in error) { message += error[\"error\"][\"message\"] }\n this.openError(message)\n }\n })\n\n }\n }\n\n //////////////////////////////////////////////////////////////////////////////\n ///// EDIT DEVICE\n //////////////////////////////////////////////////////////////////////////////\n editDevice(device: DeviceElement): void {\n if (device == this.editingDevice) {\n this._discardDevice();\n }\n else {\n this._discardDevice();\n this.editingDevice = device;\n this._getDeviceSettings()\n this._getPortStatus()\n }\n }\n\n _getDeviceSettings(): void {\n this.deviceLoading = true\n this._http.post('/api/devices/settings/', {\n host: this.host,\n cookies: this.cookies,\n headers: this.headers,\n site_id: this.site_id,\n device_id: this.editingDevice.id\n }).subscribe({\n next: data => {\n this.editingDeviceSettings = data\n this.displayedPorts = data.ports\n this.deviceLoading = false\n this.editingPorts = []\n this.editingPortNames.forEach(element => {\n this.editingPorts.push(this.editingDeviceSettings.ports[element])\n })\n },\n error: error => {\n this.deviceLoading = false\n var message: string = \"Unable to load settings for the Device \" + this.editingDevice.mac + \"... \"\n if (\"error\" in error) { message += error[\"error\"][\"message\"] }\n this.openError(message)\n }\n })\n }\n\n\n _discardDevice(): void {\n this.editingDevice = null;\n this.editingDeviceSettings = null;\n this.editingPorts = [];\n this.editingPortNames = [];\n this.displayedPorts = {};\n this._discardPorts()\n }\n \n powerDraw(member) {\n var percentage = (member.poe.power_draw / member.poe.max_power) * 100\n return percentage\n }\n \n //////////////////////////////////////////////////////////////////////////////\n ///// Ports Status\n //////////////////////////////////////////////////////////////////////////////\n \n _getPortStatus(): void {\n this._http.post('/api/devices/portstatus/', {\n host: this.host,\n cookies: this.cookies,\n headers: this.headers,\n site_id: this.site_id,\n device_mac: this.editingDevice.mac\n }).subscribe({\n next: data => {\n this.editingPortsStatus = data.result\n },\n error: error => {\n this.deviceLoading = false\n var message: string = \"Unable to load ports status for the Device \" + this.editingDevice.mac + \"... \"\n if (\"error\" in error) { message += error[\"error\"][\"message\"] }\n this.openError(message)\n }\n })\n }\n //////////////////////////////////////////////////////////////////////////////\n ///// EDIT Port\n //////////////////////////////////////////////////////////////////////////////\n selectPortFromSwitchView(portName): void {\n let port = this.editingDeviceSettings.ports[portName]\n this.selectPort(port)\n }\n \n selectPort(port): void {\n if (this.editingPorts.includes(port)) {\n this._deletePort(port);\n if (this.editingPorts.length == 1) {\n this._setPortFields(this.editingPorts[0])\n }\n }\n else {\n this._addPort(port);\n if (this.editingPorts.length == 1) {\n this._setPortFields(this.editingPorts[0])\n } else if (this.editingPorts.length == 2) {\n this._setDefaultPortFielts()\n }\n }\n }\n \n // ADD or REMOVE ports from the editing list\n _addPort(port): void {\n this.editingPorts.push(port);\n this.editingPortNames.push(port.port)\n }\n _deletePort(port): void {\n let index = this.editingPorts.indexOf(port)\n this.editingPorts.splice(index, 1)\n let indexName = this.editingPortNames.indexOf(port.port)\n this.editingPortNames.splice(indexName, 1)\n if (this.editingPorts.length == 0) {\n this._discardPorts()\n }\n }\n \n savePorts(): void {\n this.editingPorts.forEach(element => {\n element[\"new_conf\"] = {\n \"mode\": this.frmPort.get(\"mode\").value,\n \"all_networks\": this.frmPort.get(\"all_networks\").value,\n \"networks\": this.frmPort.get(\"networks\").value,\n \"port_network\": this.frmPort.get(\"port_network\").value,\n \"port_auth\": this.frmPort.get(\"port_auth\").value,\n \"enable_mac_auth\": this.frmPort.get(\"enable_mac_auth\").value,\n \"guest_network\": this.frmPort.get(\"guest_network\").value,\n \"bypass_auth_when_server_down\": this.frmPort.get(\"bypass_auth_when_server_down\").value,\n \"autoneg\": this.frmPort.get(\"autoneg\").value,\n \"mac_limit\": this.frmPort.get(\"mac_limit\").value,\n \"stp_edge\": this.frmPort.get(\"stp_edge\").value,\n \"mtu\": this.frmPort.get(\"mtu\").value,\n \"disabled\": this.frmPort.get(\"enabled\").value == false,\n \"poe_disabled\": this.frmPort.get(\"poe\").value == false,\n \"description\": this.frmPort.get(\"description\").value,\n \"voip_network\": this.frmPort.get(\"voip_network\").value,\n \"storm_control\": this.frmPort.get(\"storm_control\").value,\n \"duplex\": this.frmPort.get(\"duplex\").value,\n \"speed\": this.frmPort.get(\"speed\").value\n }\n })\n if (this.frmPort.valid) {\n this.topBarLoading = true\n var body = {\n host: this.host,\n cookies: this.cookies,\n headers: this.headers,\n site_id: this.site_id,\n org_id: this.org_id,\n port_config: this.editingPorts,\n device_id: this.editingDevice.id\n }\n this._http.post('/api/devices/update/', body).subscribe({\n next: data => {\n this.topBarLoading = false\n //this.updateFrmDeviceValues(data.result)\n this._getDeviceSettings()\n this.openSnackBar(\"Device \" + this.editingDevice.mac + \" successfully updated\", \"Done\")\n },\n error: error => {\n this.topBarLoading = false\n var message: string = \"Unable to save changes on Device \" + this.editingDevice.mac + \"... \"\n if (\"error\" in error) { message += error[\"error\"][\"message\"] }\n this.openError(message)\n }\n })\n }\n }\n // Reset the ports selection and form\n _discardPorts(): void {\n this.editingPorts = []\n this.editingPortNames = []\n this.frmPort.reset()\n }\n\n // Set Port Form values\n _setDefaultPortFielts(): void {\n this.updateFrmDeviceValues(this.defaultConfig)\n }\n _setPortFields(port): void {\n var port_usage = \"\"\n // copy default values\n var config = { ...this.defaultConfig }\n // getting the port_usage profile name at the switch level, and, if none, at the site level\n if (\"usage\" in port.device) {\n port_usage = port.device.usage\n } else if (\"usage\" in port.site) {\n port_usage = port.site.usage\n }\n // if there is a configured port_usage, retrieving its configuration at the switch level, and\n // if none, at the site level\n if (port_usage) {\n var port_config = {}\n if (port_usage in this.editingDeviceSettings.device.port_usages) {\n port_config = this.editingDeviceSettings.device.port_usages[port_usage]\n }\n else if (port_usage in this.editingDeviceSettings.site.port_usages) {\n port_config = this.editingDeviceSettings.site.port_usages[port_usage]\n }\n // setting the config object with the port_usage settings\n for (var key in port_config) {\n config[key] = port_config[key]\n }\n }\n this.updateFrmDeviceValues(config)\n }\n\n canbeChecked(portName): boolean {\n return this.editingPortNames.includes(portName);\n }\n //////////////////////////////////////////////////////////////////////////////\n ///// COMMON\n //////////////////////////////////////////////////////////////////////////////\n updateFrmDeviceValues(config: PortElement): void {\n this.frmPort.reset()\n this.frmPort.controls[\"port_network\"].setValue(config.port_network)\n this.frmPort.controls[\"autoneg\"].setValue(config.disable_autoneg == false)\n this.frmPort.controls[\"enabled\"].setValue(config.disabled == false)\n this.frmPort.controls[\"poe\"].setValue(config.poe_disabled == false)\n if (config.disable_autoneg == true) {\n this.frmPort.controls[\"duplex\"] = new FormControl({ value: config.duplex, disabled: true })\n this.frmPort.controls[\"speed\"] = new FormControl({ value: config.speed, disabled: true })\n } else {\n this.frmPort.controls[\"speed\"].setValue(config.speed)\n this.frmPort.controls[\"duplex\"].setValue(config.duplex)\n }\n }\n\n\n sortList(data, attribute) {\n return data.sort(function (a, b) {\n var nameA = a[attribute].toUpperCase(); // ignore upper and lowercase\n var nameB = b[attribute].toUpperCase(); // ignore upper and lowercase\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n })\n }\n\n applyFilter(event: Event) {\n const filterValue = (event.target as HTMLInputElement).value.trim().toLowerCase();\n this.filteredDevicesDatabase.filter = filterValue.trim().toLowerCase();\n\n if (this.filteredDevicesDatabase.paginator) {\n this.filteredDevicesDatabase.paginator.firstPage();\n }\n }\n\n applyPortFilter(event: Event) {\n const filterValue = (event.target as HTMLInputElement).value.trim().toLowerCase();\n this.displayedPorts = {}\n if (filterValue) {\n for (var key in this.editingDeviceSettings.ports) {\n if (key.includes(filterValue)) {\n this.displayedPorts[key] = this.editingDeviceSettings.ports[key]\n }\n }\n } else {\n this.displayedPorts = this.editingDeviceSettings.ports\n }\n }\n\n back(): void {\n this._router.navigate([\"/select\"]);\n }\n\n //////////////////////////////////////////////////////////////////////////////\n ///// DIALOG BOXES\n //////////////////////////////////////////////////////////////////////////////\n // ERROR\n openError(message: string): void {\n const dialogRef = this._dialog.open(ErrorDialog, {\n data: message\n });\n }\n\n // SNACK BAR\n openSnackBar(message: string, action: string) {\n this._snackBar.open(message, action, {\n duration: 5000,\n horizontalPosition: \"center\",\n verticalPosition: \"top\",\n });\n }\n}\n\n\n","\n \n
\n \n
\n
\n\n\n\n
\n Please select a device...\n
\n\n
\n \n
\n\n
\n
\n \n Filter\n \n \n \n
\n\n\n
\n
\n \n
\n
\n
\n {{editingDevice.model}}\n
\n
\n
\n {{index}}
\n
\n
\n RJ45\n
\n
\n
\n
\n
\n
\n
\n\n
\n SFP\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n\n
\n
\n
\n \n Switch Management\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
VLANtypeIP AddressNetmaskGateway
In Band{{editingDeviceSettings.device.ip_config.network}}{{editingDeviceSettings.device.ip_config.type}}{{editingDeviceSettings.device.ip_config.ip}}{{editingDeviceSettings.device.ip_config.netmask}}{{editingDeviceSettings.device.ip_config.gateway}}
Out Band{{editingDeviceSettings.device.oob_ip_config.network}}{{editingDeviceSettings.device.oob_ip_config.type}}{{editingDeviceSettings.device.oob_ip_config.ip}}{{editingDeviceSettings.device.oob_ip_config.netmask}}{{editingDeviceSettings.device.oob_ip_config.gateway}}
\n
\n
\n
\n \n Switch Status\n \n
\n
\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 0\">\n \n \n \n
MEMBER #{{index}}
VC ROLE{{member.vc_role}}
MODEL{{member.model}}
SERIAL{{member.serial}}
MAC ADDRESS{{member.mac}}
POE{{member.poe.power_draw}} W
POE Budget{{member.poe.max_power}} W
TEMP\n
\n
\n \n check_circle\n
\n
\n \n cancel\n \n
\n
\n {{temp.name}}: {{temp.celsius}} °C\n
\n
\n
FAN\n
\n
\n \n check_circle\n
\n
\n \n cancel\n \n
\n
\n {{fan.name}}\n
\n
\n
\n
\n
\n
\n\n
\n
\n\n
= 1\">\n
\n \n {{editingPorts[0].port}}\n 1\" class=\"no-cursor\" style=\"color: black; font-weight: light; width: 20em; text-align: center;\" fxFlex=\"auto\">Multi\n Selection\n \n
\n
\n
\n
\n Port Status\n \n Enabled \n Disabled \n \n
\n
\n PoE\n \n Enabled \n Disabled \n \n
\n
\n \n VLAN\n \n None\n \n {{vlan.key}} ({{vlan.value.vlan_id}})\n \n \n \n\n
\n Auto-Negociation\n \n Enabled \n Disabled \n \n
\n
\n\n \n SPEED\n \n Auto\n 10M\n 100M\n 1G\n 2.5G\n 5G\n \n \n\n \n DUPLEX\n \n Auto\n Full\n Half\n \n \n
\n\n
\n
\n
= 1\">\n \n \n
\n
\n
\n
","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n title = 'Mist Switch Operator';\n\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n \"Mist\n Mist Switch Operator\n\n\n\n\n \n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { HttpClientModule, HttpClientJsonpModule } from '@angular/common/http';\n\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormsModule } from '@angular/forms';\n\nimport { GoogleMapsModule } from '@angular/google-maps';\n\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatDialogModule } from '@angular/material/dialog'\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { Router } from '@angular/router';\n\nimport { StartsWithPipe, MapToArrayPipe } from '@src/app/common/common-pipes';\n\n\nimport { AppRoutingModule } from '@src/app/app-routing.module';\nimport { AppComponent } from '@src/app/app.component';\nimport { LoginComponent } from '@src/app/login/login.component';\nimport { TwoFactorDialog } from '@src/app/login/login-2FA';\nimport { DashboardComponent } from '@src/app/dashboard/dashboard.component';\nimport { ClaimDialog } from '@src/app/common/common-claim';\nimport { UnclaimDialog } from '@src/app/common/common-unclaim';\nimport { ErrorDialog } from '@src/app/common/common-error';\nimport { WarningDialog } from '@src/app/common/common-warning';\nimport { ClaimDetailsDialog } from '@src/app/common/common-claim-details';\nimport { OrgComponent } from '@src/app/org/org.component';\nimport { CommonComponent } from '@src/app/common/common.component';\nimport { AutoGeneratedComponent } from '@src/app/auto-generated/auto-generated.component';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { MatGoogleMapsAutocompleteModule } from '@angular-material-extensions/google-maps-autocomplete';\nimport { AgmCoreModule } from '@agm/core';\n\n@NgModule({\n declarations: [\n AppComponent,\n LoginComponent, TwoFactorDialog,\n DashboardComponent, ClaimDialog, UnclaimDialog, ErrorDialog, WarningDialog, ClaimDetailsDialog,\n OrgComponent,\n CommonComponent,\n StartsWithPipe,\n MapToArrayPipe,\n AutoGeneratedComponent\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n BrowserAnimationsModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n GoogleMapsModule,\n HttpClientModule,\n HttpClientJsonpModule,\n MatButtonModule,\n MatChipsModule,\n MatSelectModule,\n MatFormFieldModule,\n MatInputModule,\n MatStepperModule,\n MatDividerModule,\n MatCardModule,\n MatGridListModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatSlideToggleModule,\n MatTableModule,\n MatCheckboxModule,\n MatProgressBarModule,\n MatToolbarModule,\n MatTooltipModule,\n MatPaginatorModule,\n MatDialogModule,\n FormsModule,\n MatIconModule,\n MatSnackBarModule,\n NgbModule,\n MatGoogleMapsAutocompleteModule,\n AgmCoreModule.forRoot()\n ],\n providers: [{\n provide: MatRadioModule,\n useValue: { color: 'accent' },\n }],\n bootstrap: [AppComponent]\n})\nexport class AppModule {\n // Diagnostic only: inspect router configuration\n constructor(router: Router) {\n // Use a custom replacer to display function names in the route configs\n const replacer = (key, value) => (typeof value === 'function') ? value.name : value;\n }\n}","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nexport interface WarningData {\n text: string,\n vlan_check: [\"\"],\n bigWarning: boolean\n}\n\n@Component({\n selector: 'common-warning',\n templateUrl: 'common-warning.html',\n})\nexport class WarningDialog {\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: WarningData\n ) { }\n ok(): void {\n this.dialogRef.close(true);\n }\n cancel(): void {\n this.dialogRef.close();\n }\n\n}","

Be careful

\n
\n
{{data.text}}
\n
\n
Details:
\n
    \n
  • {{element.reason}}
  • \n
\n
\n
\n
Warning:
\n
Changes may have impact on existing users, especially for users using PSK without VLAN.\n
\n
\n
\n\n
\n \n \n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-common',\n templateUrl: './common.component.html',\n styleUrls: ['./common.component.css']\n})\nexport class CommonComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","

common works!

\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'common-claim-details',\n templateUrl: 'common-claim-details.html',\n})\nexport class ClaimDetailsDialog {\n constructor(\n public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data) { }\n details = this.data;\n \n ngOnInit(){\n console.log(this.details)\n }\n cancel(): void {\n this.dialogRef.close();\n }\n}","

Claim Result Details

\n
\n
{{details | json}}
\n
\n\n
\n \n
","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConnectorService {\n private headersSource = new BehaviorSubject({});\n private cookiesSource = new BehaviorSubject({});\n private hostSource = new BehaviorSubject('');\n private selfSource = new BehaviorSubject({});\n private orgIdSource = new BehaviorSubject(\"\");\n private siteIdSource = new BehaviorSubject(\"\");\n private orgModeSource = new BehaviorSubject(false);\n private googleApiKey = new BehaviorSubject(\"\");\n\n headers = this.headersSource.asObservable();\n host = this.hostSource.asObservable();\n cookies = this.cookiesSource.asObservable();\n self = this.selfSource.asObservable();\n org_id = this.orgIdSource.asObservable();\n site_id = this.siteIdSource.asObservable();\n orgMode = this.orgModeSource.asObservable();\n google_api_key = this.googleApiKey.asObservable();\n\n constructor() { }\n\n headersSet(data: {}) {\n this.headersSource.next(data)\n }\n cookiesSet(data: {}) {\n this.cookiesSource.next(data)\n }\n hostSet(data: string) {\n this.hostSource.next(data)\n }\n selfSet(data: {}) {\n this.selfSource.next(data)\n }\n orgIdSet(data: string){\n this.orgIdSource.next(data)\n }\n siteIdSet(data:string){\n this.siteIdSource.next(data)\n }\n orgModeSet(data:boolean){\n this.orgModeSource.next(data)\n }\n googleApiKeySet(data:string){\n this.googleApiKey.next(data)\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nexport interface DeviceElement {\n mac: string;\n model: string;\n serial: string;\n connected: boolean;\n type: string; \n deviceprofile_name: string;\n height: Int16Array;\n map_id: string;\n name: string;\n orientation: Int16Array;\n site_id: string;\n site_name: string;\n x:Int16Array;\n y: Int16Array;\n }\n\n@Component({\n selector: 'common-unclaim',\n templateUrl: 'common-unclaim.html',\n})\nexport class UnclaimDialog {\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: DeviceElement\n ) { }\n\n confirm(device_mac) {\n this.dialogRef.close(device_mac)\n }\n cancel(): void {\n this.dialogRef.close();\n }\n\n}","

Delete Device

\n
\n This will delete the Device {{data.mac}}. Do you confirm?\n
\n
\n \n \n
","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'startsWith' })\nexport class StartsWithPipe implements PipeTransform {\n transform(fullText: string, textMatch: string): boolean {\n return fullText.startsWith(textMatch);\n }\n}\n\n@Pipe({ name: 'mapToArray' })\nexport class MapToArrayPipe implements PipeTransform {\n transform(value, args: string[]): any {\n let arr = [];\n for (let key in value) {\n arr.push({ key: key, value: value[key] });\n }\n return arr;\n }\n}","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\n\nimport { LoginComponent } from './login/login.component';\nimport { DashboardComponent } from './dashboard/dashboard.component';\nimport { OrgComponent } from './org/org.component';\n\n\nconst routes: Routes = [\n { path: 'login', component: LoginComponent },\n { path: 'select', component: OrgComponent },\n { path: 'dashboard', component: DashboardComponent },\n { path: '', redirectTo: '/login', pathMatch: 'full' }, // redirect to `first-component`\n { path: '**', redirectTo: '/login' }, // redirect to `first-component`\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { HttpClient } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { FormBuilder } from '@angular/forms';\nimport { ConnectorService } from '../connector.service';\nimport {PlatformLocation} from '@angular/common';\nimport { TwoFactorDialog } from './login-2FA';\n\nexport interface TwoFactorData {\n twoFactor: string;\n}\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.css']\n})\n\n\nexport class LoginComponent implements OnInit {\n\n constructor(private _formBuilder: FormBuilder, private _http: HttpClient, private _router: Router, private _appService: ConnectorService, public _dialog: MatDialog, private _platformLocation: PlatformLocation\n ) { }\n\n\n github_url: string;\n docker_url: string;\n disclaimer: string;\n host = null;\n headers = {};\n cookies = {};\n self = {};\n loading: boolean;\n hosts = [\n { value: 'api.mist.com', viewValue: 'US - manage.mist.com' },\n { value: 'api.eu.mist.com', viewValue: 'EU - manage.eu.mist.com' },\n { value: 'api.gc1.mist.com', viewValue: 'GCP - manage.gc1.mist.com' }\n ];\n\n // LOGIN FORM\n frmStepLogin = this._formBuilder.group({\n host: [''],\n credentials: this._formBuilder.group({\n email: [''],\n password: [''],\n }),\n token: [''],\n });\n error_mess = {\n \"credentials\": \"\",\n \"token\": \"\"\n }\n\n\n //// INIT ////\n ngOnInit(): void {\n this.frmStepLogin = this._formBuilder.group({\n host: ['api.mist.com'],\n credentials: this._formBuilder.group({\n email: [''],\n password: [''],\n }),\n token: [\"\"],\n });\n this._http.get('/api/gap').subscribe({\n next: data => this._appService.googleApiKeySet(data.gap),\n error: error => console.error(\"Unable to load the Google API Key... Maps won't be available...\") \n })\n this._http.get(\"/api/disclaimer\").subscribe({\n next: data => {\n if (data.disclaimer) this.disclaimer = data.disclaimer;\n if (data.github_url) this.github_url = data.github_url;\n if (data.docker_url) this.docker_url = data.docker_url;\n }\n })\n }\n\n //// COMMON ////\n check_host(): boolean {\n if (this.frmStepLogin.value.host != '') {\n return true;\n } else {\n return false;\n }\n }\n\n // RESET AUTHENTICATION FORM\n reset_response(): void {\n this.host = null;\n this._appService.headersSet({});\n this._appService.cookiesSet({});\n this._appService.selfSet({});\n this._appService.hostSet(this.host);\n this.reset_error_mess();\n }\n reset_error_mess(): void{\n this.error_mess = {\n \"credentials\": \"\",\n \"token\": \"\"\n }\n }\n\n // PARSE AUTHENTICATION RESPONSE FROM SERVER\n parse_response(data): void {\n if (\"error\" in data) {\n this.loading = false;\n this.error_mess[\"username\"] = data.error;\n } else if (\"data\" in data) {\n if (\"detail\" in data.data) {\n this.error_message(data[\"method\"], data.data.detail);\n } else if (\"two_factor_required\" in data.data && \"two_factor_passed\" in data.data) {\n if (data.data[\"two_factor_required\"] == false) {\n this.authenticated(data)\n } else if (data.data[\"two_factor_passed\"] == true) {\n this.authenticated(data)\n } else {\n this.open2FA()\n }\n } else {\n this.authenticated(data)\n }\n }\n }\n\n // WHEN AUTHENTICATION IS NOT OK\n error_message(method, message): void {\n this.loading = false;\n this.error_mess[method] = message;\n }\n\n\n // WHEN AUTHENTICATION IS OK\n authenticated(data): void {\n this._appService.headersSet(data.headers);\n this._appService.cookiesSet(data.cookies);\n this._appService.hostSet(data.host);\n this._appService.selfSet(data.data)\n this.loading = false; \n this._router.navigate(['/select']);\n }\n\n //// AUTHENTICATION ////\n submitCredentials(): void {\n this.reset_response();\n if (this.check_host()) {\n this.loading = true;\n this._http.post('/api/login/', { host: this.frmStepLogin.value.host, email: this.frmStepLogin.value.credentials.email, password: this.frmStepLogin.value.credentials.password }).subscribe({\n next: data => this.parse_response(data),\n error: error => this.error_message(\"credentials\", error.error.message) \n })\n }\n }\n submitToken(): void {\n this.reset_response();\n if (this.check_host()) {\n this.loading = true;\n this._http.post('/api/login/', { host: this.frmStepLogin.value.host, token: this.frmStepLogin.value.token }).subscribe({\n next: data => this.parse_response(data),\n error: error => this.error_message(\"credentials\", error.error.message)\n })\n }\n }\n submit2FA(twoFactor: number): void {\n if (this.check_host()) {\n this.loading = true;\n this._http.post('/api/login/', { host: this.frmStepLogin.value.host, email: this.frmStepLogin.value.credentials.email, password: this.frmStepLogin.value.credentials.password, two_factor: twoFactor }).subscribe({\n next: data => this.parse_response(data),\n error: error => this.error_message(\"credentials\", error.error.message) \n })\n }\n }\n\n //// DIALOG BOX ////\n open2FA(): void {\n const dialogRef = this._dialog.open(TwoFactorDialog, {});\n dialogRef.afterClosed().subscribe(result => {\n this.submit2FA(result)\n });\n }\n}","\n\n
\n
\n
\n
\n \n Mist Cloud\n \n \n {{host.viewValue}}\n \n \n \n
\n
\n \n \n \n
\n\n
\n\n
\n

Access with Login/Password

\n \n Email\n \n \n\n \n Password\n \n \n
\n {{error_mess.credentials}}\n
\n
\n \n
\n
\n \n \n \n
\n
\n

Access with API Token

\n \n API Token\n \n \n
\n {{error_mess.token}}\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n {{disclaimer}}\n
\n
\n
\n \n \n
","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"],"sourceRoot":"webpack:///"} \ No newline at end of file diff --git a/django_app/mso/static/main-es5.js b/django_app/mso/static/main-es5.js index 1bde495..aa0a0bb 100644 --- a/django_app/mso/static/main-es5.js +++ b/django_app/mso/static/main-es5.js @@ -5939,7 +5939,7 @@ function LoginComponent_mat_option_9_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "mat-option", 24); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "mat-option", 27); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](1); @@ -5947,21 +5947,21 @@ } if (rf & 2) { - var host_r3 = ctx.$implicit; + var host_r4 = ctx.$implicit; - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("value", host_r3.value); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("value", host_r4.value); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate1"](" ", host_r3.viewValue, " "); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate1"](" ", host_r4.viewValue, " "); } } function LoginComponent_div_51_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 25); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 28); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "div", 26); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "div", 29); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](2, "mat-spinner"); @@ -5971,18 +5971,36 @@ } } - function LoginComponent_div_52_Template(rf, ctx) { + function LoginComponent_a_56_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 27); - - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "a", 28); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "a", 30); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](2, "img", 29); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](1, "img", 31); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); + } + + if (rf & 2) { + var ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); + + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpropertyInterpolate"]("href", ctx_r2.github_url, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsanitizeUrl"]); + } + } + + function LoginComponent_a_57_Template(rf, ctx) { + if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "a", 30); + + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](1, "img", 32); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } + + if (rf & 2) { + var ctx_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); + + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpropertyInterpolate"]("href", ctx_r3.docker_url, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsanitizeUrl"]); + } } var LoginComponent = /*#__PURE__*/function () { @@ -5999,8 +6017,6 @@ this.headers = {}; this.cookies = {}; this.self = {}; - this.show_github_fork_me = false; - this.hostnames_to_show_github_fork_me = ["mso.mist-lab.fr"]; this.hosts = [{ value: 'api.mist.com', viewValue: 'US - manage.mist.com' @@ -6032,10 +6048,6 @@ value: function ngOnInit() { var _this11 = this; - if (this.hostnames_to_show_github_fork_me.indexOf(this._platformLocation.hostname) >= 0) { - this.show_github_fork_me = true; - } - this.frmStepLogin = this._formBuilder.group({ host: ['api.mist.com'], credentials: this._formBuilder.group({ @@ -6053,6 +6065,14 @@ return console.error("Unable to load the Google API Key... Maps won't be available..."); } }); + + this._http.get("/api/disclaimer").subscribe({ + next: function next(data) { + if (data.disclaimer) _this11.disclaimer = data.disclaimer; + if (data.github_url) _this11.github_url = data.github_url; + if (data.docker_url) _this11.docker_url = data.docker_url; + } + }); } //// COMMON //// }, { @@ -6229,9 +6249,9 @@ LoginComponent.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: LoginComponent, selectors: [["app-login"]], - decls: 53, - vars: 9, - consts: [[1, "card-outer"], [1, "login-form", 3, "formGroup"], ["fxLayout", "column", 1, "login-form-outer", 3, "formGroup"], [1, "login-form-inner"], ["fxLayout", "column", 1, "login-step"], ["appearance", "outline"], ["formControlName", "host"], [3, "value", 4, "ngFor", "ngForOf"], ["fxLayout", "row", 1, "login-form-or"], ["mat-fab", "", "color", "accent", "aria-label", "AND", 1, "disable-click"], ["fxLayout", "row", 1, "login-step"], ["formGroupName", "credentials", "fxLayout", "column", 1, "login-form-inputs"], ["matInput", "", "formControlName", "email", "type", "email"], ["matInput", "", "type", "password", "formControlName", "password", 3, "keydown.enter"], [2, "margin-bottom", "1em", "min-height", "20px"], [2, "color", "red", "font-weight", "normal"], ["mat-raised-button", "", "color", "primary", 3, "click"], ["fxLayout", "column", 1, "login-form-or"], [3, "vertical"], ["mat-fab", "", "color", "accent", "aria-label", "OR", 1, "disable-click"], ["fxLayout", "column", 1, "login-form-inputs"], ["type", "text", "matInput", "", "formControlName", "token", 3, "keydown.enter"], ["class", "loading", "fxLayout", "row", 4, "ngIf"], ["class", "github-fork-me", 4, "ngIf"], [3, "value"], ["fxLayout", "row", 1, "loading"], ["fxLayout", "column"], [1, "github-fork-me"], ["href", "https://github.com/tmunzer/mist_claim_web_ui", "target", "_blank", 1, "github-fork-me"], ["loading", "lazy", "width", "149", "height", "149", "src", "https://github.blog/wp-content/uploads/2008/12/forkme_right_red_aa0000.png?resize=149%2C149", "alt", "Fork me on GitHub", "data-recalc-dims", "1", 1, "attachment-full", "size-full"]], + decls: 58, + vars: 11, + consts: [[1, "card-outer"], [1, "login-form", 3, "formGroup"], ["fxLayout", "column", 1, "login-form-outer", 3, "formGroup"], [1, "login-form-inner"], ["fxLayout", "column", 1, "login-step"], ["appearance", "outline"], ["formControlName", "host"], [3, "value", 4, "ngFor", "ngForOf"], ["fxLayout", "row", 1, "login-form-or"], ["mat-fab", "", "color", "accent", "aria-label", "AND", 1, "disable-click"], ["fxLayout", "row", 1, "login-step"], ["formGroupName", "credentials", "fxLayout", "column", 1, "login-form-inputs"], ["matInput", "", "formControlName", "email", "type", "email"], ["matInput", "", "type", "password", "formControlName", "password", 3, "keydown.enter"], [2, "margin-bottom", "1em", "min-height", "20px"], [2, "color", "red", "font-weight", "normal"], ["mat-raised-button", "", "color", "primary", 3, "click"], ["fxLayout", "column", 1, "login-form-or"], [3, "vertical"], ["mat-fab", "", "color", "accent", "aria-label", "OR", 1, "disable-click", 2, "margin-bottom", "4em"], ["fxLayout", "column", 1, "login-form-inputs"], ["appearance", "outline", 2, "padding", "0"], ["type", "text", "matInput", "", "formControlName", "token", 3, "keydown.enter"], ["class", "loading", "fxLayout", "row", 4, "ngIf"], [1, "disclaimer"], [1, "source"], ["target", "_blank", 3, "href", 4, "ngIf"], [3, "value"], ["fxLayout", "row", 1, "loading"], ["fxLayout", "column"], ["target", "_blank", 3, "href"], ["src", "assets/github.png"], ["src", "assets/docker.png"]], template: function LoginComponent_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "mat-card", 0); @@ -6362,7 +6382,7 @@ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](41, "mat-form-field", 5); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](41, "mat-form-field", 21); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](42, "mat-label"); @@ -6370,7 +6390,7 @@ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](44, "input", 21); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](44, "input", 22); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("keydown.enter", function LoginComponent_Template_input_keydown_enter_44_listener() { return ctx.submitToken(); @@ -6406,17 +6426,33 @@ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](51, LoginComponent_div_51_Template, 3, 0, "div", 22); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](51, LoginComponent_div_51_Template, 3, 0, "div", 23); + + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); + + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](52, "div", 24); + + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](53, "div"); + + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](54); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](52, LoginComponent_div_52_Template, 3, 0, "div", 23); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](55, "div", 25); + + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](56, LoginComponent_a_56_Template, 2, 1, "a", 26); + + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](57, LoginComponent_a_57_Template, 2, 1, "a", 26); + + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { @@ -6452,13 +6488,21 @@ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.loading); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](3); + + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate1"](" ", ctx.disclaimer, " "); + + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); + + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.github_url); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.show_github_fork_me); + _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.docker_url); } }, directives: [_angular_material_card__WEBPACK_IMPORTED_MODULE_8__["MatCard"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["ɵangular_packages_forms_forms_y"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["NgControlStatusGroup"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormGroupDirective"], _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_9__["DefaultLayoutDirective"], _angular_material_form_field__WEBPACK_IMPORTED_MODULE_10__["MatFormField"], _angular_material_form_field__WEBPACK_IMPORTED_MODULE_10__["MatLabel"], _angular_material_select__WEBPACK_IMPORTED_MODULE_11__["MatSelect"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["NgControlStatus"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormControlName"], _angular_common__WEBPACK_IMPORTED_MODULE_7__["NgForOf"], _angular_material_button__WEBPACK_IMPORTED_MODULE_12__["MatButton"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["FormGroupName"], _angular_material_input__WEBPACK_IMPORTED_MODULE_13__["MatInput"], _angular_forms__WEBPACK_IMPORTED_MODULE_2__["DefaultValueAccessor"], _angular_material_divider__WEBPACK_IMPORTED_MODULE_14__["MatDivider"], _angular_common__WEBPACK_IMPORTED_MODULE_7__["NgIf"], _angular_material_core__WEBPACK_IMPORTED_MODULE_15__["MatOption"], _angular_material_progress_spinner__WEBPACK_IMPORTED_MODULE_16__["MatSpinner"]], - styles: ["mat-card[_ngcontent-%COMP%] {\n background-color: rgb(236 236 236);\n}\n\n.login-form-inner[_ngcontent-%COMP%] {\n font-weight: 600;\n border: none;\n width: auto;\n min-width: 50em;\n position: relative;\n margin: auto;\n padding: 2em;\n border-radius: 0.3em;\n}\n\n.login-form-outer[_ngcontent-%COMP%] {\n width: 100%;\n background-color: rgb(236 236 236);\n}\n\n.login-form-inputs[_ngcontent-%COMP%] {\n padding: 10px;\n width: 25em;\n text-align: center;\n justify-content: space-between;\n}\n\n.login-form-or[_ngcontent-%COMP%] {\n padding: 10px;\n text-align: center;\n justify-content: space-between;\n}\n\n.disable-click[_ngcontent-%COMP%] {\n pointer-events: none;\n cursor: default;\n}\n\n.login-step[_ngcontent-%COMP%] {\n border: solid 1px lightgray;\n background-color: white;\n border-radius: 5px;\n margin: -2em;\n padding: 2em;\n}\n\n.loading[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: #ffffff9c;\n border-radius: 5px;\n}\n\n.loading[_ngcontent-%COMP%] div[_ngcontent-%COMP%] {\n margin: auto;\n align-self: center;\n}\n\n.github-fork-me[_ngcontent-%COMP%] {\n position: absolute;\n right: 0;\n top: 0;\n z-index: 1000;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvZ2luLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxrQ0FBa0M7QUFDdEM7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsWUFBWTtJQUNaLFdBQVc7SUFDWCxlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLFlBQVk7SUFDWixZQUFZO0lBQ1osb0JBQW9CO0FBQ3hCOztBQUVBO0lBQ0ksV0FBVztJQUNYLGtDQUFrQztBQUN0Qzs7QUFFQTtJQUNJLGFBQWE7SUFDYixXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLDhCQUE4QjtBQUNsQzs7QUFFQTtJQUNJLGFBQWE7SUFDYixrQkFBa0I7SUFDbEIsOEJBQThCO0FBQ2xDOztBQUVBO0lBQ0ksb0JBQW9CO0lBQ3BCLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSwyQkFBMkI7SUFDM0IsdUJBQXVCO0lBQ3ZCLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osWUFBWTtBQUNoQjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sT0FBTztJQUNQLFdBQVc7SUFDWCxZQUFZO0lBQ1osMkJBQTJCO0lBQzNCLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFlBQVk7SUFDWixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsUUFBUTtJQUNSLE1BQU07SUFDTixhQUFhO0FBQ2pCIiwiZmlsZSI6ImxvZ2luLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJtYXQtY2FyZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzNiAyMzYgMjM2KTtcbn1cblxuLmxvZ2luLWZvcm0taW5uZXIge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1pbi13aWR0aDogNTBlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHBhZGRpbmc6IDJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwLjNlbTtcbn1cblxuLmxvZ2luLWZvcm0tb3V0ZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzYgMjM2IDIzNik7XG59XG5cbi5sb2dpbi1mb3JtLWlucHV0cyB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICB3aWR0aDogMjVlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4ubG9naW4tZm9ybS1vciB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4uZGlzYWJsZS1jbGljayB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ubG9naW4tc3RlcCB7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggbGlnaHRncmF5O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBtYXJnaW46IC0yZW07XG4gICAgcGFkZGluZzogMmVtO1xufVxuXG4ubG9hZGluZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOWM7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4ubG9hZGluZyBkaXYge1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbi5naXRodWItZm9yay1tZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiAxMDAwO1xufSJdfQ== */"] + styles: ["mat-card[_ngcontent-%COMP%] {\n background-color: rgb(236 236 236);\n}\n\n.login-form-inner[_ngcontent-%COMP%] {\n font-weight: 600;\n border: none;\n width: auto;\n min-width: 50em;\n position: relative;\n margin: auto;\n padding: 2em;\n border-radius: 0.3em;\n}\n\n.login-form-outer[_ngcontent-%COMP%] {\n width: 100%;\n background-color: rgb(236 236 236);\n}\n\n.login-form-inputs[_ngcontent-%COMP%] {\n padding: 10px;\n width: 25em;\n text-align: center;\n justify-content: space-between;\n}\n\n.login-form-or[_ngcontent-%COMP%] {\n padding: 10px;\n text-align: center;\n justify-content: space-between;\n}\n\n.disable-click[_ngcontent-%COMP%] {\n pointer-events: none;\n cursor: default;\n}\n\n.login-step[_ngcontent-%COMP%] {\n border: solid 1px lightgray;\n background-color: white;\n border-radius: 5px;\n margin: -2em;\n padding: 2em;\n}\n\n.loading[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: #ffffff9c;\n border-radius: 5px;\n}\n\n.loading[_ngcontent-%COMP%] div[_ngcontent-%COMP%] {\n margin: auto;\n align-self: center;\n}\n\n.disclaimer[_ngcontent-%COMP%] {\n width: 50em;\n text-align: center;\n margin: auto;\n text-transform: uppercase;\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-weight: 100;\n font-size: smaller;\n}\n\n.source[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n}\n\n.source[_ngcontent-%COMP%] img[_ngcontent-%COMP%] {\n margin: 1em;\n height: 2em;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvZ2luLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxrQ0FBa0M7QUFDdEM7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsWUFBWTtJQUNaLFdBQVc7SUFDWCxlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLFlBQVk7SUFDWixZQUFZO0lBQ1osb0JBQW9CO0FBQ3hCOztBQUVBO0lBQ0ksV0FBVztJQUNYLGtDQUFrQztBQUN0Qzs7QUFFQTtJQUNJLGFBQWE7SUFDYixXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLDhCQUE4QjtBQUNsQzs7QUFFQTtJQUNJLGFBQWE7SUFDYixrQkFBa0I7SUFDbEIsOEJBQThCO0FBQ2xDOztBQUVBO0lBQ0ksb0JBQW9CO0lBQ3BCLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSwyQkFBMkI7SUFDM0IsdUJBQXVCO0lBQ3ZCLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osWUFBWTtBQUNoQjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sT0FBTztJQUNQLFdBQVc7SUFDWCxZQUFZO0lBQ1osMkJBQTJCO0lBQzNCLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFlBQVk7SUFDWixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLFlBQVk7SUFDWix5QkFBeUI7SUFDekIsaURBQWlEO0lBQ2pELGdCQUFnQjtJQUNoQixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQix1QkFBdUI7QUFDM0I7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsV0FBVztBQUNmIiwiZmlsZSI6ImxvZ2luLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJtYXQtY2FyZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzNiAyMzYgMjM2KTtcbn1cblxuLmxvZ2luLWZvcm0taW5uZXIge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1pbi13aWR0aDogNTBlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHBhZGRpbmc6IDJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwLjNlbTtcbn1cblxuLmxvZ2luLWZvcm0tb3V0ZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzYgMjM2IDIzNik7XG59XG5cbi5sb2dpbi1mb3JtLWlucHV0cyB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICB3aWR0aDogMjVlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4ubG9naW4tZm9ybS1vciB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4uZGlzYWJsZS1jbGljayB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ubG9naW4tc3RlcCB7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggbGlnaHRncmF5O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBtYXJnaW46IC0yZW07XG4gICAgcGFkZGluZzogMmVtO1xufVxuXG4ubG9hZGluZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOWM7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4ubG9hZGluZyBkaXYge1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbi5kaXNjbGFpbWVyIHtcbiAgICB3aWR0aDogNTBlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgZm9udC1zaXplOiBzbWFsbGVyO1xufVxuXG4uc291cmNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnNvdXJjZSBpbWcge1xuICAgIG1hcmdpbjogMWVtO1xuICAgIGhlaWdodDogMmVtO1xufSJdfQ== */"] }); /*@__PURE__*/ diff --git a/django_app/mso/static/main-es5.js.map b/django_app/mso/static/main-es5.js.map index ce84ced..a453590 100644 --- a/django_app/mso/static/main-es5.js.map +++ b/django_app/mso/static/main-es5.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///src/app/login/login-2FA.ts","webpack:///src/app/login/login-2fa.html","webpack:///src/app/auto-generated/auto-generated.component.ts","webpack:///src/app/auto-generated/auto-generated.component.html","webpack:///src/app/common/common-claim.ts","webpack:///src/app/common/common-claim.html","webpack:///src/environments/environment.ts","webpack:///src/app/org/org.component.ts","webpack:///src/app/org/org.component.html","webpack:///src/app/common/common-error.ts","webpack:///src/app/common/common-error.html","webpack:///src/app/dashboard/dashboard.component.ts","webpack:///src/app/dashboard/dashboard.component.html","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/app.module.ts","webpack:///src/app/common/common-warning.ts","webpack:///src/app/common/common-warning.html","webpack:///src/app/common/common.component.ts","webpack:///src/app/common/common.component.html","webpack:///src/app/common/common-claim-details.ts","webpack:///src/app/common/common-claim-details.html","webpack:///src/app/connector.service.ts","webpack:///src/app/common/common-unclaim.ts","webpack:///src/app/common/common-unclaim.html","webpack:///src/app/common/common-pipes.ts","webpack:///src/app/app-routing.module.ts","webpack:///src/app/login/login.component.ts","webpack:///src/app/login/login.component.html","webpack:///src/main.ts","webpack:///$_lazy_route_resource lazy namespace object"],"names":["TwoFactorDialog","dialogRef","close","twoFactor","close2FA","cancel2FA","selector","templateUrl","AutoGeneratedComponent","styleUrls","ClaimDialog","_http","_dialog","data","claimCodes","claimButtonDisabled","inputClaimCodes","body","isDone","claimResult","isWorking","regex","split","forEach","element","claim","replace","trim","toUpperCase","length","newClaim","code","success","reason","duplicated","valid","processed","match","push","check_issues","claimCode","index","indexOf","splice","issues","invalid","duplicated_codes","claim_codes","post","subscribe","next","results","error","message","openError","open","afterClosed","result","console","log","environment","production","OrgComponent","_appService","_router","headers","cookies","host","self","search","orgs","sites","orgMode","selected_org_obj","id","name","org_id","site_id","me","adminMode","map","options","scrollwheel","disableDefaultUI","draggable","draggableCursor","clickableIcons","zoom","claimDisabled","topBarLoading","noSiteToDisplay","tmp_orgs","role","sortList","changeOrg","loadSites","parseSites","gotoDash","site","siteIdSet","orgModeSet","orgIdSet","navigate","attribute","sort","a","b","nameA","nameB","ErrorDialog","ok","DashboardComponent","_formBuilder","_snackBar","frmPort","group","mode","all_networks","networks","port_network","port_auth","enable_mac_auth","guest_network","bypass_auth_when_server_down","speed","duplex","autoneg","mac_limit","stp_edge","mtu","enabled","poe","description","voip_network","storm_control","defaultConfig","disable_autoneg","disabled","poe_disabled","maps","deviceLoading","editingDevice","editingDeviceSettings","editingPorts","editingPortNames","editingPortsStatus","displayedPorts","devices","resultsLength","displayedColumns","source","getDevices","_subscription","s","unsubscribe","full","tmp","mac","filteredDevicesDatabase","paginator","device","_discardDevice","_getDeviceSettings","_getPortStatus","device_id","ports","_discardPorts","member","percentage","power_draw","max_power","device_mac","portName","port","selectPort","includes","_deletePort","_setPortFields","_addPort","_setDefaultPortFielts","indexName","get","value","port_config","openSnackBar","reset","updateFrmDeviceValues","port_usage","config","usage","port_usages","key","controls","setValue","event","filterValue","target","toLowerCase","filter","firstPage","action","duration","horizontalPosition","verticalPosition","back","AppComponent","title","AppModule","router","replacer","provide","useValue","color","forRoot","declarations","imports","providers","bootstrap","WarningDialog","cancel","CommonComponent","ClaimDetailsDialog","details","ConnectorService","headersSource","cookiesSource","hostSource","selfSource","orgIdSource","siteIdSource","orgModeSource","googleApiKey","asObservable","google_api_key","providedIn","UnclaimDialog","confirm","StartsWithPipe","fullText","textMatch","startsWith","MapToArrayPipe","args","arr","routes","path","component","redirectTo","pathMatch","AppRoutingModule","relativeLinkResolution","exports","LoginComponent","_platformLocation","show_github_fork_me","hostnames_to_show_github_fork_me","hosts","viewValue","frmStepLogin","credentials","email","password","token","error_mess","hostname","googleApiKeySet","gap","headersSet","cookiesSet","selfSet","hostSet","reset_error_mess","loading","error_message","detail","authenticated","open2FA","method","reset_response","check_host","parse_response","two_factor","submit2FA","submitCredentials","submitToken","bootstrapModule","err","webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","keys","module"],"mappings":"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","file":"main-es5.js","sourcesContent":["import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'login-2fa',\n templateUrl: 'login-2fa.html',\n})\nexport class TwoFactorDialog {\n public twoFactor: string;\n constructor(public dialogRef: MatDialogRef) { }\n\n close2FA() {\n this.dialogRef.close(this.twoFactor);\n }\n cancel2FA(): void {\n this.dialogRef.close();\n }\n}","\n

2FA Code Required

\n
\n \n Code\n \n \n
\n
\n \n \n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-auto-generated',\n templateUrl: './auto-generated.component.html',\n styleUrls: ['./auto-generated.component.css']\n})\nexport class AutoGeneratedComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","

auto-generated works!

\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\nimport { HttpClient } from '@angular/common/http';\nimport { ErrorDialog } from './common-error';\nimport { ClaimDetailsDialog } from './common-claim-details'\n\nexport interface ClaimCodeElement {\n code: string;\n duplicated: boolean;\n valid: boolean;\n success: boolean;\n reason: string;\n processed: boolean;\n}\n\n@Component({\n selector: 'common-claim',\n templateUrl: 'common-claim.html',\n})\nexport class ClaimDialog {\n constructor(\n public dialogRef: MatDialogRef, private _http: HttpClient, public _dialog: MatDialog, @Inject(MAT_DIALOG_DATA) public data) { }\n claimCodes: ClaimCodeElement[] = [];\n claimButtonDisabled: boolean = true;\n inputClaimCodes: string = \"\";\n body = this.data.body;\n isDone = false;\n claimResult = {};\n isWorking = false;\n\n add(): void {\n var regex = /^[0-9a-zA-Z]{5}-?[0-9a-zA-Z]{5}-?[0-9a-zA-Z]{5}$/i;\n this.inputClaimCodes.split(/[\\s,; ]+/).forEach(element => {\n var claim = element.replace(\";\", \"\").replace(\",\", \"\").trim().toUpperCase();\n if (claim.length > 0) {\n var newClaim = { code: claim, success: null, reason: null, duplicated: false, valid: false, processed: false };\n if (newClaim.code.match(regex)) {\n newClaim.valid = true;\n }\n this.claimCodes.forEach(element => {\n if (element.code == newClaim.code) {\n element.duplicated = true;\n newClaim.duplicated = true;\n }\n })\n this.claimCodes.push(newClaim);\n }\n })\n this.check_issues();\n this.inputClaimCodes = \"\";\n }\n\n edit(claimCode: ClaimCodeElement): void {\n this.inputClaimCodes = claimCode.code;\n var index = this.claimCodes.indexOf(claimCode)\n this.claimCodes.splice(index, 1)\n }\n\n check_issues(): void {\n var issues = {\n invalid: [],\n duplicated: []\n };\n this.claimCodes.forEach(element => {\n if (element.valid == false) {\n issues.invalid.push(element.code);\n }\n if (element.duplicated == true) {\n issues.duplicated.push(element.code);\n }\n })\n if (this.claimCodes.length > 0 && issues.duplicated.length == 0 && issues.invalid.length == 0) {\n this.claimButtonDisabled = false;\n } else {\n this.claimButtonDisabled = true;\n }\n }\n\n remove(claimCode: ClaimCodeElement): void {\n var duplicated_codes = [];\n var index = -1;\n // remove the claim code\n index = this.claimCodes.indexOf(claimCode);\n if (index >= 0) {\n this.claimCodes.splice(index, 1);\n }\n // if the removed claim code has the duplicated flag\n if (claimCode.duplicated) {\n // find other same codes\n this.claimCodes.forEach(element => {\n if (element.code == claimCode.code) {\n duplicated_codes.push(element);\n }\n })\n // if only one other same code, remove the duplicated flash\n if (duplicated_codes.length == 1) {\n index = this.claimCodes.indexOf(duplicated_codes[0]);\n this.claimCodes[index].duplicated = false;\n }\n }\n // check issues for \"claim\" button\n this.check_issues()\n }\n\n // CLAIM NEW CODES\n confirm(): void {\n this.isWorking = true;\n this.isDone = true;\n // Add claim codes to request body\n this.body.claim_codes = [];\n this.claimCodes.forEach(element => {\n this.body.claim_codes.push(element.code)\n })\n // Send request to server\n this._http.post('/api/devices/claim/', this.body).subscribe({\n next: data => {\n // retrieve result data\n this.claimResult = data.results;\n this.claimCodes.forEach(element => {\n element.processed = true;\n var index = -1;\n // if code added to account\n if (this.claimResult[\"added\"].indexOf(element.code) >= 0) {\n element.success = true;\n // if error when adding the code\n } else if (this.claimResult[\"error\"].indexOf(element.code) >= 0) {\n index = this.claimResult[\"error\"].indexOf(element.code);\n element.success = false;\n element.reason = this.claimResult[\"reason\"][index]\n // if code already claimed somewhere\n } else if (this.claimResult[\"duplicated\"].indexOf(element.code) >= 0) {\n element.success = false;\n element.reason = \"Already Claimed\"\n }\n })\n this.isWorking = false;\n },\n error: error => {\n var message: string = \"Unable to create claim the devices... \"\n if (\"error\" in error) { message += error[\"error\"][\"message\"] }\n this.openError(message)\n this.isWorking = false;\n }\n })\n }\n\n\n // EXIT\n cancel(): void {\n this.dialogRef.close();\n }\n // DIALOG BOXES\n // Restart Claim Process\n reset(): void {\n const dialogRef = this._dialog.open(ClaimDialog, {\n data: { body: this.body }\n })\n dialogRef.afterClosed().subscribe(result => {\n this.dialogRef.close();\n })\n }\n // DETAILS\n details(): void {\n console.log(this.claimResult);\n const dialogRef = this._dialog.open(ClaimDetailsDialog, {\n data: this.claimResult\n })\n\n }\n // ERROR\n openError(message: string): void {\n const dialogRef = this._dialog.open(ErrorDialog, {\n data: message\n });\n }\n\n\n}\n\n\n\n","\n

Claim new devices

\n
\n
HINT: you can paste mutliple claim codes separated by a SPACE, a COMMA or a SEMICOLUMN
\n
\n \n Claim Code\n \n \n \n
\n
\n
0\" fxFlex=\"1 1 0\" fxLayout=\"row wrap\" style=\"width: 100%;\">\n \n \n \n \n
\n
\n check_circle\n
\n
\n warning\n
\n
\n warning\n
\n
\n content_copy\n
\n \n \n
\n
\n
\n
\n
\n\n
\n \n \n \n \n \n
","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { Component, OnInit } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { ConnectorService } from '../connector.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ErrorDialog } from './../common/common-error';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-org',\n templateUrl: './org.component.html',\n styleUrls: ['./org.component.css']\n})\nexport class OrgComponent implements OnInit {\n\n headers = {};\n cookies = {};\n host = '';\n self = {};\n search = \"\";\n orgs = [];\n sites = [];\n orgMode: boolean = false;\n selected_org_obj = {\n id: \"\",\n name: \"\"\n };\n org_id: string = \"\";\n site_id: string = \"\";\n me: string = \"\";\n adminMode: boolean = false;\n map = {\n options: {\n scrollwheel: false,\n disableDefaultUI: true,\n draggable: false,\n draggableCursor: \"pointer\",\n clickableIcons: false\n },\n zoom: 12\n }\n\n apiLoaded: Observable;\n claimDisabled: boolean = true;\n topBarLoading = false;\n noSiteToDisplay = false;\n constructor(private _http: HttpClient, private _appService: ConnectorService, public _dialog: MatDialog, private _router: Router) { }\n\n\n ngOnInit() {\n this._appService.headers.subscribe(headers => this.headers = headers)\n this._appService.cookies.subscribe(cookies => this.cookies = cookies)\n this._appService.host.subscribe(host => this.host = host)\n this._appService.self.subscribe(self => this.self = self || {})\n this._appService.org_id.subscribe(org_id => this.org_id = org_id)\n this.me = this.self[\"email\"] || null\n\n var tmp_orgs: string[] = []\n\n // parsing all the orgs/sites from the privileges\n // only orgs with admin/write/installer roles are used\n if (this.self != {} && this.self[\"privileges\"]) {\n this.self[\"privileges\"].forEach(element => {\n if (element[\"role\"] == \"admin\" || element[\"role\"] == \"write\") {\n if (element[\"scope\"] == \"org\") {\n if (tmp_orgs.indexOf(element[\"org_id\"]) < 0) {\n this.orgs.push({ id: element[\"org_id\"], name: element[\"name\"], role: element[\"role\"] })\n tmp_orgs.push(element[\"org_id\"])\n }\n } else if (element[\"scope\"] == \"site\") {\n if (tmp_orgs.indexOf(element[\"org_id\"]) < 0) {\n this.orgs.push({ id: element[\"org_id\"], name: element[\"org_name\"], role: element[\"role\"] })\n tmp_orgs.push(element[\"org_id\"])\n }\n }\n }\n });\n this.orgs = this.sortList(this.orgs, \"name\");\n }\n\n // if only one, using it by default\n if (!this.org_id && this.orgs.length == 1) {\n this.org_id = this.orgs[1][\"id\"]\n }\n // if back button used, retrieving previously selected org\n // or if only one org, loading it automatically\n if (this.org_id) {\n this.orgs.forEach(element => {\n if (element.id == this.org_id) {\n this.selected_org_obj = element;\n this.changeOrg();\n }\n })\n }\n }\n\n // when the user selects a new org\n // disabling the admin mode\n // and loading the sites\n changeOrg() {\n this.loadSites();\n }\n\n // loads the org sites\n loadSites() {\n this.org_id = this.selected_org_obj.id\n this.topBarLoading = true;\n this.claimDisabled = true;\n this.sites = [];\n this._http.post('/api/sites/', { host: this.host, cookies: this.cookies, headers: this.headers, org_id: this.org_id}).subscribe({\n next: data => this.parseSites(data),\n error: error => {\n var message: string = \"There was an error... \"\n if (\"error\" in error) {\n message += error[\"error\"][\"message\"]\n }\n this.topBarLoading = false;\n this.openError(message)\n }\n })\n }\n\n // parse the org sites from HTTP response\n parseSites(data) {\n if (data.sites.length > 0) {\n this.noSiteToDisplay = false;\n this.sites = this.sortList(data.sites, \"name\");\n this.claimDisabled = false;\n } else {\n this.noSiteToDisplay = true;\n }\n this.topBarLoading = false;\n }\n\n\n\n\n // ROUTING FUNCTION\n // used when user wants to claim devices to org\n setOrg(): void {\n this.orgMode = true;\n this.gotoDash(); \n }\n // used when user wants to claim devices to site\n setSite(site): void {\n if (site != null) {\n this.site_id = site.id;\n } else {\n this.site_id = \"\";\n }\n this.orgMode = true;\n this._appService.siteIdSet(this.site_id);\n this.gotoDash();\n }\n // publish variables and go to the dashboard\n gotoDash(): void { \n this._appService.orgModeSet(this.orgMode)\n this._appService.orgIdSet(this.org_id);\n this._router.navigate([\"/dashboard\"]);\n }\n\n\n // COMMON\n sortList(data, attribute) {\n return data.sort(function (a, b) {\n var nameA = a[attribute].toUpperCase(); // ignore upper and lowercase\n var nameB = b[attribute].toUpperCase(); // ignore upper and lowercase\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n })\n }\n\n // DIALOG BOXES\n // ERROR\n openError(message: string): void {\n const dialogRef = this._dialog.open(ErrorDialog, {\n data: message\n });\n }\n}\n","\n
\n
\n \n Organization\n \n \n {{selected_org_obj.name}}\n \n \n {{org.role}}\n {{org.name}}\n \n \n \n\n
\n
\n
\n \n
\n
\n \n \n Please Select an Organization\n \n \n \n
\n You don't have access to any Site in this Organization. Please chose another Organization.\n
\n
\n Only the Sites with \"Administrator\" authorization are listed.\n
\n
\n
\n
\n \n
\n \n {{site.name}}\n \n \n
{{site.address}}
\n
\n
\n
\n \n \n \n Test\n \n \n
\n
\n
\n\n
","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nexport interface ErrorData {\n message: string\n}\n\n@Component({\n selector: 'common-error',\n templateUrl: 'common-error.html',\n})\nexport class ErrorDialog {\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: ErrorData\n ) { }\n ok(): void {\n this.dialogRef.close();\n }\n\n}","

Oops...

\n
\n {{data}}\n
\n
\n \n
","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { HttpClient } from '@angular/common/http';\nimport { FormBuilder, Validators, FormControl } from '@angular/forms';\nimport { Router } from '@angular/router';\n\nimport { MatPaginator } from '@angular/material/paginator';\n\nimport { ErrorDialog } from '../common/common-error';\n\n\nimport { ConnectorService } from '../connector.service';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { interval, Subscription } from 'rxjs';\nimport { element } from 'protractor';\n\n\n// Configuration element from Devices Details\nexport interface DeviceDetailsElement {\n managed: boolean,\n role: string,\n notes: string,\n ip_config: IpConfigElement,\n oob_ip_config: IpConfigElement,\n disable_auto_config: boolean,\n networks: object,\n port_usages: object,\n additional_config_cmds: string[],\n id: string,\n name: string,\n site_id: string,\n org_id: string,\n created_time: number,\n modified_time: number,\n map_id: string | null,\n mac: string,\n serial: string,\n model: string,\n hw_rev: string,\n type: string,\n tag_uuid: string | null,\n tag_id: number | null,\n deviceprofile_id: string | null\n}\n\nexport interface IpConfigElement {\n type: string,\n ip: string | null,\n netmask: string | null,\n gateway: string | null,\n dns: string[] | null,\n dns_suffix: string | null,\n network: string\n}\n\nexport interface PortElement {\n mode: string,\n all_networks: boolean,\n networks: string[],\n port_network: string,\n port_auth: string,\n enable_mac_auth: string,\n guest_network: string,\n bypass_auth_when_server_down: boolean,\n speed: string,\n duplex: string,\n disable_autoneg: boolean,\n mac_limit: number,\n stp_edge: boolean,\n mtu: number,\n disabled: boolean,\n poe_disabled: boolean,\n description: string,\n voip_network: string,\n storm_control: {}\n}\n\n\n// Configuration Elements derived from the site\nexport interface DerivedElement {\n additional_config_cmds: string[],\n network: object,\n port_usages: object,\n switch_matching: SwitchMatchingElement,\n vars: object\n\n}\nexport interface SwitchMatchingElement {\n element: boolean,\n riles: object[]\n}\n\n// Device Elements for the list\nexport interface DeviceElement {\n id: string,\n site_id: string,\n org_id: string,\n mac: string,\n vc_mac: string,\n model: string,\n type: string,\n serial: string,\n status: string,\n members: object[]\n}\n\nexport interface MistDevices {\n results: DeviceElement[];\n total: number;\n limit: number;\n page: number;\n}\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.css']\n})\n\n\nexport class DashboardComponent implements OnInit {\n\n frmPort = this._formBuilder.group({\n mode: \"access\",\n all_networks: false,\n networks: [],\n port_network: \"default\",\n port_auth: \"\",\n enable_mac_auth: \"\",\n guest_network: \"\",\n bypass_auth_when_server_down: false,\n speed: [\"auto\"],\n duplex: [\"auto\"],\n autoneg: true,\n mac_limit: 0,\n stp_edge: true,\n mtu: 1514,\n enabled: true,\n poe: true,\n description: \"\",\n voip_network: \"\",\n storm_control: {}\n })\n\n defaultConfig = {\n mode: \"access\",\n all_networks: false,\n networks: [],\n port_network: \"\",\n port_auth: \"\",\n enable_mac_auth: \"\",\n guest_network: \"\",\n bypass_auth_when_server_down: false,\n speed: \"auto\",\n duplex: \"auto\",\n disable_autoneg: false,\n mac_limit: 0,\n stp_edge: true,\n mtu: 1514,\n disabled: false,\n poe_disabled: false,\n description: \"\",\n voip_network: \"\",\n storm_control: {}\n }\n\n headers = {};\n cookies = {};\n host = '';\n self = {};\n search = \"\";\n orgs = [];\n sites = [];\n maps = [];\n org_id: string = \"\";\n orgMode: boolean = false;\n site_id: string = \"__any__\";\n me: string = \"\";\n\n topBarLoading = false;\n deviceLoading = false;\n\n editingDevice = null;\n editingDeviceSettings = null;\n editingPorts = [];\n editingPortNames = [];\n editingPortsStatus = {}\n displayedPorts = {}\n\n filteredDevicesDatabase: MatTableDataSource | null;\n devices: DeviceElement[] = []\n\n resultsLength = 0;\n displayedColumns: string[] = [\"device\"];\n private _subscription: Subscription\n\n @ViewChild(MatPaginator) paginator: MatPaginator;\n\n constructor(private _router: Router, private _http: HttpClient, private _appService: ConnectorService, public _dialog: MatDialog, private _formBuilder: FormBuilder, private _snackBar: MatSnackBar) { }\n\n //////////////////////////////////////////////////////////////////////////////\n ///// INIT\n //////////////////////////////////////////////////////////////////////////////\n\n ngOnInit() {\n const source = interval(60000);\n\n this._appService.headers.subscribe(headers => this.headers = headers)\n this._appService.cookies.subscribe(cookies => this.cookies = cookies)\n this._appService.host.subscribe(host => this.host = host)\n this._appService.self.subscribe(self => this.self = self || {})\n this._appService.org_id.subscribe(org_id => this.org_id = org_id)\n this._appService.site_id.subscribe(site_id => this.site_id = site_id)\n this._appService.orgMode.subscribe(orgMode => this.orgMode = orgMode)\n \n this.getDevices();\n\n this._subscription = source.subscribe(s => this.getDevices());\n\n }\n\n ngOnDestroy() {\n this._subscription.unsubscribe();\n }\n\n\n //////////////////////////////////////////////////////////////////////////////\n ///// LOAD DEVICE LIST\n //////////////////////////////////////////////////////////////////////////////\n\n getDevices() {\n var body = null\n body = { host: this.host, cookies: this.cookies, headers: this.headers, site_id: this.site_id, full: true }\n\n if (body) {\n this.topBarLoading = true;\n this._http.post('/api/devices/', body).subscribe({\n next: data => {\n var tmp: DeviceElement[] = []\n data[\"results\"].forEach(element => {\n if (this.editingDevice && this.editingDevice.mac == element.mac) {\n this.editingDevice = element;\n }\n });\n this.filteredDevicesDatabase = new MatTableDataSource(data[\"results\"]);\n\n this.filteredDevicesDatabase.paginator = this.paginator;\n this.topBarLoading = false;\n },\n error: error => {\n var message: string = \"There was an error... \"\n if (\"error\" in error) { message += error[\"error\"][\"message\"] }\n this.openError(message)\n }\n })\n\n }\n }\n\n //////////////////////////////////////////////////////////////////////////////\n ///// EDIT DEVICE\n //////////////////////////////////////////////////////////////////////////////\n editDevice(device: DeviceElement): void {\n if (device == this.editingDevice) {\n this._discardDevice();\n }\n else {\n this._discardDevice();\n this.editingDevice = device;\n this._getDeviceSettings()\n this._getPortStatus()\n }\n }\n\n _getDeviceSettings(): void {\n this.deviceLoading = true\n this._http.post('/api/devices/settings/', {\n host: this.host,\n cookies: this.cookies,\n headers: this.headers,\n site_id: this.site_id,\n device_id: this.editingDevice.id\n }).subscribe({\n next: data => {\n this.editingDeviceSettings = data\n this.displayedPorts = data.ports\n this.deviceLoading = false\n this.editingPorts = []\n this.editingPortNames.forEach(element => {\n this.editingPorts.push(this.editingDeviceSettings.ports[element])\n })\n },\n error: error => {\n this.deviceLoading = false\n var message: string = \"Unable to load settings for the Device \" + this.editingDevice.mac + \"... \"\n if (\"error\" in error) { message += error[\"error\"][\"message\"] }\n this.openError(message)\n }\n })\n }\n\n\n _discardDevice(): void {\n this.editingDevice = null;\n this.editingDeviceSettings = null;\n this.editingPorts = [];\n this.editingPortNames = [];\n this.displayedPorts = {};\n this._discardPorts()\n }\n \n powerDraw(member) {\n var percentage = (member.poe.power_draw / member.poe.max_power) * 100\n return percentage\n }\n \n //////////////////////////////////////////////////////////////////////////////\n ///// Ports Status\n //////////////////////////////////////////////////////////////////////////////\n \n _getPortStatus(): void {\n this._http.post('/api/devices/portstatus/', {\n host: this.host,\n cookies: this.cookies,\n headers: this.headers,\n site_id: this.site_id,\n device_mac: this.editingDevice.mac\n }).subscribe({\n next: data => {\n this.editingPortsStatus = data.result\n },\n error: error => {\n this.deviceLoading = false\n var message: string = \"Unable to load ports status for the Device \" + this.editingDevice.mac + \"... \"\n if (\"error\" in error) { message += error[\"error\"][\"message\"] }\n this.openError(message)\n }\n })\n }\n //////////////////////////////////////////////////////////////////////////////\n ///// EDIT Port\n //////////////////////////////////////////////////////////////////////////////\n selectPortFromSwitchView(portName): void {\n let port = this.editingDeviceSettings.ports[portName]\n this.selectPort(port)\n }\n \n selectPort(port): void {\n if (this.editingPorts.includes(port)) {\n this._deletePort(port);\n if (this.editingPorts.length == 1) {\n this._setPortFields(this.editingPorts[0])\n }\n }\n else {\n this._addPort(port);\n if (this.editingPorts.length == 1) {\n this._setPortFields(this.editingPorts[0])\n } else if (this.editingPorts.length == 2) {\n this._setDefaultPortFielts()\n }\n }\n }\n \n // ADD or REMOVE ports from the editing list\n _addPort(port): void {\n this.editingPorts.push(port);\n this.editingPortNames.push(port.port)\n }\n _deletePort(port): void {\n let index = this.editingPorts.indexOf(port)\n this.editingPorts.splice(index, 1)\n let indexName = this.editingPortNames.indexOf(port.port)\n this.editingPortNames.splice(indexName, 1)\n if (this.editingPorts.length == 0) {\n this._discardPorts()\n }\n }\n \n savePorts(): void {\n this.editingPorts.forEach(element => {\n element[\"new_conf\"] = {\n \"mode\": this.frmPort.get(\"mode\").value,\n \"all_networks\": this.frmPort.get(\"all_networks\").value,\n \"networks\": this.frmPort.get(\"networks\").value,\n \"port_network\": this.frmPort.get(\"port_network\").value,\n \"port_auth\": this.frmPort.get(\"port_auth\").value,\n \"enable_mac_auth\": this.frmPort.get(\"enable_mac_auth\").value,\n \"guest_network\": this.frmPort.get(\"guest_network\").value,\n \"bypass_auth_when_server_down\": this.frmPort.get(\"bypass_auth_when_server_down\").value,\n \"autoneg\": this.frmPort.get(\"autoneg\").value,\n \"mac_limit\": this.frmPort.get(\"mac_limit\").value,\n \"stp_edge\": this.frmPort.get(\"stp_edge\").value,\n \"mtu\": this.frmPort.get(\"mtu\").value,\n \"disabled\": this.frmPort.get(\"enabled\").value == false,\n \"poe_disabled\": this.frmPort.get(\"poe\").value == false,\n \"description\": this.frmPort.get(\"description\").value,\n \"voip_network\": this.frmPort.get(\"voip_network\").value,\n \"storm_control\": this.frmPort.get(\"storm_control\").value,\n \"duplex\": this.frmPort.get(\"duplex\").value,\n \"speed\": this.frmPort.get(\"speed\").value\n }\n })\n if (this.frmPort.valid) {\n this.topBarLoading = true\n var body = {\n host: this.host,\n cookies: this.cookies,\n headers: this.headers,\n site_id: this.site_id,\n org_id: this.org_id,\n port_config: this.editingPorts,\n device_id: this.editingDevice.id\n }\n this._http.post('/api/devices/update/', body).subscribe({\n next: data => {\n this.topBarLoading = false\n //this.updateFrmDeviceValues(data.result)\n this._getDeviceSettings()\n this.openSnackBar(\"Device \" + this.editingDevice.mac + \" successfully updated\", \"Done\")\n },\n error: error => {\n this.topBarLoading = false\n var message: string = \"Unable to save changes on Device \" + this.editingDevice.mac + \"... \"\n if (\"error\" in error) { message += error[\"error\"][\"message\"] }\n this.openError(message)\n }\n })\n }\n }\n // Reset the ports selection and form\n _discardPorts(): void {\n this.editingPorts = []\n this.editingPortNames = []\n this.frmPort.reset()\n }\n\n // Set Port Form values\n _setDefaultPortFielts(): void {\n this.updateFrmDeviceValues(this.defaultConfig)\n }\n _setPortFields(port): void {\n var port_usage = \"\"\n // copy default values\n var config = { ...this.defaultConfig }\n // getting the port_usage profile name at the switch level, and, if none, at the site level\n if (\"usage\" in port.device) {\n port_usage = port.device.usage\n } else if (\"usage\" in port.site) {\n port_usage = port.site.usage\n }\n // if there is a configured port_usage, retrieving its configuration at the switch level, and\n // if none, at the site level\n if (port_usage) {\n var port_config = {}\n if (port_usage in this.editingDeviceSettings.device.port_usages) {\n port_config = this.editingDeviceSettings.device.port_usages[port_usage]\n }\n else if (port_usage in this.editingDeviceSettings.site.port_usages) {\n port_config = this.editingDeviceSettings.site.port_usages[port_usage]\n }\n // setting the config object with the port_usage settings\n for (var key in port_config) {\n config[key] = port_config[key]\n }\n }\n this.updateFrmDeviceValues(config)\n }\n\n canbeChecked(portName): boolean {\n return this.editingPortNames.includes(portName);\n }\n //////////////////////////////////////////////////////////////////////////////\n ///// COMMON\n //////////////////////////////////////////////////////////////////////////////\n updateFrmDeviceValues(config: PortElement): void {\n this.frmPort.reset()\n this.frmPort.controls[\"port_network\"].setValue(config.port_network)\n this.frmPort.controls[\"autoneg\"].setValue(config.disable_autoneg == false)\n this.frmPort.controls[\"enabled\"].setValue(config.disabled == false)\n this.frmPort.controls[\"poe\"].setValue(config.poe_disabled == false)\n if (config.disable_autoneg == true) {\n this.frmPort.controls[\"duplex\"] = new FormControl({ value: config.duplex, disabled: true })\n this.frmPort.controls[\"speed\"] = new FormControl({ value: config.speed, disabled: true })\n } else {\n this.frmPort.controls[\"speed\"].setValue(config.speed)\n this.frmPort.controls[\"duplex\"].setValue(config.duplex)\n }\n }\n\n\n sortList(data, attribute) {\n return data.sort(function (a, b) {\n var nameA = a[attribute].toUpperCase(); // ignore upper and lowercase\n var nameB = b[attribute].toUpperCase(); // ignore upper and lowercase\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n })\n }\n\n applyFilter(event: Event) {\n const filterValue = (event.target as HTMLInputElement).value.trim().toLowerCase();\n this.filteredDevicesDatabase.filter = filterValue.trim().toLowerCase();\n\n if (this.filteredDevicesDatabase.paginator) {\n this.filteredDevicesDatabase.paginator.firstPage();\n }\n }\n\n applyPortFilter(event: Event) {\n const filterValue = (event.target as HTMLInputElement).value.trim().toLowerCase();\n this.displayedPorts = {}\n if (filterValue) {\n for (var key in this.editingDeviceSettings.ports) {\n if (key.includes(filterValue)) {\n this.displayedPorts[key] = this.editingDeviceSettings.ports[key]\n }\n }\n } else {\n this.displayedPorts = this.editingDeviceSettings.ports\n }\n }\n\n back(): void {\n this._router.navigate([\"/select\"]);\n }\n\n //////////////////////////////////////////////////////////////////////////////\n ///// DIALOG BOXES\n //////////////////////////////////////////////////////////////////////////////\n // ERROR\n openError(message: string): void {\n const dialogRef = this._dialog.open(ErrorDialog, {\n data: message\n });\n }\n\n // SNACK BAR\n openSnackBar(message: string, action: string) {\n this._snackBar.open(message, action, {\n duration: 5000,\n horizontalPosition: \"center\",\n verticalPosition: \"top\",\n });\n }\n}\n\n\n","\n \n
\n \n
\n
\n\n\n\n
\n Please select a device...\n
\n\n
\n \n
\n\n
\n
\n \n Filter\n \n \n \n
\n\n\n
\n
\n \n
\n
\n
\n {{editingDevice.model}}\n
\n
\n
\n {{index}}
\n
\n
\n RJ45\n
\n
\n
\n
\n
\n
\n
\n\n
\n SFP\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n\n
\n
\n
\n \n Switch Management\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
VLANtypeIP AddressNetmaskGateway
In Band{{editingDeviceSettings.device.ip_config.network}}{{editingDeviceSettings.device.ip_config.type}}{{editingDeviceSettings.device.ip_config.ip}}{{editingDeviceSettings.device.ip_config.netmask}}{{editingDeviceSettings.device.ip_config.gateway}}
Out Band{{editingDeviceSettings.device.oob_ip_config.network}}{{editingDeviceSettings.device.oob_ip_config.type}}{{editingDeviceSettings.device.oob_ip_config.ip}}{{editingDeviceSettings.device.oob_ip_config.netmask}}{{editingDeviceSettings.device.oob_ip_config.gateway}}
\n
\n
\n
\n \n Switch Status\n \n
\n
\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 0\">\n \n \n \n
MEMBER #{{index}}
VC ROLE{{member.vc_role}}
MODEL{{member.model}}
SERIAL{{member.serial}}
MAC ADDRESS{{member.mac}}
POE{{member.poe.power_draw}} W
POE Budget{{member.poe.max_power}} W
TEMP\n
\n
\n \n check_circle\n
\n
\n \n cancel\n \n
\n
\n {{temp.name}}: {{temp.celsius}} °C\n
\n
\n
FAN\n
\n
\n \n check_circle\n
\n
\n \n cancel\n \n
\n
\n {{fan.name}}\n
\n
\n
\n
\n
\n
\n\n
\n
\n\n
= 1\">\n
\n \n {{editingPorts[0].port}}\n 1\" class=\"no-cursor\" style=\"color: black; font-weight: light; width: 20em; text-align: center;\" fxFlex=\"auto\">Multi\n Selection\n \n
\n
\n
\n
\n Port Status\n \n Enabled \n Disabled \n \n
\n
\n PoE\n \n Enabled \n Disabled \n \n
\n
\n \n VLAN\n \n None\n \n {{vlan.key}} ({{vlan.value.vlan_id}})\n \n \n \n\n
\n Auto-Negociation\n \n Enabled \n Disabled \n \n
\n
\n\n \n SPEED\n \n Auto\n 10M\n 100M\n 1G\n 2.5G\n 5G\n \n \n\n \n DUPLEX\n \n Auto\n Full\n Half\n \n \n
\n\n
\n
\n
= 1\">\n \n \n
\n
\n
\n
","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n title = 'Mist Switch Operator';\n\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n \"Mist\n Mist Switch Operator\n\n\n\n\n \n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { HttpClientModule, HttpClientJsonpModule } from '@angular/common/http';\n\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormsModule } from '@angular/forms';\n\nimport { GoogleMapsModule } from '@angular/google-maps';\n\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatDialogModule } from '@angular/material/dialog'\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { Router } from '@angular/router';\n\nimport { StartsWithPipe, MapToArrayPipe } from '@src/app/common/common-pipes';\n\n\nimport { AppRoutingModule } from '@src/app/app-routing.module';\nimport { AppComponent } from '@src/app/app.component';\nimport { LoginComponent } from '@src/app/login/login.component';\nimport { TwoFactorDialog } from '@src/app/login/login-2FA';\nimport { DashboardComponent } from '@src/app/dashboard/dashboard.component';\nimport { ClaimDialog } from '@src/app/common/common-claim';\nimport { UnclaimDialog } from '@src/app/common/common-unclaim';\nimport { ErrorDialog } from '@src/app/common/common-error';\nimport { WarningDialog } from '@src/app/common/common-warning';\nimport { ClaimDetailsDialog } from '@src/app/common/common-claim-details';\nimport { OrgComponent } from '@src/app/org/org.component';\nimport { CommonComponent } from '@src/app/common/common.component';\nimport { AutoGeneratedComponent } from '@src/app/auto-generated/auto-generated.component';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { MatGoogleMapsAutocompleteModule } from '@angular-material-extensions/google-maps-autocomplete';\nimport { AgmCoreModule } from '@agm/core';\n\n@NgModule({\n declarations: [\n AppComponent,\n LoginComponent, TwoFactorDialog,\n DashboardComponent, ClaimDialog, UnclaimDialog, ErrorDialog, WarningDialog, ClaimDetailsDialog,\n OrgComponent,\n CommonComponent,\n StartsWithPipe,\n MapToArrayPipe,\n AutoGeneratedComponent\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n BrowserAnimationsModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n GoogleMapsModule,\n HttpClientModule,\n HttpClientJsonpModule,\n MatButtonModule,\n MatChipsModule,\n MatSelectModule,\n MatFormFieldModule,\n MatInputModule,\n MatStepperModule,\n MatDividerModule,\n MatCardModule,\n MatGridListModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatSlideToggleModule,\n MatTableModule,\n MatCheckboxModule,\n MatProgressBarModule,\n MatToolbarModule,\n MatTooltipModule,\n MatPaginatorModule,\n MatDialogModule,\n FormsModule,\n MatIconModule,\n MatSnackBarModule,\n NgbModule,\n MatGoogleMapsAutocompleteModule,\n AgmCoreModule.forRoot()\n ],\n providers: [{\n provide: MatRadioModule,\n useValue: { color: 'accent' },\n }],\n bootstrap: [AppComponent]\n})\nexport class AppModule {\n // Diagnostic only: inspect router configuration\n constructor(router: Router) {\n // Use a custom replacer to display function names in the route configs\n const replacer = (key, value) => (typeof value === 'function') ? value.name : value;\n }\n}","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nexport interface WarningData {\n text: string,\n vlan_check: [\"\"],\n bigWarning: boolean\n}\n\n@Component({\n selector: 'common-warning',\n templateUrl: 'common-warning.html',\n})\nexport class WarningDialog {\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: WarningData\n ) { }\n ok(): void {\n this.dialogRef.close(true);\n }\n cancel(): void {\n this.dialogRef.close();\n }\n\n}","

Be careful

\n
\n
{{data.text}}
\n
\n
Details:
\n
    \n
  • {{element.reason}}
  • \n
\n
\n
\n
Warning:
\n
Changes may have impact on existing users, especially for users using PSK without VLAN.\n
\n
\n
\n\n
\n \n \n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-common',\n templateUrl: './common.component.html',\n styleUrls: ['./common.component.css']\n})\nexport class CommonComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","

common works!

\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'common-claim-details',\n templateUrl: 'common-claim-details.html',\n})\nexport class ClaimDetailsDialog {\n constructor(\n public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data) { }\n details = this.data;\n \n ngOnInit(){\n console.log(this.details)\n }\n cancel(): void {\n this.dialogRef.close();\n }\n}","

Claim Result Details

\n
\n
{{details | json}}
\n
\n\n
\n \n
","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConnectorService {\n private headersSource = new BehaviorSubject({});\n private cookiesSource = new BehaviorSubject({});\n private hostSource = new BehaviorSubject('');\n private selfSource = new BehaviorSubject({});\n private orgIdSource = new BehaviorSubject(\"\");\n private siteIdSource = new BehaviorSubject(\"\");\n private orgModeSource = new BehaviorSubject(false);\n private googleApiKey = new BehaviorSubject(\"\");\n\n headers = this.headersSource.asObservable();\n host = this.hostSource.asObservable();\n cookies = this.cookiesSource.asObservable();\n self = this.selfSource.asObservable();\n org_id = this.orgIdSource.asObservable();\n site_id = this.siteIdSource.asObservable();\n orgMode = this.orgModeSource.asObservable();\n google_api_key = this.googleApiKey.asObservable();\n\n constructor() { }\n\n headersSet(data: {}) {\n this.headersSource.next(data)\n }\n cookiesSet(data: {}) {\n this.cookiesSource.next(data)\n }\n hostSet(data: string) {\n this.hostSource.next(data)\n }\n selfSet(data: {}) {\n this.selfSource.next(data)\n }\n orgIdSet(data: string){\n this.orgIdSource.next(data)\n }\n siteIdSet(data:string){\n this.siteIdSource.next(data)\n }\n orgModeSet(data:boolean){\n this.orgModeSource.next(data)\n }\n googleApiKeySet(data:string){\n this.googleApiKey.next(data)\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nexport interface DeviceElement {\n mac: string;\n model: string;\n serial: string;\n connected: boolean;\n type: string; \n deviceprofile_name: string;\n height: Int16Array;\n map_id: string;\n name: string;\n orientation: Int16Array;\n site_id: string;\n site_name: string;\n x:Int16Array;\n y: Int16Array;\n }\n\n@Component({\n selector: 'common-unclaim',\n templateUrl: 'common-unclaim.html',\n})\nexport class UnclaimDialog {\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: DeviceElement\n ) { }\n\n confirm(device_mac) {\n this.dialogRef.close(device_mac)\n }\n cancel(): void {\n this.dialogRef.close();\n }\n\n}","

Delete Device

\n
\n This will delete the Device {{data.mac}}. Do you confirm?\n
\n
\n \n \n
","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'startsWith' })\nexport class StartsWithPipe implements PipeTransform {\n transform(fullText: string, textMatch: string): boolean {\n return fullText.startsWith(textMatch);\n }\n}\n\n@Pipe({ name: 'mapToArray' })\nexport class MapToArrayPipe implements PipeTransform {\n transform(value, args: string[]): any {\n let arr = [];\n for (let key in value) {\n arr.push({ key: key, value: value[key] });\n }\n return arr;\n }\n}","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\n\nimport { LoginComponent } from './login/login.component';\nimport { DashboardComponent } from './dashboard/dashboard.component';\nimport { OrgComponent } from './org/org.component';\n\n\nconst routes: Routes = [\n { path: 'login', component: LoginComponent },\n { path: 'select', component: OrgComponent },\n { path: 'dashboard', component: DashboardComponent },\n { path: '', redirectTo: '/login', pathMatch: 'full' }, // redirect to `first-component`\n { path: '**', redirectTo: '/login' }, // redirect to `first-component`\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { HttpClient } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { FormBuilder } from '@angular/forms';\nimport { ConnectorService } from '../connector.service';\nimport {PlatformLocation} from '@angular/common';\nimport { TwoFactorDialog } from './login-2FA';\n\nexport interface TwoFactorData {\n twoFactor: string;\n}\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.css']\n})\n\n\nexport class LoginComponent implements OnInit {\n\n constructor(private _formBuilder: FormBuilder, private _http: HttpClient, private _router: Router, private _appService: ConnectorService, public _dialog: MatDialog, private _platformLocation: PlatformLocation\n ) { }\n\n host = null;\n headers = {};\n cookies = {};\n self = {};\n show_github_fork_me : boolean = false;\n hostnames_to_show_github_fork_me = [ \"mso.mist-lab.fr\"]\n loading: boolean;\n hosts = [\n { value: 'api.mist.com', viewValue: 'US - manage.mist.com' },\n { value: 'api.eu.mist.com', viewValue: 'EU - manage.eu.mist.com' },\n { value: 'api.gc1.mist.com', viewValue: 'GCP - manage.gc1.mist.com' }\n ];\n\n // LOGIN FORM\n frmStepLogin = this._formBuilder.group({\n host: [''],\n credentials: this._formBuilder.group({\n email: [''],\n password: [''],\n }),\n token: [''],\n });\n error_mess = {\n \"credentials\": \"\",\n \"token\": \"\"\n }\n\n\n //// INIT ////\n ngOnInit(): void {\n if (this.hostnames_to_show_github_fork_me.indexOf(this._platformLocation.hostname) >= 0){ \n this.show_github_fork_me = true;\n }\n this.frmStepLogin = this._formBuilder.group({\n host: ['api.mist.com'],\n credentials: this._formBuilder.group({\n email: [''],\n password: [''],\n }),\n token: [\"\"],\n });\n this._http.get('/api/gap').subscribe({\n next: data => this._appService.googleApiKeySet(data.gap),\n error: error => console.error(\"Unable to load the Google API Key... Maps won't be available...\") \n })\n }\n\n //// COMMON ////\n check_host(): boolean {\n if (this.frmStepLogin.value.host != '') {\n return true;\n } else {\n return false;\n }\n }\n\n // RESET AUTHENTICATION FORM\n reset_response(): void {\n this.host = null;\n this._appService.headersSet({});\n this._appService.cookiesSet({});\n this._appService.selfSet({});\n this._appService.hostSet(this.host);\n this.reset_error_mess();\n }\n reset_error_mess(): void{\n this.error_mess = {\n \"credentials\": \"\",\n \"token\": \"\"\n }\n }\n\n // PARSE AUTHENTICATION RESPONSE FROM SERVER\n parse_response(data): void {\n if (\"error\" in data) {\n this.loading = false;\n this.error_mess[\"username\"] = data.error;\n } else if (\"data\" in data) {\n if (\"detail\" in data.data) {\n this.error_message(data[\"method\"], data.data.detail);\n } else if (\"two_factor_required\" in data.data && \"two_factor_passed\" in data.data) {\n if (data.data[\"two_factor_required\"] == false) {\n this.authenticated(data)\n } else if (data.data[\"two_factor_passed\"] == true) {\n this.authenticated(data)\n } else {\n this.open2FA()\n }\n } else {\n this.authenticated(data)\n }\n }\n }\n\n // WHEN AUTHENTICATION IS NOT OK\n error_message(method, message): void {\n this.loading = false;\n this.error_mess[method] = message;\n }\n\n\n // WHEN AUTHENTICATION IS OK\n authenticated(data): void {\n this._appService.headersSet(data.headers);\n this._appService.cookiesSet(data.cookies);\n this._appService.hostSet(data.host);\n this._appService.selfSet(data.data)\n this.loading = false; \n this._router.navigate(['/select']);\n }\n\n //// AUTHENTICATION ////\n submitCredentials(): void {\n this.reset_response();\n if (this.check_host()) {\n this.loading = true;\n this._http.post('/api/login/', { host: this.frmStepLogin.value.host, email: this.frmStepLogin.value.credentials.email, password: this.frmStepLogin.value.credentials.password }).subscribe({\n next: data => this.parse_response(data),\n error: error => this.error_message(\"credentials\", error.error.message) \n })\n }\n }\n submitToken(): void {\n this.reset_response();\n if (this.check_host()) {\n this.loading = true;\n this._http.post('/api/login/', { host: this.frmStepLogin.value.host, token: this.frmStepLogin.value.token }).subscribe({\n next: data => this.parse_response(data),\n error: error => this.error_message(\"credentials\", error.error.message)\n })\n }\n }\n submit2FA(twoFactor: number): void {\n if (this.check_host()) {\n this.loading = true;\n this._http.post('/api/login/', { host: this.frmStepLogin.value.host, email: this.frmStepLogin.value.credentials.email, password: this.frmStepLogin.value.credentials.password, two_factor: twoFactor }).subscribe({\n next: data => this.parse_response(data),\n error: error => this.error_message(\"credentials\", error.error.message) \n })\n }\n }\n\n //// DIALOG BOX ////\n open2FA(): void {\n const dialogRef = this._dialog.open(TwoFactorDialog, {});\n dialogRef.afterClosed().subscribe(result => {\n this.submit2FA(result)\n });\n }\n}","\n\n
\n
\n
\n
\n \n Mist Cloud\n \n \n {{host.viewValue}}\n \n \n \n
\n
\n \n \n \n
\n\n
\n\n
\n

Access with Login/Password

\n \n Email\n \n \n\n \n Password\n \n \n
\n {{error_mess.credentials}}\n
\n
\n \n
\n
\n \n \n \n
\n
\n

Access with API Token

\n \n API Token\n \n \n
\n {{error_mess.token}}\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n\n
\n \"Fork\n
","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"]} \ No newline at end of file +{"version":3,"sources":["webpack:///src/app/login/login-2FA.ts","webpack:///src/app/login/login-2fa.html","webpack:///src/app/auto-generated/auto-generated.component.ts","webpack:///src/app/auto-generated/auto-generated.component.html","webpack:///src/app/common/common-claim.ts","webpack:///src/app/common/common-claim.html","webpack:///src/environments/environment.ts","webpack:///src/app/org/org.component.ts","webpack:///src/app/org/org.component.html","webpack:///src/app/common/common-error.ts","webpack:///src/app/common/common-error.html","webpack:///src/app/dashboard/dashboard.component.ts","webpack:///src/app/dashboard/dashboard.component.html","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/app.module.ts","webpack:///src/app/common/common-warning.ts","webpack:///src/app/common/common-warning.html","webpack:///src/app/common/common.component.ts","webpack:///src/app/common/common.component.html","webpack:///src/app/common/common-claim-details.ts","webpack:///src/app/common/common-claim-details.html","webpack:///src/app/connector.service.ts","webpack:///src/app/common/common-unclaim.ts","webpack:///src/app/common/common-unclaim.html","webpack:///src/app/common/common-pipes.ts","webpack:///src/app/app-routing.module.ts","webpack:///src/app/login/login.component.ts","webpack:///src/app/login/login.component.html","webpack:///src/main.ts","webpack:///$_lazy_route_resource lazy namespace object"],"names":["TwoFactorDialog","dialogRef","close","twoFactor","close2FA","cancel2FA","selector","templateUrl","AutoGeneratedComponent","styleUrls","ClaimDialog","_http","_dialog","data","claimCodes","claimButtonDisabled","inputClaimCodes","body","isDone","claimResult","isWorking","regex","split","forEach","element","claim","replace","trim","toUpperCase","length","newClaim","code","success","reason","duplicated","valid","processed","match","push","check_issues","claimCode","index","indexOf","splice","issues","invalid","duplicated_codes","claim_codes","post","subscribe","next","results","error","message","openError","open","afterClosed","result","console","log","environment","production","OrgComponent","_appService","_router","headers","cookies","host","self","search","orgs","sites","orgMode","selected_org_obj","id","name","org_id","site_id","me","adminMode","map","options","scrollwheel","disableDefaultUI","draggable","draggableCursor","clickableIcons","zoom","claimDisabled","topBarLoading","noSiteToDisplay","tmp_orgs","role","sortList","changeOrg","loadSites","parseSites","gotoDash","site","siteIdSet","orgModeSet","orgIdSet","navigate","attribute","sort","a","b","nameA","nameB","ErrorDialog","ok","DashboardComponent","_formBuilder","_snackBar","frmPort","group","mode","all_networks","networks","port_network","port_auth","enable_mac_auth","guest_network","bypass_auth_when_server_down","speed","duplex","autoneg","mac_limit","stp_edge","mtu","enabled","poe","description","voip_network","storm_control","defaultConfig","disable_autoneg","disabled","poe_disabled","maps","deviceLoading","editingDevice","editingDeviceSettings","editingPorts","editingPortNames","editingPortsStatus","displayedPorts","devices","resultsLength","displayedColumns","source","getDevices","_subscription","s","unsubscribe","full","tmp","mac","filteredDevicesDatabase","paginator","device","_discardDevice","_getDeviceSettings","_getPortStatus","device_id","ports","_discardPorts","member","percentage","power_draw","max_power","device_mac","portName","port","selectPort","includes","_deletePort","_setPortFields","_addPort","_setDefaultPortFielts","indexName","get","value","port_config","openSnackBar","reset","updateFrmDeviceValues","port_usage","config","usage","port_usages","key","controls","setValue","event","filterValue","target","toLowerCase","filter","firstPage","action","duration","horizontalPosition","verticalPosition","back","AppComponent","title","AppModule","router","replacer","provide","useValue","color","forRoot","declarations","imports","providers","bootstrap","WarningDialog","cancel","CommonComponent","ClaimDetailsDialog","details","ConnectorService","headersSource","cookiesSource","hostSource","selfSource","orgIdSource","siteIdSource","orgModeSource","googleApiKey","asObservable","google_api_key","providedIn","UnclaimDialog","confirm","StartsWithPipe","fullText","textMatch","startsWith","MapToArrayPipe","args","arr","routes","path","component","redirectTo","pathMatch","AppRoutingModule","relativeLinkResolution","exports","LoginComponent","_platformLocation","hosts","viewValue","frmStepLogin","credentials","email","password","token","error_mess","googleApiKeySet","gap","disclaimer","github_url","docker_url","headersSet","cookiesSet","selfSet","hostSet","reset_error_mess","loading","error_message","detail","authenticated","open2FA","method","reset_response","check_host","parse_response","two_factor","submit2FA","submitCredentials","submitToken","bootstrapModule","err","webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","keys","module"],"mappings":"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","file":"main-es5.js","sourcesContent":["import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'login-2fa',\n templateUrl: 'login-2fa.html',\n})\nexport class TwoFactorDialog {\n public twoFactor: string;\n constructor(public dialogRef: MatDialogRef) { }\n\n close2FA() {\n this.dialogRef.close(this.twoFactor);\n }\n cancel2FA(): void {\n this.dialogRef.close();\n }\n}","\n

2FA Code Required

\n
\n \n Code\n \n \n
\n
\n \n \n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-auto-generated',\n templateUrl: './auto-generated.component.html',\n styleUrls: ['./auto-generated.component.css']\n})\nexport class AutoGeneratedComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","

auto-generated works!

\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\nimport { HttpClient } from '@angular/common/http';\nimport { ErrorDialog } from './common-error';\nimport { ClaimDetailsDialog } from './common-claim-details'\n\nexport interface ClaimCodeElement {\n code: string;\n duplicated: boolean;\n valid: boolean;\n success: boolean;\n reason: string;\n processed: boolean;\n}\n\n@Component({\n selector: 'common-claim',\n templateUrl: 'common-claim.html',\n})\nexport class ClaimDialog {\n constructor(\n public dialogRef: MatDialogRef, private _http: HttpClient, public _dialog: MatDialog, @Inject(MAT_DIALOG_DATA) public data) { }\n claimCodes: ClaimCodeElement[] = [];\n claimButtonDisabled: boolean = true;\n inputClaimCodes: string = \"\";\n body = this.data.body;\n isDone = false;\n claimResult = {};\n isWorking = false;\n\n add(): void {\n var regex = /^[0-9a-zA-Z]{5}-?[0-9a-zA-Z]{5}-?[0-9a-zA-Z]{5}$/i;\n this.inputClaimCodes.split(/[\\s,; ]+/).forEach(element => {\n var claim = element.replace(\";\", \"\").replace(\",\", \"\").trim().toUpperCase();\n if (claim.length > 0) {\n var newClaim = { code: claim, success: null, reason: null, duplicated: false, valid: false, processed: false };\n if (newClaim.code.match(regex)) {\n newClaim.valid = true;\n }\n this.claimCodes.forEach(element => {\n if (element.code == newClaim.code) {\n element.duplicated = true;\n newClaim.duplicated = true;\n }\n })\n this.claimCodes.push(newClaim);\n }\n })\n this.check_issues();\n this.inputClaimCodes = \"\";\n }\n\n edit(claimCode: ClaimCodeElement): void {\n this.inputClaimCodes = claimCode.code;\n var index = this.claimCodes.indexOf(claimCode)\n this.claimCodes.splice(index, 1)\n }\n\n check_issues(): void {\n var issues = {\n invalid: [],\n duplicated: []\n };\n this.claimCodes.forEach(element => {\n if (element.valid == false) {\n issues.invalid.push(element.code);\n }\n if (element.duplicated == true) {\n issues.duplicated.push(element.code);\n }\n })\n if (this.claimCodes.length > 0 && issues.duplicated.length == 0 && issues.invalid.length == 0) {\n this.claimButtonDisabled = false;\n } else {\n this.claimButtonDisabled = true;\n }\n }\n\n remove(claimCode: ClaimCodeElement): void {\n var duplicated_codes = [];\n var index = -1;\n // remove the claim code\n index = this.claimCodes.indexOf(claimCode);\n if (index >= 0) {\n this.claimCodes.splice(index, 1);\n }\n // if the removed claim code has the duplicated flag\n if (claimCode.duplicated) {\n // find other same codes\n this.claimCodes.forEach(element => {\n if (element.code == claimCode.code) {\n duplicated_codes.push(element);\n }\n })\n // if only one other same code, remove the duplicated flash\n if (duplicated_codes.length == 1) {\n index = this.claimCodes.indexOf(duplicated_codes[0]);\n this.claimCodes[index].duplicated = false;\n }\n }\n // check issues for \"claim\" button\n this.check_issues()\n }\n\n // CLAIM NEW CODES\n confirm(): void {\n this.isWorking = true;\n this.isDone = true;\n // Add claim codes to request body\n this.body.claim_codes = [];\n this.claimCodes.forEach(element => {\n this.body.claim_codes.push(element.code)\n })\n // Send request to server\n this._http.post('/api/devices/claim/', this.body).subscribe({\n next: data => {\n // retrieve result data\n this.claimResult = data.results;\n this.claimCodes.forEach(element => {\n element.processed = true;\n var index = -1;\n // if code added to account\n if (this.claimResult[\"added\"].indexOf(element.code) >= 0) {\n element.success = true;\n // if error when adding the code\n } else if (this.claimResult[\"error\"].indexOf(element.code) >= 0) {\n index = this.claimResult[\"error\"].indexOf(element.code);\n element.success = false;\n element.reason = this.claimResult[\"reason\"][index]\n // if code already claimed somewhere\n } else if (this.claimResult[\"duplicated\"].indexOf(element.code) >= 0) {\n element.success = false;\n element.reason = \"Already Claimed\"\n }\n })\n this.isWorking = false;\n },\n error: error => {\n var message: string = \"Unable to create claim the devices... \"\n if (\"error\" in error) { message += error[\"error\"][\"message\"] }\n this.openError(message)\n this.isWorking = false;\n }\n })\n }\n\n\n // EXIT\n cancel(): void {\n this.dialogRef.close();\n }\n // DIALOG BOXES\n // Restart Claim Process\n reset(): void {\n const dialogRef = this._dialog.open(ClaimDialog, {\n data: { body: this.body }\n })\n dialogRef.afterClosed().subscribe(result => {\n this.dialogRef.close();\n })\n }\n // DETAILS\n details(): void {\n console.log(this.claimResult);\n const dialogRef = this._dialog.open(ClaimDetailsDialog, {\n data: this.claimResult\n })\n\n }\n // ERROR\n openError(message: string): void {\n const dialogRef = this._dialog.open(ErrorDialog, {\n data: message\n });\n }\n\n\n}\n\n\n\n","\n

Claim new devices

\n
\n
HINT: you can paste mutliple claim codes separated by a SPACE, a COMMA or a SEMICOLUMN
\n
\n \n Claim Code\n \n \n \n
\n
\n
0\" fxFlex=\"1 1 0\" fxLayout=\"row wrap\" style=\"width: 100%;\">\n \n \n \n \n
\n
\n check_circle\n
\n
\n warning\n
\n
\n warning\n
\n
\n content_copy\n
\n \n \n
\n
\n
\n
\n
\n\n
\n \n \n \n \n \n
","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { Component, OnInit } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { ConnectorService } from '../connector.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ErrorDialog } from './../common/common-error';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-org',\n templateUrl: './org.component.html',\n styleUrls: ['./org.component.css']\n})\nexport class OrgComponent implements OnInit {\n\n headers = {};\n cookies = {};\n host = '';\n self = {};\n search = \"\";\n orgs = [];\n sites = [];\n orgMode: boolean = false;\n selected_org_obj = {\n id: \"\",\n name: \"\"\n };\n org_id: string = \"\";\n site_id: string = \"\";\n me: string = \"\";\n adminMode: boolean = false;\n map = {\n options: {\n scrollwheel: false,\n disableDefaultUI: true,\n draggable: false,\n draggableCursor: \"pointer\",\n clickableIcons: false\n },\n zoom: 12\n }\n\n apiLoaded: Observable;\n claimDisabled: boolean = true;\n topBarLoading = false;\n noSiteToDisplay = false;\n constructor(private _http: HttpClient, private _appService: ConnectorService, public _dialog: MatDialog, private _router: Router) { }\n\n\n ngOnInit() {\n this._appService.headers.subscribe(headers => this.headers = headers)\n this._appService.cookies.subscribe(cookies => this.cookies = cookies)\n this._appService.host.subscribe(host => this.host = host)\n this._appService.self.subscribe(self => this.self = self || {})\n this._appService.org_id.subscribe(org_id => this.org_id = org_id)\n this.me = this.self[\"email\"] || null\n\n var tmp_orgs: string[] = []\n\n // parsing all the orgs/sites from the privileges\n // only orgs with admin/write/installer roles are used\n if (this.self != {} && this.self[\"privileges\"]) {\n this.self[\"privileges\"].forEach(element => {\n if (element[\"role\"] == \"admin\" || element[\"role\"] == \"write\") {\n if (element[\"scope\"] == \"org\") {\n if (tmp_orgs.indexOf(element[\"org_id\"]) < 0) {\n this.orgs.push({ id: element[\"org_id\"], name: element[\"name\"], role: element[\"role\"] })\n tmp_orgs.push(element[\"org_id\"])\n }\n } else if (element[\"scope\"] == \"site\") {\n if (tmp_orgs.indexOf(element[\"org_id\"]) < 0) {\n this.orgs.push({ id: element[\"org_id\"], name: element[\"org_name\"], role: element[\"role\"] })\n tmp_orgs.push(element[\"org_id\"])\n }\n }\n }\n });\n this.orgs = this.sortList(this.orgs, \"name\");\n }\n\n // if only one, using it by default\n if (!this.org_id && this.orgs.length == 1) {\n this.org_id = this.orgs[1][\"id\"]\n }\n // if back button used, retrieving previously selected org\n // or if only one org, loading it automatically\n if (this.org_id) {\n this.orgs.forEach(element => {\n if (element.id == this.org_id) {\n this.selected_org_obj = element;\n this.changeOrg();\n }\n })\n }\n }\n\n // when the user selects a new org\n // disabling the admin mode\n // and loading the sites\n changeOrg() {\n this.loadSites();\n }\n\n // loads the org sites\n loadSites() {\n this.org_id = this.selected_org_obj.id\n this.topBarLoading = true;\n this.claimDisabled = true;\n this.sites = [];\n this._http.post('/api/sites/', { host: this.host, cookies: this.cookies, headers: this.headers, org_id: this.org_id}).subscribe({\n next: data => this.parseSites(data),\n error: error => {\n var message: string = \"There was an error... \"\n if (\"error\" in error) {\n message += error[\"error\"][\"message\"]\n }\n this.topBarLoading = false;\n this.openError(message)\n }\n })\n }\n\n // parse the org sites from HTTP response\n parseSites(data) {\n if (data.sites.length > 0) {\n this.noSiteToDisplay = false;\n this.sites = this.sortList(data.sites, \"name\");\n this.claimDisabled = false;\n } else {\n this.noSiteToDisplay = true;\n }\n this.topBarLoading = false;\n }\n\n\n\n\n // ROUTING FUNCTION\n // used when user wants to claim devices to org\n setOrg(): void {\n this.orgMode = true;\n this.gotoDash(); \n }\n // used when user wants to claim devices to site\n setSite(site): void {\n if (site != null) {\n this.site_id = site.id;\n } else {\n this.site_id = \"\";\n }\n this.orgMode = true;\n this._appService.siteIdSet(this.site_id);\n this.gotoDash();\n }\n // publish variables and go to the dashboard\n gotoDash(): void { \n this._appService.orgModeSet(this.orgMode)\n this._appService.orgIdSet(this.org_id);\n this._router.navigate([\"/dashboard\"]);\n }\n\n\n // COMMON\n sortList(data, attribute) {\n return data.sort(function (a, b) {\n var nameA = a[attribute].toUpperCase(); // ignore upper and lowercase\n var nameB = b[attribute].toUpperCase(); // ignore upper and lowercase\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n })\n }\n\n // DIALOG BOXES\n // ERROR\n openError(message: string): void {\n const dialogRef = this._dialog.open(ErrorDialog, {\n data: message\n });\n }\n}\n","\n
\n
\n \n Organization\n \n \n {{selected_org_obj.name}}\n \n \n {{org.role}}\n {{org.name}}\n \n \n \n\n
\n
\n
\n \n
\n
\n \n \n Please Select an Organization\n \n \n \n
\n You don't have access to any Site in this Organization. Please chose another Organization.\n
\n
\n Only the Sites with \"Administrator\" authorization are listed.\n
\n
\n
\n
\n \n
\n \n {{site.name}}\n \n \n
{{site.address}}
\n
\n
\n
\n \n \n \n Test\n \n \n
\n
\n
\n\n
","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nexport interface ErrorData {\n message: string\n}\n\n@Component({\n selector: 'common-error',\n templateUrl: 'common-error.html',\n})\nexport class ErrorDialog {\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: ErrorData\n ) { }\n ok(): void {\n this.dialogRef.close();\n }\n\n}","

Oops...

\n
\n {{data}}\n
\n
\n \n
","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { HttpClient } from '@angular/common/http';\nimport { FormBuilder, Validators, FormControl } from '@angular/forms';\nimport { Router } from '@angular/router';\n\nimport { MatPaginator } from '@angular/material/paginator';\n\nimport { ErrorDialog } from '../common/common-error';\n\n\nimport { ConnectorService } from '../connector.service';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { interval, Subscription } from 'rxjs';\nimport { element } from 'protractor';\n\n\n// Configuration element from Devices Details\nexport interface DeviceDetailsElement {\n managed: boolean,\n role: string,\n notes: string,\n ip_config: IpConfigElement,\n oob_ip_config: IpConfigElement,\n disable_auto_config: boolean,\n networks: object,\n port_usages: object,\n additional_config_cmds: string[],\n id: string,\n name: string,\n site_id: string,\n org_id: string,\n created_time: number,\n modified_time: number,\n map_id: string | null,\n mac: string,\n serial: string,\n model: string,\n hw_rev: string,\n type: string,\n tag_uuid: string | null,\n tag_id: number | null,\n deviceprofile_id: string | null\n}\n\nexport interface IpConfigElement {\n type: string,\n ip: string | null,\n netmask: string | null,\n gateway: string | null,\n dns: string[] | null,\n dns_suffix: string | null,\n network: string\n}\n\nexport interface PortElement {\n mode: string,\n all_networks: boolean,\n networks: string[],\n port_network: string,\n port_auth: string,\n enable_mac_auth: string,\n guest_network: string,\n bypass_auth_when_server_down: boolean,\n speed: string,\n duplex: string,\n disable_autoneg: boolean,\n mac_limit: number,\n stp_edge: boolean,\n mtu: number,\n disabled: boolean,\n poe_disabled: boolean,\n description: string,\n voip_network: string,\n storm_control: {}\n}\n\n\n// Configuration Elements derived from the site\nexport interface DerivedElement {\n additional_config_cmds: string[],\n network: object,\n port_usages: object,\n switch_matching: SwitchMatchingElement,\n vars: object\n\n}\nexport interface SwitchMatchingElement {\n element: boolean,\n riles: object[]\n}\n\n// Device Elements for the list\nexport interface DeviceElement {\n id: string,\n site_id: string,\n org_id: string,\n mac: string,\n vc_mac: string,\n model: string,\n type: string,\n serial: string,\n status: string,\n members: object[]\n}\n\nexport interface MistDevices {\n results: DeviceElement[];\n total: number;\n limit: number;\n page: number;\n}\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.css']\n})\n\n\nexport class DashboardComponent implements OnInit {\n\n frmPort = this._formBuilder.group({\n mode: \"access\",\n all_networks: false,\n networks: [],\n port_network: \"default\",\n port_auth: \"\",\n enable_mac_auth: \"\",\n guest_network: \"\",\n bypass_auth_when_server_down: false,\n speed: [\"auto\"],\n duplex: [\"auto\"],\n autoneg: true,\n mac_limit: 0,\n stp_edge: true,\n mtu: 1514,\n enabled: true,\n poe: true,\n description: \"\",\n voip_network: \"\",\n storm_control: {}\n })\n\n defaultConfig = {\n mode: \"access\",\n all_networks: false,\n networks: [],\n port_network: \"\",\n port_auth: \"\",\n enable_mac_auth: \"\",\n guest_network: \"\",\n bypass_auth_when_server_down: false,\n speed: \"auto\",\n duplex: \"auto\",\n disable_autoneg: false,\n mac_limit: 0,\n stp_edge: true,\n mtu: 1514,\n disabled: false,\n poe_disabled: false,\n description: \"\",\n voip_network: \"\",\n storm_control: {}\n }\n\n headers = {};\n cookies = {};\n host = '';\n self = {};\n search = \"\";\n orgs = [];\n sites = [];\n maps = [];\n org_id: string = \"\";\n orgMode: boolean = false;\n site_id: string = \"__any__\";\n me: string = \"\";\n\n topBarLoading = false;\n deviceLoading = false;\n\n editingDevice = null;\n editingDeviceSettings = null;\n editingPorts = [];\n editingPortNames = [];\n editingPortsStatus = {}\n displayedPorts = {}\n\n filteredDevicesDatabase: MatTableDataSource | null;\n devices: DeviceElement[] = []\n\n resultsLength = 0;\n displayedColumns: string[] = [\"device\"];\n private _subscription: Subscription\n\n @ViewChild(MatPaginator) paginator: MatPaginator;\n\n constructor(private _router: Router, private _http: HttpClient, private _appService: ConnectorService, public _dialog: MatDialog, private _formBuilder: FormBuilder, private _snackBar: MatSnackBar) { }\n\n //////////////////////////////////////////////////////////////////////////////\n ///// INIT\n //////////////////////////////////////////////////////////////////////////////\n\n ngOnInit() {\n const source = interval(60000);\n\n this._appService.headers.subscribe(headers => this.headers = headers)\n this._appService.cookies.subscribe(cookies => this.cookies = cookies)\n this._appService.host.subscribe(host => this.host = host)\n this._appService.self.subscribe(self => this.self = self || {})\n this._appService.org_id.subscribe(org_id => this.org_id = org_id)\n this._appService.site_id.subscribe(site_id => this.site_id = site_id)\n this._appService.orgMode.subscribe(orgMode => this.orgMode = orgMode)\n \n this.getDevices();\n\n this._subscription = source.subscribe(s => this.getDevices());\n\n }\n\n ngOnDestroy() {\n this._subscription.unsubscribe();\n }\n\n\n //////////////////////////////////////////////////////////////////////////////\n ///// LOAD DEVICE LIST\n //////////////////////////////////////////////////////////////////////////////\n\n getDevices() {\n var body = null\n body = { host: this.host, cookies: this.cookies, headers: this.headers, site_id: this.site_id, full: true }\n\n if (body) {\n this.topBarLoading = true;\n this._http.post('/api/devices/', body).subscribe({\n next: data => {\n var tmp: DeviceElement[] = []\n data[\"results\"].forEach(element => {\n if (this.editingDevice && this.editingDevice.mac == element.mac) {\n this.editingDevice = element;\n }\n });\n this.filteredDevicesDatabase = new MatTableDataSource(data[\"results\"]);\n\n this.filteredDevicesDatabase.paginator = this.paginator;\n this.topBarLoading = false;\n },\n error: error => {\n var message: string = \"There was an error... \"\n if (\"error\" in error) { message += error[\"error\"][\"message\"] }\n this.openError(message)\n }\n })\n\n }\n }\n\n //////////////////////////////////////////////////////////////////////////////\n ///// EDIT DEVICE\n //////////////////////////////////////////////////////////////////////////////\n editDevice(device: DeviceElement): void {\n if (device == this.editingDevice) {\n this._discardDevice();\n }\n else {\n this._discardDevice();\n this.editingDevice = device;\n this._getDeviceSettings()\n this._getPortStatus()\n }\n }\n\n _getDeviceSettings(): void {\n this.deviceLoading = true\n this._http.post('/api/devices/settings/', {\n host: this.host,\n cookies: this.cookies,\n headers: this.headers,\n site_id: this.site_id,\n device_id: this.editingDevice.id\n }).subscribe({\n next: data => {\n this.editingDeviceSettings = data\n this.displayedPorts = data.ports\n this.deviceLoading = false\n this.editingPorts = []\n this.editingPortNames.forEach(element => {\n this.editingPorts.push(this.editingDeviceSettings.ports[element])\n })\n },\n error: error => {\n this.deviceLoading = false\n var message: string = \"Unable to load settings for the Device \" + this.editingDevice.mac + \"... \"\n if (\"error\" in error) { message += error[\"error\"][\"message\"] }\n this.openError(message)\n }\n })\n }\n\n\n _discardDevice(): void {\n this.editingDevice = null;\n this.editingDeviceSettings = null;\n this.editingPorts = [];\n this.editingPortNames = [];\n this.displayedPorts = {};\n this._discardPorts()\n }\n \n powerDraw(member) {\n var percentage = (member.poe.power_draw / member.poe.max_power) * 100\n return percentage\n }\n \n //////////////////////////////////////////////////////////////////////////////\n ///// Ports Status\n //////////////////////////////////////////////////////////////////////////////\n \n _getPortStatus(): void {\n this._http.post('/api/devices/portstatus/', {\n host: this.host,\n cookies: this.cookies,\n headers: this.headers,\n site_id: this.site_id,\n device_mac: this.editingDevice.mac\n }).subscribe({\n next: data => {\n this.editingPortsStatus = data.result\n },\n error: error => {\n this.deviceLoading = false\n var message: string = \"Unable to load ports status for the Device \" + this.editingDevice.mac + \"... \"\n if (\"error\" in error) { message += error[\"error\"][\"message\"] }\n this.openError(message)\n }\n })\n }\n //////////////////////////////////////////////////////////////////////////////\n ///// EDIT Port\n //////////////////////////////////////////////////////////////////////////////\n selectPortFromSwitchView(portName): void {\n let port = this.editingDeviceSettings.ports[portName]\n this.selectPort(port)\n }\n \n selectPort(port): void {\n if (this.editingPorts.includes(port)) {\n this._deletePort(port);\n if (this.editingPorts.length == 1) {\n this._setPortFields(this.editingPorts[0])\n }\n }\n else {\n this._addPort(port);\n if (this.editingPorts.length == 1) {\n this._setPortFields(this.editingPorts[0])\n } else if (this.editingPorts.length == 2) {\n this._setDefaultPortFielts()\n }\n }\n }\n \n // ADD or REMOVE ports from the editing list\n _addPort(port): void {\n this.editingPorts.push(port);\n this.editingPortNames.push(port.port)\n }\n _deletePort(port): void {\n let index = this.editingPorts.indexOf(port)\n this.editingPorts.splice(index, 1)\n let indexName = this.editingPortNames.indexOf(port.port)\n this.editingPortNames.splice(indexName, 1)\n if (this.editingPorts.length == 0) {\n this._discardPorts()\n }\n }\n \n savePorts(): void {\n this.editingPorts.forEach(element => {\n element[\"new_conf\"] = {\n \"mode\": this.frmPort.get(\"mode\").value,\n \"all_networks\": this.frmPort.get(\"all_networks\").value,\n \"networks\": this.frmPort.get(\"networks\").value,\n \"port_network\": this.frmPort.get(\"port_network\").value,\n \"port_auth\": this.frmPort.get(\"port_auth\").value,\n \"enable_mac_auth\": this.frmPort.get(\"enable_mac_auth\").value,\n \"guest_network\": this.frmPort.get(\"guest_network\").value,\n \"bypass_auth_when_server_down\": this.frmPort.get(\"bypass_auth_when_server_down\").value,\n \"autoneg\": this.frmPort.get(\"autoneg\").value,\n \"mac_limit\": this.frmPort.get(\"mac_limit\").value,\n \"stp_edge\": this.frmPort.get(\"stp_edge\").value,\n \"mtu\": this.frmPort.get(\"mtu\").value,\n \"disabled\": this.frmPort.get(\"enabled\").value == false,\n \"poe_disabled\": this.frmPort.get(\"poe\").value == false,\n \"description\": this.frmPort.get(\"description\").value,\n \"voip_network\": this.frmPort.get(\"voip_network\").value,\n \"storm_control\": this.frmPort.get(\"storm_control\").value,\n \"duplex\": this.frmPort.get(\"duplex\").value,\n \"speed\": this.frmPort.get(\"speed\").value\n }\n })\n if (this.frmPort.valid) {\n this.topBarLoading = true\n var body = {\n host: this.host,\n cookies: this.cookies,\n headers: this.headers,\n site_id: this.site_id,\n org_id: this.org_id,\n port_config: this.editingPorts,\n device_id: this.editingDevice.id\n }\n this._http.post('/api/devices/update/', body).subscribe({\n next: data => {\n this.topBarLoading = false\n //this.updateFrmDeviceValues(data.result)\n this._getDeviceSettings()\n this.openSnackBar(\"Device \" + this.editingDevice.mac + \" successfully updated\", \"Done\")\n },\n error: error => {\n this.topBarLoading = false\n var message: string = \"Unable to save changes on Device \" + this.editingDevice.mac + \"... \"\n if (\"error\" in error) { message += error[\"error\"][\"message\"] }\n this.openError(message)\n }\n })\n }\n }\n // Reset the ports selection and form\n _discardPorts(): void {\n this.editingPorts = []\n this.editingPortNames = []\n this.frmPort.reset()\n }\n\n // Set Port Form values\n _setDefaultPortFielts(): void {\n this.updateFrmDeviceValues(this.defaultConfig)\n }\n _setPortFields(port): void {\n var port_usage = \"\"\n // copy default values\n var config = { ...this.defaultConfig }\n // getting the port_usage profile name at the switch level, and, if none, at the site level\n if (\"usage\" in port.device) {\n port_usage = port.device.usage\n } else if (\"usage\" in port.site) {\n port_usage = port.site.usage\n }\n // if there is a configured port_usage, retrieving its configuration at the switch level, and\n // if none, at the site level\n if (port_usage) {\n var port_config = {}\n if (port_usage in this.editingDeviceSettings.device.port_usages) {\n port_config = this.editingDeviceSettings.device.port_usages[port_usage]\n }\n else if (port_usage in this.editingDeviceSettings.site.port_usages) {\n port_config = this.editingDeviceSettings.site.port_usages[port_usage]\n }\n // setting the config object with the port_usage settings\n for (var key in port_config) {\n config[key] = port_config[key]\n }\n }\n this.updateFrmDeviceValues(config)\n }\n\n canbeChecked(portName): boolean {\n return this.editingPortNames.includes(portName);\n }\n //////////////////////////////////////////////////////////////////////////////\n ///// COMMON\n //////////////////////////////////////////////////////////////////////////////\n updateFrmDeviceValues(config: PortElement): void {\n this.frmPort.reset()\n this.frmPort.controls[\"port_network\"].setValue(config.port_network)\n this.frmPort.controls[\"autoneg\"].setValue(config.disable_autoneg == false)\n this.frmPort.controls[\"enabled\"].setValue(config.disabled == false)\n this.frmPort.controls[\"poe\"].setValue(config.poe_disabled == false)\n if (config.disable_autoneg == true) {\n this.frmPort.controls[\"duplex\"] = new FormControl({ value: config.duplex, disabled: true })\n this.frmPort.controls[\"speed\"] = new FormControl({ value: config.speed, disabled: true })\n } else {\n this.frmPort.controls[\"speed\"].setValue(config.speed)\n this.frmPort.controls[\"duplex\"].setValue(config.duplex)\n }\n }\n\n\n sortList(data, attribute) {\n return data.sort(function (a, b) {\n var nameA = a[attribute].toUpperCase(); // ignore upper and lowercase\n var nameB = b[attribute].toUpperCase(); // ignore upper and lowercase\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n })\n }\n\n applyFilter(event: Event) {\n const filterValue = (event.target as HTMLInputElement).value.trim().toLowerCase();\n this.filteredDevicesDatabase.filter = filterValue.trim().toLowerCase();\n\n if (this.filteredDevicesDatabase.paginator) {\n this.filteredDevicesDatabase.paginator.firstPage();\n }\n }\n\n applyPortFilter(event: Event) {\n const filterValue = (event.target as HTMLInputElement).value.trim().toLowerCase();\n this.displayedPorts = {}\n if (filterValue) {\n for (var key in this.editingDeviceSettings.ports) {\n if (key.includes(filterValue)) {\n this.displayedPorts[key] = this.editingDeviceSettings.ports[key]\n }\n }\n } else {\n this.displayedPorts = this.editingDeviceSettings.ports\n }\n }\n\n back(): void {\n this._router.navigate([\"/select\"]);\n }\n\n //////////////////////////////////////////////////////////////////////////////\n ///// DIALOG BOXES\n //////////////////////////////////////////////////////////////////////////////\n // ERROR\n openError(message: string): void {\n const dialogRef = this._dialog.open(ErrorDialog, {\n data: message\n });\n }\n\n // SNACK BAR\n openSnackBar(message: string, action: string) {\n this._snackBar.open(message, action, {\n duration: 5000,\n horizontalPosition: \"center\",\n verticalPosition: \"top\",\n });\n }\n}\n\n\n","\n \n
\n \n
\n
\n\n\n\n
\n Please select a device...\n
\n\n
\n \n
\n\n
\n
\n \n Filter\n \n \n \n
\n\n\n
\n
\n \n
\n
\n
\n {{editingDevice.model}}\n
\n
\n
\n {{index}}
\n
\n
\n RJ45\n
\n
\n
\n
\n
\n
\n
\n\n
\n SFP\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n\n
\n
\n
\n \n Switch Management\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
VLANtypeIP AddressNetmaskGateway
In Band{{editingDeviceSettings.device.ip_config.network}}{{editingDeviceSettings.device.ip_config.type}}{{editingDeviceSettings.device.ip_config.ip}}{{editingDeviceSettings.device.ip_config.netmask}}{{editingDeviceSettings.device.ip_config.gateway}}
Out Band{{editingDeviceSettings.device.oob_ip_config.network}}{{editingDeviceSettings.device.oob_ip_config.type}}{{editingDeviceSettings.device.oob_ip_config.ip}}{{editingDeviceSettings.device.oob_ip_config.netmask}}{{editingDeviceSettings.device.oob_ip_config.gateway}}
\n
\n
\n
\n \n Switch Status\n \n
\n
\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 0\">\n \n \n \n
MEMBER #{{index}}
VC ROLE{{member.vc_role}}
MODEL{{member.model}}
SERIAL{{member.serial}}
MAC ADDRESS{{member.mac}}
POE{{member.poe.power_draw}} W
POE Budget{{member.poe.max_power}} W
TEMP\n
\n
\n \n check_circle\n
\n
\n \n cancel\n \n
\n
\n {{temp.name}}: {{temp.celsius}} °C\n
\n
\n
FAN\n
\n
\n \n check_circle\n
\n
\n \n cancel\n \n
\n
\n {{fan.name}}\n
\n
\n
\n
\n
\n
\n\n
\n
\n\n
= 1\">\n
\n \n {{editingPorts[0].port}}\n 1\" class=\"no-cursor\" style=\"color: black; font-weight: light; width: 20em; text-align: center;\" fxFlex=\"auto\">Multi\n Selection\n \n
\n
\n
\n
\n Port Status\n \n Enabled \n Disabled \n \n
\n
\n PoE\n \n Enabled \n Disabled \n \n
\n
\n \n VLAN\n \n None\n \n {{vlan.key}} ({{vlan.value.vlan_id}})\n \n \n \n\n
\n Auto-Negociation\n \n Enabled \n Disabled \n \n
\n
\n\n \n SPEED\n \n Auto\n 10M\n 100M\n 1G\n 2.5G\n 5G\n \n \n\n \n DUPLEX\n \n Auto\n Full\n Half\n \n \n
\n\n
\n
\n
= 1\">\n \n \n
\n
\n
\n
","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n title = 'Mist Switch Operator';\n\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n \"Mist\n Mist Switch Operator\n\n\n\n\n \n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { HttpClientModule, HttpClientJsonpModule } from '@angular/common/http';\n\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormsModule } from '@angular/forms';\n\nimport { GoogleMapsModule } from '@angular/google-maps';\n\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatDialogModule } from '@angular/material/dialog'\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { Router } from '@angular/router';\n\nimport { StartsWithPipe, MapToArrayPipe } from '@src/app/common/common-pipes';\n\n\nimport { AppRoutingModule } from '@src/app/app-routing.module';\nimport { AppComponent } from '@src/app/app.component';\nimport { LoginComponent } from '@src/app/login/login.component';\nimport { TwoFactorDialog } from '@src/app/login/login-2FA';\nimport { DashboardComponent } from '@src/app/dashboard/dashboard.component';\nimport { ClaimDialog } from '@src/app/common/common-claim';\nimport { UnclaimDialog } from '@src/app/common/common-unclaim';\nimport { ErrorDialog } from '@src/app/common/common-error';\nimport { WarningDialog } from '@src/app/common/common-warning';\nimport { ClaimDetailsDialog } from '@src/app/common/common-claim-details';\nimport { OrgComponent } from '@src/app/org/org.component';\nimport { CommonComponent } from '@src/app/common/common.component';\nimport { AutoGeneratedComponent } from '@src/app/auto-generated/auto-generated.component';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { MatGoogleMapsAutocompleteModule } from '@angular-material-extensions/google-maps-autocomplete';\nimport { AgmCoreModule } from '@agm/core';\n\n@NgModule({\n declarations: [\n AppComponent,\n LoginComponent, TwoFactorDialog,\n DashboardComponent, ClaimDialog, UnclaimDialog, ErrorDialog, WarningDialog, ClaimDetailsDialog,\n OrgComponent,\n CommonComponent,\n StartsWithPipe,\n MapToArrayPipe,\n AutoGeneratedComponent\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n BrowserAnimationsModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n GoogleMapsModule,\n HttpClientModule,\n HttpClientJsonpModule,\n MatButtonModule,\n MatChipsModule,\n MatSelectModule,\n MatFormFieldModule,\n MatInputModule,\n MatStepperModule,\n MatDividerModule,\n MatCardModule,\n MatGridListModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatSlideToggleModule,\n MatTableModule,\n MatCheckboxModule,\n MatProgressBarModule,\n MatToolbarModule,\n MatTooltipModule,\n MatPaginatorModule,\n MatDialogModule,\n FormsModule,\n MatIconModule,\n MatSnackBarModule,\n NgbModule,\n MatGoogleMapsAutocompleteModule,\n AgmCoreModule.forRoot()\n ],\n providers: [{\n provide: MatRadioModule,\n useValue: { color: 'accent' },\n }],\n bootstrap: [AppComponent]\n})\nexport class AppModule {\n // Diagnostic only: inspect router configuration\n constructor(router: Router) {\n // Use a custom replacer to display function names in the route configs\n const replacer = (key, value) => (typeof value === 'function') ? value.name : value;\n }\n}","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nexport interface WarningData {\n text: string,\n vlan_check: [\"\"],\n bigWarning: boolean\n}\n\n@Component({\n selector: 'common-warning',\n templateUrl: 'common-warning.html',\n})\nexport class WarningDialog {\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: WarningData\n ) { }\n ok(): void {\n this.dialogRef.close(true);\n }\n cancel(): void {\n this.dialogRef.close();\n }\n\n}","

Be careful

\n
\n
{{data.text}}
\n
\n
Details:
\n
    \n
  • {{element.reason}}
  • \n
\n
\n
\n
Warning:
\n
Changes may have impact on existing users, especially for users using PSK without VLAN.\n
\n
\n
\n\n
\n \n \n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-common',\n templateUrl: './common.component.html',\n styleUrls: ['./common.component.css']\n})\nexport class CommonComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","

common works!

\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'common-claim-details',\n templateUrl: 'common-claim-details.html',\n})\nexport class ClaimDetailsDialog {\n constructor(\n public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data) { }\n details = this.data;\n \n ngOnInit(){\n console.log(this.details)\n }\n cancel(): void {\n this.dialogRef.close();\n }\n}","

Claim Result Details

\n
\n
{{details | json}}
\n
\n\n
\n \n
","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConnectorService {\n private headersSource = new BehaviorSubject({});\n private cookiesSource = new BehaviorSubject({});\n private hostSource = new BehaviorSubject('');\n private selfSource = new BehaviorSubject({});\n private orgIdSource = new BehaviorSubject(\"\");\n private siteIdSource = new BehaviorSubject(\"\");\n private orgModeSource = new BehaviorSubject(false);\n private googleApiKey = new BehaviorSubject(\"\");\n\n headers = this.headersSource.asObservable();\n host = this.hostSource.asObservable();\n cookies = this.cookiesSource.asObservable();\n self = this.selfSource.asObservable();\n org_id = this.orgIdSource.asObservable();\n site_id = this.siteIdSource.asObservable();\n orgMode = this.orgModeSource.asObservable();\n google_api_key = this.googleApiKey.asObservable();\n\n constructor() { }\n\n headersSet(data: {}) {\n this.headersSource.next(data)\n }\n cookiesSet(data: {}) {\n this.cookiesSource.next(data)\n }\n hostSet(data: string) {\n this.hostSource.next(data)\n }\n selfSet(data: {}) {\n this.selfSource.next(data)\n }\n orgIdSet(data: string){\n this.orgIdSource.next(data)\n }\n siteIdSet(data:string){\n this.siteIdSource.next(data)\n }\n orgModeSet(data:boolean){\n this.orgModeSource.next(data)\n }\n googleApiKeySet(data:string){\n this.googleApiKey.next(data)\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nexport interface DeviceElement {\n mac: string;\n model: string;\n serial: string;\n connected: boolean;\n type: string; \n deviceprofile_name: string;\n height: Int16Array;\n map_id: string;\n name: string;\n orientation: Int16Array;\n site_id: string;\n site_name: string;\n x:Int16Array;\n y: Int16Array;\n }\n\n@Component({\n selector: 'common-unclaim',\n templateUrl: 'common-unclaim.html',\n})\nexport class UnclaimDialog {\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: DeviceElement\n ) { }\n\n confirm(device_mac) {\n this.dialogRef.close(device_mac)\n }\n cancel(): void {\n this.dialogRef.close();\n }\n\n}","

Delete Device

\n
\n This will delete the Device {{data.mac}}. Do you confirm?\n
\n
\n \n \n
","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'startsWith' })\nexport class StartsWithPipe implements PipeTransform {\n transform(fullText: string, textMatch: string): boolean {\n return fullText.startsWith(textMatch);\n }\n}\n\n@Pipe({ name: 'mapToArray' })\nexport class MapToArrayPipe implements PipeTransform {\n transform(value, args: string[]): any {\n let arr = [];\n for (let key in value) {\n arr.push({ key: key, value: value[key] });\n }\n return arr;\n }\n}","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\n\nimport { LoginComponent } from './login/login.component';\nimport { DashboardComponent } from './dashboard/dashboard.component';\nimport { OrgComponent } from './org/org.component';\n\n\nconst routes: Routes = [\n { path: 'login', component: LoginComponent },\n { path: 'select', component: OrgComponent },\n { path: 'dashboard', component: DashboardComponent },\n { path: '', redirectTo: '/login', pathMatch: 'full' }, // redirect to `first-component`\n { path: '**', redirectTo: '/login' }, // redirect to `first-component`\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { HttpClient } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { FormBuilder } from '@angular/forms';\nimport { ConnectorService } from '../connector.service';\nimport {PlatformLocation} from '@angular/common';\nimport { TwoFactorDialog } from './login-2FA';\n\nexport interface TwoFactorData {\n twoFactor: string;\n}\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.css']\n})\n\n\nexport class LoginComponent implements OnInit {\n\n constructor(private _formBuilder: FormBuilder, private _http: HttpClient, private _router: Router, private _appService: ConnectorService, public _dialog: MatDialog, private _platformLocation: PlatformLocation\n ) { }\n\n\n github_url: string;\n docker_url: string;\n disclaimer: string;\n host = null;\n headers = {};\n cookies = {};\n self = {};\n loading: boolean;\n hosts = [\n { value: 'api.mist.com', viewValue: 'US - manage.mist.com' },\n { value: 'api.eu.mist.com', viewValue: 'EU - manage.eu.mist.com' },\n { value: 'api.gc1.mist.com', viewValue: 'GCP - manage.gc1.mist.com' }\n ];\n\n // LOGIN FORM\n frmStepLogin = this._formBuilder.group({\n host: [''],\n credentials: this._formBuilder.group({\n email: [''],\n password: [''],\n }),\n token: [''],\n });\n error_mess = {\n \"credentials\": \"\",\n \"token\": \"\"\n }\n\n\n //// INIT ////\n ngOnInit(): void {\n this.frmStepLogin = this._formBuilder.group({\n host: ['api.mist.com'],\n credentials: this._formBuilder.group({\n email: [''],\n password: [''],\n }),\n token: [\"\"],\n });\n this._http.get('/api/gap').subscribe({\n next: data => this._appService.googleApiKeySet(data.gap),\n error: error => console.error(\"Unable to load the Google API Key... Maps won't be available...\") \n })\n this._http.get(\"/api/disclaimer\").subscribe({\n next: data => {\n if (data.disclaimer) this.disclaimer = data.disclaimer;\n if (data.github_url) this.github_url = data.github_url;\n if (data.docker_url) this.docker_url = data.docker_url;\n }\n })\n }\n\n //// COMMON ////\n check_host(): boolean {\n if (this.frmStepLogin.value.host != '') {\n return true;\n } else {\n return false;\n }\n }\n\n // RESET AUTHENTICATION FORM\n reset_response(): void {\n this.host = null;\n this._appService.headersSet({});\n this._appService.cookiesSet({});\n this._appService.selfSet({});\n this._appService.hostSet(this.host);\n this.reset_error_mess();\n }\n reset_error_mess(): void{\n this.error_mess = {\n \"credentials\": \"\",\n \"token\": \"\"\n }\n }\n\n // PARSE AUTHENTICATION RESPONSE FROM SERVER\n parse_response(data): void {\n if (\"error\" in data) {\n this.loading = false;\n this.error_mess[\"username\"] = data.error;\n } else if (\"data\" in data) {\n if (\"detail\" in data.data) {\n this.error_message(data[\"method\"], data.data.detail);\n } else if (\"two_factor_required\" in data.data && \"two_factor_passed\" in data.data) {\n if (data.data[\"two_factor_required\"] == false) {\n this.authenticated(data)\n } else if (data.data[\"two_factor_passed\"] == true) {\n this.authenticated(data)\n } else {\n this.open2FA()\n }\n } else {\n this.authenticated(data)\n }\n }\n }\n\n // WHEN AUTHENTICATION IS NOT OK\n error_message(method, message): void {\n this.loading = false;\n this.error_mess[method] = message;\n }\n\n\n // WHEN AUTHENTICATION IS OK\n authenticated(data): void {\n this._appService.headersSet(data.headers);\n this._appService.cookiesSet(data.cookies);\n this._appService.hostSet(data.host);\n this._appService.selfSet(data.data)\n this.loading = false; \n this._router.navigate(['/select']);\n }\n\n //// AUTHENTICATION ////\n submitCredentials(): void {\n this.reset_response();\n if (this.check_host()) {\n this.loading = true;\n this._http.post('/api/login/', { host: this.frmStepLogin.value.host, email: this.frmStepLogin.value.credentials.email, password: this.frmStepLogin.value.credentials.password }).subscribe({\n next: data => this.parse_response(data),\n error: error => this.error_message(\"credentials\", error.error.message) \n })\n }\n }\n submitToken(): void {\n this.reset_response();\n if (this.check_host()) {\n this.loading = true;\n this._http.post('/api/login/', { host: this.frmStepLogin.value.host, token: this.frmStepLogin.value.token }).subscribe({\n next: data => this.parse_response(data),\n error: error => this.error_message(\"credentials\", error.error.message)\n })\n }\n }\n submit2FA(twoFactor: number): void {\n if (this.check_host()) {\n this.loading = true;\n this._http.post('/api/login/', { host: this.frmStepLogin.value.host, email: this.frmStepLogin.value.credentials.email, password: this.frmStepLogin.value.credentials.password, two_factor: twoFactor }).subscribe({\n next: data => this.parse_response(data),\n error: error => this.error_message(\"credentials\", error.error.message) \n })\n }\n }\n\n //// DIALOG BOX ////\n open2FA(): void {\n const dialogRef = this._dialog.open(TwoFactorDialog, {});\n dialogRef.afterClosed().subscribe(result => {\n this.submit2FA(result)\n });\n }\n}","\n\n
\n
\n
\n
\n \n Mist Cloud\n \n \n {{host.viewValue}}\n \n \n \n
\n
\n \n \n \n
\n\n
\n\n
\n

Access with Login/Password

\n \n Email\n \n \n\n \n Password\n \n \n
\n {{error_mess.credentials}}\n
\n
\n \n
\n
\n \n \n \n
\n
\n

Access with API Token

\n \n API Token\n \n \n
\n {{error_mess.token}}\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n {{disclaimer}}\n
\n
\n
\n \n \n
","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"]} \ No newline at end of file diff --git a/src_angular/src/app/login/login.component.css b/src_angular/src/app/login/login.component.css index f91f803..4e6f592 100644 --- a/src_angular/src/app/login/login.component.css +++ b/src_angular/src/app/login/login.component.css @@ -59,9 +59,24 @@ mat-card { align-self: center; } -.github-fork-me { - position: absolute; - right: 0; - top: 0; - z-index: 1000; +.disclaimer { + width: 50em; + text-align: center; + margin: auto; + text-transform: uppercase; + font-family: Roboto, "Helvetica Neue", sans-serif; + font-weight: 100; + font-size: smaller; +} + +.source { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; +} + +.source img { + margin: 1em; + height: 2em; } \ No newline at end of file diff --git a/src_angular/src/app/login/login.component.html b/src_angular/src/app/login/login.component.html index 2b4c98d..c5d8b73 100644 --- a/src_angular/src/app/login/login.component.html +++ b/src_angular/src/app/login/login.component.html @@ -43,14 +43,14 @@

Access with Login/Password