diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-01-22 20:38:13 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-01-22 20:38:13 +0100 |
commit | 2b01102025b51e7b4b4e750e43e006b07a738ac4 (patch) | |
tree | 196d57b93980614f12bd838243f4286737cec6f9 | |
parent | 34f33863b10107740186dfb888c91d11283f5f60 (diff) | |
download | Ishtar-2b01102025b51e7b4b4e750e43e006b07a738ac4.tar.bz2 Ishtar-2b01102025b51e7b4b4e750e43e006b07a738ac4.zip |
UI: manage multi select on table - improve basket management layout
-rw-r--r-- | ishtar_common/forms_common.py | 3 | ||||
-rw-r--r-- | ishtar_common/static/media/styles.css | 2 | ||||
-rw-r--r-- | ishtar_common/templates/base.html | 1 | ||||
-rw-r--r-- | ishtar_common/templates/blocks/DataTables.html | 22 | ||||
-rw-r--r-- | ishtar_common/templates/blocks/bs_form_snippet.html | 2 | ||||
-rw-r--r-- | ishtar_common/templates/ishtar/basket_list.html | 21 | ||||
-rw-r--r-- | ishtar_common/templates/ishtar/manage_basket.html | 31 |
7 files changed, 58 insertions, 24 deletions
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index 2b30c56f6..fae4d54d3 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -111,7 +111,8 @@ class NewImportForm(forms.ModelForm): model = models.Import fields = ( 'name', 'importer_type', 'imported_file', 'imported_images', - 'associated_group', 'conservative_import', 'encoding', 'skip_lines') + 'associated_group', 'conservative_import', 'encoding', 'skip_lines' + ) def __init__(self, *args, **kwargs): user = kwargs.pop('user') diff --git a/ishtar_common/static/media/styles.css b/ishtar_common/static/media/styles.css index aa0691409..453583bbe 100644 --- a/ishtar_common/static/media/styles.css +++ b/ishtar_common/static/media/styles.css @@ -161,6 +161,8 @@ table.dataTable thead th, table.dataTable thead td { .display_details{ font-size: 1.4em; + vertical-align: middle; + padding: 0 0.1em; } .progress-detail{ diff --git a/ishtar_common/templates/base.html b/ishtar_common/templates/base.html index d5d138bd2..c9dfde974 100644 --- a/ishtar_common/templates/base.html +++ b/ishtar_common/templates/base.html @@ -18,6 +18,7 @@ <script language="javascript" type="text/javascript" src="{{STATIC_URL}}datatables/datatables.min.js?ver={{VERSION}}"></script> <script language="javascript" type="text/javascript" src="{{STATIC_URL}}datatables/dataTables.bootstrap4.min.js?ver={{VERSION}}"></script> + <script language="javascript" type="text/javascript" src="{{STATIC_URL}}datatables/dataTables.buttons.min.js?ver={{VERSION}}"></script> <script language="javascript" type="text/javascript" src="{{STATIC_URL}}js/ishtar.js?ver={{VERSION}}"></script> <script language="javascript" type="text/javascript" src="{{STATIC_URL}}datatables/i18n/{{LANGUAGE_CODE}}.js?ver={{VERSION}}"></script> diff --git a/ishtar_common/templates/blocks/DataTables.html b/ishtar_common/templates/blocks/DataTables.html index 12f630de7..7f7e97c5b 100644 --- a/ishtar_common/templates/blocks/DataTables.html +++ b/ishtar_common/templates/blocks/DataTables.html @@ -2,7 +2,7 @@ <p class="text-center"> -<button id='search_{{name}}' class='btn btn-primary'> +<button id='search_{{name}}' class='btn btn-primary' type="button"> {% trans "Search" %}</button> {% if url_new %} @@ -145,7 +145,21 @@ jQuery(document).ready(function(){ return json.rows; } }, - "select": {% if multiple_select %}true{% else %}'single'{% endif %}, + "select": { + "style": {% if multiple_select %}'multi'{% else %}'single'{% endif %} + }, + {% if multiple_select %}"buttons": [ + 'selectAll', + 'selectNone' + ], + language: { + buttons: { + selectAll: "{% trans 'Select all items' %}", + selectNone: "{% trans 'Select none' %}" + } + }, + "dom": 'lBtip', + {% endif %} "columns": [ { "data": "id", "visible": false }, { "data": "link", "orderable": false },{% for col in extra_cols %} @@ -236,8 +250,6 @@ jQuery(document).ready(function(){ }); {% else %} jQuery("#submit_form").click(function (){ - var mygrid = jQuery("#grid_{{name}}"); - var data = datatable_{{sname}}.rows( { selected: true } ).data(); {% if multiple_select %} var value = ""; @@ -256,7 +268,6 @@ jQuery(document).ready(function(){ }); function get_next_table_id(c_id){ - // var mygrid = jQuery("#grid_{{name}}"); var has_current_id = false; ids = datatable_{{sname}}.column(0).data(); @@ -267,7 +278,6 @@ jQuery(document).ready(function(){ return false; } function get_previous_table_id(c_id){ - // var mygrid = jQuery("#grid_{{name}}"); var previous_id = 0; ids = datatable_{{sname}}.column(0).data(); diff --git a/ishtar_common/templates/blocks/bs_form_snippet.html b/ishtar_common/templates/blocks/bs_form_snippet.html index ed0dc14e1..a4d772236 100644 --- a/ishtar_common/templates/blocks/bs_form_snippet.html +++ b/ishtar_common/templates/blocks/bs_form_snippet.html @@ -36,7 +36,7 @@ </div> <div class="form-group col-lg"> <p class="text-right"> - <button type="button" class="btn btn-secondary btn-sm" data-toggle="modal" + <button type="button" class="btn btn-secondary" data-toggle="modal" data-target="#modal-advanced-search"> {% trans "Advanced search" %} <i class="fa fa-cogs" aria-hidden="true"></i> </button> diff --git a/ishtar_common/templates/ishtar/basket_list.html b/ishtar_common/templates/ishtar/basket_list.html index 011ed97a0..43236aeb0 100644 --- a/ishtar_common/templates/ishtar/basket_list.html +++ b/ishtar_common/templates/ishtar/basket_list.html @@ -1,10 +1,19 @@ {% load i18n %} -<table> -<tr>{% for item in basket.items.all %} - <td><a class="display_details" href="#" onclick="load_window('{{item_url}}/{{item.pk}}/');"><i class="fa fa-info-circle" aria-hidden="true"></i></a></td> - <td>{{item.full_label}}</td> - <td><a class='async-link' data-target='#basket-content' href='{{delete_url}}/{{basket.pk}}/{{item.pk}}/'>{% trans "remove" %}</a></td></tr>{% endfor %} -</table> +<ul class="list-group"> + {% for item in basket.items.all %} + <li class="list-group-item"> + <a class="display_details" href="#" + onclick="load_window('{{item_url}}/{{item.pk}}/');"><i class="fa fa-info-circle" aria-hidden="true"></i> + </a> + <span>{{item.full_label}}</span> + <a class='async-link text-danger float-right' + data-target='#basket-content' + href='{{delete_url}}/{{basket.pk}}/{{item.pk}}/'> + <i class="fa fa-times" aria-hidden="true"></i> + </a> + </li> + {% endfor %} +</ul> <script type='text/javascript'> $("a.async-link").click(manage_async_link); </script> diff --git a/ishtar_common/templates/ishtar/manage_basket.html b/ishtar_common/templates/ishtar/manage_basket.html index 3292318ea..26dd75c4c 100644 --- a/ishtar_common/templates/ishtar/manage_basket.html +++ b/ishtar_common/templates/ishtar/manage_basket.html @@ -4,12 +4,15 @@ <h2>{{page_name}}{% trans ":"%} {{basket}}</h2> <form enctype="multipart/form-data" action="." method="post">{% csrf_token %} <div class='form'> -<p class='alert'> - <i class="fa fa-exclamation-triangle" aria-hidden="true"></i> - {% trans 'Checking "Select all" only selects the current page.' %} -</p> -{{form}} -<button id='add_to' onclick='return false'>{% trans "Add" %}</button> + <div class="alert alert-warning" role="alert"> + {% trans 'Checking "Select all" only selects the current page.' %} + </div> + {{form}} + <div class="text-center"> + <button class="btn btn-primary" type="button" id='add_to'> + {% trans "Add" %} + </button> + </div> <h3>{% trans "Basket content" %}</h3> <div id='basket-content' style='text-align:left'> </div> @@ -27,15 +30,20 @@ </form> <script type='text/javascript' language='javascript'> -function load_list(data){ +function load_list(data, last){ $('#basket-content').html(data); + if (last){ + close_wait(); + } } $('#add_to').click(function(){ - var selected_items = jQuery("#grid_pk").getGridParam('selarrrow'); + var selected_items = datatable_pk.rows( { selected: true } ).data(); if(!selected_items) return false; + $('.modal-progress').modal('show'); for (i = 0, n = selected_items.length; i < n; i++) { - var selected_item = selected_items[i]; + var selected_item = selected_items[i]['id']; + last = i == n - 1; $.ajax({ type: "POST", url: '{{add_url}}', @@ -43,11 +51,14 @@ $('#add_to').click(function(){ basket_id: {{basket.pk}}, item_id: selected_item }, - success: load_list + success: function(data){ + load_list(data, last); + } }); } return false; }); + jQuery(document).ready(function(){ $.get('{{list_url}}', load_list); }); |