element_modifiers.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. /**
  2. * @license
  3. * (C) Copyright Contributors to the SearXNG project.
  4. * (C) Copyright Contributors to the searx project (2014 - 2021).
  5. * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
  6. * SPDX-License-Identifier: AGPL-3.0-or-later
  7. */
  8. $(document).ready(function(){
  9. /**
  10. * focus element if class="autofocus" and id="q"
  11. */
  12. $('#q.autofocus').focus();
  13. /**
  14. * Empty search bar when click on reset button
  15. */
  16. $("#clear_search").click(function () {
  17. document.getElementById("q").value = "";
  18. });
  19. /**
  20. * select full content on click if class="select-all-on-click"
  21. */
  22. $(".select-all-on-click").click(function () {
  23. $(this).select();
  24. });
  25. /**
  26. * change text during btn-collapse click if possible
  27. */
  28. $('.btn-collapse').click(function() {
  29. var btnTextCollapsed = $(this).data('btn-text-collapsed');
  30. var btnTextNotCollapsed = $(this).data('btn-text-not-collapsed');
  31. if(btnTextCollapsed !== '' && btnTextNotCollapsed !== '') {
  32. if($(this).hasClass('collapsed')) {
  33. new_html = $(this).html().replace(btnTextCollapsed, btnTextNotCollapsed);
  34. } else {
  35. new_html = $(this).html().replace(btnTextNotCollapsed, btnTextCollapsed);
  36. }
  37. $(this).html(new_html);
  38. }
  39. });
  40. /**
  41. * change text during btn-toggle click if possible
  42. */
  43. $('.btn-toggle .btn').click(function() {
  44. var btnClass = 'btn-' + $(this).data('btn-class');
  45. var btnLabelDefault = $(this).data('btn-label-default');
  46. var btnLabelToggled = $(this).data('btn-label-toggled');
  47. if(btnLabelToggled !== '') {
  48. if($(this).hasClass('btn-default')) {
  49. new_html = $(this).html().replace(btnLabelDefault, btnLabelToggled);
  50. } else {
  51. new_html = $(this).html().replace(btnLabelToggled, btnLabelDefault);
  52. }
  53. $(this).html(new_html);
  54. }
  55. $(this).toggleClass(btnClass);
  56. $(this).toggleClass('btn-default');
  57. });
  58. /**
  59. * change text during btn-toggle click if possible
  60. */
  61. $('.media-loader').click(function() {
  62. var target = $(this).data('target');
  63. var iframe_load = $(target + ' > iframe');
  64. var srctest = iframe_load.attr('src');
  65. if(srctest === undefined || srctest === false){
  66. iframe_load.attr('src', iframe_load.data('src'));
  67. }
  68. });
  69. /**
  70. * Select or deselect every categories on double clic
  71. */
  72. $(".btn-sm").dblclick(function() {
  73. var btnClass = 'btn-' + $(this).data('btn-class'); // primary
  74. if($(this).hasClass('btn-default')) {
  75. $(".btn-sm > input").attr('checked', 'checked');
  76. $(".btn-sm > input").prop("checked", true);
  77. $(".btn-sm").addClass(btnClass);
  78. $(".btn-sm").addClass('active');
  79. $(".btn-sm").removeClass('btn-default');
  80. } else {
  81. $(".btn-sm > input").attr('checked', '');
  82. $(".btn-sm > input").removeAttr('checked');
  83. $(".btn-sm > input").checked = false;
  84. $(".btn-sm").removeClass(btnClass);
  85. $(".btn-sm").removeClass('active');
  86. $(".btn-sm").addClass('btn-default');
  87. }
  88. });
  89. $(".nav-tabs").click(function(a) {
  90. var tabs = $(a.target).parents("ul");
  91. tabs.children().attr("aria-selected", "false");
  92. $(a.target).parent().attr("aria-selected", "true");
  93. });
  94. /**
  95. * Layout images according to their sizes
  96. */
  97. searxng.image_thumbnail_layout = new searxng.ImageLayout('#main_results', '#main_results .result-images', 'img.img-thumbnail', 15, 3, 200);
  98. searxng.image_thumbnail_layout.watch();
  99. });