annotate default/node_modules/nestable2/README.md @ 0:1d038bc9b3d2 default tip

Up:default
author Liny <dev@neowd.com>
date Sat, 31 May 2025 09:21:51 +0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
1 Nestable2 - new pickup of Nestable!
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
2 ========
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
3
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
4 ### Drag & drop hierarchical list with mouse and touch compatibility (jQuery / Zepto plugin)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
5
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
6 [![Demo](https://img.shields.io/badge/demo-live-brightgreen.svg?style=flat-square)](https://ramonsmit.github.com/Nestable2/)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
7 [![Build Status](https://travis-ci.org/RamonSmit/Nestable2.svg)](https://travis-ci.org/RamonSmit/Nestable2)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
8 [![License](https://img.shields.io/npm/l/nestable2.svg?style=flat-square)](https://github.com/RamonSmit/Nestable2/blob/master/LICENSE)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
9 [![Release](https://img.shields.io/npm/v/nestable2.svg?style=flat-square)](https://www.npmjs.com/package/nestable2)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
10
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
11 Nestable is an experimental example and IS under active development. If it suits your requirements feel free to expand upon it!
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
12
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
13 ## Install
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
14
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
15 You can install this package either with `npm` or with `bower`.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
16
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
17 ### npm
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
18
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
19 ```shell
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
20 npm install --save nestable2
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
21 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
22
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
23 Then add a `<script>` to your `index.html`:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
24
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
25 ```html
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
26 <script src="/node_modules/nestable2/jquery.nestable.js"></script>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
27 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
28
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
29 Or `require('nestable2')` from your code.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
30
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
31 ### bower
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
32
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
33 ```shell
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
34 bower install --save nestable2
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
35 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
36
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
37 ### CDN
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
38
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
39 You can also find us on [CDNJS](https://cdnjs.com/libraries/nestable2):
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
40
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
41 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
42 //cdnjs.cloudflare.com/ajax/libs/nestable2/1.6.0/jquery.nestable.min.css
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
43 //cdnjs.cloudflare.com/ajax/libs/nestable2/1.6.0/jquery.nestable.min.js
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
44 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
45
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
46 ## Usage
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
47
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
48 Write your nested HTML lists like so:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
49 ```html
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
50 <div class="dd">
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
51 <ol class="dd-list">
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
52 <li class="dd-item" data-id="1">
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
53 <div class="dd-handle">Item 1</div>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
54 </li>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
55 <li class="dd-item" data-id="2">
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
56 <div class="dd-handle">Item 2</div>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
57 </li>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
58 <li class="dd-item" data-id="3">
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
59 <div class="dd-handle">Item 3</div>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
60 <ol class="dd-list">
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
61 <li class="dd-item" data-id="4">
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
62 <div class="dd-handle">Item 4</div>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
63 </li>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
64 <li class="dd-item" data-id="5" data-foo="bar">
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
65 <div class="dd-nodrag">Item 5</div>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
66 </li>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
67 </ol>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
68 </li>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
69 </ol>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
70 </div>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
71 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
72 Then activate with jQuery like so:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
73 ```js
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
74 $('.dd').nestable({ /* config options */ });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
75 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
76
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
77 ### Events
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
78 `change`: For using an .on handler in jquery
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
79
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
80 The `callback` provided as an option is fired when elements are reordered or nested.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
81 ```js
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
82 $('.dd').nestable({
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
83 callback: function(l,e){
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
84 // l is the main container
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
85 // e is the element that was moved
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
86 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
87 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
88 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
89
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
90 `onDragStart` callback provided as an option is fired when user starts to drag an element. Returning `false` from this callback will disable the dragging.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
91 ```js
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
92 $('.dd').nestable({
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
93 onDragStart: function(l,e){
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
94 // l is the main container
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
95 // e is the element that was moved
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
96 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
97 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
98 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
99
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
100 This callback can be used to manipulate element which is being dragged as well as whole list.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
101 For example you can conditionally add `.dd-nochildren` to forbid dropping current element to
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
102 some other elements for instance based on `data-type` of current element and other elements:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
103
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
104 ```js
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
105 $('.dd').nestable({
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
106 onDragStart: function (l, e) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
107 // get type of dragged element
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
108 var type = $(e).data('type');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
109
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
110 // based on type of dragged element add or remove no children class
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
111 switch (type) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
112 case 'type1':
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
113 // element of type1 can be child of type2 and type3
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
114 l.find("[data-type=type2]").removeClass('dd-nochildren');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
115 l.find("[data-type=type3]").removeClass('dd-nochildren');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
116 break;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
117 case 'type2':
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
118 // element of type2 cannot be child of type2 or type3
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
119 l.find("[data-type=type2]").addClass('dd-nochildren');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
120 l.find("[data-type=type3]").addClass('dd-nochildren');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
121 break;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
122 case 'type3':
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
123 // element of type3 cannot be child of type2 but can be child of type3
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
124 l.find("[data-type=type2]").addClass('dd-nochildren');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
125 l.find("[data-type=type3]").removeClass('dd-nochildren');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
126 break;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
127 default:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
128 console.error("Invalid type");
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
129 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
130 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
131 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
132 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
133 `beforeDragStop` callback provided as an option is fired when user drop an element and before 'callback' method fired. Returning false from this callback will disable the dropping and restore element at start position.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
134
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
135 ```js
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
136 $('.dd').nestable({
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
137 beforeDragStop: function(l,e, p){
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
138 // l is the main container
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
139 // e is the element that was moved
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
140 // p is the place where element was moved.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
141 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
142 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
143 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
144
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
145 ### Methods
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
146
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
147 `serialize`:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
148 You can get a serialised object with all `data-*` attributes for each item.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
149 ```js
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
150 $('.dd').nestable('serialize');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
151 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
152 The serialised JSON for the example above would be:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
153 ```json
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
154 [{"id":1},{"id":2},{"id":3,"children":[{"id":4},{"id":5,"foo":"bar"}]}]
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
155 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
156
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
157 `toArray`:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
158 ```js
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
159 $('.dd').nestable('toArray');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
160 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
161 Builds an array where each element looks like:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
162 ```js
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
163 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
164 'depth': depth,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
165 'id': id,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
166 'left': left,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
167 'parent_id': parentId || null,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
168 'right': right
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
169 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
170 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
171
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
172 You can get a hierarchical nested set model like below.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
173 ```js
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
174 $('.dd').nestable('asNestedSet');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
175 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
176 The output will be like below:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
177 ```js
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
178 [{"id":1,"parent_id":"","depth":0,"lft":1,"rgt":2},{"id":2,"parent_id":"","depth":0,"lft":3,"rgt":4},{"id":3,"parent_id":"","depth":0,"lft":5,"rgt":10},{"id":4,"parent_id":3,"depth":1,"lft":6,"rgt":7},{"id":5,"parent_id":3,"depth":1,"lft":8,"rgt":9}]
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
179 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
180
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
181 `add`:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
182 You can add any item by passing an object. New item will be appended to the root tree.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
183 ```js
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
184 $('.dd').nestable('add', {"id":1,"children":[{"id":4}]});
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
185 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
186 Optionally you can set 'parent_id' property on your object and control in which place in tree your item will be added.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
187 ```js
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
188 $('.dd').nestable('add', {"id":1,"parent_id":2,"children":[{"id":4}]});
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
189 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
190
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
191 `replace`:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
192 You can replace existing item in tree by passing an object with 'id' property.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
193 ```js
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
194 $('.dd').nestable('replace', {"id":1,"foo":"bar"});
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
195 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
196 You need to remember that if you're replacing item with children's you need to pass this children's in object as well.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
197 ```js
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
198 $('.dd').nestable('replace', {"id":1,"children":[{"id":4}]});
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
199 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
200
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
201 `remove`:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
202 You can remove existing item by passing 'id' of this element. To animate item removing check `effect` config option. This will delete the item with all his children.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
203 ```js
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
204 $('.dd').nestable('remove', 1);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
205 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
206 This will invoke callback function after deleting the item with data-id '1'.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
207 ```js
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
208 $('.dd').nestable('remove', 1, function(){
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
209 console.log('Item deleted');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
210 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
211 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
212
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
213 `removeAll`:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
214 Removes all items from the list. To animate items removing check `effect` config option. You can also use callback function to do something after removing all items.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
215 ```js
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
216 $('.dd').nestable('removeAll', function(){
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
217 console.log('All items deleted');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
218 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
219 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
220
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
221 `destroy`:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
222 You can deactivate the plugin by running
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
223 ```js
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
224 $('.dd').nestable('destroy');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
225 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
226 ### Autoscroll while dragging
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
227 Autoscrolls the container element while dragging if you drag the element over the offsets defined in `scrollTriggers` config option.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
228
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
229 ```js
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
230 $('.dd').nestable({ scroll: true });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
231 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
232
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
233 To use this feature you need to have `jQuery >= 1.9` and `scrollParent()` method.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
234 You can be find this method in `jQuery UI` or if you don't want to have `jQuery UI` as a dependency you can use [this repository](https://github.com/slindberg/jquery-scrollparent).
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
235
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
236
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
237 You can also control the scroll sensitivity and speed, check `scrollSensitivity` and `scrollSpeed` options.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
238
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
239 ### On the fly nestable generation
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
240
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
241 You can passed serialized JSON as an option if you like to dynamically generate a Nestable list:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
242 ```html
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
243 <div class="dd" id="nestable-json"></div>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
244
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
245 <script>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
246 var json = '[{"id":1},{"id":2},{"id":3,"children":[{"id":4},{"id":5,"foo":"bar"}]}]';
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
247 var options = {'json': json}
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
248 $('#nestable-json').nestable(options);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
249 </script>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
250 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
251 NOTE: serialized JSON has been expanded so that an optional "content" property can be passed which allows for arbitrary custom content (including HTML) to be placed in the Nestable item
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
252
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
253 Or do it yourself the old-fashioned way:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
254 ```html
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
255 <div class="dd" id="nestable3">
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
256 <ol class='dd-list dd3-list'>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
257 <div id="dd-empty-placeholder"></div>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
258 </ol>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
259 </div>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
260
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
261 <script>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
262 $(document).ready(function(){
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
263 var obj = '[{"id":1},{"id":2},{"id":3,"children":[{"id":4},{"id":5}]}]';
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
264 var output = '';
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
265 function buildItem(item) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
266
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
267 var html = "<li class='dd-item' data-id='" + item.id + "'>";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
268 html += "<div class='dd-handle'>" + item.id + "</div>";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
269
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
270 if (item.children) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
271
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
272 html += "<ol class='dd-list'>";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
273 $.each(item.children, function (index, sub) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
274 html += buildItem(sub);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
275 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
276 html += "</ol>";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
277
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
278 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
279
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
280 html += "</li>";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
281
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
282 return html;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
283 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
284
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
285 $.each(JSON.parse(obj), function (index, item) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
286
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
287 output += buildItem(item);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
288
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
289 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
290
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
291 $('#dd-empty-placeholder').html(output);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
292 $('#nestable3').nestable();
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
293 });
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
294 </script>
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
295 ```
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
296
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
297 ### Configuration
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
298
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
299 You can change the follow options:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
300
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
301 * `maxDepth` number of levels an item can be nested (default `5`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
302 * `group` group ID to allow dragging between lists (default `0`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
303 * `callback` callback function when an element has been changed (default `null`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
304 * `scroll` enable or disable the scrolling behaviour (default: `false`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
305 * `scrollSensitivity` mouse movement needed to trigger the scroll (default: `1`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
306 * `scrollSpeed` speed of the scroll (default: `5`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
307 * `scrollTriggers` distance from the border where scrolling become active (default: `{ top: 40, left: 40, right: -40, bottom: -40 }`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
308 * `effect` removing items animation effect (default: `{ animation: 'none', time: 'slow'}`). To fadeout elements set 'animation' value to 'fade', during initialization the plugin.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
309
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
310 These advanced config options are also available:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
311
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
312 * `contentCallback` The callback for customizing content (default `function(item) {return item.content || '' ? item.content : item.id;}`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
313 * `listNodeName` The HTML element to create for lists (default `'ol'`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
314 * `itemNodeName` The HTML element to create for list items (default `'li'`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
315 * `rootClass` The class of the root element `.nestable()` was used on (default `'dd'`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
316 * `listClass` The class of all list elements (default `'dd-list'`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
317 * `itemClass` The class of all list item elements (default `'dd-item'`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
318 * `dragClass` The class applied to the list element that is being dragged (default `'dd-dragel'`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
319 * `noDragClass` The class applied to an element to prevent dragging (default `'dd-nodrag'`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
320 * `handleClass` The class of the content element inside each list item (default `'dd-handle'`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
321 * `collapsedClass` The class applied to lists that have been collapsed (default `'dd-collapsed'`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
322 * `noChildrenClass` The class applied to items that cannot have children (default `'dd-nochildren'`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
323 * `placeClass` The class of the placeholder element (default `'dd-placeholder'`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
324 * `emptyClass` The class used for empty list placeholder elements (default `'dd-empty'`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
325 * `expandBtnHTML` The HTML text used to generate a list item expand button (default `'<button data-action="expand">Expand></button>'`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
326 * `collapseBtnHTML` The HTML text used to generate a list item collapse button (default `'<button data-action="collapse">Collapse</button>'`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
327 * `includeContent` Enable or disable the content in output (default `false`)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
328 * `listRenderer` The callback for customizing final list output (default `function(children, options) { ... }` - see defaults in code)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
329 * `itemRenderer` The callback for customizing final item output (default `function(item_attrs, content, children, options) { ... }` - see defaults in code)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
330 * `json` JSON string used to dynamically generate a Nestable list. This is the same format as the `serialize()` output
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
331
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
332 **Inspect the [Nestable2 Demo](https://ramonsmit.github.io/Nestable2/) for guidance.**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
333
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
334 ## Change Log
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
335
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
336 ### 21th October 2017
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
337 * [klgd] Fixed conflict when project using also jQuery 2.*
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
338 * [RomanBurunkov] Moved effect and time parameter in `remove` method to config option. This changes break backward compatibility with version 1.5
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
339 * [RomanBurunkov] Added callback in methods `remove` and `removeAll` as a parameter
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
340 * [RomanKhomyshynets] Fixed `add` function with non-leaf parent_id, fixed [#84](https://github.com/RamonSmit/Nestable2/issues/84)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
341
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
342 ### 9th August 2017
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
343 * [pjona] Added support for string (GUID) as a data id
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
344
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
345 ### 21th July 2017
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
346 * [spathon] Append the .dd-empty div if the list don't have any items on init, fixed [#52](https://github.com/RamonSmit/Nestable2/issues/52)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
347 * [pjona] Fixed problem on Chrome with touch screen and mouse, fixed [#28](https://github.com/RamonSmit/Nestable2/issues/28) and[#73](https://github.com/RamonSmit/Nestable2/issues/73)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
348
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
349 ### 15th July 2017
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
350 * [RomanBurunkov] Added fadeOut support to `remove` method
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
351 * [pjona] Fixed `replace` method (added collapse/expand buttons when item has children), see [#69](https://github.com/RamonSmit/Nestable2/issues/69)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
352 * [uniring] Added autoscroll while dragging, see [#71](https://github.com/RamonSmit/Nestable2/issues/71)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
353
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
354 ### 2nd July 2017
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
355 * [pjona] Added CDN support
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
356 * [pjona] Removed unneeded directories in `dist/`
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
357
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
358 ### 25th June 2017
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
359 * [pjona] Fixed `add` method when using parent_id, see [#66](https://github.com/RamonSmit/Nestable2/issues/66)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
360
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
361 ### 22th June 2017
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
362 * [pjona] Added Travis CI builds after each commit and pull request
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
363 * [pjona] Added `test` task in gulp with eslint validation
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
364 * [pjona] Added minified version of JS and CSS
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
365 * [pjona] Changed project name to `nestable2`
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
366 * [pjona] Fixed `remove` method when removing last item from the list
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
367
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
368 ### 16th June 2017
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
369
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
370 * [imliam] Added support to return `false` from the `onDragStart` event to disable the drag event
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
371
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
372 ### 28th May 2017
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
373
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
374 * [pjona] Function `add` support `parent_id` property
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
375 * [pjona] Added `replace` function
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
376 * [pjona] Added `remove` function
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
377
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
378 ### 22th May 2017
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
379
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
380 * [pjona] Added npm installation
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
381 * [pjona] Added `add` function
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
382
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
383 ### 10th April 2017
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
384
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
385 * [timalennon] Added functions: `toHierarchy` and `toArray`
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
386
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
387 ### 17th November 2015
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
388
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
389 * [oimken] Added `destroy` function
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
390
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
391 ### 2nd November 2015
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
392
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
393 * [ivanbarlog] Added `onDragStart` event fired when user starts to drag an element
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
394
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
395 ### 21th April 2015
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
396
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
397 * [ozdemirburak] Added `asNestedSet` function
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
398 * [ozdemirburak] Added bower installation
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
399
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
400 ### 6th October 2014
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
401
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
402 * [zemistr] Created listRenderer and itemRenderer. Refactored build from JSON.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
403 * [zemistr] Added support for adding classes via input data. (```[{"id": 1, "content": "First item", "classes": ["dd-nochildren", "dd-nodrag", ...] }, ... ]```)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
404
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
405 ### 3rd October 2014
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
406
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
407 * [zemistr] Added support for additional data parameters.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
408 * [zemistr] Added callback for customizing content.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
409 * [zemistr] Added parameter "includeContent" for including / excluding content from the output data.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
410 * [zemistr] Added fix for input data. (JSON string / Javascript object)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
411
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
412 ### 7th April 2014
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
413
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
414 * New pickup of repo for developement.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
415
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
416 ### 14th March 2013
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
417
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
418 * [tchapi] Merge Craig Sansam' branch [https://github.com/craigsansam/Nestable/](https://github.com/craigsansam/Nestable/) - Add the noChildrenClass option
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
419
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
420 ### 13th March 2013
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
421
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
422 * [tchapi] Replace previous `change` behaviour with a callback
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
423
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
424 ### 12th February 2013
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
425
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
426 * Merge fix from [jails] : Fix change event triggered twice.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
427
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
428 ### 3rd December 2012
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
429
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
430 * [dbushell] add no-drag class for handle contents
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
431 * [dbushell] use `el.closest` instead of `el.parents`
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
432 * [dbushell] fix scroll offset on document.elementFromPoint()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
433
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
434 ### 15th October 2012
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
435
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
436 * Merge for Zepto.js support
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
437 * Merge fix for remove/detach items
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
438
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
439 ### 27th June 2012
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
440
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
441 * Added `maxDepth` option (default to 5)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
442 * Added empty placeholder
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
443 * Updated CSS class structure with options for `listClass` and `itemClass`.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
444 * Fixed to allow drag and drop between multiple Nestable instances (off by default).
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
445 * Added `group` option to enabled the above.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
446
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
447 * * *
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
448
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
449 Original Author: David Bushell [http://dbushell.com](http://dbushell.com/) [@dbushell](http://twitter.com/dbushell/)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
450
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
451 New Author : Ramon Smit [http://ramonsmit.nl](http://ramonsmit.nl) [@ramonsmit94](https://twitter.com/Ram0nSm1t/)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
452
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
453 Contributors :
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
454
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
455 * Cyril [http://tchap.me](http://tchap.me), Craig Sansam
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
456 * Zemistr [http://zemistr.eu](http://zemistr.eu), Martin Zeman
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
457 * And alot more.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
458
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
459 Copyright © 2012 David Bushell / © Ramon Smit 2014/2017 | BSD & MIT license