fu: Close-up of Fu, bringing a scoop of water to her mouth (Default)
fu ([personal profile] fu) wrote in [site community profile] changelog2010-07-05 02:20 pm

[dw-free] refactor icon browser and related code

[commit: http://hg.dwscoalition.org/dw-free/rev/9f08948db033]

http://bugs.dwscoalition.org/show_bug.cgi?id=2754

Refactor out the icon browser JS, into a common function.

Patch by [personal profile] kareila.

Files modified:
  • cgi-bin/LJ/Talk.pm
  • cgi-bin/weblib.pl
--------------------------------------------------------------------------------
diff -r 084c1ad56111 -r 9f08948db033 cgi-bin/LJ/Talk.pm
--- a/cgi-bin/LJ/Talk.pm	Mon Jul 05 17:55:47 2010 +0800
+++ b/cgi-bin/LJ/Talk.pm	Mon Jul 05 22:26:30 2010 +0800
@@ -1738,41 +1738,10 @@ sub talkform {
                                 ("", $BML::ML{'.opt.defpic'}, map { ($_, $_) } @pics));
 
         # userpic browse button
-        $ret .= qq {
-            <input type="button" id="lj_userpicselect" value="Browse" />
-
-            <script type="text/javascript" language="JavaScript">
-            DOM.addEventListener(window, "load", function (evt) {
-                // attach userpicselect code to userpicbrowse button
-                var ups_btn = \$("lj_userpicselect");
-                if (ups_btn) {
-                    DOM.addEventListener(ups_btn, "click", function (evt) {
-                     var ups = new UserpicSelect();
-                     ups.init();
-                     ups.setPicSelectedCallback(function (picid, keywords) {
-                         var kws_dropdown = \$("prop_picture_keyword");
-
-                         if (kws_dropdown) {
-                             var items = kws_dropdown.options;
-
-                             // select the keyword in the dropdown
-                             keywords.forEach(function (kw) {
-                                 for (var i = 0; i < items.length; i++) {
-                                     var item = items[i];
-                                     if (item.value == kw) {
-                                         kws_dropdown.selectedIndex = i;
-                                         return;
-                                     }
-                                 }
-                             });
-                         }
-                     });
-                     ups.show();
-                 });
-                }
-            });
-            </script>
-        } if $remote && $remote->can_use_userpic_select;
+        if ( $remote && $remote->can_use_userpic_select ) {
+            $ret .= '<input type="button" id="lj_userpicselect" value="Browse" />';
+            $ret .= LJ::Talk::js_iconbrowser_button();
+        }
                 
         $ret .= LJ::help_icon_html("userpics", " ");
     }
@@ -1954,6 +1923,43 @@ sub init_iconbrowser_js {
     );
 
     return @list;
+}
+
+# generate the javascript code for the icon browser
+sub js_iconbrowser_button {
+    return qq {
+        <script type="text/javascript" language="JavaScript">
+        DOM.addEventListener(window, "load", function (evt) {
+            // attach userpicselect code to userpicbrowse button
+            var ups_btn = \$("lj_userpicselect");
+            if (ups_btn) {
+                DOM.addEventListener(ups_btn, "click", function (evt) {
+                 var ups = new UserpicSelect();
+                 ups.init();
+                 ups.setPicSelectedCallback(function (picid, keywords) {
+                     var kws_dropdown = \$("prop_picture_keyword");
+
+                     if (kws_dropdown) {
+                         var items = kws_dropdown.options;
+
+                         // select the keyword in the dropdown
+                         keywords.forEach(function (kw) {
+                             for (var i = 0; i < items.length; i++) {
+                                 var item = items[i];
+                                 if (item.value == kw) {
+                                     kws_dropdown.selectedIndex = i;
+                                     return;
+                                 }
+                             }
+                         });
+                     }
+                 });
+                 ups.show();
+             });
+            }
+        });
+        </script>
+    };
 }
 
 # generate the javascript code for the quick quote button
diff -r 084c1ad56111 -r 9f08948db033 cgi-bin/weblib.pl
--- a/cgi-bin/weblib.pl	Mon Jul 05 17:55:47 2010 +0800
+++ b/cgi-bin/weblib.pl	Mon Jul 05 22:26:30 2010 +0800
@@ -801,39 +801,8 @@ sub create_qr_div {
 
     $ret .= "\n</script>";
 
-    $ret .= qq {
-        <script type="text/javascript" language="JavaScript">
-            DOM.addEventListener(window, "load", function (evt) {
-                // attach userpicselect code to userpicbrowse button
-                var ups_btn = \$("lj_userpicselect");
-                if (ups_btn) {
-                    DOM.addEventListener(ups_btn, "click", function (evt) {
-                     var ups = new UserpicSelect();
-                     ups.init();
-                     ups.setPicSelectedCallback(function (picid, keywords) {
-                         var kws_dropdown = \$("prop_picture_keyword");
-
-                         if (kws_dropdown) {
-                             var items = kws_dropdown.options;
-
-                             // select the keyword in the dropdown
-                             keywords.forEach(function (kw) {
-                                 for (var i = 0; i < items.length; i++) {
-                                     var item = items[i];
-                                     if (item.value == kw) {
-                                         kws_dropdown.selectedIndex = i;
-                                         return;
-                                     }
-                                 }
-                             });
-                         }
-                     });
-                     ups.show();
-                 });
-                }
-            });
-        </script>
-        } if $remote->can_use_userpic_select;
+    $ret .= LJ::Talk::js_iconbrowser_button()
+        if $remote->can_use_userpic_select;
 
     return $ret;
 }
--------------------------------------------------------------------------------

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
No Subject Icon Selected
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org