view release on metacpan or search on metacpan
inc/Module/Install/Fetch.pm view on Meta::CPAN
require Cwd;
my $dir = Cwd::getcwd();
chdir $args{local_dir} or return if exists $args{local_dir};
if (eval { require LWP::Simple; 1 }) {
LWP::Simple::mirror($args{url}, $file);
}
elsif (eval { require Net::FTP; 1 }) { eval {
# use Net::FTP to get past firewall
my $ftp = Net::FTP->new($host, Passive => 1, Timeout => 600);
$ftp->login("anonymous", 'anonymous@example.com');
$ftp->cwd($path);
$ftp->binary;
$ftp->get($file) or (warn("$!\n"), return);
$ftp->quit;
} }
elsif (my $ftp = $self->can_run('ftp')) { eval {
# no Net::FTP, fallback to ftp.exe
require FileHandle;
my $fh = FileHandle->new;
socialcalc/index.mt view on Meta::CPAN
SocialCalc.ExecuteSheetCommand(editor.context.sheetobj, parseobj, true); // note: not queued!!!??!!
SocialCalc.Clipboard.clipboard.loadedByCtrlC = true; // remember this clipboard data was from ctrl-c
ta.value = SocialCalc.ConvertSaveToOtherFormat(SocialCalc.Clipboard.clipboard, "tab");
ta.style.display = "block";
ta.focus();
ta.select();
// var range = document.selection.createRange();
var range = window.getSelection().getRangeAt(0);
range.execCommand("copy");
window.setTimeout(function() {
var s = SocialCalc.GetSpreadsheetControlObject();
var editor = s.editor;
var ta = editor.pasteTextarea;
ta.style.display = "none";
}, 200);
return;
}
function dosum() {
socialcalc/player.js view on Meta::CPAN
data.type = type;
socket.send(data);
}
socket = new io.Socket(null, {});
socket.connect();
socket.on('connect', function () {
isConnected = true;
SocialCalc.Callbacks.broadcast('ask.snapshot');
/* Wait for 30 secs for someone to send over the current snapshot before timing out. */
setTimeout(function(){ _hadSnapshot = true }, 30000);
});
socket.on('message', function (obj) {
onNewEvent(obj);
});
var onNewEvent = function(data) {
if (!isConnected) return;
if (data.user == _username) return;
if (data.to && data.to != _username) return;
if (typeof SocialCalc == 'undefined') return;
socialcalc/simpleedit15.pl view on Meta::CPAN
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);
socialcalc/socialcalc-3.js view on Meta::CPAN
sci.saveundo = saveundo;
if (sci.sheetobj.statuscallback) { // notify others if requested
sheet.statuscallback(sci, "cmdstart", "", sci.sheetobj.statuscallbackparams);
}
if (sci.saveundo) {
sci.sheetobj.changes.PushChange(""); // add a step to undo stack
}
sci.timerobj = window.setTimeout(SocialCalc.SheetCommandsTimerRoutine, sci.firsttimerdelay);
}
SocialCalc.SheetCommandsTimerRoutine = function() {
var errortext;
var sci = SocialCalc.SheetCommandInfo;
var starttime = new Date();
sci.timerobj = null;
socialcalc/socialcalc-3.js view on Meta::CPAN
sci.parseobj.NextLine();
if (sci.cmdextensionbusy.length > 0) { // forced wait
if (sci.sheetobj.statuscallback) { // notify others if requested
sci.sheetobj.statuscallback(sci, "cmdextension", sci.cmdextensionbusy, sci.sheetobj.statuscallbackparams);
}
return;
}
if (((new Date()) - starttime) >= sci.maxtimeslice) { // if taking too long, give up CPU for a while
sci.timerobj = window.setTimeout(SocialCalc.SheetCommandsTimerRoutine, sci.timerdelay);
return;
}
}
if (sci.sheetobj.statuscallback) { // notify others if requested
sci.sheetobj.statuscallback(sci, "cmdend", "", sci.sheetobj.statuscallbackparams);
}
}
socialcalc/socialcalc-3.js view on Meta::CPAN
// Recalc the entire sheet
SocialCalc.RecalcSheet = function(sheet) {
var coord, err, recalcdata;
var scri = SocialCalc.RecalcInfo;
delete sheet.attribs.circularreferencecell; // reset recalc-wide things
SocialCalc.Formula.FreshnessInfoReset();
SocialCalc.RecalcClearTimeout();
scri.sheet = sheet; // set values needed by background recalc
scri.currentState = scri.state.start_calc;
scri.starttime = new Date();
if (sheet.statuscallback) {
sheet.statuscallback(scri, "calcstart", null, sheet.statuscallbackparams);
}
SocialCalc.RecalcSetTimeout();
}
//
// SocialCalc.RecalcSetTimeout - set a timer for next recalc step
//
SocialCalc.RecalcSetTimeout = function() {
var scri = SocialCalc.RecalcInfo;
scri.recalctimer = window.setTimeout(SocialCalc.RecalcTimerRoutine, scri.timeslicedelay);
}
//
// SocialCalc.RecalcClearTimeout - cancel any timeouts
//
SocialCalc.RecalcClearTimeout = function() {
var scri = SocialCalc.RecalcInfo;
if (scri.recalctimer) {
window.clearTimeout(scri.recalctimer);
scri.recalctimer = null;
}
}
//
// SocialCalc.RecalcLoadedSheet(sheetname, str, recalcneeded)
//
// Called when a sheet finishes loading with name, string, and t/f whether it should be recalced.
socialcalc/socialcalc-3.js view on Meta::CPAN
sheet = SocialCalc.Formula.AddSheetToCache(sheetname || scf.SheetCache.waitingForLoading, str);
if (recalcneeded && sheet && sheet.attribs.recalc!="off") { // if recalcneeded, and not manual sheet, chain in this new sheet to recalc loop
sheet.previousrecalcsheet = scri.sheet;
scri.sheet = sheet;
scri.currentState = scri.state.start_calc;
}
scf.SheetCache.waitingForLoading = null;
SocialCalc.RecalcSetTimeout();
}
//
// SocialCalc.RecalcTimerRoutine - handles the actual order determination and cell-by-cell recalculation in the background
//
SocialCalc.RecalcTimerRoutine = function() {
socialcalc/socialcalc-3.js view on Meta::CPAN
return;
}
var recalcdata = sheet.recalcdata;
var do_statuscallback = function(status, arg) { // routine to do callback if required
if (sheet.statuscallback) {
sheet.statuscallback(recalcdata, status, arg, sheet.statuscallbackparams);
}
}
SocialCalc.RecalcClearTimeout();
if (scri.currentState == scri.state.start_calc) {
recalcdata = new SocialCalc.RecalcData();
sheet.recalcdata = recalcdata;
for (coord in sheet.cells) { // get list of cells to check for order
if (!coord) continue;
recalcdata.celllist.push(coord);
}
socialcalc/socialcalc-3.js view on Meta::CPAN
recalcdata.calclist = {}; // start with empty list
scri.currentState = scri.state.order; // drop through to determining recalc order
}
if (scri.currentState == scri.state.order) {
while (recalcdata.celllistitem < recalcdata.celllist.length) { // check all the cells to see if they should be on the list
coord = recalcdata.celllist[recalcdata.celllistitem++];
err = SocialCalc.RecalcCheckCell(sheet, coord);
if (((new Date()) - starttime) >= scri.maxtimeslice) { // if taking too long, give up CPU for a while
do_statuscallback("calcorder", {coord: coord, total: recalcdata.celllist.length, count: recalcdata.celllistitem});
SocialCalc.RecalcSetTimeout();
return;
}
}
do_statuscallback("calccheckdone", recalcdata.calclistlength);
recalcdata.nextcalc = recalcdata.firstcalc; // start at the beginning of the recalc chain
scri.currentState = scri.state.calc; // loop through cells on next timer call
SocialCalc.RecalcSetTimeout();
return;
}
if (scri.currentState == scri.state.start_wait) { // starting to wait for something
scri.currentState = scri.state.done_wait; // finished on next timer call
if (scri.LoadSheet) {
status = scri.LoadSheet(scf.SheetCache.waitingForLoading);
if (status) { // started a load operation
return;
}
}
SocialCalc.RecalcLoadedSheet(null, "", false);
return;
}
if (scri.currentState == scri.state.done_wait) {
scri.currentState = scri.state.calc; // loop through cells on next timer call
SocialCalc.RecalcSetTimeout();
return;
}
// otherwise should be scri.state.calc
if (scri.currentState != scri.state.calc) {
alert("Recalc state error: "+scri.currentState+". Error in SocialCalc code.");
}
coord = sheet.recalcdata.nextcalc;
while (coord) {
cell = sheet.cells[coord];
eresult = scf.evaluate_parsed_formula(cell.parseinfo, sheet, false);
if (scf.SheetCache.waitingForLoading) { // wait until restarted
recalcdata.nextcalc = coord; // start with this cell again
recalcdata.count += count;
do_statuscallback("calcloading", {sheetname: scf.SheetCache.waitingForLoading});
scri.currentState = scri.state.start_wait; // start load on next timer call
SocialCalc.RecalcSetTimeout();
return;
}
if (scf.RemoteFunctionInfo.waitingForServer) { // wait until restarted
recalcdata.nextcalc = coord; // start with this cell again
recalcdata.count += count;
do_statuscallback("calcserverfunc",
{funcname: scf.RemoteFunctionInfo.waitingForServer, coord: coord, total: recalcdata.calclistlength, count: recalcdata.count});
scri.currentState = scri.state.done_wait; // start load on next timer call
return; // return and wait for next recalc timer event
socialcalc/socialcalc-3.js view on Meta::CPAN
if (eresult.error) {
cell.errors = eresult.error;
}
count++;
coord = sheet.recalcdata.calclist[coord];
if (((new Date()) - starttime) >= scri.maxtimeslice) { // if taking too long, give up CPU for a while
recalcdata.nextcalc = coord; // start with next cell on chain
recalcdata.count += count;
do_statuscallback("calcstep", {coord: coord, total: recalcdata.calclistlength, count: recalcdata.count});
SocialCalc.RecalcSetTimeout();
return;
}
}
recalcdata.inrecalc = false;
delete sheet.recalcdata; // save memory and clear out for name lookup formula evaluation
delete sheet.attribs.needsrecalc; // remember recalc done
scri.sheet = sheet.previousrecalcsheet || null; // chain back if doing recalc of loaded sheets
if (scri.sheet) {
scri.currentState = scri.state.calc; // start where we left off
SocialCalc.RecalcSetTimeout();
return;
}
scf.FreshnessInfo.recalc_completed = true; // say freshness info is complete
do_statuscallback("calcfinished", (new Date()) - scri.starttime);
}
socialcalc/socialcalcserver.pl view on Meta::CPAN
else {
spreadsheet.ExecuteCommand('recalc', '');
}
function docmdext (name, data, sheet, cmd, saveundo) {
var cmdstr = cmd.RestOfString();
data.editor.EditorScheduleSheetCommands(cmdstr, false, false);
SocialCalc.SheetCommandInfo.cmdextensionbusy = "Do Cmd Ext "+cmdstr;
window.setTimeout(function(){SocialCalc.ResumeFromCmdExtension();}, 100);
}
function doloadclipboardext (name, data, sheet, cmd, saveundo) {
var cmdstr = cmd.RestOfString();
SocialCalc.SheetCommandInfo.cmdextensionbusy = "Load Clipboard Ext "+cmdstr;
loaddata(cmdstr);
// window.setTimeout(function(){SocialCalc.ResumeFromCmdExtension();}, 100);
// SocialCalc.ResumeFromCmdExtension();
}
var loaddatatimerobj;
function loaddata(url) {
var loadscript = document.createElement("script");
loadscript.type = "text/javascript";
loadscript.src = url+"?"+((new Date()).getTime()+'0');
document.body.appendChild(loadscript);
loaddatatimerobj = window.setTimeout(loaddatatimeout, 4000);
}
function doloaddataload(val) {
if (loaddatatimerobj) {
window.clearTimeout(loaddatatimerobj);
loaddatatimerobj = null;
}
var sview = SocialCalc.GetSpreadsheetControlObject();
parts = sview.DecodeSpreadsheetSave(val);
if (parts) {
if (parts.sheet) {
SocialCalc.Clipboard.clipboard = SocialCalc.decodeFromSave(val.substring(parts.sheet.start, parts.sheet.end));
}
}
// window.setTimeout(function(){SocialCalc.ResumeFromCmdExtension();}, 100);
SocialCalc.ResumeFromCmdExtension();
}
function loaddatatimeout() {
if (loaddatatimerobj) {
window.clearTimeout(loaddatatimerobj);
loaddatatimerobj = null;
}
window.setTimeout(function(){SocialCalc.ResumeFromCmdExtension();}, 10);
}
// Remote data lookup demo code
var loadtimerobj;
function loadsheet(sheetname) {
var matches = sheetname.match(/^\\{scdata\\:\\s+(.+?)\\}\$/); // {scdata: URL w/o http://)
if (!matches) {
return false;
}
var loadscript = document.createElement("script");
loadscript.type = "text/javascript";
loadscript.src = "http://"+matches[1]+"?"+((new Date()).getTime()+'0');
document.body.appendChild(loadscript);
loadtimerobj = window.setTimeout(loadframetimeout, 4000);
return true;
}
SocialCalc.RecalcInfo.LoadSheet = loadsheet;
function doloadframeload(val) {
if (loadtimerobj) {
window.clearTimeout(loadtimerobj);
loadtimerobj = null;
}
var sview = SocialCalc.GetSpreadsheetControlObject();
parts = sview.DecodeSpreadsheetSave(val);
if (parts) {
if (parts.sheet) {
SocialCalc.RecalcLoadedSheet(null, val.substring(parts.sheet.start, parts.sheet.end), true); // notify recalc loop
}
}
if (val=="") {
SocialCalc.RecalcLoadedSheet(null, "", true); // notify recalc loop that it's not available, but that we tried
}
}
function loadframetimeout() {
if (loadtimerobj) {
window.clearTimeout(loadtimerobj);
loadtimerobj = null;
}
SocialCalc.RecalcLoadedSheet(null, "", true); // notify recalc loop that it's not available, but that we tried
}
</script>
</body>
</html>
socialcalc/socialcalctableeditor.js view on Meta::CPAN
var range = document.body.createControlRange();
range.addElement(ha.childNodes[0]);
range.select();
}
*/
ta.style.display = "block";
ta.value = cliptext; // must follow "block" setting for Webkit
ta.focus();
ta.select();
window.setTimeout(function() {
if (!SocialCalc.GetSpreadsheetControlObject) return; // in case not loaded
var s = SocialCalc.GetSpreadsheetControlObject();
if (!s) return;
var editor = s.editor;
/*
var ha = editor.pasteHTMLarea;
if (ha) {
ha.blur();
ha.innerHTML = '';
ha.style.visibility = 'hidden';
socialcalc/socialcalctableeditor.js view on Meta::CPAN
ha = editor.pasteHTMLarea;
if (ha) {
/* Pasting via HTML - Currently IE only */
ha.style.visibility = "visible";
ha.focus();
}
else {
showPasteTextArea();
}
window.setTimeout(function() {
if (!SocialCalc.GetSpreadsheetControlObject) return;
var s = SocialCalc.GetSpreadsheetControlObject();
if (!s) return;
var editor = s.editor;
var value = null;
var isPasteSameAsClipboard = false;
ha = editor.pasteHTMLarea;
if (ha) {
/* IE: We append a U+FFFC to every TD that's not the last of its row,
socialcalc/socialcalctableeditor.js view on Meta::CPAN
editor.EditorScheduleSheetCommands(cmd, true, false);
SocialCalc.KeyboardFocus();
}, 200);
return true;
case "[ctrl-z]":
editor.EditorScheduleSheetCommands("undo", true, false);
return false;
case "[ctrl-s]": // !!!! temporary hack
window.setTimeout(
function() {
if (!SocialCalc.GetSpreadsheetControlObject) return;
var s = SocialCalc.GetSpreadsheetControlObject();
if (!s) return;
var editor = s.editor;
var sheet = editor.context.sheetobj;
var cell = sheet.GetAssuredCell(editor.ecell.coord);
var ntvf = cell.nontextvalueformat ? sheet.valueformats[cell.nontextvalueformat-0] || "" : "";
var newntvf = window.prompt("Advanced Feature:\n\nCustom Numeric Format or Command", ntvf);
if (newntvf != null) { // not cancelled
socialcalc/socialcalctableeditor.js view on Meta::CPAN
/*
SocialCalc.EditorStepSet = function(editor, status, arg) {
var esi = SocialCalc.EditorStepInfo;
addmsg("step: "+status);
if (esi.timerobj) {
alert("Already waiting. Old/new: "+esi.status+"/"+status);
}
esi.editor = editor;
esi.status = status;
esi.timerobj = window.setTimeout(SocialCalc.EditorStepDone, 1);
}
SocialCalc.EditorStepDone = function() {
var esi = SocialCalc.EditorStepInfo;
esi.timerobj = null;
SocialCalc.EditorSheetStatusCallback(null, esi.status, null, esi.editor);
}
*/
//
socialcalc/socialcalctableeditor.js view on Meta::CPAN
editor.toplevel.detachEvent("onmouseup", SocialCalc.ProcessEditorColsizeMouseUp);
editor.toplevel.detachEvent("onmousemove", SocialCalc.ProcessEditorColsizeMouseMove);
editor.toplevel.releaseCapture();
}
var newsize = (editor.context.colwidth[mouseinfo.mouseresizecolnum]-0) + (clientX - mouseinfo.mousedownclientx);
if (newsize < SocialCalc.Constants.defaultMinimumColWidth) newsize = SocialCalc.Constants.defaultMinimumColWidth;
editor.EditorScheduleSheetCommands("set "+mouseinfo.mouseresizecol+" width "+newsize, true, false);
if (editor.timeout) window.clearTimeout(editor.timeout);
editor.timeout = window.setTimeout(SocialCalc.FinishColsize, 1); // wait - Firefox 2 has a bug otherwise with next mousedown
return false;
}
SocialCalc.FinishColsize = function() {
var mouseinfo = SocialCalc.EditorMouseInfo;
var editor = mouseinfo.editor;
socialcalc/socialcalctableeditor.js view on Meta::CPAN
SocialCalc.SetDragAutoRepeat = function(editor, mouseinfo, callback) {
var repeatinfo = SocialCalc.AutoRepeatInfo;
var coord, direction;
repeatinfo.repeatcallback = callback; // null in regular case
if (!mouseinfo) { // cancel
if (repeatinfo.timer) { // If was repeating, stop
window.clearTimeout(repeatinfo.timer); // cancel timer
repeatinfo.timer = null;
}
repeatinfo.mouseinfo = null;
return; // done
}
repeatinfo.editor = editor;
if (repeatinfo.mouseinfo) { // check for change while repeating
if (mouseinfo.rowheader || mouseinfo.rowfooter) {
socialcalc/socialcalctableeditor.js view on Meta::CPAN
}
repeatinfo.mouseinfo = mouseinfo;
if (mouseinfo.distance < 5) repeatinfo.repeatinterval = 333;
else if (mouseinfo.distance < 10) repeatinfo.repeatinterval = 250;
else if (mouseinfo.distance < 25) repeatinfo.repeatinterval = 100;
else if (mouseinfo.distance < 35) repeatinfo.repeatinterval = 75;
else { // too far - stop repeating
if (repeatinfo.timer) { // if repeating, cancel it
window.clearTimeout(repeatinfo.timer); // cancel timer
repeatinfo.timer = null;
}
return;
}
if (!repeatinfo.timer) { // start if not already running
repeatinfo.timer = window.setTimeout(SocialCalc.DragAutoRepeat, repeatinfo.repeatinterval);
}
return;
}
//
// DragAutoRepeat()
//
socialcalc/socialcalctableeditor.js view on Meta::CPAN
else if (direction == "up" && cr.row > 1) cr.row--;
else if (direction == "down") cr.row++;
coord = SocialCalc.crToCoord(cr.col, cr.row);
repeatinfo.repeatcallback(coord, direction);
}
else {
coord = repeatinfo.editor.MoveECellWithKey("[a"+direction+"]shifted");
if (coord) repeatinfo.editor.EditorMouseRange(coord);
}
repeatinfo.timer = window.setTimeout(SocialCalc.DragAutoRepeat, repeatinfo.repeatinterval);
}
//
// Handling Clicking
//
SocialCalc.ProcessEditorDblClick = function(e) {
var editor, result, coord, textarea, wval, range;
socialcalc/socialcalctableeditor.js view on Meta::CPAN
//
// ScheduleRender(editor)
//
// Do a series of timeouts to render the sheet, wait for background layout and
// rendering by the browser, and then update editor visuals, sliders, etc.
//
SocialCalc.ScheduleRender = function(editor) {
if (editor.timeout) window.clearTimeout(editor.timeout); // in case called more than once, just use latest
SocialCalc.EditorSheetStatusCallback(null, "schedrender", null, editor);
SocialCalc.EditorStepInfo.editor = editor;
editor.timeout = window.setTimeout(SocialCalc.DoRenderStep, 1);
}
// DoRenderStep()
//
SocialCalc.DoRenderStep = function() {
var editor = SocialCalc.EditorStepInfo.editor;
editor.timeout = null;
editor.EditorRenderSheet();
SocialCalc.EditorSheetStatusCallback(null, "renderdone", null, editor);
SocialCalc.EditorSheetStatusCallback(null, "schedposcalc", null, editor);
editor.timeout = window.setTimeout(SocialCalc.DoPositionCalculations, 1);
}
//
// SocialCalc.SchedulePositionCalculations(editor)
//
SocialCalc.SchedulePositionCalculations = function(editor) {
SocialCalc.EditorStepInfo.editor = editor;
SocialCalc.EditorSheetStatusCallback(null, "schedposcalc", null, editor);
editor.timeout = window.setTimeout(SocialCalc.DoPositionCalculations, 1);
}
// DoPositionCalculations(editor)
//
// Update editor visuals, sliders, etc.
//
// Note: Only call this after the DOM objects have been modified and rendered!
//
socialcalc/socialcalctableeditor.js view on Meta::CPAN
var ok = false;
try {
editor.CalculateEditorPositions();
ok = true;
} catch (e) {}
if (!ok) {
if (typeof $ != 'undefined') {
$(window).trigger('resize');
setTimeout( SocialCalc.DoPositionCalculations, 400);
}
return; /* Workaround IE6 partial-initialized-DOM bug */
}
editor.verticaltablecontrol.PositionTableControlElements();
editor.horizontaltablecontrol.PositionTableControlElements();
SocialCalc.EditorSheetStatusCallback(null, "doneposcalc", null, editor);
if (editor.ensureecell && editor.ecell && !editor.deferredCommands.length) { // don't do if deferred cmd to execute
socialcalc/socialcalctableeditor.js view on Meta::CPAN
if (!editor) return true; // we're not handling it -- let browser do default
var cellhandles = editor.cellhandles;
if (!cellhandles.editor) return true; // no handles
if (!editor.cellhandles.mouseDown) {
editor.cellhandles.ShowCellHandles(true, true); // show move handles, too
if (target == cellhandles.dragpalette) {
var whichhandle = SocialCalc.SegmentDivHit([scc.CH_radius1, scc.CH_radius2], editor.cellhandles.dragpalette, clientX, clientY);
if (whichhandle==0) { // off of active part of palette
SocialCalc.CellHandlesHoverTimeout();
return;
}
if (cellhandles.tooltipstimer) {
window.clearTimeout(cellhandles.tooltipstimer);
cellhandles.tooltipstimer = null;
}
cellhandles.tooltipswhichhandle = whichhandle;
cellhandles.tooltipstimer = window.setTimeout(SocialCalc.CellHandlesTooltipsTimeout, 700);
}
if (cellhandles.timer) {
window.clearTimeout(cellhandles.timer);
cellhandles.timer = null;
}
cellhandles.timer = window.setTimeout(SocialCalc.CellHandlesHoverTimeout, 3000);
}
return;
}
//
// whichsegment = SocialCalc.SegmentDivHit(segtable, divWithMouseHit, x, y)
//
// Takes segtable = [upperleft quadrant, upperright, bottomright, bottomleft]
socialcalc/socialcalctableeditor.js view on Meta::CPAN
continue;
}
return 0; // didn't match
}
//addmsg((x-divWithMouseHit.offsetLeft)+","+(y-divWithMouseHit.offsetTop)+"="+quadrant+" "+v);
return v;
}
SocialCalc.CellHandlesHoverTimeout = function() {
editor = SocialCalc.Keyboard.focusTable; // get TableEditor doing keyboard stuff
if (!editor) return true; // we're not handling it -- let browser do default
var cellhandles = editor.cellhandles;
if (cellhandles.timer) {
window.clearTimeout(cellhandles.timer);
cellhandles.timer = null;
}
if (cellhandles.tooltipstimer) {
window.clearTimeout(cellhandles.tooltipstimer);
cellhandles.tooltipstimer = null;
}
editor.cellhandles.ShowCellHandles(true, false); // hide move handles
}
SocialCalc.CellHandlesTooltipsTimeout = function() {
editor = SocialCalc.Keyboard.focusTable; // get TableEditor doing keyboard stuff
if (!editor) return true; // we're not handling it -- let browser do default
var cellhandles = editor.cellhandles;
if (cellhandles.tooltipstimer) {
window.clearTimeout(cellhandles.tooltipstimer);
cellhandles.tooltipstimer = null;
}
var whichhandle = cellhandles.tooltipswhichhandle;
if (whichhandle==0) { // off of active part of palette
SocialCalc.CellHandlesHoverTimeout();
return;
}
if (whichhandle==-3) {
cellhandles.dragtooltip.innerHTML = scc.s_CHfillAllTooltip;
}
else if (whichhandle==3) {
cellhandles.dragtooltip.innerHTML = scc.s_CHfillContentsTooltip;
}
else if (whichhandle==-2) {
cellhandles.dragtooltip.innerHTML = scc.s_CHmovePasteAllTooltip;
socialcalc/socialcalctableeditor.js view on Meta::CPAN
editor = SocialCalc.Keyboard.focusTable; // get TableEditor doing keyboard stuff
if (!editor) return true; // we're not handling it -- let browser do default
if (editor.busy) return; // don't do anything when busy (is this correct?)
var cellhandles = editor.cellhandles;
cellhandles.movedmouse = false; // detect no-op
if (cellhandles.timer) { // cancel timer
window.clearTimeout(cellhandles.timer);
cellhandles.timer = null;
}
if (cellhandles.tooltipstimer) {
window.clearTimeout(cellhandles.tooltipstimer);
cellhandles.tooltipstimer = null;
}
cellhandles.dragtooltip.innerHTML = " ";
cellhandles.dragtooltip.style.display = "none";
range = editor.range;
var whichhandle = SocialCalc.SegmentDivHit([scc.CH_radius1, scc.CH_radius2], editor.cellhandles.dragpalette, clientX, clientY);
if (whichhandle==1 || whichhandle==-1 || whichhandle==0) {
cellhandles.ShowCellHandles(true, false); // hide move handles
socialcalc/socialcalctableeditor.js view on Meta::CPAN
var tooltipinfo = SocialCalc.TooltipInfo;
tooltipinfo.viewport = SocialCalc.GetViewportInfo();
tooltipinfo.clientX = e.clientX + tooltipinfo.viewport.horizontalScroll;
tooltipinfo.clientY = e.clientY + tooltipinfo.viewport.verticalScroll;
var tobj = SocialCalc.LookupElement(e.target || e.srcElement, tooltipinfo.registeredElements);
if (tooltipinfo.timer) { // waiting to see if holding still: didn't hold still
window.clearTimeout(tooltipinfo.timer); // cancel timer
tooltipinfo.timer = null;
}
if (tooltipinfo.popupElement) { // currently displaying a tip: hide it
SocialCalc.TooltipHide();
}
tooltipinfo.tooltipElement = tobj || null;
if (!tobj || SocialCalc.ButtonInfo.buttonDown) return; // if not an object with a tip or a "button" is down, ignore
tooltipinfo.timer = window.setTimeout(SocialCalc.TooltipWaitDone, 700);
if (tooltipinfo.tooltipElement.element.addEventListener) { // Register event for mouse down which cancels tooltip stuff
tooltipinfo.tooltipElement.element.addEventListener("mousedown", SocialCalc.TooltipMouseDown, false);
}
else if (tooltipinfo.tooltipElement.element.attachEvent) { // IE
tooltipinfo.tooltipElement.element.attachEvent("onmousedown", SocialCalc.TooltipMouseDown);
}
return;
socialcalc/socialcalctableeditor.js view on Meta::CPAN
// TooltipMouseDown(event)
//
SocialCalc.TooltipMouseDown = function(event) {
var e = event || window.event;
var tooltipinfo = SocialCalc.TooltipInfo;
if (tooltipinfo.timer) {
window.clearTimeout(tooltipinfo.timer); // cancel timer
tooltipinfo.timer = null;
}
if (tooltipinfo.popupElement) { // currently displaying a tip: hide it
SocialCalc.TooltipHide();
}
if (tooltipinfo.tooltipElement) {
if (tooltipinfo.tooltipElement.element.removeEventListener) { // DOM Level 2 -- Firefox, et al
tooltipinfo.tooltipElement.element.removeEventListener("mousedown", SocialCalc.TooltipMouseDown, false);
socialcalc/socialcalctableeditor.js view on Meta::CPAN
else e.returnValue = false; // IE 5+
buttoninfo.horizontalScroll = viewportinfo.horizontalScroll;
buttoninfo.verticalScroll = viewportinfo.verticalScroll;
buttoninfo.clientX = e.clientX + buttoninfo.horizontalScroll; // get document-relative coordinates
buttoninfo.clientY = e.clientY + buttoninfo.verticalScroll;
if (bobj && bobj.functionobj && bobj.functionobj.MouseDown) bobj.functionobj.MouseDown(e, buttoninfo, bobj);
if (bobj.repeatwait) { // if a repeat wait is set, then starting waiting for first repetition
buttoninfo.timer = window.setTimeout(SocialCalc.ButtonRepeat, bobj.repeatwait);
}
return;
}
//
// ButtonMouseUp(event)
//
SocialCalc.ButtonMouseUp = function(event) {
var e = event || window.event;
var buttoninfo = SocialCalc.ButtonInfo;
var bobj = buttoninfo.buttonElement;
if (buttoninfo.timer) { // if repeating, cancel it
window.clearTimeout(buttoninfo.timer); // cancel timer
buttoninfo.timer = null;
}
if (!buttoninfo.buttonDown) return; // already did this (e.g., in IE, releaseCapture fires losecapture)
if (e.stopPropagation) e.stopPropagation(); // DOM Level 2
else e.cancelBubble = true; // IE 5+
if (e.preventDefault) e.preventDefault(); // DOM Level 2
else e.returnValue = false; // IE 5+
socialcalc/socialcalctableeditor.js view on Meta::CPAN
SocialCalc.ButtonRepeat = function() {
var buttoninfo = SocialCalc.ButtonInfo;
var bobj = buttoninfo.buttonElement;
if (!bobj) return;
if (bobj && bobj.functionobj && bobj.functionobj.Repeat) bobj.functionobj.Repeat(null, buttoninfo, bobj);
buttoninfo.timer = window.setTimeout(SocialCalc.ButtonRepeat, bobj.repeatinterval || 100);
}
// *************************************
//
// MouseWheel functions:
//
// *************************************
SocialCalc.MouseWheelInfo = {
socialcalc/socialcalcviewer.js view on Meta::CPAN
rmstr = savestr.substring(parts.repeatingmacro.start, parts.repeatingmacro.end);
rmstr = rmstr.replace("\r", ""); // make sure no CR, only LF
pos = rmstr.indexOf("\n");
if (pos > 0) {
t = rmstr.substring(0, pos)-0; // get number
t2 = t;
// if (!(t > 0)) t = 60; // handles NAN, too
spreadsheet.repeatingMacroInterval = t;
spreadsheet.repeatingMacroCommands = rmstr.substring(pos+1);
if (t2 > 0) { // zero means don't start yet
spreadsheet.repeatingMacroTimer = window.setTimeout(SocialCalc.SpreadsheetViewerDoRepeatingMacro, spreadsheet.repeatingMacroInterval * 1000);
}
}
}
}
if (spreadsheet.editor.context.sheetobj.attribs.recalc=="off" || spreadsheet.noRecalc) {
spreadsheet.editor.ScheduleRender();
}
else {
spreadsheet.editor.EditorScheduleSheetCommands("recalc");
}
socialcalc/socialcalcviewer.js view on Meta::CPAN
SocialCalc.SpreadsheetViewerRepeatMacroCommand = function(name, data, sheet, cmd, saveundo) {
var spreadsheet = SocialCalc.GetSpreadsheetViewerObject();
var rest = cmd.RestOfString();
var t = rest-0; // get number
if (!(t > 0)) t = spreadsheet.repeatingMacroInterval; // handles NAN, too, using last value
spreadsheet.repeatingMacroInterval = t;
spreadsheet.repeatingMacroTimer = window.setTimeout(SocialCalc.SpreadsheetViewerDoRepeatingMacro, spreadsheet.repeatingMacroInterval * 1000);
}
SocialCalc.SpreadsheetViewerStopRepeatingMacro = function() {
var spreadsheet = SocialCalc.GetSpreadsheetViewerObject();
if (spreadsheet.repeatingMacroTimer) {
window.clearTimeout(spreadsheet.repeatingMacroTimer);
spreadsheet.repeatingMacroTimer = null;
}
}
//
// SocialCalc.SpreadsheetViewerDoButtonCmd(e, buttoninfo, bobj)
//
// xxx
//
socialcalc/ssctrltest1.html view on Meta::CPAN
SocialCalc.ExecuteSheetCommand(editor.context.sheetobj, parseobj, true); // note: not queued!!!??!!
SocialCalc.Clipboard.clipboard.loadedByCtrlC = true; // remember this clipboard data was from ctrl-c
ta.value = SocialCalc.ConvertSaveToOtherFormat(SocialCalc.Clipboard.clipboard, "tab");
ta.style.display = "block";
ta.focus();
ta.select();
// var range = document.selection.createRange();
var range = window.getSelection().getRangeAt(0);
range.execCommand("copy");
window.setTimeout(function() {
var s = SocialCalc.GetSpreadsheetControlObject();
var editor = s.editor;
var ta = editor.pasteTextarea;
ta.style.display = "none";
}, 200);
return;
}
function dosum() {
socialcalc/third-party/Socket.IO-node/lib/socket.io/client.js view on Meta::CPAN
, decode = require('./utils').decode
, merge = require('./utils').merge
, util = require(process.binding('natives').util ? 'util' : 'sys');
var Client = module.exports = function(listener, req, res, options, head){
process.EventEmitter.call(this);
this.listener = listener;
this.options(merge({
timeout: 8000,
heartbeatInterval: 10000,
closeTimeout: 0
}, this.getOptions ? this.getOptions() : {}), options);
this.connections = 0;
this._open = false;
this._heartbeats = 0;
this.connected = false;
this.upgradeHead = head;
this._onConnect(req, res);
};
util.inherits(Client, process.EventEmitter);
socialcalc/third-party/Socket.IO-node/lib/socket.io/client.js view on Meta::CPAN
};
req.addListener('error', destroyRequest);
req.addListener('timeout', destroyRequest);
if (res){
function destroyResponse(){
res.destroy && res.destroy();
}
res.addListener('error', destroyResponse);
res.addListener('timeout', destroyResponse);
}
if (this._disconnectTimeout) clearTimeout(this._disconnectTimeout);
}
};
Client.prototype._payload = function(){
var payload = [];
this.connections++;
this.connected = true;
this._open = true;
socialcalc/third-party/Socket.IO-node/lib/socket.io/client.js view on Meta::CPAN
payload = payload.concat(this._writeQueue || []);
this._writeQueue = [];
if (payload.length) this._write(encode(payload));
if (this.connections === 1) this.listener._onClientConnect(this);
if (this.options.timeout) this._heartbeat();
};
Client.prototype._heartbeat = function(){
var self = this;
this._heartbeatInterval = setTimeout(function(){
self.send('~h~' + ++self._heartbeats);
self._heartbeatTimeout = setTimeout(function(){
self._onClose();
}, self.options.timeout);
}, self.options.heartbeatInterval);
};
Client.prototype._onHeartbeat = function(h){
if (h == this._heartbeats){
clearTimeout(this._heartbeatTimeout);
this._heartbeat();
}
};
Client.prototype._onClose = function(skipDisconnect){
if (!this._open) return this;
var self = this;
if (this._heartbeatInterval) clearTimeout(this._heartbeatInterval);
if (this._heartbeatTimeout) clearTimeout(this._heartbeatTimeout);
this._open = false;
this.request = null;
this.response = null;
if (skipDisconnect !== false){
if (this.handshaked){
this._disconnectTimeout = setTimeout(function(){
self._onDisconnect();
}, this.options.closeTimeout);
} else
this._onDisconnect();
}
};
Client.prototype._onDisconnect = function(){
if (this._open) this._onClose(true);
if (this._disconnectTimeout) clearTimeout(this._disconnectTimeout);
this._writeQueue = [];
this.connected = false;
if (this.handshaked){
this.emit('disconnect');
this.listener._onClientDisconnect(this);
this.handshaked = false;
}
};
Client.prototype._queue = function(message){
socialcalc/third-party/Socket.IO-node/lib/socket.io/transports/jsonp-polling.js view on Meta::CPAN
JSONPPolling = module.exports = function(){
XHRPolling.apply(this, arguments);
};
util.inherits(JSONPPolling, XHRPolling);
JSONPPolling.prototype.getOptions = function(){
return {
timeout: null, // no heartbeats
closeTimeout: 8000,
duration: 20000
};
};
JSONPPolling.prototype._onConnect = function(req, res){
this._index = req.url.match(/\/([0-9]+)\/?$/).pop();
XHRPolling.prototype._onConnect.call(this, req, res);
};
JSONPPolling.prototype._write = function(message){
socialcalc/third-party/Socket.IO-node/lib/socket.io/transports/websocket.js view on Meta::CPAN
WebSocket = module.exports = function(){
Client.apply(this, arguments);
};
util.inherits(WebSocket, Client);
WebSocket.prototype._onConnect = function(req, socket){
var self = this
, headers = [];
if (!req.connection.setTimeout){
req.connection.end();
return false;
}
this.parser = new Parser();
this.parser.on('data', self._onMessage.bind(this));
this.parser.on('error', self._onClose.bind(this));
Client.prototype._onConnect.call(this, req);
socialcalc/third-party/Socket.IO-node/lib/socket.io/transports/websocket.js view on Meta::CPAN
'Upgrade: WebSocket',
'Connection: Upgrade',
'WebSocket-Origin: ' + origin,
'WebSocket-Location: ' + location
];
}
try {
this.connection.write(headers.concat('', '').join('\r\n'));
this.connection.setTimeout(0);
this.connection.setNoDelay(true);
this.connection.setEncoding('utf-8');
} catch(e){
this._onClose();
return;
}
if (this.waitingForNonce) {
// Since we will be receiving the binary nonce through the normal HTTP
// data event, set the connection to 'binary' temporarily
socialcalc/third-party/Socket.IO-node/lib/socket.io/transports/xhr-polling.js view on Meta::CPAN
var Polling = module.exports = function(){
Client.apply(this, arguments);
};
util.inherits(Polling, Client);
Polling.prototype.getOptions = function(){
return {
timeout: null, // no heartbeats
closeTimeout: 8000,
duration: 20000
};
};
Polling.prototype._onConnect = function(req, res){
var self = this, body = '';
switch (req.method){
case 'GET':
Client.prototype._onConnect.apply(this, [req, res]);
this._closeTimeout = setTimeout(function(){
self._write('');
}, this.options.duration);
this._payload();
break;
case 'POST':
req.addListener('data', function(message){
body += message;
});
req.addListener('end', function(){
socialcalc/third-party/Socket.IO-node/lib/socket.io/transports/xhr-polling.js view on Meta::CPAN
}
res.writeHead(200, headers);
res.write('ok');
res.end();
});
break;
}
};
Polling.prototype._onClose = function(){
if (this._closeTimeout) clearTimeout(this._closeTimeout);
return Client.prototype._onClose.call(this);
};
Polling.prototype._write = function(message){
if (this._open){
var headers = {'Content-Type': 'text/plain; charset=UTF-8', 'Content-Length': Buffer.byteLength(message)};
// https://developer.mozilla.org/En/HTTP_Access_Control
if (this.request.headers.origin && this._verifyOrigin(this.request.headers.origin)){
headers['Access-Control-Allow-Origin'] = (this.request.headers.origin === 'null' ? '*' : this.request.headers.origin);
if (this.request.headers.cookie) headers['Access-Control-Allow-Credentials'] = 'true';
socialcalc/third-party/Socket.IO-node/support/socket.io-client/History.md view on Meta::CPAN
* Added compatibility for inclusion in non-browser environments.
* Added package.json.
* Added noConflict support. [kreichgauer]
* Added reconnection support with exponential backoff. [3rd-Eden]
0.6.2 / 2011-02-05
==================
* Fixed problem with xhr-multipart buffering
* Updated Flash websocket transport
* Fixed tryTransportsOnConnectTimeout option
* Added 'connect_failed' event after the last available transport fails to connect
within the timeout
* Add 'connecting' event emit on each connection attempt.
socialcalc/third-party/Socket.IO-node/support/socket.io-client/README.md view on Meta::CPAN
}
An object containing (optional) options to pass to each transport.
- *rememberTransport*
true
A boolean indicating if the utilized transport should be remembered in a cookie.
- *connectTimeout*
5000
The amount of miliseconds a transport has to create a connection before we consider it timed out.
- *tryTransportsOnConnectTimeout*
true
A boolean indicating if we should try other transports when the connectTimeout occurs.
- *reconnect*
true
A boolean indicating if we should automatically reconnect if a connection is disconnected.
- *reconnectionDelay*
500
socialcalc/third-party/Socket.IO-node/support/socket.io-client/README.md view on Meta::CPAN
Fired when the connection is established and the handshake successful.
- *connecting(transport_type)*
Fired when a connection is attempted, passing the transport name.
- *connect_failed*
Fired when the connection timeout occurs after the last connection attempt.
This only fires if the `connectTimeout` option is set.
If the `tryTransportsOnConnectTimeout` option is set, this only fires once all
possible transports have been tried.
- *message(message)*
Fired when a message arrives from the server
- *close*
Fired when the connection is closed. Be careful with using this event, as some transports will fire it even under temporary, expected disconnections (such as XHR-Polling).
socialcalc/third-party/Socket.IO-node/support/socket.io-client/lib/socket.js view on Meta::CPAN
* connection with a Socket.IO enabled server.
*
* Options:
* - `secure` Use secure connections, defaulting to false.
* - `document` Reference to the document object to retrieve and set cookies, defaulting to document.
* - `port` The port where the Socket.IO server listening on, defaulting to location.port.
* - `resource` The path or namespace on the server where the Socket.IO requests are intercepted, defaulting to 'socket.io'.
* - `transports` A ordered list with the available transports, defaulting to all transports.
* - `transportOption` A {Object} containing the options for each transport. The key of the object should reflect
* name of the transport and the value a {Object} with the options.
* - `connectTimeout` The duration in milliseconds that a transport has to establish a working connection, defaulting to 5000.
* - `tryTransportsOnConnectTimeout` Should we attempt other transport methods when the connectTimeout occurs, defaulting to true.
* - `reconnect` Should reconnection happen automatically, defaulting to true.
* - `reconnectionDelay` The delay in milliseconds before we attempt to establish a working connection. This value will
* increase automatically using a exponential back off algorithm. Defaulting to 500.
* - `maxReconnectionAttempts` Number of attempts we should make before seizing the reconnect operation, defaulting to 10.
* - `rememberTransport` Should the successfully connected transport be remembered in a cookie, defaulting to true.
*
* Examples:
*
* Create client with the default settings.
*
socialcalc/third-party/Socket.IO-node/support/socket.io-client/lib/socket.js view on Meta::CPAN
resource: 'socket.io',
transports: ['websocket', 'flashsocket', 'htmlfile', 'xhr-multipart', 'xhr-polling', 'jsonp-polling'],
transportOptions: {
'xhr-polling': {
timeout: 25000 // based on polling duration default
},
'jsonp-polling': {
timeout: 25000
}
},
connectTimeout: 5000,
tryTransportsOnConnectTimeout: true,
reconnect: true,
reconnectionDelay: 500,
maxReconnectionAttempts: 10,
rememberTransport: true
};
io.util.merge(this.options, options);
this.connected = false;
this.connecting = false;
this.reconnecting = false;
this.events = {};
socialcalc/third-party/Socket.IO-node/support/socket.io-client/lib/socket.js view on Meta::CPAN
&& io.Transport[transport].check()
&& (!this.isXDomain() || io.Transport[transport].xdomainCheck())){
return new io.Transport[transport](this, this.options.transportOptions[transport] || {});
}
}
return null;
};
/**
* Establish a new connection with the Socket.IO server. This is done using the selected transport by the
* getTransport method. If the `connectTimeout` and the `tryTransportsOnConnectTimeout` options are set
* the client will keep trying to connect to the server using a different transports when the timeout occurs.
*
* Example:
*
* Create a Socket.IO client with a connect callback (We assume we have the WebSocket transport avaliable).
*
* var socket = new io.Socket();
* socket.connect(function(transport){
* console.log("Connected to server using the " + socket.transport.type + " transport.");
* });
socialcalc/third-party/Socket.IO-node/support/socket.io-client/lib/socket.js view on Meta::CPAN
* @param {Function} [fn] Callback.
* @returns {io.Socket}
* @api public
*/
Socket.prototype.connect = function(fn){
if (this.transport && !this.connected){
if (this.connecting) this.disconnect(true);
this.connecting = true;
this.emit('connecting', [this.transport.type]);
this.transport.connect();
if (this.options.connectTimeout){
var self = this;
this.connectTimeoutTimer = setTimeout(function(){
if (!self.connected){
self.disconnect(true);
if (self.options.tryTransportsOnConnectTimeout && !self.rememberedTransport){
if(!self.remainingTransports) self.remainingTransports = self.options.transports.slice(0);
var transports = self.remainingTransports;
while(transports.length > 0 && transports.splice(0,1)[0] != self.transport.type){}
if(transports.length){
self.transport = self.getTransport(transports);
self.connect();
}
}
if(!self.remainingTransports || self.remainingTransports.length == 0) self.emit('connect_failed');
}
if(self.remainingTransports && self.remainingTransports.length == 0) delete self.remainingTransports;
}, this.options.connectTimeout);
}
}
if (fn && typeof fn == 'function') this.once('connect',fn);
return this;
};
/**
* Sends the data to the Socket.IO server. If there isn't a connection to the server
* the data will be forwarded to the queue.
*
socialcalc/third-party/Socket.IO-node/support/socket.io-client/lib/socket.js view on Meta::CPAN
};
/**
* Disconnect the established connect.
*
* @param {Boolean} [soft] A soft disconnect will keep the reconnect settings enabled.
* @returns {io.Socket}
* @api public
*/
Socket.prototype.disconnect = function(soft){
if (this.connectTimeoutTimer) clearTimeout(this.connectTimeoutTimer);
if (!soft) this.options.reconnect = false;
this.transport.disconnect();
return this;
};
/**
* Adds a new eventListener for the given event.
*
* Example:
*
socialcalc/third-party/Socket.IO-node/support/socket.io-client/lib/socket.js view on Meta::CPAN
* event.
*
* @api private
*/
Socket.prototype.onReconnect = function(){
this.reconnecting = true;
this.reconnectionAttempts = 0;
this.reconnectionDelay = this.options.reconnectionDelay;
var self = this
, tryTransportsOnConnectTimeout = this.options.tryTransportsOnConnectTimeout
, rememberTransport = this.options.rememberTransport;
function reset(){
if(self.connected) self.emit('reconnect',[self.transport.type,self.reconnectionAttempts]);
self.removeEvent('connect_failed', maybeReconnect).removeEvent('connect', maybeReconnect);
self.reconnecting = false;
delete self.reconnectionAttempts;
delete self.reconnectionDelay;
delete self.reconnectionTimer;
delete self.redoTransports;
self.options.tryTransportsOnConnectTimeout = tryTransportsOnConnectTimeout;
self.options.rememberTransport = rememberTransport;
return;
};
function maybeReconnect(){
if (!self.reconnecting) return;
if (!self.connected){
if (self.connecting && self.reconnecting) return self.reconnectionTimer = setTimeout(maybeReconnect, 1000);
if (self.reconnectionAttempts++ >= self.options.maxReconnectionAttempts){
if (!self.redoTransports){
self.on('connect_failed', maybeReconnect);
self.options.tryTransportsOnConnectTimeout = true;
self.transport = self.getTransport(self.options.transports); // override with all enabled transports
self.redoTransports = true;
self.connect();
} else {
self.emit('reconnect_failed');
reset();
}
} else {
self.reconnectionDelay *= 2; // exponential back off
self.connect();
self.emit('reconnecting', [self.reconnectionDelay,self.reconnectionAttempts]);
self.reconnectionTimer = setTimeout(maybeReconnect, self.reconnectionDelay);
}
} else {
reset();
}
};
this.options.tryTransportsOnConnectTimeout = false;
this.reconnectionTimer = setTimeout(maybeReconnect, this.reconnectionDelay);
this.on('connect', maybeReconnect);
};
/**
* API compatiblity
*/
Socket.prototype.fire = Socket.prototype.emit;
Socket.prototype.addListener = Socket.prototype.addEvent = Socket.prototype.addEventListener = Socket.prototype.on;
Socket.prototype.removeListener = Socket.prototype.removeEventListener = Socket.prototype.removeEvent;
socialcalc/third-party/Socket.IO-node/support/socket.io-client/lib/transport.js view on Meta::CPAN
/**
* Handles the response from the server. When a new response is received
* it will automatically update the timeout, decode the message and
* forwards the response to the onMessage function for further processing.
*
* @param {String} data Response from the server.
* @api private
*/
Transport.prototype.onData = function(data){
this.setTimeout();
var msgs = this.decode(data);
if (msgs && msgs.length){
for (var i = 0, l = msgs.length; i < l; i++){
this.onMessage(msgs[i]);
}
}
};
/**
* All the transports have a dedicated timeout to detect if
* the connection is still alive. We clear the existing timer
* and set new one each time this function is called. When the
* timeout does occur it will call the `onTimeout` method.
*
* @api private
*/
Transport.prototype.setTimeout = function(){
var self = this;
if (this.timeout) clearTimeout(this.timeout);
this.timeout = setTimeout(function(){
self.onTimeout();
}, this.options.timeout);
};
/**
* Disconnect from the Socket.IO server when a timeout occurs.
*
* @api private
*/
Transport.prototype.onTimeout = function(){
this.onDisconnect();
};
/**
* After the response from the server has been parsed to individual
* messages we need to decode them using the the Socket.IO message
* protocol: <https://github.com/learnboost/socket.io-node/>.
*
* When a message is received we check if a session id has been set,
* if the session id is missing we can assume that the received message
socialcalc/third-party/Socket.IO-node/support/socket.io-client/lib/transport.js view on Meta::CPAN
/**
* Notifies the base when a connection to the Socket.IO server has
* been established. And it starts the connection `timeout` timer.
*
* @api private
*/
Transport.prototype.onConnect = function(){
this.connected = true;
this.connecting = false;
this.base.onConnect();
this.setTimeout();
};
/**
* Notifies the base when the connection with the Socket.IO server
* has been disconnected.
*
* @api private
*/
Transport.prototype.onDisconnect = function(){
this.connecting = false;
socialcalc/third-party/Socket.IO-node/support/socket.io-client/lib/util.js view on Meta::CPAN
* browsers. If a long running connection is made before the onload event
* a loading indicator spinner will be present at all times untill a
* reconnect has been made.
*
* @param {Function} fn
* @api public
*/
defer: function(fn){
if (!io.util.webkit) return fn();
io.util.load(function(){
setTimeout(fn,100);
});
},
/**
* Inherit the prototype methods from one constructor into another.
*
* Example:
*
* function foo(){};
* foo.prototype.hello = function(){ console.log( this.words )};
socialcalc/third-party/Socket.IO-node/support/socket.io-client/lib/vendor/web-socket-js/swfobject.js view on Meta::CPAN
/* SWFObject v2.2 <http://code.google.com/p/swfobject/>
is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/
var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,...
socialcalc/third-party/Socket.IO-node/support/socket.io-client/lib/vendor/web-socket-js/web_socket.js view on Meta::CPAN
self.__id = WebSocket.__nextId++;
WebSocket.__instances[self.__id] = self;
self.readyState = WebSocket.CONNECTING;
self.bufferedAmount = 0;
self.__events = {};
if (!protocols) {
protocols = [];
} else if (typeof protocols == "string") {
protocols = [protocols];
}
// Uses setTimeout() to make sure __createFlash() runs after the caller sets ws.onopen etc.
// Otherwise, when onopen fires immediately, onopen is called before it is set.
setTimeout(function() {
WebSocket.__addTask(function() {
WebSocket.__flash.create(
self.__id, url, protocols, proxyHost || null, proxyPort || 0, headers || null);
});
}, 0);
};
/**
* Send data to the web socket.
* @param {string} data The data to send to the socket.
socialcalc/third-party/Socket.IO-node/support/socket.io-client/lib/vendor/web-socket-js/web_socket.js view on Meta::CPAN
});
};
/**
* Called by Flash to notify JS that it's fully loaded and ready
* for communication.
*/
WebSocket.__onFlashInitialized = function() {
// We need to set a timeout here to avoid round-trip calls
// to flash during the initialization process.
setTimeout(function() {
WebSocket.__flash = document.getElementById("webSocketFlash");
WebSocket.__flash.setCallerUrl(location.href);
WebSocket.__flash.setDebug(!!window.WEB_SOCKET_DEBUG);
for (var i = 0; i < WebSocket.__tasks.length; ++i) {
WebSocket.__tasks[i]();
}
WebSocket.__tasks = [];
}, 0);
};
/**
* Called by Flash to notify WebSockets events are fired.
*/
WebSocket.__onFlashEvent = function() {
setTimeout(function() {
try {
// Gets events using receiveEvents() instead of getting it from event object
// of Flash event. This is to make sure to keep message order.
// It seems sometimes Flash events don't arrive in the same order as they are sent.
var events = WebSocket.__flash.receiveEvents();
for (var i = 0; i < events.length; ++i) {
WebSocket.__instances[events[i].webSocketId].__handleEvent(events[i]);
}
} catch (e) {
console.error(e);
socialcalc/third-party/Socket.IO-node/support/socket.io-client/socket.io.js view on Meta::CPAN
* browsers. If a long running connection is made before the onload event
* a loading indicator spinner will be present at all times untill a
* reconnect has been made.
*
* @param {Function} fn
* @api public
*/
defer: function(fn){
if (!io.util.webkit) return fn();
io.util.load(function(){
setTimeout(fn,100);
});
},
/**
* Inherit the prototype methods from one constructor into another.
*
* Example:
*
* function foo(){};
* foo.prototype.hello = function(){ console.log( this.words )};
socialcalc/third-party/Socket.IO-node/support/socket.io-client/socket.io.js view on Meta::CPAN
/**
* Handles the response from the server. When a new response is received
* it will automatically update the timeout, decode the message and
* forwards the response to the onMessage function for further processing.
*
* @param {String} data Response from the server.
* @api private
*/
Transport.prototype.onData = function(data){
this.setTimeout();
var msgs = this.decode(data);
if (msgs && msgs.length){
for (var i = 0, l = msgs.length; i < l; i++){
this.onMessage(msgs[i]);
}
}
};
/**
* All the transports have a dedicated timeout to detect if
* the connection is still alive. We clear the existing timer
* and set new one each time this function is called. When the
* timeout does occur it will call the `onTimeout` method.
*
* @api private
*/
Transport.prototype.setTimeout = function(){
var self = this;
if (this.timeout) clearTimeout(this.timeout);
this.timeout = setTimeout(function(){
self.onTimeout();
}, this.options.timeout);
};
/**
* Disconnect from the Socket.IO server when a timeout occurs.
*
* @api private
*/
Transport.prototype.onTimeout = function(){
this.onDisconnect();
};
/**
* After the response from the server has been parsed to individual
* messages we need to decode them using the the Socket.IO message
* protocol: <https://github.com/learnboost/socket.io-node/>.
*
* When a message is received we check if a session id has been set,
* if the session id is missing we can assume that the received message
socialcalc/third-party/Socket.IO-node/support/socket.io-client/socket.io.js view on Meta::CPAN
/**
* Notifies the base when a connection to the Socket.IO server has
* been established. And it starts the connection `timeout` timer.
*
* @api private
*/
Transport.prototype.onConnect = function(){
this.connected = true;
this.connecting = false;
this.base.onConnect();
this.setTimeout();
};
/**
* Notifies the base when the connection with the Socket.IO server
* has been disconnected.
*
* @api private
*/
Transport.prototype.onDisconnect = function(){
this.connecting = false;
socialcalc/third-party/Socket.IO-node/support/socket.io-client/socket.io.js view on Meta::CPAN
* connection with a Socket.IO enabled server.
*
* Options:
* - `secure` Use secure connections, defaulting to false.
* - `document` Reference to the document object to retrieve and set cookies, defaulting to document.
* - `port` The port where the Socket.IO server listening on, defaulting to location.port.
* - `resource` The path or namespace on the server where the Socket.IO requests are intercepted, defaulting to 'socket.io'.
* - `transports` A ordered list with the available transports, defaulting to all transports.
* - `transportOption` A {Object} containing the options for each transport. The key of the object should reflect
* name of the transport and the value a {Object} with the options.
* - `connectTimeout` The duration in milliseconds that a transport has to establish a working connection, defaulting to 5000.
* - `tryTransportsOnConnectTimeout` Should we attempt other transport methods when the connectTimeout occurs, defaulting to true.
* - `reconnect` Should reconnection happen automatically, defaulting to true.
* - `reconnectionDelay` The delay in milliseconds before we attempt to establish a working connection. This value will
* increase automatically using a exponential back off algorithm. Defaulting to 500.
* - `maxReconnectionAttempts` Number of attempts we should make before seizing the reconnect operation, defaulting to 10.
* - `rememberTransport` Should the successfully connected transport be remembered in a cookie, defaulting to true.
*
* Examples:
*
* Create client with the default settings.
*
socialcalc/third-party/Socket.IO-node/support/socket.io-client/socket.io.js view on Meta::CPAN
resource: 'socket.io',
transports: ['websocket', 'flashsocket', 'htmlfile', 'xhr-multipart', 'xhr-polling', 'jsonp-polling'],
transportOptions: {
'xhr-polling': {
timeout: 25000 // based on polling duration default
},
'jsonp-polling': {
timeout: 25000
}
},
connectTimeout: 5000,
tryTransportsOnConnectTimeout: true,
reconnect: true,
reconnectionDelay: 500,
maxReconnectionAttempts: 10,
rememberTransport: true
};
io.util.merge(this.options, options);
this.connected = false;
this.connecting = false;
this.reconnecting = false;
this.events = {};
socialcalc/third-party/Socket.IO-node/support/socket.io-client/socket.io.js view on Meta::CPAN
&& io.Transport[transport].check()
&& (!this.isXDomain() || io.Transport[transport].xdomainCheck())){
return new io.Transport[transport](this, this.options.transportOptions[transport] || {});
}
}
return null;
};
/**
* Establish a new connection with the Socket.IO server. This is done using the selected transport by the
* getTransport method. If the `connectTimeout` and the `tryTransportsOnConnectTimeout` options are set
* the client will keep trying to connect to the server using a different transports when the timeout occurs.
*
* Example:
*
* Create a Socket.IO client with a connect callback (We assume we have the WebSocket transport avaliable).
*
* var socket = new io.Socket();
* socket.connect(function(transport){
* console.log("Connected to server using the " + socket.transport.type + " transport.");
* });
socialcalc/third-party/Socket.IO-node/support/socket.io-client/socket.io.js view on Meta::CPAN
* @param {Function} [fn] Callback.
* @returns {io.Socket}
* @api public
*/
Socket.prototype.connect = function(fn){
if (this.transport && !this.connected){
if (this.connecting) this.disconnect(true);
this.connecting = true;
this.emit('connecting', [this.transport.type]);
this.transport.connect();
if (this.options.connectTimeout){
var self = this;
this.connectTimeoutTimer = setTimeout(function(){
if (!self.connected){
self.disconnect(true);
if (self.options.tryTransportsOnConnectTimeout && !self.rememberedTransport){
if(!self.remainingTransports) self.remainingTransports = self.options.transports.slice(0);
var transports = self.remainingTransports;
while(transports.length > 0 && transports.splice(0,1)[0] != self.transport.type){}
if(transports.length){
self.transport = self.getTransport(transports);
self.connect();
}
}
if(!self.remainingTransports || self.remainingTransports.length == 0) self.emit('connect_failed');
}
if(self.remainingTransports && self.remainingTransports.length == 0) delete self.remainingTransports;
}, this.options.connectTimeout);
}
}
if (fn && typeof fn == 'function') this.once('connect',fn);
return this;
};
/**
* Sends the data to the Socket.IO server. If there isn't a connection to the server
* the data will be forwarded to the queue.
*
socialcalc/third-party/Socket.IO-node/support/socket.io-client/socket.io.js view on Meta::CPAN
};
/**
* Disconnect the established connect.
*
* @param {Boolean} [soft] A soft disconnect will keep the reconnect settings enabled.
* @returns {io.Socket}
* @api public
*/
Socket.prototype.disconnect = function(soft){
if (this.connectTimeoutTimer) clearTimeout(this.connectTimeoutTimer);
if (!soft) this.options.reconnect = false;
this.transport.disconnect();
return this;
};
/**
* Adds a new eventListener for the given event.
*
* Example:
*
socialcalc/third-party/Socket.IO-node/support/socket.io-client/socket.io.js view on Meta::CPAN
* event.
*
* @api private
*/
Socket.prototype.onReconnect = function(){
this.reconnecting = true;
this.reconnectionAttempts = 0;
this.reconnectionDelay = this.options.reconnectionDelay;
var self = this
, tryTransportsOnConnectTimeout = this.options.tryTransportsOnConnectTimeout
, rememberTransport = this.options.rememberTransport;
function reset(){
if(self.connected) self.emit('reconnect',[self.transport.type,self.reconnectionAttempts]);
self.removeEvent('connect_failed', maybeReconnect).removeEvent('connect', maybeReconnect);
self.reconnecting = false;
delete self.reconnectionAttempts;
delete self.reconnectionDelay;
delete self.reconnectionTimer;
delete self.redoTransports;
self.options.tryTransportsOnConnectTimeout = tryTransportsOnConnectTimeout;
self.options.rememberTransport = rememberTransport;
return;
};
function maybeReconnect(){
if (!self.reconnecting) return;
if (!self.connected){
if (self.connecting && self.reconnecting) return self.reconnectionTimer = setTimeout(maybeReconnect, 1000);
if (self.reconnectionAttempts++ >= self.options.maxReconnectionAttempts){
if (!self.redoTransports){
self.on('connect_failed', maybeReconnect);
self.options.tryTransportsOnConnectTimeout = true;
self.transport = self.getTransport(self.options.transports); // override with all enabled transports
self.redoTransports = true;
self.connect();
} else {
self.emit('reconnect_failed');
reset();
}
} else {
self.reconnectionDelay *= 2; // exponential back off
self.connect();
self.emit('reconnecting', [self.reconnectionDelay,self.reconnectionAttempts]);
self.reconnectionTimer = setTimeout(maybeReconnect, self.reconnectionDelay);
}
} else {
reset();
}
};
this.options.tryTransportsOnConnectTimeout = false;
this.reconnectionTimer = setTimeout(maybeReconnect, this.reconnectionDelay);
this.on('connect', maybeReconnect);
};
/**
* API compatiblity
*/
Socket.prototype.fire = Socket.prototype.emit;
Socket.prototype.addListener = Socket.prototype.addEvent = Socket.prototype.addEventListener = Socket.prototype.on;
Socket.prototype.removeListener = Socket.prototype.removeEventListener = Socket.prototype.removeEvent;
})();
/* SWFObject v2.2 <http://code.google.com/p/swfobject/>
is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/
var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,...
// Copyright: Hiroshi Ichikawa <http://gimite.net/en/>
// License: New BSD License
// Reference: http://dev.w3.org/html5/websockets/
// Reference: http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol
(function() {
if (window.WebSocket) return;
var console = window.console;
socialcalc/third-party/Socket.IO-node/support/socket.io-client/socket.io.js view on Meta::CPAN
self.__id = WebSocket.__nextId++;
WebSocket.__instances[self.__id] = self;
self.readyState = WebSocket.CONNECTING;
self.bufferedAmount = 0;
self.__events = {};
if (!protocols) {
protocols = [];
} else if (typeof protocols == "string") {
protocols = [protocols];
}
// Uses setTimeout() to make sure __createFlash() runs after the caller sets ws.onopen etc.
// Otherwise, when onopen fires immediately, onopen is called before it is set.
setTimeout(function() {
WebSocket.__addTask(function() {
WebSocket.__flash.create(
self.__id, url, protocols, proxyHost || null, proxyPort || 0, headers || null);
});
}, 0);
};
/**
* Send data to the web socket.
* @param {string} data The data to send to the socket.
socialcalc/third-party/Socket.IO-node/support/socket.io-client/socket.io.js view on Meta::CPAN
});
};
/**
* Called by Flash to notify JS that it's fully loaded and ready
* for communication.
*/
WebSocket.__onFlashInitialized = function() {
// We need to set a timeout here to avoid round-trip calls
// to flash during the initialization process.
setTimeout(function() {
WebSocket.__flash = document.getElementById("webSocketFlash");
WebSocket.__flash.setCallerUrl(location.href);
WebSocket.__flash.setDebug(!!window.WEB_SOCKET_DEBUG);
for (var i = 0; i < WebSocket.__tasks.length; ++i) {
WebSocket.__tasks[i]();
}
WebSocket.__tasks = [];
}, 0);
};
/**
* Called by Flash to notify WebSockets events are fired.
*/
WebSocket.__onFlashEvent = function() {
setTimeout(function() {
try {
// Gets events using receiveEvents() instead of getting it from event object
// of Flash event. This is to make sure to keep message order.
// It seems sometimes Flash events don't arrive in the same order as they are sent.
var events = WebSocket.__flash.receiveEvents();
for (var i = 0; i < events.length; ++i) {
WebSocket.__instances[events[i].webSocketId].__handleEvent(events[i]);
}
} catch (e) {
console.error(e);
socialcalc/third-party/Socket.IO-node/support/socket.io-client/socket.io.min.js view on Meta::CPAN
/* Socket.IO.min 0.6.3 @author Guillermo Rauch <guillermo@learnboost.com>, @license The MIT license., @copyright Copyright (c) 2010 LearnBoost <dev@learnboost.com> */
var io=this.io={version:"0.6.3",setPath:function(a){window.console&&console.error&&console.error("io.setPath will be removed. Please set the variable WEB_SOCKET_SWF_LOCATION pointing to WebSocketMain.swf"),this.path=/\/$/.test(a)?a:a+"/",WEB_SOCKET_S...
socialcalc/third-party/hippie/jquery-1.3.2.min.js view on Meta::CPAN
* Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
* Revision: 6246
*/
(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;thi...
/*
* Sizzle CSS Selector Engine - v0.9.3
* Copyright 2009, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses.
* More information: http://sizzlejs.com/
*/
(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==...
socialcalc/third-party/hippie/jquery.ev.js view on Meta::CPAN
},
complete : function(xhr, status) {
var delay;
if (status == 'success') {
delay = 100;
} else {
// console.log('status: ' + status, '; waiting before long-polling again...');
delay = 5000;
}
// "recursively" loop
window.setTimeout(function(){ if (self.running) self.loop(url); }, delay);
}
});
}
};
})(jQuery);
socialcalc/third-party/lib/PocketIO/Connection.pm view on Meta::CPAN
sub is_connected { $_[0]->{is_connected} }
sub connecting {
my $self = shift;
DEBUG && warn "State 'connecting'\n";
$self->{connect_timer} = AnyEvent->timer(
after => $self->{connect_timeout},
cb => sub {
DEBUG && warn "Timeout 'connect_timeout'";
$self->on('connect_failed')->($self);
}
);
}
sub reconnecting {
my $self = shift;
DEBUG && warn "State 'reconnecting'\n";
$self->{reconnect_timer} = AnyEvent->timer(
after => $self->{reconnect_timeout},
cb => sub {
DEBUG && warn "Timeout 'reconnect_timeout'\n";
$self->on('reconnect_failed')->($self);
}
);
}
sub connected {
my $self = shift;
DEBUG && warn "State 'connected'\n";
socialcalc/third-party/wikiwyg/lib/Document/Emitter/HTML.js view on Meta::CPAN
case 'br': case 'hr': {
this.output += '<'+tag+' />';
return;
}
case 'html': {
this.output += '<span class="wafl">Raw HTML section. Edit in Wiki Text mode.</span>';
return;
}
case 'waflparagraph': case 'waflphrase': case 'im': {
if (node._wafl.match(/^image:\s*(\S+)(?:\s+size=(\w+))?/)) {
var onload = "if (typeof(ss) != 'undefined' && ss.editor) { var recalc = function () { try { ss.editor.DoPositionCalculations() } catch (e) { setTimeout(recalc, 500) } }; recalc() } if (!window.image_dimension_cache) window.image_dime...
var imageName = RegExp.$1;
var width = RegExp.$2;
switch (width) {
case 'small': { width = '100'; break; }
case 'medium': { width = '300'; break; }
case 'large': { width = '600'; break; }
}
if (width) {
width = ' width="'+width+'"';