AMBARI-20621 Implement handling of conditional expressions for data attributes 
helper. (ababiichuk)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/f44d9d22
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/f44d9d22
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/f44d9d22

Branch: refs/heads/branch-feature-AMBARI-12556
Commit: f44d9d22b2c03797cf76c8fefd4e919f2d5b3c77
Parents: 4d6c80f
Author: ababiichuk <ababiic...@hortonworks.com>
Authored: Wed Mar 29 18:31:14 2017 +0300
Committer: ababiichuk <ababiic...@hortonworks.com>
Committed: Wed Mar 29 18:31:14 2017 +0300

----------------------------------------------------------------------
 ambari-web/app/utils/helper.js | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/f44d9d22/ambari-web/app/utils/helper.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/helper.js b/ambari-web/app/utils/helper.js
index 6c706b8..0d4ea80 100644
--- a/ambari-web/app/utils/helper.js
+++ b/ambari-web/app/utils/helper.js
@@ -366,6 +366,12 @@ Em.Handlebars.registerHelper('highlight', function 
(property, words, fn) {
  * <div {{QAAttr "someText"}}></div>
  * <div {{QAAttr "{someProperty}"}}></div>
  * <div {{QAAttr "someText-and-{someProperty}"}}></div>
+ * <div {{QAAttr "{someProperty:some-text}"}}></div>
+ * <div {{QAAttr "someText-and-{someProperty:some-text}"}}></div>
+ * <div {{QAAttr "{someProperty:some-text:another-text}"}}></div>
+ * <div {{QAAttr "someText-and-{someProperty:some-text:another-text}"}}></div>
+ * <div {{QAAttr "{someProperty::another-text}"}}></div>
+ * <div {{QAAttr "someText-and-{someProperty::another-text}"}}></div>
  *
  */
 Em.Handlebars.registerHelper('QAAttr', function(text, data) {
@@ -373,7 +379,15 @@ Em.Handlebars.registerHelper('QAAttr', function(text, 
data) {
   var textToReplace = text.match(/\{(.*?)\}/g);
   if (textToReplace) {
     textToReplace.forEach(function (t) {
-      var value = Em.Handlebars.getPath(self, t.slice(1, t.length-1), data);
+      var value,
+        expression = t.slice(1, t.length - 1),
+        conditionals = Em.View._parsePropertyPath(expression);
+      if (conditionals.classNames) {
+        var sourceValue = Em.Handlebars.getPath(self, conditionals.path, data);
+        value = sourceValue ? conditionals.className : 
(conditionals.falsyClassName || '');
+      } else {
+        value = Em.Handlebars.getPath(self, expression, data);
+      }
       text = text.replace(t, value);
     });
   }

Reply via email to