diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-07-21 11:10:44 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-07-21 13:29:29 +0200 |
commit | 9ae9a89a96431d0c7812d6611707beab57ddd5b8 (patch) | |
tree | e77616451d4a0ec419149a828e3c581fa5f107d8 | |
parent | b79aacec42c211a665a594dd1d03bee061d443e2 (diff) | |
download | Ishtar-9ae9a89a96431d0c7812d6611707beab57ddd5b8.tar.bz2 Ishtar-9ae9a89a96431d0c7812d6611707beab57ddd5b8.zip |
💄 import tables: vertical scroll buttons (#6400)
-rw-r--r-- | ishtar_common/static/js/ishtar.js | 27 | ||||
-rw-r--r-- | ishtar_common/templates/ishtar/import_table.html | 14 | ||||
-rw-r--r-- | scss/custom.scss | 5 |
3 files changed, 45 insertions, 1 deletions
diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js index d78cc3b12..bcc2b7940 100644 --- a/ishtar_common/static/js/ishtar.js +++ b/ishtar_common/static/js/ishtar.js @@ -39,6 +39,12 @@ if (typeof String.prototype.format !== 'function') { }; } +(function($) { + $.fn.hasHorizontalScrollBar = function() { + return this.get(0).scrollWidth > this.get(0).clientWidth; + } +})(jQuery); + $.urlParam = function(name){ var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href); if (results==null) { @@ -2252,3 +2258,24 @@ function load_window(url, speed, on_success, no_jump){ } }); } + +var display_horizontal_nav = function(div){ + if ($(div).hasHorizontalScrollBar()){ + $(".vscroll-arrows").show(); + } else { + $(".vscroll-arrows").hide(); + } +}; + +var register_vscroll_icons = function(){ + $("#vscroll-left").click(function(){ + let item = $(this).parent().parent(); + item.scrollLeft(0); + return false; + }); + $("#vscroll-right").click(function(){ + let item = $(this).parent().parent(); + item.scrollLeft(item.get(0).scrollWidth); + return false; + }); +}; diff --git a/ishtar_common/templates/ishtar/import_table.html b/ishtar_common/templates/ishtar/import_table.html index 7e4a5afff..2a9959ffa 100644 --- a/ishtar_common/templates/ishtar/import_table.html +++ b/ishtar_common/templates/ishtar/import_table.html @@ -20,15 +20,27 @@ {% endif %}{% endfor %} var need_refresh = false; if (import_table_update_import_ids.length) need_refresh = true; - $(document).ready(function(){ setTimeout(function(){$(".alert-info.alert-dismissible").hide("fade");}, 5000); register_qa(); + register_vscroll_icons(); + display_horizontal_nav("#import-container"); + $(window).on('resize', function() {display_horizontal_nav("#import-container")}); if (need_refresh) setInterval(function(){ import_table_update_import_list(import_table_update_import_ids) }, 3 * 1000); }); </script> + +<div class="vscroll-arrows"> + <button class="btn btn-sm btn-secondary" id="vscroll-left"> + <i class="fa fa-arrow-left" aria-hidden="true"></i> + </button> + <button class="btn btn-sm btn-secondary" id="vscroll-right"> + <i class="fa fa-arrow-right" aria-hidden="true"></i> + </button> +</div> + <h2>{{page_name}}</h2> <div class='form' id="import-list"> {% if not object_list %} diff --git a/scss/custom.scss b/scss/custom.scss index 8903a52c3..5b1aba8f8 100644 --- a/scss/custom.scss +++ b/scss/custom.scss @@ -335,6 +335,11 @@ ul.table-import-diag > li span.btn{ width: 10rem; } +.vscroll-arrows{ + position: absolute; + right: 3em; +} + .table-scroll { padding: 1em; table { |