diffs (204 lines):

diff -r 601b1915a5ba -r 8b0182046c0d cgi-bin/LJ/Talk.pm
--- a/cgi-bin/LJ/Talk.pm        Mon Jul 05 15:47:29 2010 +0800
+++ b/cgi-bin/LJ/Talk.pm        Mon Jul 05 16:56:57 2010 +0800
@@ -1738,8 +1738,41 @@ sub talkform {
                                 ("", $BML::ML{'.opt.defpic'}, map { ($_, $_) } 
@pics));
 
         # userpic browse button
-        $ret .= LJ::Talk::js_iconbrowser_button()
-            if $remote && $remote->can_use_userpic_select;
+        $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::help_icon_html("userpics", " ");
     }
@@ -1921,45 +1954,6 @@ 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 601b1915a5ba -r 8b0182046c0d cgi-bin/LJ/User.pm
--- a/cgi-bin/LJ/User.pm        Mon Jul 05 15:47:29 2010 +0800
+++ b/cgi-bin/LJ/User.pm        Mon Jul 05 16:56:57 2010 +0800
@@ -7397,19 +7397,15 @@ sub modify_caps {
 # name: LJ::set_userprop
 # des: Sets/deletes a userprop by name for a user.
 # info: This adds or deletes from the
-#       [dbtable[userprop]]/[dbtable[userproplite]] tables.  One
-#       crappy thing about this interface is that it doesn't allow
-#       a batch of userprops to be updated at once, which is the
-#       common thing to do.
-# args: dbarg?, uuserid, propname, value, memonly?
+#       [dbtable[userprop]]/[dbtable[userproplite]] tables.
+# args: uuserid, propname, value
 # des-uuserid: The userid of the user or a user hashref.
 # des-propname: The name of the property.  Or a hashref of propname keys and 
corresponding values.
 # des-value: The value to set to the property.  If undefined or the
 #            empty string, then property is deleted.
-# des-memonly: if true, only writes to memcache, and not to database.
 # </LJFUNC>
 sub set_userprop {
-    my ($u, $propname, $value, $memonly) = @_;
+    my ( $u, $propname, $value ) = @_;
     $u = ref $u ? $u : LJ::load_userid($u);
     my $userid = $u->userid + 0;
 
@@ -7437,7 +7433,8 @@ sub set_userprop {
         elsif ( $p->{'cldversion'} && $u->dversion >= $p->{'cldversion'} ) {
             $table = "userproplite2";
         }
-        unless ($memonly) {
+        unless ( $hash->{$propname} eq $u->{$propname} ) {
+            # only update db if value has changed
             my $db = $action{$table}->{'db'} ||= (
                 $table !~ m{userprop(lite2|blob)}
                     ? LJ::get_db_writer()
diff -r 601b1915a5ba -r 8b0182046c0d cgi-bin/weblib.pl
--- a/cgi-bin/weblib.pl Mon Jul 05 15:47:29 2010 +0800
+++ b/cgi-bin/weblib.pl Mon Jul 05 16:56:57 2010 +0800
@@ -701,8 +701,9 @@ sub create_qr_div {
                                        ("", 
BML::ml('/talkpost.bml.opt.defpic'), map { ($_, $_) } @pics));
 
             # userpic browse button
-            $qrhtml .= LJ::Talk::js_iconbrowser_button()
-                if $remote->can_use_userpic_select;
+            $qrhtml .= qq {
+                <input type="button" id="lj_userpicselect" value="Browse" />
+                } if $remote->can_use_userpic_select;
 
             $qrhtml .= LJ::help_icon_html("userpics", " ");
         }
@@ -799,6 +800,40 @@ 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;
 }
diff -r 601b1915a5ba -r 8b0182046c0d htdocs/manage/profile/index.bml
--- a/htdocs/manage/profile/index.bml   Mon Jul 05 15:47:29 2010 +0800
+++ b/htdocs/manage/profile/index.bml   Mon Jul 05 16:56:57 2010 +0800
@@ -703,12 +703,13 @@ body<=
                 if $u->gizmo_account ne $POST{'gizmo'};
 
             # set userprops
+            my %prop;
             foreach my $uprop (@uprops) {
                 my $eff_val = $POST{$uprop};   # effective value, since 0 
isn't stored
                 $eff_val = "" unless $eff_val;
-                my $mem_only = $eff_val eq $u->{$uprop};
-                LJ::set_userprop($u, $uprop, $eff_val, $mem_only);
+                $prop{$uprop} = $eff_val;
             }
+            $u->set_prop( \%prop );
 
             # location or bday could've changed... (who cares about checking 
exactly)
             $u->invalidate_directory_record;
_______________________________________________
dw-changelog mailing list
[email protected]
http://lists.dwscoalition.org/mailman/listinfo/dw-changelog

Reply via email to