GitHub license GitHub release Code Climate Dependency Status

Why?

As Redmine does not support asset pipeline, we need to install JQuery plugins as Redmine plugins to load them globally.

It provides :

And a set of various Rails helper methods (see below).

Installation

Just clone it in your Redmine plugins directory :

cd REDMINE_ROOT/plugins
git clone https://github.com/jbox-web/redmine_bootstrap_kit.git

What's included?

It provides the following Rails helper methods :

BootstrapKit assets loader :

bootstrap_load_module(rbk_module)

This method loads all JS and CSS files needed by the required module.

The following modules are available :

BootstrapSwitch :

bootstrap_switch_tag(opts = {}, &block)

FontAwesome :

fa_icon(icon, opts = {})
label_with_icon(label, icon, icon_opts = {})

AjaxHelper :

render_flash_messages_as_js(target = '#flash-messages', opts = {})
js_render_template(target, template, opts = {})
js_render_partial(target, partial, opts = {})
js_render(target, content, opts = {})

PresenterHelper :

present(object, klass = nil, *args)

JQuery TagIt :

tag_it_list(id, list_opts = {}, tag_it_opts = {}, &block)

WillPaginateHelper :

paginate(collection, opts = {})

ZeroClipboardHelper:

zero_clipboard_button_for(target)

How to use?

To use Redmine Bootstrap Kit helper methods you must first add :redmine_bootstrap_kit helper in your controller :

class MyPluginController < ApplicationController
  ...

  helper :redmine_bootstrap_kit

end

Then with the bootstrap_load_module method you can load the desired assets in your views :

<% content_for :header_tags do %>
  <%= bootstrap_load_base %>
  <%= bootstrap_load_module(:alerts) %>
  <%= bootstrap_load_module(:label) %>
  <%= bootstrap_load_module(:modals) %>
  <%= bootstrap_load_module(:pagination) %>
  <%= bootstrap_load_module(:switch) %>
  <%= bootstrap_load_module(:tables) %>
  <%= bootstrap_load_module(:tabs) %>
  <%= bootstrap_load_module(:font_awesome) %>
  <%= bootstrap_load_module(:dropdown) %>
  <%= bootstrap_load_module(:tooltip) %>
  <%= bootstrap_load_module(:notify) %>
  <%= bootstrap_load_module(:tag_it) %>
<% end %>

The bootstrap_load_base method call is needed if you want to use provided JS helpers (see below).

To create BootstrapSwitch buttons

In your views :

<% content_for :header_tags do %>
  <%= bootstrap_load_base %>
  <%= bootstrap_load_module(:switch) %>
<% end %>

<p>
  <label>This is a switch button</label>
  <%= bootstrap_switch_tag do %>
    <%= hidden_field_tag "extra[enable]", "false" %>
    <%= check_box_tag "extra[enable]" %>
  <% end %>
</p>

<%= javascript_tag do %>
  $(document).ready(function() { setBootstrapSwitch(); });
<% end %>

To create TagIt lists

In your views :

<% content_for :header_tags do %>
  <%= bootstrap_load_base %>
  <%= bootstrap_load_module(:tag_it) %>
<% end %>

<p>
  <label>This is a TagIt list</label>
</p>

<%= tag_it_list 'plugin_emails_list',
                { name: 'plugin[emails_list][]' },
                { placeholder: '+ add email' } do %>
  <li>john@doe.com</li>
  <li>jane@doe.com</li>
<% end %>

<%= javascript_tag do %>
  $(document).ready(function() { setTagIt(); });
<% end %>

Contribute

You can contribute to this plugin in many ways such as :