diff --git a/src/MistoxWebsite.Client/src/app/models/Product.ts b/src/MistoxWebsite.Client/src/app/models/Product.ts
index 92fb7bf..436a3fc 100644
--- a/src/MistoxWebsite.Client/src/app/models/Product.ts
+++ b/src/MistoxWebsite.Client/src/app/models/Product.ts
@@ -3,7 +3,13 @@ export class Product {
public name: string = "";
public description: string = "";
public curShowingIMG: number = 0;
- public images: File[] = [];
+ public images: ProductImage[] = [];
public cost: number = 0;
public url: string = "";
+}
+
+export class ProductImage {
+ imageID: number = 0;
+ productID: number = 0;
+ image: File | null = null;
}
\ No newline at end of file
diff --git a/src/MistoxWebsite.Client/src/app/pages/store/admin/newitem/new.component.html b/src/MistoxWebsite.Client/src/app/pages/store/admin/newitem/new.component.html
index e299d31..c3b9abe 100644
--- a/src/MistoxWebsite.Client/src/app/pages/store/admin/newitem/new.component.html
+++ b/src/MistoxWebsite.Client/src/app/pages/store/admin/newitem/new.component.html
@@ -24,7 +24,7 @@
@@ -36,4 +36,11 @@
-
\ No newline at end of file
+
+
+
+
+
+
![Image Preview]()
+
+
\ No newline at end of file
diff --git a/src/MistoxWebsite.Client/src/app/pages/store/admin/newitem/new.component.ts b/src/MistoxWebsite.Client/src/app/pages/store/admin/newitem/new.component.ts
index c2e4051..e85ce42 100644
--- a/src/MistoxWebsite.Client/src/app/pages/store/admin/newitem/new.component.ts
+++ b/src/MistoxWebsite.Client/src/app/pages/store/admin/newitem/new.component.ts
@@ -5,7 +5,7 @@ import { Router, ActivatedRoute } from '@angular/router';
import { Title } from '@angular/platform-browser';
import { CommonModule } from '@angular/common';
import { Authentication } from '../../../../services/Authentication';
-import { Product } from 'app/models/Product';
+import { Product, ProductImage } from 'app/models/Product';
@Component({
selector: 'item-new',
@@ -15,8 +15,9 @@ import { Product } from 'app/models/Product';
})
export class NewItemComponent {
- newItem: Product = new Product();
+ readonly maxFileMB = 16;
+ newItem: Product = new Product();
errorMsgs: string[] = [];
constructor( private http: HttpClient, private router: Router, private route: ActivatedRoute, private title: Title, public auth: Authentication ) {
@@ -28,15 +29,39 @@ export class NewItemComponent {
}
selectedFiles: File[] = [];
- onFileSelected(event: any){
- this.selectedFiles = event.target.files;
+ imagePreviews: string[] = [];
+ onFileSelected(event: Event){
+ const fileInput = event.target as HTMLInputElement;
+ this.imagePreviews = [];
+
+ if (!fileInput.files?.length){
+ return;
+ }
+
+ for (let i=0; i
this.maxFileMB * 1024 * 1024){
+ this.errorMsgs.push("File exceeds max file size of 16MB");
+ continue;
+ }
+ // No issues add file to the list
+ this.selectedFiles.push( file );
+
+ const reader = new FileReader();
+ reader.onload= () => {
+ this.imagePreviews.push(reader.result as string);
+ }
+ reader.readAsDataURL(file);
+ }
}
onSubmit(){
// Add uploaded files to dto
if (this.selectedFiles.length > 0){
for(let i=0; i