AMBARI-13950. Apply created Em.computed macros to ambari-web models/mixins (onechiporenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/779b4f9d Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/779b4f9d Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/779b4f9d Branch: refs/heads/trunk Commit: 779b4f9d51fe3a0e523e5577477209e05f84b52d Parents: 177a91f Author: Oleg Nechiporenko <onechipore...@apache.org> Authored: Wed Nov 18 18:38:44 2015 +0200 Committer: Oleg Nechiporenko <onechipore...@apache.org> Committed: Wed Nov 18 18:38:44 2015 +0200 ---------------------------------------------------------------------- .../mixins/common/table_server_view_mixin.js | 16 ++----- .../app/mixins/common/widgets/widget_mixin.js | 4 +- .../details/host_components/decommissionable.js | 4 +- .../main/service/configs/config_overridable.js | 8 +--- .../mixins/wizard/assign_master_components.js | 4 +- .../wizard/wizardProgressPageController.js | 4 +- .../app/mixins/wizard/wizardProgressPageView.js | 8 +--- ambari-web/app/models/alerts/alert_config.js | 4 +- .../app/models/alerts/alert_definition.js | 35 ++++++-------- ambari-web/app/models/alerts/alert_group.js | 5 +- ambari-web/app/models/alerts/alert_instance.js | 4 +- ambari-web/app/models/authentication.js | 13 ++---- ambari-web/app/models/cluster.js | 4 +- .../app/models/configs/config_property.js | 20 ++------ .../configs/objects/service_config_category.js | 4 +- .../configs/objects/service_config_property.js | 4 +- .../models/configs/service_config_version.js | 4 +- .../app/models/configs/stack_config_property.js | 4 +- ambari-web/app/models/configs/theme/section.js | 10 ++-- .../app/models/configs/theme/sub_section.js | 22 +++------ ambari-web/app/models/configs/theme/tab.js | 4 +- ambari-web/app/models/form.js | 12 ++--- ambari-web/app/models/host.js | 12 ++--- ambari-web/app/models/host_component.js | 4 +- ambari-web/app/models/host_stack_version.js | 15 ++---- ambari-web/app/models/repository.js | 13 ++---- ambari-web/app/models/service.js | 13 ++---- ambari-web/app/models/service/yarn.js | 4 +- ambari-web/app/models/stack_service.js | 43 ++++------------- .../app/models/stack_service_component.js | 49 +++++--------------- .../models/stack_version/repository_version.js | 12 ++--- ambari-web/app/models/stack_version/version.js | 16 ++----- ambari-web/app/models/upgrade_entity.js | 8 +--- ambari-web/app/models/user.js | 8 +--- .../test/models/alerts/alert_definition_test.js | 34 ++++++++++++++ 35 files changed, 142 insertions(+), 286 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/mixins/common/table_server_view_mixin.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mixins/common/table_server_view_mixin.js b/ambari-web/app/mixins/common/table_server_view_mixin.js index b1dabb2..674042f 100644 --- a/ambari-web/app/mixins/common/table_server_view_mixin.js +++ b/ambari-web/app/mixins/common/table_server_view_mixin.js @@ -32,29 +32,21 @@ App.TableServerViewMixin = Em.Mixin.create({ /** * count of filtered items */ - filteredCount: function () { - return this.get('controller.filteredCount'); - }.property('controller.filteredCount'), + filteredCount: Em.computed.alias('controller.filteredCount'), /** * total count of items */ - totalCount: function () { - return this.get('controller.totalCount'); - }.property('controller.totalCount'), + totalCount: Em.computed.alias('controller.totalCount'), /** * data requested from server */ - content: function () { - return this.get('controller.content'); - }.property('controller.content'), + content: Em.computed.alias('controller.content'), /** * content already filtered on server-side */ - filteredContent: function () { - return this.get('content'); - }.property('content'), + filteredContent: Em.computed.alias('content'), /** * sort and slice recieved content by pagination parameters */ http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/mixins/common/widgets/widget_mixin.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mixins/common/widgets/widget_mixin.js b/ambari-web/app/mixins/common/widgets/widget_mixin.js index c2c7f47..8c920f7 100644 --- a/ambari-web/app/mixins/common/widgets/widget_mixin.js +++ b/ambari-web/app/mixins/common/widgets/widget_mixin.js @@ -81,9 +81,7 @@ App.WidgetMixin = Ember.Mixin.create({ * color of content calculated by thresholds * @type {string} */ - contentColor: function () { - return this.get('value') ? 'green' : 'grey'; - }.property('value'), + contentColor: Em.computed.ifThenElse('value', 'green', 'grey'), beforeRender: function () { this.get('metrics').clear(); http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/mixins/main/host/details/host_components/decommissionable.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mixins/main/host/details/host_components/decommissionable.js b/ambari-web/app/mixins/main/host/details/host_components/decommissionable.js index b99cea7..9febc51 100644 --- a/ambari-web/app/mixins/main/host/details/host_components/decommissionable.js +++ b/ambari-web/app/mixins/main/host/details/host_components/decommissionable.js @@ -309,9 +309,7 @@ App.Decommissionable = Em.Mixin.create({ templateName: require('templates/main/host/decommission'), - text: function () { - return this.get('parentView.isComponentDecommissionAvailable') ? Em.I18n.t('common.decommission') : Em.I18n.t('common.recommission'); - }.property('parentView.isComponentDecommissionAvailable'), + text: Em.computed.ifThenElse('parentView.isComponentDecommissionAvailable', Em.I18n.t('common.decommission'), Em.I18n.t('common.recommission')), didInsertElement: function () { this._super(); http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/mixins/main/service/configs/config_overridable.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mixins/main/service/configs/config_overridable.js b/ambari-web/app/mixins/main/service/configs/config_overridable.js index 4de6d0c..fdfa356 100644 --- a/ambari-web/app/mixins/main/service/configs/config_overridable.js +++ b/ambari-web/app/mixins/main/service/configs/config_overridable.js @@ -112,12 +112,8 @@ App.ConfigOverridable = Em.Mixin.create({ warningMessage: ' ', isWarning: false, optionSelectConfigGroup: true, - optionCreateConfigGroup: function () { - return !this.get('optionSelectConfigGroup'); - }.property('optionSelectConfigGroup'), - hasExistedGroups: function () { - return !!this.get('availableConfigGroups').length; - }.property('availableConfigGroups'), + optionCreateConfigGroup: Em.computed.not('optionSelectConfigGroup'), + hasExistedGroups: Em.computed.bool('availableConfigGroups.length'), availableConfigGroups: availableConfigGroups, selectedConfigGroup: selectedConfigGroup, newConfigGroupName: '', http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/mixins/wizard/assign_master_components.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mixins/wizard/assign_master_components.js b/ambari-web/app/mixins/wizard/assign_master_components.js index 4d091c3..c22a2db 100644 --- a/ambari-web/app/mixins/wizard/assign_master_components.js +++ b/ambari-web/app/mixins/wizard/assign_master_components.js @@ -131,9 +131,7 @@ App.AssignMasterComponents = Em.Mixin.create({ * Check if <code>installerWizard</code> used * @type {bool} */ - isInstallerWizard: function () { - return this.get('content.controllerName') === 'installerController'; - }.property('content.controllerName'), + isInstallerWizard: Em.computed.equal('content.controllerName', 'installerController'), /** * Master components which could be assigned to multiple hosts http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/mixins/wizard/wizardProgressPageController.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mixins/wizard/wizardProgressPageController.js b/ambari-web/app/mixins/wizard/wizardProgressPageController.js index f2af630..d9c5747 100644 --- a/ambari-web/app/mixins/wizard/wizardProgressPageController.js +++ b/ambari-web/app/mixins/wizard/wizardProgressPageController.js @@ -43,9 +43,7 @@ App.wizardProgressPageControllerMixin = Em.Mixin.create(App.InstallComponent, { completedStatuses: ['COMPLETED', 'FAILED', 'TIMEDOUT', 'ABORTED'], currentPageRequestId: null, isSingleRequestPage: false, - isCommandLevelRetry: function () { - return !this.get('isSingleRequestPage'); - }.property('isSingleRequestPage'), + isCommandLevelRetry: Em.computed.not('isSingleRequestPage'), showRetry: false, /** * Show whether tasks data was loaded http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/mixins/wizard/wizardProgressPageView.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mixins/wizard/wizardProgressPageView.js b/ambari-web/app/mixins/wizard/wizardProgressPageView.js index bc278b9..e3a321c 100644 --- a/ambari-web/app/mixins/wizard/wizardProgressPageView.js +++ b/ambari-web/app/mixins/wizard/wizardProgressPageView.js @@ -43,9 +43,7 @@ App.wizardProgressPageViewMixin = Em.Mixin.create({ noticeCompleted: Em.I18n.t('wizard.progressPage.notice.completed'), - noticeFailed: function() { - return (this.get('controller.isSingleRequestPage') ? Em.I18n.t('wizard.singleRequest.progressPage.notice.failed') : Em.I18n.t('wizard.progressPage.notice.failed')) - }.property('controller.isSingleRequestPage'), + noticeFailed: Em.computed.ifThenElse('controller.isSingleRequestPage', Em.I18n.t('wizard.singleRequest.progressPage.notice.failed'), Em.I18n.t('wizard.progressPage.notice.failed')), /** * @noticeInProgress: Following computed property needs to be overridden to show the label text while the commands @@ -119,9 +117,7 @@ App.wizardProgressPageViewMixin = Em.Mixin.create({ } }.observes('content.status', 'content.hosts.length','content.requestIds'), - showProgressBar: function () { - return this.get('content.status') === "IN_PROGRESS"; - }.property('content.status') + showProgressBar: Em.computed.equal('content.status', 'IN_PROGRESS') }) }); http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/alerts/alert_config.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/alerts/alert_config.js b/ambari-web/app/models/alerts/alert_config.js index 07a9453..3e3325f 100644 --- a/ambari-web/app/models/alerts/alert_config.js +++ b/ambari-web/app/models/alerts/alert_config.js @@ -115,9 +115,7 @@ App.AlertConfigProperty = Ember.Object.extend({ * should be defined in child class * @type {*} */ - apiFormattedValue: function () { - return this.get('value'); - }.property('value'), + apiFormattedValue: Em.computed.alias('value'), /** * define if property was changed by user http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/alerts/alert_definition.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/alerts/alert_definition.js b/ambari-web/app/models/alerts/alert_definition.js index e33324b..ec5797e 100644 --- a/ambari-web/app/models/alerts/alert_definition.js +++ b/ambari-web/app/models/alerts/alert_definition.js @@ -19,6 +19,13 @@ var App = require('app'); var dateUtils = require('utils/date/date'); +function computedOnSummaryState(state) { + return Em.computed('summary.' + state, 'summary.' + state + '.count', 'summary.' + state + '.maintenanceCount', function () { + var summary = Em.get(this, 'summary'); + return !!summary[state] && !!(summary[state].count || summary[state].maintenanceCount); + }); +} + App.AlertDefinition = DS.Model.extend({ name: DS.attr('string'), @@ -207,44 +214,28 @@ App.AlertDefinition = DS.Model.extend({ }.property('summary'), /** - * if this definition is in state: CRIT + * if this definition is in state: CRITICAL * @type {boolean} */ - isCritical: function () { - var summary = this.get('summary'); - var state = 'CRITICAL'; - return !!summary[state] && !!(summary[state].count || summary[state].maintenanceCount); - }.property('summary'), + isCritical: computedOnSummaryState('CRITICAL'), /** * if this definition is in state: WARNING * @type {boolean} */ - isWarning: function () { - var summary = this.get('summary'); - var state = 'WARNING'; - return !!summary[state] && !!(summary[state].count || summary[state].maintenanceCount); - }.property('summary'), + isWarning: computedOnSummaryState('WARNING'), /** * if this definition is in state: OK * @type {boolean} */ - isOK: function () { - var summary = this.get('summary'); - var state = 'OK'; - return !!summary[state] && !!(summary[state].count || summary[state].maintenanceCount); - }.property('summary'), + isOK: computedOnSummaryState('OK'), /** - * if this definition is in state: OK + * if this definition is in state: UNKNOWN * @type {boolean} */ - isUnknown: function () { - var summary = this.get('summary'); - var state = 'UNKNOWN'; - return !!summary[state] && !!(summary[state].count || summary[state].maintenanceCount); - }.property('summary'), + isUnknown: computedOnSummaryState('UNKNOWN'), /** * For alerts we will have processes which are not typical http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/alerts/alert_group.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/alerts/alert_group.js b/ambari-web/app/models/alerts/alert_group.js index e914ed5..d8d297b 100644 --- a/ambari-web/app/models/alerts/alert_group.js +++ b/ambari-web/app/models/alerts/alert_group.js @@ -70,9 +70,8 @@ App.AlertGroup = DS.Model.extend({ return this.get('displayName') + ' (' + this.get('definitions.length') + ')'; }.property('displayName', 'definitions.length'), - isAddDefinitionsDisabled: function () { - return this.get('default'); - }.property('default') + isAddDefinitionsDisabled: Em.computed.alias('default') + }); App.AlertGroup.FIXTURES = []; http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/alerts/alert_instance.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/alerts/alert_instance.js b/ambari-web/app/models/alerts/alert_instance.js index 60a2723..bec2148 100644 --- a/ambari-web/app/models/alerts/alert_instance.js +++ b/ambari-web/app/models/alerts/alert_instance.js @@ -149,9 +149,7 @@ App.AlertInstance = DS.Model.extend({ * Used in some logic in templates to distinguish definitions with Ambari serviceName * @returns {boolean} */ - isAmbariServiceName: function () { - return this.get('serviceName') === 'AMBARI'; - }.property('serviceName'), + isAmbariServiceName: Em.computed.equal('serviceName', 'AMBARI'), shortState: { 'CRITICAL': 'CRIT', http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/authentication.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/authentication.js b/ambari-web/app/models/authentication.js index 47ea775..436c184 100644 --- a/ambari-web/app/models/authentication.js +++ b/ambari-web/app/models/authentication.js @@ -97,11 +97,8 @@ App.AuthenticationForm = App.Form.extend({ this.set('testResult', parseInt(Math.random() * 2)); return true; }, - testConfigurationMessage:function () { - return this.get('testResult') ? Em.I18n.t('admin.authentication.form.test.success') : Em.I18n.t('admin.authentication.form.test.fail'); - }.property('testResult'), - testConfigurationClass:function () { - return this.get('testResult') ? "text-success" : "text-error"; - }.property('testConfigurationMessage') -}) -; \ No newline at end of file + testConfigurationMessage: Em.computed.ifThenElse('testResult', Em.I18n.t('admin.authentication.form.test.success'), Em.I18n.t('admin.authentication.form.test.fail')), + + testConfigurationClass: Em.computed.ifThenElse('testResult', 'text-success', 'text-error') + +}); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/cluster.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/cluster.js b/ambari-web/app/models/cluster.js index 18ad1ce..a571a28 100644 --- a/ambari-web/app/models/cluster.js +++ b/ambari-web/app/models/cluster.js @@ -33,9 +33,7 @@ App.Cluster = DS.Model.extend({ */ desiredConfigs: null, - isKerberosEnabled: function() { - return this.get('securityType') === 'KERBEROS'; - }.property('securityType'), + isKerberosEnabled: Em.computed.equal('securityType', 'KERBEROS'), isCredentialStorePersistent: function() { return this.get('credentialStoreProperties')[credentialUtils.STORE_TYPES.PERSISTENT_PATH] === "true"; http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/configs/config_property.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/configs/config_property.js b/ambari-web/app/models/configs/config_property.js index 31ba3f6..bede126 100644 --- a/ambari-web/app/models/configs/config_property.js +++ b/ambari-web/app/models/configs/config_property.js @@ -179,26 +179,20 @@ App.ConfigProperty = DS.Model.extend({ * defines if property has errors * @type {boolean} */ - hasErrors: function() { - return this.get('errorMessage') !== ''; - }.property('errorMessage'), + hasErrors: Em.computed.notEqual('errorMessage', ''), /** * defines if property has warnings * @type {boolean} */ - hasWarnings: function() { - return this.get('warnMessage') !== ''; - }.property('warnMessage'), + hasWarnings: Em.computed.notEqual('warnMessage', ''), /** * defines if property belongs to default config group * if true it's config group is default * @type {boolean} */ - isOriginalSCP: function() { - return this.get('configVersion.isDefault'); - }.property('configVersion.isDefault'), + isOriginalSCP: Em.computed.alias('configVersion.isDefault'), /** * defines if property is added by user @@ -213,17 +207,13 @@ App.ConfigProperty = DS.Model.extend({ * with which we make comparison * @property {boolean} */ - isForCompare: function() { - return this.get('configVersion.isForCompare'); - }.property('configVersion.isForCompare'), + isForCompare: Em.computed.alias('configVersion.isForCompare'), /** * if this property can be final * @property {boolean} */ - supportsFinal: function () { - return this.get('stackConfigProperty.supportsFinal') || this.get('isUserProperty'); - }.property('stackConfigProperty.supportsFinal', 'isUserProperty'), + supportsFinal: Em.computed.or('stackConfigProperty.supportsFinal', 'isUserProperty'), /** * Indicates when value is not the default value. * Returns false when there is no default value. http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/configs/objects/service_config_category.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/configs/objects/service_config_category.js b/ambari-web/app/models/configs/objects/service_config_category.js index d54241e..bac0be8 100644 --- a/ambari-web/app/models/configs/objects/service_config_category.js +++ b/ambari-web/app/models/configs/objects/service_config_category.js @@ -78,9 +78,7 @@ App.ServiceConfigCategory = Ember.Object.extend({ return length; }.property('slaveConfigs.groups.@each.errorCount'), - errorCount: function () { - return this.get('slaveErrorCount') + this.get('nonSlaveErrorCount'); - }.property('slaveErrorCount', 'nonSlaveErrorCount'), + errorCount: Em.computed.sumProperties('slaveErrorCount', 'nonSlaveErrorCount'), isAdvanced : function(){ var name = this.get('name'); http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/configs/objects/service_config_property.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/configs/objects/service_config_property.js b/ambari-web/app/models/configs/objects/service_config_property.js index c078a9e..9bfb9cf 100644 --- a/ambari-web/app/models/configs/objects/service_config_property.js +++ b/ambari-web/app/models/configs/objects/service_config_property.js @@ -280,9 +280,7 @@ App.ServiceConfigProperty = Em.Object.extend({ return ["componentHost", "componentHosts", "radio button"].contains(this.get('displayType')); }.property('displayType'), - isValid: function () { - return this.get('errorMessage') === ''; - }.property('errorMessage'), + isValid: Em.computed.equal('errorMessage', ''), viewClass: function () { switch (this.get('displayType')) { http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/configs/service_config_version.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/configs/service_config_version.js b/ambari-web/app/models/configs/service_config_version.js index 6020fe6..02aeb92 100644 --- a/ambari-web/app/models/configs/service_config_version.js +++ b/ambari-web/app/models/configs/service_config_version.js @@ -42,9 +42,7 @@ App.ServiceConfigVersion = DS.Model.extend({ canBeMadeCurrent: function () { return this.get('isCompatible') && !this.get('isCurrent'); }.property('isCurrent', 'isCompatible'), - isDefault: function() { - return this.get('groupName') === 'default'; - }.property('groupName'), + isDefault: Em.computed.equal('groupName', 'default'), currentTooltip: function () { return Em.I18n.t('dashboard.configHistory.table.current.tooltip').format(this.get('displayName'), this.get('configGroupName')); }.property('displayName', 'configGroupName'), http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/configs/stack_config_property.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/configs/stack_config_property.js b/ambari-web/app/models/configs/stack_config_property.js index 8451fcf..1083b3f 100644 --- a/ambari-web/app/models/configs/stack_config_property.js +++ b/ambari-web/app/models/configs/stack_config_property.js @@ -47,9 +47,7 @@ App.StackConfigProperty = DS.Model.extend({ * same as fileName * @property {string} */ - filename: function() { - return this.get('fileName'); - }.property('fileName'), + filename: Em.computed.alias('fileName'), /** * description of config property meaning http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/configs/theme/section.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/configs/theme/section.js b/ambari-web/app/models/configs/theme/section.js index c04665e..4df0e2e 100644 --- a/ambari-web/app/models/configs/theme/section.js +++ b/ambari-web/app/models/configs/theme/section.js @@ -82,11 +82,9 @@ App.Section = DS.Model.extend({ }.property('subSections.@each.errorsCount', 'subSections.@each.isSectionVisible'), /** - * @type {boolean} + * @type {boolean}/ */ - isFirstRow: function () { - return this.get('rowIndex') == 0; - }.property('rowIndex'), + isFirstRow: Em.computed.equal('rowIndex', 0), /** * @type {boolean} @@ -105,9 +103,7 @@ App.Section = DS.Model.extend({ /** * @type {boolean} */ - isFirstColumn: function () { - return this.get('columnIndex') == 0; - }.property('columnIndex'), + isFirstColumn: Em.computed.equal('columnIndex', 0), /** * @type {boolean} http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/configs/theme/sub_section.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/configs/theme/sub_section.js b/ambari-web/app/models/configs/theme/sub_section.js index eea3802..f813b4e 100644 --- a/ambari-web/app/models/configs/theme/sub_section.js +++ b/ambari-web/app/models/configs/theme/sub_section.js @@ -88,13 +88,11 @@ App.SubSection = DS.Model.extend({ /** * @type {boolean} */ - hasTabs: function() { - return this.get('subSectionTabs.length'); - }.property('subSectionTabs.length'), + hasTabs: Em.computed.bool('subSectionTabs.length'), - showTabs: function() { - return this.get('hasTabs') && this.get('subSectionTabs').someProperty('isVisible'); - }.property('hasTabs','subSectionTabs.@each.isVisible'), + someSubSectionTabIsVisible: Em.computed.someBy('subSectionTabs', 'isVisible', true), + + showTabs: Em.computed.and('hasTabs', 'someSubSectionTabIsVisible'), /** * Number of the errors in all configs @@ -118,9 +116,7 @@ App.SubSection = DS.Model.extend({ /** * @type {boolean} */ - addRightVerticalSplitter: function() { - return !this.get('isLastColumn'); - }.property('isLastColumn'), + addRightVerticalSplitter: Em.computed.not('isLastColumn'), /** * @type {boolean} @@ -132,9 +128,7 @@ App.SubSection = DS.Model.extend({ /** * @type {boolean} */ - isFirstRow: function () { - return this.get('rowIndex') == 0; - }.property('rowIndex'), + isFirstRow: Em.computed.equal('rowIndex', 0), /** * @type {boolean} @@ -153,9 +147,7 @@ App.SubSection = DS.Model.extend({ /** * @type {boolean} */ - isFirstColumn: function () { - return this.get('columnIndex') == 0; - }.property('columnIndex'), + isFirstColumn: Em.computed.equal('columnIndex', 0), /** * @type {boolean} http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/configs/theme/tab.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/configs/theme/tab.js b/ambari-web/app/models/configs/theme/tab.js index cb7aeae..54ae579 100644 --- a/ambari-web/app/models/configs/theme/tab.js +++ b/ambari-web/app/models/configs/theme/tab.js @@ -59,9 +59,7 @@ App.Tab = DS.Model.extend({ * for now used when tab is disabled * @type {String} */ - tooltipMsg: function() { - return this.get('isHiddenByFilter') ? Em.I18n.t('services.service.config.nothing.to.display') : ''; - }.property('isHiddenByFilter'), + tooltipMsg: Em.computed.ifThenElse('isHiddenByFilter', Em.I18n.t('services.service.config.nothing.to.display') , ''), /** * Determines if tab is filtered out (all it's sections should be hidden) http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/form.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/form.js b/ambari-web/app/models/form.js index c45c6cb..09a620a 100644 --- a/ambari-web/app/models/form.js +++ b/ambari-web/app/models/form.js @@ -92,9 +92,7 @@ App.Form = Em.View.extend({ }, this); }, - visibleFields:function () { - return this.get('fields').filterProperty('isHiddenField', false); - }.property('fields'), + visibleFields:Em.computed.filterBy('fields', 'isHiddenField', false), resultText:function () { var text = ""; @@ -126,9 +124,7 @@ App.FormField = Em.Object.extend({ // try to realize this as view unit:'', value:'', - isValid:function () { - return this.get('errorMessage') === ''; - }.property('errorMessage'), + isValid:Em.computed.equal('errorMessage', ''), viewClass:function () { var options = {}; @@ -178,7 +174,5 @@ App.FormField = Em.Object.extend({ // try to realize this as view } }, - isHiddenField:function () { - return this.get('displayType') == 'hidden'; - }.property('type') + isHiddenField: Em.computed.equal('displayType', 'hidden') }); http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/host.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/host.js b/ambari-web/app/models/host.js index c268d44..1c6da8d 100644 --- a/ambari-web/app/models/host.js +++ b/ambari-web/app/models/host.js @@ -90,25 +90,19 @@ App.Host = DS.Model.extend({ /** * @type {number} */ - componentsInPassiveStateCount: function() { - return this.get('componentsInPassiveState').length; - }.property('componentsInPassiveState.length'), + componentsInPassiveStateCount: Em.computed.alias('componentsInPassiveState.length'), /** * Get count of host components with stale configs * @returns {Number} */ - componentsWithStaleConfigsCount: function() { - return this.get('componentsWithStaleConfigs.length'); - }.property('componentsWithStaleConfigs.length'), + componentsWithStaleConfigsCount: Em.computed.alias('componentsWithStaleConfigs.length'), /** * Count of mounted on host disks * @returns {Number} */ - disksMounted: function() { - return this.get('diskInfo.length'); - }.property('diskInfo.length'), + disksMounted: Em.computed.alias('diskInfo.length'), coresFormatted: function() { return this.get('cpu') + ' (' + this.get('cpuPhysical') + ')'; http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/host_component.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/host_component.js b/ambari-web/app/models/host_component.js index 1ef23db..203eff2 100644 --- a/ambari-web/app/models/host_component.js +++ b/ambari-web/app/models/host_component.js @@ -107,9 +107,7 @@ App.HostComponent = DS.Model.extend({ * User friendly host component status * @returns {String} */ - isActive: function () { - return (this.get('passiveState') == 'OFF'); - }.property('passiveState'), + isActive: Em.computed.equal('passiveState', 'OFF'), passiveTooltip: function () { if (!this.get('isActive')) { http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/host_stack_version.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/host_stack_version.js b/ambari-web/app/models/host_stack_version.js index 2d49a76..8962552 100644 --- a/ambari-web/app/models/host_stack_version.js +++ b/ambari-web/app/models/host_stack_version.js @@ -36,23 +36,17 @@ App.HostStackVersion = DS.Model.extend({ /** * @type {boolean} */ - isCurrent: function () { - return this.get('status') === 'CURRENT' - }.property('status'), + isCurrent: Em.computed.equal('status', 'CURRENT'), /** * @type {boolean} */ - isInstalling: function () { - return this.get('status') === 'INSTALLING'; - }.property('status'), + isInstalling: Em.computed.equal('status', 'INSTALLING'), /** * @type {boolean} */ - isOutOfSync: function () { - return this.get('status') === 'OUT_OF_SYNC'; - }.property('status'), + isOutOfSync: Em.computed.equal('status', 'OUT_OF_SYNC'), /** * @type {string} */ @@ -66,7 +60,8 @@ App.HostStackVersion = DS.Model.extend({ installEnabled: function () { return ['OUT_OF_SYNC', 'INSTALL_FAILED'].contains(this.get('status')); }.property('status'), - installDisabled: Ember.computed.not('installEnabled') + + installDisabled: Em.computed.not('installEnabled') }); App.HostStackVersion.FIXTURES = []; http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/repository.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/repository.js b/ambari-web/app/models/repository.js index 66c22bf..8ad20ce 100644 --- a/ambari-web/app/models/repository.js +++ b/ambari-web/app/models/repository.js @@ -36,9 +36,7 @@ App.Repository = DS.Model.extend({ errorContent: DS.attr('string', {defaultValue: ''}), errorTitle: DS.attr('string', {defaultValue: ''}), - isSelected: function() { - return this.get('operatingSystem.isSelected'); - }.property('id','operatingSystem.isSelected'), + isSelected: Em.computed.alias('operatingSystem.isSelected'), invalidFormatError: function() { return !validator.isValidBaseUrl(this.get('baseUrl')); @@ -48,13 +46,10 @@ App.Repository = DS.Model.extend({ return this.get('validation') == App.Repository.validation['INVALID']; }.property('validation'), - undo: function() { - return this.get('baseUrl') != this.get('latestBaseUrl'); - }.property('baseUrl','latestBaseUrl'), + undo: Em.computed.notEqualProperties('baseUrl', 'latestBaseUrl'), + + clearAll: Em.computed.alias('baseUrl') - clearAll: function() { - return this.get('baseUrl') - }.property('baseUrl') }); App.Repository.validation = { http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/service.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/service.js b/ambari-web/app/models/service.js index 250f810..ddec4f9 100644 --- a/ambari-web/app/models/service.js +++ b/ambari-web/app/models/service.js @@ -45,9 +45,7 @@ App.Service = DS.Model.extend({ /** * @type {bool} */ - isInPassive: function() { - return this.get('passiveState') === "ON"; - }.property('passiveState'), + isInPassive: Em.computed.equal('passiveState', 'ON'), serviceComponents: function() { var clientComponents = this.get('clientComponents').mapProperty('componentName'); @@ -77,12 +75,9 @@ App.Service = DS.Model.extend({ return 'yellow'; } }.property('workStatus'), - isStopped: function () { - return this.get('workStatus') === 'INSTALLED'; - }.property('workStatus'), - isStarted: function () { - return this.get('workStatus') === 'STARTED'; - }.property('workStatus'), + isStopped: Em.computed.equal('workStatus', 'INSTALLED'), + + isStarted: Em.computed.equal('workStatus', 'STARTED'), /** * Service Tagging by their type. http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/service/yarn.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/service/yarn.js b/ambari-web/app/models/service/yarn.js index c8967e6..ef44f19 100644 --- a/ambari-web/app/models/service/yarn.js +++ b/ambari-web/app/models/service/yarn.js @@ -67,9 +67,7 @@ App.YARNService = App.Service.extend({ allQueueNames: [], childQueueNames: [], - maxMemory: function() { - return this.get('allocatedMemory') + this.get('availableMemory'); - }.property('allocatedMemory','availableMemory'), + maxMemory: Em.computed.sumProperties('allocatedMemory', 'availableMemory'), /** * Provides a flat array of queue names. http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/stack_service.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/stack_service.js b/ambari-web/app/models/stack_service.js index 1926b9c..bdcf303 100644 --- a/ambari-web/app/models/stack_service.js +++ b/ambari-web/app/models/stack_service.js @@ -62,9 +62,7 @@ App.StackService = DS.Model.extend({ // Primary DFS. used if there is more than one DFS in a stack. // Only one service in the stack should be tagged as primary DFS. - isPrimaryDFS: function () { - return this.get('serviceName') === 'HDFS'; - }.property('serviceName'), + isPrimaryDFS: Em.computed.equal('serviceName', 'HDFS'), configTypesRendered: function () { var configTypes = this.get('configTypes'); @@ -105,22 +103,13 @@ App.StackService = DS.Model.extend({ }.property('serviceName'), // Is the service required for monitoring of other hadoop ecosystem services - isMonitoringService: function () { - var services = ['GANGLIA']; - return services.contains(this.get('serviceName')); - }.property('serviceName'), + isMonitoringService: Em.computed.existsIn('serviceName', ['GANGLIA']), // Is the service required for reporting host metrics - isHostMetricsService: function () { - var services = ['GANGLIA', 'AMBARI_METRICS']; - return services.contains(this.get('serviceName')); - }.property('serviceName'), + isHostMetricsService: Em.computed.existsIn('serviceName', ['GANGLIA', 'AMBARI_METRICS']), // Is the service required for reporting hadoop service metrics - isServiceMetricsService: function () { - var services = ['GANGLIA']; - return services.contains(this.get('serviceName')); - }.property('serviceName'), + isServiceMetricsService: Em.computed.existsIn('serviceName', ['GANGLIA']), coSelectedServices: function () { var coSelectedServices = App.StackService.coSelected[this.get('serviceName')]; @@ -131,30 +120,18 @@ App.StackService = DS.Model.extend({ } }.property('serviceName'), - hasClient: function () { - var serviceComponents = this.get('serviceComponents'); - return serviceComponents.someProperty('isClient'); - }.property('serviceName'), + hasClient: Em.computed.someBy('serviceComponents', 'isClient', true), - hasMaster: function () { - var serviceComponents = this.get('serviceComponents'); - return serviceComponents.someProperty('isMaster'); - }.property('serviceName'), + hasMaster: Em.computed.someBy('serviceComponents', 'isMaster', true), - hasSlave: function () { - var serviceComponents = this.get('serviceComponents'); - return serviceComponents.someProperty('isSlave'); - }.property('serviceName'), + hasSlave: Em.computed.someBy('serviceComponents', 'isSlave', true), hasNonMastersWithCustomAssignment: function () { var serviceComponents = this.get('serviceComponents'); return serviceComponents.rejectProperty('isMaster').rejectProperty('cardinality', 'ALL').length > 0; }.property('serviceName'), - isClientOnlyService: function () { - var serviceComponents = this.get('serviceComponents'); - return serviceComponents.everyProperty('isClient'); - }.property('serviceName'), + isClientOnlyService: Em.computed.everyBy('serviceComponents', 'isClient', true), isNoConfigTypes: function () { var configTypes = this.get('configTypes'); @@ -165,9 +142,7 @@ App.StackService = DS.Model.extend({ return App.StackService.reviewPageHandlers[this.get('serviceName')]; }.property('serviceName'), - hasHeatmapSection: function() { - return ['HDFS', 'YARN', 'HBASE'].contains(this.get('serviceName')); - }.property('serviceName'), + hasHeatmapSection: Em.computed.existsIn('serviceName', ['HDFS', 'YARN', 'HBASE']), /** * configCategories are fetched from App.StackService.configCategories. http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/stack_service_component.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/stack_service_component.js b/ambari-web/app/models/stack_service_component.js index b51ed1f..1321d11 100644 --- a/ambari-web/app/models/stack_service_component.js +++ b/ambari-web/app/models/stack_service_component.js @@ -56,29 +56,19 @@ App.StackServiceComponent = DS.Model.extend({ }.property('cardinality'), /** @property {Boolean} isRequired - component required to install **/ - isRequired: function() { - return this.get('minToInstall') > 0; - }.property('cardinality'), + isRequired: Em.computed.gt('minToInstall', 0), /** @property {Boolean} isMultipleAllowed - component can be assigned for more than one host **/ - isMultipleAllowed: function() { - return this.get('maxToInstall') > 1; - }.property('cardinality'), + isMultipleAllowed: Em.computed.gt('maxToInstall', 1), /** @property {Boolean} isSlave **/ - isSlave: function() { - return this.get('componentCategory') === 'SLAVE'; - }.property('componentCategory'), + isSlave: Em.computed.equal('componentCategory', 'SLAVE'), /** @property {Boolean} isRestartable - component supports restart action **/ - isRestartable: function() { - return !this.get('isClient'); - }.property('isClient'), + isRestartable: Em.computed.not('isClient'), /** @property {Boolean} isReassignable - component supports reassign action **/ - isReassignable: function() { - return ['NAMENODE', 'SECONDARY_NAMENODE', 'JOBTRACKER', 'RESOURCEMANAGER', 'APP_TIMELINE_SERVER', 'OOZIE_SERVER', 'WEBHCAT_SERVER', 'HIVE_SERVER', 'HIVE_METASTORE', 'MYSQL_SERVER', 'METRICS_COLLECTOR'].contains(this.get('componentName')); - }.property('componentName'), + isReassignable: Em.computed.existsIn('componentName', ['NAMENODE', 'SECONDARY_NAMENODE', 'JOBTRACKER', 'RESOURCEMANAGER', 'APP_TIMELINE_SERVER', 'OOZIE_SERVER', 'WEBHCAT_SERVER', 'HIVE_SERVER', 'HIVE_METASTORE', 'MYSQL_SERVER', 'METRICS_COLLECTOR']), /** @property {Boolean} isRollinRestartAllowed - component supports rolling restart action **/ isRollinRestartAllowed: function() { @@ -86,14 +76,10 @@ App.StackServiceComponent = DS.Model.extend({ }.property('componentName'), /** @property {Boolean} isDecommissionAllowed - component supports decommission action **/ - isDecommissionAllowed: function() { - return ["DATANODE", "TASKTRACKER", "NODEMANAGER", "HBASE_REGIONSERVER"].contains(this.get('componentName')); - }.property('componentName'), + isDecommissionAllowed: Em.computed.existsIn('componentName', ['DATANODE', 'TASKTRACKER', 'NODEMANAGER', 'HBASE_REGIONSERVER']), /** @property {Boolean} isRefreshConfigsAllowed - component supports refresh configs action **/ - isRefreshConfigsAllowed: function() { - return ["FLUME_HANDLER"].contains(this.get('componentName')); - }.property('componentName'), + isRefreshConfigsAllowed: Em.computed.existsIn('componentName', ['FLUME_HANDLER']), /** @property {Boolean} isAddableToHost - component can be added on host details page **/ isAddableToHost: function() { @@ -150,20 +136,13 @@ App.StackServiceComponent = DS.Model.extend({ * New instances of these components are added in appropriate HA wizards * @property {Boolean} isMasterAddableOnlyOnHA */ - isMasterAddableOnlyOnHA: function () { - return ['NAMENODE', 'RESOURCEMANAGER', 'RANGER_ADMIN'].contains(this.get('componentName')); - }.property('componentName'), + isMasterAddableOnlyOnHA: Em.computed.existsIn('componentName', ['NAMENODE', 'RESOURCEMANAGER', 'RANGER_ADMIN']), /** @property {Boolean} isHAComponentOnly - Components that can be installed only if HA enabled **/ - isHAComponentOnly: function() { - var HAComponentNames = ['ZKFC','JOURNALNODE']; - return HAComponentNames.contains(this.get('componentName')); - }.property('componentName'), + isHAComponentOnly: Em.computed.existsIn('componentName', ['ZKFC','JOURNALNODE']), /** @property {Boolean} isRequiredOnAllHosts - Is It require to install the components on all hosts. used in step-6 wizard controller **/ - isRequiredOnAllHosts: function() { - return this.get('minToInstall') == Infinity; - }.property('stackService','isSlave'), + isRequiredOnAllHosts: Em.computed.equal('minToInstall', Infinity), /** @property {Number} defaultNoOfMasterHosts - default number of master hosts on Assign Master page: **/ defaultNoOfMasterHosts: function() { @@ -185,9 +164,7 @@ App.StackServiceComponent = DS.Model.extend({ }.property('componentName'), /** @property {Boolean} isOtherComponentCoHosted - Is any other component co-hosted with this component **/ - isOtherComponentCoHosted: function() { - return !!this.get('coHostedComponents').length; - }.property('coHostedComponents'), + isOtherComponentCoHosted: Em.computed.bool('coHostedComponents.length'), /** @property {Boolean} isCoHostedComponent - Is this component co-hosted with other component **/ isCoHostedComponent: function() { @@ -196,9 +173,7 @@ App.StackServiceComponent = DS.Model.extend({ }.property('componentName'), /** @property {Boolean} isNotAddableOnlyInInstall - is this component addable, except Install and Add Service Wizards **/ - isNotAddableOnlyInInstall: function() { - return ['HIVE_METASTORE', 'HIVE_SERVER', 'RANGER_KMS_SERVER', 'OOZIE_SERVER'].contains(this.get('componentName')); - }.property('componentName') + isNotAddableOnlyInInstall: Em.computed.existsIn('componentName', ['HIVE_METASTORE', 'HIVE_SERVER', 'RANGER_KMS_SERVER', 'OOZIE_SERVER']) }); http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/stack_version/repository_version.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/stack_version/repository_version.js b/ambari-web/app/models/stack_version/repository_version.js index 01806cb..9dc1bc6 100644 --- a/ambari-web/app/models/stack_version/repository_version.js +++ b/ambari-web/app/models/stack_version/repository_version.js @@ -88,23 +88,17 @@ App.RepositoryVersion = DS.Model.extend({ /** * @type {string} */ - noInitHostsTooltip: function () { - return (this.get('noInitHosts')) ? Em.I18n.t('admin.stackVersions.version.emptyHostsTooltip') : Em.I18n.t('admin.stackVersions.version.hostsTooltip'); - }.property('noInitHosts'), + noInitHostsTooltip: Em.computed.ifThenElse('noInitHosts', Em.I18n.t('admin.stackVersions.version.emptyHostsTooltip'), Em.I18n.t('admin.stackVersions.version.hostsTooltip')), /** * @type {string} */ - noCurrentHostsTooltip: function () { - return (this.get('noCurrentHosts')) ? Em.I18n.t('admin.stackVersions.version.emptyHostsTooltip') : Em.I18n.t('admin.stackVersions.version.hostsTooltip'); - }.property('noCurrentHosts'), + noCurrentHostsTooltip: Em.computed.ifThenElse('noCurrentHosts', Em.I18n.t('admin.stackVersions.version.emptyHostsTooltip'), Em.I18n.t('admin.stackVersions.version.hostsTooltip')), /** * @type {string} */ - noInstalledHostsTooltip: function () { - return (this.get('noInstalledHosts')) ? Em.I18n.t('admin.stackVersions.version.emptyHostsTooltip') : Em.I18n.t('admin.stackVersions.version.hostsTooltip'); - }.property('noInstalledHosts'), + noInstalledHostsTooltip: Em.computed.ifThenElse('noInstalledHosts', Em.I18n.t('admin.stackVersions.version.emptyHostsTooltip'), Em.I18n.t('admin.stackVersions.version.hostsTooltip')), /** * @type {boolean} http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/stack_version/version.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/stack_version/version.js b/ambari-web/app/models/stack_version/version.js index 7fd4134..9b1167d 100644 --- a/ambari-web/app/models/stack_version/version.js +++ b/ambari-web/app/models/stack_version/version.js @@ -37,21 +37,13 @@ App.StackVersion = DS.Model.extend({ upgradeFailedHosts: DS.attr('array'), currentHosts: DS.attr('array'), - noInstalledHosts: function() { - return this.get('installedHosts.length') == 0; - }.property('installedHosts.length'), + noInstalledHosts: Em.computed.empty('installedHosts'), - noCurrentHosts: function() { - return this.get('currentHosts.length') == 0; - }.property('currentHosts.length'), + noCurrentHosts: Em.computed.empty('currentHosts'), - noInitHosts: function() { - return this.get('notInstalledHosts.length') == 0; - }.property('notInstalledHosts.length'), + noInitHosts: Em.computed.empty('notInstalledHosts'), - isCurrent: function() { - return this.get('state') === 'CURRENT'; - }.property('state') + isCurrent: Em.computed.equal('state', 'CURRENT') }); App.StackVersion.FIXTURES = []; http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/upgrade_entity.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/upgrade_entity.js b/ambari-web/app/models/upgrade_entity.js index ab9806a..953f1eb 100644 --- a/ambari-web/app/models/upgrade_entity.js +++ b/ambari-web/app/models/upgrade_entity.js @@ -42,9 +42,7 @@ App.upgradeEntity = Em.Object.extend({ /** * @type {boolean} */ - isVisible: function () { - return this.get('status') !== 'PENDING'; - }.property('status'), + isVisible: Em.computed.notEqual('status', 'PENDING'), /** * status of tasks/items/groups which should be grayed out and disabled @@ -55,9 +53,7 @@ App.upgradeEntity = Em.Object.extend({ /** * @type {boolean} */ - isRunning: function () { - return ['IN_PROGRESS'].contains(this.get('status')); - }.property('status'), + isRunning: Em.computed.existsIn('status', ['IN_PROGRESS']), /** * @type {number} http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/app/models/user.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/user.js b/ambari-web/app/models/user.js index 1b8359a..776de50 100644 --- a/ambari-web/app/models/user.js +++ b/ambari-web/app/models/user.js @@ -21,9 +21,7 @@ var validator = require('utils/validator'); App.User = DS.Model.extend({ userName:DS.attr('string'), - id:function(){ - return this.get('userName'); - }.property('userName'), + id: Em.computed.alias('userName'), userType: DS.attr('string'), auditItems:DS.hasMany('App.ServiceAudit'), admin: DS.attr('boolean'), @@ -42,9 +40,7 @@ App.User = DS.Model.extend({ /** * @type {Boolean} */ - isLdap: function() { - return this.get('userType') === 'LDAP'; - }.property('userType') + isLdap: Em.computed.equal('userType', 'LDAP') }); App.EditUserForm = App.Form.extend({ http://git-wip-us.apache.org/repos/asf/ambari/blob/779b4f9d/ambari-web/test/models/alerts/alert_definition_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/models/alerts/alert_definition_test.js b/ambari-web/test/models/alerts/alert_definition_test.js index 0e8cc79..1aeea49 100644 --- a/ambari-web/test/models/alerts/alert_definition_test.js +++ b/ambari-web/test/models/alerts/alert_definition_test.js @@ -125,6 +125,40 @@ describe('App.AlertDefinition', function () { }); + describe('#isOK', function () { + + Em.A([ + {summary: {CRITICAL: {count: 1, maintenanceCount: 0}}, e: false}, + {summary: {WARNING: {count: 1, maintenanceCount: 0}}, e: false}, + {summary: {OK: {count: 1, maintenanceCount: 0}}, e: true}, + {summary: {UNKNOWN: {count: 1, maintenanceCount: 0}}, e: false}, + {summary: {}, e: false} + ]).forEach(function (test, i) { + it('test ' + (i + 1), function () { + model.set('summary', test.summary); + expect(model.get('isOK')).to.equal(test.e); + }); + }); + + }); + + describe('#isUnknown', function () { + + Em.A([ + {summary: {CRITICAL: {count: 1, maintenanceCount: 0}}, e: false}, + {summary: {WARNING: {count: 1, maintenanceCount: 0}}, e: false}, + {summary: {OK: {count: 1, maintenanceCount: 0}}, e: false}, + {summary: {UNKNOWN: {count: 1, maintenanceCount: 0}}, e: true}, + {summary: {}, e: false} + ]).forEach(function (test, i) { + it('test ' + (i + 1), function () { + model.set('summary', test.summary); + expect(model.get('isUnknown')).to.equal(test.e); + }); + }); + + }); + describe('#lastTriggeredAgoFormatted', function () { it('should be empty', function () {