--- /dev/null
+define([], function() {
+ 'use strict';
+
+ angular.module('app.gbp').service('EpgListService', EpgListService);
+
+ EpgListService.$inject = ['Restangular', 'EpgService'];
+
+ function EpgListService(Restangular, EpgService) {
+ /* methods */
+ this.createList = createList;
+
+ function EpgList() {
+ /* properties */
+ this.data = [];
+ /* methods */
+ this.setData = setData;
+ this.get = get;
+
+ /* Implementation */
+ /**
+ * fills EpgList object with data
+ * @param data
+ */
+ function setData(data) {
+ var self = this;
+ data.forEach(function(dataElement) {
+ self.data.push(EpgService.createObject(dataElement));
+ });
+ }
+
+ function get(dataStore, idTenant) {
+ /* jshint validthis:true */
+ var self = this;
+
+ var restObj = Restangular.one('restconf').one(dataStore).one('policy:tenants').one('tenant').one(idTenant).one('policy');
+
+ return restObj.get().then(function(data) {
+ if (data.policy['endpoint-group']) {
+ self.setData(data.policy['endpoint-group']);
+ }
+ });
+ }
+ }
+
+ function createList() {
+ var obj = new EpgList();
+
+ return obj;
+ }
+ }
+
+ return EpgListService;
+});
\ No newline at end of file
define([
-
-], function () {
+ 'app/gbp/epg/epg.service',
+ 'app/gbp/epg/epg-list.service',
+], function() {
'use strict';
angular.module('app.gbp').controller('EpgController', EpgController);
- EpgController.$inject = ['$scope'];
+ EpgController.$inject = ['$scope', 'EpgService', 'EpgListService'];
+
+ function EpgController($scope, EpgService, EpgListService) {
+ $scope.epg = EpgService.createObject();
+ $scope.epg.get('epg_test', 'tenant_test');
+ console.log('Epg', $scope.epg);
- function EpgController($scope) {
+ $scope.epgs = EpgListService.createList();
+ $scope.epgs.get('config', 'tenant2');
+ console.log('Epgs', $scope.epgs);
}
-});
+});
\ No newline at end of file
--- /dev/null
+define([], function() {
+ 'use strict';
+
+ angular.module('app.gbp').service('EpgService', EpgService);
+
+ EpgService.$inject = ['Restangular'];
+
+ function EpgService(Restangular) {
+ /* methods */
+ this.createObject = createObject;
+
+
+ /**
+ * Epg constructor
+ * @constructor
+ */
+ function Epg() {
+ /* properties */
+ this.data = {};
+ /* methods */
+ this.setData = setData;
+ this.get = get;
+
+ /* Implementation */
+ /**
+ * fills Epg object with data
+ * @param data
+ */
+ function setData(data) {
+ this.data.id = data.id;
+ this.data.name = data.name;
+ this.data.description = data.description;
+ this.data.intraGroupPolicy = data['intra-group-policy'];
+
+ this.data.consumerNamedSelector = data['consumer-named-selector'];
+ this.data.providerNamedSelector = data['provider-named-selector'];
+ this.data.consumerTargetSelector = data['consumer-target-selector'];
+ this.data.providerTargerSelector = data['provider-target-selector'];
+
+ this.data.networkDomain = data['network-domain'];
+ this.data.parent = data.parent;
+
+ this.data.requirement = data.requirement;
+ this.data.capability = data.capability;
+ }
+
+ /**
+ * gets one Epg object from Restconf
+ * @param id
+ * @returns {*}
+ */
+ function get(id, idTenant) {
+ var self = this;
+
+ var restObj = Restangular.one('restconf').one('config').one('policy:tenants').one('tenant')
+ .one(idTenant).one('policy').one('endpoint-group').one(this.data.id || id);
+
+ return restObj.get().then(function(data) {
+ self.setData(data['endpoint-group'][0]);
+ });
+ }
+ }
+
+ /**
+ * creates Epg object and fills it with data if available
+ * @param data
+ * @returns {Epg}
+ */
+ function createObject(data) {
+ var obj = new Epg();
+
+ if (data) {
+ obj.setData(data);
+ }
+
+ return obj;
+ }
+ }
+
+ return EpgService;
+});
\ No newline at end of file
+EPG<br/>
+id: {{epg.data.id}}<br/>
+name: {{epg.data.name}}<br/>
+description: {{epg.data.description}}<br/>
+intra-group-policy: {{epg.data.intraGroupPolicy}}<br/>
+
+<div ng-repeat="epgElement in epgs.data">
+ {{epgElement.data.id}}, {{epgElement.data.name}}, {{epgElement.data.description}}, {{epgElement.data.intraGroupPolicy}}, {{epgElement.data.networkDomain}}<br/>
+</div>