Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Node.js port of Multi-user SocialCalc
JavaScript LiveScript CSS HTML Makefile Nginx

* Implement #240 for sandstorm

(cherry picked from commit 8b85790)
latest commit aa932737c3
@audreyt authored
Failed to load latest commit information.
.dotcloud * Add .dotclout/config.
apache Also alias images and l10n folders
app-graphics Graphics for new shell ui, app market
bin * Add ethercalc binary wrapper.
images One more missing image
l10n * Include FramaCalc's French Localization.
misc * Do not start ethercalc until redis is successfully brought back on.
multi * Refine #212: Only cascade when removing from multi-foldr code.
nginx nginx.conf: make sure to add a slash at the end
src * Fix #223; in non-redis mode, allow multi-sheet delete.
static * 0.20150603.0
third-party * Initial commit for Stackato Sample App Contest.
.gitignore ignore vi swap files
API.md * Multi-sheet Excel XML import support:
Changes.txt * Initial commit for Stackato Sample App Contest.
Dockerfile * 0.20150420.0; switch node base image to allow gyp install
LEGAL.txt * Incorporated charting framework from OLPC Sugar into player.coffee.
LICENSE.txt * Initial commit for Stackato Sample App Contest.
Makefile * Upgrade to livescript 1.4.0
README.mkdn * Add http://cn.ethercalc.net/ to README
SocialCalcModule.js * 0.20150603.0
_start * Detect PK*
app.js * Upgrade to livescript 1.4.0
db.js * Fix #223; in non-redis mode, allow multi-sheet delete.
dotcloud.js * Upgrade to livescript 1.4.0
dotcloud.yml use node 0.8.x for dotcloud
exports.js * Implement setTimeout in terms of .nextTick.
formatnumber2.js * Sync up with infojunkie/socialcalc
formula1.js * Implement SUMIFS().
index.html * Implement #240 for sandstorm
main.js * Refine #212: Only cascade when removing from multi-foldr code.
manifest.appcache * 0.20150603.0
package.json * 0.20150603.1
player-broadcast.js * Upgrade to livescript 1.4.0
player-graph.js reset image prefix to sc_
player.js * Upgrade to livescript 1.4.0
privacy.png * Add ToS & Privacy Policy of ethercalc.org
requirements.txt * Initial commit for Stackato Sample App Contest.
sc.js * Disable webworker-threads for Node.js>0.10 (and io.js)
server.js * First try at deploying to Joyent.
socialcalc-3.js Add col/row rezise bar to the header and fix resize col/row issue in …
socialcalcconstants.js Add col/row rezise bar to the header and fix resize col/row issue in …
socialcalcpopup.js * Sync up with infojunkie/socialcalc
socialcalcspreadsheetcontrol.js Allow shift+enter to search backwards
socialcalctableeditor.js Add col/row rezise bar to the header and fix resize col/row issue in …
socialcalcviewer.js * Sync up with infojunkie/socialcalc
stackato.yml * s/MeetingCalc/EtherCalc/g
start.html * Prettify the "Rename" label
supervisord.conf app.coffee no longer exists
webpack.config.js * Build multi.js for production

README.mkdn

EtherCalc

Installation

For global installation (may need root)

npm i -g ethercalc
ethercalc

For local non-root installation

npm i
make

Or install with our Docker image, which comes with support for webworker-threads:

# Run a redis Docker using the official redis Docker image with persistant database in <host-directory>
sudo docker run --name redis -d -v <host-directory>:/data redis:latest redis-server --appendonly yes

# Run ethercalc on default port 8000
sudo docker run -d -p 8000:8000 --link redis:redis audreyt/ethercalc

# Run ethercalc on custom port 80
sudo docker run -d -p 80:8000 --link redis:redis audreyt/ethercalc

REST API

Please see API.md for the API Blueprint, or the online version at Apiary.

Runtime Flags

Listening Interface: --host / --port

Specify a specific host and/or a different port for the service.

By default EtherCalc listens at 0.0.0.0:8000 (all IPv4 interfaces).

Using SSL: --keyfile / --certfile

openssl genrsa -out ethercalc-key.pem 1024
openssl req -new -key ethercalc-key.pem -out certrequest.csr
openssl x509 -req -in certrequest.csr -signkey ethercalc-key.pem -out ethercalc-cert.pem
ethercalc --keyfile ethercalc-key.pem --certfile ethercalc-cert.pem

Prefers polling over Websocket: --polling

Useful when running behind a proxy without WebSocket support.

Enable Cross-Origin Resource Sharing: --cors

Useful when setting up EtherCalc as a public REST API server.

URL Prefix: --basepath /path/prefix

Useful when running under an URL rewriter.

Access Control: --key secret

Offers read-write vs. read-only modes. See issues #1 and #4 for details on setting this up.

Disable server-side WebWorkers: --vm

Runs a single-thread background loop with vm.createContext instead of webworker-threads.

Useful for running custom functions in server side that requires full VM access.

Expires inactive spreadsheets: --expire 86400

Deletes a spreadsheet's content after N seconds of inactivity. Activities include accessing with REST API as well as Web UI, including moving the active cell cursor on an opened page.

Licensing

Common Public Attribution License (Socialtext Inc.)

  • socialcalcspreadsheetcontrol.js
  • socialcalctableeditor.js

Artistic License 2.0 (Socialtext Inc.)

  • formatnumber2.js
  • formula1.js
  • socialcalc-3.js
  • socialcalcconstants.js
  • socialcalcpopup.js

Artistic License 2.0 (Framasoft)

  • l10n/fr.json

MIT License (John Resig, The Dojo Foundation)

  • static/jquery.js

MIT License (HubSpot, Inc.)

  • static/vex-theme-flat-attack.css
  • static/vex.combined.min.js
  • static/vex.css

MIT License (Stuart Knightley, David Duponchel, Franz Buchinger, Ant'onio Afonso)

  • static/jszip.js

Apache License 2.0 (SheetJS)

  • static/shim.js
  • static/xlsx.js
  • static/xlsxworker.js
  • start.html (xlsx2socialcalc.js)

CC0 Public Domain (唐鳳)

  • src/*.ls

Mozilla Public License Version 2.0

  • images/sc_*.png
Something went wrong with that request. Please try again.