ソースを参照

Refactor slightly to improve readability

JC Brand 8 年 前
コミット
0958915021
2 ファイル変更13 行追加13 行削除
  1. 5 7
      src/converse-register.js
  2. 8 6
      src/utils.js

+ 5 - 7
src/converse-register.js

@@ -269,13 +269,11 @@
 
                 renderRegistrationRequest (cancel_label) {
                     const form = this.el.querySelector('#converse-register');
-                    utils.createElementsFromString(
-                        form,
-                        tpl_registration_request({
-                            cancel: cancel_label,
-                            info_message: _converse.__('Requesting a registration form from the XMPP server')
-                        })
-                    );
+                    const markup = tpl_registration_request({
+                        'cancel': cancel_label,
+                        'info_message': _converse.__('Requesting a registration form from the XMPP server')
+                    });
+                    form.appendChild(utils.createFragmentFromText(markup));
                     if (!_converse.registration_domain) {
                         const cancel_button = document.querySelector('button.button-cancel');
                         cancel_button.addEventListener('click', this.cancelRegistration.bind(this));

+ 8 - 6
src/utils.js

@@ -589,18 +589,20 @@
         };
     };
 
-    utils.createElementsFromString = function (element, html) {
+    utils.createFragmentFromText = function (markup) {
+        /* Returns a DocumentFragment containing DOM nodes based on the
+         * passed-in markup text.
+         */
         // http://stackoverflow.com/questions/9334645/create-node-from-markup-string
         var frag = document.createDocumentFragment(),
             tmp = document.createElement('body'), child;
-        tmp.innerHTML = html;
-        // Append elements in a loop to a DocumentFragment, so that the browser does
-        // not re-render the document for each node
+        tmp.innerHTML = markup;
+        // Append elements in a loop to a DocumentFragment, so that the
+        // browser does not re-render the document for each node.
         while (child = tmp.firstChild) {  // eslint-disable-line no-cond-assign
             frag.appendChild(child);
         }
-        element.appendChild(frag); // Now, append all elements at once
-        frag = tmp = null;
+        return frag
     };
 
     utils.addEmoji = function (_converse, emojione, text) {