diff options
Diffstat (limited to 'resources/views')
-rw-r--r-- | resources/views/errors/default.twig | 7 | ||||
-rw-r--r-- | resources/views/layouts/app.twig | 48 | ||||
-rw-r--r-- | resources/views/layouts/maintenance.html | 71 | ||||
-rw-r--r-- | resources/views/layouts/parts/footer.twig | 36 | ||||
-rw-r--r-- | resources/views/layouts/parts/navbar.twig | 74 | ||||
-rw-r--r-- | resources/views/pages/credits.twig | 42 | ||||
-rw-r--r-- | resources/views/pages/user-shifts.html | 85 |
7 files changed, 363 insertions, 0 deletions
diff --git a/resources/views/errors/default.twig b/resources/views/errors/default.twig new file mode 100644 index 00000000..5fb8bcbd --- /dev/null +++ b/resources/views/errors/default.twig @@ -0,0 +1,7 @@ +{% extends "layouts/app.twig" %} + +{% block title %}{% if status == 404 %}{{ __("Page not found") }}{% else %}Error {{ status }}{% endif %}{% endblock %} + +{% block content %} + <div class="alert alert-info">{{ content }}</div> +{% endblock %} diff --git a/resources/views/layouts/app.twig b/resources/views/layouts/app.twig new file mode 100644 index 00000000..d8f8d10f --- /dev/null +++ b/resources/views/layouts/app.twig @@ -0,0 +1,48 @@ +{% set theme = user.color|default(config('theme')) %} +<!DOCTYPE html> +<html lang="{{ session_get('locale')|split('_')[0]|escape('html_attr') }}"> +<head> + {% block head %} + <title>{% block title %}{{ title }}{% endblock %} - Engelsystem</title> + + <meta charset="UTF-8"/> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <link rel="stylesheet" type="text/css" href="{{ asset('assets/theme' ~ theme ~ '.css') }}"/> + <script type="text/javascript" src="{{ asset('assets/vendor.js') }}"></script> + + {% if page() in ['news', 'user-meetings', '/'] and is_user() -%} + {% set parameters = {'key': user.api_key} -%} + {% if page() == 'user-meetings' -%} + {% set parameters = parameters|merge({'meetings': 1}) -%} + {% endif %} + <link href="{{ url('atom', parameters) }}" type="application/atom+xml" rel="alternate" title="Atom Feed"> + {% endif %} + + {% endblock %} +</head> +<body> + +{% block body %} + {% block header %} + {% include "layouts/parts/navbar.twig" %} + {% endblock %} + + <div class="container-fluid"> + <div class="row" id="content"> + {% block content %} + {{ content|raw }} + {% endblock %} + </div> + <div class="row" id="footer"> + {% block footer %} + {% include "layouts/parts/footer.twig" %} + {% endblock %} + </div> + </div> + + {% block scripts %}{% endblock %} +{% endblock %} + +</body> +</html> diff --git a/resources/views/layouts/maintenance.html b/resources/views/layouts/maintenance.html new file mode 100644 index 00000000..f7ab5772 --- /dev/null +++ b/resources/views/layouts/maintenance.html @@ -0,0 +1,71 @@ +<!DOCTYPE html> +<html> +<head> + <title>Maintenance - Engelsystem</title> + <meta charset="UTF-8"/> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="stylesheet" type="text/css" href="assets/theme0.css"/> + <script type="text/javascript" src="assets/vendor.js"></script> +</head> +<body> +<div class="navbar navbar-default navbar-fixed-top"> + <div class="container-fluid"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" + data-toggle="collapse" data-target="#navbar-collapse-1"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="#"> + <span class="icon-icon_angel"></span> <strong class="visible-lg-inline">ENGELSYSTEM</strong> + </a> + </div> + <div class="collapse navbar-collapse" id="navbar-collapse-1"> + <ul class="nav navbar-nav"></ul> + <ul class="nav navbar-nav navbar-right"> + </ul> + </div> + </div> +</div> +<div class="container-fluid"> + <div class="row"> + <div class="jumbotron"> + <div class="container text-center"> + <h1> + <span class="glyphicon glyphicon-scissors"></span> + <span class="glyphicon glyphicon-wrench"></span> + <span class="glyphicon glyphicon-fire"></span> + </h1> + <div class="col-md-6"> + <h2> + The <span class="icon-icon_angel"></span> <strong>ENGELSYSTEM</strong> is in maintenance mode. + </h2> + <p>This may be due to...</p> + <p> + ...archangels closing the gates of heaven. <br> + ...somebody's stolen the power chord and now the battery is empty. <br> + ...DHCP decided to give me another ip address. + </p> + </div> + <div class="col-md-6"> + <iframe width="560" height="315" + src="https://www.youtube.com/embed/0aV_vHcunSQ?rel=0" + frameborder="0" allowfullscreen> + </iframe> + </div> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <div class="text-center footer"> + <a href="https://github.com/engelsystem/engelsystem/issues">Bugs / Features</a> + · <a href="https://github.com/engelsystem/engelsystem/">Development Platform</a> + </div> + </div> + </div> +</div> +</body> +</html> diff --git a/resources/views/layouts/parts/footer.twig b/resources/views/layouts/parts/footer.twig new file mode 100644 index 00000000..e986963a --- /dev/null +++ b/resources/views/layouts/parts/footer.twig @@ -0,0 +1,36 @@ +<div class="col-md-12"> + <hr/> + <div class="text-center footer" style="margin-bottom: 10px;"> + {% block eventinfo %} + {% if event_config.event_name %} + {% if event_config.event_start_date and event_config.event_end_date %} + {{ __('%s, from %s to %s', [ + event_config.event_name, + date(event_config.event_start_date).format(__('Y-m-d')), + date(event_config.event_end_date).format(__('Y-m-d')) + ]) }} + {% elseif event_config.event_start_date %} + {{ __('%s, starting %s', [ + event_config.event_name, + date(event_config.event_start_date).format(__('Y-m-d')) + ]) }} + {% else %} + {{ event_config.event_name }} + {% endif %} <br> + {% elseif event_config.event_start_date and event_config.event_end_date %} + {{ __('Event from %s to %s', [ + date(event_config.event_start_date).format(__('Y-m-d')), + date(event_config.event_end_date).format(__('Y-m-d')) + ]) }} <br> + {% endif %} + {% endblock %} + + <a href="{{ config('faq_url') }}">{{ __('FAQ') }}</a> + · <a href="{{ config('contact_email') }}"> + <span class="glyphicon glyphicon-envelope"></span> {{ __('Contact') }} + </a> + · <a href="https://github.com/engelsystem/engelsystem/issues">{{ __('Bugs / Features') }}</a> + · <a href="https://github.com/engelsystem/engelsystem/">{{ __('Development Platform') }}</a> + · <a href="{{ url('credits') }}">{{ __('Credits') }}</a> + </div> +</div> diff --git a/resources/views/layouts/parts/navbar.twig b/resources/views/layouts/parts/navbar.twig new file mode 100644 index 00000000..a718fc48 --- /dev/null +++ b/resources/views/layouts/parts/navbar.twig @@ -0,0 +1,74 @@ +{% import _self as elements %} + +{% macro toolbar_item(label, link, active_page, icon) %} + <li{% if page() == active_page %} class="active"{% endif %}> + <a href="{{ link }}"> + {% if icon %}<span class="glyphicon {{ icon }}"></span>{% endif %} + {{ label|raw }} + </a> + </li> +{% endmacro %} + +<div class="navbar navbar-default navbar-fixed-top"> + <div class="container-fluid"> + {% block navbar %} + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" + data-toggle="collapse" data-target="#navbar-collapse-1"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="{{ url('/') }}"> + <span class="icon-icon_angel"></span> <strong class="visible-lg-inline">ENGELSYSTEM</strong> + </a> + </div> + + {% block menu %} + <div class="collapse navbar-collapse" id="navbar-collapse-1"> + {% block menu_items %} + {{ menu() }} + {% endblock %} + + {% block menu_toolbar %} + <ul class="nav navbar-nav navbar-right"> + + {% if is_user() %} + {{ elements.toolbar_item(menuUserShiftState(user), url('shifts', {'action': 'next'}), '', 'glyphicon-time') }} + {% elseif has_permission_to('register') and config('registration_enabled') %} + {{ elements.toolbar_item(__('Register'), url('register'), 'register', 'glyphicon-plus') }} + {% endif %} + + {% if has_permission_to('login') %} + {{ elements.toolbar_item(__('Login'), url('login'), 'login', 'glyphicon-log-in') }} + {% endif %} + + {% if is_user() and has_permission_to('user_messages') %} + {{ elements.toolbar_item(menuUserMessages(), url('user-messages'), 'user-messages', 'glyphicon-envelope') }} + {% endif %} + + {{ menuUserHints() }} + + {% if has_permission_to('user_myshifts') %} + {{ elements.toolbar_item(user.Nick, url('users', {'action': 'view'}), 'users', 'icon-icon_angel') }} + {% endif %} + + {% if has_permission_to('user_settings') or has_permission_to('logout') %} + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown"> + <span class="caret"></span> + </a> + <ul class="dropdown-menu" role="menu"> + {{ menuUserSubmenu()|join(" ")|raw }} + </ul> + </li> + {% endif %} + + </ul> + {% endblock %} + </div> + {% endblock %} + {% endblock %} + </div> +</div> diff --git a/resources/views/pages/credits.twig b/resources/views/pages/credits.twig new file mode 100644 index 00000000..ff2bf873 --- /dev/null +++ b/resources/views/pages/credits.twig @@ -0,0 +1,42 @@ +{% extends "layouts/app.twig" %} + +{% block title %}{{ __('Credits') }}{% endblock %} + +{% block content %} + <div class="container"> + <h1>Credits</h1> + <div class="row"> + <div class="col-md-4"> + <h2>Source code</h2> + <p> + The original system was written by <a href="https://github.com/cookieBerlin/engelsystem">cookie</a>. + It was then completely rewritten and enhanced by + <a href="https://notrademark.de">msquare</a> (maintainer), + <a href="https://myigel.name">MyIgel</a>, + <a href="https://mortzu.de">mortzu</a>, + <a href="https://jplitza.de">jplitza</a> and + <a href="https://github.com/gnomus">gnomus</a>. + </p> + <p> + Please look at the <a href="https://github.com/engelsystem/engelsystem/graphs/contributors"> + contributor list on github</a> for a more complete version. + </p> + </div> + <div class="col-md-4"> + <h2>Hosting</h2> + <p> + Webspace, development platform and domain on <a href="https://engelsystem.de">engelsystem.de</a> + is currently provided by <a href="https://www.wybt.net/">would you buy this?</a> (ichdasich) + and adminstrated by <a href="https://mortzu.de">mortzu</a>, + <a href="http://derf.homelinux.org">derf</a> and ichdasich. + </p> + </div> + <div class="col-md-4"> + <h2>Translation</h2> + <p> + Many thanks for the german translation: <a href="http://e7p.de">e7p</a> + </p> + </div> + </div> + </div> +{% endblock %} diff --git a/resources/views/pages/user-shifts.html b/resources/views/pages/user-shifts.html new file mode 100644 index 00000000..2278cc07 --- /dev/null +++ b/resources/views/pages/user-shifts.html @@ -0,0 +1,85 @@ +<script type="text/javascript"> + function set_to_now(id) { + document.getElementById(id + '_time').value = moment().format('HH:mm'); + var days = document.getElementById(id + '_day').getElementsByTagName( + 'option'); + for (var i = 0; i < days.length; i++) { + if (days[i].value === moment().format('YYYY-MM-DD')) { + days[i].selected = true; + } + } + } +</script> + +<form class="form-inline" action=""> + <input type="hidden" name="p" value="user_shifts"> + <div class="row"> + <div class="col-md-6"> + <h1>%title%</h1> + <div class="form-group">%start_select%</div> + <div class="form-group"> + <div class="input-group"> + <input type="time" class="form-control" id="start_time" name="start_time" size="5" + pattern="^\d{1,2}:\d{2}$" placeholder="HH:MM" maxlength="5" value="%start_time%"> + <div class="input-group-btn"> + <button class="btn btn-default" title="Now" type="button" onclick="set_to_now('start');"> + <span class="glyphicon glyphicon-time"></span> + </button> + </div> + </div> + </div> + – + <div class="form-group">%end_select%</div> + <div class="form-group"> + <div class="input-group"> + <input type="time" class="form-control" id="end_time" name="end_time" size="5" + pattern="^\d{1,2}:\d{2}$" placeholder="HH:MM" maxlength="5" value="%end_time%"> + <div class="input-group-btn"> + <button class="btn btn-default" title="Now" type="button" onclick="set_to_now('end');"> + <span class="glyphicon glyphicon-time"></span> + </button> + </div> + </div> + </div> + <div class="form-group" style="margin-top: .5em"> + <div class="btn-group"> + <a href="javascript:setDay(-1)" class="btn btn-default ">%set_yesterday%</a> + <a href="javascript:setDay()" class="btn btn-default ">%set_today%</a> + <a href="javascript:setDay(1)" class="btn btn-default ">%set_tomorrow%</a> + </div> + <div class="btn-group"> + <a href="javascript:setHours(-8)" class="btn btn-default ">%set_last_8h%</a> + <a href="javascript:setHours(-4)" class="btn btn-default ">%set_last_4h%</a> + <a href="javascript:setHours(4)" class="btn btn-default ">%set_next_4h%</a> + <a href="javascript:setHours(8)" class="btn btn-default ">%set_next_8h%</a> + </div> + </div> + <div class="form-group" style="margin-top: .5em"> + <div class="btn-group"> + %buttons% + </div> + </div> + </div> + <div class="col-md-6"> + <button class="btn btn-info btn-sm" style="margin-top: 20px; margin-bottom:10px" type="button" + data-toggle="collapse" + data-target="#collapseRoomSelect" aria-expanded="false" + aria-controls="collapseRoomSelect" + > + collapse/show filters + </button> + <div class="collapse in row" id="collapseRoomSelect"> + <div class="col-xs-4 col-xxs-12">%room_select%</div> + <div class="col-xs-4 col-xxs-12">%type_select%</div> + <div class="col-xs-4 col-xxs-12">%filled_select%</div> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <div><p>%task_notice%</p></div> + <input class="btn btn-primary" type="submit" style="width:75%; margin-bottom: 20px" value="%filter%"> + </div> + </div> +</form> +%shifts_table% %ical_text% |