mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-05-20 19:10:49 +08:00
This commit is contained in:
parent
26a7efea22
commit
f78ece7d0d
@ -80,16 +80,16 @@ const renderRepoItem = (response: IWebSocketData, element: Element, type: string
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let actionHTML = "";
|
let actionHTML = "";
|
||||||
if (type === "cloudTag") {
|
if (type === "getCloudRepoTagSnapshots") {
|
||||||
actionHTML = `<span class="b3-list-item__action b3-tooltips b3-tooltips__w" data-type="downloadSnapshot" aria-label="${window.siyuan.languages.download}"><svg><use xlink:href="#iconDownload"></use></svg></span>
|
actionHTML = `<span class="b3-list-item__action b3-tooltips b3-tooltips__w" data-type="downloadSnapshot" aria-label="${window.siyuan.languages.download}"><svg><use xlink:href="#iconDownload"></use></svg></span>
|
||||||
<span class="b3-list-item__action b3-tooltips b3-tooltips__w" data-type="removeCloudRepoTagSnapshot" aria-label="${window.siyuan.languages.remove}"><svg><use xlink:href="#iconTrashcan"></use></svg></span>`;
|
<span class="b3-list-item__action b3-tooltips b3-tooltips__w" data-type="removeCloudRepoTagSnapshot" aria-label="${window.siyuan.languages.remove}"><svg><use xlink:href="#iconTrashcan"></use></svg></span>`;
|
||||||
} else if (type === "cloud") {
|
} else if (type === "getCloudRepoSnapshots") {
|
||||||
actionHTML = `<span class="b3-list-item__action b3-tooltips b3-tooltips__w" data-type="downloadSnapshot" aria-label="${window.siyuan.languages.download}"><svg><use xlink:href="#iconDownload"></use></svg></span>`;
|
actionHTML = `<span class="b3-list-item__action b3-tooltips b3-tooltips__w" data-type="downloadSnapshot" aria-label="${window.siyuan.languages.download}"><svg><use xlink:href="#iconDownload"></use></svg></span>`;
|
||||||
} else if (type === "localTag") {
|
} else if (type === "getRepoTagSnapshots") {
|
||||||
actionHTML = `<span class="b3-list-item__action b3-tooltips b3-tooltips__w" data-type="uploadSnapshot" aria-label="${window.siyuan.languages.upload}"><svg><use xlink:href="#iconUpload"></use></svg></span>
|
actionHTML = `<span class="b3-list-item__action b3-tooltips b3-tooltips__w" data-type="uploadSnapshot" aria-label="${window.siyuan.languages.upload}"><svg><use xlink:href="#iconUpload"></use></svg></span>
|
||||||
<span class="b3-list-item__action b3-tooltips b3-tooltips__w" data-type="rollback" aria-label="${window.siyuan.languages.rollback}"><svg><use xlink:href="#iconUndo"></use></svg></span>
|
<span class="b3-list-item__action b3-tooltips b3-tooltips__w" data-type="rollback" aria-label="${window.siyuan.languages.rollback}"><svg><use xlink:href="#iconUndo"></use></svg></span>
|
||||||
<span class="b3-list-item__action b3-tooltips b3-tooltips__w" data-type="removeRepoTagSnapshot" aria-label="${window.siyuan.languages.remove}"><svg><use xlink:href="#iconTrashcan"></use></svg></span>`;
|
<span class="b3-list-item__action b3-tooltips b3-tooltips__w" data-type="removeRepoTagSnapshot" aria-label="${window.siyuan.languages.remove}"><svg><use xlink:href="#iconTrashcan"></use></svg></span>`;
|
||||||
} else if (type === "local") {
|
} else if (type === "getRepoSnapshots") {
|
||||||
actionHTML = `<span class="b3-list-item__action b3-tooltips b3-tooltips__w" data-type="genTag" aria-label="${window.siyuan.languages.tagSnapshot}"><svg><use xlink:href="#iconTags"></use></svg></span>
|
actionHTML = `<span class="b3-list-item__action b3-tooltips b3-tooltips__w" data-type="genTag" aria-label="${window.siyuan.languages.tagSnapshot}"><svg><use xlink:href="#iconTags"></use></svg></span>
|
||||||
<span class="b3-list-item__action b3-tooltips b3-tooltips__w" data-type="rollback" aria-label="${window.siyuan.languages.rollback}"><svg><use xlink:href="#iconUndo"></use></svg></span>`;
|
<span class="b3-list-item__action b3-tooltips b3-tooltips__w" data-type="rollback" aria-label="${window.siyuan.languages.rollback}"><svg><use xlink:href="#iconUndo"></use></svg></span>`;
|
||||||
}
|
}
|
||||||
@ -133,47 +133,33 @@ const renderRepoItem = (response: IWebSocketData, element: Element, type: string
|
|||||||
};
|
};
|
||||||
|
|
||||||
const renderRepo = (element: Element, currentPage: number) => {
|
const renderRepo = (element: Element, currentPage: number) => {
|
||||||
|
const selectValue = (element.querySelector(".b3-select") as HTMLSelectElement).value
|
||||||
element.lastElementChild.innerHTML = '<li style="position: relative;height: 100%;"><div class="fn__loading"><img width="64px" src="/stage/loading-pure.svg"></div></li>';
|
element.lastElementChild.innerHTML = '<li style="position: relative;height: 100%;"><div class="fn__loading"><img width="64px" src="/stage/loading-pure.svg"></div></li>';
|
||||||
const previousElement = element.querySelector('[data-type="previous"]');
|
const previousElement = element.querySelector('[data-type="previous"]');
|
||||||
const nextElement = element.querySelector('[data-type="next"]');
|
const nextElement = element.querySelector('[data-type="next"]');
|
||||||
if (currentPage < 0) {
|
element.setAttribute("data-init", "true");
|
||||||
if (currentPage === -1) {
|
if (selectValue === "getRepoTagSnapshots" || selectValue === "getCloudRepoTagSnapshots") {
|
||||||
fetchPost("/api/repo/getRepoTagSnapshots", {}, (response) => {
|
fetchPost(`/api/repo/${selectValue}`, {}, (response) => {
|
||||||
renderRepoItem(response, element, "localTag");
|
renderRepoItem(response, element, selectValue);
|
||||||
});
|
});
|
||||||
} else if (currentPage === -2) {
|
|
||||||
fetchPost("/api/repo/getCloudRepoTagSnapshots", {}, (response) => {
|
|
||||||
renderRepoItem(response, element, "cloudTag");
|
|
||||||
});
|
|
||||||
} else if (currentPage === -3) {
|
|
||||||
fetchPost("/api/repo/getCloudRepoSnapshots", {page: currentPage}, (response) => {
|
|
||||||
if (currentPage < response.data.pageCount) {
|
|
||||||
nextElement.removeAttribute("disabled");
|
|
||||||
} else {
|
|
||||||
nextElement.setAttribute("disabled", "disabled");
|
|
||||||
}
|
|
||||||
renderRepoItem(response, element, "cloud");
|
|
||||||
});
|
|
||||||
}
|
|
||||||
previousElement.classList.add("fn__none");
|
previousElement.classList.add("fn__none");
|
||||||
nextElement.classList.add("fn__none");
|
nextElement.classList.add("fn__none");
|
||||||
} else {
|
} else {
|
||||||
previousElement.classList.remove("fn__none");
|
previousElement.classList.remove("fn__none");
|
||||||
nextElement.classList.remove("fn__none");
|
nextElement.classList.remove("fn__none");
|
||||||
element.setAttribute("data-init", "true");
|
|
||||||
element.setAttribute("data-page", currentPage.toString());
|
element.setAttribute("data-page", currentPage.toString());
|
||||||
if (currentPage > 1) {
|
if (currentPage > 1) {
|
||||||
previousElement.removeAttribute("disabled");
|
previousElement.removeAttribute("disabled");
|
||||||
} else {
|
} else {
|
||||||
previousElement.setAttribute("disabled", "disabled");
|
previousElement.setAttribute("disabled", "disabled");
|
||||||
}
|
}
|
||||||
fetchPost("/api/repo/getRepoSnapshots", {page: currentPage}, (response) => {
|
fetchPost(`/api/repo/${selectValue}`, {page: currentPage}, (response) => {
|
||||||
if (currentPage < response.data.pageCount) {
|
if (currentPage < response.data.pageCount) {
|
||||||
nextElement.removeAttribute("disabled");
|
nextElement.removeAttribute("disabled");
|
||||||
} else {
|
} else {
|
||||||
nextElement.setAttribute("disabled", "disabled");
|
nextElement.setAttribute("disabled", "disabled");
|
||||||
}
|
}
|
||||||
renderRepoItem(response, element, "local");
|
renderRepoItem(response, element, selectValue);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -294,10 +280,10 @@ export const openHistory = () => {
|
|||||||
<span data-type="next" class="block__icon block__icon--show b3-tooltips b3-tooltips__se" disabled="disabled" aria-label="${window.siyuan.languages.nextLabel}"><svg><use xlink:href='#iconRight'></use></svg></span>
|
<span data-type="next" class="block__icon block__icon--show b3-tooltips b3-tooltips__se" disabled="disabled" aria-label="${window.siyuan.languages.nextLabel}"><svg><use xlink:href='#iconRight'></use></svg></span>
|
||||||
<div class="fn__flex-1"></div>
|
<div class="fn__flex-1"></div>
|
||||||
<select class="b3-select" style="min-width: auto">
|
<select class="b3-select" style="min-width: auto">
|
||||||
<option value="0">${window.siyuan.languages.localSnapshot}</option>
|
<option value="getRepoSnapshots">${window.siyuan.languages.localSnapshot}</option>
|
||||||
<option value="1">${window.siyuan.languages.localTagSnapshot}</option>
|
<option value="getRepoTagSnapshots">${window.siyuan.languages.localTagSnapshot}</option>
|
||||||
<option value="3">${window.siyuan.languages.cloudSnapshot}</option>
|
<option value="getCloudRepoSnapshots">${window.siyuan.languages.cloudSnapshot}</option>
|
||||||
<option value="2">${window.siyuan.languages.cloudTagSnapshot}</option>
|
<option value="getCloudRepoTagSnapshots">${window.siyuan.languages.cloudTagSnapshot}</option>
|
||||||
</select>
|
</select>
|
||||||
<span class="fn__space"></span>
|
<span class="fn__space"></span>
|
||||||
<button class="b3-button b3-button--outline" disabled data-type="compare">${window.siyuan.languages.compare}</button>
|
<button class="b3-button b3-button--outline" disabled data-type="compare">${window.siyuan.languages.compare}</button>
|
||||||
@ -370,18 +356,9 @@ const bindEvent = (element: Element, dialog?: Dialog) => {
|
|||||||
});
|
});
|
||||||
disabledProtyle(historyEditor.protyle);
|
disabledProtyle(historyEditor.protyle);
|
||||||
const repoElement = element.querySelector('#historyContainer [data-type="repo"]');
|
const repoElement = element.querySelector('#historyContainer [data-type="repo"]');
|
||||||
const selectElement = repoElement.querySelector(".b3-select") as HTMLSelectElement;
|
const repoSelectElement = repoElement.querySelector(".b3-select") as HTMLSelectElement;
|
||||||
selectElement.addEventListener("change", () => {
|
repoSelectElement.querySelector(".b3-select").addEventListener("change", () => {
|
||||||
const value = selectElement.value;
|
renderRepo(repoElement, 1);
|
||||||
if (value === "0") {
|
|
||||||
renderRepo(repoElement, 1);
|
|
||||||
} else if (value === "1") {
|
|
||||||
renderRepo(repoElement, -1);
|
|
||||||
} else if (value === "2") {
|
|
||||||
renderRepo(repoElement, -2);
|
|
||||||
} else if (value === "3") {
|
|
||||||
renderRepo(repoElement, -3);
|
|
||||||
}
|
|
||||||
const btnElement = element.querySelector(".b3-button[data-type='compare']");
|
const btnElement = element.querySelector(".b3-button[data-type='compare']");
|
||||||
btnElement.setAttribute("disabled", "disabled");
|
btnElement.setAttribute("disabled", "disabled");
|
||||||
btnElement.removeAttribute("data-ids");
|
btnElement.removeAttribute("data-ids");
|
||||||
@ -474,7 +451,8 @@ const bindEvent = (element: Element, dialog?: Dialog) => {
|
|||||||
target.nextElementSibling.classList.toggle("fn__none");
|
target.nextElementSibling.classList.toggle("fn__none");
|
||||||
target.firstElementChild.firstElementChild.classList.toggle("b3-list-item__arrow--open");
|
target.firstElementChild.firstElementChild.classList.toggle("b3-list-item__arrow--open");
|
||||||
break;
|
break;
|
||||||
} else if (target.classList.contains("b3-list-item") && type === "repoitem") {
|
} else if (target.classList.contains("b3-list-item") && type === "repoitem" &&
|
||||||
|
["getRepoSnapshots", "getRepoTagSnapshots"].includes(repoSelectElement.value)) {
|
||||||
const btnElement = element.querySelector(".b3-button[data-type='compare']");
|
const btnElement = element.querySelector(".b3-button[data-type='compare']");
|
||||||
const idJSON = JSON.parse(btnElement.getAttribute("data-ids") || "[]");
|
const idJSON = JSON.parse(btnElement.getAttribute("data-ids") || "[]");
|
||||||
const id = target.getAttribute("data-id");
|
const id = target.getAttribute("data-id");
|
||||||
@ -563,7 +541,7 @@ const bindEvent = (element: Element, dialog?: Dialog) => {
|
|||||||
const tag = target.parentElement.getAttribute("data-tag");
|
const tag = target.parentElement.getAttribute("data-tag");
|
||||||
confirmDialog(window.siyuan.languages.deleteOpConfirm, `${window.siyuan.languages.confirmDelete} <i>${tag}</i>?`, () => {
|
confirmDialog(window.siyuan.languages.deleteOpConfirm, `${window.siyuan.languages.confirmDelete} <i>${tag}</i>?`, () => {
|
||||||
fetchPost("/api/repo/" + type, {tag}, () => {
|
fetchPost("/api/repo/" + type, {tag}, () => {
|
||||||
renderRepo(repoElement, type === "removeRepoTagSnapshot" ? -1 : -2);
|
renderRepo(repoElement, 1);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
@ -639,7 +617,7 @@ const bindEvent = (element: Element, dialog?: Dialog) => {
|
|||||||
historyEditor = undefined;
|
historyEditor = undefined;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
} else if (type === "compare") {
|
} else if (type === "compare" && !target.getAttribute("disabled")) {
|
||||||
showDiff(JSON.parse(target.getAttribute("data-ids") || "[]"));
|
showDiff(JSON.parse(target.getAttribute("data-ids") || "[]"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user