summaryrefslogtreecommitdiff
path: root/resources/views
diff options
context:
space:
mode:
Diffstat (limited to 'resources/views')
-rw-r--r--resources/views/errors/default.twig7
-rw-r--r--resources/views/layouts/app.twig48
-rw-r--r--resources/views/layouts/maintenance.html71
-rw-r--r--resources/views/layouts/parts/footer.twig36
-rw-r--r--resources/views/layouts/parts/navbar.twig74
-rw-r--r--resources/views/pages/credits.twig42
-rw-r--r--resources/views/pages/user-shifts.html85
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>
+ &#8211;
+ <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%