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>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>1.10.0</version>
<version>1.12.1</version>
</plugin>
<plugin>
<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"
},
"dependencies": {
"@librecms/ccm-cms": "7.0.0",
"install": "^0.13.0"
"@librecms/ccm-cms-editor": "^7.0.0-SNAPSHOT"
},
"targets": {
"main": false

View File

@ -171,7 +171,7 @@
<goal>install-node-and-npm</goal>
</goals>
<configuration>
<nodeVersion>v14.17.0</nodeVersion>
<nodeVersion>v16.14.2</nodeVersion>
</configuration>
</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) => {
const editorElem = document.querySelector("#sciproject-description-editor");
@ -48,4 +48,4 @@ document.addEventListener("DOMContentLoaded", (event) => {
} else {
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) => {
const editorElem = document.querySelector("#sciproject-fundingtext-editor");
@ -48,4 +48,4 @@ document.addEventListener("DOMContentLoaded", (event) => {
} else {
console.error("Editor element not found.")
}
}
});

View File

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

View File

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

View File

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