# HG changeset patch # User Andrew Azores # Date 1506363408 14400 # Node ID ba401daa2732318afd9c8bf5d9a92a3992650f3e # Parent eebc90a53b7ffa235564a55b7e130ac57289c405 Click anywhere on JVM entry cell to go to jvm-info state Reviewed-by: jkang Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2017-September/025181.html diff -r eebc90a53b7f -r ba401daa2732 src/app/components/jvm-list/jvm-list.controller.js --- a/src/app/components/jvm-list/jvm-list.controller.js Thu Sep 28 14:20:44 2017 -0400 +++ b/src/app/components/jvm-list/jvm-list.controller.js Mon Sep 25 14:16:48 2017 -0400 @@ -31,7 +31,7 @@ import systemInfoService from 'components/system-info/system-info.service.js'; class JvmListController { - constructor (jvmListService, systemInfoService, $location, $timeout, $translate) { + constructor (jvmListService, systemInfoService, $location, $state, $timeout, $translate) { 'ngInject'; this.jvmListService = jvmListService; this.systemInfoService = systemInfoService; @@ -50,7 +50,8 @@ }; this.jvmConfig = { showSelectBox: false, - useExpandingRows: false + useExpandingRows: false, + onClick: item => $state.go('jvmInfo', { systemId: item.systemId, jvmId: item.jvmId }) }; this.emptyStateConfig = { @@ -120,10 +121,14 @@ this.systemsOpen[system.systemId] = false; this.systemInfoService.getSystemInfo(system.systemId).then( resp => { + let jvms = system.jvms; + jvms.forEach(jvm => { + jvm.systemId = system.systemId; + }); this.allItems.push({ systemId: system.systemId, hostname: resp.data.response[0].hostname, - jvms: system.jvms, + jvms: jvms, timeCreated: resp.data.response[0].timeCreated, pageConfig: { pageNumber: 1, diff -r eebc90a53b7f -r ba401daa2732 src/app/components/jvm-list/jvm-list.controller.spec.js --- a/src/app/components/jvm-list/jvm-list.controller.spec.js Thu Sep 28 14:20:44 2017 -0400 +++ b/src/app/components/jvm-list/jvm-list.controller.spec.js Mon Sep 25 14:16:48 2017 -0400 @@ -29,7 +29,7 @@ beforeEach(angular.mock.module('jvmList.controller')); - let rootScope, controller, jvmListSvc, systemInfoSvc, promise, location, timeout, translate; + let rootScope, controller, jvmListSvc, systemInfoSvc, promise, location, state, timeout, translate; let fooItem = { hostname: 'foo', @@ -87,6 +87,9 @@ location = { hash: sinon.stub().returns('') }; + state = { + go: sinon.spy() + }; timeout = sinon.spy(); translate = sinon.stub().returns({ then: sinon.stub().yields({}) @@ -102,6 +105,7 @@ jvmListService: jvmListSvc, systemInfoService: systemInfoSvc, $location: location, + $state: state, $timeout: timeout, $translate: translate }); @@ -132,6 +136,20 @@ }); }); + describe('jvmConfig', () => { + it('should navigate to state on click', () => { + state.go.should.not.be.called(); + let fn = controller.jvmConfig.onClick; + fn.should.be.a.Function(); + fn({ + systemId: 'foo-systemId', + jvmId: 'foo-jvmId' + }); + state.go.should.be.calledOnce(); + state.go.should.be.calledWith('jvmInfo', sinon.match({ systemId: 'foo-systemId', jvmId: 'foo-jvmId' })); + }); + }); + describe('changeLocationHash', () => { it('should add system hostname to url when opened', () => { let prevLocationHash = ''; @@ -193,10 +211,12 @@ let data = { response: [ { - systemId: 'foo' + systemId: 'foo', + jvms: [] }, { - systemId: 'bar' + systemId: 'bar', + jvms: [] } ] }; @@ -217,10 +237,12 @@ let data = { response: [ { - systemId: 'foo' + systemId: 'foo', + jvms: [] }, { - systemId: 'bar' + systemId: 'bar', + jvms: [] } ] }; @@ -238,7 +260,8 @@ let data = { response: [ { - systemId: 'foo' + systemId: 'foo', + jvms: [] } ] }; @@ -259,6 +282,23 @@ controller.listConfig.itemsAvailable.should.be.False(); done(); }); + + it('should append systemId to jvm items', done => { + let data = { + response: [ + { + systemId: 'foo', + jvms: [{}] + } + ] + }; + promise.resolve({ data: data }); + rootScope.$apply(); + controller.allItems[0].jvms[0].should.have.ownProperty('systemId'); + controller.allItems[0].jvms[0].systemId.should.equal('foo'); + controller.listConfig.itemsAvailable.should.be.True(); + done(); + }); }); describe('constructToolbarSettings', () => { diff -r eebc90a53b7f -r ba401daa2732 src/app/components/jvm-list/jvm-list.html --- a/src/app/components/jvm-list/jvm-list.html Thu Sep 28 14:20:44 2017 -0400 +++ b/src/app/components/jvm-list/jvm-list.html Mon Sep 25 14:16:48 2017 -0400 @@ -41,12 +41,12 @@
+