V1.0 Vorerst finaler Stand 16.06.
This commit is contained in:
parent
fe3a0a53f0
commit
2253524549
@ -1,14 +1,18 @@
|
||||
import { NgModule } from '@angular/core';
|
||||
import { RouterModule, Routes } from '@angular/router';
|
||||
import {Einkaufszettel1Component} from "./components/einkaufszettel1/einkaufszettel1.component";
|
||||
import {EinkaufszettelComponent} from "./components/einkaufszettel1/einkaufszettel.component";
|
||||
import {HomeComponent} from "./components/home/home.component";
|
||||
import {Einkaufszettel2Component} from "./components/einkaufszettel2/einkaufszettel2.component";
|
||||
import {AboutComponent} from "./components/about/about.component";
|
||||
|
||||
const routes: Routes = [
|
||||
{ path: '', redirectTo: 'home', pathMatch: 'full'},
|
||||
{ path: 'home', component: HomeComponent},
|
||||
{ path: 'einkaufszettel1', component: Einkaufszettel1Component},
|
||||
{ path: 'einkaufszettel2', component: Einkaufszettel2Component},
|
||||
{ path: 'Einkaufszettel',
|
||||
children: [
|
||||
{ path: '1', component: EinkaufszettelComponent},
|
||||
{ path: '2', component: EinkaufszettelComponent} ]},
|
||||
{ path: 'about', component: AboutComponent},
|
||||
|
||||
{ path: '**', redirectTo: 'home'}
|
||||
];
|
||||
|
||||
|
@ -9,9 +9,9 @@ import { HeaderComponent } from './components/header/header.component';
|
||||
import { FooterComponent } from './components/footer/footer.component';
|
||||
import { BlogCreateComponent } from './components/blog-create/blog-create.component';
|
||||
import { AppRoutingModule } from './app-routing.module';
|
||||
import { Einkaufszettel1Component } from './components/einkaufszettel1/einkaufszettel1.component';
|
||||
import { EinkaufszettelComponent } from './components/einkaufszettel1/einkaufszettel.component';
|
||||
import { HomeComponent } from './components/home/home.component';
|
||||
import { Einkaufszettel2Component } from './components/einkaufszettel2/einkaufszettel2.component';
|
||||
import { AboutComponent } from './components/about/about.component';
|
||||
|
||||
@NgModule({
|
||||
declarations: [
|
||||
@ -21,9 +21,9 @@ import { Einkaufszettel2Component } from './components/einkaufszettel2/einkaufsz
|
||||
HeaderComponent,
|
||||
FooterComponent,
|
||||
BlogCreateComponent,
|
||||
Einkaufszettel1Component,
|
||||
EinkaufszettelComponent,
|
||||
HomeComponent,
|
||||
Einkaufszettel2Component
|
||||
AboutComponent,
|
||||
],
|
||||
imports: [
|
||||
BrowserModule,
|
||||
|
@ -3,40 +3,34 @@
|
||||
<div>
|
||||
<form (ngSubmit)="saveTask(form.value)" #form="ngForm">
|
||||
<div class="form-group">
|
||||
<div><label>Position </label></div>
|
||||
<div><label>Position (falls leer - als letztes) </label></div>
|
||||
<div>
|
||||
<input type="text" class="form-control" name="title" id="position" #position ngModel required/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div><label>Einkaufsort* </label></div>
|
||||
<div><label>Einkaufsort* (z.B. Aldi Süd, Dehner, DM, Edeka, Hornbach, Lidl, Müller, Netto, OBI, Penny, Rewe, Rossmann) </label></div>
|
||||
<div>
|
||||
<input type="text" class="form-control" name="title" id="title" #einkaufsort ngModel required/>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div><label for="kategorie">Kategorie </label></div>
|
||||
<div><label for="kategorie">Kategorie (falls Einkaufsort von vorhandenen abweicht) </label></div>
|
||||
<div>
|
||||
<input type="text" class="form-control" name="title" id="kategorie" #kategorie ngModel required/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div><label for="menge">Menge* </label></div>
|
||||
<div>
|
||||
<input type="text" class="form-control" name="title" id="menge" #menge ngModel required/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div><label for="kommentar">Kommentar: </label></div>
|
||||
<textarea id="kommentar" #kommentar cols="20" rows="3" #text>
|
||||
<div><label for="kommentar">Besorgungen: </label></div>
|
||||
<textarea id="kommentar" #besorgungen cols="20" rows="3">
|
||||
</textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<button
|
||||
(click)="createBlogEntry(einkaufsort.value, kategorie.value, menge.value, kommentar.value, position.value)">
|
||||
(click)="createBlogEntry(einkaufsort.value, kategorie.value, besorgungen.value, position.value)">
|
||||
Eintrag anlegen
|
||||
</button>
|
||||
</div>
|
||||
@ -54,14 +48,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div><label for="menge">Eintrag auswählen: </label></div>
|
||||
<div><label >Eintrag auswählen: </label></div>
|
||||
<div>
|
||||
<input type="text" class="form-control" name="title" id="index" #index ng-model required min="0" max=99/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div>
|
||||
<button (click)="deleteEntry(index.value)">
|
||||
Eintrag löschen
|
||||
</button>
|
||||
|
@ -1,34 +1,29 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import {Component} from '@angular/core';
|
||||
import {BlogEntry} from "../blog-entry/blog-entry";
|
||||
import {FormBuilder, Validators} from "@angular/forms";
|
||||
import {initialEntries} from "../blog-entry/initialEntries";
|
||||
|
||||
|
||||
@Component({
|
||||
selector: 'app-blog-create',
|
||||
templateUrl: './blog-create.component.html',
|
||||
styleUrls: ['./blog-create.component.css']
|
||||
})
|
||||
export class BlogCreateComponent implements OnInit {
|
||||
title = 'Einkaufszettel';
|
||||
entries: BlogEntry[] = [];
|
||||
export class BlogCreateComponent {
|
||||
entries: BlogEntry[] = initialEntries;
|
||||
|
||||
constructor() {
|
||||
this.entries.splice(0, 1);
|
||||
|
||||
constructor(public fb: FormBuilder) {
|
||||
this.entries = [];
|
||||
this.entries = initialEntries;
|
||||
}
|
||||
|
||||
|
||||
saveTask(value: any){
|
||||
console.log(value);
|
||||
}
|
||||
|
||||
createBlogEntry(einkaufsort: string, kategorie: string, menge: string, kommentar: string, position: string) {
|
||||
if (einkaufsort && kommentar) {
|
||||
createBlogEntry(einkaufsort: string, kategorie: string, besorgungen: string, position: string) {
|
||||
if (einkaufsort && besorgungen) {
|
||||
const entry = new BlogEntry();
|
||||
entry.einkaufsort = einkaufsort;
|
||||
entry.menge = menge;
|
||||
entry.kommentar = kommentar;
|
||||
|
||||
entry.besorgungen = besorgungen;
|
||||
if(einkaufsort === 'Aldi Süd'){
|
||||
entry.image = 'https://www.horizont.net/news/media/20/Logo-Aldi-Sd-2017-198042-detailnp.jpeg';
|
||||
entry.kategorie = 'Lebensmittel';
|
||||
@ -73,25 +68,27 @@ export class BlogCreateComponent implements OnInit {
|
||||
else {
|
||||
entry.kategorie = kategorie;
|
||||
}
|
||||
};
|
||||
if (position == '' || Number(position) >= this.entries.length){
|
||||
}
|
||||
if ( (position =='' )|| Number(position) >= this.entries.length){
|
||||
entry.position = this.entries.length;
|
||||
this.entries.push(entry);
|
||||
}
|
||||
else if (Number(position) < 1){
|
||||
entry.position = 0;
|
||||
this.entries.splice(Number(position), 0, entry);
|
||||
this.entries.forEach(function(part,index,theArray) {
|
||||
theArray[index].position = index;
|
||||
})}
|
||||
else {
|
||||
entry.position = Number(position) - 1;
|
||||
this.entries.splice(Number(position)-1, 0, entry);
|
||||
this.entries.forEach(function(part,index,theArray) {
|
||||
theArray[index].position = index;
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
})}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
deleteAllEntries() {
|
||||
console.log(this.entries.length);
|
||||
@ -118,8 +115,4 @@ export class BlogCreateComponent implements OnInit {
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
ngOnInit(): void {
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -6,7 +6,6 @@
|
||||
<p> {{entry.position + 1}}. Eintrag</p>
|
||||
<span class="einkaufsort">{{entry.einkaufsort}}</span>
|
||||
<p> {{entry.kategorie}}</p>
|
||||
<p> Menge: {{entry.menge}}</p>
|
||||
<p> {{entry.kommentar}}</p>
|
||||
<p> {{entry.besorgungen}}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -2,7 +2,6 @@ export class BlogEntry {
|
||||
einkaufsort: string;
|
||||
image: string;
|
||||
kategorie: string;
|
||||
menge: string;
|
||||
kommentar: string;
|
||||
besorgungen: string;
|
||||
position: number;
|
||||
}
|
||||
|
@ -1,99 +1,8 @@
|
||||
export const initialEntries = [
|
||||
{
|
||||
einkaufsort: 'Aldi Süd',
|
||||
image: 'https://www.horizont.net/news/media/20/Logo-Aldi-Sd-2017-198042-detailnp.jpeg',
|
||||
kategorie: 'Lebensmittel',
|
||||
menge: '1',
|
||||
kommentar: 'Hier könnten ihre benötigten Einkäufe stehen',
|
||||
einkaufsort: '',
|
||||
image: '',
|
||||
kategorie: '',
|
||||
besorgungen: '',
|
||||
position: 0
|
||||
},
|
||||
{
|
||||
einkaufsort: 'Edeka',
|
||||
image: 'https://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Logo_Edeka.svg/1200px-Logo_Edeka.svg.png',
|
||||
kategorie: 'Lebensmittel',
|
||||
menge: '1',
|
||||
kommentar: 'Hier könnten ihre benötigten Einkäufe stehen',
|
||||
position: 1
|
||||
},
|
||||
|
||||
{
|
||||
einkaufsort: 'Lidl',
|
||||
image: 'https://upload.wikimedia.org/wikipedia/commons/thumb/9/91/Lidl-Logo.svg/1200px-Lidl-Logo.svg.png',
|
||||
kategorie: 'Lebensmittel',
|
||||
menge: '1',
|
||||
kommentar: 'Hier könnten ihre benötigten Einkäufe stehen',
|
||||
position: 2
|
||||
},
|
||||
{
|
||||
einkaufsort: 'Rewe',
|
||||
image: 'https://upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Logo_REWE.svg/1200px-Logo_REWE.svg.png',
|
||||
kategorie: 'Lebensmittel',
|
||||
menge: '1',
|
||||
kommentar: 'Hier könnten ihre benötigten Einkäufe stehen',
|
||||
position: 3
|
||||
},
|
||||
{
|
||||
einkaufsort: 'Netto',
|
||||
image: 'https://www.netto-online.de/images/favicons/logo_netto.png',
|
||||
kategorie: 'Lebensmittel',
|
||||
menge: '1',
|
||||
kommentar: 'Hier könnten ihre benötigten Einkäufe stehen',
|
||||
position: 4
|
||||
},
|
||||
{
|
||||
einkaufsort: 'Penny',
|
||||
image: 'https://upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Penny-Markt.svg/1200px-Penny-Markt.svg.png',
|
||||
kategorie: 'Lebensmittel',
|
||||
menge: '1',
|
||||
kommentar: 'Hier könnten ihre benötigten Einkäufe stehen',
|
||||
position: 5
|
||||
},
|
||||
{
|
||||
einkaufsort: 'DM',
|
||||
image: 'https://upload.wikimedia.org/wikipedia/commons/thumb/5/50/Dm_Logo.svg/1200px-Dm_Logo.svg.png',
|
||||
kategorie: 'Drogerie',
|
||||
menge: '1',
|
||||
kommentar: 'Hier könnten ihre benötigten Einkäufe stehen',
|
||||
position: 6
|
||||
},
|
||||
{
|
||||
einkaufsort: 'Rossmann',
|
||||
image: 'https://www.einkaufsbahnhof.de/wp-content/uploads/2018/03/rossmann_logo_schreibschrift.png',
|
||||
kategorie: 'Drogerie',
|
||||
menge: '1',
|
||||
kommentar: 'Hier könnten ihre benötigten Einkäufe stehen',
|
||||
position: 7
|
||||
},
|
||||
{
|
||||
einkaufsort: 'Müller',
|
||||
image: 'https://www.e-einz.de/wp-content/uploads/2017/02/Mueller.png',
|
||||
kategorie: 'Drogerie',
|
||||
menge: '1',
|
||||
kommentar: 'Hier könnten ihre benötigten Einkäufe stehen',
|
||||
position: 8
|
||||
},
|
||||
{
|
||||
einkaufsort: 'OBI',
|
||||
image: 'https://media.aubi-plus.com/files/premiumprofil/logo/35d8961-obi.jpg',
|
||||
kategorie: 'Baumarkt',
|
||||
menge: '1',
|
||||
kommentar: 'Hier könnten ihre benötigten Einkäufe stehen',
|
||||
position: 9
|
||||
},
|
||||
{
|
||||
einkaufsort: 'Dehner',
|
||||
image: 'https://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Dehner.svg/1200px-Dehner.svg.png',
|
||||
kategorie: 'Garten-Center',
|
||||
menge: '1',
|
||||
kommentar: 'Hier könnten ihre benötigten Einkäufe stehen',
|
||||
position: 10
|
||||
},
|
||||
{
|
||||
einkaufsort: 'Hornbach',
|
||||
image: 'https://www.luvshopping.de/-/media/images/b2c/germany/lubeck/logo-stores/hornbach.jpg?h=442&la=de-DE&mw=650&w=650&hash=C6C36C2C1536745108FF620D3B9CD7E4864A9308',
|
||||
kategorie: 'Baumarkt',
|
||||
menge: '1',
|
||||
kommentar: 'Hier könnten ihre benötigten Einkäufe stehen',
|
||||
position: 11
|
||||
}
|
||||
];
|
||||
}];
|
||||
|
@ -1,2 +1 @@
|
||||
<h1>Einkaufszettel1</h1>
|
||||
<app-blog-create><app-blog-entry></app-blog-entry></app-blog-create>
|
@ -1,20 +1,20 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { Einkaufszettel1Component } from './einkaufszettel1.component';
|
||||
import { EinkaufszettelComponent } from './einkaufszettel.component';
|
||||
|
||||
describe('Einkaufszettel1Component', () => {
|
||||
let component: Einkaufszettel1Component;
|
||||
let fixture: ComponentFixture<Einkaufszettel1Component>;
|
||||
let component: EinkaufszettelComponent;
|
||||
let fixture: ComponentFixture<EinkaufszettelComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ Einkaufszettel1Component ]
|
||||
declarations: [ EinkaufszettelComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(Einkaufszettel1Component);
|
||||
fixture = TestBed.createComponent(EinkaufszettelComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
@ -0,0 +1,15 @@
|
||||
import {Component} from '@angular/core';
|
||||
|
||||
|
||||
@Component({
|
||||
selector: 'app-einkaufszettel1',
|
||||
templateUrl: './einkaufszettel.component.html',
|
||||
styleUrls: ['./einkaufszettel.component.css']
|
||||
})
|
||||
export class EinkaufszettelComponent {
|
||||
|
||||
constructor() {
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'app-einkaufszettel1',
|
||||
templateUrl: './einkaufszettel1.component.html',
|
||||
styleUrls: ['./einkaufszettel1.component.css']
|
||||
})
|
||||
export class Einkaufszettel1Component implements OnInit {
|
||||
|
||||
constructor() { }
|
||||
|
||||
ngOnInit(): void {
|
||||
}
|
||||
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
<h1>Einkaufszettel2</h1>
|
||||
<app-blog-create><app-blog-entry></app-blog-entry></app-blog-create>
|
||||
|
@ -1,25 +0,0 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { Einkaufszettel2Component } from './einkaufszettel2.component';
|
||||
|
||||
describe('Einkaufszettel2Component', () => {
|
||||
let component: Einkaufszettel2Component;
|
||||
let fixture: ComponentFixture<Einkaufszettel2Component>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ Einkaufszettel2Component ]
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(Einkaufszettel2Component);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
@ -1,15 +0,0 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'app-einkaufszettel2',
|
||||
templateUrl: './einkaufszettel2.component.html',
|
||||
styleUrls: ['./einkaufszettel2.component.css']
|
||||
})
|
||||
export class Einkaufszettel2Component implements OnInit {
|
||||
|
||||
constructor() { }
|
||||
|
||||
ngOnInit(): void {
|
||||
}
|
||||
|
||||
}
|
@ -2,6 +2,8 @@
|
||||
<footer class="footer">
|
||||
<div class="container">
|
||||
<div class="content has-text-centered">
|
||||
<br>
|
||||
<br>
|
||||
<p>
|
||||
Made by Christian Greif - greifch67520@th-nuernberg.de - <a href="https://www.th-nuernberg.de/">Technische Hochschule Nürnberg</a>
|
||||
</p>
|
||||
|
@ -6,7 +6,6 @@ import { Component, OnInit } from '@angular/core';
|
||||
styleUrls: ['./footer.component.css']
|
||||
})
|
||||
export class FooterComponent implements OnInit {
|
||||
|
||||
constructor() { }
|
||||
|
||||
ngOnInit(): void {
|
||||
|
@ -3,3 +3,4 @@
|
||||
<img src="https://ranking.zeit.de/che/images/logos/Hochschule_400.jpg">
|
||||
<app-navbar></app-navbar>
|
||||
</header>
|
||||
<br>
|
||||
|
@ -2,9 +2,9 @@
|
||||
<h1>Willkommen in der Einkaufszettel-App</h1>
|
||||
<div>
|
||||
<h3>Bitte wählen sie einen Einkaufszettel aus:</h3>
|
||||
<a routerLink="/einkaufszettel1" routerLinkActive="active">Einkaufszettel1</a>
|
||||
<a class="myLinks" routerLink="/Einkaufszettel/1" routerLinkActive="active">Einkaufszettel1</a>
|
||||
</div>
|
||||
<div>
|
||||
<a routerLink="/einkaufszettel2" routerLinkActive="active">Einkaufszettel2</a>
|
||||
<a class="myLinks" routerLink="/Einkaufszettel/2" routerLinkActive="active">Einkaufszettel2</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
@ -7,10 +7,13 @@
|
||||
<a class="nav-link" href="home">Startseite</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="einkaufszettel1">Einkaufszettel1</a>
|
||||
<a class="nav-link" href="/Einkaufszettel/1">Einkaufszettel1</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="einkaufszettel2">Einkaufszettel2</a>
|
||||
<a class="nav-link" href="/Einkaufszettel/2">Einkaufszettel2</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/about">Über</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -11,9 +11,7 @@ export class NavbarComponent implements OnInit {
|
||||
constructor() {
|
||||
|
||||
}
|
||||
toggleNavbar() {
|
||||
this.navbarOpen = !this.navbarOpen;
|
||||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
this.navbarOpen = !this.navbarOpen;
|
||||
}
|
||||
|
@ -4,6 +4,12 @@ body {
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
.myLinks {
|
||||
color: blue;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
|
||||
.form {
|
||||
background-color: #eee;
|
||||
width: 500px; /* Breite des Formulars */
|
||||
@ -18,7 +24,7 @@ body {
|
||||
}
|
||||
|
||||
label {
|
||||
width: 100px;
|
||||
width: 500px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user