Edit file File name : index.html.twig Content :{% extends 'base.html.twig' %} {% import "macros/widgets.html.twig" as widgets %} {% block page_title %}{{ 'menu.doctor'|trans }}{% endblock %} {% block page_subtitle %}{{ 'label.version'|trans }}: {{ constant('App\\Constants::VERSION') }} {{ constant('App\\Constants::STATUS') }} ({{ environment }}){% endblock %} {% block page_actions %} {% set event = actions(app.user, 'doctor', 'index') %} {{ widgets.page_actions(event.actions) }} {% endblock %} {% block main %} {% set permissionOpts = {collapsed: true, boxtype: 'success'} %} {% for name, value in directories %} {% if value is same as (false) %} {% set permissionOpts = {boxtype: 'danger'} %} {% endif %} {% endfor %} {% embed '@AdminLTE/Widgets/box-widget.html.twig' with permissionOpts %} {% block box_title %}File permissions{% endblock %} {% block box_body %} <p> If you see a warning icon <i class="{{ 'warning'|icon }} text-red"></i> in the list below, you should talk to your administrator. The path is either not readable or not writable and Kimai might not work as expected. </p> <table class="table"> {% for name, value in directories %} <tr> <th style="width:15%">{{ name }}</th> <td> {% if value is same as (false) %} <i class="{{ 'warning'|icon }} text-red"></i> {% else %} <i class="{{ 'success'|icon }} text-green"></i> {% endif %} </td> </tr> {% endfor %} </table> {% endblock %} {% endembed %} {% set extensionOpts = {collapsed: true, boxtype: 'success'} %} {% for name, value in extensions %} {% if value is same as (false) %} {% set extensionOpts = {boxtype: 'danger'} %} {% endif %} {% endfor %} {% embed '@AdminLTE/Widgets/box-widget.html.twig' with extensionOpts %} {% block box_title %}Required PHP extensions{% endblock %} {% block box_body %} <p> If you see a warning icon <i class="{{ 'warning'|icon }} text-red"></i> in the list below, you should talk to your administrator. There is a missing PHP extension and Kimai might not work as expected. </p> <table class="table"> {% for name, value in extensions %} <tr> <th style="width:15%">{{ name }}</th> <td> {% if value is same as (false) %} <i class="{{ 'warning'|icon }} text-red"></i> {% else %} <i class="{{ 'success'|icon }} text-green"></i> {% endif %} </td> </tr> {% endfor %} </table> {% endblock %} {% endembed %} {% set logOpts = {collapsed: true} %} {% if logSize > 52428800 %} {% set logOpts = {boxtype: 'danger'} %} {% endif %} {% embed '@AdminLTE/Widgets/box-widget.html.twig' with logOpts %} {% block box_title %}Logfile (max. {{ logLines }} last lines){% endblock %} {% block box_tools %} {% if log_delete %} <a class="btn-box-tool confirmation-link" href="{{ path('doctor_flush_log', {'token': csrf_token('doctor.flush_log')}) }}" data-question="confirm.delete"><i class="{{ 'delete'|icon }}"></i></a> {% endif %} {% endblock %} {% block box_body %} {% if logSize > 52428800 %} <p>Your logfile is larger than 50 MB, consider deleting it (it will be re-created automatically).</p> {% endif %} <pre>{% for logLine in logs|reverse -%} {%- set logLineClass = '' -%} {%- if '.CRITICAL' in logLine -%} {%- set logLineClass = 'text-danger text-bold' -%} {%- elseif '.WARNING' in logLine -%} {%- set logLineClass = 'text-warning text-bold' -%} {%- elseif '.ERROR' in logLine -%} {%- set logLineClass = 'text-warning text-bold' -%} {%- elseif '.DEBUG' in logLine -%} {%- set logLineClass = 'text-muted' -%} {%- endif -%} <span class="{{ logLineClass }}">{{- logLine -}}</span> {%- endfor %}</pre> {% endblock %} {% endembed %} {% embed '@AdminLTE/Widgets/box-widget.html.twig' with {collapsed: true} %} {% block box_title %}Composer packages{% endblock %} {% block box_body_class %}no-padding{% endblock %} {% block box_body %} <table class="table table-hover"> {% for name, value in composer %} <tr> <th style="width:15%">{{ name }}</th> <td>{{ value }}</td> </tr> {% endfor %} </table> {% endblock %} {% endembed %} {% embed '@AdminLTE/Widgets/box-widget.html.twig' with {collapsed: true} %} {% block box_title %}PHP{% endblock %} {% block box_body_class %}no-padding{% endblock %} {% block box_body %} <table class="table table-hover"> <tr> <th style="width:15%">Version</th> <td>{{ constant('PHP_VERSION') }}</td> </tr> <tr> <th style="width:15%;max-width:25%">Modules</th> <td>{{ modules|join(', ') }}</td> </tr> {% for name, value in settings %} <tr> <th style="width:15%">{{ name }}</th> <td> {% if value is empty %} <i>unknown</i> {% else %} {{ value }} {% endif %} </td> </tr> {% endfor %} </table> {% endblock %} {% endembed %} {% embed '@AdminLTE/Widgets/box-widget.html.twig' with {collapsed: true} %} {% block box_title %}Server{% endblock %} {% block box_body_class %}no-padding{% endblock %} {% block box_body %} <table class="table table-hover"> {% for name, value in info %} <tr> <th style="width:15%">{{ name }}</th> <td>{{ value|raw }}</td> </tr> {% endfor %} </table> {% endblock %} {% endembed %} {% endblock %} Save