Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changes for 3.7 #291

Merged
merged 13 commits into from
Apr 2, 2020
Merged
9 changes: 6 additions & 3 deletions apps/loader/chunked_upload.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// expects changeStatus to be defined from loader.js

var start_url = '../load/Upload/start';
var continue_url = '../load/Upload/continue/';
var finish_url = '../load/Upload/finish/';
var start_url = '../loader/upload/start';
var continue_url = '../loader/upload/continue/';
var finish_url = '../loader/upload/finish/';
var chunkSize = 5*1024*1024;

// read a chunk of the file
Expand Down Expand Up @@ -50,6 +50,7 @@ async function handle_upload(selectedFiles) {
var tokentr = document.getElementById('tokenRow');
var slidetr = document.getElementById('slidenameRow');
var idtr = document.getElementById('fileIdRow');
var filtertr = document.getElementById('filterRow');

// Clear existing
document.getElementById('json_table').innerHTML = '';
Expand All @@ -58,6 +59,7 @@ async function handle_upload(selectedFiles) {
fnametr.deleteCell(1);
tokentr.deleteCell(1);
slidetr.deleteCell(1);
filtertr.deleteCell(1);
idtr.deleteCell(1);
}

Expand All @@ -70,6 +72,7 @@ async function handle_upload(selectedFiles) {
selectedFiles[i]['name']+'\'>';
tokentr.insertCell(-1).innerHTML = '<input type=text name=token id=\'token'+currID+'\'>';
slidetr.insertCell(-1).innerHTML = '<input type=text name=slidename id=\'slidename'+currID+'\'>';
filtertr.insertCell(-1).innerHTML = '<input type=text name=filter id=\'filter'+currID+'\'>';

selectedFile = selectedFiles[i];
const filename = document.getElementById('filename'+currID).value;
Expand Down
18 changes: 11 additions & 7 deletions apps/loader/loader.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
var upload_url = '../load/Slide/upload';
var check_url = '../load/Slide/info/';
var thumb_url = '../load/Slide/thumb/';
var upload_url = '../loader/upload/start/';
var check_url = '../loader/data/one/';
var thumb_url = '../loader/data/thumbnail/';

var store = new Store('../data/');

Expand Down Expand Up @@ -108,21 +108,24 @@ function handleCheck(filename, reset, id) {
);
}

function handlePost(filename, slidename, reset) {
function handlePost(filename, slidename, filter, reset) {
fetch(check_url + filename, {credentials: 'same-origin'}).then(
(response) => response.json(), // if the response is a JSON object
).then(
(data) => {
data['upload_date'] = new Date(Date.now()).toLocaleString();
data.name = slidename;
if (filter) {
data.filter = filter;
}
data.location = '/images/' + filename;
data.study = '';
data.specimen = '';
data.mpp = parseFloat(data['mpp-x']) || parseFloat(data['mpp-y']) || 0;
data.mpp_x = parseFloat(data['mpp-x']);
data.mpp_y = parseFloat(data['mpp-y']);
store.post('Slide', {}, data).then(
(success) => changeStatus('POST', success, reset), // Handle the success response object
store.post('Slide', data).then(
(success) => changeStatus('POST', success.result, reset), // Handle the success response object
).catch(
(error) => changeStatus('POST', error, reset), // Handle the error response object
);
Expand Down Expand Up @@ -151,7 +154,8 @@ function PostBtn() {
for (var i=0; i<document.getElementById('fileIdRow').cells.length-1; i++) {
var filename = document.getElementById('filename'+i).value;
var slidename = document.getElementById('slidename'+i).value;
if (i==0) handlePost(filename, slidename, true);
var filter = document.getElementById('filter'+i).value;
if (i==0) handlePost(filename, slidename, filter, true);
else handlePost(filename, slidename, false);
}
}
23 changes: 11 additions & 12 deletions apps/signup/signup.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,21 @@
<link rel='stylesheet' type='text/css' media='all' href='signup.css'/>
</head>
<script>
var userSignupUrl = "../../data/Auth/post"
var userSignupUrl = "../../data/User/post"
function addUser(){
var email = document.getElementById("mail").value
var collections = document.getElementById("collections").value
var filters = document.getElementById("filters").value
// var attr = document.querySelector('input[name="attr"]:checked').value
var attrEle = document.getElementById("attr");
var attr = attrEle.options[attrEle.selectedIndex].value;
var attr_doc = []
var userType = "Null"
if (attr == "3"){
attr_doc = ["write", "admin"]
userType = "Admin"
}
if (attr == "2"){
attr_doc = ["write"]
userType = "Editor"
}
var doc = {name: email, attrs: attr_doc, accessCollection:collections}
var doc = {email: email, userType: userType, userFilters:filters}
fetch(userSignupUrl, {
method: 'POST',
mode: 'cors', // no-cors, cors, *same-origin
Expand Down Expand Up @@ -107,7 +107,7 @@ <h2 style="margin-top: -.5em;">User Signup</h2>
<div class="form-group">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-th-list" style="margin-top: 0.5em;"></i></span>
<input type="text" id="collections" class="form-control" placeholder="['list','of','collections']"
<input type="text" id="filters" class="form-control" placeholder="['list','of','filters']"
required="required">
</div>
</div> <br>
Expand All @@ -116,17 +116,16 @@ <h2 style="margin-top: -.5em;">User Signup</h2>
<select id="attr" class="browser-default custom-select">
<option selected value="1">Viewer</option>
<option value="2">Editor</option>
<option value="3">Admin (and Editor)</option>
<option value="3">Admin</option>
</select>

<br> <br>
<div class="form-group">
<button type="submit" id="sub" class="btn btn-primary btn-block btn-lg sub-btn" onclick="addUser()">Sign
Up</button>
</div>
<p class="small text-center">If you reach this page, it's likely that you tried to log into this instance but lack
access.
Email the administrator if you want to be added. If you are an admin, you should be able to use this form.</p>
<p class="small text-center">This form is only useful to Admin users. If you reach this page, it's likely that you tried to log into this instance but lack
access. Email the administrator if you want to be added.</p>
</form>
<div class="text-center">Already have an account? </div>
</div>
Expand All @@ -139,4 +138,4 @@ <h2 style="margin-top: -.5em;">User Signup</h2>
<script type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.1/js/bootstrap.min.js"></script>
</body>
</html>
</html>
5 changes: 4 additions & 1 deletion apps/table.html
Original file line number Diff line number Diff line change
Expand Up @@ -153,9 +153,12 @@ <h3>Steps for uploading.</h3>
<tr id="slidenameRow">
<td align="right"><b>Slidename</b></td>
</tr>
<tr id="filterRow">
<td align="right"><b>Filter (leave blank for public)</b></td>
</tr>
</table>

<div class="text-center">
<div class="text-center" id="controlButtons">
<button class="btn btn-primary" type="button" id="finish_btn"
value="Finish Upload" onclick="validateForm(finish_upload)">Finish
Upload</button>
Expand Down
4 changes: 2 additions & 2 deletions apps/viewer/uicallbacks.js
Original file line number Diff line number Diff line change
Expand Up @@ -678,7 +678,7 @@ function anno_delete(data) {
}

// no data found
if (!datas.rowsAffected || datas.rowsAffected < 1) {
if (!datas.deletedCount || datas.deletedCount < 1) {
$UI.message.addWarning(`Delete Annotations Failed.`, 5000);
return;
}
Expand Down Expand Up @@ -1110,7 +1110,7 @@ function anno_callback(data) {
}

// Add new lines to notes to prevent overflow
str = noteData.notes;
let str = noteData.notes || '';
var result_string = '';
while (str.length > 0) {
result_string += str.substring(0, 36) + '\n';
Expand Down
Loading