Commit Graph

5456 Commits (700b2f24e010df6799ed34745cd0ed4f2705d7ca)

Author SHA1 Message Date
ansuz 0add01a940 remove dead code
ansuz 8c914dfe1f better filenames
ansuz 7eaa4ce733 recognize pads with the same type and hash as identical no matter their domain
ansuz 5131f47cca jshint compliance
ansuz 306d524416 fix broken removal call
ansuz dd3a5d47be migrate localStorage so people go to cryptpad.fr
ansuz a094e3c02e use correct store api calls in frame.js
also don't log unnecessarily
ansuz dcc9810a42 avoid extra call to store if there are no keys to remove
ansuz 9a5294016d fix incorrect usage of store api
ansuz 4e5f381325 add spinner to API. update bower deps
ansuz fa654a7646 slightly better regex
ansuz cd18075ac7 add some redirection logic to support old hash types
ansuz 600f3151e9 don't use the store until it's ready to be used
ansuz fffa9acf15 remove unused files from fs and jshintignore
ansuz 551d38c930 let the abstraction take care of stringification
ansuz 0ada6a3d0a jshint compliance. gotta keep those tests green
ansuz 1f24d7126c big ugly commit that will be really hard to audit
This changeset applies new styles to the poll.

it also uses the new asynchronous wrappers around the localStorage api.
this is necessary because we're migrating to a storage system that will
use an async api.

The changes to the poll just happened to coincide with the async stuff.

My apologies to anyone who wants to read this whole thing
ansuz 7f02c899ea add snippet for copying text to the clipboard
ansuz 42eafe9e29 don't create duplicate stylesheets in the document head
ansuz c6bdb7506d forget everything about a pad when you forget it
ansuz e84fbf0bc3 more helpers in common
ansuz ff74a67a09 translate alertify button messages
ansuz d39ab5c250 point to the actual translation file
ansuz dea8e225db fix double scrollbar issue
ansuz 3eccec7054 better effort for translation
ansuz cbeaa8d609 major refactoring for toolbar. CAN HAZ LESS
ansuz 7504f79e05 add log and warn methods to cryptpad common
ansuz 3ad5d71ab1 make sure the regular favicon is set
ansuz fd3cd73d0b try to fix favicon bug
ansuz 589b0087a1 listen for keyup events while alertify prompts are active
ansuz deae7ac78f don't hide the notification until it has been seen
ansuz 3d3c6e4800 add wrappers for alertifyjs
ansuz 73d2b6561a add small modules for page visibility api and notification apis
ansuz d8b467422a fix default title in localStorage migration
ansuz 7a5877d12a don't filter pads after 30 days
ansuz d844551fba add a forget button. clean up toolbar a bit
ansuz 8a82e11306 make sure title is defined for home page usage
ansuz 71b1f71ba0 fix migration to include ctime
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
ansuz a3da10766a add rename button to /code/ and /pad/
ansuz 93dcf29c15 more functions for working with localstorage
ansuz d025d13295 address some jshint complaints
ansuz 12bbf3e8f6 don't drop values onto the window
ansuz ca45e3533d pass loaded file to callback when importing
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
ansuz 31aa09d6f6 work a bit more on import/export and code highlighting
ansuz 242c9a99e3 implement import and export in /pad/
ansuz 0a8137e7eb move rememberPad to cryptpad common and simplify it a bit
ansuz c3d2568d3c add file export for codepad
addresses 
ansuz 2b8c21d292 set styles with setAttribute. fixes style fights
ansuz 1746a4e732 use crypto from bower
ansuz 2a3ff256b9 remove libraries which are now in bower
ansuz f72cb24fc5 rm LORIA
ansuz 2c3de49922 remove realtime-input, since it's in bower now
ansuz 2798d1b1f9 all of the list/map api's dependencies are now on bower
ansuz 58c968b319 minor cleanup in realtime-input
ansuz 288b4d5b66 depend on main passing in the crypto module for now
ansuz 85dbd5cb6e pass in websocketURL from main
ansuz d9a4f2f22c missed one
ansuz ff0f7d15dc use json-ot from bower
ansuz 58633af943 listmap can be reused. put it in common/
ansuz dbf1e2b870 support reusing the netflux network
export more internals from realtime input
ansuz 83696495a8 use chainpad from bower, not local
ansuz 954ee26f4d fix undefined disconnect reason
ansuz 9336c4de5c import latest chainpad
ansuz 058548b95a revert my reversion
Revert "Revert "Added checkpoints with the new code from ChainPad""

This reverts commit 6e2e8bf21f.
ansuz 6e2e8bf21f Revert "Added checkpoints with the new code from ChainPad"
This reverts commit da2bfe2de9.
ansuz ce99bd9ba3 Merge branch 'two' of github.com:xwiki-labs/cryptpad into two
ansuz a0c73c95d8 do away with a bit of boilerplate
Caleb James DeLisle da2bfe2de9 Added checkpoints with the new code from ChainPad
ansuz cf85de6113 remove old bencoding code
ansuz d99bb8ff84 WIP : fallback to old parsing doesn't work
ansuz f04be53d11 fall back to old parsing if the message is bencoded?
ansuz 976a08cc7a move to chainpad version 2
ansuz cae750cd75 update padrtc for to use bower libraries
ansuz 7faf57602b implement log level settings from application layer
ansuz 523aff3067 use upstream chainpad.js
ansuz c752e4a6e5 remove sharejs
ansuz 6b2e986789 remove deprecated textsocket library
ansuz 150ebaba7b add ability to force text diffing
ansuz ba17b78f7a restyle name change button
Yann Flory 492054a938 Fix the cursor position when a remote patch is applied
Yann Flory 5bb2e12db2 Merge branch 'beta' into migrate
Yann Flory cc51e6d6ed Update CodeMirror pad to work with Netflux
Caleb James DeLisle 3b6fe44378 Merge branch 'beta' of github.com:xwiki-labs/cryptpad into beta
Yann Flory 85d5f5c47f Convert netflux to es5
Caleb James DeLisle 5f16ad4a58 Update to most recent chainpad
ansuz aa07dd31ee have json-ot initialize its own debug module, instead of relying on a window variable's existence
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
Yann Flory 8ac69ca262 Add a missing "time" property in the netflux client causing incorrect
timeout errors
ansuz b140b6429d remove a little bit of dead code
ansuz bbdc9da853 delete duplicated file
ansuz 5f4825f3a0 don't change the hash from realtime input
let applications handle that logic
ansuz 4f426651ad remove TextPatcher from RealtimeTextSocket
ansuz 02ff1a63a4 Merge branch 'netflux' into beta
Conflicts:
	www/assert/main.js
ansuz a18c793f98 use latest hyperjson
ansuz 9efcc443cd add 'format' to TextPatcher's API
ansuz 0769e50414 move TextPatcher to highest application layer
ansuz 1d70335228 provide all callbacks before starting
ansuz a3787ee4dc Merge branch 'netflux' into beta
ansuz 010566d3c3 pushDelta was mistakenly deprecated. restored.
ansuz 3598c93098 move new hyperjson into common
ansuz 103bb69daa move custom hyperscript into common
ansuz b83fb7b823 improve brFix logic
stop exporting functions which we wish to deprecate
ansuz cb979844f6 implement text patching at application layer
ansuz 4a41575e6d accept onLocal in config
ansuz d3c2c901b6 implement cursor transformation in a common library
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!