Commit graph

391 commits

Author SHA1 Message Date
Yann Flory
be09a1808d Remove old code from realtime-input 2016-04-14 14:46:42 +02:00
ansuz
5a5b9ad718 Merge branch 'netflux' into beta 2016-04-14 12:37:28 +02:00
ansuz
4af987a2a2 point to correct toolbar.js 2016-04-14 12:36:25 +02:00
ansuz
3ade46adc7 Merge branch 'newtests' into beta 2016-04-14 12:33:12 +02:00
Yann Flory
6884b0890a Fix the typong tests not working properly 2016-04-14 12:24:17 +02:00
ansuz
b12a01e08f report test results on the page, not in the console 2016-04-14 12:16:10 +02:00
ansuz
feaae609ad fix broken path for padrtc 2016-04-14 10:48:25 +02:00
Yann Flory
ecc41d14af Use canonical serializer for json serialization 2016-04-13 17:46:41 +02:00
ansuz
fc77ef66b3 Merge remote-tracking branch 'origin/sortify' into HEAD
utilize canonical stringify function

Conflicts:
	www/_socket/main.js
2016-04-13 17:36:05 +02:00
Caleb James DeLisle
319f5b95f7 Use canonical serializer for json serialization 2016-04-13 16:54:34 +02:00
Yann Flory
9683fd9aec Always serialize the DOM in one way. 2016-04-13 16:46:31 +02:00
Caleb James DeLisle
698338b49a Use canonical serializer for json serialization 2016-04-13 16:43:59 +02:00
Yann Flory
e207d8b579 Merge branch 'diffdom' into netflux 2016-04-13 16:19:56 +02:00
ansuz
468827dadd newest tests 2016-04-13 16:10:38 +02:00
ansuz
c867ab04ab rename /_socket/ app to /p/ 2016-04-13 16:01:45 +02:00
ansuz
a1fe941f69 Always serialize the DOM in one way. 2016-04-13 15:00:19 +02:00
ansuz
f4c5b2a996 Add sane defaults to TextPatcher diffs 2016-04-13 14:51:15 +02:00
ansuz
259772dd62 Turn on TextPatcher logging for _socket 2016-04-13 13:54:25 +02:00
ansuz
0537c28919 Add switchable logging to TextPatcher.js 2016-04-13 13:53:20 +02:00
Caleb James DeLisle
8a36963582 Enable ChainPad PARANOIA mode but remove the part which causes most slowness 2016-04-13 13:51:01 +02:00
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
19cd991dba trim dead code, comment, very minor optimizations 2016-04-12 17:29:20 +02:00
ansuz
f75c246029 remove dead code from pad/main.js 2016-04-12 17:17:14 +02:00
ansuz
9f45ccb2d9 use console.error for stack traces 2016-04-12 16:47:30 +02:00
ansuz
d705b947ab Merge branch 'diffdom' into netflux
basic cleanup while performing a larger merge between two prototypes
2016-04-12 15:56:43 +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
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
a0999d1d2b add a comment about why hashes are being stubbed 2016-04-12 15:36:03 +02:00
ansuz
ca94d30386 detect falsey operations in OT and ignore them 2016-04-12 15:35:07 +02:00
ansuz
9f9cd8d8cd realtime-input.js : fixes for jshint compliance 2016-04-12 15:07:05 +02:00
ansuz
793149a608 json-ot.js : jshint compliance 2016-04-12 15:00:46 +02:00
ansuz
06a3b63923 jshint compliance for toolbar.js 2016-04-12 14:58:24 +02:00
ansuz
3b8238ef3b add missing semicolons to pad/main.js
jshint compliance
2016-04-12 14:51:32 +02:00
ansuz
5cead3fad3 add missing semicolons to TextPatcher.js 2016-04-12 14:51:06 +02:00
ansuz
e6ab03164c import TypingTests.js and expose at the console
RTWYSIWYG-54
> implement tests for components of the WYSIWYG editor
2016-04-12 14:34:47 +02:00
ansuz
94e57e4a26 update location of text-patcher.js 2016-04-12 14:21:31 +02:00
ansuz
b37dab1f49 Merge branch 'diffdom' into netflux
Simple cleanup and unit tests
2016-04-12 14:15:04 +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
7782069dbd Merge pull request #15 from xwiki-labs/diffdom
merge diffdom into netflux
2016-04-12 10:21:19 +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
Yann Flory
360fee9feb Fix a new cursor error with Codepad 2016-04-11 17:58:30 +02:00
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)
2016-04-11 15:47:40 +02:00
Yann Flory
713c90242b Hide the usernames when they have not been changed 2016-04-11 15:00:22 +02:00
Yann Flory
c53baab99d Update Codepad with the latest improvements 2016-04-11 14:43:39 +02:00
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
2016-04-08 16:54:03 +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
Yann Flory
cf9f60bd57 The server don't send back anymore messages to their sender 2016-04-07 11:27:14 +02:00
Yann Flory
eb4ea7a6b0 Remove the content from the ACK messages sent by the server 2016-04-05 15:06:38 +02:00
Yann Flory
ba4faea939 Update the pads to run with the latest improvements to the websocket server 2016-04-05 12:17:43 +02:00
Yann Flory
5ef7e29a9b Add the latest changes from _socket into the netflux pad 2016-04-01 17:58:33 +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
Yann Flory
b41f0e8c50 Merge branch 'cjd-fixed-it-with-hax' into netflux2 2016-04-01 10:51:27 +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
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 2016-03-25 17:35:07 +01:00
Caleb James DeLisle
f3fb674504 Merge branch 'cjd-fixed-it-with-hax' of github.com:xwiki-labs/cryptpad into cjd-fixed-it-with-hax 2016-03-25 16:50:17 +01:00
Caleb James DeLisle
98c85cef8b xxx 2016-03-25 16:49:27 +01:00
ansuz
12dcbc9121 fix quick red fox and make test.cancel work again 2016-03-25 16:14:17 +01:00
Caleb James DeLisle
62eabbc7ae If a message does not match parent hash, don't delete it from storage 2016-03-25 15:23:19 +01:00
Caleb James DeLisle
dbf31798d5 json-ot triggering PARANOIA errors in ChainPad 2016-03-25 15:01:17 +01:00
Caleb James DeLisle
03932d0169 small changes to chainpad for testing 2016-03-25 14:52:44 +01:00
Caleb James DeLisle
669bcc1935 If there is a difference in the hjson then send a message back 2016-03-25 14:26:31 +01:00
Caleb James DeLisle
f62ec85a4c Shuffled around some assertions and logs 2016-03-25 14:14:19 +01:00
Caleb James DeLisle
420a7098a6 more testing and crap 2016-03-25 12:45:51 +01:00
ansuz
4b35a145e3 Push WIP 2016-03-25 11:04:27 +01:00
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.
2016-03-24 12:50:04 +01:00
ansuz
e066730b68 add notes about how hyperjson is to be used 2016-03-24 12:46:35 +01:00
ansuz
cd462ed872 Merge legacy websocket version 2016-03-24 12:28:45 +01:00
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
2016-03-24 12:16:42 +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
475ca9bea8 hyperjson.js : used split instead of filter... oops 2016-03-23 12:33:05 +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
f98fda7604 fix string manipulation off-by-one 2016-03-22 19:28:50 +01:00
ansuz
4f3fcb08a4 better error reporting when the operational transform fails to parse JSON 2016-03-22 12:13:15 +01:00
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.
2016-03-22 12:13:01 +01:00
ansuz
fbe6225681 Don't attempt to use the cursor selection when it has length 0
RTWYSIWYG-20
RTWYSIWYG-24
2016-03-22 12:12:46 +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
Yann Flory
de6db0285c Limit the size of the usernames to 32 chars 2016-03-16 17:48:27 +01:00
Yann Flory
38d797a4f1 Fix issue with Chrome and WebRTC 2016-03-16 17:38:26 +01:00
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
2016-03-16 17:09:08 +01:00
Yann Flory
e77d85bc82 Trigger an onReady() method when the user's pad is fully synced (the history is loaded) 2016-03-16 14:00:14 +01:00
Yann Flory
eca4ec699c Ability to change the username (the user ID is displayed by default) 2016-03-16 12:02:39 +01:00
Yann Flory
6e50ae94dd Remove unused code 2016-03-15 10:51:19 +01:00
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
2016-03-15 10:37:27 +01:00
Yann Flory
3a188625e0 Improve the detection of a disconnected peer to update the user list with the WebRTC service 2016-03-14 15:20:00 +01:00
Yann Flory
77e7fb5724 Fix an issue with the WebRTC service where it was impossible to join a channel once someone had left this channel 2016-03-14 14:49:19 +01:00
Yann Flory
06e5c84702 Clean some code 2016-03-11 17:32:45 +01:00
Yann Flory
29033f344c Merge branch 'netflux' of github.com:xwiki-labs/cryptpad into netflux 2016-03-11 17:15:55 +01:00
Yann Flory
b1e8bcddef Fix the user list not working with the WebRTC service and causing major issues 2016-03-11 17:09:27 +01:00
Yann Flory
c576241104 Add a Chainpad adapter to make Chainpad know the userList 2016-03-10 18:48:38 +01:00
ansuz
fb0e82931d correct malformed json 2016-03-10 14:08:15 +01:00
Yann Flory
ae8f6f7f2c Ability to choose which protocol to use (Websocket or WebRTC) with Netflux 2016-03-10 14:03:31 +01:00
ansuz
3a7af63c54 correct malformed json 2016-03-10 11:58:23 +01:00
Yann Flory
b7885eb539 Fix channel history 2016-03-09 18:35:39 +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
Yann Flory
c536ecbc1c Temp commit 2016-03-08 15:13:57 +01:00
Yann Flory
870b2dbb7e Add the WebRTC server in Cryptpad 2016-03-08 11:45:03 +01:00
Yann Flory
c4f62fb812 First try with WebRTC 2016-03-08 11:25:37 +01:00
Yann Flory
09a06a8bc5 Replace the chainpad server by the netflux server 2016-03-07 17:35:31 +01:00
Yann Flory
60c3aceb0d Add chatflux server 2016-03-07 17:18:47 +01:00
Yann Flory
deb2084fc5 Add the socket connection checker 2016-03-07 12:00:45 +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
Yann Flory
62ba579d4a Add Netflux API with WebSocket service V1 2016-03-07 11:07:37 +01:00
ansuz
53d3e475f7 ui hints for hackpad 2016-03-04 16:47:59 +01:00