From 480d23bc74dd3585818f2536d7deb55d28e86599 Mon Sep 17 00:00:00 2001 From: Entkenntnis Date: Thu, 15 Feb 2024 10:57:01 +0100 Subject: [PATCH 1/7] fix(geogebra): aovid using conditional rendering for modal --- .../editor/src/plugins/geogebra/toolbar.tsx | 45 +++++++++---------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/packages/editor/src/plugins/geogebra/toolbar.tsx b/packages/editor/src/plugins/geogebra/toolbar.tsx index 77c89932e1..3e98ca443e 100644 --- a/packages/editor/src/plugins/geogebra/toolbar.tsx +++ b/packages/editor/src/plugins/geogebra/toolbar.tsx @@ -34,30 +34,29 @@ export const GeogebraToolbar = ({ {geogebraStrings.chooseApplet} {/* In the future we want a popovers per setting, but this is faster for now */} - {showSettingsModal ? ( - setShowSettingsModal(false)} - className="top-8 max-w-xl translate-y-0 sm:top-1/3" - > -

- {editorStrings.edtrIo.settings}: {geogebraStrings.title} -

-
- state.set(e.target.value)} - inputWidth="100%" - width="100%" - className="block" - /> -
-
- ) : null} + setShowSettingsModal(false)} + className="top-8 max-w-xl translate-y-0 sm:top-1/3" + > +

+ {editorStrings.edtrIo.settings}: {geogebraStrings.title} +

+ +
+ state.set(e.target.value)} + inputWidth="100%" + width="100%" + className="block" + /> +
+
} pluginControls={} From e0c46480577678e7452073ccb2319235f91873f3 Mon Sep 17 00:00:00 2001 From: Entkenntnis Date: Thu, 15 Feb 2024 11:26:43 +0100 Subject: [PATCH 2/7] fix(math): always use static math --- .../plugins/text/components/math-element.tsx | 8 ++---- .../plugins/text/components/math-formula.tsx | 25 ------------------- 2 files changed, 2 insertions(+), 31 deletions(-) delete mode 100644 packages/editor/src/plugins/text/components/math-formula.tsx diff --git a/packages/editor/src/plugins/text/components/math-element.tsx b/packages/editor/src/plugins/text/components/math-element.tsx index 22b70f6ef8..714bf19b82 100644 --- a/packages/editor/src/plugins/text/components/math-element.tsx +++ b/packages/editor/src/plugins/text/components/math-element.tsx @@ -11,10 +11,7 @@ import { useSelected, } from 'slate-react' -/* eslint-disable import/no-unassigned-import */ -import 'katex/contrib/mhchem' - -import { MathFormula } from './math-formula' +import { StaticMath } from '../static-components/static-math' import type { MathElement as MathElementType, Paragraph, @@ -53,11 +50,10 @@ export function MathElement({ if (!shouldShowMathEditor) { return ( <> - {/* Slate void elements need to set attributes and contentEditable={false} See: https://docs.slatejs.org/api/nodes/element#rendering-void-elements */} - + {children} diff --git a/packages/editor/src/plugins/text/components/math-formula.tsx b/packages/editor/src/plugins/text/components/math-formula.tsx deleted file mode 100644 index 1a2e1a75b5..0000000000 --- a/packages/editor/src/plugins/text/components/math-formula.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import KaTeX from 'katex' -import { memo } from 'react' - -import type { MathElement } from '../types/text-editor' - -export const MathFormula = memo(function MathFormula({ - element, -}: { - element: MathElement -}) { - const html = KaTeX.renderToString( - `${element.inline ? '' : '\\displaystyle '}${element.src}`, - { - displayMode: false, - throwOnError: false, - } - ) - - return ( - - ) -}) From 540446eeece5ef7f6e2fa5a241a4261db8e8ef92 Mon Sep 17 00:00:00 2001 From: Botho <1258870+elbotho@users.noreply.github.com> Date: Thu, 15 Feb 2024 12:23:28 +0100 Subject: [PATCH 3/7] no conditional rendering of modals to avoid bug in react-modal --- packages/editor/src/plugins/audio/toolbar.tsx | 47 ++++++------- .../editor/src/plugins/geogebra/toolbar.tsx | 2 - packages/editor/src/plugins/image/toolbar.tsx | 26 ++++--- .../editor/src/plugins/injection/toolbar.tsx | 49 +++++++------- .../plugins/multimedia/toolbar/toolbar.tsx | 24 +++---- .../plugins/page-layout/toolbar/toolbar.tsx | 16 ++--- .../plugins/serlo-template-plugins/applet.tsx | 36 +++++----- .../serlo-template-plugins/article.tsx | 36 +++++----- .../serlo-template-plugins/course/course.tsx | 28 ++++---- .../solution/serlo-license-chooser.tsx | 56 +++++++--------- packages/editor/src/plugins/video/toolbar.tsx | 67 +++++++++---------- 11 files changed, 179 insertions(+), 208 deletions(-) diff --git a/packages/editor/src/plugins/audio/toolbar.tsx b/packages/editor/src/plugins/audio/toolbar.tsx index 113edae255..1213cb701b 100644 --- a/packages/editor/src/plugins/audio/toolbar.tsx +++ b/packages/editor/src/plugins/audio/toolbar.tsx @@ -57,32 +57,29 @@ export const AudioToolbar = ({ > {audioStrings.audioUrl} - {/* In the future we want a popovers per setting, but this is faster for now */} - {showSettingsModal ? ( - setShowSettingsModal(false)} - className="top-8 max-w-xl translate-y-0 sm:top-1/3" - > -

{audioStrings.title}

+ setShowSettingsModal(false)} + className="top-8 max-w-xl translate-y-0 sm:top-1/3" + > +

{audioStrings.title}

-
- { - state.src.set(e.target.value) - }} - inputWidth="100%" - width="100%" - onKeyDown={handleInputEnter} - placeholder="voca.ro/audio-id" - className="block" - /> -
-
- ) : null} +
+ { + state.src.set(e.target.value) + }} + inputWidth="100%" + width="100%" + onKeyDown={handleInputEnter} + placeholder="voca.ro/audio-id" + className="block" + /> +
+
} pluginControls={} diff --git a/packages/editor/src/plugins/geogebra/toolbar.tsx b/packages/editor/src/plugins/geogebra/toolbar.tsx index 3e98ca443e..a63e3b4052 100644 --- a/packages/editor/src/plugins/geogebra/toolbar.tsx +++ b/packages/editor/src/plugins/geogebra/toolbar.tsx @@ -33,8 +33,6 @@ export const GeogebraToolbar = ({ > {geogebraStrings.chooseApplet} - {/* In the future we want a popovers per setting, but this is faster for now */} - setShowSettingsModal(false)} diff --git a/packages/editor/src/plugins/image/toolbar.tsx b/packages/editor/src/plugins/image/toolbar.tsx index dc32241019..ab3633dbc1 100644 --- a/packages/editor/src/plugins/image/toolbar.tsx +++ b/packages/editor/src/plugins/image/toolbar.tsx @@ -33,21 +33,19 @@ export const ImageToolbar = ( > {editorStrings.edtrIo.settings} - {showSettingsModal ? ( - setShowSettingsModal(false)} - className="top-8 max-w-xl translate-y-0 sm:top-1/3" - > -

- {editorStrings.edtrIo.settings}: {imageStrings.title} -

+ setShowSettingsModal(false)} + className="top-8 max-w-xl translate-y-0 sm:top-1/3" + > +

+ {editorStrings.edtrIo.settings}: {imageStrings.title} +

-
- -
-
- ) : null} +
+ +
+
diff --git a/packages/editor/src/plugins/injection/toolbar.tsx b/packages/editor/src/plugins/injection/toolbar.tsx index 2c6916c565..f1f852b6eb 100644 --- a/packages/editor/src/plugins/injection/toolbar.tsx +++ b/packages/editor/src/plugins/injection/toolbar.tsx @@ -32,33 +32,30 @@ export const InjectionToolbar = ({ > {injectionStrings.serloId} - {/* In the future we want a popovers per setting, but this is faster for now */} - {showSettingsModal ? ( - setShowSettingsModal(false)} - className="top-8 max-w-xl translate-y-0 sm:top-1/3" - > -

{injectionStrings.title}

+ setShowSettingsModal(false)} + className="top-8 max-w-xl translate-y-0 sm:top-1/3" + > +

{injectionStrings.title}

-
- - state.set(e.target.value.replace(/[^0-9]/g, '')) - } - width="100%" - inputWidth="100%" - className="block" - /> -
-
- ) : null} +
+ + state.set(e.target.value.replace(/[^0-9]/g, '')) + } + width="100%" + inputWidth="100%" + className="block" + /> +
+
} pluginControls={} diff --git a/packages/editor/src/plugins/multimedia/toolbar/toolbar.tsx b/packages/editor/src/plugins/multimedia/toolbar/toolbar.tsx index 9760a950b5..b145f410b6 100644 --- a/packages/editor/src/plugins/multimedia/toolbar/toolbar.tsx +++ b/packages/editor/src/plugins/multimedia/toolbar/toolbar.tsx @@ -28,20 +28,18 @@ export const MultimediaToolbar = ({ id, children }: MultimediaToolbarProps) => { > {editorStrings.edtrIo.settings} - {showSettingsModal ? ( - setShowSettingsModal(false)} - className="top-8 max-w-xl translate-y-0 sm:top-1/3" - > -

- {editorStrings.edtrIo.settings}:{' '} - {editorStrings.plugins.multimedia.title} -

+ setShowSettingsModal(false)} + className="top-8 max-w-xl translate-y-0 sm:top-1/3" + > +

+ {editorStrings.edtrIo.settings}:{' '} + {editorStrings.plugins.multimedia.title} +

-
{children}
-
- ) : null} +
{children}
+
} pluginControls={} diff --git a/packages/editor/src/plugins/page-layout/toolbar/toolbar.tsx b/packages/editor/src/plugins/page-layout/toolbar/toolbar.tsx index 3f533759fe..7a6fbe8aa8 100644 --- a/packages/editor/src/plugins/page-layout/toolbar/toolbar.tsx +++ b/packages/editor/src/plugins/page-layout/toolbar/toolbar.tsx @@ -36,15 +36,13 @@ export const PageLayoutToolbar = ({ > {pageLayoutStrings.chooseRatio} - {showSettingsModal ? ( - setShowSettingsModal(false)} - className="top-8 max-w-xl translate-y-0 sm:top-1/3" - > - - - ) : null} + setShowSettingsModal(false)} + className="top-8 max-w-xl translate-y-0 sm:top-1/3" + > + + } /> diff --git a/packages/editor/src/plugins/serlo-template-plugins/applet.tsx b/packages/editor/src/plugins/serlo-template-plugins/applet.tsx index c5ef60f519..98ecb73a82 100644 --- a/packages/editor/src/plugins/serlo-template-plugins/applet.tsx +++ b/packages/editor/src/plugins/serlo-template-plugins/applet.tsx @@ -86,25 +86,23 @@ function AppletTypeEditor(props: EditorPluginProps) { {content.render()} - {showSettingsModal ? ( - setShowSettingsModal(false)} - className="top-8 max-w-xl translate-y-0 sm:top-1/3" - > -
- - -
-
- ) : null} + setShowSettingsModal(false)} + className="top-8 max-w-xl translate-y-0 sm:top-1/3" + > +
+ + +
+
) } diff --git a/packages/editor/src/plugins/serlo-template-plugins/article.tsx b/packages/editor/src/plugins/serlo-template-plugins/article.tsx index 65cd49c941..8ddeec86d3 100644 --- a/packages/editor/src/plugins/serlo-template-plugins/article.tsx +++ b/packages/editor/src/plugins/serlo-template-plugins/article.tsx @@ -88,25 +88,23 @@ function ArticleTypeEditor(props: EditorPluginProps) {
{content.render()}
- {showSettingsModal ? ( - setShowSettingsModal(false)} - className="top-8 max-w-xl translate-y-0 sm:top-1/3" - > -
- - -
-
- ) : null} + setShowSettingsModal(false)} + className="top-8 max-w-xl translate-y-0 sm:top-1/3" + > +
+ + +
+
) } diff --git a/packages/editor/src/plugins/serlo-template-plugins/course/course.tsx b/packages/editor/src/plugins/serlo-template-plugins/course/course.tsx index 566593ac64..37818a3722 100644 --- a/packages/editor/src/plugins/serlo-template-plugins/course/course.tsx +++ b/packages/editor/src/plugins/serlo-template-plugins/course/course.tsx @@ -119,21 +119,19 @@ function CourseTypeEditor(props: EditorPluginProps) { - {showSettingsModal ? ( - setShowSettingsModal(false)} - className="max-w-xl" - > -
- -
-
- ) : null} + setShowSettingsModal(false)} + className="max-w-xl" + > +
+ +
+
) diff --git a/packages/editor/src/plugins/solution/serlo-license-chooser.tsx b/packages/editor/src/plugins/solution/serlo-license-chooser.tsx index fab8833e7a..8f863cf67d 100644 --- a/packages/editor/src/plugins/solution/serlo-license-chooser.tsx +++ b/packages/editor/src/plugins/solution/serlo-license-chooser.tsx @@ -29,38 +29,32 @@ export function SerloLicenseChooser({ licenseId }: SerloLicenseChooserProps) { - {showLicenseModal ? ( - setShowLicenseModal(false)} - className="top-8 max-w-xl translate-y-0 sm:top-1/3" - > -

{solutionStrings.changeLicense}:

+ setShowLicenseModal(false)} + className="top-8 max-w-xl translate-y-0 sm:top-1/3" + > +

{solutionStrings.changeLicense}:

-
- -
-
- ) : null} +
+ +
+
) } diff --git a/packages/editor/src/plugins/video/toolbar.tsx b/packages/editor/src/plugins/video/toolbar.tsx index 776fc9a864..a8159fe95a 100644 --- a/packages/editor/src/plugins/video/toolbar.tsx +++ b/packages/editor/src/plugins/video/toolbar.tsx @@ -39,42 +39,39 @@ export const VideoToolbar = ({ > {videoStrings.videoDescription} - {/* In the future we want a popovers per setting, but this is faster for now */} - {showSettingsModal ? ( - setShowSettingsModal(false)} - className="top-8 max-w-xl translate-y-0 sm:top-1/3" - > -

{videoStrings.title}

+ setShowSettingsModal(false)} + className="top-8 max-w-xl translate-y-0 sm:top-1/3" + > +

{videoStrings.title}

-
- { - state.src.set(e.target.value) - }} - inputWidth="100%" - width="100%" - placeholder="(YouTube, Wikimedia Commons, Vimeo)" - className="block" - /> -
-
- state.alt.set(e.target.value)} - width="100%" - inputWidth="100%" - className="block" - /> -
-
- ) : null} +
+ { + state.src.set(e.target.value) + }} + inputWidth="100%" + width="100%" + placeholder="(YouTube, Wikimedia Commons, Vimeo)" + className="block" + /> +
+
+ state.alt.set(e.target.value)} + width="100%" + inputWidth="100%" + className="block" + /> +
+
} pluginControls={} From dd1d9c8c2632896ed4e9d4e89724e769d72d17b3 Mon Sep 17 00:00:00 2001 From: Botho <1258870+elbotho@users.noreply.github.com> Date: Thu, 15 Feb 2024 13:47:39 +0100 Subject: [PATCH 4/7] feat(exams): add terms for niedersachsen as license --- apps/web/src/data/de/license-data-short.ts | 8 ++++++++ apps/web/src/data/licenses/licenses-content.ts | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/apps/web/src/data/de/license-data-short.ts b/apps/web/src/data/de/license-data-short.ts index 5d62d7649b..3f9e26c545 100644 --- a/apps/web/src/data/de/license-data-short.ts +++ b/apps/web/src/data/de/license-data-short.ts @@ -84,4 +84,12 @@ export const licenses: LicenseData[] = [ agreement: `Mit dem Speichern dieser Seite versichere ich, dass ich die Veränderung des Inhalts selbst verfasst habe bzw. dass meine Änderungen keine fremden Rechte verletzen. Ich willige ein, meinen Beitrag unter der Creative Commons Attribution/Share-Alike Lizenz 4.0 und/oder unter einer gleichwertigen Lizenz zu veröffentlichen, welche der Serlo Education e. V. entsprechend der Regelungen in den Nutzungsbedingungen festlegen darf. Let's go 🤘`, }, + { + id: 26, + title: + 'Dieses Werk wurde von Niedersächsischen Kultusministeriums zur Verfügung gestellt', + shortTitle: 'Niedersächsisches Kultusministerium', + url: 'https://aba-aufgaben.nibis.de', + agreement: `Mit dem Speichern dieser Seite versicherst du, dass du in deinem Beitrag (damit sind auch Änderungen gemeint) die Aufgabenstellung vom Land Niedersachsen nicht inhaltlich verändert hast, keine Rechte Dritter verletzt und dich an die Nutzungsbedingungen gehalten hast.`, + }, ] diff --git a/apps/web/src/data/licenses/licenses-content.ts b/apps/web/src/data/licenses/licenses-content.ts index 83e9afc5e1..908e87f092 100644 --- a/apps/web/src/data/licenses/licenses-content.ts +++ b/apps/web/src/data/licenses/licenses-content.ts @@ -44,6 +44,11 @@ export const licensesContent = [ content: '{"plugin":"rows","state":[{"plugin":"text","state":[{"type":"p","children":[{"text":"Dieser Inhalt wurde vom "},{"type":"a","href":"https://chancenwerk.de/","children":[{"text":"Chancenwerk"}]},{"text":" erstellt und ggf in Zusammenarbeit mit Serlo Autor*innen weiterentwickelt. Der Chancenwerk e.V. hält das Urheberrecht an diesem Inhalt. Serlo dankt für die freundliche Genehmigung zur Veröffentlichung."}]},{"type":"p","children":[{"text":"Der Lerninhalt steht unter der "},{"text":"Lizenz CC BY SA 4.0.","strong":true},{"text":"Du darfst das Werk kopieren, vervielfältigen, bearbeiten und weiterentwickeln. Dies gilt unter folgenden Bedingungen:"}]},{"type":"h","level":3,"children":[{"text":"Wenn du "},{"text":"keine","strong":true},{"text":" Veränderungen vornimmst:"}]},{"type":"unordered-list","children":[{"type":"list-item","children":[{"type":"list-item-child","children":[{"text":"Du musst Serlo und das Chancenwerk als Quelle nennen \\"Quelle: serlo.org & Chancenwerk\\", in digitaler Form als Link direkt zu diesem Inhalt."}]}]},{"type":"list-item","children":[{"type":"list-item-child","children":[{"text":"Du musst die Lizenz angeben \\"Lizenz: CC BY SA 4.0\\", in digitaler Form als Link zu dieser Seite: "},{"type":"a","href":"https://creativecommons.org/licenses/by-sa/4.0/deed.de","children":[{"text":"https://creativecommons.org/licenses/by-sa/4.0/deed.de"}]},{"text":"."}]}]}]},{"type":"h","level":3,"children":[{"text":"Wenn du Veränderungen vornimmst:"}]},{"type":"unordered-list","children":[{"type":"list-item","children":[{"type":"list-item-child","children":[{"text":"Du musst Serlo und das Chancenwerk als Quelle nennen \\"Quelle: serlo.org & Chancenwerk\\", in digitaler Form als Link direkt zu diesem Inhalt."}]}]},{"type":"list-item","children":[{"type":"list-item-child","children":[{"text":"Du musst kurz erläutern, welche Änderungen du vorgenommen hast, z.B. \\"Zahlen vereinfacht\\" oder \\"Bild zugeschnitten\\"."}]}]},{"type":"list-item","children":[{"type":"list-item-child","children":[{"text":"Du musst die Lizenz \\"CC BY SA 4.0\\" angeben, in digitaler Form als Link zu dieser Seite: "},{"type":"a","href":"https://creativecommons.org/licenses/by-sa/4.0/deed.de","children":[{"text":"https://creativecommons.org/licenses/by-a/4.0/deed.de"}]},{"text":". Die Lizenz muss für das gesamte Werk angegeben werden, zu dem dieser Inhalt beigetragen hat."}]}]}]}]}]}', }, + { + id: 26, + content: + '{"plugin":"rows","state":[{"plugin":"text","state":[{"type":"p","children":[{"text":"Für diese "},{"text":"Aufgabenstellungen","strong":true},{"text":" der Abschlussarbeiten gelten die "},{"type":"a","href":"https://aba-aufgaben.nibis.de/","children":[{"text":"Nutzungsbedingungen des Niedersächsischen Kultusministeriums"}]},{"text":" (siehe auch unten)."}]},{"type":"p","children":[{"text":""}]},{"type":"p","children":[{"text":"Wichtig:","strong":true},{"text":" Bei den "},{"text":"Lösungsvorschlägen","strong":true},{"text":" dazu handelt es sich "},{"text":"explizit nicht","strong":true},{"text":" um Lösungsvorgaben des Landes Niedersachsens. Diese sind von Autor*innen auf serlo.org erstellt oder kommen aus anderen Quellen."}]},{"type":"h","children":[{"text":""}],"level":3}],"id":"1d0f5fb6-7d86-4847-9829-7c389fd86bb0"},{"plugin":"box","state":{"type":"quote","title":{"plugin":"text","state":[{"type":"p","children":[{"text":"Nutzungsbedingungen vom Niedersächsischen Kultusministerium:"}]}],"id":"3ab2c124-20a9-4ca5-afe6-9cbe7d01f7cc"},"anchorId":"","content":{"plugin":"rows","state":[{"plugin":"text","state":[{"type":"p","children":[{"text":"Es wird darauf hingewiesen, dass die hier bereitgestellten Werke des Niedersächsischen Kultusministeriums zur freien Verwendung unentgeltlich zur Verfügung gestellt werden. Aufgabenstellungen und Lösungsvorgaben dürfen nur veröffentlicht werden, wenn die zur Verfügung gestellten Fassungen inhaltlich nicht verändert werden und bei der Veröffentlichung eine Quellenangabe erfolgt. Selbst erstellte Lösungen sind mit dem Hinweis zu versehen, dass es sich dabei nicht um Lösungsvorgaben des Landes Niedersachsen handelt. Die zur Verfügung gestellten Unterlagen enthalten aus urheberrechtlichen Gründen keinerlei Texte, Abbildungen oder andere Werke anderer Urheber*innen, sondern verweisen lediglich auf diese. Nutzer*innen verpflichten sich, hinsichtlich solcher Werke die geltenden urheberrechtlichen Bestimmungen zu beachten und vor einer Verwendung dieser Quellen von den jeweiligen Urheber*innen die erforderlichen Nutzungs- und Verwertungsrechte einzuholen."}]},{"type":"p","children":[{"text":""}]},{"type":"p","children":[{"text":""},{"type":"a","href":"https://aba-aufgaben.nibis.de/","children":[{"text":"Quelle"}]},{"text":""}]}],"id":"0c0ab6e8-9b97-45ec-9db4-60fd7cb24046"}],"id":"051eaece-d731-4022-8eae-13269beb9a56"}},"id":"7e25bb34-e257-4bca-b03b-ccb77d7890c7"}]}', + }, { id: 9, content: From cd133462b273ff6909b468b7e34b0f1c430659f0 Mon Sep 17 00:00:00 2001 From: Botho <1258870+elbotho@users.noreply.github.com> Date: Thu, 15 Feb 2024 13:51:57 +0100 Subject: [PATCH 5/7] add date to quote --- apps/web/src/data/licenses/licenses-content.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/src/data/licenses/licenses-content.ts b/apps/web/src/data/licenses/licenses-content.ts index 908e87f092..f1edf5a32f 100644 --- a/apps/web/src/data/licenses/licenses-content.ts +++ b/apps/web/src/data/licenses/licenses-content.ts @@ -47,7 +47,7 @@ export const licensesContent = [ { id: 26, content: - '{"plugin":"rows","state":[{"plugin":"text","state":[{"type":"p","children":[{"text":"Für diese "},{"text":"Aufgabenstellungen","strong":true},{"text":" der Abschlussarbeiten gelten die "},{"type":"a","href":"https://aba-aufgaben.nibis.de/","children":[{"text":"Nutzungsbedingungen des Niedersächsischen Kultusministeriums"}]},{"text":" (siehe auch unten)."}]},{"type":"p","children":[{"text":""}]},{"type":"p","children":[{"text":"Wichtig:","strong":true},{"text":" Bei den "},{"text":"Lösungsvorschlägen","strong":true},{"text":" dazu handelt es sich "},{"text":"explizit nicht","strong":true},{"text":" um Lösungsvorgaben des Landes Niedersachsens. Diese sind von Autor*innen auf serlo.org erstellt oder kommen aus anderen Quellen."}]},{"type":"h","children":[{"text":""}],"level":3}],"id":"1d0f5fb6-7d86-4847-9829-7c389fd86bb0"},{"plugin":"box","state":{"type":"quote","title":{"plugin":"text","state":[{"type":"p","children":[{"text":"Nutzungsbedingungen vom Niedersächsischen Kultusministerium:"}]}],"id":"3ab2c124-20a9-4ca5-afe6-9cbe7d01f7cc"},"anchorId":"","content":{"plugin":"rows","state":[{"plugin":"text","state":[{"type":"p","children":[{"text":"Es wird darauf hingewiesen, dass die hier bereitgestellten Werke des Niedersächsischen Kultusministeriums zur freien Verwendung unentgeltlich zur Verfügung gestellt werden. Aufgabenstellungen und Lösungsvorgaben dürfen nur veröffentlicht werden, wenn die zur Verfügung gestellten Fassungen inhaltlich nicht verändert werden und bei der Veröffentlichung eine Quellenangabe erfolgt. Selbst erstellte Lösungen sind mit dem Hinweis zu versehen, dass es sich dabei nicht um Lösungsvorgaben des Landes Niedersachsen handelt. Die zur Verfügung gestellten Unterlagen enthalten aus urheberrechtlichen Gründen keinerlei Texte, Abbildungen oder andere Werke anderer Urheber*innen, sondern verweisen lediglich auf diese. Nutzer*innen verpflichten sich, hinsichtlich solcher Werke die geltenden urheberrechtlichen Bestimmungen zu beachten und vor einer Verwendung dieser Quellen von den jeweiligen Urheber*innen die erforderlichen Nutzungs- und Verwertungsrechte einzuholen."}]},{"type":"p","children":[{"text":""}]},{"type":"p","children":[{"text":""},{"type":"a","href":"https://aba-aufgaben.nibis.de/","children":[{"text":"Quelle"}]},{"text":""}]}],"id":"0c0ab6e8-9b97-45ec-9db4-60fd7cb24046"}],"id":"051eaece-d731-4022-8eae-13269beb9a56"}},"id":"7e25bb34-e257-4bca-b03b-ccb77d7890c7"}]}', + '{"plugin":"rows","state":[{"plugin":"text","state":[{"type":"p","children":[{"text":"Für diese "},{"text":"Aufgabenstellungen","strong":true},{"text":" der Abschlussarbeiten gelten die "},{"type":"a","href":"https://aba-aufgaben.nibis.de/","children":[{"text":"Nutzungsbedingungen des Niedersächsischen Kultusministeriums"}]},{"text":" (siehe auch unten)."}]},{"type":"p","children":[{"text":""}]},{"type":"p","children":[{"text":"Wichtig:","strong":true},{"text":" Bei den "},{"text":"Lösungsvorschlägen","strong":true},{"text":" dazu handelt es sich "},{"text":"explizit nicht","strong":true},{"text":" um Lösungsvorgaben des Landes Niedersachsens. Diese sind von Autor*innen auf serlo.org erstellt oder kommen aus anderen Quellen."}]},{"type":"h","children":[{"text":""}],"level":3}],"id":"1d0f5fb6-7d86-4847-9829-7c389fd86bb0"},{"plugin":"box","state":{"type":"quote","title":{"plugin":"text","state":[{"type":"p","children":[{"text":"Nutzungsbedingungen vom Niedersächsischen Kultusministerium"}]}],"id":"3ab2c124-20a9-4ca5-afe6-9cbe7d01f7cc"},"anchorId":"","content":{"plugin":"rows","state":[{"plugin":"text","state":[{"type":"p","children":[{"text":"Es wird darauf hingewiesen, dass die hier bereitgestellten Werke des Niedersächsischen Kultusministeriums zur freien Verwendung unentgeltlich zur Verfügung gestellt werden. Aufgabenstellungen und Lösungsvorgaben dürfen nur veröffentlicht werden, wenn die zur Verfügung gestellten Fassungen inhaltlich nicht verändert werden und bei der Veröffentlichung eine Quellenangabe erfolgt. Selbst erstellte Lösungen sind mit dem Hinweis zu versehen, dass es sich dabei nicht um Lösungsvorgaben des Landes Niedersachsen handelt. Die zur Verfügung gestellten Unterlagen enthalten aus urheberrechtlichen Gründen keinerlei Texte, Abbildungen oder andere Werke anderer Urheber*innen, sondern verweisen lediglich auf diese. Nutzer*innen verpflichten sich, hinsichtlich solcher Werke die geltenden urheberrechtlichen Bestimmungen zu beachten und vor einer Verwendung dieser Quellen von den jeweiligen Urheber*innen die erforderlichen Nutzungs- und Verwertungsrechte einzuholen."}]},{"type":"p","children":[{"text":""}]},{"type":"p","children":[{"text":"Stand: 15.02.2024 ("},{"type":"a","href":"https://aba-aufgaben.nibis.de/","children":[{"text":"Quelle"}]},{"text":")"}]}],"id":"0c0ab6e8-9b97-45ec-9db4-60fd7cb24046"}],"id":"051eaece-d731-4022-8eae-13269beb9a56"}},"id":"7e25bb34-e257-4bca-b03b-ccb77d7890c7"}]}', }, { id: 9, From 69161e454375b0baa051a185d5bbd2bbc3291015 Mon Sep 17 00:00:00 2001 From: Botho <1258870+elbotho@users.noreply.github.com> Date: Thu, 15 Feb 2024 13:52:57 +0100 Subject: [PATCH 6/7] fix title --- apps/web/src/data/de/license-data-short.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/src/data/de/license-data-short.ts b/apps/web/src/data/de/license-data-short.ts index 3f9e26c545..902189f634 100644 --- a/apps/web/src/data/de/license-data-short.ts +++ b/apps/web/src/data/de/license-data-short.ts @@ -87,7 +87,7 @@ export const licenses: LicenseData[] = [ { id: 26, title: - 'Dieses Werk wurde von Niedersächsischen Kultusministeriums zur Verfügung gestellt', + 'Dieses Werk wurde vom Kultusministerium Niedersachsen zur Verfügung gestellt', shortTitle: 'Niedersächsisches Kultusministerium', url: 'https://aba-aufgaben.nibis.de', agreement: `Mit dem Speichern dieser Seite versicherst du, dass du in deinem Beitrag (damit sind auch Änderungen gemeint) die Aufgabenstellung vom Land Niedersachsen nicht inhaltlich verändert hast, keine Rechte Dritter verletzt und dich an die Nutzungsbedingungen gehalten hast.`, From 2bcf35fe8f2816157dd1b8e4ac8ff8499cafd6f3 Mon Sep 17 00:00:00 2001 From: Botho <1258870+elbotho@users.noreply.github.com> Date: Thu, 15 Feb 2024 14:38:42 +0100 Subject: [PATCH 7/7] add extra info to niedersachsen explanation --- .../components/content/license/exercise-license-notice.tsx | 7 ++++--- apps/web/src/data/de/license-data-short.ts | 2 +- .../solution-serlo-static-renderer.tsx | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/apps/web/src/components/content/license/exercise-license-notice.tsx b/apps/web/src/components/content/license/exercise-license-notice.tsx index 56bcb507c2..409e9eda1d 100644 --- a/apps/web/src/components/content/license/exercise-license-notice.tsx +++ b/apps/web/src/components/content/license/exercise-license-notice.tsx @@ -55,9 +55,10 @@ export function ExerciseLicenseNotice({ strings.license.appliesTo }: ${typeString})` - const tooltipExplanation = isCreativeCommons - ? explanation - : `${explanation} –– ${strings.license.nonFree}` + const tooltipExplanation = + isCreativeCommons || explanation.includes('---') + ? explanation + : `${explanation} --- ${strings.license.nonFree}` return ( <> diff --git a/apps/web/src/data/de/license-data-short.ts b/apps/web/src/data/de/license-data-short.ts index 902189f634..efe3448c19 100644 --- a/apps/web/src/data/de/license-data-short.ts +++ b/apps/web/src/data/de/license-data-short.ts @@ -87,7 +87,7 @@ export const licenses: LicenseData[] = [ { id: 26, title: - 'Dieses Werk wurde vom Kultusministerium Niedersachsen zur Verfügung gestellt', + 'Dieses Werk wurde vom Kultusministerium Niedersachsen zur Verfügung gestellt --- Die Lösungsvorschläge dagegen sind NICHT vom Land Niedersachsen.', shortTitle: 'Niedersächsisches Kultusministerium', url: 'https://aba-aufgaben.nibis.de', agreement: `Mit dem Speichern dieser Seite versicherst du, dass du in deinem Beitrag (damit sind auch Änderungen gemeint) die Aufgabenstellung vom Land Niedersachsen nicht inhaltlich verändert hast, keine Rechte Dritter verletzt und dich an die Nutzungsbedingungen gehalten hast.`, diff --git a/apps/web/src/serlo-editor-integration/serlo-plugin-wrappers/solution-serlo-static-renderer.tsx b/apps/web/src/serlo-editor-integration/serlo-plugin-wrappers/solution-serlo-static-renderer.tsx index 105ef726c0..ed8f67c581 100644 --- a/apps/web/src/serlo-editor-integration/serlo-plugin-wrappers/solution-serlo-static-renderer.tsx +++ b/apps/web/src/serlo-editor-integration/serlo-plugin-wrappers/solution-serlo-static-renderer.tsx @@ -18,7 +18,7 @@ const CommentAreaEntity = dynamic(() => ) ) -// Special version for serlo.org with author tools, comments and license +// Special version for serlo.org with author tools and comments export function SolutionSerloStaticRenderer(props: EditorSolutionDocument) { const { asPath } = useRouter() const ab = useAB()