netzke-basepack 0.6.0 → 0.6.1

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 (93) hide show
  1. data/CHANGELOG.rdoc +14 -6
  2. data/README.rdoc +16 -31
  3. data/Rakefile +22 -16
  4. data/TODO.rdoc +1 -1
  5. data/app/models/netzke_field_list.rb +29 -29
  6. data/app/models/netzke_model_attr_list.rb +4 -4
  7. data/app/models/netzke_persistent_array_auto_model.rb +9 -9
  8. data/config/database.yml +2 -35
  9. data/features/accordion_panel.feature +1 -1
  10. data/features/form_panel.feature +2 -2
  11. data/features/grid_panel.feature +15 -3
  12. data/features/search_in_grid.feature +4 -4
  13. data/features/simple_panel.feature +4 -4
  14. data/features/step_definitions/pickle_steps.rb +2 -2
  15. data/features/step_definitions/web_steps.rb +5 -5
  16. data/features/support/env.rb +6 -6
  17. data/features/tab_panel.feature +1 -1
  18. data/javascripts/basepack.js +28 -28
  19. data/lib/netzke-basepack.rb +5 -5
  20. data/lib/netzke/active_record.rb +1 -1
  21. data/lib/netzke/active_record/association_attributes.rb +9 -9
  22. data/lib/netzke/active_record/attributes.rb +24 -23
  23. data/lib/netzke/active_record/combobox_options.rb +3 -3
  24. data/lib/netzke/active_record/relation_extensions.rb +4 -4
  25. data/lib/netzke/basepack.rb +4 -4
  26. data/{app/components → lib}/netzke/basepack/accordion_panel.rb +7 -7
  27. data/{app/components → lib}/netzke/basepack/basic_app.rb +18 -18
  28. data/{app/components → lib}/netzke/basepack/basic_app/statusbar_ext.js +0 -0
  29. data/lib/netzke/basepack/border_layout_panel.rb +101 -0
  30. data/{app/components → lib}/netzke/basepack/form_panel.rb +21 -21
  31. data/{app/components → lib}/netzke/basepack/form_panel/fields.rb +29 -36
  32. data/{app/components → lib}/netzke/basepack/form_panel/javascripts/netzkefileupload.js +0 -0
  33. data/{app/components → lib}/netzke/basepack/form_panel/javascripts/pre.js +9 -9
  34. data/{app/components → lib}/netzke/basepack/form_panel/javascripts/xcheckbox.js +1 -1
  35. data/{app/components → lib}/netzke/basepack/form_panel/services.rb +11 -11
  36. data/{app/components → lib}/netzke/basepack/grid_panel.rb +74 -92
  37. data/{app/components → lib}/netzke/basepack/grid_panel/columns.rb +34 -36
  38. data/{app/components → lib}/netzke/basepack/grid_panel/javascript.rb +7 -7
  39. data/{app/components → lib}/netzke/basepack/grid_panel/javascripts/advanced_search.js +10 -10
  40. data/{app/components → lib}/netzke/basepack/grid_panel/javascripts/edit_in_form.js +2 -2
  41. data/{app/components → lib}/netzke/basepack/grid_panel/javascripts/pre.js +31 -31
  42. data/{app/components → lib}/netzke/basepack/grid_panel/javascripts/rows-dd.js +1 -1
  43. data/{app/components → lib}/netzke/basepack/grid_panel/multi_edit_form.rb +2 -2
  44. data/{app/components → lib}/netzke/basepack/grid_panel/record_form_window.rb +3 -3
  45. data/{app/components → lib}/netzke/basepack/grid_panel/search_window.rb +11 -11
  46. data/{app/components → lib}/netzke/basepack/grid_panel/services.rb +28 -28
  47. data/{app/components → lib}/netzke/basepack/panel.rb +0 -0
  48. data/{app/components → lib}/netzke/basepack/search_panel.rb +11 -11
  49. data/{app/components → lib}/netzke/basepack/tab_panel.rb +7 -7
  50. data/lib/netzke/basepack/version.rb +1 -1
  51. data/{app/components → lib}/netzke/basepack/window.rb +14 -14
  52. data/{app/components → lib}/netzke/basepack/wrapper.rb +6 -6
  53. data/lib/netzke/data_accessor.rb +18 -18
  54. data/lib/netzke/fields_configurator.rb +30 -30
  55. data/lib/netzke/json_array_editor.rb +9 -9
  56. data/lib/netzke/masquerade_selector.rb +5 -5
  57. data/locale/en.yml +1 -1
  58. data/netzke-basepack.gemspec +252 -240
  59. data/spec/active_record/attributes_spec.rb +6 -1
  60. data/spec/active_record/relation_extensions_spec.rb +11 -11
  61. data/spec/components/form_panel_spec.rb +13 -19
  62. data/spec/components/grid_panel_spec.rb +1 -1
  63. data/test/rails_app/Gemfile +4 -3
  64. data/test/rails_app/Gemfile.lock +42 -50
  65. data/test/rails_app/app/components/book_grid.rb +4 -0
  66. data/test/rails_app/app/components/generic_user_form.rb +2 -2
  67. data/test/rails_app/app/components/simple_basic_app.rb +3 -3
  68. data/test/rails_app/app/components/simple_panel.rb +1 -1
  69. data/test/rails_app/app/components/some_border_layout.rb +12 -11
  70. data/test/rails_app/app/components/some_search_panel.rb +5 -5
  71. data/test/rails_app/app/components/user_form.rb +1 -1
  72. data/test/rails_app/app/components/window_component_loader.rb +2 -2
  73. data/test/rails_app/app/models/author.rb +7 -0
  74. data/test/rails_app/app/models/book.rb +3 -0
  75. data/test/rails_app/app/models/user.rb +1 -1
  76. data/test/rails_app/config/locales/es.yml +0 -1
  77. data/test/rails_app/config/routes.rb +2 -2
  78. data/test/rails_app/db/development_structure.sql +28 -3
  79. data/test/rails_app/db/migrate/20101026185816_create_authors.rb +14 -0
  80. data/test/rails_app/db/migrate/20101026190021_create_books.rb +17 -0
  81. data/test/rails_app/db/schema.rb +18 -1
  82. data/test/rails_app/public/javascripts/effects.js +1 -1
  83. data/test/rails_app/spec/models/author_spec.rb +5 -0
  84. data/test/rails_app/spec/models/book_spec.rb +5 -0
  85. data/test/test_helper.rb +1 -1
  86. data/test/unit/accordion_panel_test.rb +2 -2
  87. data/test/unit/active_record_basepack_test.rb +9 -9
  88. data/test/unit/fields_configuration_test.rb +4 -4
  89. data/test/unit/grid_panel_test.rb +8 -8
  90. data/test/unit/tab_panel_test.rb +2 -2
  91. metadata +49 -36
  92. data/.gitignore +0 -10
  93. data/app/components/netzke/basepack/border_layout_panel.rb +0 -39
data/config/database.yml CHANGED
@@ -1,35 +1,2 @@
1
- # SQLite version 3.x
2
- # gem install sqlite3-ruby (not necessary on OS X Leopard)
3
- development:
4
- adapter: mysql2
5
- encoding: utf8
6
- reconnect: false
7
- database: nbt_development
8
- pool: 5
9
- username: root
10
- password:
11
- socket: /tmp/mysql.sock
12
-
13
- # Warning: The database defined as "test" will be erased and
14
- # re-generated from your development database when you run "rake".
15
- # Do not set this db to the same as development or production.
16
- # test:
17
- # adapter: sqlite3
18
- # database: db/test.sqlite3
19
- # pool: 5
20
- # timeout: 5000
21
- test:
22
- adapter: mysql2
23
- encoding: utf8
24
- reconnect: false
25
- database: nbt_test
26
- pool: 5
27
- username: root
28
- password:
29
- socket: /tmp/mysql.sock
30
-
31
- production:
32
- adapter: sqlite3
33
- database: db/production.sqlite3
34
- pool: 5
35
- timeout: 5000
1
+ # This dummy file is only here to please cucumber environment
2
+ test:
@@ -9,7 +9,7 @@ Scenario: Lazy loading of a component into a panel when the latter gets expanded
9
9
  When I expand "Panel Two"
10
10
  Then I should see "Original HTML"
11
11
  When I press "Update html"
12
- Then I should see "Update for Panel Two"
12
+ Then I should see "Update for Panel Two"
13
13
 
14
14
 
15
15
 
@@ -25,11 +25,11 @@ Scenario: Editing the record
25
25
  Then I should see "Salvador"
26
26
  And I should see "Dali"
27
27
  And I should see "painter"
28
-
28
+
29
29
  But I should not see "Maxim"
30
30
  And I should not see "Osminogov"
31
31
  And I should not see "musician"
32
-
32
+
33
33
  Scenario: UserFormWithDefaultFields should render properly
34
34
  Given a role exists with name: "writer"
35
35
  And a user exists with first_name: "Carlos", last_name: "Castaneda", role: that role
@@ -11,7 +11,7 @@ Scenario: UserGrid should render properly
11
11
  And I should see "Castaneda"
12
12
  And I should see "Taisha"
13
13
  And I should see "Abelar"
14
-
14
+
15
15
  @javascript
16
16
  Scenario: Adding a record via "Add in form"
17
17
  Given I am on the UserGrid test page
@@ -57,6 +57,18 @@ Scenario: Multi-editing records
57
57
  And I press "Edit in form"
58
58
  And I fill in "First name:" with "Maxim"
59
59
  And I press "OK"
60
- Then a user should exist with first_name: "Maxim", last_name: "Castaneda"
61
- And a user should exist with first_name: "Maxim", last_name: "Hesse"
60
+ Then the following users should exist:
61
+ | first_name | last_name |
62
+ | Maxim | Castaneda |
63
+ | Maxim | Hesse |
62
64
  But a user should not exist with first_name: "Carlos"
65
+
66
+ @javascript
67
+ Scenario: Filling out association column with association's virtual method
68
+ Given an author exists with first_name: "Vladimir", last_name: "Nabokov"
69
+ And a book exists with title: "Lolita", author: that author
70
+ When I go to the BookGrid test page
71
+ Then I should see "Nabokov, Vladimir"
72
+ And I should see "Lolita"
73
+
74
+
@@ -10,23 +10,23 @@ Feature: Search
10
10
  | admin |
11
11
  | superadmin |
12
12
  | user |
13
-
13
+
14
14
  And the following users exist:
15
15
  | first_name | last_name | role__name |
16
16
  | Paul | Bley | admin |
17
17
  | Dalai | Lama | user |
18
18
  | Taisha | Abelar | superadmin |
19
19
  | Florinda | Donner | admin |
20
-
20
+
21
21
  When I go to the UserGrid test page
22
22
  Then the grid should show 4 records
23
-
23
+
24
24
  When I press "Search"
25
25
  And I fill in "First name like:" with "ai"
26
26
  And I press "Search" within "#user_grid__search_form"
27
27
  And I sleep 1 second
28
28
  Then the grid should show 2 records
29
-
29
+
30
30
  When I press "Search"
31
31
  And I fill in "Role name like:" with "adm"
32
32
  And I fill in "First name like:" with ""
@@ -9,7 +9,7 @@ Feature: Panel
9
9
  Then I should see "Original HTML"
10
10
  When I press "Update html"
11
11
  Then I should see "HTML received from server"
12
-
13
-
14
-
15
-
12
+
13
+
14
+
15
+
@@ -60,7 +60,7 @@ Then(/^#{capture_model} should not be #{capture_model}(?:'s)? (\w+)$/) do |targe
60
60
  model!(owner).send(association).should_not == model!(target)
61
61
  end
62
62
 
63
- # assert model.predicate?
63
+ # assert model.predicate?
64
64
  Then(/^#{capture_model} should (?:be|have) (?:an? )?#{capture_predicate}$/) do |name, predicate|
65
65
  if model!(name).respond_to?("has_#{predicate.gsub(' ', '_')}")
66
66
  model!(name).should send("have_#{predicate.gsub(' ', '_')}")
@@ -83,7 +83,7 @@ end
83
83
  Then(/^#{capture_model}'s (\w+) (should(?: not)?) be #{capture_value}$/) do |name, attribute, expectation, expected|
84
84
  actual_value = model(name).send(attribute)
85
85
  expectation = expectation.gsub(' ', '_')
86
-
86
+
87
87
  case expected
88
88
  when 'nil', 'true', 'false'
89
89
  actual_value.send(expectation, send("be_#{expected}"))
@@ -1,6 +1,6 @@
1
1
  # IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
2
- # It is recommended to regenerate this file in the future when you upgrade to a
3
- # newer version of cucumber-rails. Consider adding your own code to a new file
2
+ # It is recommended to regenerate this file in the future when you upgrade to a
3
+ # newer version of cucumber-rails. Consider adding your own code to a new file
4
4
  # instead of editing this one. Cucumber will automatically load all features/**/*.rb
5
5
  # files.
6
6
 
@@ -191,7 +191,7 @@ Then /^the "([^"]*)" checkbox(?: within "([^"]*)")? should not be checked$/ do |
191
191
  end
192
192
  end
193
193
  end
194
-
194
+
195
195
  Then /^(?:|I )should be on (.+)$/ do |page_name|
196
196
  current_path = URI.parse(current_url).path
197
197
  if current_path.respond_to? :should
@@ -205,8 +205,8 @@ Then /^(?:|I )should have the following query string:$/ do |expected_pairs|
205
205
  query = URI.parse(current_url).query
206
206
  actual_params = query ? CGI.parse(query) : {}
207
207
  expected_params = {}
208
- expected_pairs.rows_hash.each_pair{|k,v| expected_params[k] = v.split(',')}
209
-
208
+ expected_pairs.rows_hash.each_pair{|k,v| expected_params[k] = v.split(',')}
209
+
210
210
  if actual_params.respond_to? :should
211
211
  actual_params.should == expected_params
212
212
  else
@@ -1,6 +1,6 @@
1
1
  # IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
2
- # It is recommended to regenerate this file in the future when you upgrade to a
3
- # newer version of cucumber-rails. Consider adding your own code to a new file
2
+ # It is recommended to regenerate this file in the future when you upgrade to a
3
+ # newer version of cucumber-rails. Consider adding your own code to a new file
4
4
  # instead of editing this one. Cucumber will automatically load all features/**/*.rb
5
5
  # files.
6
6
 
@@ -31,7 +31,7 @@ require 'cucumber/rails/capybara_javascript_emulation' # Lets you click links wi
31
31
  # steps to use the XPath syntax.
32
32
  Capybara.default_selector = :css
33
33
 
34
- # If you set this to false, any error raised from within your app will bubble
34
+ # If you set this to false, any error raised from within your app will bubble
35
35
  # up to your step definition and out to cucumber unless you catch it somewhere
36
36
  # on the way. You can make Rails rescue errors and render error pages on a
37
37
  # per-scenario basis by tagging a scenario or feature with the @allow-rescue tag.
@@ -43,15 +43,15 @@ Capybara.default_selector = :css
43
43
  ActionController::Base.allow_rescue = false
44
44
 
45
45
  # If you set this to true, each scenario will run in a database transaction.
46
- # You can still turn off transactions on a per-scenario basis, simply tagging
46
+ # You can still turn off transactions on a per-scenario basis, simply tagging
47
47
  # a feature or scenario with the @no-txn tag. If you are using Capybara,
48
48
  # tagging with @culerity or @javascript will also turn transactions off.
49
49
  #
50
50
  # If you set this to false, transactions will be off for all scenarios,
51
51
  # regardless of whether you use @no-txn or not.
52
52
  #
53
- # Beware that turning transactions off will leave data in your database
54
- # after each scenario, which can lead to hard-to-debug failures in
53
+ # Beware that turning transactions off will leave data in your database
54
+ # after each scenario, which can lead to hard-to-debug failures in
55
55
  # subsequent scenarios. If you do this, we recommend you create a Before
56
56
  # block that will explicitly put your database in a known state.
57
57
  Cucumber::Rails::World.use_transactional_fixtures = true
@@ -9,7 +9,7 @@ Scenario: Lazy loading of a component into a tab when the latter gets open
9
9
  When I follow "Panel Two"
10
10
  Then I should see "Original HTML"
11
11
  When I press "Update html"
12
- Then I should see "Update for Panel Two"
12
+ Then I should see "Update for Panel Two"
13
13
 
14
14
 
15
15
 
@@ -15,24 +15,24 @@ Ext.netzke.ComboBox = Ext.extend(Ext.form.ComboBox, {
15
15
  valueField : 'id',
16
16
  triggerAction : 'all',
17
17
  typeAhead : true,
18
-
18
+
19
19
  initComponent : function(){
20
20
  var row = Ext.data.Record.create([{name:'id'}]);
21
21
  var store = new Ext.data.Store({
22
22
  proxy : new Ext.data.HttpProxy({url: Ext.getCmp(this.parentId).endpointUrl("get_combobox_options"), jsonData:{column:this.name}}),
23
23
  reader : new Ext.data.ArrayReader({root:'data', id:0}, row)
24
24
  });
25
-
25
+
26
26
  Ext.apply(this, {
27
27
  store : store
28
28
  });
29
-
29
+
30
30
  Ext.netzke.ComboBox.superclass.initComponent.apply(this, arguments);
31
-
31
+
32
32
  this.on('blur', function(cb){
33
33
  cb.setValue(cb.getRawValue());
34
34
  });
35
-
35
+
36
36
  this.on('specialkey', function(cb, event){
37
37
  if (event.getKey() == 9 || event.getKey() == 13) {cb.setValue(cb.getRawValue());}
38
38
  });
@@ -40,11 +40,11 @@ Ext.netzke.ComboBox = Ext.extend(Ext.form.ComboBox, {
40
40
  var parent = Ext.getCmp(this.parentId);
41
41
  // Is parent a grid?
42
42
  if (parent.getSelectionModel) {
43
- this.on('beforequery',function(qe) {
44
- delete qe.combo.lastQuery;
45
- },this);
43
+ this.on('beforequery',function(qe) {
44
+ delete qe.combo.lastQuery;
45
+ },this);
46
46
  }
47
-
47
+
48
48
  // A not-so-clean approach to submit the current record id
49
49
  store.on('beforeload',function(store, options){
50
50
  if (parent.getSelectionModel) {
@@ -131,11 +131,11 @@ Ext.netzke.JsonField = Ext.extend(Ext.form.TextField, {
131
131
  return "Invalid JSON"
132
132
  }
133
133
  }
134
-
134
+
135
135
  ,setValue: function(value) {
136
136
  this.setRawValue(Ext.encode(value));
137
137
  }
138
-
138
+
139
139
  });
140
140
 
141
141
  Ext.reg('jsonfield', Ext.netzke.JsonField);
@@ -155,7 +155,7 @@ Ext.reg('jsonfield', Ext.netzke.JsonField);
155
155
  * the Open Source LGPL 3.0 license. Commercial use is permitted to the extent
156
156
  * that the code/component(s) do NOT become part of another Open Source or Commercially
157
157
  * licensed development library or toolkit without explicit permission.
158
- *
158
+ *
159
159
  * <p>License details: <a href="http://www.gnu.org/licenses/lgpl.html"
160
160
  * target="_blank">http://www.gnu.org/licenses/lgpl.html</a></p>
161
161
  *
@@ -369,7 +369,7 @@ Ext.ux.form.DateTime = Ext.extend(Ext.form.Field, {
369
369
  // {{{
370
370
  /**
371
371
  * @private
372
- * called from Component::destroy.
372
+ * called from Component::destroy.
373
373
  * Destroys all elements and removes all listeners we've created.
374
374
  */
375
375
  ,beforeDestroy:function() {
@@ -463,14 +463,14 @@ Ext.ux.form.DateTime = Ext.extend(Ext.form.Field, {
463
463
  // {{{
464
464
  /**
465
465
  * Returns true if this component is visible
466
- * @return {boolean}
466
+ * @return {boolean}
467
467
  */
468
468
  ,isVisible : function(){
469
469
  return this.df.rendered && this.df.getActionEl().isVisible();
470
470
  } // eo function isVisible
471
471
  // }}}
472
472
  // {{{
473
- /**
473
+ /**
474
474
  * @private Handles blur event
475
475
  */
476
476
  ,onBlur:function(f) {
@@ -560,7 +560,7 @@ Ext.ux.form.DateTime = Ext.extend(Ext.form.Field, {
560
560
  } // eo function setDate
561
561
  // }}}
562
562
  // {{{
563
- /**
563
+ /**
564
564
  * @private Sets the value of TimeField
565
565
  */
566
566
  ,setTime:function(date) {
@@ -868,7 +868,7 @@ Ext.override(Ext.Panel, {
868
868
  Ext.ns('Ext.ux.form');
869
869
  Ext.ux.form.TriCheckbox = Ext.extend(Ext.form.Checkbox, {
870
870
  checked: null,
871
- valueList: [null, false, true],
871
+ valueList: [null, false, true],
872
872
  stateClassList: ['x-checkbox-undef', null, 'x-checkbox-checked'],
873
873
  overClass: 'x-form-check-over',
874
874
  clickClass: 'x-form-check-down',
@@ -893,33 +893,33 @@ Ext.ux.form.TriCheckbox = Ext.extend(Ext.form.Checkbox, {
893
893
  },
894
894
  onRender : function(ct, position){
895
895
  Ext.form.Checkbox.superclass.onRender.call(this, ct, position);
896
-
896
+
897
897
  this.innerWrap = this.el.wrap({tag: 'span', cls: 'x-form-check-innerwrap'});
898
898
  this.wrap = this.innerWrap.wrap({cls: 'x-form-check-wrap'});
899
-
899
+
900
900
  this.currCls = this.getCls(this.value);
901
901
  this.wrap.addClass(this.currCls);
902
902
  if(this.clickClass && !this.disabled && !this.readOnly)
903
903
  this.innerWrap.addClassOnClick(this.clickClass);
904
904
  if(this.overClass && !this.disabled && !this.readOnly)
905
905
  this.innerWrap.addClassOnOver(this.overClass);
906
-
906
+
907
907
  this.imageEl = this.innerWrap.createChild({
908
908
  tag: 'img',
909
909
  src: Ext.BLANK_IMAGE_URL,
910
910
  cls: 'x-form-tscheckbox'
911
911
  }, this.el);
912
912
  if(this.fieldClass) this.imageEl.addClass(this.fieldClass);
913
-
913
+
914
914
  if(this.boxLabel){
915
915
  this.innerWrap.createChild({
916
- tag: 'label',
917
- htmlFor: this.el.id,
918
- cls: 'x-form-cb-label',
916
+ tag: 'label',
917
+ htmlFor: this.el.id,
918
+ cls: 'x-form-cb-label',
919
919
  html: this.boxLabel
920
920
  });
921
921
  }
922
-
922
+
923
923
  // Need to repaint for IE, otherwise positioning is broken
924
924
  if(Ext.isIE){
925
925
  this.wrap.repaint();
@@ -960,7 +960,7 @@ Ext.ux.form.TriCheckbox = Ext.extend(Ext.form.Checkbox, {
960
960
  return this;
961
961
  },
962
962
  normalizeValue: function(v) {
963
- return (v === null || v === undefined) && this.triState ? null :
963
+ return (v === null || v === undefined) && this.triState ? null :
964
964
  (v === true || (['true', 'yes', 'on', '1']).indexOf(String(v).toLowerCase()) != -1);
965
965
  },
966
966
  getCls: function(v) {
@@ -970,9 +970,9 @@ Ext.ux.form.TriCheckbox = Ext.extend(Ext.form.Checkbox, {
970
970
  updateView: function() {
971
971
  var cls = this.getCls(this.value);
972
972
  if (!this.wrap || cls === undefined) return;
973
-
973
+
974
974
  this.wrap.replaceClass(this.currCls, cls);
975
975
  this.currCls = cls;
976
976
  }
977
977
  });
978
- Ext.reg('tricheckbox', Ext.ux.form.TriCheckbox);
978
+ Ext.reg('tricheckbox', Ext.ux.form.TriCheckbox);
@@ -12,7 +12,7 @@ require 'netzke/basepack'
12
12
 
13
13
  module Netzke
14
14
  autoload :Ext, 'ext'
15
-
15
+
16
16
  module Basepack
17
17
  class Engine < Rails::Engine
18
18
  config.after_initialize do
@@ -20,7 +20,7 @@ module Netzke
20
20
  end
21
21
  end
22
22
  end
23
-
23
+
24
24
  end
25
25
 
26
26
  Netzke::Basepack.init
@@ -39,13 +39,13 @@ Netzke::Basepack.init
39
39
  # ActiveSupport::Dependencies.autoload_once_paths.delete(path)
40
40
  # end
41
41
 
42
- # Include javascript & styles required by all basepack components.
42
+ # Include javascript & styles required by all basepack components.
43
43
  # These files will get loaded at the initial load of the framework (along with Ext and Netzke-core).
44
44
 
45
45
 
46
- # FIXME: The following stylesheet inclusion doesn't *really* belong here, being component-specific,
46
+ # FIXME: The following stylesheet inclusion doesn't *really* belong here, being component-specific,
47
47
  # but I don't see any other solution for now. The problem is that these stylesheets come straight from
48
- # Ext JS, having *relative* URLs to the images, which doesn't allow us to include them all together as those stylesheets
48
+ # Ext JS, having *relative* URLs to the images, which doesn't allow us to include them all together as those stylesheets
49
49
  # from Netzke.
50
50
 
51
51
  # Used by FormPanel (file upload field)
@@ -4,7 +4,7 @@
4
4
  # require 'netzke/active_record/data_accessor'
5
5
 
6
6
  module Netzke::ActiveRecord
7
-
7
+
8
8
  end
9
9
 
10
10
  # Extend ActiveRecord