Loading vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/controller/NodesController.java +15 −1 Original line number Original line Diff line number Diff line Loading @@ -10,7 +10,9 @@ import it.inaf.ia2.vospace.ui.client.VOSpaceClient; import it.inaf.ia2.vospace.ui.data.Job; import it.inaf.ia2.vospace.ui.data.Job; import it.inaf.ia2.vospace.ui.data.ListNodeData; import it.inaf.ia2.vospace.ui.data.ListNodeData; import it.inaf.ia2.vospace.ui.data.MoveOrCopyRequest; import it.inaf.ia2.vospace.ui.data.MoveOrCopyRequest; import it.inaf.ia2.vospace.ui.exception.PermissionDeniedException; import it.inaf.ia2.vospace.ui.exception.VOSpaceException; import it.inaf.ia2.vospace.ui.exception.VOSpaceException; import it.inaf.ia2.vospace.ui.exception.VOSpaceStatusException; import it.inaf.ia2.vospace.ui.service.MainNodesHtmlGenerator; import it.inaf.ia2.vospace.ui.service.MainNodesHtmlGenerator; import it.inaf.ia2.vospace.ui.service.MoveOrCopyNodeModalHtmlGenerator; import it.inaf.ia2.vospace.ui.service.MoveOrCopyNodeModalHtmlGenerator; import it.inaf.oats.vospace.datamodel.NodeUtils; import it.inaf.oats.vospace.datamodel.NodeUtils; Loading Loading @@ -72,7 +74,19 @@ public class NodesController extends BaseController { ListNodeData listNodeData = new ListNodeData(); ListNodeData listNodeData = new ListNodeData(); Node node = client.getNode(path); Node node; try { node = client.getNode(path); } catch (VOSpaceStatusException ex) { if (ex.getHttpStatus() == 403) { String message = "You cannot access this node"; if (principal.getAccessToken() != null && principal.isTokenExpired()) { message += ". Token is expired, please repeat the login."; } throw new PermissionDeniedException(message); } throw ex; } listNodeData.setWritable(NodeUtils.checkIfWritable(node, principal.getName(), principal.getGroups())); listNodeData.setWritable(NodeUtils.checkIfWritable(node, principal.getName(), principal.getGroups())); Loading vospace-ui-frontend/src/api/server/index.js +1 −1 Original line number Original line Diff line number Diff line Loading @@ -66,7 +66,7 @@ export default { headers: { headers: { 'Cache-Control': 'no-cache' 'Cache-Control': 'no-cache' } } }, (typeof loading !== 'undefined') ? loading : true, true); }, (typeof loading !== 'undefined') ? loading : true, true, true); }, }, loadJobs() { loadJobs() { let url = BASE_API_URL + 'jobs'; let url = BASE_API_URL + 'jobs'; Loading vospace-ui-frontend/src/store.js +10 −0 Original line number Original line Diff line number Diff line Loading @@ -145,12 +145,22 @@ export default new Vuex.Store({ }, }, actions: { actions: { setPath({ state, commit, dispatch }, path) { setPath({ state, commit, dispatch }, path) { let previousPath = state.path; commit('setPath', path); commit('setPath', path); commit('setNodesLoading', true); commit('setNodesLoading', true); client.getNode(state.path) client.getNode(state.path) .then(res => { .then(res => { dispatch('setNodes', res); dispatch('setNodes', res); }) }) .catch(error => { if (error.response && error.response.data) { main.showError(error.response.data.message); } else { main.showError('Error while accessing node'); } commit('setPath', previousPath); commit('setLoading', false); }) .finally(() => commit('setNodesLoading', false)); .finally(() => commit('setNodesLoading', false)); }, }, setNodes({ commit, dispatch }, res) { setNodes({ commit, dispatch }, res) { Loading Loading
vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/controller/NodesController.java +15 −1 Original line number Original line Diff line number Diff line Loading @@ -10,7 +10,9 @@ import it.inaf.ia2.vospace.ui.client.VOSpaceClient; import it.inaf.ia2.vospace.ui.data.Job; import it.inaf.ia2.vospace.ui.data.Job; import it.inaf.ia2.vospace.ui.data.ListNodeData; import it.inaf.ia2.vospace.ui.data.ListNodeData; import it.inaf.ia2.vospace.ui.data.MoveOrCopyRequest; import it.inaf.ia2.vospace.ui.data.MoveOrCopyRequest; import it.inaf.ia2.vospace.ui.exception.PermissionDeniedException; import it.inaf.ia2.vospace.ui.exception.VOSpaceException; import it.inaf.ia2.vospace.ui.exception.VOSpaceException; import it.inaf.ia2.vospace.ui.exception.VOSpaceStatusException; import it.inaf.ia2.vospace.ui.service.MainNodesHtmlGenerator; import it.inaf.ia2.vospace.ui.service.MainNodesHtmlGenerator; import it.inaf.ia2.vospace.ui.service.MoveOrCopyNodeModalHtmlGenerator; import it.inaf.ia2.vospace.ui.service.MoveOrCopyNodeModalHtmlGenerator; import it.inaf.oats.vospace.datamodel.NodeUtils; import it.inaf.oats.vospace.datamodel.NodeUtils; Loading Loading @@ -72,7 +74,19 @@ public class NodesController extends BaseController { ListNodeData listNodeData = new ListNodeData(); ListNodeData listNodeData = new ListNodeData(); Node node = client.getNode(path); Node node; try { node = client.getNode(path); } catch (VOSpaceStatusException ex) { if (ex.getHttpStatus() == 403) { String message = "You cannot access this node"; if (principal.getAccessToken() != null && principal.isTokenExpired()) { message += ". Token is expired, please repeat the login."; } throw new PermissionDeniedException(message); } throw ex; } listNodeData.setWritable(NodeUtils.checkIfWritable(node, principal.getName(), principal.getGroups())); listNodeData.setWritable(NodeUtils.checkIfWritable(node, principal.getName(), principal.getGroups())); Loading
vospace-ui-frontend/src/api/server/index.js +1 −1 Original line number Original line Diff line number Diff line Loading @@ -66,7 +66,7 @@ export default { headers: { headers: { 'Cache-Control': 'no-cache' 'Cache-Control': 'no-cache' } } }, (typeof loading !== 'undefined') ? loading : true, true); }, (typeof loading !== 'undefined') ? loading : true, true, true); }, }, loadJobs() { loadJobs() { let url = BASE_API_URL + 'jobs'; let url = BASE_API_URL + 'jobs'; Loading
vospace-ui-frontend/src/store.js +10 −0 Original line number Original line Diff line number Diff line Loading @@ -145,12 +145,22 @@ export default new Vuex.Store({ }, }, actions: { actions: { setPath({ state, commit, dispatch }, path) { setPath({ state, commit, dispatch }, path) { let previousPath = state.path; commit('setPath', path); commit('setPath', path); commit('setNodesLoading', true); commit('setNodesLoading', true); client.getNode(state.path) client.getNode(state.path) .then(res => { .then(res => { dispatch('setNodes', res); dispatch('setNodes', res); }) }) .catch(error => { if (error.response && error.response.data) { main.showError(error.response.data.message); } else { main.showError('Error while accessing node'); } commit('setPath', previousPath); commit('setLoading', false); }) .finally(() => commit('setNodesLoading', false)); .finally(() => commit('setNodesLoading', false)); }, }, setNodes({ commit, dispatch }, res) { setNodes({ commit, dispatch }, res) { Loading