Giter Club home page Giter Club logo

cudami's People

Contributors

bitzl avatar christian-bsb avatar clorenz avatar daforster avatar datazuul avatar dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar jbaiter avatar morpheus-87 avatar stefan-it avatar tomzirn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

cudami's Issues

Use context for default language

Currently the default language is passed to a lot of components via prop. Since it's a de facto global variable that shouldn't be passed around to each and every component, putting it into a Context would help keeping the API surface of the components slimmer.

mvn clean install - Failed

Installed Ubuntu 20.04 LTS server in VM to test cudami.
Java version openjdk-11.0.11
Maven version 3.6.3

Downloaded v5.0.1
Followed steps from readme
cd cudami-5.0.1
enter mvn clean install
get this
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/usr/share/maven/lib/guice.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[INFO] Scanning for projects...
[INFO] Inspecting build with total of 14 modules...
[INFO] Installing Nexus Staging features:
[INFO] ... total of 14 executions of maven-deploy-plugin replaced with nexus-staging-maven-plugin
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] DigitalCollections: cudami [pom]
[INFO] DigitalCollections: cudami Repository Client [jar]
[INFO] DigitalCollections: cudami Management Webapp [jar]
[INFO] DigitalCollections: cudami Repository Server [pom]
[INFO] DigitalCollections: cudami Repository Server (Backend API) [jar]
[INFO] DigitalCollections: cudami Repository Server (Backend IMPL File) [jar]
[INFO] DigitalCollections: cudami Repository Server (Backend IMPL InMemory) [jar]
[INFO] DigitalCollections: cudami Repository Server (Backend IMPL JDBI PostgreSql) [jar]
[INFO] DigitalCollections: cudami lobid.org Client [jar]
[INFO] DigitalCollections: cudami Repository Server (Backend IMPL External System lobid.org) [jar]
[INFO] DigitalCollections: cudami Repository Server (Business) [jar]
[INFO] DigitalCollections: cudami Repository Server (Webapp) [jar]
[INFO] DigitalCollections: cudami Templates [pom]
[INFO] DigitalCollections: cudami Templates (Website Spring Boot) [jar]
[INFO]
[INFO] ---------------< de.digitalcollections.cudami:dc-cudami >---------------
[INFO] Building DigitalCollections: cudami 5.0.1 [1/14]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ dc-cudami ---
[INFO]
[INFO] --- githook-maven-plugin:1.0.5:install (default) @ dc-cudami ---
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for DigitalCollections: cudami 5.0.1:
[INFO]
[INFO] DigitalCollections: cudami ......................... FAILURE [ 0.263 s]
[INFO] DigitalCollections: cudami Repository Client ....... SKIPPED
[INFO] DigitalCollections: cudami Management Webapp ....... SKIPPED
[INFO] DigitalCollections: cudami Repository Server ....... SKIPPED
[INFO] DigitalCollections: cudami Repository Server (Backend API) SKIPPED
[INFO] DigitalCollections: cudami Repository Server (Backend IMPL File) SKIPPED
[INFO] DigitalCollections: cudami Repository Server (Backend IMPL InMemory) SKIPPED
[INFO] DigitalCollections: cudami Repository Server (Backend IMPL JDBI PostgreSql) SKIPPED
[INFO] DigitalCollections: cudami lobid.org Client ........ SKIPPED
[INFO] DigitalCollections: cudami Repository Server (Backend IMPL External System lobid.org) SKIPPED
[INFO] DigitalCollections: cudami Repository Server (Business) SKIPPED
[INFO] DigitalCollections: cudami Repository Server (Webapp) SKIPPED
[INFO] DigitalCollections: cudami Templates ............... SKIPPED
[INFO] DigitalCollections: cudami Templates (Website Spring Boot) SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.850 s
[INFO] Finished at: 2021-08-06T13:24:21Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal io.github.phillipuniverse:githook-maven-plugin:1.0.5:install (default) on project dc-cudami: Not a git repository, could not find a .git/hooks directory anywhere in the hierarchy of /home/andrac/cudami/target. Turn off this behavior with skipRepositoryCheck=false -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

There are no /target dir created

List of available languages

rafactor list of available languages from Locale.getAvailableLocales to Locale.getISOLanguages as it produces too many detailed languages...

Usability: Edit Identifiable

  • add "Vorschaubild" / "Preview Image" as label to image edit box on edit pages
  • make "Save" button in top navbar (when scrolled down) more visible / in contrast to background, maybe add white border
  • remove spacing betwenn "long text" box and langage tab box

Language tabs not always in same order

language tabs on websites edit page are not in the same order than at contenttrees and articles.
new language tab always should be added right from existing language tabs.

Add Render Web Page Method to Cudami Client API

The Cudami Client supports webpage rendering but not with a API but by its internal thymeleaf templates.
The function shoud be provided by the API of the client instead.

e.g.
String renderWebPage(WebPage)

the App takes the String and strores it in the model. In the rendering process the model attribute could be included in the
rendered response with the thymeleaf utext type.

Rework paging

  • a default page size should be configurable in the application.yml
  • the sorting should be preserved when paging

SQL-Paging not always correct

e.g.: when getting digitalobjects for a collection, the following request is executed:

SELECT d.uuid d_uuid, d.label d_label, d.refid d_refId, d.custom_attrs d_customAttributes, d.created d_created, d.last_modified d_lastModified, id.uuid id_uuid, id.identifiable id_identifiable, id.namespace id_namespace, id.identifier id_id, file.uuid pf_uuid, file.filename pf_filename, file.mimetype pf_mimeType, file.size_in_bytes pf_sizeInBytes, file.uri pf_uri, file.http_base_url pf_httpBaseUrl FROM digitalobjects AS d LEFT JOIN identifiers AS id ON d.uuid = id.identifiable LEFT JOIN fileresources_image AS file ON d.previewfileresource = file.uuid LEFT JOIN collection_digitalobjects AS cd ON d.uuid = cd.digitalobject_uuid WHERE cd.collection_uuid = '526b7402-b6c3-4837-a1f8-d0717171b01b' ORDER BY cd.sortIndex ASC LIMIT 25 OFFSET 0;

this leads to duplicate entries for each digitalobject. thus the paging size (25) is reached at 13 objects...

the jdbi mapping reduces this to 13 objects.

Fix query to / paging in CollectionRepositoryImpl to return only one result for one digital object

v5/fileresources/type/ liefert eine UnsupportedOperationException

Getestet mit type image. Ergebnis ist Status 500 mit Exception

j.l.UnsupportedOperationException: null\n\tat j.u.AbstractMap.put(AbstractMap.java:209)
  at d.d.c.s.b.i.j.JdbiRepositoryImpl.getWhereClause(JdbiRepositoryImpl.java:184)
  at d.d.c.s.b.i.j.JdbiRepositoryImpl.getFilterClauses(JdbiRepositoryImpl.java:72)
  at d.d.c.s.b.i.j.JdbiRepositoryImpl.addFiltering(JdbiRepositoryImpl.java:44)
  at d.d.c.s.b.i.j.JdbiRepositoryImpl.addFiltering(JdbiRepositoryImpl.java:36)
  at d.d.c.s.b.i.j.i.IdentifiableRepositoryImpl.find(IdentifiableRepositoryImpl.java:408)
  at d.d.c.s.b.i.j.i.IdentifiableRepositoryImpl.find(IdentifiableRepositoryImpl.java:395)
    ... 5 frames excluded
  at o.s.d.s.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
    ... 121 frames truncated

Dependabot can't resolve your JavaScript dependency files

Dependabot can't resolve your JavaScript dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Error whilst updating @aeaton/react-prosemirror in /dc-cudami-editor/package-lock.json:
404 Not Found - GET https://registry.npmjs.org/@aeaton/prosemirror-transformers - Not found

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

cudami.server.WebpageHtmlControllerTest fails on JDK >= 11.0.8

At the moment the de.digitalcollections.cudami.server.WebpageHtmlControllerTest (that tries to validate html file against xsd) fails when JDK >= 11.0.8 is used, with the following error message:

[ERROR] Failures: 
[ERROR]   WebpageHtmlControllerTest.shouldReturnValidHtml:59 
Expecting code not to raise a throwable but caught
  <"org.xml.sax.SAXParseException; systemId: file:/tmp/content12269978994860138332.html; lineNumber: 1; columnNumber: 79; cvc-elt.1.a: Deklaration des Elements "html" kann nicht gefunden werden.
	at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
	at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:135)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:284)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:2132)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:829)
	at java.xml/com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:731)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:374)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:613)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3063)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:836)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:534)
	at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
	at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
	at java.xml/com.sun.org.apache.xerces.internal.jaxp.validation.StreamValidatorHelper.validate(StreamValidatorHelper.java:176)
	at java.xml/com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorImpl.validate(ValidatorImpl.java:115)
	at java.xml/javax.xml.validation.Validator.validate(Validator.java:124)
	at de.digitalcollections.cudami.server.controller.identifiable.entity.parts.WebpageHtmlControllerTest.lambda$shouldReturnValidHtml$0(WebpageHtmlControllerTest.java:59)
	at org.assertj.core.api.ThrowableAssert.catchThrowable(ThrowableAssert.java:62)
	at org.assertj.core.api.AssertionsForClassTypes.catchThrowable(AssertionsForClassTypes.java:877)
	at org.assertj.core.api.AssertionsForClassTypes.assertThatCode(AssertionsForClassTypes.java:848)
	at org.assertj.core.api.Assertions.assertThatCode(Assertions.java:1255)
	at de.digitalcollections.cudami.server.controller.identifiable.entity.parts.WebpageHtmlControllerTest.shouldReturnValidHtml(WebpageHtmlControllerTest.java:59)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:686)
	at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
	at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:212)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:208)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:137)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:71)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:135)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:248)
	at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$5(DefaultLauncher.java:211)
	at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:226)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:199)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:132)
	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:188)
	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:154)
	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:128)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:428)
	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
	at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:562)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:548)
">

It was working with OpenJDK 11.0.7. Further investigation is needed now!

Temp. workaround: disable that test and link to this issue.

Multilanguage texts

If I have f.e. an article with english label and description and add german as new language, but only fill out the label, the english description will be rendered. Is that behaviour intended?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.