1 {% extends 'page.html.twig' %}
5 <div class="ui basic fitted center aligned segment">
6 <div class="ui compact message">{{ _T("This feature requires javascript.") }}</div>
9 <form action="{{ url_for('storeListFields', {'table': table}) }}" method="post" id="config_fields_form" class="ui form">
10 <div id="members_tab" class="ui grid">
11 <div class="eight wide column">
12 <div class="ui top attached accordion-styled header">
13 {{ _T("Fields in list") }}
15 <div class="jsonly disabled ui bottom attached accordion-styled segment">
16 <div class="ui basic fitted segment">
17 <div class="ui two column stackable grid">
18 <div class="middle aligned row">
20 <span class="ui fluid label">{{ _T("Field name") }}</span>
23 <span class="ui fluid label">{{ _T("Permissions") }}</span>
28 <ul id="listed_fields" class="sortable-items">
29 {% for col, field in listed_fields %}
30 {% set fid = field.field_id %}
31 <li class="{% if fid == 'id_adh' or fid == 'list_adh_name' %}nosort ui-state-disabled {% endif %}ui segment">
32 <div class="ui two column stackable grid">
33 <div class="middle aligned row">
35 <i class="arrows alternate icon" aria-hidden="true"></i>
36 <span data-title="{{ _T("Field name") }}">
37 <input type="hidden" name="fields[]" value="{{ fid }}"/>
42 <span data-title="{{ _T("Permissions") }}" title="{{ _T("Change '%field' permissions")|replace({'%field': field.label}) }}">
43 {% if field.visible == constant('Galette\\Entity\\FieldsConfig::NOBODY') %}{{ _T("Inaccessible") }}{% endif %}
44 {% if field.visible == constant('Galette\\Entity\\FieldsConfig::ADMIN') %}{{ _T("Administrator") }}{% endif %}
45 {% if field.visible == constant('Galette\\Entity\\FieldsConfig::STAFF') %}{{ _T("Staff member") }}{% endif %}
46 {% if field.visible == constant('Galette\\Entity\\FieldsConfig::MANAGER') %}{{ _T("Group manager") }}{% endif %}
47 {% if field.visible == constant('Galette\\Entity\\FieldsConfig::USER_READ') %}{{ _T("Read only") }}{% endif %}
48 {% if field.visible == constant('Galette\\Entity\\FieldsConfig::USER_WRITE') %}{{ _T("Read/Write") }}{% endif %}
58 <div class="eight wide column">
59 <div class="ui top attached accordion-styled header">
60 {{ _T("Available fields") }}
62 <div class="jsonly disabled ui bottom attached accordion-styled segment">
63 <div class="ui basic fitted segment">
64 <div class="ui two column stackable grid">
65 <div class="middle aligned row">
67 <span class="ui fluid label">{{ _T("Field name") }}</span>
70 <span class="ui fluid label">{{ _T("Permissions") }}</span>
75 <ul id="remaining_fields" class="sortable-items">
76 {% for col, field in remaining_fields %}
77 {% set fid = field.field_id %}
78 <li class="ui segment">
79 <div class="ui two column stackable grid">
80 <div class="middle aligned row">
82 <i class="arrows alternate icon" aria-hidden="true"></i>
83 <span data-title="{{ _T("Field name") }}">
84 <input type="hidden" name="rfields[]" value="{{ fid }}"/>
89 <span data-title="{{ _T("Permissions") }}" title="{{ _T("Change '%field' permissions")|replace({'%field': field.label}) }}">
90 {% if field.visible == constant('Galette\\Entity\\FieldsConfig::NOBODY') %}{{ _T("Inaccessible") }}{% endif %}
91 {% if field.visible == constant('Galette\\Entity\\FieldsConfig::ADMIN') %}{{ _T("Administrator") }}{% endif %}
92 {% if field.visible == constant('Galette\\Entity\\FieldsConfig::STAFF') %}{{ _T("Staff member") }}{% endif %}
93 {% if field.visible == constant('Galette\\Entity\\FieldsConfig::MANAGER') %}{{ _T("Group manager") }}{% endif %}
94 {% if field.visible == constant('Galette\\Entity\\FieldsConfig::USER_READ') %}{{ _T("Read only") }}{% endif %}
95 {% if field.visible == constant('Galette\\Entity\\FieldsConfig::USER_WRITE') %}{{ _T("Read/Write") }}{% endif %}
106 <div class="ui basic center aligned segment">
107 <button type="submit" class="ui labeled icon primary button action">
108 <i class="save icon" aria-hidden="true"></i> {{ _T("Save") }}
111 {% include "components/forms/csrf.html.twig" %}
115 {% block javascripts %}
116 <script type="module">
117 var _initSortable = function(){
118 var _listed = document.getElementById('listed_fields');
119 var _remaining = document.getElementById('remaining_fields');
121 new Sortable(_listed, {
124 ghostClass: 'yellow',
125 onAdd: function (evt) {
126 var _item = evt.item;
127 _item.classList.add('yellow');
128 _item.getElementsByTagName('input')[0].setAttribute('name', 'fields[]');
130 onUpdate: function (evt) {
131 var _item = evt.item;
132 _item.classList.add('yellow');
136 new Sortable(_remaining, {
139 ghostClass: 'yellow',
140 onAdd: function (evt) {
141 var _item = evt.item;
142 _item.classList.add('yellow');
143 _item.getElementsByTagName('input')[0].setAttribute('name', 'rfields[]');