ab_admin 0.3.5 → 0.3.6
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/Gemfile +3 -3
- data/TODO +2 -1
- data/ab_admin.gemspec +2 -2
- data/app/assets/javascripts/ab_admin/components/admin_assets.js.coffee +2 -22
- data/app/assets/javascripts/ab_admin/components/croppable_image.js.coffee +3 -3
- data/app/assets/javascripts/ab_admin/components/gmaps.js.coffee +0 -38
- data/app/assets/javascripts/ab_admin/components/in_place_edit.js.coffee +2 -1
- data/app/assets/javascripts/ab_admin/components/init_nested_filelds.js.coffee +1 -0
- data/app/assets/javascripts/ab_admin/core/init.js.coffee +2 -0
- data/app/assets/javascripts/ab_admin/core/pjax.js.coffee +6 -6
- data/app/assets/javascripts/ab_admin/core/ui_utils.js.coffee +7 -7
- data/app/assets/javascripts/ab_admin/core/utils.js.coffee +19 -1
- data/app/assets/javascripts/ab_admin/core/view_layout.js.coffee +44 -0
- data/app/assets/stylesheets/ab_admin/bootstrap_and_overrides.css.scss +22 -0
- data/app/assets/stylesheets/ab_admin/components/_base.css.scss +3 -3
- data/app/assets/stylesheets/ab_admin/components/_form.css.scss +1 -1
- data/app/assets/stylesheets/ab_admin/components/_navigation.css.scss +7 -1
- data/app/assets/stylesheets/ab_admin/components/_table_view.css.scss +4 -0
- data/app/assets/stylesheets/ab_admin/components/_view_layout.css.scss +65 -0
- data/app/assets/stylesheets/ab_admin/fileupload.css.scss +1 -0
- data/app/controllers/admin/base_controller.rb +30 -14
- data/app/controllers/admin/static_pages_controller.rb +3 -1
- data/app/views/admin/base/_search_layout.html.slim +2 -0
- data/app/views/admin/base/create.js.erb +2 -2
- data/app/views/admin/base/edit.js.erb +3 -1
- data/app/views/admin/base/index.html.slim +5 -0
- data/app/views/admin/base/new.js.erb +3 -1
- data/app/views/admin/base/update.js.erb +1 -1
- data/app/views/admin/fileupload/_file.html.slim +1 -1
- data/app/views/admin/fileupload/_video.html.slim +9 -0
- data/app/views/admin/fileupload/_vtmpl.html.slim +10 -0
- data/app/views/admin/shared/_batch_actions.html.slim +9 -3
- data/app/views/admin/shared/_breadcrumbs.html.slim +5 -6
- data/app/views/admin/shared/_flash.js.erb +3 -0
- data/app/views/admin/shared/inputs/_checkbox_tree.html.slim +14 -0
- data/app/views/admin/structures/_form.html.slim +5 -2
- data/app/views/layouts/admin/_footer.html.slim +1 -0
- data/app/views/layouts/admin/_navigation.html.slim +5 -7
- data/app/views/layouts/admin/application.html.slim +1 -1
- data/config/locales/en.yml +4 -10
- data/config/locales/it.yml +1 -8
- data/config/locales/ru.yml +4 -10
- data/features/dsl/export.feature +6 -6
- data/lib/ab_admin/concerns/utilities.rb +3 -3
- data/lib/ab_admin/controllers/head_options.rb +1 -0
- data/lib/ab_admin/core_ext/string.rb +3 -2
- data/lib/ab_admin/hooks/paginate_hooks.rb +1 -0
- data/lib/ab_admin/models/asset.rb +4 -0
- data/lib/ab_admin/models/attachment_file.rb +0 -4
- data/lib/ab_admin/models/type_model.rb +10 -0
- data/lib/ab_admin/models/user.rb +1 -1
- data/lib/ab_admin/utils.rb +2 -0
- data/lib/ab_admin/version.rb +1 -1
- data/lib/ab_admin/views/admin_helpers.rb +14 -6
- data/lib/ab_admin/views/admin_navigation_helpers.rb +4 -2
- data/lib/ab_admin/views/form_builder.rb +5 -2
- data/lib/ab_admin/views/helpers.rb +4 -0
- data/lib/ab_admin/views/inputs/ckeditor_input.rb +0 -1
- data/lib/generators/ab_admin/install/templates/config/nginx.conf +12 -7
- data/lib/generators/ab_admin/install/templates/models/structure.rb +2 -1
- data/lib/generators/ab_admin/resource/templates/_form.haml.erb +1 -1
- data/lib/generators/ab_admin/resource/templates/_form.slim.erb +1 -1
- metadata +12 -22
@@ -26,6 +26,7 @@ module AbAdmin
|
|
26
26
|
|
27
27
|
page_title.flatten.compact.uniq.join(options[:splitter])
|
28
28
|
end
|
29
|
+
@page_title = [I18n.t('page.page_title', page: options[:page]), @page_title].join(options[:splitter]) if options[:page]
|
29
30
|
@page_description = [I18n.t('page.prefix'), @page_description].compact.join(' - ')
|
30
31
|
end
|
31
32
|
|
@@ -1,7 +1,8 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
class String
|
3
|
-
#
|
4
|
-
LUCENE_ESCAPE_REGEX = /(\+|-|&&|\|\||!|\(|\)|{|}|\[|\]|`|"
|
3
|
+
# http://lucene.apache.org/core/old_versioned_docs/versions/2_9_1/queryparsersyntax.html
|
4
|
+
LUCENE_ESCAPE_REGEX = /(\+|-|&&|\|\||!|\(|\)|{|}|\[|\]|`|"|~|\?|:|\\)/
|
5
|
+
#LUCENE_ESCAPE_REGEX = /(\+|-|&&|\|\||!|\(|\)|{|}|\[|\]|`|"|~|\?|:|\\|\s)/
|
5
6
|
KEYBOARDS = {
|
6
7
|
en: 'qwertyuiop[]asdfghjkl;\'zxcvbnm,./',
|
7
8
|
ru: 'йцукенгшщзхъфывапролджэячсмитьбю/'
|
@@ -26,9 +26,19 @@ module AbAdmin
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def self.legal?(value)
|
29
|
+
ActiveSupport::Deprecation.warn('legal? id deprecated, use valid? instead')
|
29
30
|
all.map(&:id).include?(value)
|
30
31
|
end
|
31
32
|
|
33
|
+
def self.valid?(c_id)
|
34
|
+
all.map(&:id).include?(c_id.to_i)
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.valid_code?(code)
|
38
|
+
return unless code
|
39
|
+
codes.include?(code.to_sym)
|
40
|
+
end
|
41
|
+
|
32
42
|
end
|
33
43
|
end
|
34
44
|
end
|
data/lib/ab_admin/models/user.rb
CHANGED
data/lib/ab_admin/utils.rb
CHANGED
data/lib/ab_admin/version.rb
CHANGED
@@ -23,6 +23,7 @@ module AbAdmin
|
|
23
23
|
|
24
24
|
def admin_editable(item, attr, options=nil)
|
25
25
|
options = {} unless options.is_a?(Hash)
|
26
|
+
options[:type] ||= 'select' if options[:source]
|
26
27
|
options[:type] ||= case attr.to_s
|
27
28
|
when /_at$/
|
28
29
|
'date'
|
@@ -35,11 +36,15 @@ module AbAdmin
|
|
35
36
|
end
|
36
37
|
options[:source] ||= {'true' => 'yes', 'false' => 'no'} if options[:type] == 'select'
|
37
38
|
data = {
|
38
|
-
type: options[:type],
|
39
|
-
|
40
|
-
|
39
|
+
type: options[:type],
|
40
|
+
source: options[:source].try(:to_json),
|
41
|
+
model: resource_class.model_name.singular,
|
42
|
+
url: resource_path(item),
|
43
|
+
name: attr,
|
44
|
+
value: options[:value] || item[attr],
|
45
|
+
title: options[:title] || item[attr]
|
41
46
|
}
|
42
|
-
link_to admin_pretty_data(
|
47
|
+
link_to admin_pretty_data(data[:title].to_s).html_safe, '#', class: 'editable', data: data
|
43
48
|
end
|
44
49
|
|
45
50
|
def options_for_ckeditor(options = {})
|
@@ -102,8 +107,11 @@ module AbAdmin
|
|
102
107
|
image = item.send(options[:assoc])
|
103
108
|
return nil unless image
|
104
109
|
version = options[:version] || image.class.thumb_size
|
105
|
-
popover_data = {content: "<img class='image_link_popover popover_#{options[:assoc]}' src='#{image.url}'></img>", title: item
|
106
|
-
|
110
|
+
popover_data = {content: "<img class='image_link_popover popover_#{options[:assoc]}' src='#{image.url}'></img>", title: AbAdmin.display_name(item)}
|
111
|
+
|
112
|
+
html_options = options.delete(:html_options) || {}
|
113
|
+
html_options.reverse_merge!(rel: 'popover', remote: options[:remote], data: popover_data)
|
114
|
+
link_to image_tag(image.url(version)), options[:url], html_options
|
107
115
|
end
|
108
116
|
|
109
117
|
def item_image(item, assoc=:photo, size=:thumb)
|
@@ -176,12 +176,14 @@ module AbAdmin
|
|
176
176
|
end
|
177
177
|
|
178
178
|
def auto_edit_link(rec, opts = {})
|
179
|
-
return
|
179
|
+
return opts[:missing] unless rec
|
180
|
+
return if cannot?(:edit, rec)
|
180
181
|
admin_edit_link(rec, opts)
|
181
182
|
end
|
182
183
|
|
183
184
|
def auto_show_link(rec, opts = {})
|
184
|
-
return
|
185
|
+
return opts[:missing] unless rec
|
186
|
+
return if cannot?(:read, rec)
|
185
187
|
admin_show_link(rec, opts)
|
186
188
|
end
|
187
189
|
|
@@ -42,6 +42,9 @@ module AbAdmin
|
|
42
42
|
end
|
43
43
|
return association(attribute_name, options.merge(as: :select))
|
44
44
|
end
|
45
|
+
when :checkbox_tree
|
46
|
+
reflection = object.class.reflect_on_association(attribute_name)
|
47
|
+
return template.render 'admin/shared/inputs/checkbox_tree', attribute_name: attribute_name, reflection: reflection, f: self
|
45
48
|
end
|
46
49
|
|
47
50
|
attribute_name = "#{attribute_name}_#{options[:locale]}" if options[:locale]
|
@@ -85,8 +88,8 @@ module AbAdmin
|
|
85
88
|
</div>
|
86
89
|
#{template.capture(&block) if block_given?}
|
87
90
|
<div class="controls"><div id="#{prefix}_map" class="admin_map thumbnail"></div></div>
|
88
|
-
#{template.init_js(js)}
|
89
91
|
</div>
|
92
|
+
#{template.init_js(js)}
|
90
93
|
HTML
|
91
94
|
end
|
92
95
|
|
@@ -121,7 +124,7 @@ module AbAdmin
|
|
121
124
|
elsif options[:video]
|
122
125
|
script_options['allowedExtensions'] ||= %w(mp4 flv)
|
123
126
|
script_options['template_id'] = '#fileupload_vtmpl'
|
124
|
-
options[:asset_template] = '
|
127
|
+
options[:asset_template] = 'video'
|
125
128
|
end
|
126
129
|
script_options['allowedExtensions'] ||= %w(jpg jpeg png gif)
|
127
130
|
script_options['multiple'] ||= object.fileupload_multiple?(attribute_name)
|
@@ -4,7 +4,6 @@ module AbAdmin
|
|
4
4
|
class CkeditorInput < ::SimpleForm::Inputs::Base
|
5
5
|
def input
|
6
6
|
unless @builder.template.instance_variable_get(:@ckeditor_init)
|
7
|
-
#concat template.javascript_include_tag("/assets/ckeditor/init")
|
8
7
|
@builder.template.concat @builder.template.javascript_include_tag('/javascripts/ckeditor/init')
|
9
8
|
@builder.template.instance_variable_set(:@ckeditor_init, true)
|
10
9
|
end
|
@@ -44,14 +44,14 @@ server {
|
|
44
44
|
|
45
45
|
root <%= app_path %>/public;
|
46
46
|
|
47
|
-
# if (-f $document_root/maintenance.html) {
|
48
|
-
# rewrite ^(.*)$ /maintenance.html last;
|
49
|
-
# break;
|
50
|
-
# }
|
47
|
+
# if (-f $document_root/maintenance.html) {
|
48
|
+
# rewrite ^(.*)$ /maintenance.html last;
|
49
|
+
# break;
|
50
|
+
# }
|
51
51
|
|
52
|
-
# if ($host != 'www.<%= app_name %>.com' ) {
|
53
|
-
# rewrite ^/(.*)$ http://www.<%= app_name %>.com/$1 permanent;
|
54
|
-
# }
|
52
|
+
# if ($host != 'www.<%= app_name %>.com' ) {
|
53
|
+
# rewrite ^/(.*)$ http://www.<%= app_name %>.com/$1 permanent;
|
54
|
+
# }
|
55
55
|
|
56
56
|
location ~ ^/uploads|ckeditor_assets|images|javascripts|stylesheets|static/ {
|
57
57
|
expires max;
|
@@ -64,6 +64,11 @@ server {
|
|
64
64
|
}
|
65
65
|
|
66
66
|
location ~ ^/assets/ {
|
67
|
+
# Uncomment for non GET requests on /assets path
|
68
|
+
# if ($request_method != GET) {
|
69
|
+
# proxy_pass http://<%= app_name %>_upstream;
|
70
|
+
# break;
|
71
|
+
# }
|
67
72
|
gzip_static on; # to serve pre-gzipped version
|
68
73
|
expires max;
|
69
74
|
add_header Cache-Control public;
|
@@ -4,7 +4,8 @@ class Structure < ActiveRecord::Base
|
|
4
4
|
attr_accessible :kind, :position, :parent_id, :title, :redirect_url, :is_visible,
|
5
5
|
:structure_type, :position_type, :slug, :parent
|
6
6
|
|
7
|
-
has_one :picture, as: :assetable, dependent: :destroy
|
7
|
+
has_one :picture, as: :assetable, dependent: :destroy, conditions: {is_main: true}
|
8
|
+
has_many :pictures, as: :assetable, dependent: :destroy, conditions: {is_main: false}
|
8
9
|
|
9
10
|
fileuploads :picture
|
10
11
|
translates :title, :redirect_url
|
@@ -43,7 +43,7 @@
|
|
43
43
|
end
|
44
44
|
-%>
|
45
45
|
= admin_form_for @<%= singular_name %> do |f|
|
46
|
-
<% if model.translates? -%>
|
46
|
+
<% if model.respond_to?(:translates?) && model.translates? -%>
|
47
47
|
= f.locale_tabs do |l|
|
48
48
|
<% model.translated_columns_hash.each do |key, col| -%>
|
49
49
|
<%= input_by_col_loc(key, col) %>
|
@@ -43,7 +43,7 @@
|
|
43
43
|
end
|
44
44
|
-%>
|
45
45
|
= admin_form_for @<%= singular_name %> do |f|
|
46
|
-
<% if model.translates? -%>
|
46
|
+
<% if model.respond_to?(:translates?) && model.translates? -%>
|
47
47
|
= f.locale_tabs do |l|
|
48
48
|
<% model.translated_columns_hash.each do |key, col| -%>
|
49
49
|
<%= input_by_col_loc(key, col) %>
|
metadata
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
name: ab_admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.3.
|
5
|
+
version: 0.3.6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Alex Leschenko
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-05-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -96,7 +96,7 @@ dependencies:
|
|
96
96
|
requirements:
|
97
97
|
- - ~>
|
98
98
|
- !ruby/object:Gem::Version
|
99
|
-
version: 1.
|
99
|
+
version: 1.4.0
|
100
100
|
none: false
|
101
101
|
prerelease: false
|
102
102
|
name: inherited_resources
|
@@ -104,7 +104,7 @@ dependencies:
|
|
104
104
|
requirements:
|
105
105
|
- - ~>
|
106
106
|
- !ruby/object:Gem::Version
|
107
|
-
version: 1.
|
107
|
+
version: 1.4.0
|
108
108
|
none: false
|
109
109
|
type: :runtime
|
110
110
|
- !ruby/object:Gem::Dependency
|
@@ -571,22 +571,6 @@ dependencies:
|
|
571
571
|
version: '0'
|
572
572
|
none: false
|
573
573
|
type: :development
|
574
|
-
- !ruby/object:Gem::Dependency
|
575
|
-
version_requirements: !ruby/object:Gem::Requirement
|
576
|
-
requirements:
|
577
|
-
- - ! '>='
|
578
|
-
- !ruby/object:Gem::Version
|
579
|
-
version: '0'
|
580
|
-
none: false
|
581
|
-
prerelease: false
|
582
|
-
name: cucumber-rails
|
583
|
-
requirement: !ruby/object:Gem::Requirement
|
584
|
-
requirements:
|
585
|
-
- - ! '>='
|
586
|
-
- !ruby/object:Gem::Version
|
587
|
-
version: '0'
|
588
|
-
none: false
|
589
|
-
type: :development
|
590
574
|
description: Simple and real-life tested Rails::Engine admin interface
|
591
575
|
email:
|
592
576
|
- leschenko.al@gmail.com
|
@@ -639,6 +623,7 @@ files:
|
|
639
623
|
- app/assets/javascripts/ab_admin/core/search_form.js.coffee
|
640
624
|
- app/assets/javascripts/ab_admin/core/ui_utils.js.coffee
|
641
625
|
- app/assets/javascripts/ab_admin/core/utils.js.coffee
|
626
|
+
- app/assets/javascripts/ab_admin/core/view_layout.js.coffee
|
642
627
|
- app/assets/javascripts/ab_admin/inputs/datetime_input.js.coffee
|
643
628
|
- app/assets/javascripts/ab_admin/main.js
|
644
629
|
- app/assets/javascripts/i18n/translations.js
|
@@ -657,6 +642,7 @@ files:
|
|
657
642
|
- app/assets/stylesheets/ab_admin/components/_table_view.css.scss
|
658
643
|
- app/assets/stylesheets/ab_admin/components/_text_styles.css.scss
|
659
644
|
- app/assets/stylesheets/ab_admin/components/_translations.css.scss
|
645
|
+
- app/assets/stylesheets/ab_admin/components/_view_layout.css.scss
|
660
646
|
- app/assets/stylesheets/ab_admin/devise.css.scss
|
661
647
|
- app/assets/stylesheets/ab_admin/fileupload.css.scss
|
662
648
|
- app/assets/stylesheets/ab_admin/main.css.scss
|
@@ -699,6 +685,8 @@ files:
|
|
699
685
|
- app/views/admin/fileupload/_file.html.slim
|
700
686
|
- app/views/admin/fileupload/_ftmpl.html.slim
|
701
687
|
- app/views/admin/fileupload/_tmpl.html.slim
|
688
|
+
- app/views/admin/fileupload/_video.html.slim
|
689
|
+
- app/views/admin/fileupload/_vtmpl.html.slim
|
702
690
|
- app/views/admin/headers/_form.html.slim
|
703
691
|
- app/views/admin/locators/edit.html.slim
|
704
692
|
- app/views/admin/locators/show.html.slim
|
@@ -711,8 +699,10 @@ files:
|
|
711
699
|
- app/views/admin/shared/_breadcrumbs.html.slim
|
712
700
|
- app/views/admin/shared/_columns_hider.html.slim
|
713
701
|
- app/views/admin/shared/_flash.html.slim
|
702
|
+
- app/views/admin/shared/_flash.js.erb
|
714
703
|
- app/views/admin/shared/_locale_tabs.html.slim
|
715
704
|
- app/views/admin/shared/_save_buttons.html.slim
|
705
|
+
- app/views/admin/shared/inputs/_checkbox_tree.html.slim
|
716
706
|
- app/views/admin/static_pages/_form.html.slim
|
717
707
|
- app/views/admin/structures/_form.html.slim
|
718
708
|
- app/views/admin/users/_form.html.slim
|
@@ -1081,7 +1071,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1081
1071
|
version: '0'
|
1082
1072
|
segments:
|
1083
1073
|
- 0
|
1084
|
-
hash:
|
1074
|
+
hash: 218612203791956818
|
1085
1075
|
none: false
|
1086
1076
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1087
1077
|
requirements:
|
@@ -1090,7 +1080,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1090
1080
|
version: '0'
|
1091
1081
|
segments:
|
1092
1082
|
- 0
|
1093
|
-
hash:
|
1083
|
+
hash: 218612203791956818
|
1094
1084
|
none: false
|
1095
1085
|
requirements: []
|
1096
1086
|
rubyforge_project:
|