This is an automated email from the ASF dual-hosted git repository.

rohit pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cloudstack-primate.git


The following commit(s) were added to refs/heads/master by this push:
     new 295bdaf  autogenview: switch project if a valid UUID projectid query 
is passed
295bdaf is described below

commit 295bdafc51add3a4fc5acb613dd7a71c0c1f7607
Author: Rohit Yadav <[email protected]>
AuthorDate: Wed Jun 24 20:22:52 2020 +0530

    autogenview: switch project if a valid UUID projectid query is passed
    
    Fixes #450
    
    Signed-off-by: Rohit Yadav <[email protected]>
---
 src/views/AutogenView.vue | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/src/views/AutogenView.vue b/src/views/AutogenView.vue
index 9b6f73d..3afcb88 100644
--- a/src/views/AutogenView.vue
+++ b/src/views/AutogenView.vue
@@ -366,6 +366,9 @@ export default {
   mounted () {
     this.currentPath = this.$route.fullPath
     this.fetchData()
+    if ('projectid' in this.$route.query) {
+      this.switchProject(this.$route.query.projectid)
+    }
   },
   beforeRouteUpdate (to, from, next) {
     this.currentPath = this.$route.fullPath
@@ -383,6 +386,9 @@ export default {
         this.itemCount = 0
         this.selectedFilter = ''
         this.fetchData()
+        if ('projectid' in to.query) {
+          this.switchProject(to.query.projectid)
+        }
       }
     },
     '$i18n.locale' (to, from) {
@@ -395,6 +401,21 @@ export default {
     }
   },
   methods: {
+    switchProject (projectId) {
+      if (!projectId || !projectId.length || projectId.length !== 36) {
+        return
+      }
+      api('listProjects', { id: projectId, listall: true, details: 'min' 
}).then(json => {
+        if (!json || !json.listprojectsresponse || 
!json.listprojectsresponse.project) return
+        const project = json.listprojectsresponse.project[0]
+        this.$store.dispatch('SetProject', project)
+        this.$store.dispatch('ToggleTheme', project.id === undefined ? 'light' 
: 'dark')
+        this.$message.success(`Switched to "${project.name}"`)
+        const query = Object.assign({}, this.$route.query)
+        delete query.projectid
+        this.$router.replace({ query })
+      })
+    },
     fetchData (params = { listall: true }) {
       if (this.routeName !== this.$route.name) {
         this.routeName = this.$route.name

Reply via email to