mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-24 02:38:50 +02:00
Use stimulus collection controller for partLots
This commit is contained in:
parent
537b7fad7f
commit
66b7b2e9bf
6 changed files with 41 additions and 59 deletions
|
@ -1,6 +1,7 @@
|
||||||
import {Controller} from "@hotwired/stimulus";
|
import {Controller} from "@hotwired/stimulus";
|
||||||
|
|
||||||
import * as bootbox from "bootbox";
|
import * as bootbox from "bootbox";
|
||||||
|
import "../../css/bootbox_extensions.css";
|
||||||
|
|
||||||
export default class extends Controller
|
export default class extends Controller
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{% form_theme form with ['Parts/edit/edit_form_styles.html.twig', "bootstrap_4_layout.html.twig"] %}
|
{% form_theme form with ['Parts/edit/edit_form_styles.html.twig'] %}
|
||||||
|
|
||||||
{% import 'components/collection_type.macro.html.twig' as collection %}
|
{% import 'components/collection_type.macro.html.twig' as collection %}
|
||||||
|
|
||||||
<div {{ collection.controller(form, 'parameter.delete.confirm') }}>
|
<div {{ collection.controller(form.parameters, 'parameter.delete.confirm') }}>
|
||||||
<table class="table table-striped table-sm table-bordered table-responsive-md" id="specifications_table" {{ collection.target() }}>
|
<table class="table table-striped table-sm table-bordered table-responsive-md" id="specifications_table" {{ collection.target() }}>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -1,59 +1,22 @@
|
||||||
{% set delete_btn %}
|
{% set delete_btn %}
|
||||||
<button type="button" class="btn btn-danger lot_btn_delete" onclick="delete_lot_entry(this);"
|
|
||||||
{% if not is_granted('lots.delete', part) %}disabled{% endif %}>
|
|
||||||
<i class="fas fa-trash-alt fa-fw"></i>
|
|
||||||
{% trans %}part_lot.delete{% endtrans %}
|
|
||||||
</button>
|
|
||||||
{% endset %}
|
{% endset %}
|
||||||
|
|
||||||
|
{% form_theme form with ['Parts/edit/edit_form_styles.html.twig'] %}
|
||||||
|
{% import 'components/collection_type.macro.html.twig' as collection %}
|
||||||
|
|
||||||
<table class="table table-striped table-sm" id="lots_table" data-prototype="{% if form.partLots.vars.prototype is defined %}{{ form_widget(form.partLots.vars.prototype)|e('html_attr') }}{% endif %}">
|
<div {{ collection.controller(form.partLots, 'part_lot.edit.delete.confirm') }}>
|
||||||
<tbody>
|
<table class="table table-striped table-sm" id="lots_table" {{ collection.target() }}>
|
||||||
{% for lot in form.partLots %}
|
<tbody>
|
||||||
<tr>
|
{% for lot in form.partLots %}
|
||||||
<td>
|
{{ form_widget(lot) }}
|
||||||
{{ form_widget(lot) }}
|
{% endfor %}
|
||||||
</td>
|
</tbody>
|
||||||
<td>
|
</table>
|
||||||
{{ delete_btn }}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<button type="button" class="btn btn-success" onclick="create_lot_entry(this)"
|
<button type="button" class="btn btn-success" {{ collection.create_btn() }}
|
||||||
{% if not is_granted('lots.create', part) %}disabled{% endif %}>
|
{% if not is_granted('lots.create', part) %}disabled{% endif %}>
|
||||||
<i class="fas fa-plus-square fa-fw"></i>
|
<i class="fas fa-plus-square fa-fw"></i>
|
||||||
{% trans %}part_lot.create{% endtrans %}
|
{% trans %}part_lot.create{% endtrans %}
|
||||||
</button>
|
</button>
|
||||||
|
</div>
|
||||||
<script>
|
|
||||||
function delete_lot_entry(btn) {
|
|
||||||
window.bootbox.confirm('{% trans %}part_lot.edit.delete.confirm{% endtrans %}', function (result) {
|
|
||||||
if(result) {
|
|
||||||
$(btn).parents("tr").remove();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function create_lot_entry(btn) {
|
|
||||||
//Determine the table, so we can determine, how many entries there are already.
|
|
||||||
$holder = $("#lots_table");
|
|
||||||
|
|
||||||
var index = $holder.children("tbody").children("tr").length;
|
|
||||||
var newForm = $holder.data("prototype");
|
|
||||||
|
|
||||||
//Increase the index
|
|
||||||
newForm = newForm.replace(/__name__/g, index);
|
|
||||||
newForm = '<td>' + newForm + '</td>';
|
|
||||||
$newFormRow = $('<tr></tr>').html(newForm);
|
|
||||||
|
|
||||||
//Add delete button
|
|
||||||
$btn = '<td>' + '{{ delete_btn|e('js') }}' + '</td>';
|
|
||||||
$newFormRow.append($btn);
|
|
||||||
|
|
||||||
$holder.append($newFormRow);
|
|
||||||
|
|
||||||
}
|
|
||||||
</script>
|
|
|
@ -1,8 +1,8 @@
|
||||||
{% form_theme form with ['Parts/edit/edit_form_styles.html.twig', "bootstrap_4_layout.html.twig"] %}
|
{% form_theme form with ['Parts/edit/edit_form_styles.html.twig'] %}
|
||||||
|
|
||||||
{% import 'components/collection_type.macro.html.twig' as collection %}
|
{% import 'components/collection_type.macro.html.twig' as collection %}
|
||||||
|
|
||||||
<div {{ collection.controller(form, 'parameter.delete.confirm') }}>
|
<div {{ collection.controller(form.parameters, 'parameter.delete.confirm') }}>
|
||||||
<table class="table table-striped table-sm table-bordered table-responsive-md" id="specifications_table" {{ collection.target() }}>
|
<table class="table table-striped table-sm table-bordered table-responsive-md" id="specifications_table" {{ collection.target() }}>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -80,4 +80,22 @@
|
||||||
{{ form_errors(form) }}
|
{{ form_errors(form) }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block part_lot_widget %}
|
||||||
|
{% import 'components/collection_type.macro.html.twig' as collection %}
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
{{ form_widget(form) }}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{% dump(form) %}
|
||||||
|
<button type="button" class="btn btn-danger lot_btn_delete" {{ collection.delete_btn() }}
|
||||||
|
{% if not is_granted('lots.delete', form.parent.parent.vars.data) %}disabled{% endif %}>
|
||||||
|
<i class="fas fa-trash-alt fa-fw"></i>
|
||||||
|
{% trans %}part_lot.delete{% endtrans %}
|
||||||
|
</button>
|
||||||
|
{{ form_errors(form) }}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -1,7 +1,7 @@
|
||||||
{% macro controller(form, deleteMessage) %}
|
{% macro controller(form, deleteMessage) %}
|
||||||
{{ stimulus_controller('elements/collection_type', {
|
{{ stimulus_controller('elements/collection_type', {
|
||||||
'deleteMessage': 'parameter.delete.confirm'|trans,
|
'deleteMessage': 'parameter.delete.confirm'|trans,
|
||||||
'prototype': form_widget(form.parameters.vars.prototype)|e('html_attr')
|
'prototype': form_widget(form.vars.prototype)|e('html_attr')
|
||||||
}) }}
|
}) }}
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue