diff --git a/frontend/src/components/Applications/ApplicationPlanModal.js b/frontend/src/components/Applications/ApplicationPlanModal.js index 7b0ef10..c9d4b01 100644 --- a/frontend/src/components/Applications/ApplicationPlanModal.js +++ b/frontend/src/components/Applications/ApplicationPlanModal.js @@ -27,16 +27,9 @@ const ApplicationPlanModal = ({ const [showSpreaderSettingsForm, setShowSpreaderSettingsForm] = useState(false); const [currentProductForSettings, setCurrentProductForSettings] = useState(null); const [spreaderFormData, setSpreaderFormData] = useState({ - setting1: '', - setting2: '', - setting3: '', - setting4: '', - setting5: '', - setting6: '', - setting7: '', - setting8: '', - setting9: '', - setting10: '' + setting: '', + rateDescription: '', + notes: '' }); // Calculate map center from property or sections @@ -277,20 +270,18 @@ const ApplicationPlanModal = ({ // Save spreader settings const saveSpreaderSettings = async () => { try { + if (!spreaderFormData.setting) { + toast.error('Please enter a setting value'); + return; + } + const payload = { productId: currentProductForSettings.isShared ? currentProductForSettings.id : null, userProductId: !currentProductForSettings.isShared ? currentProductForSettings.id : null, equipmentId: parseInt(selectedEquipmentId), - setting1: parseFloat(spreaderFormData.setting1) || null, - setting2: parseFloat(spreaderFormData.setting2) || null, - setting3: parseFloat(spreaderFormData.setting3) || null, - setting4: parseFloat(spreaderFormData.setting4) || null, - setting5: parseFloat(spreaderFormData.setting5) || null, - setting6: parseFloat(spreaderFormData.setting6) || null, - setting7: parseFloat(spreaderFormData.setting7) || null, - setting8: parseFloat(spreaderFormData.setting8) || null, - setting9: parseFloat(spreaderFormData.setting9) || null, - setting10: parseFloat(spreaderFormData.setting10) || null + setting1: parseFloat(spreaderFormData.setting), + rateDescription: spreaderFormData.rateDescription || null, + notes: spreaderFormData.notes || null }; const response = await fetch('/api/product-spreader-settings', { @@ -303,12 +294,13 @@ const ApplicationPlanModal = ({ }); if (response.ok) { - toast.success('Spreader settings saved successfully'); + toast.success('Spreader setting added successfully'); setShowSpreaderSettingsForm(false); setCurrentProductForSettings(null); setSpreaderFormData({ - setting1: '', setting2: '', setting3: '', setting4: '', setting5: '', - setting6: '', setting7: '', setting8: '', setting9: '', setting10: '' + setting: '', + rateDescription: '', + notes: '' }); } else { throw new Error('Failed to save spreader settings'); @@ -866,32 +858,66 @@ const ApplicationPlanModal = ({ {/* Spreader Settings Form Modal */} {showSpreaderSettingsForm && currentProductForSettings && (
-
-

Add Spreader Settings

-

- No spreader settings found for "{currentProductForSettings.name}" with the selected equipment. - Please add the spreader settings for accurate calculations. -

+
+

Add New Setting

-
- {Array.from({ length: 10 }, (_, i) => i + 1).map(num => ( -
- - setSpreaderFormData(prev => ({ - ...prev, - [`setting${num}`]: e.target.value - }))} - className="w-full border border-gray-300 rounded px-3 py-2" - placeholder={`Setting ${num} value`} - /> -
- ))} + {/* Equipment Dropdown */} +
+ +
+ + {/* Setting Input */} +
+ setSpreaderFormData(prev => ({ + ...prev, + setting: e.target.value + }))} + className="w-full border border-green-400 rounded px-3 py-2 focus:outline-none focus:border-green-500" + placeholder="Setting (e.g., #14, 2.5)" + /> +
+ + {/* Rate Description */} +
+ setSpreaderFormData(prev => ({ + ...prev, + rateDescription: e.target.value + }))} + className="w-full border border-gray-300 rounded px-3 py-2" + placeholder="Rate description (optional)" + /> +
+ + {/* Notes */} +
+