Updated Branches: refs/heads/trunk 0afd327c9 -> 964584518
AMBARI-3907. Restart message should have correct message for single hosts/components. Additional patch. (Denys Buzhor via akovalenko) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/96458451 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/96458451 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/96458451 Branch: refs/heads/trunk Commit: 9645845180412dcf22441e418d772b7e8f913634 Parents: 0afd327 Author: Aleksandr Kovalenko <[email protected]> Authored: Thu Nov 28 17:34:33 2013 +0200 Committer: Aleksandr Kovalenko <[email protected]> Committed: Thu Nov 28 17:35:01 2013 +0200 ---------------------------------------------------------------------- .../app/templates/main/service/info/configs.hbs | 2 +- ambari-web/app/utils/helper.js | 92 ++++++++++++-------- ambari-web/app/views/main/host/summary.js | 1 - 3 files changed, 58 insertions(+), 37 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/96458451/ambari-web/app/templates/main/service/info/configs.hbs ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates/main/service/info/configs.hbs b/ambari-web/app/templates/main/service/info/configs.hbs index 655ab98..7a22102 100644 --- a/ambari-web/app/templates/main/service/info/configs.hbs +++ b/ambari-web/app/templates/main/service/info/configs.hbs @@ -23,7 +23,7 @@ {{#if App.isAdmin}} <div> <div class="alert alert-warning clearfix"> - <i class="icon-refresh"></i> {{{view.needToRestartMessage}}} {{t services.service.config.restartService.needToRestart}} <a href="#" {{action showComponentsShouldBeRestarted target="controller"}}>{{view.componentsCount}} {{pluralize view.componentsCount "t:common.component" "t:common.components"}}</a> {{t on}} <a href="#" {{action showHostsShouldBeRestarted target="controller"}}>{{view.hostsCount}} {{pluralize view.hostsCount "t:common.host" "t:common.hosts"}}</a> {{t services.service.config.restartService.needToRestartEnd}} + <i class="icon-refresh"></i> {{{view.needToRestartMessage}}} {{t services.service.config.restartService.needToRestart}} <a href="#" {{action showComponentsShouldBeRestarted target="controller"}}>{{view.componentsCount}} {{pluralize view.componentsCount singular="t:common.component" plural="t:common.components"}}</a> {{t on}} <a href="#" {{action showHostsShouldBeRestarted target="controller"}}>{{view.hostsCount}} {{pluralize view.hostsCount singular="t:common.host" plural="t:common.hosts"}}</a> {{t services.service.config.restartService.needToRestartEnd}} <button {{bindAttr class=":btn :restart-components :pull-right view.startComponentsIsDisabled::btn-success view.startComponentsIsDisabled:disabled" }} {{action restartComponents target="controller"}}> {{t hosts.host.details.needToRestart.startButton}} http://git-wip-us.apache.org/repos/asf/ambari/blob/96458451/ambari-web/app/utils/helper.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/utils/helper.js b/ambari-web/app/utils/helper.js index 5f7fbbd..22d462e 100644 --- a/ambari-web/app/utils/helper.js +++ b/ambari-web/app/utils/helper.js @@ -100,41 +100,6 @@ Em.Handlebars.registerHelper('highlight', function (property, words, fn) { return new Em.Handlebars.SafeString(property); }) -/* - * Return singular or plural word based on Em.I18n property key. - * @param count - integer count property *required - * @param singular - singular version of word, for example "t:common.host" *required - * @param plural - plural version of word *required - * @return {String} - * - * Example: {{pluralize hostsCount "t:host" "t:hosts"}} - */ -Em.Handlebars.registerHelper('pluralize', function(count, singular, plural, fn) { - var context = (fn.contexts && fn.contexts[0]) || this; - count = Em.Handlebars.getPath(context, count, fn); - - tDetect = function(word, keyOnly) { - var splitted = word.split(':'); - if (splitted.length > 1 && splitted[0] == 't') { - if (keyOnly) { - return splitted[1]; - } - return Em.I18n.t(splitted[1]); - } else { - return splitted[0]; - } - } - singular = tDetect(singular); - plural = tDetect(plural); - if (singular && plural) { - if (count > 1) { - return plural; - } else { - return singular; - } - } -}); - /** * Replace {i} with argument. where i is number of argument to replace with * @return {String} @@ -405,3 +370,60 @@ App.popover = function(self, options) { $(this).trigger('mouseleave'); }); } + +/* + * Helper function for bound property helper registration + * @params name {String} - name of helper + * @params view {Em.View} - view + */ +App.registerBoundHelper = function(name, view) { + Em.Handlebars.registerHelper(name, function(property, options) { + options.hash.contentBinding = property; + return Em.Handlebars.helpers.view.call(this, view, options); + }); +} + +/* + * Return singular or plural word based on Em.I18n property key. + * + * Example: {{pluralize hostsCount singular="t:host" plural="t:hosts"}} + */ +App.registerBoundHelper('pluralize', Em.View.extend({ + tagName: 'span', + template: Em.Handlebars.compile('{{view.wordOut}}'), + + wordOut: function() { + var count, singular, plural; + count = this.get('content'); + singular = this.get('singular'); + plural = this.get('plural'); + return this.getWord(count, singular, plural); + }.property('content'), + + getWord: function(count, singular, plural) { + singular = this.tDetect(singular); + plural = this.tDetect(plural); + if (singular && plural) { + if (count > 1) { + return plural; + } else { + return singular; + } + } + }, + + /* + * Detect for Em.I18n.t reference call + * @params word {String} + * return {String} + */ + tDetect: function(word) { + var splitted = word.split(':'); + if (splitted.length > 1 && splitted[0] == 't') { + return Em.I18n.t(splitted[1]); + } else { + return splitted[0]; + } + } + }) +) http://git-wip-us.apache.org/repos/asf/ambari/blob/96458451/ambari-web/app/views/main/host/summary.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/main/host/summary.js b/ambari-web/app/views/main/host/summary.js index d281197..96fc740 100644 --- a/ambari-web/app/views/main/host/summary.js +++ b/ambari-web/app/views/main/host/summary.js @@ -58,7 +58,6 @@ App.MainHostSummaryView = Em.View.extend({ needToRestartMessage: function() { var componentsCount, word; - this.set('needToRestartComponentsCount', 1); componentsCount = this.get('needToRestartComponentsCount'); if (componentsCount > 1) { word = Em.I18n.t('common.components').toLowerCase();
