diff --git a/bower.json b/bower.json index 765171cbf..d0082fb0b 100644 --- a/bower.json +++ b/bower.json @@ -2,18 +2,9 @@ "name": "OpenSlides", "private": true, "dependencies": { - "bootstrap": "2.3.2", + "bootstrap": "3.3.1", + "datatables-bootstrap3-plugin": "0.2.0", "jquery": "1.11.2", "jquery.cookie" : "1.4.1" - }, - "overrides": { - "bootstrap": { - "main": [ - "docs/assets/js/bootstrap.js", - "docs/assets/css/bootstrap.css", - "img/glyphicons-halflings.png", - "img/glyphicons-halflings-white.png" - ] - } } } diff --git a/gulpfile.js b/gulpfile.js index db3df08da..2cdd0723e 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -46,13 +46,13 @@ gulp.task('css', function() { .pipe(gulp.dest(path.join(output_directory, 'css'))); }); -// Catches all PNG image files from all bower components. -gulp.task('img', function() { +// Catches all font files from all bower components. +gulp.task('fonts', function() { return gulp.src(mainBowerFiles({ - filter: /\.png$/ + filter: /\.(eot)|(svg)|(ttf)|(woff)$/ })) - .pipe(gulp.dest(path.join(output_directory, 'img'))); + .pipe(gulp.dest(path.join(output_directory, 'fonts'))); }); // Gulp default task. Runs all other tasks before. -gulp.task('default', ['js', 'css', 'img'], function() {}); +gulp.task('default', ['js', 'css', 'fonts'], function() {}); diff --git a/openslides/agenda/main_menu.py b/openslides/agenda/main_menu.py index a90ef18c3..00e578e57 100644 --- a/openslides/agenda/main_menu.py +++ b/openslides/agenda/main_menu.py @@ -11,4 +11,4 @@ class AgendaMainMenuEntry(MainMenuEntry): required_permission = 'agenda.can_see_agenda' default_weight = 20 pattern_name = 'item_overview' - icon_css_class = 'icon-calendar' + icon_css_class = 'glyphicon-calendar' diff --git a/openslides/agenda/templates/agenda/overview.html b/openslides/agenda/templates/agenda/overview.html index 19de2f53d..5d6d6ac40 100644 --- a/openslides/agenda/templates/agenda/overview.html +++ b/openslides/agenda/templates/agenda/overview.html @@ -12,49 +12,44 @@ {% block javascript %} - {% if perms.agenda.can_manage_agenda %} - - - - - {% endif %} {% endblock %} {% block content %} -
{% csrf_token %} - {% if perms.agenda.can_manage_agenda %} - - {% endif %} -

{% trans "Agenda" %} {% if perms.agenda.can_manage_agenda %} - - + + {% trans "New" %} {% endif %} {% if perms.core.can_manage_tags %} - - + + {% trans 'Tags' %} {% endif %} {% if perms.agenda.can_manage_agenda %} - - + + {% trans "Import" %} {% endif %} - PDF + + + PDF + {% if perms.core.can_see_projector %} - - {% trans 'List of speakers' %} + + + {% trans 'List of speakers' %} + {% endif %}

@@ -62,8 +57,10 @@
{% if perms.agenda.can_manage_agenda %} -

{% trans 'Number agenda items' %} +

+ {% trans 'Number agenda items' %} +

{% endif %}

@@ -88,7 +85,9 @@ {% elif perms.config.can_manage %} - {% trans 'Set start time of event' %} + + {% trans 'Set start time of event' %} + {% endif %} {% endif %}

@@ -121,9 +120,9 @@ {% if perms.core.can_manage_projector %} - + class="activate_link btn btn-default {% if agenda_is_active %}btn-primary{% endif %} btn-sm" + rel="tooltip" data-original-title="{% trans 'Show agenda' %}"> + {% endif %} @@ -147,5 +146,4 @@ {% else %}
{% trans "No items available." %}
{% endif %} - {% endblock %} diff --git a/openslides/agenda/templates/agenda/sort.html b/openslides/agenda/templates/agenda/sort.html new file mode 100644 index 000000000..eaee7a1f2 --- /dev/null +++ b/openslides/agenda/templates/agenda/sort.html @@ -0,0 +1,151 @@ +{% extends "base.html" %} + +{% load i18n %} +{% load mptt_tags %} +{% load staticfiles %} + +{% block title %}{% trans "Agenda" %} – {{ block.super }}{% endblock %} + +{% block header %} + +{% endblock %} + +{% block javascript %} + + {% if perms.agenda.can_manage_agenda %} + + + + + {% endif %} +{% endblock %} + +{% block content %} +
{% csrf_token %} + {% if perms.agenda.can_manage_agenda %} + + {% endif %} + +

{% trans "Agenda" %} + + {% if perms.agenda.can_manage_agenda %} + + + {% trans "New" %} + + {% endif %} + {% if perms.core.can_manage_tags %} + + + {% trans 'Tags' %} + + {% endif %} + {% if perms.agenda.can_manage_agenda %} + + + {% trans "Import" %} + + {% endif %} + PDF + {% if perms.core.can_see_projector %} + + {% trans 'List of speakers' %} + {% endif %} + +

+ +
+
+ {% if perms.agenda.can_manage_agenda %} +

{% trans 'Number agenda items' %} +

+ {% endif %} +

+ + {{ items|length }} + {% blocktrans count counter=items|length %}item{% plural %}items{% endblocktrans %} + +

+
+ {% if perms.agenda.can_see_orga_items %} + {% if start and end %} + + + + + + + + + +
{% trans "Start of event" %}:{{ start|date:"DATETIME_FORMAT" }}
{% trans "Estimated end" %}:{{ end|date:"DATETIME_FORMAT" }}
+ {% elif perms.config.can_manage %} + {% trans 'Set start time of event' %} + {% endif %} + {% endif %} +
+ + + + + {% if perms.agenda.can_manage_agenda %} + + {% endif %} + {% if perms.agenda.can_see_orga_items %} + + {% endif %} + {% if perms.agenda.can_manage_agenda or perms.core.can_manage_projector %} + + {% endif %} + + + + {% if perms.agenda.can_manage_agenda %} + + {% endif %} + {% if perms.agenda.can_see_orga_items %} + + {% endif %} + {% if perms.agenda.can_manage_agenda or perms.core.can_manage_projector %} + + {% endif %} + + + {% if items %} +
    + {% recursetree items %} +
  1. + {% include "agenda/item_row.html" %} + {% if not node.is_leaf_node %} +
      + {{ children }} +
    + {% endif %} +
  2. + {% endrecursetree %} +
+ {% else %} +
{% trans "No items available." %}
+ {% endif %} +
+{% endblock %} diff --git a/openslides/assignment/main_menu.py b/openslides/assignment/main_menu.py index b2dc464ad..2049cfb3c 100644 --- a/openslides/assignment/main_menu.py +++ b/openslides/assignment/main_menu.py @@ -11,4 +11,4 @@ class AssignmentMainMenuEntry(MainMenuEntry): required_permission = 'assignment.can_see_assignment' default_weight = 40 pattern_name = 'assignment_list' - icon_css_class = 'icon-charts' + icon_css_class = 'icon-assignment' diff --git a/openslides/assignment/templates/assignment/assignment_detail.html b/openslides/assignment/templates/assignment/assignment_detail.html index 313fd85e5..e1a251461 100644 --- a/openslides/assignment/templates/assignment/assignment_detail.html +++ b/openslides/assignment/templates/assignment/assignment_detail.html @@ -18,31 +18,53 @@
{% trans "Election" %} - {% trans "Back to overview" %} - PDF + + + {% trans "Back to overview" %} + + + + PDF + {% if perms.core.can_manage_projector %} - + class="activate_link btn btn-default {% if assignment.is_active_slide %}btn-primary{% endif %} btn-sm" + rel="tooltip" data-original-title="{% trans 'Show election' %}"> + {% endif %} {% if perms.assignment.can_manage_assignment or perms.agenda.can_manage_agenda %} @@ -50,13 +72,13 @@ - -{% for tag in assignment.tags.all %} - {{ tag }} -{% endfor %} +
+
+ + {% for tag in assignment.tags.all %} + {{ tag }} + {% endfor %} -
-

{% trans "Description" %}

{% if assignment.description %} @@ -74,22 +96,30 @@ {{ person }} {% if perms.assignment.can_manage_assignment %} {% if assignment.status == "sea" or assignment.status == "vot" %} - + + + {% endif %} {% endif %} {% if person in assignment.elected %} | {% trans "elected" %} {% if perms.assignment.can_manage_assignment %} {% if assignment.status == "sea" or assignment.status == "vot" %} - - + + {% endif %} {% endif %} {% endif %} {% empty %} -
  • {% trans "No candidates available." %}
  • +
  • + {% trans "No candidates available." %} +
  • {% endfor %} {% if assignment.status == "sea" or perms.assignment.can_manage_assignment and assignment.status == "vot" %} @@ -98,12 +128,14 @@ {% if perms.assignment.can_nominate_self %}

    {% if user_is_candidate %} - - {% trans 'Withdraw self candidature' %} + + + {% trans 'Withdraw self candidature' %} {% else %} - - {% trans 'Self candidature' %} + + + {% trans 'Self candidature' %} {% endif %}

    @@ -111,15 +143,17 @@ {% if perms.assignment.can_nominate_other %} {% for field in form %} -
    - {{ field }} - - {% if perms.participant.can_see_participant and perms.participant.can_manage_participant %} - - {% endif %} -
    + {{ field }} + + {% if perms.users.can_see and perms.users.can_manage %} + + + + {% endif %} {% endfor %} {% endif %} @@ -153,25 +187,26 @@ {% trans "Candidates" %} {% for poll in polls %} - + {% if perms.assignment.can_manage_assignment %}

    {% endif %} {{ poll.get_ballot|ordinal|safe }} {% trans 'ballot' %} {% if perms.assignment.can_manage_assignment %} - - {% if poll.published %} - - {% else %} - + + {% if poll.published %} + + {% else %} + {% endif %}

    - + class="btn btn-default btn-sm activate_link {% if poll.is_active_slide %}btn-primary{% endif %}" + rel="tooltip" data-original-title="{% trans 'Show election result' %}"> + + {% endfor %} {% if assignment.candidates and perms.assignment.can_manage_assignment and assignment.status == "vot" %} - - - {% trans 'New ballot' %} + + + + {% trans 'New ballot' %} {% endif %} @@ -283,16 +319,17 @@ {% trans "No ballots available." %} {% if assignment.candidates and perms.assignment.can_manage_assignment and assignment.status == "vot" %}

    - - {% trans 'New ballot' %} - + + + {% trans 'New ballot' %} +

    {% endif %} {% endif %} {% endif %} -
    +
    -
    {% endblock %} diff --git a/openslides/assignment/templates/assignment/assignment_form.html b/openslides/assignment/templates/assignment/assignment_form.html index f3105a19a..0888ba10a 100644 --- a/openslides/assignment/templates/assignment/assignment_form.html +++ b/openslides/assignment/templates/assignment/assignment_form.html @@ -21,9 +21,15 @@ {% endif %} {% if assignment %} - {% trans "Back to election" %} + + + {% trans "Back to election" %} + {% else %} - {% trans "Back to overview" %} + + + {% trans "Back to overview" %} + {% endif %} @@ -31,10 +37,10 @@
    {% csrf_token %} {% include "form.html" %}

    - {% include "formbuttons_saveapply.html" %} - - {% trans 'Cancel' %} - + {% include "formbuttons_saveapply.html" %} + + {% trans 'Cancel' %} +

    * {% trans "required" %}
    diff --git a/openslides/assignment/templates/assignment/assignment_list.html b/openslides/assignment/templates/assignment/assignment_list.html index da85429a7..2a1547d2b 100644 --- a/openslides/assignment/templates/assignment/assignment_list.html +++ b/openslides/assignment/templates/assignment/assignment_list.html @@ -6,29 +6,29 @@ {% block title %}{% trans "Elections" %} – {{ block.super }}{% endblock %} -{% block header %} - -{% endblock %} - -{% block javascript %} - - -{% endblock %} - {% block content %}

    {% trans "Elections" %} {% if perms.assignment.can_manage_assignment %} - {% trans "New" %} + + + {% trans 'New' %} + {% endif %} {% if perms.core.can_manage_tags %} - - + + {% trans 'Tags' %} {% endif %} {% if perms.assignment.can_see_assignment %} - PDF + + + PDF + {% endif %}

    @@ -68,19 +68,21 @@ {% if perms.core.can_manage_projector %} - + class="activate_link btn btn-default {% if object.is_active_slide %}btn-primary{% endif %} btn-sm" + rel="tooltip" data-original-title="{% trans 'Show election' %}"> + {% endif %} {% if perms.assignment.can_manage_assignment %} + rel="tooltip" data-original-title="{% trans 'Edit' %}" + class="btn btn-default btn-sm"> + + class="btn btn-default btn-sm"> + {% endif %} diff --git a/openslides/config/main_menu.py b/openslides/config/main_menu.py index 10332844a..86a6b943e 100644 --- a/openslides/config/main_menu.py +++ b/openslides/config/main_menu.py @@ -11,4 +11,4 @@ class ConfigMainMenuEntry(MainMenuEntry): required_permission = 'config.can_manage' default_weight = 70 pattern_name = 'config_first_config_collection_view' - icon_css_class = 'icon-cog' + icon_css_class = 'glyphicon-cog' diff --git a/openslides/core/main_menu.py b/openslides/core/main_menu.py index f3dc8789a..165ea7b25 100644 --- a/openslides/core/main_menu.py +++ b/openslides/core/main_menu.py @@ -10,5 +10,5 @@ class DashboardMainMenuEntry(MainMenuEntry): verbose_name = ugettext_lazy('Dashboard') required_permission = 'core.can_see_dashboard' default_weight = 10 - icon_css_class = 'icon-home' + icon_css_class = 'glyphicon-home' pattern_name = 'core_dashboard' diff --git a/openslides/core/static/css/base.css b/openslides/core/static/css/base.css index bb622b5d1..ce7c324b3 100644 --- a/openslides/core/static/css/base.css +++ b/openslides/core/static/css/base.css @@ -16,6 +16,7 @@ body { background-image: -o-linear-gradient(top, #444444, #222222); background-image: linear-gradient(top, #444444, #222222); box-shadow: 0 0 7px rgba(0,0,0,0.6); + border-radius: 0; height: 35px; margin-bottom: 20px; padding: 7px 20px 0; @@ -31,7 +32,7 @@ body { position: absolute; margin: 8px 0 0 50px; } -#header .navbar-search { +#searchform { margin-top: 0px; } @@ -45,9 +46,6 @@ h1 { margin: 0px 0 30px; padding-bottom: 9px; } -h5 { - margin-bottom: 0px; -} a:hover { text-decoration: none; } @@ -73,15 +71,6 @@ a:hover { padding-bottom: 20px; line-height: 45px; } -#login-page input { - width: 240px; - height: 30px; - font-size: 20px; -} -#login-page span.add-on { - height: 26px; - padding: 8px 5px 4px 5px; -} /* Log */ #log { @@ -203,6 +192,7 @@ table.cke_dialog_contents textarea { /** Left sidebar navigation **/ .leftmenu ul { margin: 0; + padding: 0; list-style: none; } .leftmenu ul ul { @@ -214,6 +204,7 @@ table.cke_dialog_contents textarea { .leftmenu ul li { display: block; width: 100%; + line-height: 30px; } .leftmenu ul li a { border-style: none solid solid; @@ -228,14 +219,14 @@ table.cke_dialog_contents textarea { .leftmenu ul li:first-child a { border-top: 1px solid #DDDDDD; } -.leftmenu ul li a span.ico { +.leftmenu ul li a .glyphicon { display: inline-block; background: #f9f9f9; padding: 8px 10px 6px; margin: 0 5px 0 0; border-right: 1px solid #dddddd; } -.leftmenu ul li a, .leftmenu ul li a span.ico { +.leftmenu ul li a, .leftmenu ul li a .glyphicon { -webkit-transition: background 0.2s ease-in-out; -moz-transition: background 0.2s ease-in-out; -ms-transition: background 0.2s ease-in-out; @@ -246,20 +237,17 @@ table.cke_dialog_contents textarea { background-color: #f5f5f5; color: #000000; } -.leftmenu ul li a:hover span.ico { +.leftmenu ul li a:hover .glyphicon { background-color: #efefef; } .leftmenu ul li.active a { background-color: #333333; color: #ffffff; } -.leftmenu ul li.active a span.ico { - background-color: #111111; +.leftmenu ul li.active a .glyphicon { + background-color: #333333; border-right: 1px solid #444444; } -.leftmenu ul li.active a span.ico i { - background-image: url("../img/glyphicons-halflings-white.png"); -} .leftmenu ul li.hider a { margin-top: 5px; height: 20px; @@ -285,11 +273,12 @@ table.cke_dialog_contents textarea { /** Icons **/ /* TODO: Move some of them to the respective apps. */ .icon-assignment { - background-image: url("../img/glyphicons_041_charts.png"); - background-position: 0; + background: url("../img/glyphicons_041_charts.png") no-repeat !important; + width: 25px; + margin-left: 10px !important; } -.leftmenu ul li.active a span.ico i.icon-assignment { - background-image: url("../img/glyphicons_041_charts_white.png"); +.leftmenu ul li.active a .glyphicon.icon-assignment { + background-image: url("../img/glyphicons_041_charts_white.png") !important; } .status_link .icon-on, .icon-checked-new { background-image: url("../img/glyphicons_152_check.png"); @@ -354,10 +343,10 @@ table.cke_dialog_contents textarea { width: auto; } /* hide optional column */ - .optional, #searchbutton #id_q { + .optional, #searchform #id_q { display: none; } - #searchbutton button { + #searchform button { border-radius: 4px; } } diff --git a/openslides/core/static/css/dataTables/dataTables.bootstrap.css b/openslides/core/static/css/dataTables/dataTables.bootstrap.css deleted file mode 100644 index b263c1511..000000000 --- a/openslides/core/static/css/dataTables/dataTables.bootstrap.css +++ /dev/null @@ -1,188 +0,0 @@ -/*! - * Bootstrap style for DataTables jquery plugin - * - * Copyright 2012 - * DataTables is dual licensed under the GPL v2 license or a BSD (3-point) license. - * http://www.datatables.net - * http://www.datatables.net/blog/Twitter_Bootstrap_2 - * - */ - -div.dataTables_length label { - float: left; - text-align: left; -} - -div.dataTables_length select { - width: 75px; -} - -div.dataTables_filter label { - float: right; -} - -div.dataTables_info { - padding-top: 8px; -} - -div.dataTables_paginate { - float: right; - margin: 0; -} - -table.table { - clear: both; - margin-bottom: 6px !important; - max-width: none !important; -} - -table.table thead .sorting, -table.table thead .sorting_asc, -table.table thead .sorting_desc, -table.table thead .sorting_asc_disabled, -table.table thead .sorting_desc_disabled { - cursor: pointer; - *cursor: hand; -} - -table.table thead .sorting { background: url('images/sort_both.png') no-repeat center right; } -table.table thead .sorting_asc { background: url('images/sort_asc.png') no-repeat center right; } -table.table thead .sorting_desc { background: url('images/sort_desc.png') no-repeat center right; } - -table.table thead .sorting_asc_disabled { background: url('images/sort_asc_disabled.png') no-repeat center right; } -table.table thead .sorting_desc_disabled { background: url('images/sort_desc_disabled.png') no-repeat center right; } - -table.dataTable th:active { - outline: none; -} - -/* Scrolling */ -div.dataTables_scrollHead table { - margin-bottom: 0 !important; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; -} - -div.dataTables_scrollHead table thead tr:last-child th:first-child, -div.dataTables_scrollHead table thead tr:last-child td:first-child { - border-bottom-left-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -div.dataTables_scrollBody table { - border-top: none; - margin-bottom: 0 !important; -} - -div.dataTables_scrollBody tbody tr:first-child th, -div.dataTables_scrollBody tbody tr:first-child td { - border-top: none; -} - -div.dataTables_scrollFoot table { - border-top: none; -} - - - - -/* - * TableTools styles - */ -.table tbody tr.active td, -.table tbody tr.active th { - background-color: #08C; - color: white; -} - -.table tbody tr.active:hover td, -.table tbody tr.active:hover th { - background-color: #0075b0 !important; -} - -.table-striped tbody tr.active:nth-child(odd) td, -.table-striped tbody tr.active:nth-child(odd) th { - background-color: #017ebc; -} - -table.DTTT_selectable tbody tr { - cursor: pointer; - *cursor: hand; -} - -div.DTTT .btn { - color: #333 !important; - font-size: 12px; -} - -div.DTTT .btn:hover { - text-decoration: none !important; -} - - -ul.DTTT_dropdown.dropdown-menu a { - color: #333 !important; /* needed only when demo_page.css is included */ -} - -ul.DTTT_dropdown.dropdown-menu li:hover a { - background-color: #0088cc; - color: white !important; -} - -/* TableTools information display */ -div.DTTT_print_info.modal { - height: 150px; - margin-top: -75px; - text-align: center; -} - -div.DTTT_print_info h6 { - font-weight: normal; - font-size: 28px; - line-height: 28px; - margin: 1em; -} - -div.DTTT_print_info p { - font-size: 14px; - line-height: 20px; -} - - - -/* - * FixedColumns styles - */ -div.DTFC_LeftHeadWrapper table, -div.DTFC_LeftFootWrapper table, -table.DTFC_Cloned tr.even { - background-color: white; -} - -div.DTFC_LeftHeadWrapper table { - margin-bottom: 0 !important; - border-top-right-radius: 0 !important; - border-bottom-left-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -div.DTFC_LeftHeadWrapper table thead tr:last-child th:first-child, -div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child { - border-bottom-left-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} - -div.DTFC_LeftBodyWrapper table { - border-top: none; - margin-bottom: 0 !important; -} - -div.DTFC_LeftBodyWrapper tbody tr:first-child th, -div.DTFC_LeftBodyWrapper tbody tr:first-child td { - border-top: none; -} - -div.DTFC_LeftFootWrapper table { - border-top: none; -} - diff --git a/openslides/core/static/css/dataTables/images/sort_asc.png b/openslides/core/static/css/dataTables/images/sort_asc.png deleted file mode 100644 index a88d7975f..000000000 Binary files a/openslides/core/static/css/dataTables/images/sort_asc.png and /dev/null differ diff --git a/openslides/core/static/css/dataTables/images/sort_asc_disabled.png b/openslides/core/static/css/dataTables/images/sort_asc_disabled.png deleted file mode 100644 index 4e144cf0b..000000000 Binary files a/openslides/core/static/css/dataTables/images/sort_asc_disabled.png and /dev/null differ diff --git a/openslides/core/static/css/dataTables/images/sort_both.png b/openslides/core/static/css/dataTables/images/sort_both.png deleted file mode 100644 index 18670406b..000000000 Binary files a/openslides/core/static/css/dataTables/images/sort_both.png and /dev/null differ diff --git a/openslides/core/static/css/dataTables/images/sort_desc.png b/openslides/core/static/css/dataTables/images/sort_desc.png deleted file mode 100644 index def071ed5..000000000 Binary files a/openslides/core/static/css/dataTables/images/sort_desc.png and /dev/null differ diff --git a/openslides/core/static/css/dataTables/images/sort_desc_disabled.png b/openslides/core/static/css/dataTables/images/sort_desc_disabled.png deleted file mode 100644 index 7824973cc..000000000 Binary files a/openslides/core/static/css/dataTables/images/sort_desc_disabled.png and /dev/null differ diff --git a/openslides/core/static/js/jquery/dataTables.bootstrap.js b/openslides/core/static/js/jquery/dataTables.bootstrap.js deleted file mode 100644 index 6e160ad3a..000000000 --- a/openslides/core/static/js/jquery/dataTables.bootstrap.js +++ /dev/null @@ -1,179 +0,0 @@ -/*! - * DataTables jquery plugin (for Twitter Bootstrap style) - * - * Copyright 2012 - * DataTables is dual licensed under the GPL v2 license or a BSD (3-point) license. - * http://www.datatables.net - * http://www.datatables.net/blog/Twitter_Bootstrap_2 - * - */ - -/* Table initialisation */ -$(document).ready(function() { - $('#dataTable').dataTable( { - "aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, gettext("All")]], - "aoColumnDefs": [ - { "bSortable": false, "aTargets": [ -1 ] } - ], - "oLanguage": { - "sLengthMenu": gettext("_MENU_ entries per page"), - "sSearch": gettext("Search:"), - "sInfo": gettext("Showing _START_ to _END_ of _TOTAL_ entries"), - "sInfoEmpty": gettext("Showing 0 entries"), - "sInfoFiltered": gettext("(filtered from _MAX_ total entries)"), - "sZeroRecords": gettext("No matching records found"), - "oPaginate": { - "sFirst": gettext("First"), - "sLast": gettext("Last"), - "sNext": gettext("Next"), - "sPrevious": gettext("Previous"), - } - } - } ); -} ); - - -/* Set the defaults for DataTables initialisation */ -$.extend( true, $.fn.dataTable.defaults, { - "sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>", - "sPaginationType": "bootstrap", -} ); - - -/* Default class modification */ -$.extend( $.fn.dataTableExt.oStdClasses, { - "sWrapper": "dataTables_wrapper form-inline" -} ); - - -/* API method to get paging information */ -$.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings ) -{ - return { - "iStart": oSettings._iDisplayStart, - "iEnd": oSettings.fnDisplayEnd(), - "iLength": oSettings._iDisplayLength, - "iTotal": oSettings.fnRecordsTotal(), - "iFilteredTotal": oSettings.fnRecordsDisplay(), - "iPage": oSettings._iDisplayLength === -1 ? - 0 : Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ), - "iTotalPages": oSettings._iDisplayLength === -1 ? - 0 : Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength ) - }; -}; - - -/* Bootstrap style pagination control */ -$.extend( $.fn.dataTableExt.oPagination, { - "bootstrap": { - "fnInit": function( oSettings, nPaging, fnDraw ) { - var oLang = oSettings.oLanguage.oPaginate; - var fnClickHandler = function ( e ) { - e.preventDefault(); - if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) { - fnDraw( oSettings ); - } - }; - - $(nPaging).addClass('pagination').append( - '' - ); - var els = $('a', nPaging); - $(els[0]).bind( 'click.DT', { action: "previous" }, fnClickHandler ); - $(els[1]).bind( 'click.DT', { action: "next" }, fnClickHandler ); - }, - - "fnUpdate": function ( oSettings, fnDraw ) { - var iListLength = 5; - var oPaging = oSettings.oInstance.fnPagingInfo(); - var an = oSettings.aanFeatures.p; - var i, ien, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2); - - if ( oPaging.iTotalPages < iListLength) { - iStart = 1; - iEnd = oPaging.iTotalPages; - } - else if ( oPaging.iPage <= iHalf ) { - iStart = 1; - iEnd = iListLength; - } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) { - iStart = oPaging.iTotalPages - iListLength + 1; - iEnd = oPaging.iTotalPages; - } else { - iStart = oPaging.iPage - iHalf + 1; - iEnd = iStart + iListLength - 1; - } - - for ( i=0, ien=an.length ; i'+j+'') - .insertBefore( $('li:last', an[i])[0] ) - .bind('click', function (e) { - e.preventDefault(); - oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; - fnDraw( oSettings ); - } ); - } - - // Add / remove disabled classes from the static elements - if ( oPaging.iPage === 0 ) { - $('li:first', an[i]).addClass('disabled'); - } else { - $('li:first', an[i]).removeClass('disabled'); - } - - if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) { - $('li:last', an[i]).addClass('disabled'); - } else { - $('li:last', an[i]).removeClass('disabled'); - } - } - } - } -} ); - - -/* - * TableTools Bootstrap compatibility - * Required TableTools 2.1+ - */ -if ( $.fn.DataTable.TableTools ) { - // Set the classes that TableTools uses to something suitable for Bootstrap - $.extend( true, $.fn.DataTable.TableTools.classes, { - "container": "DTTT btn-group", - "buttons": { - "normal": "btn", - "disabled": "disabled" - }, - "collection": { - "container": "DTTT_dropdown dropdown-menu", - "buttons": { - "normal": "", - "disabled": "disabled" - } - }, - "print": { - "info": "DTTT_print_info modal" - }, - "select": { - "row": "active" - } - } ); - - // Have the collection use a bootstrap compatible dropdown - $.extend( true, $.fn.DataTable.TableTools.DEFAULTS.oTags, { - "collection": { - "container": "ul", - "button": "li", - "liner": "a" - } - } ); -} diff --git a/openslides/core/static/js/jquery/jquery.dataTables.min.js b/openslides/core/static/js/jquery/jquery.dataTables.min.js deleted file mode 100644 index 02694a4a5..000000000 --- a/openslides/core/static/js/jquery/jquery.dataTables.min.js +++ /dev/null @@ -1,155 +0,0 @@ -/* - * File: jquery.dataTables.min.js - * Version: 1.9.4 - * Author: Allan Jardine (www.sprymedia.co.uk) - * Info: www.datatables.net - * - * Copyright 2008-2012 Allan Jardine, all rights reserved. - * - * This source file is free software, under either the GPL v2 license or a - * BSD style license, available at: - * http://datatables.net/license_gpl2 - * http://datatables.net/license_bsd - * - * This source file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. - */ -(function(X,l,n){var L=function(h){var j=function(e){function o(a,b){var c=j.defaults.columns,d=a.aoColumns.length,c=h.extend({},j.models.oColumn,c,{sSortingClass:a.oClasses.sSortable,sSortingClassJUI:a.oClasses.sSortJUI,nTh:b?b:l.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.oDefaults:d});a.aoColumns.push(c);if(a.aoPreSearchCols[d]===n||null===a.aoPreSearchCols[d])a.aoPreSearchCols[d]=h.extend({},j.models.oSearch);else if(c=a.aoPreSearchCols[d], -c.bRegex===n&&(c.bRegex=!0),c.bSmart===n&&(c.bSmart=!0),c.bCaseInsensitive===n)c.bCaseInsensitive=!0;m(a,d,null)}function m(a,b,c){var d=a.aoColumns[b];c!==n&&null!==c&&(c.mDataProp&&!c.mData&&(c.mData=c.mDataProp),c.sType!==n&&(d.sType=c.sType,d._bAutoType=!1),h.extend(d,c),p(d,c,"sWidth","sWidthOrig"),c.iDataSort!==n&&(d.aDataSort=[c.iDataSort]),p(d,c,"aDataSort"));var i=d.mRender?Q(d.mRender):null,f=Q(d.mData);d.fnGetData=function(a,b){var c=f(a,b);return d.mRender&&b&&""!==b?i(c,b,a):c};d.fnSetData= -L(d.mData);a.oFeatures.bSort||(d.bSortable=!1);!d.bSortable||-1==h.inArray("asc",d.asSorting)&&-1==h.inArray("desc",d.asSorting)?(d.sSortingClass=a.oClasses.sSortableNone,d.sSortingClassJUI=""):-1==h.inArray("asc",d.asSorting)&&-1==h.inArray("desc",d.asSorting)?(d.sSortingClass=a.oClasses.sSortable,d.sSortingClassJUI=a.oClasses.sSortJUI):-1!=h.inArray("asc",d.asSorting)&&-1==h.inArray("desc",d.asSorting)?(d.sSortingClass=a.oClasses.sSortableAsc,d.sSortingClassJUI=a.oClasses.sSortJUIAscAllowed):-1== -h.inArray("asc",d.asSorting)&&-1!=h.inArray("desc",d.asSorting)&&(d.sSortingClass=a.oClasses.sSortableDesc,d.sSortingClassJUI=a.oClasses.sSortJUIDescAllowed)}function k(a){if(!1===a.oFeatures.bAutoWidth)return!1;da(a);for(var b=0,c=a.aoColumns.length;bj[f])d(a.aoColumns.length+j[f],b[i]);else if("string"===typeof j[f]){e=0;for(w=a.aoColumns.length;eb&&a[d]--; -1!=c&&a.splice(c,1)}function S(a,b,c){var d=a.aoColumns[c];return d.fnRender({iDataRow:b,iDataColumn:c,oSettings:a,aData:a.aoData[b]._aData,mDataProp:d.mData},v(a,b,c,"display"))}function ea(a,b){var c=a.aoData[b],d;if(null===c.nTr){c.nTr=l.createElement("tr");c.nTr._DT_RowIndex=b;c._aData.DT_RowId&&(c.nTr.id=c._aData.DT_RowId);c._aData.DT_RowClass&& -(c.nTr.className=c._aData.DT_RowClass);for(var i=0,f=a.aoColumns.length;i=a.fnRecordsDisplay()?0:a.iInitDisplayStart,a.iInitDisplayStart=-1,y(a));if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++;else if(a.oFeatures.bServerSide){if(!a.bDestroying&&!wa(a))return}else a.iDraw++;if(0!==a.aiDisplay.length){var g= -a._iDisplayStart;d=a._iDisplayEnd;a.oFeatures.bServerSide&&(g=0,d=a.aoData.length);for(;g
    ")[0];a.nTable.parentNode.insertBefore(b,a.nTable);a.nTableWrapper=h('
    ')[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var c=a.nTableWrapper,d=a.sDom.split(""),i,f,g,e,w,o,k,m=0;m
    ")[0];w=d[m+ -1];if("'"==w||'"'==w){o="";for(k=2;d[m+k]!=w;)o+=d[m+k],k++;"H"==o?o=a.oClasses.sJUIHeader:"F"==o&&(o=a.oClasses.sJUIFooter);-1!=o.indexOf(".")?(w=o.split("."),e.id=w[0].substr(1,w[0].length-1),e.className=w[1]):"#"==o.charAt(0)?e.id=o.substr(1,o.length-1):e.className=o;m+=k}c.appendChild(e);c=e}else if(">"==g)c=c.parentNode;else if("l"==g&&a.oFeatures.bPaginate&&a.oFeatures.bLengthChange)i=ya(a),f=1;else if("f"==g&&a.oFeatures.bFilter)i=za(a),f=1;else if("r"==g&&a.oFeatures.bProcessing)i=Aa(a),f= -1;else if("t"==g)i=Ba(a),f=1;else if("i"==g&&a.oFeatures.bInfo)i=Ca(a),f=1;else if("p"==g&&a.oFeatures.bPaginate)i=Da(a),f=1;else if(0!==j.ext.aoFeatures.length){e=j.ext.aoFeatures;k=0;for(w=e.length;k'):""===c?'':c+' ',d=l.createElement("div");d.className=a.oClasses.sFilter;d.innerHTML="";a.aanFeatures.f||(d.id=a.sTableId+"_filter");c=h('input[type="text"]',d);d._DT_Input=c[0];c.val(b.sSearch.replace('"',"""));c.bind("keyup.DT",function(){for(var c=a.aanFeatures.f,d=this.value===""?"":this.value, -g=0,e=c.length;g=b.length)a.aiDisplay.splice(0,a.aiDisplay.length),a.aiDisplay=a.aiDisplayMaster.slice();else if(a.aiDisplay.length==a.aiDisplayMaster.length||i.sSearch.length>b.length||1==c||0!==b.indexOf(i.sSearch)){a.aiDisplay.splice(0, -a.aiDisplay.length);la(a,1);for(b=0;b").html(c).text()); -return c.replace(/[\n\r]/g," ")}function ma(a,b,c,d){if(c)return a=b?a.split(" "):oa(a).split(" "),a="^(?=.*?"+a.join(")(?=.*?")+").*$",RegExp(a,d?"i":"");a=b?a:oa(a);return RegExp(a,d?"i":"")}function Ja(a,b){return"function"===typeof j.ext.ofnSearch[b]?j.ext.ofnSearch[b](a):null===a?"":"html"==b?a.replace(/[\r\n]/g," ").replace(/<.*?>/g,""):"string"===typeof a?a.replace(/[\r\n]/g," "):a}function oa(a){return a.replace(RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"), -"\\$1")}function Ca(a){var b=l.createElement("div");b.className=a.oClasses.sInfo;a.aanFeatures.i||(a.aoDrawCallback.push({fn:Ka,sName:"information"}),b.id=a.sTableId+"_info");a.nTable.setAttribute("aria-describedby",a.sTableId+"_info");return b}function Ka(a){if(a.oFeatures.bInfo&&0!==a.aanFeatures.i.length){var b=a.oLanguage,c=a._iDisplayStart+1,d=a.fnDisplayEnd(),i=a.fnRecordsTotal(),f=a.fnRecordsDisplay(),g;g=0===f?b.sInfoEmpty:b.sInfo;f!=i&&(g+=" "+b.sInfoFiltered);g+=b.sInfoPostFix;g=ja(a,g); -null!==b.fnInfoCallback&&(g=b.fnInfoCallback.call(a.oInstance,a,c,d,i,f,g));a=a.aanFeatures.i;b=0;for(c=a.length;b",c,d,i=a.aLengthMenu;if(2==i.length&&"object"===typeof i[0]&&"object"===typeof i[1]){c=0;for(d=i[0].length;c'+i[1][c]+""}else{c=0;for(d=i.length;c'+i[c]+""}b+="";i=l.createElement("div");a.aanFeatures.l|| -(i.id=a.sTableId+"_length");i.className=a.oClasses.sLength;i.innerHTML="";h('select option[value="'+a._iDisplayLength+'"]',i).attr("selected",!0);h("select",i).bind("change.DT",function(){var b=h(this).val(),i=a.aanFeatures.l;c=0;for(d=i.length;ca.aiDisplay.length||-1==a._iDisplayLength?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength}function Da(a){if(a.oScroll.bInfinite)return null;var b=l.createElement("div");b.className=a.oClasses.sPaging+a.sPaginationType;j.ext.oPagination[a.sPaginationType].fnInit(a, -b,function(a){y(a);x(a)});a.aanFeatures.p||a.aoDrawCallback.push({fn:function(a){j.ext.oPagination[a.sPaginationType].fnUpdate(a,function(a){y(a);x(a)})},sName:"pagination"});return b}function qa(a,b){var c=a._iDisplayStart;if("number"===typeof b)a._iDisplayStart=b*a._iDisplayLength,a._iDisplayStart>a.fnRecordsDisplay()&&(a._iDisplayStart=0);else if("first"==b)a._iDisplayStart=0;else if("previous"==b)a._iDisplayStart=0<=a._iDisplayLength?a._iDisplayStart-a._iDisplayLength:0,0>a._iDisplayStart&&(a._iDisplayStart= -0);else if("next"==b)0<=a._iDisplayLength?a._iDisplayStart+a._iDisplayLengthh(a.nTable).height()-a.oScroll.iLoadGap&&a.fnDisplayEnd()d.offsetHeight||"scroll"==h(d).css("overflow-y")))a.nTable.style.width=q(h(a.nTable).outerWidth()-a.oScroll.iBarWidth)}else""!==a.oScroll.sXInner?a.nTable.style.width= -q(a.oScroll.sXInner):i==h(d).width()&&h(d).height()i-a.oScroll.iBarWidth&&(a.nTable.style.width=q(i))):a.nTable.style.width=q(i);i=h(a.nTable).outerWidth();C(s,e);C(function(a){p.push(q(h(a).width()))},e);C(function(a,b){a.style.width=p[b]},g);h(e).height(0);null!==a.nTFoot&&(C(s,j),C(function(a){n.push(q(h(a).width()))},j),C(function(a,b){a.style.width=n[b]},o),h(j).height(0));C(function(a,b){a.innerHTML= -"";a.style.width=p[b]},e);null!==a.nTFoot&&C(function(a,b){a.innerHTML="";a.style.width=n[b]},j);if(h(a.nTable).outerWidth()d.offsetHeight||"scroll"==h(d).css("overflow-y")?i+a.oScroll.iBarWidth:i;if(r&&(d.scrollHeight>d.offsetHeight||"scroll"==h(d).css("overflow-y")))a.nTable.style.width=q(g-a.oScroll.iBarWidth);d.style.width=q(g);a.nScrollHead.style.width=q(g);null!==a.nTFoot&&(a.nScrollFoot.style.width=q(g));""===a.oScroll.sX?D(a,1,"The table cannot fit into the current element which will cause column misalignment. The table has been drawn at its minimum possible width."): -""!==a.oScroll.sXInner&&D(a,1,"The table cannot fit into the current element which will cause column misalignment. Increase the sScrollXInner value or remove it to allow automatic calculation")}else d.style.width=q("100%"),a.nScrollHead.style.width=q("100%"),null!==a.nTFoot&&(a.nScrollFoot.style.width=q("100%"));""===a.oScroll.sY&&r&&(d.style.height=q(a.nTable.offsetHeight+a.oScroll.iBarWidth));""!==a.oScroll.sY&&a.oScroll.bCollapse&&(d.style.height=q(a.oScroll.sY),r=""!==a.oScroll.sX&&a.nTable.offsetWidth> -d.offsetWidth?a.oScroll.iBarWidth:0,a.nTable.offsetHeightd.clientHeight||"scroll"==h(d).css("overflow-y");b.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px";null!==a.nTFoot&&(R.style.width=q(r),l.style.width=q(r),l.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px");h(d).scroll();if(a.bSorted||a.bFiltered)d.scrollTop=0}function C(a,b,c){for(var d= -0,i=0,f=b.length,g,e;itd",b));j=N(a,f);for(f=d=0;fc)return null;if(null===a.aoData[c].nTr){var d=l.createElement("td");d.innerHTML=v(a,c,b,"");return d}return J(a,c)[b]}function Pa(a,b){for(var c=-1,d=-1,i=0;i/g,"");e.length>c&&(c=e.length,d=i)}return d}function q(a){if(null===a)return"0px";if("number"==typeof a)return 0>a?"0px":a+"px";var b=a.charCodeAt(a.length-1); -return 48>b||57/g,""),i=q[c].nTh,i.removeAttribute("aria-sort"),i.removeAttribute("aria-label"),q[c].bSortable?0d&&d++;f=RegExp(f+"[123]");var o;b=0;for(c=a.length;b
    ')[0];l.body.appendChild(b);a.oBrowser.bScrollOversize= -100===h("#DT_BrowserTest",b)[0].offsetWidth?!0:!1;l.body.removeChild(b)}function Va(a){return function(){var b=[s(this[j.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return j.ext.oApi[a].apply(this,b)}}var U=/\[.*?\]$/,Wa=X.JSON?JSON.stringify:function(a){var b=typeof a;if("object"!==b||null===a)return"string"===b&&(a='"'+a+'"'),a+"";var c,d,e=[],f=h.isArray(a);for(c in a)d=a[c],b=typeof d,"string"===b?d='"'+d+'"':"object"===b&&null!==d&&(d=Wa(d)),e.push((f?"":'"'+c+'":')+d);return(f? -"[":"{")+e+(f?"]":"}")};this.$=function(a,b){var c,d,e=[],f;d=s(this[j.ext.iApiIndex]);var g=d.aoData,o=d.aiDisplay,k=d.aiDisplayMaster;b||(b={});b=h.extend({},{filter:"none",order:"current",page:"all"},b);if("current"==b.page){c=d._iDisplayStart;for(d=d.fnDisplayEnd();c=d.fnRecordsDisplay()&&(d._iDisplayStart-=d._iDisplayLength,0>d._iDisplayStart&&(d._iDisplayStart=0));if(c===n||c)y(d),x(d);return g};this.fnDestroy=function(a){var b=s(this[j.ext.iApiIndex]),c=b.nTableWrapper.parentNode,d=b.nTBody,i,f,a=a===n?!1:a;b.bDestroying=!0;A(b,"aoDestroyCallback","destroy",[b]);if(!a){i=0;for(f=b.aoColumns.length;itr>td."+b.oClasses.sRowEmpty,b.nTable).parent().remove();b.nTable!=b.nTHead.parentNode&&(h(b.nTable).children("thead").remove(),b.nTable.appendChild(b.nTHead));b.nTFoot&&b.nTable!=b.nTFoot.parentNode&&(h(b.nTable).children("tfoot").remove(),b.nTable.appendChild(b.nTFoot));b.nTable.parentNode.removeChild(b.nTable);h(b.nTableWrapper).remove();b.aaSorting=[];b.aaSortingFixed=[];P(b);h(T(b)).removeClass(b.asStripeClasses.join(" "));h("th, td",b.nTHead).removeClass([b.oClasses.sSortable,b.oClasses.sSortableAsc, -b.oClasses.sSortableDesc,b.oClasses.sSortableNone].join(" "));b.bJUI&&(h("th span."+b.oClasses.sSortIcon+", td span."+b.oClasses.sSortIcon,b.nTHead).remove(),h("th, td",b.nTHead).each(function(){var a=h("div."+b.oClasses.sSortJUIWrapper,this),c=a.contents();h(this).append(c);a.remove()}));!a&&b.nTableReinsertBefore?c.insertBefore(b.nTable,b.nTableReinsertBefore):a||c.appendChild(b.nTable);i=0;for(f=b.aoData.length;i=t(d);if(!m)for(e=a;et<"F"ip>')):h.extend(g.oClasses,j.ext.oStdClasses);h(this).addClass(g.oClasses.sTable);if(""!==g.oScroll.sX||""!==g.oScroll.sY)g.oScroll.iBarWidth=Qa();g.iInitDisplayStart===n&&(g.iInitDisplayStart=e.iDisplayStart, -g._iDisplayStart=e.iDisplayStart);e.bStateSave&&(g.oFeatures.bStateSave=!0,Sa(g,e),z(g,"aoDrawCallback",ra,"state_save"));null!==e.iDeferLoading&&(g.bDeferLoading=!0,a=h.isArray(e.iDeferLoading),g._iRecordsDisplay=a?e.iDeferLoading[0]:e.iDeferLoading,g._iRecordsTotal=a?e.iDeferLoading[1]:e.iDeferLoading);null!==e.aaData&&(f=!0);""!==e.oLanguage.sUrl?(g.oLanguage.sUrl=e.oLanguage.sUrl,h.getJSON(g.oLanguage.sUrl,null,function(a){pa(a);h.extend(true,g.oLanguage,e.oLanguage,a);ba(g)}),i=!0):h.extend(!0, -g.oLanguage,e.oLanguage);null===e.asStripeClasses&&(g.asStripeClasses=[g.oClasses.sStripeOdd,g.oClasses.sStripeEven]);b=g.asStripeClasses.length;g.asDestroyStripes=[];if(b){c=!1;d=h(this).children("tbody").children("tr:lt("+b+")");for(a=0;a=g.aoColumns.length&&(g.aaSorting[a][0]=0);var k=g.aoColumns[g.aaSorting[a][0]];g.aaSorting[a][2]===n&&(g.aaSorting[a][2]=0);e.aaSorting===n&&g.saved_aaSorting===n&&(g.aaSorting[a][1]= -k.asSorting[0]);c=0;for(d=k.asSorting.length;c=parseInt(n,10)};j.fnIsDataTable=function(e){for(var h=j.settings,m=0;me)return e;for(var h=e+"",e=h.split(""),j="",h=h.length,k=0;k'+k.sPrevious+''+k.sNext+"":'';h(j).append(k);var l=h("a",j), -k=l[0],l=l[1];e.oApi._fnBindAction(k,{action:"previous"},n);e.oApi._fnBindAction(l,{action:"next"},n);e.aanFeatures.p||(j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_previous",l.id=e.sTableId+"_next",k.setAttribute("aria-controls",e.sTableId),l.setAttribute("aria-controls",e.sTableId))},fnUpdate:function(e){if(e.aanFeatures.p)for(var h=e.oClasses,j=e.aanFeatures.p,k,l=0,n=j.length;l'+k.sFirst+''+k.sPrevious+''+k.sNext+''+k.sLast+"");var t=h("a",j),k=t[0],l=t[1],r=t[2],t=t[3];e.oApi._fnBindAction(k,{action:"first"},n);e.oApi._fnBindAction(l,{action:"previous"},n);e.oApi._fnBindAction(r,{action:"next"},n);e.oApi._fnBindAction(t,{action:"last"},n);e.aanFeatures.p||(j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_first",l.id=e.sTableId+"_previous",r.id=e.sTableId+"_next",t.id=e.sTableId+"_last")}, -fnUpdate:function(e,o){if(e.aanFeatures.p){var m=j.ext.oPagination.iFullNumbersShowPages,k=Math.floor(m/2),l=Math.ceil(e.fnRecordsDisplay()/e._iDisplayLength),n=Math.ceil(e._iDisplayStart/e._iDisplayLength)+1,t="",r,B=e.oClasses,u,M=e.aanFeatures.p,L=function(h){e.oApi._fnBindAction(this,{page:h+r-1},function(h){e.oApi._fnPageChange(e,h.data.page);o(e);h.preventDefault()})};-1===e._iDisplayLength?n=k=r=1:l=l-k?(r=l-m+1,k=l):(r=n-Math.ceil(m/2)+1,k=r+m-1);for(m=r;m<=k;m++)t+= -n!==m?''+e.fnFormatNumber(m)+"":''+e.fnFormatNumber(m)+"";m=0;for(k=M.length;mh?1:0},"string-desc":function(e,h){return eh?-1:0},"html-pre":function(e){return e.replace(/<.*?>/g,"").toLowerCase()},"html-asc":function(e,h){return eh?1:0},"html-desc":function(e,h){return e< -h?1:e>h?-1:0},"date-pre":function(e){e=Date.parse(e);if(isNaN(e)||""===e)e=Date.parse("01/01/1970 00:00:00");return e},"date-asc":function(e,h){return e-h},"date-desc":function(e,h){return h-e},"numeric-pre":function(e){return"-"==e||""===e?0:1*e},"numeric-asc":function(e,h){return e-h},"numeric-desc":function(e,h){return h-e}});h.extend(j.ext.aTypes,[function(e){if("number"===typeof e)return"numeric";if("string"!==typeof e)return null;var h,j=!1;h=e.charAt(0);if(-1=="0123456789-".indexOf(h))return null; -for(var k=1;k")?"html":null}]);h.fn.DataTable=j;h.fn.dataTable=j;h.fn.dataTableSettings=j.settings;h.fn.dataTableExt=j.ext};"function"===typeof define&&define.amd?define(["jquery"],L):jQuery&&!jQuery.fn.dataTable&& -L(jQuery)})(window,document); diff --git a/openslides/core/templates/base.html b/openslides/core/templates/base.html index 028571d5e..4bc8a601e 100644 --- a/openslides/core/templates/base.html +++ b/openslides/core/templates/base.html @@ -10,7 +10,6 @@ {% block title %}{% get_config 'event_name' %}{% endblock %} - @@ -22,69 +21,82 @@ {% block header %}{% endblock %} + -
    -
    -
    - -
    + + {% block body %}
    -
    +
    -
    +
    -
    -
    -
    +
    +
    +
    -
    +
    {% endblock %} diff --git a/openslides/core/templates/form.html b/openslides/core/templates/form.html index 649026782..9d5fa4a7b 100644 --- a/openslides/core/templates/form.html +++ b/openslides/core/templates/form.html @@ -1,6 +1,6 @@ {{ form.media }} {% if form.non_field_errors %} -
    + {% endif %} {% for field in form %} -
    +
    {{ field }} {% if field.errors %} diff --git a/openslides/core/templates/formbuttons_saveapply.html b/openslides/core/templates/formbuttons_saveapply.html index 48c4fb339..d1be3e218 100644 --- a/openslides/core/templates/formbuttons_saveapply.html +++ b/openslides/core/templates/formbuttons_saveapply.html @@ -3,6 +3,6 @@ - \ No newline at end of file + diff --git a/openslides/mediafile/main_menu.py b/openslides/mediafile/main_menu.py index c99e6c496..ffa87b61e 100644 --- a/openslides/mediafile/main_menu.py +++ b/openslides/mediafile/main_menu.py @@ -10,7 +10,7 @@ class MediafileMainMenuEntry(MainMenuEntry): verbose_name = ugettext_lazy('Files') default_weight = 60 pattern_name = 'mediafile_list' - icon_css_class = 'icon-paperclip' + icon_css_class = 'glyphicon-paperclip' def check_permission(self): return ( diff --git a/openslides/motion/main_menu.py b/openslides/motion/main_menu.py index b85c421a0..2acfb21eb 100644 --- a/openslides/motion/main_menu.py +++ b/openslides/motion/main_menu.py @@ -11,4 +11,4 @@ class MotionMainMenuEntry(MainMenuEntry): required_permission = 'motion.can_see_motion' default_weight = 30 pattern_name = 'motion_list' - icon_css_class = 'icon-file' + icon_css_class = 'glyphicon-file' diff --git a/openslides/motion/templates/motion/motion_detail.html b/openslides/motion/templates/motion/motion_detail.html index 89d990ec1..7f3951268 100644 --- a/openslides/motion/templates/motion/motion_detail.html +++ b/openslides/motion/templates/motion/motion_detail.html @@ -34,36 +34,48 @@ {% endif %} - - {% trans "Back to overview" %} - - PDF + + + {% trans "Back to overview" %} + + + + PDF + {% if perms.core.can_manage_projector %} - - + + {% endif %} {% if perms.motion.can_manage_motion or perms.agenda.can_manage_agenda or allowed_actions.edit %}
    - - {% trans 'More actions' %} + + {% trans 'More actions' %}
    @@ -71,18 +83,18 @@
    -
    -
    +
    +
    {# TODO: show only for workflow with versioning #} {% with last_version=motion.get_last_version %} {% if version.version_number != motion.active_version.version_number %}

    - {% trans "Go to the authorized version" %} + {% trans "Go to the authorized version" %} (# {{ motion.active_version.version_number }})

    {% elif version.version_number != last_version.version_number %}

    - {% trans "Go to the newest version" %} + {% trans "Go to the newest version" %} (# {{ last_version.version_number }})

    {% endif %} @@ -121,7 +133,7 @@ # {% trans "Time" %} - + {% trans "Actions" %} {% endif %} @@ -131,7 +143,7 @@ {% else %} {% if perms.motion.can_manage_motion %} - + {% endif %} {% endif %} @@ -142,12 +154,12 @@ - - + + {% if perms.motion.can_manage_motion and version != motion.active_version %} - - + + {% endif %} @@ -164,7 +176,7 @@ {% if perms.motion.can_manage_motion %}

    -
    @@ -177,10 +189,10 @@

    {% endif %} -
    +
    -
    +
    {% trans "Submitter" %}:
    @@ -217,15 +229,19 @@ {% endif %} {% if perms.motion.can_manage_motion %} {% if polls.count > 1 %}
    {% endif %} - - - - - + + + + + + + + {% endif %} {% if poll.has_votes %}
    @@ -260,8 +276,9 @@ {% endfor %} {% if allowed_actions.create_poll %}

    - - {% trans 'New vote' %} + + + {% trans 'New vote' %}

    {% endif %} @@ -302,8 +319,8 @@ {% endif %} {% endwith %} - - + + {% trans 'New amendment' %} {% endif %} @@ -312,13 +329,13 @@ {% if perms.motion.can_support_motion and 'motion_min_supporters'|get_config > 0 %} {% if allowed_actions.unsupport %}

    - + {% trans 'Unsupport' %} {% endif %} {% if allowed_actions.support %}

    - + {% trans 'Support' %} {% endif %} @@ -339,18 +356,18 @@ {% if forloop.first %} {% endif %} {% endfor %}
    {% trans "For administration only:" %}
    - + {% trans 'Reset state' %}
    {% endif %} -
    +
    {% endblock %} diff --git a/openslides/motion/templates/motion/motion_form.html b/openslides/motion/templates/motion/motion_form.html index 0db01228a..d6752225b 100644 --- a/openslides/motion/templates/motion/motion_form.html +++ b/openslides/motion/templates/motion/motion_form.html @@ -28,9 +28,13 @@ {% endif %} {% if motion %} - {% trans "Back to motion" %} + + + {% trans "Back to motion" %} {% else %} - {% trans "Back to overview" %} + + + {% trans "Back to overview" %} {% endif %} @@ -38,7 +42,7 @@ {% include "form.html" %}

    {% include "formbuttons_saveapply.html" %} - + {% trans 'Cancel' %}

    diff --git a/openslides/motion/templates/motion/motion_list.html b/openslides/motion/templates/motion/motion_list.html index 54330523a..78dada3c2 100644 --- a/openslides/motion/templates/motion/motion_list.html +++ b/openslides/motion/templates/motion/motion_list.html @@ -6,14 +6,8 @@ {% block title %}{% trans "Motions" %} – {{ block.super }}{% endblock %} -{% block header %} - -{% endblock %} - {% block javascript %} - -