diff --git a/src/main/java/tech/ailef/dbadmin/dbmapping/AdvancedJpaRepository.java b/src/main/java/tech/ailef/dbadmin/dbmapping/AdvancedJpaRepository.java index e5db4ba..e28a83c 100644 --- a/src/main/java/tech/ailef/dbadmin/dbmapping/AdvancedJpaRepository.java +++ b/src/main/java/tech/ailef/dbadmin/dbmapping/AdvancedJpaRepository.java @@ -162,6 +162,11 @@ public class AdvancedJpaRepository extends SimpleJpaRepository { for (DbField field : schema.getSortedFields()) { if (field.isPrimaryKey()) continue; + if (params.getOrDefault("__keep_" + field.getJavaName(), "off").equals("on")) { + System.out.println("SKIPPING: " + field); + continue; + } + String stringValue = params.get(field.getName()); Object value = null; if (stringValue != null && stringValue.isBlank()) stringValue = null; @@ -169,7 +174,7 @@ public class AdvancedJpaRepository extends SimpleJpaRepository { value = field.getType().parseValue(stringValue); } else { try { - MultipartFile file = files.get(field.getJavaName()); + MultipartFile file = files.get(field.getName()); if (file != null) value = file.getBytes(); } catch (IOException e) { diff --git a/src/main/java/tech/ailef/dbadmin/dbmapping/DbObject.java b/src/main/java/tech/ailef/dbadmin/dbmapping/DbObject.java index 88ad372..801b887 100644 --- a/src/main/java/tech/ailef/dbadmin/dbmapping/DbObject.java +++ b/src/main/java/tech/ailef/dbadmin/dbmapping/DbObject.java @@ -147,26 +147,6 @@ public class DbObject { } } -// public void initializeFromMap(Map values) { -//// String pkValue = values.get(schema.getPrimaryKey().getName()); -// -// List fields = -// values.keySet().stream().filter(f -> !f.startsWith("__dbadmin_")).collect(Collectors.toList()); -// -// for (String field : fields) { -// String fieldJavaName = Utils.snakeToCamel(field); -// Method setter = findSetter(fieldJavaName); -// if (setter == null) -// throw new DbAdminException("Unable to find setter for field " + fieldJavaName + " in class " + schema.getClassName()); -// -// try { -// setter.invoke(instance, values.get(field)); -// } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { -// throw new DbAdminException(e); -// } -// } -// } - public void set(String fieldName, Object value) { Method setter = findSetter(fieldName); diff --git a/src/main/resources/static/js/create.js b/src/main/resources/static/js/create.js new file mode 100644 index 0000000..71506a5 --- /dev/null +++ b/src/main/resources/static/js/create.js @@ -0,0 +1,28 @@ +document.addEventListener("DOMContentLoaded", () => { + let checkboxes = document.querySelectorAll(".binary-field-checkbox"); + + checkboxes.forEach(checkbox => { + let fieldName = checkbox.dataset.fieldname; + + if (!checkbox.checked) { + document.querySelector(`input[name="${fieldName}"]`).classList.add('d-block'); + document.querySelector(`input[name="${fieldName}"]`).classList.remove('d-none'); + document.querySelector(`input[name="${fieldName}"]`).value = ''; + } else { + document.querySelector(`input[name="${fieldName}"]`).classList.add('d-none'); + document.querySelector(`input[name="${fieldName}"]`).classList.remove('d-block'); + } + + checkbox.addEventListener('change', function(e) { + if (!e.target.checked) { + document.querySelector(`input[name="${fieldName}"]`).classList.add('d-block'); + document.querySelector(`input[name="${fieldName}"]`).classList.remove('d-none'); + document.querySelector(`input[name="${fieldName}"]`).value = ''; + } else { + document.querySelector(`input[name="${fieldName}"]`).classList.add('d-none'); + document.querySelector(`input[name="${fieldName}"]`).classList.remove('d-block'); + } + + }); + }); +}); \ No newline at end of file diff --git a/src/main/resources/templates/fragments/data_row.html b/src/main/resources/templates/fragments/data_row.html index f52960b..872c2cc 100644 --- a/src/main/resources/templates/fragments/data_row.html +++ b/src/main/resources/templates/fragments/data_row.html @@ -62,7 +62,7 @@ + th:href="|/dbadmin/download/${schema.getJavaClass().getName()}/${field.getJavaName()}/${object.get(schema.getPrimaryKey()).getValue()}|"> Download ([[ ${object.get(field).getValue().length} ]] bytes) diff --git a/src/main/resources/templates/fragments/resources.html b/src/main/resources/templates/fragments/resources.html index fbd511e..fbfca31 100644 --- a/src/main/resources/templates/fragments/resources.html +++ b/src/main/resources/templates/fragments/resources.html @@ -10,6 +10,7 @@ + diff --git a/src/main/resources/templates/model/create.html b/src/main/resources/templates/model/create.html index bbb942d..c4654ed 100644 --- a/src/main/resources/templates/model/create.html +++ b/src/main/resources/templates/model/create.html @@ -39,15 +39,14 @@ : (object != null ? object.traverse(field).getPrimaryKeyValue() : '' ) })}"> - - - + Binary field flag + +
+ + Keep current data +
+ +