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

commit 2a243b8b692489a6f317f499d1b01e2aff052209
Merge: dc17cf4 4147d5a
Author: nicolas <[email protected]>
AuthorDate: Fri Sep 10 23:15:53 2021 -0300

    Merge branch '4.15' into main

 .../command/user/config/ListCapabilitiesCmd.java   |  2 +
 .../api/response/CapabilitiesResponse.java         |  8 +++
 .../com/cloud/server/ManagementServerImpl.java     |  2 +
 ui/src/components/page/GlobalLayout.vue            |  5 +-
 ui/src/store/modules/user.js                       | 10 +--
 ui/src/views/AutogenView.vue                       |  8 ++-
 ui/src/views/image/RegisterOrUploadTemplate.vue    | 78 +++++++++++++---------
 .../views/infra/network/IpRangesTabManagement.vue  |  7 +-
 8 files changed, 73 insertions(+), 47 deletions(-)

diff --cc ui/src/components/page/GlobalLayout.vue
index 0203cd1,a059ad2..3eac55a
--- a/ui/src/components/page/GlobalLayout.vue
+++ b/ui/src/components/page/GlobalLayout.vue
@@@ -18,65 -18,61 +18,65 @@@
  <template>
    <a-layout class="layout" :class="[device]">
  
 -    <template v-if="isSideMenu()">
 -      <a-drawer
 -        v-if="isMobile()"
 -        :wrapClassName="'drawer-sider ' + navTheme"
 -        :closable="false"
 -        :visible="collapsed"
 -        placement="left"
 -        @close="() => this.collapsed = false"
 -      >
 -        <side-menu
 -          :menus="menus"
 -          :theme="navTheme"
 -          :collapsed="false"
 -          :collapsible="true"
 -          mode="inline"
 -          @menuSelect="menuSelect"></side-menu>
 -      </a-drawer>
 +    <a-affix style="z-index: 200">
 +
 +      <template v-if="isSideMenu()">
 +        <a-drawer
 +          v-if="isMobile()"
 +          :wrapClassName="'drawer-sider ' + navTheme"
 +          :closable="false"
 +          :visible="collapsed"
 +          placement="left"
 +          @close="() => this.collapsed = false"
 +        >
 +          <side-menu
 +            :menus="menus"
 +            :theme="navTheme"
 +            :collapsed="false"
 +            :collapsible="true"
 +            mode="inline"
 +            @menuSelect="menuSelect"></side-menu>
 +        </a-drawer>
  
 -      <side-menu
 -        v-else
 -        mode="inline"
 -        :menus="menus"
 -        :theme="navTheme"
 -        :collapsed="collapsed"
 -        :collapsible="true"></side-menu>
 -    </template>
 -    <template v-else>
 -      <a-drawer
 -        v-if="isMobile()"
 -        :wrapClassName="'drawer-sider ' + navTheme"
 -        placement="left"
 -        @close="() => this.collapsed = false"
 -        :closable="false"
 -        :visible="collapsed"
 -      >
          <side-menu
 +          v-else
 +          mode="inline"
            :menus="menus"
            :theme="navTheme"
 -          :collapsed="false"
 -          :collapsible="true"
 -          mode="inline"
 -          @menuSelect="menuSelect"></side-menu>
 -      </a-drawer>
 -    </template>
 +          :collapsed="collapsed"
 +          :collapsible="true"></side-menu>
 +      </template>
 +      <template v-else>
 +        <a-drawer
 +          v-if="isMobile()"
 +          :wrapClassName="'drawer-sider ' + navTheme"
 +          placement="left"
 +          @close="() => this.collapsed = false"
 +          :closable="false"
 +          :visible="collapsed"
 +        >
 +          <side-menu
 +            :menus="menus"
 +            :theme="navTheme"
 +            :collapsed="false"
 +            :collapsible="true"
 +            mode="inline"
 +            @menuSelect="menuSelect"></side-menu>
 +        </a-drawer>
 +      </template>
 +
-       <template>
++      <template v-if="isDevelopmentMode">
 +        <drawer :visible="showSetting" placement="right">
 +          <div slot="handler">
 +            <a-button type="primary" size="large">
 +              <a-icon :type="showSetting ? 'close' : 'setting'"/>
 +            </a-button>
 +          </div>
 +          <setting slot="drawer" :visible="showSetting" />
 +        </drawer>
 +      </template>
  
 -    <template v-if="isDevelopmentMode">
 -      <drawer :visible="showSetting" placement="right">
 -        <div slot="handler">
 -          <a-button type="primary" size="large">
 -            <a-icon :type="showSetting ? 'close' : 'setting'"/>
 -          </a-button>
 -        </div>
 -        <setting slot="drawer" :visible="showSetting" />
 -      </drawer>
 -    </template>
 +    </a-affix>
  
      <a-layout :class="[layoutMode, `content-width-${contentWidth}`]" 
:style="{ paddingLeft: contentPaddingLeft, minHeight: '100vh' }">
        <!-- layout header -->
diff --cc ui/src/views/AutogenView.vue
index d8ccd0c,247ec00..d1b9f4a
--- a/ui/src/views/AutogenView.vue
+++ b/ui/src/views/AutogenView.vue
@@@ -474,63 -430,8 +479,60 @@@ export default 
        }
      })
      eventBus.$on('async-job-complete', (action) => {
 +      if (this.$route.path.includes('/vm/')) {
 +        if (action && 'api' in action && 
['destroyVirtualMachine'].includes(action.api)) {
 +          return
 +        }
 +      }
 +
 +      if ((this.$route.path.includes('/publicip/') && ['firewall', 
'portforwarding', 'loadbalancing'].includes(this.$route.query.tab)) ||
 +        (this.$route.path.includes('/guestnetwork/') && 
(this.$route.query.tab === 'egress.rules' || this.$route.query.tab === 
'public.ip.addresses'))) {
 +        return
 +      }
 +
 +      if (this.$route.path.includes('/template/') || 
this.$route.path.includes('/iso/')) {
 +        return
 +      }
        this.fetchData()
      })
-     eventBus.$on('exec-action', (action, isGroupAction) => {
-       this.execAction(action, isGroupAction)
-     })
 +    eventBus.$on('update-bulk-job-status', (items, action) => {
 +      for (const item of items) {
 +        this.$store.getters.headerNotices.map(function (j) {
 +          if (j.jobid === item.jobid) {
 +            j.bulkAction = action
 +          }
 +        })
 +      }
 +    })
 +
 +    eventBus.$on('update-resource-state', (selectedItems, resource, state, 
jobid) => {
 +      if (selectedItems.length === 0) {
 +        return
 +      }
 +      var tempResource = []
 +      if (selectedItems && resource) {
 +        if (resource.includes(',')) {
 +          resource = resource.split(',')
 +          tempResource = resource
 +        } else {
 +          tempResource.push(resource)
 +        }
 +        for (var r = 0; r < tempResource.length; r++) {
 +          var objIndex = 0
 +          if (this.$route.path.includes('/template') || 
this.$route.path.includes('/iso')) {
 +            objIndex = selectedItems.findIndex(obj => (obj.zoneid === 
tempResource[r]))
 +          } else {
 +            objIndex = selectedItems.findIndex(obj => (obj.id === 
tempResource[r] || obj.username === tempResource[r]))
 +          }
 +          if (state && objIndex !== -1) {
 +            selectedItems[objIndex].status = state
 +          }
 +          if (jobid && objIndex !== -1) {
 +            selectedItems[objIndex].jobid = jobid
 +          }
 +        }
 +      }
 +    })
  
      this.currentPath = this.$route.fullPath
      this.fetchData()

Reply via email to