<property name="moduleName" value="gbp"/>
<property name="url" value="/src/app/gbp"/>
<property name="directory" value="/gbp"/>
- <property name="requireJs" value="app/gbp/gbp.module"/>
+ <property name="requireJs" value="app/gbp/main"/>
<property name="angularJs" value="app.gbp"/>
<property name="cssDependencies">
<list></list>
--- /dev/null
+define(['app/gbp/common/gbp.service'], function () {
+ 'use strict';
+
+ angular.module('app.gbp').controller('RootGbpCtrl', RootGbpCtrl);
+
+ RootGbpCtrl.$inject = ['$scope', 'RootGbpService'];
+
+ function RootGbpCtrl($scope, RootGbpService) {
+
+ }
+});
--- /dev/null
+define([
+ 'app/routingConfig',
+ 'Restangular',
+ 'angular-translate-loader-partial'], function () {
+
+ var gbp = angular.module('app.gbp',
+ [
+ 'app.core', 'ui.router.state', 'restangular',
+ ]);
+
+ gbp.register = gbp; // for adding services, controllers, directives etc. to angular module before bootstrap
+
+ gbp.config(function ($stateProvider, $compileProvider, $controllerProvider, $provide, NavHelperProvider,
+ $translateProvider, $translatePartialLoaderProvider) {
+ gbp.register = {
+ controller: $controllerProvider.register,
+ directive: $compileProvider.directive,
+ factory: $provide.factory,
+ service: $provide.service,
+ };
+
+ /*$translatePartialLoaderProvider.addPart('app/gbp/assets/data/locale');*/
+
+ NavHelperProvider.addControllerUrl('app/gbp/contract/contract.controller');
+ NavHelperProvider.addControllerUrl('app/gbp/epg/epg.controller');
+ NavHelperProvider.addControllerUrl('app/gbp/common/gbp.controller');
+ NavHelperProvider.addControllerUrl('app/gbp/tenant/tenant.controller');
+
+ NavHelperProvider.addToMenu('gbp', {
+ 'link': '#/gbp/index',
+ 'active': 'main.gbp',
+ 'title': 'GBP',
+ 'icon': 'icon-level-down',
+ 'page': {
+ 'title': 'GBP',
+ 'description': 'GBP ui',
+ },
+ });
+
+ var access = routingConfig.accessLevels;
+
+ $stateProvider.state('main.gbp', {
+ url: 'gbp',
+ abstract: true,
+ // access: access.public,
+ views: {
+ 'content': {
+ templateUrl: 'src/app/gbp/common/views/root.tpl.html',
+
+ },
+ },
+ });
+
+ $stateProvider.state('main.gbp.index', {
+ url: '/index',
+ access: access.admin,
+ views: {
+ '': {
+ controller: 'RootGbpCtrl',
+ templateUrl: 'src/app/gbp/common/views/index.tpl.html',
+ },
+ },
+ });
+
+ $stateProvider.state('main.gbp.tenant', {
+ url: '/tenant',
+ access: access.admin,
+ views: {
+ '': {
+ controller: 'TenantController',
+ templateUrl: 'src/app/gbp/tenant/tenant.tpl.html',
+ },
+ },
+ });
+
+ $stateProvider.state('main.gbp.epg', {
+ url: '/epg',
+ access: access.admin,
+ views: {
+ '': {
+ controller: 'EpgController',
+ templateUrl: 'src/app/gbp/epg/epg.tpl.html',
+ },
+ },
+ });
+
+ $stateProvider.state('main.gbp.contract', {
+ url: '/contract',
+ access: access.admin,
+ views: {
+ '': {
+ controller: 'ContractController',
+ templateUrl: 'src/app/gbp/contract/contract.tpl.html',
+ },
+ },
+ });
+
+ });
+
+ return gbp;
+});
--- /dev/null
+define([], function () {
+ 'use strict';
+
+ angular.module('app.gbp').service('RootGbpService', RootGbpService);
+
+ RootGbpService.$inject = [];
+
+ function RootGbpService() {
+
+ }
+});
--- /dev/null
+define([
+
+], function () {
+ 'use strict';
+
+ angular.module('app.gbp').controller('ContractController', ContractController);
+
+ ContractController.$inject = ['$scope'];
+
+ function ContractController($scope) {
+
+ }
+});
--- /dev/null
+define([
+
+], function () {
+ 'use strict';
+
+ angular.module('app.gbp').controller('EpgController', EpgController);
+
+ EpgController.$inject = ['$scope'];
+
+ function EpgController($scope) {
+
+ }
+});
+++ /dev/null
-define(['app/gbp/gbp.module'], function (gbp) {
-
- gbp.register.controller('rootGbpCtrl', ['$rootScope', '$scope',
- function ($rootScope, $scope) {
-
- }]);
-});
+++ /dev/null
-define([
- 'app/routingConfig',
- 'Restangular',
- 'angular-translate-loader-partial'], function () {
-
- var gbp = angular.module('app.gbp',
- [
- 'app.core', 'ui.router.state', 'restangular'
- ]);
-
- gbp.register = gbp; // for adding services, controllers, directives etc. to angular module before bootstrap
-
- gbp.config(function ($stateProvider,$compileProvider,$controllerProvider, $provide, NavHelperProvider,
- $translateProvider, $translatePartialLoaderProvider) {
- gbp.register = {
- controller: $controllerProvider.register,
- directive: $compileProvider.directive,
- factory: $provide.factory,
- service: $provide.service
- };
-
- //$translatePartialLoaderProvider.addPart('app/gbp/assets/data/locale');
-
- NavHelperProvider.addControllerUrl('app/gbp/gbp.controller');
-
- NavHelperProvider.addToMenu('gbp', {
- "link": "#/gbp/index",
- "active": "main.gbp",
- "title": "GBP",
- "icon": "icon-level-down",
- "page": {
- "title": "GBP",
- "description": "GBP ui"
- }
- });
-
- var access = routingConfig.accessLevels;
-
- $stateProvider.state('main.gbp', {
- url: 'gbp',
- abstract: true,
- // access: access.public,
- views: {
- 'content': {
- templateUrl: 'src/app/gbp/common/views/root.tpl.html',
-
- }
- }
- });
-
- $stateProvider.state('main.gbp.index', {
- url: '/index',
- access: access.admin,
- views: {
- '': {
- controller: 'rootGbpCtrl',
- templateUrl: 'src/app/gbp/common/views/index.tpl.html'
- }
- }
- });
-
- // TODO: serve it
- /*$stateProvider.state('main.gbp.tenant', {
- url: '/tenant',
- access: access.admin,
- views: {
- 'gbp': {
- controller: 'gbpTenantController',
- controllerAs: 'tenantCtrl',
- templateUrl: 'src/app/gbp/views/tenant.tpl.html'
- }
- }
- });*/
-
- });
-
- return gbp;
-});
require.config({
- paths : {
-
- },
-
- shim : {
-
- },
-
+ paths: {},
+ shim: {},
});
-define(['app/gbp/gbp.module']);
+define(['app/gbp/common/gbp.module']);
--- /dev/null
+define([], function () {
+ 'use strict';
+
+ angular.module('app.gbp').service('TenantListService', TenantListService);
+
+ TenantListService.$inject = ['Restangular', 'TenantService'];
+
+ function TenantListService(Restangular, TenantService) {
+ /* methods */
+ this.createList = createList;
+
+ function TenantList() {
+ /* properties */
+ this.data = [];
+ /* methods */
+ this.setData = setData;
+ this.get = get;
+
+ /* Implementation */
+ /**
+ * fills TenantList object with data
+ * @param data
+ */
+ function setData(data) {
+ var self = this;
+ data.forEach(function (dataElement) {
+ self.data.push(TenantService.createObject(dataElement));
+ });
+ }
+
+ function get(dataStore) {
+ /* jshint validthis:true */
+ var self = this;
+
+ var restObj = Restangular.one('restconf').one(dataStore).one('policy:tenants');
+
+ return restObj.get().then(function(data) {
+ if (data.tenants.tenant) {
+ self.setData(data.tenants.tenant);
+ }
+ });
+ }
+ }
+
+ function createList() {
+ var obj = new TenantList();
+
+ return obj;
+ }
+ }
+
+ return TenantListService;
+});
--- /dev/null
+define([
+ 'app/gbp/tenant/tenant.service',
+ 'app/gbp/tenant/tenant-list.service',
+], function () {
+ 'use strict';
+
+ angular.module('app.gbp').controller('TenantController', TenantController);
+
+ TenantController.$inject = ['$scope', 'TenantService', 'TenantListService'];
+
+ function TenantController($scope, TenantService, TenantListService) {
+ $scope.tenant = TenantService.createObject();
+ $scope.tenant.get('newTenant');
+ console.log('Tenant', $scope.tenant);
+
+ $scope.tenants = TenantListService.createList();
+ $scope.tenants.get('config');
+
+ console.log('Tenants', $scope.tenants);
+ }
+});
--- /dev/null
+define([], function () {
+ 'use strict';
+
+ angular.module('app.gbp').service('TenantService', TenantService);
+
+ TenantService.$inject = ['Restangular'];
+
+ function TenantService(Restangular) {
+ /* methods */
+ this.createObject = createObject;
+
+
+ /**
+ * Tenant constructor
+ * @constructor
+ */
+ function Tenant() {
+ /* properties */
+ this.data = {};
+ /* methods */
+ this.setData = setData;
+ this.get = get;
+
+ /* Implementation */
+ /**
+ * fills Tenant object with data
+ * @param data
+ */
+ function setData(data) {
+ this.data.id = data.id;
+ this.data.name = data.name;
+ this.data.description = data.description;
+
+ // TODO: use objects
+ this.data['forwarding-context'] = data['forwarding-context'];
+ this.data.policy = data.policy;
+ }
+
+ /**
+ * gets one Tenant object from Restconf
+ * @param id
+ * @returns {*}
+ */
+ function get(id) {
+ var self = this;
+
+ var restObj = Restangular.one('restconf').one('config').one('policy:tenants').one('tenant')
+ .one(this.data.id || id);
+
+ return restObj.get().then(function (data) {
+ self.setData(data.tenant[0]);
+ });
+ }
+ }
+
+ /**
+ * creates Tenant object and fills it with data if available
+ * @param data
+ * @returns {Tenant}
+ */
+ function createObject(data) {
+ var obj = new Tenant();
+
+ if (data) {
+ obj.setData(data);
+ }
+
+ return obj;
+ }
+ }
+
+ return TenantService;
+});
--- /dev/null
+Tenant<br/>
+id: {{tenant.data.id}}<br/>
+name: {{tenant.data.name}}<br/>
+description: {{tenant.data.description}}<br/>
+
+<section ng-repeat="tenantElement in tenants.data">
+ {{tenantElement.data.id}}, {{tenantElement.data.name}}, {{tenantElement.data.description}}<br/>
+</section>