parlement 0.14 → 0.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (205) hide show
  1. data/CHANGES +41 -1
  2. data/MEMORY +66 -5
  3. data/README +10 -5
  4. data/Rakefile +15 -23
  5. data/app/controllers/account_controller.rb +48 -43
  6. data/app/controllers/{application.rb → application_controller.rb} +15 -12
  7. data/app/controllers/elt_controller.rb +77 -32
  8. data/app/controllers/subscriber_controller.rb +11 -10
  9. data/app/helpers/application_helper.rb +14 -1
  10. data/app/helpers/elt_helper.rb +9 -7
  11. data/app/models/elt.rb +25 -24
  12. data/app/models/mail.rb +44 -47
  13. data/app/models/person_notify.rb +2 -2
  14. data/app/models/user.rb +128 -2
  15. data/app/models/user_notify.rb +15 -15
  16. data/app/views/account/_login.rhtml +39 -39
  17. data/app/views/account/_show.rhtml +22 -30
  18. data/app/views/account/signup.rhtml +2 -2
  19. data/app/views/elt/_choice.rhtml +6 -6
  20. data/app/views/elt/_elt.rhtml +27 -32
  21. data/app/views/elt/choices.rhtml +16 -18
  22. data/app/views/elt/list/_byDate.rhtml +14 -14
  23. data/app/views/elt/list/_byVote.rhtml +15 -15
  24. data/app/views/elt/list/_children.rhtml +48 -40
  25. data/app/views/elt/list/_subscribers.rhtml +1 -1
  26. data/app/views/elt/new.rhtml +22 -21
  27. data/app/views/elt/rss.rxml +4 -11
  28. data/app/views/elt/show.rhtml +65 -61
  29. data/app/views/elt/vote_rss.rxml +4 -11
  30. data/app/views/layouts/top.rhtml +39 -50
  31. data/app/views/person/_listElts.rhtml +1 -1
  32. data/app/views/person/show.rhtml +1 -1
  33. data/{vendor/plugins/login_engine/app → app}/views/user_notify/change_password.rhtml +0 -0
  34. data/{vendor/plugins/login_engine/app → app}/views/user_notify/delete.rhtml +0 -0
  35. data/{vendor/plugins/login_engine/app → app}/views/user_notify/forgot_password.rhtml +0 -0
  36. data/{vendor/plugins/login_engine/app → app}/views/user_notify/pending_delete.rhtml +0 -0
  37. data/{vendor/plugins/login_engine/app → app}/views/user_notify/signup.rhtml +0 -0
  38. data/config/boot.rb +97 -32
  39. data/config/environment.rb +37 -35
  40. data/config/environments/development.rb +2 -3
  41. data/config/environments/production.rb +3 -0
  42. data/config/initializers/string_ruby_1.8.rb +10 -0
  43. data/config/routes.rb +17 -22
  44. data/db/schema.rb +102 -74
  45. data/lib/tasks/rspec.rake +167 -0
  46. data/public/404.html +25 -7
  47. data/public/500.html +26 -7
  48. data/public/dispatch.cgi +0 -0
  49. data/public/dispatch.fcgi +0 -0
  50. data/public/dispatch.rb +0 -0
  51. data/public/images/live_tree_branch_collapsed_icon.gif +0 -0
  52. data/public/images/live_tree_branch_expanded_icon.gif +0 -0
  53. data/public/images/live_tree_leaf_icon.gif +0 -0
  54. data/public/javascripts/application.js +258 -0
  55. data/public/javascripts/controls.js +544 -414
  56. data/public/javascripts/dragdrop.js +229 -198
  57. data/public/javascripts/effects.js +499 -459
  58. data/public/javascripts/prototype.js +2926 -1121
  59. data/public/javascripts/shadedborder.js +68 -50
  60. data/public/stylesheets/default.css +34 -34
  61. data/public/stylesheets/live_tree.css +0 -0
  62. data/public/stylesheets/scaffold.css +6 -6
  63. data/script/about +0 -0
  64. data/script/autospec +6 -0
  65. data/script/benchmarker +0 -0
  66. data/script/breakpointer +0 -0
  67. data/script/console +0 -0
  68. data/script/dbconsole +3 -0
  69. data/script/destroy +0 -0
  70. data/script/generate +0 -0
  71. data/script/plugin +0 -0
  72. data/script/profiler +0 -0
  73. data/script/runner +0 -0
  74. data/script/server +0 -0
  75. data/script/spec +10 -0
  76. data/script/spec_server +9 -0
  77. data/test/unit/attachment_test.rb +4 -4
  78. data/test/unit/choice_test.rb +1 -1
  79. data/test/unit/elt_test.rb +9 -9
  80. data/test/unit/mail_notify_test.rb +2 -2
  81. data/test/unit/mail_test.rb +18 -11
  82. data/test/unit/person_notify_test.rb +1 -1
  83. data/test/unit/person_test.rb +1 -1
  84. data/test/unit/subscriber_test.rb +1 -1
  85. data/test/unit/user_test.rb +81 -0
  86. data/test/unit/visit_test.rb +6 -6
  87. data/vendor/plugins/activerecord_foreign_key_extensions/init.rb +2 -0
  88. data/vendor/plugins/activerecord_foreign_key_extensions/lib/active_record_extensions.rb +182 -0
  89. data/vendor/plugins/activerecord_text_id_extensions/init.rb +2 -0
  90. data/vendor/plugins/activerecord_text_id_extensions/lib/active_record_extensions.rb +24 -0
  91. data/vendor/plugins/acts_as_nested_set/README +15 -0
  92. data/vendor/plugins/acts_as_nested_set/init.rb +1 -0
  93. data/vendor/plugins/acts_as_nested_set/lib/active_record/acts/nested_set.rb +210 -0
  94. data/vendor/plugins/acts_as_nested_set/test/nested_set_test.rb +269 -0
  95. data/vendor/plugins/acts_as_tree/README +26 -0
  96. data/vendor/plugins/acts_as_tree/Rakefile +22 -0
  97. data/vendor/plugins/acts_as_tree/init.rb +1 -0
  98. data/vendor/plugins/acts_as_tree/lib/active_record/acts/tree.rb +96 -0
  99. data/vendor/plugins/{output_compression/CHANGELOG → acts_as_tree/test/abstract_unit.rb} +0 -0
  100. data/vendor/plugins/acts_as_tree/test/acts_as_tree_test.rb +219 -0
  101. data/vendor/plugins/acts_as_tree/test/database.yml +0 -0
  102. data/vendor/plugins/acts_as_tree/test/fixtures/mixin.rb +0 -0
  103. data/vendor/plugins/acts_as_tree/test/fixtures/mixins.yml +0 -0
  104. data/vendor/plugins/acts_as_tree/test/schema.rb +0 -0
  105. data/vendor/plugins/classic_pagination/CHANGELOG +152 -0
  106. data/vendor/plugins/classic_pagination/README +18 -0
  107. data/vendor/plugins/{output_compression/rakefile → classic_pagination/Rakefile} +22 -22
  108. data/vendor/plugins/classic_pagination/init.rb +33 -0
  109. data/vendor/plugins/classic_pagination/install.rb +1 -0
  110. data/vendor/plugins/classic_pagination/lib/pagination.rb +405 -0
  111. data/vendor/plugins/classic_pagination/lib/pagination_helper.rb +135 -0
  112. data/vendor/plugins/classic_pagination/test/fixtures/companies.yml +24 -0
  113. data/vendor/plugins/classic_pagination/test/fixtures/company.rb +9 -0
  114. data/vendor/plugins/classic_pagination/test/fixtures/developer.rb +7 -0
  115. data/vendor/plugins/classic_pagination/test/fixtures/developers.yml +21 -0
  116. data/vendor/plugins/classic_pagination/test/fixtures/developers_projects.yml +13 -0
  117. data/vendor/plugins/classic_pagination/test/fixtures/project.rb +3 -0
  118. data/vendor/plugins/classic_pagination/test/fixtures/projects.yml +7 -0
  119. data/vendor/plugins/classic_pagination/test/fixtures/replies.yml +13 -0
  120. data/vendor/plugins/classic_pagination/test/fixtures/reply.rb +5 -0
  121. data/vendor/plugins/classic_pagination/test/fixtures/schema.sql +42 -0
  122. data/vendor/plugins/classic_pagination/test/fixtures/topic.rb +3 -0
  123. data/vendor/plugins/classic_pagination/test/fixtures/topics.yml +22 -0
  124. data/vendor/plugins/classic_pagination/test/helper.rb +117 -0
  125. data/vendor/plugins/classic_pagination/test/pagination_helper_test.rb +38 -0
  126. data/vendor/plugins/classic_pagination/test/pagination_test.rb +177 -0
  127. data/vendor/plugins/file_column/lib/file_column.rb +1 -1
  128. data/vendor/plugins/file_column/test/file_column_test.rb +0 -0
  129. metadata +151 -197
  130. data/app/helpers/live_tree.rb +0 -238
  131. data/app/views/elt/_form.rhtml +0 -31
  132. data/app/views/elt/show_tree.rhtml +0 -8
  133. data/config/environments/user_environment.rb +0 -1
  134. data/db/ROOT/Titemagli.txt +0 -3
  135. data/db/ROOT/titemagli.txt +0 -9
  136. data/public/javascripts/behaviour.js +0 -254
  137. data/public/javascripts/ie7-load.htc +0 -1
  138. data/public/javascripts/ie7.js +0 -6
  139. data/public/javascripts/live_tree.js +0 -749
  140. data/public/javascripts/mybehaviour.js +0 -225
  141. data/public/javascripts/scriptaculous.js +0 -47
  142. data/public/javascripts/slider.js +0 -283
  143. data/public/stylesheets/blue.css +0 -471
  144. data/vendor/plugins/engines/CHANGELOG +0 -241
  145. data/vendor/plugins/engines/MIT-LICENSE +0 -21
  146. data/vendor/plugins/engines/README +0 -64
  147. data/vendor/plugins/engines/Rakefile +0 -32
  148. data/vendor/plugins/engines/UPGRADING +0 -93
  149. data/vendor/plugins/engines/about.yml +0 -7
  150. data/vendor/plugins/engines/generators/plugin_migration/USAGE +0 -45
  151. data/vendor/plugins/engines/generators/plugin_migration/plugin_migration_generator.rb +0 -79
  152. data/vendor/plugins/engines/generators/plugin_migration/templates/plugin_migration.erb +0 -13
  153. data/vendor/plugins/engines/init.rb +0 -40
  154. data/vendor/plugins/engines/install.rb +0 -32
  155. data/vendor/plugins/engines/lib/engines.rb +0 -323
  156. data/vendor/plugins/engines/lib/engines/deprecated_config_support.rb +0 -135
  157. data/vendor/plugins/engines/lib/engines/plugin.rb +0 -214
  158. data/vendor/plugins/engines/lib/engines/plugin_list.rb +0 -31
  159. data/vendor/plugins/engines/lib/engines/plugin_migrator.rb +0 -60
  160. data/vendor/plugins/engines/lib/engines/rails_extensions.rb +0 -6
  161. data/vendor/plugins/engines/lib/engines/rails_extensions/active_record.rb +0 -19
  162. data/vendor/plugins/engines/lib/engines/rails_extensions/dependencies.rb +0 -143
  163. data/vendor/plugins/engines/lib/engines/rails_extensions/migrations.rb +0 -155
  164. data/vendor/plugins/engines/lib/engines/rails_extensions/public_asset_helpers.rb +0 -116
  165. data/vendor/plugins/engines/lib/engines/rails_extensions/rails.rb +0 -20
  166. data/vendor/plugins/engines/lib/engines/rails_extensions/rails_initializer.rb +0 -86
  167. data/vendor/plugins/engines/lib/engines/rails_extensions/routing.rb +0 -77
  168. data/vendor/plugins/engines/lib/engines/rails_extensions/templates.rb +0 -140
  169. data/vendor/plugins/engines/lib/engines/testing.rb +0 -87
  170. data/vendor/plugins/engines/tasks/engines.rake +0 -149
  171. data/vendor/plugins/login_engine/CHANGELOG +0 -22
  172. data/vendor/plugins/login_engine/README +0 -344
  173. data/vendor/plugins/login_engine/app/controllers/user_controller.rb +0 -262
  174. data/vendor/plugins/login_engine/app/helpers/user_helper.rb +0 -88
  175. data/vendor/plugins/login_engine/app/models/user.rb +0 -7
  176. data/vendor/plugins/login_engine/app/models/user_notify.rb +0 -75
  177. data/vendor/plugins/login_engine/app/views/user/_edit.rhtml +0 -11
  178. data/vendor/plugins/login_engine/app/views/user/_password.rhtml +0 -9
  179. data/vendor/plugins/login_engine/app/views/user/change_password.rhtml +0 -17
  180. data/vendor/plugins/login_engine/app/views/user/edit.rhtml +0 -23
  181. data/vendor/plugins/login_engine/app/views/user/forgot_password.rhtml +0 -18
  182. data/vendor/plugins/login_engine/app/views/user/home.rhtml +0 -7
  183. data/vendor/plugins/login_engine/app/views/user/login.rhtml +0 -17
  184. data/vendor/plugins/login_engine/app/views/user/logout.rhtml +0 -8
  185. data/vendor/plugins/login_engine/app/views/user/signup.rhtml +0 -17
  186. data/vendor/plugins/login_engine/db/migrate/001_initial_schema.rb +0 -25
  187. data/vendor/plugins/login_engine/init_engine.rb +0 -11
  188. data/vendor/plugins/login_engine/install.rb +0 -4
  189. data/vendor/plugins/login_engine/lib/login_engine.rb +0 -62
  190. data/vendor/plugins/login_engine/lib/login_engine/authenticated_system.rb +0 -113
  191. data/vendor/plugins/login_engine/lib/login_engine/authenticated_user.rb +0 -155
  192. data/vendor/plugins/login_engine/public/stylesheets/login_engine.css +0 -81
  193. data/vendor/plugins/login_engine/test/fixtures/users.yml +0 -41
  194. data/vendor/plugins/login_engine/test/functional/user_controller_test.rb +0 -536
  195. data/vendor/plugins/login_engine/test/mocks/mail.rb +0 -14
  196. data/vendor/plugins/login_engine/test/mocks/time.rb +0 -19
  197. data/vendor/plugins/login_engine/test/test_helper.rb +0 -11
  198. data/vendor/plugins/login_engine/test/unit/user_test.rb +0 -114
  199. data/vendor/plugins/output_compression/MIT-LICENSE +0 -20
  200. data/vendor/plugins/output_compression/README +0 -4
  201. data/vendor/plugins/output_compression/init.rb +0 -1
  202. data/vendor/plugins/output_compression/lib/output_compression.rb +0 -84
  203. data/vendor/plugins/output_compression/test/output_test.rb +0 -11
  204. data/vendor/plugins/output_compression/test/test_controller.rb +0 -3
  205. data/vendor/plugins/output_compression/test/test_helper.rb +0 -14
@@ -1,238 +0,0 @@
1
- # Version:: 0.1
2
- # Author:: Emanuel Borsboom (http://www.epiphyte.ca/)
3
- # Copyright:: Copyright (c) 2005 Emanuel Borsboom
4
- # License:: MIT (see LICENSE[link:files/LICENSE.html])
5
- #
6
- # See README[link:files/README.html] for general information about LiveTree.
7
-
8
- module LiveTree
9
-
10
- def self.included(base) #:nodoc:
11
- super
12
- base.extend(ClassMethods)
13
- end
14
-
15
- module ClassMethods
16
-
17
- # Sets up this controller to serve data for a LiveTree.
18
- #
19
- # Arguments:
20
- # * +name+ - the tree's name.
21
- # * <tt>options</tt> - may contain:
22
- # * <tt>:model</tt> - name of the model to use for retrieving data (symbol).
23
- # * <tt>:model_class</tt> - name of the model's class, incase it can't be inferred (string)
24
- # * <tt>:get_item_name_proc</tt> - proc object which, when called with an item, returns the name of the item to display.
25
- #
26
- # Either one of <tt>:model</tt> or <tt>:model_class</tt> must be specified.
27
- #
28
- # If <tt>:get_item_name_proc</tt> is not specified, the item's <tt>name</tt> attribute is used.
29
- #
30
- # This example sets up this controller to serve data for a tree with name +family_tree+, that uses the +person+ model to get data:
31
- #
32
- # class FamilyController < ApplicationController
33
- # live_tree :family_tree, :model => :person
34
- # end
35
- #
36
- # A data retrieval method is created that is named <em><tt><name></tt></em><tt>_live_tree_data</tt> (e.g. +family_tree_live_tree_data+)
37
- def live_tree(name, options = {})
38
- raise ":model or :model_class_name option is required" if options[:model] == nil && options[:model_class_name] == nil
39
- if options[:model_class_name] != nil
40
- model = options[:model_class_name]
41
- else
42
- model = Inflector.camelize(options[:model])
43
- end
44
- self.const_set("LIVE_TREE_OPTIONS_" + name.to_s.upcase, options);
45
- code = "" +
46
- "def #{name}_live_tree_options\n" +
47
- " LIVE_TREE_OPTIONS_" + name.to_s.upcase + "\n" +
48
- "end\n" +
49
- "def #{name}_live_tree_data\n" +
50
- " get_live_tree_data(" + model + ".find(live_tree_item_id), #{name}_live_tree_options)\n" +
51
- "end\n"
52
- #STDERR.write("\n\n#{code}\n\n")
53
- class_eval code
54
- end
55
-
56
- end
57
-
58
- module LiveTreeHelper
59
-
60
- def _recurse_live_tree_data(item, depth, get_item_name_proc, special_child_id = nil, special_child_data = nil) #:nodoc:
61
- result = "{id:" + item.id.to_s + ",name:'" + escape_javascript(get_item_name_proc.call(item).to_s) + "'"
62
- if item.children.size == 0
63
- result += ",children:[]"
64
- elsif depth == nil || depth > 1
65
- result += ",children:[\n"
66
- first = true
67
- for child in item.children
68
- result += ",\n" unless first
69
- first = false
70
- if child.id == special_child_id
71
- result += special_child_data
72
- else
73
- result += _recurse_live_tree_data(child, depth == nil ? nil : depth - 1, get_item_name_proc, special_child_id, special_child_data)
74
- end
75
- end
76
- result += "]"
77
- end
78
- result += "}"
79
- result
80
- end
81
-
82
- def _get_live_tree_data(item, options, params) #:nodoc:
83
- options ||= {}
84
- get_item_name_proc = Proc.new { |x| x.name }
85
- if options[:get_item_name_proc] != nil
86
- get_item_name_proc = options[:get_item_name_proc]
87
- end
88
- depth = params[:depth] == nil ? nil : params[:depth].to_i
89
- include_parents = params[:include_parents]
90
- root_item_id = params[:root_item_id] == nil ? nil : params[:root_item_id].to_i
91
-
92
- result = _recurse_live_tree_data(item, depth, get_item_name_proc)
93
- if include_parents
94
- while item.parent != nil && (root_item_id == nil || item.id != root_item_id)
95
- result = _recurse_live_tree_data(item.parent, 2, get_item_name_proc, item.id, result)
96
- item = item.parent
97
- end
98
- end
99
- return result;
100
- end
101
-
102
- def LiveTreeHelper.live_tree_js_name(name) #:nodoc:
103
- Inflector.camelize(name).sub(/^(.)/) { |s| $1.downcase }
104
- end
105
-
106
- # Embeds a LiveTree at the current location in the document.
107
- #
108
- # Arguments:
109
- # * +name+ - name of the tree
110
- # * +options+ - may contain any of the options documented in #construct_live_tree_function, as well as:
111
- # * <tt>:js_variable_name</tt> - JavaScript variable name to assign the JavaScript LiveTree object to (optional).
112
- #
113
- # If <tt>:js_variable_name</tt> is not specified, the tree is assigned to a variable with the name of the tree converted to camelcase
114
- # with a lowercase first letter (e.g. if the tree is named +family_tree+, it will be assigned to +familyTree+).
115
- def live_tree(name, options = {})
116
- options = options.dup;
117
- if options[:js_variable_name] != nil
118
- var_name = options[:js_variable_name]
119
- else
120
- var_name = LiveTreeHelper.live_tree_js_name(name)
121
- end
122
- options.delete :js_variable_name
123
- js = "var " + var_name + "=" + construct_live_tree_function(name, options) + ";"
124
- js += var_name + ".render();"
125
- return javascript_tag(js);
126
- end
127
-
128
- # Returns JavaScript code that constructs a JavaScript LiveTree object.
129
- #
130
- # Arguments:
131
- #
132
- # * +name+ - name of the tree
133
- #
134
- # * +options+ - most of these options are passed to the JavaScript LiveTree object as-is, but their
135
- # names are converted to camelcase-with-lowercase-first-letter (e.g. <tt>:on_click_item</tt> becomes <tt>onClickItem</tt>).
136
- # See LiveTreeClient[link:files/LiveTreeClient.html] for details details about those options. In addition, the following may be
137
- # specified:
138
- #
139
- # * <tt>:id</tt> - HTML ID to give the tree's top HTML element (default is the tree's name).
140
- # * <tt>:data_action</tt> - Action used by the tree to read data (default is "#{name}_live_tree_data").
141
- # * <tt>:data_controller</tt> - Controller used by the tree to read data (default is the current controller).
142
- # * <tt>:initial_data_root</tt> - Root item to construct initial tree data (optional, but you almost certainly want to include this).
143
- # * <tt>:initial_data_whole_tree</tt> - Specifies whether the entire tree should be sent in the initial data, in which case the client will never have to contact the server for more data (default +false+, only used if <tt>:initial_data_root</tt> is specified).
144
- # * <tt>:initial_data_options</tt> - Specifies options for constructing the initial data. See #construct_live_tree_data for details. If you used LiveTree::ClassMethods.live_tree to setup your controller, you don't need to specify this (the same values passed to live_tree are used). (default <tt>{}</tt>, only used if <tt>:initial_data_root</tt>).
145
- def construct_live_tree_function(name, options = {})
146
- options = options.dup;
147
- if options[:id] != nil
148
- tree_id = options[:id]
149
- else
150
- tree_id = name
151
- end
152
- for k in [:on_click_item, :on_expand_item, :on_collapse_item, :on_load_item]
153
- if options[k] != nil
154
- options[k] = "function(item){" + options[k] + "}"
155
- end
156
- end
157
- if options[:data_url] == nil
158
- if options[:data_action] == nil
159
- act = name.to_s + "_live_tree_data"
160
- else
161
- act = options[:data_action]
162
- end
163
- if options[:data_controller] == nil
164
- options[:data_url] = { :action => act }
165
- else
166
- options[:data_url] = { :controller => options[:data_controller], :action => act }
167
- end
168
- end
169
- options[:data_url] = '"' + escape_javascript(url_for(options[:data_url])) + '"'
170
- for k in [:css_class, :css_style]
171
- if options[k] != nil
172
- options[k] = '"' + escape_javascript(options[k]) + '"'
173
- end
174
- end
175
- if options[:initial_data_root] != nil
176
- item = options[:initial_data_root]
177
- if (options[:initial_data_whole_tree])
178
- depth = nil
179
- elsif (options[:expand_root_item] == nil || options[:expand_root_item] || options[:hide_root_item])
180
- depth = 2
181
- else
182
- depth = 1
183
- end
184
-
185
- if options[:initial_data_options] == nil
186
- data_options_method = controller.method("#{name}_live_tree_options")
187
- if data_options_method
188
- data_options = data_options_method.call
189
- else
190
- data_options = {}
191
- end
192
- else
193
- data_options = options[:initial_data_options]
194
- end
195
- data_options = data_options.dup
196
- data_options[:depth] = depth;
197
- options[:initial_data] = construct_live_tree_data(item, data_options)
198
- end
199
- options.delete :id
200
- options.delete :data_action
201
- options.delete :data_controller
202
- options.delete :initial_data_root
203
- options.delete :initial_data_options
204
- options.delete :initial_data_whole_tree
205
- options_js = "{\n" + options.map {|k, v| LiveTreeHelper.live_tree_js_name(k) + ":#{v}"}.join(",\n") + "\n}"
206
- "new LiveTree(\"" + tree_id.to_s + "\"," + options_js + ")"
207
- end
208
-
209
- # Returns data in format appropriate for use with the <tt>:initial_data</tt> parameter of #construct_live_tree_function .
210
- #
211
- # Arguments:
212
- # * +item+ - Root item of the data.
213
- # * +options+ - Same options as LiveTree.get_live_tree_data, as well as:
214
- # * <tt>:depth</tt> - How many level deep to recurse (default is +nil+, which means to recurse to the ends of all branches).
215
- def construct_live_tree_data(item, options = {})
216
- return _get_live_tree_data(item, options, options)
217
- end
218
-
219
- end
220
-
221
- # Renders data to return to a LiveTree data request.
222
- #
223
- # Arguments:
224
- # * +item+ - Item to return.
225
- # * +options+ - May contain the following:
226
- # * <tt>:get_item_name_proc</tt> - Proc object which, when called with an item, returns the name of the item to display. (by default, the item's name is retrieved using the object's +name+ attribute).
227
- def get_live_tree_data(item, options = {})
228
- #data = LiveTreeHelper.get_live_tree_data(item, options, params)
229
- #render :text => data
230
- render :inline => '<%= _get_live_tree_data(item, options, params) %>', :locals => { :item => item, :options => options }
231
- end
232
-
233
- # Returns the value of the item ID from the request's params.
234
- def live_tree_item_id
235
- params[:item_id]
236
- end
237
-
238
- end
@@ -1,31 +0,0 @@
1
- <%= error_messages_for 'elt' %>
2
-
3
- <div class="eltInfo">
4
- <%= link_to_remote('<<',
5
- :empty => 'new_link_'+@elt.parent.id.to_s,
6
- :url => {
7
- :controller => 'elt',
8
- :action => 'new',
9
- :id => @elt.parent.id },
10
- :loading => visual_effect(:BlindUp,
11
- 'new_link_'+@elt.parent.id.to_s)) %>
12
- </div>
13
-
14
- <!--[form:elt]-->
15
- <%= hidden_field 'elt', 'parent_id' %></p>
16
-
17
- <p style="display:<%= 'none' if @person.name != nil %>">
18
- <label for="person_name"><%= _('Proposed by') %></label>
19
- <%= text_field 'person', 'name' %>
20
- </p>
21
-
22
- <!-- <p><label for="elt_subject">Title</label><br/> -->
23
- <%= text_field 'elt', 'subject' %>
24
-
25
- <label for="elt_position"><%= _('Position') %></label>
26
- <%= text_field 'elt', 'position', 'size' => 1, 'align' => 'right' %>
27
-
28
- <label for="elt_body"></label><br/>
29
- <%= text_area 'elt', 'body' %>
30
- <!--[eoform:elt]-->
31
-
@@ -1,8 +0,0 @@
1
- <div class="data">
2
- <%= live_tree(:family_tree, {
3
- :initial_data_root => @root,
4
- :preload_items => false,
5
- :on_click_item => "alert('You clicked on ' + item.name)",
6
- }) %>
7
- </div>
8
-
@@ -1,3 +0,0 @@
1
- Titemagli
2
-
3
-
@@ -1,9 +0,0 @@
1
- Titemagli
2
-
3
- Bonjour, c'est moi
4
-
5
- <style>
6
- .links, #identity, #filter, .choice label, div#listByVote { display: none; }
7
- .sidebar { margin-top: 1.5em; }
8
- </style>
9
-
@@ -1,254 +0,0 @@
1
- /*
2
- Behaviour v1.1 by Ben Nolan, June 2005. Based largely on the work
3
- of Simon Willison (see comments by Simon below).
4
-
5
- Description:
6
-
7
- Uses css selectors to apply javascript behaviours to enable
8
- unobtrusive javascript in html documents.
9
-
10
- Usage:
11
-
12
- var myrules = {
13
- 'b.someclass' : function(element){
14
- element.onclick = function(){
15
- alert(this.innerHTML);
16
- }
17
- },
18
- '#someid u' : function(element){
19
- element.onmouseover = function(){
20
- this.innerHTML = "BLAH!";
21
- }
22
- }
23
- };
24
-
25
- Behaviour.register(myrules);
26
-
27
- // Call Behaviour.apply() to re-apply the rules (if you
28
- // update the dom, etc).
29
-
30
- License:
31
-
32
- This file is entirely BSD licensed.
33
-
34
- More information:
35
-
36
- http:/ipcord.co.nz/behaviour/
37
-
38
- */
39
-
40
- var Behaviour = {
41
- list : new Array,
42
-
43
- register : function(sheet){
44
- Behaviour.list.push(sheet);
45
- },
46
-
47
- start : function(){
48
- Behaviour.addLoadEvent(function(){
49
- Behaviour.apply();
50
- });
51
- },
52
-
53
- apply : function(){
54
- for (h=0;sheet=Behaviour.list[h];h++){
55
- for (selector in sheet){
56
- list = document.getElementsBySelector(selector);
57
-
58
- if (!list){
59
- continue;
60
- }
61
-
62
- for (i=0;element=list[i];i++){
63
- sheet[selector](element);
64
- }
65
- }
66
- }
67
- },
68
-
69
- addLoadEvent : function(func){
70
- var oldonload = window.onload;
71
-
72
- if (typeof window.onload != 'function') {
73
- window.onload = func;
74
- } else {
75
- window.onload = function() {
76
- oldonload();
77
- func();
78
- }
79
- }
80
- }
81
- }
82
-
83
- Behaviour.start();
84
-
85
- /*
86
- The following code is Copyright (C) Simon Willison 2004.
87
-
88
- document.getElementsBySelector(selector)
89
- - returns an array of element objects from the current document
90
- matching the CSS selector. Selectors can contain element names,
91
- class names and ids and can be nested. For example:
92
-
93
- elements = document.getElementsBySelect('div#main p a.external')
94
-
95
- Will return an array of all 'a' elements with 'external' in their
96
- class attribute that are contained inside 'p' elements that are
97
- contained inside the 'div' element which has id="main"
98
-
99
- New in version 0.4: Support for CSS2 and CSS3 attribute selectors:
100
- See http://www.w3.org/TR/css3-selectors/#attribute-selectors
101
-
102
- Version 0.4 - Simon Willison, March 25th 2003
103
- -- Works in Phoenix 0.5, Mozilla 1.3, Opera 7, Internet Explorer 6, Internet Explorer 5 on Windows
104
- -- Opera 7 fails
105
- */
106
-
107
- function getAllChildren(e) {
108
- // Returns all children of element. Workaround required for IE5/Windows. Ugh.
109
- return e.all ? e.all : e.getElementsByTagName('*');
110
- }
111
-
112
- document.getElementsBySelector = function(selector) {
113
- // Attempt to fail gracefully in lesser browsers
114
- if (!document.getElementsByTagName) {
115
- return new Array();
116
- }
117
- // Split selector in to tokens
118
- var tokens = selector.split(' ');
119
- var currentContext = new Array(document);
120
- for (var i = 0; i < tokens.length; i++) {
121
- token = tokens[i].replace(/^\s+/,'').replace(/\s+$/,'');;
122
- if (token.indexOf('#') > -1) {
123
- // Token is an ID selector
124
- var bits = token.split('#');
125
- var tagName = bits[0];
126
- var id = bits[1];
127
- var element = document.getElementById(id);
128
- if (tagName && element.nodeName.toLowerCase() != tagName) {
129
- // tag with that ID not found, return false
130
- return new Array();
131
- }
132
- // Set currentContext to contain just this element
133
- currentContext = new Array(element);
134
- continue; // Skip to next token
135
- }
136
- if (token.indexOf('.') > -1) {
137
- // Token contains a class selector
138
- var bits = token.split('.');
139
- var tagName = bits[0];
140
- var className = bits[1];
141
- if (!tagName) {
142
- tagName = '*';
143
- }
144
- // Get elements matching tag, filter them for class selector
145
- var found = new Array;
146
- var foundCount = 0;
147
- for (var h = 0; h < currentContext.length; h++) {
148
- var elements;
149
- if (tagName == '*') {
150
- elements = getAllChildren(currentContext[h]);
151
- } else {
152
- elements = currentContext[h].getElementsByTagName(tagName);
153
- }
154
- for (var j = 0; j < elements.length; j++) {
155
- found[foundCount++] = elements[j];
156
- }
157
- }
158
- currentContext = new Array;
159
- var currentContextIndex = 0;
160
- for (var k = 0; k < found.length; k++) {
161
- if (found[k].className && found[k].className.match(new RegExp('\\b'+className+'\\b'))) {
162
- currentContext[currentContextIndex++] = found[k];
163
- }
164
- }
165
- continue; // Skip to next token
166
- }
167
- // Code to deal with attribute selectors
168
- if (token.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/)) {
169
- var tagName = RegExp.$1;
170
- var attrName = RegExp.$2;
171
- var attrOperator = RegExp.$3;
172
- var attrValue = RegExp.$4;
173
- if (!tagName) {
174
- tagName = '*';
175
- }
176
- // Grab all of the tagName elements within current context
177
- var found = new Array;
178
- var foundCount = 0;
179
- for (var h = 0; h < currentContext.length; h++) {
180
- var elements;
181
- if (tagName == '*') {
182
- elements = getAllChildren(currentContext[h]);
183
- } else {
184
- elements = currentContext[h].getElementsByTagName(tagName);
185
- }
186
- for (var j = 0; j < elements.length; j++) {
187
- found[foundCount++] = elements[j];
188
- }
189
- }
190
- currentContext = new Array;
191
- var currentContextIndex = 0;
192
- var checkFunction; // This function will be used to filter the elements
193
- switch (attrOperator) {
194
- case '=': // Equality
195
- checkFunction = function(e) { return (e.getAttribute(attrName) == attrValue); };
196
- break;
197
- case '~': // Match one of space seperated words
198
- checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('\\b'+attrValue+'\\b'))); };
199
- break;
200
- case '|': // Match start with value followed by optional hyphen
201
- checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('^'+attrValue+'-?'))); };
202
- break;
203
- case '^': // Match starts with value
204
- checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) == 0); };
205
- break;
206
- case '$': // Match ends with value - fails with "Warning" in Opera 7
207
- checkFunction = function(e) { return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length); };
208
- break;
209
- case '*': // Match ends with value
210
- checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) > -1); };
211
- break;
212
- default :
213
- // Just test for existence of attribute
214
- checkFunction = function(e) { return e.getAttribute(attrName); };
215
- }
216
- currentContext = new Array;
217
- var currentContextIndex = 0;
218
- for (var k = 0; k < found.length; k++) {
219
- if (checkFunction(found[k])) {
220
- currentContext[currentContextIndex++] = found[k];
221
- }
222
- }
223
- // alert('Attribute Selector: '+tagName+' '+attrName+' '+attrOperator+' '+attrValue);
224
- continue; // Skip to next token
225
- }
226
-
227
- if (!currentContext[0]){
228
- return;
229
- }
230
-
231
- // If we get here, token is JUST an element (not a class or ID selector)
232
- tagName = token;
233
- var found = new Array;
234
- var foundCount = 0;
235
- for (var h = 0; h < currentContext.length; h++) {
236
- var elements = currentContext[h].getElementsByTagName(tagName);
237
- for (var j = 0; j < elements.length; j++) {
238
- found[foundCount++] = elements[j];
239
- }
240
- }
241
- currentContext = found;
242
- }
243
- return currentContext;
244
- }
245
-
246
- /* That revolting regular expression explained
247
- /^(\w+)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/
248
- \---/ \---/\-------------/ \-------/
249
- | | | |
250
- | | | The value
251
- | | ~,|,^,$,* or =
252
- | Attribute
253
- Tag
254
- */