[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
kareila.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=2754
Refactor out the icon browser JS, into a common function.
Patch by
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
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; } --------------------------------------------------------------------------------