setup usersa

This commit is contained in:
Huffle 2025-05-14 15:40:14 +02:00
parent 2486bbf1ec
commit df1b8e4ed7
40 changed files with 221 additions and 57 deletions

View File

@ -1,15 +0,0 @@
<ion-header [translucent]="true">
<ion-toolbar>
<ion-title>
Allowance
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content [fullscreen]="true">
<ion-header collapse="condense">
<ion-toolbar>
<ion-title size="large">Allowance</ion-title>
</ion-toolbar>
</ion-header>
</ion-content>

View File

@ -1,15 +1,21 @@
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { PreloadAllModules, RouterModule, Routes } from '@angular/router';
const routes: Routes = [
{
path: '',
loadChildren: () => import('./tabs/tabs.module').then(m => m.TabsPageModule)
}
loadChildren: () => import('./pages/user-login/user-login.module').then( m => m.UserLoginPageModule)
},
{
path: 'allowance-app',
loadChildren: () => import('./pages/tabs/tabs.module').then(m => m.TabsPageModule)
},
];
@NgModule({
imports: [
RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })
RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules }),
CommonModule
],
exports: [RouterModule]
})

View File

@ -1,15 +0,0 @@
<ion-header [translucent]="true">
<ion-toolbar>
<ion-title>
History
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content [fullscreen]="true">
<ion-header collapse="condense">
<ion-toolbar>
<ion-title size="large">History</ion-title>
</ion-toolbar>
</ion-header>
</ion-content>

View File

@ -0,0 +1,5 @@
export interface User {
id: number;
name: string;
allowance?: number
}

View File

@ -0,0 +1,10 @@
<ion-header [translucent]="true">
<ion-toolbar>
<ion-title>
Allowance
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
</ion-content>

View File

@ -1,4 +1,5 @@
import { Component } from '@angular/core';
import { UserService } from 'src/app/services/user.service';
@Component({
selector: 'app-allowance',
@ -8,6 +9,6 @@ import { Component } from '@angular/core';
})
export class AllowancePage {
constructor() {}
constructor(private userService: UserService) {}
}

View File

@ -0,0 +1,11 @@
<ion-header [translucent]="true">
<ion-toolbar>
<ion-title>
History
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
</ion-content>

View File

@ -34,6 +34,6 @@ const routes: Routes = [
];
@NgModule({
imports: [RouterModule.forChild(routes)],
imports: [RouterModule.forChild(routes),],
})
export class TabsPageRoutingModule {}

View File

@ -7,6 +7,8 @@ import {MatIconModule} from '@angular/material/icon';
import { TabsPageRoutingModule } from './tabs-routing.module';
import { TabsPage } from './tabs.page';
import { provideHttpClient } from '@angular/common/http';
import { UserService } from 'src/app/services/user.service';
@NgModule({
imports: [
@ -16,6 +18,10 @@ import { TabsPage } from './tabs.page';
TabsPageRoutingModule,
MatIconModule,
],
declarations: [TabsPage]
declarations: [TabsPage],
providers: [
provideHttpClient(),
UserService
]
})
export class TabsPageModule {}

View File

@ -1,17 +1,13 @@
<ion-tabs>
<ion-tab-bar slot="bottom">
<ion-tab-button tab="history" href="/tabs/history">
<mat-icon>history</mat-icon>
</ion-tab-button>
<ion-tab-button tab="allowance" href="/tabs/allowance">
<mat-icon>savings</mat-icon>
</ion-tab-button>
<ion-tab-button tab="tasks" href="/tabs/tasks">
<mat-icon>task_alt</mat-icon>
</ion-tab-button>
</ion-tab-bar>
</ion-tabs>

View File

@ -0,0 +1,3 @@
.tab-selected {
background-color: var(--ion-color-secondary);
}

View File

@ -7,7 +7,6 @@ import { Component } from '@angular/core';
standalone: false,
})
export class TabsPage {
constructor() {}
}

View File

@ -0,0 +1,10 @@
<ion-header [translucent]="true">
<ion-toolbar>
<ion-title>
Tasks
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
</ion-content>

View File

@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { UserLoginPage } from './user-login.page';
const routes: Routes = [
{
path: '',
component: UserLoginPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class UserLoginPageRoutingModule {}

View File

@ -0,0 +1,26 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { UserLoginPageRoutingModule } from './user-login-routing.module';
import { UserLoginPage } from './user-login.page';
import { provideHttpClient } from '@angular/common/http';
import { UserService } from 'src/app/services/user.service';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
UserLoginPageRoutingModule,
],
declarations: [UserLoginPage],
providers: [
provideHttpClient(),
UserService
]
})
export class UserLoginPageModule {}

View File

@ -0,0 +1,6 @@
<ion-content>
<div class="title">Who are you?</div>
<div class="selection">
</div>
</ion-content>

View File

@ -0,0 +1,11 @@
.title,
.selection {
display: flex;
justify-content: center;
}
.title {
margin-top: 40%;
color: var(--ion-color-primary);
font-size: 40px;
}

View File

@ -0,0 +1,17 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { UserLoginPage } from './user-login.page';
describe('UserLoginPage', () => {
let component: UserLoginPage;
let fixture: ComponentFixture<UserLoginPage>;
beforeEach(() => {
fixture = TestBed.createComponent(UserLoginPage);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,18 @@
import { Component, OnInit } from '@angular/core';
import { UserService } from 'src/app/services/user.service';
@Component({
selector: 'app-user-login',
templateUrl: './user-login.page.html',
styleUrls: ['./user-login.page.scss'],
standalone: false,
})
export class UserLoginPage implements OnInit {
constructor(private userService: UserService) { }
ngOnInit() {
this.userService.getUserList().subscribe(users => console.log('Users: ', users));
}
}

View File

@ -0,0 +1,20 @@
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { User } from '../models/user';
@Injectable({
providedIn: 'root',
})
export class UserService {
private url = 'localhost:59772/api';
constructor(private http: HttpClient) {}
getUserList(): Observable<Array<User>> {
return this.http.get<User[]>(`${this.url}/users`);
}
getUserById(id: number): Observable<User> {
return this.http.get<User>(`${this.url}/user/${id}`);
}
}

View File

@ -1,15 +0,0 @@
<ion-header [translucent]="true">
<ion-toolbar>
<ion-title>
Tasks
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content [fullscreen]="true">
<ion-header collapse="condense">
<ion-toolbar>
<ion-title size="large">Tasks</ion-title>
</ion-toolbar>
</ion-header>
</ion-content>

View File

@ -1 +1,37 @@
/*
* App Global CSS
* ----------------------------------------------------------------------------
* Put style rules here that you want to apply globally. These styles are for
* the entire app and not just one component. Additionally, this file can be
* used as an entry point to import other CSS/Sass files to be included in the
* output CSS.
* For more information on global stylesheets, visit the documentation:
* https://ionicframework.com/docs/layout/global-stylesheets
*/
/* Core CSS required for Ionic components to work properly */
@import "@ionic/angular/css/core.css";
/* Basic CSS for apps built with Ionic */
@import "@ionic/angular/css/normalize.css";
@import "@ionic/angular/css/structure.css";
@import "@ionic/angular/css/typography.css";
@import "@ionic/angular/css/display.css";
/* Optional CSS utils that can be commented out */
@import "@ionic/angular/css/padding.css";
@import "@ionic/angular/css/float-elements.css";
@import "@ionic/angular/css/text-alignment.css";
@import "@ionic/angular/css/text-transformation.css";
@import "@ionic/angular/css/flex-utils.css";
/**
* Ionic Dark Mode
* -----------------------------------------------------
* For more info, please see:
* https://ionicframework.com/docs/theming/dark-mode
*/
/* @import "@ionic/angular/css/palettes/dark.always.css"; */
/* @import "@ionic/angular/css/palettes/dark.class.css"; */
@import "@ionic/angular/css/palettes/dark.system.css";

View File

@ -1,2 +1,14 @@
// For information on how to create your own theme, please see:
// http://ionicframework.com/docs/theming/
:root {
--ion-color-primary: #9C4BE4;
--ion-color-secondary: #F5E9FF;
--ion-background-color: #F3F3F3;
--ion-font-family: 'Myfont';
}
@font-face {
font-family: 'MyFont';
src: url('../assets/font/Jaro-Regular.ttf');
}