diff options
author | Michael Foiani <mfoiani2019@communiyschoolnaples.org> | 2018-08-01 20:46:52 -0400 |
---|---|---|
committer | Michael Foiani <mfoiani2019@communiyschoolnaples.org> | 2018-08-01 20:46:52 -0400 |
commit | 32fed7906a39e4bfa4d98fee1bdc5340d22cb63f (patch) | |
tree | 719f7bd92384927a0a6b994f67f020541be68723 /src | |
parent | 7070c6f28d0e1fb6b519b44a83314c4bdb7a004d (diff) |
Fixed small glitch where snapshot would fire twice because the field in the database was called 'date.' Annoying. Also, fixed other bugs and finished the admin requests viewing, but need to connect the 'approve hours button.'
Diffstat (limited to 'src')
-rw-r--r-- | src/actions/firebase.js | 39 | ||||
-rw-r--r-- | src/components/mao-admin.js | 19 | ||||
-rw-r--r-- | src/components/request-element.js | 6 | ||||
-rw-r--r-- | src/reducers/firebase.js | 1 |
4 files changed, 38 insertions, 27 deletions
diff --git a/src/actions/firebase.js b/src/actions/firebase.js index 8dea81b..631599f 100644 --- a/src/actions/firebase.js +++ b/src/actions/firebase.js @@ -88,6 +88,8 @@ export const authSuccess = (_user) => { export const adminControls = () => (dispatch) => { dispatch(updateAdmin()); + dispatch(snapshotAdminRequests()); + dispatch(snapshotAdminCompList()); } export const updateAdmin = () => { @@ -193,6 +195,14 @@ export const snapshotRegisteredCompetitions = () => (dispatch, getState) => { }); } + +export const updateRegisteredCompetitions = (registeredComps) => { + return { + type: UPDATE_REGISTERED_COMPETITIONS, + payload: registeredComps + } +} + export const snapshotAdminCompList = () => (dispatch) => { var docRef = firestore.collection('competitions'); docRef.onSnapshot((querySnapshot) => { @@ -204,26 +214,26 @@ export const snapshotAdminCompList = () => (dispatch) => { }); } -export const updateRegisteredCompetitions = (registeredComps) => { +export const updateAdminCompList = (compList) => { return { - type: UPDATE_REGISTERED_COMPETITIONS, - payload: registeredComps + type: UPDATE_ADMIN_COMP_LIST, + payload: compList } } -export const REQUEST_HOURS = 'REQUEST_HOURS'; -export const FETCH_ADMIN_REQUESTS = 'FETCH_ADMIN_REQUESTS'; -export const UPDATE_ADMIN_REQUESTS = 'UPDATE_ADMIN_REQUESTS'; +export const REQUEST_HOURS = 'REQUEST_HOURS'; +export const SNAPSHOT_ADMIN_REQUESTS = 'SNAPSHOT_ADMIN_REQUESTS'; +export const UPDATE_ADMIN_REQUESTS = 'UPDATE_ADMIN_REQUESTS'; export const requestHours = (_time, _trainee, _date) => (dispatch, getState) => { var docRef = firestore.collection('requests'); const _uid = getState().firebase.uid; - const _email = getState().firebase.email; + const _email = getState().firebase.userEmail; docRef.add({ time: _time, trainee: _trainee, - date: _date, + day: _date, uid: _uid, email: _email }); @@ -240,16 +250,15 @@ export const requestHours = (_time, _trainee, _date) => (dispatch, getState) => }); } -export const fetchAdminRequests = () => (dispatch) => { +export const snapshotAdminRequests = () => (dispatch) => { var docRef = firestore.collection('requests'); - docRef.onSnapshot((query) => { - var requests = []; - query.forEach((doc) => { - requests.push(doc.data()); + docRef.onSnapshot((querySnapshot) => { + var requestList = []; + querySnapshot.forEach((doc) => { + requestList.push(doc.data()); }); - - dispatch(fetchAdminRequests(requests)); + dispatch(updateAdminRequests(requestList)); }); } diff --git a/src/components/mao-admin.js b/src/components/mao-admin.js index c63f952..724c0c9 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 { approveHours } from '../actions/firebase.js'; +//import { approveHours } from '../actions/firebase.js'; // We are lazy loading its reducer. import firebase from '../reducers/firebase.js'; @@ -79,10 +79,12 @@ class MaoAdmin extends connect(store)(PageViewElement) { <paper-button raised class="info" id="toggleRequestsBtn" on-tap="${() => this.toggleRequests()}">Show Hours Requests</paper-button> - <div id="requests-grid" hidden="${props.requestsHidden}"> - Requests - </div> + <br/> + <div hidden="${props.requestsHidden}"> + <div id="requests-grid" class="requests-grid"></div> + </div> + </section> `; } @@ -113,7 +115,7 @@ class MaoAdmin extends connect(store)(PageViewElement) { this.requestsHidden = !this.requestsHidden; if(this.shadowRoot) { - var btn = this.shadowRoot.getElementById('toogleRequestsBtn'); + var btn = this.shadowRoot.getElementById('toggleRequestsBtn'); if(this.requestsHidden) { btn.innerHTML = "Show Hours Requests"; } else { @@ -125,7 +127,7 @@ class MaoAdmin extends connect(store)(PageViewElement) { updateInformation() { if(this.shadowRoot) { //update requests - var requestGrid = this.shadowRoot.getElementById('request-grid'); + var requestGrid = this.shadowRoot.getElementById('requests-grid'); requestGrid.innerHTML = ""; for(var i = 0; i<this.requests.length; i++) { @@ -133,19 +135,18 @@ class MaoAdmin extends connect(store)(PageViewElement) { requestElement.email = this.requests[i].email .replace('@communityschoolnaples.org', ''); + requestElement.date = this.requests[i].day; requestElement.time = this.requests[i].time; requestElement.trainee = this.requests[i].trainee; requestElement.uid = this.requests[i].uid; - requestElement.on-approve-hours = "${() => this.approveHours()}" - requestGrid.appendChild(requestElement); } } } approveHours() { - alert("Approve hours") + alert("Approve hours"); } diff --git a/src/components/request-element.js b/src/components/request-element.js index d5aca82..55c9588 100644 --- a/src/components/request-element.js +++ b/src/components/request-element.js @@ -50,6 +50,7 @@ class RequestElement extends LitElement { class="info" raised on-tap= "${() => this.approveHours()}"> + Approve Hours </paper-button> </div> </paper-card> @@ -58,6 +59,7 @@ class RequestElement extends LitElement { static get properties() { return { email: String, + date: String, time: Number, trainee: String, uid: String, @@ -69,6 +71,7 @@ class RequestElement extends LitElement { super(); this.email = "Unknown email"; + this.date = "Unknown date"; this.time = -1; this.trainee = "Unknown trainee"; this.uid = "Unknown uid"; @@ -81,10 +84,9 @@ class RequestElement extends LitElement { } approveHours() { - if(confirm('Are you sure you want to approve' + this.time + 'hours for + ' + this.email +'?')) { + if(confirm('Are you sure you want to approve ' + this.time + ' hours for ' + this.email +' ?')) { this.dispatchEvent(new CustomEvent('approve-hours')); } - } diff --git a/src/reducers/firebase.js b/src/reducers/firebase.js index 7e31d95..5920910 100644 --- a/src/reducers/firebase.js +++ b/src/reducers/firebase.js @@ -90,7 +90,6 @@ const firebase = (state = {initialized: false, authMessage: "", hours: -1, reque } break; - default: return state; } |