ansuz
f7a1332317
add a 'back' button
9 years ago
ansuz
7dd1624206
commit polls to localStorage
9 years ago
ansuz
0cf5f3cc87
realtime polls!
9 years ago
ansuz
ff74a67a09
translate alertify button messages
9 years ago
ansuz
d39ab5c250
point to the actual translation file
9 years ago
ansuz
dea8e225db
fix double scrollbar issue
9 years ago
ansuz
6f598682f8
templates for custom themes
9 years ago
ansuz
02cd2fbee0
style fixes for the ansuz theme
9 years ago
ansuz
c9edf69ed1
one less prototype using messages.js while we figure out internationalization
9 years ago
ansuz
3eccec7054
better effort for translation
9 years ago
ansuz
3bdfee71e1
move padrtc to .git
9 years ago
ansuz
18ce69b756
use constants from toolbar.js, address linter warnings
9 years ago
ansuz
2a7a84b774
use constants exported from toolbar for selections
...
make things a little less brittle
address linter warnings
9 years ago
ansuz
cbeaa8d609
major refactoring for toolbar. CAN HAZ LESS
9 years ago
ansuz
7504f79e05
add log and warn methods to cryptpad common
9 years ago
ansuz
750731d3db
workaround for favicon magic
9 years ago
ansuz
3ad5d71ab1
make sure the regular favicon is set
9 years ago
ansuz
fd3cd73d0b
try to fix favicon bug
9 years ago
ansuz
589b0087a1
listen for keyup events while alertify prompts are active
9 years ago
ansuz
a2a8570453
use alertify UI in /pad/
9 years ago
ansuz
e32c0aaac8
use alertify UI in /code/
9 years ago
ansuz
deae7ac78f
don't hide the notification until it has been seen
9 years ago
ansuz
3d3c6e4800
add wrappers for alertifyjs
9 years ago
ansuz
85702f2706
inform users of changes in /pad/ too
9 years ago
ansuz
1ae212af44
let users know when changes have occurred while tabs lack focus
9 years ago
ansuz
6075849ed7
add favicons to /pad/ and /code/
9 years ago
ansuz
73d2b6561a
add small modules for page visibility api and notification apis
9 years ago
ansuz
7e8d66a141
filter unwanted elements when receiving patches
9 years ago
ansuz
d8b467422a
fix default title in localStorage migration
9 years ago
ansuz
7a5877d12a
don't filter pads after 30 days
9 years ago
ansuz
d844551fba
add a forget button. clean up toolbar a bit
9 years ago
ansuz
8a82e11306
make sure title is defined for home page usage
9 years ago
ansuz
71b1f71ba0
fix migration to include ctime
9 years ago
ansuz
7da58a0de9
improve pad naming UX, slight refactoring
...
* prevent naming conflicts
* migrate localestorage to use named attributes
* use ctime and atime
* display default names in table
* sort pads by most recent atime
* move more functions into cryptpad common
* change table styles
9 years ago
ansuz
ec0dba3f7c
correct undefined reference
9 years ago
ansuz
a3da10766a
add rename button to /code/ and /pad/
9 years ago
ansuz
93dcf29c15
more functions for working with localstorage
9 years ago
ansuz
93fed83a08
remove annoying border around editor
9 years ago
ansuz
23788bca67
add 'ansuz' theme because I'm horribly vain
9 years ago
ansuz
22929fd3f5
add title attributes for dropdown menus
9 years ago
ansuz
8b1a2b7b8b
commit theme choices to localStorage
9 years ago
ansuz
fb2ca04c34
add a theme selector
9 years ago
ansuz
dc8e36bf20
move themes directly into ./code/
9 years ago
ansuz
908e79c0b9
add autolink plugin
9 years ago
ansuz
d025d13295
address some jshint complaints
9 years ago
ansuz
12bbf3e8f6
don't drop values onto the window
9 years ago
ansuz
ca45e3533d
pass loaded file to callback when importing
9 years ago
ansuz
5b79775810
infer modes from MIME types
9 years ago
ansuz
df99395b4d
fix a few more paths that I missed
9 years ago
ansuz
b3deb9531d
fix paths that I broke when updating codemirror
9 years ago
ansuz
82a9b05d5f
upgrade to newest codemirror
9 years ago
ansuz
1a5905d9fd
more work on highlighting modes in codemirror
...
* style the select menu
* add more modes
* preset language selection to 'javascript'
* don't prompt the user with a silly hash when changing their name
9 years ago
ansuz
a89511985f
add _really_ basic multilanguage support. I'll come back for css later
9 years ago
ansuz
31aa09d6f6
work a bit more on import/export and code highlighting
9 years ago
ansuz
242c9a99e3
implement import and export in /pad/
9 years ago
ansuz
1526c26f8e
remember code and wysiwyg pads
9 years ago
ansuz
0a8137e7eb
move rememberPad to cryptpad common and simplify it a bit
9 years ago
ansuz
849683d586
update to use new style crypto module
9 years ago
ansuz
f94c06abc0
drop a bunch of stuff and use diff dom and hyperjson
9 years ago
ansuz
69f3f4c9a8
drop hyperscript dependency
9 years ago
ansuz
f607fcc0ad
test using newest hyperjson. forget hyperscript
9 years ago
ansuz
c3d2568d3c
add file export for codepad
...
addresses #24
9 years ago
ansuz
920dbeabd1
add a save button
9 years ago
ansuz
4cc5388c76
trial run of canvas export via filesaver.js
9 years ago
ansuz
f818d873bb
remove usernames, refactor a wee bit
9 years ago
ansuz
2b8c21d292
set styles with setAttribute. fixes style fights
9 years ago
ansuz
36baf498ce
fix magicline filter and strange interaction with cursor
9 years ago
ansuz
303e8d6c3e
remove debugging line
9 years ago
ansuz
8af49698da
add a class to the magicline markup so it's easier to remove
9 years ago
ansuz
48d222e565
depend on listmap api from bower
9 years ago
ansuz
1746a4e732
use crypto from bower
9 years ago
ansuz
2a3ff256b9
remove libraries which are now in bower
9 years ago
ansuz
f72cb24fc5
rm LORIA
9 years ago
ansuz
2c3de49922
remove realtime-input, since it's in bower now
9 years ago
ansuz
beba78d7f8
update prototype dependencies
9 years ago
ansuz
2798d1b1f9
all of the list/map api's dependencies are now on bower
9 years ago
ansuz
58c968b319
minor cleanup in realtime-input
9 years ago
ansuz
288b4d5b66
depend on main passing in the crypto module for now
9 years ago
ansuz
f76dc615c0
use chainpad-crypto from bower and pass it into the listmap api
9 years ago
ansuz
85dbd5cb6e
pass in websocketURL from main
9 years ago
ansuz
d9a4f2f22c
missed one
9 years ago
ansuz
cf2866baa7
use json-ot from bower for tests
9 years ago
ansuz
5bb77bd50c
add UI.add and UI.remove methods.
...
also use json-ot from bower
9 years ago
ansuz
ff0f7d15dc
use json-ot from bower
9 years ago
ansuz
dccf5e8dcf
use listmap api from common/
9 years ago
ansuz
58633af943
listmap can be reused. put it in common/
9 years ago
ansuz
f80e9772a8
merge api.js and deep-proxy.js into one file
9 years ago
ansuz
dbf1e2b870
support reusing the netflux network
...
export more internals from realtime input
9 years ago
ansuz
6f7543e9cc
demonstrate chaining of 'on' directives
9 years ago
ansuz
e44446f71e
proper recursive proxy initialization
9 years ago
ansuz
68cec2348a
don't prompt the user with a crypto hash for their name
9 years ago
ansuz
83696495a8
use chainpad from bower, not local
9 years ago
ansuz
2b9ac14cb1
restructure main to take advantage of new callback infrastructure
9 years ago
ansuz
fea74782a2
remove a little more dead code that I missed
9 years ago
ansuz
a58d6c745a
implement remaining listeners and factor
...
* 'isProxyable' helper
* 'find' helper
* 'lengthDescending' helper (for sorting change/remove events by path length)
* implement recursive proxy creation
* implement recursive proxy removal
* implement 'bubbling' prevention (via return false)
* implement create, ready, and disconnect event handlers
* return 'this' from 'on'
* trim dead code
9 years ago
ansuz
4222c0b516
simplify api
...
* refactor conditional with DeepProxy helpers
* don't call 'onRemote' until fully initialized
* use disconnect, ready, and create handlers on proxy object
9 years ago
ansuz
954ee26f4d
fix undefined disconnect reason
9 years ago
ansuz
a0ec5eada8
better fix for magicline filter
9 years ago
ansuz
9336c4de5c
import latest chainpad
9 years ago
ansuz
d0b553d198
port Yann's multiple-select implementation to cryptpad
9 years ago
ansuz
e3b8a10959
fix magicline filter
9 years ago
ansuz
058548b95a
revert my reversion
...
Revert "Revert "Added checkpoints with the new code from ChainPad""
This reverts commit 6e2e8bf21f
.
9 years ago
ansuz
6e2e8bf21f
Revert "Added checkpoints with the new code from ChainPad"
...
This reverts commit da2bfe2de9
.
9 years ago
ansuz
599f5aeec8
add sample listeners for debugging
9 years ago
ansuz
3afd144562
don't make noise when adding a listener
9 years ago
ansuz
e86a3567be
more minor bugfixes and general improvements
...
off by one error in deletion loop (and undefined references)
sort listeners by pattern specificity
deletions are changes (for now)
9 years ago
ansuz
ce99bd9ba3
Merge branch 'two' of github.com:xwiki-labs/cryptpad into two
9 years ago
ansuz
7c63219add
fix some minor bugs
9 years ago
ansuz
a0c73c95d8
do away with a bit of boilerplate
9 years ago
ansuz
e189092ba8
document/spec the listmap api in its current/intended form
9 years ago
ansuz
55846044e1
rewrite underlying API. implement listeners
9 years ago
Caleb James DeLisle
da2bfe2de9
Added checkpoints with the new code from ChainPad
9 years ago
ansuz
014dce272b
working on better abstractions. still held together with duct tape
9 years ago
ansuz
c1bca09cce
move list/map functionality into wrapper file
9 years ago
ansuz
f61d06fa18
first commit for listmap prototype
9 years ago
ansuz
774d349ec3
ignore hidden elements and submit buttons
9 years ago
ansuz
cf85de6113
remove old bencoding code
9 years ago
ansuz
d99bb8ff84
WIP : fallback to old parsing doesn't work
9 years ago
ansuz
f04be53d11
fall back to old parsing if the message is bencoded?
9 years ago
ansuz
976a08cc7a
move to chainpad version 2
9 years ago
ansuz
297d8c2d44
reformat code for jshint compliance
9 years ago
ansuz
baf523e9a5
add new functionality from xwiki development
9 years ago
ansuz
0c89443c1b
fix typo
9 years ago
ansuz
39fcd7dc4c
more specific filtering for magicline plugin
...
to avoid false positives for other things which are non-contenteditable spans
9 years ago
ansuz
cae750cd75
update padrtc for to use bower libraries
9 years ago
ansuz
ad3c53c344
use textpatcher from bower for all pads
9 years ago
ansuz
0cd4f85ff0
remove migration notes
9 years ago
ansuz
a7cbd8c470
we're pushing json over the wire, so let's use json-ot.validate
9 years ago
ansuz
3ea270acb9
fix cursors in form prototype
9 years ago
ansuz
d2c8fbf1f8
use hyperjson.amd.js, not hyperjson.js
9 years ago
ansuz
663c157e2a
expose text patcher to the window via APP
9 years ago
ansuz
1769ca16dc
add example for configuring the logLevel in /pad/
9 years ago
ansuz
7faf57602b
implement log level settings from application layer
9 years ago
ansuz
523aff3067
use upstream chainpad.js
9 years ago
ansuz
dcd130cd9d
use hyperjson from bower in padrtc
9 years ago
ansuz
c752e4a6e5
remove sharejs
9 years ago
ansuz
6b2e986789
remove deprecated textsocket library
9 years ago
ansuz
d2fa5e8f70
start using hyperjson from bower.io
9 years ago
ansuz
150ebaba7b
add ability to force text diffing
9 years ago
ansuz
aef6f3a85b
lock codemirror editor until chain has synced
9 years ago
ansuz
6736335db2
add 'made with <3' toolbar to code
9 years ago
ansuz
506a703b7d
turn off TextPatcher logging on /pad/
9 years ago
ansuz
ba17b78f7a
restyle name change button
9 years ago
ansuz
d79b3616c9
remove unused files
9 years ago
ansuz
4c84758265
disable textpatcher logging
9 years ago
ansuz
46b009d20f
remove last non-netflux pad
9 years ago
ansuz
18e0131d6e
Merge branch 'migrate' of github.com:xwiki-labs/cryptpad into beta
9 years ago
ansuz
32d1807350
import unused functions from /p/, to be integrated later
9 years ago
Yann Flory
492054a938
Fix the cursor position when a remote patch is applied
9 years ago
ansuz
626ecaffcd
log browser fights in /pad/
9 years ago
Yann Flory
5bb2e12db2
Merge branch 'beta' into migrate
9 years ago
ansuz
afe78dad56
Merge branch 'netflux' into beta
9 years ago
Yann Flory
cc51e6d6ed
Update CodeMirror pad to work with Netflux
9 years ago
ansuz
a735d63306
migrate markdown rendering 'pad' to netflux
9 years ago
Yann Flory
f5f8f6e1eb
Remove the delay between a change and its propagation to chainpad
9 years ago
ansuz
fa6914037c
start rewriting codepad to use realtime-input
9 years ago
ansuz
2852c8f594
Merge branch 'netflux' of github.com:xwiki-labs/cryptpad into beta
9 years ago
Yann Flory
fe3bb4da27
Merge branch 'netflux' of github.com:xwiki-labs/cryptpad into netflux
9 years ago
Yann Flory
53b2644b64
Fix a issue with fights over usernames
9 years ago
Caleb James DeLisle
3b6fe44378
Merge branch 'beta' of github.com:xwiki-labs/cryptpad into beta
9 years ago
ansuz
255dc17a5d
Merge branch 'beta' into netflux
9 years ago
ansuz
f9de1c9e1f
Merge branch 'beta' of github.com:xwiki-labs/cryptpad into beta
9 years ago
ansuz
c14b86d84a
add missing semicolon
9 years ago
ansuz
b3ef2abb84
fix jshint complain
9 years ago
Yann Flory
85d5f5c47f
Convert netflux to es5
9 years ago
Yann Flory
c0b8aac792
Fix an issue where metadata could be duplicated in the realtime userdoc
9 years ago
ansuz
22cf18f78c
Merge branch 'beta' of github.com:xwiki-labs/cryptpad into beta
9 years ago
ansuz
c509c28c18
realtime form prototype, almost in good condition
9 years ago
ansuz
1a9e7299fc
working state
9 years ago
ansuz
69e8f54e8f
pass in Crypto to realtime-input
9 years ago
Caleb James DeLisle
5f16ad4a58
Update to most recent chainpad
9 years ago
ansuz
aa07dd31ee
have json-ot initialize its own debug module, instead of relying on a window variable's existence
9 years ago
Yann Flory
d3203d1c2a
Remove Crypto from the modules loaded with RequireJS in realtime-input
...
It now has to be passed in the config in the main JS file
9 years ago
Yann Flory
8ac69ca262
Add a missing "time" property in the netflux client causing incorrect
...
timeout errors
9 years ago
ansuz
be1ef7abe3
migrate canvas to netflux
9 years ago
ansuz
d4943511fe
move text/ and hack/ to Netflux
9 years ago
ansuz
4c95602347
remove a little bit more dead code
9 years ago
ansuz
b140b6429d
remove a little bit of dead code
9 years ago
ansuz
2c6cf9883b
stop using deleted file
9 years ago
ansuz
bbdc9da853
delete duplicated file
9 years ago
ansuz
cce50390a0
don't depend on library to set hash
9 years ago
ansuz
5f4825f3a0
don't change the hash from realtime input
...
let applications handle that logic
9 years ago
ansuz
80fb5e1e21
don't rely on RealtimeSocket exporting textPatcher
9 years ago
ansuz
4f426651ad
remove TextPatcher from RealtimeTextSocket
9 years ago
ansuz
a527024a8c
start on realtime form prototype
9 years ago
ansuz
02ff1a63a4
Merge branch 'netflux' into beta
...
Conflicts:
www/assert/main.js
9 years ago
ansuz
04f6299938
reconcile differences with netflux
9 years ago
ansuz
565fb1d186
include small snippets for preventing browser fights
9 years ago
ansuz
ffbd428b87
better logging of browser fights
9 years ago
ansuz
4d44661f3b
more correct tests
9 years ago
ansuz
a18c793f98
use latest hyperjson
9 years ago
ansuz
980ff8a0ca
Fix a test that was failing on chrome
...
it failed for reasons which are irrelevant to our application
9 years ago
ansuz
9efcc443cd
add 'format' to TextPatcher's API
9 years ago
ansuz
0769e50414
move TextPatcher to highest application layer
9 years ago
ansuz
1d70335228
provide all callbacks before starting
9 years ago
ansuz
9498937b43
add a FIXME to the assert page
...
tests were failing (unnecessarily) on Chrome
9 years ago
ansuz
a3787ee4dc
Merge branch 'netflux' into beta
9 years ago
ansuz
06b464c524
move sheet/ to .git
9 years ago
ansuz
cdf02ac725
remove input pad
9 years ago
ansuz
11961b4f1d
export stringifyDOM to REALTIME_MODULE
9 years ago
ansuz
5db487db3f
remove old pad entirely
...
hyperjson version is considered a strict improvement
9 years ago
ansuz
010566d3c3
pushDelta was mistakenly deprecated. restored.
9 years ago
ansuz
1639c5b099
use hyperscript and hyperjson from common
9 years ago
ansuz
3598c93098
move new hyperjson into common
9 years ago
ansuz
103bb69daa
move custom hyperscript into common
9 years ago
ansuz
e357549eda
push browser fights into an array for inspection
9 years ago
ansuz
b83fb7b823
improve brFix logic
...
stop exporting functions which we wish to deprecate
9 years ago
ansuz
1c7954ed51
Grab Fabric off of the window
9 years ago
ansuz
06786b6e02
Remove redundant declaration
9 years ago
ansuz
df22c246c4
serialize text nodes correctly
9 years ago
ansuz
7ca5f47d02
remove multitest pad since it offers no significant benefit
9 years ago
ansuz
bafdd588dd
fix /hack/ to not require sharejs textarea
9 years ago
ansuz
f2db6b83eb
better sizing for palette options
9 years ago
ansuz
5ce158d2e2
add more colors
9 years ago
ansuz
7c4b334ad3
here's a canvas app!
9 years ago
ansuz
41276fffb5
repair /text/ application, conform to new API
9 years ago
ansuz
cb979844f6
implement text patching at application layer
9 years ago
ansuz
4a41575e6d
accept onLocal in config
9 years ago
ansuz
d3c2c901b6
implement cursor transformation in a common library
9 years ago
ansuz
92d89f6cac
start to factor sharejs into two modules
9 years ago
ansuz
13dc77b7f6
remove commented line
9 years ago
ansuz
41e635b2e5
realtime-input.js : turn on logging
9 years ago
Yann Flory
69e8e18283
Remove the pipe character in the hash
9 years ago
ansuz
d62e9fc1c9
add a missing semicolon
9 years ago
ansuz
4095201d15
Merge branch 'netflux' of github.com:xwiki-labs/cryptpad into integrate
9 years ago
Yann Flory
c32045d7d0
Fix an issue with missing characters when several users were typing at the same time
9 years ago
ansuz
822b2bd2b9
Merge branch 'netflux' of github.com:xwiki-labs/cryptpad into integrate
9 years ago
Yann Flory
be09a1808d
Remove old code from realtime-input
9 years ago
ansuz
5a5b9ad718
Merge branch 'netflux' into beta
9 years ago
ansuz
4af987a2a2
point to correct toolbar.js
9 years ago
ansuz
3ade46adc7
Merge branch 'newtests' into beta
9 years ago
Yann Flory
6884b0890a
Fix the typong tests not working properly
9 years ago
ansuz
b12a01e08f
report test results on the page, not in the console
9 years ago
ansuz
feaae609ad
fix broken path for padrtc
9 years ago
Yann Flory
ecc41d14af
Use canonical serializer for json serialization
9 years ago
ansuz
fc77ef66b3
Merge remote-tracking branch 'origin/sortify' into HEAD
...
utilize canonical stringify function
Conflicts:
www/_socket/main.js
9 years ago
Caleb James DeLisle
319f5b95f7
Use canonical serializer for json serialization
9 years ago
Yann Flory
9683fd9aec
Always serialize the DOM in one way.
9 years ago
Caleb James DeLisle
698338b49a
Use canonical serializer for json serialization
9 years ago
Yann Flory
e207d8b579
Merge branch 'diffdom' into netflux
9 years ago
ansuz
468827dadd
newest tests
9 years ago
ansuz
c867ab04ab
rename /_socket/ app to /p/
9 years ago
ansuz
a1fe941f69
Always serialize the DOM in one way.
9 years ago
ansuz
f4c5b2a996
Add sane defaults to TextPatcher diffs
9 years ago
ansuz
259772dd62
Turn on TextPatcher logging for _socket
9 years ago
ansuz
0537c28919
Add switchable logging to TextPatcher.js
9 years ago
Caleb James DeLisle
8a36963582
Enable ChainPad PARANOIA mode but remove the part which causes most slowness
9 years ago
ansuz
284da6a4e9
minor improvements I made to the /hack/ pad last night
9 years ago
ansuz
9f0cc4ed64
update hack with a slightly better UI
9 years ago
ansuz
71c0a06c3b
Merge branch 'hack' into diffdom
9 years ago
ansuz
19cd991dba
trim dead code, comment, very minor optimizations
9 years ago
ansuz
f75c246029
remove dead code from pad/main.js
9 years ago
ansuz
9f45ccb2d9
use console.error for stack traces
9 years ago
ansuz
d705b947ab
Merge branch 'diffdom' into netflux
...
basic cleanup while performing a larger merge between two prototypes
9 years ago
ansuz
2ffa69dc15
remove checks for a non-existent race condition
9 years ago
ansuz
368d72b337
add missing semicolons to TextPatcher.js
9 years ago
ansuz
851ccfbdb6
detect falsey operations in OT and ignore them
9 years ago
ansuz
400f6efde1
json-ot.js : jshint compliance
9 years ago
ansuz
a0999d1d2b
add a comment about why hashes are being stubbed
9 years ago
ansuz
ca94d30386
detect falsey operations in OT and ignore them
9 years ago
ansuz
9f9cd8d8cd
realtime-input.js : fixes for jshint compliance
9 years ago
ansuz
793149a608
json-ot.js : jshint compliance
9 years ago
ansuz
06a3b63923
jshint compliance for toolbar.js
9 years ago
ansuz
3b8238ef3b
add missing semicolons to pad/main.js
...
jshint compliance
9 years ago
ansuz
5cead3fad3
add missing semicolons to TextPatcher.js
9 years ago
ansuz
e6ab03164c
import TypingTests.js and expose at the console
...
RTWYSIWYG-54
> implement tests for components of the WYSIWYG editor
9 years ago
ansuz
94e57e4a26
update location of text-patcher.js
9 years ago
ansuz
b37dab1f49
Merge branch 'diffdom' into netflux
...
Simple cleanup and unit tests
9 years ago
ansuz
a07774e81a
Implement tests for serialization
...
ensure that complex DOM elements can serialize and deserialize without modifications
RTWYSIWYG-54
> implement tests for components of the WYSIWYG editor
9 years ago
ansuz
6bb37aed44
main.js : support tab insertion in /hack/ pad
9 years ago
ansuz
6b9d982d40
stabilize _socket/realtime-input.js
...
...as common/RealtimeTextSocket.js
9 years ago
ansuz
1a22592afa
remove unused modules from realtime-input.js
9 years ago
ansuz
39071021eb
stabilize typingTest.js as /common/TypingTests.js
9 years ago
ansuz
9805958ad7
stabilize text-patcher.js into /common/TextPatcher.js
9 years ago
ansuz
2c34833d2c
break text-patcher's functionality into components
...
text-patcher.js now exports diff, patch, log, and apply change
in addition to the previous 'create' method.
9 years ago
ansuz
7782069dbd
Merge pull request #15 from xwiki-labs/diffdom
...
merge diffdom into netflux
9 years ago
ansuz
a1f9b10175
remove offending line from chainpad entirely
...
RTCHAINPAD-3
9 years ago
ansuz
4071a3aa25
revert to using the chainpad in /common/
...
now that we have found the problem that caused the backspace bug
we don't need a special chainpad for testing.
9 years ago
ansuz
4ba68eb2bf
fix leaky variable in chainpad
...
Patch.transform declared a 'toTransform' variable without using 'var'
this caused it to leak onto the window during operational transformations
9 years ago
ansuz
05108efdfa
correct chainpad's transformation function
...
addresses RTCHAINPAD-3
Pending further testing, this change will still need
to be corrected in https://github.com/xwiki-contrib/chainpad/
9 years ago
Yann Flory
360fee9feb
Fix a new cursor error with Codepad
9 years ago
Yann Flory
c2e0dded3a
Fix an issue with the cursor sometimes disappearing when a patch was received
...
Update CodeMirror to the latest version (5.13.2)
9 years ago
Yann Flory
713c90242b
Hide the usernames when they have not been changed
9 years ago
Yann Flory
c53baab99d
Update Codepad with the latest improvements
9 years ago
Yann Flory
0b3d6e15b8
Replace the Netflux old client (netflux.js) by the Netflux2 client.
...
Move the WebRTC peer-to-peer use case in /padrtc, which still uses the old
Netflux client
Use es6-promises.min.js to solve a issue with some browser and the new
Netflux client
9 years ago
ansuz
cd357a9136
turn an alert into a console.error
9 years ago
ansuz
ec64e0d381
use getAttribute to inspect document elements
...
el.getAttribute('attr') is more reliable than el[attr].
9 years ago
ansuz
f5b0e1a5df
Add comments, debug variables. initialize better
...
Expose Hyperscript via window.REALTIME_MODULE
Make sure to pass in a JSON.parse'able initial state.
Add comments detailing the problems with not using setAttribute
9 years ago
ansuz
842b9d4243
Generalize _socket/realtime-input.js a little more
...
Anything JSON related should be at the application layer
9 years ago
Yann Flory
cf9f60bd57
The server don't send back anymore messages to their sender
9 years ago
Yann Flory
eb4ea7a6b0
Remove the content from the ACK messages sent by the server
9 years ago
Yann Flory
ba4faea939
Update the pads to run with the latest improvements to the websocket server
9 years ago
Yann Flory
5ef7e29a9b
Add the latest changes from _socket into the netflux pad
9 years ago
ansuz
b59a14c5ac
merge hyperjson changes from realtime xwiki
...
more resilient class serialization.
comments
9 years ago
ansuz
2691d85582
use forked chainpad with assertions for _socket
9 years ago
Yann Flory
b41f0e8c50
Merge branch 'cjd-fixed-it-with-hax' into netflux2
9 years ago
ansuz
c50690349b
comments describing the role of each argument
9 years ago
ansuz
df78d284c4
initial state should be valid JSON so JSON parse doesn't fail
9 years ago
ansuz
96e03fcfa4
Use latest chainpad without mutations
9 years ago
ansuz
d5772c6315
when json-ot produces json that fails to parse...
...
export the relevant data to a window variable so we can inspect it better
9 years ago
ansuz
aaf7c777cc
add debugging info to the textPatcher
...
* kill dead code
* add assertions
* better logging for insertions and removals
9 years ago
ansuz
523df40d09
Debugging concurrent typing:
...
track whether there are local operations in progress, such that we can tell
whether a remote change is interrupting the DOM's conversion to hjson.
9 years ago
ansuz
e446a3645c
don't send funny BR attributes over the wire. Properly initialize the typing test
9 years ago
ansuz
22290590cb
don't rely on window scope in typingTest.js
9 years ago
ansuz
772ca5d30e
comment out debugging line
9 years ago
ansuz
6c340a6527
chainpad testing = true, reject non-compliant messages
9 years ago
ansuz
afa1104d85
Pull the cursor out of bogus BR tarpits when it gets stuck
9 years ago
ansuz
bac0e0ff88
implement hyperjson filtering
9 years ago
ansuz
e51635c4bb
fix index error
9 years ago
ansuz
3aebf7d2c2
minor changes to pass linting
9 years ago
ansuz
29e24f556c
kill another window variable
9 years ago
ansuz
e699073d45
attempt to preserve the magic line plugin while someone else is typing
9 years ago
ansuz
941f5361ea
forgot to add 'typingTest', which main depends on
9 years ago
ansuz
d852c578d8
removed dead code
9 years ago
ansuz
5591aae8fa
Clean up main file
...
* convert.js includes the vdom library, which we aren't using anymore
- removed, and replaced with the simple functions from Hyperjson and Hyperscript
* removed several variables that had been exported to 'window'
* moved the testing functions out into their own file for easier reuse
* restructured realtime initialization to be more compact
9 years ago
ansuz
478ccbf984
revert changes to chainpad
9 years ago
ansuz
e3b78e20de
Merge branch 'cjd-fixed-it-with-hax' of github.com:xwiki-labs/cryptpad into cjd-fixed-it-with-hax
9 years ago
ansuz
e26246178f
start to clean up and give things more sensible names.
...
get rid of the textarea entirely
9 years ago
Caleb James DeLisle
b372b0b77c
small change to chainpad in order to make it more likely to fail if the authDoc goes into the wrong state
9 years ago
Caleb James DeLisle
f3fb674504
Merge branch 'cjd-fixed-it-with-hax' of github.com:xwiki-labs/cryptpad into cjd-fixed-it-with-hax
9 years ago
Caleb James DeLisle
98c85cef8b
xxx
9 years ago
ansuz
12dcbc9121
fix quick red fox and make test.cancel work again
9 years ago
Caleb James DeLisle
62eabbc7ae
If a message does not match parent hash, don't delete it from storage
9 years ago
Caleb James DeLisle
dbf31798d5
json-ot triggering PARANOIA errors in ChainPad
9 years ago
Caleb James DeLisle
03932d0169
small changes to chainpad for testing
9 years ago
Caleb James DeLisle
669bcc1935
If there is a difference in the hjson then send a message back
9 years ago
Caleb James DeLisle
f62ec85a4c
Shuffled around some assertions and logs
9 years ago
Caleb James DeLisle
420a7098a6
more testing and crap
9 years ago
ansuz
4b35a145e3
Push WIP
9 years ago
ansuz
42c972116b
leave TODO re: diffDOM and magicline
...
Hyperjson guarantees that magicline elements are not sent across the wire.
DiffDOM must guarantee that magicline elements will not be removed on remote edits.
9 years ago
ansuz
e066730b68
add notes about how hyperjson is to be used
9 years ago
ansuz
cd462ed872
Merge legacy websocket version
9 years ago
ansuz
c047d5310f
implement optional filtering in hyperjson
...
Implemented via callback, return falsey if you want to filter an element
and all of its children from the serialized result.
Conflicts:
www/common/convert.js
9 years ago
ansuz
0d33af773f
implement optional filtering in hyperjson
...
Implemented via callback, return falsey if you want to filter an element
and all of its children from the serialized result.
9 years ago
ansuz
475ca9bea8
hyperjson.js : used split instead of filter... oops
9 years ago
ansuz
1bd5cb9e27
hyperjson.js : used split instead of filter... oops
9 years ago
ansuz
b2753ef7b7
fix string manipulation off-by-one
9 years ago
ansuz
f98fda7604
fix string manipulation off-by-one
9 years ago
ansuz
4f3fcb08a4
better error reporting when the operational transform fails to parse JSON
9 years ago
ansuz
0ff4906f0e
implement better serialization of class names
...
RTWYSIWYG-27 : poorly formed yet valid HTML caused hyperjson to produce element
selectors which hyperscript could not parse.
9 years ago
ansuz
fbe6225681
Don't attempt to use the cursor selection when it has length 0
...
RTWYSIWYG-20
RTWYSIWYG-24
9 years ago
ansuz
0c6222b5f9
better error reporting when the operational transform fails to parse JSON
9 years ago
ansuz
79a9998b13
implement better serialization of class names
...
RTWYSIWYG-27 : poorly formed yet valid HTML caused hyperjson to produce element
selectors which hyperscript could not parse.
9 years ago
ansuz
bd24821c6c
Don't attempt to use the cursor selection when it has length 0
...
RTWYSIWYG-20
RTWYSIWYG-24
9 years ago
Yann Flory
de6db0285c
Limit the size of the usernames to 32 chars
9 years ago
Yann Flory
38d797a4f1
Fix issue with Chrome and WebRTC
9 years ago
Yann Flory
7237c751d5
Move 'vdom' to the main 'pad'.
...
Hide the right-hand panel (can de bisplayed with a 'debug' button)
Hide the IDs of users if they don't change their name
9 years ago
Yann Flory
e77d85bc82
Trigger an onReady() method when the user's pad is fully synced (the history is loaded)
9 years ago
Yann Flory
eca4ec699c
Ability to change the username (the user ID is displayed by default)
9 years ago
Yann Flory
6e50ae94dd
Remove unused code
9 years ago
Yann Flory
5da8560e22
Fix the user list in the toolbar keeping old data with the WebSocket server
...
Chainpad is no longer responsible for the userlist or the ping
9 years ago
Yann Flory
3a188625e0
Improve the detection of a disconnected peer to update the user list with the WebRTC service
9 years ago
Yann Flory
77e7fb5724
Fix an issue with the WebRTC service where it was impossible to join a channel once someone had left this channel
9 years ago
Yann Flory
06e5c84702
Clean some code
9 years ago
Yann Flory
29033f344c
Merge branch 'netflux' of github.com:xwiki-labs/cryptpad into netflux
9 years ago
Yann Flory
b1e8bcddef
Fix the user list not working with the WebRTC service and causing major issues
9 years ago
Yann Flory
c576241104
Add a Chainpad adapter to make Chainpad know the userList
9 years ago
ansuz
fb0e82931d
correct malformed json
9 years ago
Yann Flory
ae8f6f7f2c
Ability to choose which protocol to use (Websocket or WebRTC) with Netflux
9 years ago
ansuz
3a7af63c54
correct malformed json
9 years ago
Yann Flory
b7885eb539
Fix channel history
9 years ago
ansuz
136e2d8cf2
pass in missing textarea argument so textpad starts working again
9 years ago
ansuz
8258018c1d
Revert "fix undefined reference"
...
This reverts commit 7d65540123
.
To restore functionality in convert.js
9 years ago
ansuz
c67451bc1a
Revert "remove broken functions from convert module"
...
Because I forgot that the /render/ page was still using vdom
This reverts commit 93fb944e1f
.
9 years ago
Yann Flory
c536ecbc1c
Temp commit
9 years ago
Yann Flory
870b2dbb7e
Add the WebRTC server in Cryptpad
9 years ago
Yann Flory
c4f62fb812
First try with WebRTC
9 years ago
Yann Flory
09a06a8bc5
Replace the chainpad server by the netflux server
9 years ago
Yann Flory
60c3aceb0d
Add chatflux server
9 years ago
Yann Flory
deb2084fc5
Add the socket connection checker
9 years ago
ansuz
d3e2a2f52e
make verbose logging switchable via a conditional
9 years ago
ansuz
1c54af69a1
update minor editors to use new realtime-input api
9 years ago
ansuz
9b228eea6b
modify vdom main.js to adhere to new realtime-input api
9 years ago
ansuz
fefb904261
realtime input changes
9 years ago
ansuz
fd99dba4a3
modify realtime-input api to take a single object as configuration. merge netflux API
9 years ago
Yann Flory
62ba579d4a
Add Netflux API with WebSocket service V1
9 years ago
ansuz
53d3e475f7
ui hints for hackpad
9 years ago
ansuz
d2f4fbcee9
fail the toolbar from the application layer
9 years ago
ansuz
d7b34cf6be
don't call toolbar from within realtime-input.js
9 years ago
ansuz
e8469ae1bb
test out extended realtime-input api
9 years ago
ansuz
5e1566eaec
fix incomplete 'onAbort' block
9 years ago
ansuz
52fe892bae
invert logical relationship with flag
...
otherwise updates don't actually propogate
9 years ago
ansuz
938df2b92f
lock the editor until the chain has synced
...
add 'onAbort' hook. lock the editor if the connection fails.
9 years ago
ansuz
1d6ccc99a1
add 'onAbort' hook to realtime-input.js
9 years ago
ansuz
e5bef52850
reintroduce the toolbar
9 years ago
ansuz
6ff5b10486
remove local diffDOM version
9 years ago
ansuz
93fb944e1f
remove broken functions from convert module
9 years ago
ansuz
7d65540123
fix undefined reference
9 years ago
ansuz
c246adc57b
Lock contenteditable until chain is done syncing.
...
Don't bother patching the dom until the chain has synced
9 years ago
ansuz
1c0074258c
go back to using diffDOM from bower
...
The latest version is required. You'll need to update.
9 years ago
ansuz
79bd82a62e
main.js : integrate with patched diffDOM
9 years ago
ansuz
6884fabda9
Use local diffDOM instead of bower_components
...
At least until the PR gets accepted
9 years ago
ansuz
f5a8727254
remove some unused functions from cursor.js
9 years ago
ansuz
db1515c445
cursor.js : commit before cleaning up
9 years ago
ansuz
7e367e770e
resize vdom debug panel to 30% width
9 years ago
ansuz
91ada5ce7a
export Operation from chainpad. for use with OT
9 years ago
ansuz
5425699f43
check if possible parent exists before checking if it contains another element
9 years ago
ansuz
67bdb8a65a
fix a bad regex that occasionally threw an error
...
'nothing to repeat'
9 years ago
ansuz
e87a4599a4
main.js : tiny patch until things are working correctly.
9 years ago
ansuz
9ce59c985f
only do stuff with the cursor when a remote edit takes place
9 years ago
ansuz
39f56d4fd1
throw error when checking for the index of a node that has no parent.
...
it probably isn't in the dom if this is the case.
Check if it's there before using this function
9 years ago
ansuz
de46be85ba
add better helpers for finding and resetting the cursor
9 years ago
ansuz
7e7f1fee76
include abstracted json-ot, add comments, start to use cursor stuff
9 years ago
ansuz
c09036bd29
snapshot cursor.js, as some things are working quite well now
9 years ago
ansuz
4eee1f5210
add orderOfNodes function to tree library
9 years ago
ansuz
7689151fc0
pull json validation for OT into its own module for reuse
9 years ago
ansuz
fbb9163e42
main.js : clean up and commit before making big-ish changes for cursor fixing
9 years ago
ansuz
2c8a2406c6
cursor.js : snapshot before code deletion
9 years ago
ansuz
1beb3f5355
snapshot of treesome.js before deletion
9 years ago
ansuz
8ead5ca129
realtime-input.js : add notes regarding integration of the netflux api
9 years ago
ansuz
3cb94b8d80
jshint compliance
9 years ago
ansuz
d1885fbab6
better jshint compliance for common files
9 years ago
ansuz
539cc3a2fa
remove unused files from common directory
9 years ago
ansuz
afa2811472
remove local version of marked.js, prefer bower version
9 years ago
ansuz
587f95b6d7
don't overflow
9 years ago
ansuz
a01331cb9a
hide styling textarea no matter what
9 years ago
ansuz
a600ece5c5
fix jshint complaints in common directory
9 years ago
ansuz
4a05a859e6
fix initialization routines
9 years ago
ansuz
f1915d3b7c
fix jshint complaints in pad directory
9 years ago
ansuz
fe3917c0f1
fix jshint complaints in codemirror directory
9 years ago
ansuz
2c5a2b6023
remove unused code, add todos, fix minor errors
9 years ago
ansuz
c5ab5dfe26
realtime style editor with lorum ipsum
9 years ago
ansuz
967d636df9
address more jshint complaints
9 years ago
ansuz
f6c848385f
hyperjson.js : jshint complains about var index in for loop
9 years ago
ansuz
0fbbb51f7f
drop this useless line
9 years ago
ansuz
d1dd497457
html-patcher.js : add missing semicolon
9 years ago
ansuz
62ea172ff4
errorbox.js : add missing semicolon so jshint doesn't complain
9 years ago
ansuz
3b5c932252
jshint ignore eval line
9 years ago
ansuz
7f92abc7bf
Merge branch 'diffdom' of github.com:xwiki-labs/cryptpad into demoEffect
9 years ago
Caleb James DeLisle
a7da21ccba
Remove the cursor treatment
9 years ago
Caleb James DeLisle
86c4a69a97
Switch to patching with DiffDOM for testing :D
9 years ago
ansuz
653ba33b65
Merge branch 'vdom' of github.com:xwiki-labs/cryptpad into demoEffect
9 years ago
Caleb James DeLisle
2031191261
testing=false
9 years ago
Caleb James DeLisle
37db31b09e
Attempt an operational transformation and if the result is not valid JSON then fail
9 years ago
Caleb James DeLisle
e16299b5c4
Revert "restub OT until it's verified"
...
This reverts commit 350c9e6c76
.
9 years ago
ansuz
c22269e36e
cursor.js : make the console a little less noisy
9 years ago
ansuz
350c9e6c76
restub OT until it's verified
9 years ago
ansuz
99a23154b7
files for unstubbing OT
9 years ago
ansuz
c740c0ec92
add stuff for walking the tree
9 years ago
ansuz
ad184b1114
add stuff to recover the cursor
9 years ago
ansuz
1aea11bb30
describe all the prototypes which are available
9 years ago
ansuz
9b13fd8f34
pull cursor correction code out of main.js
...
put it in cursor.js
9 years ago
ansuz
3b0ac3af4c
More sensible styles
...
respond to viewport size
don't use gigantic font
9 years ago
ansuz
b43674eb53
switch back to two-panel layout
9 years ago
ansuz
f33e061c9a
visit /hack/ to see what this is
...
I'll leave it up to the users to decide
whether XSS is a bug or a feature
9 years ago
ansuz
019750bea8
realtime-input.js : callback onInit if exists
9 years ago
ansuz
61fbf81dcd
factor out rainbow stuff into rainbow.js
9 years ago
ansuz
7102a0a164
make rainbows
9 years ago
ansuz
aa3880f442
up to date
9 years ago
ansuz
d2f6c63d8a
realtime-input.js : changed the api and left an undefined reference. fixed
9 years ago
ansuz
150c9a300d
scale viewport so mobile is readable
9 years ago
ansuz
d96124229b
clean up realtime-input.js, break API
...
use an object for configuration, so as to be more extensible.
modify applications which use the API to match.
9 years ago
ansuz
e43b9715e8
remove /md/ prototype
...
use /text/ and /render/ instead.
9 years ago
ansuz
64cc177a60
remove vmd directory
...
it was only a prototype, and only contained code which was no longer useful
9 years ago
ansuz
e220113e98
fix the 'crapstorm' bug
9 years ago
ansuz
ed03a48092
minor patches that make things a bit more reliable, still some bugs
9 years ago
ansuz
ac0f7852fc
committing latest changes for review
9 years ago
ansuz
2016550e01
virtual-dom.js : identify problem area?
9 years ago
ansuz
08fb010627
give 'onChange' a name
9 years ago
ansuz
b52327be49
restyle /text/ page
9 years ago
ansuz
266e5eccce
change styles for rendered page
9 years ago
ansuz
2adfeaaaaa
test having multiple textareas in one page
9 years ago
ansuz
3cffdc982f
remove unused functions from render/main.js
...
better comments
9 years ago
ansuz
317abf36f3
make rendered images sort of responsive
9 years ago
ansuz
388c6de64a
minor style tweaks for /render/
9 years ago
ansuz
ec172b6d21
rendered html should be scrollable
9 years ago
ansuz
a484b920e3
disallow resizing of textarea
9 years ago
ansuz
d9d4abb9a5
don't let the textarea overflow the body
9 years ago
ansuz
dcbbeea734
solarized dark color scheme in /text/
9 years ago
ansuz
c2eb29b75e
fix typo
9 years ago
ansuz
fd1e5d5735
better styling on render page
...
now solarized dark
9 years ago
ansuz
a718f89e08
make a new pad that doesn't allow input.
...
It simply renders markdown that's being written in the same channel
but in another editor that allows input.
9 years ago
ansuz
2e3b424a1a
sanitize markdown before rendering to prevent XSS
...
draw rainbox borders on element redraws in vdom method.
This lets us see what being redrawn, as the vdom.diff method
is breaking a few things.
9 years ago
ansuz
13f5371199
remove duplicated files
9 years ago
ansuz
aa6bbabc62
prototype a vdom-based markdown editor
...
avoid unnecessary redraws.
discover a bug, apparently vdom replaces all child elements after an
element which was modified.
As such, changing b in [a, b, c, d] causes b, c, and d to be redrawn.
This is undesirable.
9 years ago
ansuz
d14e42fedd
start on a vdom-based wysiwyg realtime
...
There are still a few conditions that cause it to 'explode'
when different browsers disagree on element semantics.
Overall it's a much cleaner approach, but it will require
extensive tuning to improve performance, as there are still
many complete dom traversals which will not scale for large documents
9 years ago
ansuz
1f7f90165f
Slap marked.js onto a textarea
...
Multiple people can now edit markdown and see the results in realtime.
9 years ago
ansuz
d5a1629a93
A really basic shared text area with encryption.
...
...and not much else. If you want to hack on something
this is a great place to start.
9 years ago
ansuz
50121c8ab6
a really basic collaborative input
...
type="text" is typically slower than the same code
when used to sync a textarea.
WATCH OUT!
9 years ago
ansuz
b18dfef656
sharejs textarea is used by realtime-input.js
9 years ago
ansuz
997ce1147f
realtime input wraps up basic realtime stuff
...
so we don't have to rewrite the realtime api for every application.
starting to move towards a portable api :D
9 years ago
ansuz
40b8c0efe8
drop in chjj's marked.js for a cool demo
9 years ago
ansuz
2d8ffdf31c
Merge branch 'master' of github.com:ansuz/cryptpad
9 years ago
ansuz
0c2e057f9d
export component APIs from convert
9 years ago
ansuz
b958caebdd
dom, vdom, hyperjson, and an api which provides a matrix of conversions
9 years ago
ansuz
4cf2a8a0bd
rtwiki.js : catch some typeErrors
9 years ago
Lars-Magnus Skog
84c0ea6d26
refactor: pass in ifrw.CodeMirror into andThen()
9 years ago
ansuz
663e987345
fix race condition in codemirror initialization
...
over slow connections, iframes don't load fast enough to be ready for code
which depends on certain features existing.
wait until they're ready, then initialize.
9 years ago
ansuz
2ed9f0867a
Merge branch 'master' of github.com:xwiki-labs/cryptpad into codepad
9 years ago
ansuz
c71b060dc2
main.js : wait until your editor is defined before trying to reference it. addresses a race condition that caused ckeditor to fail half the time.
9 years ago
ansuz
ff52f050e5
chainpad.js : pull in upstream changes to chainpad.js. new APIs
9 years ago
ansuz
9fc44cdf0c
add notes to clientside js files
9 years ago
mouhb
af80bed07b
XWR-190: Make CryptPad version with rtwiki/CodeMirror
9 years ago
mouhb
9626dfc365
XWR-190: Make CryptPad version with rtwiki/CodeMirror
9 years ago
Yann Flory
9a932a3f56
Patch Realtime into CodeMirror in CryptPad
9 years ago
Yann Flory
32f44161a7
Patch Realtime into CodeMirror in CryptPad
9 years ago
Caleb James DeLisle
88fb6772e8
Cleaned up the front page and added a little piece of code to show recent pads
10 years ago
Caleb James DeLisle
51544db9a2
Completed adding of customization system and bottom infobar
10 years ago
Caleb James DeLisle
84164123b6
not quite finished
10 years ago
Caleb James DeLisle
0e44b10aeb
Seperated common crypto operations to common file and made common toolbar used for both pad and spreadsheet
10 years ago
Caleb James DeLisle
e039e90a24
upgrade to most recent chainpad
10 years ago
Caleb James DeLisle
c13bfe978a
Switched cryptpad to use common/toolbar.js which is shared with cryptsheet
10 years ago
Caleb James DeLisle
50c10f818e
Added cryptsheet to cryptpad suite!
10 years ago
Caleb James DeLisle
4a63ba7df3
Give cryptpad a proper main page
10 years ago
Caleb James DeLisle
652a1da7a4
oops changed some work in the js file
...
Revert "change logo"
This reverts commit 9325100a02
.
10 years ago
Caleb James DeLisle
9325100a02
change logo
10 years ago
Caleb James DeLisle
3330fae47e
typo
10 years ago
Caleb James DeLisle
8fc732d879
remove the 'magic line' because it causes problems with the realtime
10 years ago
Caleb James DeLisle
0d3ded68a0
use a websocket which automatically reconnects if the connection is lost
10 years ago
Caleb James DeLisle
e3a54c11ee
remove some code which may be over-engineering
10 years ago
Caleb James DeLisle
2a1f3f9027
show a little spinner which spins when loading and when people type
10 years ago
Caleb James DeLisle
87aa1aaf91
don't start measuring lag until after syncing and update readme
10 years ago
Caleb James DeLisle
6d68bb0bde
error when opening error message window D:
10 years ago
Caleb James DeLisle
6cbdcdec65
Show users editing and lag, properly send message to indicate that all users have left channel and show basic error box if disconnected.
10 years ago
Caleb James DeLisle
5ae599fa07
support different ports for websocket and http
10 years ago
Caleb James DeLisle
a6b88e276c
use the slower version of applyHTMLOp
10 years ago
Caleb James DeLisle
b6523adb1f
rand fixed
10 years ago
Caleb James DeLisle
1508c7ba71
and so it begins
10 years ago