/jstree-rails

A gem to automate using jsTree with Rails 3

Primary LanguageRubyOtherNOASSERTION

jsTree-Rails

This gem packages the jsTree plugin for easy use with the Rails 3.1+ asset pipleine.

Installation

Add the following line to your Gemfile:

gem 'jstree-rails', :git => 'git://github.com/tristanm/jstree-rails.git'

then run bundle install and restart your app.

Usage

jsTree needs to be included after jQuery in your javascript manifest:

//= require jquery
//= require jquery_ujs
//= require jstree # add this line to app/assets/javascripts/application.js
//= require_tree .

To precompile stylesheets in production add to config/environments/production.rb:

%w(apple classic default default-rtl).each do |theme|
  config.assets.precompile << "jstree-themes/#{theme}/style.css"
end

Themes

Ideally, all your stylesheets should be concatenated and loaded in as few requests as possible. However, jsTree prefers to use its themes plugin to load a theme's stylesheet. I'm hoping to address this inadequacy at some point but, in the mean time, the theme folder has been preset to the correct path using $.jstree._themes = '/assets/jstree-themes/';.

Use themes the way you normally would but DON'T specify a URL:

// CoffeeScript

jQuery ->
    $('.tree').jstree
        plugins:
            ['themes']
        themes:
            theme: 'apple'

Issues / Contributions

This is the first Gem I've released and I'm a sponge for soaking up constructive feedback. Please raise any issues you find or fork it and send me a pull request.

To Do

  • Work on loading themes through application.css and stop jsTree from making an additional request.