fullstack-admin 0.1.19 → 0.1.20
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/app/assets/javascripts/support/base.js.coffee +0 -1
- data/app/assets/javascripts/support/bootstrap.js.coffee +2 -1
- data/app/assets/javascripts/support/forms.js.coffee +1 -1
- data/app/assets/javascripts/support/nested_forms.js.coffee +29 -0
- data/app/assets/stylesheets/support/forms.css +16 -1
- data/app/helpers/admin_form_helper.rb +56 -7
- data/app/helpers/scaffold_helper.rb +10 -6
- data/app/views/admin/_nav.html.erb +2 -2
- data/app/views/admin/base/_associated_resources_table.html.erb +21 -0
- data/app/views/admin/base/_form.html.erb +2 -2
- data/app/views/admin/base/_nested_form.html.erb +63 -0
- data/app/views/admin/base/edit.html.erb +5 -3
- data/app/views/admin/base/index.html.erb +1 -1
- data/app/views/layouts/admin.html.erb +1 -1
- data/{locales → config/locales}/en.yml +3 -0
- data/{locales → config/locales}/it.yml +4 -0
- data/fullstack-admin.gemspec +7 -4
- data/lib/generators/fullstack/admin/locale_generator.rb +1 -1
- data/lib/generators/fullstack/admin/scaffold_generator.rb +1 -1
- data/lib/generators/fullstack/admin/templates/root/app/assets/stylesheets/admin/admin.css +0 -3
- data/lib/generators/fullstack/admin/templates/scaffold/views/_form.html.erb.tt +2 -2
- metadata +8 -5
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.20
|
@@ -0,0 +1,29 @@
|
|
1
|
+
$(document).ready ->
|
2
|
+
$('a.btn-delete-associated-resource').live 'click', ->
|
3
|
+
self = $(@)
|
4
|
+
associated_resource = $(@).closest(".associated-resource")
|
5
|
+
|
6
|
+
if !self.hasClass("active")
|
7
|
+
associated_resource.removeClass("deleted");
|
8
|
+
associated_resource.find("input.destroy-associated-resource").val('0')
|
9
|
+
else
|
10
|
+
associated_resource.addClass("deleted");
|
11
|
+
associated_resource.find("input.destroy-associated-resource").val('1')
|
12
|
+
|
13
|
+
autoupdate_labels = (associated_resources) ->
|
14
|
+
associated_resources.each ->
|
15
|
+
associated_resource = $(@)
|
16
|
+
label_input_id = associated_resource.data("label-input")
|
17
|
+
label_input = $("#" + label_input_id)
|
18
|
+
label_input.change ->
|
19
|
+
associated_resource.find(".associated-resource-label").text(label_input.val())
|
20
|
+
|
21
|
+
$(".btn-add-associated-resource").click ->
|
22
|
+
associated_resources = $(@).closest(".associated-resources")
|
23
|
+
associated_resources_index = associated_resources.find(".associated-resources-index")
|
24
|
+
resource_fields_template = associated_resources.find(".resource-fields-template")
|
25
|
+
new_id = new Date().getTime()
|
26
|
+
template_instance = $(resource_fields_template.html().replace(/___index___/g, new_id))
|
27
|
+
associated_resources_index.append(template_instance)
|
28
|
+
autoupdate_labels(associated_resources_index.find('.associated-resource:last'))
|
29
|
+
|
@@ -167,4 +167,19 @@ select,
|
|
167
167
|
|
168
168
|
.input {
|
169
169
|
margin-bottom: 18px;
|
170
|
-
}
|
170
|
+
}
|
171
|
+
|
172
|
+
|
173
|
+
.resource_updated_at {
|
174
|
+
font: italic 12px/36px Arial, Helvetica, sans-serif;
|
175
|
+
color: #888;
|
176
|
+
}
|
177
|
+
|
178
|
+
.associated-resource.deleted .fade-if-deleted {
|
179
|
+
opacity: 0.5;
|
180
|
+
}
|
181
|
+
|
182
|
+
.associated-resource.deleted .hide-if-deleted {
|
183
|
+
display: none
|
184
|
+
}
|
185
|
+
|
@@ -36,12 +36,13 @@ module AdminFormHelper
|
|
36
36
|
end
|
37
37
|
|
38
38
|
|
39
|
-
def resource_inputs(
|
40
|
-
model =
|
39
|
+
def resource_inputs(*args)
|
40
|
+
model = @target.object.class
|
41
41
|
options = args.extract_options!
|
42
42
|
|
43
43
|
only_attributes = options[:only] || []
|
44
|
-
|
44
|
+
|
45
|
+
except_attributes = options[:except] || model.protected_attributes.to_a + %W(created_at updated_at slug slugs lat lng position)
|
45
46
|
|
46
47
|
only_attributes.map! {|a| :"#{a}"}
|
47
48
|
except_attributes.map! {|a| :"#{a}"}
|
@@ -57,11 +58,22 @@ module AdminFormHelper
|
|
57
58
|
|
58
59
|
buff = ""
|
59
60
|
|
61
|
+
attachment_definitions = (model.attachment_definitions || {}).keys
|
62
|
+
attachment_columns = attachment_definitions.map {|a|
|
63
|
+
[:"#{a}_file_name", :"#{a}_file_size", :"#{a}_content_type", :"#{a}_updated_at"]
|
64
|
+
}.flatten
|
65
|
+
|
66
|
+
columns -= attachment_columns
|
67
|
+
columns += attachment_definitions
|
68
|
+
|
69
|
+
|
60
70
|
columns.each {|k|
|
61
|
-
k = "#{k}".gsub(/_ids?$/, "").to_sym
|
71
|
+
k = "#{k}".gsub(/_ids?$/, "").gsub(/_type$/, "").to_sym
|
62
72
|
assoc = model.reflect_on_association(k)
|
63
73
|
if assoc && assoc.belongs_to?
|
64
|
-
|
74
|
+
unless assoc.options[:polymorphic]
|
75
|
+
buff << @target.input(k, :as => :select)
|
76
|
+
end
|
65
77
|
else
|
66
78
|
buff << @target.input(k)
|
67
79
|
end
|
@@ -71,8 +83,8 @@ module AdminFormHelper
|
|
71
83
|
buff.html_safe
|
72
84
|
end
|
73
85
|
|
74
|
-
def resource_submit
|
75
|
-
@target.template.button (
|
86
|
+
def resource_submit
|
87
|
+
@target.template.button (@target.object.persisted? ? I18n.t('fullstack.admin.update', :default => "Update") : I18n.t('fullstack.admin.create', :default => "Create")),
|
76
88
|
:type => :primary,
|
77
89
|
:size => :large
|
78
90
|
end
|
@@ -81,6 +93,43 @@ module AdminFormHelper
|
|
81
93
|
@target.template.form_actions(&block)
|
82
94
|
end
|
83
95
|
|
96
|
+
def admin_fields_for(*args)
|
97
|
+
@target.semantic_fields_for(*args) do |f|
|
98
|
+
yield(FormBuilderDecorator.new(f))
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
def association_inputs(association)
|
103
|
+
@target.template.content_tag :div,:class => "well" do
|
104
|
+
admin_fields_for(association) do |f|
|
105
|
+
|
106
|
+
partial_name = association.to_s.singularize + "_fields"
|
107
|
+
|
108
|
+
if @target.template.partial?(partial_name)
|
109
|
+
@target.template.render(:partial => partial_name, :f => f)
|
110
|
+
else
|
111
|
+
f.resource_inputs
|
112
|
+
end
|
113
|
+
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
# def link_to_remove_fields(name)
|
119
|
+
# @target.hidden_field(:_destroy) + link_to_function(name, "remove_fields(this)")
|
120
|
+
# end
|
121
|
+
#
|
122
|
+
# def link_to_add_fields(name, association)
|
123
|
+
# new_object = @target.object.class.reflect_on_association(association).klass.new
|
124
|
+
#
|
125
|
+
# partial_name = association.to_s.singularize + "_fields"
|
126
|
+
# fields = admin_fields_for(association, new_object, :child_index => "new_#{association}") do |builder|
|
127
|
+
#
|
128
|
+
# end
|
129
|
+
# @target.template.link_to_function(name, "add_fields(this, \"#{association}\", \"#{escape_javascript(fields)}\")")
|
130
|
+
# end
|
131
|
+
|
132
|
+
|
84
133
|
end # ~
|
85
134
|
|
86
135
|
def admin_form_for(record_or_name_or_array, *args)
|
@@ -3,27 +3,30 @@ module ScaffoldHelper
|
|
3
3
|
buttons = []
|
4
4
|
|
5
5
|
if subject.can_show?(content) && lookup_context.exists?('show', lookup_context.prefixes, false)
|
6
|
-
buttons << link_to(t('fullstack.admin.show', :default => "Show"), self.send(:"#{scope}_#{
|
6
|
+
buttons << link_to(t('fullstack.admin.show', :default => "Show"), self.send(:"#{scope}_#{resource_name}_path", content), :class => "btn")
|
7
7
|
end
|
8
8
|
|
9
9
|
if subject.can_edit?(content)
|
10
|
-
buttons << link_to(t('fullstack.admin.edit', :default => "Edit"), self.send(:"edit_#{scope}_#{
|
10
|
+
buttons << link_to(t('fullstack.admin.edit', :default => "Edit"), self.send(:"edit_#{scope}_#{resource_name}_path", content), :class => "btn")
|
11
11
|
end
|
12
12
|
|
13
13
|
if subject.can_destroy?(content)
|
14
14
|
buttons << link_to(t('fullstack.admin.delete', :default => "Delete"),
|
15
|
-
self.send(:"#{scope}_#{
|
15
|
+
self.send(:"#{scope}_#{resource_name}_path", content),
|
16
16
|
:confirm => t('fullstack.admin.are_you_sure', :default => "Are you sure?"), :method => "delete",
|
17
17
|
:remote => true, :class => "btn hide btn-danger"
|
18
|
-
|
19
18
|
)
|
20
19
|
end
|
21
20
|
"#{buttons.join(' ')}".html_safe
|
22
21
|
end
|
23
22
|
|
23
|
+
def labelize_attribute_name(method)
|
24
|
+
label(:object, method).gsub("<label for=\"object_#{method}\">", "").gsub("</label>", "")
|
25
|
+
end
|
26
|
+
|
24
27
|
def sort_link(method)
|
25
28
|
method = "#{method}"
|
26
|
-
super(@search, method,
|
29
|
+
super(@search, method, labelize_attribute_name(method))
|
27
30
|
end
|
28
31
|
|
29
32
|
def app_name
|
@@ -35,7 +38,8 @@ module ScaffoldHelper
|
|
35
38
|
end
|
36
39
|
|
37
40
|
def title_column(model)
|
38
|
-
|
41
|
+
@_title_columns ||= {}
|
42
|
+
@_title_columns[model] ||= ( model.column_names.map{ |c| c.to_s } & %W(title name label browser_title seo_title seo_name key claim email) ).first
|
39
43
|
end
|
40
44
|
|
41
45
|
|
@@ -20,10 +20,10 @@
|
|
20
20
|
|
21
21
|
<% Fullstack::Admin.resources.each do |rog| %>
|
22
22
|
<% if rog.type == :group %>
|
23
|
-
|
23
|
+
<%= nav_header t(rog.name, :scope => 'fullstack.admin.groups', :default => rog.name.to_s.humanize) %>
|
24
24
|
|
25
25
|
<% elsif rog.type == :resource %>
|
26
|
-
<%= nav_item rog.name, [:admin, rog.name] %>
|
26
|
+
<%= nav_item t(rog.name, :scope => 'fullstack.admin.resources', :default => rog.name.to_s.humanize), [:admin, rog.name] %>
|
27
27
|
<% end %>
|
28
28
|
<% end %>
|
29
29
|
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<% association_class = f.object.class.reflect_on_association(association).klass %>
|
2
|
+
<%= f.inputs t(association, :scope => 'activerecord.models', :default => association.to_s.humanize), :class => "associated-resources" do %>
|
3
|
+
|
4
|
+
<table class="table table-bordered table-striped index-table associated-resources-index">
|
5
|
+
<tr><th><%= labelize_attribute_name(title_column(association_class)) %></th><th style="width:30%;"><%= t('fullstack.admin.actions', :default => "Actions") %></th></tr>
|
6
|
+
<% i = 0 %>
|
7
|
+
<%= f.admin_fields_for association do |f| %>
|
8
|
+
<%= render :partial => "nested_form", :locals => {:index => i, :f => f, :resource_name => resource_name, :association => association} %>
|
9
|
+
<% i += 1 %>
|
10
|
+
<% end %>
|
11
|
+
</table>
|
12
|
+
|
13
|
+
<script type="text/html" charset="utf-8" class="resource-fields-template">
|
14
|
+
<%= f.admin_fields_for(association, association_class.new, :child_index => "___index___") do |f| %>
|
15
|
+
<%= render :partial => "nested_form", :locals => {:index => "___index___", :f => f, :resource_name => resource_name, :association => association} %>
|
16
|
+
<% end %>
|
17
|
+
</script>
|
18
|
+
|
19
|
+
<%= button t('fullstack.admin.add', :default => "Add"), "javascript:void(0);", :class => "btn-add-associated-resource" %>
|
20
|
+
|
21
|
+
<% end %>
|
@@ -3,11 +3,11 @@
|
|
3
3
|
<%= f.errors %>
|
4
4
|
|
5
5
|
<%= f.inputs do %>
|
6
|
-
|
6
|
+
<%= f.resource_inputs %>
|
7
7
|
<% end -%>
|
8
8
|
|
9
9
|
<%= f.actions do %>
|
10
|
-
|
10
|
+
<%= f.resource_submit %>
|
11
11
|
<% end %>
|
12
12
|
|
13
13
|
<% end -%>
|
@@ -0,0 +1,63 @@
|
|
1
|
+
<% title_column_or_id = title_column(f.object.class) || "id" %>
|
2
|
+
<% resource_title = f.object.send(title_column_or_id) %>
|
3
|
+
|
4
|
+
<tr <%= 'data-new-record' if f.object.new_record? %> class="associated-resource" data-label-input="menu_links_attributes_<%= index %>_<%= title_column_or_id %>">
|
5
|
+
<td>
|
6
|
+
<div class="fade-if-deleted">
|
7
|
+
<% if f.object.persisted? %>
|
8
|
+
<span class='associated-resource-label'><%= resource_title %></span>
|
9
|
+
<% else %>
|
10
|
+
<span class='associated-resource-label'><i>[ <%= t('fullstack.admin.new_record', :default => "new record") %> ]</i></span>
|
11
|
+
<% end %>
|
12
|
+
</div>
|
13
|
+
</td>
|
14
|
+
<td>
|
15
|
+
|
16
|
+
<div class="modal hide" id="<%= resource_name %>_<%= association %>_fields_<%= index %>">
|
17
|
+
<div class="modal-header">
|
18
|
+
<button type="button" class="close" data-dismiss="modal">×</button>
|
19
|
+
<h3>
|
20
|
+
<%= t('fullstack.admin.edit', :default => "Edit") %>
|
21
|
+
|
22
|
+
<% if f.object.persisted? %>
|
23
|
+
"<span class='associated-resource-label'><%= resource_title %></span>"
|
24
|
+
<% else %>
|
25
|
+
"<span class='associated-resource-label'>[ <%= t('fullstack.admin.new_record', :default => "new record") %> ]</span>"
|
26
|
+
<% end %>
|
27
|
+
|
28
|
+
</h3>
|
29
|
+
</div>
|
30
|
+
<div class="modal-body">
|
31
|
+
<%= f.resource_inputs %>
|
32
|
+
<%= f.hidden_field(:_destroy, :class => "destroy-associated-resource") %>
|
33
|
+
</div>
|
34
|
+
<div class="modal-footer">
|
35
|
+
<a href="#" class="btn" data-dismiss="modal"><%= t('fullstack.admin.ok', :default => "Ok") %></a>
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
|
39
|
+
<span class="hide-if-deleted">
|
40
|
+
<% if f.object.errors.any? %>
|
41
|
+
<span data-toggle="popover" title="Your association contains some errors" data-content='<%= h("#{f.errors}") %>' ><%= icon :"warning-sign" %></span>
|
42
|
+
<% end %>
|
43
|
+
|
44
|
+
<% if subject.can_edit?(f.object) %>
|
45
|
+
<%= button t('fullstack.admin.edit', :default => "Edit"), "##{resource_name}_#{association}_fields_#{index}", :data => {:toggle => :modal} %>
|
46
|
+
<% end %>
|
47
|
+
</span>
|
48
|
+
|
49
|
+
<% if subject.can_destroy?(f.object) %>
|
50
|
+
<%= button(
|
51
|
+
t('fullstack.admin.delete', :default => "Delete"),
|
52
|
+
"javascript:void(0)",
|
53
|
+
:type => :danger, :class => "btn-delete-associated-resource", :"data-toggle" => :button
|
54
|
+
)
|
55
|
+
%>
|
56
|
+
<% end %>
|
57
|
+
|
58
|
+
|
59
|
+
|
60
|
+
</td>
|
61
|
+
</tr>
|
62
|
+
|
63
|
+
|
@@ -3,12 +3,14 @@
|
|
3
3
|
<% if content_for? :title -%>
|
4
4
|
<%= yield :title %>
|
5
5
|
<% else -%>
|
6
|
-
<%= t('fullstack.admin.edit', :default => "Edit") %>
|
6
|
+
<%= t('fullstack.admin.edit', :default => "Edit") %> "<%= title_for(current_resource) %>"
|
7
7
|
<% end -%>
|
8
8
|
</h1>
|
9
|
-
|
10
|
-
|
9
|
+
<% if current_resource.respond_to?(:updated_at) %>
|
10
|
+
<div class="resource_updated_at">
|
11
|
+
<%= t('fullstack.admin.last_updated', :default => "Last updated") %>: <%= distance_of_time_in_words_to_now(current_resource.updated_at) %> <%= t('fullstack.admin.ago', :default => "ago") %>
|
11
12
|
</div>
|
13
|
+
<% end %>
|
12
14
|
</div>
|
13
15
|
|
14
16
|
|
data/fullstack-admin.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "fullstack-admin"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.20"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["mcasimir"]
|
12
|
-
s.date = "2012-08-
|
12
|
+
s.date = "2012-08-17"
|
13
13
|
s.description = "Administration interface framework for fullstack"
|
14
14
|
s.email = "maurizio.cas@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -931,6 +931,7 @@ Gem::Specification.new do |s|
|
|
931
931
|
"app/assets/javascripts/support/facebox.js.coffee",
|
932
932
|
"app/assets/javascripts/support/forms.js.coffee",
|
933
933
|
"app/assets/javascripts/support/gmap.js.coffee",
|
934
|
+
"app/assets/javascripts/support/nested_forms.js.coffee",
|
934
935
|
"app/assets/javascripts/support/pickers.js.coffee",
|
935
936
|
"app/assets/javascripts/support/plupload.js.coffee",
|
936
937
|
"app/assets/javascripts/support/uploads.js.coffee",
|
@@ -974,8 +975,10 @@ Gem::Specification.new do |s|
|
|
974
975
|
"app/models/suspendable.rb",
|
975
976
|
"app/models/trackable.rb",
|
976
977
|
"app/views/admin/_nav.html.erb",
|
978
|
+
"app/views/admin/base/_associated_resources_table.html.erb",
|
977
979
|
"app/views/admin/base/_form.html.erb",
|
978
980
|
"app/views/admin/base/_index.html.erb",
|
981
|
+
"app/views/admin/base/_nested_form.html.erb",
|
979
982
|
"app/views/admin/base/destroy.js.coffee",
|
980
983
|
"app/views/admin/base/edit.html.erb",
|
981
984
|
"app/views/admin/base/index.html.erb",
|
@@ -983,6 +986,8 @@ Gem::Specification.new do |s|
|
|
983
986
|
"app/views/admin/base/update.js.coffee",
|
984
987
|
"app/views/layouts/admin.html.erb",
|
985
988
|
"config/initializers/formtastic_bootstrap_timeish_hack.rb",
|
989
|
+
"config/locales/en.yml",
|
990
|
+
"config/locales/it.yml",
|
986
991
|
"config/routes.rb",
|
987
992
|
"fullstack-admin.gemspec",
|
988
993
|
"lib/fullstack-admin.rb",
|
@@ -1003,8 +1008,6 @@ Gem::Specification.new do |s|
|
|
1003
1008
|
"lib/generators/fullstack/admin/templates/scaffold/controller.rb",
|
1004
1009
|
"lib/generators/fullstack/admin/templates/scaffold/views/_form.html.erb.tt",
|
1005
1010
|
"lib/generators/fullstack/admin/templates/scaffold/views/_index.html.erb.tt",
|
1006
|
-
"locales/en.yml",
|
1007
|
-
"locales/it.yml",
|
1008
1011
|
"vendor/assets/javascripts/ajax-chosen.js",
|
1009
1012
|
"vendor/assets/javascripts/angular.js",
|
1010
1013
|
"vendor/assets/javascripts/bootstrap.js",
|
@@ -4,7 +4,7 @@ module Fullstack
|
|
4
4
|
source_root File.expand_path('../../../../../locales', __FILE__)
|
5
5
|
|
6
6
|
def install
|
7
|
-
|
7
|
+
create_file Rails.root.join("config", "locales", "fullstack.admin.#{name}.yml")
|
8
8
|
end
|
9
9
|
|
10
10
|
end
|
@@ -86,7 +86,7 @@ str
|
|
86
86
|
end
|
87
87
|
|
88
88
|
def title_column
|
89
|
-
( model.column_names & %W(title name label browser_title seo_title seo_name key claim email) ).first
|
89
|
+
( model.column_names.map {|c| } & %W(title name label browser_title seo_title seo_name key claim email) ).first
|
90
90
|
end
|
91
91
|
|
92
92
|
def controller_class_name
|
@@ -3,11 +3,11 @@
|
|
3
3
|
<%%= f.errors %>
|
4
4
|
|
5
5
|
<%%= f.inputs do %>
|
6
|
-
|
6
|
+
<%%= f.resource_inputs %>
|
7
7
|
<%% end -%>
|
8
8
|
|
9
9
|
<%%= f.actions do %>
|
10
|
-
|
10
|
+
<%%= f.resource_submit %>
|
11
11
|
<%% end %>
|
12
12
|
|
13
13
|
<%% end -%>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fullstack-admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.20
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-08-
|
12
|
+
date: 2012-08-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -1189,6 +1189,7 @@ files:
|
|
1189
1189
|
- app/assets/javascripts/support/facebox.js.coffee
|
1190
1190
|
- app/assets/javascripts/support/forms.js.coffee
|
1191
1191
|
- app/assets/javascripts/support/gmap.js.coffee
|
1192
|
+
- app/assets/javascripts/support/nested_forms.js.coffee
|
1192
1193
|
- app/assets/javascripts/support/pickers.js.coffee
|
1193
1194
|
- app/assets/javascripts/support/plupload.js.coffee
|
1194
1195
|
- app/assets/javascripts/support/uploads.js.coffee
|
@@ -1232,8 +1233,10 @@ files:
|
|
1232
1233
|
- app/models/suspendable.rb
|
1233
1234
|
- app/models/trackable.rb
|
1234
1235
|
- app/views/admin/_nav.html.erb
|
1236
|
+
- app/views/admin/base/_associated_resources_table.html.erb
|
1235
1237
|
- app/views/admin/base/_form.html.erb
|
1236
1238
|
- app/views/admin/base/_index.html.erb
|
1239
|
+
- app/views/admin/base/_nested_form.html.erb
|
1237
1240
|
- app/views/admin/base/destroy.js.coffee
|
1238
1241
|
- app/views/admin/base/edit.html.erb
|
1239
1242
|
- app/views/admin/base/index.html.erb
|
@@ -1241,6 +1244,8 @@ files:
|
|
1241
1244
|
- app/views/admin/base/update.js.coffee
|
1242
1245
|
- app/views/layouts/admin.html.erb
|
1243
1246
|
- config/initializers/formtastic_bootstrap_timeish_hack.rb
|
1247
|
+
- config/locales/en.yml
|
1248
|
+
- config/locales/it.yml
|
1244
1249
|
- config/routes.rb
|
1245
1250
|
- fullstack-admin.gemspec
|
1246
1251
|
- lib/fullstack-admin.rb
|
@@ -1261,8 +1266,6 @@ files:
|
|
1261
1266
|
- lib/generators/fullstack/admin/templates/scaffold/controller.rb
|
1262
1267
|
- lib/generators/fullstack/admin/templates/scaffold/views/_form.html.erb.tt
|
1263
1268
|
- lib/generators/fullstack/admin/templates/scaffold/views/_index.html.erb.tt
|
1264
|
-
- locales/en.yml
|
1265
|
-
- locales/it.yml
|
1266
1269
|
- vendor/assets/javascripts/ajax-chosen.js
|
1267
1270
|
- vendor/assets/javascripts/angular.js
|
1268
1271
|
- vendor/assets/javascripts/bootstrap.js
|
@@ -1299,7 +1302,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1299
1302
|
version: '0'
|
1300
1303
|
segments:
|
1301
1304
|
- 0
|
1302
|
-
hash:
|
1305
|
+
hash: 1912159518853261136
|
1303
1306
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1304
1307
|
none: false
|
1305
1308
|
requirements:
|