summaryrefslogtreecommitdiff
path: root/resources/views
diff options
context:
space:
mode:
authorIgor Scheller <igor.scheller@igorshp.de>2019-11-27 23:43:21 +0100
committerIgor Scheller <igor.scheller@igorshp.de>2019-12-08 02:20:48 +0100
commit42721e95726559b4a601240bb5b0fe4e5d755b2a (patch)
tree6810e05f845ca787acc1d02fa82d3df15cd0ef9b /resources/views
parent377b390c97afb9106fd9a139819d00306f996f24 (diff)
Added Schedule parsing and replaced old Fahrplan importer
Resolves #553 (Change Frab Import from xCal to XML) Resolves #538 (Feature Request: Multi Frab Import)
Diffstat (limited to 'resources/views')
-rw-r--r--resources/views/admin/schedule/index.twig41
-rw-r--r--resources/views/admin/schedule/load.twig79
-rw-r--r--resources/views/macros/form.twig13
3 files changed, 133 insertions, 0 deletions
diff --git a/resources/views/admin/schedule/index.twig b/resources/views/admin/schedule/index.twig
new file mode 100644
index 00000000..08a9cb2b
--- /dev/null
+++ b/resources/views/admin/schedule/index.twig
@@ -0,0 +1,41 @@
+{% extends 'layouts/app.twig' %}
+{% import 'macros/base.twig' as m %}
+{% import 'macros/form.twig' as f %}
+
+{% set title %}{% block title %}{{ __('schedule.import.title') }}{% endblock %}{% endset %}
+
+{% block content %}
+ <div class="container">
+ <h1>{% block content_title %}{{ title }}{% endblock %}</h1>
+
+ {% for message in errors|default([]) %}
+ {{ m.alert(__(message), 'danger') }}
+ {% endfor %}
+ {% for message in success|default([]) %}
+ {{ m.alert(__(message), 'success') }}
+ {% endfor %}
+
+ <div class="row">
+ {% block row_content %}
+ <form method="POST" action="{{ url('/admin/schedule/load') }}">
+ {{ csrf() }}
+
+ <div class="col-md-12">
+ <p>{{ __('schedule.import.text') }}</p>
+ </div>
+
+ <div class="col-lg-6">
+ {{ f.input('schedule-url', __('schedule.url'), 'url', {'required': true}) }}
+
+ {{ f.select('shift-type', shift_types|default([]), __('schedule.shift-type')) }}
+
+ {{ f.input('minutes-before', __('schedule.minutes-before'), 'number', {'value': 15, 'required': true}) }}
+ {{ f.input('minutes-after', __('schedule.minutes-after'), 'number', {'value': 15, 'required': true}) }}
+
+ {{ f.submit(__('form.load_schedule')) }}
+ </div>
+ </form>
+ {% endblock %}
+ </div>
+ </div>
+{% endblock %}
diff --git a/resources/views/admin/schedule/load.twig b/resources/views/admin/schedule/load.twig
new file mode 100644
index 00000000..8c936bec
--- /dev/null
+++ b/resources/views/admin/schedule/load.twig
@@ -0,0 +1,79 @@
+{% extends 'admin/schedule/index.twig' %}
+{% import 'macros/form.twig' as f %}
+
+{% block title %}{{ __('schedule.import.load.title') }}{% endblock %}
+
+{% block row_content %}
+ <form method="POST" action="{{ url('/admin/schedule/import') }}">
+ {{ csrf() }}
+ {{ f.hidden('schedule-url', schedule_url) }}
+ {{ f.hidden('shift-type', shift_type) }}
+ {{ f.hidden('minutes-before', minutes_before) }}
+ {{ f.hidden('minutes-after', minutes_after) }}
+
+ <div class="col-lg-12">
+ <p>{{ __('schedule.import.load.info', [schedule.conference.title, schedule.version]) }}</p>
+
+ <h2>{{ __('schedule.import.rooms.add') }}</h2>
+ {{ _self.roomsTable(rooms.add) }}
+
+ <h2>{{ __('schedule.import.shifts.add') }}</h2>
+ {{ _self.shiftsTable(shifts.add) }}
+
+ <h2>{{ __('schedule.import.shifts.update') }}</h2>
+ {{ _self.shiftsTable(shifts.update) }}
+
+ <h2>{{ __('schedule.import.shifts.delete') }}</h2>
+ {{ _self.shiftsTable(shifts.delete) }}
+
+ {{ f.submit(__('form.import')) }}
+ </div>
+ </form>
+{% endblock %}
+
+
+{% macro roomsTable(rooms) %}
+ <div class="table-responsive">
+ <table class="table table-striped">
+ <thead>
+ <tr>
+ <th>{{ __('schedule.import.rooms.name') }}</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ {% for room in rooms %}
+ <tr>
+ <td>{{ room.name }}</td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+ </div>
+{% endmacro %}
+
+{% macro shiftsTable(shifts) %}
+ <div class="table-responsive">
+ <table class="table table-striped">
+ <thead>
+ <tr>
+ <th>{{ __('schedule.import.shift.dates') }}</th>
+ <th>{{ __('schedule.import.shift.type') }}</th>
+ <th>{{ __('schedule.import.shift.title') }}</th>
+ <th>{{ __('schedule.import.shift.room') }}</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ {% for shift in shifts %}
+ <tr>
+ <td>{{ shift.date.format(__('Y-m-d H:i')) }} - {{ shift.endDate.format(__('H:i')) }}</td>
+ <td>{{ shift.type }}</td>
+ <td>{{ shift.title }}{% if shift.subtitle %}<br><small>{{ shift.subtitle }}</small>{% endif %}</td>
+ <td>{{ shift.room.name }}</td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+ </div>
+{% endmacro %}
diff --git a/resources/views/macros/form.twig b/resources/views/macros/form.twig
index 6e821a28..ece85fcf 100644
--- a/resources/views/macros/form.twig
+++ b/resources/views/macros/form.twig
@@ -13,6 +13,19 @@
</div>
{%- endmacro %}
+{% macro select(name, data, label, selected) %}
+ <div class="form-group">
+ {% if label -%}
+ <label for="{{ name }}">{{ label }}</label>
+ {% endif %}
+ <select id="{{ name }}" name="{{ name }}" class="form-control">
+ {% for value,decription in data -%}
+ <option value="{{ value }}" {% if name == selected %} selected{% endif %}>{{ decription }}</option>
+ {% endfor %}
+ </select>
+ </div>
+{%- endmacro %}
+
{% macro hidden(name, value) %}
<input type="hidden" id="{{ name }}" name="{{ name }}" value="{{ value }}">
{%- endmacro %}