typus 3.1.7 → 3.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.md +15 -0
- data/Gemfile +10 -10
- data/README.md +1 -1
- data/app/controllers/admin/account_controller.rb +1 -3
- data/app/controllers/admin/base_controller.rb +2 -5
- data/app/controllers/admin/resources_controller.rb +6 -4
- data/app/controllers/admin/session_controller.rb +1 -2
- data/lib/typus.rb +4 -2
- data/lib/typus/controller/format.rb +18 -37
- data/lib/typus/controller/trash.rb +3 -1
- data/lib/typus/version.rb +1 -1
- data/typus.gemspec +1 -1
- data/vendor/assets/chosen/chosen.css +86 -64
- data/vendor/assets/chosen/chosen.jquery.js +41 -27
- data/vendor/assets/chosen/typus/chosen-sprite.png +0 -0
- metadata +14 -14
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,21 @@ CHANGELOG
|
|
4
4
|
3.1.8 (unreleased)
|
5
5
|
------------------
|
6
6
|
|
7
|
+
* [CHANGED] CSV generation is now performed in memory so we play nice
|
8
|
+
with Heroku.
|
9
|
+
|
10
|
+
* [CHANGED] We now can export XML, CSV and JSON without restriction. If
|
11
|
+
fields are not defined for a format, defaults will be used.
|
12
|
+
|
13
|
+
* [CHANGED] Updated Kaminari to `0.13.0` so we are now Rails `3.2.0`
|
14
|
+
compatible.
|
15
|
+
|
16
|
+
* [CHANGED] We now also load configuration files from "lib/<plugin>/config"
|
17
|
+
as this is marked as deprecated in Rails 3.2.0.
|
18
|
+
|
19
|
+
* [CHANGED] Updated Gems for the dummy application. This fixes deprecation
|
20
|
+
warnings and keeps the plugin up to date.
|
21
|
+
|
7
22
|
Changes: <https://github.com/fesplugas/typus/compare/v3.1.7...master>
|
8
23
|
|
9
24
|
|
data/Gemfile
CHANGED
@@ -8,8 +8,8 @@ gemspec
|
|
8
8
|
# Gems used only for assets and not required
|
9
9
|
# in production environments by default.
|
10
10
|
group :assets do
|
11
|
-
gem 'sass-rails', '~> 3.
|
12
|
-
gem 'coffee-rails', '~> 3.
|
11
|
+
gem 'sass-rails', '~> 3.2.3'
|
12
|
+
gem 'coffee-rails', '~> 3.2.1'
|
13
13
|
gem 'uglifier', '>= 1.0.3'
|
14
14
|
end
|
15
15
|
|
@@ -31,29 +31,29 @@ end
|
|
31
31
|
# And this stuff needed for the demo application.
|
32
32
|
gem "acts_as_list"
|
33
33
|
gem "acts_as_tree"
|
34
|
-
gem "factory_girl_rails", "~> 1.
|
34
|
+
gem "factory_girl_rails", "~> 1.6.0"
|
35
35
|
gem "rails-permalink", "~> 1.0.0"
|
36
|
-
gem "rails-trash", "~>
|
36
|
+
gem "rails-trash", "~> 2.0.0"
|
37
37
|
|
38
38
|
# For some reason I also need to define the `jquery-rails` gem here.
|
39
39
|
gem "jquery-rails"
|
40
40
|
|
41
41
|
# Rich Text Editor
|
42
|
-
gem "ckeditor-rails", "0.0.
|
42
|
+
gem "ckeditor-rails", "~> 0.0.3"
|
43
43
|
|
44
44
|
# Alternative authentication
|
45
|
-
gem "devise", "~>
|
45
|
+
gem "devise", "~> 2.0.0"
|
46
46
|
|
47
47
|
# Asset Management with Dragonfly
|
48
|
-
gem "dragonfly", "~> 0.9.
|
48
|
+
gem "dragonfly", "~> 0.9.10"
|
49
49
|
gem "rack-cache", :require => "rack/cache"
|
50
50
|
|
51
51
|
# Asset Management with Paperclip
|
52
|
-
gem "paperclip", "~> 2.
|
52
|
+
gem "paperclip", "~> 2.5.2"
|
53
53
|
|
54
54
|
# MongoDB
|
55
|
-
gem "mongoid", "~> 2.3
|
56
|
-
gem "bson_ext", "~> 1.5.
|
55
|
+
gem "mongoid", "~> 2.4.3"
|
56
|
+
gem "bson_ext", "~> 1.5.2"
|
57
57
|
|
58
58
|
group :test do
|
59
59
|
gem "shoulda-context", "~> 1.0.0"
|
data/README.md
CHANGED
@@ -23,7 +23,7 @@ You can try a demo [here][typus_demo].
|
|
23
23
|
- Internationalized interface ([See available translations][typus_locales])
|
24
24
|
- Customizable and extensible templates.
|
25
25
|
- Integrated [paperclip][paperclip] and [dragonfly][dragonfly] attachments viewer.
|
26
|
-
- Works with `Rails 3.1.X`.
|
26
|
+
- Works with `Rails 3.1.X` and `Rails 3.2.X`.
|
27
27
|
|
28
28
|
## Installing
|
29
29
|
|
@@ -2,9 +2,7 @@ class Admin::AccountController < Admin::BaseController
|
|
2
2
|
|
3
3
|
layout 'admin/session'
|
4
4
|
|
5
|
-
skip_before_filter :reload_config_and_roles
|
6
|
-
skip_before_filter :authenticate
|
7
|
-
skip_before_filter :set_locale
|
5
|
+
skip_before_filter :reload_config_and_roles, :authenticate, :set_locale
|
8
6
|
|
9
7
|
before_filter :sign_in?, :except => [:forgot_password, :send_password, :show]
|
10
8
|
before_filter :new?, :only => [:forgot_password, :send_password]
|
@@ -2,12 +2,9 @@ class Admin::BaseController < ActionController::Base
|
|
2
2
|
|
3
3
|
include Typus::Authentication::const_get(Typus.authentication.to_s.classify)
|
4
4
|
|
5
|
-
before_filter :reload_config_and_roles
|
6
|
-
before_filter :authenticate
|
7
|
-
before_filter :set_locale
|
5
|
+
before_filter :reload_config_and_roles, :authenticate, :set_locale
|
8
6
|
|
9
|
-
helper_method :admin_user
|
10
|
-
helper_method :current_role
|
7
|
+
helper_method :admin_user, :current_role
|
11
8
|
|
12
9
|
protected
|
13
10
|
|
@@ -27,7 +27,9 @@ class Admin::ResourcesController < Admin::BaseController
|
|
27
27
|
generate_html
|
28
28
|
end
|
29
29
|
|
30
|
-
|
30
|
+
format.csv { generate_csv }
|
31
|
+
format.json { export(:json) }
|
32
|
+
format.xml { export(:xml) }
|
31
33
|
end
|
32
34
|
end
|
33
35
|
|
@@ -198,12 +200,12 @@ class Admin::ResourcesController < Admin::BaseController
|
|
198
200
|
def redirect_on_success
|
199
201
|
path = params.dup.cleanup
|
200
202
|
|
201
|
-
options = if params[:
|
202
|
-
{ :action => nil, :id => nil }
|
203
|
-
elsif params[:_addanother]
|
203
|
+
options = if params[:_addanother]
|
204
204
|
{ :action => 'new', :id => nil }
|
205
205
|
elsif params[:_continue]
|
206
206
|
{ :action => 'edit', :id => @item.id }
|
207
|
+
else
|
208
|
+
{ :action => nil, :id => nil }
|
207
209
|
end
|
208
210
|
|
209
211
|
message = params[:action].eql?('create') ? "%{model} successfully created." : "%{model} successfully updated."
|
data/lib/typus.rb
CHANGED
@@ -229,13 +229,15 @@ module Typus
|
|
229
229
|
def model_configuration_files
|
230
230
|
app = Typus.root.join("**", "*.yml")
|
231
231
|
plugins = Rails.root.join("vendor", "plugins", "*", "config", "typus", "**", "*.yml")
|
232
|
-
|
232
|
+
lib = Rails.root.join("lib", "*", "config", "typus", "**", "*.yml")
|
233
|
+
Dir[app, plugins, lib].reject { |f| f.match(/_roles.yml/) }.sort
|
233
234
|
end
|
234
235
|
|
235
236
|
def role_configuration_files
|
236
237
|
app = Typus.root.join("**", "*_roles.yml")
|
237
238
|
plugins = Rails.root.join("vendor", "plugins", "*", "config", "typus", "**", "*_roles.yml")
|
238
|
-
|
239
|
+
lib = Rails.root.join("lib", "*", "config", "typus", "**", "*_roles.yml")
|
240
|
+
Dir[app, plugins, lib].sort
|
239
241
|
end
|
240
242
|
|
241
243
|
def reload!
|
@@ -19,44 +19,29 @@ module Typus
|
|
19
19
|
# to be able to process large amounts of data.
|
20
20
|
#++
|
21
21
|
def generate_csv
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
options
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
when :belongs_to
|
39
|
-
record.send(key).try(:to_label)
|
40
|
-
else
|
41
|
-
record.send(key)
|
42
|
-
end
|
22
|
+
fields = @resource.typus_fields_for(:csv)
|
23
|
+
options = { :conditions => @conditions, :batch_size => 1000 }
|
24
|
+
|
25
|
+
data = ::CSV.generate do |csv|
|
26
|
+
csv << fields.keys.map { |k| @resource.human_attribute_name(k) }
|
27
|
+
@resource.find_in_batches(options) do |records|
|
28
|
+
records.each do |record|
|
29
|
+
csv << fields.map do |key, value|
|
30
|
+
case value
|
31
|
+
when :transversal
|
32
|
+
a, b = key.split(".")
|
33
|
+
record.send(a).send(b)
|
34
|
+
when :belongs_to
|
35
|
+
record.send(key).try(:to_label)
|
36
|
+
else
|
37
|
+
record.send(key)
|
43
38
|
end
|
44
|
-
|
39
|
+
end
|
45
40
|
end
|
46
41
|
end
|
47
|
-
|
48
|
-
send_file filename
|
49
|
-
else
|
50
|
-
not_allowed
|
51
42
|
end
|
52
|
-
end
|
53
43
|
|
54
|
-
|
55
|
-
export(:json)
|
56
|
-
end
|
57
|
-
|
58
|
-
def generate_xml
|
59
|
-
can_export?(:xml) ? export(:xml) : not_allowed
|
44
|
+
send_data data, :filename => "export-#{@resource.to_resource}-#{Time.zone.now.to_s(:number)}.csv"
|
60
45
|
end
|
61
46
|
|
62
47
|
def export(format)
|
@@ -69,10 +54,6 @@ module Typus
|
|
69
54
|
render format => @items.send("to_#{format}", :methods => methods, :except => except)
|
70
55
|
end
|
71
56
|
|
72
|
-
def can_export?(format)
|
73
|
-
@resource.typus_options_for(:export).extract_settings.include?(format.to_s)
|
74
|
-
end
|
75
|
-
|
76
57
|
end
|
77
58
|
end
|
78
59
|
end
|
data/lib/typus/version.rb
CHANGED
data/typus.gemspec
CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
|
|
28
28
|
|
29
29
|
s.add_dependency "bcrypt-ruby", "~> 3.0.0"
|
30
30
|
s.add_dependency "jquery-rails"
|
31
|
-
s.add_dependency "kaminari", "~> 0.
|
31
|
+
s.add_dependency "kaminari", "~> 0.13.0"
|
32
32
|
s.add_dependency "rails", ">= 3.1.3"
|
33
33
|
|
34
34
|
# Development dependencies are defined in the `Gemfile`.
|
@@ -23,29 +23,32 @@
|
|
23
23
|
|
24
24
|
/* @group Single Chosen */
|
25
25
|
.chzn-container-single .chzn-single {
|
26
|
-
background-color: #
|
27
|
-
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(0.5,
|
28
|
-
background-image: -webkit-linear-gradient(center bottom, #
|
29
|
-
background-image: -moz-linear-gradient(center bottom, #
|
30
|
-
background-image: -o-linear-gradient(top, #eeeeee
|
31
|
-
background-image: -ms-linear-gradient(top, #eeeeee
|
26
|
+
background-color: #ffffff;
|
27
|
+
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #f4f4f4), color-stop(0.48, #eeeeee), color-stop(0.5, #f6f6f6), color-stop(0.8, #ffffff));
|
28
|
+
background-image: -webkit-linear-gradient(center bottom, #f4f4f4 0%, #eeeeee 48%, #f6f6f6 50%, #ffffff 80%);
|
29
|
+
background-image: -moz-linear-gradient(center bottom, #f4f4f4 0%, #eeeeee 48%, #f6f6f6 50%, #ffffff 80%);
|
30
|
+
background-image: -o-linear-gradient(top, #f4f4f4 0%, #eeeeee 48%, #f6f6f6 50%, #ffffff 80%);
|
31
|
+
background-image: -ms-linear-gradient(top, #f4f4f4 0%, #eeeeee 48%, #f6f6f6 50%, #ffffff 80%);
|
32
32
|
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#ffffff',GradientType=0 );
|
33
|
-
background-image: linear-gradient(top, #eeeeee
|
34
|
-
-webkit-border-radius:
|
35
|
-
-moz-border-radius :
|
36
|
-
border-radius :
|
33
|
+
background-image: linear-gradient(top, #f4f4f4 0%, #eeeeee 48%, #f6f6f6 50%, #ffffff 80%);
|
34
|
+
-webkit-border-radius: 5px;
|
35
|
+
-moz-border-radius : 5px;
|
36
|
+
border-radius : 5px;
|
37
37
|
-moz-background-clip : padding;
|
38
38
|
-webkit-background-clip: padding-box;
|
39
39
|
background-clip : padding-box;
|
40
|
-
border: 1px solid #
|
40
|
+
border: 1px solid #aaaaaa;
|
41
|
+
-webkit-box-shadow: 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
|
42
|
+
-moz-box-shadow : 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
|
43
|
+
box-shadow : 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
|
41
44
|
display: block;
|
42
45
|
overflow: hidden;
|
43
46
|
white-space: nowrap;
|
44
47
|
position: relative;
|
45
|
-
height:
|
46
|
-
line-height:
|
48
|
+
height: 23px;
|
49
|
+
line-height: 23px;
|
47
50
|
padding: 0 0 0 8px;
|
48
|
-
color: #
|
51
|
+
color: #444444;
|
49
52
|
text-decoration: none;
|
50
53
|
}
|
51
54
|
.chzn-container-single .chzn-single span {
|
@@ -61,7 +64,7 @@
|
|
61
64
|
display: block;
|
62
65
|
position: absolute;
|
63
66
|
right: 26px;
|
64
|
-
top:
|
67
|
+
top: 6px;
|
65
68
|
width: 12px;
|
66
69
|
height: 13px;
|
67
70
|
font-size: 1px;
|
@@ -71,21 +74,6 @@
|
|
71
74
|
background-position: right -11px;
|
72
75
|
}
|
73
76
|
.chzn-container-single .chzn-single div {
|
74
|
-
-webkit-border-radius: 0 4px 4px 0;
|
75
|
-
-moz-border-radius : 0 4px 4px 0;
|
76
|
-
border-radius : 0 4px 4px 0;
|
77
|
-
-moz-background-clip : padding;
|
78
|
-
-webkit-background-clip: padding-box;
|
79
|
-
background-clip : padding-box;
|
80
|
-
background: #ccc;
|
81
|
-
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(0.6, #eee));
|
82
|
-
background-image: -webkit-linear-gradient(center bottom, #ccc 0%, #eee 60%);
|
83
|
-
background-image: -moz-linear-gradient(center bottom, #ccc 0%, #eee 60%);
|
84
|
-
background-image: -o-linear-gradient(bottom, #ccc 0%, #eee 60%);
|
85
|
-
background-image: -ms-linear-gradient(top, #cccccc 0%,#eeeeee 60%);
|
86
|
-
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cccccc', endColorstr='#eeeeee',GradientType=0 );
|
87
|
-
background-image: linear-gradient(top, #cccccc 0%,#eeeeee 60%);
|
88
|
-
border-left: 1px solid #aaa;
|
89
77
|
position: absolute;
|
90
78
|
right: 0;
|
91
79
|
top: 0;
|
@@ -94,7 +82,7 @@
|
|
94
82
|
width: 18px;
|
95
83
|
}
|
96
84
|
.chzn-container-single .chzn-single div b {
|
97
|
-
background: url('chosen-sprite.png') no-repeat 0
|
85
|
+
background: url('chosen-sprite.png') no-repeat 0 0;
|
98
86
|
display: block;
|
99
87
|
width: 100%;
|
100
88
|
height: 100%;
|
@@ -104,6 +92,7 @@
|
|
104
92
|
position: relative;
|
105
93
|
margin: 0;
|
106
94
|
white-space: nowrap;
|
95
|
+
z-index: 1010;
|
107
96
|
}
|
108
97
|
.chzn-container-single .chzn-search input {
|
109
98
|
background: #fff url('chosen-sprite.png') no-repeat 100% -22px;
|
@@ -112,7 +101,6 @@
|
|
112
101
|
background: url('chosen-sprite.png') no-repeat 100% -22px, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
|
113
102
|
background: url('chosen-sprite.png') no-repeat 100% -22px, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
|
114
103
|
background: url('chosen-sprite.png') no-repeat 100% -22px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
|
115
|
-
background: url('chosen-sprite.png') no-repeat 100% -22px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
|
116
104
|
background: url('chosen-sprite.png') no-repeat 100% -22px, linear-gradient(top, #ffffff 85%,#eeeeee 99%);
|
117
105
|
margin: 1px 0;
|
118
106
|
padding: 4px 20px 4px 5px;
|
@@ -143,9 +131,9 @@
|
|
143
131
|
background-image: -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
|
144
132
|
background-image: -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
|
145
133
|
background-image: -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
|
146
|
-
background-image: -ms-linear-gradient(top, #ffffff 85
|
134
|
+
background-image: -ms-linear-gradient(top, #ffffff 85%, #eeeeee 99%);
|
147
135
|
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 );
|
148
|
-
background-image: linear-gradient(top, #ffffff 85
|
136
|
+
background-image: linear-gradient(top, #ffffff 85%, #eeeeee 99%);
|
149
137
|
border: 1px solid #aaa;
|
150
138
|
margin: 0;
|
151
139
|
padding: 0;
|
@@ -168,6 +156,9 @@
|
|
168
156
|
color: #666;
|
169
157
|
background: transparent !important;
|
170
158
|
border: 0 !important;
|
159
|
+
font-family: sans-serif;
|
160
|
+
font-size: 100%;
|
161
|
+
height: 15px;
|
171
162
|
padding: 5px;
|
172
163
|
margin: 1px 0;
|
173
164
|
outline: 0;
|
@@ -187,17 +178,20 @@
|
|
187
178
|
-webkit-background-clip: padding-box;
|
188
179
|
background-clip : padding-box;
|
189
180
|
background-color: #e4e4e4;
|
190
|
-
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #
|
191
|
-
background-image: -webkit-linear-gradient(center bottom, #
|
192
|
-
background-image: -moz-linear-gradient(center bottom, #
|
193
|
-
background-image: -o-linear-gradient(
|
194
|
-
background-image: -ms-linear-gradient(top, #
|
195
|
-
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#
|
196
|
-
background-image: linear-gradient(top, #
|
181
|
+
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(0.48, #e8e8e8), color-stop(0.5, #f0f0f0), color-stop(0.8, #f4f4f4));
|
182
|
+
background-image: -webkit-linear-gradient(center bottom, #eeeeee 0%, #e8e8e8 48%, #f0f0f0 50%, #f4f4f4 80%);
|
183
|
+
background-image: -moz-linear-gradient(center bottom, #eeeeee 0%, #e8e8e8 48%, #f0f0f0 50%, #f4f4f4 80%);
|
184
|
+
background-image: -o-linear-gradient(top, #eeeeee 0%, #e8e8e8 48%, #f0f0f0 50%, #f4f4f4 80%);
|
185
|
+
background-image: -ms-linear-gradient(top, #eeeeee 0%, #e8e8e8 48%, #f0f0f0 50%, #f4f4f4 80%);
|
186
|
+
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#f4f4f4',GradientType=0 );
|
187
|
+
background-image: linear-gradient(top, #eeeeee 0%, #e8e8e8 48%, #f0f0f0 50%, #f4f4f4 80%);
|
188
|
+
-webkit-box-shadow: 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
|
189
|
+
-moz-box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
|
190
|
+
box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
|
197
191
|
color: #333;
|
198
|
-
border: 1px solid #
|
192
|
+
border: 1px solid #aaaaaa;
|
199
193
|
line-height: 13px;
|
200
|
-
padding: 3px
|
194
|
+
padding: 3px 20px 3px 5px;
|
201
195
|
margin: 3px 0 3px 5px;
|
202
196
|
position: relative;
|
203
197
|
}
|
@@ -228,7 +222,7 @@
|
|
228
222
|
/* @group Results */
|
229
223
|
.chzn-container .chzn-results {
|
230
224
|
margin: 0 4px 4px 0;
|
231
|
-
max-height:
|
225
|
+
max-height: 240px;
|
232
226
|
padding: 0 0 0 4px;
|
233
227
|
position: relative;
|
234
228
|
overflow-x: hidden;
|
@@ -240,8 +234,8 @@
|
|
240
234
|
}
|
241
235
|
.chzn-container .chzn-results li {
|
242
236
|
display: none;
|
243
|
-
line-height:
|
244
|
-
padding:
|
237
|
+
line-height: 15px;
|
238
|
+
padding: 5px 6px;
|
245
239
|
margin: 0;
|
246
240
|
list-style: none;
|
247
241
|
}
|
@@ -250,7 +244,14 @@
|
|
250
244
|
display: list-item;
|
251
245
|
}
|
252
246
|
.chzn-container .chzn-results .highlighted {
|
253
|
-
background: #3875d7;
|
247
|
+
background-color: #3875d7;
|
248
|
+
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.1, #2a62bc), color-stop(0.8, #3875d7));
|
249
|
+
background-image: -webkit-linear-gradient(center bottom, #2a62bc 10%, #3875d7 80%);
|
250
|
+
background-image: -moz-linear-gradient(center bottom, #2a62bc 10%, #3875d7 80%);
|
251
|
+
background-image: -o-linear-gradient(bottom, #2a62bc 10%, #3875d7 80%);
|
252
|
+
background-image: -ms-linear-gradient(top, #2a62bc 10%, #3875d7 80%);
|
253
|
+
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#2a62bc', endColorstr='#3875d7',GradientType=0 );
|
254
|
+
background-image: linear-gradient(top, #2a62bc 10%, #3875d7 80%);
|
254
255
|
color: #fff;
|
255
256
|
}
|
256
257
|
.chzn-container .chzn-results li em {
|
@@ -270,11 +271,34 @@
|
|
270
271
|
font-weight: bold;
|
271
272
|
}
|
272
273
|
.chzn-container .chzn-results .group-option {
|
273
|
-
padding-left:
|
274
|
+
padding-left: 15px;
|
274
275
|
}
|
275
276
|
.chzn-container-multi .chzn-drop .result-selected {
|
276
277
|
display: none;
|
277
278
|
}
|
279
|
+
.chzn-container .chzn-results-scroll {
|
280
|
+
background: white;
|
281
|
+
margin: 0px 4px;
|
282
|
+
position: absolute;
|
283
|
+
text-align: center;
|
284
|
+
width: 321px; /* This should by dynamic with js */
|
285
|
+
z-index: 1;
|
286
|
+
}
|
287
|
+
.chzn-container .chzn-results-scroll span {
|
288
|
+
display: inline-block;
|
289
|
+
height: 17px;
|
290
|
+
text-indent: -5000px;
|
291
|
+
width: 9px;
|
292
|
+
}
|
293
|
+
.chzn-container .chzn-results-scroll-down {
|
294
|
+
bottom: 0;
|
295
|
+
}
|
296
|
+
.chzn-container .chzn-results-scroll-down span {
|
297
|
+
background: url('chosen-sprite.png') no-repeat -4px -3px;
|
298
|
+
}
|
299
|
+
.chzn-container .chzn-results-scroll-up span {
|
300
|
+
background: url('chosen-sprite.png') no-repeat -22px -3px;
|
301
|
+
}
|
278
302
|
/* @end */
|
279
303
|
|
280
304
|
/* @group Active */
|
@@ -292,13 +316,13 @@
|
|
292
316
|
-o-box-shadow : 0 1px 0 #fff inset;
|
293
317
|
box-shadow : 0 1px 0 #fff inset;
|
294
318
|
background-color: #eee;
|
295
|
-
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, white), color-stop(0.
|
296
|
-
background-image: -webkit-linear-gradient(center bottom, white
|
297
|
-
background-image: -moz-linear-gradient(center bottom, white
|
298
|
-
background-image: -o-linear-gradient(bottom, white
|
299
|
-
background-image: -ms-linear-gradient(top, #ffffff
|
319
|
+
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.2, white), color-stop(0.8, #eeeeee));
|
320
|
+
background-image: -webkit-linear-gradient(center bottom, white 20%, #eeeeee 80%);
|
321
|
+
background-image: -moz-linear-gradient(center bottom, white 20%, #eeeeee 80%);
|
322
|
+
background-image: -o-linear-gradient(bottom, white 20%, #eeeeee 80%);
|
323
|
+
background-image: -ms-linear-gradient(top, #ffffff 20%,#eeeeee 80%);
|
300
324
|
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 );
|
301
|
-
background-image: linear-gradient(top, #ffffff
|
325
|
+
background-image: linear-gradient(top, #ffffff 20%,#eeeeee 80%);
|
302
326
|
-webkit-border-bottom-left-radius : 0;
|
303
327
|
-webkit-border-bottom-right-radius: 0;
|
304
328
|
-moz-border-radius-bottomleft : 0;
|
@@ -341,16 +365,15 @@
|
|
341
365
|
.chzn-rtl { direction:rtl;text-align: right; }
|
342
366
|
.chzn-rtl .chzn-single { padding-left: 0; padding-right: 8px; }
|
343
367
|
.chzn-rtl .chzn-single span { margin-left: 26px; margin-right: 0; }
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
border-radius : 4px 0 0 4px;
|
368
|
+
|
369
|
+
.chzn-rtl .chzn-single div { left: 3px; right: auto; }
|
370
|
+
.chzn-rtl .chzn-single abbr {
|
371
|
+
left: 26px;
|
372
|
+
right: auto;
|
350
373
|
}
|
351
374
|
.chzn-rtl .chzn-choices li { float: right; }
|
352
|
-
.chzn-rtl .chzn-choices .search-choice { padding: 3px
|
353
|
-
.chzn-rtl .chzn-choices .search-choice .search-choice-close { left:
|
375
|
+
.chzn-rtl .chzn-choices .search-choice { padding: 3px 5px 3px 19px; margin: 3px 5px 3px 0; }
|
376
|
+
.chzn-rtl .chzn-choices .search-choice .search-choice-close { left: 4px; right: auto; background-position: right top;}
|
354
377
|
.chzn-rtl.chzn-container-single .chzn-results { margin-left: 4px; margin-right: 0; padding-left: 0; padding-right: 4px; }
|
355
378
|
.chzn-rtl .chzn-results .group-option { padding-left: 0; padding-right: 20px; }
|
356
379
|
.chzn-rtl.chzn-container-active .chzn-single-with-drop div { border-right: none; }
|
@@ -361,8 +384,7 @@
|
|
361
384
|
background: url('chosen-sprite.png') no-repeat -38px -22px, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
|
362
385
|
background: url('chosen-sprite.png') no-repeat -38px -22px, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
|
363
386
|
background: url('chosen-sprite.png') no-repeat -38px -22px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
|
364
|
-
background: url('chosen-sprite.png') no-repeat -38px -22px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
|
365
387
|
background: url('chosen-sprite.png') no-repeat -38px -22px, linear-gradient(top, #ffffff 85%,#eeeeee 99%);
|
366
388
|
padding: 4px 5px 4px 20px;
|
367
389
|
}
|
368
|
-
/* @end */
|
390
|
+
/* @end */
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// Chosen, a Select Box Enhancer for jQuery and Protoype
|
2
2
|
// by Patrick Filler for Harvest, http://getharvest.com
|
3
3
|
//
|
4
|
-
// Version 0.9.
|
4
|
+
// Version 0.9.6
|
5
5
|
// Full source at https://github.com/harvesthq/chosen
|
6
6
|
// Copyright (c) 2011 Harvest http://getharvest.com
|
7
7
|
|
@@ -113,7 +113,7 @@
|
|
113
113
|
this.results_showing = false;
|
114
114
|
this.result_highlighted = null;
|
115
115
|
this.result_single_selected = null;
|
116
|
-
this.allow_single_deselect = (this.options.allow_single_deselect != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false;
|
116
|
+
this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false;
|
117
117
|
this.disable_search_threshold = this.options.disable_search_threshold || 0;
|
118
118
|
this.choices = 0;
|
119
119
|
return this.results_none_found = this.options.no_results_text || "No results match";
|
@@ -199,9 +199,9 @@
|
|
199
199
|
break;
|
200
200
|
case 27:
|
201
201
|
if (this.results_showing) {
|
202
|
-
|
202
|
+
this.results_hide();
|
203
203
|
}
|
204
|
-
|
204
|
+
return true;
|
205
205
|
case 9:
|
206
206
|
case 38:
|
207
207
|
case 40:
|
@@ -247,7 +247,7 @@
|
|
247
247
|
$ = jQuery;
|
248
248
|
$.fn.extend({
|
249
249
|
chosen: function(options) {
|
250
|
-
if ($.browser
|
250
|
+
if ($.browser.msie && ($.browser.version === "6.0" || $.browser.version === "7.0")) {
|
251
251
|
return this;
|
252
252
|
}
|
253
253
|
return $(this).each(function(input_field) {
|
@@ -288,9 +288,6 @@
|
|
288
288
|
this.form_field_jq.hide().after(container_div);
|
289
289
|
this.container = $('#' + this.container_id);
|
290
290
|
this.container.addClass("chzn-container-" + (this.is_multiple ? "multi" : "single"));
|
291
|
-
if (!this.is_multiple && this.form_field.options.length <= this.disable_search_threshold) {
|
292
|
-
this.container.addClass("chzn-container-single-nosearch");
|
293
|
-
}
|
294
291
|
this.dropdown = this.container.find('div.chzn-drop').first();
|
295
292
|
dd_top = this.container.height();
|
296
293
|
dd_width = this.f_width - get_side_border_padding(this.dropdown);
|
@@ -314,7 +311,10 @@
|
|
314
311
|
});
|
315
312
|
}
|
316
313
|
this.results_build();
|
317
|
-
|
314
|
+
this.set_tab_index();
|
315
|
+
return this.form_field_jq.trigger("liszt:ready", {
|
316
|
+
chosen: this
|
317
|
+
});
|
318
318
|
};
|
319
319
|
Chosen.prototype.register_observers = function() {
|
320
320
|
this.container.mousedown(__bind(function(evt) {
|
@@ -357,20 +357,24 @@
|
|
357
357
|
return this.search_field.focus(__bind(function(evt) {
|
358
358
|
return this.input_focus(evt);
|
359
359
|
}, this));
|
360
|
+
} else {
|
361
|
+
return this.container.click(__bind(function(evt) {
|
362
|
+
return evt.preventDefault();
|
363
|
+
}, this));
|
360
364
|
}
|
361
365
|
};
|
362
366
|
Chosen.prototype.search_field_disabled = function() {
|
363
|
-
this.is_disabled = this.form_field_jq.
|
367
|
+
this.is_disabled = this.form_field_jq[0].disabled;
|
364
368
|
if (this.is_disabled) {
|
365
369
|
this.container.addClass('chzn-disabled');
|
366
|
-
this.search_field.
|
370
|
+
this.search_field[0].disabled = true;
|
367
371
|
if (!this.is_multiple) {
|
368
372
|
this.selected_item.unbind("focus", this.activate_action);
|
369
373
|
}
|
370
374
|
return this.close_field();
|
371
375
|
} else {
|
372
376
|
this.container.removeClass('chzn-disabled');
|
373
|
-
this.search_field.
|
377
|
+
this.search_field[0].disabled = false;
|
374
378
|
if (!this.is_multiple) {
|
375
379
|
return this.selected_item.bind("focus", this.activate_action);
|
376
380
|
}
|
@@ -390,7 +394,7 @@
|
|
390
394
|
}
|
391
395
|
$(document).click(this.click_test_action);
|
392
396
|
this.results_show();
|
393
|
-
} else if (!this.is_multiple && evt && ($(evt.target) === this.selected_item || $(evt.target).parents("a.chzn-single").length)) {
|
397
|
+
} else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents("a.chzn-single").length)) {
|
394
398
|
evt.preventDefault();
|
395
399
|
this.results_toggle();
|
396
400
|
}
|
@@ -442,8 +446,7 @@
|
|
442
446
|
}
|
443
447
|
};
|
444
448
|
Chosen.prototype.results_build = function() {
|
445
|
-
var content, data,
|
446
|
-
startTime = new Date();
|
449
|
+
var content, data, _i, _len, _ref;
|
447
450
|
this.parsing = true;
|
448
451
|
this.results_data = root.SelectParser.select_to_array(this.form_field);
|
449
452
|
if (this.is_multiple && this.choices > 0) {
|
@@ -451,6 +454,11 @@
|
|
451
454
|
this.choices = 0;
|
452
455
|
} else if (!this.is_multiple) {
|
453
456
|
this.selected_item.find("span").text(this.default_text);
|
457
|
+
if (this.form_field.options.length <= this.disable_search_threshold) {
|
458
|
+
this.container.addClass("chzn-container-single-nosearch");
|
459
|
+
} else {
|
460
|
+
this.container.removeClass("chzn-container-single-nosearch");
|
461
|
+
}
|
454
462
|
}
|
455
463
|
content = '';
|
456
464
|
_ref = this.results_data;
|
@@ -465,7 +473,7 @@
|
|
465
473
|
} else if (data.selected && !this.is_multiple) {
|
466
474
|
this.selected_item.find("span").text(data.text);
|
467
475
|
if (this.allow_single_deselect) {
|
468
|
-
this.
|
476
|
+
this.single_deselect_control_build();
|
469
477
|
}
|
470
478
|
}
|
471
479
|
}
|
@@ -644,7 +652,7 @@
|
|
644
652
|
} else {
|
645
653
|
this.selected_item.find("span").first().text(item.text);
|
646
654
|
if (this.allow_single_deselect) {
|
647
|
-
this.
|
655
|
+
this.single_deselect_control_build();
|
648
656
|
}
|
649
657
|
}
|
650
658
|
if (!(evt.metaKey && this.is_multiple)) {
|
@@ -673,9 +681,13 @@
|
|
673
681
|
this.form_field_jq.trigger("change");
|
674
682
|
return this.search_field_scale();
|
675
683
|
};
|
684
|
+
Chosen.prototype.single_deselect_control_build = function() {
|
685
|
+
if (this.allow_single_deselect && this.selected_item.find("abbr").length < 1) {
|
686
|
+
return this.selected_item.find("span").first().after("<abbr class=\"search-choice-close\"></abbr>");
|
687
|
+
}
|
688
|
+
};
|
676
689
|
Chosen.prototype.winnow_results = function() {
|
677
|
-
var found, option, part, parts, regex, result_id, results, searchText,
|
678
|
-
startTime = new Date();
|
690
|
+
var found, option, part, parts, regex, result, result_id, results, searchText, startpos, text, zregex, _i, _j, _len, _len2, _ref;
|
679
691
|
this.no_results_clear();
|
680
692
|
results = 0;
|
681
693
|
searchText = this.search_field.val() === this.default_text ? "" : $('<div/>').text($.trim(this.search_field.val())).html();
|
@@ -686,10 +698,11 @@
|
|
686
698
|
option = _ref[_i];
|
687
699
|
if (!option.disabled && !option.empty) {
|
688
700
|
if (option.group) {
|
689
|
-
$('#' + option.dom_id).
|
701
|
+
$('#' + option.dom_id).css('display', 'none');
|
690
702
|
} else if (!(this.is_multiple && option.selected)) {
|
691
703
|
found = false;
|
692
704
|
result_id = option.dom_id;
|
705
|
+
result = $("#" + result_id);
|
693
706
|
if (regex.test(option.html)) {
|
694
707
|
found = true;
|
695
708
|
results += 1;
|
@@ -713,18 +726,16 @@
|
|
713
726
|
} else {
|
714
727
|
text = option.html;
|
715
728
|
}
|
716
|
-
|
717
|
-
|
718
|
-
}
|
719
|
-
this.result_activate($("#" + result_id));
|
729
|
+
result.html(text);
|
730
|
+
this.result_activate(result);
|
720
731
|
if (option.group_array_index != null) {
|
721
|
-
$("#" + this.results_data[option.group_array_index].dom_id).
|
732
|
+
$("#" + this.results_data[option.group_array_index].dom_id).css('display', 'list-item');
|
722
733
|
}
|
723
734
|
} else {
|
724
735
|
if (this.result_highlight && result_id === this.result_highlight.attr('id')) {
|
725
736
|
this.result_clear_highlight();
|
726
737
|
}
|
727
|
-
this.result_deactivate(
|
738
|
+
this.result_deactivate(result);
|
728
739
|
}
|
729
740
|
}
|
730
741
|
}
|
@@ -743,7 +754,7 @@
|
|
743
754
|
for (_i = 0, _len = lis.length; _i < _len; _i++) {
|
744
755
|
li = lis[_i];
|
745
756
|
li = $(li);
|
746
|
-
_results.push(li.hasClass("group-result") ? li.
|
757
|
+
_results.push(li.hasClass("group-result") ? li.css('display', 'auto') : !this.is_multiple || !li.hasClass("result-selected") ? this.result_activate(li) : void 0);
|
747
758
|
}
|
748
759
|
return _results;
|
749
760
|
};
|
@@ -826,6 +837,9 @@
|
|
826
837
|
this.backstroke_length = this.search_field.val().length;
|
827
838
|
break;
|
828
839
|
case 9:
|
840
|
+
if (this.results_showing && !this.is_multiple) {
|
841
|
+
this.result_select(evt);
|
842
|
+
}
|
829
843
|
this.mouse_on_container = false;
|
830
844
|
break;
|
831
845
|
case 13:
|
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: typus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.
|
4
|
+
version: 3.1.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-02-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bcrypt-ruby
|
16
|
-
requirement: &
|
16
|
+
requirement: &70159863686960 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 3.0.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70159863686960
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: jquery-rails
|
27
|
-
requirement: &
|
27
|
+
requirement: &70159863684320 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,21 +32,21 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70159863684320
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: kaminari
|
38
|
-
requirement: &
|
38
|
+
requirement: &70159863683580 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: 0.
|
43
|
+
version: 0.13.0
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70159863683580
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rails
|
49
|
-
requirement: &
|
49
|
+
requirement: &70159863682840 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: 3.1.3
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70159863682840
|
58
58
|
description: Ruby on Rails Admin Panel (Engine) to allow trusted users edit structured
|
59
59
|
content.
|
60
60
|
email:
|
@@ -333,7 +333,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
333
333
|
version: '0'
|
334
334
|
segments:
|
335
335
|
- 0
|
336
|
-
hash:
|
336
|
+
hash: -1439892809651849873
|
337
337
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
338
338
|
none: false
|
339
339
|
requirements:
|
@@ -342,10 +342,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
342
342
|
version: '0'
|
343
343
|
segments:
|
344
344
|
- 0
|
345
|
-
hash:
|
345
|
+
hash: -1439892809651849873
|
346
346
|
requirements: []
|
347
347
|
rubyforge_project: typus
|
348
|
-
rubygems_version: 1.8.
|
348
|
+
rubygems_version: 1.8.11
|
349
349
|
signing_key:
|
350
350
|
specification_version: 3
|
351
351
|
summary: Effortless backend interface for Ruby on Rails applications. (Admin scaffold
|