Refactor out the JS code for the icon browser button.
Patch by kareila.
diffs (149 lines):
diff -r e94fdc24e89c -r 601b1915a5ba cgi-bin/LJ/Talk.pm
--- a/cgi-bin/LJ/Talk.pm Mon Jul 05 15:40:40 2010 +0800
+++ b/cgi-bin/LJ/Talk.pm Mon Jul 05 15:47:29 2010 +0800
@@ -1738,41 +1738,8 @@ 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;
+ $ret .= LJ::Talk::js_iconbrowser_button()
+ if $remote && $remote->can_use_userpic_select;
$ret .= LJ::help_icon_html("userpics", " ");
}
@@ -1954,6 +1921,45 @@ sub init_iconbrowser_js {
);
return @list;
+}
+
+# generate the javascript code for the icon browser
+sub js_iconbrowser_button {
+ return 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>
+ };
}
# generate the javascript code for the quick quote button
diff -r e94fdc24e89c -r 601b1915a5ba cgi-bin/weblib.pl
--- a/cgi-bin/weblib.pl Mon Jul 05 15:40:40 2010 +0800
+++ b/cgi-bin/weblib.pl Mon Jul 05 15:47:29 2010 +0800
@@ -701,9 +701,8 @@ sub create_qr_div {
("",
BML::ml('/talkpost.bml.opt.defpic'), map { ($_, $_) } @pics));
# userpic browse button
- $qrhtml .= qq {
- <input type="button" id="lj_userpicselect" value="Browse" />
- } if $remote->can_use_userpic_select;
+ $qrhtml .= LJ::Talk::js_iconbrowser_button()
+ if $remote->can_use_userpic_select;
$qrhtml .= LJ::help_icon_html("userpics", " ");
}
@@ -800,40 +799,6 @@ sub create_qr_div {
$ret .= LJ::Talk::js_quote_button( 'body' );
$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;
return $ret;
}
_______________________________________________
dw-changelog mailing list
[email protected]
http://lists.dwscoalition.org/mailman/listinfo/dw-changelog