From 7070c6f28d0e1fb6b519b44a83314c4bdb7a004d Mon Sep 17 00:00:00 2001 From: Michael Foiani Date: Wed, 1 Aug 2018 19:45:57 -0400 Subject: Working on displaying the requests with custom element request-grid. --- src/actions/firebase.js | 10 +++-- src/components/mao-admin.js | 50 ++++++++++----------- src/components/request-element.js | 93 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 123 insertions(+), 30 deletions(-) create mode 100644 src/components/request-element.js (limited to 'src') diff --git a/src/actions/firebase.js b/src/actions/firebase.js index 610a60f..8dea81b 100644 --- a/src/actions/firebase.js +++ b/src/actions/firebase.js @@ -216,14 +216,16 @@ export const FETCH_ADMIN_REQUESTS = 'FETCH_ADMIN_REQUESTS'; export const UPDATE_ADMIN_REQUESTS = 'UPDATE_ADMIN_REQUESTS'; export const requestHours = (_time, _trainee, _date) => (dispatch, getState) => { - var docRef = firestore.collection('requests'); - var _uid = getState().firebase.uid; + var docRef = firestore.collection('requests'); + const _uid = getState().firebase.uid; + const _email = getState().firebase.email; docRef.add({ time: _time, trainee: _trainee, date: _date, - uid: _uid + uid: _uid, + email: _email }); docRef = firestore.collection('users').doc(_uid); @@ -246,7 +248,7 @@ export const fetchAdminRequests = () => (dispatch) => { query.forEach((doc) => { requests.push(doc.data()); }); - console.log(requests); + dispatch(fetchAdminRequests(requests)); }); } diff --git a/src/components/mao-admin.js b/src/components/mao-admin.js index 3bcc4c9..c63f952 100644 --- a/src/components/mao-admin.js +++ b/src/components/mao-admin.js @@ -16,7 +16,7 @@ import { connect } from 'pwa-helpers/connect-mixin.js'; import { store } from '../store.js'; //These are the actions needed by this element. -import {} from '../actions/firebase.js'; +import { approveHours } from '../actions/firebase.js'; // We are lazy loading its reducer. import firebase from '../reducers/firebase.js'; @@ -35,6 +35,9 @@ import '@polymer/paper-card/paper-card.js'; import '@polymer/paper-slider/paper-slider.js'; import '@polymer/paper-button/paper-button.js'; +// Import custom elements +import './request-element.js'; + class MaoAdmin extends connect(store)(PageViewElement) { _render(props) { return html` @@ -121,35 +124,30 @@ class MaoAdmin extends connect(store)(PageViewElement) { updateInformation() { if(this.shadowRoot) { - /* - var requestsGrid = this.shadowRoot.getElementById('requests-grid'); - postsGrid.innerHTML = ""; - - for(var i = 0; i < this.requests.length; i++) { - var paperCard = document.createElement('paper-card'); - var cardContent = document.createElement('div'); - var fourmAuthor = document.createElement('h4'); - var fourmSubject = document.createElement('h3'); - var fourmContent = document.createElement('p'); - - fourmAuthor.innerHTML = this.fourmPosts[i].email .replace('@communityschoolnaples.org', ''); - fourmSubject.innerHTML = this.fourmPosts[i].subject; - fourmContent.innerHTML = this.fourmPosts[i].content; - - cardContent.classList.add('card-content'); - cardContent.appendChild( fourmAuthor); - cardContent.appendChild( fourmSubject); - cardContent.appendChild( fourmContent); - - paperCard.elevation = 0; - paperCard.appendChild( cardContent); - - postsGrid.appendChild(paperCard); - */ + //update requests + var requestGrid = this.shadowRoot.getElementById('request-grid'); + requestGrid.innerHTML = ""; + + for(var i = 0; i + + paper-card { + --paper-card-background-color: #ffffff; + width: 100%; + text-align: center; + } + + .info-tab > p { + word-break: break-all; + } + + + +
+

From: ${'\t' + props.email.replace('@communityschoolnaples.org', '')}

+

Date: ${'\t' + props.date}

+ +
+ +
+ `; + } + + static get properties() { return { + email: String, + time: Number, + trainee: String, + uid: String, + + infoTabOpen: Boolean + }}; + + constructor() { + super(); + + this.email = "Unknown email"; + this.time = -1; + this.trainee = "Unknown trainee"; + this.uid = "Unknown uid"; + + this.infoTabOpen = false; + } + + toggleTab() { + this.infoTabOpen = !this.infoTabOpen; + } + + approveHours() { + if(confirm('Are you sure you want to approve' + this.time + 'hours for + ' + this.email +'?')) { + this.dispatchEvent(new CustomEvent('approve-hours')); + } + + } + + +} + +window.customElements.define('request-element', RequestElement); -- cgit v1.2.3-70-g09d2