netzke-basepack 0.6.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
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