Some more template fixes:

- Fixed #992 (Use correct countdown format)
- Fixed #909 (Backend und projector template style)
  * Search bar with same border-radius like login button.
  * Projector: Fixed overlay message style. Allow HTML code (use template filter 'safe').
  * Dashboard: Tooltips, Buttons and Widget fixes.
- Fixed template does not exists error if custom slide is activated.
- Countdown: Add css to show negative countdown in red.
- Add missing translation strings to English po file (for transifex).
This commit is contained in:
Emanuel Schuetze 2013-11-06 00:11:13 +01:00
parent c5bdd67dc4
commit 1fb0a21d0b
19 changed files with 229 additions and 151 deletions

BIN
extras/win32-portable/openslides.exe Executable file → Normal file

Binary file not shown.

View File

@ -4,11 +4,11 @@
<p><a href="{% url 'agenda_add_to_current_list_of_speakers' %}" class="btn"><i class="icon icon-speaker"></i> {% trans 'Put me on the current list of speakers' %}</a></p> <p><a href="{% url 'agenda_add_to_current_list_of_speakers' %}" class="btn"><i class="icon icon-speaker"></i> {% trans 'Put me on the current list of speakers' %}</a></p>
{% endif %} {% endif %}
<p><a href="{% url 'agenda_current_list_of_speakers' %}" class="btn"> {% trans 'Go to current list of speakers' %}</a></p>
{% if perms.agenda.can_manage_agenda %} {% if perms.agenda.can_manage_agenda %}
<hr> <p>
<a href="{% url 'agenda_next_on_current_list_of_speakers' %}" class="btn btn-mini"><i class="icon icon-bell"></i> {% trans 'Next speaker' %}</a> <a href="{% url 'agenda_next_on_current_list_of_speakers' %}" class="btn btn-mini"><i class="icon icon-bell"></i> {% trans 'Next speaker' %}</a>
<a href="{% url 'agenda_end_speach_on_current_list_of_speakers' %}" class="btn btn-mini"><i class="icon icon-bell"></i> {% trans 'End speach' %}</a> <a href="{% url 'agenda_end_speach_on_current_list_of_speakers' %}" class="btn btn-mini"><i class="icon icon-bell"></i> {% trans 'End speach' %}</a>
<br> </p>
{% endif %} {% endif %}
<small><p class="text-right"><a href="{% url 'agenda_current_list_of_speakers' %}"> {% trans 'Go to current list of speakers' %}...</a></p></small>

View File

@ -23,10 +23,12 @@
rel="tooltip" data-original-title="{% trans 'Show' %}"> rel="tooltip" data-original-title="{% trans 'Show' %}">
<i class="icon-facetime-video {% if item.is_active_slide and active_type == 'text' %}icon-white{% endif %}"></i> <i class="icon-facetime-video {% if item.is_active_slide and active_type == 'text' %}icon-white{% endif %}"></i>
</a>&nbsp; </a>&nbsp;
<a href="{{ item|absolute_url:'update' }}" title="{% trans 'Edit' %}" class="btn btn-mini right"> <a href="{{ item|absolute_url:'update' }}"
rel="tooltip" data-original-title="{% trans 'Edit' %}" class="btn btn-mini right">
<i class="icon-pencil"></i> <i class="icon-pencil"></i>
</a> </a>
<a href="{{ item|absolute_url:'projector_preview' }}" title="{% trans 'Preview' %}" class="btn btn-mini right"> <a href="{{ item|absolute_url:'projector_preview' }}"
rel="tooltip" data-original-title="{% trans 'Preview' %}" class="btn btn-mini right">
<i class="icon-search"></i> <i class="icon-search"></i>
</a> </a>
<a href="{{ item|absolute_url:'projector_list_of_speakers' }}" <a href="{{ item|absolute_url:'projector_list_of_speakers' }}"
@ -51,3 +53,5 @@
<li>{% trans 'No items available.' %}</li> <li>{% trans 'No items available.' %}</li>
{% endfor %} {% endfor %}
</ul> </ul>
<small><p class="text-right"><a href="{% url 'item_overview' %}">{% trans "More..." %}</a></p></small>

View File

@ -4,13 +4,16 @@
<ul style="line-height: 180%"> <ul style="line-height: 180%">
{% for assignment in assignments %} {% for assignment in assignments %}
<li class="{% if assignment.is_active_slide %}activeline{% endif %}"> <li class="{% if assignment.is_active_slide %}activeline{% endif %}">
<a href="{{ assignment|absolute_url:'projector' }}" class="activate_link btn {% if assignment.active %}btn-primary{% endif %} btn-mini" title="{% trans 'Show' %}"> <a href="{{ assignment|absolute_url:'projector' }}" class="activate_link btn {% if assignment.active %}btn-primary{% endif %} btn-mini"
rel="tooltip" data-original-title="{% trans 'Show' %}">
<i class="icon-facetime-video {% if assignment.active %}icon-white{% endif %}"></i> <i class="icon-facetime-video {% if assignment.active %}icon-white{% endif %}"></i>
</a>&nbsp; </a>&nbsp;
<a href="{{ assignment|absolute_url:'update' }}" title="{% trans 'Edit' %}" class="btn btn-mini right"> <a href="{{ assignment|absolute_url:'update' }}"
rel="tooltip" data-original-title="{% trans 'Edit' %}" class="btn btn-mini right">
<i class="icon-pencil"></i> <i class="icon-pencil"></i>
</a> </a>
<a href="{{ assignment|absolute_url:'projector_preview' }}" title="{% trans 'Preview' %}" class="btn btn-mini right"> <a href="{{ assignment|absolute_url:'projector_preview' }}"
rel="tooltip" data-original-title="{% trans 'Preview' %}" class="btn btn-mini right">
<i class="icon-search"></i> <i class="icon-search"></i>
</a> </a>
<a href="{{ assignment|absolute_url }}">{{ assignment }}</a> <a href="{{ assignment|absolute_url }}">{{ assignment }}</a>
@ -20,3 +23,4 @@
{% endfor %} {% endfor %}
</ul> </ul>
<small><p class="text-right"><a href="{% url 'assignment_list' %}">{% trans "More..." %}</a></p></small>

View File

@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-11-06 08:56+0100\n" "POT-Creation-Date: 2013-11-07 14:07+0100\n"
"Language: en\n" "Language: en\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -87,7 +87,7 @@ msgstr ""
msgid "Organizational item" msgid "Organizational item"
msgstr "" msgstr ""
#: agenda/models.py:38 core/signals.py:66 mediafile/models.py:26 #: agenda/models.py:38 core/signals.py:67 mediafile/models.py:26
#: mediafile/templates/mediafile/mediafile_list.html:18 motion/forms.py:26 #: mediafile/templates/mediafile/mediafile_list.html:18 motion/forms.py:26
#: motion/models.py:533 participant/models.py:33 participant/views.py:195 #: motion/models.py:533 participant/models.py:33 participant/views.py:195
#: participant/templates/participant/overview.html:48 projector/models.py:116 #: participant/templates/participant/overview.html:48 projector/models.py:116
@ -340,24 +340,24 @@ msgid "Show agenda item"
msgstr "" msgstr ""
#: agenda/templates/agenda/item_row.html:16 #: agenda/templates/agenda/item_row.html:16
#: agenda/templates/agenda/view.html:73 agenda/templates/agenda/widget.html:34 #: agenda/templates/agenda/view.html:73 agenda/templates/agenda/widget.html:36
msgid "Show list of speakers" msgid "Show list of speakers"
msgstr "" msgstr ""
#: agenda/templates/agenda/item_row.html:21 #: agenda/templates/agenda/item_row.html:21
#: agenda/templates/agenda/widget.html:26 #: agenda/templates/agenda/widget.html:27
#: assignment/templates/assignment/assignment_detail.html:174 #: assignment/templates/assignment/assignment_detail.html:174
#: assignment/templates/assignment/assignment_list.html:65 #: assignment/templates/assignment/assignment_list.html:65
#: assignment/templates/assignment/widget.html:10 #: assignment/templates/assignment/widget.html:12
#: mediafile/templates/mediafile/mediafile_list.html:37 #: mediafile/templates/mediafile/mediafile_list.html:37
#: motion/templates/motion/category_list.html:30 #: motion/templates/motion/category_list.html:30
#: motion/templates/motion/motion_list.html:83 #: motion/templates/motion/motion_list.html:83
#: motion/templates/motion/widget.html:10 #: motion/templates/motion/widget.html:12
#: participant/templates/participant/group_overview.html:54 #: participant/templates/participant/group_overview.html:54
#: participant/templates/participant/group_widget.html:10 #: participant/templates/participant/group_widget.html:12
#: participant/templates/participant/overview.html:116 #: participant/templates/participant/overview.html:116
#: participant/templates/participant/user_widget.html:9 #: participant/templates/participant/user_widget.html:11
#: projector/templates/projector/custom_slide_widget.html:26 #: projector/templates/projector/custom_slide_widget.html:31
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
@ -371,7 +371,7 @@ msgstr ""
#: motion/templates/motion/motion_list.html:86 #: motion/templates/motion/motion_list.html:86
#: participant/templates/participant/group_overview.html:58 #: participant/templates/participant/group_overview.html:58
#: participant/templates/participant/overview.html:121 #: participant/templates/participant/overview.html:121
#: projector/templates/projector/custom_slide_widget.html:23 #: projector/templates/projector/custom_slide_widget.html:27
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
@ -380,7 +380,7 @@ msgid "Change status (open/closed)"
msgstr "" msgstr ""
#: agenda/templates/agenda/item_row.html:35 #: agenda/templates/agenda/item_row.html:35
#: agenda/templates/agenda/widget.html:40 #: agenda/templates/agenda/widget.html:42
msgid "Show summary for this item" msgid "Show summary for this item"
msgstr "" msgstr ""
@ -445,7 +445,7 @@ msgstr ""
#: motion/templates/motion/motion_list.html:24 #: motion/templates/motion/motion_list.html:24
#: participant/templates/participant/group_overview.html:22 #: participant/templates/participant/group_overview.html:22
#: participant/templates/participant/overview.html:23 #: participant/templates/participant/overview.html:23
#: projector/templates/projector/custom_slide_widget.html:39 #: projector/templates/projector/custom_slide_widget.html:44
msgid "New" msgid "New"
msgstr "" msgstr ""
@ -499,8 +499,8 @@ msgid "Show agenda"
msgstr "" msgstr ""
#: agenda/templates/agenda/overview.html:125 #: agenda/templates/agenda/overview.html:125
#: agenda/templates/agenda/widget.html:51 #: agenda/templates/agenda/widget.html:53
#: projector/templates/projector/custom_slide_widget.html:34 #: projector/templates/projector/custom_slide_widget.html:40
msgid "No items available." msgid "No items available."
msgstr "" msgstr ""
@ -508,19 +508,19 @@ msgstr ""
msgid "Put me on the current list of speakers" msgid "Put me on the current list of speakers"
msgstr "" msgstr ""
#: agenda/templates/agenda/speaker_widget.html:7 #: agenda/templates/agenda/speaker_widget.html:9
msgid "Go to current list of speakers"
msgstr ""
#: agenda/templates/agenda/speaker_widget.html:11
msgid "Next speaker" msgid "Next speaker"
msgstr "" msgstr ""
#: agenda/templates/agenda/speaker_widget.html:12 #: agenda/templates/agenda/speaker_widget.html:10
#: agenda/templates/agenda/view.html:125 #: agenda/templates/agenda/view.html:125
msgid "End speach" msgid "End speach"
msgstr "" msgstr ""
#: agenda/templates/agenda/speaker_widget.html:14
msgid "Go to current list of speakers"
msgstr ""
#: agenda/templates/agenda/view.html:27 #: agenda/templates/agenda/view.html:27
msgid "Show item" msgid "Show item"
msgstr "" msgstr ""
@ -584,8 +584,9 @@ msgstr ""
#: agenda/templates/agenda/view.html:155 #: agenda/templates/agenda/view.html:155
#: assignment/templates/assignment/assignment_detail.html:113 #: assignment/templates/assignment/assignment_detail.html:113
#: assignment/templates/assignment/poll_view.html:87 #: assignment/templates/assignment/poll_view.html:87
#: mediafile/templates/mediafile/pdfs_widget.html:32
#: motion/templates/motion/poll_form.html:70 #: motion/templates/motion/poll_form.html:70
#: projector/templates/projector/overlay_message_widget.html:9 #: projector/templates/projector/overlay_message_widget.html:10
#: templates/formbuttons_saveapply.html:7 #: templates/formbuttons_saveapply.html:7
msgid "Apply" msgid "Apply"
msgstr "" msgstr ""
@ -597,29 +598,38 @@ msgstr ""
#: agenda/templates/agenda/widget.html:8 #: agenda/templates/agenda/widget.html:8
#: agenda/templates/agenda/widget.html:23 #: agenda/templates/agenda/widget.html:23
#: assignment/templates/assignment/widget.html:7 #: assignment/templates/assignment/widget.html:8
#: mediafile/templates/mediafile/mediafile_list.html:40 #: mediafile/templates/mediafile/mediafile_list.html:40
#: mediafile/templates/mediafile/pdfs_widget.html:38 #: mediafile/templates/mediafile/pdfs_widget.html:43
#: motion/templates/motion/motion_detail.html:136 #: motion/templates/motion/motion_detail.html:136
#: motion/templates/motion/widget.html:7 #: motion/templates/motion/widget.html:8
#: participant/templates/participant/group_widget.html:7 #: participant/templates/participant/group_widget.html:8
#: participant/templates/participant/user_widget.html:6 #: participant/templates/participant/user_widget.html:7
#: projector/templates/projector/custom_slide_widget.html:6 #: projector/templates/projector/custom_slide_widget.html:7
#: projector/templates/projector/custom_slide_widget.html:19 #: projector/templates/projector/custom_slide_widget.html:22
msgid "Show" msgid "Show"
msgstr "" msgstr ""
#: agenda/templates/agenda/widget.html:11 #: agenda/templates/agenda/widget.html:11
#: agenda/templates/agenda/widget.html:29 #: agenda/templates/agenda/widget.html:31
#: assignment/templates/assignment/widget.html:13 #: assignment/templates/assignment/widget.html:16
#: motion/templates/motion/widget.html:13 #: motion/templates/motion/widget.html:16
#: participant/templates/participant/group_widget.html:13 #: participant/templates/participant/group_widget.html:16
#: participant/templates/participant/user_widget.html:12 #: participant/templates/participant/user_widget.html:15
#: projector/templates/projector/custom_slide_widget.html:9 #: projector/templates/projector/custom_slide_widget.html:11
#: projector/templates/projector/custom_slide_widget.html:29 #: projector/templates/projector/custom_slide_widget.html:35
msgid "Preview" msgid "Preview"
msgstr "" msgstr ""
#: agenda/templates/agenda/widget.html:57
#: assignment/templates/assignment/widget.html:26
#: mediafile/templates/mediafile/pdfs_widget.html:52
#: motion/templates/motion/widget.html:29
#: participant/templates/participant/group_widget.html:24
#: participant/templates/participant/user_widget.html:25
msgid "More..."
msgstr ""
#: assignment/forms.py:14 assignment/models.py:51 assignment/views.py:357 #: assignment/forms.py:14 assignment/models.py:51 assignment/views.py:357
#: assignment/templates/assignment/assignment_detail.html:279 #: assignment/templates/assignment/assignment_detail.html:279
#: assignment/templates/assignment/slide.html:10 #: assignment/templates/assignment/slide.html:10
@ -838,7 +848,7 @@ msgstr ""
msgid "Ballot was successfully deleted." msgid "Ballot was successfully deleted."
msgstr "" msgstr ""
#: assignment/views.py:332 assignment/templates/assignment/widget.html:19 #: assignment/views.py:332 assignment/templates/assignment/widget.html:22
msgid "No assignments available." msgid "No assignments available."
msgstr "" msgstr ""
@ -1121,99 +1131,99 @@ msgstr ""
msgid "Configuration" msgid "Configuration"
msgstr "" msgstr ""
#: core/signals.py:25 #: core/signals.py:26
msgid "Event name" msgid "Event name"
msgstr "" msgstr ""
#: core/signals.py:30 #: core/signals.py:31
msgid "Presentation and assembly system" msgid "Presentation and assembly system"
msgstr "" msgstr ""
#: core/signals.py:33 #: core/signals.py:34
msgid "Short description of event" msgid "Short description of event"
msgstr "" msgstr ""
#: core/signals.py:42 #: core/signals.py:43
msgid "Event date" msgid "Event date"
msgstr "" msgstr ""
#: core/signals.py:50 #: core/signals.py:51
msgid "Event location" msgid "Event location"
msgstr "" msgstr ""
#: core/signals.py:58 #: core/signals.py:59
msgid "Event organizer" msgid "Event organizer"
msgstr "" msgstr ""
#: core/signals.py:63 #: core/signals.py:64
msgid "Welcome to OpenSlides" msgid "Welcome to OpenSlides"
msgstr "" msgstr ""
#: core/signals.py:71 #: core/signals.py:73
msgid "[Place for your welcome text.]" msgid "[Place for your welcome text.]"
msgstr "" msgstr ""
#: core/signals.py:74 #: core/signals.py:76
msgid "Welcome text" msgid "Welcome text"
msgstr "" msgstr ""
#: core/signals.py:81 #: core/signals.py:83
msgid "Allow access for anonymous guest users" msgid "Allow access for anonymous guest users"
msgstr "" msgstr ""
#: core/signals.py:90 #: core/signals.py:92
msgid "System URL" msgid "System URL"
msgstr "" msgstr ""
#: core/signals.py:91 #: core/signals.py:93
msgid "Used for QRCode in PDF of access data." msgid "Used for QRCode in PDF of access data."
msgstr "" msgstr ""
#: core/signals.py:99 participant/views.py:274 #: core/signals.py:101 participant/views.py:274
msgid "WLAN name (SSID)" msgid "WLAN name (SSID)"
msgstr "" msgstr ""
#: core/signals.py:100 core/signals.py:109 core/signals.py:118 #: core/signals.py:102 core/signals.py:111 core/signals.py:120
msgid "Used for WLAN QRCode in PDF of access data." msgid "Used for WLAN QRCode in PDF of access data."
msgstr "" msgstr ""
#: core/signals.py:108 participant/views.py:278 #: core/signals.py:110 participant/views.py:278
msgid "WLAN password" msgid "WLAN password"
msgstr "" msgstr ""
#: core/signals.py:117 participant/views.py:282 #: core/signals.py:119 participant/views.py:282
msgid "WLAN encryption" msgid "WLAN encryption"
msgstr "" msgstr ""
#: core/signals.py:120 #: core/signals.py:122
msgid "---------" msgid "---------"
msgstr "" msgstr ""
#: core/signals.py:121 #: core/signals.py:123
msgid "WEP" msgid "WEP"
msgstr "" msgstr ""
#: core/signals.py:122 #: core/signals.py:124
msgid "WPA/WPA2" msgid "WPA/WPA2"
msgstr "" msgstr ""
#: core/signals.py:123 #: core/signals.py:125
msgid "No encryption" msgid "No encryption"
msgstr "" msgstr ""
#: core/signals.py:126 #: core/signals.py:128
msgid "Event" msgid "Event"
msgstr "" msgstr ""
#: core/signals.py:130 #: core/signals.py:132
msgid "Welcome Widget" msgid "Welcome Widget"
msgstr "" msgstr ""
#: core/signals.py:134 #: core/signals.py:136
msgid "System" msgid "System"
msgstr "" msgstr ""
#: core/signals.py:138 #: core/signals.py:140
msgid "General" msgid "General"
msgstr "" msgstr ""
@ -1309,7 +1319,27 @@ msgstr ""
msgid "No files available." msgid "No files available."
msgstr "" msgstr ""
#: mediafile/templates/mediafile/pdfs_widget.html:43 #: mediafile/templates/mediafile/pdfs_widget.html:7
msgid "First page"
msgstr ""
#: mediafile/templates/mediafile/pdfs_widget.html:11
msgid "Previous page"
msgstr ""
#: mediafile/templates/mediafile/pdfs_widget.html:15
msgid "Next page"
msgstr ""
#: mediafile/templates/mediafile/pdfs_widget.html:22
msgid "Fullscreen"
msgstr ""
#: mediafile/templates/mediafile/pdfs_widget.html:28
msgid "Page"
msgstr ""
#: mediafile/templates/mediafile/pdfs_widget.html:48
msgid "No PDFs available." msgid "No PDFs available."
msgstr "" msgstr ""
@ -1500,7 +1530,7 @@ msgstr ""
msgid "Categories" msgid "Categories"
msgstr "" msgstr ""
#: motion/pdf.py:249 motion/templates/motion/widget.html:22 #: motion/pdf.py:249 motion/templates/motion/widget.html:25
msgid "No motions available." msgid "No motions available."
msgstr "" msgstr ""
@ -2497,7 +2527,7 @@ msgstr ""
msgid "The participant has not logged in yet." msgid "The participant has not logged in yet."
msgstr "" msgstr ""
#: participant/templates/participant/user_widget.html:18 #: participant/templates/participant/user_widget.html:21
msgid "No participants available." msgid "No participants available."
msgstr "" msgstr ""
@ -2610,19 +2640,19 @@ msgctxt "seconds"
msgid "s" msgid "s"
msgstr "" msgstr ""
#: projector/templates/projector/overlay_countdown_widget.html:9 #: projector/templates/projector/overlay_countdown_widget.html:10
msgid "Save time as default" msgid "Save time as default"
msgstr "" msgstr ""
#: projector/templates/projector/overlay_countdown_widget.html:13 #: projector/templates/projector/overlay_countdown_widget.html:15
msgid "Reset countdown" msgid "Reset countdown"
msgstr "" msgstr ""
#: projector/templates/projector/overlay_countdown_widget.html:16 #: projector/templates/projector/overlay_countdown_widget.html:19
msgid "Start countdown" msgid "Start countdown"
msgstr "" msgstr ""
#: projector/templates/projector/overlay_countdown_widget.html:19 #: projector/templates/projector/overlay_countdown_widget.html:24
msgid "Stop countdown" msgid "Stop countdown"
msgstr "" msgstr ""
@ -2630,7 +2660,7 @@ msgstr ""
msgid "Message" msgid "Message"
msgstr "" msgstr ""
#: projector/templates/projector/overlay_message_widget.html:12 #: projector/templates/projector/overlay_message_widget.html:14
msgid "Clean message" msgid "Clean message"
msgstr "" msgstr ""

View File

@ -3,28 +3,33 @@
<form action="{% url 'target_pdf_page' %}" method="GET" class="set-page-form"> <form action="{% url 'target_pdf_page' %}" method="GET" class="set-page-form">
<div class="input-prepend" style="margin-bottom:0;"> <div class="input-prepend" style="margin-bottom:0;">
<a class="btn go-first-page"> <a class="btn go-first-page"
rel="tooltip" data-original-title="{% trans 'First page' %}">
<i class="icon-fast-backward"></i> <i class="icon-fast-backward"></i>
</a> </a>
<a class="btn pdf-page-ctl" href="{% url 'prev_pdf_page' %}"> <a class="btn pdf-page-ctl" href="{% url 'prev_pdf_page' %}"
rel="tooltip" data-original-title="{% trans 'Previous page' %}">
<i class="icon-backward"></i> <i class="icon-backward"></i>
</a> </a>
<a class="btn pdf-page-ctl" href="{% url 'next_pdf_page' %}"> <a class="btn pdf-page-ctl" href="{% url 'next_pdf_page' %}"
rel="tooltip" data-original-title="{% trans 'Next page' %}">
<i class="icon-forward"></i> <i class="icon-forward"></i>
</a> </a>
</div> </div>
<div class="input-append" style="margin-bottom:0;"> <div class="input-append" style="margin-bottom:0;">
<a class="btn pdf-toggle-fullscreen {%if pdf_fullscreen %}btn-primary{% endif %}" href="{% url 'toggle_fullscreen' %}"> <a class="btn pdf-toggle-fullscreen {%if pdf_fullscreen %}btn-primary{% endif %}" href="{% url 'toggle_fullscreen' %}"
rel="tooltip" data-original-title="{% trans 'Fullscreen' %}">
<i class="icon-fullscreen {%if pdf_fullscreen %}icon-white{% endif %}"></i> <i class="icon-fullscreen {%if pdf_fullscreen %}icon-white{% endif %}"></i>
</a> </a>
</div> </div>
<div class="input-append input-prepend" style="margin-bottom:0;"> <div class="input-append input-prepend" style="margin-bottom:0;">
<span class="add-on">Page:</span> <span class="add-on">{% trans "Page" %}:</span>
<input id="page_num" name="page_num" type="number" style="width: 22px;" value="{{ current_page }}"> <input id="page_num" name="page_num" type="number" style="width: 22px;" value="{{ current_page }}">
<button type="submit" id="go_to_page" class="btn" style="width: 40px;"> <button type="submit" id="go_to_page" class="btn tooltip-bottom"
rel="tooltip" data-original-title="{% trans 'Apply' %}">
<i class="icon-refresh"></i> <i class="icon-refresh"></i>
</button> </button>
</div> </div>
@ -43,3 +48,6 @@
<li>{% trans 'No PDFs available.' %}</li> <li>{% trans 'No PDFs available.' %}</li>
{% endfor %} {% endfor %}
</ul> </ul>
<small><p class="text-right"><a href="{% url 'mediafile_list' %}">{% trans "More..." %}</a></p></small>

View File

@ -4,13 +4,16 @@
<ul style="line-height: 180%"> <ul style="line-height: 180%">
{% for motion in motions %} {% for motion in motions %}
<li class="{% if motion.is_active_slide %}activeline{% endif %}"> <li class="{% if motion.is_active_slide %}activeline{% endif %}">
<a href="{{ motion|absolute_url:'projector' }}" class="activate_link btn {% if motion.is_active_slide %}btn-primary{% endif %} btn-mini" title="{% trans 'Show' %}"> <a href="{{ motion|absolute_url:'projector' }}" class="activate_link btn {% if motion.is_active_slide %}btn-primary{% endif %} btn-mini"
rel="tooltip" data-original-title="{% trans 'Show' %}">
<i class="icon-facetime-video {% if motion.is_active_slide %}icon-white{% endif %}"></i> <i class="icon-facetime-video {% if motion.is_active_slide %}icon-white{% endif %}"></i>
</a>&nbsp; </a>&nbsp;
<a href="{{ motion|absolute_url:'update' }}" title="{% trans 'Edit' %}" class="btn btn-mini right"> <a href="{{ motion|absolute_url:'update' }}"
rel="tooltip" data-original-title="{% trans 'Edit' %}" class="btn btn-mini right">
<i class="icon-pencil"></i> <i class="icon-pencil"></i>
</a> </a>
<a href="{{ motion|absolute_url:'projector_preview' }}" title="{% trans 'Preview' %}" class="btn btn-mini right"> <a href="{{ motion|absolute_url:'projector_preview' }}"
rel="tooltip" data-original-title="{% trans 'Preview' %}" class="btn btn-mini right">
<i class="icon-search"></i> <i class="icon-search"></i>
</a> </a>
<a href="{{ motion|absolute_url }}"> <a href="{{ motion|absolute_url }}">
@ -23,3 +26,4 @@
{% endfor %} {% endfor %}
</ul> </ul>
<small><p class="text-right"><a href="{% url 'motion_list' %}">{% trans "More..." %}</a></p></small>

View File

@ -4,16 +4,21 @@
<ul style="line-height: 180%"> <ul style="line-height: 180%">
{% for group in groups %} {% for group in groups %}
<li class="{% if group.is_active_slide %}activeline{% endif %}"> <li class="{% if group.is_active_slide %}activeline{% endif %}">
<a href="{{ group|absolute_url:'projector' }}" class="activate_link btn {% if group.is_active_slide %}btn-primary{% endif %} btn-mini" title="{% trans 'Show' %}"> <a href="{{ group|absolute_url:'projector' }}" class="activate_link btn {% if group.is_active_slide %}btn-primary{% endif %} btn-mini"
rel="tooltip" data-original-title="{% trans 'Show' %}">
<i class="icon-facetime-video {% if group.is_active_slide %}icon-white{% endif %}"></i> <i class="icon-facetime-video {% if group.is_active_slide %}icon-white{% endif %}"></i>
</a>&nbsp; </a>&nbsp;
<a href="{{ group|absolute_url:'update' }}" title="{% trans 'Edit' %}" class="btn btn-mini right"> <a href="{{ group|absolute_url:'update' }}"
rel="tooltip" data-original-title="{% trans 'Edit' %}" class="btn btn-mini right">
<i class="icon-pencil"></i> <i class="icon-pencil"></i>
</a> </a>
<a href="{{ group|absolute_url:'projector_preview' }}" title="{% trans 'Preview' %}" class="btn btn-mini right"> <a href="{{ group|absolute_url:'projector_preview' }}"
rel="tooltip" data-original-title="{% trans 'Preview' %}" class="btn btn-mini right">
<i class="icon-search"></i> <i class="icon-search"></i>
</a> </a>
<a href="{{ group|absolute_url }}">{% trans group.name %}</a> <a href="{{ group|absolute_url }}">{% trans group.name %}</a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
<small><p class="text-right"><a href="{% url 'user_group_overview' %}">{% trans "More..." %}</a></p></small>

View File

@ -3,13 +3,16 @@
<ul style="line-height: 180%"> <ul style="line-height: 180%">
{% for user in users %} {% for user in users %}
<li class="{% if user.is_active_slide %}activeline{% endif %}"> <li class="{% if user.is_active_slide %}activeline{% endif %}">
<a href="{{ user|absolute_url:'projector' }}" class="activate_link btn {% if user.is_active_slide %}btn-primary{% endif %} btn-mini" title="{% trans 'Show' %}"> <a href="{{ user|absolute_url:'projector' }}" class="activate_link btn {% if user.is_active_slide %}btn-primary{% endif %} btn-mini"
rel="tooltip" data-original-title="{% trans 'Show' %}">
<i class="icon-facetime-video {% if user.is_active_slide %}icon-white{% endif %}"></i> <i class="icon-facetime-video {% if user.is_active_slide %}icon-white{% endif %}"></i>
</a>&nbsp; </a>&nbsp;
<a href="{{ user|absolute_url:'update' }}" title="{% trans 'Edit' %}" class="btn btn-mini right"> <a href="{{ user|absolute_url:'update' }}"
rel="tooltip" data-original-title="{% trans 'Edit' %}" class="btn btn-mini right">
<i class="icon-pencil"></i> <i class="icon-pencil"></i>
</a> </a>
<a href="{{ user|absolute_url:'projector_preview' }}" title="{% trans 'Preview' %}" class="btn btn-mini right"> <a href="{{ user|absolute_url:'projector_preview' }}"
rel="tooltip" data-original-title="{% trans 'Preview' %}" class="btn btn-mini right">
<i class="icon-search"></i> <i class="icon-search"></i>
</a> </a>
<a href="{{ user|absolute_url }}">{{ user }}</a> <a href="{{ user|absolute_url }}">{{ user }}</a>
@ -18,3 +21,5 @@
<li>{% trans 'No participants available.' %}</li> <li>{% trans 'No participants available.' %}</li>
{% endfor %} {% endfor %}
</ul> </ul>
<small><p class="text-right"><a href="{% url 'user_overview' %}">{% trans "More..." %}</a></p></small>

View File

@ -4,4 +4,4 @@ from openslides.projector.api import register_slide_model
from .models import ProjectorSlide from .models import ProjectorSlide
register_slide_model(ProjectorSlide, 'projector/slide_projectorslide.html') register_slide_model(ProjectorSlide, 'projector/projectorslide_slide.html')

View File

@ -1,51 +1,44 @@
function update_countdown() { function update_countdown() {
var time = projector.get_server_time().getTime() / 1000; var time = projector.get_server_time().getTime() / 1000;
var seconds; var totalseconds;
var minutes_digit; var min;
var seconds_digit; var sec;
var hours_digit; var negative;
var start = projector.projector_countdown_start; var start = projector.projector_countdown_start;
var duration = projector.projector_countdown_duration; var duration = projector.projector_countdown_duration;
var pause = projector.projector_countdown_pause; var pause = projector.projector_countdown_pause;
switch (projector.projector_countdown_state) { switch (projector.projector_countdown_state) {
case 'active': case 'active':
seconds = start + duration - time; totalseconds = start + duration - time;
break; break;
case 'paused': case 'paused':
seconds = start + duration - pause; totalseconds = start + duration - pause;
break; break;
case 'inactive': case 'inactive':
seconds = duration; totalseconds = duration;
break; break;
} }
if (seconds > 60) { totalseconds = Math.floor(totalseconds);
hours_digit = Math.floor(seconds / 3600); if (totalseconds < 0 ) {
minutes_digit = Math.floor((seconds - (hours_digit * 3600)) / 60); totalseconds = -totalseconds;
seconds_digit = Math.floor(seconds - (hours_digit * 3600) - (minutes_digit * 60)); negative = true;
minutes_digit = normalise(minutes_digit);
seconds_digit = normalise(seconds_digit);
if (hours_digit > 0) {
hours_digit = normalise(hours_digit);
seconds = hours_digit + ":" + minutes_digit + ":" + seconds_digit;
} else {
seconds = minutes_digit + ":" + seconds_digit;
}
} else {
seconds = Math.max(0, Math.floor(seconds));
} }
min = Math.floor(totalseconds / 60);
sec = Math.floor(totalseconds - (min * 60));
if (sec < 10) {
sec = "0" + sec;
}
if (negative) {
min = "-" + min;
$('#overlay_countdown_inner').addClass('negative');
}
else {
$('#overlay_countdown_inner').removeClass('negative');
}
if(totalseconds !== undefined) {
$('#overlay_countdown_inner').html(min + ":" + sec);
if(seconds !== undefined) {
$('#overlay_countdown_inner').html(seconds);
} }
} }
setInterval('update_countdown()', 200); setInterval('update_countdown()', 200);
function normalise(i) {
if(i < 10) {
i = "0" + i;
}
return i;
}

View File

@ -55,7 +55,6 @@
.widget-header .icon-pushpin { .widget-header .icon-pushpin {
background-image: url("../img/glyphicons_335_pushpin.png"); background-image: url("../img/glyphicons_335_pushpin.png");
background-position: 0 center; background-position: 0 center;
margin-left:4px !important;
} }
.widget-content { .widget-content {
padding: 0px 15px 0px 13px; padding: 0px 15px 0px 13px;
@ -65,6 +64,9 @@
-moz-border-radius: 0 0 5px 5px; -moz-border-radius: 0 0 5px 5px;
-webkit-border-radius: 0 0 5px 5px; -webkit-border-radius: 0 0 5px 5px;
} }
.widget-content-inner {
margin-top: 10px;
}
.widget-content li { .widget-content li {
padding: 4px 0; padding: 4px 0;
} }
@ -128,3 +130,11 @@
display: block; display: block;
z-index: 1; z-index: 1;
} }
.custom-btn-mini {
width: 20px;
}
.custom-btn-mini i {
-moz-margin-start: 4px !important;
margin-left: -6px;
}

View File

@ -3,10 +3,12 @@
<ul style="line-height: 180%"> <ul style="line-height: 180%">
<li class="{% if welcomepage_is_active %}activeline{% endif %}"> <li class="{% if welcomepage_is_active %}activeline{% endif %}">
<a href="{% url 'projector_activate_slide' 'default' %}" class="activate_link btn {% if welcomepage_is_active %}btn-primary{% endif %} btn-mini" title="{% trans 'Show' %}"> <a href="{% url 'projector_activate_slide' 'default' %}" class="activate_link btn {% if welcomepage_is_active %}btn-primary{% endif %} btn-mini"
rel="tooltip" data-original-title="{% trans 'Show' %}">
<i class="icon-facetime-video {% if welcomepage_is_active %}icon-white{% endif %}"></i> <i class="icon-facetime-video {% if welcomepage_is_active %}icon-white{% endif %}"></i>
</a>&nbsp; </a>&nbsp;
<a href="{% url 'projctor_preview_welcomepage' %}" title="{% trans 'Preview' %}" class="btn btn-mini right"> <a href="{% url 'projctor_preview_welcomepage' %}"
rel="tooltip" data-original-title="{% trans 'Preview' %}" class="btn btn-mini right">
<i class="icon-search"></i> <i class="icon-search"></i>
</a> </a>
{% get_config 'welcome_title' %} {% get_config 'welcome_title' %}
@ -16,17 +18,21 @@
<ul style="line-height: 180%"> <ul style="line-height: 180%">
{% for slide in slides %} {% for slide in slides %}
<li class="{% if slide.is_active_slide %}activeline{% endif %}"> <li class="{% if slide.is_active_slide %}activeline{% endif %}">
<a href="{{ slide|absolute_url:'projector' }}" class="activate_link btn {% if slide.is_active_slide %}btn-primary{% endif %} btn-mini" title="{% trans 'Show' %}"> <a href="{{ slide|absolute_url:'projector' }}" class="activate_link btn {% if slide.is_active_slide %}btn-primary{% endif %} btn-mini"
rel="tooltip" data-original-title="{% trans 'Show' %}">
<i class="icon-facetime-video {% if slide.is_active_slide %}icon-white{% endif %}"></i> <i class="icon-facetime-video {% if slide.is_active_slide %}icon-white{% endif %}"></i>
</a>&nbsp; </a>&nbsp;
<a href="{{ slide|absolute_url:'update' }}">{{ slide }}</a> <a href="{{ slide|absolute_url:'update' }}">{{ slide }}</a>
<a href="{{ slide|absolute_url:'delete' }}" title="{% trans 'Delete' %}" class="btn btn-mini right"> <a href="{{ slide|absolute_url:'delete' }}"
rel="tooltip" data-original-title="{% trans 'Delete' %}" class="btn btn-mini right">
<i class="icon-remove"></i> <i class="icon-remove"></i>
</a> </a>
<a href="{{ slide|absolute_url:'update' }}" title="{% trans 'Edit' %}" class="btn btn-mini right"> <a href="{{ slide|absolute_url:'update' }}"
rel="tooltip" data-original-title="{% trans 'Edit' %}" class="btn btn-mini right">
<i class="icon-pencil"></i> <i class="icon-pencil"></i>
</a> </a>
<a href="{{ slide|absolute_url:'projector_preview' }}" title="{% trans 'Preview' %}" class="btn btn-mini right"> <a href="{{ slide|absolute_url:'projector_preview' }}"
rel="tooltip" data-original-title="{% trans 'Preview' %}" class="btn btn-mini right">
<i class="icon-search"></i> <i class="icon-search"></i>
</a> </a>
</li> </li>
@ -34,8 +40,6 @@
<li>{% trans 'No items available.' %}</li> <li>{% trans 'No items available.' %}</li>
{% endfor %} {% endfor %}
</ul> </ul>
<p style="line-height: 280%"> <a href="{% url 'customslide_new' %}" class="btn btn-mini right" style="margin: 10px 0;">
<a href="{% url 'customslide_new' %}" class="btn btn-mini right">
<i class="icon-plus"></i>{% trans 'New' %} <i class="icon-plus"></i>{% trans 'New' %}
</a> </a>
</p>

View File

@ -36,7 +36,7 @@
_</button> _</button>
</div> </div>
<div class="fixbutton btn-group right" data-toggle="buttons-checkbox"> <div class="fixbutton btn-group right" data-toggle="buttons-checkbox">
<button type="button" class="btn btn-mini" style="width: 20px;" <button type="button" class="btn btn-mini custom-btn-mini"
title="{% trans 'Fix widget position' %}"> title="{% trans 'Fix widget position' %}">
<i class="icon-pushpin"></i></button> <i class="icon-pushpin"></i></button>
</div> </div>
@ -44,7 +44,7 @@
</h3> </h3>
</div> </div>
<div class="widget-content collapse in" id="widgetcontent_{{ widget.get_name }}"> <div class="widget-content collapse in" id="widgetcontent_{{ widget.get_name }}">
<br>{{ widget.html }}<br> <div class="widget-content-inner">{{ widget.html }}</div>
</div> </div>
</div> </div>
{% endif %} {% endif %}
@ -65,7 +65,7 @@
_</button> _</button>
</div> </div>
<div class="fixbutton btn-group right" data-toggle="buttons-checkbox"> <div class="fixbutton btn-group right" data-toggle="buttons-checkbox">
<button type="button" class="btn btn-mini" style="width: 20px;" <button type="button" class="btn btn-mini custom-btn-mini"
title="{% trans 'Fix widget position' %}"> title="{% trans 'Fix widget position' %}">
<i class="icon-pushpin"></i></button> <i class="icon-pushpin"></i></button>
</div> </div>
@ -73,7 +73,7 @@
</h3> </h3>
</div> </div>
<div class="widget-content collapse in" id="widgetcontent_{{ widget.get_name }}"> <div class="widget-content collapse in" id="widgetcontent_{{ widget.get_name }}">
<br>{{ widget.html }}<br> <div class="widget-content-inner">{{ widget.html }}</div>
</div> </div>
</div> </div>
{% endif %} {% endif %}

View File

@ -11,7 +11,9 @@
text-align: center; text-align: center;
border-radius: 0 0 0.2em 0.2em; border-radius: 0 0 0.2em 0.2em;
} }
#overlay_countdown_inner.negative {
color: #CC0000;
}
</style> </style>
<div id="overlay_countdown_inner" class="well"> <div id="overlay_countdown_inner" class="well"></div>
</div>

View File

@ -6,17 +6,23 @@
<div class="input-append" style="margin-bottom:0;"> <div class="input-append" style="margin-bottom:0;">
<input class="projector_countdown_spinval" id="countdown_time" name="countdown_time" type="number" min="0" value="{{ countdown_time }}"> <input class="projector_countdown_spinval" id="countdown_time" name="countdown_time" type="number" min="0" value="{{ countdown_time }}">
<span class="add-on">{% trans "s" context "seconds" %}</span> <span class="add-on">{% trans "s" context "seconds" %}</span>
<button id="countdown_set" class="countdown_control btn" href="{% url 'countdown_set_default' %}" title="{% trans 'Save time as default' %}" style="width: 16px;"> <button id="countdown_set" class="countdown_control btn tooltip-bottom" href="{% url 'countdown_set_default' %}"
rel="tooltip" data-original-title="{% trans 'Save time as default' %}">
<i class="icon-refresh"></i> <i class="icon-refresh"></i>
</button> </button>
</div> </div>
<a id="countdown_reset" class="countdown_control btn" href="{% url 'countdown_reset' %}" title="{% trans 'Reset countdown' %}"> <a id="countdown_reset" class="countdown_control btn" href="{% url 'countdown_reset' %}"
rel="tooltip" data-original-title="{% trans 'Reset countdown' %}">
<i class="icon-fast-backward"></i> <i class="icon-fast-backward"></i>
</a> </a>
<a id="countdown_play" class="countdown_control btn" href="{% url 'countdown_start' %}" title="{% trans 'Start countdown' %}"{% if countdown_state == 'active' %} style="display:none"{% endif %}> <a id="countdown_play" class="countdown_control btn" href="{% url 'countdown_start' %}"
rel="tooltip" data-original-title="{% trans 'Start countdown' %}"
{% if countdown_state == 'active' %} style="display:none"{% endif %}>
<i class="icon-play"></i> <i class="icon-play"></i>
</a> </a>
<a id="countdown_stop" class="countdown_control btn" href="{% url 'countdown_stop' %}" title="{% trans 'Stop countdown' %}"{% if countdown_state == 'inactive' or countdown_state == 'paused' or countdown_state == 'expired' %} style="display:none"{% endif %}> <a id="countdown_stop" class="countdown_control btn" href="{% url 'countdown_stop' %}"
rel="tooltip" data-original-title="{% trans 'Stop countdown' %}"
{% if countdown_state == 'inactive' or countdown_state == 'paused' or countdown_state == 'expired' %} style="display:none"{% endif %}>
<i class="icon-pause"></i> <i class="icon-pause"></i>
</a> </a>
</div> </div>

View File

@ -5,15 +5,16 @@
left: 10%; left: 10%;
width: 80%; width: 80%;
text-align: center; text-align: center;
border-radius: 0.2em; border-radius: 0.5em;
background: #FFFFFF; background: #FFFFFF;
font-size: 2.75em; font-size: 2.75em;
padding: 0.2em 0; padding: 0.2em 0;
line-height: normal !important;
} }
</style> </style>
<span id="overlay_transparent"></span> <span id="overlay_transparent"></span>
<div id="overlay_message_inner"> <div id="overlay_message_inner">
{{ message }} {{ message|safe }}
</div> </div>

View File

@ -6,10 +6,12 @@
<form class="form-inline" id="overlay_message" action="{% url 'projector_overlay_message' %}" method="post">{% csrf_token %} <form class="form-inline" id="overlay_message" action="{% url 'projector_overlay_message' %}" method="post">{% csrf_token %}
<div class="input-append overlayblock" style="width: 77%;"> <div class="input-append overlayblock" style="width: 77%;">
<input class="input-block-level" id="overlay_message_text" name='message_text' type='text' value="{% get_config 'projector_message' %}"> <input class="input-block-level" id="overlay_message_text" name='message_text' type='text' value="{% get_config 'projector_message' %}">
<button type="submit" class="btn btn-primary" name="message" title="{% trans 'Apply' %}" style="width: 16px;"> <button type="submit" class="btn btn-primary tooltip-bottom" name="message"
rel="tooltip" data-original-title="{% trans 'Apply' %}">
<i class="icon-ok icon-white"></i> <i class="icon-ok icon-white"></i>
</button> </button>
<button type="submit" class="btn" name='message-clean' title="{% trans 'Clean message' %}" style="width: 16px;"> <button type="submit" class="btn tooltip-bottom custom-btn-mini" name='message-clean'
rel="tooltip" data-original-title="{% trans 'Clean message' %}">
<i class="icon-delete"></i> <i class="icon-delete"></i>
</button> </button>
</div> </div>

View File

@ -29,9 +29,9 @@
{% block loginbutton %} {% block loginbutton %}
<div class="pull-right"> <div class="pull-right">
<!-- Search field --> <!-- Search field -->
<form class="navbar-search form-search" action="{% url 'search' %}" method="get"> <form class="navbar-search" action="{% url 'search' %}" method="get">
<div class="input-append"> <div class="input-append">
<input type="text" id="id_q" name="q" class="search-query input-medium" placeholder="{% trans 'Search' %}"> <input type="text" id="id_q" name="q" class="input-medium" placeholder="{% trans 'Search' %}">
<button type="submit" class="btn"><i class="icon-search"></i></button> <button type="submit" class="btn"><i class="icon-search"></i></button>
</div> </div>
</form> &nbsp; </form> &nbsp;