lolita 3.2.0.rc.6 → 3.2.0.rc.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. data/History.rdoc +8 -3
  2. data/README.md +0 -5
  3. data/VERSION +1 -1
  4. data/app/assets/images/lolita/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  5. data/app/assets/images/lolita/jquery-ui/images/ui-bg_flat_55_fbec88_40x100.png +0 -0
  6. data/app/assets/images/lolita/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  7. data/app/assets/images/lolita/jquery-ui/images/ui-bg_highlight-soft_45_676767_1x100.png +0 -0
  8. data/app/assets/images/lolita/jquery-ui/images/ui-bg_highlight-soft_75_e3e3e3_1x100.png +0 -0
  9. data/app/assets/images/lolita/jquery-ui/images/ui-bg_highlight-soft_85_f3f3f3_1x100.png +0 -0
  10. data/app/assets/images/lolita/jquery-ui/images/ui-bg_inset-hard_100_d7d7d7_1x100.png +0 -0
  11. data/app/assets/images/lolita/jquery-ui/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
  12. data/app/assets/images/lolita/jquery-ui/images/ui-icons_7ac1ed_256x240.png +0 -0
  13. data/app/assets/images/lolita/jquery-ui/images/ui-icons_a1a1a1_256x240.png +0 -0
  14. data/app/assets/images/lolita/jquery-ui/images/ui-icons_cd0a0a_256x240.png +0 -0
  15. data/app/assets/images/lolita/jquery-ui/images/ui-icons_d8e7f3_256x240.png +0 -0
  16. data/app/assets/images/lolita/large-ajax-loader.gif +0 -0
  17. data/app/assets/images/lolita/small-ajax-loader.gif +0 -0
  18. data/app/assets/images/lolita/trash-small.png +0 -0
  19. data/app/assets/javascripts/lolita/main.js +3 -1
  20. data/app/assets/javascripts/lolita/tab.js +46 -35
  21. data/app/assets/stylesheets/lolita/application.css +1 -1
  22. data/app/assets/stylesheets/lolita/jquery-ui-1.8.16.lolita.css.erb +568 -0
  23. data/app/assets/stylesheets/lolita/style.css.erb +10 -0
  24. data/app/controllers/lolita/field_data_controller.rb +13 -9
  25. data/app/controllers/lolita/info_controller.rb +12 -1
  26. data/app/views/components/lolita/configuration/column/_header.html.erb +1 -1
  27. data/app/views/components/lolita/configuration/column/_sort.html.erb +7 -4
  28. data/app/views/components/lolita/configuration/field/_display.html.erb +12 -10
  29. data/app/views/components/lolita/configuration/field/array/_display.html.erb +1 -1
  30. data/app/views/components/lolita/configuration/field/array/autocomplete/_display.html.haml +14 -0
  31. data/app/views/components/lolita/configuration/field/array/autocomplete/_input.html.haml +19 -0
  32. data/app/views/components/lolita/configuration/field/array/{habtm → checkbox}/_display.html.haml +0 -0
  33. data/app/views/components/lolita/configuration/list/_new_resource.html.erb +6 -4
  34. data/app/views/components/lolita/configuration/nested_form/_display.html.erb +8 -6
  35. data/app/views/components/lolita/configuration/tab/_error_msg.html.erb +10 -4
  36. data/app/views/components/lolita/navigation/_tree.html.erb +2 -0
  37. data/app/views/components/lolita/shared/_right_sidebar.html.erb +1 -6
  38. data/app/views/components/lolita/shared/_save_button.html.erb +6 -0
  39. data/config/routes.rb +1 -1
  40. data/lib/lolita.rb +5 -0
  41. data/lib/lolita/adapter/active_record.rb +17 -13
  42. data/lib/lolita/adapter/mongoid.rb +21 -17
  43. data/lib/lolita/configuration/base.rb +15 -2
  44. data/lib/lolita/configuration/column.rb +25 -2
  45. data/lib/lolita/configuration/field.rb +24 -1
  46. data/lib/lolita/configuration/field/array.rb +33 -9
  47. data/lib/lolita/configuration/search.rb +1 -0
  48. data/lib/lolita/controllers/authorization_helpers.rb +1 -1
  49. data/lib/lolita/controllers/internal_helpers.rb +17 -3
  50. data/lib/lolita/hooks.rb +33 -5
  51. data/lib/lolita/lazy_loader.rb +3 -0
  52. data/lib/lolita/mapping.rb +13 -2
  53. data/lib/lolita/navigation/branch.rb +13 -11
  54. data/lib/lolita/rails.rb +1 -0
  55. data/lib/lolita/rails/routes.rb +3 -1
  56. data/lib/lolita/search/simple.rb +1 -2
  57. data/lolita.gemspec +23 -6
  58. data/spec/configuration/field_spec.rb +17 -0
  59. data/vendor/assets/javascripts/application_vendor_lolita.js +1 -0
  60. data/vendor/assets/javascripts/jquery-numeric.js +280 -0
  61. metadata +60 -43
  62. data/app/views/components/lolita/configuration/field/array/habtm_autocomplete/_display.html.haml +0 -11
  63. data/lolita.gemspec.orig +0 -434
  64. data/vendor/assets/javascripts/jquery-ui-1.8.13.min.js +0 -407
@@ -39,8 +39,31 @@ module Lolita
39
39
  @sortable
40
40
  end
41
41
 
42
- def currently_sorting?(params)
43
- @sortable && params[:sc].to_s==self.name.to_s
42
+ def current_sort_state(params)
43
+ @sortable && sort_pairs(params).detect{|pair| pair[0]==self.name.to_s} || []
44
+ end
45
+
46
+ def sort_params params
47
+ if @sortable
48
+ pairs = sort_pairs(params)
49
+ found_pair = false
50
+ pairs.each_with_index{|pair,index|
51
+ if pair[0] == self.name.to_s
52
+ pairs[index][1] = pair[1] == "asc" ? "desc" : "asc"
53
+ found_pair = true
54
+ end
55
+ }
56
+ unless found_pair
57
+ pairs << [self.name.to_s,"asc"]
58
+ end
59
+ (pairs.map{|pair| pair.join(",")}).join("|")
60
+ else
61
+ ""
62
+ end
63
+ end
64
+
65
+ def sort_pairs params
66
+ (params[:s] || "").split("|").map{|pair| pair.split(",")}
44
67
  end
45
68
 
46
69
  # Define format, for details see Lolita::Support::Formatter and Lolita::Support::Formater::Rails
@@ -4,6 +4,7 @@ module Lolita
4
4
  # To change behaviour of field you can use these attributes
5
5
  # * <tt>name</tt> - field name, used to set or get value from related ORM object
6
6
  # * <tt>type</tt> - can change the way field is shown and how data is formated
7
+ # * <tt>on</tt> - when to show field on hide, accepts array or symbol. Possible states are :create, :update or proc
7
8
  # * <tt>field_set</tt> - define field set that field belongs to. See Lolita::Configuration::FieldSet
8
9
  # * <tt>nested_in</tt> - define field for different Lolita::DBI instance, than given. This is used
9
10
  # to create nested fields in one form for related models. Like user and profile, where in user
@@ -29,7 +30,7 @@ module Lolita
29
30
  include Lolita::Builder
30
31
 
31
32
  @@default_type = :string
32
- lolita_accessor :name,:title,:field_set, :nested_form,:nested_for,:options, :html_options
33
+ lolita_accessor :name,:title,:on,:field_set, :nested_form,:nested_for,:options, :html_options
33
34
  attr_reader :dbi,:nested_in
34
35
  attr_accessor :dbi_field
35
36
 
@@ -68,6 +69,28 @@ module Lolita
68
69
  @name= value ? value.to_sym : nil
69
70
  end
70
71
 
72
+ def match_state_of?(record)
73
+ if @on
74
+ if @on.respond_to?(:call)
75
+ @on.call(record)
76
+ elsif @on.respond_to?(:detect)
77
+ !!@on.detect{|state| record_state_matches_with(record,state)}
78
+ else
79
+ record_state_matches_with(record,@on)
80
+ end
81
+ else
82
+ true
83
+ end
84
+ end
85
+
86
+ def record_state_matches_with(record,state)
87
+ if record.new_record?
88
+ state == :create
89
+ else
90
+ state == :update
91
+ end
92
+ end
93
+
71
94
  def nested_in=(dbi)
72
95
  unless self.dbi.associations_class_names.include?(dbi.klass.to_s)
73
96
  raise Lolita::ReferenceError, "There is no association between #{self.dbi.klass} and #{dbi.klass}"
@@ -11,6 +11,9 @@ module Lolita
11
11
  # select with visible values by default it calles <em>text_method</em>. It will fallback first content column. Class should respond to one
12
12
  # of these.
13
13
  class Array < Lolita::Configuration::Field::Base
14
+ include Lolita::Hooks
15
+ add_hook :after_association_loaded
16
+
14
17
  lolita_accessor :conditions,:text_method,:value_method,:find_options,:association,:include_blank
15
18
  lolita_accessor :related_classes
16
19
 
@@ -20,17 +23,33 @@ module Lolita
20
23
  self.find_dbi_field unless self.dbi_field
21
24
 
22
25
  @association ||= self.dbi_field ? self.dbi_field.association : detect_association
26
+ self.run(:after_association_loaded)
23
27
  self.builder = detect_builder unless @builder
24
28
  self.name = recognize_real_name
25
29
  end
26
30
 
27
- def options_for_select=(value=nil)
28
- @options_for_select=value
31
+ # For details see Lolita::Configuration::Search
32
+ def search *args, &block
33
+ if (args && args.any?) || block_given?
34
+ self.after_association_loaded do
35
+ @search = create_search(*args,&block)
36
+ end
37
+ end
38
+ @search
39
+ end
40
+
41
+ def create_search *args, &block
42
+ Lolita::Configuration::Search.new(Lolita::DBI::Base.create(@association.klass),*args,&block)
43
+ end
44
+
45
+ def values=(value=nil)
46
+ @values=value
29
47
  end
30
48
 
31
- def options_for_select value=nil, &block
32
- @options_for_select=value || block if value || block_given?
33
- @options_for_select
49
+ # Use this with block if values are dynamicly collected.
50
+ def values value=nil, &block
51
+ @values=value || block if value || block_given?
52
+ @values
34
53
  end
35
54
 
36
55
  # Collect values for array type field.
@@ -40,8 +59,10 @@ module Lolita
40
59
  # <code>find_options</code> for advanced search. When <code>find_options</code>
41
60
  # is used, than <code>conditions</code> is ignored.
42
61
  def association_values(record = nil) #TODO test
43
- @association_values=if options_for_select
44
- options_for_select
62
+ @association_values=if values
63
+ values
64
+ elsif search
65
+ search.run("")
45
66
  elsif @association && @association.polymorphic?
46
67
  polymorphic_association_values(record)
47
68
  elsif @association
@@ -99,7 +120,7 @@ module Lolita
99
120
  if @association.polymorphic?
100
121
  "polymorphic"
101
122
  elsif @association.macro == :many_to_many
102
- "habtm"
123
+ "autocomplete"
103
124
  else
104
125
  "select"
105
126
  end
@@ -126,6 +147,7 @@ module Lolita
126
147
 
127
148
  def recognize_real_name
128
149
  if @association && !@association.polymorphic? && @association.macro == :one
150
+ @real_name = self.name
129
151
  self.name = @association.key
130
152
  else
131
153
  @name
@@ -137,7 +159,9 @@ module Lolita
137
159
  def default_text_method(klass)
138
160
  assoc_dbi=Lolita::DBI::Base.create(klass) rescue nil
139
161
  if assoc_dbi
140
- field=assoc_dbi.fields.detect{|f| f.type.to_s=="string"}
162
+ field = assoc_dbi.fields.detect{|f| f.name.to_s == "title"}
163
+ field ||= assoc_dbi.fields.detect{|f| f.name.to_s == "name"}
164
+ field ||= assoc_dbi.fields.detect{|f| f.type.to_s=="string"}
141
165
  if field
142
166
  field.name
143
167
  else
@@ -49,6 +49,7 @@ module Lolita
49
49
  @dbi = dbi
50
50
  set_attributes(args ? args.extract_options! : {})
51
51
  instance_eval(&block) if block_given?
52
+ @with ||= args[0]!=true && args[0] ? args[0] : nil
52
53
  end
53
54
 
54
55
  def with(value = nil)
@@ -15,7 +15,7 @@ module Lolita
15
15
  # Proxy method for current_abi, it gives control back to superclass when method is called in
16
16
  # other controller than Lolita's (it responds to #lolita_mapping) otherwise it creates or return existing ability with #lolita_current_user.
17
17
  def current_ability
18
- if self.respond_to?(:lolita_mapping) && lolita_current_user
18
+ if self.respond_to?(:is_lolita_resource?) && self.is_lolita_resource? && lolita_current_user
19
19
  if defined?(::CanCan)
20
20
  @current_ability||= ::Ability.new(lolita_current_user)
21
21
  else
@@ -5,7 +5,7 @@ module Lolita
5
5
  included do
6
6
  helper LolitaHelper
7
7
  #TODO pārnest helperus uz lolitu vai arī uz lolita app nevis likt iekš controllers iekš lolitas
8
- helpers = %w(resource resource_name
8
+ helpers = %w(resource resource_name use_mapping
9
9
  resource_class lolita_mapping show_response tab_form tab_form=)
10
10
  hide_action *helpers
11
11
 
@@ -21,14 +21,14 @@ module Lolita
21
21
  end
22
22
 
23
23
  def resource_name
24
- lolita_mapping.name
24
+ lolita_mapping.class_name.underscore.to_sym
25
25
  end
26
26
 
27
27
  def resource_class
28
28
  lolita_mapping.to
29
29
  end
30
30
 
31
- def lolita_mapping
31
+ def lolita_mapping(new_mapping = nil)
32
32
  @lolita_mapping||=request.env["lolita.mapping"]
33
33
  end
34
34
 
@@ -45,6 +45,19 @@ module Lolita
45
45
  end
46
46
  @tab_form
47
47
  end
48
+
49
+ def use_mapping(new_mapping)
50
+ if block_given?
51
+ begin
52
+ @old_mapping = lolita_mapping
53
+ @lolita_mapping = new_mapping
54
+ yield
55
+ ensure
56
+ @lolita_mapping = @old_mapping
57
+ @old_mapping = nil
58
+ end
59
+ end
60
+ end
48
61
 
49
62
  protected
50
63
 
@@ -62,6 +75,7 @@ module Lolita
62
75
 
63
76
  def is_lolita_resource?
64
77
  raise ActionController::UnknownAction unless lolita_mapping
78
+ true
65
79
  end
66
80
 
67
81
  def resource=(new_resource)
data/lib/lolita/hooks.rb CHANGED
@@ -60,6 +60,30 @@ module Lolita
60
60
  # See Lolita::Hooks::NamedHook for details.
61
61
  module Hooks
62
62
  class Runner
63
+
64
+ class << self
65
+ def singleton_hook(hook_object,hook_name)
66
+ class << hook_object
67
+ def hooks_runned(name=nil)
68
+ @hooks_runned ||=[]
69
+ @hooks_runned << name if name
70
+ @hooks_runned
71
+ end
72
+ end
73
+
74
+ hook_object.hooks_runned(hook_name)
75
+ end
76
+
77
+ def runned?(hook_object,hook_name)
78
+ if hook_object.respond_to?(:hooks_runned)
79
+ hook_object.hooks_runned.include?(hook_name)
80
+ end
81
+ end
82
+
83
+ def singleton_hooks
84
+ @singleton_hooks || {}
85
+ end
86
+ end
63
87
 
64
88
  attr_accessor :hooks_run_scope, :given_callback_content
65
89
  attr_writer :hooks_scope
@@ -68,6 +92,7 @@ module Lolita
68
92
  @hook_class = hook_class
69
93
  @hook_name = hook_name
70
94
  @options = options
95
+ @options[:once] = @options[:once] == true ? @hook_class : @options[:once]
71
96
  end
72
97
 
73
98
  # Hooks scope is used to execute callbacks. By default it is class itself.
@@ -76,12 +101,15 @@ module Lolita
76
101
  end
77
102
 
78
103
  def run(&block)
79
- result = nil
80
- in_hooks_scope(@options[:scope],@options[:run_scope]) do
81
- callback = get_callback(@hook_name)
82
- result = run_callback(callback,&block)
104
+ if !@options[:once] || (@options[:once] && !self.class.runned?(@options[:once],@hook_name))
105
+ self.class.singleton_hook(@options[:once],@hook_name)
106
+ result = nil
107
+ in_hooks_scope(@options[:scope],@options[:run_scope]) do
108
+ callback = get_callback(@hook_name)
109
+ result = run_callback(callback,&block)
110
+ end
111
+ result
83
112
  end
84
- result
85
113
  end
86
114
 
87
115
  # Call callback block inside of run block.
@@ -36,6 +36,9 @@ module Lolita
36
36
  @class_instance=@lazy_class.new(&@eval_block)
37
37
  end
38
38
  end
39
+ if @class_instance.respond_to?(:after_initialize,true)
40
+ @class_instance.send(:after_initialize)
41
+ end
39
42
  @class_instance.__send__(method_name,*args,&block)
40
43
  end
41
44
 
@@ -18,7 +18,7 @@ module Lolita
18
18
  # Also eahc request containers information with mapping related to it.
19
19
  class Mapping
20
20
  attr_reader :class_name,:path,:singular,:plural,:path_prefix,:module,:controllers,:as
21
- attr_reader :visible, :only
21
+ attr_reader :visible, :only, :append_to
22
22
  alias :name :singular
23
23
 
24
24
 
@@ -26,6 +26,7 @@ module Lolita
26
26
  # TODO how it is when lolita plugin extend default path and there is module is this not break the logic?
27
27
  @as=options[:as]
28
28
  @visible = options.keys.include?(:visible) ? options[:visible] : true
29
+ @append_to = options[:append_to]
29
30
  @only = options[:only] || nil
30
31
  @plural=(options[:as] ? options[:as] : name).to_sym
31
32
  @singular=(options[:singular] || @plural.to_s.singularize).to_sym
@@ -55,8 +56,18 @@ module Lolita
55
56
  end
56
57
 
57
58
  def add_to_navigation_tree
59
+ tree = Lolita::Navigation::Tree[:"left_side_navigation"]
58
60
  if self.visible
59
- tree = Lolita::Navigation::Tree[:"left_side_navigation"]
61
+ if self.append_to
62
+ parent_branch = tree.branches.detect{|b| b.options[:system_name] == self.append_to}
63
+ unless parent_branch
64
+ parent_branch = tree.append(nil,:title => lambda{|branch|
65
+ return ::I18n.t("lolita.navigation." + branch.options[:system_name])
66
+ }, :system_name => self.append_to
67
+ )
68
+ end
69
+ tree = parent_branch.children
70
+ end
60
71
  unless tree.branches.detect{|b| b.object.is_a?(Lolita::Mapping) && b.object.to==self.to}
61
72
  tree.append(self)
62
73
  end
@@ -23,7 +23,11 @@ module Lolita
23
23
  end
24
24
 
25
25
  def title
26
- @title || self.object.to.model_name.human(:count=>2)
26
+ if @title && @title.respond_to?(:call)
27
+ @title.call(self)
28
+ else
29
+ @title || self.object.to.model_name.human(:count=>2)
30
+ end
27
31
  end
28
32
 
29
33
  def tree=(new_tree)
@@ -86,21 +90,18 @@ module Lolita
86
90
  def active?(view)
87
91
  resource = view.respond_to?(:resource_class) ? view.send(:resource_class) : nil rescue nil
88
92
  request = view.send(:request)
89
- if self.object.is_a?(Lolita::Mapping) && self.object && self.object.to == resource
93
+ self_active = if self.object.is_a?(Lolita::Mapping) && self.object && self.object.to == resource
90
94
  true
91
- else
92
- self.self_with_children.detect{|branch|
93
- if branch.options[:active].respond_to?(:call)
94
- branch.options[:active].call(view,self,branch)
95
- else
96
- branch.options[:url] == request.path
97
- end
98
- }
95
+ elsif self.options[:active].respond_to?(:call)
96
+ self.options[:active].call(view,self)
97
+ elsif self.options[:url]
98
+ self.options[:url] == request.path
99
99
  end
100
+ self_active || (self.children.any? && self.children.branches.detect{|c_branch| c_branch.active?(view)})
100
101
  end
101
102
 
102
103
  def visible?(view)
103
- if self.object && self.object.respond_to?(:to)
104
+ self_visible = if self.object && self.object.respond_to?(:to)
104
105
  view.send(:can?,:read,self.object.to)
105
106
  elsif self.options[:visible]
106
107
  if self.options[:visible].respond_to?(:call)
@@ -111,6 +112,7 @@ module Lolita
111
112
  else
112
113
  true
113
114
  end
115
+ self_visible && (self.children.any? && self.children.visible?(view) || self.children.empty?)
114
116
  end
115
117
 
116
118
  def self.get_or_create(*args)
data/lib/lolita/rails.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'action_controller/railtie'
1
2
  require 'lolita/rails/routes'
2
3
  require 'haml'
3
4
 
@@ -56,11 +56,13 @@ module ActionDispatch::Routing
56
56
  options[:module] ||= @scope[:module] if @scope[:module].present?
57
57
  options[:path_prefix] ||= @scope[:path] if @scope[:path].present?
58
58
  resources.map!(&:to_sym)
59
+
59
60
  all_resource_classes=[]
60
61
  resources.each{|resource|
61
62
  mapping=Lolita.add_mapping(resource,options)
62
63
  Lolita.resources[mapping.name]=mapping
63
64
  target_class=mapping.to
65
+
64
66
  #TODO refactor all these variables
65
67
  all_resource_classes<<target_class
66
68
 
@@ -120,7 +122,7 @@ module ActionDispatch::Routing
120
122
  private
121
123
 
122
124
  def migrating?
123
- File.basename($0).match(/^rake/) && (ARGV.include?("db:migrate"))
125
+ File.basename($0).match(/^rake/) && (ARGV.detect{|arg| arg.to_s.match(/migrate/)})
124
126
  end
125
127
 
126
128
  def generating_instalation?
@@ -64,7 +64,6 @@ module Lolita
64
64
  arity_limit = search_method_arity > args.size ? args.size : search_method_arity
65
65
  @dbi.klass.send(self.search_method.to_sym,*(args.slice(0..(arity_limit-1))))
66
66
  end
67
- @dbi.klass.send(self.search_method.to_sym,@query,@request)
68
67
  end
69
68
 
70
69
  def run_default_search
@@ -73,4 +72,4 @@ module Lolita
73
72
  end
74
73
 
75
74
  end
76
- end
75
+ end
data/lolita.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "lolita"
8
- s.version = "3.2.0.rc.6"
8
+ s.version = "3.2.0.rc.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["ITHouse (Latvia) and Arturs Meisters"]
12
- s.date = "2011-11-15"
12
+ s.date = "2011-12-20"
13
13
  s.description = "Great Rails CMS, that turns your business logic into good-looking, fully functional workspace. "
14
14
  s.email = "support@ithouse.lv"
15
15
  s.extra_rdoc_files = [
@@ -27,8 +27,23 @@ Gem::Specification.new do |s|
27
27
  "Rakefile",
28
28
  "VERSION",
29
29
  "app/assets/images/lolita/favicon.ico",
30
+ "app/assets/images/lolita/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png",
31
+ "app/assets/images/lolita/jquery-ui/images/ui-bg_flat_55_fbec88_40x100.png",
32
+ "app/assets/images/lolita/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png",
33
+ "app/assets/images/lolita/jquery-ui/images/ui-bg_highlight-soft_45_676767_1x100.png",
34
+ "app/assets/images/lolita/jquery-ui/images/ui-bg_highlight-soft_75_e3e3e3_1x100.png",
35
+ "app/assets/images/lolita/jquery-ui/images/ui-bg_highlight-soft_85_f3f3f3_1x100.png",
36
+ "app/assets/images/lolita/jquery-ui/images/ui-bg_inset-hard_100_d7d7d7_1x100.png",
37
+ "app/assets/images/lolita/jquery-ui/images/ui-bg_inset-hard_100_fcfdfd_1x100.png",
38
+ "app/assets/images/lolita/jquery-ui/images/ui-icons_7ac1ed_256x240.png",
39
+ "app/assets/images/lolita/jquery-ui/images/ui-icons_a1a1a1_256x240.png",
40
+ "app/assets/images/lolita/jquery-ui/images/ui-icons_cd0a0a_256x240.png",
41
+ "app/assets/images/lolita/jquery-ui/images/ui-icons_d8e7f3_256x240.png",
42
+ "app/assets/images/lolita/large-ajax-loader.gif",
30
43
  "app/assets/images/lolita/plus.png",
31
44
  "app/assets/images/lolita/search_icon.png",
45
+ "app/assets/images/lolita/small-ajax-loader.gif",
46
+ "app/assets/images/lolita/trash-small.png",
32
47
  "app/assets/javascripts/lolita/application.js",
33
48
  "app/assets/javascripts/lolita/base64.js",
34
49
  "app/assets/javascripts/lolita/main.js",
@@ -37,6 +52,7 @@ Gem::Specification.new do |s|
37
52
  "app/assets/stylesheets/lolita/PIE.htc",
38
53
  "app/assets/stylesheets/lolita/application.css",
39
54
  "app/assets/stylesheets/lolita/default.css.erb",
55
+ "app/assets/stylesheets/lolita/jquery-ui-1.8.16.lolita.css.erb",
40
56
  "app/assets/stylesheets/lolita/style.css.erb",
41
57
  "app/controllers/lolita/field_data_controller.rb",
42
58
  "app/controllers/lolita/info_controller.rb",
@@ -59,9 +75,10 @@ Gem::Specification.new do |s|
59
75
  "app/views/components/lolita/configuration/field/_label.html.erb",
60
76
  "app/views/components/lolita/configuration/field/_object.html.erb",
61
77
  "app/views/components/lolita/configuration/field/array/_display.html.erb",
78
+ "app/views/components/lolita/configuration/field/array/autocomplete/_display.html.haml",
79
+ "app/views/components/lolita/configuration/field/array/autocomplete/_input.html.haml",
80
+ "app/views/components/lolita/configuration/field/array/checkbox/_display.html.haml",
62
81
  "app/views/components/lolita/configuration/field/array/filter/_display.html.erb",
63
- "app/views/components/lolita/configuration/field/array/habtm/_display.html.haml",
64
- "app/views/components/lolita/configuration/field/array/habtm_autocomplete/_display.html.haml",
65
82
  "app/views/components/lolita/configuration/field/array/polymorphic/_display.html.haml",
66
83
  "app/views/components/lolita/configuration/field/array/polymorphic/_options_for_select.html.haml",
67
84
  "app/views/components/lolita/configuration/field/array/select/_display.html.erb",
@@ -101,6 +118,7 @@ Gem::Specification.new do |s|
101
118
  "app/views/components/lolita/shared/_flash.html.erb",
102
119
  "app/views/components/lolita/shared/_header.html.erb",
103
120
  "app/views/components/lolita/shared/_right_sidebar.html.erb",
121
+ "app/views/components/lolita/shared/_save_button.html.erb",
104
122
  "app/views/kaminari/lolita/_first_page.html.erb",
105
123
  "app/views/kaminari/lolita/_gap.html.erb",
106
124
  "app/views/kaminari/lolita/_last_page.html.erb",
@@ -188,7 +206,6 @@ Gem::Specification.new do |s|
188
206
  "lib/lolita/system_configuration/base.rb",
189
207
  "lib/lolita/test/matchers.rb",
190
208
  "lolita.gemspec",
191
- "lolita.gemspec.orig",
192
209
  "spec/adapter_helper.rb",
193
210
  "spec/builder_spec.rb",
194
211
  "spec/configuration/base_spec.rb",
@@ -301,7 +318,7 @@ Gem::Specification.new do |s|
301
318
  "spec/support/factories/tag.rb",
302
319
  "spec/support/formatter_spec.rb",
303
320
  "vendor/assets/javascripts/application_vendor_lolita.js",
304
- "vendor/assets/javascripts/jquery-ui-1.8.13.min.js",
321
+ "vendor/assets/javascripts/jquery-numeric.js",
305
322
  "vendor/assets/javascripts/modernizr_1_7_min.js",
306
323
  "vendor/assets/javascripts/tinymce/themes/advanced/skins/cirkuit/content.css",
307
324
  "vendor/assets/javascripts/tinymce/themes/advanced/skins/cirkuit/dialog.css",