beautiful_scaffold 1.0.0.pre → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +9 -0
- data/Gemfile +1 -9
- data/README.rdoc +1 -1
- data/beautiful_scaffold.gemspec +1 -1
- data/lib/generators/beautiful_locale_generator.rb +24 -3
- data/lib/generators/beautiful_scaffold_common_methods.rb +47 -10
- data/lib/generators/beautiful_scaffold_generator.rb +61 -40
- data/lib/generators/templates/app/assets/javascripts/application-bs.js +3 -2
- data/lib/generators/templates/app/assets/javascripts/beautiful_scaffold.js +37 -1
- data/lib/generators/templates/app/assets/javascripts/bootstrap-datetimepicker-for-beautiful-scaffold.js +23 -44
- data/lib/generators/templates/app/assets/stylesheets/application-bs.css +1 -2
- data/lib/generators/templates/app/assets/stylesheets/beautiful-scaffold.css.scss +25 -1
- data/lib/generators/templates/app/controllers/base.rb +17 -7
- data/lib/generators/templates/app/controllers/master_base.rb +39 -25
- data/lib/generators/templates/app/helpers/beautiful_helper.rb +23 -9
- data/lib/generators/templates/app/helpers/model_helper.rb +14 -3
- data/lib/generators/templates/app/initializers/ransack.rb +16 -0
- data/lib/generators/templates/app/views/_mass_inserting.html.erb +3 -2
- data/lib/generators/templates/app/views/_modal_columns.html.erb +2 -2
- data/lib/generators/templates/app/views/index.html.erb +25 -3
- data/lib/generators/templates/app/views/layout.html.erb +0 -11
- data/lib/generators/templates/app/views/partials/_index_search.html.erb +1 -1
- data/lib/generators/templates/app/views/partials/_index_search_default_fields.html.erb +1 -1
- data/lib/generators/templates/app/views/treeview.html.erb +4 -4
- metadata +5 -6
- data/lib/generators/templates/app/assets/javascripts/bootstrap-datepicker.js +0 -834
- data/lib/generators/templates/app/assets/javascripts/bootstrap-timepicker.js +0 -797
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 22819b7aae444a86cc628089c52962012d24c031
|
4
|
+
data.tar.gz: 26aa274ae0fa88969e570ef22415ac490ef7e913
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e555f0e2242f97ead7b3ff4ed8b1260ea9bd73f66e6ea27498a514f7990b3aafb582cac388eac8a0a3663a83a1e7769a33ae6a672380c542e1c261448163345
|
7
|
+
data.tar.gz: 1408deef315e1e3d7a1fa84f7e9543a32c5c70db40138f186ec4368abbbf7f8bfde3ddd2de6283a212571046ac1028dcc02067ec0ef264a40ee1c2913b6b9d72
|
data/CHANGELOG
CHANGED
data/Gemfile
CHANGED
@@ -8,14 +8,6 @@ gem "will_paginate"
|
|
8
8
|
# Search and filter
|
9
9
|
gem "ransack"
|
10
10
|
# Pdf
|
11
|
-
gem 'prawn'
|
12
|
-
# Textile
|
13
|
-
gem 'RedCloth'
|
14
|
-
# BBCode
|
15
|
-
gem 'bb-ruby'
|
16
|
-
# Markdown
|
17
|
-
gem 'bluecloth'
|
18
|
-
# Markdown
|
19
|
-
gem 'rdiscount'
|
11
|
+
gem 'prawn'
|
20
12
|
# Clear html tag
|
21
13
|
gem 'sanitize'
|
data/README.rdoc
CHANGED
data/beautiful_scaffold.gemspec
CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "beautiful_scaffold"
|
6
|
-
s.version = "1.0.
|
6
|
+
s.version = "1.0.1"
|
7
7
|
s.platform = Gem::Platform::RUBY
|
8
8
|
s.summary = "Beautiful Scaffold generate fully customizable scaffold"
|
9
9
|
s.email = "claudel.sylvain@gmail.com"
|
@@ -6,6 +6,8 @@ class BeautifulLocaleGenerator < Rails::Generators::Base
|
|
6
6
|
source_root File.expand_path('../templates', __FILE__)
|
7
7
|
|
8
8
|
argument :name, :type => :string, :desc => "type of locale : fr OR en OR de OR ja all..."
|
9
|
+
|
10
|
+
class_option :mountable_engine, :default => nil
|
9
11
|
|
10
12
|
def install_locale
|
11
13
|
availablelocale = ["fr", "en", "ja"]
|
@@ -56,7 +58,15 @@ class BeautifulLocaleGenerator < Rails::Generators::Base
|
|
56
58
|
|
57
59
|
already_processed = { name.downcase => {}}
|
58
60
|
|
59
|
-
|
61
|
+
app_name = (Rails.root || engine_opt)
|
62
|
+
engine_or_apps = (Rails.application.class.parent_name || engine_opt).downcase
|
63
|
+
|
64
|
+
puts "===>"
|
65
|
+
puts app_name
|
66
|
+
puts "=======>"
|
67
|
+
puts engine_or_apps
|
68
|
+
|
69
|
+
filepath = File.join(app_name, 'config', 'locales', "#{engine_or_apps}.#{name.downcase}.yml")
|
60
70
|
begin
|
61
71
|
hi18n = YAML.load_file(filepath)
|
62
72
|
rescue
|
@@ -77,9 +87,20 @@ class BeautifulLocaleGenerator < Rails::Generators::Base
|
|
77
87
|
|
78
88
|
Dir.glob("app/models/**/*").each { |model_file|
|
79
89
|
puts model_file
|
80
|
-
next if File.directory?(model_file) or
|
90
|
+
next if File.directory?(model_file) or
|
91
|
+
File.basename(model_file).first == '.' or
|
92
|
+
model_file.include?('/concerns/') or
|
93
|
+
model_file.include?('pdf_report.rb') or
|
94
|
+
model_file.include?('application_record.rb')
|
95
|
+
|
81
96
|
model = File.basename(model_file, File.extname(model_file))
|
82
|
-
|
97
|
+
|
98
|
+
if !engine_opt.blank?
|
99
|
+
prefix = "#{engine_opt.camelize}::"
|
100
|
+
else
|
101
|
+
prefix = ''
|
102
|
+
end
|
103
|
+
klass = "#{prefix}#{model.camelize.constantize}"
|
83
104
|
|
84
105
|
begin
|
85
106
|
sorted_attr = klass.attribute_names.sort
|
@@ -3,6 +3,22 @@ module BeautifulScaffoldCommonMethods
|
|
3
3
|
|
4
4
|
private
|
5
5
|
|
6
|
+
#############
|
7
|
+
# Engine
|
8
|
+
#############
|
9
|
+
|
10
|
+
def engine_opt
|
11
|
+
options[:mountable_engine].to_s
|
12
|
+
end
|
13
|
+
|
14
|
+
def engine_name
|
15
|
+
engine_opt.blank? ? '' : "#{engine_opt}/"
|
16
|
+
end
|
17
|
+
|
18
|
+
def engine_camel
|
19
|
+
options[:mountable_engine].camelize
|
20
|
+
end
|
21
|
+
|
6
22
|
#############
|
7
23
|
# Namespace
|
8
24
|
#############
|
@@ -39,10 +55,18 @@ module BeautifulScaffoldCommonMethods
|
|
39
55
|
# Models
|
40
56
|
############
|
41
57
|
|
58
|
+
def model
|
59
|
+
model_opt.underscore
|
60
|
+
end
|
61
|
+
|
42
62
|
def model_camelize
|
43
63
|
model.camelize
|
44
64
|
end
|
45
65
|
|
66
|
+
def model_with_engine_camelize
|
67
|
+
(engine_name.blank? ? model.camelize : "#{engine_camel}::#{model_camelize}")
|
68
|
+
end
|
69
|
+
|
46
70
|
def model_pluralize
|
47
71
|
model.pluralize
|
48
72
|
end
|
@@ -156,16 +180,29 @@ module BeautifulScaffoldCommonMethods
|
|
156
180
|
end
|
157
181
|
|
158
182
|
def require_gems
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
183
|
+
gems = {
|
184
|
+
'less-rails' => '2.8.0',
|
185
|
+
'will_paginate' => nil, # v 3.1.5
|
186
|
+
'ransack' => '1.8.2',
|
187
|
+
'polyamorous' => '1.3.1',
|
188
|
+
'jquery-ui-rails' => nil,
|
189
|
+
'prawn' => '2.1.0',
|
190
|
+
'prawn-table' => '0.2.2',
|
191
|
+
'sanitize' => nil,
|
192
|
+
'twitter-bootstrap-rails' => '3.2.2',
|
193
|
+
'chardinjs-rails' => nil,
|
194
|
+
'momentjs-rails' => '>= 2.9.0',
|
195
|
+
'bootstrap3-datetimepicker-rails' => '~> 4.17.47'
|
196
|
+
}
|
197
|
+
|
198
|
+
# Si engine il faut mettre les gems dans le gemspec et faire le require
|
199
|
+
if !Dir.glob('./*.gemspec').empty?
|
200
|
+
puts "============> Engine : You must add gems to your main app \n #{gems.to_a.map{ |a| "gem '#{a[0]}'#{(a[1].nil? ? '' : ", '#{a[1]}'")} " }.join("\n")}"
|
201
|
+
end
|
202
|
+
|
203
|
+
gems.each{ |gem_to_add, version|
|
204
|
+
gem(gem_to_add, version)
|
205
|
+
}
|
169
206
|
end
|
170
207
|
|
171
208
|
end
|
@@ -13,11 +13,12 @@ class BeautifulScaffoldGenerator < Rails::Generators::Base
|
|
13
13
|
|
14
14
|
source_root File.expand_path('../templates', __FILE__)
|
15
15
|
|
16
|
-
argument :
|
16
|
+
argument :model_opt, :type => :string, :desc => "Name of model (singular)"
|
17
17
|
argument :myattributes, :type => :array, :default => [], :banner => "field:type field:type"
|
18
18
|
|
19
19
|
class_option :namespace, :default => nil
|
20
20
|
class_option :donttouchgem, :default => nil
|
21
|
+
class_option :mountable_engine, :default => nil
|
21
22
|
|
22
23
|
def install_gems
|
23
24
|
if options[:donttouchgem].blank? then
|
@@ -46,62 +47,73 @@ class BeautifulScaffoldGenerator < Rails::Generators::Base
|
|
46
47
|
|
47
48
|
def mimetype
|
48
49
|
if not File.exist?("app/controllers/beautiful_controller.rb") then
|
49
|
-
|
50
|
+
if File.exist?("config/initializers/mime_types.rb") then # For mountable engine
|
51
|
+
inject_into_file("config/initializers/mime_types.rb", 'Mime::Type.register_alias "application/pdf", :pdf' + "\n", :before => "# Be sure to restart your server when you modify this file." )
|
52
|
+
else
|
53
|
+
puts "============> Engine : You must add `Mime::Type.register_alias \"application/pdf\", :pdf` to your config/initializers/mime_types.rb main app !"
|
54
|
+
end
|
50
55
|
end
|
51
56
|
end
|
52
57
|
|
53
58
|
def generate_assets
|
54
59
|
stylesheetspath = "app/assets/stylesheets/"
|
60
|
+
stylesheetspath_dest = "#{stylesheetspath}#{engine_name}"
|
55
61
|
|
56
62
|
# Css
|
57
|
-
reset = "
|
63
|
+
reset = "reset.css"
|
58
64
|
bc_css = [
|
59
|
-
"
|
60
|
-
"
|
61
|
-
"
|
62
|
-
"
|
63
|
-
"
|
64
|
-
"#{stylesheetspath}colorpicker.css",
|
65
|
-
"#{stylesheetspath}bootstrap-wysihtml5.css"
|
65
|
+
"application-bs.css",
|
66
|
+
"beautiful-scaffold.css.scss",
|
67
|
+
"tagit-dark-grey.css",
|
68
|
+
"colorpicker.css",
|
69
|
+
"bootstrap-wysihtml5.css"
|
66
70
|
]
|
67
|
-
|
71
|
+
|
68
72
|
javascriptspath = "app/assets/javascripts/"
|
73
|
+
javascriptspath_dest = "#{javascriptspath}#{engine_name}"
|
74
|
+
|
75
|
+
[reset, bc_css].flatten.each{ |path|
|
76
|
+
copy_file "#{stylesheetspath}#{path}", "#{stylesheetspath_dest}#{path}"
|
77
|
+
}
|
69
78
|
|
70
79
|
# Js
|
71
80
|
bc_js = [
|
72
|
-
"
|
73
|
-
"
|
74
|
-
"
|
75
|
-
"
|
76
|
-
"
|
77
|
-
"
|
78
|
-
"
|
79
|
-
"
|
80
|
-
"
|
81
|
-
"
|
82
|
-
"#{javascriptspath}bootstrap-wysihtml5.js",
|
83
|
-
"#{javascriptspath}fixed_menu.js"
|
81
|
+
"application-bs.js",
|
82
|
+
"beautiful_scaffold.js",
|
83
|
+
"bootstrap-datetimepicker-for-beautiful-scaffold.js",
|
84
|
+
"jquery.jstree.js",
|
85
|
+
"jquery-barcode.js",
|
86
|
+
"tagit.js",
|
87
|
+
"bootstrap-colorpicker.js",
|
88
|
+
"a-wysihtml5-0.3.0.min.js",
|
89
|
+
"bootstrap-wysihtml5.js",
|
90
|
+
"fixed_menu.js"
|
84
91
|
]
|
85
92
|
|
86
|
-
[
|
87
|
-
copy_file path, path
|
93
|
+
[bc_js].flatten.each{ |path|
|
94
|
+
copy_file "#{javascriptspath}#{path}", "#{javascriptspath_dest}#{path}"
|
88
95
|
}
|
89
96
|
|
90
97
|
# Jstree theme
|
91
|
-
directory "
|
98
|
+
directory "#{stylesheetspath}themes", "#{stylesheetspath}themes"
|
92
99
|
|
93
100
|
# Images
|
94
101
|
dir_image = "app/assets/images"
|
95
|
-
|
102
|
+
dir_image_dest = "app/assets/images/#{engine_opt}"
|
103
|
+
directory dir_image, dir_image_dest
|
96
104
|
|
97
105
|
# Old method
|
98
106
|
#generate("bootstrap:install","static")
|
99
107
|
# New method
|
100
108
|
copy_file "#{stylesheetspath}bootstrap_and_overrides.css.less",
|
101
|
-
"#{
|
109
|
+
"#{stylesheetspath_dest}bootstrap_and_overrides.css.less"
|
102
110
|
|
103
111
|
# Precompile BS assets
|
104
|
-
|
112
|
+
if File.exist?("config/initializers/assets.rb") then # For mountable engine
|
113
|
+
inject_into_file("config/initializers/assets.rb", "Rails.application.config.assets.precompile += ['#{engine_name}application-bs.css','#{engine_name}application-bs.js']", after: /\z/m)
|
114
|
+
else
|
115
|
+
puts "============> Engine : You must add `Rails.application.config.assets.precompile += ['#{engine_name}application-bs.css','#{engine_name}application-bs.js']` to your config/initializers/assets.rb main app !"
|
116
|
+
end
|
105
117
|
end
|
106
118
|
|
107
119
|
def generate_layout
|
@@ -110,8 +122,8 @@ class BeautifulScaffoldGenerator < Rails::Generators::Base
|
|
110
122
|
template "app/views/_beautiful_menu.html.erb", "app/views/layouts/_beautiful_menu.html.erb"
|
111
123
|
end
|
112
124
|
|
113
|
-
empty_directory "app/views
|
114
|
-
template "app/views/dashboard.html.erb", "app/views
|
125
|
+
empty_directory "app/views/#{engine_name}beautiful"
|
126
|
+
template "app/views/dashboard.html.erb", "app/views/#{engine_name}beautiful/dashboard.html.erb"
|
115
127
|
copy_file "app/views/_modal_columns.html.erb", "app/views/layouts/_modal_columns.html.erb"
|
116
128
|
copy_file "app/views/_mass_inserting.html.erb", "app/views/layouts/_mass_inserting.html.erb"
|
117
129
|
|
@@ -126,7 +138,8 @@ class BeautifulScaffoldGenerator < Rails::Generators::Base
|
|
126
138
|
|
127
139
|
directory "app/models/concerns", "app/models/concerns"
|
128
140
|
|
129
|
-
|
141
|
+
gsub_file "app/models/#{engine_name}#{model}.rb", 'ActiveRecord::Base', 'ApplicationRecord' # Rails 4 -> 5
|
142
|
+
inject_into_file("app/models/#{engine_name}#{model}.rb",'
|
130
143
|
|
131
144
|
include DefaultSortingConcern
|
132
145
|
include FulltextConcern
|
@@ -149,7 +162,7 @@ class BeautifulScaffoldGenerator < Rails::Generators::Base
|
|
149
162
|
a,t = attr.split(':')
|
150
163
|
if ['references', 'reference'].include?(t) then
|
151
164
|
begin
|
152
|
-
inject_into_file("app/models/#{a}.rb", "\n has_many :#{model_pluralize}, :dependent => :nullify", :after => "ApplicationRecord")
|
165
|
+
inject_into_file("app/models/#{engine_name}#{a}.rb", "\n has_many :#{model_pluralize}, :dependent => :nullify", :after => "ApplicationRecord")
|
153
166
|
rescue
|
154
167
|
end
|
155
168
|
end
|
@@ -157,22 +170,26 @@ class BeautifulScaffoldGenerator < Rails::Generators::Base
|
|
157
170
|
end
|
158
171
|
|
159
172
|
def generate_controller
|
160
|
-
copy_file "app/controllers/master_base.rb", "app/controllers
|
161
|
-
dirs = ['app', 'controllers', options[:namespace]].compact
|
173
|
+
copy_file "app/controllers/master_base.rb", "app/controllers/#{engine_name}beautiful_controller.rb"
|
174
|
+
dirs = ['app', 'controllers', engine_name, options[:namespace]].compact
|
162
175
|
# Avoid to remove app/controllers directory (https://github.com/rivsc/Beautiful-Scaffold/issues/6)
|
163
176
|
empty_directory File.join(dirs) if not options[:namespace].blank?
|
164
|
-
|
177
|
+
dest_ctrl_file = File.join([dirs, "#{model_pluralize}_controller.rb"].flatten)
|
178
|
+
template "app/controllers/base.rb", dest_ctrl_file
|
165
179
|
end
|
166
180
|
|
167
181
|
def generate_helper
|
168
|
-
|
169
|
-
|
182
|
+
dest_bs_helper_file = "app/helpers/#{engine_name}beautiful_helper.rb"
|
183
|
+
template "app/helpers/beautiful_helper.rb", dest_bs_helper_file
|
184
|
+
|
185
|
+
dirs = ['app', 'helpers', engine_name, options[:namespace]].compact
|
170
186
|
empty_directory File.join(dirs)
|
171
|
-
|
187
|
+
dest_helper_file = File.join([dirs, "#{model_pluralize}_helper.rb"].flatten)
|
188
|
+
template "app/helpers/model_helper.rb", dest_helper_file
|
172
189
|
end
|
173
190
|
|
174
191
|
def generate_views
|
175
|
-
namespacedirs = ["app", "views", options[:namespace]].compact
|
192
|
+
namespacedirs = ["app", "views", engine_name, options[:namespace]].compact
|
176
193
|
empty_directory File.join(namespacedirs)
|
177
194
|
|
178
195
|
dirs = [namespacedirs, model_pluralize]
|
@@ -189,6 +206,10 @@ class BeautifulScaffoldGenerator < Rails::Generators::Base
|
|
189
206
|
copy_file "app/views/_form_habtm_tag.html.erb", "app/views/layouts/_form_habtm_tag.html.erb"
|
190
207
|
end
|
191
208
|
|
209
|
+
def install_ransack_intializer
|
210
|
+
copy_file "app/initializers/ransack.rb", "config/initializers/ransack.rb"
|
211
|
+
end
|
212
|
+
|
192
213
|
def install_willpaginate_renderer_for_bootstrap
|
193
214
|
copy_file "app/initializers/link_renderer.rb", "config/initializers/link_renderer.rb"
|
194
215
|
end
|
@@ -5,8 +5,9 @@
|
|
5
5
|
//= require turbolinks
|
6
6
|
//= require a-wysihtml5-0.3.0.min
|
7
7
|
//= require bootstrap-colorpicker
|
8
|
-
//= require
|
9
|
-
//= require
|
8
|
+
//= require moment
|
9
|
+
//= require moment/fr
|
10
|
+
//= require bootstrap-datetimepicker
|
10
11
|
//= require bootstrap-datetimepicker-for-beautiful-scaffold
|
11
12
|
//= require bootstrap-wysihtml5
|
12
13
|
//= require jquery.jstree
|
@@ -128,7 +128,7 @@ function bs_init(){
|
|
128
128
|
// Collapse without IDS (next)
|
129
129
|
$('body').on('click.collapse-next.data-api', '[data-toggle=collapse-next]', function() {
|
130
130
|
var $target = $(this).parent().next();
|
131
|
-
$target.
|
131
|
+
$target.collapse('toggle');
|
132
132
|
return false;
|
133
133
|
});
|
134
134
|
|
@@ -149,4 +149,40 @@ function bs_init(){
|
|
149
149
|
}catch (e){
|
150
150
|
}
|
151
151
|
|
152
|
+
// Toggle display Search
|
153
|
+
$(document).on('click','#hide-search-btn',function(){
|
154
|
+
$('div.index-main div.col-md-9').addClass('col-md-12');
|
155
|
+
$('div.index-main div.col-md-12').removeClass('col-md-9');
|
156
|
+
$('div.index-main div.col-md-3').hide();
|
157
|
+
$('#hide-search-btn').hide();
|
158
|
+
$('#show-search-btn').show();
|
159
|
+
});
|
160
|
+
$(document).on('click','#show-search-btn',function(){
|
161
|
+
$('div.index-main div.col-md-12').addClass('col-md-9');
|
162
|
+
$('div.index-main div.col-md-9').removeClass('col-md-12');
|
163
|
+
$('div.index-main div.col-md-3').show();
|
164
|
+
$('#hide-search-btn').show();
|
165
|
+
$('#show-search-btn').hide();
|
166
|
+
});
|
167
|
+
|
168
|
+
// Toggle display Menu
|
169
|
+
$(document).on('click','#hide-menu-btn',function(){
|
170
|
+
$('body div.fixed').addClass('hide-menu');
|
171
|
+
$('body div.filler').addClass('hide-menu');
|
172
|
+
$('body div.fixed').removeClass('show-menu');
|
173
|
+
$('body div.filler').removeClass('show-menu');
|
174
|
+
|
175
|
+
$('#hide-menu-btn').hide();
|
176
|
+
$('#show-menu-btn').show();
|
177
|
+
});
|
178
|
+
$(document).on('click','#show-menu-btn',function(){
|
179
|
+
$('body div.fixed').addClass('show-menu');
|
180
|
+
$('body div.filler').addClass('show-menu');
|
181
|
+
$('body div.fixed').removeClass('hide-menu');
|
182
|
+
$('body div.filler').removeClass('hide-menu');
|
183
|
+
|
184
|
+
$('#hide-menu-btn').show();
|
185
|
+
$('#show-menu-btn').hide();
|
186
|
+
});
|
187
|
+
|
152
188
|
}
|
@@ -1,48 +1,27 @@
|
|
1
1
|
function datetimepicker_init(){
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
$('#' + eltid + '_1i').val(ev.date.getFullYear()); // Year
|
11
|
-
});
|
12
|
-
$(this).change(function(){
|
13
|
-
if( !$(this).val() ){
|
14
|
-
id = '#' + $(this).data('id');
|
15
|
-
$(id + '_3i').val("");
|
16
|
-
$(id + '_2i').val("");
|
17
|
-
$(id + '_1i').val("");
|
18
|
-
}
|
19
|
-
});
|
20
|
-
$(this).trigger('focus');
|
21
|
-
$(this).trigger('select');
|
2
|
+
$(document).on('click', '.dpicker', function(e){
|
3
|
+
e.stopPropagation();
|
4
|
+
e.stopImmediatePropagation();
|
5
|
+
$(this).datetimepicker({ format : 'DD/MM/YYYY', locale : 'en' }).on('dp.change', function(elt){
|
6
|
+
var eltid = elt.currentTarget.dataset.id;
|
7
|
+
$('#' + eltid + '_3i').val(elt.date.date());
|
8
|
+
$('#' + eltid + '_2i').val(elt.date.month()+1);
|
9
|
+
$('#' + eltid + '_1i').val(elt.date.year());
|
22
10
|
});
|
23
|
-
$(
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
})
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
var eltid = ev.currentTarget.id;
|
35
|
-
//eltid = $('#' + ev.currentTarget.id).data('id');
|
36
|
-
$('#' + eltid + '_4i').val(tpickerdate.getHours()); // Hour
|
37
|
-
$('#' + eltid + '_5i').val(tpickerdate.getMinutes()); // Min
|
38
|
-
});
|
39
|
-
$(this).change(function(){
|
40
|
-
if( !$(this).val() ){
|
41
|
-
id = '#' + $(this).data('id');
|
42
|
-
$(id + '_4i').val("");
|
43
|
-
$(id + '_5i').val("");
|
44
|
-
}
|
45
|
-
});
|
46
|
-
$(this).click();
|
11
|
+
$(this).trigger('focus');
|
12
|
+
$(this).trigger('select');
|
13
|
+
return false;
|
14
|
+
});
|
15
|
+
$(document).on('click', '.tpicker', function(e){
|
16
|
+
e.stopPropagation();
|
17
|
+
e.stopImmediatePropagation();
|
18
|
+
$(this).datetimepicker({ format : 'HH:mm', locale : 'en' }).on('dp.change', function(elt){
|
19
|
+
var eltid = elt.currentTarget.dataset.id;
|
20
|
+
$('#' + eltid + '_4i').val(elt.date.hour());
|
21
|
+
$('#' + eltid + '_5i').val(elt.date.minute());
|
47
22
|
});
|
23
|
+
$(this).trigger('focus');
|
24
|
+
$(this).trigger('select');
|
25
|
+
return false;
|
26
|
+
});
|
48
27
|
}
|
@@ -55,7 +55,7 @@ $shadow-spinner:#0060CC;
|
|
55
55
|
height:30px;
|
56
56
|
margin:0 auto;
|
57
57
|
position:relative;
|
58
|
-
top:-
|
58
|
+
top:-40px;
|
59
59
|
-moz-animation:spinoffPulse 1s infinite linear;
|
60
60
|
-webkit-animation:spinoffPulse 1s infinite linear;
|
61
61
|
}
|
@@ -166,4 +166,28 @@ html, body {
|
|
166
166
|
}
|
167
167
|
.search-and-filter h3{
|
168
168
|
margin-top:0;
|
169
|
+
}
|
170
|
+
|
171
|
+
#modal-columns div.modal-body label{
|
172
|
+
display: inline-block;
|
173
|
+
margin-top: 0px;
|
174
|
+
margin-bottom: 0px;
|
175
|
+
margin-left: 20px;
|
176
|
+
}
|
177
|
+
.search-and-filter .form-group label{
|
178
|
+
margin-bottom: 0;
|
179
|
+
margin-top: 5px;
|
180
|
+
}
|
181
|
+
|
182
|
+
div.filler.show-menu{
|
183
|
+
margin-left: 200px;
|
184
|
+
}
|
185
|
+
div.fixed.show-menu{
|
186
|
+
display: block;
|
187
|
+
}
|
188
|
+
div.filler.hide-menu{
|
189
|
+
margin-left: 0;
|
190
|
+
}
|
191
|
+
div.fixed.hide-menu{
|
192
|
+
display: none !important;
|
169
193
|
}
|
@@ -1,4 +1,14 @@
|
|
1
1
|
# encoding : utf-8
|
2
|
+
<%
|
3
|
+
if !engine_name.blank?
|
4
|
+
b_module = "module #{engine_camel}"
|
5
|
+
e_module = "end"
|
6
|
+
else
|
7
|
+
b_module = ""
|
8
|
+
e_module = ""
|
9
|
+
end
|
10
|
+
%>
|
11
|
+
<%= b_module %>
|
2
12
|
class <%= namespace_for_class %><%= model_camelize.pluralize %>Controller < BeautifulController
|
3
13
|
|
4
14
|
before_action :load_<%= model %>, :only => [:show, :edit, :update, :destroy]
|
@@ -7,12 +17,12 @@ class <%= namespace_for_class %><%= model_camelize.pluralize %>Controller < Beau
|
|
7
17
|
#authorize_resource
|
8
18
|
|
9
19
|
def index
|
10
|
-
session[
|
11
|
-
session[
|
12
|
-
do_select_fields(
|
13
|
-
do_sort_and_paginate(
|
20
|
+
session['fields'] ||= {}
|
21
|
+
session['fields']['<%= model %>'] ||= (<%= model_camelize %>.columns.map(&:name) - ["id"])[0..4]
|
22
|
+
do_select_fields('<%= model %>')
|
23
|
+
do_sort_and_paginate('<%= model %>')
|
14
24
|
|
15
|
-
@q = <%= model_camelize %>.
|
25
|
+
@q = <%= model_camelize %>.ransack(
|
16
26
|
params[:q]
|
17
27
|
)
|
18
28
|
|
@@ -142,7 +152,7 @@ class <%= namespace_for_class %><%= model_camelize.pluralize %>Controller < Beau
|
|
142
152
|
# Selected with filter and search
|
143
153
|
do_sort_and_paginate(:<%= model %>)
|
144
154
|
|
145
|
-
@<%= model_pluralize %> = <%= model_camelize %>.
|
155
|
+
@<%= model_pluralize %> = <%= model_camelize %>.ransack(
|
146
156
|
params[:q]
|
147
157
|
).result(
|
148
158
|
:distinct => true
|
@@ -192,4 +202,4 @@ class <%= namespace_for_class %><%= model_camelize.pluralize %>Controller < Beau
|
|
192
202
|
params.require(:<%= model %>).permit(<%= model_camelize %>.permitted_attributes)
|
193
203
|
end
|
194
204
|
end
|
195
|
-
|
205
|
+
<%= e_module %>
|