Repository: ambari Updated Branches: refs/heads/trunk b179b724e -> 6c22c4deb
AMBARI-9707 Install Wizard, step 3, Host Checks popup: Tooltip with host names missing in some sections.(ababiichuk) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/6c22c4de Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/6c22c4de Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/6c22c4de Branch: refs/heads/trunk Commit: 6c22c4deb95c6c837b833e4fb31dc24fd5b64589 Parents: b179b72 Author: aBabiichuk <ababiic...@cybervisiontech.com> Authored: Thu Feb 19 16:23:39 2015 +0200 Committer: aBabiichuk <ababiic...@cybervisiontech.com> Committed: Thu Feb 19 16:53:41 2015 +0200 ---------------------------------------------------------------------- .../app/controllers/wizard/step3_controller.js | 7 - .../wizard/step3/hostWarningPopupBody_view.js | 59 ++++---- .../step3/hostWarningPopupBody_view_test.js | 137 +++++++++++++++++++ 3 files changed, 166 insertions(+), 37 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/6c22c4de/ambari-web/app/controllers/wizard/step3_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/wizard/step3_controller.js b/ambari-web/app/controllers/wizard/step3_controller.js index a89268b..0fc0b32 100644 --- a/ambari-web/app/controllers/wizard/step3_controller.js +++ b/ambari-web/app/controllers/wizard/step3_controller.js @@ -1623,13 +1623,6 @@ App.WizardStep3Controller = Em.Controller.extend({ } } - warnings.forEach(function (warn) { - if (warn.hosts.length < 11) { - warn.hostsList = warn.hosts.join('<br>') - } else { - warn.hostsList = warn.hosts.slice(0, 10).join('<br>') + '<br> ' + Em.I18n.t('installer.step3.hostWarningsPopup.moreHosts').format(warn.hosts.length - 10); - } - }); hosts.unshift({ name: 'All Hosts', warnings: warnings http://git-wip-us.apache.org/repos/asf/ambari/blob/6c22c4de/ambari-web/app/views/wizard/step3/hostWarningPopupBody_view.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/wizard/step3/hostWarningPopupBody_view.js b/ambari-web/app/views/wizard/step3/hostWarningPopupBody_view.js index 0d13246..0a1a823 100644 --- a/ambari-web/app/views/wizard/step3/hostWarningPopupBody_view.js +++ b/ambari-web/app/views/wizard/step3/hostWarningPopupBody_view.js @@ -149,7 +149,7 @@ App.WizardStep3HostWarningPopupBody = Em.View.extend({ var jdkCategoryWarnings = this.get('bodyController.jdkCategoryWarnings') || []; var thpCategoryWarnings = this.get('bodyController.thpCategoryWarnings'); var categoryWarnings = this.get('categoryWarnings'); - return [ + var warningsArray = [ Em.Object.create({ warnings: thpCategoryWarnings, title: Em.I18n.t('installer.step3.hostWarningsPopup.thp'), @@ -157,8 +157,7 @@ App.WizardStep3HostWarningPopupBody = Em.View.extend({ type: Em.I18n.t('common.issues'), emptyName: Em.I18n.t('installer.step3.hostWarningsPopup.empty.thp'), action: Em.I18n.t('installer.step3.hostWarningsPopup.action.enabled'), - category: 'thp', - isCollapsed: true + category: 'thp' }), Em.Object.create({ warnings: jdkCategoryWarnings, @@ -167,8 +166,7 @@ App.WizardStep3HostWarningPopupBody = Em.View.extend({ type: Em.I18n.t('common.issues'), emptyName: Em.I18n.t('installer.step3.hostWarningsPopup.empty.jdk'), action: Em.I18n.t('installer.step3.hostWarningsPopup.action.exists'), - category: 'jdk', - isCollapsed: true + category: 'jdk' }), Em.Object.create({ warnings: diskCategoryWarnings, @@ -177,8 +175,7 @@ App.WizardStep3HostWarningPopupBody = Em.View.extend({ type: Em.I18n.t('common.issues'), emptyName: Em.I18n.t('installer.step3.hostWarningsPopup.empty.disk'), action: Em.I18n.t('installer.step3.hostWarningsPopup.action.exists'), - category: 'disk', - isCollapsed: true + category: 'disk' }), Em.Object.create({ warnings: repoCategoryWarnings, @@ -187,8 +184,7 @@ App.WizardStep3HostWarningPopupBody = Em.View.extend({ type: Em.I18n.t('common.issues'), emptyName: Em.I18n.t('installer.step3.hostWarningsPopup.empty.repositories'), action: Em.I18n.t('installer.step3.hostWarningsPopup.action.invalid'), - category: 'repositories', - isCollapsed: true + category: 'repositories' }), Em.Object.create({ warnings: categoryWarnings.filterProperty('category', 'firewall'), @@ -197,8 +193,7 @@ App.WizardStep3HostWarningPopupBody = Em.View.extend({ type: Em.I18n.t('common.issues'), emptyName: Em.I18n.t('installer.step3.hostWarningsPopup.empty.firewall'), action: Em.I18n.t('installer.step3.hostWarningsPopup.action.running'), - category: 'firewall', - isCollapsed: true + category: 'firewall' }), Em.Object.create({ warnings: categoryWarnings.filterProperty('category', 'processes'), @@ -207,8 +202,7 @@ App.WizardStep3HostWarningPopupBody = Em.View.extend({ type: Em.I18n.t('common.process'), emptyName: Em.I18n.t('installer.step3.hostWarningsPopup.empty.processes'), action: Em.I18n.t('installer.step3.hostWarningsPopup.action.running'), - category: 'process', - isCollapsed: true + category: 'process' }), Em.Object.create({ warnings: categoryWarnings.filterProperty('category', 'packages'), @@ -217,8 +211,7 @@ App.WizardStep3HostWarningPopupBody = Em.View.extend({ type: Em.I18n.t('common.package'), emptyName: Em.I18n.t('installer.step3.hostWarningsPopup.empty.packages'), action: Em.I18n.t('installer.step3.hostWarningsPopup.action.installed'), - category: 'package', - isCollapsed: true + category: 'package' }), Em.Object.create({ warnings: categoryWarnings.filterProperty('category', 'fileFolders'), @@ -227,8 +220,7 @@ App.WizardStep3HostWarningPopupBody = Em.View.extend({ type: Em.I18n.t('common.path'), emptyName: Em.I18n.t('installer.step3.hostWarningsPopup.empty.filesAndFolders'), action: Em.I18n.t('installer.step3.hostWarningsPopup.action.exists'), - category: 'fileFolders', - isCollapsed: true + category: 'fileFolders' }), Em.Object.create({ warnings: categoryWarnings.filterProperty('category', 'services'), @@ -237,8 +229,7 @@ App.WizardStep3HostWarningPopupBody = Em.View.extend({ type: Em.I18n.t('common.service'), emptyName: Em.I18n.t('installer.step3.hostWarningsPopup.empty.services'), action: Em.I18n.t('installer.step3.hostWarningsPopup.action.notRunning'), - category: 'service', - isCollapsed: true + category: 'service' }), Em.Object.create({ warnings: categoryWarnings.filterProperty('category', 'users'), @@ -247,8 +238,7 @@ App.WizardStep3HostWarningPopupBody = Em.View.extend({ type: Em.I18n.t('common.user'), emptyName: Em.I18n.t('installer.step3.hostWarningsPopup.empty.users'), action: Em.I18n.t('installer.step3.hostWarningsPopup.action.exists'), - category: 'user', - isCollapsed: true + category: 'user' }), Em.Object.create({ warnings: categoryWarnings.filterProperty('category', 'misc'), @@ -257,8 +247,7 @@ App.WizardStep3HostWarningPopupBody = Em.View.extend({ type: Em.I18n.t('installer.step3.hostWarningsPopup.misc.umask'), emptyName: Em.I18n.t('installer.step3.hostWarningsPopup.empty.misc'), action: Em.I18n.t('installer.step3.hostWarningsPopup.action.exists'), - category: 'misc', - isCollapsed: true + category: 'misc' }), Em.Object.create({ warnings: categoryWarnings.filterProperty('category', 'alternatives'), @@ -267,16 +256,14 @@ App.WizardStep3HostWarningPopupBody = Em.View.extend({ type: Em.I18n.t('installer.step3.hostWarningsPopup.alternatives.umask'), emptyName: Em.I18n.t('installer.step3.hostWarningsPopup.alternatives.empty'), action: Em.I18n.t('installer.step3.hostWarningsPopup.action.exists'), - category: 'alternatives', - isCollapsed: true + category: 'alternatives' }), Em.Object.create({ warnings: categoryWarnings.filterProperty('category', 'reverseLookup'), title: Em.I18n.t('installer.step3.hostWarningsPopup.reverseLookup'), message: Em.I18n.t('installer.step3.hostWarningsPopup.reverseLookup.message'), emptyName: Em.I18n.t('installer.step3.hostWarningsPopup.reverseLookup.empty'), - category: 'reverseLookup', - isCollapsed: true + category: 'reverseLookup' }), Em.Object.create({ warnings: hostCheckWarnings, @@ -285,10 +272,22 @@ App.WizardStep3HostWarningPopupBody = Em.View.extend({ type: Em.I18n.t('common.issues'), emptyName: Em.I18n.t('installer.step3.hostWarningsPopup.resolution.validation.empty'), action: Em.I18n.t('installer.step3.hostWarningsPopup.action.failed'), - category: 'hostNameResolution', - isCollapsed: true + category: 'hostNameResolution' }) - ] + ]; + warningsArray.forEach(function (warningType) { + warningType.set('isCollapsed', true); + warningType.get('warnings').forEach(function (warn) { + var hosts = Em.get(warn, 'hosts'); + if (hosts) { + var hostsList = hosts.length < 11 ? hosts.join('<br>') : + hosts.slice(0, 10).join('<br>') + '<br> ' + + Em.I18n.t('installer.step3.hostWarningsPopup.moreHosts').format(warn.hosts.length - 10); + Em.set(warn, 'hostsList', hostsList); + } + }); + }); + return warningsArray; }.property('category', 'warningsByHost', 'bodyController.jdkCategoryWarnings', 'bodyController.repoCategoryWarnings', 'bodyController.diskCategoryWarnings', 'bodyController.hostCheckWarnings', 'bodyController.thpCategoryWarnings'), /** http://git-wip-us.apache.org/repos/asf/ambari/blob/6c22c4de/ambari-web/test/views/wizard/step3/hostWarningPopupBody_view_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/views/wizard/step3/hostWarningPopupBody_view_test.js b/ambari-web/test/views/wizard/step3/hostWarningPopupBody_view_test.js index 69df9c5..aa5d023 100644 --- a/ambari-web/test/views/wizard/step3/hostWarningPopupBody_view_test.js +++ b/ambari-web/test/views/wizard/step3/hostWarningPopupBody_view_test.js @@ -211,4 +211,141 @@ describe('App.WizardStep3HostWarningPopupBody', function() { }); }); + describe('#content', function () { + + it('should return array with warning objects', function () { + view.set('bodyController', Em.Object.create({ + hostCheckWarnings: [ + { + hosts: ['h0', 'h1', 'h2', 'h3', 'h4', 'h5', 'h5', 'h7', 'h8', 'h9', 'h10'] + } + ], + repoCategoryWarnings: [ + { + hosts: ['h11', 'h12'] + } + ], + diskCategoryWarnings: [ + { + hosts: ['h13'] + } + ], + jdkCategoryWarnings: [ + { + hosts: ['h14'] + } + ], + thpCategoryWarnings: [ + { + hosts: ['h15'] + } + ] + })); + view.reopen({ + categoryWarnings: [ + { + category: 'firewall', + hosts: ['h16'] + }, + { + category: 'firewall', + hosts: ['h17'] + }, + { + category: 'processes', + hosts: ['h18'] + }, + { + category: 'packages', + hosts: ['h19'] + }, + { + category: 'fileFolders', + hosts: ['h20'] + }, + { + category: 'services', + hosts: ['h21'] + }, + { + category: 'users', + hosts: ['h22'] + }, + { + category: 'misc', + hosts: ['h23'] + }, + { + category: 'alternatives', + hosts: ['h24'] + }, + { + category: 'reverseLookup', + hosts: ['h25'] + }, + { + category: 'reverseLookup', + hosts: ['h26'] + }, + { + category: 'reverseLookup', + hosts: ['h27'] + }, + { + category: 'reverseLookup', + hosts: ['h28'] + }, + { + category: 'reverseLookup', + hosts: ['h29'] + }, + { + category: 'reverseLookup', + hosts: ['h30'] + }, + { + category: 'reverseLookup', + hosts: ['h31'] + }, + { + category: 'reverseLookup', + hosts: ['h32'] + }, + { + category: 'reverseLookup', + hosts: ['h33'] + }, + { + category: 'reverseLookup', + hosts: ['h34'] + }, + { + category: 'reverseLookup', + hosts: ['h35', 'h36'] + } + ] + }); + var content = view.get('content'); + expect(content.mapProperty('isCollapsed').uniq()).to.eql([true]); + expect(content.findProperty('category', 'hostNameResolution').get('warnings')[0].hostsList). + to.equal('h0<br>h1<br>h2<br>h3<br>h4<br>h5<br>h5<br>h7<br>h8<br>h9<br> ' + Em.I18n.t('installer.step3.hostWarningsPopup.moreHosts').format(1)); + expect(content.findProperty('category', 'repositories').get('warnings')[0].hostsList).to.equal('h11<br>h12'); + expect(content.findProperty('category', 'disk').get('warnings')[0].hostsList).to.equal('h13'); + expect(content.findProperty('category', 'jdk').get('warnings')[0].hostsList).to.equal('h14'); + expect(content.findProperty('category', 'thp').get('warnings')[0].hostsList).to.equal('h15'); + expect(content.findProperty('category', 'firewall').get('warnings').mapProperty('hostsList')).to.eql(['h16', 'h17']); + expect(content.findProperty('category', 'process').get('warnings')[0].hostsList).to.equal('h18'); + expect(content.findProperty('category', 'package').get('warnings')[0].hostsList).to.equal('h19'); + expect(content.findProperty('category', 'fileFolders').get('warnings')[0].hostsList).to.equal('h20'); + expect(content.findProperty('category', 'service').get('warnings')[0].hostsList).to.equal('h21'); + expect(content.findProperty('category', 'user').get('warnings')[0].hostsList).to.equal('h22'); + expect(content.findProperty('category', 'misc').get('warnings')[0].hostsList).to.equal('h23'); + expect(content.findProperty('category', 'alternatives').get('warnings')[0].hostsList).to.equal('h24'); + expect(content.findProperty('category', 'reverseLookup').get('warnings').mapProperty('hostsList')).to.eql([ + 'h25', 'h26', 'h27', 'h28', 'h29', 'h30', 'h31', 'h32', 'h33', 'h34', 'h35<br>h36' + ]); + }); + + }); + }); \ No newline at end of file