forked from enviPath/enviPy
Initial bayer app Show Pack Classification Adjusted docker compose to bayer specifics Adjusted Dockerfile for Bayer Adding secret flags to group, add secret pools to packages Adjusted View for Package creation Prep configs, added Package Create Modal wip More on PES wip wip
174 lines
4.4 KiB
HTML
174 lines
4.4 KiB
HTML
{% load static %}
|
|
|
|
<dialog
|
|
id="add_pathway_pes_node_modal"
|
|
class="modal"
|
|
x-data="{
|
|
isSubmitting: false,
|
|
pesLink: null,
|
|
pesVizHtml: '',
|
|
|
|
reset() {
|
|
this.isSubmitting = false;
|
|
},
|
|
|
|
get isPESSet() {
|
|
console.log(this.pesLink);
|
|
return this.pesLink !== null;
|
|
},
|
|
|
|
updatePesViz() {
|
|
if (!this.isPESSet) {
|
|
this.pesVizHtml = '';
|
|
return;
|
|
}
|
|
|
|
const img = new Image();
|
|
img.src = '{% url 'depict_pes' %}?pesLink=' + encodeURIComponent(this.pesLink);
|
|
img.style.width = '100%';
|
|
img.style.height = '100%';
|
|
img.style.objectFit = 'cover';
|
|
|
|
img.onload = () => {
|
|
this.pesVizHtml = img.outerHTML;
|
|
};
|
|
|
|
img.onerror = () => {
|
|
this.pesVizHtml = `
|
|
<div class='alert alert-error' role='alert'>
|
|
<h4 class='alert-heading'>Could not render PES!</h4>
|
|
<p>Could not render PES - Do you have access?</p>
|
|
</div>`;
|
|
};
|
|
},
|
|
|
|
submit(formId) {
|
|
const form = document.getElementById(formId);
|
|
|
|
// Remove previously injected inputs
|
|
form.querySelectorAll('.dynamic-param').forEach(el => el.remove());
|
|
|
|
// Add values from dynamic form into the html form
|
|
if (this.formData) {
|
|
Object.entries(this.formData).forEach(([key, value]) => {
|
|
const input = document.createElement('input');
|
|
input.type = 'hidden';
|
|
input.name = key;
|
|
input.value = value;
|
|
input.classList.add('dynamic-param');
|
|
|
|
form.appendChild(input);
|
|
});
|
|
}
|
|
|
|
if (form && form.checkValidity()) {
|
|
this.isSubmitting = true;
|
|
form.submit();
|
|
} else if (form) {
|
|
form.reportValidity();
|
|
}
|
|
}
|
|
}"
|
|
@close="reset()"
|
|
>
|
|
<div class="modal-box max-w-3xl">
|
|
<!-- Header -->
|
|
<h3 class="text-lg font-bold">New PES</h3>
|
|
|
|
<!-- Close button (X) -->
|
|
<form method="dialog">
|
|
<button
|
|
class="btn btn-sm btn-circle btn-ghost absolute top-2 right-2"
|
|
:disabled="isSubmitting"
|
|
>
|
|
✕
|
|
</button>
|
|
</form>
|
|
|
|
<!-- Body -->
|
|
<div class="py-4">
|
|
<form
|
|
id="new-pes-node-modal-form"
|
|
accept-charset="UTF-8"
|
|
action="{% url 'create pes node' current_object.package.uuid current_object.uuid %}"
|
|
method="post"
|
|
>
|
|
{% csrf_token %}
|
|
|
|
<div class="form-control mb-3">
|
|
<label class="label" for="compound-name">
|
|
<span class="label-text">Name</span>
|
|
</label>
|
|
<input
|
|
id="compound-name"
|
|
class="input input-bordered w-full"
|
|
name="compound-name"
|
|
placeholder="Name"
|
|
required
|
|
/>
|
|
</div>
|
|
|
|
<div class="form-control mb-3">
|
|
<label class="label" for="compound-description">
|
|
<span class="label-text">Description</span>
|
|
</label>
|
|
<input
|
|
id="compound-description"
|
|
class="input input-bordered w-full"
|
|
name="compound-description"
|
|
placeholder="Description"
|
|
/>
|
|
</div>
|
|
|
|
<div class="form-control mb-3">
|
|
<label class="label" for="pes-link">
|
|
<span class="label-text">Link to PES</span>
|
|
</label>
|
|
<input
|
|
id="pes-link"
|
|
name="pes-link"
|
|
type="text"
|
|
class="input input-bordered w-full"
|
|
placeholder="Link to PES e.g. https://pesregapp-test.cropkey-np.ag/entities/PES-000126"
|
|
x-model="pesLink"
|
|
@input="updatePesViz()"
|
|
required
|
|
/>
|
|
</div>
|
|
|
|
<div id="pes-viz" class="mb-3" x-html="pesVizHtml"></div>
|
|
|
|
</form>
|
|
</div>
|
|
|
|
<!-- Footer -->
|
|
<div class="modal-action">
|
|
<button
|
|
type="button"
|
|
class="btn"
|
|
onclick="this.closest('dialog').close()"
|
|
:disabled="isSubmitting"
|
|
>
|
|
Close
|
|
</button>
|
|
<button
|
|
type="button"
|
|
class="btn btn-primary"
|
|
@click="submit('new-pes-node-modal-form')"
|
|
:disabled="isSubmitting"
|
|
>
|
|
<span x-show="!isSubmitting">Submit</span>
|
|
<span
|
|
x-show="isSubmitting"
|
|
class="loading loading-spinner loading-sm"
|
|
></span>
|
|
<span x-show="isSubmitting">Creating...</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Backdrop -->
|
|
<form method="dialog" class="modal-backdrop">
|
|
<button :disabled="isSubmitting">close</button>
|
|
</form>
|
|
</dialog> |