Added MSDS uploader

This commit is contained in:
Zakary Timson 2018-11-04 19:19:54 -05:00
parent c4439c7b2e
commit 1071310eab
4 changed files with 60 additions and 1 deletions

View File

@ -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">

View File

@ -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 },

View 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>

View 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);
});
}
}