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

nvazquez pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/main by this push:
     new a026f41  ui: Fix router link access (#6158)
a026f41 is described below

commit a026f41e12ad7da10286455a28a3e838192be43b
Author: David Jumani <[email protected]>
AuthorDate: Wed Mar 23 17:26:52 2022 +0530

    ui: Fix router link access (#6158)
    
    * ui: Fix router link access
    
    * Adding more
---
 ui/src/components/view/InfoCard.vue | 26 +++++++++++++-------------
 ui/src/components/view/ListView.vue | 10 +++++-----
 2 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/ui/src/components/view/InfoCard.vue 
b/ui/src/components/view/InfoCard.vue
index 6429d60..1be2925 100644
--- a/ui/src/components/view/InfoCard.vue
+++ b/ui/src/components/view/InfoCard.vue
@@ -453,7 +453,7 @@
           <div class="resource-detail-item__details">
             <cloud-outlined />
             <router-link v-if="!isStatic && $route.meta.name === 'router'" 
:to="{ path: '/computeoffering/' + resource.serviceofferingid, query: { 
issystem: true } }">{{ resource.serviceofferingname || 
resource.serviceofferingid }} </router-link>
-            <router-link v-else-if="$router.resolve('/computeoffering/' + 
resource.serviceofferingid).name !== '404'" :to="{ path: '/computeoffering/' + 
resource.serviceofferingid }">{{ resource.serviceofferingname || 
resource.serviceofferingid }} </router-link>
+            <router-link v-else-if="$router.resolve('/computeoffering/' + 
resource.serviceofferingid).matched[0].redirect !== '/exception/404'" :to="{ 
path: '/computeoffering/' + resource.serviceofferingid }">{{ 
resource.serviceofferingname || resource.serviceofferingid }} </router-link>
             <span v-else>{{ resource.serviceofferingname || 
resource.serviceofferingid }}</span>
           </div>
         </div>
@@ -461,21 +461,21 @@
           <div class="resource-detail-item__label">{{ $t('label.diskoffering') 
}}</div>
           <div class="resource-detail-item__details">
             <hdd-outlined />
-            <router-link v-if="!isStatic && $router.resolve('/diskoffering/' + 
resource.diskofferingid).name !== '404'" :to="{ path: '/diskoffering/' + 
resource.diskofferingid }">{{ resource.diskofferingname || 
resource.diskofferingid }} </router-link>
+            <router-link v-if="!isStatic && $router.resolve('/diskoffering/' + 
resource.diskofferingid).matched[0].redirect !== '/exception/404'" :to="{ path: 
'/diskoffering/' + resource.diskofferingid }">{{ resource.diskofferingname || 
resource.diskofferingid }} </router-link>
             <span v-else>{{ resource.diskofferingname || 
resource.diskofferingid }}</span>
           </div>
         </div>
         <div class="resource-detail-item" v-if="resource.backupofferingid">
           <div class="resource-detail-item__label">{{ 
$t('label.backupofferingid') }}</div>
           <cloud-upload-outlined />
-          <router-link v-if="!isStatic && $router.resolve('/backupoffering/' + 
resource.backupofferingid).name !== '404'" :to="{ path: '/backupoffering/' + 
resource.backupofferingid }">{{ resource.backupofferingname || 
resource.backupofferingid }} </router-link>
+          <router-link v-if="!isStatic && $router.resolve('/backupoffering/' + 
resource.backupofferingid).matched[0].redirect !== '/exception/404'" :to="{ 
path: '/backupoffering/' + resource.backupofferingid }">{{ 
resource.backupofferingname || resource.backupofferingid }} </router-link>
           <span v-else>{{ resource.backupofferingname || 
resource.backupofferingid }}</span>
         </div>
         <div class="resource-detail-item" v-if="resource.networkofferingid">
           <div class="resource-detail-item__label">{{ 
$t('label.networkofferingid') }}</div>
           <div class="resource-detail-item__details">
             <wifi-outlined />
-            <router-link v-if="!isStatic && 
$router.resolve('/networkoffering/' + resource.networkofferingid).name !== 
'404'" :to="{ path: '/networkoffering/' + resource.networkofferingid }">{{ 
resource.networkofferingname || resource.networkofferingid }} </router-link>
+            <router-link v-if="!isStatic && 
$router.resolve('/networkoffering/' + 
resource.networkofferingid).matched[0].redirect !== '/exception/404'" :to="{ 
path: '/networkoffering/' + resource.networkofferingid }">{{ 
resource.networkofferingname || resource.networkofferingid }} </router-link>
             <span v-else>{{ resource.networkofferingname || 
resource.networkofferingid }}</span>
           </div>
         </div>
@@ -483,7 +483,7 @@
           <div class="resource-detail-item__label">{{ $t('label.vpcoffering') 
}}</div>
           <div class="resource-detail-item__details">
             <DeploymentUnitOutlined />
-            <router-link v-if="!isStatic && $router.resolve('/vpcoffering/' + 
resource.vpcofferingid).name !== '404'" :to="{ path: '/vpcoffering/' + 
resource.vpcofferingid }">{{ resource.vpcofferingname || resource.vpcofferingid 
}} </router-link>
+            <router-link v-if="!isStatic && $router.resolve('/vpcoffering/' + 
resource.vpcofferingid).matched[0].redirect !== '/exception/404'" :to="{ path: 
'/vpcoffering/' + resource.vpcofferingid }">{{ resource.vpcofferingname || 
resource.vpcofferingid }} </router-link>
             <span v-else>{{ resource.vpcofferingname || resource.vpcofferingid 
}}</span>
           </div>
         </div>
@@ -491,7 +491,7 @@
           <div class="resource-detail-item__label">{{ $t('label.storagepool') 
}}</div>
           <div class="resource-detail-item__details">
             <database-outlined />
-            <router-link v-if="!isStatic && $router.resolve('/storagepool/' + 
resource.storageid).name !== '404'" :to="{ path: '/storagepool/' + 
resource.storageid }">{{ resource.storage || resource.storageid }} 
</router-link>
+            <router-link v-if="!isStatic && $router.resolve('/storagepool/' + 
resource.storageid).matched[0].redirect !== '/exception/404'" :to="{ path: 
'/storagepool/' + resource.storageid }">{{ resource.storage || 
resource.storageid }} </router-link>
             <span v-else>{{ resource.storage || resource.storageid }}</span>
             <a-tag style="margin-left: 5px;" v-if="resource.storagetype">
               {{ resource.storagetype }}
@@ -502,7 +502,7 @@
           <div class="resource-detail-item__label">{{ $t('label.hostname') 
}}</div>
           <div class="resource-detail-item__details">
             <desktop-outlined />
-            <router-link v-if="!isStatic && $router.resolve('/host/' + 
resource.hostid).name !== '404'" :to="{ path: '/host/' + resource.hostid }">{{ 
resource.hostname || resource.hostid }} </router-link>
+            <router-link v-if="!isStatic && $router.resolve('/host/' + 
resource.hostid).matched[0].redirect !== '/exception/404'" :to="{ path: 
'/host/' + resource.hostid }">{{ resource.hostname || resource.hostid }} 
</router-link>
             <span v-else>{{ resource.hostname || resource.hostid }}</span>
           </div>
         </div>
@@ -510,7 +510,7 @@
           <div class="resource-detail-item__label">{{ $t('label.clusterid') 
}}</div>
           <div class="resource-detail-item__details">
             <cluster-outlined />
-            <router-link v-if="!isStatic && $router.resolve('/cluster/' + 
resource.clusterid).name !== '404'" :to="{ path: '/cluster/' + 
resource.clusterid }">{{ resource.clustername || resource.cluster || 
resource.clusterid }}</router-link>
+            <router-link v-if="!isStatic && $router.resolve('/cluster/' + 
resource.clusterid).matched[0].redirect !== '/exception/404'" :to="{ path: 
'/cluster/' + resource.clusterid }">{{ resource.clustername || resource.cluster 
|| resource.clusterid }}</router-link>
             <span v-else>{{ resource.clustername || resource.cluster || 
resource.clusterid }}</span>
           </div>
         </div>
@@ -518,7 +518,7 @@
           <div class="resource-detail-item__label">{{ $t('label.podid') 
}}</div>
           <div class="resource-detail-item__details">
             <appstore-outlined />
-            <router-link v-if="!isStatic && $router.resolve('/pod/' + 
resource.podid).name !== '404'" :to="{ path: '/pod/' + resource.podid }">{{ 
resource.podname || resource.pod || resource.podid }}</router-link>
+            <router-link v-if="!isStatic && $router.resolve('/pod/' + 
resource.podid).matched[0].redirect !== '/exception/404'" :to="{ path: '/pod/' 
+ resource.podid }">{{ resource.podname || resource.pod || resource.podid 
}}</router-link>
             <span v-else>{{ resource.podname || resource.pod || resource.podid 
}}</span>
           </div>
         </div>
@@ -529,7 +529,7 @@
               <resource-icon :image="getImage(images.zone)" size="1x" 
style="margin-right: 5px"/>
             </span>
             <global-outlined v-else />
-            <router-link v-if="!isStatic && $router.resolve('/zone/' + 
resource.zoneid).name !== '404'" :to="{ path: '/zone/' + resource.zoneid }">{{ 
resource.zone || resource.zonename || resource.zoneid }}</router-link>
+            <router-link v-if="!isStatic && $router.resolve('/zone/' + 
resource.zoneid).matched[0].redirect !== '/exception/404'" :to="{ path: 
'/zone/' + resource.zoneid }">{{ resource.zone || resource.zonename || 
resource.zoneid }}</router-link>
             <span v-else>{{ resource.zone || resource.zonename || 
resource.zoneid }}</span>
           </div>
         </div>
@@ -563,7 +563,7 @@
           <div class="resource-detail-item__label">{{ $t('label.role') }}</div>
           <div class="resource-detail-item__details">
             <idcard-outlined />
-            <router-link v-if="!isStatic && $router.resolve('/role/' + 
resource.roleid).name !== '404'" :to="{ path: '/role/' + resource.roleid }">{{ 
resource.rolename || resource.role || resource.roleid }}</router-link>
+            <router-link v-if="!isStatic && $router.resolve('/role/' + 
resource.roleid).matched[0].redirect !== '/exception/404'" :to="{ path: 
'/role/' + resource.roleid }">{{ resource.rolename || resource.role || 
resource.roleid }}</router-link>
             <span v-else>{{ resource.rolename || resource.role || 
resource.roleid }}</span>
           </div>
         </div>
@@ -580,7 +580,7 @@
           <div class="resource-detail-item__label">{{ 
$t('label.management.servers') }}</div>
           <div class="resource-detail-item__details">
             <rocket-outlined />
-            <router-link v-if="!isStatic && 
$router.resolve('/managementserver/' + resource.managementserverid).name !== 
'404'" :to="{ path: '/managementserver/' + resource.managementserverid }">{{ 
resource.managementserver || resource.managementserverid }}</router-link>
+            <router-link v-if="!isStatic && 
$router.resolve('/managementserver/' + 
resource.managementserverid).matched[0].redirect !== '/exception/404'" :to="{ 
path: '/managementserver/' + resource.managementserverid }">{{ 
resource.managementserver || resource.managementserverid }}</router-link>
             <span v-else>{{ resource.managementserver || 
resource.managementserverid }}</span>
           </div>
         </div>
@@ -602,7 +602,7 @@
         <a-divider/>
         <div v-for="item in $route.meta.related" :key="item.path">
           <router-link
-            v-if="$router.resolve('/' + item.name).name !== '404'"
+            v-if="$router.resolve('/' + item.name).matched[0].redirect !== 
'/exception/404'"
             :to="{ name: item.name, query: getRouterQuery(item) }">
             <a-button style="margin-right: 10px">
               <template #icon>
diff --git a/ui/src/components/view/ListView.vue 
b/ui/src/components/view/ListView.vue
index 4dbf5eb..c97a16f 100644
--- a/ui/src/components/view/ListView.vue
+++ b/ui/src/components/view/ListView.vue
@@ -284,7 +284,7 @@
       </template>
       <template v-if="text && !text.startsWith('PrjAcct-')">
         <router-link
-          v-if="'quota' in record && 
$router.resolve(`${$route.path}/${record.account}`) !== '404'"
+          v-if="'quota' in record && 
$router.resolve(`${$route.path}/${record.account}`).matched[0].redirect !== 
'/exception/404'"
           :to="{ path: `${$route.path}/${record.account}`, query: { account: 
record.account, domainid: record.domainid, quota: true } }">{{ text 
}}</router-link>
         <router-link :to="{ path: '/account/' + record.accountid }" 
v-else-if="record.accountid">{{ text }}</router-link>
         <router-link :to="{ path: '/account', query: { name: record.account, 
domainid: record.domainid, dataView: true } }" 
v-else-if="$store.getters.userInfo.roletype !== 'User'">{{ text }}</router-link>
@@ -296,21 +296,21 @@
       <span v-else>{{ text }}</span>
     </template>
     <template #domainpath="{ text, record }">
-      <router-link v-if="record.domainid && !record.domainid.includes(',') && 
$router.resolve('/domain/' + record.domainid).name !== '404'" :to="{ path: 
'/domain/' + record.domainid, query: { tab: 'details' } }">{{ text 
}}</router-link>
+      <router-link v-if="record.domainid && !record.domainid.includes(',') && 
$router.resolve('/domain/' + record.domainid).matched[0].redirect !== 
'/exception/404'" :to="{ path: '/domain/' + record.domainid, query: { tab: 
'details' } }">{{ text }}</router-link>
       <span v-else>{{ text }}</span>
     </template>
     <template #zone="{ text, record }">
       <a href="javascript:;">
-        <router-link v-if="record.zoneid && !record.zoneid.includes(',') && 
$router.resolve('/zone/' + record.zoneid).name !== '404'" :to="{ path: '/zone/' 
+ record.zoneid }">{{ text }}</router-link>
+        <router-link v-if="record.zoneid && !record.zoneid.includes(',') && 
$router.resolve('/zone/' + record.zoneid).matched[0].redirect !== 
'/exception/404'" :to="{ path: '/zone/' + record.zoneid }">{{ text 
}}</router-link>
         <span v-else>{{ text }}</span>
       </a>
     </template>
     <template #zonename="{ text, record }">
-      <router-link v-if="$router.resolve('/zone/' + record.zoneid).name !== 
'404'" :to="{ path: '/zone/' + record.zoneid }">{{ text }}</router-link>
+      <router-link v-if="$router.resolve('/zone/' + 
record.zoneid).matched[0].redirect !== '/exception/404'" :to="{ path: '/zone/' 
+ record.zoneid }">{{ text }}</router-link>
       <span v-else>{{ text }}</span>
     </template>
     <template #rolename="{ text, record }">
-      <router-link v-if="record.roleid && $router.resolve('/role/' + 
record.roleid).name !== '404'" :to="{ path: '/role/' + record.roleid }">{{ text 
}}</router-link>
+      <router-link v-if="record.roleid && $router.resolve('/role/' + 
record.roleid).matched[0].redirect !== '/exception/404'" :to="{ path: '/role/' 
+ record.roleid }">{{ text }}</router-link>
       <span v-else>{{ text }}</span>
     </template>
     <template #readonly="{ record }">

Reply via email to