diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-10-28 23:23:26 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-12-12 12:20:59 +0100 |
commit | db6f3f2152bfb480915a63ae04e88f2979d23341 (patch) | |
tree | 5632d4e651df050c97c33574327e40448cdcd721 /ishtar_common/templates/blocks | |
parent | 183c1422d978e2b1cbb1d47e0a024dcee57ae3f9 (diff) | |
download | Ishtar-db6f3f2152bfb480915a63ae04e88f2979d23341.tar.bz2 Ishtar-db6f3f2152bfb480915a63ae04e88f2979d23341.zip |
Syndication - search interface
Diffstat (limited to 'ishtar_common/templates/blocks')
3 files changed, 69 insertions, 25 deletions
diff --git a/ishtar_common/templates/blocks/DataTables-content.html b/ishtar_common/templates/blocks/DataTables-content.html index 814e10c18..9de143cd4 100644 --- a/ishtar_common/templates/blocks/DataTables-content.html +++ b/ishtar_common/templates/blocks/DataTables-content.html @@ -1,5 +1,5 @@ {% load i18n %} - <div id="grid_{{name}}_meta_wrapper"> + <div id="grid_{{name}}_meta_wrapper" class="sources sources-default"> <table id='grid_{{name}}' class="display" width="100%"> <thead> <tr> @@ -11,7 +11,7 @@ </table> </div> - <div id='foot_{{name}}' class="gridfooter row toolbar"> + <div id='foot_{{name}}' class="sources sources-default gridfooter row toolbar"> <div class='col col-sm-2'> <div class="btn-group btn-group-sm" role="group"> <button type='button' class="btn btn-secondary" data-toggle="modal" @@ -63,3 +63,17 @@ {% endif %} <input type="hidden" id="hidden_{{name}}" name="{{name}}"/> + + {% for source_id, source_label, source_url in external_sources %} + <div id="grid_{{name}}_{{source_id}}_meta_wrapper" class="sources sources-{{source_id}}"> + <table id='grid_{{name}}_{{source_id}}' class="display" width="100%"> + <thead> + <tr> + <th></th> + <th></th>{% for col in col_names %} + <th>{{col}}</th> + {% endfor %}</tr> + </thead> + </table> + </div> + {% endfor %} diff --git a/ishtar_common/templates/blocks/DataTables-external-sources.html b/ishtar_common/templates/blocks/DataTables-external-sources.html index ce4d67ada..00cc7cf2c 100644 --- a/ishtar_common/templates/blocks/DataTables-external-sources.html +++ b/ishtar_common/templates/blocks/DataTables-external-sources.html @@ -1,14 +1,19 @@ {% load i18n %} <div class="d-flex justify-content-center"> -<div class="btn-group btn-group-toggle" data-toggle="buttons"> - <label class="btn btn-secondary active"> - <input type="radio" name="_sources" id="default" autocomplete="off" checked> {% trans "Local" %} - </label> - {% for source_id, source_label in external_sources %} - <label class="btn btn-secondary"> - <input type="radio" name="_sources" id="{{source_id}}" autocomplete="off"> {{source_label}} - </label> - {% endfor %} -</div> + <div class="btn-group btn-group-toggle" data-toggle="buttons"> + <label id="source_button_default" class="btn btn-secondary active"> + <input type="radio" name="_sources" autocomplete="off" checked> + {% trans "Local" %} <span class="badge badge-light" id="source_badge_default">-</span> + </label> + {% for source_id, source_label, source_url in external_sources %} + <label id="source_button_{{source_id}}" class="btn btn-secondary"> + <input type="radio" name="_sources" autocomplete="off"> + {{source_label}} <span class="badge badge-light" id="source_badge_{{source_id}}">-</span> + </label> + {% endfor %} + </div> </div> + +<script> +</script>
\ No newline at end of file diff --git a/ishtar_common/templates/blocks/DataTables.html b/ishtar_common/templates/blocks/DataTables.html index 135e2a51e..91e55579e 100644 --- a/ishtar_common/templates/blocks/DataTables.html +++ b/ishtar_common/templates/blocks/DataTables.html @@ -107,11 +107,11 @@ datatable_submit_search = function(not_submited){ datatable_{{sname}}.ajax.url(url); datatable_{{sname}}.draw(); -{% if external_sources %}{% for source_id, source_label in external_sources %} +{% if external_sources %}{% for source_id, source_label, source_url in external_sources %} if (!not_submited){ - url = "{{source}}?submited=1&" + data; + url = "{{source_url}}?submited=1&" + data; } else { - url = "{{source}}?" + data; + url = "{{source_url}}?" + data; } datatable_{{sname}}_{{source_id}}.ajax.url(url); datatable_{{sname}}_{{source_id}}.draw(); @@ -149,6 +149,24 @@ jQuery(document).ready(function(){ main_submit_search ); + {% if external_sources %} + $("#source_button_default").click( + function(){ + $(".sources").hide(); + $(".sources-default").show(); + } + ); + {% for source_id, source_label, source_url in external_sources %} + $("#source_button_{{source_id}}").click( + function(){ + $(".sources").hide(); + $(".sources-{{source_id}}").show(); + } + ); + {% endfor %} + $("#source_button_default").click(); + {% endif %} + var base_source = "{{source}}"; if (default_search_vector){ @@ -165,6 +183,7 @@ jQuery(document).ready(function(){ function(){ $('.modal-progress').modal('hide'); }, 50); + dt_update_badge("default", json.recordsTotal); return json.rows; } }, @@ -231,31 +250,37 @@ jQuery(document).ready(function(){ datatable_{{sname}}.on('deselect', dt_multi_enable_disable_submit_button); {% endif %} -{% if external_sources %}{% for source_id, source_label in external_sources %} - var base_external_source = "{{source}}"; +{% if external_sources %}{% for source_id, source_label, source_url in external_sources %} + var base_external_source = "{{source_url}}"; if (default_search_vector){ - base_source += "?search_vector=" + default_search_vector + "&submited=1"; + base_external_source += "?search_vector=" + default_search_vector + "&submited=1"; } - datatable_options = { + datatable_options_{{source_id}} = { "ajax": { "url": base_external_source, "dataSrc": function (json) { - if (!default_search_vector) manage_pinned_search("{{name}}", json); - update_submit_args(); setTimeout( // 50ms is waited on load so... function(){ $('.modal-progress').modal('hide'); }, 500); + dt_update_badge("{{source_id}}", json.recordsTotal); return json.rows; } }, - "deferLoading": 0 + "deferLoading": 0, + "dom": 'litp', + "columns": [ + { "data": "id", "visible": false }, + { "data": "link", "orderable": false },{% for col in extra_cols %} + { "data": "{{col}}", "defaultContent": "-", + "render": $.fn.dataTable.render.ellipsis( 70, true ) }{% if not forloop.last %},{% endif %}{% endfor %} + ] }; - $.extend(datatable_options, datatables_default); - if (datatables_i18n) datatable_options['language'] = datatables_i18n; - datatable_{{sname}}_{{source_id}} = jQuery("#grid_{{name}}_{{source_id}}").DataTable(datatable_options); + $.extend(datatable_options_{{source_id}}, datatables_default); + if (datatables_i18n) datatable_options_{{source_id}}['language'] = datatables_i18n; + datatable_{{sname}}_{{source_id}} = jQuery("#grid_{{name}}_{{source_id}}").DataTable(datatable_options_{{source_id}}); {% endfor %}{% endif %} |