netzke-basepack 0.7.4 → 0.7.5

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 (74) hide show
  1. data/.travis.yml +11 -0
  2. data/CHANGELOG.rdoc +10 -0
  3. data/README.md +36 -2
  4. data/Rakefile +1 -3
  5. data/config/ci/before-travis.sh +28 -0
  6. data/lib/netzke/active_record.rb +10 -8
  7. data/lib/netzke/active_record/attributes.rb +28 -17
  8. data/lib/netzke/active_record/relation_extensions.rb +3 -1
  9. data/lib/netzke/basepack.rb +10 -2
  10. data/lib/netzke/basepack/action_column.rb +6 -8
  11. data/lib/netzke/basepack/data_accessor.rb +11 -174
  12. data/lib/netzke/basepack/data_adapters/abstract_adapter.rb +164 -0
  13. data/lib/netzke/basepack/data_adapters/active_record_adapter.rb +279 -0
  14. data/lib/netzke/basepack/data_adapters/data_mapper_adapter.rb +264 -0
  15. data/lib/netzke/basepack/data_adapters/sequel_adapter.rb +260 -0
  16. data/lib/netzke/basepack/form_panel.rb +3 -3
  17. data/lib/netzke/basepack/form_panel/fields.rb +6 -10
  18. data/lib/netzke/basepack/form_panel/javascripts/form_panel.js +1 -0
  19. data/lib/netzke/basepack/form_panel/services.rb +15 -16
  20. data/lib/netzke/basepack/grid_panel.rb +16 -10
  21. data/lib/netzke/basepack/grid_panel/columns.rb +6 -7
  22. data/lib/netzke/basepack/grid_panel/javascripts/event_handling.js +29 -27
  23. data/lib/netzke/basepack/grid_panel/services.rb +13 -90
  24. data/lib/netzke/basepack/paging_form_panel.rb +3 -3
  25. data/lib/netzke/basepack/query_builder.rb +2 -0
  26. data/lib/netzke/basepack/query_builder/javascripts/query_builder.js +29 -19
  27. data/lib/netzke/basepack/search_panel.rb +6 -3
  28. data/lib/netzke/basepack/search_panel/javascripts/search_panel.js +2 -1
  29. data/lib/netzke/basepack/search_window.rb +2 -1
  30. data/lib/netzke/basepack/version.rb +1 -1
  31. data/lib/netzke/data_mapper.rb +18 -0
  32. data/lib/netzke/data_mapper/attributes.rb +273 -0
  33. data/lib/netzke/data_mapper/combobox_options.rb +11 -0
  34. data/lib/netzke/data_mapper/relation_extensions.rb +38 -0
  35. data/lib/netzke/sequel.rb +18 -0
  36. data/lib/netzke/sequel/attributes.rb +274 -0
  37. data/lib/netzke/sequel/combobox_options.rb +10 -0
  38. data/lib/netzke/sequel/relation_extensions.rb +40 -0
  39. data/netzke-basepack.gemspec +24 -13
  40. data/test/basepack_test_app/Gemfile +33 -8
  41. data/test/basepack_test_app/Gemfile.lock +98 -79
  42. data/test/basepack_test_app/Guardfile +46 -0
  43. data/test/basepack_test_app/app/components/book_grid_with_persistence.rb +3 -0
  44. data/test/basepack_test_app/app/components/extras/book_presentation.rb +10 -3
  45. data/test/basepack_test_app/app/models/address.rb +27 -1
  46. data/test/basepack_test_app/app/models/author.rb +28 -0
  47. data/test/basepack_test_app/app/models/book.rb +43 -0
  48. data/test/basepack_test_app/app/models/book_with_custom_primary_key.rb +22 -0
  49. data/test/basepack_test_app/app/models/role.rb +21 -0
  50. data/test/basepack_test_app/app/models/user.rb +24 -0
  51. data/test/basepack_test_app/config/database.yml.sample +11 -10
  52. data/test/basepack_test_app/config/database.yml.travis +15 -0
  53. data/test/basepack_test_app/config/initializers/data_mapper_logging.rb +3 -0
  54. data/test/basepack_test_app/config/initializers/sequel.rb +26 -0
  55. data/test/basepack_test_app/db/schema.rb +0 -3
  56. data/test/basepack_test_app/features/grid_panel.feature +28 -8
  57. data/test/basepack_test_app/features/grid_sorting.feature +6 -6
  58. data/test/basepack_test_app/features/paging_form_panel.feature +13 -13
  59. data/test/basepack_test_app/features/search_in_grid.feature +31 -31
  60. data/test/basepack_test_app/features/step_definitions/generic_steps.rb +3 -1
  61. data/test/basepack_test_app/features/support/env.rb +17 -4
  62. data/test/basepack_test_app/lib/tasks/travis.rake +7 -0
  63. data/test/basepack_test_app/spec/components/form_panel_spec.rb +2 -2
  64. data/test/basepack_test_app/spec/data_adapter/adapter_spec.rb +68 -0
  65. data/test/basepack_test_app/spec/{active_record → data_adapter}/attributes_spec.rb +12 -4
  66. data/test/basepack_test_app/spec/data_adapter/relation_extensions_spec.rb +125 -0
  67. data/test/basepack_test_app/spec/spec_helper.rb +9 -0
  68. data/test/unit/active_record_basepack_test.rb +1 -1
  69. data/test/unit/grid_panel_test.rb +1 -1
  70. metadata +26 -31
  71. data/app/models/netzke_field_list.rb +0 -261
  72. data/app/models/netzke_model_attr_list.rb +0 -21
  73. data/app/models/netzke_persistent_array_auto_model.rb +0 -57
  74. data/test/basepack_test_app/spec/active_record/relation_extensions_spec.rb +0 -44
@@ -10,6 +10,13 @@ Factory.find_definitions
10
10
  # in spec/support/ and its subdirectories.
11
11
  Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
12
12
 
13
+ if defined?(DataMapper::Resource) || defined?(Sequel::Model)
14
+
15
+ # DatabaseCleaner not working in transaction mode for DM
16
+ DatabaseCleaner.strategy=:truncation
17
+ DatabaseCleaner.clean!
18
+ end
19
+
13
20
  RSpec.configure do |config|
14
21
  # == Mock Framework
15
22
  #
@@ -27,4 +34,6 @@ RSpec.configure do |config|
27
34
  # examples within a transaction, remove the following line or assign false
28
35
  # instead of true.
29
36
  config.use_transactional_fixtures = true
37
+ config.before(:all) { DatabaseCleaner.clean! }
38
+ config.after(:suite) { DatabaseCleaner.clean! }
30
39
  end
@@ -47,7 +47,7 @@ class ActiveRecordBasepackTest < ActiveSupport::TestCase
47
47
  Book.send(:include, ::Netzke::ActiveRecord::DataAccessor )
48
48
  b = Book.create({:title => 'Rayuela', :genre_id => 200, :amount => 1000})
49
49
  columns = [{:name => "recent"}, {:name => "title"}, {:name => "amount"}, {:name => "genre_id"}]
50
- assert_equal(['Yes', 'Rayuela', 1000, 200], b.to_array(columns))
50
+ assert_equal(['Yes', 'Rayuela', 1000, 200], b.netzke_array(columns))
51
51
  end
52
52
 
53
53
  end
@@ -24,7 +24,7 @@ class GridPanelTest < ActiveSupport::TestCase
24
24
  assert_equal('Yes', data[2][2]) # "recent" virtual column in the last book
25
25
 
26
26
  # delete all books
27
- res = grid.delete_data(:records => Book.all.map(&:id).to_json)
27
+ res = grid.delete_data(:records => Book.all.map(&:id).netzke_json)
28
28
  assert_equal(nil, Book.first)
29
29
 
30
30
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: netzke-basepack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.4
4
+ version: 0.7.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-05 00:00:00.000000000 Z
12
+ date: 2012-07-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: netzke-core
16
- requirement: &70335624108560 !ruby/object:Gem::Requirement
16
+ requirement: &70312998876040 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,29 +21,7 @@ dependencies:
21
21
  version: 0.7.4
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70335624108560
25
- - !ruby/object:Gem::Dependency
26
- name: will_paginate
27
- requirement: &70335624108080 !ruby/object:Gem::Requirement
28
- none: false
29
- requirements:
30
- - - ~>
31
- - !ruby/object:Gem::Version
32
- version: 3.0.0
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: *70335624108080
36
- - !ruby/object:Gem::Dependency
37
- name: acts_as_list
38
- requirement: &70335624107600 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ~>
42
- - !ruby/object:Gem::Version
43
- version: 0.1.4
44
- type: :runtime
45
- prerelease: false
46
- version_requirements: *70335624107600
24
+ version_requirements: *70312998876040
47
25
  description: A set of full-featured extendible Netzke components (such as FormPanel,
48
26
  GridPanel, Window, BorderLayoutPanel, etc) which can be used as building block for
49
27
  your RIA
@@ -55,14 +33,13 @@ extra_rdoc_files:
55
33
  - README.md
56
34
  files:
57
35
  - .autotest
36
+ - .travis.yml
58
37
  - CHANGELOG.rdoc
59
38
  - LICENSE
60
39
  - README.md
61
40
  - Rakefile
62
41
  - TODO.rdoc
63
- - app/models/netzke_field_list.rb
64
- - app/models/netzke_model_attr_list.rb
65
- - app/models/netzke_persistent_array_auto_model.rb
42
+ - config/ci/before-travis.sh
66
43
  - init.rb
67
44
  - install.rb
68
45
  - javascripts/basepack.js
@@ -84,6 +61,10 @@ files:
84
61
  - lib/netzke/basepack/border_layout_panel.rb
85
62
  - lib/netzke/basepack/border_layout_panel/javascripts/border_layout_panel.js
86
63
  - lib/netzke/basepack/data_accessor.rb
64
+ - lib/netzke/basepack/data_adapters/abstract_adapter.rb
65
+ - lib/netzke/basepack/data_adapters/active_record_adapter.rb
66
+ - lib/netzke/basepack/data_adapters/data_mapper_adapter.rb
67
+ - lib/netzke/basepack/data_adapters/sequel_adapter.rb
87
68
  - lib/netzke/basepack/form_panel.rb
88
69
  - lib/netzke/basepack/form_panel/fields.rb
89
70
  - lib/netzke/basepack/form_panel/javascripts/comma_list_cbg.js
@@ -123,6 +104,14 @@ files:
123
104
  - lib/netzke/basepack/window/javascripts/window.js
124
105
  - lib/netzke/basepack/wrap_lazy_loaded.rb
125
106
  - lib/netzke/basepack/wrapper.rb
107
+ - lib/netzke/data_mapper.rb
108
+ - lib/netzke/data_mapper/attributes.rb
109
+ - lib/netzke/data_mapper/combobox_options.rb
110
+ - lib/netzke/data_mapper/relation_extensions.rb
111
+ - lib/netzke/sequel.rb
112
+ - lib/netzke/sequel/attributes.rb
113
+ - lib/netzke/sequel/combobox_options.rb
114
+ - lib/netzke/sequel/relation_extensions.rb
126
115
  - lib/tasks/netzke_basepack_tasks.rake
127
116
  - locales/de.yml
128
117
  - locales/en.yml
@@ -133,6 +122,7 @@ files:
133
122
  - test/basepack_test_app/.rvmrc
134
123
  - test/basepack_test_app/Gemfile
135
124
  - test/basepack_test_app/Gemfile.lock
125
+ - test/basepack_test_app/Guardfile
136
126
  - test/basepack_test_app/README
137
127
  - test/basepack_test_app/Rakefile
138
128
  - test/basepack_test_app/app/components/author_form.rb
@@ -206,15 +196,18 @@ files:
206
196
  - test/basepack_test_app/config/boot.rb
207
197
  - test/basepack_test_app/config/cucumber.yml
208
198
  - test/basepack_test_app/config/database.yml.sample
199
+ - test/basepack_test_app/config/database.yml.travis
209
200
  - test/basepack_test_app/config/environment.rb
210
201
  - test/basepack_test_app/config/environments/development.rb
211
202
  - test/basepack_test_app/config/environments/production.rb
212
203
  - test/basepack_test_app/config/environments/test.rb
213
204
  - test/basepack_test_app/config/initializers/backtrace_silencers.rb
205
+ - test/basepack_test_app/config/initializers/data_mapper_logging.rb
214
206
  - test/basepack_test_app/config/initializers/inflections.rb
215
207
  - test/basepack_test_app/config/initializers/mime_types.rb
216
208
  - test/basepack_test_app/config/initializers/netzke.rb
217
209
  - test/basepack_test_app/config/initializers/secret_token.rb
210
+ - test/basepack_test_app/config/initializers/sequel.rb
218
211
  - test/basepack_test_app/config/initializers/session_store.rb
219
212
  - test/basepack_test_app/config/locales/de.yml
220
213
  - test/basepack_test_app/config/locales/es.yml
@@ -261,6 +254,7 @@ files:
261
254
  - test/basepack_test_app/features/window.feature
262
255
  - test/basepack_test_app/lib/tasks/.gitkeep
263
256
  - test/basepack_test_app/lib/tasks/cucumber.rake
257
+ - test/basepack_test_app/lib/tasks/travis.rake
264
258
  - test/basepack_test_app/public/404.html
265
259
  - test/basepack_test_app/public/422.html
266
260
  - test/basepack_test_app/public/500.html
@@ -277,10 +271,11 @@ files:
277
271
  - test/basepack_test_app/public/stylesheets/.gitkeep
278
272
  - test/basepack_test_app/script/cucumber
279
273
  - test/basepack_test_app/script/rails
280
- - test/basepack_test_app/spec/active_record/attributes_spec.rb
281
- - test/basepack_test_app/spec/active_record/relation_extensions_spec.rb
282
274
  - test/basepack_test_app/spec/components/form_panel_spec.rb
283
275
  - test/basepack_test_app/spec/components/grid_panel_spec.rb
276
+ - test/basepack_test_app/spec/data_adapter/adapter_spec.rb
277
+ - test/basepack_test_app/spec/data_adapter/attributes_spec.rb
278
+ - test/basepack_test_app/spec/data_adapter/relation_extensions_spec.rb
284
279
  - test/basepack_test_app/spec/factories.rb
285
280
  - test/basepack_test_app/spec/spec_helper.rb
286
281
  - test/basepack_test_app/test/performance/browsing_test.rb
@@ -1,261 +0,0 @@
1
- # TODO: clean up, document and test
2
- class NetzkeFieldList < ActiveRecord::Base
3
- belongs_to :user
4
- belongs_to :role
5
- belongs_to :parent, :class_name => "NetzkeFieldList"
6
- has_many :children, :class_name => "NetzkeFieldList", :foreign_key => "parent_id"
7
-
8
-
9
- def self.update_fields(owner_id, attrs_hash)
10
- self.find_all_below_current_authority_level(owner_id).each do |list|
11
- list.update_attrs(attrs_hash)
12
- end
13
- end
14
-
15
- # Updates attributes in the list
16
- def update_attrs(attrs_hash)
17
- list = ActiveSupport::JSON.decode(self.value)
18
- list.each do |field|
19
- field.merge!(attrs_hash[field["name"]]) if attrs_hash[field["name"]]
20
- end
21
- update_attribute(:value, list.to_json)
22
- end
23
-
24
- def append_attr(attr_hash)
25
- list = ActiveSupport::JSON.decode(self.value)
26
- list << attr_hash
27
- update_attribute(:value, list.to_json)
28
- end
29
-
30
- def self.find_all_below_current_authority_level(pref_name)
31
- authority_level, authority_id = Netzke::Base.authority_level
32
- case authority_level
33
- when :world
34
- self.all(:conditions => {:name => pref_name})
35
- when :role
36
- role = Role.find(authority_id)
37
- role.users.inject([]) do |r, user|
38
- r += self.all(:conditions => {:user_id => user.id, :name => pref_name})
39
- end
40
- else
41
- []
42
- end
43
- end
44
-
45
- def self.find_all_lists_under_current_authority(model_name)
46
- authority_level, authority_id = Netzke::Base.authority_level
47
- case authority_level
48
- when :world
49
- self.all(:conditions => {:model_name => model_name})
50
- when :role
51
- role = Role.find(authority_id)
52
- role.users.inject([]) do |r, user|
53
- r += self.all(:conditions => {:user_id => user.id, :model_name => model_name})
54
- end
55
- when :user
56
- self.all(:conditions => {:user_id => authority_id, :model_name => model_name})
57
- when :self
58
- self.all(:conditions => {:user_id => authority_id, :model_name => model_name})
59
- else
60
- []
61
- end
62
-
63
- end
64
-
65
-
66
- # Replaces the list with the data - only for the list found for the current authority.
67
- # If the list is not found, it's created.
68
- def self.update_list_for_current_authority(pref_name, data, model_name = nil)
69
- pref = find_or_create_pref_to_read(pref_name)
70
- pref.value = data.to_json
71
- pref.model_name = model_name
72
- pref.save!
73
- end
74
-
75
-
76
- # If the <tt>model</tt> param is provided, then this preference will be assigned a parent preference
77
- # that configures the attributes for that model. This way we can track all preferences related to a model.
78
- def self.write_list(name, list, model = nil)
79
- pref_to_store_the_list = self.pref_to_write(name)
80
- pref_to_store_the_list.try(:update_attribute, :value, list.to_json)
81
-
82
- # link this preference to the parent that contains default attributes for the same model
83
- if model
84
- model_level_attrs_pref = self.pref_to_read("#{model.tableize}_model_attrs")
85
- model_level_attrs_pref.children << pref_to_store_the_list if model_level_attrs_pref && pref_to_store_the_list
86
- end
87
- end
88
-
89
- def self.read_list(name)
90
- json_encoded_value = self.pref_to_read(name).try(:value)
91
- ActiveSupport::JSON.decode(json_encoded_value).map(&:symbolize_keys) if json_encoded_value
92
- end
93
-
94
- # Read model-level attrs
95
- # def self.read_attrs_for_model(model_name)
96
- # read_list(model_name)
97
- # # read_list("#{model.tableize}_model_attrs")
98
- # end
99
-
100
- # Write model-level attrs
101
- # def self.write_attrs_for_model(model_name, data)
102
- # # write_list("#{model_name.tableize}_model_attrs", data)
103
- # write_list(model_name, data)
104
- # end
105
-
106
- # Options:
107
- # :attr - attribute to propagate. If not specified, all attrs found in configuration for the model
108
- # will be propagated.
109
- def self.update_children_on_attr(model, options = {})
110
- attr_name = options[:attr].try(:to_s)
111
-
112
- parent_pref = pref_to_read("#{model.tableize}_model_attrs")
113
-
114
- if parent_pref
115
- parent_list = ActiveSupport::JSON.decode(parent_pref.value)
116
- parent_pref.children.each do |ch|
117
- child_list = ActiveSupport::JSON.decode(ch.value)
118
-
119
- if attr_name
120
- # propagate a certain attribute
121
- propagate_attr(attr_name, parent_list, child_list)
122
- else
123
- # propagate all attributes found in parent
124
- all_attrs = parent_list.first.try(:keys)
125
- all_attrs && all_attrs.each{ |attr_name| propagate_attr(attr_name, parent_list, child_list) }
126
- end
127
-
128
- ch.update_attribute(:value, child_list.to_json)
129
- end
130
- end
131
- end
132
-
133
- # meta_attrs:
134
- # {"city"=>{"included"=>true}, "building_number"=>{"default_value"=>100}}
135
- def self.update_children(model, meta_attrs)
136
- parent_pref = pref_to_read("#{model.tableize}_model_attrs")
137
-
138
-
139
- if parent_pref
140
- parent_pref.children.each do |ch|
141
- child_list = ActiveSupport::JSON.decode(ch.value)
142
-
143
- meta_attrs.each_pair do |k,v|
144
- child_list.detect{ |child_attr| child_attr["name"] == k }.try(:merge!, v)
145
- end
146
-
147
- ch.update_attribute(:value, child_list.to_json)
148
- end
149
- end
150
- end
151
-
152
- private
153
-
154
- def self.propagate_attr(attr_name, src_list, dest_list)
155
- for src_field in src_list
156
- dest_field = dest_list.detect{ |df| df["name"] == src_field["name"] }
157
- dest_field[attr_name] = src_field[attr_name] if dest_field && src_field[attr_name]
158
- end
159
- end
160
-
161
- # Overwrite pref_to_read, pref_to_write methods, and find_all_for_component if you want a different way of
162
- # identifying the proper preference based on your own authorization strategy.
163
- #
164
- # The default strategy is:
165
- # 1) if no masq_user or masq_role defined
166
- # pref_to_read will search for the preference for user first, then for user's role
167
- # pref_to_write will always find or create a preference for the current user (never for its role)
168
- # 2) if masq_user or masq_role is defined
169
- # pref_to_read and pref_to_write will always take the masquerade into account, e.g. reads/writes will go to
170
- # the user/role specified
171
- #
172
- def self.pref_to_read(name)
173
- name = name.to_s
174
- session = Netzke::Base.session
175
- cond = {:name => name}
176
-
177
- if session[:masq_user]
178
- # first, get the prefs for this user it they exist
179
- res = self.find(:first, :conditions => cond.merge({:user_id => session[:masq_user]}))
180
- # if it doesn't exist, get them for the user's role
181
- user = User.find(session[:masq_user])
182
- res ||= self.find(:first, :conditions => cond.merge({:role_id => user.role.id}))
183
- # if it doesn't exist either, get them for the World (role_id = 0)
184
- res ||= self.find(:first, :conditions => cond.merge({:role_id => 0}))
185
- elsif session[:masq_role]
186
- # first, get the prefs for this role
187
- res = self.find(:first, :conditions => cond.merge({:role_id => session[:masq_role]}))
188
- # if it doesn't exist, get them for the World (role_id = 0)
189
- res ||= self.find(:first, :conditions => cond.merge({:role_id => 0}))
190
- elsif session[:masq_world]
191
- res = self.find(:first, :conditions => cond.merge({:role_id => 0}))
192
- elsif session[:netzke_user_id]
193
- user = User.find(session[:netzke_user_id])
194
- # first, get the prefs for this user
195
- res = self.find(:first, :conditions => cond.merge({:user_id => user.id}))
196
- # if it doesn't exist, get them for the user's role
197
- res ||= self.find(:first, :conditions => cond.merge({:role_id => user.role.id}))
198
- # if it doesn't exist either, get them for the World (role_id = 0)
199
- res ||= self.find(:first, :conditions => cond.merge({:role_id => 0}))
200
- else
201
- res = self.find(:first, :conditions => cond)
202
- end
203
-
204
- res
205
- end
206
-
207
- def self.find_or_create_pref_to_read(name)
208
- name = name.to_s
209
- attrs = {:name => name}
210
- extend_attrs_for_current_authority(attrs)
211
- self.first(:conditions => attrs) || self.new(attrs)
212
- end
213
-
214
- def self.extend_attrs_for_current_authority(hsh)
215
- authority_level, authority_id = Netzke::Base.authority_level
216
- case authority_level
217
- when :world
218
- hsh.merge!(:role_id => 0)
219
- when :role
220
- hsh.merge!(:role_id => authority_id)
221
- when :user
222
- hsh.merge!(:user_id => authority_id)
223
- when :self
224
- hsh.merge!(:user_id => authority_id)
225
- end
226
- end
227
-
228
- def self.pref_to_write(name)
229
- name = name.to_s
230
- session = Netzke::Base.session
231
- cond = {:name => name}
232
-
233
- if session[:masq_user]
234
- cond.merge!({:user_id => session[:masq_user]})
235
- # first, try to find the preference for masq_user
236
- res = self.find(:first, :conditions => cond)
237
- # if it doesn't exist, create it
238
- res ||= self.new(cond)
239
- elsif session[:masq_role]
240
- # first, delete all the corresponding preferences for the users that have this role
241
- Role.find(session[:masq_role]).users.each do |u|
242
- self.delete_all(cond.merge({:user_id => u.id}))
243
- end
244
- cond.merge!({:role_id => session[:masq_role]})
245
- res = self.find(:first, :conditions => cond)
246
- res ||= self.new(cond)
247
- elsif session[:masq_world]
248
- # first, delete all the corresponding preferences for all users and roles
249
- self.delete_all(cond)
250
- # then, create the new preference for the World (role_id = 0)
251
- res = self.new(cond.merge(:role_id => 0))
252
- elsif session[:netzke_user_id]
253
- res = self.find(:first, :conditions => cond.merge({:user_id => session[:netzke_user_id]}))
254
- res ||= self.new(cond.merge({:user_id => session[:netzke_user_id]}))
255
- else
256
- res = self.find(:first, :conditions => cond)
257
- res ||= self.new(cond)
258
- end
259
- res
260
- end
261
- end
@@ -1,21 +0,0 @@
1
- # Holds attribute lists for application models.
2
- # Is used to configure attributes in the layer between a model and its representation in the Netzke application, thus providing default attributes
3
- # for grids and panels.
4
- class NetzkeModelAttrList < NetzkeFieldList
5
-
6
- # Updates attributes for all lists owned by owner_id and below the current authority level
7
- def self.update_fields(owner_id, attrs_hash)
8
- super
9
-
10
- NetzkeFieldList.find_all_lists_under_current_authority(owner_id).each do |list|
11
- list.update_attrs(attrs_hash)
12
- end
13
- end
14
-
15
- def self.add_attrs(attrs)
16
- NetzkeFieldList.find_all_lists_under_current_authority(owner_id).each do |list|
17
- attrs.each{ |attr_hash| list.append_attr(attr_hash) }
18
- end
19
- end
20
-
21
- end