Commit Graph

5749 Commits (47aebb0bfddb7edfd90f8b6baa58d9f63a9b77df)

Author SHA1 Message Date
ansuz 92d89f6cac start to factor sharejs into two modules
ansuz 13dc77b7f6 remove commented line
ansuz 41e635b2e5 realtime-input.js : turn on logging
Yann Flory 69e8e18283 Remove the pipe character in the hash
ansuz d62e9fc1c9 add a missing semicolon
Yann Flory c32045d7d0 Fix an issue with missing characters when several users were typing at the same time
Yann Flory be09a1808d Remove old code from realtime-input
Yann Flory 6884b0890a Fix the typong tests not working properly
Yann Flory e207d8b579 Merge branch 'diffdom' into netflux
ansuz f4c5b2a996 Add sane defaults to TextPatcher diffs
ansuz 259772dd62 Turn on TextPatcher logging for _socket
ansuz 0537c28919 Add switchable logging to TextPatcher.js
Caleb James DeLisle 8a36963582 Enable ChainPad PARANOIA mode but remove the part which causes most slowness
ansuz 19cd991dba trim dead code, comment, very minor optimizations
ansuz 9f45ccb2d9 use console.error for stack traces
ansuz 368d72b337 add missing semicolons to TextPatcher.js
ansuz 851ccfbdb6 detect falsey operations in OT and ignore them
ansuz 400f6efde1 json-ot.js : jshint compliance
ansuz ca94d30386 detect falsey operations in OT and ignore them
ansuz 9f9cd8d8cd realtime-input.js : fixes for jshint compliance
ansuz 793149a608 json-ot.js : jshint compliance
ansuz 06a3b63923 jshint compliance for toolbar.js
ansuz 5cead3fad3 add missing semicolons to TextPatcher.js
ansuz 94e57e4a26 update location of text-patcher.js
ansuz b37dab1f49 Merge branch 'diffdom' into netflux
Simple cleanup and unit tests
ansuz 6b9d982d40 stabilize _socket/realtime-input.js
...as common/RealtimeTextSocket.js
ansuz 39071021eb stabilize typingTest.js as /common/TypingTests.js
ansuz 9805958ad7 stabilize text-patcher.js into /common/TextPatcher.js
ansuz 7782069dbd Merge pull request from xwiki-labs/diffdom
merge diffdom into netflux
ansuz a1f9b10175 remove offending line from chainpad entirely
RTCHAINPAD-3
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
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/
Yann Flory 713c90242b Hide the usernames when they have not been changed
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
Yann Flory cf9f60bd57 The server don't send back anymore messages to their sender
Yann Flory eb4ea7a6b0 Remove the content from the ACK messages sent by the server
Yann Flory ba4faea939 Update the pads to run with the latest improvements to the websocket server
Yann Flory 5ef7e29a9b Add the latest changes from _socket into the netflux pad
ansuz b59a14c5ac merge hyperjson changes from realtime xwiki
more resilient class serialization.
comments
Yann Flory b41f0e8c50 Merge branch 'cjd-fixed-it-with-hax' into netflux2
ansuz c50690349b comments describing the role of each argument
ansuz 96e03fcfa4 Use latest chainpad without mutations
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
ansuz 6c340a6527 chainpad testing = true, reject non-compliant messages
ansuz afa1104d85 Pull the cursor out of bogus BR tarpits when it gets stuck
ansuz bac0e0ff88 implement hyperjson filtering
ansuz 478ccbf984 revert changes to chainpad
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
Caleb James DeLisle 98c85cef8b xxx
Caleb James DeLisle 62eabbc7ae If a message does not match parent hash, don't delete it from storage
Caleb James DeLisle dbf31798d5 json-ot triggering PARANOIA errors in ChainPad
Caleb James DeLisle 03932d0169 small changes to chainpad for testing
Caleb James DeLisle 420a7098a6 more testing and crap
ansuz e066730b68 add notes about how hyperjson is to be used
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
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.
ansuz 475ca9bea8 hyperjson.js : used split instead of filter... oops
ansuz 1bd5cb9e27 hyperjson.js : used split instead of filter... oops
ansuz b2753ef7b7 fix string manipulation off-by-one
ansuz f98fda7604 fix string manipulation off-by-one
ansuz 4f3fcb08a4 better error reporting when the operational transform fails to parse JSON
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.
ansuz fbe6225681 Don't attempt to use the cursor selection when it has length 0
RTWYSIWYG-20
RTWYSIWYG-24
ansuz 0c6222b5f9 better error reporting when the operational transform fails to parse JSON
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.
ansuz bd24821c6c Don't attempt to use the cursor selection when it has length 0
RTWYSIWYG-20
RTWYSIWYG-24
Yann Flory 38d797a4f1 Fix issue with Chrome and WebRTC
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
Yann Flory e77d85bc82 Trigger an onReady() method when the user's pad is fully synced (the history is loaded)
Yann Flory eca4ec699c Ability to change the username (the user ID is displayed by default)
Yann Flory 6e50ae94dd Remove unused code
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
Yann Flory 3a188625e0 Improve the detection of a disconnected peer to update the user list with the WebRTC service
Yann Flory 77e7fb5724 Fix an issue with the WebRTC service where it was impossible to join a channel once someone had left this channel
Yann Flory 06e5c84702 Clean some code
Yann Flory b1e8bcddef Fix the user list not working with the WebRTC service and causing major issues
Yann Flory c576241104 Add a Chainpad adapter to make Chainpad know the userList
Yann Flory ae8f6f7f2c Ability to choose which protocol to use (Websocket or WebRTC) with Netflux
Yann Flory b7885eb539 Fix channel history
ansuz 8258018c1d Revert "fix undefined reference"
This reverts commit 7d65540123.

To restore functionality in convert.js
ansuz c67451bc1a Revert "remove broken functions from convert module"
Because I forgot that the /render/ page was still using vdom

This reverts commit 93fb944e1f.
Yann Flory c536ecbc1c Temp commit
Yann Flory 870b2dbb7e Add the WebRTC server in Cryptpad
Yann Flory c4f62fb812 First try with WebRTC
Yann Flory 09a06a8bc5 Replace the chainpad server by the netflux server
Yann Flory 60c3aceb0d Add chatflux server
Yann Flory deb2084fc5 Add the socket connection checker
ansuz d3e2a2f52e make verbose logging switchable via a conditional
ansuz fefb904261 realtime input changes
ansuz fd99dba4a3 modify realtime-input api to take a single object as configuration. merge netflux API
Yann Flory 62ba579d4a Add Netflux API with WebSocket service V1
ansuz d7b34cf6be don't call toolbar from within realtime-input.js
ansuz 5e1566eaec fix incomplete 'onAbort' block
ansuz 1d6ccc99a1 add 'onAbort' hook to realtime-input.js
ansuz 6ff5b10486 remove local diffDOM version
ansuz 93fb944e1f remove broken functions from convert module
ansuz 7d65540123 fix undefined reference
ansuz 6884fabda9 Use local diffDOM instead of bower_components
At least until the PR gets accepted
ansuz f5a8727254 remove some unused functions from cursor.js
ansuz db1515c445 cursor.js : commit before cleaning up
ansuz 91ada5ce7a export Operation from chainpad. for use with OT
ansuz 5425699f43 check if possible parent exists before checking if it contains another element
ansuz 67bdb8a65a fix a bad regex that occasionally threw an error
'nothing to repeat'
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
ansuz de46be85ba add better helpers for finding and resetting the cursor
ansuz c09036bd29 snapshot cursor.js, as some things are working quite well now
ansuz 4eee1f5210 add orderOfNodes function to tree library
ansuz 7689151fc0 pull json validation for OT into its own module for reuse
ansuz 2c8a2406c6 cursor.js : snapshot before code deletion
ansuz 1beb3f5355 snapshot of treesome.js before deletion
ansuz 8ead5ca129 realtime-input.js : add notes regarding integration of the netflux api
ansuz d1885fbab6 better jshint compliance for common files
ansuz 539cc3a2fa remove unused files from common directory
ansuz afa2811472 remove local version of marked.js, prefer bower version
ansuz a600ece5c5 fix jshint complaints in common directory
ansuz 2c5a2b6023 remove unused code, add todos, fix minor errors
ansuz 967d636df9 address more jshint complaints
ansuz f6c848385f hyperjson.js : jshint complains about var index in for loop
ansuz 7f92abc7bf Merge branch 'diffdom' of github.com:xwiki-labs/cryptpad into demoEffect
Caleb James DeLisle 86c4a69a97 Switch to patching with DiffDOM for testing :D
ansuz 653ba33b65 Merge branch 'vdom' of github.com:xwiki-labs/cryptpad into demoEffect
Caleb James DeLisle 2031191261 testing=false
Caleb James DeLisle 37db31b09e Attempt an operational transformation and if the result is not valid JSON then fail
ansuz c22269e36e cursor.js : make the console a little less noisy
ansuz 99a23154b7 files for unstubbing OT
ansuz c740c0ec92 add stuff for walking the tree
ansuz ad184b1114 add stuff to recover the cursor
ansuz 019750bea8 realtime-input.js : callback onInit if exists
ansuz 7102a0a164 make rainbows
ansuz d2f6c63d8a realtime-input.js : changed the api and left an undefined reference. fixed
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.
ansuz ed03a48092 minor patches that make things a bit more reliable, still some bugs
ansuz ac0f7852fc committing latest changes for review
ansuz 2016550e01 virtual-dom.js : identify problem area?
ansuz fd1e5d5735 better styling on render page
now solarized dark
ansuz b18dfef656 sharejs textarea is used by realtime-input.js
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
ansuz 40b8c0efe8 drop in chjj's marked.js for a cool demo
ansuz 0c2e057f9d export component APIs from convert
ansuz b958caebdd dom, vdom, hyperjson, and an api which provides a matrix of conversions
ansuz 2ed9f0867a Merge branch 'master' of github.com:xwiki-labs/cryptpad into codepad
ansuz ff52f050e5 chainpad.js : pull in upstream changes to chainpad.js. new APIs
ansuz 9fc44cdf0c add notes to clientside js files
Yann Flory 9a932a3f56 Patch Realtime into CodeMirror in CryptPad
Caleb James DeLisle 88fb6772e8 Cleaned up the front page and added a little piece of code to show recent pads
Caleb James DeLisle 51544db9a2 Completed adding of customization system and bottom infobar
Caleb James DeLisle 0e44b10aeb Seperated common crypto operations to common file and made common toolbar used for both pad and spreadsheet
Caleb James DeLisle e039e90a24 upgrade to most recent chainpad
Caleb James DeLisle 50c10f818e Added cryptsheet to cryptpad suite!