From 0d9340f2205a628078345166e5ee48a99db3404b Mon Sep 17 00:00:00 2001 From: Florian THIERRY Date: Sun, 1 Aug 2021 17:19:13 +0200 Subject: [PATCH] Lot of improvements. --- cerberus/package-lock.json | 2 + cerberus/src/app/app-routing.module.ts | 14 --- cerberus/src/app/app.component.html | 5 +- cerberus/src/app/app.component.scss | 4 + cerberus/src/app/app.module.ts | 33 ++++--- cerberus/src/app/app.routing.ts | 30 +++++++ .../applications/applications.component.ts | 17 ++++ .../create-application.component.html | 16 ++-- .../applications/status/status.component.html | 3 + .../applications/status/status.component.scss | 6 ++ .../applications/status/status.component.ts | 32 +++++++ .../application-card.component.html | 7 ++ .../application-card.component.scss | 44 ++++++++++ .../application-card.component.ts | 26 ++++++ cerberus/src/app/core/entities/Application.ts | 2 + cerberus/src/app/core/shared.module.ts | 35 ++++++++ cerberus/src/app/header/header.component.html | 13 +++ cerberus/src/app/header/header.component.scss | 30 +++++++ cerberus/src/app/header/header.component.ts | 11 +++ cerberus/src/assets/images/logo.png | Bin 0 -> 55067 bytes cerberus/src/colors.scss | 18 ++++ cerberus/src/index.html | 4 + cerberus/src/styles.scss | 81 ++++++++++++------ 23 files changed, 368 insertions(+), 65 deletions(-) delete mode 100644 cerberus/src/app/app-routing.module.ts create mode 100644 cerberus/src/app/app.routing.ts create mode 100644 cerberus/src/app/applications/applications.component.ts create mode 100644 cerberus/src/app/applications/status/status.component.html create mode 100644 cerberus/src/app/applications/status/status.component.scss create mode 100644 cerberus/src/app/applications/status/status.component.ts create mode 100644 cerberus/src/app/core/components/application-card/application-card.component.html create mode 100644 cerberus/src/app/core/components/application-card/application-card.component.scss create mode 100644 cerberus/src/app/core/components/application-card/application-card.component.ts create mode 100644 cerberus/src/app/core/shared.module.ts create mode 100644 cerberus/src/app/header/header.component.html create mode 100644 cerberus/src/app/header/header.component.scss create mode 100644 cerberus/src/app/header/header.component.ts create mode 100644 cerberus/src/assets/images/logo.png create mode 100644 cerberus/src/colors.scss diff --git a/cerberus/package-lock.json b/cerberus/package-lock.json index 470f3c2..1a2064d 100644 --- a/cerberus/package-lock.json +++ b/cerberus/package-lock.json @@ -20504,6 +20504,8 @@ "integrity": "sha512-v3+E0Ucu2xWJMOJ2fA/q9pDT/hlxHftHGPUay1/1cTgyPV5JTHFdO9hqo837Sx2s9vKBMTt5gO+lhF95PO6J+g==", "dev": true, "requires": { + "@angular/compiler": "9.0.0", + "@angular/core": "9.0.0", "app-root-path": "^3.0.0", "aria-query": "^3.0.0", "axobject-query": "2.0.2", diff --git a/cerberus/src/app/app-routing.module.ts b/cerberus/src/app/app-routing.module.ts deleted file mode 100644 index d96c14b..0000000 --- a/cerberus/src/app/app-routing.module.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule, Routes } from '@angular/router'; -import { CreateApplicationComponent } from './applications/create-application/create-application.component'; -import { UiKitComponent } from './ui-kit/ui-kit.component'; - -const routes: Routes = [ - {path: '', component: CreateApplicationComponent} -]; - -@NgModule({ - imports: [RouterModule.forRoot(routes, { onSameUrlNavigation: 'reload' })], - exports: [RouterModule] -}) -export class AppRoutingModule { } diff --git a/cerberus/src/app/app.component.html b/cerberus/src/app/app.component.html index 0680b43..89c98b9 100644 --- a/cerberus/src/app/app.component.html +++ b/cerberus/src/app/app.component.html @@ -1 +1,4 @@ - + +
+ +
diff --git a/cerberus/src/app/app.component.scss b/cerberus/src/app/app.component.scss index e69de29..6125771 100644 --- a/cerberus/src/app/app.component.scss +++ b/cerberus/src/app/app.component.scss @@ -0,0 +1,4 @@ +.content { + margin-top: 56px; + padding: 1rem 0; +} \ No newline at end of file diff --git a/cerberus/src/app/app.module.ts b/cerberus/src/app/app.module.ts index 472d51f..6c3ee5b 100644 --- a/cerberus/src/app/app.module.ts +++ b/cerberus/src/app/app.module.ts @@ -1,33 +1,30 @@ import { NgModule } from '@angular/core'; -import { BrowserModule } from '@angular/platform-browser'; - -import { AppRoutingModule } from './app-routing.module'; +import { RouterModule } from '@angular/router'; +import { AppRoutingModule } from './app.routing'; import { AppComponent } from './app.component'; +import { SharedModule } from './core/shared.module'; import { UiKitComponent } from './ui-kit/ui-kit.component'; import { CreateApplicationComponent } from './applications/create-application/create-application.component'; -import { SelectComponent } from './core/components/select/select.component'; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -import {MatIconModule} from '@angular/material/icon'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { HttpClientModule } from '@angular/common/http'; +import { HeaderComponent } from './header/header.component'; +import { StatusComponent } from './applications/status/status.component'; +import { ApplicationCardComponent } from './core/components/application-card/application-card.component'; +import {MatTooltipModule} from '@angular/material/tooltip'; @NgModule({ declarations: [ AppComponent, - UiKitComponent, + HeaderComponent, CreateApplicationComponent, - SelectComponent, + UiKitComponent, + StatusComponent, + ApplicationCardComponent ], imports: [ - BrowserModule, + RouterModule, + SharedModule, AppRoutingModule, - BrowserAnimationsModule, - MatIconModule, - FormsModule, - ReactiveFormsModule, - HttpClientModule + MatTooltipModule ], - providers: [], - bootstrap: [AppComponent] + bootstrap: [AppComponent], }) export class AppModule { } diff --git a/cerberus/src/app/app.routing.ts b/cerberus/src/app/app.routing.ts new file mode 100644 index 0000000..14e7fd4 --- /dev/null +++ b/cerberus/src/app/app.routing.ts @@ -0,0 +1,30 @@ +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { CreateApplicationComponent } from './applications/create-application/create-application.component'; +import { StatusComponent } from './applications/status/status.component'; +import { SharedModule } from './core/shared.module'; +import { UiKitComponent } from './ui-kit/ui-kit.component'; + +const ApplicationRoutes: Routes = [ + { + path: 'uikit', + component: UiKitComponent + }, + { + path: 'applications/add', + component: CreateApplicationComponent + }, + { + path: '**', + component: StatusComponent + } +]; + +@NgModule({ + imports: [ + RouterModule.forRoot(ApplicationRoutes, { onSameUrlNavigation: 'reload' }), + ], + exports: [RouterModule], +}) +export class AppRoutingModule { } diff --git a/cerberus/src/app/applications/applications.component.ts b/cerberus/src/app/applications/applications.component.ts new file mode 100644 index 0000000..c6d40bb --- /dev/null +++ b/cerberus/src/app/applications/applications.component.ts @@ -0,0 +1,17 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-applications', + template: ` +

Applications

+ + `, +}) +export class ApplicationsComponent implements OnInit { + + constructor() {} + + ngOnInit(): void { + } + +} diff --git a/cerberus/src/app/applications/create-application/create-application.component.html b/cerberus/src/app/applications/create-application/create-application.component.html index e6184be..36582a9 100644 --- a/cerberus/src/app/applications/create-application/create-application.component.html +++ b/cerberus/src/app/applications/create-application/create-application.component.html @@ -1,15 +1,17 @@

Add a new application

-
- +
+ +
-
- +
+ +
-
+
- @@ -20,4 +22,4 @@
-
+
\ No newline at end of file diff --git a/cerberus/src/app/applications/status/status.component.html b/cerberus/src/app/applications/status/status.component.html new file mode 100644 index 0000000..538602b --- /dev/null +++ b/cerberus/src/app/applications/status/status.component.html @@ -0,0 +1,3 @@ +
+ +
\ No newline at end of file diff --git a/cerberus/src/app/applications/status/status.component.scss b/cerberus/src/app/applications/status/status.component.scss new file mode 100644 index 0000000..9528d10 --- /dev/null +++ b/cerberus/src/app/applications/status/status.component.scss @@ -0,0 +1,6 @@ +.application-list { + display: flex; + flex-direction: row; + justify-content: center; + flex-wrap: wrap; +} \ No newline at end of file diff --git a/cerberus/src/app/applications/status/status.component.ts b/cerberus/src/app/applications/status/status.component.ts new file mode 100644 index 0000000..164a40c --- /dev/null +++ b/cerberus/src/app/applications/status/status.component.ts @@ -0,0 +1,32 @@ +import { Component, OnInit } from '@angular/core'; +import { Application } from 'src/app/core/entities/Application'; +import { ApplicationService } from 'src/app/core/services/application.service'; + +@Component({ + selector: 'app-status', + templateUrl: './status.component.html', + styleUrls: ['./status.component.scss'] +}) +export class StatusComponent implements OnInit { + applications: Application[] = []; + + constructor( + private _applicationService: ApplicationService + ) {} + + ngOnInit(): void { + this.applications.push({ + name: 'Codiki', + image: 'https://gitea.takiguchi.ovh/avatars/7639cce68867d968ec848e444d726c8b', + status: 'started' + } as Application, { + name: 'Minager', + image: 'https://gitea.takiguchi.ovh/avatars/2f5f6bc51f8e16f0467885d7bc0d1f8b', + status: 'stoped' + } as Application, { + name: 'Tamotsu', + image: 'https://gitea.takiguchi.ovh/avatars/6c339db7805f158c21b4eed47758dbb1', + status: 'started' + } as Application); + } +} diff --git a/cerberus/src/app/core/components/application-card/application-card.component.html b/cerberus/src/app/core/components/application-card/application-card.component.html new file mode 100644 index 0000000..8cb0bd9 --- /dev/null +++ b/cerberus/src/app/core/components/application-card/application-card.component.html @@ -0,0 +1,7 @@ +
+ +
{{application?.name}}
+
\ No newline at end of file diff --git a/cerberus/src/app/core/components/application-card/application-card.component.scss b/cerberus/src/app/core/components/application-card/application-card.component.scss new file mode 100644 index 0000000..6cedab8 --- /dev/null +++ b/cerberus/src/app/core/components/application-card/application-card.component.scss @@ -0,0 +1,44 @@ +.application-card { + margin: 2rem; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + + .logo { + position: relative; + + img { + width: 164px; + height: 164px; + background-color: #fff; + border-radius: 4px; + box-shadow: 0px 5px 10px 1px rgba(0,0,0,0.2); + } + + .status { + width: 2rem; + height: 2rem; + + border-radius: 10em; + position: absolute; + bottom: 10px; + right: 5px; + + &.started { + background-image: linear-gradient(#5bc13e, #1fa200); + border: 2px solid #136900; + } + &.stoped { + background-image: linear-gradient(#c13e3e, #a20000); + border: 2px solid #770000; + } + } + } + + + .name { + margin: .5rem; + font-weight: 500; + } +} \ No newline at end of file diff --git a/cerberus/src/app/core/components/application-card/application-card.component.ts b/cerberus/src/app/core/components/application-card/application-card.component.ts new file mode 100644 index 0000000..f70d5fd --- /dev/null +++ b/cerberus/src/app/core/components/application-card/application-card.component.ts @@ -0,0 +1,26 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { Application } from '../../entities/Application'; +import { ApplicationService } from '../../services/application.service'; + +interface AppDisplaying { + name: string, + image: string, + status: string +} + +@Component({ + selector: 'app-application-card', + templateUrl: './application-card.component.html', + styleUrls: ['./application-card.component.scss'] +}) +export class ApplicationCardComponent implements OnInit { + @Input() application: Application | undefined; + + constructor( + private _applicationService: ApplicationService + ) {} + + ngOnInit(): void { + + } +} diff --git a/cerberus/src/app/core/entities/Application.ts b/cerberus/src/app/core/entities/Application.ts index 2ba660a..038f029 100644 --- a/cerberus/src/app/core/entities/Application.ts +++ b/cerberus/src/app/core/entities/Application.ts @@ -3,4 +3,6 @@ export interface Application { name: string; serviceName: string; serviceType: string; + image: string; + status: string; } diff --git a/cerberus/src/app/core/shared.module.ts b/cerberus/src/app/core/shared.module.ts new file mode 100644 index 0000000..6587151 --- /dev/null +++ b/cerberus/src/app/core/shared.module.ts @@ -0,0 +1,35 @@ +import { HttpClientModule } from "@angular/common/http"; +import { NgModule } from "@angular/core"; +import { FormsModule, ReactiveFormsModule } from "@angular/forms"; +import { MatIconModule } from "@angular/material/icon"; +import { BrowserModule } from "@angular/platform-browser"; +import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; +import { RouterModule } from "@angular/router"; +import { AppRoutingModule } from "../app.routing"; +import { ApplicationCardComponent } from './components/application-card/application-card.component'; + +@NgModule({ + imports: [ + BrowserModule, + AppRoutingModule, + BrowserAnimationsModule, + MatIconModule, + FormsModule, + ReactiveFormsModule, + HttpClientModule, + RouterModule, + ], + exports: [ + BrowserModule, + AppRoutingModule, + BrowserAnimationsModule, + MatIconModule, + FormsModule, + ReactiveFormsModule, + HttpClientModule, + RouterModule, + ] +}) +export class SharedModule { + +} \ No newline at end of file diff --git a/cerberus/src/app/header/header.component.html b/cerberus/src/app/header/header.component.html new file mode 100644 index 0000000..09f94b4 --- /dev/null +++ b/cerberus/src/app/header/header.component.html @@ -0,0 +1,13 @@ +
+ Cerberus +
+ +
+ search + +
+
+
\ No newline at end of file diff --git a/cerberus/src/app/header/header.component.scss b/cerberus/src/app/header/header.component.scss new file mode 100644 index 0000000..fc45ec6 --- /dev/null +++ b/cerberus/src/app/header/header.component.scss @@ -0,0 +1,30 @@ +@import '../../colors.scss'; + +header { + position: fixed; + top: 0; + left: 0; + width: 100%; + background-image: linear-gradient($gray-top, $gray-bottom); + display: flex; + flex: 1 0; + height: 56px; + justify-content: center; + align-items: center; + + img { + width: 42px; + height: 42px; + } + + .actions { + display: flex; + flex-direction: row; + position: absolute; + right: 1rem; + } +} + +mat-icon { + font-size: 18px; +} \ No newline at end of file diff --git a/cerberus/src/app/header/header.component.ts b/cerberus/src/app/header/header.component.ts new file mode 100644 index 0000000..9ace5f4 --- /dev/null +++ b/cerberus/src/app/header/header.component.ts @@ -0,0 +1,11 @@ +import { Component } from "@angular/core"; + + +@Component({ + selector: 'app-header', + templateUrl: './header.component.html', + styleUrls: ['./header.component.scss'] +}) +export class HeaderComponent { + +} \ No newline at end of file diff --git a/cerberus/src/assets/images/logo.png b/cerberus/src/assets/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4107ad5316061354811a527653cb70699f9ac6f7 GIT binary patch literal 55067 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 N002ovPDHLkV1k{q^j!b| literal 0 HcmV?d00001 diff --git a/cerberus/src/colors.scss b/cerberus/src/colors.scss new file mode 100644 index 0000000..9187c0a --- /dev/null +++ b/cerberus/src/colors.scss @@ -0,0 +1,18 @@ +$blue: #017aff; + +$btn-primary-border: #2f8df9; +$btn-primary-background-top: #4ca4f6; +$btn-primary-background-bottom: #0073f7; +$btn-primary-active-border: #007cf8; +$btn-primary-active-background-top: #0093f8; +$btn-primary-active-background-bottom: #0064dd; + +$btn-secondary-border: #c3c5c6; +$btn-secondary-background: #ffffff; +$btn-secondary-active-border: #c8c8c8; +$btn-secondary-active-background: #f0f0f0; + +$gray-top: #e6e6e6; +$gray-bottom: #cfcfcf; + +$gray-icon-secondary: #777777; \ No newline at end of file diff --git a/cerberus/src/index.html b/cerberus/src/index.html index a867573..6d11dbc 100644 --- a/cerberus/src/index.html +++ b/cerberus/src/index.html @@ -12,5 +12,9 @@ + + diff --git a/cerberus/src/styles.scss b/cerberus/src/styles.scss index bf11c4a..d0c0cf4 100644 --- a/cerberus/src/styles.scss +++ b/cerberus/src/styles.scss @@ -1,29 +1,23 @@ +@import './colors.scss'; + /* You can add global styles to this file, and also import other style files */ @font-face { font-family: helvetica; src: url(assets/fonts/Helvetica.ttf); } - -$blue: #017aff; - -$btn-primary-border: #2f8df9; -$btn-primary-background-top: #4ca4f6; -$btn-primary-background-bottom: #0073f7; -$btn-primary-active-border: #007cf8; -$btn-primary-active-background-top: #0093f8; -$btn-primary-active-background-bottom: #0064dd; - -$btn-secondary-border: #c3c5c6; -$btn-secondary-background: #ffffff; -$btn-secondary-active-border: #c8c8c8; -$btn-secondary-active-background: #f0f0f0; - $font-size: 14px; body { font-size: $font-size; font-family: helvetica; + + ::selection { + background: $blue; + } + ::-moz-selection { + background: $blue; + } } button { @@ -83,10 +77,25 @@ div.card { margin: 2rem; } -label { +.form-control { display: flex; - flex: 0 !important; - margin-right: .5rem; + flex-direction: column; + margin: 1rem 0; + + & > * { + display: flex; + flex: 1 0; + } + + & > input, select { + margin-left: 0; + margin-right: 0; + } +} + +label { + margin-bottom: .2rem; + font-weight: 500; } input { @@ -95,7 +104,10 @@ input { box-shadow: 0px 1px 2px 1px rgba(0,0,0,0.1); padding: .2rem .5rem; border-radius: .2rem; - width: 3rem; + + &:focus { + outline: 2px solid $blue; + } } select { @@ -110,7 +122,6 @@ select { font-weight: 600; margin: .2rem .5rem; font-size: $font-size; - width: 10em; &::-ms-expand { display: none; @@ -145,12 +156,32 @@ div.row { display: flex; flex: 1 0; } - - & > input, select { - margin-left: 0; - margin-right: 0; - } } html, body { height: 100%; } body { margin: 0; font-family: Roboto, "Helvetica Neue", sans-serif; } + + +mat-icon.mat-icon { + display: flex; + align-items: center; + width: 18px; + height: 18px; +} + + +.iconed-input { + display: flex; + position: relative; + align-items: center; + + input { + padding-left: 2rem; + } + + mat-icon { + color: $gray-icon-secondary; + position: absolute; + left: 1rem; + } +} \ No newline at end of file