summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/static/js/ishtar.js9
-rw-r--r--ishtar_common/static/media/styles.css8
-rw-r--r--ishtar_common/templates/base.html5
-rw-r--r--ishtar_common/templates/blocks/DataTables.html21
-rw-r--r--ishtar_common/templates/ishtar/sheet.html2
-rw-r--r--ishtar_common/views.py30
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'):