Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
bring FLEx lite poc into lexbox (#811)
* add local web app * setup LocalWebApp.csproj to run itself * auto launch browser on startup. Enabled published trimmed to reduce size * add local web app publish scripts to taskfile * Show part of speech and semantic domains (not finished) * Fix option/select fields. Add filter field. * Redesign layout. Put view options in drawer * Tidy up app header * add build app to viewer package * Add readonly mode. Redesign dictionary preview. * Hacky search-bar centralizing * Improve dictionary entry colors * Fix: changes not being commited to model * add LcmCrdt lib * link viewer to local webapp for data, use crdt as source * make main not async for browser builds. Add missing sqlite dependency * add task to startup local web app dev * fix bug due to blur being called twice * fix multistring so it can be the target of JsonPatches as if it were a dictionary * fix `CLR load callback is already in error state. Error HRESULT E_FAIL has been returned from a call to a COM component. The error code is E_FAIL, or EFail, or 0x80004005.` error by disabling build options in debug mode * change how the Entry editor produces change events to help with generating diffs. * implement field updates * enable lexbox to act as a crdt sync server * enable local web app to sync with lexbox server. * make initial entry reactive * add create and update apis for writing systems * promote writing system to a fully fledged crdt object * add create/update ws methods to frontend interfaces and lexbox api hub * sync with lexbox when signalr connects * enable sync to be optional and fail gracefully if we're unable to access the server * make WritingSystemId read only * Fix some styles * refactor writing system into it's own file, fix warning on MultiString * refactor code to introduce projects * add index to ChangeEntry to order changes correctly * move commits and changes into crdt core * pull in CRDT tests and sample project, including Ycs * store crdt data in postgres by project id on server side * change sync state timestamp to be unix milliseconds instead of ticks * setup lf next app routing to select the project, refactor WebComponent to depend on ProjectView which expects the lexboxApi to be injected in order to run. * Fix some web-component issues * Add basic infinite scrolling (not virtual scrolling) * remove aspnet dependency from LcmCrdt * Fix overlays * restrict project creation api to only use alphanumerics * change default service provider to none, create testing specific project component * prevent creating snapshots that reference the same commit and entity * enable creating new entries on the frontend * fix issue where deleted entities would break the snapshot update logic trying to recreate each change made to the deleted entity * simplify snapshot worker so it only works on commits starting with the first one added * ensure changes and commits are loaded to prevent null references errors in update snapshots * Add index exemplars and some design work * Add new/delete/reorder buttons and scroll to added entitiy * remove create event from editor since we want to only create senses and examples once we have data in the fields. Introduce an emptyId to detect when we need to create a new sense or example from a change * update lexbox api hub to use JsonPatchDocument instead of a simple Operations record * remove GetExemplars from client side api since it was removed in favor of putting exemplars on writingsystems instead * remove some debug logs * wireup delete buttons, fix some selected entry bugs where the entry wouldn't be selected after created, or would stay selected after being deleted * define latin exemplars by default on writing systems * remove api to get entries by exemplar and use query options instead * implement sorting on headword in crdts, implementing filtering entries on headword exemplar * make some notes about using IMemoryCache * create LcmCrdt.Tests.csproj and move related tests into the project * update LfClassic api handle new query options with exemplar options * fix verify encoding and line endings in editorconfig and gitattributes * use harmony from submodule * remove field help icon from tabindex * begin adding history view * Suppress svlte/vite/rollup warnings in our dependencies we can't control * Implement reordering. Toc design. Use headwords. Fix bubbling changes into dictionary-preview and Toc. * Implement global search bar * rename route builder class for crdt sync * list change history for selected object. add sense and example history support. * include commits when loading snapshot to prevent null reference error * Fix history view layout for senses and examples * Make progress towards mobile view. Dictionary preview mode * Clean up confusing icons/wording * Make usable on mobile * set tab title to 'FLEx lite' * fix snapshot querying for history to use the exact timestamp to avoid issue with rounding down * add simple activity view * refactor routes into routes folder * remove ProjectHubActivator.cs because it's no longer needed because of a middleware that's configuring the project context * add commit metadata * lock down sync api in lexbox to only be available to admins for now * update pnpm-lock.yaml * remove use of INewableObject since it's removal * add sub module checkout during build of backend * add xunit test logger, ensure that there test output files are distinct between assemblies * make search filter on lexeme form and citation form * store client id in ProjectData, use in CrdtLexboxApi to maintain a consistent client id on a single client. * mock ProjectContext for tests * migrate LcmCrdt to use new Create and Edit Change classes * remove task delay in background sync * remove exemplar options default --------- Co-authored-by: Tim Haasdyk <[email protected]>
- Loading branch information