@@ -340,6 +340,12 @@ export const bazaar = {
`;
});
bazaar._data.downloaded = response.data.packages;
+ if (bazaarType === "plugins") {
+ html = `
${html}`;
+ }
contentElement.innerHTML = html ? html : `
- ${window.siyuan.languages.emptyContent}
`;
});
},
@@ -478,7 +484,10 @@ export const bazaar = {
bindEvent(app: App) {
if (!window.siyuan.config.bazaar.trust) {
bazaar.element.querySelector("button").addEventListener("click", () => {
- fetchPost("/api/setting/setBazaar", {trust: true}, () => {
+ fetchPost("/api/setting/setBazaar", {
+ trust: true,
+ petalDisabled: window.siyuan.config.bazaar.petalDisabled
+ }, () => {
window.siyuan.config.bazaar.trust = true;
bazaar.element.innerHTML = bazaar.genHTML();
bazaar.bindEvent(app);
@@ -511,9 +520,8 @@ export const bazaar = {
event.stopPropagation();
break;
} else if (["myTheme", "myTemplate", "myIcon", "myWidget", "myPlugin"].includes(type)) {
- const contentElement = bazaar.element.querySelector("#configBazaarDownloaded");
if (target.classList.contains("b3-button--outline") &&
- !contentElement.getAttribute("data-loading")) {
+ !bazaar.element.querySelector("#configBazaarDownloaded").getAttribute("data-loading")) {
target.parentElement.childNodes.forEach((item: HTMLElement) => {
if (item.nodeType !== 3 && item.classList.contains("b3-button")) {
item.classList.add("b3-button--outline");
@@ -716,6 +724,31 @@ export const bazaar = {
event.preventDefault();
event.stopPropagation();
break;
+ } else if (type === "plugins-enable") {
+ if (!target.getAttribute("disabled")) {
+ target.setAttribute("disabled", "disabled");
+ window.siyuan.config.bazaar.petalDisabled = !(target as HTMLInputElement).checked;
+ fetchPost("/api/setting/setBazaar", window.siyuan.config.bazaar, (response) => {
+ target.removeAttribute("disabled");
+ if (window.siyuan.config.bazaar.petalDisabled) {
+ bazaar.element.querySelectorAll("#configBazaarDownloaded .b3-card").forEach(item => {
+ item.classList.add("b3-card--disabled");
+ uninstall(app, JSON.parse(item.getAttribute("data-obj")).name);
+ })
+ } else {
+ bazaar.element.querySelectorAll("#configBazaarDownloaded .b3-card").forEach(item => {
+ item.classList.remove("b3-card--disabled");
+ })
+ loadPlugins(app).then(() => {
+ app.plugins.forEach(item => {
+ afterLoadPlugin(item);
+ });
+ });
+ }
+ });
+ }
+ event.stopPropagation();
+ break;
} else if (type === "plugin-enable") {
if (!target.getAttribute("disabled")) {
target.setAttribute("disabled", "disabled");
diff --git a/app/src/types/index.d.ts b/app/src/types/index.d.ts
index 1c3375ed1..4251143b2 100644
--- a/app/src/types/index.d.ts
+++ b/app/src/types/index.d.ts
@@ -497,6 +497,7 @@ interface IConfig {
cloudRegion: number
bazaar: {
trust: boolean
+ petalDisabled: boolean
}
repo: {
key: string