Persist scrape database write permissions

This commit is contained in:
2026-08-05 23:24:49 +02:00
parent 67753fb025
commit 19c6ee90e1
4 changed files with 24 additions and 8 deletions
+3 -3
View File
@@ -77,7 +77,7 @@ window.fetch = (input, init = {}) => {
const headers = new Headers(init.headers || (typeof input !== "string" ? input.headers : undefined));
const selectedMode = localStorage.getItem("catalog-maker:database-mode") || "local";
const permissions = readDatabasePermissions(selectedMode);
const localWritesEnabled = selectedMode === "local" && [
const localWritesEnabled = ["local", "scrape"].includes(selectedMode) && [
permissions.allowInsertToggle,
permissions.allowUpdateToggle,
permissions.allowDeleteToggle,
@@ -1181,7 +1181,7 @@ function syncLocalDbFields(mode) {
localDbFields.hidden = mode !== "local";
}
function syncDatabasePermissions(mode) {
const isReadOnly = mode === "live" || mode === "scrape";
const isReadOnly = mode === "live";
for (const input of permissionInputs) {
input.disabled = isReadOnly;
if (isReadOnly)
@@ -1205,7 +1205,7 @@ function refreshDatabaseStatusLabel() {
const mode = localStorage.getItem("catalog-maker:database-mode") || "local";
const transactionMode = localStorage.getItem("catalog-maker:transaction-mode") || "transaction";
const permissions = readDatabasePermissions(mode);
const writesEnabled = mode === "local" && (permissions.allowInsertToggle || permissions.allowUpdateToggle || permissions.allowDeleteToggle);
const writesEnabled = ["local", "scrape"].includes(mode) && (permissions.allowInsertToggle || permissions.allowUpdateToggle || permissions.allowDeleteToggle);
const dbLabel = mode === "live" ? "Live 9bplus DB" : mode === "scrape" ? "Local scrape DB" : "Local 9bplus DB";
const configuredDriver = databaseStatus.dataset.driver;
const connectionError = (mode === "local" && configuredDriver !== "mariadb")
+3 -3
View File
@@ -78,7 +78,7 @@ window.fetch = (input, init = {}) => {
const headers = new Headers(init.headers || (typeof input !== "string" ? input.headers : undefined));
const selectedMode = localStorage.getItem("catalog-maker:database-mode") || "local";
const permissions = readDatabasePermissions(selectedMode);
const localWritesEnabled = selectedMode === "local" && [
const localWritesEnabled = ["local", "scrape"].includes(selectedMode) && [
permissions.allowInsertToggle,
permissions.allowUpdateToggle,
permissions.allowDeleteToggle,
@@ -1270,7 +1270,7 @@ function syncLocalDbFields(mode) {
}
function syncDatabasePermissions(mode) {
const isReadOnly = mode === "live" || mode === "scrape";
const isReadOnly = mode === "live";
for (const input of permissionInputs) {
input.disabled = isReadOnly;
if (isReadOnly) input.checked = false;
@@ -1294,7 +1294,7 @@ function refreshDatabaseStatusLabel() {
const mode = localStorage.getItem("catalog-maker:database-mode") || "local";
const transactionMode = localStorage.getItem("catalog-maker:transaction-mode") || "transaction";
const permissions = readDatabasePermissions(mode);
const writesEnabled = mode === "local" && (
const writesEnabled = ["local", "scrape"].includes(mode) && (
permissions.allowInsertToggle || permissions.allowUpdateToggle || permissions.allowDeleteToggle
);
const dbLabel = mode === "live" ? "Live 9bplus DB" : mode === "scrape" ? "Local scrape DB" : "Local 9bplus DB";
+1 -1
View File
@@ -259,7 +259,7 @@
<input type="checkbox" id="allowDeleteToggle" />
<span>Allow delete</span>
</label>
<p class="settings-note">Write permissions are saved only for Local 9bplus DB. Live and scrape DB stay read-only here.</p>
<p class="settings-note">Write permissions are saved separately for Local 9bplus DB and Local scrape DB. Live DB stays read-only.</p>
</fieldset>
<fieldset class="settings-group">