lolita 4.0.5 → 4.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/lolita/PIE-custom.htc +87 -87
  3. data/app/assets/stylesheets/lolita/PIE.htc +81 -81
  4. data/app/assets/stylesheets/lolita/default.css.erb +170 -170
  5. data/app/assets/stylesheets/lolita/jquery-ui-1.8.16.lolita.css.erb +567 -567
  6. data/app/helpers/components/lolita/configuration/list_component.rb +10 -10
  7. data/app/views/components/lolita/configuration/column/header/_first.html.haml +1 -1
  8. data/app/views/components/lolita/configuration/columns/header/_display.html.haml +5 -5
  9. data/app/views/components/lolita/configuration/field/array/checkbox/_display.html.haml +7 -7
  10. data/app/views/components/lolita/configuration/search/_display.html.haml +2 -2
  11. data/app/views/kaminari/lolita/_first_page.html.erb +11 -11
  12. data/app/views/kaminari/lolita/_gap.html.erb +8 -8
  13. data/app/views/kaminari/lolita/_last_page.html.erb +11 -11
  14. data/app/views/kaminari/lolita/_next_page.html.erb +11 -11
  15. data/app/views/kaminari/lolita/_page.html.erb +12 -12
  16. data/app/views/kaminari/lolita/_paginator.html.erb +23 -23
  17. data/app/views/kaminari/lolita/_prev_page.html.erb +11 -11
  18. data/app/views/lolita/info/index.html.erb +232 -232
  19. data/author +1 -1
  20. data/lib/lolita/adapter/field_helper.rb +18 -18
  21. data/lib/lolita/configuration/field/big_decimal.rb +12 -12
  22. data/lib/lolita/configuration/field/boolean.rb +12 -12
  23. data/lib/lolita/configuration/field/date.rb +12 -12
  24. data/lib/lolita/configuration/field/hidden.rb +12 -12
  25. data/lib/lolita/configuration/field/integer.rb +11 -11
  26. data/lib/lolita/configuration/field/string.rb +16 -16
  27. data/lib/lolita/configuration/field/time.rb +13 -13
  28. data/lib/lolita/configuration/field_set.rb +25 -25
  29. data/lib/lolita/configuration/nested_form.rb +104 -104
  30. data/lib/lolita/dbi/base.rb +56 -56
  31. data/lib/lolita/hooks/named_hook.rb +125 -125
  32. data/lib/lolita/lazy_loader.rb +54 -54
  33. data/lib/lolita/mapping.rb +2 -2
  34. data/lib/lolita/navigation/tree.rb +132 -132
  35. data/lib/lolita/ruby_ext/accessors.rb +26 -26
  36. data/lib/lolita/search/simple.rb +75 -75
  37. data/lib/lolita/support/formatter.rb +62 -62
  38. data/lib/lolita/support/formatter/rails.rb +56 -56
  39. data/lib/lolita/test/matchers.rb +77 -77
  40. data/lib/lolita/version.rb +1 -1
  41. data/spec/builder_spec.rb +120 -120
  42. data/spec/mapping_spec.rb +9 -0
  43. data/spec/rails_app/app/controllers/application_controller.rb +3 -3
  44. data/spec/rails_app/app/controllers/dashboard_controller.rb +5 -0
  45. data/spec/rails_app/app/controllers/data_import_controller.rb +5 -0
  46. data/spec/rails_app/app/helpers/application_helper.rb +3 -3
  47. data/spec/rails_app/app/views/components/lolita/configuration/list/_body_cell.html.erb +1 -1
  48. data/spec/rails_app/config/environment.rb +5 -5
  49. data/spec/rails_app/config/environments/production.rb +37 -37
  50. data/spec/rails_app/config/initializers/backtrace_silencers.rb +7 -7
  51. data/spec/rails_app/config/initializers/inflections.rb +2 -2
  52. data/spec/rails_app/config/initializers/secret_token.rb +1 -1
  53. data/spec/rails_app/config/routes.rb +2 -0
  54. data/spec/rails_app/lib/lolita/configuration/field/my_custom_collection.rb +13 -13
  55. data/spec/rails_app/public/javascripts/jquery-1.5.1.min.js +15 -15
  56. data/spec/rails_app/public/javascripts/lolita/main.js +6 -6
  57. data/spec/rails_app/public/javascripts/modernizr-1.7.min.js +1 -1
  58. data/spec/rails_app/public/javascripts/rails.js +137 -137
  59. data/spec/rails_app/public/javascripts/tinymce/langs/en.js +221 -221
  60. data/spec/rails_app/public/javascripts/tinymce/license.txt +504 -504
  61. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/about.htm +52 -52
  62. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/anchor.htm +26 -26
  63. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/charmap.htm +51 -51
  64. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/color_picker.htm +74 -74
  65. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/editor_template_src.js +1328 -1328
  66. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/image.htm +80 -80
  67. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/about.js +73 -73
  68. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/anchor.js +42 -42
  69. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/charmap.js +354 -354
  70. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/color_picker.js +329 -329
  71. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/image.js +247 -247
  72. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/link.js +153 -153
  73. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/source_editor.js +56 -56
  74. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/langs/en.js +68 -68
  75. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/langs/en_dlg.js +53 -53
  76. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/link.htm +57 -57
  77. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/shortcuts.htm +47 -47
  78. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit/content.css +66 -66
  79. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit/dialog.css +117 -117
  80. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit/ui.css +988 -988
  81. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/source_editor.htm +25 -25
  82. data/spec/rails_app/public/javascripts/tinymce/tiny_mce_popup.js +4 -4
  83. data/spec/rails_app/public/stylesheets/lolita/default.css +169 -169
  84. data/spec/rails_app/public/stylesheets/lolita/style.css +214 -214
  85. data/vendor/assets/javascripts/jquery-numeric.js +279 -279
  86. data/vendor/assets/javascripts/modernizr_1_7_min.js +1 -1
  87. data/vendor/assets/stylesheets/jquery-ui-1.8.16.custom.css +567 -567
  88. metadata +7 -4
@@ -17,7 +17,7 @@ module Lolita
17
17
  # what controller to use, what model is related with it and so on. This is used to generate urls and paths.
18
18
  # Also eahc request containers information with mapping related to it.
19
19
  class Mapping
20
- attr_reader :class_name,:path,:singular,:plural,:path_prefix,:module,:as,:controllers
20
+ attr_reader :class_name,:path,:singular,:plural,:path_prefix,:module,:as,:controllers,:ref
21
21
  attr_reader :visible, :only, :append_to, :title
22
22
  alias :name :singular
23
23
 
@@ -74,7 +74,7 @@ module Lolita
74
74
  end
75
75
  tree = parent_branch.children
76
76
  end
77
- unless tree.branches.detect{|b| b.object.is_a?(Lolita::Mapping) && b.object.to==self.to}
77
+ unless tree.branches.detect{|b| b.object.is_a?(Lolita::Mapping) && b.object.ref == self.ref}
78
78
  tree.append(self, :title => @title)
79
79
  end
80
80
  end
@@ -1,133 +1,133 @@
1
- module Lolita
2
- module Navigation
3
- class Tree
4
- include Enumerable
5
- include Lolita::Hooks
6
-
7
- class<<self
8
- def remember(tree)
9
- @@trees||={}
10
- @@trees[tree.name.to_sym]=tree
11
- end
12
-
13
- def [](name)
14
- @@trees||={}
15
- @@trees[name]
16
- end
17
- end
18
-
19
- add_hooks :before_branch_added, :after_branch_added
20
-
21
- attr_reader :name,:root,:default_position,:branches,:parent
22
-
23
- def initialize(name)
24
- @name=name
25
- @default_possition=:append
26
- @branches=[]
27
- end
28
-
29
- def each
30
- @branches.each do |branch|
31
- yield branch
32
- if branch.children.any?
33
- branch.children.each do |child|
34
- yield child
35
- end
36
- end
37
- end
38
- end
39
-
40
- def root?
41
- !parent
42
- end
43
-
44
- def visible?(view)
45
- self.branches.inject([]){|result,branch|
46
- if branch.visible?(view)
47
- result << true
48
- else
49
- result
50
- end
51
- }.any?
52
- end
53
-
54
- def populate_urls_in_branches(view)
55
- self.each do |branch|
56
- branch.populate_url(view)
57
- end
58
- end
59
-
60
- def method_missing method_name, *args
61
- @branches.send(method_name.to_sym,*args)
62
- end
63
-
64
-
65
- def append(*branch)
66
- adding_branch(*branch) do |fixed_branch|
67
- @branches<<fixed_branch
68
- end
69
- end
70
-
71
- def prepend(*branch)
72
- adding_branch(*branch) do |fixed_branch|
73
- @branches.unshift(fixed_branch)
74
- end
75
- end
76
-
77
- def after(given_branch,*other_branch)
78
- index=get_branch_index(given_branch)
79
-
80
- adding_branch(*other_branch) do |fixed_branch|
81
- put_in_branches(fixed_branch,index)
82
- end
83
- end
84
-
85
- def before(given_branch,*other_branch)
86
- index=get_branch_index(given_branch)
87
-
88
- adding_branch(*other_branch) do |fixed_branch|
89
- put_in_branches(fixed_branch,index-1)
90
- end
91
- end
92
-
93
- def get_branch_index(given_branch)
94
- @branches.each_with_index{|branch,index|
95
- return index if given_branch==branch
96
- }
97
- raise ArgumentError, "Branch #{given_branch.inspect} not exists in #{self.inspect}"
98
- end
99
-
100
- def set_parent(new_parent)
101
- @parent=new_parent
102
- end
103
-
104
- private
105
-
106
- def adding_branch *branch
107
- self.run(:before_branch_added,*branch)
108
- fixed_branch=fix_branch(*branch)
109
- yield fixed_branch
110
- @last_branch=fixed_branch
111
- self.run(:after_branch_added,fixed_branch)
112
- fixed_branch
113
- end
114
-
115
- def fix_branch(*branch)
116
- unless branch[0].is_a?(Lolita::Navigation::Branch)
117
- options=branch.extract_options!
118
- Lolita::Navigation::Branch.get_or_create(*branch,options.merge(:tree=>self))
119
- else
120
- branch[0].tree=self
121
- branch[0]
122
- end
123
- end
124
-
125
- def put_in_branches branch,index
126
- before_part=@branches.slice(0,index+1) || []
127
- after_part=@branches.slice(index+1,@branches.size-index) || []
128
- @branches=before_part+[branch]+after_part
129
- end
130
-
131
- end
132
- end
1
+ module Lolita
2
+ module Navigation
3
+ class Tree
4
+ include Enumerable
5
+ include Lolita::Hooks
6
+
7
+ class<<self
8
+ def remember(tree)
9
+ @@trees||={}
10
+ @@trees[tree.name.to_sym]=tree
11
+ end
12
+
13
+ def [](name)
14
+ @@trees||={}
15
+ @@trees[name]
16
+ end
17
+ end
18
+
19
+ add_hooks :before_branch_added, :after_branch_added
20
+
21
+ attr_reader :name,:root,:default_position,:branches,:parent
22
+
23
+ def initialize(name)
24
+ @name=name
25
+ @default_possition=:append
26
+ @branches=[]
27
+ end
28
+
29
+ def each
30
+ @branches.each do |branch|
31
+ yield branch
32
+ if branch.children.any?
33
+ branch.children.each do |child|
34
+ yield child
35
+ end
36
+ end
37
+ end
38
+ end
39
+
40
+ def root?
41
+ !parent
42
+ end
43
+
44
+ def visible?(view)
45
+ self.branches.inject([]){|result,branch|
46
+ if branch.visible?(view)
47
+ result << true
48
+ else
49
+ result
50
+ end
51
+ }.any?
52
+ end
53
+
54
+ def populate_urls_in_branches(view)
55
+ self.each do |branch|
56
+ branch.populate_url(view)
57
+ end
58
+ end
59
+
60
+ def method_missing method_name, *args
61
+ @branches.send(method_name.to_sym,*args)
62
+ end
63
+
64
+
65
+ def append(*branch)
66
+ adding_branch(*branch) do |fixed_branch|
67
+ @branches<<fixed_branch
68
+ end
69
+ end
70
+
71
+ def prepend(*branch)
72
+ adding_branch(*branch) do |fixed_branch|
73
+ @branches.unshift(fixed_branch)
74
+ end
75
+ end
76
+
77
+ def after(given_branch,*other_branch)
78
+ index=get_branch_index(given_branch)
79
+
80
+ adding_branch(*other_branch) do |fixed_branch|
81
+ put_in_branches(fixed_branch,index)
82
+ end
83
+ end
84
+
85
+ def before(given_branch,*other_branch)
86
+ index=get_branch_index(given_branch)
87
+
88
+ adding_branch(*other_branch) do |fixed_branch|
89
+ put_in_branches(fixed_branch,index-1)
90
+ end
91
+ end
92
+
93
+ def get_branch_index(given_branch)
94
+ @branches.each_with_index{|branch,index|
95
+ return index if given_branch==branch
96
+ }
97
+ raise ArgumentError, "Branch #{given_branch.inspect} not exists in #{self.inspect}"
98
+ end
99
+
100
+ def set_parent(new_parent)
101
+ @parent=new_parent
102
+ end
103
+
104
+ private
105
+
106
+ def adding_branch *branch
107
+ self.run(:before_branch_added,*branch)
108
+ fixed_branch=fix_branch(*branch)
109
+ yield fixed_branch
110
+ @last_branch=fixed_branch
111
+ self.run(:after_branch_added,fixed_branch)
112
+ fixed_branch
113
+ end
114
+
115
+ def fix_branch(*branch)
116
+ unless branch[0].is_a?(Lolita::Navigation::Branch)
117
+ options=branch.extract_options!
118
+ Lolita::Navigation::Branch.get_or_create(*branch,options.merge(:tree=>self))
119
+ else
120
+ branch[0].tree=self
121
+ branch[0]
122
+ end
123
+ end
124
+
125
+ def put_in_branches branch,index
126
+ before_part=@branches.slice(0,index+1) || []
127
+ after_part=@branches.slice(index+1,@branches.size-index) || []
128
+ @branches=before_part+[branch]+after_part
129
+ end
130
+
131
+ end
132
+ end
133
133
  end
@@ -1,27 +1,27 @@
1
- class Object
2
- # Works similar as <code>attr_accessor</code> only reader method is changed
3
- # to allow to set value (used for Lolita blocks in different classes).
4
- # ====Example
5
- # class Klass
6
- # lolita_accessor :my_method
7
- # end
8
- # k=Klass.new
9
- # k.my_method("it's me")
10
- # puts k.my_method #=> it's me
11
- def lolita_accessor *methods
12
- if [Class,Module].include?(self.class)
13
- methods.each do |method|
14
- class_eval <<-ACCESSORS,__FILE__,__LINE__+1
15
- def #{method}(value=nil)
16
- @#{method}=value if value
17
- @#{method}
18
- end
19
-
20
- def #{method}=(value)
21
- @#{method}=value
22
- end
23
- ACCESSORS
24
- end
25
- end
26
- end
1
+ class Object
2
+ # Works similar as <code>attr_accessor</code> only reader method is changed
3
+ # to allow to set value (used for Lolita blocks in different classes).
4
+ # ====Example
5
+ # class Klass
6
+ # lolita_accessor :my_method
7
+ # end
8
+ # k=Klass.new
9
+ # k.my_method("it's me")
10
+ # puts k.my_method #=> it's me
11
+ def lolita_accessor *methods
12
+ if [Class,Module].include?(self.class)
13
+ methods.each do |method|
14
+ class_eval <<-ACCESSORS,__FILE__,__LINE__+1
15
+ def #{method}(value=nil)
16
+ @#{method}=value if value
17
+ @#{method}
18
+ end
19
+
20
+ def #{method}=(value)
21
+ @#{method}=value
22
+ end
23
+ ACCESSORS
24
+ end
25
+ end
26
+ end
27
27
  end
@@ -1,75 +1,75 @@
1
- module Lolita
2
- module Search
3
-
4
- # Default search class for Lolita::Search. Lolita::Configuration::Search uses this by default.
5
- # It accepts method name as constructor argument, when none is given it call Lolita::DBI#search.
6
- class Simple
7
-
8
- # Method in model used to run a search.
9
- attr_accessor :search_method
10
- attr_reader :dbi
11
-
12
- # Accepts search method as optional argument
13
- def initialize(dbi, *args)
14
- @dbi = dbi
15
- @options = args.extract_options!
16
- @search_method = args[0]
17
- end
18
-
19
- # Require dbi (Lolita::DBI instance), query (String) and request and dbi as optional argument.
20
- # Also you can pass options.
21
- # ====Example
22
- # search.run("query",:fields => [:name])
23
- # # this will search only in :name field
24
- # search.run("query",nil, Lolita::DBI::Base.create(Category))
25
- # # this will use Category dbi for search
26
- # When there is search method defined, it uses that otherwise run default search.
27
- def run(query,*args)
28
- with_query(query,*args) do
29
- if self.search_method
30
- run_custom_search
31
- else
32
- run_default_search
33
- end
34
- end
35
- end
36
-
37
- private
38
-
39
- def with_query(query,*args)
40
- begin
41
- options = args.extract_options!
42
- @old_dbi = self.dbi
43
- @old_options = @options
44
- @options = options if options.any?
45
- @dbi = args[1] if args[1]
46
- @query = query
47
- @request = args[0]
48
- yield
49
- ensure
50
- @dbi = @old_dbi
51
- @options = @old_options
52
- @query,@request = nil,nil
53
- end
54
- end
55
-
56
- def run_custom_search
57
- search_method_arity = @dbi.klass.method(self.search_method).arity
58
- args = [@query,@request,@options]
59
- if search_method_arity < 0
60
- @dbi.klass.send(self.search_method.to_sym,@query,@request,@options)
61
- elsif search_method_arity == 0
62
- raise ArgumentError, "#{@dbi.klass.to_s} method #{search_method} must accept at least 1 argument."
63
- else
64
- arity_limit = search_method_arity > args.size ? args.size : search_method_arity
65
- @dbi.klass.send(self.search_method.to_sym,*(args.slice(0..(arity_limit-1))))
66
- end
67
- end
68
-
69
- def run_default_search
70
- @dbi.search(@query,@options || {})
71
- end
72
- end
73
-
74
- end
75
- end
1
+ module Lolita
2
+ module Search
3
+
4
+ # Default search class for Lolita::Search. Lolita::Configuration::Search uses this by default.
5
+ # It accepts method name as constructor argument, when none is given it call Lolita::DBI#search.
6
+ class Simple
7
+
8
+ # Method in model used to run a search.
9
+ attr_accessor :search_method
10
+ attr_reader :dbi
11
+
12
+ # Accepts search method as optional argument
13
+ def initialize(dbi, *args)
14
+ @dbi = dbi
15
+ @options = args.extract_options!
16
+ @search_method = args[0]
17
+ end
18
+
19
+ # Require dbi (Lolita::DBI instance), query (String) and request and dbi as optional argument.
20
+ # Also you can pass options.
21
+ # ====Example
22
+ # search.run("query",:fields => [:name])
23
+ # # this will search only in :name field
24
+ # search.run("query",nil, Lolita::DBI::Base.create(Category))
25
+ # # this will use Category dbi for search
26
+ # When there is search method defined, it uses that otherwise run default search.
27
+ def run(query,*args)
28
+ with_query(query,*args) do
29
+ if self.search_method
30
+ run_custom_search
31
+ else
32
+ run_default_search
33
+ end
34
+ end
35
+ end
36
+
37
+ private
38
+
39
+ def with_query(query,*args)
40
+ begin
41
+ options = args.extract_options!
42
+ @old_dbi = self.dbi
43
+ @old_options = @options
44
+ @options = options if options.any?
45
+ @dbi = args[1] if args[1]
46
+ @query = query
47
+ @request = args[0]
48
+ yield
49
+ ensure
50
+ @dbi = @old_dbi
51
+ @options = @old_options
52
+ @query,@request = nil,nil
53
+ end
54
+ end
55
+
56
+ def run_custom_search
57
+ search_method_arity = @dbi.klass.method(self.search_method).arity
58
+ args = [@query,@request,@options]
59
+ if search_method_arity < 0
60
+ @dbi.klass.send(self.search_method.to_sym,@query,@request,@options)
61
+ elsif search_method_arity == 0
62
+ raise ArgumentError, "#{@dbi.klass.to_s} method #{search_method} must accept at least 1 argument."
63
+ else
64
+ arity_limit = search_method_arity > args.size ? args.size : search_method_arity
65
+ @dbi.klass.send(self.search_method.to_sym,*(args.slice(0..(arity_limit-1))))
66
+ end
67
+ end
68
+
69
+ def run_default_search
70
+ @dbi.search(@query,@options || {})
71
+ end
72
+ end
73
+
74
+ end
75
+ end