[Feature] External Identifier/References

Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#139
This commit is contained in:
2025-10-02 00:40:00 +13:00
parent 3f5bb76633
commit 7ad4112343
19 changed files with 9257 additions and 19 deletions

View File

@ -15,12 +15,12 @@
{% csrf_token %}
<p>
<label for="compound-structure-name">Name</label>
<input id="compound-structure-name" class="form-control" name="compound-structure-name" value="{{ structure.name }}">
<input id="compound-structure-name" class="form-control" name="compound-structure-name" value="{{ compound_structure.name }}">
</p>
<p>
<label for="compound-structure-description">Description</label>
<input id="compound-structure-description" type="text" class="form-control"
value="{{ structure.description }}" name="compound-structure-description">
value="{{ compound_structure.description }}" name="compound-structure-description">
</p>
</form>
</div>

View File

@ -23,6 +23,8 @@
</select>
<input type="hidden" name="hidden" value="copy">
</form>
<div id="copy-object-error-message" class="alert alert-danger" role="alert" style="display: none">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
@ -38,6 +40,7 @@
$('#generic-copy-object-modal-form-submit').click(function (e) {
e.preventDefault();
$('#copy-object-error-message').hide()
const packageUrl = $('#target-package').find(":selected").val();
@ -49,12 +52,22 @@
object_to_copy: '{{ current_object.url }}',
}
$.post(packageUrl, formData, function (response) {
if (response.success) {
window.location.href = response.success;
$.ajax({
type: 'post',
data: formData,
url: packageUrl,
success: function (data, textStatus) {
window.location.href = data.success;
},
error: function (jqXHR, textStatus, errorThrown) {
if (jqXHR.responseJSON.error.indexOf('to the same package') > -1) {
$('#copy-object-error-message').append('<p>The target Package is the same as the source Package. Please select another target!</p>');
} else {
$('#copy-object-error-message').append('<p>' + jqXHR.responseJSON.error + '</p>');
}
$('#copy-object-error-message').show();
}
});
});
})

View File

@ -0,0 +1,60 @@
{% load static %}
<!-- Delete Object -->
<div id="generic_set_external_reference_modal" class="modal" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h3 class="modal-title">Add External References</h3>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form id="generic-set-external-reference-modal-form" accept-charset="UTF-8"
action="{{ current_object.url }}"
data-remote="true" method="post">
{% csrf_token %}
<label for="database-select">Select the Database you want to attach an External Reference
for</label>
<select id="database-select" name="selected-database" data-actions-box='true' class="form-control"
data-width='100%'>
<option disabled selected>Select Database</option>
{% for entity, databases in meta.external_databases.items %}
{% if entity == object_type %}
{% for db in databases %}
<option id="db-select-{{ db.database.pk }}" data-input-placeholder="{{ db.placeholder }}"
value="{{ db.database.id }}">{{ db.database.name }}</option>`
{% endfor %}
{% endif %}
{% endfor %}
</select>
<p></p>
<div id="input-div" style="display: none">
<label for="identifier" >The reference</label>
<input type="text" id="identifier" name="identifier" class="form-control" placeholder="">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary" id="generic-set-external-reference-modal-form-submit">Submit</button>
</div>
</div>
</div>
</div>
<script>
$(function () {
$("#database-select").on("change", function () {
let selected = $(this).val();
$("#identifier").attr("placeholder", $('#db-select-' + selected).data('input-placeholder'));
$("#input-div").show();
});
$('#generic-set-external-reference-modal-form-submit').click(function (e) {
e.preventDefault();
$('#generic-set-external-reference-modal-form').submit();
});
})
</script>