mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)
Mark Smith ([staff profile] mark) wrote in [site community profile] changelog2009-04-07 07:54 pm

[dw-free] Whitespace cleanup.

[commit: http://hg.dwscoalition.org/dw-free/rev/48fa39bcee5e]

Whitespace cleanup.

Patch by [staff profile] mark.

Files modified:
  • htdocs/tools/memadd.bml
--------------------------------------------------------------------------------
diff -r 681f2d0c15f4 -r 48fa39bcee5e htdocs/tools/memadd.bml
--- a/htdocs/tools/memadd.bml	Tue Apr 07 08:34:38 2009 +0000
+++ b/htdocs/tools/memadd.bml	Tue Apr 07 19:53:58 2009 +0000
@@ -1,384 +1,379 @@
 <?_code
+{
+    use strict;
+    use vars qw(%GET %POST $title $body);
+    BML::decl_params(_default => qr/./);
 
- use strict;
- use vars qw(%GET %POST $title $body);
- BML::decl_params(_default => qr/./);
+    my $dbr = LJ::get_db_reader();
 
- my $dbr = LJ::get_db_reader();
+    $title = $ML{'.title'};
+    $body = "";
 
- $title = $ML{'.title'};
- $body = "";
+    my $print_with_ad = sub {
+       my $str = shift;
 
- my $print_with_ad = sub {
-    my $str = shift;
+       my $ad_box = LJ::get_ads({ location => 'bml.tools.memadd/error', ljadwrapper => 1 });
+       return $ad_box . $str;
+    };
 
-    my $ad_box = LJ::get_ads({ location => 'bml.tools.memadd/error', ljadwrapper => 1 });
-    return $ad_box . $str;
- };
+    my $err = sub {
+        $title = "Error";
+        $body = $print_with_ad->(LJ::bad_input(@_));
+        return;
+    };
 
- my $err = sub {
-     $title = "Error";
-     $body = $print_with_ad->(LJ::bad_input(@_));
-     return;
- };
+    $POST{'oldkeywords'} = [ split('\0', $POST{'oldkeywords'}) ];
 
- $POST{'oldkeywords'} = [ split('\0', $POST{'oldkeywords'}) ];
+    unless (LJ::text_in(\%POST)) {
+        return $err->("Invalid UTF-8 Input");
+    }
 
- unless (LJ::text_in(\%POST)) {
-     return $err->("Invalid UTF-8 Input");
- }
+    my $remote = LJ::get_remote();
+    unless ($remote) {
+       $body = $print_with_ad->("<?needlogin?>");
+       return;
+    }
 
- my $remote = LJ::get_remote();
- unless ($remote) {
-    $body = $print_with_ad->("<?needlogin?>");
+    my $authas = $GET{'authas'} || $remote->{'user'};
+    my $memoryu = LJ::get_authas_user($authas);
+    return $err->($ML{'error.invalidauth'})
+        unless $memoryu;
+
+    my $authextra = $authas ne $remote->{'user'} ? "?authas=$authas" : '';
+
+    my %secopts = ( 'public' => $ML{'label.security.public'},
+                    'friends' => $ML{'label.security.friends'},
+                    'private' => $ML{'label.security.private'}, );
+
+    if ($memoryu->{'journaltype'} eq "C") {
+        $secopts{'private'} = $ML{'label.security.maintainers'};
+        $secopts{'friends'} = $ML{'label.security.members'};
+    }
+
+    my $sth;
+    my $journal = $GET{'journal'} || $POST{'journal'};
+    my $ditemid = $GET{'itemid'}+0 || $POST{'itemid'}+0;
+
+    # OK.  the memories schema is weird and stores *display* itemids in the database.
+    # additionally, we distinguish precluster itemids because they're stored without a userid.
+    # it's too late to fix it in the db, so we just work around it--
+    # all new memories still get userid+ditemid because we can't change the ditemid/itemid problem,
+    # but old-style itemids get fixed up to userid+ditemid.
+
+    # *however*, when editing old itemids we need to keep around
+    # the old-style ditemid so we can still edit it.
+
+    # to keep this all sorted out, we fixup variables like this:
+    #   - itemid -- real, new-style itemid
+    #   - ditemid -- display itemid (with anum)
+    #   - dbitemid -- itemid that is in the database;
+    #                 usually same as ditemid, but different for old-style itemids.
+
+    my $dbitemid = $ditemid;
+    my $itemid;
+    my $oldstyle = 0;
+    my $ju;
+    my $jid;
+
+    my $anum;
+
+    if ($journal) {
+        $ju = LJ::load_user($journal);
+        $jid = $ju->{'userid'};
+        $anum = $ditemid % 256;
+        $itemid = int($ditemid / 256);
+    } else {
+        # old-style item url?
+        my $newids = LJ::get_newids('L', $ditemid);
+        if ($newids) {
+            ($jid,  $itemid) = @$newids;
+            $ju = LJ::load_userid($jid);
+            $oldstyle = 1;
+        }
+    }
+
+    unless ($ju && $itemid) {
+        $title = $ML{'Error'};
+        $body = $print_with_ad->($ML{'error.nojournal'});
+        return;
+    }
+
+    my $dbcr = LJ::get_cluster_reader($ju);
+
+    my $log = LJ::get_log2_row($ju, $itemid);
+
+    # check to see if it already is memorable (thus we're editing, not adding);
+    my $memory = LJ::Memories::get_by_ditemid($memoryu, $oldstyle ? 0 : $jid, $ditemid);
+
+    if (!$log && !$POST{'mode'}) {
+        $title = $ML{'Error'};
+        $body = "The entry that this memory references has been deleted.<br/>";
+
+        if ($memoryu->{user} eq $authas && defined $memory) {
+            $body .= "<br /><form action='memadd.bml$authextra' method='POST'>";
+            $body .= LJ::form_auth();
+            $body .= LJ::html_hidden(journal => $GET{journal}) if $GET{journal};
+            $body .= LJ::html_hidden(itemid => $GET{itemid});
+            $body .= LJ::html_hidden('mode' => 'save');
+            $body .= LJ::html_submit('delete', 'Delete this memory') . "\n";
+            $body .= "</form>\n";
+        }
+
+        $body = $print_with_ad->($body);
+        return;
+    }
+    my $subject = LJ::get_logtext2($ju, $itemid)->{$log->{jitemid}}[0];
+
+    # if the entry is pre-UTF-8 conversion, the
+    # subject may need conversion into UTF-8
+    if ($LJ::UNICODE) {
+        my %props = ();
+        LJ::load_log_props2($dbcr, $log->{'journalid'}, [ $itemid ], \%props);
+        if ($props{$itemid}->{'unknown8bit'}) {
+            my $u = LJ::load_userid($log->{'journalid'});
+            my ($error, $subj);
+            $subj = LJ::text_convert($subject, $u, \$error);
+            $subject = $subj unless $error;
+        }
+        LJ::text_out(\$subject);
+    }
+
+    if ($oldstyle) {
+        # ditemid was an old-style itemid, so we update it to the new style.
+        $anum = $log->{anum};
+        $ditemid = $itemid<<8 + $anum;
+    }
+
+    # get keywords user has used
+    my $exist_kw = LJ::Memories::get_keywords($memoryu);
+    unless ($exist_kw) {
+        $title = $ML{'Error'};
+        $body = $print_with_ad->("Error fetching existing keywords.");
+        return;
+    }
+
+    if ($POST{'mode'} eq "")
+    {
+        my ($des, $keywords);
+
+        my @all_keywords;
+        my %selected_keyword;
+        @all_keywords = sort values %$exist_kw;
+
+        if (defined $memory) {
+            $title = $ML{'.title.edit_memory'};
+            $des = $memory->{'des'};
+            my $kwids = LJ::Memories::get_keywordids($memoryu, $memory->{memid}) || [];
+            foreach my $kwid (@$kwids) {
+                my $kw = $exist_kw->{$kwid};
+                next if ($kw eq "*");
+                if ($keywords) { $keywords .= ", "; }
+                $keywords .= $kw;
+                $selected_keyword{$kw} = 1;
+            }
+            if (!$log || ($jid && $log->{'anum'} != $anum))
+            {
+                LJ::Memories::delete_by_id($memoryu, $memory->{memid});
+                LJ::Memories::updated_keywords($memoryu);
+                $title = $ML{'Error'};
+                $body = $print_with_ad->($ML{'.error.entry_deleted'});
+                return;
+            }
+
+        }
+        elsif (!$log || ($jid && $log->{'anum'} != $anum))
+        {
+            $title = $ML{'Error'};
+            $body = $print_with_ad->($ML{'error.noentry'});
+            return;
+        }
+        else
+        {
+            $title = $ML{'.title.add_memory'};
+
+            # this is a new memory.
+            my $user = LJ::get_username($log->{'journalid'});
+            my $dt = substr($log->{'eventtime'}, 0, 10);
+            $des = "$dt: $user: $subject";
+        }
+
+        # it'd be nice to only show the authas form when adding an entry and not
+        # when editing one, but if user u is logged in and has post p as a memory
+        # already then wants to add it to community c, when u clicks the "add memory"
+        # link on p, u gets the "edit entry" page and they need to be able to switch
+        # to c.
+        $body .= "<form method='get' action='memadd.bml'>\n";
+        $body .= LJ::make_authas_select($remote, { 'authas' => $GET{'authas'} }) . "\n";
+        $body .= LJ::html_hidden(journal => $GET{journal}) if $GET{journal};
+        $body .= LJ::html_hidden(itemid => $GET{itemid});
+        $body .= "</form>\n\n";
+
+        LJ::text_out(\$des);
+        LJ::text_out(\$keywords);
+
+        if (defined $memory) {
+            $body .= $ML{'.edit_previous'};
+        } else {
+            $body .= $ML{'.add_previous'};
+        }
+
+        my $getextra = "?itemid=$dbitemid";
+        $getextra .= "&amp;authas=$authas" if $authas ne $remote->{'user'};
+        # we still need to pass the dbitemid and not the itemid to ourself.
+        $getextra .= "&amp;journal=$journal" unless $oldstyle;
+
+        $body .= "<form method='post' action='memadd.bml$getextra'>";
+        $body .= LJ::form_auth();
+        $body .= LJ::html_hidden(mode => "save");
+
+        $body .= "<table cellpadding='4'>";
+        $body .= "<tr><th align='right' valign='top'>$ML{'.description'}</th><td>";
+        $body .= LJ::html_text({name => 'des', value => $des, maxlength => LJ::CMAX_MEMORY, size => 40});
+        $body .= "<br /><small>$ML{'.description.text'}</small></td></tr>";
+
+        $body .= "<tr><th align='right' valign='top'>$ML{'.keywords'}</th><td>";
+        $body .= LJ::html_text({name => 'keywords', size => 40, value => $keywords});
+        $body .= "<br /><small>$ML{'.keywords.text'}</small><br />";
+
+        if (@all_keywords) {
+            my $size = scalar(@all_keywords);
+            $size = 15 if $size > 15;
+            $body .= "<small>$ML{'.keywords.select'}</small><div style='margin-left: 30px;'>";
+            $body .= LJ::html_select( { name => 'oldkeywords', size => $size, multiple => 1,
+                                        selected => [ keys %selected_keyword ], noescape => 1 },
+                                      map { (LJ::ehtml($_), LJ::ehtml($_)) } @all_keywords);
+            $body .= "</div><small>$ML{'.multiple_selections'}</small>";
+        } else {
+            $body .= "<small>$ML{'.keywords.example'}</small>";
+        }
+
+        $body .= "</td></tr>\n";
+        $body .= "<tr><th align='right' valign='top'>$ML{'.security'}</th><td>";
+        $body .= LJ::html_select({name => 'security', selected => defined $memory ? $memory->{'security'} : undef},
+                                 map { ($_, $secopts{$_}) } qw(public friends private));
+        if ($memoryu->{'journaltype'} eq "C") {
+            $body .= "<br /><small>$ML{'.whocansee.comm'}</small></td></tr><tr><th></th><td>\n";
+        } else {
+            $body .= "<br /><small>$ML{'.whocansee'}</small></td></tr><tr><th></th><td>\n";
+        }
+        $body .= LJ::html_submit(undef, $ML{'.form.submit'});
+        $body .= LJ::html_submit(undef, $ML{'.form.reset'}, {type => 'reset'}) if defined $memory;
+        $body .= "</td></tr></table></form>";
+
+        $body = $print_with_ad->($body);
+        return;
+    }
+
+    if ($POST{'mode'} eq "save")
+    {
+        return $print_with_ad->("<?h1 $ML{'Error'} h1?> $ML{'error.invalidform'}") unless LJ::check_form_auth();
+
+        my $dbh = LJ::get_db_writer();
+
+        if (! $POST{'des'}) {
+            # then we're deleting.
+            unless (LJ::check_form_auth()) {
+                $body = $print_with_ad->("<?h1 $ML{'Error'} h1?><?p $ML{'error.invalidform'} p?>");
+                return;
+            }
+            if (defined $memory) {
+                LJ::Memories::delete_by_id($memoryu, $memory->{memid});
+                LJ::Memories::updated_keywords($memoryu);
+                $title = $ML{'.title.deleted'};
+                $body = $print_with_ad->("<?h1 $ML{'.error.deleted.title'} h1?><?p " .
+                        BML::ml(".error.deleted.body", { 'desc' => $memory->{'des'} }) .
+                        "p?>");
+                return;
+            } else {
+                $title = $ML{'Error'};
+                $body = "<?h1 $ML{'.error.nodescription.title'} h1?><?p ";
+                $body .= BML::ml('.error.nodescription.body');
+                $body .= " p?>";
+                $body = $print_with_ad->($body);
+                return;
+            }
+        }
+
+        #### we're inserting/replacing now into memories
+        my @keywords;
+        {
+            my %kws;
+            foreach (split(/\s*,\s*/, $POST{'keywords'})) { $kws{$_} = 1; }
+            # oldkeywords were split at the beginning
+            foreach (@{$POST{'oldkeywords'}}) { $kws{$_} = 1; }
+            @keywords = keys %kws;
+        }
+        if (scalar(@keywords) > 5) {
+            $title = $ML{'Error'};
+            $body = $print_with_ad->("<?h1 $ML{'Error'} h1?><?p $ML{'.error.fivekeywords'} p?>");
+            return;
+        }
+        @keywords = grep { $_ } map { s/\s\s+/ /g; LJ::trim($_); } @keywords;
+        push @keywords, "*" unless (@keywords);
+        my @kwid;
+
+        my $needflush = 0;
+        foreach my $kw (@keywords) {
+            if (length($kw) > 40) {
+                $title = $ML{'Error'};
+                $body = $print_with_ad->("<?h1 $ML{'Error'} h1?><?p " .
+                        BML::ml(".error.maxsize", { 'keyword' => LJ::ehtml($kw) }) . "p?>");
+                return;
+            }
+
+            my $kwid = LJ::get_keyword_id($memoryu, $kw);
+            $needflush = 1 unless defined $exist_kw->{$kwid};
+            push @kwid, $kwid;
+        }
+
+        unless (exists $secopts{$POST{'security'}}) {
+            $title = $ML{'Error'};
+            $body = $print_with_ad->($ML{'.error.invalid_security'});
+            return;
+        }
+
+        my $des = LJ::text_trim($POST{'des'}, LJ::BMAX_MEMORY, LJ::CMAX_MEMORY);
+        my $sec = $POST{'security'};
+
+        # handle edits by deleting the old memory and recreating
+        LJ::Memories::delete_by_id($memoryu, $memory->{memid})
+            if defined $memory;
+        LJ::Memories::create($memoryu, {
+                                 journalid => $jid,
+                                 ditemid => $ditemid,
+                                 des => $des,
+                                 security => $sec,
+                             }, \@kwid);
+        LJ::Memories::updated_keywords($memoryu) if $needflush;
+
+        $title = $ML{'.title.added'};
+        $body = LJ::get_ads({
+           location    => 'bml.tools.memadd/main',
+           ljadwrapper => 1,
+           below_ad    => LJ::CProd->full_box_for($remote, width => 300),
+        });
+        $body .= "<?h1 $ML{'.body.added.header'} h1?>";
+        $body .= "<?p $ML{'.body.added.text'} p?>";
+
+        my $entry = LJ::Entry->new($ju, jitemid => $itemid);
+        $body .= "<ul>";
+        $body .= "<li><a href='" . $entry->url . "'>$ML{'.body.added.next.entry'}</a></li>";
+        $body .= "<li><a href='$LJ::SITEROOT/tools/memories.bml?user=" . $memoryu->user . "'>"
+               . "$ML{'.body.added.next.view'}</a></li>";
+        $body .= "<li><a href='" . $remote->journal_base . "/read'>$ML{'.body.added.next.friends'}</a></li>";
+        $body .= "<li>" . BML::ml(".body.added.next.journal", { 'user' => $ju->ljuser_display }) . "</li>";
+        $body .= "</ul>";
+
+        return;
+    }
+
+    $title = $ML{'Error'};
+    $body = $print_with_ad->($ML{'error.unknownmode'});
+
     return;
- }
-
- my $authas = $GET{'authas'} || $remote->{'user'};
- my $memoryu = LJ::get_authas_user($authas);
- return $err->($ML{'error.invalidauth'})
-     unless $memoryu;
-
- my $authextra = $authas ne $remote->{'user'} ? "?authas=$authas" : '';
-
- my %secopts = ( 'public' => $ML{'label.security.public'},
-                 'friends' => $ML{'label.security.friends'},
-                 'private' => $ML{'label.security.private'}, );
-
- if ($memoryu->{'journaltype'} eq "C") {
-     $secopts{'private'} = $ML{'label.security.maintainers'};
-     $secopts{'friends'} = $ML{'label.security.members'};
- }
-
- my $sth;
- my $journal = $GET{'journal'} || $POST{'journal'};
- my $ditemid = $GET{'itemid'}+0 || $POST{'itemid'}+0;
-
- # OK.  the memories schema is weird and stores *display* itemids in the database.
- # additionally, we distinguish precluster itemids because they're stored without a userid.
- # it's too late to fix it in the db, so we just work around it--
- # all new memories still get userid+ditemid because we can't change the ditemid/itemid problem,
- # but old-style itemids get fixed up to userid+ditemid.
-
- # *however*, when editing old itemids we need to keep around
- # the old-style ditemid so we can still edit it.
-
- # to keep this all sorted out, we fixup variables like this:
- #   - itemid -- real, new-style itemid
- #   - ditemid -- display itemid (with anum)
- #   - dbitemid -- itemid that is in the database;
- #                 usually same as ditemid, but different for old-style itemids.
-
- my $dbitemid = $ditemid;
- my $itemid;
- my $oldstyle = 0;
- my $ju;
- my $jid;
-
- my $anum;
-
- if ($journal) {
-     $ju = LJ::load_user($journal);
-     $jid = $ju->{'userid'};
-     $anum = $ditemid % 256;
-     $itemid = int($ditemid / 256);
- } else {
-     # old-style item url?
-     my $newids = LJ::get_newids('L', $ditemid);
-     if ($newids) {
-         ($jid,  $itemid) = @$newids;
-         $ju = LJ::load_userid($jid);
-         $oldstyle = 1;
-     }
- }
-
- unless ($ju && $itemid) {
-     $title = $ML{'Error'};
-     $body = $print_with_ad->($ML{'error.nojournal'});
-     return;
- }
-
- my $dbcr = LJ::get_cluster_reader($ju);
-
- my $log = LJ::get_log2_row($ju, $itemid);
-
- # check to see if it already is memorable (thus we're editing, not adding);
- my $memory = LJ::Memories::get_by_ditemid($memoryu, $oldstyle ? 0 : $jid, $ditemid);
-
- if (!$log && !$POST{'mode'}) {
-     $title = $ML{'Error'};
-     $body = "The entry that this memory references has been deleted.<br/>";
-
-     if ($memoryu->{user} eq $authas && defined $memory) {
-         $body .= "<br /><form action='memadd.bml$authextra' method='POST'>";
-         $body .= LJ::form_auth();
-         $body .= LJ::html_hidden(journal => $GET{journal}) if $GET{journal};
-         $body .= LJ::html_hidden(itemid => $GET{itemid});
-         $body .= LJ::html_hidden('mode' => 'save');
-         $body .= LJ::html_submit('delete', 'Delete this memory') . "\n";
-         $body .= "</form>\n";
-     }
-
-     $body = $print_with_ad->($body);
-     return;
- }
- my $subject = LJ::get_logtext2($ju, $itemid)->{$log->{jitemid}}[0];
-
- # if the entry is pre-UTF-8 conversion, the
- # subject may need conversion into UTF-8
- if ($LJ::UNICODE) {
-     my %props = ();
-     LJ::load_log_props2($dbcr, $log->{'journalid'}, [ $itemid ], \%props);
-     if ($props{$itemid}->{'unknown8bit'}) {
-         my $u = LJ::load_userid($log->{'journalid'});
-         my ($error, $subj);
-         $subj = LJ::text_convert($subject, $u, \$error);
-         $subject = $subj unless $error;
-     }
-     LJ::text_out(\$subject);
- }
-
- if ($oldstyle) {
-     # ditemid was an old-style itemid, so we update it to the new style.
-     $anum = $log->{anum};
-     $ditemid = $itemid<<8 + $anum;
- }
-
- # get keywords user has used
- my $exist_kw = LJ::Memories::get_keywords($memoryu);
- unless ($exist_kw) {
-     $title = $ML{'Error'};
-     $body = $print_with_ad->("Error fetching existing keywords.");
-     return;
- }
-
- if ($POST{'mode'} eq "")
- {
-     my ($des, $keywords);
-
-     my @all_keywords;
-     my %selected_keyword;
-     @all_keywords = sort values %$exist_kw;
-
-     if (defined $memory) {
-         $title = $ML{'.title.edit_memory'};
-         $des = $memory->{'des'};
-         my $kwids = LJ::Memories::get_keywordids($memoryu, $memory->{memid}) || [];
-         foreach my $kwid (@$kwids) {
-             my $kw = $exist_kw->{$kwid};
-             next if ($kw eq "*");
-             if ($keywords) { $keywords .= ", "; }
-             $keywords .= $kw;
-             $selected_keyword{$kw} = 1;
-         }
-         if (!$log || ($jid && $log->{'anum'} != $anum))
-         {
-             LJ::Memories::delete_by_id($memoryu, $memory->{memid});
-             LJ::Memories::updated_keywords($memoryu);
-             $title = $ML{'Error'};
-             $body = $print_with_ad->($ML{'.error.entry_deleted'});
-             return;
-         }
-
-     }
-     elsif (!$log || ($jid && $log->{'anum'} != $anum))
-     {
-         $title = $ML{'Error'};
-         $body = $print_with_ad->($ML{'error.noentry'});
-         return;
-     }
-     else
-     {
-         $title = $ML{'.title.add_memory'};
-
-         # this is a new memory.
-         my $user = LJ::get_username($log->{'journalid'});
-         my $dt = substr($log->{'eventtime'}, 0, 10);
-         $des = "$dt: $user: $subject";
-     }
-
-     # it'd be nice to only show the authas form when adding an entry and not
-     # when editing one, but if user u is logged in and has post p as a memory
-     # already then wants to add it to community c, when u clicks the "add memory"
-     # link on p, u gets the "edit entry" page and they need to be able to switch
-     # to c.
-     $body .= "<form method='get' action='memadd.bml'>\n";
-     $body .= LJ::make_authas_select($remote, { 'authas' => $GET{'authas'} }) . "\n";
-     $body .= LJ::html_hidden(journal => $GET{journal}) if $GET{journal};
-     $body .= LJ::html_hidden(itemid => $GET{itemid});
-     $body .= "</form>\n\n";
-
-     LJ::text_out(\$des);
-     LJ::text_out(\$keywords);
-
-     if (defined $memory) {
-         $body .= $ML{'.edit_previous'};
-     } else {
-         $body .= $ML{'.add_previous'};
-     }
-
-     my $getextra = "?itemid=$dbitemid";
-     $getextra .= "&amp;authas=$authas" if $authas ne $remote->{'user'};
-     # we still need to pass the dbitemid and not the itemid to ourself.
-     $getextra .= "&amp;journal=$journal" unless $oldstyle;
-
-     $body .= "<form method='post' action='memadd.bml$getextra'>";
-     $body .= LJ::form_auth();
-     $body .= LJ::html_hidden(mode => "save");
-
-     $body .= "<table cellpadding='4'>";
-     $body .= "<tr><th align='right' valign='top'>$ML{'.description'}</th><td>";
-     $body .= LJ::html_text({name => 'des', value => $des, maxlength => LJ::CMAX_MEMORY, size => 40});
-     $body .= "<br /><small>$ML{'.description.text'}</small></td></tr>";
-
-     $body .= "<tr><th align='right' valign='top'>$ML{'.keywords'}</th><td>";
-     $body .= LJ::html_text({name => 'keywords', size => 40, value => $keywords});
-     $body .= "<br /><small>$ML{'.keywords.text'}</small><br />";
-
-     if (@all_keywords) {
-         my $size = scalar(@all_keywords);
-         $size = 15 if $size > 15;
-         $body .= "<small>$ML{'.keywords.select'}</small><div style='margin-left: 30px;'>";
-         $body .= LJ::html_select( { name => 'oldkeywords', size => $size, multiple => 1,
-                                     selected => [ keys %selected_keyword ], noescape => 1 },
-                                   map { (LJ::ehtml($_), LJ::ehtml($_)) } @all_keywords);
-         $body .= "</div><small>$ML{'.multiple_selections'}</small>";
-     } else {
-         $body .= "<small>$ML{'.keywords.example'}</small>";
-     }
-
-     $body .= "</td></tr>\n";
-     $body .= "<tr><th align='right' valign='top'>$ML{'.security'}</th><td>";
-     $body .= LJ::html_select({name => 'security', selected => defined $memory ? $memory->{'security'} : undef},
-                              map { ($_, $secopts{$_}) } qw(public friends private));
-     if ($memoryu->{'journaltype'} eq "C") {
-         $body .= "<br /><small>$ML{'.whocansee.comm'}</small></td></tr><tr><th></th><td>\n";
-     } else {
-         $body .= "<br /><small>$ML{'.whocansee'}</small></td></tr><tr><th></th><td>\n";
-     }
-     $body .= LJ::html_submit(undef, $ML{'.form.submit'});
-     $body .= LJ::html_submit(undef, $ML{'.form.reset'}, {type => 'reset'}) if defined $memory;
-     $body .= "</td></tr></table></form>";
-
-     $body = $print_with_ad->($body);
-     return;
- }
-
- if ($POST{'mode'} eq "save")
- {
-     return $print_with_ad->("<?h1 $ML{'Error'} h1?> $ML{'error.invalidform'}") unless LJ::check_form_auth();
-
-     my $dbh = LJ::get_db_writer();
-
-     if (! $POST{'des'}) {
-         # then we're deleting.
-         unless (LJ::check_form_auth()) {
-             $body = $print_with_ad->("<?h1 $ML{'Error'} h1?><?p $ML{'error.invalidform'} p?>");
-             return;
-         }
-         if (defined $memory) {
-             LJ::Memories::delete_by_id($memoryu, $memory->{memid});
-             LJ::Memories::updated_keywords($memoryu);
-             $title = $ML{'.title.deleted'};
-             $body = $print_with_ad->("<?h1 $ML{'.error.deleted.title'} h1?><?p " .
-                     BML::ml(".error.deleted.body", { 'desc' => $memory->{'des'} }) .
-                     "p?>");
-             return;
-         } else {
-             $title = $ML{'Error'};
-             $body = "<?h1 $ML{'.error.nodescription.title'} h1?><?p ";
-             $body .= BML::ml('.error.nodescription.body');
-             $body .= " p?>";
-             $body = $print_with_ad->($body);
-             return;
-         }
-     }
-
-     #### we're inserting/replacing now into memories
-     my @keywords;
-     {
-         my %kws;
-         foreach (split(/\s*,\s*/, $POST{'keywords'})) { $kws{$_} = 1; }
-         # oldkeywords were split at the beginning
-         foreach (@{$POST{'oldkeywords'}}) { $kws{$_} = 1; }
-         @keywords = keys %kws;
-     }
-     if (scalar(@keywords) > 5) {
-         $title = $ML{'Error'};
-         $body = $print_with_ad->("<?h1 $ML{'Error'} h1?><?p $ML{'.error.fivekeywords'} p?>");
-         return;
-     }
-     @keywords = grep { $_ } map { s/\s\s+/ /g; LJ::trim($_); } @keywords;
-     push @keywords, "*" unless (@keywords);
-     my @kwid;
-
-     my $needflush = 0;
-     foreach my $kw (@keywords) {
-         if (length($kw) > 40) {
-             $title = $ML{'Error'};
-             $body = $print_with_ad->("<?h1 $ML{'Error'} h1?><?p " .
-                     BML::ml(".error.maxsize", { 'keyword' => LJ::ehtml($kw) }) . "p?>");
-             return;
-         }
-
-         my $kwid = LJ::get_keyword_id($memoryu, $kw);
-         $needflush = 1 unless defined $exist_kw->{$kwid};
-         push @kwid, $kwid;
-     }
-
-     unless (exists $secopts{$POST{'security'}}) {
-         $title = $ML{'Error'};
-         $body = $print_with_ad->($ML{'.error.invalid_security'});
-         return;
-     }
-
-     my $des = LJ::text_trim($POST{'des'}, LJ::BMAX_MEMORY, LJ::CMAX_MEMORY);
-     my $sec = $POST{'security'};
-
-     # handle edits by deleting the old memory and recreating
-     LJ::Memories::delete_by_id($memoryu, $memory->{memid})
-         if defined $memory;
-     LJ::Memories::create($memoryu, {
-                              journalid => $jid,
-                              ditemid => $ditemid,
-                              des => $des,
-                              security => $sec,
-                          }, \@kwid);
-     LJ::Memories::updated_keywords($memoryu) if $needflush;
-
-     $title = $ML{'.title.added'};
-     $body = LJ::get_ads({ 
-        location    => 'bml.tools.memadd/main',
-        ljadwrapper => 1,
-        below_ad    => LJ::CProd->full_box_for($remote, width => 300),
-     });
-     $body .= "<?h1 $ML{'.body.added.header'} h1?>";
-     $body .= "<?p $ML{'.body.added.text'} p?>";
-
-     my $entry = LJ::Entry->new($ju, jitemid => $itemid);
-     $body .= "<ul>";
-     $body .= "<li><a href='" . $entry->url . "'>$ML{'.body.added.next.entry'}</a></li>";
-     $body .= "<li><a href='$LJ::SITEROOT/tools/memories.bml?user=" . $memoryu->user . "'>"
-            . "$ML{'.body.added.next.view'}</a></li>";
-     $body .= "<li><a href='" . $remote->journal_base . "/read'>$ML{'.body.added.next.friends'}</a></li>";
-     $body .= "<li>" . BML::ml(".body.added.next.journal", { 'user' => $ju->ljuser_display }) . "</li>";
-     $body .= "</ul>";
-
-     return;
- }
-
- $title = $ML{'Error'};
- $body = $print_with_ad->($ML{'error.unknownmode'});
-
- return;
+}
 _code?>
-
 <?page
 title=><?_code return $title; _code?>
 body=> <?_code return $body;  _code?>
 page?>
-
-<?_c <LJDEP>
-link: htdocs/login.bml
-post: htdocs/tools/memadd.bml
-</LJDEP> _c?>
--------------------------------------------------------------------------------

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