2017-08-30 5 views
0

J'ai une application Rails (v5.1) avec des fichiers de modèle Bootstrap ADMIN LTE (v2.3.8). La fonction de réduction du menu de la barre latérale sur le à gauche ne fonctionne pas.ADMIN LTE II dans l'applet Rails, la barre latérale et la barre latérale de contrôle ne s'affaissent pas

L'écouteur d'événement click pour toggleBtn fonctionne correctement, car lorsque je clique dessus, il enregistre "Click on offcanvas" dans la console. En outre, lorsque j'inspecte l'étiquette de corps sur un clic du toggleBtn, il met en évidence mais ne bascule pas la classe «sidebar-collapse» comme il est censé le faire.

app/assets/JavaScripts/AdminLTE.js

$.AdminLTE.pushMenu = { 
    activate: function (toggleBtn) { 
     //Get the screen sizes 
     var screenSizes = $.AdminLTE.options.screenSizes; 

     //Enable sidebar toggle 
     $(document).on('click', toggleBtn, function (e) { 
     e.preventDefault(); 
      //Enable sidebar push menu 
      console.log("Click on offcanvas") 
     if ($(window).width() > (screenSizes.sm - 1)) { 
      if ($("body").hasClass('sidebar-collapse')) { 
       $("body").removeClass('sidebar-collapse').trigger('expanded.pushMenu'); 
      } else { 
      $("body").addClass('sidebar-collapse').trigger('collapsed.pushMenu'); 
      } 
     } 
     //Handle sidebar push menu for small screens 
     else { 
      if ($("body").hasClass('sidebar-open')) { 
      $("body").removeClass('sidebar-open').removeClass('sidebar-collapse').trigger('collapsed.pushMenu'); 
      } else { 
      $("body").addClass('sidebar-open').trigger('expanded.pushMenu'); 
      } 
     } 
     }); 

     $(".content-wrapper").click(function() { 
     //Enable hide menu when clicking on the content-wrapper on small screens 
     if ($(window).width() <= (screenSizes.sm - 1) && $("body").hasClass("sidebar-open")) { 
      $("body").removeClass('sidebar-open'); 
     } 
     }); 

     //Enable expand on hover for sidebar mini 
     if ($.AdminLTE.options.sidebarExpandOnHover 
     || ($('body').hasClass('fixed') 
     && $('body').hasClass('sidebar-mini'))) { 
     this.expandOnHover(); 
     } 
    }, 
    expandOnHover: function() { 
     var _this = this; 
     var screenWidth = $.AdminLTE.options.screenSizes.sm - 1; 
     //Expand sidebar on hover 
     $('.main-sidebar').hover(function() { 
     if ($('body').hasClass('sidebar-mini') 
      && $("body").hasClass('sidebar-collapse') 
      && $(window).width() > screenWidth) { 
      _this.expand(); 
     } 
     }, function() { 
     if ($('body').hasClass('sidebar-mini') 
      && $('body').hasClass('sidebar-expanded-on-hover') 
      && $(window).width() > screenWidth) { 
      _this.collapse(); 
     } 
     }); 
    }, 
    expand: function() { 
     $("body").removeClass('sidebar-collapse').addClass('sidebar-expanded-on-hover'); 
    }, 
    collapse: function() { 
     if ($('body').hasClass('sidebar-expanded-on-hover')) { 
     $('body').removeClass('sidebar-expanded-on-hover').addClass('sidebar-collapse'); 
     } 
    } 
    }; 

application.js

//= require rails-ujs 
//= require jquery 
//= require jquery-ui 
//= require jquery_ujs 
//= require bootstrap-sprockets 
//= require AdminLTE 
//= require turbolinks 
//= require_tree . 

application.html.erb

<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> 
    <title>TrailerApp</title> 
    <%= csrf_meta_tags %> 
    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> 
    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> 
<%= javascript_include_tag 'https://maps.googleapis.com/maps/api/js?key=AIzaSyDrNW2yzxeYgYARA67ss3pX1p0yq7ZzFhI&libraries=places&language=es' %> 
</head> 
<body class="hold-transition skin-yellow"> 
    <div class="wrapper"> 
    <header class="main-header"> 
    <!-- Logo --> 
    <a href="/" class="logo"> 
    <span class="logo-mini"><b>T</b>J</span> 
    <span class="logo-lg"><b>Trailer</b>App</span> 
    </a> 

    <!-- Header Navbar --> 
    <nav class="navbar navbar-static-top" role="navigation"> 
    <!-- Sidebar toggle button--> 
    <a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button"> 
     <span class="sr-only">Toggle navigation</span> 
    </a> 
    <!-- Navbar Right Menu --> 
    <div class="navbar-custom-menu"> 
     <ul class="nav navbar-nav"> 
     ... 
     <!-- Control Sidebar Toggle Button --> 
     <li> 
      <a href="#" data-toggle="control-sidebar"><i class="fa fa-gears"></i></a> 
     </li> 
     </ul> 
    </div> 
    </nav> 
</header> 
<aside class="main-sidebar"> 
    <section class="sidebar"> 
    .... 
    </section> 
</aside> 

Gemfile

... 
gem 'bootstrap-sass', '~> 3.3', '>= 3.3.7' 
gem 'font-awesome-rails', '~> 4.7', '>= 4.7.0.2' 
gem 'jquery-rails', '~> 4.1', '>= 4.1.1' 
gem 'jquery-ui-rails', '~> 6.0', '>= 6.0.1' 
... 

Répondre

0

je suis tombé sur votre question alors que je cherchais des questions liées à la AdminLTE. J'ai récemment porté le framework AdminLTE sur Rails framwork et je pense que j'ai déjà résolu ce problème.

S'il vous plaît consulter la Link

Je sais qu'il est un peu en retard pour votre réponse, mais je voulais juste répondre de toute façon. J'espère que ça aide