mirror of
https://github.com/bellingcat/auto-archiver-extension.git
synced 2026-06-07 19:18:33 +03:00
delete op
This commit is contained in:
@@ -57,6 +57,10 @@ function processMessages(request, sender) {
|
||||
syncLocalTasks(resolve, reject);
|
||||
break;
|
||||
}
|
||||
case 'deleteTask': {
|
||||
deleteTask(resolve, reject, request.taskId);
|
||||
break;
|
||||
}
|
||||
case 'getErrorMessage': {
|
||||
resolve(await getErrorMessage());
|
||||
break;
|
||||
@@ -235,6 +239,34 @@ async function syncLocalTasks(resolve, reject) {
|
||||
});
|
||||
}
|
||||
|
||||
async function deleteTask(resolve, reject, taskId) {
|
||||
console.log('API: DELETE TASK');
|
||||
chrome.identity.getAuthToken({ interactive: true }, async accessToken => {
|
||||
if (accessToken == undefined) {
|
||||
reject(new Error(LOGIN_FAILED));
|
||||
return;
|
||||
}
|
||||
fetch(`${API_ENDPOINT}/${taskId}?` + new URLSearchParams({ access_token: accessToken }), {
|
||||
method: 'DELETE',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
})
|
||||
.then(getJsonOrError)
|
||||
.then(async deleteOp => {
|
||||
if(deleteOp.deleted){
|
||||
const storage = await optionsStorage.getAll();
|
||||
delete storage.archivedUrls[taskId];
|
||||
await optionsStorage.set(storage);
|
||||
resolve(storage.archivedUrls);
|
||||
return;
|
||||
}
|
||||
throw new Error(`Could not delete archive task.`);
|
||||
})
|
||||
.catch(e => reject(e));
|
||||
});
|
||||
}
|
||||
|
||||
async function getJsonOrError(response) {
|
||||
let additionalErrorInfo = "";
|
||||
if (response.status == 401) additionalErrorInfo = `Check that this email has been granted permission.`;
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<TaskItem v-for="t in displayTasks" :key="t.id" :initial-task="t" taskType="local" />
|
||||
<TaskItem v-for="t in displayTasks" :key="t.id" :initial-task="t" taskType="local" @remove="deleteTask" />
|
||||
<TaskItem v-for="t in onlineTasks" :key="t.id" :initial-task="t" taskType="online" />
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -140,6 +140,12 @@ export default {
|
||||
addTask: function (task) {
|
||||
this.tasks[task.id] = task;
|
||||
},
|
||||
deleteTask: async function (taskId) {
|
||||
const tasksAfterDelete = await this.callBackground({ action: "deleteTask", taskId });
|
||||
if (tasksAfterDelete === null) return;
|
||||
this.tasks = tasksAfterDelete;
|
||||
M.toast({ html: `archive task deleted`, classes: "green accent-4" });
|
||||
},
|
||||
searchTasks: function () {
|
||||
console.log(`searching tasks? ${!this.isSearchingOnline}`);
|
||||
if (this.isSearchingOnline) {
|
||||
|
||||
@@ -67,6 +67,9 @@ export default {
|
||||
});
|
||||
}.bind(this), 2500);
|
||||
},
|
||||
deleteTask: function () {
|
||||
this.$emit('remove', this.task.id);
|
||||
},
|
||||
taskFinished: function (task) {
|
||||
return task.status == 'SUCCESS' || task.status == 'FAILURE' || task.status == 'REVOKED';
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user