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>
{% 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 %}
<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_end_speach_on_current_list_of_speakers' %}" class="btn btn-mini"><i class="icon icon-bell"></i> {% trans 'End speach' %}</a>
<br>
</p>
{% 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' %}">
<i class="icon-facetime-video {% if item.is_active_slide and active_type == 'text' %}icon-white{% endif %}"></i>
</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>
</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>
</a>
<a href="{{ item|absolute_url:'projector_list_of_speakers' }}"
@ -51,3 +53,5 @@
<li>{% trans 'No items available.' %}</li>
{% endfor %}
</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%">
{% for assignment in assignments %}
<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>
</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>
</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>
</a>
<a href="{{ assignment|absolute_url }}">{{ assignment }}</a>
@ -20,3 +23,4 @@
{% endfor %}
</ul>
<small><p class="text-right"><a href="{% url 'assignment_list' %}">{% trans "More..." %}</a></p></small>

View File

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

View File

@ -3,28 +3,33 @@
<form action="{% url 'target_pdf_page' %}" method="GET" class="set-page-form">
<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>
</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>
</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>
</a>
</div>
<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>
</a>
</div>
<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 }}">
<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>
</button>
</div>
@ -43,3 +48,6 @@
<li>{% trans 'No PDFs available.' %}</li>
{% endfor %}
</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%">
{% for motion in motions %}
<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>
</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>
</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>
</a>
<a href="{{ motion|absolute_url }}">
@ -23,3 +26,4 @@
{% endfor %}
</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%">
{% for group in groups %}
<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>
</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>
</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>
</a>
<a href="{{ group|absolute_url }}">{% trans group.name %}</a>
</li>
{% endfor %}
</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%">
{% for user in users %}
<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>
</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>
</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>
</a>
<a href="{{ user|absolute_url }}">{{ user }}</a>
@ -18,3 +21,5 @@
<li>{% trans 'No participants available.' %}</li>
{% endfor %}
</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
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() {
var time = projector.get_server_time().getTime() / 1000;
var seconds;
var minutes_digit;
var seconds_digit;
var hours_digit;
var totalseconds;
var min;
var sec;
var negative;
var start = projector.projector_countdown_start;
var duration = projector.projector_countdown_duration;
var pause = projector.projector_countdown_pause;
switch (projector.projector_countdown_state) {
case 'active':
seconds = start + duration - time;
totalseconds = start + duration - time;
break;
case 'paused':
seconds = start + duration - pause;
totalseconds = start + duration - pause;
break;
case 'inactive':
seconds = duration;
totalseconds = duration;
break;
}
if (seconds > 60) {
hours_digit = Math.floor(seconds / 3600);
minutes_digit = Math.floor((seconds - (hours_digit * 3600)) / 60);
seconds_digit = Math.floor(seconds - (hours_digit * 3600) - (minutes_digit * 60));
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;
totalseconds = Math.floor(totalseconds);
if (totalseconds < 0 ) {
totalseconds = -totalseconds;
negative = true;
}
} 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);
function normalise(i) {
if(i < 10) {
i = "0" + i;
}
return i;
}

View File

@ -55,7 +55,6 @@
.widget-header .icon-pushpin {
background-image: url("../img/glyphicons_335_pushpin.png");
background-position: 0 center;
margin-left:4px !important;
}
.widget-content {
padding: 0px 15px 0px 13px;
@ -65,6 +64,9 @@
-moz-border-radius: 0 0 5px 5px;
-webkit-border-radius: 0 0 5px 5px;
}
.widget-content-inner {
margin-top: 10px;
}
.widget-content li {
padding: 4px 0;
}
@ -128,3 +130,11 @@
display: block;
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%">
<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>
</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>
</a>
{% get_config 'welcome_title' %}
@ -16,17 +18,21 @@
<ul style="line-height: 180%">
{% for slide in slides %}
<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>
</a>&nbsp;
<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>
</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>
</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>
</a>
</li>
@ -34,8 +40,6 @@
<li>{% trans 'No items available.' %}</li>
{% endfor %}
</ul>
<p style="line-height: 280%">
<a href="{% url 'customslide_new' %}" class="btn btn-mini right">
<a href="{% url 'customslide_new' %}" class="btn btn-mini right" style="margin: 10px 0;">
<i class="icon-plus"></i>{% trans 'New' %}
</a>
</p>

View File

@ -36,7 +36,7 @@
_</button>
</div>
<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' %}">
<i class="icon-pushpin"></i></button>
</div>
@ -44,7 +44,7 @@
</h3>
</div>
<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>
{% endif %}
@ -65,7 +65,7 @@
_</button>
</div>
<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' %}">
<i class="icon-pushpin"></i></button>
</div>
@ -73,7 +73,7 @@
</h3>
</div>
<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>
{% endif %}

View File

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

View File

@ -6,17 +6,23 @@
<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 }}">
<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>
</button>
</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>
</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>
</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>
</a>
</div>

View File

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

View File

@ -6,10 +6,12 @@
<form class="form-inline" id="overlay_message" action="{% url 'projector_overlay_message' %}" method="post">{% csrf_token %}
<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' %}">
<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>
</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>
</button>
</div>

View File

@ -29,9 +29,9 @@
{% block loginbutton %}
<div class="pull-right">
<!-- 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">
<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>
</div>
</form> &nbsp;