diff --git a/src/app/pages/settings/chains/chain-add/chain-add.spec.ts b/src/app/components/chain-add/chain-add.spec.ts similarity index 89% rename from src/app/pages/settings/chains/chain-add/chain-add.spec.ts rename to src/app/components/chain-add/chain-add.spec.ts index ae6f5a8..dbcd7ef 100644 --- a/src/app/pages/settings/chains/chain-add/chain-add.spec.ts +++ b/src/app/components/chain-add/chain-add.spec.ts @@ -3,11 +3,11 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ChainAdd } from './chain-add'; import { vi } from 'vitest'; import { provideTranslateService } from '@ngx-translate/core'; -import { ChainFormGroup } from '../chain-formgroup'; +import { ChainFormGroup } from '../../pages/settings/chains/chain-formgroup'; import { FormControl } from '@angular/forms'; import { By } from '@angular/platform-browser'; -import { ChainSettings } from '../../../../services/chain-settings'; -import { Chain } from '../../../../models/Chain'; +import { ChainSettings } from '../../services/chain-settings'; +import { Chain } from '../../models/Chain'; describe('ChainAdd', () => { let component: ChainAdd; diff --git a/src/app/components/chain-add/chain-add.ts b/src/app/components/chain-add/chain-add.ts new file mode 100644 index 0000000..df1f64d --- /dev/null +++ b/src/app/components/chain-add/chain-add.ts @@ -0,0 +1,32 @@ +import { Component, inject } from '@angular/core'; +import { Chain } from '../../models/Chain'; +import { ChainFormGroup } from '../../pages/settings/chains/chain-formgroup'; +import { ActionBtn } from '../action-btn/action-btn'; +import { TranslatePipe } from '@ngx-translate/core'; +import { UpperfirstPipe } from '../../pipes/upperfirst-pipe'; +import { ChainSettings } from '../../services/chain-settings'; +import { SettingsBaseAdd } from '../settings-base-add/settings-base-add'; + +@Component({ + selector: 'app-chain-add', + imports: [ + ActionBtn, + TranslatePipe, + UpperfirstPipe, + ], + templateUrl: './../settings-base-add/settings-base-add.html', + styleUrl: './../settings-base-add/settings-base-add.scss', +}) +export class ChainAdd extends SettingsBaseAdd { + private readonly chainSettings = inject(ChainSettings); + override readonly form = new ChainFormGroup(); + override title = 'settings.chain.new_chain'; + + async save() { + const name = this.form.controls.name.value; + const img = this.form.controls.image.value; + //TODO: the sqlite bridge can't handle null as param + const chain = new Chain(name, ''); + await this.chainSettings.save(chain, img); + } +} diff --git a/src/app/pages/settings/chains/chain-add-page/chain-add-page.html b/src/app/pages/settings/chains/chain-add-page/chain-add-page.html new file mode 100644 index 0000000..edd7805 --- /dev/null +++ b/src/app/pages/settings/chains/chain-add-page/chain-add-page.html @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/app/pages/settings/chains/chain-add/chain-add.scss b/src/app/pages/settings/chains/chain-add-page/chain-add-page.scss similarity index 69% rename from src/app/pages/settings/chains/chain-add/chain-add.scss rename to src/app/pages/settings/chains/chain-add-page/chain-add-page.scss index 72d4862..6a25b44 100644 --- a/src/app/pages/settings/chains/chain-add/chain-add.scss +++ b/src/app/pages/settings/chains/chain-add-page/chain-add-page.scss @@ -2,10 +2,4 @@ display: flex; flex-direction: column; height: 100%; -} - -h3 { - margin-top: 0; -} - - +} \ No newline at end of file diff --git a/src/app/pages/settings/chains/chain-add-page/chain-add-page.spec.ts b/src/app/pages/settings/chains/chain-add-page/chain-add-page.spec.ts new file mode 100644 index 0000000..83f4dd4 --- /dev/null +++ b/src/app/pages/settings/chains/chain-add-page/chain-add-page.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ChainAddPage } from './chain-add-page'; +import { ChainSettings } from '../../../../services/chain-settings'; +import { provideTranslateService } from '@ngx-translate/core'; + +describe('ChainAddPage', () => { + let component: ChainAddPage; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [ChainAddPage], + providers: [{ provide: ChainSettings, useValue: {} }, provideTranslateService()], + }).compileComponents(); + + fixture = TestBed.createComponent(ChainAddPage); + component = fixture.componentInstance; + await fixture.whenStable(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/settings/chains/chain-add-page/chain-add-page.ts b/src/app/pages/settings/chains/chain-add-page/chain-add-page.ts new file mode 100644 index 0000000..2a71945 --- /dev/null +++ b/src/app/pages/settings/chains/chain-add-page/chain-add-page.ts @@ -0,0 +1,13 @@ +import { Component } from '@angular/core'; +import { ChainAdd } from "../../../../components/chain-add/chain-add"; +import { ChainForm } from "../chain-form/chain-form"; + +@Component({ + selector: 'app-chain-add-page', + imports: [ChainAdd, ChainForm], + templateUrl: './chain-add-page.html', + styleUrl: './chain-add-page.scss', +}) +export class ChainAddPage { + +} diff --git a/src/app/pages/settings/chains/chain-add/chain-add.html b/src/app/pages/settings/chains/chain-add/chain-add.html deleted file mode 100644 index 45e394a..0000000 --- a/src/app/pages/settings/chains/chain-add/chain-add.html +++ /dev/null @@ -1,8 +0,0 @@ -

{{'settings.chain.new_chain'|translate|upperfirst}}

- - diff --git a/src/app/pages/settings/chains/chain-add/chain-add.ts b/src/app/pages/settings/chains/chain-add/chain-add.ts deleted file mode 100644 index e6a68c7..0000000 --- a/src/app/pages/settings/chains/chain-add/chain-add.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Component, inject } from '@angular/core'; -import { Chain } from '../../../../models/Chain'; -import { ChainFormGroup } from '../chain-formgroup'; -import { ChainForm } from '../chain-form/chain-form'; -import { ActionBtn } from '../../../../components/action-btn/action-btn'; -import { TranslatePipe } from '@ngx-translate/core'; -import { UpperfirstPipe } from '../../../../pipes/upperfirst-pipe'; -import { ChainSettings } from '../../../../services/chain-settings'; - -@Component({ - selector: 'app-chain-add', - imports: [ - ActionBtn, - ChainForm, - TranslatePipe, - UpperfirstPipe, - ], - templateUrl: './chain-add.html', - styleUrl: './chain-add.scss', -}) -export class ChainAdd { - private readonly chainSettings = inject(ChainSettings); - readonly form = new ChainFormGroup(); - - async save() { - const name = this.form.controls.name.value; - const img = this.form.controls.image.value; - //TODO: the sqlite bridge can't handle null as param - const chain = new Chain(name, ''); - await this.chainSettings.save(chain, img); - } -} diff --git a/src/app/pages/settings/settings.route.ts b/src/app/pages/settings/settings.route.ts index ea1ecc4..9e103a3 100644 --- a/src/app/pages/settings/settings.route.ts +++ b/src/app/pages/settings/settings.route.ts @@ -23,7 +23,7 @@ export const routes: Route[] = [ }, { path: 'add', - loadComponent: () => import('./chains/chain-add/chain-add').then(c => c.ChainAdd) + loadComponent: () => import('./chains/chain-add-page/chain-add-page').then(c => c.ChainAddPage) }, { path: 'edit/:id',