diff options
-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; } |