aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
}