App-SocialCalc-Multiplayer

 view release on metacpan or  search on metacpan

socialcalc/simpleedit15.pl  view on Meta::CPAN


   $response .= <<"EOF";
</div>
<br>
<input type="hidden" name="pagename" value="$pagename">
</form>
<form action="" method="POST">
<input type="text" name="newpagename" value="">
<input type="submit" name="newpage" value="Create New Page">
</form>
</div>
<br>
</body>
</html>
EOF

   return $response;
   }


#
# do_editpage($q, $pagename, $statusmessage) - Show page editing display
#

sub do_editpage {

   my ($q, $pagename, $statusmessage) = @_;
   my $response;

   my $page = {};
   load_page($q, $pagename, $page);

   my $edittype = $q->param("editpage") ? "clean" : "raw";

   my $pagestr = special_chars($page->{$edittype});

   $response = <<"EOF";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
 "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Simple Page Editor With Spreadsheets $versionstr</title>
<style>
body, td, input, texarea
 {font-family:verdana,helvetica,sans-serif;font-size:small;}
</style>
</head>
<body>
<form name="f0" action="" method="POST">
<div style="padding:6px;background-color:#80A9F3;">
<div style="font-weight:bold;color:white;">SIMPLE SYSTEM FOR EDITING PAGES WITH SPREADSHEETS AND MORE</div>
<div style="color:#FDD;font-weight:bold;">$statusmessage &nbsp;</div>
<div style="margin-bottom:6px;">Editing page: <span style="font-style:italic;font-weight:bold;">$pagename</span></div>
<script>
function addss(sstype) {
 var now = new Date();
 var name = ""+now.getFullYear()+(now.getMonth()+101).toString().substr(1)+(now.getDate()+100).toString().substr(1)+
        (now.getHours()+100).toString().substr(1)+(now.getMinutes()+100).toString().substr(1)+(now.getSeconds()+100).toString().substr(1);
 var sname =
  prompt("New "+sstype+" name (alphanumeric only, unique on page):", name);
 if (!sname) return false;
 sname = sname.replace(/[^a-zA-Z0-9]/g, "").toLowerCase();
 if (!sname) return false;
 document.f0.pagetext.value =
  document.f0.pagetext.value + "\\n["+sstype+":" + sname +"]\\n";
 return false;
}
</script>
<div style="margin-bottom:4px;">
<table cellspacing="0" cellpadding="0" width="100%">
<tr>
<td>
 <input type="submit" name="savepageedit" value="Save">
 <input type="hidden" name="edittype" value="$edittype">
 <input type="submit" name="canceledit" value="Cancel">
</td>
<td align="right">
EOF

   if ($edittype eq "clean") {
      $response .= <<"EOF";
<input type="submit" value="Add Spreadsheet" onclick="return addss('spreadsheet');" style="font-size:smaller;">
<input type="submit" value="Add Data Table" onclick="return addss('datatable');" style="font-size:smaller;">
<input type="submit" value="Add Character Drawing" onclick="return addss('drawing');" style="font-size:smaller;">
EOF
      }

   $response .= <<"EOF";
</td></tr></table>
</div>
<textarea name="pagetext" rows="20" style="width:100%;">$pagestr</textarea>
<input type="hidden" name="pagename" value="$pagename">
</div>
</form>
</body>
</html>
EOF

   return $response;
   }

#
# start_editsheet($pagename, $sheetname, $q, $statusmessage)
#    - render initial editing display
#

sub start_editsheet {

   my ($pagename, $sheetname, $q, $statusmessage) = @_;

   my ($response, $sheetstr);

   my $page = {};
   load_page($q, $pagename, $page);

   $sheetstr = $page->{items}{$sheetname}{text};

   my $htmlpos = index($sheetstr, "\nHTML:\n");
   if ($htmlpos >= 0) {
      $sheetstr = substr($sheetstr, 0, $htmlpos);



( run in 0.721 second using v1.01-cache-2.11-cpan-6aa56a78535 )