Loading vospace-ui-frontend/src/components/Main.vue +11 −4 Original line number Original line Diff line number Diff line Loading @@ -117,12 +117,19 @@ export default { this.$store.dispatch('startAsyncRecallJob'); this.$store.dispatch('startAsyncRecallJob'); }, }, deleteNodes() { deleteNodes() { let deletableCheckboxes = document.querySelectorAll('#nodes input.deletable:checked'); let selectedNodesCheckboxes = document.querySelectorAll('#nodes input:checked'); let paths = []; let paths = [], unDeletablePaths = []; for (let i = 0; i < deletableCheckboxes.length; i++) { for (let i = 0; i < selectedNodesCheckboxes.length; i++) { paths.push(deletableCheckboxes[i].getAttribute('data-node')); let checkbox = selectedNodesCheckboxes[i]; let dataNode = checkbox.getAttribute('data-node'); if(checkbox.classList.contains('deletable')) { paths.push(dataNode); } else { unDeletablePaths.push(dataNode); } } } this.$store.commit('setNodesToDelete', paths); this.$store.commit('setNodesToDelete', paths); this.$store.commit('setSelectedUndeletableNodes', unDeletablePaths); this.$bvModal.show('confirm-delete-modal'); this.$bvModal.show('confirm-delete-modal'); } } } } Loading vospace-ui-frontend/src/components/modal/ConfirmDeleteModal.vue +10 −1 Original line number Original line Diff line number Diff line Loading @@ -11,6 +11,14 @@ <li v-for="node in nodesToDelete" :key="node">{{node}}</li> <li v-for="node in nodesToDelete" :key="node">{{node}}</li> </ul> </ul> </p> </p> <div v-if="selectedUndeletableNodes.length > 0"> <p><strong>Warning</strong>: following selected nodes can't be deleted and will be ignored:</p> <p> <ul> <li v-for="node in selectedUndeletableNodes" :key="node">{{node}}</li> </ul> </p> </div> </b-modal> </b-modal> </template> </template> Loading @@ -18,7 +26,8 @@ export default { export default { name: 'ConfirmDeleteModal', name: 'ConfirmDeleteModal', computed: { computed: { nodesToDelete() { return this.$store.state.nodesToDelete } nodesToDelete() { return this.$store.state.nodesToDelete }, selectedUndeletableNodes() { return this.$store.state.selectedUndeletableNodes } }, }, methods: { methods: { reset() { reset() { Loading vospace-ui-frontend/src/store.js +4 −0 Original line number Original line Diff line number Diff line Loading @@ -33,6 +33,7 @@ export default new Vuex.Store({ lastJobsCheckTime: null, lastJobsCheckTime: null, user: 'anonymous', user: 'anonymous', nodesToDelete: [], nodesToDelete: [], selectedUndeletableNodes: [], writable: false, writable: false, nodeToShare: { nodeToShare: { path: null, path: null, Loading Loading @@ -78,6 +79,9 @@ export default new Vuex.Store({ setNodesToDelete(state, paths) { setNodesToDelete(state, paths) { updateArray(state.nodesToDelete, paths); updateArray(state.nodesToDelete, paths); }, }, setSelectedUndeletableNodes(state, paths) { updateArray(state.selectedUndeletableNodes, paths); }, setWritable(state, value) { setWritable(state, value) { state.writable = value; state.writable = value; }, }, Loading Loading
vospace-ui-frontend/src/components/Main.vue +11 −4 Original line number Original line Diff line number Diff line Loading @@ -117,12 +117,19 @@ export default { this.$store.dispatch('startAsyncRecallJob'); this.$store.dispatch('startAsyncRecallJob'); }, }, deleteNodes() { deleteNodes() { let deletableCheckboxes = document.querySelectorAll('#nodes input.deletable:checked'); let selectedNodesCheckboxes = document.querySelectorAll('#nodes input:checked'); let paths = []; let paths = [], unDeletablePaths = []; for (let i = 0; i < deletableCheckboxes.length; i++) { for (let i = 0; i < selectedNodesCheckboxes.length; i++) { paths.push(deletableCheckboxes[i].getAttribute('data-node')); let checkbox = selectedNodesCheckboxes[i]; let dataNode = checkbox.getAttribute('data-node'); if(checkbox.classList.contains('deletable')) { paths.push(dataNode); } else { unDeletablePaths.push(dataNode); } } } this.$store.commit('setNodesToDelete', paths); this.$store.commit('setNodesToDelete', paths); this.$store.commit('setSelectedUndeletableNodes', unDeletablePaths); this.$bvModal.show('confirm-delete-modal'); this.$bvModal.show('confirm-delete-modal'); } } } } Loading
vospace-ui-frontend/src/components/modal/ConfirmDeleteModal.vue +10 −1 Original line number Original line Diff line number Diff line Loading @@ -11,6 +11,14 @@ <li v-for="node in nodesToDelete" :key="node">{{node}}</li> <li v-for="node in nodesToDelete" :key="node">{{node}}</li> </ul> </ul> </p> </p> <div v-if="selectedUndeletableNodes.length > 0"> <p><strong>Warning</strong>: following selected nodes can't be deleted and will be ignored:</p> <p> <ul> <li v-for="node in selectedUndeletableNodes" :key="node">{{node}}</li> </ul> </p> </div> </b-modal> </b-modal> </template> </template> Loading @@ -18,7 +26,8 @@ export default { export default { name: 'ConfirmDeleteModal', name: 'ConfirmDeleteModal', computed: { computed: { nodesToDelete() { return this.$store.state.nodesToDelete } nodesToDelete() { return this.$store.state.nodesToDelete }, selectedUndeletableNodes() { return this.$store.state.selectedUndeletableNodes } }, }, methods: { methods: { reset() { reset() { Loading
vospace-ui-frontend/src/store.js +4 −0 Original line number Original line Diff line number Diff line Loading @@ -33,6 +33,7 @@ export default new Vuex.Store({ lastJobsCheckTime: null, lastJobsCheckTime: null, user: 'anonymous', user: 'anonymous', nodesToDelete: [], nodesToDelete: [], selectedUndeletableNodes: [], writable: false, writable: false, nodeToShare: { nodeToShare: { path: null, path: null, Loading Loading @@ -78,6 +79,9 @@ export default new Vuex.Store({ setNodesToDelete(state, paths) { setNodesToDelete(state, paths) { updateArray(state.nodesToDelete, paths); updateArray(state.nodesToDelete, paths); }, }, setSelectedUndeletableNodes(state, paths) { updateArray(state.selectedUndeletableNodes, paths); }, setWritable(state, value) { setWritable(state, value) { state.writable = value; state.writable = value; }, }, Loading