diff options
Diffstat (limited to 'moon_dashboard/moon/static/moon/pdp')
-rw-r--r-- | moon_dashboard/moon/static/moon/pdp/pdp.controller.js | 125 | ||||
-rw-r--r-- | moon_dashboard/moon/static/moon/pdp/pdp.html | 41 | ||||
-rwxr-xr-x | moon_dashboard/moon/static/moon/pdp/pdp.service.js | 123 | ||||
-rwxr-xr-x | moon_dashboard/moon/static/moon/pdp/pdp.service.spec.js | 143 |
4 files changed, 0 insertions, 432 deletions
diff --git a/moon_dashboard/moon/static/moon/pdp/pdp.controller.js b/moon_dashboard/moon/static/moon/pdp/pdp.controller.js deleted file mode 100644 index 1859b1f8..00000000 --- a/moon_dashboard/moon/static/moon/pdp/pdp.controller.js +++ /dev/null @@ -1,125 +0,0 @@ -(function () { - 'use strict'; - - angular - .module('moon') - .controller('moon.pdp.controller', - controller); - - controller.$inject = ['moon.util.service', 'moon.pdp.service', 'horizon.framework.widgets.form.ModalFormService']; - - function controller(util, pdpService, ModalFormService) { - var self = this; - self.model = pdpService; - pdpService.initialize(); - - self.createPdp = function createPdp() { - var schema = { - type: "object", - properties: { - name: { type: "string", minLength: 2, title: gettext("Name") }, - description: { type: "string", minLength: 2, title: gettext("Description") } - }, - required: ['name', 'description'] - }; - var pdp = { name: '', description: '' }; - var config = { - title: gettext('Create PDP'), - schema: schema, - form: ['name', { key: 'description', type: 'textarea' }], - model: pdp - }; - ModalFormService.open(config).then(submit); - - function submit(form) { - pdpService.createPdp(form.model); - } - } - - self.updatePdp = function updatePdp(pdp) { - var schema = { - type: "object", - properties: { - name: { type: "string", minLength: 2, title: gettext("Name") }, - description: { type: "string", minLength: 2, title: gettext("Description") } - }, - required: ['name', 'description'] - }; - var config = { - title: gettext('Update PDP'), - schema: schema, - form: ['name', { key: 'description', type: 'textarea' }], - model: angular.copy(pdp) - }; - ModalFormService.open(config).then(submit); - - function submit(form) { - pdpService.updatePdp(form.model); - } - } - - self.removePdp = function removePdp(pdp) { - if (confirm(gettext('Are you sure to delete this PDP?'))) - pdpService.removePdp(pdp); - } - - self.addPolicy = function addPolicy(pdp) { - var schema = { - type: "object", - properties: { - id: { type: "string", title: gettext("Select a Policy:") } - }, - required: ['id'] - }; - var titleMap = util.arrayToTitleMap(pdpService.policies) - var config = { - title: gettext('Add Policy'), - schema: schema, - form: [{ key: 'id', type: 'select', titleMap: titleMap }], - model: {} - }; - ModalFormService.open(config).then(submit); - - function submit(form) { - var pdpCopy = angular.copy(pdp); - pdpCopy.security_pipeline.push(pdpService.getPolicy(form.model.id)); - pdpService.updatePdp(pdpCopy); - } - } - - self.removePolicyFromPdp = function removePolicyFromPdp(pdp, policy) { - if (confirm(gettext('Are you sure to remove this Policy from PDP?'))) { - var pdpCopy = angular.copy(pdp); - pdpCopy.security_pipeline.splice(pdp.security_pipeline.indexOf(policy), 1); - pdpService.updatePdp(pdpCopy); - } - } - - self.changeProject = function changeProject(pdp) { - var schema = { - type: "object", - properties: { - id: { type: "string", title: gettext("Select a Project:") } - }, - required: ['id'] - }; - var model = {id : pdp.keystone_project_id}; - - var titleMap = util.arrayToTitleMap(pdpService.projects) - var config = { - title: gettext('Change Project'), - schema: schema, - form: [{ key: 'id', type: 'select', titleMap: titleMap }], - model: model - }; - ModalFormService.open(config).then(submit); - - function submit(form) { - var pdpCopy = angular.copy(pdp); - pdpCopy.project = pdpService.getProject(form.model.id); - pdpService.updatePdp(pdpCopy); - } - } - - } -})();
\ No newline at end of file diff --git a/moon_dashboard/moon/static/moon/pdp/pdp.html b/moon_dashboard/moon/static/moon/pdp/pdp.html deleted file mode 100644 index 2456a261..00000000 --- a/moon_dashboard/moon/static/moon/pdp/pdp.html +++ /dev/null @@ -1,41 +0,0 @@ -<div ng-controller="moon.pdp.controller as ctrl"> - <div class="clearfix list-group"> - <div class="pull-right"> - <input type="search" class="form-control filter" placeholder="Filter" ng-model="filterText"> - <button type="button" class="btn btn-default" ng-click="ctrl.createPdp()"> - <span class="fa fa-plus"></span> - <translate>Create PDP</translate> - </button> - </div> - </div> - <div class="list-group"> - <div ng-repeat="pdp in ctrl.model.pdps | orderBy:'name' | filter:filterText " class="list-group-item"> - <h3 class="list-group-item-heading inline">{$ pdp.name $}</h3> - <div class="pull-right"> - <button type="button" class="fa fa-trash" ng-click="ctrl.removePdp(pdp)" title="{$ 'Remove PDP' | translate $}"></button> - <button type="button" class="fa fa-edit" ng-click="ctrl.updatePdp(pdp)" title="{$ 'Edit PDP' | translate $}"></button> - </div> - <p class="list-group-item-text">{$ pdp.description $}</p> - <h4 class="list-group-item-text"> - <translate>Project: {$ pdp.project ? pdp.project.name : 'none' $}</translate> - <button type="button" class="fa fa-edit" ng-click="ctrl.changeProject(pdp)" title="{$ 'Change project' | translate $}"></button> - </h4> - - <details class="list-group-item-text"> - <summary> - <h4 class="inline">{$ pdp.security_pipeline.length $} - <translate>policy(ies)</translate> - </h4> - <button type="button" class="fa fa-plus " ng-click="ctrl.addPolicy(pdp)" title="{$ 'Add Policy' | translate $}"></button> - </summary> - <div class="list-group"> - <div ng-repeat="policy in pdp.security_pipeline | orderBy:'name'" class="list-group-item"> - <h3 class="list-group-item-heading inline">{$ policy.name $}</h3> - <button type="button" class="fa fa-trash pull-right" ng-click="ctrl.removePolicyFromPdp(pdp, policy)" title="{$ 'Remove Policy' | translate $}"></button> - <p class="list-group-item-text">{$ policy.description $}</p> - </div> - </div> - </details> - </div> - </div> -</div>
\ No newline at end of file diff --git a/moon_dashboard/moon/static/moon/pdp/pdp.service.js b/moon_dashboard/moon/static/moon/pdp/pdp.service.js deleted file mode 100755 index e18971be..00000000 --- a/moon_dashboard/moon/static/moon/pdp/pdp.service.js +++ /dev/null @@ -1,123 +0,0 @@ -(function () { - - 'use strict'; - - angular - .module('moon') - .factory('moon.pdp.service', pdpService); - - pdpService.$inject = ['moon.util.service', '$resource', 'moon.URI', '$q', 'horizon.app.core.openstack-service-api.keystone']; - - function pdpService(util, $resource, URI, $q, keystone) { - var host = URI.API; - - var pdpResource = $resource(host + '/pdp/' + ':id', {}, { - get: { method: 'GET' }, - query: { method: 'GET' }, - create: { method: 'POST' }, - remove: { method: 'DELETE' }, - update: { method: 'PATCH' } - }); - - var policyResource = $resource(host + '/policies/' + ':id', {}, { - query: { method: 'GET' }, - }); - - var pdpsMap = {}; - var pdps = []; - var policiesMap = {}; - var policies = []; - var projectsMap = {}; - var projects = []; - - function loadPdps() { - var queries = { - pdps: pdpResource.query().$promise, - policies: policyResource.query().$promise, - projects: keystone.getProjects() - } - - $q.all(queries).then(function (result) { - createPdps(result.pdps, result.policies, result.projects.data) - console.log('moon', 'pdps initialized', pdps) - }) - } - - function createPdps(pdpsData, policiesData, projectsData) { - pdps.splice(0, pdps.length); - policies.splice(0, policies.length); - projects.splice(0, projects.length); - util.cleanObject(pdpsMap); - util.cleanObject(policiesMap); - util.cleanObject(projectsMap) - - util.createInternal(policiesData.policies, policies, policiesMap); - util.pushAll(projects, projectsData.items); - util.addToMap(projects, projectsMap); - createPdpInternal(pdpsData.pdps); - } - - function mapPdp(pdp) { - util.mapIdToItem(pdp.security_pipeline, policiesMap); - pdp.project = null; - if (pdp.keystone_project_id) { - pdp.project = projectsMap[pdp.keystone_project_id]; - } - } - - function createPdpInternal(data) { - return util.createInternal(data, pdps, pdpsMap, mapPdp); - } - - function updatePdpInternal(data) { - return util.updateInternal(data, pdpsMap, mapPdp); - } - - function removePdpInternal(id) { - return util.removeInternal(id, pdps, pdpsMap); - } - - return { - initialize: loadPdps, - createPdps: createPdps, - pdps: pdps, - policies: policies, - projects: projects, - createPdp: function createPdp(pdp) { - pdp.keystone_project_id = null; - pdp.security_pipeline = []; - pdpResource.create(null, pdp, success, util.displayErrorFunction('Unable to create PDP')); - - function success(data) { - createPdpInternal(data.pdps); - util.displaySuccess('PDP created'); - } - }, - removePdp: function removePdp(pdp) { - pdpResource.remove({ id: pdp.id }, null, success, util.displayErrorFunction('Unable to remove PDP')); - - function success(data) { - removePdpInternal(pdp.id); - util.displaySuccess('PDP removed'); - } - }, - updatePdp: function updatePdp(pdp) { - util.mapItemToId(pdp.security_pipeline); - pdp.keystone_project_id = pdp.project ? pdp.project.id : null; - pdpResource.update({ id: pdp.id }, pdp, success, util.displayErrorFunction('Unable to update PDP')); - - function success(data) { - updatePdpInternal(data.pdps) - util.displaySuccess('PDP updated'); - } - }, - getPolicy: function getPolicy(id) { - return policiesMap[id]; - }, - getProject: function getProject(id) { - return projectsMap[id]; - }, - } - - } -})();
\ No newline at end of file diff --git a/moon_dashboard/moon/static/moon/pdp/pdp.service.spec.js b/moon_dashboard/moon/static/moon/pdp/pdp.service.spec.js deleted file mode 100755 index 4208467f..00000000 --- a/moon_dashboard/moon/static/moon/pdp/pdp.service.spec.js +++ /dev/null @@ -1,143 +0,0 @@ -(function () { - 'use strict'; - - describe('moon.pdp.service', function () { - var service, $httpBackend, URI; - var pdpsData, policiesData, projectsData; - - - function initData() { - pdpsData = { - pdps: - { 'pdpId1': { name: 'pdp1', description: 'pdpDescription1', security_pipeline: ['policyId1'], keystone_project_id: 'projectId1' } } - }; - - policiesData = { - policies: - { - 'policyId1': { name: 'policy1', description: 'pDescription1' }, - 'policyId2': { name: 'policy2', description: 'pDescription2' } - } - }; - - projectsData = { - items: [ - { name: "project1", id: "projectId1" }, - { name: "project2", id: "projectId2" } - ] - }; - - } - - beforeEach(module('horizon.app.core')); - beforeEach(module('horizon.framework')); - beforeEach(module('moon')); - - beforeEach(inject(function ($injector) { - service = $injector.get('moon.pdp.service'); - $httpBackend = $injector.get('$httpBackend'); - URI = $injector.get('moon.URI'); - })); - - afterEach(function () { - $httpBackend.verifyNoOutstandingExpectation(); - $httpBackend.verifyNoOutstandingRequest(); - }); - - it('should initialize', function () { - initData(); - $httpBackend.expectGET(URI.API + '/pdp').respond(200, pdpsData); - $httpBackend.expectGET(URI.API + '/policies').respond(200, policiesData); - $httpBackend.expectGET('/api/keystone/projects/').respond(200, projectsData); - - - service.initialize(); - $httpBackend.flush(); - - expect(service.pdps.length).toBe(1); - var pdp = service.pdps[0]; - expect(pdp.id).toBe('pdpId1'); - expect(pdp.name).toBe('pdp1'); - expect(pdp.description).toBe('pdpDescription1'); - expect(pdp.security_pipeline.length).toBe(1); - expect(pdp.security_pipeline[0].id).toBe('policyId1'); - expect(pdp.keystone_project_id).toBe('projectId1'); - expect(pdp.project.id).toBe('projectId1'); - - expect(service.policies.length).toBe(2); - var policy = service.policies[0]; - expect(policy.id).toBe('policyId1'); - expect(policy.name).toBe('policy1'); - expect(policy.description).toBe('pDescription1'); - - - expect(service.projects.length).toBe(2); - var project = service.projects[0]; - expect(project.id).toBe('projectId1'); - expect(project.name).toBe('project1'); - - }); - - - - it('should create pdp', function () { - var pdpCreatedData = { - pdps: - { 'pdpId1': { name: 'pdp1', description: 'pdpDescription1', security_pipeline: [], keystone_project_id: null } } - }; - - $httpBackend.expectPOST(URI.API + '/pdp').respond(200, pdpCreatedData); - - service.createPdp({ name: 'pdp1', description: 'pdpDescription1' }); - $httpBackend.flush(); - - expect(service.pdps.length).toBe(1); - var pdp = service.pdps[0]; - expect(pdp.id).toBe('pdpId1'); - expect(pdp.name).toBe('pdp1'); - expect(pdp.description).toBe('pdpDescription1'); - expect(pdp.project).toBe(null); - expect(pdp.security_pipeline.length).toBe(0); - }); - - it('should remove pdp', function () { - initData(); - service.createPdps(pdpsData, policiesData, projectsData); - - $httpBackend.expectDELETE(URI.API + '/pdp/pdpId1').respond(200); - - service.removePdp({ id: 'pdpId1' }); - $httpBackend.flush(); - - expect(service.pdps.length).toBe(0); - }); - - it('should update pdp', function () { - initData(); - var pdpUpdatedData = { - pdps: - { 'pdpId1': { name: 'pdp2', description: 'pdpDescription2', security_pipeline: ['policyId2'], keystone_project_id: 'projectId2' } } - }; - service.createPdps(pdpsData, policiesData, projectsData); - - $httpBackend.expectPATCH(URI.API + '/pdp/pdpId1').respond(200, pdpUpdatedData); - - service.updatePdp({ id: 'pdpId1', name: 'pdp2', description: 'pdpDescription2', security_pipeline: [service.getPolicy('policyId2')], project: service.getProject('projectId2') }); - $httpBackend.flush(); - - expect(service.pdps.length).toBe(1); - var pdp = service.pdps[0]; - expect(pdp.id).toBe('pdpId1'); - expect(pdp.name).toBe('pdp2'); - expect(pdp.description).toBe('pdpDescription2'); - expect(pdp.project.id).toBe('projectId2'); - expect(pdp.security_pipeline.length).toBe(1); - expect(pdp.security_pipeline[0].id).toBe('policyId2'); - - }); - - - }); - - -})();
\ No newline at end of file |