diff options
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/static/js/ishtar.js | 9 | ||||
-rw-r--r-- | ishtar_common/static/media/styles.css | 8 | ||||
-rw-r--r-- | ishtar_common/templates/base.html | 5 | ||||
-rw-r--r-- | ishtar_common/templates/blocks/DataTables.html | 21 | ||||
-rw-r--r-- | ishtar_common/templates/ishtar/sheet.html | 2 | ||||
-rw-r--r-- | ishtar_common/views.py | 30 |
6 files changed, 39 insertions, 36 deletions
diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js index dfe59105c..e89be9ff3 100644 --- a/ishtar_common/static/js/ishtar.js +++ b/ishtar_common/static/js/ishtar.js @@ -272,7 +272,14 @@ function load_window(url, speed, on_success){ $("#progress").hide(); $(".previous_page").remove(); $(".next_page").remove(); - $("#window").append(html); + var register_id = $(html).find(".card-header").attr("data-sheet-id"); + var current_sheet = $('[data-sheet-id="' + register_id + '"]'); + if (current_sheet.length){ + $(".collapse").removeClass('show'); + current_sheet.parent().find('.collapse').addClass('show'); + } else { + $("#window").append(html); + } $("#"+last_window).show(); if (on_success) on_success(); }, diff --git a/ishtar_common/static/media/styles.css b/ishtar_common/static/media/styles.css index ed6900fd0..773554b95 100644 --- a/ishtar_common/static/media/styles.css +++ b/ishtar_common/static/media/styles.css @@ -95,6 +95,14 @@ div#foot{ margin-bottom: 1em; } +.table-modal-lg .current-sheets{ + margin-bottom: 1em; +} + +.dataTables_wrapper .dataTables_processing{ + height: auto; +} + .display_details{ font-size: 1.4em; } diff --git a/ishtar_common/templates/base.html b/ishtar_common/templates/base.html index aefba8f73..215c51b8d 100644 --- a/ishtar_common/templates/base.html +++ b/ishtar_common/templates/base.html @@ -61,7 +61,10 @@ <i class="fa fa-arrow-up" aria-hidden="true"></i> </button> <div class="container"> - <div id="window" role="tablist"></div> + <div id="window_wrapper"> + <div id="window" role="tablist"></div> + </div> + {% if warnings %}{% for warning in warnings %} <div class="alert alert-warning alert-dismissible fade show" role="alert"> {{warning}} diff --git a/ishtar_common/templates/blocks/DataTables.html b/ishtar_common/templates/blocks/DataTables.html index d385c986b..37d51cf70 100644 --- a/ishtar_common/templates/blocks/DataTables.html +++ b/ishtar_common/templates/blocks/DataTables.html @@ -38,6 +38,8 @@ </button> </div> <div class="modal-body"> + <div class="current-sheets"></div> + <div class="current-grid"></div> </div> </div> </div> @@ -83,13 +85,16 @@ <script type="text/javascript" language='javascript'> $('#modal_grid_{{name}}').on('show.bs.modal', function (e) { $('#grid_{{name}}_wrapper').appendTo( - '#modal_grid_{{name}} .modal-body'); + '#modal_grid_{{name}} .modal-body .current-grid'); + $('#window').appendTo( + '#modal_grid_{{name}} .modal-body .current-sheets'); $('#grid_{{name}}').DataTable().clear().draw() }); $('#modal_grid_{{name}}').on('hide.bs.modal', function (e) { $('#grid_{{name}}_wrapper').appendTo( '#grid_{{name}}_meta_wrapper'); + $('#window').appendTo('#window_wrapper'); $('#grid_{{name}}').DataTable().clear().draw() }); @@ -138,7 +143,7 @@ jQuery(document).ready(function(){ } return false; }); - jQuery("#grid_{{name}}").DataTable({ + datatable_{{sname}} = jQuery("#grid_{{name}}").DataTable({ "ajax": { "url": "{{source}}", "dataSrc": "rows" @@ -250,9 +255,11 @@ jQuery(document).ready(function(){ }); function get_next_table_id(c_id){ - var mygrid = jQuery("#grid_{{name}}"); + // var mygrid = jQuery("#grid_{{name}}"); var has_current_id = false; - ids = mygrid.getDataIDs(); + + ids = datatable_{{sname}}.column(0).data(); + // ids = mygrid.getDataIDs(); for (idx in ids){ if (has_current_id) return ids[idx]; if (ids[idx] == c_id) has_current_id = true; @@ -260,9 +267,11 @@ jQuery(document).ready(function(){ return false; } function get_previous_table_id(c_id){ - var mygrid = jQuery("#grid_{{name}}"); + // var mygrid = jQuery("#grid_{{name}}"); var previous_id = 0; - ids = mygrid.getDataIDs(); + + ids = datatable_{{sname}}.column(0).data(); + //ids = mygrid.getDataIDs(); for (idx in ids){ if (ids[idx] == c_id){ if (previous_id) return previous_id; diff --git a/ishtar_common/templates/ishtar/sheet.html b/ishtar_common/templates/ishtar/sheet.html index 6fa247200..4f118f2f9 100644 --- a/ishtar_common/templates/ishtar/sheet.html +++ b/ishtar_common/templates/ishtar/sheet.html @@ -14,7 +14,7 @@ {% endblock %} <div class="card sheet" id="{{window_id}}"> - <div class="card-header" role="tab" id='head-{{window_id}}'> + <div class="card-header" data-sheet-id="{{sheet_id}}" role="tab" id='head-{{window_id}}'> <div class="row"> <div class="col"> <h5 class="mb-0"> diff --git a/ishtar_common/views.py b/ishtar_common/views.py index bae1c8464..cc2443f80 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -1011,32 +1011,6 @@ def get_item(model, func_name, default_name, extra_request_keys=[], if not manual_sort_key: items = items.order_by(*orders) - """ - elif q and q in request_keys: - ks = request_keys[q] - if type(ks) not in (list, tuple): - ks = [ks] - orders = [] - for k in ks: - if k.endswith("__pk"): - k = k[:-len("__pk")] + "__label" - if '__' in k: - k = k.split('__')[0] - orders.append(sign + k) - items = items.order_by(*orders) - elif q: - for ke in query_table_cols: - if type(ke) in (list, tuple): - ke = ke[0] - if ke.endswith(q): - manual_sort_key = ke - logger.warning("**WARN get_item - {}**: manual sort key '{" - "}'".format(func_name, q)) - break - if not manual_sort_key and model._meta.ordering: - orders = [sign + k for k in model._meta.ordering] - items = items.order_by(*orders) - """ # pager management start, end = 0, None page_nb = 1 @@ -1187,7 +1161,8 @@ def get_item(model, func_name, default_name, extra_request_keys=[], data = json.dumps(rows) else: data = json.dumps({ - "records": items_nb, + "recordsTotal": items_nb, + "recordsFiltered": items_nb, "rows": rows, "pinned-search": pinned_search, "page": page_nb, @@ -1303,6 +1278,7 @@ def show_item(model, name, extra_dct=None): date = None if 'date' in dct: date = dct.pop('date') + dct['sheet_id'] = "%s-%d" % (name, item.pk) dct['window_id'] = "%s-%d-%s" % ( name, item.pk, datetime.datetime.now().strftime('%M%s')) if hasattr(item, 'history'): |