standard_view 0.1.4 → 0.1.5
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.
- checksums.yaml +4 -4
- data/app/helpers/standard_view/application_helper.rb +24 -10
- data/app/views/application/_attributes_card.html.erb +15 -12
- data/app/views/application/edit.html.erb +1 -0
- data/app/views/application/new.html.erb +1 -0
- data/app/views/standard_view/_edit.html.erb +15 -0
- data/app/views/standard_view/_index.html.erb +2 -2
- data/app/views/standard_view/_model_form.html.erb +27 -0
- data/app/views/standard_view/_new.html.erb +15 -0
- data/config/locales/en.yml +16 -0
- data/config/locales/simple_form.en.yml +9 -0
- data/lib/standard_view/version.rb +1 -1
- metadata +10 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7aa2ea213099a10dc4cbc6ee2569b5ae9ee6f5f1241a2400fab425f36e045e07
|
4
|
+
data.tar.gz: a7bbfbdee602ab554a91fda869ff2f08f2fe3077260ca473eb967d134a72a683
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 99e998104b6fb9a16934278c777be8cb0d04e971271336b99cd5d7d68d698cc9791100c557c1337aa54cf9ce6f5e21045e121adb77369a54f0ff5152a36f569a
|
7
|
+
data.tar.gz: 01f5ac80bcd913f0e404362996f208046aea18284593df75f8200342d54c11cb349a8b576e4ff8b8b3c1e1504a1d39beb470a5fa1c2fdcc7375d0cd6a61d9a36
|
@@ -6,7 +6,14 @@ module StandardView
|
|
6
6
|
ActiveSupport::StringInquirer.new action_name
|
7
7
|
end
|
8
8
|
|
9
|
-
def
|
9
|
+
def actionable_name
|
10
|
+
return "new" if action_name == "create"
|
11
|
+
return "edit" if action_name == "update"
|
12
|
+
|
13
|
+
action_name
|
14
|
+
end
|
15
|
+
|
16
|
+
def active_for(**options)
|
10
17
|
"active" if on_page?(options)
|
11
18
|
end
|
12
19
|
|
@@ -18,17 +25,16 @@ module StandardView
|
|
18
25
|
|
19
26
|
def icon_for(reference, spin: false)
|
20
27
|
reference = reference.icon if reference.respond_to?(:icon)
|
21
|
-
definition =
|
22
|
-
|
23
|
-
|
24
|
-
reference.to_h
|
25
|
-
else
|
26
|
-
I18n.t("icons.#{reference}", default: nil) || reference
|
27
|
-
end
|
28
|
+
definition = icon_definition_for_reference(reference)
|
29
|
+
icon_tag(definition[:name], definition[:style], spin: spin)
|
30
|
+
end
|
28
31
|
|
32
|
+
def icon_definition_for_reference(reference)
|
33
|
+
definition = reference.to_h if reference.respond_to?(:to_h)
|
34
|
+
definition ||= I18n.t("icons.#{reference}", default: nil) || reference if reference.present?
|
35
|
+
definition ||= {}
|
29
36
|
definition = { name: definition } if definition.present? && !definition.respond_to?(:fetch)
|
30
|
-
|
31
|
-
icon_tag(definition[:name], definition[:style], spin: spin)
|
37
|
+
definition
|
32
38
|
end
|
33
39
|
|
34
40
|
def current_page
|
@@ -38,5 +44,13 @@ module StandardView
|
|
38
44
|
def icon_tag(name = nil, style = nil, spin: false)
|
39
45
|
content_tag(:i, "", class: "fa#{style || "s"} fa-#{name || "question"} #{"fa-spin" if spin}")
|
40
46
|
end
|
47
|
+
|
48
|
+
def link_to_destroy_with_confirmation_for_record(record, extra_classes: "")
|
49
|
+
link_to t("common.destroy"),
|
50
|
+
record,
|
51
|
+
class: "btn btn-danger #{extra_classes}",
|
52
|
+
method: :delete,
|
53
|
+
data: { confirm: t("common.confirm_destroy") }
|
54
|
+
end
|
41
55
|
end
|
42
56
|
end
|
@@ -1,18 +1,21 @@
|
|
1
1
|
<% cache material do %>
|
2
|
+
<% material_law = law(material) %>
|
3
|
+
|
4
|
+
<% unless content_for?(:attributes_action) %>
|
5
|
+
<% content_for(:attributes_action) do %>
|
6
|
+
<% if material_law.edit? %>
|
7
|
+
<%= link_to t("common.edit"), { action: :edit }, class: "btn btn-primary btn-sm float-right" %>
|
8
|
+
<% elsif material_law.destroy? %>
|
9
|
+
<%= link_to_destroy_with_confirmation_for_record(material, extra_classes: "btn-sm float-right") %>
|
10
|
+
<% end %>
|
11
|
+
|
12
|
+
<%= content_for(:extra_attributes_action) if content_for?(:extra_attributes_action) %>
|
13
|
+
<% end %>
|
14
|
+
<% end %>
|
15
|
+
|
2
16
|
<div class="card">
|
3
17
|
<div class="card-header">
|
4
|
-
|
5
|
-
<%#= content_for(:attributes_action) %>
|
6
|
-
<%# else %>
|
7
|
-
<%# if controller.action_methods.include?("edit") && (!record.respond_to?(:editable?) || record.editable?) %>
|
8
|
-
<%#= link_to t("edit"), { action: :edit }, class: "btn btn-primary btn-sm float-right" %>
|
9
|
-
<%# elsif controller.action_methods.include? "destroy" %>
|
10
|
-
<%# if (!record.respond_to?(:destroyable?) || record.destroyable?) %>
|
11
|
-
<%#= link_to t("destroy"), record, class: "btn btn-danger btn-sm float-right", method: :delete, data: { confirm: t("confirm_destroy") } %>
|
12
|
-
<%# end %>
|
13
|
-
<%# end %>
|
14
|
-
<%#= content_for(:extra_attributes_action) if content_for?(:extra_attributes_action) %>
|
15
|
-
<%# end %>
|
18
|
+
<%= content_for(:attributes_action) %>
|
16
19
|
|
17
20
|
<h4 class="mb-0"><%= t(".title") %></h4>
|
18
21
|
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render "standard_view/edit", record: @record %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render "standard_view/new", record: @record %>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<%# For the good-spirited and impossibly lazy developer, we attempt to jump-start with no code, assuming conventions. %>
|
2
|
+
<% if local_assigns[:material].nil? %>
|
3
|
+
<% record = "#{controller_name.singularize.camelize}".constantize.find(params[:id]) if local_assigns[:record].nil? %>
|
4
|
+
<% material = Material::Base.for(record) %>
|
5
|
+
<% end %>
|
6
|
+
|
7
|
+
<%# Title must remain outside the cache block or it will not be assigned properly (since it affects the page layout) %>
|
8
|
+
<% content_for(:title) { material.title } %>
|
9
|
+
<%= content_tag :main, id: "#{material.parameterized_title}-edit", class: "container" do %>
|
10
|
+
<header>
|
11
|
+
<%= render "standard_view/breadcrumbs", material: material %>
|
12
|
+
</header>
|
13
|
+
|
14
|
+
<%= render "standard_view/model_form", material: material %>
|
15
|
+
<% end %>
|
@@ -37,8 +37,8 @@
|
|
37
37
|
<header>
|
38
38
|
<%= render "standard_view/breadcrumbs", material: list if list.parent? %>
|
39
39
|
|
40
|
-
<% if on_page?(action: :index) %>
|
41
|
-
<%= link_to t("common.new"), { action: :new }, class: "btn btn-primary btn-lg float-right"
|
40
|
+
<% if on_page?(action: :index) && list_law.new? %>
|
41
|
+
<%= link_to t("common.new"), { action: :new }, class: "btn btn-primary btn-lg float-right" %>
|
42
42
|
<% end %>
|
43
43
|
|
44
44
|
<%= content_tag(:h5, class: "text-muted") { heading_for_model(list.parent) } if list.parent? %>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<% material_law = law(material) %>
|
2
|
+
<%= simple_form_for [ material.parent, material ], wrapper: :horizontal_form do |form| %>
|
3
|
+
<div class="card">
|
4
|
+
<div class="card-header">
|
5
|
+
<h4 class="mb-0"><%= t(".#{actionable_name}.title", title: material.title) %></h4>
|
6
|
+
</div>
|
7
|
+
<div class="card-body">
|
8
|
+
<% if lookup_context.template_exists?("form_fields", controller_name, true) %>
|
9
|
+
<%= render "form_fields", form: form %>
|
10
|
+
<% end %>
|
11
|
+
|
12
|
+
<% if lookup_context.template_exists?("#{actionable_name}_form_fields", controller_name, true) %>
|
13
|
+
<%= render "#{actionable_name}_form_fields", form: form %>
|
14
|
+
<% end %>
|
15
|
+
</div>
|
16
|
+
<div class="card-footer">
|
17
|
+
<div class="row">
|
18
|
+
<div class="col-6">
|
19
|
+
<%= link_to_destroy_with_confirmation_for_record(material) if material.persisted? && material_law.destroy? %>
|
20
|
+
</div>
|
21
|
+
<div class="col-6 text-right">
|
22
|
+
<%= form.button :submit, class: "btn-primary" %>
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
<% end %>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<%# For the good-spirited and impossibly lazy developer, we attempt to jump-start with no code, assuming conventions. %>
|
2
|
+
<% if local_assigns[:material].nil? %>
|
3
|
+
<% record = "#{controller_name.singularize.camelize}".constantize.new if local_assigns[:record].nil? %>
|
4
|
+
<% material = Material::Base.for(record) %>
|
5
|
+
<% end %>
|
6
|
+
|
7
|
+
<%# Title must remain outside the cache block or it will not be assigned properly (since it affects the page layout) %>
|
8
|
+
<% content_for(:title) { material.title } %>
|
9
|
+
<%= content_tag :main, id: "#{material.parameterized_title}-new", class: "container" do %>
|
10
|
+
<header>
|
11
|
+
<%= render "standard_view/breadcrumbs", material: material %>
|
12
|
+
</header>
|
13
|
+
|
14
|
+
<%= render "standard_view/model_form", material: material %>
|
15
|
+
<% end %>
|
data/config/locales/en.yml
CHANGED
@@ -1,12 +1,28 @@
|
|
1
1
|
en:
|
2
2
|
common:
|
3
3
|
new: New
|
4
|
+
edit: Edit
|
4
5
|
overview: Overview
|
6
|
+
destroy: Destroy
|
7
|
+
confirm_destroy: Are you sure you want to destroy this? This cannot be undone!
|
8
|
+
record_created: "%{model_name} created successfully."
|
9
|
+
record_updated: "%{model_name} updated successfully."
|
10
|
+
record_destroyed: "%{model_name} destroyed successfully."
|
11
|
+
error_destroying_record: "%{model_name} could not be destroyed!"
|
5
12
|
application:
|
6
13
|
title: Example Title
|
7
14
|
separator: "|"
|
8
15
|
brand: Example Brand
|
9
16
|
attributes_card:
|
10
17
|
title: Attributes
|
18
|
+
standard_view:
|
19
|
+
paginated_collection:
|
20
|
+
empty: There are no records.
|
21
|
+
filtered_out: There are no records matching the current filter.
|
22
|
+
model_form:
|
23
|
+
new:
|
24
|
+
title: New %{title}
|
25
|
+
edit:
|
26
|
+
title: Edit %{title}
|
11
27
|
icons:
|
12
28
|
masthead_nav_menu: user
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: standard_view
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Garside
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-02-
|
11
|
+
date: 2020-02-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -30,7 +30,7 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.3.
|
33
|
+
version: 0.3.4
|
34
34
|
- - "<"
|
35
35
|
- !ruby/object:Gem::Version
|
36
36
|
version: '1.0'
|
@@ -40,7 +40,7 @@ dependencies:
|
|
40
40
|
requirements:
|
41
41
|
- - ">="
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: 0.3.
|
43
|
+
version: 0.3.4
|
44
44
|
- - "<"
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '1.0'
|
@@ -288,14 +288,19 @@ files:
|
|
288
288
|
- app/views/application/_standard_stylesheets.html.erb
|
289
289
|
- app/views/application/_stylesheet_font_awesome.html.erb
|
290
290
|
- app/views/application/_stylesheets.html.erb
|
291
|
+
- app/views/application/edit.html.erb
|
291
292
|
- app/views/application/index.html.erb
|
293
|
+
- app/views/application/new.html.erb
|
292
294
|
- app/views/application/show.html.erb
|
293
295
|
- app/views/layouts/standard_view/application.html.erb
|
294
296
|
- app/views/standard_view/_breadcrumbs.html.erb
|
297
|
+
- app/views/standard_view/_edit.html.erb
|
295
298
|
- app/views/standard_view/_index.html.erb
|
296
299
|
- app/views/standard_view/_list_item.html.erb
|
300
|
+
- app/views/standard_view/_model_form.html.erb
|
297
301
|
- app/views/standard_view/_navigation_aside.html.erb
|
298
302
|
- app/views/standard_view/_navigation_tabs.html.erb
|
303
|
+
- app/views/standard_view/_new.html.erb
|
299
304
|
- app/views/standard_view/_page_content.html.erb
|
300
305
|
- app/views/standard_view/_paginated_collection.html.erb
|
301
306
|
- app/views/standard_view/_show.html.erb
|
@@ -304,6 +309,7 @@ files:
|
|
304
309
|
- config/initializers/simple_form_bootstrap.rb
|
305
310
|
- config/initializers/will_paginate.rb
|
306
311
|
- config/locales/en.yml
|
312
|
+
- config/locales/simple_form.en.yml
|
307
313
|
- config/routes.rb
|
308
314
|
- lib/standard_view.rb
|
309
315
|
- lib/standard_view/engine.rb
|