beautiful_scaffold 0.2.7 → 0.3.0.pre
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +18 -0
- data/Gemfile +2 -2
- data/README.rdoc +10 -0
- data/beautiful_scaffold.gemspec +1 -1
- data/lib/generators/beautiful_jointable_generator.rb +1 -1
- data/lib/generators/beautiful_locale_generator.rb +95 -7
- data/lib/generators/beautiful_scaffold_common_methods.rb +49 -12
- data/lib/generators/beautiful_scaffold_generator.rb +12 -22
- data/lib/generators/templates/app/assets/javascripts/application-bs.js +34 -0
- data/lib/generators/templates/app/assets/javascripts/beautiful_scaffold.js +123 -19
- data/lib/generators/templates/app/assets/javascripts/bootstrap-datetimepicker-for-beautiful-scaffold.js +42 -39
- data/lib/generators/templates/app/assets/javascripts/fixed_menu.js +19 -0
- data/lib/generators/templates/app/assets/stylesheets/application-bs.css +26 -0
- data/lib/generators/templates/app/assets/stylesheets/beautiful-scaffold.css.scss +46 -1
- data/lib/generators/templates/app/views/_form_habtm_tag.html.erb +3 -26
- data/lib/generators/templates/app/views/_mass_inserting.html.erb +2 -9
- data/lib/generators/templates/app/views/_modal_columns.html.erb +1 -29
- data/lib/generators/templates/app/views/dashboard.html.erb +1 -0
- data/lib/generators/templates/app/views/edit.html.erb +1 -1
- data/lib/generators/templates/app/views/index.html.erb +4 -8
- data/lib/generators/templates/app/views/layout.html.erb +40 -44
- data/lib/generators/templates/app/views/new.html.erb +1 -1
- data/lib/generators/templates/app/views/partials/_form_field.html.erb +8 -14
- data/lib/generators/templates/app/views/partials/_index_search.html.erb +1 -5
- data/lib/generators/templates/app/views/partials/_index_search_default_fields.html.erb +3 -0
- data/lib/generators/templates/app/views/partials/_show_field.html.erb +1 -1
- data/lib/generators/templates/app/views/partials/_sign_in_form.html.erb +0 -5
- data/lib/generators/templates/app/views/show.html.erb +1 -1
- data/lib/generators/templates/app/views/treeview.html.erb +9 -11
- metadata +9 -18
- data/lib/generators/templates/app/assets/images/glyphicons-halflings-white.png +0 -0
- data/lib/generators/templates/app/assets/images/glyphicons-halflings.png +0 -0
- data/lib/generators/templates/app/assets/javascripts/bootstrap-alert.js +0 -90
- data/lib/generators/templates/app/assets/javascripts/bootstrap-dropdown.js +0 -100
- data/lib/generators/templates/app/assets/javascripts/bootstrap-modal.js +0 -218
- data/lib/generators/templates/app/assets/javascripts/bootstrap-tooltip.js +0 -275
- data/lib/generators/templates/app/assets/javascripts/bootstrap.js +0 -2027
- data/lib/generators/templates/app/assets/javascripts/bootstrap.min.js +0 -6
- data/lib/generators/templates/app/assets/stylesheets/bootstrap-responsive.css +0 -1040
- data/lib/generators/templates/app/assets/stylesheets/bootstrap-responsive.min.css +0 -9
- data/lib/generators/templates/app/assets/stylesheets/bootstrap.css +0 -5624
- data/lib/generators/templates/app/assets/stylesheets/bootstrap.min.css +0 -9
- data/lib/generators/templates/app/views/_treeview_js.html.erb +0 -42
@@ -1,43 +1,46 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
$(
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
1
|
+
function datetimepicker_init(){
|
2
|
+
|
3
|
+
$('.dpicker').livequery(function(){
|
4
|
+
$(this).datepicker({ format : 'dd/mm/yyyy', language : $('html').attr("lang") }).on('changeDate', function(ev){
|
5
|
+
idday = '#' + $('#' + ev.currentTarget.id).data('id') + '_3i';
|
6
|
+
idmonth = '#' + $('#' + ev.currentTarget.id).data('id') + '_2i';
|
7
|
+
idyear = '#' + $('#' + ev.currentTarget.id).data('id') + '_1i';
|
8
|
+
$(idday).val(ev.date.getDate());
|
9
|
+
$(idmonth).val(ev.date.getMonth()+1);
|
10
|
+
$(idyear).val(ev.date.getFullYear());
|
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
|
+
});
|
10
20
|
});
|
11
|
-
$(
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
21
|
+
$('.add-on').live('click', function(){
|
22
|
+
try{
|
23
|
+
dpick = $(this).parent().find('.dpicker');
|
24
|
+
dpick.trigger('focus');
|
25
|
+
dpick.trigger('select');
|
26
|
+
}catch (e){
|
17
27
|
}
|
18
28
|
});
|
19
|
-
|
20
|
-
$(
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
$(idmin).val(tpickerdate.getMinutes());
|
29
|
+
$('.tpicker').livequery(function(){
|
30
|
+
$(this).timepicker({ template: 'modal', showMeridian: false, minuteStep: 1, defaultTime: false, showInputs: false, disableFocus: true }).on('change', function(ev){
|
31
|
+
tpickerdate = new Date("01/01/1970 " + ev.currentTarget.value);
|
32
|
+
idhour = '#' + $('#' + ev.currentTarget.id).data('id') + '_4i';
|
33
|
+
idmin = '#' + $('#' + ev.currentTarget.id).data('id') + '_5i';
|
34
|
+
$(idhour).val(tpickerdate.getHours());
|
35
|
+
$(idmin).val(tpickerdate.getMinutes());
|
36
|
+
});
|
37
|
+
$(this).change(function(){
|
38
|
+
if( !$(this).val() ){
|
39
|
+
id = '#' + $(this).data('id');
|
40
|
+
$(id + '_4i').val("");
|
41
|
+
$(id + '_5i').val("");
|
42
|
+
}
|
43
|
+
});
|
35
44
|
});
|
36
|
-
|
37
|
-
|
38
|
-
id = '#' + $(this).data('id');
|
39
|
-
$(id + '_4i').val("");
|
40
|
-
$(id + '_5i').val("");
|
41
|
-
}
|
42
|
-
});
|
43
|
-
});
|
45
|
+
|
46
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
function modify_dom_init(){
|
2
|
+
var span2 = $("body>div.container-fluid>div.row-fluid>div.span2");
|
3
|
+
span2.addClass("fixed visible-desktop");
|
4
|
+
span2.removeClass("span2");
|
5
|
+
|
6
|
+
span2.children("ul").removeClass("well");
|
7
|
+
|
8
|
+
var span10 = $("body>div.container-fluid>div.row-fluid>div.span10");
|
9
|
+
span10.addClass("filler");
|
10
|
+
span10.removeClass("span10");
|
11
|
+
|
12
|
+
var cnt2 = $("body>div.container-fluid").contents();
|
13
|
+
$("body>div.container-fluid").replaceWith(cnt2);
|
14
|
+
|
15
|
+
var cnt = $("body>div.row-fluid").contents();
|
16
|
+
$("body>div.row-fluid").replaceWith(cnt);
|
17
|
+
|
18
|
+
$('body').show();
|
19
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
+
* listed below.
|
4
|
+
*
|
5
|
+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
+
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
|
7
|
+
*
|
8
|
+
* You're free to add application-wide styles to this file and they'll appear at the top of the
|
9
|
+
* compiled file, but it's generally better to create a new file per style scope.
|
10
|
+
*
|
11
|
+
*= require_self
|
12
|
+
*= require reset
|
13
|
+
*= require datepicker
|
14
|
+
*= require timepicker
|
15
|
+
*= require beautiful-scaffold
|
16
|
+
*= require tagit-dark-grey
|
17
|
+
*= require colorpicker
|
18
|
+
*= require bootstrap-wysihtml5
|
19
|
+
*= require bootstrap_and_overrides
|
20
|
+
*= require markitup/skins/simple/style.css
|
21
|
+
*= require markitup/sets/bbcode/style.css
|
22
|
+
*= require markitup/sets/wiki/style.css
|
23
|
+
*= require markitup/sets/markdown/style.css
|
24
|
+
*= require markitup/sets/html/style.css
|
25
|
+
*= require markitup/sets/textile/style.css
|
26
|
+
*/
|
@@ -94,4 +94,49 @@ label.bs-label-ib{
|
|
94
94
|
label.bs-label-ib input{
|
95
95
|
margin-right:3px;
|
96
96
|
margin-top:0;
|
97
|
-
}
|
97
|
+
}
|
98
|
+
|
99
|
+
/* Fixed left menu */
|
100
|
+
|
101
|
+
.fixed {
|
102
|
+
width: 200px;
|
103
|
+
float: left;
|
104
|
+
}
|
105
|
+
.fixed + div {
|
106
|
+
margin-left: 200px;
|
107
|
+
padding-left:20px;
|
108
|
+
overflow: hidden;
|
109
|
+
min-height:500px;
|
110
|
+
background:white;
|
111
|
+
}
|
112
|
+
body {
|
113
|
+
padding-top:70px;
|
114
|
+
}
|
115
|
+
@media (max-width: 979px) {
|
116
|
+
.fixed + div {
|
117
|
+
margin-left: 0;
|
118
|
+
padding:10px;
|
119
|
+
}
|
120
|
+
body {
|
121
|
+
padding-top:0px;
|
122
|
+
}
|
123
|
+
}
|
124
|
+
html, body {
|
125
|
+
height: 100%;
|
126
|
+
}
|
127
|
+
.filler:after{
|
128
|
+
background-color:inherit;
|
129
|
+
bottom: 0;
|
130
|
+
content: "";
|
131
|
+
height: auto;
|
132
|
+
min-height: 100%;
|
133
|
+
left: 0;
|
134
|
+
margin:inherit;
|
135
|
+
right: 0;
|
136
|
+
position: absolute;
|
137
|
+
top: 0;
|
138
|
+
width: inherit;
|
139
|
+
z-index: -1;
|
140
|
+
}
|
141
|
+
|
142
|
+
#jstree-marker-line {pointer-events: none;}
|
@@ -11,11 +11,12 @@
|
|
11
11
|
}
|
12
12
|
# Example to put in a _form.html.erb
|
13
13
|
%>
|
14
|
+
<% path_namespace = '/' + namespace_bs if not namespace_bs.blank? %>
|
14
15
|
|
15
16
|
<div class="control-group">
|
16
17
|
<%= f.label plural_linked_model_name.to_sym, t(plural_linked_model_name.to_sym, :default => plural_linked_model_name.capitalize), :class => "control-label" %>
|
17
18
|
<div class="controls">
|
18
|
-
<ul id="<%= model_name %>_<%= linked_model_name %>_ids" name="<%= model_name %>[<%= linked_model_name %>_ids][]">
|
19
|
+
<ul class="bs-tagit" id="<%= model_name %>_<%= linked_model_name %>_ids" name="<%= model_name %>[<%= linked_model_name %>_ids][]" data-url="<%= path_namespace %>/<%= plural_linked_model_name %>/search_and_filter.json" data-param="q[<%= field_to_search_for_linked_model %>_cont]" data-result="caption">
|
19
20
|
<% begin %>
|
20
21
|
<% for elt in model_class.send(plural_linked_model_name) %>
|
21
22
|
<li data-value="<%= elt.id %>"><%= elt.caption %></li>
|
@@ -24,28 +25,4 @@
|
|
24
25
|
<% end %>
|
25
26
|
</ul>
|
26
27
|
</div>
|
27
|
-
</div>
|
28
|
-
<script type="text/javascript">
|
29
|
-
$('#<%= model_name %>_<%= linked_model_name %>_ids').tagit({
|
30
|
-
tagSource : function( request, response ) {
|
31
|
-
<% path_namespace = '/' + namespace_bs if not namespace_bs.blank? %>
|
32
|
-
$.ajax({
|
33
|
-
url: "<%= path_namespace %>/<%= plural_linked_model_name %>/search_and_filter.json",
|
34
|
-
type: "POST",
|
35
|
-
data: {
|
36
|
-
"q[<%= field_to_search_for_linked_model %>_cont]" : request.term,
|
37
|
-
"skip_save_search" : true
|
38
|
-
},
|
39
|
-
dataType: "json",
|
40
|
-
success: function( data ) {
|
41
|
-
response( $.map( data, function( item ) {
|
42
|
-
return { label: String(item.<%= field_to_search_for_linked_model %>), value: item.id };
|
43
|
-
}));
|
44
|
-
}
|
45
|
-
});
|
46
|
-
},
|
47
|
-
triggerKeys:['enter', 'comma', 'tab'],
|
48
|
-
select : true,
|
49
|
-
allowNewTags : false
|
50
|
-
});
|
51
|
-
</script>
|
28
|
+
</div>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<% formparams << namespace %>
|
4
4
|
<% end %>
|
5
5
|
<% formparams << model_name.camelize.constantize.new %>
|
6
|
-
<%= form_for formparams, :method => :post, :html => { :class => "well well-small form-horizontal mass-inserting" } do |f| %>
|
6
|
+
<%= form_for formparams, :method => :post, :html => { :class => "well well-small form-horizontal mass-inserting #{(params[:mass_inserting] ? 'setfocus' : '')}" } do |f| %>
|
7
7
|
<%= hidden_field_tag :mass_inserting, true %>
|
8
8
|
<% for col in model_columns %>
|
9
9
|
<div <%= visible_column(model_name, col, 'inline') %> class="col-<%= col %>">
|
@@ -31,13 +31,6 @@
|
|
31
31
|
</div>
|
32
32
|
<% end %>
|
33
33
|
<div style="display:inline;">
|
34
|
-
<%= f.submit t(:create, :default => "Create"), :class =>
|
34
|
+
<%= f.submit t(:create, :default => "Create"), :class => "btn" %>
|
35
35
|
</div>
|
36
|
-
<% end %>
|
37
|
-
|
38
|
-
<% if params[:mass_inserting] then %>
|
39
|
-
<script type="text/javascript">
|
40
|
-
elt = $('form.mass-inserting div[style*="inline"][class*="col"] .input-small').first();
|
41
|
-
$(elt).focus();
|
42
|
-
</script>
|
43
36
|
<% end %>
|
@@ -11,35 +11,7 @@
|
|
11
11
|
<% end %>
|
12
12
|
</div>
|
13
13
|
<div class="modal-footer">
|
14
|
-
<button type="button" class="btn btn-primary" id="filter-columns">Ok</button>
|
14
|
+
<button type="button" class="btn btn-primary" id="filter-columns" data-url="/<%= model_name %>/select_fields">Ok</button>
|
15
15
|
<button type="button" class="btn" id="cancel-filter-columns"><%= t(:cancel, :default => "Cancel") %></button>
|
16
16
|
</div>
|
17
|
-
<script type="text/javascript">
|
18
|
-
$('#filter-columns').on('click', function(){
|
19
|
-
var return_json = [];
|
20
|
-
$.each($('input[name^="field"]:checked'), function(index, value) {
|
21
|
-
return_json.push($(value).val());
|
22
|
-
});
|
23
|
-
$.ajax({
|
24
|
-
url: '/<%= model_name %>/select_fields',
|
25
|
-
data: { 'fields' : return_json },
|
26
|
-
success: function(data) {
|
27
|
-
$('table.table th[class^="col"], table.table td[class^="col"]').css('display', 'none');
|
28
|
-
$.each(return_json, function(index, value) {
|
29
|
-
$('table.table th.col-' + value + ', table.table td.col-' + value).css('display', 'table-cell');
|
30
|
-
});
|
31
|
-
$('div[class^="col"]').css('display', 'none');
|
32
|
-
$.each(return_json, function(index, value) {
|
33
|
-
$('div.col-' + value).css('display', 'inline');
|
34
|
-
});
|
35
|
-
$('#modal-columns').modal('hide');
|
36
|
-
}
|
37
|
-
});
|
38
|
-
return false;
|
39
|
-
});
|
40
|
-
$('#cancel-filter-columns').on('click', function(){
|
41
|
-
$('#modal-columns').modal('hide');
|
42
|
-
return false;
|
43
|
-
});
|
44
|
-
</script>
|
45
17
|
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<h2><%%= t(:dashboard, :default => 'Dashboard') %></h2>
|
@@ -1,9 +1,9 @@
|
|
1
|
-
<h2><%%= t(:listing, :default => "Listing") %> <%%=
|
1
|
+
<h2><%%= t(:listing, :default => "Listing") %> <%%= <%= i18n_t_m_p(singular_table_name) %> %></h2>
|
2
2
|
|
3
3
|
<p>
|
4
|
-
<%%= link_to '<i class="icon-plus"></i>'.html_safe + t(:new, :default => "New") + ' ' +
|
4
|
+
<%%= link_to '<i class="icon-plus"></i>'.html_safe + t(:new, :default => "New") + ' ' + <%= i18n_t_m(model) %>, new_<%= namespace_for_route %><%= singular_table_name %>_path, :class => "btn" %>
|
5
5
|
<%% if <%= model_camelize %>.columns.map(&:name).include?("<%= model %>_id") then %>
|
6
|
-
<%%= link_to '<i class="icon-folder-close"></i>'.html_safe + t(:treeview, :default => "Treeview") + ' ' +
|
6
|
+
<%%= link_to '<i class="icon-folder-close"></i>'.html_safe + t(:treeview, :default => "Treeview") + ' ' + <%= i18n_t_m(model) %>, treeview_<%= namespace_for_route %><%= model_pluralize %>_path, :class => "btn" %>
|
7
7
|
<%% end %>
|
8
8
|
</p>
|
9
9
|
|
@@ -46,11 +46,6 @@
|
|
46
46
|
</th>
|
47
47
|
<th>
|
48
48
|
<%%= check_box_tag :checkall, '' %>
|
49
|
-
<script type="text/javascript">
|
50
|
-
$('#checkall').click(function(){
|
51
|
-
$('.cbbatch').attr('checked', ($(this).attr('checked') != undefined));
|
52
|
-
});
|
53
|
-
</script>
|
54
49
|
</th>
|
55
50
|
<%= render_partial 'app/views/partials/_index_header.html.erb' %>
|
56
51
|
<!-- Beautiful_scaffold - AddField - Header - Do not remove -->
|
@@ -110,6 +105,7 @@
|
|
110
105
|
<div class="span3">
|
111
106
|
<%%= search_form_for @q, :url => <%= namespace_for_route + 'search_' + model_pluralize + '_path' %>, :html => { :class => "well well-small" }, :method => :post do |f| %>
|
112
107
|
<%= render_partial 'app/views/partials/_index_search.html.erb' %>
|
108
|
+
<%= render_partial 'app/views/partials/_index_search_default_fields.html.erb' %>
|
113
109
|
<!-- Beautiful_scaffold - AddField - Search - Do not remove -->
|
114
110
|
<%%= f.submit t(:filter, :default => "Filter"), :class => "btn btn-primary" %>
|
115
111
|
<%%= link_to t(:cancel, :default => "Cancel"), <%= namespace_for_route %><%= model_pluralize %>_path(:nosearch => "ok"), :class => "btn" %>
|
@@ -7,46 +7,45 @@
|
|
7
7
|
<meta name="description" content="Beautiful Scaffold">
|
8
8
|
<meta name="author" content="You or me Sylvain Claudel (http://blog.escarworld.com)">
|
9
9
|
|
10
|
-
<%%= stylesheet_link_tag "
|
11
|
-
|
12
|
-
body {
|
13
|
-
padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */
|
14
|
-
}
|
15
|
-
</style>
|
16
|
-
<%%= javascript_include_tag "application", "jquery.pjax" %>
|
17
|
-
<%%= javascript_include_tag "jquery.markitup.js" %>
|
18
|
-
<%%= javascript_include_tag "markitup/sets/default/set.js" %>
|
19
|
-
<%%= stylesheet_link_tag "markitup/skins/simple/style.css" %>
|
20
|
-
|
21
|
-
<% miufile = ["bbcode","wiki","markdown","html","textile"] %>
|
22
|
-
<%%= stylesheet_link_tag <%= miufile.map{ |code| "'markitup/sets/#{code}/style.css'" }.join(',') %> %>
|
23
|
-
<%%= javascript_include_tag <%= miufile.map{ |code| "'markitup/sets/#{code}/set.js'" }.join(',') %> %>
|
10
|
+
<%%= stylesheet_link_tag "application-bs" %>
|
11
|
+
<%%= javascript_include_tag "application-bs" %>
|
24
12
|
|
25
13
|
<%%= csrf_meta_tags %>
|
26
14
|
<%%= yield :head %>
|
27
15
|
</head>
|
28
|
-
<body>
|
29
|
-
<div class="
|
30
|
-
<div class="navbar
|
31
|
-
<div class="
|
32
|
-
<
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
<
|
37
|
-
<
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
16
|
+
<body style="display:none;">
|
17
|
+
<div class="navbar navbar-fixed-top">
|
18
|
+
<div class="navbar-inner">
|
19
|
+
<div class="container">
|
20
|
+
<a class="brand" href="#">
|
21
|
+
Beautiful-Scaffold
|
22
|
+
</a>
|
23
|
+
<ul class="nav">
|
24
|
+
<li class="active">
|
25
|
+
<a href="/">Home</a>
|
26
|
+
</li>
|
27
|
+
<li class="hidden-desktop">
|
28
|
+
<!-- Mobile navbar -->
|
29
|
+
<a href="#" class="nopjax" data-toggle="collapse" data-target=".nav-collapse">
|
30
|
+
<i class="icon-th-list"></i>
|
31
|
+
</a>
|
32
|
+
</li>
|
33
|
+
</ul>
|
34
|
+
<ul class="nav pull-right">
|
35
|
+
<li>
|
36
|
+
<!-- Beautiful_scaffold - Signin - Do not remove -->
|
37
|
+
</li>
|
38
|
+
</ul>
|
39
|
+
<div class="nav-collapse collapse">
|
40
|
+
<ul class="nav hidden-desktop">
|
41
|
+
<%% @nopjax = "nopjax" %>
|
42
|
+
<%%= render :partial => "layouts/beautiful_menu" %>
|
45
43
|
</ul>
|
46
44
|
</div>
|
47
45
|
</div>
|
48
46
|
</div>
|
49
|
-
|
47
|
+
</div>
|
48
|
+
<div class="container-fluid">
|
50
49
|
<div class="row-fluid">
|
51
50
|
<div class="span2">
|
52
51
|
<ul class="nav nav-list well">
|
@@ -92,19 +91,16 @@
|
|
92
91
|
$('<%%= @opened_modal %>').modal('show');
|
93
92
|
<%% end %>
|
94
93
|
</script>
|
95
|
-
|
96
|
-
<%%= javascript_include_tag "bootstrap.min", "bootstrap-alert", "bootstrap-datepicker" ,"bootstrap-timepicker", "bootstrap-dropdown", "bootstrap-modal", "bootstrap-tooltip", "bootstrap-colorpicker", "a-wysihtml5-0.3.0.min", "bootstrap-wysihtml5" %>
|
97
94
|
<script type="text/javascript">
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
95
|
+
;(function($){
|
96
|
+
$.fn.datepicker.dates['<%%= I18n.locale.to_s %>'] = {
|
97
|
+
days: <%%= (t("date.day_names") + [t("date.day_names").first]).map(&:capitalize).to_s.html_safe %>,
|
98
|
+
daysShort: <%%= (t("date.abbr_day_names") + [t("date.abbr_day_names").first]).map(&:capitalize).to_s.html_safe %>,
|
99
|
+
daysMin: <%%= (t("date.abbr_day_names") + [t("date.abbr_day_names").first]).map{ |d| d.capitalize[0..2] }.to_s.html_safe %>,
|
100
|
+
months: <%%= t("date.month_names")[1..12].map(&:capitalize).to_s.html_safe %>,
|
101
|
+
monthsShort: <%%= t("date.abbr_month_names")[1..12].map(&:capitalize).to_s.html_safe %>
|
102
|
+
};
|
103
|
+
}(jQuery));
|
107
104
|
</script>
|
108
|
-
<%%= javascript_include_tag "bootstrap-datetimepicker-for-beautiful-scaffold" %>
|
109
105
|
</body>
|
110
106
|
</html>
|