EPG controller and service 62/38562/5
authorĽubomír Balogh <lubomir.balogh@pantheon.local>
Mon, 9 May 2016 08:55:42 +0000 (10:55 +0200)
committerLubomir Balogh <lubomir.balogh@pantheon.sk>
Thu, 12 May 2016 14:24:18 +0000 (14:24 +0000)
Signed-off-by: Ľubomír Balogh <lubomir.balogh@pantheon.local>
groupbasedpolicy-ui/module/src/main/resources/gbp/epg/epg-list.service.js [new file with mode: 0644]
groupbasedpolicy-ui/module/src/main/resources/gbp/epg/epg.controller.js
groupbasedpolicy-ui/module/src/main/resources/gbp/epg/epg.service.js [new file with mode: 0644]
groupbasedpolicy-ui/module/src/main/resources/gbp/epg/epg.tpl.html

diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/epg/epg-list.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/epg/epg-list.service.js
new file mode 100644 (file)
index 0000000..2234aa6
--- /dev/null
@@ -0,0 +1,53 @@
+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
index 44d6e3edc97e443ddb072371bf06c085172ffc38..56272301644ae476c6aa1dbaf7a6455842fed135 100644 (file)
@@ -1,13 +1,21 @@
 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
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/epg/epg.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/epg/epg.service.js
new file mode 100644 (file)
index 0000000..bd2c0c5
--- /dev/null
@@ -0,0 +1,81 @@
+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
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..f391cc8bf88e1e268377f734c554c23121a1d759 100644 (file)
@@ -0,0 +1,9 @@
+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>