support multiple teamleads in each team (#2702)

* fix jumping avatars
* fix line-break after color dot for long names
This commit is contained in:
Kevin Papst
2021-08-07 18:05:41 +02:00
committed by GitHub
parent e9986c92d6
commit b2d3272151
101 changed files with 1952 additions and 649 deletions

View File

@@ -8,25 +8,21 @@
{% block main %}
<div class="row">
<div class="col-md-6">
{{ include('default/_form.html.twig', {
'title': team.name|default('create'|trans),
'form': form,
'back': path('admin_team')
}) }}
{% include 'team/member-form.html.twig' %}
</div>
<div class="col-md-6">
{% if not customerForm is null %}
{{ include('default/_form.html.twig', {
'title': 'teams.customer_access'|trans({}, 'teams'),
'form': customerForm,
}) }}
{{ include('default/_form.html.twig', {
'title': 'teams.customer_access'|trans({}, 'teams'),
'form': customerForm,
}) }}
{% endif %}
{% if not projectForm is null %}
{{ include('default/_form.html.twig', {
'title': 'teams.project_access'|trans({}, 'teams'),
'form': projectForm,
}) }}
{{ include('default/_form.html.twig', {
'title': 'teams.project_access'|trans({}, 'teams'),
'form': projectForm,
}) }}
{% endif %}
</div>
</div>

View File

@@ -6,9 +6,5 @@
{% block page_actions %}{{ actions.team(team, 'edit') }}{% endblock %}
{% block main %}
{{ include(app.request.xmlHttpRequest ? 'default/_form_modal.html.twig' : 'default/_form.html.twig', {
'title': team.name|default('create'|trans),
'form': form,
'back': path('admin_team')
}) }}
{% include 'team/member-form.html.twig' %}
{% endblock %}

View File

@@ -16,7 +16,7 @@
{% set columns = {
'name': {'class': ''},
'teamlead': {'class': ''},
'teamlead': {'class': '', 'orderBy': false},
'user': {'class': 'hidden-xs', 'orderBy': false},
'actions': {'class': 'actions alwaysVisible'},
} %}
@@ -30,11 +30,17 @@
{{ widgets.label_name(team.name, team.color) }}
</td>
<td class="{{ tables.data_table_column_class(tableName, columns, 'teamlead') }}">
{{ widgets.label_user(team.teamlead) }}
{% for member in team.members %}
{% if member.teamlead %}
{{ widgets.label_user(member.user) }}
{% endif %}
{% endfor %}
</td>
<td class="{{ tables.data_table_column_class(tableName, columns, 'user') }}">
{% for user in team.users %}
{{ widgets.label_user(user) }}&nbsp;
{% for member in team.members %}
{% if not member.teamlead %}
{{ widgets.label_user(member.user) }}
{% endif %}
{% endfor %}
</td>
<td class="{{ tables.data_table_column_class(tableName, columns, 'actions') }}">

View File

@@ -0,0 +1,44 @@
{% set formEditTemplate = app.request.xmlHttpRequest ? 'default/_form_modal.html.twig' : 'default/_form.html.twig' %}
{% set formOptions = {
'title': team.name|default('create'|trans),
'form': form,
'back': path('admin_team'),
'reset': false
} %}
{% embed formEditTemplate with formOptions %}
{% block form_body %}
<div class="row">
<div class="col-md-9">
{{ form_row(form.name) }}
</div>
<div class="col-md-3">
{{ form_row(form.color) }}
</div>
</div>
{{ form_row(form.users) }}
{{ form_row(form.members) }}
{{ form_widget(form) }}
{% endblock %}
{% block form_after %}
{% set blockPrefix = form.vars.id %}
<script type="text/javascript">
jQuery(document).ready(function () {
jQuery('#{{ blockPrefix }}_users').change(function (e) {
var select = jQuery(e.target);
var selected = select.find(':selected');
var username = selected.text();
var userid = select.val();
selected.remove();
var prototype = jQuery('#{{ blockPrefix }}_members');
var counter = prototype.data('widget-counter') || prototype.children().length;
var newWidget = prototype.attr('data-prototype');
newWidget = newWidget.replace(/__name__/g, counter);
newWidget = newWidget.replace(/__USERNAME__/g, username);
prototype.data('widget-counter', ++counter);
jQuery(newWidget).prependTo(prototype).find('input[type=hidden]').val(userid);
});
});
</script>
{% endblock %}
{% endembed %}