tree_view 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +4 -0
- data/LICENSE +21 -0
- data/README.md +51 -0
- data/Rakefile +1 -0
- data/lib/assets/.DS_Store +0 -0
- data/lib/assets/javascripts/.DS_Store +0 -0
- data/lib/assets/javascripts/jquery.dimensions.min.js +12 -0
- data/lib/assets/javascripts/jquery.drawinglibrary.js +2208 -0
- data/lib/assets/javascripts/jquery.svg.min.js +7 -0
- data/lib/assets/javascripts/tree_view.drawline.js +49 -0
- data/lib/assets/stylesheets/.DS_Store +0 -0
- data/lib/assets/stylesheets/tree_view.sass +74 -0
- data/lib/generators/tree_view/install/install_generator.rb +20 -0
- data/lib/tree_view/version.rb +3 -0
- data/lib/tree_view/view_helpers/action_view.rb +53 -0
- data/lib/tree_view.rb +5 -0
- data/tree_view.gemspec +24 -0
- metadata +73 -0
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
of this software and associated documentation files (the "Software"), to deal
|
5
|
+
in the Software without restriction, including without limitation the rights
|
6
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
copies of the Software, and to permit persons to whom the Software is
|
8
|
+
furnished to do so, subject to the following conditions:
|
9
|
+
|
10
|
+
The above copyright notice and this permission notice shall be included in
|
11
|
+
all copies or substantial portions of the Software.
|
12
|
+
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
+
THE SOFTWARE.
|
20
|
+
|
21
|
+
|
data/README.md
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
TreeView
|
2
|
+
========
|
3
|
+
|
4
|
+
TreeView is a little plugin to generate a tree view. TreeView is powered by jQuery and jQuery drawing plugin. It only supports Rails 3.1.
|
5
|
+
|
6
|
+
http://benzhang.me/files/medium_tree_view.jpg
|
7
|
+
|
8
|
+
|
9
|
+
Installation
|
10
|
+
===========
|
11
|
+
|
12
|
+
Put this line of code to your gemfile
|
13
|
+
|
14
|
+
```ruby
|
15
|
+
gem 'tree_view'
|
16
|
+
```
|
17
|
+
|
18
|
+
then run the install command to copy the assets to vendor.
|
19
|
+
|
20
|
+
```ruby
|
21
|
+
rails g tree_view:install
|
22
|
+
```
|
23
|
+
|
24
|
+
include necessary javascript and stylesheet files.
|
25
|
+
|
26
|
+
```ruby
|
27
|
+
//= require jquery.dimensions.min
|
28
|
+
//= require jquery.drawinglibrary
|
29
|
+
//= require jquery.svg.min
|
30
|
+
```
|
31
|
+
|
32
|
+
Example
|
33
|
+
=======
|
34
|
+
|
35
|
+
If you have a model with tree structure (you might use tree or ancestry gem), you can simple invoke tree_view helper, and pass the root node of the tree.
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
<%= tree_view(@root) %>
|
39
|
+
```
|
40
|
+
|
41
|
+
The attributes name is the name of the attribute that you want to display on the tree node.
|
42
|
+
|
43
|
+
If you are using other name instead of parent_id in your database, you can simple set the parent_name to whatever you call it on your database, such as
|
44
|
+
build_tree_view(model, attribute name, :parent_name => 'parent')
|
45
|
+
|
46
|
+
API Doc
|
47
|
+
=======
|
48
|
+
|
49
|
+
Coming soon...
|
50
|
+
|
51
|
+
Copyright (c) 2011 Ben Zhang, released under the MIT license
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
Binary file
|
Binary file
|
@@ -0,0 +1,12 @@
|
|
1
|
+
/* Copyright (c) 2007 Paul Bakaus (paul.bakaus@googlemail.com) and Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net)
|
2
|
+
* Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
|
3
|
+
* and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
|
4
|
+
*
|
5
|
+
* $LastChangedDate: 2007-12-20 08:43:48 -0600 (Thu, 20 Dec 2007) $
|
6
|
+
* $Rev: 4257 $
|
7
|
+
*
|
8
|
+
* Version: 1.2
|
9
|
+
*
|
10
|
+
* Requires: jQuery 1.2+
|
11
|
+
*/
|
12
|
+
(function($){$.dimensions={version:'1.2'};$.each(['Height','Width'],function(i,name){$.fn['inner'+name]=function(){if(!this[0])return;var torl=name=='Height'?'Top':'Left',borr=name=='Height'?'Bottom':'Right';return this.is(':visible')?this[0]['client'+name]:num(this,name.toLowerCase())+num(this,'padding'+torl)+num(this,'padding'+borr);};$.fn['outer'+name]=function(options){if(!this[0])return;var torl=name=='Height'?'Top':'Left',borr=name=='Height'?'Bottom':'Right';options=$.extend({margin:false},options||{});var val=this.is(':visible')?this[0]['offset'+name]:num(this,name.toLowerCase())+num(this,'border'+torl+'Width')+num(this,'border'+borr+'Width')+num(this,'padding'+torl)+num(this,'padding'+borr);return val+(options.margin?(num(this,'margin'+torl)+num(this,'margin'+borr)):0);};});$.each(['Left','Top'],function(i,name){$.fn['scroll'+name]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(name=='Left'?val:$(window)['scrollLeft'](),name=='Top'?val:$(window)['scrollTop']()):this['scroll'+name]=val;}):this[0]==window||this[0]==document?self[(name=='Left'?'pageXOffset':'pageYOffset')]||$.boxModel&&document.documentElement['scroll'+name]||document.body['scroll'+name]:this[0]['scroll'+name];};});$.fn.extend({position:function(){var left=0,top=0,elem=this[0],offset,parentOffset,offsetParent,results;if(elem){offsetParent=this.offsetParent();offset=this.offset();parentOffset=offsetParent.offset();offset.top-=num(elem,'marginTop');offset.left-=num(elem,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&$.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return $(offsetParent);}});function num(el,prop){return parseInt($.curCSS(el.jquery?el[0]:el,prop,true))||0;};})(jQuery);
|