cb7518790f
This patch adds create action for quotas panel in Admin dashboard. Change-Id: I71e042ddcd9fd68ed03bf189b61d8b43aac16933 Partial-Implements: blueprint add-quotas-panel
151 lines
4.0 KiB
JavaScript
151 lines
4.0 KiB
JavaScript
/**
|
|
* Licensed 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() {
|
|
'use strict';
|
|
|
|
/**
|
|
* @ngdoc overview
|
|
* @name horizon.dashboard.container-infra.quotas
|
|
* @ngModule
|
|
* @description
|
|
* Provides all the services and widgets require to display the quotas template
|
|
* panel
|
|
*/
|
|
angular
|
|
.module('horizon.dashboard.container-infra.quotas',
|
|
[
|
|
'ngRoute',
|
|
'horizon.dashboard.container-infra.quotas.actions'
|
|
])
|
|
.constant('horizon.dashboard.container-infra.quotas.events', events())
|
|
.constant(
|
|
'horizon.dashboard.container-infra.quotas.resourceType',
|
|
'OS::Magnum::Quota')
|
|
.run(run)
|
|
.config(config);
|
|
|
|
/**
|
|
* @ngdoc constant
|
|
* @name events
|
|
* @returns {Object} The event object
|
|
* @description A list of events for quotas
|
|
*/
|
|
function events() {
|
|
return {
|
|
CREATE_SUCCESS: 'horizon.dashboard.container-infra.quotas.CREATE_SUCCESS',
|
|
UPDATE_SUCCESS: 'horizon.dashboard.container-infra.quotas.UPDATE_SUCCESS',
|
|
DELETE_SUCCESS: 'horizon.dashboard.container-infra.quotas.DELETE_SUCCESS'
|
|
};
|
|
}
|
|
|
|
run.$inject = [
|
|
'horizon.framework.conf.resource-type-registry.service',
|
|
'horizon.dashboard.container-infra.quotas.service',
|
|
'horizon.dashboard.container-infra.quotas.basePath',
|
|
'horizon.dashboard.container-infra.quotas.resourceType'
|
|
];
|
|
|
|
function run(registry, quotasService, basePath, resourceType) {
|
|
registry.getResourceType(resourceType)
|
|
.setNames(gettext('Quota'), gettext('Quotas'))
|
|
// for table row items.
|
|
.setProperty('id', {
|
|
label: gettext('ID')
|
|
})
|
|
.setProperty('project_id', {
|
|
label: gettext('Project ID')
|
|
})
|
|
.setProperty('resource', {
|
|
label: gettext('Resource')
|
|
})
|
|
.setProperty('hard_limit', {
|
|
label: gettext('Hard Limit')
|
|
})
|
|
.setProperty('created_at', {
|
|
label: gettext('Created At')
|
|
})
|
|
.setProperty('updated_at', {
|
|
label: gettext('Updated At')
|
|
})
|
|
.setListFunction(quotasService.getQuotasPromise)
|
|
.tableColumns
|
|
.append({
|
|
id: 'id',
|
|
priority: 1
|
|
})
|
|
.append({
|
|
id: 'project_id',
|
|
priority: 1
|
|
})
|
|
.append({
|
|
id: 'resource',
|
|
priority: 1
|
|
})
|
|
.append({
|
|
id: 'hard_limit',
|
|
priority: 1
|
|
})
|
|
.append({
|
|
id: 'created_at',
|
|
priority: 2,
|
|
filters: ['simpleDate']
|
|
})
|
|
.append({
|
|
id: 'updated_at',
|
|
priority: 2,
|
|
filters: ['simpleDate']
|
|
});
|
|
|
|
// for magic-search
|
|
registry.getResourceType(resourceType).filterFacets
|
|
.append({
|
|
'label': gettext('Project ID'),
|
|
'name': 'project_id',
|
|
'singleton': true
|
|
})
|
|
.append({
|
|
'label': gettext('Resource'),
|
|
'name': 'resource',
|
|
'singleton': true
|
|
})
|
|
.append({
|
|
'label': gettext('Hard Limit'),
|
|
'name': 'hard_limit',
|
|
'singleton': true
|
|
});
|
|
}
|
|
|
|
config.$inject = [
|
|
'$provide',
|
|
'$windowProvider',
|
|
'$routeProvider'
|
|
];
|
|
|
|
/**
|
|
* @name config
|
|
* @param {Object} $provide
|
|
* @param {Object} $windowProvider
|
|
* @param {Object} $routeProvider
|
|
* @returns {undefined} Returns nothing
|
|
* @description Routes used by this module.
|
|
*/
|
|
function config($provide, $windowProvider, $routeProvider) {
|
|
var path = $windowProvider.$get().STATIC_URL + 'dashboard/container-infra/quotas/';
|
|
$provide.constant('horizon.dashboard.container-infra.quotas.basePath', path);
|
|
$routeProvider.when('/admin/container_infra/quotas', {
|
|
templateUrl: path + 'panel.html'
|
|
});
|
|
}
|
|
})();
|