diff --git a/ui/index.jsp b/ui/index.jsp index 0db2589734f..8f31740a039 100644 --- a/ui/index.jsp +++ b/ui/index.jsp @@ -1662,6 +1662,7 @@ under the License. + diff --git a/ui/scripts/accounts.js b/ui/scripts/accounts.js index 7e82c0fc163..06fc07a72aa 100644 --- a/ui/scripts/accounts.js +++ b/ui/scripts/accounts.js @@ -277,6 +277,7 @@ detailView: { name: 'Account details', + isMaximized: true, viewAll: { path: 'accounts.users', label: 'label.users' }, actions: { @@ -895,6 +896,27 @@ } }); } + }, + + // Granular settings for account + settings: { + title: 'label.menu.global.settings', + custom: cloudStack.uiCustom.granularSettings({ + dataProvider: function(args) { + args.response.success({ + data: [ + { name: 'config.param.1', value: 1 }, + { name: 'config.param.2', value: 2 } + ] + }); + }, + actions: { + edit: function(args) { + // call updateAccountLevelParameters + args.response.success(); + } + } + }) } } } diff --git a/ui/scripts/system.js b/ui/scripts/system.js index e3852a6b040..5c3f3597dfa 100644 --- a/ui/scripts/system.js +++ b/ui/scripts/system.js @@ -5519,6 +5519,27 @@ } } } + }, + + // Granular settings for zone + settings: { + title: 'label.menu.global.settings', + custom: cloudStack.uiCustom.granularSettings({ + dataProvider: function(args) { + args.response.success({ + data: [ + { name: 'config.param.1', value: 1 }, + { name: 'config.param.2', value: 2 } + ] + }); + }, + actions: { + edit: function(args) { + // call updateZoneLevelParamter + args.response.success(); + } + } + }) } } } @@ -9096,6 +9117,27 @@ }); } } + }, + + // Granular settings for cluster + settings: { + title: 'label.menu.global.settings', + custom: cloudStack.uiCustom.granularSettings({ + dataProvider: function(args) { + args.response.success({ + data: [ + { name: 'config.param.1', value: 1 }, + { name: 'config.param.2', value: 2 } + ] + }); + }, + actions: { + edit: function(args) { + // call updateClusterLevelParameters + args.response.success(); + } + } + }) } } } @@ -10531,6 +10573,7 @@ detailView: { name: "Primary storage details", + isMaximized: true, actions: { edit: { label: 'label.edit', @@ -10715,6 +10758,27 @@ } }); } + }, + + // Granular settings for storage pool + settings: { + title: 'label.menu.global.settings', + custom: cloudStack.uiCustom.granularSettings({ + dataProvider: function(args) { + args.response.success({ + data: [ + { name: 'config.param.1', value: 1 }, + { name: 'config.param.2', value: 2 } + ] + }); + }, + actions: { + edit: function(args) { + // call updateStorageLevelParameters + args.response.success(); + } + } + }) } } } @@ -10854,6 +10918,7 @@ detailView: { name: 'Secondary storage details', + isMaximized: true, actions: { remove: { label: 'label.action.delete.secondary.storage' , @@ -10909,6 +10974,27 @@ } }); } + }, + + // Granular settings for storage pool + settings: { + title: 'label.menu.global.settings', + custom: cloudStack.uiCustom.granularSettings({ + dataProvider: function(args) { + args.response.success({ + data: [ + { name: 'config.param.1', value: 1 }, + { name: 'config.param.2', value: 2 } + ] + }); + }, + actions: { + edit: function(args) { + // call updateStorageLevelParameters + args.response.success(); + } + } + }) } } } diff --git a/ui/scripts/ui-custom/granularSettings.js b/ui/scripts/ui-custom/granularSettings.js new file mode 100644 index 00000000000..02d5c1fcbaa --- /dev/null +++ b/ui/scripts/ui-custom/granularSettings.js @@ -0,0 +1,46 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +(function($, cloudStack) { + cloudStack.uiCustom.granularSettings = function(args) { + var dataProvider = args.dataProvider; + var actions = args.actions; + + return function(args) { + var context = args.context; + + var listView = { + id: 'settings', + fields: { + name: { label: 'label.name' }, + value: { label: 'label.value', editable: true } + }, + actions: { + edit: { + label: 'label.change.value', + action: actions.edit + } + }, + dataProvider: dataProvider + }; + + var $listView = $('