initial contracts work 64/38564/5
authorMichal Kovacik <michal.kovacik@pantheon.tech>
Mon, 9 May 2016 09:20:06 +0000 (11:20 +0200)
committerMichal Kovacik <michal.kovacik@pantheon.tech>
Mon, 16 May 2016 12:46:34 +0000 (12:46 +0000)
contract services added, controller updated, TMP updated

Signed-off-by: Michal Kovacik <michal.kovacik@pantheon.tech>
groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract-list.service.js [new file with mode: 0644]
groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.controller.js
groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.service.js [new file with mode: 0644]
groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.tpl.html

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
new file mode 100644 (file)
index 0000000..a6fafa7
--- /dev/null
@@ -0,0 +1,54 @@
+define([], function () {
+    'use strict';
+
+    angular.module('app.gbp').service('ContractListService', ContractListService);
+
+    ContractListService.$inject = ['Restangular', 'ContractService'];
+
+    function ContractListService(Restangular, ContractService) {
+        /* methods */
+        this.createList = createList;
+
+        function ContractList() {
+            /* properties */
+            this.data = [];
+            /* methods */
+            this.setData = setData;
+            this.get = get;
+
+            /* Implementation */
+            /**
+             * fills ContractList object with data
+             * @param data
+             */
+            function setData(data) {
+                var self = this;
+                data.forEach(function (dataElement) {
+                    self.data.push(ContractService.createObject(dataElement));
+                });
+            }
+
+            function get(dataStore) {
+                /* jshint validthis:true */
+                var self = this;
+
+                var restObj = Restangular.one('restconf').one(dataStore).one('policy:tenants')
+                .one('tenant').one('tenant1').one('policy');
+
+                return restObj.get().then(function (data) {
+                    if (data.policy.contract) {
+                        self.setData(data.policy.contract);
+                    }
+                });
+            }
+        }
+
+        function createList() {
+            var obj = new ContractList();
+
+            return obj;
+        }
+    }
+
+    return ContractListService;
+});
index 5d3fa1dea90ba0b7b513a915e7e25dc26690152c..2f77133d06272d265efb92178e246e90d5016338 100644 (file)
@@ -1,13 +1,25 @@
 define([
-
+    'app/gbp/contract/contract.service',
+    'app/gbp/contract/contract-list.service',
 ], function () {
     'use strict';
 
     angular.module('app.gbp').controller('ContractController', ContractController);
 
-    ContractController.$inject = ['$scope'];
+    ContractController.$inject = ['$scope', 'TenantService', 'ContractService', 'ContractListService'];
+
+    function ContractController($scope, TenantService, ContractService, ContractListService) {
+        $scope.tenant = TenantService.createObject();
+        $scope.tenant.get('tenant1');
+        console.log('tenant from CONTRACT CTRL:', $scope.tenant);
+
+        $scope.contract = ContractService.createObject();
+        $scope.contract.get('contract1');
+        console.log('contract from CONTRACT CTRL', $scope.contract);
 
-    function ContractController($scope) {
+        $scope.contracts = ContractListService.createList();
+        $scope.contracts.get('config');
+        console.log('contracts from CONTRACT CTRL', $scope.contracts);
 
     }
 });
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
new file mode 100644 (file)
index 0000000..992f0ea
--- /dev/null
@@ -0,0 +1,75 @@
+define([], function () {
+    'use strict';
+
+    angular.module('app.gbp').service('ContractService', ContractService);
+
+    ContractService.$inject = ['Restangular'];
+
+    function ContractService(Restangular) {
+        /* methods */
+        this.createObject = createObject;
+
+        /**
+         * Contract constructor
+         * @constructor
+         */
+        function Contract() {
+            /* properties */
+            this.data = {};
+            /* methods */
+            this.setData = setData;
+            this.get = get;
+
+            /* Implementation */
+            /**
+             * fills Contract object with data
+             * @param data
+             */
+            function setData(data) {
+                this.data.id = data.id;
+                this.data.description = data.description;
+                this.data.parent = data.parent;
+
+                // TODO: use objects
+                this.data['forwarding-context'] = data['forwarding-context'];
+                this.data.target = data.target;
+                this.data.subject = data.subject;
+                this.data.clause = data.clause;
+                this.data.quality = data.quality;
+            }
+
+            /**
+             * gets one Contract 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('tenant1').one('policy').one('contract').one(this.data.id || id);
+
+                return restObj.get().then(function (data) {
+                    self.setData(data.contract[0]);
+                });
+            }
+        }
+
+        /**
+         * creates Contract object and fills it with data if available
+         * @param data
+         * @returns {Contract}
+         */
+        function createObject(data) {
+            var obj = new Contract();
+
+            if (data) {
+                obj.setData(data);
+            }
+
+            return obj;
+        }
+    }
+
+    return ContractService;
+});
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..961b264632eb958f8aa97990d5211d4c58c15552 100644 (file)
@@ -0,0 +1,13 @@
+<h1>Contrats of tenant: <u>tenant1</u></h1><br /><br />
+<h2><u>contract1:</u></h2><br />
+id: {{contract.data.id}}<br />
+description: {{contract.data.description}}<br />
+parent:{{contract.data.parent}}<br />
+<h2>his containers:</b></h2><br />
+<h3><u>Target object:</u></h3><br />{{contract.data.target}}
+<h3><u>Subject object:</u></h3><br />{{contract.data.subject}}
+<h3><u>Clause object:</u></h3><br />{{contract.data.clause}}
+<h3><u>Quality object:</u></h3><br />{{contract.data.quality}}
+<hr />
+<h2><u>tenant1 contracts list:</u></h2><br />
+<section ng-repeat="contractElement in contracts.data"><h5>{{contractElement.data}}</h5><br /></section>