aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Foiani <mfoiani2019@communiyschoolnaples.org>2018-08-01 20:46:52 -0400
committerMichael Foiani <mfoiani2019@communiyschoolnaples.org>2018-08-01 20:46:52 -0400
commit32fed7906a39e4bfa4d98fee1bdc5340d22cb63f (patch)
tree719f7bd92384927a0a6b994f67f020541be68723
parent7070c6f28d0e1fb6b519b44a83314c4bdb7a004d (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.'
-rw-r--r--src/actions/firebase.js39
-rw-r--r--src/components/mao-admin.js19
-rw-r--r--src/components/request-element.js6
-rw-r--r--src/reducers/firebase.js1
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;
}