Commit Graph
100 Commits
Author SHA1 Message Date
ansuz 284da6a4e9 minor improvements I made to the /hack/ pad last night 2016-04-13 10:16:44 +02:00
ansuz 9f0cc4ed64 update hack with a slightly better UI 2016-04-12 18:51:03 +02:00
ansuz 71c0a06c3b Merge branch 'hack' into diffdom 2016-04-12 18:17:01 +02:00
ansuz 2ffa69dc15 remove checks for a non-existent race condition 2016-04-12 15:55:03 +02:00
ansuz 368d72b337 add missing semicolons to TextPatcher.js 2016-04-12 15:39:53 +02:00
ansuz 2fdb4c1255 ignore external files and anything relying on es6
merge differences from netflux

Conflicts:
	.jshintignore
2016-04-12 15:39:28 +02:00
ansuz 851ccfbdb6 detect falsey operations in OT and ignore them 2016-04-12 15:37:47 +02:00
ansuz 400f6efde1 json-ot.js : jshint compliance 2016-04-12 15:37:47 +02:00
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
2016-04-12 14:12:44 +02:00
ansuz 6bb37aed44 main.js : support tab insertion in /hack/ pad 2016-04-12 14:05:56 +02:00
ansuz 6b9d982d40 stabilize _socket/realtime-input.js
...as common/RealtimeTextSocket.js
2016-04-12 13:10:57 +02:00
ansuz 1a22592afa remove unused modules from realtime-input.js 2016-04-12 13:06:52 +02:00
ansuz 39071021eb stabilize typingTest.js as /common/TypingTests.js 2016-04-12 12:53:23 +02:00
ansuz 9805958ad7 stabilize text-patcher.js into /common/TextPatcher.js 2016-04-12 12:46:49 +02:00
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.
2016-04-12 12:27:33 +02:00
ansuz a1f9b10175 remove offending line from chainpad entirely
RTCHAINPAD-3
2016-04-12 10:02:11 +02:00
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.
2016-04-12 09:55:50 +02:00
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
2016-04-12 09:52:36 +02:00
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/
2016-04-12 09:44:08 +02:00
ansuz cd357a9136 turn an alert into a console.error 2016-04-07 17:03:30 +02:00
ansuz ec64e0d381 use getAttribute to inspect document elements
el.getAttribute('attr') is more reliable than el[attr].
2016-04-07 15:55:57 +02:00
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
2016-04-07 15:50:56 +02:00
ansuz 842b9d4243 Generalize _socket/realtime-input.js a little more
Anything JSON related should be at the application layer
2016-04-07 15:48:38 +02:00
ansuz b59a14c5ac merge hyperjson changes from realtime xwiki
more resilient class serialization.
comments
2016-04-01 11:20:19 +02:00
ansuz 2691d85582 use forked chainpad with assertions for _socket 2016-04-01 10:51:47 +02:00
ansuz c50690349b comments describing the role of each argument 2016-04-01 10:46:54 +02:00
ansuz df78d284c4 initial state should be valid JSON so JSON parse doesn't fail 2016-04-01 10:44:23 +02:00
ansuz 96e03fcfa4 Use latest chainpad without mutations 2016-03-30 15:29:28 +02:00
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
2016-03-30 14:39:41 +02:00
ansuz aaf7c777cc add debugging info to the textPatcher
* kill dead code
* add assertions
* better logging for insertions and removals
2016-03-30 14:38:10 +02:00
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.
2016-03-30 14:36:11 +02:00
ansuz e446a3645c don't send funny BR attributes over the wire. Properly initialize the typing test 2016-03-29 17:21:02 +02:00
ansuz 22290590cb don't rely on window scope in typingTest.js 2016-03-29 17:02:56 +02:00
ansuz 772ca5d30e comment out debugging line 2016-03-29 17:01:57 +02:00
ansuz 6c340a6527 chainpad testing = true, reject non-compliant messages 2016-03-29 16:53:40 +02:00
ansuz afa1104d85 Pull the cursor out of bogus BR tarpits when it gets stuck 2016-03-29 15:36:03 +02:00
ansuz bac0e0ff88 implement hyperjson filtering 2016-03-29 15:35:40 +02:00
ansuz e51635c4bb fix index error 2016-03-29 15:34:58 +02:00
ansuz 3aebf7d2c2 minor changes to pass linting 2016-03-29 12:35:23 +02:00
ansuz 29e24f556c kill another window variable 2016-03-29 12:13:57 +02:00
ansuz e699073d45 attempt to preserve the magic line plugin while someone else is typing 2016-03-29 11:54:55 +02:00
ansuz 941f5361ea forgot to add 'typingTest', which main depends on 2016-03-29 11:16:50 +02:00
ansuz d852c578d8 removed dead code 2016-03-29 11:16:13 +02:00
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
2016-03-29 11:12:46 +02:00
ansuz 478ccbf984 revert changes to chainpad 2016-03-29 11:04:34 +02:00
ansuz e3b78e20de Merge branch 'cjd-fixed-it-with-hax' of github.com:xwiki-labs/cryptpad into cjd-fixed-it-with-hax 2016-03-25 18:01:51 +01:00
ansuz e26246178f start to clean up and give things more sensible names.
get rid of the textarea entirely
2016-03-25 18:01:23 +01:00
ansuz 12dcbc9121 fix quick red fox and make test.cancel work again 2016-03-25 16:14:17 +01:00
ansuz 4b35a145e3 Push WIP 2016-03-25 11:04:27 +01:00
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.
2016-03-24 12:11:31 +01:00
ansuz 1bd5cb9e27 hyperjson.js : used split instead of filter... oops 2016-03-23 12:31:16 +01:00
ansuz b2753ef7b7 fix string manipulation off-by-one 2016-03-22 19:29:58 +01:00
ansuz 0c6222b5f9 better error reporting when the operational transform fails to parse JSON 2016-03-22 10:19:13 +01:00
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.
2016-03-22 10:16:14 +01:00
ansuz bd24821c6c Don't attempt to use the cursor selection when it has length 0
RTWYSIWYG-20
RTWYSIWYG-24
2016-03-22 10:06:42 +01:00
ansuz 5cd118bdb0 ignore netflux since it's ecma6 and not our code 2016-03-10 12:00:36 +01:00
ansuz 3a7af63c54 correct malformed json 2016-03-10 11:58:23 +01:00
ansuz 136e2d8cf2 pass in missing textarea argument so textpad starts working again 2016-03-09 11:02:12 +01:00
ansuz 8258018c1d Revert "fix undefined reference"
This reverts commit 7d65540123.

To restore functionality in convert.js
2016-03-09 10:32:57 +01:00
ansuz c67451bc1a Revert "remove broken functions from convert module"
Because I forgot that the /render/ page was still using vdom

This reverts commit 93fb944e1f.
2016-03-09 10:29:51 +01:00
ansuz d3e2a2f52e make verbose logging switchable via a conditional 2016-03-07 11:59:36 +01:00
ansuz 1c54af69a1 update minor editors to use new realtime-input api 2016-03-07 11:52:18 +01:00
ansuz 9b228eea6b modify vdom main.js to adhere to new realtime-input api 2016-03-07 11:36:33 +01:00
ansuz fefb904261 realtime input changes 2016-03-07 11:34:16 +01:00
ansuz fd99dba4a3 modify realtime-input api to take a single object as configuration. merge netflux API 2016-03-07 11:33:46 +01:00
ansuz 53d3e475f7 ui hints for hackpad 2016-03-04 16:47:59 +01:00
ansuz d2f4fbcee9 fail the toolbar from the application layer 2016-03-04 16:46:18 +01:00
ansuz d7b34cf6be don't call toolbar from within realtime-input.js 2016-03-04 16:45:11 +01:00
ansuz e8469ae1bb test out extended realtime-input api 2016-03-04 16:41:34 +01:00
ansuz 3539c71c07 howto maintain your cryptpad instance 2016-03-04 12:14:40 +01:00
ansuz 0327fbc874 Merge branch 'master' of github.com:xwiki-labs/cryptpad
Conflicts:
	.travis.yml
2016-03-04 11:28:27 +01:00
ansuz 5e1566eaec fix incomplete 'onAbort' block 2016-03-04 11:07:12 +01:00
ansuz 52fe892bae invert logical relationship with flag
otherwise updates don't actually propogate
2016-03-04 11:05:58 +01:00
ansuz 938df2b92f lock the editor until the chain has synced
add 'onAbort' hook. lock the editor if the connection fails.
2016-03-03 18:05:05 +01:00
ansuz 1d6ccc99a1 add 'onAbort' hook to realtime-input.js 2016-03-03 18:04:14 +01:00
ansuz e5bef52850 reintroduce the toolbar 2016-03-03 16:05:07 +01:00
ansuz 6ff5b10486 remove local diffDOM version 2016-03-03 16:04:08 +01:00
ansuz 93fb944e1f remove broken functions from convert module 2016-03-03 15:18:05 +01:00
ansuz 7d65540123 fix undefined reference 2016-03-03 15:12:43 +01:00
ansuz c246adc57b Lock contenteditable until chain is done syncing.
Don't bother patching the dom until the chain has synced
2016-03-03 14:38:07 +01:00
ansuz 4067e1caa8 https is more reliable than git for bower, it seems 2016-03-03 11:21:52 +01:00
ansuz 1c0074258c go back to using diffDOM from bower
The latest version is required. You'll need to update.
2016-03-03 10:49:59 +01:00
ansuz 5d9ee650c5 Point bower.json to github for diffDOM
since they haven't pushed to bower.io since merging my PR.

You'll need to update to get things to work.
2016-03-03 10:42:28 +01:00
ansuz 46417441ae ignore local diffDOM.js until out PR gets merged 2016-03-01 10:45:49 +01:00
ansuz 79bd82a62e main.js : integrate with patched diffDOM 2016-02-29 17:59:00 +01:00
ansuz 6884fabda9 Use local diffDOM instead of bower_components
At least until the PR gets accepted
2016-02-29 17:05:04 +01:00
ansuz f5a8727254 remove some unused functions from cursor.js 2016-02-29 16:52:07 +01:00
ansuz db1515c445 cursor.js : commit before cleaning up 2016-02-29 16:27:55 +01:00
ansuz 7e367e770e resize vdom debug panel to 30% width 2016-02-29 15:37:51 +01:00
ansuz 91ada5ce7a export Operation from chainpad. for use with OT 2016-02-29 15:28:32 +01:00
ansuz 5425699f43 check if possible parent exists before checking if it contains another element 2016-02-29 15:27:11 +01:00
ansuz 67bdb8a65a fix a bad regex that occasionally threw an error
'nothing to repeat'
2016-02-25 12:35:11 +01:00
ansuz e87a4599a4 main.js : tiny patch until things are working correctly. 2016-02-23 16:22:09 +01:00
ansuz 9ce59c985f only do stuff with the cursor when a remote edit takes place 2016-02-23 15:54:25 +01:00
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
2016-02-23 15:53:58 +01:00
ansuz de46be85ba add better helpers for finding and resetting the cursor 2016-02-23 15:52:58 +01:00
ansuz 7e7f1fee76 include abstracted json-ot, add comments, start to use cursor stuff 2016-02-22 18:01:57 +01:00
ansuz c09036bd29 snapshot cursor.js, as some things are working quite well now 2016-02-22 18:00:46 +01:00
ansuz 5e500f337e ignore otaml.js for jshint 2016-02-22 17:56:41 +01:00
ansuz 4eee1f5210 add orderOfNodes function to tree library 2016-02-22 17:56:17 +01:00