Persist selected manufacturer across reloads
This commit is contained in:
@@ -75,6 +75,7 @@ let loadRequestId = 0;
|
|||||||
let applicationMode = "dry-run";
|
let applicationMode = "dry-run";
|
||||||
let databaseConnectionState = "unknown";
|
let databaseConnectionState = "unknown";
|
||||||
const localDraftKey = "catalog-maker:current-product-draft:v2";
|
const localDraftKey = "catalog-maker:current-product-draft:v2";
|
||||||
|
const selectedManufacturerKey = "catalog-maker:selected-manufacturer";
|
||||||
let localDraftProductKey = "";
|
let localDraftProductKey = "";
|
||||||
const fieldNames = [
|
const fieldNames = [
|
||||||
"id_manufacturer",
|
"id_manufacturer",
|
||||||
@@ -146,6 +147,12 @@ await loadManufacturers();
|
|||||||
await loadLanguages();
|
await loadLanguages();
|
||||||
languageSelect.addEventListener("change", syncLanguagePickerLabel);
|
languageSelect.addEventListener("change", syncLanguagePickerLabel);
|
||||||
manufacturerSelect.addEventListener("change", () => {
|
manufacturerSelect.addEventListener("change", () => {
|
||||||
|
if (manufacturerSelect.value) {
|
||||||
|
localStorage.setItem(selectedManufacturerKey, manufacturerSelect.value);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
localStorage.removeItem(selectedManufacturerKey);
|
||||||
|
}
|
||||||
syncManufacturerPickerLabel();
|
syncManufacturerPickerLabel();
|
||||||
closeManufacturerPicker();
|
closeManufacturerPicker();
|
||||||
if (manufacturerSelect.value) {
|
if (manufacturerSelect.value) {
|
||||||
@@ -289,15 +296,29 @@ async function loadManufacturers() {
|
|||||||
}
|
}
|
||||||
if (data.message)
|
if (data.message)
|
||||||
manufacturerSelect.append(createOption("", data.message));
|
manufacturerSelect.append(createOption("", data.message));
|
||||||
|
restoreSelectedManufacturer();
|
||||||
syncManufacturerPickerLabel();
|
syncManufacturerPickerLabel();
|
||||||
renderManufacturerOptions();
|
renderManufacturerOptions();
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
manufacturerSelect.append(createOption("", error.message || "Local DB is not configured."));
|
manufacturerSelect.append(createOption("", error.message || "Local DB is not configured."));
|
||||||
|
restoreSelectedManufacturer();
|
||||||
syncManufacturerPickerLabel();
|
syncManufacturerPickerLabel();
|
||||||
renderManufacturerOptions();
|
renderManufacturerOptions();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
function restoreSelectedManufacturer() {
|
||||||
|
const savedManufacturerId = localStorage.getItem(selectedManufacturerKey);
|
||||||
|
if (!savedManufacturerId)
|
||||||
|
return;
|
||||||
|
const savedOption = [...manufacturerSelect.options].find((option) => option.value === savedManufacturerId);
|
||||||
|
if (savedOption) {
|
||||||
|
manufacturerSelect.value = savedManufacturerId;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
localStorage.removeItem(selectedManufacturerKey);
|
||||||
|
}
|
||||||
|
}
|
||||||
function toggleManufacturerPicker() {
|
function toggleManufacturerPicker() {
|
||||||
if (manufacturerMenu.hidden) {
|
if (manufacturerMenu.hidden) {
|
||||||
manufacturerMenu.hidden = false;
|
manufacturerMenu.hidden = false;
|
||||||
|
|||||||
@@ -77,6 +77,7 @@ let loadRequestId = 0;
|
|||||||
let applicationMode = "dry-run";
|
let applicationMode = "dry-run";
|
||||||
let databaseConnectionState = "unknown";
|
let databaseConnectionState = "unknown";
|
||||||
const localDraftKey = "catalog-maker:current-product-draft:v2";
|
const localDraftKey = "catalog-maker:current-product-draft:v2";
|
||||||
|
const selectedManufacturerKey = "catalog-maker:selected-manufacturer";
|
||||||
let localDraftProductKey = "";
|
let localDraftProductKey = "";
|
||||||
|
|
||||||
const fieldNames = [
|
const fieldNames = [
|
||||||
@@ -153,6 +154,11 @@ await loadLanguages();
|
|||||||
languageSelect.addEventListener("change", syncLanguagePickerLabel);
|
languageSelect.addEventListener("change", syncLanguagePickerLabel);
|
||||||
|
|
||||||
manufacturerSelect.addEventListener("change", () => {
|
manufacturerSelect.addEventListener("change", () => {
|
||||||
|
if (manufacturerSelect.value) {
|
||||||
|
localStorage.setItem(selectedManufacturerKey, manufacturerSelect.value);
|
||||||
|
} else {
|
||||||
|
localStorage.removeItem(selectedManufacturerKey);
|
||||||
|
}
|
||||||
syncManufacturerPickerLabel();
|
syncManufacturerPickerLabel();
|
||||||
closeManufacturerPicker();
|
closeManufacturerPicker();
|
||||||
if (manufacturerSelect.value) {
|
if (manufacturerSelect.value) {
|
||||||
@@ -302,15 +308,31 @@ async function loadManufacturers() {
|
|||||||
manufacturerSelect.append(createOption(String(manufacturer.id), manufacturer.name));
|
manufacturerSelect.append(createOption(String(manufacturer.id), manufacturer.name));
|
||||||
}
|
}
|
||||||
if (data.message) manufacturerSelect.append(createOption("", data.message));
|
if (data.message) manufacturerSelect.append(createOption("", data.message));
|
||||||
|
restoreSelectedManufacturer();
|
||||||
syncManufacturerPickerLabel();
|
syncManufacturerPickerLabel();
|
||||||
renderManufacturerOptions();
|
renderManufacturerOptions();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
manufacturerSelect.append(createOption("", error.message || "Local DB is not configured."));
|
manufacturerSelect.append(createOption("", error.message || "Local DB is not configured."));
|
||||||
|
restoreSelectedManufacturer();
|
||||||
syncManufacturerPickerLabel();
|
syncManufacturerPickerLabel();
|
||||||
renderManufacturerOptions();
|
renderManufacturerOptions();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function restoreSelectedManufacturer() {
|
||||||
|
const savedManufacturerId = localStorage.getItem(selectedManufacturerKey);
|
||||||
|
if (!savedManufacturerId) return;
|
||||||
|
|
||||||
|
const savedOption = [...manufacturerSelect.options].find(
|
||||||
|
(option) => option.value === savedManufacturerId,
|
||||||
|
);
|
||||||
|
if (savedOption) {
|
||||||
|
manufacturerSelect.value = savedManufacturerId;
|
||||||
|
} else {
|
||||||
|
localStorage.removeItem(selectedManufacturerKey);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function toggleManufacturerPicker() {
|
function toggleManufacturerPicker() {
|
||||||
if (manufacturerMenu.hidden) {
|
if (manufacturerMenu.hidden) {
|
||||||
manufacturerMenu.hidden = false;
|
manufacturerMenu.hidden = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user