fix(exam-correct): add XSRF token to post header
This commit is contained in:
parent
6727dff2ef
commit
2b3046164f
@ -3,9 +3,12 @@ import { StorageManager, LOCATION } from '../../lib/storage-manager/storage-mana
|
|||||||
|
|
||||||
import './exam-correct.sass';
|
import './exam-correct.sass';
|
||||||
|
|
||||||
|
import Cookies from 'js-cookie';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
|
|
||||||
|
|
||||||
|
const EXAM_CORRECT_URL_POST = 'correct';
|
||||||
|
|
||||||
const EXAM_CORRECT_IDENT = 'uw-exam-correct';
|
const EXAM_CORRECT_IDENT = 'uw-exam-correct';
|
||||||
const EXAM_CORRECT_PART_INPUT_ATTR = 'uw-exam-correct--part-input';
|
const EXAM_CORRECT_PART_INPUT_ATTR = 'uw-exam-correct--part-input';
|
||||||
const EXAM_CORRECT_SEND_BTN_ID = 'exam-correct__send-btn';
|
const EXAM_CORRECT_SEND_BTN_ID = 'exam-correct__send-btn';
|
||||||
@ -89,13 +92,13 @@ export class ExamCorrect {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// abort send if there are no results (after validation)
|
// abort send if there are no results (after validation)
|
||||||
if (results === {}) return;
|
if (Object.keys(results).length <= 0) return;
|
||||||
|
|
||||||
console.log(participant, results);
|
console.log('input validated, proceeding', participant, results);
|
||||||
|
|
||||||
// TODO apply row and data classes
|
// TODO create and use template for this
|
||||||
// (maybe create some sort of template for this instead)
|
|
||||||
const correctionRow = document.createElement('TR');
|
const correctionRow = document.createElement('TR');
|
||||||
|
correctionRow.classList.add('table__row');
|
||||||
const dateTD = document.createElement('TD');
|
const dateTD = document.createElement('TD');
|
||||||
dateTD.appendChild(document.createTextNode(moment().format()));
|
dateTD.appendChild(document.createTextNode(moment().format()));
|
||||||
const participantTD = document.createElement('TD');
|
const participantTD = document.createElement('TD');
|
||||||
@ -107,27 +110,35 @@ export class ExamCorrect {
|
|||||||
partTD.appendChild(document.createTextNode(results[partKey]));
|
partTD.appendChild(document.createTextNode(results[partKey]));
|
||||||
return partTD;
|
return partTD;
|
||||||
});
|
});
|
||||||
[dateTD,participantTD,...partTDs].forEach((td) => correctionRow.appendChild(td));
|
[dateTD,participantTD,...partTDs].forEach((td) => {
|
||||||
|
td.classList.add('table__td');
|
||||||
|
correctionRow.appendChild(td);
|
||||||
|
});
|
||||||
const tableBody = this._element.querySelector(`tbody:not(#${EXAM_CORRECT_INPUT_BODY_ID})`);
|
const tableBody = this._element.querySelector(`tbody:not(#${EXAM_CORRECT_INPUT_BODY_ID})`);
|
||||||
tableBody.insertBefore(correctionRow, tableBody.firstChild);
|
tableBody.insertBefore(correctionRow, tableBody.firstChild);
|
||||||
|
|
||||||
// clear input values on validation success
|
// clear input values on validation success
|
||||||
|
// TODO only clear input on post success
|
||||||
[this._participantInput, ...this._partInputs].forEach(clearInput);
|
[this._participantInput, ...this._partInputs].forEach(clearInput);
|
||||||
|
|
||||||
const url = 'TODO';
|
const url = EXAM_CORRECT_URL_POST;
|
||||||
const headers = {};
|
const headers = {
|
||||||
|
'X-XSRF-TOKEN': Cookies.get('XSRF-TOKEN'),
|
||||||
|
};
|
||||||
const body = {
|
const body = {
|
||||||
participant: participant,
|
participant: participant,
|
||||||
results: results,
|
results: results,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
console.log('body', body);
|
||||||
|
|
||||||
this._app.httpClient.post({
|
this._app.httpClient.post({
|
||||||
url: url,
|
url: url,
|
||||||
headers: headers,
|
headers: headers,
|
||||||
body: body,
|
body: body,
|
||||||
}).then(
|
}).then(
|
||||||
(response) => response.json()
|
// (response) => response.json()
|
||||||
).then(
|
//).then(
|
||||||
(response) => this._processResponse(response, participant)
|
(response) => this._processResponse(response, participant)
|
||||||
).catch((error) => {
|
).catch((error) => {
|
||||||
console.error('Error while processing response', error);
|
console.error('Error while processing response', error);
|
||||||
|
|||||||
5
package-lock.json
generated
5
package-lock.json
generated
@ -9767,6 +9767,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"js-cookie": {
|
||||||
|
"version": "2.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz",
|
||||||
|
"integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ=="
|
||||||
|
},
|
||||||
"js-levenshtein": {
|
"js-levenshtein": {
|
||||||
"version": "1.1.6",
|
"version": "1.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz",
|
"resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz",
|
||||||
|
|||||||
@ -108,6 +108,7 @@
|
|||||||
"@babel/runtime": "^7.7.6",
|
"@babel/runtime": "^7.7.6",
|
||||||
"@juggle/resize-observer": "^2.5.0",
|
"@juggle/resize-observer": "^2.5.0",
|
||||||
"core-js": "^3.4.8",
|
"core-js": "^3.4.8",
|
||||||
|
"js-cookie": "^2.2.1",
|
||||||
"moment": "^2.24.0",
|
"moment": "^2.24.0",
|
||||||
"npm": "^6.13.4",
|
"npm": "^6.13.4",
|
||||||
"tail.datetime": "git+ssh://git@gitlab2.rz.ifi.lmu.de/uni2work/tail.DateTime.git#master",
|
"tail.datetime": "git+ssh://git@gitlab2.rz.ifi.lmu.de/uni2work/tail.DateTime.git#master",
|
||||||
|
|||||||
13
records.json
13
records.json
@ -739,5 +739,18 @@
|
|||||||
"usedIds": []
|
"usedIds": []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"mini-css-extract-plugin node_modules/css-loader/dist/cjs.js??ref--6-1!node_modules/postcss-loader/src/index.js??ref--6-2!node_modules/resolve-url-loader/index.js??ref--6-3!node_modules/sass-loader/dist/cjs.js??ref--6-4!frontend/src/utils/exam-correct/exam-correct.sass": [
|
||||||
|
{
|
||||||
|
"modules": {
|
||||||
|
"byIdentifier": {},
|
||||||
|
"usedIds": {}
|
||||||
|
},
|
||||||
|
"chunks": {
|
||||||
|
"byName": {},
|
||||||
|
"bySource": {},
|
||||||
|
"usedIds": []
|
||||||
|
}
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user