wheels 0.0.48 → 0.0.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. data/VERSION +1 -1
  2. data/app/controllers/access_control_entries_controller.rb +4 -4
  3. data/app/controllers/external_links_controller.rb +5 -0
  4. data/app/controllers/feedbacks_controller.rb +10 -0
  5. data/app/controllers/menus_controller.rb +2 -0
  6. data/app/controllers/pages_controller.rb +16 -29
  7. data/app/controllers/sitemaps_controller.rb +135 -0
  8. data/app/helpers/application_helper.rb +4 -3
  9. data/app/helpers/external_links_helper.rb +2 -0
  10. data/app/helpers/feedbacks_helper.rb +2 -0
  11. data/app/helpers/menus_helper.rb +2 -0
  12. data/app/helpers/sitemaps_helper.rb +12 -0
  13. data/app/mailers/feedback_mailer.rb +10 -0
  14. data/app/models/ability.rb +2 -1
  15. data/app/models/access_control_entry.rb +17 -15
  16. data/app/models/external_link.rb +4 -0
  17. data/app/models/feedback.rb +13 -0
  18. data/app/models/image.rb +1 -1
  19. data/app/models/menu.rb +4 -0
  20. data/app/models/page.rb +2 -5
  21. data/app/models/sitemap.rb +153 -0
  22. data/app/models/user.rb +7 -1
  23. data/app/validators/email_validator.rb +22 -0
  24. data/app/views/access_control_entries/_form.html.haml +1 -1
  25. data/app/views/access_control_entries/_index.html.haml +3 -3
  26. data/app/views/access_control_entries/_show.html.haml +1 -1
  27. data/app/views/external_links/_fields_for.html.haml +2 -0
  28. data/app/views/external_links/_form.html.haml +18 -0
  29. data/app/views/external_links/_show.html.haml +7 -0
  30. data/app/views/external_links/edit.html.haml +7 -0
  31. data/app/views/external_links/index.html.haml +23 -0
  32. data/app/views/external_links/new.html.haml +5 -0
  33. data/app/views/external_links/show.html.haml +2 -0
  34. data/app/views/feedback_mailer/submit_feedback.html.haml +22 -0
  35. data/app/views/feedbacks/_form.html.haml +37 -0
  36. data/app/views/feedbacks/index.html.haml +27 -0
  37. data/app/views/feedbacks/new.html.haml +5 -0
  38. data/app/views/feedbacks/show.html.haml +19 -0
  39. data/app/views/layouts/application.html.haml +21 -16
  40. data/app/views/layouts/bare.html.haml +2 -0
  41. data/app/views/loadbehind/_view.js.haml +1 -2
  42. data/app/views/menus/_form.html.haml +13 -0
  43. data/app/views/menus/edit.html.haml +7 -0
  44. data/app/views/menus/index.html.haml +19 -0
  45. data/app/views/menus/new.html.haml +5 -0
  46. data/app/views/menus/show.html.haml +7 -0
  47. data/app/views/pages/_child_pages_links.html.haml +1 -1
  48. data/app/views/pages/_control_panel.html.haml +1 -6
  49. data/app/views/pages/_form.html.haml +2 -2
  50. data/app/views/pages/_form_fields.html.haml +7 -2
  51. data/app/views/pages/_show.html.haml +4 -0
  52. data/app/views/pages/create.js.haml +2 -1
  53. data/app/views/pages/destroy.js.haml +3 -0
  54. data/app/views/pages/edit.js.haml +4 -0
  55. data/app/views/pages/index.html.haml +4 -2
  56. data/app/views/pages/index.js.haml +3 -0
  57. data/app/views/pages/new.js.haml +3 -0
  58. data/app/views/pages/show.html.haml +2 -10
  59. data/app/views/pages/show.js.haml +3 -0
  60. data/app/views/pages/update.js.haml +2 -2
  61. data/app/views/sitemaps/edit.html.haml +12 -0
  62. data/app/views/sitemaps/edit.js.erb +0 -0
  63. data/app/views/sitemaps/index.html.haml +93 -0
  64. data/app/views/sitemaps/index.json.erb +23 -0
  65. data/app/views/sitemaps/new.html.haml +8 -0
  66. data/app/views/sitemaps/new.js.erb +0 -0
  67. data/app/views/users/edit.html.haml +45 -0
  68. data/db/migrate/{add_fields_to_users.rb → 0010_add_fields_to_users.rb} +0 -0
  69. data/db/migrate/{create_blogs.rb → 0020_create_blogs.rb} +0 -0
  70. data/db/migrate/{create_galleries.rb → 0030_create_galleries.rb} +0 -0
  71. data/db/migrate/{create_images.rb → 0040_create_images.rb} +0 -0
  72. data/db/migrate/{create_profiles.rb → 0050_create_profiles.rb} +0 -0
  73. data/db/migrate/{insert_admin_user_and_roles.rb → 0060_insert_admin_user_and_roles.rb} +0 -0
  74. data/db/migrate/{create_pages.rb → 0070_create_pages.rb} +0 -0
  75. data/db/migrate/{create_forums.rb → 0080_create_forums.rb} +0 -0
  76. data/db/migrate/{create_discussions.rb → 0090_create_discussions.rb} +0 -0
  77. data/db/migrate/{create_forum_messages.rb → 0100_create_forum_messages.rb} +0 -0
  78. data/db/migrate/{create_access_control_entries.rb → 0110_create_access_control_entries.rb} +3 -3
  79. data/db/migrate/{create_attachments.rb → 0120_create_attachments.rb} +0 -4
  80. data/db/migrate/{create_roles.rb → 0130_create_roles.rb} +0 -0
  81. data/db/migrate/0140_create_feedbacks.rb +20 -0
  82. data/db/migrate/0150_create_external_links.rb +14 -0
  83. data/db/migrate/0160_create_sitemaps.rb +17 -0
  84. data/db/migrate/0170_create_menus.rb +14 -0
  85. data/lib/development_mail_interceptor.rb +7 -0
  86. data/lib/generators/wheels/recipes/wheels.rb +18 -12
  87. data/lib/wheels/base.rb +7 -0
  88. data/lib/wheels/routes.rb +8 -3
  89. data/lib/wheels.rb +2 -0
  90. data/public/javascripts/jquery-validate/additional-methods.js +259 -0
  91. data/public/javascripts/jquery-validate/changelog.txt +239 -0
  92. data/public/javascripts/jquery-validate/jquery.validate.js +1146 -0
  93. data/public/javascripts/jquery-validate/jquery.validate.min.js +16 -0
  94. data/public/javascripts/jquery-validate/jquery.validate.pack.js +15 -0
  95. data/public/javascripts/jquery-validate/lib/jquery-1.4.2.js +6240 -0
  96. data/public/javascripts/jquery-validate/lib/jquery.form.js +660 -0
  97. data/public/javascripts/jquery-validate/lib/jquery.js +4376 -0
  98. data/public/javascripts/jquery-validate/lib/jquery.metadata.js +122 -0
  99. data/public/javascripts/jquery-validate/localization/messages_ar.js +24 -0
  100. data/public/javascripts/jquery-validate/localization/messages_bg.js +23 -0
  101. data/public/javascripts/jquery-validate/localization/messages_cn.js +23 -0
  102. data/public/javascripts/jquery-validate/localization/messages_cs.js +23 -0
  103. data/public/javascripts/jquery-validate/localization/messages_da.js +20 -0
  104. data/public/javascripts/jquery-validate/localization/messages_de.js +20 -0
  105. data/public/javascripts/jquery-validate/localization/messages_el.js +24 -0
  106. data/public/javascripts/jquery-validate/localization/messages_es.js +23 -0
  107. data/public/javascripts/jquery-validate/localization/messages_fa.js +23 -0
  108. data/public/javascripts/jquery-validate/localization/messages_fi.js +21 -0
  109. data/public/javascripts/jquery-validate/localization/messages_fr.js +23 -0
  110. data/public/javascripts/jquery-validate/localization/messages_he.js +23 -0
  111. data/public/javascripts/jquery-validate/localization/messages_hu.js +20 -0
  112. data/public/javascripts/jquery-validate/localization/messages_it.js +23 -0
  113. data/public/javascripts/jquery-validate/localization/messages_kk.js +23 -0
  114. data/public/javascripts/jquery-validate/localization/messages_lt.js +23 -0
  115. data/public/javascripts/jquery-validate/localization/messages_lv.js +23 -0
  116. data/public/javascripts/jquery-validate/localization/messages_nl.js +23 -0
  117. data/public/javascripts/jquery-validate/localization/messages_no.js +23 -0
  118. data/public/javascripts/jquery-validate/localization/messages_pl.js +23 -0
  119. data/public/javascripts/jquery-validate/localization/messages_ptbr.js +23 -0
  120. data/public/javascripts/jquery-validate/localization/messages_ptpt.js +23 -0
  121. data/public/javascripts/jquery-validate/localization/messages_ro.js +23 -0
  122. data/public/javascripts/jquery-validate/localization/messages_ru.js +23 -0
  123. data/public/javascripts/jquery-validate/localization/messages_se.js +21 -0
  124. data/public/javascripts/jquery-validate/localization/messages_sk.js +20 -0
  125. data/public/javascripts/jquery-validate/localization/messages_tr.js +23 -0
  126. data/public/javascripts/jquery-validate/localization/messages_tw.js +23 -0
  127. data/public/javascripts/jquery-validate/localization/messages_ua.js +23 -0
  128. data/public/javascripts/jquery-validate/localization/methods_de.js +12 -0
  129. data/public/javascripts/jquery-validate/localization/methods_nl.js +9 -0
  130. data/public/javascripts/jquery-validate/localization/methods_pt.js +9 -0
  131. data/public/javascripts/jquery-validate/todo +172 -0
  132. data/public/javascripts/jquery.cookie.js +96 -0
  133. data/public/javascripts/jquery.filedrop.js +253 -0
  134. data/public/javascripts/jquery.hotkeys.js +99 -0
  135. data/public/javascripts/jquery.js +6240 -0
  136. data/public/javascripts/jquery.jstree.js +3510 -0
  137. data/public/javascripts/jquery.uploadify.js +26 -0
  138. data/public/javascripts/jquery.validate.js +1147 -0
  139. data/public/javascripts/sitemap_jstree.js +329 -0
  140. data/public/javascripts/swfobject.js +4 -0
  141. data/public/jstree/_demo/_dump.sql +20 -0
  142. data/public/jstree/_demo/_inc/__mysql_errors.log +0 -0
  143. data/public/jstree/_demo/_inc/class._database.php +146 -0
  144. data/public/jstree/_demo/_inc/class._database_i.php +152 -0
  145. data/public/jstree/_demo/_inc/class.tree.php +602 -0
  146. data/public/jstree/_demo/_install.txt +6 -0
  147. data/public/jstree/_demo/config.php +14 -0
  148. data/public/jstree/_demo/index.html +262 -0
  149. data/public/jstree/_demo/server.php +69 -0
  150. data/public/jstree/_docs/!style.css +37 -0
  151. data/public/jstree/_docs/_drive.png +0 -0
  152. data/public/jstree/_docs/_html_data.html +2 -0
  153. data/public/jstree/_docs/_json_data.json +4 -0
  154. data/public/jstree/_docs/_search_data.json +6 -0
  155. data/public/jstree/_docs/_search_result.json +1 -0
  156. data/public/jstree/_docs/_xml_flat.xml +12 -0
  157. data/public/jstree/_docs/_xml_nest.xml +18 -0
  158. data/public/jstree/_docs/checkbox.html +148 -0
  159. data/public/jstree/_docs/contextmenu.html +120 -0
  160. data/public/jstree/_docs/cookies.html +96 -0
  161. data/public/jstree/_docs/core.html +622 -0
  162. data/public/jstree/_docs/crrm.html +315 -0
  163. data/public/jstree/_docs/dnd.html +197 -0
  164. data/public/jstree/_docs/hotkeys.html +81 -0
  165. data/public/jstree/_docs/html_data.html +174 -0
  166. data/public/jstree/_docs/index.html +75 -0
  167. data/public/jstree/_docs/json_data.html +240 -0
  168. data/public/jstree/_docs/languages.html +138 -0
  169. data/public/jstree/_docs/search.html +114 -0
  170. data/public/jstree/_docs/sort.html +84 -0
  171. data/public/jstree/_docs/syntax/!script.js +2232 -0
  172. data/public/jstree/_docs/syntax/!style.css +511 -0
  173. data/public/jstree/_docs/syntax/clipboard.swf +0 -0
  174. data/public/jstree/_docs/syntax/help.png +0 -0
  175. data/public/jstree/_docs/syntax/magnifier.png +0 -0
  176. data/public/jstree/_docs/syntax/page_white_code.png +0 -0
  177. data/public/jstree/_docs/syntax/page_white_copy.png +0 -0
  178. data/public/jstree/_docs/syntax/printer.png +0 -0
  179. data/public/jstree/_docs/syntax/wrapping.png +0 -0
  180. data/public/jstree/_docs/themeroller.html +98 -0
  181. data/public/jstree/_docs/themes.html +126 -0
  182. data/public/jstree/_docs/types.html +173 -0
  183. data/public/jstree/_docs/ui.html +188 -0
  184. data/public/jstree/_docs/unique.html +70 -0
  185. data/public/jstree/_docs/xml_data.html +214 -0
  186. data/public/jstree/_lib/jquery.cookie.js +96 -0
  187. data/public/jstree/_lib/jquery.hotkeys.js +99 -0
  188. data/public/jstree/_lib/jquery.js +6240 -0
  189. data/public/jstree/jquery.jstree.js +3510 -0
  190. data/public/jstree/jstree.html +237 -0
  191. data/public/jstree/themes/apple/bg.jpg +0 -0
  192. data/public/jstree/themes/apple/d.png +0 -0
  193. data/public/jstree/themes/apple/dot_for_ie.gif +0 -0
  194. data/public/jstree/themes/apple/style.css +60 -0
  195. data/public/jstree/themes/apple/throbber.gif +0 -0
  196. data/public/jstree/themes/classic/d.png +0 -0
  197. data/public/jstree/themes/classic/dot_for_ie.gif +0 -0
  198. data/public/jstree/themes/classic/style.css +59 -0
  199. data/public/jstree/themes/classic/throbber.gif +0 -0
  200. data/public/jstree/themes/default/d.gif +0 -0
  201. data/public/jstree/themes/default/d.png +0 -0
  202. data/public/jstree/themes/default/style.css +73 -0
  203. data/public/jstree/themes/default/throbber.gif +0 -0
  204. data/public/jstree/themes/default-rtl/d.gif +0 -0
  205. data/public/jstree/themes/default-rtl/d.png +0 -0
  206. data/public/jstree/themes/default-rtl/dots.gif +0 -0
  207. data/public/jstree/themes/default-rtl/style.css +83 -0
  208. data/public/jstree/themes/default-rtl/throbber.gif +0 -0
  209. data/public/stylesheets/sass/dreamy.sass +21 -56
  210. data/public/stylesheets/sass/menu.sass +43 -9
  211. data/public/stylesheets/sass/uploadify.sass +52 -0
  212. data/public/stylesheets/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
  213. data/public/stylesheets/ui-lightness/jquery-ui-1.8.4.custom.css +549 -0
  214. data/wheels.gemspec +187 -15
  215. metadata +188 -16
@@ -0,0 +1,262 @@
1
+ <!DOCTYPE html
2
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml">
5
+ <head>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
+ <title>jsTree v.1.0 - full featured demo</title>
8
+ <script type="text/javascript" src="../_lib/jquery.js"></script>
9
+ <script type="text/javascript" src="../_lib/jquery.cookie.js"></script>
10
+ <script type="text/javascript" src="../_lib/jquery.hotkeys.js"></script>
11
+ <script type="text/javascript" src="../jquery.jstree.js"></script>
12
+
13
+ <style type="text/css">
14
+ html, body { margin:0; padding:0; }
15
+ body, td, th, pre, code, select, option, input, textarea { font-family:verdana,arial,sans-serif; font-size:10px; }
16
+ .demo, .demo input, .jstree-dnd-helper, #vakata-contextmenu { font-size:10px; font-family:Verdana; }
17
+ #container { width:780px; margin:10px auto; overflow:hidden; position:relative; }
18
+ #demo { width:auto; height:400px; overflow:auto; border:1px solid gray; }
19
+
20
+ #text { margin-top:1px; }
21
+
22
+ #alog { font-size:9px !important; margin:5px; border:1px solid silver; }
23
+ </style>
24
+ </head>
25
+ <body>
26
+ <div id="container">
27
+
28
+ <div id="mmenu" style="height:30px; overflow:auto;">
29
+ <input type="button" id="add_folder" value="add folder" style="display:block; float:left;"/>
30
+ <input type="button" id="add_default" value="add file" style="display:block; float:left;"/>
31
+ <input type="button" id="rename" value="rename" style="display:block; float:left;"/>
32
+ <input type="button" id="remove" value="remove" style="display:block; float:left;"/>
33
+ <input type="button" id="cut" value="cut" style="display:block; float:left;"/>
34
+ <input type="button" id="copy" value="copy" style="display:block; float:left;"/>
35
+ <input type="button" id="paste" value="paste" style="display:block; float:left;"/>
36
+ <input type="button" id="clear_search" value="clear" style="display:block; float:right;"/>
37
+ <input type="button" id="search" value="search" style="display:block; float:right;"/>
38
+ <input type="text" id="text" value="" style="display:block; float:right;" />
39
+ </div>
40
+
41
+ <!-- the tree container (notice NOT an UL node) -->
42
+ <div id="demo" class="demo"></div>
43
+ <!-- JavaScript neccessary for the tree -->
44
+ <script type="text/javascript">
45
+ $(function () {
46
+ // Settings up the tree - using $(selector).jstree(options);
47
+ // All those configuration options are documented in the _docs folder
48
+ $("#demo")
49
+ .jstree({
50
+ // the list of plugins to include
51
+ "plugins" : [ "themes", "json_data", "ui", "crrm", "cookies", "dnd", "search", "types", "hotkeys", "contextmenu" ],
52
+ // Plugin configuration
53
+
54
+ // I usually configure the plugin that handles the data first - in this case JSON as it is most common
55
+ "json_data" : {
56
+ // I chose an ajax enabled tree - again - as this is most common, and maybe a bit more complex
57
+ // All the options are the same as jQuery's except for `data` which CAN (not should) be a function
58
+ "ajax" : {
59
+ // the URL to fetch the data
60
+ "url" : "./server.php",
61
+ // this function is executed in the instance's scope (this refers to the tree instance)
62
+ // the parameter is the node being loaded (may be -1, 0, or undefined when loading the root nodes)
63
+ "data" : function (n) {
64
+ // the result is fed to the AJAX request `data` option
65
+ return {
66
+ "operation" : "get_children",
67
+ "id" : n.attr ? n.attr("id").replace("node_","") : 1
68
+ };
69
+ }
70
+ }
71
+ },
72
+ // Configuring the search plugin
73
+ "search" : {
74
+ // As this has been a common question - async search
75
+ // Same as above - the `ajax` config option is actually jQuery's object (only `data` can be a function)
76
+ "ajax" : {
77
+ "url" : "./server.php",
78
+ // You get the search string as a parameter
79
+ "data" : function (str) {
80
+ return {
81
+ "operation" : "search",
82
+ "search_str" : str
83
+ };
84
+ }
85
+ }
86
+ },
87
+ // Using types - most of the time this is an overkill
88
+ // Still meny people use them - here is how
89
+ "types" : {
90
+ // I set both options to -2, as I do not need depth and children count checking
91
+ // Those two checks may slow jstree a lot, so use only when needed
92
+ "max_depth" : -2,
93
+ "max_children" : -2,
94
+ // I want only `drive` nodes to be root nodes
95
+ // This will prevent moving or creating any other type as a root node
96
+ "valid_children" : [ "drive" ],
97
+ "types" : {
98
+ // The default type
99
+ "default" : {
100
+ // I want this type to have no children (so only leaf nodes)
101
+ // In my case - those are files
102
+ "valid_children" : "none",
103
+ // If we specify an icon for the default type it WILL OVERRIDE the theme icons
104
+ "icon" : {
105
+ "image" : "./file.png"
106
+ }
107
+ },
108
+ // The `folder` type
109
+ "folder" : {
110
+ // can have files and other folders inside of it, but NOT `drive` nodes
111
+ "valid_children" : [ "default", "folder" ],
112
+ "icon" : {
113
+ "image" : "./folder.png"
114
+ }
115
+ },
116
+ // The `drive` nodes
117
+ "drive" : {
118
+ // can have files and folders inside, but NOT other `drive` nodes
119
+ "valid_children" : [ "default", "folder" ],
120
+ "icon" : {
121
+ "image" : "./root.png"
122
+ },
123
+ // those options prevent the functions with the same name to be used on the `drive` type nodes
124
+ // internally the `before` event is used
125
+ "start_drag" : false,
126
+ "move_node" : false,
127
+ "delete_node" : false,
128
+ "remove" : false
129
+ }
130
+ }
131
+ },
132
+ // For UI & core - the nodes to initially select and open will be overwritten by the cookie plugin
133
+
134
+ // the UI plugin - it handles selecting/deselecting/hovering nodes
135
+ "ui" : {
136
+ // this makes the node with ID node_4 selected onload
137
+ "initially_select" : [ "node_4" ]
138
+ },
139
+ // the core plugin - not many options here
140
+ "core" : {
141
+ // just open those two nodes up
142
+ // as this is an AJAX enabled tree, both will be downloaded from the server
143
+ "initially_open" : [ "node_2" , "node_3" ]
144
+ }
145
+ })
146
+ .bind("create.jstree", function (e, data) {
147
+ $.post(
148
+ "./server.php",
149
+ {
150
+ "operation" : "create_node",
151
+ "id" : data.rslt.parent.attr("id").replace("node_",""),
152
+ "position" : data.rslt.position,
153
+ "title" : data.rslt.name,
154
+ "type" : data.rslt.obj.attr("rel")
155
+ },
156
+ function (r) {
157
+ if(r.status) {
158
+ $(data.rslt.obj).attr("id", "node_" + r.id);
159
+ }
160
+ else {
161
+ $.jstree.rollback(data.rlbk);
162
+ }
163
+ }
164
+ );
165
+ })
166
+ .bind("remove.jstree", function (e, data) {
167
+ data.rslt.obj.each(function () {
168
+ $.ajax({
169
+ async : false,
170
+ type: 'POST',
171
+ url: "./server.php",
172
+ data : {
173
+ "operation" : "remove_node",
174
+ "id" : this.id.replace("node_","")
175
+ },
176
+ success : function (r) {
177
+ if(!r.status) {
178
+ data.inst.refresh();
179
+ }
180
+ }
181
+ });
182
+ });
183
+ })
184
+ .bind("rename.jstree", function (e, data) {
185
+ $.post(
186
+ "./server.php",
187
+ {
188
+ "operation" : "rename_node",
189
+ "id" : data.rslt.obj.attr("id").replace("node_",""),
190
+ "title" : data.rslt.new_name
191
+ },
192
+ function (r) {
193
+ if(!r.status) {
194
+ $.jstree.rollback(data.rlbk);
195
+ }
196
+ }
197
+ );
198
+ })
199
+ .bind("move_node.jstree", function (e, data) {
200
+ data.rslt.o.each(function (i) {
201
+ $.ajax({
202
+ async : false,
203
+ type: 'POST',
204
+ url: "./server.php",
205
+ data : {
206
+ "operation" : "move_node",
207
+ "id" : $(this).attr("id").replace("node_",""),
208
+ "ref" : data.rslt.np.attr("id").replace("node_",""),
209
+ "position" : data.rslt.cp + i,
210
+ "title" : data.rslt.name,
211
+ "copy" : data.rslt.cy ? 1 : 0
212
+ },
213
+ success : function (r) {
214
+ if(!r.status) {
215
+ $.jstree.rollback(data.rlbk);
216
+ }
217
+ else {
218
+ $(data.rslt.oc).attr("id", "node_" + r.id);
219
+ if(data.rslt.cy && $(data.rslt.oc).children("UL").length) {
220
+ data.inst.refresh(data.inst._get_parent(data.rslt.oc));
221
+ }
222
+ }
223
+ $("#analyze").click();
224
+ }
225
+ });
226
+ });
227
+ });
228
+ });
229
+ </script>
230
+ <script type="text/javascript">
231
+ $(function () {
232
+ $("#mmenu input").click(function () {
233
+ switch(this.id) {
234
+ case "add_default":
235
+ case "add_folder":
236
+ $("#demo").jstree("create", null, "last", { "attr" : { "rel" : this.id.toString().replace("add_", "") } });
237
+ break;
238
+ case "search":
239
+ $("#demo").jstree("search", document.getElementById("text").value);
240
+ break;
241
+ case "text": break;
242
+ default:
243
+ $("#demo").jstree(this.id);
244
+ break;
245
+ }
246
+ });
247
+ });
248
+ </script>
249
+
250
+ <div style="position:absolute; right:30px; top:120px; width:220px; border:1px solid silver; min-height:160px;">
251
+ <input type="button" style='display:block; width:170px; height:24px; margin:5px auto;' value="reconstruct" onclick="$.get('./server.php?reconstruct', function () { $('#demo').jstree('refresh',-1); });" />
252
+ <input type="button" style='display:block; width:170px; height:24px; margin:5px auto;' id="analyze" value="analyze" onclick="$('#alog').load('./server.php?analyze');" />
253
+ <input type="button" style='display:block; width:170px; height:24px; margin:5px auto;' value="refresh" onclick="$('#demo').jstree('refresh',-1);" />
254
+ <div id='alog'></div>
255
+ </div>
256
+
257
+ <p style="margin:1em 2em 3em 2em; text-align:center; ">If you like the project - consider <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=paypal@vakata.com&currency_code=USD&amount=&return=http://jstree.com/donation&item_name=Buy+me+a+coffee+for+jsTree">supporting jstree</a>.</p>
258
+
259
+ </div>
260
+
261
+ </body>
262
+ </html>
@@ -0,0 +1,69 @@
1
+ <?php
2
+ require_once("config.php");
3
+ $jstree = new json_tree();
4
+
5
+ //$jstree->_create_default();
6
+ //die();
7
+
8
+ if(isset($_GET["reconstruct"])) {
9
+ $jstree->_reconstruct();
10
+ die();
11
+ }
12
+ if(isset($_GET["analyze"])) {
13
+ echo $jstree->_analyze();
14
+ die();
15
+ }
16
+
17
+ if($_REQUEST["operation"] && strpos("_", $_REQUEST["operation"]) !== 0 && method_exists($jstree, $_REQUEST["operation"])) {
18
+ header("HTTP/1.0 200 OK");
19
+ header('Content-type: text/json; charset=utf-8');
20
+ header("Cache-Control: no-cache, must-revalidate");
21
+ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
22
+ header("Pragma: no-cache");
23
+ echo $jstree->{$_REQUEST["operation"]}($_REQUEST);
24
+ die();
25
+ }
26
+ header("HTTP/1.0 404 Not Found");
27
+ ?>
28
+
29
+ <?php
30
+ /*
31
+ $jstree->_drop();
32
+ $jstree->create_node(array("id"=>0,"position"=>0));
33
+ $jstree->create_node(array("id"=>1,"position"=>0));
34
+ $jstree->create_node(array("id"=>1,"position"=>0));
35
+ $jstree->create_node(array("id"=>3,"position"=>0,"name"=>"Pesho"));
36
+ $jstree->move(3,2,0,true);
37
+ $jstree->_dump(true);
38
+ $jstree->_reconstruct();
39
+ echo $jstree->_analyze();
40
+ die();
41
+
42
+ $tree = new _tree_struct;
43
+ $tree->drop();
44
+ $tree->create(0, 0);
45
+ $tree->create(0, 0);
46
+ $tree->create(1, 0);
47
+ $tree->create(0, 3);
48
+ $tree->create(2, 3);
49
+ $tree->create(2, 0);
50
+ $tree->dump(true);
51
+ $tree->move(6,4,0);
52
+ $tree->move(1,0,0);
53
+ $tree->move(3,2,99,true);
54
+ $tree->move(7,1,0,true);
55
+ $tree->move(1,7,0);
56
+ $tree->move(1,0,1,true);
57
+ $tree->move(2, 0, 0, true);
58
+ $tree->move(13, 12, 2, true);
59
+ $tree->dump(true);
60
+ $tree->move(15, 16, 2, true);
61
+ $tree->dump(true);
62
+ $tree->move(4, 0, 0);
63
+ $tree->dump(true);
64
+ $tree->move(4, 0, 2);
65
+ $tree->dump(true);
66
+ echo $tree->analyze();
67
+ $tree->drop();
68
+ */
69
+ ?>
@@ -0,0 +1,37 @@
1
+ html, body { margin:0; padding:0; }
2
+ body, td, th, pre, code, select, option, input, textarea { font-family:"lucida grande",tahoma,verdana,arial,sans-serif; font-size:10pt; }
3
+ h1 { margin:0; padding:0.2em 0 0.5em 0; font-size:14pt; font-family:Georgia; /*text-shadow:1px 1px 2px gray;*/ border-bottom:2px solid; margin-bottom:0.5em; text-align:center; }
4
+ h2 { margin:0.5em 0 0.5em 0; padding:0.5em 0 0.5em 20px; font-size:12pt; font-family:Georgia; color:white; background:silver; text-shadow:1px 1px 2px gray; clear:both; -moz-border-radius:5px; }
5
+ h3 { margin:0; padding:0.5em 0 0.5em 0; font-size:11.5pt; font-family:Georgia; color:gray; clear:both; }
6
+ p { padding:0em 0 0.5em 0; margin:0; line-height:1.8em; }
7
+ p.meta { font-size:9pt; color:gray; margin-top:-5px; }
8
+ .arguments .tp, p code { color:green; padding:0 4px; font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-weight: normal !important; font-style: normal !important; font-size:13px; }
9
+ #description, .panel { margin:0 20px; }
10
+ #container { width:800px; margin:10px auto; overflow:hidden; }
11
+ .demo { width:255px; float:left; margin:0; border:1px solid gray; background:white; overflow:auto; }
12
+ .code { width:490px; float:right; margin:0 0 10px 0; border:1px solid gray; font-size:12px; }
13
+ pre { display:block; }
14
+ .code_f { border:1px solid gray; margin-bottom:1em; }
15
+ .syntaxhighlighter { margin:0 0 0 0 !important; padding:0 !important; line-height:18px; }
16
+
17
+ .log { padding:4px; border:1px solid gray; margin-bottom:1em; }
18
+ .button { display:block; margin-bottom:0.5em; }
19
+ .arguments { margin:0em 1em; padding:0; list-style-type:none; }
20
+ .arguments .tp { padding:0 0 0 0; float:left; width:70px; }
21
+ .arguments strong { display:block; }
22
+
23
+ .api h3 { margin-left:-10px; color:black; font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-weight: normal !important; font-size:14px; margin-top:2em; border-top:1px solid; width:780px; }
24
+ .api .arguments li strong { color:black; font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-weight: normal !important; font-size:13px; }
25
+
26
+ .configuration h3 { margin-left:-10px; color:black; font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-weight: normal !important; font-size:14px; margin-top:2em; border-top:1px solid; width:780px; }
27
+ .note { background:#ffffee; padding:10px 20px; border:1px solid #333; -moz-border-radius:5px; border-radius:5px; -webkit-border-radius:5px; margin-bottom:15px; text-align:center; font-weight:bold; }
28
+
29
+ ul.columns { list-style-type:none; width:700px; margin:5px auto 15px auto; padding:0; overflow:hidden; }
30
+ ul.columns li { float:left; margin:0; padding:0 0 0 0px; line-height:18px; width:345px; }
31
+ ul.plugins li { width:220px; text-align:left; padding:5px 0; }
32
+ ul.plugins li a { text-decoration:none; color:#3B5998; }
33
+ ul.plugins li a:hover { text-decoration:underline; }
34
+ ul.plugins li p { text-align:left; font-size:9px; color:#333; margin:0 5px 0 0; }
35
+
36
+ .demo, .demo input, .jstree-dnd-helper, #vakata-contextmenu { font-size:10px; font-family:Verdana; }
37
+
Binary file
@@ -0,0 +1,2 @@
1
+ <li class="jstree-closed"><a href="#">Node 1</a></li>
2
+ <li><a href="#">Node 2</a></li>
@@ -0,0 +1,4 @@
1
+ [
2
+ { "data" : "A node", "children" : [ { "data" : "Only child", "state" : "closed" } ], "state" : "open" },
3
+ "Ajax node"
4
+ ]
@@ -0,0 +1,6 @@
1
+ [
2
+ "Ajax node 1",
3
+ "Ajax node 2",
4
+ "TARGET",
5
+ "Ajax node 4"
6
+ ]
@@ -0,0 +1 @@
1
+ [ "#root_node" ]
@@ -0,0 +1,12 @@
1
+ <root>
2
+ <item parent_id="0" id="node_1" state="closed">
3
+ <content>
4
+ <name><![CDATA[Node 1]]></name>
5
+ </content>
6
+ </item>
7
+ <item parent_id="0" id="node_2">
8
+ <content>
9
+ <name><![CDATA[Node 2]]></name>
10
+ </content>
11
+ </item>
12
+ </root>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <root>
3
+ <item id="pxml_1">
4
+ <content><name><![CDATA[Root node 1]]></name></content>
5
+ <item id="pxml_2">
6
+ <content><name><![CDATA[Child node 1]]></name></content>
7
+ </item>
8
+ <item id="pxml_3">
9
+ <content><name><![CDATA[Child node 2]]></name></content>
10
+ </item>
11
+ <item id="pxml_4">
12
+ <content><name><![CDATA[Some other child node]]></name></content>
13
+ </item>
14
+ </item>
15
+ <item id="pxml_5">
16
+ <content><name ><![CDATA[Root node 2]]></name></content>
17
+ </item>
18
+ </root>
@@ -0,0 +1,148 @@
1
+ <!DOCTYPE html
2
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml">
5
+ <head>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
+ <title>jsTree v.1.0 - checkbox documentation</title>
8
+ <script type="text/javascript" src="../_lib/jquery.js"></script>
9
+ <script type="text/javascript" src="../_lib/jquery.cookie.js"></script>
10
+ <script type="text/javascript" src="../_lib/jquery.hotkeys.js"></script>
11
+ <script type="text/javascript" src="../jquery.jstree.js"></script>
12
+
13
+ <link type="text/css" rel="stylesheet" href="syntax/!style.css"/>
14
+ <link type="text/css" rel="stylesheet" href="!style.css"/>
15
+ <script type="text/javascript" src="syntax/!script.js"></script>
16
+ </head>
17
+ <body>
18
+ <div id="container">
19
+
20
+ <h1>jsTree v.1.0 - checkbox plugin</h1>
21
+ <h2>Description</h2>
22
+ <div id="description">
23
+ <p>The <code>checkbox</code> plugin makes multiselection possible using three-state checkboxes.</p>
24
+ </div>
25
+
26
+ <h2 id="configuration">Configuration</h2>
27
+ <div class="panel configuration">
28
+ <p>No configuration possible</p>
29
+ </div>
30
+
31
+ <h2 id="demos">Demos</h2>
32
+ <div class="panel">
33
+ <h3>Using the checkbox plugin - all you need to do is include it in the list of active plugins.</h3>
34
+ <div id="demo1" class="demo">
35
+ <ul>
36
+ <li id="phtml_1">
37
+ <a href="#">Root node 1</a>
38
+ <ul>
39
+ <li id="phtml_2" class="jstree-checked">
40
+ <a href="#">Child node 1</a>
41
+ </li>
42
+ <li id="phtml_3">
43
+ <a href="#">Child node 2</a>
44
+ </li>
45
+ </ul>
46
+ </li>
47
+ <li id="phtml_4">
48
+ <a href="#">Root node 2</a>
49
+ </li>
50
+ </ul>
51
+ </div>
52
+ <script type="text/javascript" class="source">
53
+ $(function () {
54
+ $("#demo1").jstree({
55
+ "plugins" : [ "themes", "html_data", "checkbox" ]
56
+ });
57
+ });
58
+ </script>
59
+
60
+ </div>
61
+
62
+ <h2 id="api">API</h2>
63
+ <div class="panel api">
64
+ <p>The checkbox plugin maps UI's <a href="ui.html#get_selected">get_selected function</a> to its own <a href="#get_checked">get_checked function</a> and overwrites the <a href="ui.html#reselect">UI reselect function</a>. It also disables the <code>select_node</code>, <code>deselect_node</code> and <code>deselect_all</code> functions.
65
+
66
+ <h3 id="_prepare_checkboxes">._prepare_checkboxes ( node )</h3>
67
+ <p>Inserts the checkbox icons on the node. Used internally.</p>
68
+ <ul class="arguments">
69
+ <li>
70
+ <code class="tp">mixed</code> <strong>node</strong>
71
+ <p>This can be a DOM node, jQuery node or selector pointing to an element within the tree.</p>
72
+ </li>
73
+ </ul>
74
+
75
+ <h3 id="_repair_state">._repair_state ( node )</h3>
76
+ <p>Repairs the checkbox state inside the node. Used internally.</p>
77
+ <ul class="arguments">
78
+ <li>
79
+ <code class="tp">mixed</code> <strong>node</strong>
80
+ <p>This can be a DOM node, jQuery node or selector pointing to an element within the tree.</p>
81
+ </li>
82
+ </ul>
83
+
84
+ <h3 id="change_state">.change_state ( node , uncheck )</h3>
85
+ <p>Changes the state of a node. Used mostly internally - you'd be better off using the <code>check_node</code> and <code>uncheck_node</code> functions. Triggers an event.</p>
86
+ <ul class="arguments">
87
+ <li>
88
+ <code class="tp">mixed</code> <strong>node</strong>
89
+ <p>This can be a DOM node, jQuery node or selector pointing to an element within the tree.</p>
90
+ </li>
91
+ <li>
92
+ <code class="tp">boolean</code> <strong>uncheck</strong>
93
+ <p>If set to <code>true</code> the node is unchecked, if set to <code>false</code> the node is checked, otherwise - the state is toggled.</p>
94
+ </li>
95
+ </ul>
96
+
97
+ <h3 id="check_node">.check_node ( node )</h3>
98
+ <p>Checks a node.</p>
99
+ <ul class="arguments">
100
+ <li>
101
+ <code class="tp">mixed</code> <strong>node</strong>
102
+ <p>This can be a DOM node, jQuery node or selector pointing to an element within the tree.</p>
103
+ </li>
104
+ </ul>
105
+
106
+ <h3 id="uncheck_node">.uncheck_node ( node )</h3>
107
+ <p>Unchecks a node.</p>
108
+ <ul class="arguments">
109
+ <li>
110
+ <code class="tp">mixed</code> <strong>node</strong>
111
+ <p>This can be a DOM node, jQuery node or selector pointing to an element within the tree.</p>
112
+ </li>
113
+ </ul>
114
+
115
+ <h3 id="check_all">.check_all ( )</h3>
116
+ <p>Checks all nodes.</p>
117
+
118
+ <h3 id="uncheck_all">.uncheck_all ( )</h3>
119
+ <p>Unchecks all nodes.</p>
120
+
121
+ <h3 id="is_checked">.is_checked ( node )</h3>
122
+ <p>Checks if a node is checked. Returns boolean.</p>
123
+ <ul class="arguments">
124
+ <li>
125
+ <code class="tp">mixed</code> <strong>node</strong>
126
+ <p>This can be a DOM node, jQuery node or selector pointing to an element within the tree.</p>
127
+ </li>
128
+ </ul>
129
+
130
+ <div style="height:1px; visibility:hidden; overflow:hidden;"><span id="get_unchecked">&#160;</span></div>
131
+ <h3 id="get_checked">.get_checked ( context ), .get_unchecked ( context )</h3>
132
+ <p>Both functions return jQuery collections.</p>
133
+ <ul class="arguments">
134
+ <li>
135
+ <code class="tp">mixed</code> <strong>context</strong>
136
+ <p>This can be a DOM node, jQuery node or selector pointing to an element within the tree. If specified only nodes inside the specified context are returned, otherwise the whole tree is searched.</p>
137
+ </li>
138
+ </ul>
139
+
140
+ <div style="height:1px; visibility:hidden; overflow:hidden;"><span id="hide_checkboxes">&#160;</span></div>
141
+ <h3 id="show_checkboxes">.show_checkboxes ( ), .get_unchecked ( )</h3>
142
+ <p>Show or hide the checkbox icons.</p>
143
+
144
+ </div>
145
+
146
+ </div>
147
+ </body>
148
+ </html>