AMBARI-20607. Provide helper for adding data-qa attributes (akovalenko)

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

Branch: refs/heads/branch-dev-logsearch
Commit: ea3aa22aec0ff875d2127da86701e8caccd78be0
Parents: 742fdff
Author: Aleksandr Kovalenko <akovale...@hortonworks.com>
Authored: Wed Mar 29 00:09:16 2017 +0300
Committer: Aleksandr Kovalenko <akovale...@hortonworks.com>
Committed: Wed Mar 29 00:09:16 2017 +0300

----------------------------------------------------------------------
 ambari-web/app/utils/ember_reopen.js |  4 +++-
 ambari-web/app/utils/helper.js       | 20 ++++++++++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/ea3aa22a/ambari-web/app/utils/ember_reopen.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/ember_reopen.js 
b/ambari-web/app/utils/ember_reopen.js
index ff55b30..5f7c61b 100644
--- a/ambari-web/app/utils/ember_reopen.js
+++ b/ambari-web/app/utils/ember_reopen.js
@@ -225,7 +225,9 @@ Em.View.reopen({
     } else {
       console.debug('Calling setProperties on destroyed view');
     }
-  }
+  },
+
+  attributeBindings: ['data-qa']
 });
 
 Ember._HandlebarsBoundView.reopen({

http://git-wip-us.apache.org/repos/asf/ambari/blob/ea3aa22a/ambari-web/app/utils/helper.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/helper.js b/ambari-web/app/utils/helper.js
index f6f2532..6c706b8 100644
--- a/ambari-web/app/utils/helper.js
+++ b/ambari-web/app/utils/helper.js
@@ -363,6 +363,26 @@ Em.Handlebars.registerHelper('highlight', function 
(property, words, fn) {
 /**
  * Usage:
  *
+ * <div {{QAAttr "someText"}}></div>
+ * <div {{QAAttr "{someProperty}"}}></div>
+ * <div {{QAAttr "someText-and-{someProperty}"}}></div>
+ *
+ */
+Em.Handlebars.registerHelper('QAAttr', function(text, data) {
+  var self = this;
+  var textToReplace = text.match(/\{(.*?)\}/g);
+  if (textToReplace) {
+    textToReplace.forEach(function (t) {
+      var value = Em.Handlebars.getPath(self, t.slice(1, t.length-1), data);
+      text = text.replace(t, value);
+    });
+  }
+  return new Em.Handlebars.SafeString('data-qa="' + text + '"');
+});
+
+/**
+ * Usage:
+ *
  * <pre>
  *   {{#isAuthorized "SERVICE.TOGGLE_ALERTS"}}
  *     {{! some truly code }}

Reply via email to