Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bring FLEx lite poc into lexbox #811

Merged
merged 101 commits into from
May 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
01f75af
add local web app
hahn-kev Apr 16, 2024
55c8783
setup LocalWebApp.csproj to run itself
hahn-kev Apr 17, 2024
fccaf28
auto launch browser on startup. Enabled published trimmed to reduce size
hahn-kev Apr 18, 2024
81c7f22
add local web app publish scripts to taskfile
hahn-kev Apr 18, 2024
fd5ac5b
Show part of speech and semantic domains (not finished)
myieye Apr 23, 2024
47184fe
Fix option/select fields. Add filter field.
myieye Apr 24, 2024
4751023
Redesign layout. Put view options in drawer
myieye Apr 24, 2024
71b7732
Tidy up app header
myieye Apr 24, 2024
d132bea
add build app to viewer package
hahn-kev Apr 24, 2024
418f71f
Add readonly mode. Redesign dictionary preview.
myieye Apr 26, 2024
b02db96
Hacky search-bar centralizing
myieye Apr 26, 2024
c8ee3dc
Improve dictionary entry colors
myieye Apr 26, 2024
0f8eab1
Fix: changes not being commited to model
myieye Apr 26, 2024
8b90058
Merge branch 'refs/heads/develop' into feat/local-web-app
hahn-kev Apr 26, 2024
76a57de
Merge remote-tracking branch 'refs/remotes/origin/viewer-2' into feat…
hahn-kev Apr 26, 2024
559c72d
add LcmCrdt lib
hahn-kev Apr 26, 2024
9f3b59f
link viewer to local webapp for data, use crdt as source
hahn-kev Apr 26, 2024
cb2894f
make main not async for browser builds. Add missing sqlite dependency
hahn-kev Apr 27, 2024
96d6805
add task to startup local web app dev
hahn-kev Apr 29, 2024
ab1f71a
fix bug due to blur being called twice
hahn-kev Apr 29, 2024
6bd26ee
fix multistring so it can be the target of JsonPatches as if it were …
hahn-kev Apr 29, 2024
b6469e8
fix `CLR load callback is already in error state. Error HRESULT E_FAI…
hahn-kev Apr 29, 2024
1080f7f
change how the Entry editor produces change events to help with gener…
hahn-kev Apr 29, 2024
a7cedbe
implement field updates
hahn-kev Apr 29, 2024
435e6de
enable lexbox to act as a crdt sync server
hahn-kev Apr 30, 2024
e218494
enable local web app to sync with lexbox server.
hahn-kev Apr 30, 2024
35a25a4
make initial entry reactive
hahn-kev Apr 30, 2024
1b43d69
add create and update apis for writing systems
hahn-kev Apr 30, 2024
80e2222
promote writing system to a fully fledged crdt object
hahn-kev Apr 30, 2024
942a1f1
add create/update ws methods to frontend interfaces and lexbox api hub
hahn-kev Apr 30, 2024
044bc84
sync with lexbox when signalr connects
hahn-kev Apr 30, 2024
f4c23c3
enable sync to be optional and fail gracefully if we're unable to acc…
hahn-kev Apr 30, 2024
168d713
make WritingSystemId read only
hahn-kev Apr 30, 2024
12d863d
Fix some styles
myieye May 2, 2024
6a5e45b
refactor writing system into it's own file, fix warning on MultiString
hahn-kev May 1, 2024
276c8bd
refactor code to introduce projects
hahn-kev May 1, 2024
514f6a1
add index to ChangeEntry to order changes correctly
hahn-kev May 1, 2024
82e9494
move commits and changes into crdt core
hahn-kev May 1, 2024
2c14b82
pull in CRDT tests and sample project, including Ycs
hahn-kev May 2, 2024
31e236b
store crdt data in postgres by project id on server side
hahn-kev May 2, 2024
4c9bfcb
change sync state timestamp to be unix milliseconds instead of ticks
hahn-kev May 2, 2024
23aa9cd
setup lf next app routing to select the project, refactor WebComponen…
hahn-kev May 2, 2024
64a9458
Merge remote-tracking branch 'origin/develop' into feat/local-web-app
myieye May 3, 2024
97e16b3
Fix some web-component issues
myieye May 3, 2024
dbb09ff
Add basic infinite scrolling (not virtual scrolling)
myieye May 3, 2024
ecfba26
remove aspnet dependency from LcmCrdt
hahn-kev May 3, 2024
2d2eab9
Fix overlays
myieye May 6, 2024
9adccd3
restrict project creation api to only use alphanumerics
hahn-kev May 6, 2024
d13d7ef
change default service provider to none, create testing specific proj…
hahn-kev May 6, 2024
743e0c4
prevent creating snapshots that reference the same commit and entity
hahn-kev May 6, 2024
9372409
enable creating new entries on the frontend
hahn-kev May 6, 2024
e9d5255
fix issue where deleted entities would break the snapshot update logi…
hahn-kev May 6, 2024
13b40d5
simplify snapshot worker so it only works on commits starting with th…
hahn-kev May 7, 2024
b29c9e9
ensure changes and commits are loaded to prevent null references erro…
hahn-kev May 7, 2024
98541fd
Merge branch 'feat/local-web-app' of https://github.com/sillsdev/lang…
myieye May 7, 2024
aa939ee
Add index exemplars and some design work
myieye May 7, 2024
4f75aec
Add new/delete/reorder buttons and scroll to added entitiy
myieye May 7, 2024
3ae2ea5
remove create event from editor since we want to only create senses a…
hahn-kev May 7, 2024
7c808cc
update lexbox api hub to use JsonPatchDocument instead of a simple Op…
hahn-kev May 7, 2024
8de68b0
remove GetExemplars from client side api since it was removed in favo…
hahn-kev May 7, 2024
7a3023c
remove some debug logs
hahn-kev May 7, 2024
8fcc5b7
wireup delete buttons, fix some selected entry bugs where the entry w…
hahn-kev May 7, 2024
5786a54
define latin exemplars by default on writing systems
hahn-kev May 7, 2024
8f7828f
remove api to get entries by exemplar and use query options instead
hahn-kev May 7, 2024
878def3
implement sorting on headword in crdts, implementing filtering entrie…
hahn-kev May 7, 2024
b1949e9
make some notes about using IMemoryCache
hahn-kev May 7, 2024
da122a6
create LcmCrdt.Tests.csproj and move related tests into the project
hahn-kev May 7, 2024
2cf7b1b
update LfClassic api handle new query options with exemplar options
hahn-kev May 7, 2024
56a53d2
fix verify encoding and line endings in editorconfig and gitattributes
hahn-kev May 7, 2024
ad1269b
use harmony from submodule
hahn-kev May 8, 2024
1a69cdf
remove field help icon from tabindex
hahn-kev May 8, 2024
44ae1fe
begin adding history view
hahn-kev May 8, 2024
593e3fb
Suppress svlte/vite/rollup warnings in our dependencies we can't control
myieye May 8, 2024
2398e26
Implement reordering. Toc design. Use headwords. Fix bubbling changes…
myieye May 8, 2024
c022c75
Implement global search bar
myieye May 8, 2024
8571c9b
rename route builder class for crdt sync
hahn-kev May 8, 2024
103924d
list change history for selected object.
hahn-kev May 8, 2024
e50913e
include commits when loading snapshot to prevent null reference error
hahn-kev May 8, 2024
7621a81
Fix history view layout for senses and examples
myieye May 10, 2024
7d8f901
Make progress towards mobile view. Dictionary preview mode
myieye May 10, 2024
60d8784
Clean up confusing icons/wording
myieye May 13, 2024
8721fc4
Make usable on mobile
myieye May 13, 2024
c4ea5f3
set tab title to 'FLEx lite'
hahn-kev May 13, 2024
56f4ed6
fix snapshot querying for history to use the exact timestamp to avoid…
hahn-kev May 14, 2024
93ab241
add simple activity view
hahn-kev May 14, 2024
f9a9628
refactor routes into routes folder
hahn-kev May 14, 2024
d62d945
remove ProjectHubActivator.cs because it's no longer needed because o…
hahn-kev May 14, 2024
ddfda30
Merge branch 'refs/heads/develop' into feat/local-web-app
hahn-kev May 16, 2024
03dd80f
add commit metadata
hahn-kev May 17, 2024
b6fc351
lock down sync api in lexbox to only be available to admins for now
hahn-kev May 17, 2024
b862519
Merge branch 'refs/heads/develop' into feat/local-web-app
hahn-kev May 22, 2024
9bbcd33
update pnpm-lock.yaml
hahn-kev May 22, 2024
c04e5ba
remove use of INewableObject since it's removal
hahn-kev May 23, 2024
57aaa17
add sub module checkout during build of backend
hahn-kev May 23, 2024
2346654
add xunit test logger, ensure that there test output files are distin…
hahn-kev May 23, 2024
57d6aee
make search filter on lexeme form and citation form
hahn-kev May 23, 2024
baaa8cb
store client id in ProjectData, use in CrdtLexboxApi to maintain a co…
hahn-kev May 23, 2024
5074b9a
mock ProjectContext for tests
hahn-kev May 24, 2024
1deb7d4
migrate LcmCrdt to use new Create and Edit Change classes
hahn-kev May 24, 2024
9d61373
remove task delay in background sync
hahn-kev May 28, 2024
ff718d8
remove exemplar options default
hahn-kev May 28, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
# force LF line endings on all shell scripts, even on Windows
*.sh text eol=lf

# Verify settings
*.verified.txt text eol=lf working-tree-encoding=UTF-8
*.verified.xml text eol=lf working-tree-encoding=UTF-8
*.verified.json text eol=lf working-tree-encoding=UTF-8
2 changes: 2 additions & 0 deletions .github/workflows/integration-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ jobs:
runs-on: ${{ inputs.runs-on }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: testspace-com/[email protected]
with:
domain: ${{ github.repository_owner }}
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/lexbox-api.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,15 @@ jobs:

steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.x'
- name: Dotnet build
run: dotnet build
- name: Unit tests
run: dotnet test --logger xunit --results-directory ./test-results --filter "Category!=Integration" --blame-hang-timeout 10m
run: dotnet test --logger:"xunit;LogFileName={assembly}.results.xml" --results-directory ./test-results --filter "Category!=Integration" --blame-hang-timeout 10m
- name: Publish unit test results
uses: EnricoMi/publish-unit-test-result-action@8885e273a4343cd7b48eaa72428dea0c3067ea98 # v2.14.0
if: always()
Expand Down
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[submodule "backend/harmony"]
path = backend/harmony
url = https://github.com/hahn-kev/harmony.git
branch = add-crdt
35 changes: 35 additions & 0 deletions LexBox.sln
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LfClassicData", "backend\Lf
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MiniLcm", "backend\MiniLcm\MiniLcm.csproj", "{6D4062DC-1B1A-4A24-9C61-0F6A18A39882}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalWebApp", "backend\LocalWebApp\LocalWebApp.csproj", "{2CDF7126-733B-46E8-9B93-7DC31DE39682}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LcmCrdt", "backend\LcmCrdt\LcmCrdt.csproj", "{6B857F83-72E3-43E6-91C3-A946F3F988D8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LcmCrdt.Tests", "backend\LcmCrdt.Tests\LcmCrdt.Tests.csproj", "{7D874D9B-1CA9-49E9-8B03-91B5C324E938}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Crdt", "backend\harmony\src\Crdt\Crdt.csproj", "{740C8FF5-8006-4047-8C52-53873C2DD7C4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Crdt.Core", "backend\harmony\src\Crdt.Core\Crdt.Core.csproj", "{8B54FFB5-0BDF-403E-83CC-A3B3861EC507}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -65,9 +75,34 @@ Global
{6D4062DC-1B1A-4A24-9C61-0F6A18A39882}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6D4062DC-1B1A-4A24-9C61-0F6A18A39882}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6D4062DC-1B1A-4A24-9C61-0F6A18A39882}.Release|Any CPU.Build.0 = Release|Any CPU
{2CDF7126-733B-46E8-9B93-7DC31DE39682}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2CDF7126-733B-46E8-9B93-7DC31DE39682}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2CDF7126-733B-46E8-9B93-7DC31DE39682}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2CDF7126-733B-46E8-9B93-7DC31DE39682}.Release|Any CPU.Build.0 = Release|Any CPU
{6B857F83-72E3-43E6-91C3-A946F3F988D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6B857F83-72E3-43E6-91C3-A946F3F988D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6B857F83-72E3-43E6-91C3-A946F3F988D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6B857F83-72E3-43E6-91C3-A946F3F988D8}.Release|Any CPU.Build.0 = Release|Any CPU
{7D874D9B-1CA9-49E9-8B03-91B5C324E938}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7D874D9B-1CA9-49E9-8B03-91B5C324E938}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7D874D9B-1CA9-49E9-8B03-91B5C324E938}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7D874D9B-1CA9-49E9-8B03-91B5C324E938}.Release|Any CPU.Build.0 = Release|Any CPU
{740C8FF5-8006-4047-8C52-53873C2DD7C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{740C8FF5-8006-4047-8C52-53873C2DD7C4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{740C8FF5-8006-4047-8C52-53873C2DD7C4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{740C8FF5-8006-4047-8C52-53873C2DD7C4}.Release|Any CPU.Build.0 = Release|Any CPU
{8B54FFB5-0BDF-403E-83CC-A3B3861EC507}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8B54FFB5-0BDF-403E-83CC-A3B3861EC507}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8B54FFB5-0BDF-403E-83CC-A3B3861EC507}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8B54FFB5-0BDF-403E-83CC-A3B3861EC507}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{E8BB768B-C3DC-4BE6-9B9F-82319E05AF86} = {7B6E21C4-5AF4-4505-B7D9-59A3886C5090}
{6D4062DC-1B1A-4A24-9C61-0F6A18A39882} = {7B6E21C4-5AF4-4505-B7D9-59A3886C5090}
{2CDF7126-733B-46E8-9B93-7DC31DE39682} = {7B6E21C4-5AF4-4505-B7D9-59A3886C5090}
{6B857F83-72E3-43E6-91C3-A946F3F988D8} = {7B6E21C4-5AF4-4505-B7D9-59A3886C5090}
{7D874D9B-1CA9-49E9-8B03-91B5C324E938} = {7B6E21C4-5AF4-4505-B7D9-59A3886C5090}
{740C8FF5-8006-4047-8C52-53873C2DD7C4} = {7B6E21C4-5AF4-4505-B7D9-59A3886C5090}
{8B54FFB5-0BDF-403E-83CC-A3B3861EC507} = {7B6E21C4-5AF4-4505-B7D9-59A3886C5090}
EndGlobalSection
EndGlobal
3 changes: 2 additions & 1 deletion Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,4 +84,5 @@ tasks:
deps: [ infra-up, api:only, k8s:infra-forward ]
interactive: true


local-web-app:
deps: [ ui:viewer-dev, api:local-web-app ]
13 changes: 12 additions & 1 deletion backend/.editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -135,4 +135,15 @@ dotnet_diagnostic.VSTHRD200.severity = none
dotnet_diagnostic.IDE0058.severity = suggestion

[{*Kernel}.cs]
dotnet_diagnostic.IDE0058.severity = none
dotnet_diagnostic.IDE0058.severity = none


# Verify settings
[*.{received,verified}.{txt,xml,json}]
charset = "utf-8-bom"
end_of_line = lf
indent_size = unset
indent_style = unset
insert_final_newline = false
tab_width = unset
trim_trailing_whitespace = false
31 changes: 31 additions & 0 deletions backend/LcmCrdt.Tests/LcmCrdt.Tests.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>

<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="coverlet.collector" Version="6.0.0"/>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0"/>
<PackageReference Include="FluentAssertions" Version="6.12.0"/>
<PackageReference Include="xunit" Version="2.5.3"/>
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3"/>
<PackageReference Include="XunitXml.TestLogger" Version="3.1.20" />
</ItemGroup>

<ItemGroup>
<Using Include="Xunit"/>
<Using Include="FluentAssertions"/>
<Using Include="Crdt"/>
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\LcmCrdt\LcmCrdt.csproj" />
</ItemGroup>

</Project>
Loading
Loading