Skip to content

Commit 93f4fc0

Browse files
committed
feat: frontend call to API
1 parent 26707b7 commit 93f4fc0

3 files changed

Lines changed: 72 additions & 21 deletions

File tree

assets/js/Components/ReviewFilesPage.js

Lines changed: 69 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -356,13 +356,6 @@ export default function ReviewFilesPage({
356356
}
357357
}, [showLearnMore])
358358

359-
360-
const isDialogOpen = () => {
361-
const dialog = document.getElementById(dialogId)
362-
return dialog && dialog.open
363-
}
364-
365-
366359
const openDialog = (dialogId) => {
367360
setWidgetState(WIDGET_STATE.FIXIT)
368361

@@ -387,12 +380,17 @@ export default function ReviewFilesPage({
387380
return
388381
}
389382

390-
setDeleteFileQueue((oldQueue) => {
391-
if(oldQueue.includes(fileId)) {
392-
return oldQueue.filter((id) => id !== fileId)
393-
}
394-
return [...oldQueue, fileId]
395-
})
383+
url = `file/${fileId}`
384+
385+
const tempQueue = JSON.parse(JSON.stringify(deleteFileQueue))
386+
if(tempQueue.includes(url)){
387+
tempQueue.filter((q_url) => q_url !== url)
388+
}
389+
else{
390+
tempQueue.push(url)
391+
}
392+
393+
setDeleteFileQueue(tempQueue)
396394
}
397395

398396
const updateSelectAllUnusedFilesToggle = (newValue) => {
@@ -401,7 +399,7 @@ export default function ReviewFilesPage({
401399
return
402400
}
403401

404-
setDeleteFileQueue(unusedFiles.map((file) => file.id))
402+
setDeleteFileQueue(unusedFiles.map((file) => `files/${file.lmsFileId}`))
405403
}
406404

407405
const getFileTypeDisplay = (fileType) => {
@@ -856,8 +854,61 @@ const getSectionPostOptions = (newFile, sectionReferences) => {
856854
}
857855
}
858856

859-
const deleteSelectedFiles = () => {
860-
console.log(deleteFileQueue)
857+
const removeFileFromReport = (fileIds) => {
858+
const tempReport = Object.assign({}, report)
859+
860+
if(!Array.isArray(tempReport.files)){
861+
tempReport.files = Object.values(tempReport.files)
862+
}
863+
864+
if(!tempReport || !tempReport.files || tempReport.files.length == 0){
865+
return tempReport
866+
}
867+
868+
for(const id of fileIds){
869+
tempReport.files = tempReport.files.filter((file) => parseInt(file.lmsFileI) != id)
870+
}
871+
872+
return tempReport
873+
}
874+
875+
const deleteSelectedFiles = async (payload) => {
876+
if(!deleteFileQueue || deleteFileQueue?.length == 0){
877+
return
878+
}
879+
880+
const reomovedFileId = []
881+
const tempQueue = JSON.parse(JSON.stringify(deleteFileQueue))
882+
console.log(tempQueue)
883+
try{
884+
const api = new Api(settings)
885+
while(tempQueue.length > 0){
886+
let payloadTracker = 0
887+
let paths = []
888+
while(tempQueue.length > 0 && payloadTracker < payload){
889+
paths.push(tempQueue.pop())
890+
payloadTracker++
891+
}
892+
const respone_str = await api.batchDelete(paths)
893+
const response = await respone_str.json()
894+
console.log(response)
895+
for(const r of response){
896+
reomovedFileId.push(r.id)
897+
}
898+
}
899+
}
900+
catch(e){
901+
console.error(e)
902+
}
903+
904+
const newReport = removeFileFromReport(reomovedFileId)
905+
processNewReport(newReport)
906+
907+
}
908+
909+
const deleteSelectedFilesWrapper = () => {
910+
const payload = 10
911+
deleteSelectedFiles(payload)
861912
}
862913

863914
// Wrapper to pass to file form for unreviewing
@@ -1135,7 +1186,7 @@ const getSectionPostOptions = (newFile, sectionReferences) => {
11351186
</div>
11361187
) : (
11371188
unusedFiles.map((unusedFile) => {
1138-
const isSelected = deleteFileQueue.includes(unusedFile.id)
1189+
const isSelected = deleteFileQueue.includes(`files/${unusedFile.lmsFileId}`)
11391190
return (
11401191
<label key={unusedFile.id} htmlFor={`unused-file-${unusedFile.id}`} className="unused-file-list-item">
11411192
<input
@@ -1161,7 +1212,7 @@ const getSectionPostOptions = (newFile, sectionReferences) => {
11611212
className='btn btn-small btn-icon-left review-files-delete-button'
11621213
tabIndex='0'
11631214
disabled={deleteFileQueue.length === 0}
1164-
onClick={deleteSelectedFiles}
1215+
onClick={deleteSelectedFilesWrapper}
11651216
>
11661217
<DeleteIcon className="icon-sm" />
11671218
<div className="flex-column justify-content-center">{t('files.button.delete_selected')}</div>

assets/js/Services/Api.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export default class Api {
1212
reviewFile: '/api/files/{file}/review',
1313
postFile: '/api/files/{file}/post',
1414
deleteFile: '/api/files/{file}/delete',
15-
batchDelete: 'api/files/delete',
15+
batchDelete: '/api/files/delete',
1616
updateContent: '/api/content',
1717
reportPdf: '/download/courses/{course}/reports/pdf',
1818
adminCourses: '/api/admin/courses/account/{account}/term/{term}',
@@ -198,8 +198,6 @@ export default class Api {
198198
paths: urlList
199199
})
200200
})
201-
202-
203201
}
204202

205203
updateContent(contentOptions, sectionOptions){

assets/js/Services/Report.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,5 +449,7 @@ export function analyzeReport(report, ISSUE_STATE) {
449449
tempReport.sessionFiles = sessionFiles
450450
tempReport.filesReviewed = tempFilesReviewed
451451

452+
console.log(report)
453+
452454
return tempReport
453455
}

0 commit comments

Comments
 (0)