Skip to content

Commit fed3e18

Browse files
Merge branch 'dev' of github.com:mapswipe/python-mapswipe-workers into dev
2 parents 586e725 + d6e2237 commit fed3e18

File tree

3 files changed

+104
-4
lines changed

3 files changed

+104
-4
lines changed

manager_dashboard/manager_dashboard/create.html

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,11 @@ <h3>Basic Project Information</h3>
9999
<span>Enter the description for your project. (3-5 sentences). </span>
100100
</li>
101101
<li>
102-
<label for="image">Direct Image Link</label>
103-
<input type="text" name="image" id="image" required>
102+
<label for="image">Upload Project Image</label>
103+
<input type="file" accept="..gif,.jpg,.jpeg,.png" id="image" onchange='openImageFile(event)'>
104104
<span>Make sure you have the rights to use this image. It should end with .jpg or .png.</span>
105+
<p id="imageText"></p>
106+
<img id="imageFile" width="100%"> </img>
105107
</li>
106108
<li>
107109
<label for="verificationNumber">Verification Number</label>
@@ -327,6 +329,7 @@ <h4>Tile Server B</h4>
327329
<script src="https://www.gstatic.com/firebasejs/6.2.4/firebase-auth.js"></script>
328330
<script src="https://www.gstatic.com/firebasejs/6.2.4/firebase-firestore.js"></script>
329331
<script src="https://www.gstatic.com/firebasejs/6.2.4/firebase-database.js"></script>
332+
<script src="https://www.gstatic.com/firebasejs/6.2.4/firebase-storage.js"></script>
330333
<script src="js/app.js"></script>
331334
<script src="js/ui.js"></script>
332335
<script src="js/uploadProjects.js"></script>

manager_dashboard/manager_dashboard/js/forms.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,24 @@ function openFile(event) {
8282
};
8383
reader.readAsText(input.files[0]);
8484
};
85+
86+
function openImageFile(event) {
87+
var input = event.target;
88+
element_id = event.target.id + 'File'
89+
90+
var reader = new FileReader();
91+
reader.onload = function(){
92+
try {
93+
var dataURL = reader.result;
94+
var output = document.getElementById(element_id);
95+
output.src = dataURL;
96+
}
97+
catch(err) {
98+
element_id = event.target.id + 'Text'
99+
var output = document.getElementById(element_id);
100+
output.innerHTML = '<b>Error reading Image file</b><br>' + err;
101+
}
102+
};
103+
reader.readAsDataURL(input.files[0]);
104+
};
105+

manager_dashboard/manager_dashboard/js/uploadProjects.js

Lines changed: 78 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,42 @@
11
var database = firebase.database();
2+
3+
function upload_project_image() {
4+
var file = document.getElementById('image').files[0]
5+
console.log(file)
6+
var filename = file.name
7+
console.log(filename)
8+
// Create a reference to the image
9+
var storageRef = firebase.storage().ref();
10+
var projectImageRef = storageRef.child('projectImages/'+filename);
11+
12+
var uploadImage = projectImageRef.put(file);
13+
uploadImage.on('state_changed', function(snapshot){
14+
// Observe state change events such as progress, pause, and resume
15+
// Get task progress, including the number of bytes uploaded and the total number of bytes to be uploaded
16+
var progress = (snapshot.bytesTransferred / snapshot.totalBytes) * 100;
17+
console.log('Upload is ' + progress + '% done');
18+
switch (snapshot.state) {
19+
case firebase.storage.TaskState.PAUSED: // or 'paused'
20+
console.log('Upload is paused');
21+
break;
22+
case firebase.storage.TaskState.RUNNING: // or 'running'
23+
console.log('Upload is running');
24+
break;
25+
}
26+
}, function(error) {
27+
// Handle unsuccessful uploads
28+
}, function() {
29+
// Handle successful uploads on complete
30+
// For instance, get the download URL: https://firebasestorage.googleapis.com/...
31+
uploadImage.snapshot.ref.getDownloadURL().then(function(downloadURL) {
32+
console.log('File available at', downloadURL);
33+
return downloadURL
34+
});
35+
});
36+
37+
}
38+
39+
240
function submitInfo() {
341

442
if (currentUid == null) {
@@ -10,7 +48,7 @@ function submitInfo() {
1048
var lookFor = document.getElementById("lookFor").value;
1149
var projectDetails = document.getElementById("projectDetails").value;
1250
var projectType = document.getElementById("projectType").value;
13-
var image = document.getElementById("image").value;
51+
1452
var verificationNumber = document.getElementById("verificationNumber").value;
1553
var createdBy = currentUid;
1654
var groupSize = document.getElementById("groupSize").value;
@@ -104,7 +142,41 @@ function submitInfo() {
104142

105143
}
106144

107-
firebase.database().ref('v2/projectDrafts/').push().set(mapswipe_import)
145+
var file = document.getElementById('image').files[0]
146+
console.log(file)
147+
var filename = file.name
148+
console.log(filename)
149+
// Create a reference to the image
150+
var storageRef = firebase.storage().ref();
151+
var projectImageRef = storageRef.child('projectImages/'+filename);
152+
153+
var uploadImage = projectImageRef.put(file);
154+
uploadImage.on('state_changed', function(snapshot){
155+
// Observe state change events such as progress, pause, and resume
156+
// Get task progress, including the number of bytes uploaded and the total number of bytes to be uploaded
157+
var progress = (snapshot.bytesTransferred / snapshot.totalBytes) * 100;
158+
console.log('Upload is ' + progress + '% done');
159+
switch (snapshot.state) {
160+
case firebase.storage.TaskState.PAUSED: // or 'paused'
161+
console.log('Upload is paused');
162+
break;
163+
case firebase.storage.TaskState.RUNNING: // or 'running'
164+
console.log('Upload is running');
165+
break;
166+
}
167+
}, function(error) {
168+
// Handle unsuccessful uploads
169+
}, function() {
170+
// Handle successful uploads on complete
171+
// For instance, get the download URL: https://firebasestorage.googleapis.com/...
172+
uploadImage.snapshot.ref.getDownloadURL().then(function(downloadURL) {
173+
console.log('File available at', downloadURL);
174+
mapswipe_import.image = downloadURL
175+
console.log(mapswipe_import)
176+
177+
// upload projectDraft to firebase once image has been uploaded
178+
179+
firebase.database().ref('v2/projectDrafts/').push().set(mapswipe_import)
108180
.then(function() {
109181
clear_all_fields();
110182
displaySuccessMessage();
@@ -113,5 +185,9 @@ function submitInfo() {
113185
alert('could not upload data: ' + error);
114186
});
115187

188+
189+
190+
});
191+
});
116192
}
117193
}

0 commit comments

Comments
 (0)