semantic-administrate 0.1.0

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.
Files changed (174) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +32 -0
  3. data/app/assets/fonts/administrate/semantic-ui/icons.eot +0 -0
  4. data/app/assets/fonts/administrate/semantic-ui/icons.otf +0 -0
  5. data/app/assets/fonts/administrate/semantic-ui/icons.svg +2671 -0
  6. data/app/assets/fonts/administrate/semantic-ui/icons.ttf +0 -0
  7. data/app/assets/fonts/administrate/semantic-ui/icons.woff +0 -0
  8. data/app/assets/fonts/administrate/semantic-ui/icons.woff2 +0 -0
  9. data/app/assets/images/administrate/semantic-ui/flags.png +0 -0
  10. data/app/assets/javascripts/administrate/application.js +7 -0
  11. data/app/assets/javascripts/administrate/components/date_time_picker.js +6 -0
  12. data/app/assets/javascripts/administrate/components/has_many_form.js +3 -0
  13. data/app/assets/javascripts/administrate/components/table.js +23 -0
  14. data/app/assets/javascripts/administrate/vendor/semantic-ui.js +22943 -0
  15. data/app/assets/stylesheets/administrate/application.scss +27 -0
  16. data/app/assets/stylesheets/administrate/base/_forms.scss +106 -0
  17. data/app/assets/stylesheets/administrate/base/_layout.scss +10 -0
  18. data/app/assets/stylesheets/administrate/base/_lists.scss +19 -0
  19. data/app/assets/stylesheets/administrate/base/_typography.scss +48 -0
  20. data/app/assets/stylesheets/administrate/components/_app-container.scss +27 -0
  21. data/app/assets/stylesheets/administrate/components/_attributes.scss +34 -0
  22. data/app/assets/stylesheets/administrate/components/_buttons.scss +43 -0
  23. data/app/assets/stylesheets/administrate/components/_cells.scss +59 -0
  24. data/app/assets/stylesheets/administrate/components/_field-unit.scss +36 -0
  25. data/app/assets/stylesheets/administrate/components/_flashes.scss +28 -0
  26. data/app/assets/stylesheets/administrate/components/_form-actions.scss +3 -0
  27. data/app/assets/stylesheets/administrate/components/_main-content.scss +42 -0
  28. data/app/assets/stylesheets/administrate/components/_pagination.scss +18 -0
  29. data/app/assets/stylesheets/administrate/components/_search.scss +45 -0
  30. data/app/assets/stylesheets/administrate/components/nav-drawer.scss +156 -0
  31. data/app/assets/stylesheets/administrate/library/_clearfix.scss +7 -0
  32. data/app/assets/stylesheets/administrate/library/_data-label.scss +8 -0
  33. data/app/assets/stylesheets/administrate/library/_variables.scss +65 -0
  34. data/app/assets/stylesheets/administrate/vendor/semantic-ui.scss +37123 -0
  35. data/app/assets/stylesheets/docs.scss +93 -0
  36. data/app/controllers/administrate/application_controller.rb +162 -0
  37. data/app/helpers/administrate/application_helper.rb +51 -0
  38. data/app/views/administrate/application/_collection.html.erb +92 -0
  39. data/app/views/administrate/application/_flashes.html.erb +20 -0
  40. data/app/views/administrate/application/_form.html.erb +42 -0
  41. data/app/views/administrate/application/_icons.erb +13 -0
  42. data/app/views/administrate/application/_javascript.html.erb +21 -0
  43. data/app/views/administrate/application/_navigation.html.erb +19 -0
  44. data/app/views/administrate/application/_navigation_extra_links.html.erb +13 -0
  45. data/app/views/administrate/application/_navigation_footer.html.erb +44 -0
  46. data/app/views/administrate/application/_navigation_links.html.erb +16 -0
  47. data/app/views/administrate/application/_search.html.erb +25 -0
  48. data/app/views/administrate/application/_stylesheet.html.erb +14 -0
  49. data/app/views/administrate/application/edit.html.erb +36 -0
  50. data/app/views/administrate/application/index.html.erb +63 -0
  51. data/app/views/administrate/application/new.html.erb +32 -0
  52. data/app/views/administrate/application/show.html.erb +49 -0
  53. data/app/views/fields/belongs_to/_form.html.erb +26 -0
  54. data/app/views/fields/belongs_to/_index.html.erb +27 -0
  55. data/app/views/fields/belongs_to/_show.html.erb +27 -0
  56. data/app/views/fields/boolean/_form.html.erb +23 -0
  57. data/app/views/fields/boolean/_index.html.erb +19 -0
  58. data/app/views/fields/boolean/_show.html.erb +19 -0
  59. data/app/views/fields/date_time/_form.html.erb +24 -0
  60. data/app/views/fields/date_time/_index.html.erb +21 -0
  61. data/app/views/fields/date_time/_show.html.erb +21 -0
  62. data/app/views/fields/email/_form.html.erb +23 -0
  63. data/app/views/fields/email/_index.html.erb +18 -0
  64. data/app/views/fields/email/_show.html.erb +18 -0
  65. data/app/views/fields/has_many/_form.html.erb +29 -0
  66. data/app/views/fields/has_many/_index.html.erb +19 -0
  67. data/app/views/fields/has_many/_show.html.erb +35 -0
  68. data/app/views/fields/has_one/_form.html.erb +28 -0
  69. data/app/views/fields/has_one/_index.html.erb +23 -0
  70. data/app/views/fields/has_one/_show.html.erb +40 -0
  71. data/app/views/fields/number/_form.html.erb +23 -0
  72. data/app/views/fields/number/_index.html.erb +19 -0
  73. data/app/views/fields/number/_show.html.erb +19 -0
  74. data/app/views/fields/polymorphic/_form.html.erb +32 -0
  75. data/app/views/fields/polymorphic/_index.html.erb +24 -0
  76. data/app/views/fields/polymorphic/_show.html.erb +28 -0
  77. data/app/views/fields/select/_form.html.erb +31 -0
  78. data/app/views/fields/select/_index.html.erb +16 -0
  79. data/app/views/fields/select/_show.html.erb +16 -0
  80. data/app/views/fields/string/_form.html.erb +23 -0
  81. data/app/views/fields/string/_index.html.erb +18 -0
  82. data/app/views/fields/string/_show.html.erb +18 -0
  83. data/app/views/fields/text/_form.html.erb +22 -0
  84. data/app/views/fields/text/_index.html.erb +18 -0
  85. data/app/views/fields/text/_show.html.erb +19 -0
  86. data/app/views/layouts/administrate/application.html.erb +43 -0
  87. data/config/i18n-tasks.yml +18 -0
  88. data/config/locales/administrate.ar.yml +26 -0
  89. data/config/locales/administrate.bs.yml +25 -0
  90. data/config/locales/administrate.ca.yml +26 -0
  91. data/config/locales/administrate.da.yml +26 -0
  92. data/config/locales/administrate.de.yml +26 -0
  93. data/config/locales/administrate.en.yml +26 -0
  94. data/config/locales/administrate.es.yml +26 -0
  95. data/config/locales/administrate.fr.yml +26 -0
  96. data/config/locales/administrate.it.yml +26 -0
  97. data/config/locales/administrate.ja.yml +26 -0
  98. data/config/locales/administrate.ko.yml +26 -0
  99. data/config/locales/administrate.nl.yml +26 -0
  100. data/config/locales/administrate.pl.yml +26 -0
  101. data/config/locales/administrate.pt-BR.yml +27 -0
  102. data/config/locales/administrate.pt.yml +27 -0
  103. data/config/locales/administrate.ru.yml +26 -0
  104. data/config/locales/administrate.sv.yml +26 -0
  105. data/config/locales/administrate.uk.yml +26 -0
  106. data/config/locales/administrate.vi.yml +26 -0
  107. data/config/locales/administrate.zh-CN.yml +26 -0
  108. data/config/locales/administrate.zh-TW.yml +26 -0
  109. data/config/routes.rb +2 -0
  110. data/config/unicorn.rb +30 -0
  111. data/docs/adding_custom_field_types.md +79 -0
  112. data/docs/authentication.md +61 -0
  113. data/docs/customizing_attribute_partials.md +53 -0
  114. data/docs/customizing_controller_actions.md +42 -0
  115. data/docs/customizing_dashboards.md +202 -0
  116. data/docs/customizing_page_views.md +78 -0
  117. data/docs/getting_started.md +115 -0
  118. data/lib/administrate.rb +4 -0
  119. data/lib/administrate/base_dashboard.rb +72 -0
  120. data/lib/administrate/engine.rb +44 -0
  121. data/lib/administrate/field/associative.rb +33 -0
  122. data/lib/administrate/field/base.rb +54 -0
  123. data/lib/administrate/field/belongs_to.rb +36 -0
  124. data/lib/administrate/field/boolean.rb +15 -0
  125. data/lib/administrate/field/date_time.rb +21 -0
  126. data/lib/administrate/field/deferred.rb +35 -0
  127. data/lib/administrate/field/email.rb +11 -0
  128. data/lib/administrate/field/has_many.rb +87 -0
  129. data/lib/administrate/field/has_one.rb +27 -0
  130. data/lib/administrate/field/number.rb +35 -0
  131. data/lib/administrate/field/polymorphic.rb +51 -0
  132. data/lib/administrate/field/select.rb +21 -0
  133. data/lib/administrate/field/string.rb +21 -0
  134. data/lib/administrate/field/text.rb +21 -0
  135. data/lib/administrate/generator_helpers.rb +13 -0
  136. data/lib/administrate/namespace.rb +31 -0
  137. data/lib/administrate/namespace/resource.rb +28 -0
  138. data/lib/administrate/order.rb +45 -0
  139. data/lib/administrate/page.rb +4 -0
  140. data/lib/administrate/page/base.rb +35 -0
  141. data/lib/administrate/page/collection.rb +33 -0
  142. data/lib/administrate/page/form.rb +28 -0
  143. data/lib/administrate/page/show.rb +24 -0
  144. data/lib/administrate/resource_resolver.rb +43 -0
  145. data/lib/administrate/search.rb +47 -0
  146. data/lib/administrate/version.rb +3 -0
  147. data/lib/administrate/view_generator.rb +36 -0
  148. data/lib/generators/administrate/assets/assets_generator.rb +12 -0
  149. data/lib/generators/administrate/assets/javascripts_generator.rb +17 -0
  150. data/lib/generators/administrate/assets/stylesheets_generator.rb +17 -0
  151. data/lib/generators/administrate/dashboard/USAGE +9 -0
  152. data/lib/generators/administrate/dashboard/dashboard_generator.rb +141 -0
  153. data/lib/generators/administrate/dashboard/templates/controller.rb.erb +21 -0
  154. data/lib/generators/administrate/dashboard/templates/dashboard.rb.erb +56 -0
  155. data/lib/generators/administrate/field/field_generator.rb +31 -0
  156. data/lib/generators/administrate/field/templates/_form.html.erb +6 -0
  157. data/lib/generators/administrate/field/templates/_index.html.erb +1 -0
  158. data/lib/generators/administrate/field/templates/_show.html.erb +1 -0
  159. data/lib/generators/administrate/field/templates/field_object.rb.erb +7 -0
  160. data/lib/generators/administrate/install/install_generator.rb +49 -0
  161. data/lib/generators/administrate/install/templates/application_controller.rb.erb +21 -0
  162. data/lib/generators/administrate/routes/routes_generator.rb +91 -0
  163. data/lib/generators/administrate/routes/templates/routes.rb.erb +5 -0
  164. data/lib/generators/administrate/views/edit_generator.rb +16 -0
  165. data/lib/generators/administrate/views/field_generator.rb +50 -0
  166. data/lib/generators/administrate/views/form_generator.rb +15 -0
  167. data/lib/generators/administrate/views/index_generator.rb +16 -0
  168. data/lib/generators/administrate/views/layout_generator.rb +23 -0
  169. data/lib/generators/administrate/views/navigation_generator.rb +15 -0
  170. data/lib/generators/administrate/views/new_generator.rb +16 -0
  171. data/lib/generators/administrate/views/show_generator.rb +15 -0
  172. data/lib/generators/administrate/views/views_generator.rb +14 -0
  173. data/lib/tasks/administrate_tasks.rake +4 -0
  174. metadata +388 -0
@@ -0,0 +1,13 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
2
+ <symbol id="icon-cancel" viewBox="0 0 48 48">
3
+ <path fill-rule="evenodd" d="M24 19.757l-8.485-8.485c-.784-.783-2.047-.782-2.827 0l-1.417 1.416c-.777.777-.78 2.046.002 2.827L19.757 24l-8.485 8.485c-.783.784-.782 2.047 0 2.827l1.416 1.417c.777.777 2.046.78 2.827-.002L24 28.243l8.485 8.485c.784.783 2.047.782 2.827 0l1.417-1.416c.777-.777.78-2.046-.002-2.827L28.243 24l8.485-8.485c.783-.784.782-2.047 0-2.827l-1.416-1.417c-.777-.777-2.046-.78-2.827.002L24 19.757zM24 47c12.703 0 23-10.297 23-23S36.703 1 24 1 1 11.297 1 24s10.297 23 23 23z" />
4
+ </symbol>
5
+
6
+ <symbol id="icon-eyeglass" viewBox="0 0 48 48">
7
+ <path d="M27.885 32.515c-2.864 1.966-6.333 3.116-10.07 3.116C7.976 35.63 0 27.656 0 17.817 0 7.976 7.976 0 17.816 0S35.63 7.976 35.63 17.816c0 3.736-1.15 7.205-3.115 10.07l14.53 14.53c1.278 1.277 1.275 3.352 0 4.628-1.28 1.278-3.353 1.278-4.63 0l-14.53-14.53zm-10.07-3.736c6.056 0 10.964-4.91 10.964-10.964 0-6.055-4.91-10.964-10.964-10.964-6.055 0-10.964 4.91-10.964 10.964 0 6.055 4.91 10.963 10.964 10.963z" />
8
+ </symbol>
9
+
10
+ <symbol id="icon-up-caret" viewBox="0 0 48 48">
11
+ <path d="M2.988 33.02c-1.66 0-1.943-.81-.618-1.824l20-15.28c.878-.672 2.31-.67 3.188 0l20.075 15.288c1.316 1.003 1.048 1.816-.62 1.816H2.987z" />
12
+ </symbol>
13
+ </svg>
@@ -0,0 +1,21 @@
1
+ <%#
2
+ # Javascript Partial
3
+
4
+ This partial imports the necessary javascript on each page.
5
+ By default, it includes the application JS,
6
+ but each page can define additional JS sources
7
+ by providing a `content_for(:javascript)` block.
8
+ %>
9
+
10
+ <% Administrate::Engine.javascripts.each do |js_path| %>
11
+ <%= javascript_include_tag js_path %>
12
+ <% end %>
13
+
14
+ <%= yield :javascript %>
15
+
16
+ <% if Rails.env.test? %>
17
+ <%= javascript_tag do %>
18
+ $.fx.off = true;
19
+ $.ajaxSetup({ async: false });
20
+ <% end %>
21
+ <% end %>
@@ -0,0 +1,19 @@
1
+ <div class="nav-drawer">
2
+ <input type="checkbox" id="nav_drawer_trigger" class="nav-drawer__trigger" style="display: none;" />
3
+
4
+ <div class="nav-drawer__header">
5
+ <label for="nav_drawer_trigger" class="nav-drawer__opener">
6
+ <i class="icon sidebar"></i>
7
+ </label>
8
+ <label for="nav_drawer_trigger" class="nav-drawer__closer">
9
+ <i class="icon close"></i>
10
+ </label>
11
+ </div>
12
+
13
+ <div class="nav-drawer__main">
14
+ <%= render 'navigation_links' %>
15
+ <%= render 'navigation_extra_links' %>
16
+ </div>
17
+
18
+ <%= render 'navigation_footer' %>
19
+ </div>
@@ -0,0 +1,13 @@
1
+ <%#
2
+ You can add extra navigation itens, in this partial.
3
+ E.G:
4
+
5
+ <div class="nav-drawer__menu-title">
6
+ Account
7
+ </div>
8
+
9
+ <div class="nav-drawer__menu-item">
10
+ <i class="icon sign out"></i>
11
+ Logout
12
+ </div>
13
+ %>
@@ -0,0 +1,44 @@
1
+ <% if defined?(current_user) %>
2
+ <div class="nav-drawer__footer">
3
+ <div class="nav-drawer__account">
4
+ <% avatar_method = [
5
+ :avatar_url,
6
+ :avatar_path,
7
+ :avatar,
8
+ :image_url,
9
+ :image_path,
10
+ :image,
11
+ :gravatar,
12
+ :gravatar_url,
13
+ ].find { |avatar_method| current_user.respond_to?(avatar_method) } %>
14
+
15
+ <% if avatar_method.present? %>
16
+ <div class="nav-drawer__account__avatar">
17
+ <%= image_tag current_user.send(avatar_method), alt: '' %>
18
+ </div>
19
+ <% elsif current_user.respond_to?(:email) %>
20
+ <div class="nav-drawer__account__avatar">
21
+ <%= image_tag gravatar_for_email(current_user.email), alt: '' %>
22
+ </div>
23
+ <% end %>
24
+
25
+ <div class="nav-drawer__account__details">
26
+ <% name_method = [
27
+ :name,
28
+ :first_name,
29
+ :nickname,
30
+ :username,
31
+ :user,
32
+ :email,
33
+ ].find { |name_method| current_user.respond_to?(name_method) } %>
34
+
35
+ <% if name_method.present? %>
36
+ <h2>Welcome,</h2>
37
+ <h3><%= current_user.send(name_method) %></h3>
38
+ <% else %>
39
+ <h2>Welcome</h2>
40
+ <% end %>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ <% end %>
@@ -0,0 +1,16 @@
1
+ <%#
2
+ # Navigation
3
+
4
+ This partial is used to display the navigation in Administrate.
5
+ By default, the navigation contains navigation links
6
+ for all resources in the admin dashboard,
7
+ as defined by the routes in the `admin/` namespace
8
+ %>
9
+ <% Administrate::Namespace.new(namespace).resources.each do |resource| %>
10
+ <%= link_to(
11
+ [namespace, resource_index_route_key(resource)],
12
+ class: "nav-drawer__menu-item nav-drawer__menu-item--#{nav_link_state(resource)}"
13
+ ) do %>
14
+ <%= display_resource_name(resource) %>
15
+ <% end %>
16
+ <% end %>
@@ -0,0 +1,25 @@
1
+ <form class="search" role="search">
2
+ <label class="search__label" for="search">
3
+ <svg class="search__eyeglass-icon" role="img">
4
+ <title>
5
+ <%= t("administrate.search.label", resource: resource_name) %>
6
+ </title>
7
+ <use xlink:href="#icon-eyeglass" />
8
+ </svg>
9
+ </label>
10
+
11
+ <input class="search__input"
12
+ id="search"
13
+ type="search"
14
+ name="search"
15
+ placeholder="<%= t("administrate.search.label",
16
+ resource: resource_name) %>"
17
+ value="<%= search_term %>">
18
+
19
+ <%= link_to clear_search_params, class: "search__clear-link" do %>
20
+ <svg class="search__clear-icon" role="img">
21
+ <title><%= t("administrate.search.clear") %></title>
22
+ <use xlink:href="#icon-cancel" />
23
+ </svg>
24
+ <% end %>
25
+ </form>
@@ -0,0 +1,14 @@
1
+ <%#
2
+ # Stylesheet Partial
3
+
4
+ This partial imports the necessary stylesheets on each page.
5
+ By default, it includes the application CSS,
6
+ but each page can define additional CSS sources
7
+ by providing a `content_for(:stylesheet)` block.
8
+ %>
9
+
10
+ <% Administrate::Engine.stylesheets.each do |css_path| %>
11
+ <%= stylesheet_link_tag css_path %>
12
+ <% end %>
13
+
14
+ <%= yield :stylesheet %>
@@ -0,0 +1,36 @@
1
+ <%#
2
+ # Edit
3
+
4
+ This view is the template for the edit page.
5
+
6
+ It displays a header, and renders the `_form` partial to do the heavy lifting.
7
+
8
+ ## Local variables:
9
+
10
+ - `page`:
11
+ An instance of [Administrate::Page::Form][1].
12
+ Contains helper methods to help display a form,
13
+ and knows which attributes should be displayed in the resource's form.
14
+
15
+ [1]: http://www.rubydoc.info/gems/administrate/Administrate/Page/Form
16
+ %>
17
+
18
+ <% content_for(:title) { "#{t("administrate.actions.edit")} #{page.page_title}" } %>
19
+
20
+ <header class="main-content__header" role="banner">
21
+ <h1 class="main-content__page-title">
22
+ <%= content_for(:title) %>
23
+ </h1>
24
+
25
+ <div>
26
+ <%= link_to(
27
+ "#{t("administrate.actions.show")} #{page.page_title}",
28
+ [namespace, page.resource],
29
+ class: "button",
30
+ ) if valid_action? :show %>
31
+ </div>
32
+ </header>
33
+
34
+ <section class="main-content__body">
35
+ <%= render "form", page: page %>
36
+ </section>
@@ -0,0 +1,63 @@
1
+ <%#
2
+ # Index
3
+
4
+ This view is the template for the index page.
5
+ It is responsible for rendering the search bar, header and pagination.
6
+ It renders the `_table` partial to display details about the resources.
7
+
8
+ ## Local variables:
9
+
10
+ - `page`:
11
+ An instance of [Administrate::Page::Collection][1].
12
+ Contains helper methods to help display a table,
13
+ and knows which attributes should be displayed in the resource's table.
14
+ - `resources`:
15
+ An instance of `ActiveRecord::Relation` containing the resources
16
+ that match the user's search criteria.
17
+ By default, these resources are passed to the table partial to be displayed.
18
+ - `search_term`:
19
+ A string containing the term the user has searched for, if any.
20
+ - `show_search_bar`:
21
+ A boolean that determines if the search bar should be shown.
22
+
23
+ [1]: http://www.rubydoc.info/gems/administrate/Administrate/Page/Collection
24
+ %>
25
+
26
+ <% content_for(:title) do %>
27
+ <%= display_resource_name(page.resource_name) %>
28
+ <% end %>
29
+
30
+ <header class="main-content__header" role="banner">
31
+ <h1 class="main-content__page-title" id="page-title">
32
+ <%= content_for(:title) %>
33
+ </h1>
34
+
35
+ <% if show_search_bar %>
36
+ <div class="main-content__search">
37
+ <%= render(
38
+ "search",
39
+ search_term: search_term,
40
+ resource_name: display_resource_name(page.resource_name)
41
+ ) %>
42
+ </div>
43
+ <% end %>
44
+
45
+ <div class="main-content__navs">
46
+ <%= link_to(
47
+ "#{t("administrate.actions.new")} #{page.resource_name.titleize.downcase}",
48
+ [:new, namespace, page.resource_path],
49
+ class: "button",
50
+ ) if valid_action? :new %>
51
+ </div>
52
+ </header>
53
+
54
+ <section class="main-content__body">
55
+ <%= render(
56
+ "collection",
57
+ collection_presenter: page,
58
+ resources: resources,
59
+ table_title: "page-title"
60
+ ) %>
61
+
62
+ <%= paginate resources %>
63
+ </section>
@@ -0,0 +1,32 @@
1
+ <%#
2
+ # New
3
+
4
+ This view is the template for the "new resource" page.
5
+ It displays a header, and then renders the `_form` partial
6
+ to do the heavy lifting.
7
+
8
+ ## Local variables:
9
+
10
+ - `page`:
11
+ An instance of [Administrate::Page::Form][1].
12
+ Contains helper methods to help display a form,
13
+ and knows which attributes should be displayed in the resource's form.
14
+
15
+ [1]: http://www.rubydoc.info/gems/administrate/Administrate/Page/Form
16
+ %>
17
+
18
+ <% content_for(:title) { "#{t("administrate.actions.new")} #{page.resource_name.titleize}" } %>
19
+
20
+ <header class="main-content__header" role="banner">
21
+ <h1 class="main-content__page-title">
22
+ <%= content_for(:title) %>
23
+ </h1>
24
+
25
+ <div>
26
+ <%= link_to t("administrate.actions.back"), :back, class: "button" %>
27
+ </div>
28
+ </header>
29
+
30
+ <section class="main-content__body">
31
+ <%= render "form", page: page %>
32
+ </section>
@@ -0,0 +1,49 @@
1
+ <%#
2
+ # Show
3
+
4
+ This view is the template for the show page.
5
+ It renders the attributes of a resource,
6
+ as well as a link to its edit page.
7
+
8
+ ## Local variables:
9
+
10
+ - `page`:
11
+ An instance of [Administrate::Page::Show][1].
12
+ Contains methods for accessing the resource to be displayed on the page,
13
+ as well as helpers for describing how each attribute of the resource
14
+ should be displayed.
15
+
16
+ [1]: http://www.rubydoc.info/gems/administrate/Administrate/Page/Show
17
+ %>
18
+
19
+ <% content_for(:title) { "#{t("administrate.actions.show")} #{page.page_title}" } %>
20
+
21
+ <header class="main-content__header" role="banner">
22
+ <h1 class="main-content__page-title">
23
+ <%= content_for(:title) %>
24
+ </h1>
25
+
26
+ <div>
27
+ <%= link_to(
28
+ "#{t("administrate.actions.edit")} #{page.page_title}",
29
+ [:edit, namespace, page.resource],
30
+ class: "button",
31
+ ) if valid_action? :edit %>
32
+ </div>
33
+ </header>
34
+
35
+ <section class="main-content__body">
36
+ <dl>
37
+ <% page.attributes.each do |attribute| %>
38
+ <dt class="attribute-label" id="<%= attribute.name %>">
39
+ <%= t(
40
+ "helpers.label.#{resource_name}.#{attribute.name}",
41
+ default: attribute.name.titleize,
42
+ ) %>
43
+ </dt>
44
+
45
+ <dd class="attribute-data attribute-data--<%=attribute.html_class%>"
46
+ ><%= render_field attribute %></dd>
47
+ <% end %>
48
+ </dl>
49
+ </section>
@@ -0,0 +1,26 @@
1
+ <%#
2
+ # BelongsTo Form Partial
3
+
4
+ This partial renders an input element for belongs_to relationships.
5
+ By default, the input is a collection select box
6
+ that displays all possible records to associate with.
7
+
8
+ ## Local variables:
9
+
10
+ - `f`:
11
+ A Rails form generator, used to help create the appropriate input fields.
12
+ - `field`:
13
+ An instance of [Administrate::Field::BelongsTo][1].
14
+ Contains helper methods for displaying a collection select box.
15
+
16
+ [1]: http://www.rubydoc.info/gems/administrate/Administrate/Field/BelongsTo
17
+ %>
18
+
19
+ <div class="field-unit__label">
20
+ <%= f.label field.permitted_attribute %>
21
+ </div>
22
+ <div class="field-unit__field">
23
+ <%= f.select(field.permitted_attribute) do %>
24
+ <%= options_for_select(field.associated_resource_options, field.selected_option) %>
25
+ <% end %>
26
+ </div>
@@ -0,0 +1,27 @@
1
+ <%#
2
+ # BelongsTo Index Partial
3
+
4
+ This partial renders a belongs_to relationship,
5
+ to be displayed on a resource's index page.
6
+
7
+ By default, the relationship is rendered as a link to the associated object.
8
+
9
+ ## Local variables:
10
+
11
+ - `field`:
12
+ An instance of [Administrate::Field::BelongsTo][1].
13
+ A wrapper around the belongs_to relationship pulled from the database.
14
+
15
+ [1]: http://www.rubydoc.info/gems/administrate/Administrate/Field/BelongsTo
16
+ %>
17
+
18
+ <% if field.data %>
19
+ <% if valid_action?(:show, field.attribute) %>
20
+ <%= link_to(
21
+ field.display_associated_resource,
22
+ [namespace, field.data],
23
+ ) %>
24
+ <% else %>
25
+ <%= field.display_associated_resource %>
26
+ <% end %>
27
+ <% end %>
@@ -0,0 +1,27 @@
1
+ <%#
2
+ # BelongsTo Show Partial
3
+
4
+ This partial renders a belongs_to relationship,
5
+ to be displayed on a resource's show page.
6
+
7
+ By default, the relationship is rendered as a link to the associated object.
8
+
9
+ ## Local variables:
10
+
11
+ - `field`:
12
+ An instance of [Administrate::Field::BelongsTo][1].
13
+ A wrapper around the belongs_to relationship pulled from the database.
14
+
15
+ [1]: http://www.rubydoc.info/gems/administrate/Administrate/Field/BelongsTo
16
+ %>
17
+
18
+ <% if field.data %>
19
+ <% if valid_action?(:show, field.attribute) %>
20
+ <%= link_to(
21
+ field.display_associated_resource,
22
+ [namespace, field.data],
23
+ ) %>
24
+ <% else %>
25
+ <%= field.display_associated_resource %>
26
+ <% end %>
27
+ <% end %>