skozlov-netzke-basepack 0.1.1.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. data/.autotest +1 -0
  2. data/.gitignore +5 -0
  3. data/LICENSE +2 -19
  4. data/README.rdoc +87 -0
  5. data/Rakefile +28 -12
  6. data/TODO.rdoc +7 -0
  7. data/VERSION +1 -0
  8. data/autotest/discover.rb +3 -0
  9. data/init.rb +0 -1
  10. data/javascripts/basepack.js +839 -49
  11. data/lib/app/models/netzke_auto_column.rb +56 -0
  12. data/lib/netzke/accordion_panel.rb +113 -0
  13. data/lib/netzke/active_record/basepack.rb +104 -0
  14. data/lib/netzke/active_record/data_accessor.rb +21 -0
  15. data/lib/netzke/basic_app.rb +325 -0
  16. data/lib/netzke/border_layout_panel.rb +128 -0
  17. data/lib/netzke/configuration_panel.rb +24 -0
  18. data/lib/netzke/data_accessor.rb +71 -0
  19. data/lib/netzke/ext.rb +6 -0
  20. data/lib/netzke/field_model.rb +131 -0
  21. data/lib/netzke/fields_configurator.rb +95 -0
  22. data/lib/netzke/form_panel.rb +214 -0
  23. data/lib/netzke/form_panel_api.rb +74 -0
  24. data/lib/netzke/form_panel_extras/javascripts/xcheckbox.js +82 -0
  25. data/lib/netzke/form_panel_js.rb +129 -0
  26. data/lib/netzke/grid_panel.rb +442 -0
  27. data/lib/netzke/grid_panel_api.rb +352 -0
  28. data/lib/netzke/grid_panel_extras/javascripts/check-column.js +33 -0
  29. data/{javascripts → lib/netzke/grid_panel_extras/javascripts}/filters.js +0 -0
  30. data/lib/netzke/grid_panel_extras/javascripts/rows-dd.js +280 -0
  31. data/lib/netzke/grid_panel_js.rb +721 -0
  32. data/lib/netzke/panel.rb +13 -0
  33. data/lib/netzke/plugins/configuration_tool.rb +121 -0
  34. data/lib/netzke/property_editor.rb +105 -0
  35. data/lib/netzke/property_editor_extras/helper_model.rb +126 -0
  36. data/lib/netzke/search_panel.rb +62 -0
  37. data/lib/netzke/tab_panel.rb +160 -0
  38. data/lib/netzke/table_editor.rb +118 -0
  39. data/lib/netzke/tree_panel.rb +73 -0
  40. data/lib/netzke/wrapper.rb +42 -0
  41. data/lib/netzke-basepack.rb +9 -15
  42. data/netzke-basepack.gemspec +147 -20
  43. data/stylesheets/basepack.css +26 -0
  44. data/test/app_root/app/models/book.rb +1 -1
  45. data/test/app_root/config/environment.rb +1 -0
  46. data/test/app_root/db/migrate/20081222033440_create_genres.rb +1 -0
  47. data/test/app_root/db/migrate/20081222035855_create_netzke_preferences.rb +1 -1
  48. data/test/app_root/db/migrate/20090102223630_create_netzke_layouts.rb +14 -0
  49. data/test/app_root/vendor/plugins/acts_as_list/README +23 -0
  50. data/test/app_root/vendor/plugins/acts_as_list/init.rb +3 -0
  51. data/test/app_root/vendor/plugins/acts_as_list/lib/active_record/acts/list.rb +256 -0
  52. data/test/test_helper.rb +1 -2
  53. data/test/unit/accordion_panel_test.rb +20 -0
  54. data/test/unit/active_record_basepack_test.rb +54 -0
  55. data/test/unit/grid_panel_test.rb +43 -0
  56. data/test/unit/helper_model_test.rb +30 -0
  57. data/test/unit/netzke_basepack_test.rb +4 -0
  58. data/test/unit/tab_panel_test.rb +21 -0
  59. metadata +96 -72
  60. data/CHANGELOG +0 -14
  61. data/Manifest +0 -65
  62. data/README.mdown +0 -18
  63. data/generators/netzke_basepack/USAGE +0 -8
  64. data/generators/netzke_basepack/netzke_basepack_generator.rb +0 -8
  65. data/generators/netzke_basepack/netzke_grid_generator.rb +0 -7
  66. data/generators/netzke_basepack/templates/create_netzke_grid_columns.rb +0 -21
  67. data/lib/app/models/netzke_grid_column.rb +0 -23
  68. data/lib/netzke/accordion.rb +0 -11
  69. data/lib/netzke/ar_ext.rb +0 -163
  70. data/lib/netzke/column.rb +0 -43
  71. data/lib/netzke/container.rb +0 -81
  72. data/lib/netzke/grid.rb +0 -120
  73. data/lib/netzke/grid_interface.rb +0 -156
  74. data/lib/netzke/grid_js_builder.rb +0 -276
  75. data/lib/netzke/preference_grid.rb +0 -43
  76. data/lib/netzke/properties_tool.rb +0 -66
  77. data/lib/netzke/property_grid.rb +0 -60
  78. data/test/ar_ext_test.rb +0 -39
  79. data/test/column_test.rb +0 -27
  80. data/test/grid_test.rb +0 -43
  81. data/test/netzke_basepack_test.rb +0 -8
@@ -1,66 +0,0 @@
1
- module Netzke
2
- #
3
- # Include this module into any widget if you want a "Properties" tool button in the top toolbar which will triggger a modal window, which will load the Accordion widgets, which in its turn will contain all the aggregatees specified in "property_widgets" method (*must* be defined)
4
- #
5
- module PropertiesTool
6
- def self.included(base)
7
- base.class_eval do
8
- [:js_extend_properties, :tools, :initial_aggregatees].each{ |m| alias_method_chain m, :properties }
9
- end
10
-
11
- # if you include PropertiesTool, you must define property_widgets method which will returns an array of arrgeratees that will be included in the property window (each in its own tab or accordion pane)
12
- raise "property_widgets method undefined" unless base.instance_methods.include?("property_widgets")
13
- end
14
-
15
- def initial_aggregatees_with_properties
16
- res = initial_aggregatees_without_properties
17
- # Add the accordion as aggregatee, with in its turn aggregates widgets from the property_widgets method
18
- res.merge!(:properties => {:widget_class_name => 'Accordion', :items => property_widgets, :ext_config => {:title => false}, :no_caching => true, :late_aggregation => true}) if config[:ext_config][:properties]
19
- res
20
- end
21
-
22
- def tools_with_properties
23
- tools = tools_without_properties
24
- # Add the toolbutton
25
- tools << {:id => 'gear', :on => {:click => "showConfig"}} if config[:ext_config][:properties]
26
- tools
27
- end
28
-
29
- def js_extend_properties_with_properties
30
- js_extend_properties_without_properties.merge({
31
- :show_config => <<-JS.l
32
- function(){
33
- var w = new Ext.Window({
34
- title:'Config',
35
- layout:'fit',
36
- modal:true,
37
- width:window.innerWidth*.9,
38
- height:window.innerHeight*.9,
39
- closeAction:'destroy',
40
- buttons:[{
41
- text:'Submit',
42
- handler:function(){this.ownerCt.closeRes = 'OK'; this.ownerCt.destroy()}
43
- }]
44
-
45
- });
46
-
47
- w.show(null, function(){
48
- w.loadWidget(this.initialConfig.id+"__properties__get_widget");
49
- }, this);
50
-
51
- w.on('destroy', function(){
52
- if (w.closeRes == 'OK'){
53
- widget = this;
54
- if (widget.ownerCt) {
55
- widget.ownerCt.loadWidget(widget.initialConfig.interface.getWidget);
56
- } else {
57
- this.feedback('Reload current window') // no aggregation
58
- }
59
- }
60
- }, this)
61
- }
62
- JS
63
- })
64
- end
65
- end
66
- end
@@ -1,60 +0,0 @@
1
- module Netzke
2
- #
3
- # Ext.grid.PropertyGrid
4
- #
5
- class PropertyGrid < Base
6
- interface :load_source, :submit_source
7
-
8
- def initialize(*args)
9
- super
10
- @config = {:ext_config => {}}.merge(@config)
11
- end
12
-
13
- def js_base_class
14
- "Ext.grid.PropertyGrid"
15
- end
16
-
17
- def actions
18
- [{
19
- :text => 'Apply', :handler => 'submit'
20
- }]
21
- end
22
-
23
- def js_default_config
24
- super.merge({
25
- :bbar => "config.actions".l
26
- })
27
- end
28
-
29
- def js_extend_properties
30
- {
31
- :submit => <<-JS.l,
32
- function() {
33
- Ext.Ajax.request({
34
- url:this.initialConfig.interface.submitSource,
35
- params:{data:Ext.encode(this.getSource())},
36
- scope:this
37
- })
38
- }
39
- JS
40
- :on_widget_load => <<-JS.l,
41
- function(){
42
- this.loadSource()
43
- }
44
- JS
45
- :load_source => <<-JS.l,
46
- function(){Ext.Ajax.request({
47
- url:this.initialConfig.interface.loadSource,
48
- success:function(r){
49
- var m = Ext.decode(r.responseText);
50
- this.setSource(m.source);
51
- // this.feedback(m.flash);
52
- },
53
- scope:this
54
- })}
55
- JS
56
- }
57
- end
58
-
59
- end
60
- end
data/test/ar_ext_test.rb DELETED
@@ -1,39 +0,0 @@
1
- require 'test_helper'
2
-
3
- require 'netzke/ar_ext'
4
-
5
- class ArExtTest < ActiveSupport::TestCase
6
- fixtures :cities, :countries, :continents
7
-
8
- test "default column config" do
9
- cc = Book.default_column_config(:title)
10
-
11
- assert_equal("Title", cc[:label])
12
- assert_equal(:text_field, cc[:shows_as])
13
-
14
- cc = Book.default_column_config({:name => :amount, :label => 'AMOUNT'})
15
-
16
- assert_equal("AMOUNT", cc[:label])
17
- assert_equal(:number_field, cc[:shows_as])
18
- end
19
-
20
- test "choices for column" do
21
- # TODO: test virtual columns, too
22
- cities = City.choices_for("name")
23
- assert_equal(3, cities.size)
24
- assert(cities.include?('Cordoba') && cities.include?('Buenos Aires'))
25
-
26
- countries = City.choices_for("country__name")
27
- assert_equal(2, countries.size)
28
- assert(countries.include?('Spain') && countries.include?('Argentina'))
29
-
30
- continents = City.choices_for("country__continent__name")
31
- assert_equal(2, continents.size)
32
- assert(continents.include?('Europe') && continents.include?('South America'))
33
-
34
- cities = City.choices_for("name", "Co")
35
- assert_equal(2, cities.size)
36
- assert(cities.include?('Cordoba') && cities.include?('Concordia'))
37
- end
38
- end
39
-
data/test/column_test.rb DELETED
@@ -1,27 +0,0 @@
1
- require 'test_helper'
2
-
3
- require 'netzke/ar_ext'
4
-
5
- ActiveRecord::Base.class_eval do
6
- include Netzke::ActiveRecordExtensions
7
- end
8
-
9
- require 'netzke/column'
10
-
11
- class ColumnTest < ActiveSupport::TestCase
12
- test "default columns" do
13
- stub_widget = Object.new
14
- def stub_widget.config
15
- {:name => 'widget', :data_class_name => 'Book', :columns => [:title, {:name => :amount, :read_only => true}, :recent]}
16
- end
17
-
18
- columns = Netzke::Column.default_columns_for_widget(stub_widget)
19
-
20
- assert_equal(false, columns[0][:read_only])
21
- assert_equal(true, columns[1][:read_only])
22
- assert_equal("Amount", columns[1][:label])
23
- assert_equal("Recent", columns[2][:label])
24
- assert_equal(true, columns[2][:read_only]) # read_only specified in the model itself
25
- # puts "!!! columns: #{columns.inspect}"
26
- end
27
- end
data/test/grid_test.rb DELETED
@@ -1,43 +0,0 @@
1
- require 'test_helper'
2
- require 'netzke-core'
3
-
4
- require 'netzke/properties_tool'
5
- require 'netzke/container'
6
- require 'netzke/accordion'
7
-
8
- require 'netzke/grid_interface'
9
- require 'netzke/grid_js_builder'
10
- require 'netzke/grid'
11
-
12
- require 'netzke/ar_ext'
13
- require 'netzke/column'
14
-
15
- class GridTest < ActiveSupport::TestCase
16
-
17
- test "interface" do
18
- grid = Netzke::Grid.new(:name => 'grid', :data_class_name => 'Book', :layout_manager => false, :columns => [:id, :title, :recent])
19
-
20
- # post
21
- grid.post_data(:created_records => [{:title => 'Lord of the Rings'}].to_json)
22
- assert_equal('Lord of the Rings', Book.first.title)
23
-
24
- grid.post_data(:updated_records => [{:id => Book.first.id, :title => 'Lolita'}].to_json)
25
- assert_equal('Lolita', Book.first.title)
26
-
27
- grid.post_data(:created_records => [{:title => 'Upanishad'}].to_json)
28
-
29
- # get
30
- data = grid.get_data
31
- assert_equal('Lolita', data[:data][0][1]) # title of the first book
32
- assert_equal('Yes', data[:data][1][2]) # "recent" virtual column in the second book
33
-
34
- # delete
35
- res = grid.delete_data(:records => [1,2].to_json)
36
- assert_equal(true, res[:success])
37
- assert_equal(nil, Book.first)
38
-
39
- end
40
-
41
- # TODO: add tests with association columns
42
-
43
- end
@@ -1,8 +0,0 @@
1
- require 'test_helper'
2
-
3
- class NetzkeBasepackTest < ActiveSupport::TestCase
4
- # Replace this with your real tests.
5
- test "the truth" do
6
- assert true
7
- end
8
- end