KISO Docs

Rails Layouts

#Layouts

When you install Rapid Rails Themes, it's going to create the following files in your app/views/layouts directory:
app/views/layouts/
├── _app_nav.html.erb
├── _base.html.erb
├── _dashboard_top_nav.html.erb
├── _external_js_libs.html.erb
├── _flashes.html.erb
├── _side_menu.html.erb
├── _side_menu_header.html.erb
├── _side_menu_main_content.html.erb
├── application.html.erb
├── devise.html.erb
├── email.html.erb
├── landing.html.erb
├── scaffold.html.erb
└── sidenav.html.erb
#Base Partial Layout
This is the layout from which all things inherit. It's the main wrapper providing the page with enhanced functionality such as:
  • External JS loading
  • body tag classes and JS lib feature declaration
#Application Layout
Inherits the base layout, and simply renders _flashes before yielding. It is the most minimal of usable layouts.
#Devise Layout
Inherits the base layout before yielding to Devise.
#Landing Layout
Inherits the base layout before yielding to the page.
#Email Layout
Provides a customized Email mailer layout.
#Scaffold Layout
Inherits from _app_nav partial layout, and provides some hooks for the header seen in the online demo, which has areas for a title and action buttons, and Flashes.
#Sidenav Layout
Inherits from _base and renders out the _side_menu partials, _dashboard_top_nav partial, Flashes and then yields the page to a main-content area.
#_app_nav Layout
App Nav provides a pre-coded general App type header bar suitable for your internal App pages.
#_dashboard_top_nav Layout
Dashboard Top Nav provides a pre-coded general App type header bar suitable for your internal App pages, which is designed to be used with the Sidenav layout. It contains a button and JS hook for opening and closing the sidenav.
#_external_js_libs Layout
This is a special layout partial which has special hooks that listen to the contents of the @js_libs instance variable, and based on the content makes explicitly Javascript includes. The idea here is that when you have large JS libs that you don't want included in your main appplication.js bundle, you can list them in there and only have them loaded when set. This is ideal for large JS libs that are only needed on certain pages.
For example, in the online demo, the Google Maps functionality is only loaded on certain pages, in response to the @js_libs instance variable containing the 'gmaps' string.
#_flashes Layout
Contains the Rails Flashes output. That's it!