MCPcopy Create free account
hub / github.com/TechJeeper/Printventory / autoSaveMultipleModels

Function autoSaveMultipleModels

renderer.js:16969–17109  ·  view source on GitHub ↗
(field, value, options = {})

Source from the content-addressed store, hash-verified

16967 const multiEditPanel = document.getElementById('multi-edit-panel');
16968 const detailsPanel = document.getElementById('model-details');
16969
16970 if (!isMultiSelectMode && selectedModels.size > 0) {
16971 isMultiSelectMode = true;
16972
16973 // Update UI to reflect multi-select mode
16974 if (button) {
16975 button.textContent = 'Exit Multi-Edit Mode';
16976 button.classList.add('active');
16977 }
16978 if (multiEditPanel) {
16979 multiEditPanel.classList.remove('hidden');
16980 }
16981 if (detailsPanel) {
16982 detailsPanel.classList.add('hidden');
16983 }
16984
16985 // Populate dropdowns for multi-edit
16986 try {
16987 await populateModelDesignerDropdown(null, 'multi-designer');
16988 await populateModelLicenseDropdown(null, 'multi-license');
16989 await populateParentModelDropdown(null, 'multi-parent');
16990 await populateTagSelect('multi-tag-select', 'multi-tags');
16991 await populateRemoveTagSelect();
16992 } catch (error) {
16993 console.error('Error populating multi-edit dropdowns:', error);
16994 }
16995
16996 if (multiEditPanel) {
16997 multiEditPanel.scrollIntoView({ behavior: 'smooth', block: 'start' });
16998 }
16999 }
17000 }
17001});
17002
17003// Update populateModelDesignerDropdown to handle multiple dropdowns
17004async function populateModelDesignerDropdown(selectedDesigner, elementId = 'model-designer') {
17005 const designerSelect = document.getElementById(elementId);
17006 if (!designerSelect) return;
17007
17008 designerSelect.innerHTML = '<option value="">Select Designer</option>';
17009
17010 try {
17011 const designers = await window.electron.getDesigners();
17012 designers.forEach(designer => {
17013 if (designer) { // Only add non-empty designers
17014 const option = document.createElement('option');
17015 option.value = designer;
17016 option.textContent = designer;
17017 if (designer === selectedDesigner) {
17018 option.selected = true;
17019 }
17020 designerSelect.appendChild(option);
17021 }
17022 });
17023 } catch (error) {
17024 console.error('Error fetching designers:', error);
17025 }
17026}

Callers 6

renderer.jsFile · 0.85
refreshMultiEditTagsFunction · 0.85
addTagToModelFunction · 0.85
handleItemClickFunction · 0.85
showMultiEditPanelFunction · 0.85
handlePrintedChangeFunction · 0.85

Calls 1

Tested by

no test coverage detected