diff --git a/src/app/shared/server-selector/server-selector.component.html b/src/app/shared/server-selector/server-selector.component.html index d98c450d0..f7510dc0f 100644 --- a/src/app/shared/server-selector/server-selector.component.html +++ b/src/app/shared/server-selector/server-selector.component.html @@ -1,8 +1,24 @@ - Server - - - {{ server }} - - - + Server + +
+
+
+ + language + Add new server + + + Url is required + + + + +
+
+
+ + {{ server }} + +
+ \ No newline at end of file diff --git a/src/app/shared/server-selector/server-selector.component.scss b/src/app/shared/server-selector/server-selector.component.scss index e69de29bb..5f17f5472 100644 --- a/src/app/shared/server-selector/server-selector.component.scss +++ b/src/app/shared/server-selector/server-selector.component.scss @@ -0,0 +1,26 @@ +.actions { + display: inline-block; +} + +.rg { + float: right; +} + +.ml { + margin-left: 10px; +} + + +/* .pba { + width: 80%; + left: 10%; + margin: 12px; +} */ + +.sticky { + position: sticky; + z-index: 1; // appear above mat-option + top: 0; // fix at the top + background-color: white; // don't see mat-option when scrolling + box-shadow: 1px -2px 10px 0px grey; // shadow at the bottom +} \ No newline at end of file diff --git a/src/app/shared/server-selector/server-selector.component.ts b/src/app/shared/server-selector/server-selector.component.ts index 7267c49e9..ce6fe82d7 100644 --- a/src/app/shared/server-selector/server-selector.component.ts +++ b/src/app/shared/server-selector/server-selector.component.ts @@ -1,7 +1,8 @@ /** Angular Imports */ import { Component, OnInit } from '@angular/core'; import { FormControl } from '@angular/forms'; - +import { MatDialog } from '@angular/material/dialog'; +import { FormBuilder, Validators } from '@angular/forms'; /** Custom Services */ import { SettingsService } from 'app/settings/settings.service'; @@ -13,8 +14,12 @@ import { SettingsService } from 'app/settings/settings.service'; templateUrl: './server-selector.component.html', styleUrls: ['./server-selector.component.scss'] }) + export class ServerSelectorComponent implements OnInit { + /** Input server. */ + form: any; + /** Server Settings. */ servers: string[]; @@ -24,12 +29,15 @@ export class ServerSelectorComponent implements OnInit { /** * @param {SettingsService} settingsService Settings Service */ - constructor(private settingsService: SettingsService) { } + constructor(private settingsService: SettingsService, public dialog: MatDialog, private formBuilder: FormBuilder) { } ngOnInit(): void { this.servers = this.settingsService.servers; this.serverSelector.patchValue(this.settingsService.server); this.buildDependencies(); + this.form = this.formBuilder.group({ + 'url': ['', [Validators.required]], + }); } /** @@ -42,4 +50,16 @@ export class ServerSelectorComponent implements OnInit { }); } + /** + * Set new server. + */ + setNewServer() { + let servers; + this.settingsService.setServer(this.form.value.url); + servers = this.settingsService.servers; + servers.push(this.form.value.url); + this.settingsService.setServers(servers); + window.location.reload(); + } + }