implemented logic for deleting multiple selected containers and hidden the delete button if no one is selected

This commit is contained in:
joey 2020-03-08 22:53:15 -04:00
parent cd8ae50c60
commit 4592a91cdf
2 changed files with 24 additions and 10 deletions

View file

@ -976,6 +976,23 @@ Logic.registerPanel(P_CONTAINERS_EDIT, {
Logic.addEnterHandler(document.querySelector("#exit-edit-mode-link"), () => {
Logic.showPanel(P_CONTAINERS_LIST);
});
Logic.addEnterHandler(document.querySelector("#delete-link"), async () => {
/*
Showing the confirm page of deleting all selected containers.
*/
const selectedIdentities = Logic.currentSelectedIdentities();
if (selectedIdentities.length > 0) {
await Logic.showPanel(P_CONTAINER_DELETE, null, Logic.currentSelectedIdentities());
}
});
},
// showing delete button if there is any selected containers
showDeleteSelectedButton(selectedContainers) {
const assignmentPanel = document.getElementById("edit-sites-assigned");
const assignmentKeys = Object.keys(selectedContainers);
assignmentPanel.hidden = !(assignmentKeys.length > 0);
},
// This method is called when the panel is shown.
@ -1217,17 +1234,15 @@ Logic.registerPanel(P_CONTAINER_DELETE, {
} else {
currentSelection = [Logic.currentIdentity()];
}
let i = 0;
// TODO this is still async and may cause issue
try {
while(i < currentSelection.length) {
// loop through each selected container
for (let i = 0; i < currentSelection.length; i++) {
await Logic.removeIdentity(Logic.userContextId(currentSelection[i].cookieStoreId));
await Logic.refreshIdentities();
i ++;
}
await Logic.refreshIdentities();
Logic.showPreviousPanel();
} catch (e) {
Logic.showPanel(P_CONTAINERS_LIST);
await Logic.showPanel(P_CONTAINERS_LIST);
}
});
},
@ -1246,8 +1261,8 @@ Logic.registerPanel(P_CONTAINER_DELETE, {
// Populating the panel: name, icon, and warning message
document.getElementById("delete-container-name").textContent = currentSelection[0].name;
document.getElementById("delete-container-tab-warning").textContent = ``;
while(i < currentSelection.length) {
const identity = currentSelection[0];
for (let i = 0; i < currentSelection.length; i++) {
const identity = currentSelection[i];
const totalNumberOfTabs = identity.numberOfHiddenTabs + identity.numberOfOpenTabs;
let warningMessage = "";
if (totalNumberOfTabs > 0) {
@ -1259,7 +1274,6 @@ Logic.registerPanel(P_CONTAINER_DELETE, {
const icon = document.getElementById("delete-container-icon");
icon.setAttribute("data-identity-icon", identity.icon);
icon.setAttribute("data-identity-color", identity.color);
i++;
}
return Promise.resolve(null);
},

View file

@ -179,7 +179,7 @@
<tbody id="edit-identities-list"></tbody>
</table>
</div>
<div class="panel-footer panel-footer-secondary">
<div class="panel-footer panel-footer-secondary" hidden>
<a href="#" id="delete-link" class="edit-container-delete-button">Delete</a>
</div>
<div class="panel-footer edit-containers-panel-footer">