Update Semantic

Fixes #40,#24
This commit is contained in:
Tim Schumacher 2015-03-29 19:33:23 +02:00
parent 1715f27f44
commit 2027b94179
621 changed files with 172488 additions and 15939 deletions

View file

@ -1,3 +1,18 @@
.card {
h2 {
margin-bottom: 0.3em !important;
a {
color: inherit;
}
}
.meta {
.label,.button {
margin-bottom: 0.3em;
margin-top: 0.3em;
}
}
}
.event.box {
h2 {
padding: 0.5rem;

View file

@ -1,6 +1,5 @@
body {
margin: 0;
font-family: 'Roboto', sans-serif;
margin: 40px 0 0;
}
header {

View file

@ -49,7 +49,6 @@ jQuery(document).ready(function () {
if (!(jQuery('input[name=location_lat]').val() == undefined)) {
jQuery('input[name=location_lat]').val(coords.lat);
jQuery('input[name=location_lon]').val(coords.lng);
jQuery('input[name=location]').css('margin-bottom', '3.2rem');
jQuery('span.coords').text('Folgende Koordinaten sind angegeben: lat:' + coords.lat + ', lon:' + coords.lng);
} else {
jQuery('input[name=geocords]').val(coords.lat + ',' + coords.lng);
@ -83,9 +82,35 @@ jQuery(document).ready(function () {
}
});
$(document).ready(function() {
function calcBoxSize(columns) {
var card_selector = jQuery('.ui.cards .card');
var screen_width = $(window).width() - 14 - 14; /* padding of basic segment */
// first check if we can display 4 cards on the screen with a minimum width of 399px
var box_width = Math.floor((screen_width / columns)) - 10;
if ((box_width >= 395) || (columns == 1)) {
card_selector.css('width',box_width);
} else {
calcBoxSize(columns - 1);
}
}
if (jQuery('#view-map').length == 1) {
$(window).resize(function(){
var card_selector = jQuery('.ui.cards .card');
if (card_selector.length > 0) {
calcBoxSize(4);
}
});
$(document).ready(function() {
var view_map_selector = jQuery('#view-map');
var card_selector = jQuery('.ui.cards .card');
if (card_selector.length > 0) {
calcBoxSize(4);
}
if (view_map_selector.length == 1) {
jQuery('.show_map').click(addGeoCoordinates);
map = L.map('view-map');
@ -108,8 +133,8 @@ $(document).ready(function() {
},
onVisible: function () {
map.invalidateSize(true);
var lat = $('#view-map').data('lat');
var lon = $('#view-map').data('lon');
var lat = view_map_selector.data('lat');
var lon = view_map_selector.data('lon');
if ((lat > 0) && (lon > 0)) {
map.setView([lat, lon], 16);
var latlng = new L.LatLng(lat, lon);

View file

@ -19,14 +19,12 @@
{% endblock %}
{% block body -%}
<div class="ui one column page grid">
<div class="ui column">
<h1>Termin bearbeiten</h1>
</div>
<div class="ui basic segment">
<h1 class="ui dividing green header">Termin bearbeiten</h1>
</div>
<div class="ui one column page grid">
<div class="ui column">
<div class="ui basic segment">
<div class="ui segment">
{{ include('CalciferBundle:Event:event_form.html.twig',{'entity':entity}) }}
</div>
</div>

View file

@ -1,57 +1,61 @@
<div class="ui column">
<div class="ui segment event box">
<h2 class="ui dividing header segment green inverted"><a
<div class="ui {% if (detail|default(false)) %}fluid {% endif %}card">
<div class="content">
<h2 class="ui green dividing header"><a
href="{{ path('_show', { 'slug': entity.slug }) }}">{{ entity.summary }}</a>
</h2>
<div class="meta">
<div class="ui green compact small label">
<i class="calendar icon"></i> {{ entity.getFormatedDate() }}
</div>
{% if entity.location is not null %}
<a class="ui green compact small label"
href="{{ path('location_show', {'slug' : entity.location.slug }) }}">
<i class="map marker icon"></i> {{ entity.location.name }}
</a>
{% endif %}
{% if (detail|default(false)) %}
{% if entity.tags|length > 0 %}
{% for tag in entity.tags %}
<a class="ui green compact small label" href="{{ path('tag_show', {'slug' : tag.slug }) }}">
<i class="tag icon"></i> {{ tag.name }}
</a>
{% endfor %}
{% endif %}
{% endif %}
{% if entity.url|length > 0 %}
<a class="ui green compact small label" href="{{ entity.url }}">
<i class="globe icon"></i> {{ entity.url|truncate(30) }}
</a>
{% endif %}
</div>
<div class="">
{% if truncate_summary|default(false) %}
<p>{{ entity.description|truncate(255)|markdown }}</p>
{% else %}
<p>{{ entity.description|markdown }}</p>
{% endif %}
</div>
{% if (detail|default(false)) %}
<p class="action">
<a href="{{ path('_edit', {'slug' : entity.slug }) }}"><i
class="circular icon edit green inverted link"></i>Bearbeiten</a>
</p>
<p class="action">
<a href="{{ path('_delete', {'slug' : entity.slug }) }}"><i class="circular icon delete green inverted link"></i>Löschen</a>
</p>
<p class="action">
<a href="{{ path('_copy', {'slug' : entity.slug }) }}"><i class="circular icon copy green inverted link"></i>Kopieren</a>
</p>
{% endif %}
<p class="startdate ">
<i class="circular icon calendar green inverted link" title="Wann?"
data-content="Wann?"></i>{{ entity.getFormatedDate() }}
</p>
{% if entity.location is not null %}
<p class="location">
<a href="{{ path('location_show', {'slug' : entity.location.slug }) }}"><i
class="circular icon map marker green inverted link" title="Wo?"
data-content="Wo?"></i>{{ entity.location.name }}</a>
</p>
{% endif %}
{% if entity.tags|length > 0 %}
<ul class="tags">
{% for tag in entity.tags %}
<li class="tag"><a href="{{ path('tag_show',{'slug' : tag.slug }) }}"><i
class="circular icon tag green inverted link"></i>{{ tag.name }}</a></li>
{% endfor %}
</ul>
{% endif %}
{% if entity.url|length > 0 %}
<p class="url">
<a href="{{ entity.url }}"><i class="circular icon globe green inverted link"></i>{{ entity.url }}</a>
</p>
{% endif %}
<div class="ui clearing divider"></div>
{% if truncate_summary|default(false) %}
<p>{{ entity.description|truncate(255)|markdown }}</p>
{% else %}
<p>{{ entity.description|markdown }}</p>
<a class="ui green tiny compact labeled icon button"
href="{{ path('_edit', {'slug' : entity.slug }) }}">
<i class="edit icon"></i>
Bearbeiten
</a>
<a class="ui green tiny compact labeled icon button"
href="{{ path('_delete', {'slug' : entity.slug }) }}">
<i class="delete icon"></i>
Löschen
</a>
<a class="ui green tiny compact labeled icon button"
href="{{ path('_copy', {'slug' : entity.slug }) }}">
<i class="copy icon"></i>
Kopieren
</a>
{% endif %}
</div>
</div>

View file

@ -1,142 +1,148 @@
<form method="post" action="{% if entity.id|default(0) > 0 %}{{ path('_update',{'slug':entity.slug}) }}{% else %}{{ path('_create') }}{% endif %}">
<div class="ui form segment">
<div class="field{% if(errors|default('0') != 0) %} {% if('startdate' in errors|keys) %}error{% endif %}{% endif %}">
<label class="control-label required" for="event_startdate">Startdatum</label>
<form class="ui form" method="post"
action="{% if entity.id|default(0) > 0 %}{{ path('_update',{'slug':entity.slug}) }}{% else %}{{ path('_create') }}{% endif %}">
<div class="required field{% if(errors|default('0') != 0) %} {% if('startdate' in errors|keys) %}error{% endif %}{% endif %}">
<label for="event_startdate">Startdatum</label>
<div class="ui left labeled icon input">
<input type="datetime"
id="event_startdate"
name="startdate"
required="required"
value="{{ entity.startdate.format('Y-m-d H:i')|default('') }}"
placeholder="{{ "now"|date('Y-m-d H:i') }}"
class="form-control">
{% if(errors|default('0') != 0) %} {% if('startdate' in errors|keys) %}
<div class="ui icon input">
<input type="datetime"
id="event_startdate"
name="startdate"
required="required"
value="{{ entity.startdate.format('Y-m-d H:i')|default('') }}"
placeholder="{{ "now"|date('Y-m-d H:i') }}"
class="form-control">
{% if(errors|default('0') != 0) %} {% if('startdate' in errors|keys) %}
<div class="ui red pointing above ui label">{{ errors.startdate }}</div>
{% endif %}{% endif %}
{% endif %}{% endif %}
<i class="icon calendar"></i>
<div class="ui corner label">
<i class="icon asterisk"></i>
</div>
</div>
<i class="icon calendar"></i>
</div>
<div class="field{% if(errors|default('0') != 0) %} {% if('enddate' in errors|keys) %}error{% endif %}{% endif %}">
<label class="control-label required" for="event_enddate">Enddatum</label>
<div class="ui left labeled icon input">
<input type="datetime"
id="event_enddate"
name="enddate"
value="{{ entity.enddate.format('Y-m-d H:i')|default('') }}"
placeholder="{{ "now"|date('Y-m-d H:i') }}"
class="form-control">
{% if(errors|default('0') != 0) %} {% if('enddate' in errors|keys) %}
<div class="ui red pointing above ui label">{{ errors.enddate }}</div>
{% endif %}{% endif %}
<i class="icon calendar"></i>
</div>
<div class="ui label">
Bitte gebe das Startdatum im Format <a href="http://de.wikipedia.org/wiki/ISO_8601">ISO 8601</a> an.
</div>
<div class="field{% if(errors|default('0') != 0) %} {% if('summary' in errors|keys) %}error{% endif %}{% endif %}">
<label class="" for="event_summary">Zusammenfassung</label>
</div>
<div class="required field{% if(errors|default('0') != 0) %} {% if('enddate' in errors|keys) %}error{% endif %}{% endif %}">
<label for="event_enddate">Enddatum</label>
<div class="ui left labeled input">
<input type="text"
id="event_summary"
name="summary"
value="{{ entity.summary|default('') }}"
required="required"
maxlength="255"
class="form-control">
<div class="ui icon input">
<input type="datetime"
id="event_enddate"
name="enddate"
value="{{ entity.enddate.format('Y-m-d H:i')|default('') }}"
placeholder="{{ "now"|date('Y-m-d H:i') }}"
class="form-control">
{% if(errors|default('0') != 0) %} {% if('summary' in errors|keys) %}
<div class="ui red pointing above ui label">{{ errors.summary }}</div>
{% endif %}{% endif %}
{% if(errors|default('0') != 0) %} {% if('enddate' in errors|keys) %}
<div class="ui red pointing above ui label">{{ errors.enddate }}</div>
{% endif %}{% endif %}
<div class="ui corner label">
<i class="icon asterisk"></i>
</div>
</div>
<i class="icon calendar"></i>
</div>
<div class="field">
<label class="control-label required" for="event_summary">Beschreibung</label>
<div class="ui left labeled icon input attached-label">
<textarea name="description">{{ entity.description|default('') }}</textarea>
<div class="ui bottom attached label">Du kannst hier <a href="https://en.wikipedia.org/wiki/Markdown">Markdown</a> benutzen.</div>
</div>
<div class="ui label">
Bitte gebe das Enddatum im Format <a href="http://de.wikipedia.org/wiki/ISO_8601">ISO 8601</a> an.
</div>
</div>
<div class="required field{% if(errors|default('0') != 0) %} {% if('summary' in errors|keys) %}error{% endif %}{% endif %}">
<label for="event_summary">Zusammenfassung</label>
<div class="field">
<label class="control-label required" for="event_url">URL</label>
<div class="ui input">
<input type="text"
id="event_summary"
name="summary"
value="{{ entity.summary|default('') }}"
required="required"
maxlength="255"
class="form-control">
<div class="ui left labeled icon input">
<input type="text"
id="event_url"
name="url"
maxlength="255"
value="{{ entity.url|default('') }}"
class="form-control">
<i class="icon globe"></i>
</div>
{% if(errors|default('0') != 0) %} {% if('summary' in errors|keys) %}
<div class="ui red pointing above ui label">{{ errors.summary }}</div>
{% endif %}{% endif %}
</div>
<div class="field">
<label class="control-label required" for="event_location">Ort</label>
<div class="ui left labeled icon input attached-{% if entity.location.lat|default(0) > 0 %}geo-{% endif %}label">
<input type="text"
id="event_location"
name="location"
maxlength="255"
value="{{ entity.location.name|default('') }}"
class="form-control">
<input type="hidden" name="location_lat" value="{{ entity.location.lat|default('') }}">
<input type="hidden" name="location_lon" value="{{ entity.location.lon|default('') }}">
<i class="icon map marker"></i>
<div class="ui bottom attached label">
Du kannst zu diesem Ort auch Geokoordinaten <a href="#" class="add_geo">hinterlegen</a>.<br />
<span class="coords">{% if entity.location.lat|default(0) > 0 %}Folgende Koordinaten sind angegeben: lat:{{ entity.location.lat }}, lon:{{ entity.location.lon }}{% endif %}</span>
</div>
<div class="ui modal geo chooser">
<i class="close icon"></i>
<div class="header">
Wähle einen Punkt auf der Karte
</div>
<div class="content">
<div id="map"></div>
</div>
<div class="actions">
<div class="ui button cancel">
Cancel
</div>
<div class="ui button ok">
Okay
</div>
</div>
</div>
</div>
</div>
<div class="field">
<label class="" for="event_tags">Tags</label>
<div class="ui left icon input attached-label">
<input type="text"
id="event_tags"
name="tags"
value="{{ entity.getTagsAsText() }}"
class="form-control">
<i class="icon tag"></i>
<div class="ui bottom attached label">Du kannst hier kommasepariert <a href="https://en.wikipedia.org/wiki/Tag_%28metadata%29">Tags</a> angeben.</div>
</div>
</div>
<input type="submit" class="ui button blue" value="Speichern"/>
</div>
<div class="required field">
<label for="event_summary">Beschreibung</label>
<div class="ui input">
<textarea name="description">{{ entity.description|default('') }}</textarea>
</div>
<div class="ui label">Du kannst hier <a href="https://en.wikipedia.org/wiki/Markdown">Markdown</a>
benutzen.
</div>
</div>
<div class="field">
<label for="event_url">URL</label>
<div class="ui icon input">
<input type="text"
id="event_url"
name="url"
maxlength="255"
value="{{ entity.url|default('') }}"
class="form-control">
<i class="icon globe"></i>
</div>
<div class="ui label">
Vergesse nicht das https:// zur URL anzugeben.
</div>
</div>
<div class="required field">
<label for="event_location">Ort</label>
<div class="ui icon input attached-{% if entity.location.lat|default(0) > 0 %}geo-{% endif %}label">
<input type="text"
id="event_location"
name="location"
maxlength="255"
value="{{ entity.location.name|default('') }}"
class="form-control">
<input type="hidden" name="location_lat" value="{{ entity.location.lat|default('') }}">
<input type="hidden" name="location_lon" value="{{ entity.location.lon|default('') }}">
<i class="icon map marker"></i>
</div>
<div class="ui label">
Du kannst zu diesem Ort auch Geokoordinaten <a href="#" class="add_geo">hinterlegen</a> (JavaScript erforderlich).<br/>
<span class="coords">{% if entity.location.lat|default(0) > 0 %}Folgende Koordinaten sind angegeben: lat:{{ entity.location.lat }}, lon:{{ entity.location.lon }}{% endif %}</span>
</div>
<div class="ui modal geo chooser">
<i class="close icon"></i>
<div class="header">
Wähle einen Punkt auf der Karte
</div>
<div class="content">
<div id="map"></div>
</div>
<div class="actions">
<div class="ui button cancel">
Cancel
</div>
<div class="ui button ok">
Okay
</div>
</div>
</div>
</div>
<div class="field">
<label for="event_tags">Tags</label>
<div class="ui icon input">
<input type="text"
id="event_tags"
name="tags"
value="{{ entity.getTagsAsText() }}"
class="form-control">
<i class="icon tag"></i>
</div>
<div class="ui label">Du kannst hier kommasepariert <a
href="https://en.wikipedia.org/wiki/Tag_%28metadata%29">Tags</a> angeben.
</div>
</div>
<input type="submit" class="ui button green" value="Speichern"/>
</form>

View file

@ -2,92 +2,98 @@
{% block css %}
{% stylesheets filter="compass"
"@CalciferBundle/Resources/assets/css/events.scss"
"@CalciferBundle/Resources/assets/css/leaflet.scss"
%}
<link rel="stylesheet" href="{{ asset_url }}" />
"@CalciferBundle/Resources/assets/css/events.scss"
"@CalciferBundle/Resources/assets/css/leaflet.scss" %}
<link rel="stylesheet" href="{{ asset_url }}"/>
{% endstylesheets %}
{% endblock %}
{% block javascripts %}
{% javascripts
"@CalciferBundle/Resources/assets/js/events.js"
"@CalciferBundle/Resources/assets/js/leaflet.js"
%}
"@CalciferBundle/Resources/assets/js/leaflet.js" %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock %}
{% block body -%}
<div class="ui one column page grid title">
<div class="ui column">
<h1>
Termine
{% if tags|default(false) %}
{% if tags|length == 1 %}
für Tag {{ tags[0].name }}
{% elseif(tags|length == 2) %}
für die Tags {{ tags[0].name }} {% if operator == 'or' %}oder{% else %}und{% endif %} {{ tags[1].name }}
{% else %}
für die Tags
{% for tag in tags %}
{% if not loop.last %}
{{ tag.name }}{% if loop.index < (tags|length - 1) %},{% endif %}
{% else %}
{% if operator == 'or' %}oder{% else %}und{% endif %} {{ tag.name }}
{% endif %}
{% endfor %}
{% endif %}
<div class="ui basic segment">
<h1 class="ui green dividing header">
Termine
{% if tags|default(false) %}
{% if tags|length == 1 %}
für Tag {{ tags[0].name }}
{% elseif(tags|length == 2) %}
für die Tags {{ tags[0].name }} {% if operator == 'or' %}oder{% else %}und{% endif %} {{ tags[1].name }}
{% else %}
für die Tags
{% for tag in tags %}
{% if not loop.last %}
{{ tag.name }}{% if loop.index < (tags|length - 1) %},{% endif %}
{% else %}
{% if operator == 'or' %}oder{% else %}und{% endif %} {{ tag.name }}
{% endif %}
{% endfor %}
{% endif %}
{% if location|default(false) %} für Ort „{{ location.name }}“ <a class="location-edit" href="{{ path("location_edit",{slug:location.slug}) }}"><i class="ui icon edit inverted green circular link" data-content="Ort bearbeiten" title="Ort bearbeiten"></i> </a> {% endif %}
</h1>
{% if tag|default(false) %}
<a href="{{ path('tag_show',{'slug' : tag.slug }) }}.ics"><i class="icon calendar"></i>Link zur Kalenderdatei</a>
{% endif %}
{% if location|default(false) %}
{% if (location.description|length > 0) or location.hasAddress() %}
<div id="location-description" class="ui message green">
{% if (location.description|length > 0) %}
<p>{{ location.description|markdown }}</p>
{% endif %}
{% if (location.hasAddress()) %}
<div class="ui section divider"></div>
<p>
Anschrift:<br/>
{{ location.streetaddress }}{% if(location.streetnumber|length > 0) %} {{ location.streetnumber }}{% endif %}<br/>
{% if location|default(false) %} für Ort „{{ location.name }}“ <a class="location-edit"
href="{{ path("location_edit",{slug:location.slug}) }}"><i
class="ui icon edit green link" data-content="Ort bearbeiten"
title="Ort bearbeiten"></i> </a> {% endif %}
</h1>
{% if tag|default(false) %}
<a href="{{ path('tag_show',{'slug' : tag.slug }) }}.ics"><i class="icon calendar"></i>Link zur
Kalenderdatei</a>
{% endif %}
{% if location|default(false) %}
{% if (location.description|length > 0) or location.hasAddress() %}
<div id="location-description" class="ui message green">
{% if (location.description|length > 0) %}
<p>{{ location.description|markdown }}</p>
{% endif %}
{% if (location.hasAddress()) %}
<div class="ui section divider"></div>
<p>
Anschrift:<br/>
{{ location.streetaddress }}{% if(location.streetnumber|length > 0) %} {{ location.streetnumber }}{% endif %}
<br/>
{% if(location.zipcode|length > 0) %}{{ location.zipcode }} {% endif %}{{ location.city }}
</p>
{% endif %}
{% if ((location.lon > 0) and (location.lat > 0)) %}
<p><a href="" class="show_map">Auf einer OpenStreetMap-Karte anzeigen</a></p>
<div class="ui modal geo viewer">
<i class="close icon"></i>
<div class="header">
{{ location.name }}<br/>
{{ location.streetaddress }}{% if(location.streetnumber|length > 0) %} {{ location.streetnumber }}{% endif %}
<br/>
{% if(location.zipcode|length > 0) %}{{ location.zipcode }} {% endif %}{{ location.city }}
</p>
{% endif %}
{% if ((location.lon > 0) and (location.lat > 0)) %}
<p><a href="" class="show_map">Auf einer OpenStreetMap-Karte anzeigen</a></p>
<div class="ui modal geo viewer">
<i class="close icon"></i>
<div class="header">
{{ location.name }}<br/>
{{ location.streetaddress }}{% if(location.streetnumber|length > 0) %} {{ location.streetnumber }}{% endif %}<br/>
{% if(location.zipcode|length > 0) %}{{ location.zipcode }} {% endif %}{{ location.city }}
</div>
<div class="content">
<div id="view-map" data-lat="{{ location.lat }}" data-lon="{{ location.lon }}"></div>
</div>
<div class="actions">
<div class="ui button ok">
Schließen
</div>
</div>
<div class="content">
<div id="view-map" data-lat="{{ location.lat }}"
data-lon="{{ location.lon }}"></div>
</div>
<div class="actions">
<div class="ui button ok">
Schließen
</div>
</div>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}
</div>
{% if entities|length > 0 %}
<div class="ui three column page grid stackable">
{% for entity in entities %}
{{ include('CalciferBundle:Event:event_box.html.twig',{'truncate_summary':true}) }}
{% endfor %}
<div class="ui basic segment">
<div class="ui cards">
{% for entity in entities %}
{{ include('CalciferBundle:Event:event_box.html.twig',{'truncate_summary':true}) }}
{% endfor %}
</div>
</div>
{% else %}
<div class="ui one column page grid stackable">

View file

@ -17,7 +17,7 @@
{% endblock %}
{% block body -%}
<div class="ui one column page grid">
<div class="ui basic segment">
{{ include('CalciferBundle:Event:event_box.html.twig',{'entity' : entity,'detail' : true}) }}
</div>
{% endblock %}

View file

@ -19,157 +19,151 @@
{% endblock %}
{% block body -%}
<div class="ui one column page grid">
<div class="ui column">
<h1>Ort bearbeiten</h1>
</div>
<div class="ui basic segment">
<h1 class="ui green dividing header">Ort bearbeiten</h1>
</div>
<div class="ui one column page grid">
<div class="ui column">
<form method="post"
<div class="ui basic segment">
<div class="ui segment">
<form class="ui form"
method="post"
action="{{ path('location_update',{'slug':entity.slug}) }}">
{% set errors = app.session.flashbag.get('error') %}
{% if errors|length > 0 %}
<div class="ui error message">
<div class="header">Bitte korrigiere folgende Fehler:</div>
<ul class="list">
{% for flashMessage in errors %}
<li>{{ flashMessage }}</li>
{% endfor %}
</ul>
</div>
<div class="ui error message">
<div class="header">Bitte korrigiere folgende Fehler:</div>
<ul class="list">
{% for flashMessage in errors %}
<li>{{ flashMessage }}</li>
{% endfor %}
</ul>
</div>
{% endif %}
<div class="ui form segment">
<div class="field">
<label class="" for="location-name">Name</label>
<div class="required field">
<label for="location-name">Name</label>
<div class="ui left labeled input">
<input type="text"
id="location-name"
name="name"
value="{{ entity.name|default('') }}"
required="required"
maxlength="255"
class="form-control">
<div class="ui corner label">
<i class="icon asterisk"></i>
</div>
</div>
<div class="ui left labeled input">
<input type="text"
id="location-name"
name="name"
value="{{ entity.name|default('') }}"
required="required"
maxlength="255"
class="form-control">
</div>
<div class="field">
<label class="control-label required" for="location-description">Beschreibung</label>
<div class="ui left labeled icon input attached-label">
<textarea id="location-description" name="description">{{ entity.description|default('') }}</textarea>
<div class="ui bottom attached label">Du kannst hier <a
href="https://en.wikipedia.org/wiki/Markdown">Markdown</a> benutzen.
</div>
</div>
</div>
<div class="field">
<label class="" for="location-streetaddress">Straße</label>
<div class="ui left labeled input">
<input type="text"
id="location-streetaddress"
name="streetaddress"
value="{{ entity.streetaddress|default('') }}"
required="required"
maxlength="255"
class="form-control">
</div>
</div>
<div class="field">
<label class="" for="location-streetnumber">Hausnummer</label>
<div class="ui left labeled input">
<input type="text"
id="location-streetnumber"
name="streetnumber"
value="{{ entity.streetnumber|default('') }}"
required="required"
maxlength="255"
class="form-control">
</div>
</div>
<div class="field">
<label class="" for="location-zipcode">Postleitzahl</label>
<div class="ui left labeled input">
<input type="text"
id="location-zipcode"
name="zipcode"
value="{{ entity.zipcode|default('') }}"
required="required"
maxlength="255"
class="form-control">
</div>
</div>
<div class="field">
<label class="" for="location-city">Ort</label>
<div class="ui left labeled input">
<input type="text"
id="location-city"
name="city"
value="{{ entity.city|default('') }}"
required="required"
maxlength="255"
class="form-control">
</div>
</div>
<div class="field">
<label class="control-label required" for="location-geocords">Geokoordinaten</label>
<div class="ui left labeled icon input attached-{% if entity.location.lat|default(0) > 0 %}geo-{% endif %}label">
<input type="text"
id="location-geocords"
name="geocords"
maxlength="255"
value="{{ entity.lat|default('0') }},{{ entity.lon|default('0') }}"
class="form-control">
<i class="icon map marker"></i>
<div class="ui bottom attached label">
Gebe entweder Breitengrad und Längengrad (Mit Punkten!) kommasepariert ein oder <a href="#" class="add_geo">wähle einen Punkt auf der Karte aus</a>.
</div>
<div class="ui modal geo chooser">
<i class="close icon"></i>
<div class="header">
Wähle einen Punkt auf der Karte
</div>
<div class="content">
<div id="map"></div>
</div>
<div class="actions">
<div class="ui button cancel">
Cancel
</div>
<div class="ui button ok">
Okay
</div>
</div>
</div>
</div>
</div>
<input type="submit" class="ui button blue" value="Speichern"/>
</div>
<div class="field">
<label class="control-label required" for="location-description">Beschreibung</label>
<div class="ui input">
<textarea id="location-description"
name="description">{{ entity.description|default('') }}</textarea>
</div>
<div class="ui label">Du kannst hier <a
href="https://en.wikipedia.org/wiki/Markdown">Markdown</a> benutzen.
</div>
</div>
<div class="field">
<label for="location-streetaddress">Straße</label>
<div class="ui input">
<input type="text"
id="location-streetaddress"
name="streetaddress"
value="{{ entity.streetaddress|default('') }}"
maxlength="255"
class="form-control">
</div>
</div>
<div class="field">
<label for="location-streetnumber">Hausnummer</label>
<div class="ui input">
<input type="text"
id="location-streetnumber"
name="streetnumber"
value="{{ entity.streetnumber|default('') }}"
maxlength="255"
class="form-control">
</div>
</div>
<div class="field">
<label for="location-zipcode">Postleitzahl</label>
<div class="ui input">
<input type="text"
id="location-zipcode"
name="zipcode"
value="{{ entity.zipcode|default('') }}"
maxlength="255"
class="form-control">
</div>
</div>
<div class="field">
<label class="" for="location-city">Ort</label>
<div class="ui left labeled input">
<input type="text"
id="location-city"
name="city"
value="{{ entity.city|default('') }}"
required="required"
maxlength="255"
class="form-control">
</div>
</div>
<div class="field">
<label class="control-label required" for="location-geocords">Geokoordinaten</label>
<div class="ui icon input">
<input type="text"
id="location-geocords"
name="geocords"
maxlength="255"
value="{{ entity.lat|default('0') }},{{ entity.lon|default('0') }}"
class="form-control">
<i class="icon map marker"></i>
</div>
<div class="ui label">
Gebe entweder Breitengrad und Längengrad (Mit Punkten!) kommasepariert ein oder <a href="#"
class="add_geo">wähle
einen Punkt auf der Karte aus</a>.
</div>
<div class="ui modal geo chooser">
<i class="close icon"></i>
<div class="header">
Wähle einen Punkt auf der Karte
</div>
<div class="content">
<div id="map"></div>
</div>
<div class="actions">
<div class="ui button cancel">
Cancel
</div>
<div class="ui button ok">
Okay
</div>
</div>
</div>
</div>
<input type="submit" class="ui button blue" value="Speichern"/>
</form>
</div>
</div>

View file

@ -4,8 +4,7 @@
{% stylesheets filter="compass"
"@CalciferBundle/Resources/assets/css/jquery.datetimepicker.scss"
"@CalciferBundle/Resources/assets/css/events.scss"
"@CalciferBundle/Resources/assets/css/leaflet.scss"
%}
"@CalciferBundle/Resources/assets/css/leaflet.scss" %}
<link rel="stylesheet" href="{{ asset_url }}"/>
{% endstylesheets %}
{% endblock %}
@ -15,21 +14,18 @@
"@CalciferBundle/Resources/assets/js/jquery.datetimepicker.js"
"@CalciferBundle/Resources/assets/js/repeating_events.js"
"@CalciferBundle/Resources/assets/js/events.js"
"@CalciferBundle/Resources/assets/js/leaflet.js"
%}
"@CalciferBundle/Resources/assets/js/leaflet.js" %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock %}
{% block body -%}
<div class="ui one column page grid">
<div class="ui column">
<h1>Wiederholenden Termin bearbeiten</h1>
</div>
<div class="ui basic segment">
<h1 class="ui green dividing header">Wiederholenden Termin bearbeiten</h1>
</div>
<div class="ui one column page grid">
<div class="ui column">
<div class="ui basic segment">
<div class="ui segment">
{{ include('CalciferBundle:RepeatingEvent:repeating_event_form.html.twig',{'entity':entity}) }}
</div>
</div>

View file

@ -15,51 +15,47 @@
{% endblock %}
{% block body -%}
<div class="ui one column page grid title">
<div class="ui column">
<h1 class="ui header">
Wiederholende Termine
</h1>
</div>
<div class="ui basic segment">
<h1 class="ui green dividing header">
Wiederholende Termine
</h1>
</div>
<div class="ui one column page grid stackable">
<div class="column">
<table class="ui table">
<thead>
<div class="ui basic segment">
<table class="ui table">
<thead>
<tr>
<th>Zusammenfassung</th>
<th>Nächstes Datum</th>
<th>Wiederholungsmuster</th>
<th>Aktionen</th>
</tr>
</thead>
<tbody>
{% for entity in entities %}
<tr>
<th>Zusammenfassung</th>
<th>Nächstes Datum</th>
<th>Wiederholungsmuster</th>
<th>Aktionen</th>
<td>
{{ entity.summary }}
</td>
<td>
{{ entity.nextdate.format('Y-m-d H:i') }}
</td>
<td>
{{ entity.repeating_pattern }}
</td>
<td>
<a href="{{ path('repeating_event_edit', {'slug':entity.slug}) }}">Bearbeiten</a> |
<a href="{{ path('repeating_event_delete', {'slug':entity.slug}) }}">Löschen</a>
</td>
</tr>
</thead>
<tbody>
{% for entity in entities %}
<tr>
<td>
{{ entity.summary }}
</td>
<td>
{{ entity.nextdate.format('Y-m-d H:i') }}
</td>
<td>
{{ entity.repeating_pattern }}
</td>
<td>
<a href="{{ path('repeating_event_edit', {'slug':entity.slug}) }}">Bearbeiten</a> |
<a href="{{ path('repeating_event_delete', {'slug':entity.slug}) }}">Löschen</a>
</td>
</tr>
{% endfor %}
</tbody>
<tfoot>
<tr>
<td colspan="4"><a href="{{ path('repeating_event_new') }}">Neuen wiederholenden Termin anlegen</a></td>
</tr>
</tfoot>
</table>
</div>
{% endfor %}
</tbody>
<tfoot>
<tr>
<td colspan="4"><a class="ui green button" href="{{ path('repeating_event_new') }}">Neuen wiederholenden Termin anlegen</a></td>
</tr>
</tfoot>
</table>
</div>

View file

@ -20,14 +20,12 @@
{% endblock %}
{% block body -%}
<div class="ui one column page grid">
<div class="ui column">
<h1>Wiederholenden Termin erstellen</h1>
</div>
<div class="ui basic segment">
<h1 class="ui green dividing header">Wiederholenden Termin erstellen</h1>
</div>
<div class="ui one column page grid">
<div class="ui column">
<div class="ui basic segment">
<div class="ui segment">
{{ include('CalciferBundle:RepeatingEvent:repeating_event_form.html.twig') }}
</div>
</div>

View file

@ -1,10 +1,9 @@
<form method="post"
<form class="ui form" method="post"
action="{% if entity.id|default(0) > 0 %}{{ path('repeating_event_update',{'slug':entity.slug}) }}{% else %}{{ path('repeating_event_create') }}{% endif %}">
<div class="ui form segment">
<div class="field">
<label class="control-label required" for="event_startdate">Nächster Termin</label>
<div class="required field">
<label for="event_startdate">Nächster Termin</label>
<div class="ui left labeled icon input">
<div class="ui icon input">
<input type="datetime"
id="event_nextdate"
name="nextdate"
@ -15,15 +14,16 @@
<i class="icon calendar"></i>
<div class="ui corner label">
<i class="icon asterisk"></i>
</div>
</div>
<div class="ui label">
Bitte gebe das Datum des nächsten Termin im Format <a href="http://de.wikipedia.org/wiki/ISO_8601">ISO 8601</a> an.
</div>
</div>
<div class="field">
<label class="control-label required" for="event_duration">Dauer</label>
<label for="event_duration">Dauer</label>
<div class="ui left labeled input attached-label">
<div class="ui input">
<input type="text"
id="event_duration"
name="duration"
@ -31,16 +31,16 @@
value="{{ entity.duration }}"
class="form-control">
<div class="ui bottom attached label">
Hier gibst du bitte die Dauer der Veranstaltung in Minuten an.
</div>
</div>
<div class="ui label">
Hier gibst du bitte die Dauer der Veranstaltung in Minuten an.
</div>
</div>
<div class="field">
<label class="control-label required" for="event_duration">Terminwiederholungsmuster</label>
<div class="required field">
<label for="event_duration">Terminwiederholungsmuster</label>
<div class="ui left labeled input attached-label">
<div class="ui input">
<input type="text"
id="repeating_pattern"
name="repeating_pattern"
@ -48,22 +48,18 @@
required="required"
maxlength="255"
class="form-control">
</div>
<div class="ui corner label">
<i class="icon asterisk"></i>
</div>
<div class="ui bottom attached label">
Gebe hier ein <a href="{{ path("repeating_patterns") }}">Wiederholungsmuster</a> an.
</div>
<div class="ui label">
Gebe hier ein <a href="{{ path("repeating_patterns") }}">Wiederholungsmuster</a> an.
</div>
</div>
<div class="field">
<label class="" for="event_summary">Zusammenfassung</label>
<div class="required field">
<label for="event_summary">Zusammenfassung</label>
<div class="ui left labeled input">
<div class="ui input">
<input type="text"
id="event_summary"
name="summary"
@ -71,29 +67,24 @@
required="required"
maxlength="255"
class="form-control">
<div class="ui corner label">
<i class="icon asterisk"></i>
</div>
</div>
</div>
<div class="field">
<label class="control-label required" for="event_summary">Beschreibung</label>
<label for="event_summary">Beschreibung</label>
<div class="ui left labeled icon input attached-label">
<div class="ui input">
<textarea name="description">{{ entity.description|default('') }}</textarea>
<div class="ui bottom attached label">Du kannst hier <a href="https://en.wikipedia.org/wiki/Markdown">Markdown</a>
benutzen.
</div>
</div>
<div class="ui label">Du kannst hier <a href="https://en.wikipedia.org/wiki/Markdown">Markdown</a>
benutzen.
</div>
</div>
<div class="field">
<label class="control-label required" for="event_url">URL</label>
<label for="event_url">URL</label>
<div class="ui left labeled icon input">
<div class="ui icon input">
<input type="text"
id="event_url"
name="url"
@ -104,10 +95,10 @@
</div>
</div>
<div class="field">
<div class="required field">
<label class="control-label required" for="event_location">Ort</label>
<div class="ui left labeled icon input attached-{% if entity.location.lat|default(0) > 0 %}geo-{% endif %}label">
<div class="ui icon input">
<input type="text"
id="event_location"
name="location"
@ -117,27 +108,27 @@
<input type="hidden" name="location_lat" value="{{ entity.location.lat|default('') }}">
<input type="hidden" name="location_lon" value="{{ entity.location.lon|default('') }}">
<i class="icon map marker"></i>
</div>
<div class="ui bottom attached label">
Du kannst zu diesem Ort auch Geokoordinaten <a href="#" class="add_geo">hinterlegen</a>.<br/>
<span class="coords">{% if entity.location.lat|default(0) > 0 %}Folgende Koordinaten sind angegeben: lat:{{ entity.location.lat }}, lon:{{ entity.location.lon }}{% endif %}</span>
<div class="ui label">
Du kannst zu diesem Ort auch Geokoordinaten <a href="#" class="add_geo">hinterlegen</a> (JavaScript erforderlich).<br/>
<span class="coords">{% if entity.location.lat|default(0) > 0 %}Folgende Koordinaten sind angegeben: lat:{{ entity.location.lat }}, lon:{{ entity.location.lon }}{% endif %}</span>
</div>
<div class="ui modal geo chooser">
<i class="close icon"></i>
<div class="header">
Wähle einen Punkt auf der Karte
</div>
<div class="ui modal geo chooser">
<i class="close icon"></i>
<div class="header">
Wähle einen Punkt auf der Karte
<div class="content">
<div id="map"></div>
</div>
<div class="actions">
<div class="ui button cancel">
Cancel
</div>
<div class="content">
<div id="map"></div>
</div>
<div class="actions">
<div class="ui button cancel">
Cancel
</div>
<div class="ui button ok">
Okay
</div>
<div class="ui button ok">
Okay
</div>
</div>
</div>
@ -146,21 +137,20 @@
<div class="field">
<label class="" for="event_tags">Tags</label>
<div class="ui left icon input attached-label">
<div class="ui icon input">
<input type="text"
id="event_tags"
name="tags"
value="{{ entity.getTagsAsText() }}"
class="form-control">
<i class="icon tag"></i>
</div>
<div class="ui bottom attached label">Du kannst hier kommasepariert <a
href="https://en.wikipedia.org/wiki/Tag_%28metadata%29">Tags</a> angeben.
</div>
<div class="ui label">Du kannst hier kommasepariert <a
href="https://en.wikipedia.org/wiki/Tag_%28metadata%29">Tags</a> angeben.
</div>
</div>
<input type="submit" class="ui button blue" value="Speichern"/>
</div>
<input type="submit" class="ui green button" value="Speichern"/>
</form>

View file

@ -15,22 +15,30 @@
{% endblock %}
{% block body -%}
<div class="ui one column page grid title">
<div class="ui column">
<h1 class="ui header">
Wiederholungsmuster
</h1>
</div>
<div class="ui basic segment">
<h1 class="ui green dividing header">
Wiederholungsmuster
</h1>
</div>
<div class="ui one column page grid segment">
<div class="ui column">
<div class="ui basic segment">
<div class="ui segment">
<p>Es gibt 2 verschiedene Wiederholungsmustertypen. Feste Termine oder Interval Termine.</p>
<p>Der erste definiert sich dadurch das der Termin immer an einem bestimmten Tag im Monat passieren soll. Das Hackspace-Plenum findet z.B. am <code>Zweiten Freitag des Monats</code> statt. Die Sicherheitssprechstunde findet immer am <code>Ersten Dienstag des Monats</code> statt. Anhand dieser Beispiele sollte eigentlich klar sein wie dieses Wiederholungsmuster funktioniert:</p>
<p>An erster stelle definiert man die Woche: Erster, Zweiter, Dritter, Letzter (In manchen Fällen kann Dritter und Letzter auch identisch sein).</p>
<p>Der erste definiert sich dadurch das der Termin immer an einem bestimmten Tag im Monat passieren soll.
Das Hackspace-Plenum findet z.B. am „<code>Zweiten Freitag des Monats</code>“ statt. Die
Sicherheitssprechstunde findet immer am „<code>Ersten Dienstag des Monats</code>“ statt. Anhand dieser
Beispiele sollte eigentlich klar sein wie dieses Wiederholungsmuster funktioniert:</p>
<p>An erster stelle definiert man die Woche: Erster, Zweiter, Dritter, Letzter (In manchen Fällen kann
Dritter und Letzter auch identisch sein).</p>
<p>An zweiter stelle definiert man den Wochentag: Montag, Dienstag, Mitwoch usw.</p>
<p>An letzter Stelle steht noch pro Forma „des Monats“</p>
<p>Der zweite Wiederholungstyp ist für regelmäßige Termine wie z.B. die Elektrorunde gedacht, die <code>Alle 7 Tage</code>. Für die Brettspielerei würde man <code>Alle 2 Wochen</code> schreiben.</p>
<p>Der zweite Wiederholungstyp ist für regelmäßige Termine wie z.B. die Elektrorunde gedacht, die „<code>Alle
7 Tage</code>“. Für die Brettspielerei würde man „<code>Alle 2 Wochen</code>“ schreiben.</p>
</div>
</div>

View file

@ -4,15 +4,13 @@
<title>{% block title %}Terminverwaltung Calcifer{% endblock %}</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Bootstrap -->
<link rel="shortcut icon" href="/favicon.png" />
<link href='//fonts.googleapis.com/css?family=Roboto:400,700' rel='stylesheet' type='text/css'>
<link href="/semantic/dist/semantic.css" rel="stylesheet">
{% stylesheets filter="compass"
"@CalciferBundle/Resources/assets/css/main.scss"
"css/semantic.scss"
"css/custom.scss"
"@CalciferBundle/Resources/assets/css/main.scss"
"css/custom.scss"
%}
<link rel="stylesheet" href="{{ asset_url }}" media="screen" />
<link rel="stylesheet" href="{{ asset_url }}"/>
{% endstylesheets %}
{% block css %}
@ -23,28 +21,13 @@
<body>
{% include "CalciferBundle::navigation.html.twig" %}
<div class="ui one column page grid">
<div class="column">
<div id="mission-statement" class="ui message green">
{% image '@CalciferBundle/Resources/assets/images/logo.png' %}
<img
title="Eine Zeichnung von Calcifer. Gezeichnet von simply-Sylvan (http://simply-sylvan.deviantart.com/art/Calcifer-Purple-176746086)"
alt="Eine Zeichnung von Calcifer. Gezeichnet von simply-Sylvan (http://simply-sylvan.deviantart.com/art/Calcifer-Purple-176746086)"
src="{{ asset_url }}"
class="ui image small floated left" />
{% endimage %}
<p>Calcifer ist ein Daemon aus dem Anime <a href="http://anidb.net/perl-bin/animedb.pl?show=anime&amp;aid=1218">„Das wandelnde Schloss“</a>, der sich darum kümmert das sich Howls Schloss weiter bewegt. Diese Terminverwaltung soll dafür sorgen das sich der <a href="https://www.krautspace.de/">Hackspace Jena</a> auch weiter bewegt und viele tolle Termine statfinden.</p>
</div>
</div>
</div>
<div id="main" class="segment">
<div id="main">
{% block body %}{% endblock %}
</div>
<!-- jQuery (necessary for Bootstraps JavaScript plugins) -->
<script src="{{ asset('js/jquery.js') }}"></script>
<!-- Include all JavaScripts, compiled by Assetic -->
<script src="{{ asset('js/semantic.js') }}"></script>
<script src="{{ asset('semantic/dist/semantic.min.js') }}"></script>
{% block javascripts %}{% endblock %}
</body>
</html>

View file

@ -1,9 +1,8 @@
<header class="ui fixed main menu inverted transparent ">
<div class="ui one column page grid">
<div class="ui column">
<div class="title item"><a href="{{ path('') }}">Calcifer</a></div>
<div class="item"><a href="{{ path('_new') }}">Neuer Termin</a> </div>
<div class="item"><a href="{{ path('repeating_event_show') }}">Wiederholende Termine</a></div>
</div>
<header class="ui fixed green main menu">
<div class="ui basic segment">
<div class="title {% if app.request.pathinfo == path('') %}active {% endif %}item"><a href="{{ path('') }}">Start</a></div>
<div class="{% if app.request.pathinfo == path('_new') %}active {% endif %}item"><a href="{{ path('_new') }}">Neuer Termin</a></div>
<div class="{% if app.request.pathinfo == path('repeating_event_show') %}active {% endif %}item"><a href="{{ path('repeating_event_show') }}">Wiederholende Termine</a></div>
<div class="{% if app.request.pathinfo == path('about_calcifer') %}active {% endif %}item"><a href="{{ path('about_calcifer') }}">Über Calcifer</a></div>
</div>
</header>