LJSUP-17669: Login.bml form refactoring
[livejournal.git] / htdocs / portal / alter.bml
blobd8489dfc57eec484f066b388c13feb4124ed4210
1 <?_code
3  $title = "";
4  $body = "";
6  my $remote = LJ::get_remote();
7  
8  unless ($remote) { $body = "<?needlogin?>"; return; }
10  my $op = $FORM{'op'};
11  my $t = $FORM{'t'};
12  my ($bname, $loc, $pos) = split(/-/, $t);
13  $pos += 0;
15  my $portopts = LJ::Portal::load_portopts($remote);
17  if ($op eq "x")
18  {
19      LJ::Portal::delete_box($portopts, $loc, $pos, $bname);
20      LJ::Portal::save_portopts($remote, $portopts);
21      if ($loc eq "moz") {
22          return BML::redirect("$LJ::SITEROOT/portal/moz.bml");
23      } else {
24          return BML::redirect("$LJ::SITEROOT$LJ::PORTAL_URI");
25      }
26  }
28  if ($op eq "u" || $op eq "d")
29  {
30      LJ::Portal::move_box($portopts, $loc, $pos, $bname, $op);
31      LJ::Portal::save_portopts($remote, $portopts);
32      if ($loc eq "moz") {
33          return BML::redirect("$LJ::SITEROOT/portal/moz.bml");
34      } else {
35          return BML::redirect("$LJ::SITEROOT$LJ::PORTAL_URI");
36      }
37  }
39  if ($op eq "a")
40  {
41      $title = "Customize Homepage";
42      
43      $body .= "<?h1 Welcome! h1?>";
44      $body .= "<?p By clicking the little plus sign on the main page you can do several things.  You can change the settings for the box you clicked, you can add a new box, or you can reset your settings back to the default. p?>";
46      $body .= "<?h1 Change Box Settings h1?>";
47      $body .= "<?p Change the settings for the box you just clicked:<ul>\n";
48      {
49          my $modform = LJ::Portal::make_box_modify_form($portopts, $loc, $pos);
50          if ($modform) {
51              $body .= $modform;
52          } else {
53              $body .= "<i>No options for this box.</i>";
54          }
55      }
56      $body .= "</ul> p?>";
57      
58      $body .= "<?h1 Add New Box h1?><?p You can create a new box to show on the main page:<ul>";
59      foreach my $loc (@LJ::PORTAL_COLS)
60      {
61          $body .= "<form method='post' action='alter.bml'>";
62          $body .= LJ::html_hidden("op", "addnew",
63                                   "loc", $loc);
64          $body .= "<p><b>$LJ::Portal::colname{$loc}</b><br>";
65          $body .= LJ::html_select({ 'name' => "bname",
66                                     'noescape' => 1,
67                                   },
68                                   "", "(Pick Box Type)",
69                                   LJ::Portal::get_box_types($loc));
70          $body .= " <input type=submit value=\"Proceed --&gt;\"></form>";
71      }
72      $body .= "</ul> p?>";
73      return;
74  }
76  if ($op eq "addnew") 
77  {
78      my $bname = $FORM{'bname'};
79      my $loc = $FORM{'loc'};
81      my $pos = LJ::Portal::create_new_box($portopts, $bname, $loc);
82      LJ::Portal::save_portopts($remote, $portopts);
83      
84      my $modform =  LJ::Portal::make_box_modify_form($portopts, $loc, $pos);
85      if ($modform) 
86      {
87          $title = "Configure Box";
88          $body .= $modform;
89          return;
90      } 
91      else
92      {
93          if ($loc eq "moz") {
94              $op = "mozadd";
95          } else {
96              return BML::redirect("$LJ::SITEROOT$LJ::PORTAL_URI");
97          }
98      }
99  }
101  if ($op eq "modbox")
103      my $newargs = LJ::Portal::modify_box($remote, $portopts, $FORM{'loc'}, $FORM{'pos'}, \%FORM);
104      if ($FORM{'loc'} eq "moz") {
105          $op = "mozadd";
106      } else {
107          return BML::redirect("$LJ::SITEROOT$LJ::PORTAL_URI");
108      }
111  ## add sidebar to mozilla
112  if ($op eq "mozadd")
114      $title = "Add Mozilla Sidebar";
115      $body = "If you're running Mozilla or Netscape &gt;= 6.0 you can click the link below to add this LJ portal box to your Mozilla sidebar.  If you're using Internet Explorer, sorry.<p>";
116      $body .= "<ul>";
118      $body .= "<a href=\"javascript:sidebar.addPanel('$LJ::SITENAME','$LJ::SITEROOT/portal/moz.bml','')\"><b>&lt;--- Add $LJ::SITENAME Mozilla Sidebar</b></a>";
119      $body .= "</ul>";
120      $body .= "If you just added a new box to the sidebar or changed a setting and the $LJ::SITENAME sidebar is already open, hit the reload link in the sidebar.";
121      return;
124  return;
126 _code?><?page
127 title=><?_code return $title; _code?>
128 body=><?_code return $body; _code?>
129 page?><?_c <LJDEP>
130 link: htdocs/portal/moz.bml, htdocs/portal/index.bml
131 post: htdocs/portal/alter.bml
132 </LJDEP> _c?>