diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/actions/firebaseAdmin.js | 2 | ||||
-rw-r--r-- | src/actions/firebaseFirestore.js | 12 | ||||
-rw-r--r-- | src/actions/firebaseStorage.js | 2 | ||||
-rw-r--r-- | src/components/mao-admin.js | 15 | ||||
-rw-r--r-- | src/components/mao-tutoring.js | 4 | ||||
-rw-r--r-- | src/components/request-element.js | 10 |
6 files changed, 34 insertions, 11 deletions
diff --git a/src/actions/firebaseAdmin.js b/src/actions/firebaseAdmin.js index 4a00833..4b64cbf 100644 --- a/src/actions/firebaseAdmin.js +++ b/src/actions/firebaseAdmin.js @@ -76,7 +76,7 @@ export const adminRejectHours = (_id) => (dispatch) => { export const adminDeleteRequest = (_id) => (dispatch) => { var docRef = firestore.collection('requests').doc(_id); docRef.delete().then(() => { - console.log('Deleted request with id ' + _id); + //Delete associated picture }); } diff --git a/src/actions/firebaseFirestore.js b/src/actions/firebaseFirestore.js index 3efeb6a..789d9d3 100644 --- a/src/actions/firebaseFirestore.js +++ b/src/actions/firebaseFirestore.js @@ -1,4 +1,4 @@ -import { firestore } from '../firebase.js'; +import { firestore, storage } from '../firebase.js'; export const UPDATE_DIVISON = 'UPDATE_DIVISON'; export const UPDATE_HOURS = 'UPDATE_HOURS'; @@ -104,13 +104,21 @@ export const requestHours = (_time, _trainee, _location, _subject, _date, _pictu var docRef = firestore.collection('requests'); const _uid = getState().firebaseAuth.uid; const _email = getState().firebaseAuth.userEmail; + var _imgPath = ""; + + var storageRef = storage.ref().child('requests/' + _uid + '/' + _pictureName); + storageRef.getDownloadURL().then((url) => { + _imgPath = url; + }); + + docRef.add({ time: _time, trainee: _trainee, location: _location, subject: _subject, day: _date, - picture: _pictureName, + imgPath: _imgPath, uid: _uid, email: _email }); diff --git a/src/actions/firebaseStorage.js b/src/actions/firebaseStorage.js index 0367a38..d6a2192 100644 --- a/src/actions/firebaseStorage.js +++ b/src/actions/firebaseStorage.js @@ -14,6 +14,8 @@ export const uploadPicture = (file, uploader) => (dispatch, getState) => { console.log(percentage); uploader.value = percentage; }); + + dispatch(updatePicture(file.name)); } } diff --git a/src/components/mao-admin.js b/src/components/mao-admin.js index 6c8a2c9..ffdcb19 100644 --- a/src/components/mao-admin.js +++ b/src/components/mao-admin.js @@ -101,11 +101,11 @@ class MaoAdmin extends connect(store)(PageViewElement) { static get properties() { return { // This is the data from the store. - signedIn: Boolean, - isAdmin: Boolean, - - requests: Array, - registry: Array, + signedIn: Boolean, + isAdmin: Boolean, + requests: Array, + registry: Array, + adminImgs: String, requestsHidden: Boolean, registryHidden: Boolean @@ -114,10 +114,11 @@ class MaoAdmin extends connect(store)(PageViewElement) { _stateChanged(state) { this.signedIn = state.firebaseAuth .signedIn; this.isAdmin = state.firebaseAdmin .isAdmin; - this.requests = state.firebaseAdmin .requests; this.registry = state.firebaseAdmin .compList; + this.adminImgs = state.firebaseAdmin.adminImgs; + this.updateInformation(); } @@ -164,8 +165,10 @@ class MaoAdmin extends connect(store)(PageViewElement) { requestElement.location = this.requests[i].location; requestElement.time = this.requests[i].time; requestElement.trainee = this.requests[i].trainee; + requestElement.subject = this.requests[i].subject; requestElement.uid = this.requests[i].uid; requestElement.docId = this.requests[i].docId; + requestElement.imgPath = this.requests[i].imgPath; requestGrid.appendChild(requestElement); } diff --git a/src/components/mao-tutoring.js b/src/components/mao-tutoring.js index 423effd..a18cc2c 100644 --- a/src/components/mao-tutoring.js +++ b/src/components/mao-tutoring.js @@ -318,7 +318,7 @@ class MaoTutoring extends connect(store)(PageViewElement) { } requestHours() { - if(this.shadowRoot && !this.isUploaded) { + if(this.shadowRoot && this.isUploaded) { var timeElement = this.shadowRoot.getElementById('timeField'); var traineeElement = this.shadowRoot.getElementById('traineeField'); var subjectElement = this.shadowRoot.getElementById('subjectField'); @@ -342,7 +342,7 @@ class MaoTutoring extends connect(store)(PageViewElement) { const subject = subjectElement .value; const date = dateElement .value; - store.dispatch(requestHours(timeHours, traineeName, subject, location, date, this.pictureName)); + store.dispatch(requestHours(timeHours, traineeName, location, subject, date, this.pictureName)); timeElement .value = ""; traineeElement .value = ""; diff --git a/src/components/request-element.js b/src/components/request-element.js index c2bfa34..935bf32 100644 --- a/src/components/request-element.js +++ b/src/components/request-element.js @@ -52,6 +52,7 @@ class RequestElement extends connect(store)(LitElement) { <p><em>Location:</em> ${'\t' + this.location }</p> <p><em>Minutes: </em> ${'\t' + (this.time*60) }</p> <p><em>Trainee: </em> ${'\t' + this.trainee }</p> + <p><em>Subject: </em> ${'\t' + this.subject }</p> </div> </div> <div hidden="${!props.infoTabOpen}" class="card-actions"> @@ -67,6 +68,11 @@ class RequestElement extends connect(store)(LitElement) { on-tap= "${() => this.rejectHours()}"> Reject Time </paper-button> + <iron-image + style:"width:100%; height:auto;" + preload + src="${props.imgPath}"> + </iron-image> </div> </paper-card> `; @@ -78,8 +84,10 @@ class RequestElement extends connect(store)(LitElement) { location: String, time: Number, trainee: String, + subject: String, uid: String, id: String, + imgPath: String, infoTabOpen: Boolean }}; @@ -92,8 +100,10 @@ class RequestElement extends connect(store)(LitElement) { this.location = "Unknown location"; this.time = -1; this.trainee = "Unknown trainee"; + this.subject = "Unknown subject"; this.uid = "Unknown uid"; this.docId = "Unknown docId"; + this.imgPath = ""; this.infoTabOpen = false; } |