From 25e6a4dc8e086b925383b37157ac430310228165 Mon Sep 17 00:00:00 2001 From: "michal.kovacik" Date: Tue, 17 May 2016 17:01:50 +0200 Subject: [PATCH] contracts, index, rootGBPcontroller Change-Id: I4fb9494b967bc64d22fb2f39a4c4e2779f7ced09 Signed-off-by: michal.kovacik --- .../resources/gbp/common/gbp.controller.js | 38 ++++- .../main/resources/gbp/common/gbp.module.js | 28 ++-- .../resources/gbp/common/views/index.tpl.html | 28 +++- .../gbp/contract/contract-list.service.js | 15 +- .../gbp/contract/contract.controller.js | 38 +++-- .../gbp/contract/contract.service.js | 5 +- .../resources/gbp/contract/contract.tpl.html | 135 ++++++++++++++++-- 7 files changed, 240 insertions(+), 47 deletions(-) diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/common/gbp.controller.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/common/gbp.controller.js index 0b6d52cb9..9d44ace27 100644 --- a/groupbasedpolicy-ui/module/src/main/resources/gbp/common/gbp.controller.js +++ b/groupbasedpolicy-ui/module/src/main/resources/gbp/common/gbp.controller.js @@ -3,25 +3,47 @@ define(['app/gbp/common/gbp.service'], function () { angular.module('app.gbp').controller('RootGbpCtrl', RootGbpCtrl); - RootGbpCtrl.$inject = ['$state', '$scope', 'RootGbpService']; + RootGbpCtrl.$inject = ['$state', '$scope', 'RootGbpService', 'TenantListService', 'TenantService', 'ContractService']; - function RootGbpCtrl($state, $scope, RootGbpService) { + function RootGbpCtrl($state, $scope, RootGbpService, TenantListService, TenantService, ContractService) { /* properties */ $scope.stateUrl = null; $scope.sidePanelPage = false; + $scope.rootTenant = TenantService.createObject(); + $scope.rootTenants = TenantListService.createList(); + $scope.policyDisabled = true; /* methods */ + $scope.broadcastFromRoot = broadcastFromRoot; $scope.closeSidePanel = closeSidePanel; $scope.openSidePanel = openSidePanel; + $scope.setRootTenant = setRootTenant; + $scope.disableButton = disableButton; RootGbpService.setMainClass(); console.log('RootGbpCtrl initialized'); + init(); + /* implementations */ /** * Sets '$scope.sidePanelPage' to false. This variable is watched in index.tpl.html template * and opens/closes side panel */ + function init() { + $scope.rootTenants.clear(); + $scope.rootTenants.get('config'); + } + + function broadcastFromRoot(eventName, val) { + $scope.$broadcast(eventName, val); + } + + function setRootTenant() { + $scope.broadcastFromRoot('ROOT_TENANT_CHANGED'); + enableButtons(); + } + function closeSidePanel() { $scope.sidePanelPage = false; } @@ -42,6 +64,18 @@ define(['app/gbp/common/gbp.service'], function () { $scope.sidePanelPage = true; } + function disableButton() { + if (Object.keys($scope.rootTenant.data) > 0) { + return true; + } + else { + return false; + } + } + + function enableButtons() { + $scope.policyDisabled = false; + } /* event listeners */ /** * Event fired after content loaded, setStateUrl function is called to fill stateUrl method diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/common/gbp.module.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/common/gbp.module.js index 37773cfb2..ee59eb9c3 100644 --- a/groupbasedpolicy-ui/module/src/main/resources/gbp/common/gbp.module.js +++ b/groupbasedpolicy-ui/module/src/main/resources/gbp/common/gbp.module.js @@ -86,9 +86,13 @@ define([ access: access.admin, templateUrl: 'src/app/gbp/common/views/index.tpl.html', views: { - '': { - controller: 'PolicyController', - templateUrl: 'src/app/gbp/policy/policy.tpl.html', + 'main_top': { + controller: 'EpgController', + templateUrl: 'src/app/gbp/epg/epg.tpl.html', + }, + 'main_bottom': { + controller: 'ContractController', + templateUrl: 'src/app/gbp/contract/contract.tpl.html', }, }, }); @@ -109,16 +113,24 @@ define([ }, }); - $stateProvider.state('main.gbp.index.policy.contract', { - url: '/contract', + $stateProvider.state('main.gbp.index.contract', { + url: '/policy/contract', access: access.admin, templateUrl: 'src/app/gbp/common/views/index.tpl.html', views: { '': { - controller: 'PolicyController', - templateUrl: 'src/app/gbp/policy/policy.tpl.html', + controller: 'ContractController', + templateUrl: 'src/app/gbp/contract/contract.tpl.html', }, - 'sidePanel': { + }, + }); + + $stateProvider.state('main.gbp.index.contractId', { + url: '/policy/contract/{contractId}', + access: access.admin, + templateUrl: 'src/app/gbp/common/views/index.tpl.html', + views: { + '': { controller: 'ContractController', templateUrl: 'src/app/gbp/contract/contract.tpl.html', }, diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/common/views/index.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/common/views/index.tpl.html index e515d2e17..ebe4f3860 100644 --- a/groupbasedpolicy-ui/module/src/main/resources/gbp/common/views/index.tpl.html +++ b/groupbasedpolicy-ui/module/src/main/resources/gbp/common/views/index.tpl.html @@ -3,15 +3,31 @@
Tenant - Policy + + + + Policy + + EPGs + Contracts + + + - EPGs - Contracts + + {{item.data.id}} + +
- + + + + + - + diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract-list.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract-list.service.js index a6fafa7a1..6d184b752 100644 --- a/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract-list.service.js +++ b/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract-list.service.js @@ -12,6 +12,7 @@ define([], function () { function ContractList() { /* properties */ this.data = []; + /* methods */ this.setData = setData; this.get = get; @@ -28,17 +29,19 @@ define([], function () { }); } - function get(dataStore) { + function get(tenantId) { /* jshint validthis:true */ var self = this; - var restObj = Restangular.one('restconf').one(dataStore).one('policy:tenants') - .one('tenant').one('tenant1').one('policy'); + // var restObj = Restangular.one('restconf').one(dataStore).one('policy:tenants') + // .one('tenant').one('tenant1').one('policy'); + var restObj = Restangular.one('restconf').one('config').one('policy:tenants') + .one('tenant').one(tenantId).one('policy'); return restObj.get().then(function (data) { - if (data.policy.contract) { - self.setData(data.policy.contract); - } + // if (data.policy.contract) { + // self.setData(data.policy.contract); + self.setData(data.policy.contract); }); } } diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.controller.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.controller.js index 2f77133d0..d19c9156d 100644 --- a/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.controller.js +++ b/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.controller.js @@ -6,20 +6,36 @@ define([ angular.module('app.gbp').controller('ContractController', ContractController); - ContractController.$inject = ['$scope', 'TenantService', 'ContractService', 'ContractListService']; + ContractController.$inject = ['$scope', 'TenantListService', 'TenantService', 'ContractService', 'ContractListService', '$stateParams']; - function ContractController($scope, TenantService, ContractService, ContractListService) { - $scope.tenant = TenantService.createObject(); - $scope.tenant.get('tenant1'); - console.log('tenant from CONTRACT CTRL:', $scope.tenant); + function ContractController($scope, TenantListService, TenantService, ContractService, ContractListService, $stateParams) { + $scope.contracts = ContractListService.createList(); + $scope.contractsTableQuery = { + order: 'data.id', + limit: 25, + page: 1, + options: [25, 50, 100], + filter: '', + }; - $scope.contract = ContractService.createObject(); - $scope.contract.get('contract1'); - console.log('contract from CONTRACT CTRL', $scope.contract); + getContracts(); + + /* if ($stateParams.contractId) { + $scope.contractId = $stateParams.contractId; + console.log('contract.ctrl.if.$scope.contractId', $scope.contractId); + $scope.contract.get($scope.contractId); + } + else { + console.log('contract.ctrl.else.$scope.contractId', $scope.contractId); + $scope.contract.get($scope.$parent.tenantId); + }*/ + + function getContracts() { + $scope.contracts.data = []; + $scope.contracts.get($scope.rootTenant.data.id); + } - $scope.contracts = ContractListService.createList(); - $scope.contracts.get('config'); - console.log('contracts from CONTRACT CTRL', $scope.contracts); + $scope.$on('ROOT_TENANT_CHANGED', getContracts); } }); diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.service.js index 992f0ea8c..7827182fd 100644 --- a/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.service.js +++ b/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.service.js @@ -46,8 +46,11 @@ define([], function () { function get(id) { var self = this; + // var restObj = Restangular.one('restconf').one('config').one('policy:tenants') + // .one('tenant').one('tenant1').one('policy').one('contract').one(this.data.id || id); + var restObj = Restangular.one('restconf').one('config').one('policy:tenants') - .one('tenant').one('tenant1').one('policy').one('contract').one(this.data.id || id); + .one('tenant').one(id).one('policy').one('contract').one(id); return restObj.get().then(function (data) { self.setData(data.contract[0]); diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.tpl.html index 961b26463..fc6e31779 100644 --- a/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.tpl.html +++ b/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.tpl.html @@ -1,13 +1,122 @@ -

Contrats of tenant: tenant1



-

contract1:


-id: {{contract.data.id}}
-description: {{contract.data.description}}
-parent:{{contract.data.parent}}
-

his containers:


-

Target object:


{{contract.data.target}} -

Subject object:


{{contract.data.subject}} -

Clause object:


{{contract.data.clause}} -

Quality object:


{{contract.data.quality}} -
-

tenant1 contracts list:


-
{{contractElement.data}}

+
+ + + + + + + + + + + + + + + + + + + +
IdParentDescriptionActions
{{contract.data.id}}{{contract.data.parent}}{{contract.data.description}} + + edit + + + delete + +
+ + +
+ +
+ Details of contract: {{contract1}}

+ contract1:
+ id: {{contract.data.id}}
+ description: {{contract.data.description}}
+ parent:{{contract.data.parent}}
+ his containers:
+ Target object:
{{contract.data.target}} + Subject object:
{{contract.data.subject}} + Clause object:
{{contract.data.clause}} + Quality object:
{{contract.data.quality}} +
+ + + + + +
+ + + + + + + + + -- 2.36.6