mirror of
https://github.com/grocy/grocy.git
synced 2026-04-05 12:26:15 +02:00
Fixed all reported errors, deduped some code in the picker components. However, these edits were small enough that I'm positive they work.
160 lines
4.5 KiB
JavaScript
160 lines
4.5 KiB
JavaScript
import { RandomString } from '../helpers/extensions';
|
|
import { ResizeResponsiveEmbeds } from '../helpers/embeds';
|
|
|
|
$('#save-equipment-button').on('click', function(e)
|
|
{
|
|
e.preventDefault();
|
|
|
|
if ($(".combobox-menu-visible").length)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var jsonData = $('#equipment-form').serializeJSON();
|
|
Grocy.FrontendHelpers.BeginUiBusy("equipment-form");
|
|
|
|
if ($("#instruction-manual")[0].files.length > 0)
|
|
{
|
|
var someRandomStuff = RandomString();
|
|
jsonData.instruction_manual_file_name = someRandomStuff + $("#instruction-manual")[0].files[0].name;
|
|
}
|
|
|
|
if (Grocy.DeleteInstructionManualOnSave)
|
|
{
|
|
jsonData.instruction_manual_file_name = null;
|
|
}
|
|
|
|
if (Grocy.EditMode === 'create')
|
|
{
|
|
Grocy.Api.Post('objects/equipment', jsonData,
|
|
function(result)
|
|
{
|
|
Grocy.EditObjectId = result.created_object_id;
|
|
Grocy.Components.UserfieldsForm.Save(function()
|
|
{
|
|
// https://eslint.org/docs/rules/no-prototype-builtins
|
|
if (Object.prototype.hasOwnProperty.call(jsonData, "instruction_manual_file_name") && !Grocy.DeleteInstructionManualOnSave)
|
|
{
|
|
Grocy.Api.UploadFile($("#instruction-manual")[0].files[0], 'equipmentmanuals', jsonData.instruction_manual_file_name,
|
|
function(result)
|
|
{
|
|
window.location.href = U('/equipment');
|
|
},
|
|
function(xhr)
|
|
{
|
|
Grocy.FrontendHelpers.EndUiBusy("equipment-form");
|
|
Grocy.FrontendHelpers.ShowGenericError('Error while saving, probably this item already exists', xhr.response)
|
|
}
|
|
);
|
|
}
|
|
else
|
|
{
|
|
window.location.href = U('/equipment');
|
|
}
|
|
});
|
|
},
|
|
function(xhr)
|
|
{
|
|
Grocy.FrontendHelpers.EndUiBusy("equipment-form");
|
|
Grocy.FrontendHelpers.ShowGenericError('Error while saving, probably this item already exists', xhr.response)
|
|
}
|
|
);
|
|
}
|
|
else
|
|
{
|
|
if (Grocy.DeleteInstructionManualOnSave)
|
|
{
|
|
Grocy.Api.DeleteFile(Grocy.InstructionManualFileNameName, 'equipmentmanuals', {},
|
|
function(result)
|
|
{
|
|
// Nothing to do
|
|
},
|
|
function(xhr)
|
|
{
|
|
Grocy.FrontendHelpers.EndUiBusy("equipment-form");
|
|
Grocy.FrontendHelpers.ShowGenericError('Error while saving, probably this item already exists', xhr.response)
|
|
}
|
|
);
|
|
}
|
|
|
|
Grocy.Api.Put('objects/equipment/' + Grocy.EditObjectId, jsonData,
|
|
function(result)
|
|
{
|
|
Grocy.Components.UserfieldsForm.Save(function()
|
|
{
|
|
if (Object.prototype.hasOwnProperty.call(jsonData, "instruction_manual_file_name") && !Grocy.DeleteInstructionManualOnSave)
|
|
{
|
|
Grocy.Api.UploadFile($("#instruction-manual")[0].files[0], 'equipmentmanuals', jsonData.instruction_manual_file_name,
|
|
function(result)
|
|
{
|
|
window.location.href = U('/equipment');
|
|
},
|
|
function(xhr)
|
|
{
|
|
Grocy.FrontendHelpers.EndUiBusy("equipment-form");
|
|
Grocy.FrontendHelpers.ShowGenericError('Error while saving, probably this item already exists', xhr.response)
|
|
}
|
|
);
|
|
}
|
|
else
|
|
{
|
|
window.location.href = U('/equipment');
|
|
}
|
|
});
|
|
},
|
|
function(xhr)
|
|
{
|
|
Grocy.FrontendHelpers.EndUiBusy("equipment-form");
|
|
Grocy.FrontendHelpers.ShowGenericError('Error while saving, probably this item already exists', xhr.response)
|
|
}
|
|
);
|
|
}
|
|
});
|
|
|
|
$('#equipment-form input').keyup(function(event)
|
|
{
|
|
Grocy.FrontendHelpers.ValidateForm('equipment-form');
|
|
});
|
|
|
|
$('#equipment-form input').keydown(function(event)
|
|
{
|
|
if (event.keyCode === 13) //Enter
|
|
{
|
|
event.preventDefault();
|
|
|
|
if (document.getElementById('equipment-form').checkValidity() === false) //There is at least one validation error
|
|
{
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
$('#save-equipment-button').click();
|
|
}
|
|
}
|
|
});
|
|
|
|
Grocy.DeleteInstructionManualOnSave = false;
|
|
$('#delete-current-instruction-manual-button').on('click', function(e)
|
|
{
|
|
Grocy.DeleteInstructionManualOnSave = true;
|
|
$("#current-equipment-instruction-manual").addClass("d-none");
|
|
$("#delete-current-instruction-manual-on-save-hint").removeClass("d-none");
|
|
$("#delete-current-instruction-manual-button").addClass("disabled");
|
|
$("#instruction-manual-label").addClass("d-none");
|
|
$("#instruction-manual-label-none").removeClass("d-none");
|
|
});
|
|
ResizeResponsiveEmbeds();
|
|
|
|
Grocy.Components.UserfieldsForm.Load();
|
|
$('#name').focus();
|
|
Grocy.FrontendHelpers.ValidateForm('equipment-form');
|
|
|
|
$("#instruction-manual").on("change", function(e)
|
|
{
|
|
$("#instruction-manual-label").removeClass("d-none");
|
|
$("#instruction-manual-label-none").addClass("d-none");
|
|
$("#delete-current-instruction-manual-on-save-hint").addClass("d-none");
|
|
$("#current-instruction-manuale").addClass("d-none");
|
|
Grocy.DeleteProductPictureOnSave = false;
|
|
});
|