- fixed group by for mysql mode - only user can edit own prefs - updated installation README - pagerfanta shows less links - improved manual tab - moved user profile link to pref tabs - added menu links to top navbar - moved page actions to breadcrumb position - integrated daterangepicker and improved toolbar forms - bugfix for time rounding
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
|
||||
{% block page_title %}{{ 'admin_activity.title'|trans }}{% endblock %}
|
||||
{% block page_subtitle %}{{ 'admin_activity.subtitle'|trans }} {{ 'subtitle.amount'|trans({'%count%': entries.count}) }}{% endblock %}
|
||||
{% block page_actions %}{{ widgets.page_actions({'plus-square': path('admin_activity_create')}) }}{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
{% if entries.count == 0 %}
|
||||
@@ -12,24 +13,24 @@
|
||||
|
||||
{{ tables.data_table_header({
|
||||
'label.name': '',
|
||||
'label.customer': '',
|
||||
'label.customer': 'hidden-xs',
|
||||
'label.project': '',
|
||||
'label.comment': 'hidden-xs',
|
||||
'label.visible': '',
|
||||
'label.visible': 'hidden-xs',
|
||||
'label.actions': '',
|
||||
}, toolbarForm, {'plus-square': path('admin_activity_create')}) }}
|
||||
}, toolbarForm) }}
|
||||
|
||||
{% for entry in entries %}
|
||||
<tr>
|
||||
<td>{{ entry.name }}</td>
|
||||
<td>
|
||||
<td class="hidden-xs">
|
||||
<a href="{{ path('admin_customer_edit', {'id' : entry.project.customer.id}) }}">{{ widgets.label_customer(entry.project.customer) }}</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ path('admin_project_edit', {'id' : entry.project.id}) }}">{{ widgets.label_project(entry.project) }}</a>
|
||||
</td>
|
||||
<td class="hidden-xs">{{ entry.comment }}</td>
|
||||
<td>{{ widgets.label_visible(entry.visible) }}</td>
|
||||
<td class="hidden-xs">{{ widgets.label_visible(entry.visible) }}</td>
|
||||
<td>
|
||||
{% set actionButtons = {} %}
|
||||
{% if is_granted('edit', entry) %}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
{% block page_title %}{{ 'admin_customer.title'|trans }}{% endblock %}
|
||||
{% block page_subtitle %}{{ 'admin_customer.subtitle'|trans }} {{ 'subtitle.amount'|trans({'%count%': entries.count}) }}{% endblock %}
|
||||
{% block page_actions %}{{ widgets.page_actions({'plus-square': path('admin_customer_create')}) }}{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
{% if entries.count == 0 %}
|
||||
@@ -17,9 +18,9 @@
|
||||
'label.country': 'hidden-xs',
|
||||
'label.customer_number': 'hidden-xs',
|
||||
'label.currency': 'hidden-xs',
|
||||
'label.visible': '',
|
||||
'label.visible': 'hidden-xs',
|
||||
'label.actions': '',
|
||||
}, toolbarForm, {'plus-square': path('admin_customer_create')}) }}
|
||||
}, toolbarForm) }}
|
||||
|
||||
{% for entry in entries %}
|
||||
<tr>
|
||||
@@ -27,13 +28,14 @@
|
||||
<td>
|
||||
{% for project in entry.projects %}
|
||||
<a href="{{ path('admin_project_edit', {'id' : project.id}) }}">{{ widgets.label_project(project) }}</a>
|
||||
<br class="visible-xs-block">
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td class="hidden-xs">{{ entry.comment }}</td>
|
||||
<td class="hidden-xs">{{ entry.country|country }}</td>
|
||||
<td class="hidden-xs">{{ entry.number }}</td>
|
||||
<td class="hidden-xs">{{ entry.currency }} {{ entry.currency|currency }}</td>
|
||||
<td>{{ widgets.label_visible(entry.visible) }}</td>
|
||||
<td class="hidden-xs">{{ widgets.label_visible(entry.visible) }}</td>
|
||||
<td>
|
||||
{% set actionButtons = {} %}
|
||||
{% if is_granted('edit', entry) %}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
{% block page_title %}{{ 'admin_project.title'|trans }}{% endblock %}
|
||||
{% block page_subtitle %}{{ 'admin_project.subtitle'|trans }} {{ 'subtitle.amount'|trans({'%count%': entries.count}) }}{% endblock %}
|
||||
{% block page_actions %}{{ widgets.page_actions({'plus-square': path('admin_project_create')}) }}{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
{% if entries.count == 0 %}
|
||||
@@ -15,9 +16,9 @@
|
||||
'label.customer': '',
|
||||
'label.comment': 'hidden-xs hidden-sm',
|
||||
'label.budget': 'hidden-xs',
|
||||
'label.visible': '',
|
||||
'label.visible': 'hidden-xs',
|
||||
'label.actions': '',
|
||||
}, toolbarForm, {'plus-square': path('admin_project_create')}) }}
|
||||
}, toolbarForm) }}
|
||||
|
||||
{% for entry in entries %}
|
||||
<tr>
|
||||
@@ -27,7 +28,7 @@
|
||||
</td>
|
||||
<td class="hidden-xs hidden-sm">{{ entry.comment }}</td>
|
||||
<td class="hidden-xs">{{ entry.budget|money(entry.customer.currency) }}</td>
|
||||
<td>{{ widgets.label_visible(entry.visible) }}</td>
|
||||
<td class="hidden-xs">{{ widgets.label_visible(entry.visible) }}</td>
|
||||
<td>
|
||||
{% set actionButtons = {} %}
|
||||
{% if is_granted('edit', entry) %}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
{% block page_title %}{{ 'admin_timesheet.title'|trans }}{% endblock %}
|
||||
{% block page_subtitle %}{{ 'admin_timesheet.subtitle'|trans }}{% endblock %}
|
||||
{% block page_actions %}{{ widgets.page_actions({'plus-square': path('admin_timesheet_create')}) }}{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
{% if entries.count == 0 %}
|
||||
@@ -25,7 +26,7 @@
|
||||
'label.actions': '',
|
||||
}) %}
|
||||
|
||||
{{ tables.data_table_header(columns, toolbarForm, {'plus-square': path('admin_timesheet_create')}) }}
|
||||
{{ tables.data_table_header(columns, toolbarForm) }}
|
||||
|
||||
{% for entry in entries %}
|
||||
<tr>
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
{% block page_title %}{{ 'admin_user.title'|trans }}{% endblock %}
|
||||
{% block page_subtitle %}{{ 'admin_user.subtitle'|trans }} {{ 'subtitle.amount'|trans({'%count%': entries.count}) }}{% endblock %}
|
||||
{% block page_actions %}{{ widgets.page_actions({'plus-square': path('admin_user_create')}) }}{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
{% if entries.count == 0 %}
|
||||
@@ -19,7 +20,7 @@
|
||||
'label.active': '',
|
||||
'label.roles': '',
|
||||
'label.actions': '',
|
||||
}, toolbarForm, {'plus-square': path('admin_user_create')}) }}
|
||||
}, toolbarForm) }}
|
||||
|
||||
{% for entry in entries %}
|
||||
<tr>
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
{% extends '@AvanzuAdminTheme/layout/default-layout.html.twig' %}
|
||||
|
||||
{% block avanzu_page_content_class %}{{ parent() }} {% block main_content_class %}{% endblock %}{% endblock %}
|
||||
|
||||
{% block avanzu_page_content_before %}
|
||||
<div class="pad margin no-print">
|
||||
{% block main_before %}{% endblock %}
|
||||
@@ -47,6 +49,21 @@
|
||||
|
||||
{% block avanzu_navbar_messages %}
|
||||
{% if app.user is not null and is_granted('IS_AUTHENTICATED_REMEMBERED') %}
|
||||
{% if is_granted('ROLE_USER') %}
|
||||
<li class="visible-xs-inline-block">
|
||||
<a href="{{ path('timesheet') }}" class="ddt-large">
|
||||
<i class="fa fa-clock-o fa-2x"></i>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if is_granted('ROLE_TEAMLEAD') %}
|
||||
<li class="visible-xs-inline-block">
|
||||
<a href="{{ path('invoice') }}" class="ddt-large">
|
||||
<i class="fa fa-print fa-2x"></i>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% block navbar_extensions %}{% endblock %}
|
||||
{{ render(controller('App\\Controller\\TimesheetController::activeEntriesAction')) }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -58,15 +75,20 @@
|
||||
{% endblock %}
|
||||
|
||||
{% block avanzu_navbar_toggle %}{{ parent() }}{% endblock %}
|
||||
{% block avanzu_navbar_tasks %}{{ parent() }}{% endblock %}
|
||||
{% block avanzu_navbar_user %}{{ parent() }}{% endblock %}
|
||||
{% block avanzu_navbar_tasks %}{#{ parent() }#}{% endblock %}
|
||||
{% block avanzu_navbar_user %}{#{ parent() }#}{% endblock %}
|
||||
{% block avanzu_navbar_control_sidebar_toggle %}{{ parent() }}{% endblock %}
|
||||
|
||||
{% block avanzu_sidebar_user %}{# right now we simply deactivate that box #}{% endblock %}
|
||||
{% block avanzu_sidebar_search %}{# right now we simply deactivate that box #}{% endblock %}
|
||||
{% block avanzu_sidebar_nav %}{{ parent() }}{% endblock %}
|
||||
|
||||
{% block avanzu_breadcrumb %}{{ parent() }}{% endblock %}
|
||||
{% block avanzu_breadcrumb %}
|
||||
{{ block('page_actions') }}
|
||||
{% endblock %}
|
||||
|
||||
{% block page_actions %}{% endblock %}
|
||||
|
||||
{% block avanzu_control_sidebar %}{{ parent() }}{% endblock %}
|
||||
|
||||
{% block avanzu_javascripts %}
|
||||
|
||||
@@ -14,18 +14,6 @@
|
||||
<small>{{user.title}}</small>
|
||||
</p>
|
||||
</li>
|
||||
{#
|
||||
<!-- Menu Body -->
|
||||
<li class="user-body">
|
||||
<div class="col-xs-4 text-center">
|
||||
</div>
|
||||
<div class="col-xs-4 text-center">
|
||||
</div>
|
||||
<div class="col-xs-4 text-center">
|
||||
</div>
|
||||
</li>
|
||||
#}
|
||||
<!-- Menu Footer-->
|
||||
<li class="user-footer">
|
||||
<div class="pull-left">
|
||||
<a href="{{ path('user_profile', {'username' : user.username}) }}" class="btn btn-default btn-flat">{{ 'label.user_profile'|trans }}</a>
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
{% block page_title %}{{ 'dashboard.title'|trans }}{% endblock %}
|
||||
{% block page_subtitle %}{{ 'dashboard.subtitle'|trans }}{% endblock %}
|
||||
|
||||
{% block main_content_class %}dashboard{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
|
||||
{% for settings in dashboard_widgets %}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
{% set class = ' timepicker' %}
|
||||
{% endif %}
|
||||
{% set class = class ~ ' datepicker' %}
|
||||
{% set attr = attr|merge({'class' : class, 'data-datepickerenable':'on'}) %}
|
||||
{% set attr = attr|merge({'class' : class}) %}
|
||||
{{ block('form_widget_simple') }}
|
||||
{% else %}
|
||||
{% set date_pattern = '<div class="row">' ~ date_pattern ~ '</div>'|raw %}
|
||||
@@ -21,6 +21,5 @@
|
||||
'{{ month }}': form_widget(form.month),
|
||||
'{{ day }}': form_widget(form.day),
|
||||
})|raw }}
|
||||
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -4,11 +4,12 @@
|
||||
|
||||
{% block page_title %}{{ 'invoice.title'|trans }}{% endblock %}
|
||||
{% block page_subtitle %}{{ 'invoice.subtitle'|trans }}{% endblock %}
|
||||
{% block page_actions %}{{ widgets.page_actions({'plus-square': path('admin_invoice_template_create'), 'list': path('admin_invoice_template')}) }}{% endblock %}
|
||||
|
||||
{% block avanzu_page_content_class %}invoice{% endblock %}
|
||||
{% block main_content_class %}invoice{% endblock %}
|
||||
|
||||
{% block main_before %}
|
||||
{{ macro.toolbar(form, {'plus-square': path('admin_invoice_template_create'), 'list': path('admin_invoice_template')}) }}
|
||||
{{ macro.toolbar(form) }}
|
||||
{% endblock %}
|
||||
|
||||
{% block main_after %}
|
||||
|
||||
@@ -48,6 +48,6 @@
|
||||
</div>
|
||||
|
||||
<div class="navigation text-center no-print">
|
||||
{{ pagerfanta(entries, 'twitter_bootstrap3_translated', { routeName: route }) }}
|
||||
{{ pagerfanta(entries, 'twitter_bootstrap3_translated', { proximity: 1, routeName: route }) }}
|
||||
</div>
|
||||
{% endmacro %}
|
||||
|
||||
@@ -1,4 +1,16 @@
|
||||
|
||||
{% macro page_actions(tools) %}
|
||||
<div class="breadcrumb">
|
||||
<div class="box-tools">
|
||||
<div class="btn-group">
|
||||
{% for icon,url in tools %}
|
||||
<a class="btn btn-default" href="{{ url }}"><i class="fa fa-{{ icon }}"></i></a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endmacro %}
|
||||
|
||||
{% macro page_header(title) %}
|
||||
<h2 class="page-header">{{ title|trans }}</h2>
|
||||
{% endmacro %}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
|
||||
{% if entries is not empty %}
|
||||
<li class="dropdown messages-menu">
|
||||
<a href="#" class="dropdown-toggle ddt-large ticktac" data-toggle="dropdown">
|
||||
<i class="fa fa-play-circle fa-2x"></i>
|
||||
{% if entries is not empty %}<span class="label label-{% if entries|length >= kimai_context.active_warning %}danger{% else %}warning{% endif %}">{{ entries|length }}</span>{% endif %}
|
||||
<span class="label label-{% if entries|length >= kimai_context.active_warning %}danger{% else %}warning{% endif %}">{{ entries|length }}</span>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li class="header">
|
||||
@@ -35,3 +35,10 @@
|
||||
<li class="footer"><a href="{{ path('timesheet_create') }}">{{ 'timesheet.start'|trans }}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
{% else %}
|
||||
<li class="messages-menu">
|
||||
<a href="{{ path('timesheet_create') }}" class="ddt-large">
|
||||
<i class="fa fa-play-circle fa-2x"></i>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
@@ -1,53 +1,19 @@
|
||||
<h3 class="control-sidebar-heading">{{ 'home.title'|trans({}, 'sidebar') }}</h3>
|
||||
<div class="form-group">
|
||||
{{ 'home.betainfo'|trans({}, 'sidebar')|raw|nl2br }}
|
||||
</div>
|
||||
|
||||
<h3 class="control-sidebar-heading">{{ 'help.title'|trans({}, 'sidebar') }}</h3>
|
||||
<div class="form-group">
|
||||
<a href="{{ path('help') }}" class="btn btn-success">{{ 'help.link'|trans({}, 'sidebar') }}</a>
|
||||
</div>
|
||||
|
||||
<h3 class="control-sidebar-heading">{{ 'about.title'|trans({}, 'sidebar') }}</h3>
|
||||
<div class="form-group">
|
||||
<p>
|
||||
Kimai {{ constant('App\\Constants::VERSION') }}
|
||||
</p>
|
||||
<p>
|
||||
{{ 'made.by.license'|trans({'%kevin%': '<a href="http://www.kevinpapst.de" target="_blank">Kevin Papst</a>', '%simon%': '<a href="https://github.com/simonschaufi" target="_blank">Simon Schaufelberger</a>'}, 'sidebar')|raw }}
|
||||
</p>
|
||||
<p>
|
||||
{{ 'github.link'|trans({'%url%': constant('App\\Constants::GITHUB')}, 'sidebar')|raw }}
|
||||
</p>
|
||||
</div>
|
||||
{#
|
||||
<ul class="control-sidebar-menu">
|
||||
<li>
|
||||
<a href="javascript:;">
|
||||
<i class="menu-icon fa fa-birthday-cake bg-red"></i>
|
||||
<a href="{{ path('help') }}">
|
||||
<i class="menu-icon fa fa-book bg-yellow"></i>
|
||||
|
||||
<div class="menu-info">
|
||||
<h4 class="control-sidebar-subheading">{{ 'Kevin\'s Birthday'|trans({}, 'AvanzuAdminTheme') }}</h4>
|
||||
|
||||
<p>{{ 'Will be 23 on April 24th'|trans({}, 'AvanzuAdminTheme') }}</p>
|
||||
<h4 class="control-sidebar-subheading">{{ 'help.title'|trans({}, 'sidebar') }}</h4>
|
||||
<p>{{ 'help.subtitle'|trans({}, 'sidebar') }}</p>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3 class="control-sidebar-heading">{{ 'Tasks Progress'|trans({}, 'AvanzuAdminTheme') }}</h3>
|
||||
<ul class="control-sidebar-menu">
|
||||
<li>
|
||||
<a href="javascript::;">
|
||||
<h4 class="control-sidebar-subheading">
|
||||
{{ 'Custom Template Design'|trans({}, 'AvanzuAdminTheme') }}
|
||||
<span class="label label-danger pull-right">70%</span>
|
||||
</h4>
|
||||
|
||||
<div class="progress progress-xxs">
|
||||
<div class="progress-bar progress-bar-danger" style="width: 70%"></div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
#}
|
||||
<h3 class="control-sidebar-heading">{{ 'home.title'|trans({}, 'sidebar') }}</h3>
|
||||
<div class="form-group">
|
||||
{{ 'home.betainfo'|trans({'%version%': constant('App\\Constants::VERSION'), '%url%': constant('App\\Constants::GITHUB')}, 'sidebar')|raw|nl2br }}
|
||||
<br>
|
||||
<a href="{{ constant('App\\Constants::GITHUB') }}graphs/contributors">{{ 'made.by.license'|trans({}, 'sidebar')|raw }}</a>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,23 @@
|
||||
{% import "@AvanzuAdminTheme/layout/macros.html.twig" as macro %}
|
||||
{% import "macros/widgets.html.twig" as widgets %}
|
||||
|
||||
|
||||
<ul class="control-sidebar-menu">
|
||||
<li>
|
||||
<a href="{{ path('user_profile', {'username' : user.username}) }}">
|
||||
<div class="pull-left image">
|
||||
{{ macro.avatar(user.avatar, user.username, 'img-circle') }}
|
||||
</div>
|
||||
<div class="menu-info">
|
||||
<h4 class="control-sidebar-subheading">{{ widgets.username(user) }}</h4>
|
||||
<p>{{ user.title }}</p>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3 class="control-sidebar-heading">{{ 'preferences.title'|trans({}, 'sidebar') }}</h3>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-sidebar-subheading">
|
||||
{{ 'preferences.label.language'|trans({}, 'sidebar') }}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
{% block page_title %}{{ 'timesheet.title'|trans }}{% endblock %}
|
||||
{% block page_subtitle %}{{ 'timesheet.subtitle'|trans }}{% endblock %}
|
||||
{% block page_actions %}{{ widgets.page_actions({'plus-square': path('timesheet_create')}) }}{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
|
||||
@@ -25,7 +26,7 @@
|
||||
'label.actions': '',
|
||||
}) %}
|
||||
|
||||
{{ tables.data_table_header(columns, toolbarForm, {'plus-square': path('timesheet_create')}) }}
|
||||
{{ tables.data_table_header(columns, toolbarForm) }}
|
||||
|
||||
{% for entry in entries %}
|
||||
<tr>
|
||||
|
||||
Reference in New Issue
Block a user