PageSourceSearch

https://www.redmine.org/javascripts/responsive.js?1679302129

js redmine.org collected 2026-09-24 08:27:36 UTC 2,002 bytes, 83 lines download raw bytes

1// generic layout specific responsive stuff goes here
2
3function openFlyout() {
4  $('html').addClass('flyout-is-active');
5  $('#wrapper2').on('click', function(e){
6    e.preventDefault();
7    e.stopPropagation();
8    closeFlyout();
9  });
10}
11
12function closeFlyout() {
13  $('html').removeClass('flyout-is-active');
14  $('#wrapper2').off('click');
15}
16
17
18function isMobile() {
19  return $('.js-flyout-menu-toggle-button').is(":visible");
20}
21
22function setupFlyout() {
23  var mobileInit = false,
24    desktopInit = false;
25
26  /* click handler for mobile menu toggle */
27  $('.js-flyout-menu-toggle-button').on('click', function(e) {
28    e.preventDefault();
29    e.stopPropagation();
30    if($('html').hasClass('flyout-is-active')) {
31      closeFlyout();
32    } else {
33      openFlyout();
34    }
35  });
36
37  /* bind resize handler */
38  $(window).resize(function() {
39    initMenu();
40  })
41
42  /* menu init function for dom detaching and appending on mobile / desktop view */
43  function initMenu() {
44
45    var _initMobileMenu = function() {
46      /* only init mobile menu, if it hasn't been done yet */
47      if(!mobileInit) {
48
49        $('#main-menu > ul').detach().appendTo('.js-project-menu');
50        $('#top-menu > ul').detach().appendTo('.js-general-menu');
51        $('#sidebar > *').detach().appendTo('.js-sidebar');
52        $('#account > ul').detach().appendTo('.js-profile-menu');
53
54        mobileInit = true;
55        desktopInit = false;
56      }
57    }
58
59    var _initDesktopMenu = function() {
60      if(!desktopInit) {
61
62        $('.js-project-menu > ul').detach().appendTo('#main-menu');
63        $('.js-general-menu > ul').detach().appendTo('#top-menu');
64        $('.js-sidebar > *').detach().appendTo('#sidebar');
65        $('.js-profile-menu > ul').detach().appendTo('#account');
66
67        desktopInit = true;
68        mobileInit = false;
69      }
70    }
71
72    if(isMobile()) {
73      _initMobileMenu();
74    } else {
75      _initDesktopMenu();
76    }
77  }
78
79  // init menu on page load
80  initMenu();
81}
82
83$(document).ready(setupFlyout);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.