typus 3.1.0.rc18 → 3.1.0.rc19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (138) hide show
  1. data/.gitignore +14 -11
  2. data/.travis.yml +12 -0
  3. data/CHANGELOG +253 -0
  4. data/Gemfile +69 -0
  5. data/Guardfile +11 -0
  6. data/README.md +14 -26
  7. data/Rakefile +24 -100
  8. data/app/assets/javascripts/typus/application.js +8 -2
  9. data/app/assets/javascripts/typus/custom.js +2 -0
  10. data/app/assets/javascripts/typus/jquery.application.js +14 -0
  11. data/app/assets/stylesheets/typus/application.css +18 -10
  12. data/app/assets/stylesheets/typus/content.css +0 -1
  13. data/app/assets/stylesheets/typus/custom.css +11 -0
  14. data/app/assets/stylesheets/typus/errors.css +1 -1
  15. data/app/assets/stylesheets/typus/forms.css +17 -5
  16. data/app/assets/stylesheets/typus/hacks.css +4 -0
  17. data/app/assets/stylesheets/typus/header.css +8 -2
  18. data/app/assets/stylesheets/typus/pagination.css +3 -3
  19. data/app/assets/stylesheets/typus/sidebar.css +4 -0
  20. data/app/assets/stylesheets/typus/tables.css +0 -1
  21. data/app/controllers/admin/account_controller.rb +1 -2
  22. data/app/controllers/admin/base_controller.rb +5 -2
  23. data/app/controllers/admin/dashboard_controller.rb +5 -0
  24. data/app/controllers/admin/resource_controller.rb +1 -2
  25. data/app/controllers/admin/resources_controller.rb +36 -51
  26. data/app/controllers/admin/session_controller.rb +2 -3
  27. data/app/helpers/admin/base_helper.rb +2 -5
  28. data/app/helpers/admin/resources/data_types/belongs_to_helper.rb +35 -27
  29. data/app/helpers/admin/resources/data_types/dragonfly_helper.rb +16 -3
  30. data/app/helpers/admin/resources/data_types/has_and_belongs_to_many_helper.rb +45 -13
  31. data/app/helpers/admin/resources/data_types/has_many_helper.rb +27 -19
  32. data/app/helpers/admin/resources/data_types/has_one_helper.rb +24 -11
  33. data/app/helpers/admin/resources/data_types/paperclip_helper.rb +1 -1
  34. data/app/helpers/admin/resources/data_types/string_helper.rb +1 -1
  35. data/app/helpers/admin/resources/data_types/text_helper.rb +1 -1
  36. data/app/helpers/admin/resources/data_types/transversal_helper.rb +1 -1
  37. data/app/helpers/admin/resources/data_types/tree_helper.rb +1 -1
  38. data/app/helpers/admin/resources/display_helper.rb +10 -9
  39. data/app/helpers/admin/resources/filters_helper.rb +3 -10
  40. data/app/helpers/admin/resources/form_helper.rb +12 -2
  41. data/app/helpers/admin/resources/list_helper.rb +13 -5
  42. data/app/helpers/admin/resources/relationships_helper.rb +0 -21
  43. data/app/helpers/admin/resources_helper.rb +3 -3
  44. data/app/mailers/admin/mailer.rb +9 -4
  45. data/app/views/admin/base/user_guide.html.erb +1 -1
  46. data/app/views/admin/dashboard/{show.html.erb → index.html.erb} +0 -0
  47. data/app/views/admin/dashboard/widgets/_applications.html.erb +32 -10
  48. data/app/views/admin/mailer/reset_password_instructions.html.erb +9 -0
  49. data/app/views/admin/mailer/reset_password_instructions.text.erb +9 -0
  50. data/app/views/admin/resources/edit.html.erb +3 -13
  51. data/app/views/admin/resources/index.html.erb +11 -4
  52. data/app/views/admin/resources/new.html.erb +2 -2
  53. data/app/views/admin/resources/show.html.erb +1 -1
  54. data/app/views/admin/shared/_head.html.erb +2 -2
  55. data/app/views/admin/templates/_belongs_to.html.erb +6 -9
  56. data/app/views/admin/templates/_dragonfly.html.erb +1 -1
  57. data/app/views/admin/templates/_dragonfly_form_preview.html.erb +21 -0
  58. data/app/views/admin/templates/_dragonfly_preview.html.erb +1 -1
  59. data/app/views/admin/templates/_has_and_belongs_to_many.html.erb +15 -0
  60. data/app/views/admin/templates/{_has_n.html.erb → _has_many.html.erb} +0 -0
  61. data/app/views/admin/templates/_password.html.erb +1 -1
  62. data/app/views/admin/templates/_selector.html.erb +1 -11
  63. data/app/views/admin/templates/_string.html.erb +2 -20
  64. data/app/views/admin/templates/_string_with_preview.html.erb +2 -3
  65. data/app/views/admin/templates/_text.html.erb +1 -8
  66. data/app/views/admin/templates/_text_with_ckeditor.html.erb +1 -1
  67. data/app/views/admin/templates/_text_with_ckeditor_and_assets.html.erb +12 -9
  68. data/app/views/helpers/admin/base/_apps.html.erb +12 -4
  69. data/app/views/helpers/admin/base/_login_info.html.erb +1 -1
  70. data/app/views/helpers/admin/resources/_filters.html.erb +2 -1
  71. data/app/views/helpers/admin/resources/_sidebar.html.erb +25 -41
  72. data/app/views/layouts/admin/base.html.erb +1 -1
  73. data/config/locales/typus.ca.yml +1 -1
  74. data/config/locales/typus.de.yml +40 -35
  75. data/config/locales/typus.el.yml +1 -1
  76. data/config/locales/typus.es.yml +1 -1
  77. data/config/locales/typus.fr.yml +1 -1
  78. data/config/locales/typus.hu.yml +1 -1
  79. data/config/locales/typus.it.yml +1 -1
  80. data/config/locales/typus.locale.models.yml.template +17 -0
  81. data/config/locales/typus.locale.yml.template +80 -0
  82. data/config/locales/typus.pt-BR.yml +1 -1
  83. data/config/locales/typus.pt-PT.yml +2 -2
  84. data/config/locales/typus.ru.yml +1 -1
  85. data/config/locales/typus.zh-CN.yml +1 -1
  86. data/config/routes.rb +5 -1
  87. data/lib/generators/templates/config/initializers/typus.rb +9 -0
  88. data/lib/generators/templates/config/typus/README +0 -6
  89. data/lib/support/active_record.rb +2 -10
  90. data/lib/support/string.rb +6 -1
  91. data/lib/typus.rb +49 -10
  92. data/lib/typus/authentication/base.rb +0 -4
  93. data/lib/typus/authentication/none_with_role.rb +15 -0
  94. data/lib/typus/configuration.rb +3 -7
  95. data/lib/typus/controller/ancestry.rb +1 -1
  96. data/lib/typus/controller/bulk.rb +6 -2
  97. data/lib/typus/controller/format.rb +38 -25
  98. data/lib/typus/orm/active_record/class_methods.rb +0 -1
  99. data/lib/typus/orm/active_record/search.rb +6 -2
  100. data/lib/typus/orm/base.rb +4 -3
  101. data/lib/typus/orm/mongoid.rb +4 -0
  102. data/lib/typus/orm/{mongo → mongoid}/class_methods.rb +4 -3
  103. data/lib/typus/resources.rb +9 -0
  104. data/lib/typus/version.rb +1 -1
  105. data/typus.gemspec +13 -13
  106. data/vendor/assets/chosen/chosen-sprite.png +0 -0
  107. data/vendor/assets/chosen/chosen.css +334 -0
  108. data/vendor/assets/chosen/chosen.jquery.min.js +10 -0
  109. data/vendor/assets/fancybox/jquery.fancybox-1.3.4.css +17 -17
  110. metadata +57 -131
  111. data/.gitmodules +0 -6
  112. data/app/assets/javascripts/typus.js +0 -8
  113. data/app/assets/stylesheets/typus.css +0 -20
  114. data/app/assets/stylesheets/typus/actions.css +0 -11
  115. data/app/views/admin/mailer/reset_password_link.text.erb +0 -9
  116. data/app/views/admin/templates/_belongs_to_with_autocomplete.html.erb +0 -26
  117. data/lib/typus/controller/associations.rb +0 -146
  118. data/lib/typus/controller/autocomplete.rb +0 -16
  119. data/vendor/assets/fancybox/jquery.easing-1.3.pack.js +0 -72
  120. data/vendor/assets/fancybox/jquery.fancybox-1.3.4.js +0 -1156
  121. data/vendor/assets/fancybox/jquery.mousewheel-3.0.4.pack.js +0 -14
  122. data/vendor/assets/formalize/css/_formalize.sass +0 -332
  123. data/vendor/assets/formalize/css/demo.css +0 -47
  124. data/vendor/assets/formalize/css/reset.css +0 -202
  125. data/vendor/assets/formalize/css/text.css +0 -81
  126. data/vendor/assets/formalize/js/dojo.formalize.js +0 -166
  127. data/vendor/assets/formalize/js/dojo.formalize.min.js +0 -1
  128. data/vendor/assets/formalize/js/extjs.formalize.js +0 -163
  129. data/vendor/assets/formalize/js/extjs.formalize.min.js +0 -1
  130. data/vendor/assets/formalize/js/jquery.formalize.js +0 -150
  131. data/vendor/assets/formalize/js/mootools.formalize.js +0 -155
  132. data/vendor/assets/formalize/js/mootools.formalize.min.js +0 -1
  133. data/vendor/assets/formalize/js/prototype.formalize.js +0 -163
  134. data/vendor/assets/formalize/js/prototype.formalize.min.js +0 -1
  135. data/vendor/assets/formalize/js/yui.formalize.js +0 -152
  136. data/vendor/assets/formalize/js/yui.formalize.min.js +0 -1
  137. data/vendor/assets/jquery-tokeninput/jquery.tokeninput.js +0 -736
  138. data/vendor/assets/jquery-tokeninput/token-input.css +0 -120
@@ -39,7 +39,7 @@ module Typus
39
39
  when 'last_30_days' then 30.days.ago.beginning_of_day..tomorrow
40
40
  end
41
41
 
42
- ["#{table_name}.#{key} BETWEEN ? AND ?", interval.first.to_s(:db), interval.last.to_s(:db)]
42
+ build_filter_interval(interval, key)
43
43
  end
44
44
 
45
45
  def build_date_conditions(key, value)
@@ -52,6 +52,10 @@ module Typus
52
52
  when 'last_30_days' then 30.days.ago.to_date..tomorrow
53
53
  end
54
54
 
55
+ build_filter_interval(interval, key)
56
+ end
57
+
58
+ def build_filter_interval(interval, key)
55
59
  ["#{table_name}.#{key} BETWEEN ? AND ?", interval.first.to_s(:db), interval.last.to_s(:db)]
56
60
  end
57
61
 
@@ -62,8 +66,8 @@ module Typus
62
66
  alias_method :build_integer_conditions, :build_string_conditions
63
67
  alias_method :build_belongs_to_conditions, :build_string_conditions
64
68
 
69
+ # TODO: Detect the primary_key for this object.
65
70
  def build_has_many_conditions(key, value)
66
- # TODO: Detect the primary_key for this object.
67
71
  ["#{key}.id = ?", value]
68
72
  end
69
73
 
@@ -46,7 +46,8 @@ module Typus
46
46
  end
47
47
 
48
48
  def typus_application
49
- read_model_config['application'] || 'Unknown'
49
+ name = read_model_config['application'] || 'Unknown'
50
+ name.extract_settings.first
50
51
  end
51
52
 
52
53
  def typus_field_options_for(filter)
@@ -55,14 +56,14 @@ module Typus
55
56
  end
56
57
 
57
58
  #--
58
- # With Typus::Resources we some application defaults.
59
+ # With +Typus::Resources.setup+ we can define application defaults.
59
60
  #
60
61
  # Typus::Resources.setup do |config|
61
62
  # config.per_page = 25
62
63
  # end
63
64
  #
64
65
  # If for any reason we need a better default for an specific resource we
65
- # we override it on `application.yaml`.
66
+ # can override it on +application.yaml+.
66
67
  #
67
68
  # Post:
68
69
  # ...
@@ -0,0 +1,4 @@
1
+ if defined?(Mongoid)
2
+ require 'lib/typus/orm/mongoid/class_methods'
3
+ Mongoid::Document::ClassMethods.send(:include, Typus::Orm::Mongoid::ClassMethods)
4
+ end
@@ -1,13 +1,14 @@
1
1
  module Typus
2
2
  module Orm
3
- module Mongo
3
+ module Mongoid
4
4
  module ClassMethods
5
5
 
6
- include Typus::Orm::Base
6
+ extend Typus::Orm::Base
7
7
 
8
8
  def table_name
9
- self.collection_name
9
+ collection_name
10
10
  end
11
+
11
12
  end
12
13
  end
13
14
  end
@@ -36,6 +36,15 @@ module Typus
36
36
  mattr_accessor :start_year
37
37
  @@start_year = nil
38
38
 
39
+ mattr_accessor :hide_from_sidebar
40
+ @@hide_from_sidebar = false
41
+
42
+ mattr_accessor :hide_from_dashboard
43
+ @@hide_from_dashboard = false
44
+
45
+ mattr_accessor :export
46
+ @@export = ""
47
+
39
48
  def self.method_missing(*args)
40
49
  nil
41
50
  end
@@ -1,3 +1,3 @@
1
1
  module Typus
2
- VERSION = "3.1.0.rc18"
2
+ VERSION = "3.1.0.rc19"
3
3
  end
@@ -1,34 +1,34 @@
1
1
  # -*- encoding: utf-8 -*-
2
+
2
3
  $:.push File.expand_path("../lib", __FILE__)
4
+
5
+ # Maintain your gem's version:
3
6
  require "typus/version"
4
7
 
5
- files = `git ls-files`.split("\n") + Dir["config/locales/*.yml"]
6
- test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
8
+ files = `git ls-files`.split("\n")
9
+ test_files = `git ls-files -- test/*`.split("\n")
10
+ ignores = `git ls-files -- script/*`.split("\n")
7
11
 
12
+ # Describe your gem and declare its dependencies:
8
13
  Gem::Specification.new do |s|
9
14
  s.name = "typus"
10
15
  s.version = Typus::VERSION
11
16
  s.platform = Gem::Platform::RUBY
12
17
  s.authors = ["Francesc Esplugas"]
13
- s.email = ["core@typuscms.com"]
14
- s.homepage = "http://core.typuscms.com/"
18
+ s.email = ["core@typuscmf.com"]
19
+ s.homepage = "http://core.typuscmf.com/"
15
20
  s.summary = "Effortless backend interface for Ruby on Rails applications. (Admin scaffold generator)"
16
21
  s.description = "Ruby on Rails Admin Panel (Engine) to allow trusted users edit structured content."
17
22
 
18
23
  s.rubyforge_project = "typus"
19
24
 
20
- s.files = files - test_files
25
+ s.files = files - test_files - ignores
21
26
  s.test_files = []
22
27
  s.require_paths = ["lib"]
23
28
 
24
- s.add_development_dependency "dragonfly", "~> 0.9"
25
- s.add_development_dependency "jquery-rails"
26
- s.add_development_dependency "paperclip"
27
- s.add_development_dependency "rack-cache"
28
- s.add_development_dependency "rails-trash", "~> 1.1.1"
29
-
30
29
  s.add_dependency "jquery-rails"
31
30
  s.add_dependency "kaminari"
32
- s.add_dependency "sass-rails", "~> 3.1.0.rc.2"
33
- s.add_dependency "rails", "~> 3.1.0.rc4"
31
+ s.add_dependency "rails", "~> 3.1.0"
32
+
33
+ # Development dependencies are defined in the `Gemfile`.
34
34
  end
@@ -0,0 +1,334 @@
1
+ /* @group Base */
2
+ .chzn-container {
3
+ font-size: 13px;
4
+ position: relative;
5
+ display: inline-block;
6
+ zoom: 1;
7
+ *display: inline;
8
+ }
9
+ .chzn-container .chzn-drop {
10
+ background: #fff;
11
+ border: 1px solid #aaa;
12
+ border-top: 0;
13
+ position: absolute;
14
+ top: 29px;
15
+ left: 0;
16
+ -webkit-box-shadow: 0 4px 5px rgba(0,0,0,.15);
17
+ -moz-box-shadow : 0 4px 5px rgba(0,0,0,.15);
18
+ -o-box-shadow : 0 4px 5px rgba(0,0,0,.15);
19
+ box-shadow : 0 4px 5px rgba(0,0,0,.15);
20
+ z-index: 999;
21
+ }
22
+ /* @end */
23
+
24
+ /* @group Single Chosen */
25
+ .chzn-container-single .chzn-single {
26
+ background-color: #fff;
27
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(0.5, white));
28
+ background-image: -webkit-linear-gradient(center bottom, #eeeeee 0%, white 50%);
29
+ background-image: -moz-linear-gradient(center bottom, #eeeeee 0%, white 50%);
30
+ background-image: -o-linear-gradient(top, #eeeeee 0%,#ffffff 50%);
31
+ background-image: -ms-linear-gradient(top, #eeeeee 0%,#ffffff 50%);
32
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#ffffff',GradientType=0 );
33
+ background-image: linear-gradient(top, #eeeeee 0%,#ffffff 50%);
34
+ -webkit-border-radius: 4px;
35
+ -moz-border-radius : 4px;
36
+ border-radius : 4px;
37
+ -moz-background-clip : padding;
38
+ -webkit-background-clip: padding-box;
39
+ background-clip : padding-box;
40
+ border: 1px solid #aaa;
41
+ display: block;
42
+ overflow: hidden;
43
+ white-space: nowrap;
44
+ position: relative;
45
+ height: 26px;
46
+ line-height: 26px;
47
+ padding: 0 0 0 8px;
48
+ color: #444;
49
+ text-decoration: none;
50
+ }
51
+ .chzn-container-single .chzn-single span {
52
+ margin-right: 26px;
53
+ display: block;
54
+ overflow: hidden;
55
+ white-space: nowrap;
56
+ -o-text-overflow: ellipsis;
57
+ -ms-text-overflow: ellipsis;
58
+ text-overflow: ellipsis;
59
+ }
60
+ .chzn-container-single .chzn-single div {
61
+ -webkit-border-radius: 0 4px 4px 0;
62
+ -moz-border-radius : 0 4px 4px 0;
63
+ border-radius : 0 4px 4px 0;
64
+ -moz-background-clip : padding;
65
+ -webkit-background-clip: padding-box;
66
+ background-clip : padding-box;
67
+ background: #ccc;
68
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(0.6, #eee));
69
+ background-image: -webkit-linear-gradient(center bottom, #ccc 0%, #eee 60%);
70
+ background-image: -moz-linear-gradient(center bottom, #ccc 0%, #eee 60%);
71
+ background-image: -o-linear-gradient(bottom, #ccc 0%, #eee 60%);
72
+ background-image: -ms-linear-gradient(top, #cccccc 0%,#eeeeee 60%);
73
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cccccc', endColorstr='#eeeeee',GradientType=0 );
74
+ background-image: linear-gradient(top, #cccccc 0%,#eeeeee 60%);
75
+ border-left: 1px solid #aaa;
76
+ position: absolute;
77
+ right: 0;
78
+ top: 0;
79
+ display: block;
80
+ height: 100%;
81
+ width: 18px;
82
+ }
83
+ .chzn-container-single .chzn-single div b {
84
+ background: url('../chosen-sprite.png') no-repeat 0 1px;
85
+ display: block;
86
+ width: 100%;
87
+ height: 100%;
88
+ }
89
+ .chzn-container-single .chzn-search {
90
+ padding: 3px 4px;
91
+ margin: 0;
92
+ white-space: nowrap;
93
+ }
94
+ .chzn-container-single .chzn-search input {
95
+ background: #fff url('../chosen-sprite.png') no-repeat 100% -20px;
96
+ background: url('../chosen-sprite.png') no-repeat 100% -20px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
97
+ background: url('../chosen-sprite.png') no-repeat 100% -20px, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
98
+ background: url('../chosen-sprite.png') no-repeat 100% -20px, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
99
+ background: url('../chosen-sprite.png') no-repeat 100% -20px, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
100
+ background: url('../chosen-sprite.png') no-repeat 100% -20px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
101
+ background: url('../chosen-sprite.png') no-repeat 100% -20px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
102
+ background: url('../chosen-sprite.png') no-repeat 100% -20px, linear-gradient(top, #ffffff 85%,#eeeeee 99%);
103
+ margin: 1px 0;
104
+ padding: 4px 20px 4px 5px;
105
+ outline: 0;
106
+ border: 1px solid #aaa;
107
+ font-family: sans-serif;
108
+ font-size: 1em;
109
+ }
110
+ .chzn-container-single .chzn-drop {
111
+ -webkit-border-radius: 0 0 4px 4px;
112
+ -moz-border-radius : 0 0 4px 4px;
113
+ border-radius : 0 0 4px 4px;
114
+ -moz-background-clip : padding;
115
+ -webkit-background-clip: padding-box;
116
+ background-clip : padding-box;
117
+ }
118
+ /* @end */
119
+
120
+ /* @group Multi Chosen */
121
+ .chzn-container-multi .chzn-choices {
122
+ background-color: #fff;
123
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
124
+ background-image: -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
125
+ background-image: -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
126
+ background-image: -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
127
+ background-image: -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
128
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 );
129
+ background-image: linear-gradient(top, #ffffff 85%,#eeeeee 99%);
130
+ border: 1px solid #aaa;
131
+ margin: 0;
132
+ padding: 0;
133
+ cursor: text;
134
+ overflow: hidden;
135
+ height: auto !important;
136
+ height: 1%;
137
+ position: relative;
138
+ }
139
+ .chzn-container-multi .chzn-choices li {
140
+ float: left;
141
+ list-style: none;
142
+ }
143
+ .chzn-container-multi .chzn-choices .search-field {
144
+ white-space: nowrap;
145
+ margin: 0;
146
+ padding: 0;
147
+ }
148
+ .chzn-container-multi .chzn-choices .search-field input {
149
+ color: #666;
150
+ background: transparent !important;
151
+ border: 0 !important;
152
+ padding: 5px;
153
+ margin: 1px 0;
154
+ outline: 0;
155
+ -webkit-box-shadow: none;
156
+ -moz-box-shadow : none;
157
+ -o-box-shadow : none;
158
+ box-shadow : none;
159
+ }
160
+ .chzn-container-multi .chzn-choices .search-field .default {
161
+ color: #999;
162
+ }
163
+ .chzn-container-multi .chzn-choices .search-choice {
164
+ -webkit-border-radius: 3px;
165
+ -moz-border-radius : 3px;
166
+ border-radius : 3px;
167
+ -moz-background-clip : padding;
168
+ -webkit-background-clip: padding-box;
169
+ background-clip : padding-box;
170
+ background-color: #e4e4e4;
171
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #e4e4e4), color-stop(0.7, #eeeeee));
172
+ background-image: -webkit-linear-gradient(center bottom, #e4e4e4 0%, #eeeeee 70%);
173
+ background-image: -moz-linear-gradient(center bottom, #e4e4e4 0%, #eeeeee 70%);
174
+ background-image: -o-linear-gradient(bottom, #e4e4e4 0%, #eeeeee 70%);
175
+ background-image: -ms-linear-gradient(top, #e4e4e4 0%,#eeeeee 70%);
176
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e4e4e4', endColorstr='#eeeeee',GradientType=0 );
177
+ background-image: linear-gradient(top, #e4e4e4 0%,#eeeeee 70%);
178
+ color: #333;
179
+ border: 1px solid #b4b4b4;
180
+ line-height: 13px;
181
+ padding: 3px 19px 3px 6px;
182
+ margin: 3px 0 3px 5px;
183
+ position: relative;
184
+ }
185
+ .chzn-container-multi .chzn-choices .search-choice span {
186
+ cursor: default;
187
+ }
188
+ .chzn-container-multi .chzn-choices .search-choice-focus {
189
+ background: #d4d4d4;
190
+ }
191
+ .chzn-container-multi .chzn-choices .search-choice .search-choice-close {
192
+ display: block;
193
+ position: absolute;
194
+ right: 5px;
195
+ top: 6px;
196
+ width: 8px;
197
+ height: 9px;
198
+ font-size: 1px;
199
+ background: url('../chosen-sprite.png') right top no-repeat;
200
+ }
201
+ .chzn-container-multi .chzn-choices .search-choice .search-choice-close:hover {
202
+ background-position: right -9px;
203
+ }
204
+ .chzn-container-multi .chzn-choices .search-choice-focus .search-choice-close {
205
+ background-position: right -9px;
206
+ }
207
+ /* @end */
208
+
209
+ /* @group Results */
210
+ .chzn-container .chzn-results {
211
+ margin: 0 4px 4px 0;
212
+ max-height: 190px;
213
+ padding: 0 0 0 4px;
214
+ position: relative;
215
+ overflow-x: hidden;
216
+ overflow-y: auto;
217
+ }
218
+ .chzn-container-multi .chzn-results {
219
+ margin: -1px 0 0;
220
+ padding: 0;
221
+ }
222
+ .chzn-container .chzn-results li {
223
+ line-height: 80%;
224
+ padding: 7px 7px 8px;
225
+ margin: 0;
226
+ list-style: none;
227
+ }
228
+ .chzn-container .chzn-results .active-result {
229
+ cursor: pointer;
230
+ }
231
+ .chzn-container .chzn-results .highlighted {
232
+ background: #3875d7;
233
+ color: #fff;
234
+ }
235
+ .chzn-container .chzn-results li em {
236
+ background: #feffde;
237
+ font-style: normal;
238
+ }
239
+ .chzn-container .chzn-results .highlighted em {
240
+ background: transparent;
241
+ }
242
+ .chzn-container .chzn-results .no-results {
243
+ background: #f4f4f4;
244
+ }
245
+ .chzn-container .chzn-results .group-result {
246
+ cursor: default;
247
+ color: #999;
248
+ font-weight: bold;
249
+ }
250
+ .chzn-container .chzn-results .group-option {
251
+ padding-left: 20px;
252
+ }
253
+ .chzn-container-multi .chzn-drop .result-selected {
254
+ display: none;
255
+ }
256
+ /* @end */
257
+
258
+ /* @group Active */
259
+ .chzn-container-active .chzn-single {
260
+ -webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
261
+ -moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
262
+ -o-box-shadow : 0 0 5px rgba(0,0,0,.3);
263
+ box-shadow : 0 0 5px rgba(0,0,0,.3);
264
+ border: 1px solid #5897fb;
265
+ }
266
+ .chzn-container-active .chzn-single-with-drop {
267
+ border: 1px solid #aaa;
268
+ -webkit-box-shadow: 0 1px 0 #fff inset;
269
+ -moz-box-shadow : 0 1px 0 #fff inset;
270
+ -o-box-shadow : 0 1px 0 #fff inset;
271
+ box-shadow : 0 1px 0 #fff inset;
272
+ background-color: #eee;
273
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, white), color-stop(0.5, #eeeeee));
274
+ background-image: -webkit-linear-gradient(center bottom, white 0%, #eeeeee 50%);
275
+ background-image: -moz-linear-gradient(center bottom, white 0%, #eeeeee 50%);
276
+ background-image: -o-linear-gradient(bottom, white 0%, #eeeeee 50%);
277
+ background-image: -ms-linear-gradient(top, #ffffff 0%,#eeeeee 50%);
278
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 );
279
+ background-image: linear-gradient(top, #ffffff 0%,#eeeeee 50%);
280
+ -webkit-border-bottom-left-radius : 0;
281
+ -webkit-border-bottom-right-radius: 0;
282
+ -moz-border-radius-bottomleft : 0;
283
+ -moz-border-radius-bottomright: 0;
284
+ border-bottom-left-radius : 0;
285
+ border-bottom-right-radius: 0;
286
+ }
287
+ .chzn-container-active .chzn-single-with-drop div {
288
+ background: transparent;
289
+ border-left: none;
290
+ }
291
+ .chzn-container-active .chzn-single-with-drop div b {
292
+ background-position: -18px 1px;
293
+ }
294
+ .chzn-container-active .chzn-choices {
295
+ -webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
296
+ -moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
297
+ -o-box-shadow : 0 0 5px rgba(0,0,0,.3);
298
+ box-shadow : 0 0 5px rgba(0,0,0,.3);
299
+ border: 1px solid #5897fb;
300
+ }
301
+ .chzn-container-active .chzn-choices .search-field input {
302
+ color: #111 !important;
303
+ }
304
+ /* @end */
305
+
306
+ /* @group Right to Left */
307
+ .chzn-rtl { direction:rtl;text-align: right; }
308
+ .chzn-rtl .chzn-single { padding-left: 0; padding-right: 8px; }
309
+ .chzn-rtl .chzn-single span { margin-left: 26px; margin-right: 0; }
310
+ .chzn-rtl .chzn-single div {
311
+ left: 0; right: auto;
312
+ border-left: none; border-right: 1px solid #aaaaaa;
313
+ -webkit-border-radius: 4px 0 0 4px;
314
+ -moz-border-radius : 4px 0 0 4px;
315
+ border-radius : 4px 0 0 4px;
316
+ }
317
+ .chzn-rtl .chzn-choices li { float: right; }
318
+ .chzn-rtl .chzn-choices .search-choice { padding: 3px 6px 3px 19px; margin: 3px 5px 3px 0; }
319
+ .chzn-rtl .chzn-choices .search-choice .search-choice-close { left: 5px; right: auto; background-position: right top;}
320
+ .chzn-rtl.chzn-container-single .chzn-results { margin-left: 4px; margin-right: 0; padding-left: 0; padding-right: 4px; }
321
+ .chzn-rtl .chzn-results .group-option { padding-left: 0; padding-right: 20px; }
322
+ .chzn-rtl.chzn-container-active .chzn-single-with-drop div { border-right: none; }
323
+ .chzn-rtl .chzn-search input {
324
+ background: url('../chosen-sprite.png') no-repeat -38px -20px, #ffffff;
325
+ background: url('../chosen-sprite.png') no-repeat -38px -20px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
326
+ background: url('../chosen-sprite.png') no-repeat -38px -20px, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
327
+ background: url('../chosen-sprite.png') no-repeat -38px -20px, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
328
+ background: url('../chosen-sprite.png') no-repeat -38px -20px, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
329
+ background: url('../chosen-sprite.png') no-repeat -38px -20px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
330
+ background: url('../chosen-sprite.png') no-repeat -38px -20px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
331
+ background: url('../chosen-sprite.png') no-repeat -38px -20px, linear-gradient(top, #ffffff 85%,#eeeeee 99%);
332
+ padding: 4px 5px 4px 20px;
333
+ }
334
+ /* @end */