-
+
+

diff --git a/frontend/.env.example b/frontend/.env.example new file mode 100644 index 0000000..2d52cfd --- /dev/null +++ b/frontend/.env.example @@ -0,0 +1,7 @@ +DB_USER=cipherbliss +POSTGRES_PASSWORD=tralalahihou + +CLIENT_ID=ziozioizo-sllkslk +CLIENT_SECRET=spposfdo-msmldflkds +CLIENT_AUTORIZATIONS=read_prefs +CLIENT_REDIRECT=https://oedb.cipherbliss.com/demo/traffic diff --git a/frontend/public/static/cone.png b/frontend/public/static/cone.png new file mode 100644 index 0000000..b10b419 Binary files /dev/null and b/frontend/public/static/cone.png differ diff --git a/frontend/src/app/app.config.ts b/frontend/src/app/app.config.ts index d953f4c..8818bca 100644 --- a/frontend/src/app/app.config.ts +++ b/frontend/src/app/app.config.ts @@ -1,4 +1,5 @@ import { ApplicationConfig, provideBrowserGlobalErrorListeners, provideZoneChangeDetection } from '@angular/core'; +import { provideHttpClient } from '@angular/common/http'; import { provideRouter } from '@angular/router'; import { routes } from './app.routes'; @@ -7,6 +8,7 @@ export const appConfig: ApplicationConfig = { providers: [ provideBrowserGlobalErrorListeners(), provideZoneChangeDetection({ eventCoalescing: true }), - provideRouter(routes) + provideRouter(routes), + provideHttpClient() ] }; diff --git a/frontend/src/app/forms/edit-form/edit-form.html b/frontend/src/app/forms/edit-form/edit-form.html index d229b21..021eb5f 100644 --- a/frontend/src/app/forms/edit-form/edit-form.html +++ b/frontend/src/app/forms/edit-form/edit-form.html @@ -1 +1,113 @@ -
edit-form works!
+ diff --git a/frontend/src/app/forms/edit-form/edit-form.scss b/frontend/src/app/forms/edit-form/edit-form.scss index e69de29..cbf8e04 100644 --- a/frontend/src/app/forms/edit-form/edit-form.scss +++ b/frontend/src/app/forms/edit-form/edit-form.scss @@ -0,0 +1,46 @@ +form { + display: grid; + grid-template-columns: 1fr; + gap: 10px; +} + +.row { + display: grid; + gap: 6px; +} + +.presets { + background: rgba(159, 211, 246, 0.2); + border: 1px dashed rgba(0,0,0,0.08); + border-radius: 10px; + padding: 10px; +} + +.presets.under-field { margin-top: 8px; } + +.preset-list { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 8px; +} + +.preset-list button { + display: flex; + align-items: center; + gap: 8px; + padding: 8px 10px; + border-radius: 10px; + border: 1px solid rgba(0,0,0,0.08); + background: #fff; + cursor: pointer; +} + +.actions { + display: flex; + gap: 8px; +} + +.preset-groups { display: grid; gap: 10px; } +.group-title { font-weight: 700; opacity: 0.8; margin-bottom: 6px; } +.group { background: #fff; border: 1px solid rgba(0,0,0,0.06); border-radius: 10px; padding: 8px; } + diff --git a/frontend/src/app/forms/edit-form/edit-form.ts b/frontend/src/app/forms/edit-form/edit-form.ts index 670ed6b..dec440d 100644 --- a/frontend/src/app/forms/edit-form/edit-form.ts +++ b/frontend/src/app/forms/edit-form/edit-form.ts @@ -1,11 +1,298 @@ -import { Component } from '@angular/core'; +import { Component, EventEmitter, Input, Output, OnChanges, SimpleChanges, computed, effect, signal } from '@angular/core'; +import { FormBuilder, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms'; +import { NgFor, NgIf } from '@angular/common'; +import oedb from '../../../oedb-types'; +import { OedbApi } from '../../services/oedb-api'; @Component({ selector: 'app-edit-form', - imports: [], + imports: [ReactiveFormsModule], templateUrl: './edit-form.html', styleUrl: './edit-form.scss' }) -export class EditForm { +export class EditForm implements OnChanges { + @Input() selected: any | null = null; + @Output() saved = new EventEmitterall-events works!
+${this.escapeHtml(JSON.stringify(v, null, 2))}` : this.escapeHtml(String(v)); + return `
home works!
-