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

Ability to store preferences from client-side code #4040

Closed
reckart opened this issue May 30, 2023 · 0 comments
Closed

Ability to store preferences from client-side code #4040

reckart opened this issue May 30, 2023 · 0 comments

Comments

@reckart
Copy link
Member

reckart commented May 30, 2023

Is your feature request related to a problem? Please describe.
Currently, only server-side components (i.e. Wicket and Spring components) can access the preferences service to store preferences. Client-side components like the left annotation browser sidebar have settings too, but these can currently not be persisted. That means e.g. when a user switches to a different grouping mode, then leaves the annotation page and comes back, the grouping mode is reset.

Describe the solution you'd like
We need a mechanism that allows predominantly client-side code to store preferences. There must be a mechanism that prevents such client-side preferences to override server-side preferences. Hence, they should use a special key prefix. Also, The server should have some control over the submitted data. E.g. a JSON schema should be required to validate the preferences before they are saved. The JS API should be extended with two calls like loadPreferences and savePreferences.

@reckart reckart added this to the 29.0 milestone May 30, 2023
@reckart reckart self-assigned this May 30, 2023
reckart added a commit that referenced this issue May 30, 2023
* Added `ClientSideUserPreferencesProvider` interface that can be implemented by Spring components to permit access to certain preference keys including their validation
* Added LoadPreferences and SavePreferences calls to the JS API
* Removed unused DiamEditorBase class
reckart added a commit that referenced this issue May 30, 2023
* Added `ClientSideUserPreferencesProvider` interface that can be implemented by Spring components to permit access to certain preference keys including their validation
* Added LoadPreferences and SavePreferences calls to the JS API
* If an annotation has no label, show the layer name in the annotation browser sidebar instead of "No label"
* Removed unused DiamEditorBase class
reckart added a commit that referenced this issue May 30, 2023
* Fix dependencies
* Store the other annotation browser sidebar preferences a well
reckart added a commit that referenced this issue May 30, 2023
* Fix dependencies
* Store the other annotation browser sidebar preferences a well
reckart added a commit that referenced this issue May 30, 2023
* Fix dependencies
* Store the other annotation browser sidebar preferences a well
reckart added a commit that referenced this issue May 30, 2023
…to-store-preferences-from-client-side-code

#4040 - Ability to store preferences from client-side code
@reckart reckart closed this as completed May 30, 2023
reckart added a commit that referenced this issue May 30, 2023
reckart added a commit that referenced this issue May 30, 2023
…to-store-preferences-from-client-side-code

#4040 - Ability to store preferences from client-side code
reckart added a commit that referenced this issue Jun 13, 2023
* main: (189 commits)
  No issue. Minor additions to BioC format description
  #4062 - ViewportTracker should focus on block-like elements
  #4032 - Allow using externalized strings from backend code
  #4060 - Clean up redundant code in annotation handlers
  #4026: Support for error tracking with Sentry
  #3673 - Update dependencies
  update dead link to the new file
  #4055 - Editor scrolls up when left sidebar is opened/closed
  [maven-release-plugin] prepare for next development iteration
  [maven-release-plugin] prepare release inception-28.2
  #4052 - Admins no longer see all projects in the project overview
  #3673 - Update dependencies
  #4048 - Document navigation options not visible to manager when viewing other users document
  #3673 - Update dependencies
  #3673 - Update dependencies
  #1496 - Some spans are missing begin offset field
  #1511 - External recommender fails when CAS contains control characters
  #1496 - Some spans are missing begin offset field
  #4040 - Ability to store preferences from client-side code
  #1066 - Recommender status info
  ...

% Conflicts:
%	inception/inception-api-annotation/src/main/java/de/tudarmstadt/ukp/clarin/webanno/api/annotation/page/AnnotationPageBase.java
%	inception/inception-brat-editor/src/main/java/de/tudarmstadt/ukp/clarin/webanno/brat/annotation/BratAnnotationEditor.java
%	inception/inception-diam/src/main/java/de/tudarmstadt/ukp/inception/diam/service/DiamWebsocketController.java
%	inception/inception-documents/src/test/java/de/tudarmstadt/ukp/inception/documents/DocumentServiceImplConcurrencyTest.java
%	inception/inception-external-search-solr/pom.xml
%	inception/inception-html-editor/src/main/java/de/tudarmstadt/ukp/inception/htmleditor/docview/HtmlDocumentViewControllerImpl.java
%	inception/inception-html-editor/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
%	inception/inception-preferences/src/main/java/de/tudarmstadt/ukp/inception/preferences/config/PreferencesServiceAutoConfig.java
%	inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/service/LearningRecordServiceImpl.java
%	inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/service/RecommendationServiceImpl.java
%	inception/inception-recommendation/src/main/java/de/tudarmstadt/ukp/inception/recommendation/tasks/TrainingTask.java
%	inception/inception-recommendation/src/test/java/de/tudarmstadt/ukp/inception/recommendation/footer/RecommendationEventWebsocketControllerImplTest.java
%	inception/inception-support/pom.xml
%	inception/inception-ui-core/pom.xml
%	inception/inception-websocket/pom.xml
%	inception/pom.xml
reckart added a commit that referenced this issue Jul 2, 2023
reckart added a commit that referenced this issue Jul 3, 2023
…to-store-preferences-from-client-side-code

#4040 - Ability to store preferences from client-side code
@reckart reckart added this to Kanban Aug 7, 2024
@reckart reckart moved this to 🍹 Done in Kanban Aug 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

No branches or pull requests

1 participant