Added MSDS uploader
This commit is contained in:
parent
c4439c7b2e
commit
1071310eab
@ -22,7 +22,7 @@
|
|||||||
<a class="nav-link text-dark" [routerLink]="['/formulaManager']">Formula Manager</a>
|
<a class="nav-link text-dark" [routerLink]="['/formulaManager']">Formula Manager</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link text-dark" target="_blank" href="/assets/Chromatex_MSDS.pdf">MSDS</a>
|
<a class="nav-link text-dark" [routerLink]="['/msds']">MSDS</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="ml-auto">
|
<div class="ml-auto">
|
||||||
|
@ -31,6 +31,7 @@ import { AppStore } from './app.store';
|
|||||||
import { SlideshowModule } from 'ng-simple-slideshow';
|
import { SlideshowModule } from 'ng-simple-slideshow';
|
||||||
import {HttpClientModule} from '@angular/common/http';
|
import {HttpClientModule} from '@angular/common/http';
|
||||||
import {ScrollingModule} from '@angular/cdk/scrolling';
|
import {ScrollingModule} from '@angular/cdk/scrolling';
|
||||||
|
import {MSDSComponent} from './msds/msds.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [
|
declarations: [
|
||||||
@ -44,6 +45,7 @@ import {ScrollingModule} from '@angular/cdk/scrolling';
|
|||||||
FormulaManagerComponent,
|
FormulaManagerComponent,
|
||||||
HomeComponent,
|
HomeComponent,
|
||||||
LoginComponent,
|
LoginComponent,
|
||||||
|
MSDSComponent,
|
||||||
NewCategoryComponent,
|
NewCategoryComponent,
|
||||||
NewComponentComponent,
|
NewComponentComponent,
|
||||||
NewFormulaComponent,
|
NewFormulaComponent,
|
||||||
@ -68,6 +70,7 @@ import {ScrollingModule} from '@angular/cdk/scrolling';
|
|||||||
{ path: 'about', component: AboutComponent },
|
{ path: 'about', component: AboutComponent },
|
||||||
{ path: 'cart', component: CartComponent },
|
{ path: 'cart', component: CartComponent },
|
||||||
{ path: 'formulaManager', component: FormulaManagerComponent },
|
{ path: 'formulaManager', component: FormulaManagerComponent },
|
||||||
|
{ path: 'msds', component: MSDSComponent },
|
||||||
{ path: 'products/:product', component: ProductsComponent },
|
{ path: 'products/:product', component: ProductsComponent },
|
||||||
{ path: 'store/:category', component: CategoriesComponent },
|
{ path: 'store/:category', component: CategoriesComponent },
|
||||||
{ path: 'store', component: CategoriesComponent },
|
{ path: 'store', component: CategoriesComponent },
|
||||||
|
15
src/app/msds/msds.component.html
Normal file
15
src/app/msds/msds.component.html
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<div class="bg-white" style="min-height: 450px">
|
||||||
|
<div class="container py-3">
|
||||||
|
<div style="overflow: auto">
|
||||||
|
<h4 class="ml-3 d-inline">MSDS</h4>
|
||||||
|
<button *ngIf="store.user" mat-button class="float-right" (click)="file.click()">
|
||||||
|
<mat-icon>add</mat-icon> Add
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<mat-divider></mat-divider>
|
||||||
|
<mat-list>
|
||||||
|
<mat-list-item *ngFor="let l of links" (click)="open(l)">{{l.name}}</mat-list-item>
|
||||||
|
</mat-list>
|
||||||
|
<input #file type="file" accept="application/pdf" (change)="upload($event.target)" hidden>
|
||||||
|
</div>
|
||||||
|
</div>
|
41
src/app/msds/msds.component.ts
Normal file
41
src/app/msds/msds.component.ts
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
import {Component, OnInit} from '@angular/core';
|
||||||
|
import * as firebase from 'firebase';
|
||||||
|
import {AppStore} from '../app.store';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-msds',
|
||||||
|
templateUrl: './msds.component.html'
|
||||||
|
})
|
||||||
|
export class MSDSComponent implements OnInit {
|
||||||
|
firestore;
|
||||||
|
links = [];
|
||||||
|
storage;
|
||||||
|
|
||||||
|
constructor(public store: AppStore) {
|
||||||
|
this.firestore = firebase.firestore();
|
||||||
|
this.storage = firebase.storage();
|
||||||
|
}
|
||||||
|
|
||||||
|
async ngOnInit() {
|
||||||
|
let docs = await this.firestore.collection('msds').get();
|
||||||
|
docs.forEach(snap => this.links = this.links.concat([snap.data()]).sort());
|
||||||
|
}
|
||||||
|
|
||||||
|
open(link) {
|
||||||
|
window.open(link.src);
|
||||||
|
}
|
||||||
|
|
||||||
|
upload(e) {
|
||||||
|
this.storage.ref(`MSDS/${e.files[0].name}`).put(e.files[0]).then(async e => {
|
||||||
|
let data = {
|
||||||
|
name: e.metadata.name,
|
||||||
|
src: await this.storage.ref(e.metadata.fullPath).getDownloadURL()
|
||||||
|
};
|
||||||
|
|
||||||
|
console.log(data);
|
||||||
|
|
||||||
|
this.links.concat([data]).sort();
|
||||||
|
this.firestore.collection('msds').doc(e.metadata.name).set(data);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user