App-SocialCalc-Multiplayer

 view release on metacpan or  search on metacpan

socialcalc/simpleedit15.pl  view on Meta::CPAN

//   var htmlstr = spreadsheet.CreateSheetHTML();
   var htmlstr = "<div>No HTML Data</div>";
   document.getElementById("newdata").value = sheetstr + "\\nHTML:\\n" + htmlstr;
   }

var http_request2;

function ajaxrequest2(url, contents) {

   http_request2 = null;

   if (window.XMLHttpRequest) { // Mozilla, Safari,...
      http_request2 = new XMLHttpRequest();
      }
   else if (window.ActiveXObject) { // IE
      try {
         http_request2 = new ActiveXObject("Msxml2.XMLHTTP");
         }
      catch (e) {
         try {
            http_request2 = new ActiveXObject("Microsoft.XMLHTTP");
            }
         catch (e) {}
         }
      }
   if (!http_request2) {
      alert('Giving up :( Cannot create an XMLHTTP instance');
      return false;
      }

   // Make the actual request

   http_request2.onreadystatechange = alertContents2;
   http_request2.open('POST', document.URL, true); // async
   http_request2.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
   http_request2.send(contents);

   return true;

   }

function alertContents2() {

   var loadedstr = "";
   var parts;

   if (http_request2.readyState == 4) {
      try {
         if (http_request2.status == 200) {
            loadedstr = http_request2.responseText || "";
            http_request2 = null;
            }
         else {
            ;
            }
         }
      catch (e) {
         }
      funccache[funcquery] = loadedstr; // remember for next time
      SocialCalc.Formula.RemoteFunctionInfo.waitingForServer = null;
      SocialCalc.RecalcSetTimeout();
      }
   }

// start everything

   SocialCalc.Constants.defaultImagePrefix = "/sgi/scjstest/images/sc-";
   SocialCalc.Popup.imagePrefix = SocialCalc.Constants.defaultImagePrefix;

   var spreadsheet = new SocialCalc.SpreadsheetControl();
   spreadsheet.InitializeSpreadsheetControl("tableeditor", 0, 0, 0);

   var savestr = document.getElementById("sheetdata").value;
   var parts = spreadsheet.DecodeSpreadsheetSave(savestr);
   if (parts) {
      if (parts.sheet) {
         spreadsheet.sheet.ResetSheet();
         spreadsheet.ParseSheetSave(savestr.substring(parts.sheet.start, parts.sheet.end));
         }
      if (parts.edit) {
         spreadsheet.editor.LoadEditorSettings(savestr.substring(parts.edit.start, parts.edit.end));
         }
      }
   if (spreadsheet.sheet.attribs.recalc=="off") {
      spreadsheet.sheet.attribs.needsrecalc = "yes"; // default turn it on
      spreadsheet.ExecuteCommand('redisplay', '');
      }
   else {
      spreadsheet.ExecuteCommand('recalc', '');
      }

</script>
</body>
</html>
EOF

   return $response;

   }


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

sub start_editdrawing {

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

   my ($response, $sheetstr);

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

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

   $response = <<"EOF"; # output page with edit JS code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
 "http://www.w3.org/TR/html4/strict.dtd">
<html>



( run in 1.977 second using v1.01-cache-2.11-cpan-39bf76dae61 )