JS related stuff

pull/1/head
Jens Pelzetter 2022-04-27 21:22:25 +02:00
parent f67581056a
commit 76b5d83d8c
9 changed files with 495 additions and 1308 deletions

View File

@ -230,7 +230,7 @@
<plugin> <plugin>
<groupId>com.github.eirslett</groupId> <groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId> <artifactId>frontend-maven-plugin</artifactId>
<version>1.10.0</version> <version>1.12.1</version>
</plugin> </plugin>
<plugin> <plugin>
<groupId>com.github.spotbugs</groupId> <groupId>com.github.spotbugs</groupId>

File diff suppressed because it is too large Load Diff

View File

@ -20,8 +20,7 @@
"webpack-cli": "^4.8.0" "webpack-cli": "^4.8.0"
}, },
"dependencies": { "dependencies": {
"@librecms/ccm-cms": "7.0.0", "@librecms/ccm-cms-editor": "^7.0.0-SNAPSHOT"
"install": "^0.13.0"
}, },
"targets": { "targets": {
"main": false "main": false

View File

@ -171,7 +171,7 @@
<goal>install-node-and-npm</goal> <goal>install-node-and-npm</goal>
</goals> </goals>
<configuration> <configuration>
<nodeVersion>v14.17.0</nodeVersion> <nodeVersion>v16.14.2</nodeVersion>
</configuration> </configuration>
</execution> </execution>
<execution> <execution>

View File

@ -1,4 +1,4 @@
import { CmsEditorBuilder, CmsEditor} from "@librecms/ccm-cms"; import { CmsEditorBuilder, CmsEditor} from "@librecms/ccm-cms-editor";
document.addEventListener("DOMContentLoaded", (event) => { document.addEventListener("DOMContentLoaded", (event) => {
const editorElem = document.querySelector("#sciproject-description-editor"); const editorElem = document.querySelector("#sciproject-description-editor");
@ -48,4 +48,4 @@ document.addEventListener("DOMContentLoaded", (event) => {
} else { } else {
console.error("Editor element not found.") console.error("Editor element not found.")
} }
} })

View File

@ -1,4 +1,4 @@
import { CmsEditorBuilder, CmsEditor} from "@librecms/ccm-cms"; import { CmsEditorBuilder, CmsEditor} from "@librecms/ccm-cms-editor";
document.addEventListener("DOMContentLoaded", (event) => { document.addEventListener("DOMContentLoaded", (event) => {
const editorElem = document.querySelector("#sciproject-fundingtext-editor"); const editorElem = document.querySelector("#sciproject-fundingtext-editor");
@ -48,4 +48,4 @@ document.addEventListener("DOMContentLoaded", (event) => {
} else { } else {
console.error("Editor element not found.") console.error("Editor element not found.")
} }
} });

View File

@ -1,6 +1,4 @@
import { } from "@librecms/ccm-cms"; import { CmsEditorBuilder, CmsEditor} from "@librecms/ccm-cms-editor";
import { CmsEditorBuilder, CmsEditor} from "@librecms/ccm-cms";
document.addEventListener("DOMContentLoaded", (event) => { document.addEventListener("DOMContentLoaded", (event) => {
const editorElem = document.querySelector("#sciproject-funding-volume-editor"); const editorElem = document.querySelector("#sciproject-funding-volume-editor");
@ -50,4 +48,4 @@ document.addEventListener("DOMContentLoaded", (event) => {
} else { } else {
console.error("Editor element not found.") console.error("Editor element not found.")
} }
} });

View File

@ -18,15 +18,12 @@ document.addEventListener("DOMContentLoaded", (event) => {
}); });
function initMembers(members: HTMLElement): Sortable { function initMembers(members: HTMLElement): Sortable {
return new Sortable( return new Sortable(members, {
members, animation: 150,
{ group: "members-list",
animation: 150, handle: ".member-sort-handle",
group: "members-list", onEnd: enableSaveButton,
handle: ".member-sort-handle", });
onEnd: enableSaveButton
}
)
} }
function enableSaveButton(event: SortableEvent) { function enableSaveButton(event: SortableEvent) {
@ -43,7 +40,11 @@ function enableSaveButton(event: SortableEvent) {
} }
function saveOrder() { function saveOrder() {
const baseUrl = cmsMedia.getAttribute("data-baseUrl"); const membersList = document.querySelector(".members-list");
if (!membersList) {
return;
}
const baseUrl = membersList.getAttribute("data-baseUrl");
if (!baseUrl) { if (!baseUrl) {
showGeneralError(); showGeneralError();
throw Error( throw Error(
@ -52,7 +53,9 @@ function saveOrder() {
} }
console.log("spinner on"); console.log("spinner on");
const saveOrderButtons = document.querySelectorAll(".members-save-order-button"); const saveOrderButtons = document.querySelectorAll(
".members-save-order-button"
);
for (let i = 0; i < saveOrderButtons.length; i++) { for (let i = 0; i < saveOrderButtons.length; i++) {
const saveOrderButton: HTMLButtonElement = saveOrderButtons[ const saveOrderButton: HTMLButtonElement = saveOrderButtons[
i i
@ -71,24 +74,24 @@ function saveOrder() {
credentials: "include", credentials: "include",
body: JSON.stringify(membersSortable.toArray()), body: JSON.stringify(membersSortable.toArray()),
headers, headers,
method: "POST" method: "POST",
}) })
.then(response => { .then((response) => {
if (response.ok) { if (response.ok) {
for(let i = 0; i < saveOrderButtons.length; i++) { for (let i = 0; i < saveOrderButtons.length; i++) {
const saveOrderButton: HTMLButtonElement = saveOrderButtons[ const saveOrderButton: HTMLButtonElement = saveOrderButtons[
i i
] as HTMLButtonElement; ] as HTMLButtonElement;
// saveOrderButton.disabled = true; // saveOrderButton.disabled = true;
const saveIcon = const saveIcon =
saveOrderButton.querySelector(".save-icon"); saveOrderButton.querySelector(".save-icon");
const spinner = const spinner =
saveOrderButton.querySelector(".save-spinner"); saveOrderButton.querySelector(".save-spinner");
saveIcon?.classList.toggle("d-none"); saveIcon?.classList.toggle("d-none");
spinner?.classList.toggle("d-none"); spinner?.classList.toggle("d-none");
} }
} else { } else {
showSaveError(); showSaveError();
for (let i = 0; i < saveOrderButtons.length; i++) { for (let i = 0; i < saveOrderButtons.length; i++) {
const saveOrderButton: HTMLButtonElement = saveOrderButtons[ const saveOrderButton: HTMLButtonElement = saveOrderButtons[
i i
@ -104,22 +107,22 @@ function saveOrder() {
throw Error( throw Error(
`Failed to save media order. Response status: ${response.status}, statusText: ${response.statusText}` `Failed to save media order. Response status: ${response.status}, statusText: ${response.statusText}`
); );
} }
}) })
.catch(error => { .catch((error) => {
showSaveError(); showSaveError();
for (let i = 0; i < saveOrderButtons.length; i++) { for (let i = 0; i < saveOrderButtons.length; i++) {
const saveOrderButton: HTMLButtonElement = saveOrderButtons[ const saveOrderButton: HTMLButtonElement = saveOrderButtons[
i i
] as HTMLButtonElement; ] as HTMLButtonElement;
saveOrderButton.disabled = false; saveOrderButton.disabled = false;
const saveIcon = saveOrderButton.querySelector(".save-icon"); const saveIcon = saveOrderButton.querySelector(".save-icon");
const spinner = saveOrderButton.querySelector(".save-spinner"); const spinner = saveOrderButton.querySelector(".save-spinner");
saveIcon?.classList.toggle("d-none"); saveIcon?.classList.toggle("d-none");
spinner?.classList.toggle("d-none"); spinner?.classList.toggle("d-none");
} }
throw new Error(`Failed to save media order: ${error}`); throw new Error(`Failed to save media order: ${error}`);
}); });
} }
function showGeneralError(): void { function showGeneralError(): void {
@ -145,4 +148,3 @@ function showSaveError(): void {
container.appendChild(alert); container.appendChild(alert);
} }
} }

View File

@ -101,7 +101,7 @@
<goal>install-node-and-npm</goal> <goal>install-node-and-npm</goal>
</goals> </goals>
<configuration> <configuration>
<nodeVersion>v14.17.0</nodeVersion> <nodeVersion>v16.14.2</nodeVersion>
</configuration> </configuration>
</execution> </execution>
<execution> <execution>