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,21 @@
1
+ module <%= namespace.classify %>
2
+ class <%= class_name.pluralize %>Controller < <%= namespace.classify %>::ApplicationController
3
+ # To customize the behavior of this controller,
4
+ # you can overwrite any of the RESTful actions. For example:
5
+ #
6
+ # def index
7
+ # super
8
+ # @resources = <%= class_name %>.
9
+ # page(params[:page]).
10
+ # per(10)
11
+ # end
12
+
13
+ # Define a custom finder by overriding the `find_resource` method:
14
+ # def find_resource(param)
15
+ # <%= class_name %>.find_by!(slug: param)
16
+ # end
17
+
18
+ # See https://administrate-prototype.herokuapp.com/customizing_controller_actions
19
+ # for more information
20
+ end
21
+ end
@@ -0,0 +1,56 @@
1
+ require "administrate/base_dashboard"
2
+
3
+ class <%= class_name %>Dashboard < Administrate::BaseDashboard
4
+ # ATTRIBUTE_TYPES
5
+ # a hash that describes the type of each of the model's fields.
6
+ #
7
+ # Each different type represents an Administrate::Field object,
8
+ # which determines how the attribute is displayed
9
+ # on pages throughout the dashboard.
10
+ ATTRIBUTE_TYPES = {
11
+ <% attributes.each do |attr| -%>
12
+ <%= attr %>: <%= field_type(attr) %>,
13
+ <% end -%>
14
+ }.freeze
15
+
16
+ # COLLECTION_ATTRIBUTES
17
+ # an array of attributes that will be displayed on the model's index page.
18
+ #
19
+ # By default, it's limited to four items to reduce clutter on index pages.
20
+ # Feel free to add, remove, or rearrange items.
21
+ COLLECTION_ATTRIBUTES = [
22
+ <%=
23
+ attributes.first(COLLECTION_ATTRIBUTE_LIMIT).map do |attr|
24
+ " :#{attr},"
25
+ end.join("\n")
26
+ %>
27
+ ].freeze
28
+
29
+ # SHOW_PAGE_ATTRIBUTES
30
+ # an array of attributes that will be displayed on the model's show page.
31
+ SHOW_PAGE_ATTRIBUTES = [
32
+ <%=
33
+ attributes.map do |attr|
34
+ " :#{attr},"
35
+ end.join("\n")
36
+ %>
37
+ ].freeze
38
+
39
+ # FORM_ATTRIBUTES
40
+ # an array of attributes that will be displayed
41
+ # on the model's form (`new` and `edit`) pages.
42
+ FORM_ATTRIBUTES = [
43
+ <%=
44
+ form_attributes.map do |attr|
45
+ " :#{attr},"
46
+ end.join("\n")
47
+ %>
48
+ ].freeze
49
+
50
+ # Overwrite this method to customize how <%= file_name.pluralize.humanize.downcase %> are displayed
51
+ # across all pages of the admin dashboard.
52
+ #
53
+ # def display_resource(<%= file_name %>)
54
+ # "<%= class_name %> ##{<%= file_name %>.id}"
55
+ # end
56
+ end
@@ -0,0 +1,31 @@
1
+ module Administrate
2
+ module Generators
3
+ class FieldGenerator < Rails::Generators::NamedBase
4
+ source_root File.expand_path("../templates", __FILE__)
5
+
6
+ def template_field_object
7
+ template(
8
+ "field_object.rb.erb",
9
+ "app/fields/#{file_name}_field.rb",
10
+ )
11
+ end
12
+
13
+ def copy_partials
14
+ copy_partial(:show)
15
+ copy_partial(:index)
16
+ copy_partial(:form)
17
+ end
18
+
19
+ private
20
+
21
+ def copy_partial(partial_name)
22
+ partial = "_#{partial_name}.html.erb"
23
+
24
+ copy_file(
25
+ partial,
26
+ "app/views/fields/#{file_name}_field/#{partial}",
27
+ )
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,6 @@
1
+ <div class="field-unit__label">
2
+ <%= f.label field.attribute %>
3
+ </div>
4
+ <div class="field-unit__field">
5
+ <%= f.text_field field.attribute %>
6
+ </div>
@@ -0,0 +1 @@
1
+ <%= field.to_s %>
@@ -0,0 +1 @@
1
+ <%= field.to_s %>
@@ -0,0 +1,7 @@
1
+ require "administrate/field/base"
2
+
3
+ class <%= class_name %>Field < Administrate::Field::Base
4
+ def to_s
5
+ data
6
+ end
7
+ end
@@ -0,0 +1,49 @@
1
+ require "rails/generators/base"
2
+ require "administrate/generator_helpers"
3
+ require "administrate/namespace"
4
+
5
+ module Administrate
6
+ module Generators
7
+ class InstallGenerator < Rails::Generators::Base
8
+ include Administrate::GeneratorHelpers
9
+ source_root File.expand_path("../templates", __FILE__)
10
+
11
+ class_option :namespace, type: :string, default: "admin"
12
+
13
+ def run_routes_generator
14
+ if dashboard_resources.none?
15
+ call_generator("administrate:routes", "--namespace", namespace)
16
+ load Rails.root.join("config/routes.rb")
17
+ end
18
+ end
19
+
20
+ def create_dashboard_controller
21
+ template(
22
+ "application_controller.rb.erb",
23
+ "app/controllers/#{namespace}/application_controller.rb",
24
+ )
25
+ end
26
+
27
+ def run_dashboard_generators
28
+ singular_dashboard_resources.each do |resource|
29
+ call_generator "administrate:dashboard", resource,
30
+ "--namespace", namespace
31
+ end
32
+ end
33
+
34
+ private
35
+
36
+ def namespace
37
+ options[:namespace]
38
+ end
39
+
40
+ def singular_dashboard_resources
41
+ dashboard_resources.map(&:to_s).map(&:singularize)
42
+ end
43
+
44
+ def dashboard_resources
45
+ Administrate::Namespace.new(namespace).resources
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,21 @@
1
+ # All Administrate controllers inherit from this `Admin::ApplicationController`,
2
+ # making it the ideal place to put authentication logic or other
3
+ # before_actions.
4
+ #
5
+ # If you want to add pagination or other controller-level concerns,
6
+ # you're free to overwrite the RESTful controller actions.
7
+ module <%= namespace.classify %>
8
+ class ApplicationController < Administrate::ApplicationController
9
+ before_action :authenticate_admin
10
+
11
+ def authenticate_admin
12
+ # TODO Add authentication logic here.
13
+ end
14
+
15
+ # Override this value to specify the number of elements to display at a time
16
+ # on index pages. Defaults to 20.
17
+ # def records_per_page
18
+ # params[:per_page] || 20
19
+ # end
20
+ end
21
+ end
@@ -0,0 +1,91 @@
1
+ Rails.application.eager_load!
2
+ require "rails/generators/base"
3
+ require "administrate/namespace"
4
+
5
+ module Administrate
6
+ module Generators
7
+ class RoutesGenerator < Rails::Generators::Base
8
+ source_root File.expand_path("../templates", __FILE__)
9
+ class_option :namespace, type: :string, default: "admin"
10
+
11
+ def insert_dashboard_routes
12
+ if should_route_dashboard?
13
+ route(dashboard_routes)
14
+ end
15
+ end
16
+
17
+ def warn_about_invalid_models
18
+ namespaced_models.each do |invalid_model|
19
+ puts "WARNING: Unable to generate a dashboard for #{invalid_model}."
20
+ puts " Administrate does not yet support namespaced models."
21
+ end
22
+
23
+ models_without_tables.each do |invalid_model|
24
+ puts "WARNING: Unable to generate a dashboard for #{invalid_model}."
25
+ puts " It is not connected to a database table."
26
+ puts " Make sure your database migrations are up to date."
27
+ end
28
+
29
+ unnamed_constants.each do |invalid_model|
30
+ puts "NOTICE: Skipping dynamically generated model #{invalid_model}."
31
+ end
32
+ end
33
+
34
+ private
35
+
36
+ def namespace
37
+ options[:namespace]
38
+ end
39
+
40
+ def dashboard_resources
41
+ valid_dashboard_models.map do |model|
42
+ model.to_s.pluralize.underscore
43
+ end
44
+ end
45
+
46
+ def valid_dashboard_models
47
+ database_models - invalid_database_models
48
+ end
49
+
50
+ def database_models
51
+ ActiveRecord::Base.descendants.reject(&:abstract_class?)
52
+ end
53
+
54
+ def invalid_database_models
55
+ models_without_tables + namespaced_models + unnamed_constants
56
+ end
57
+
58
+ def models_without_tables
59
+ database_models.reject(&:table_exists?)
60
+ end
61
+
62
+ def namespaced_models
63
+ database_models.select { |model| model.to_s.include?("::") }
64
+ end
65
+
66
+ def unnamed_constants
67
+ ActiveRecord::Base.descendants.reject { |d| d.name == d.to_s }
68
+ end
69
+
70
+ def dashboard_routes
71
+ ERB.new(File.read(routes_file_path)).result(binding)
72
+ end
73
+
74
+ def routes_includes_resources?
75
+ File.read(rails_routes_file_path).include?(dashboard_routes)
76
+ end
77
+
78
+ def rails_routes_file_path
79
+ Rails.root.join("config/routes.rb")
80
+ end
81
+
82
+ def routes_file_path
83
+ File.expand_path(find_in_source_paths("routes.rb.erb"))
84
+ end
85
+
86
+ def should_route_dashboard?
87
+ routes_includes_resources? || valid_dashboard_models.any?
88
+ end
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,5 @@
1
+ namespace :<%= namespace %> do
2
+ <% dashboard_resources.each do |resource| %> resources :<%= resource %>
3
+ <%end%>
4
+ root to: "<%= dashboard_resources.first %>#index"
5
+ end
@@ -0,0 +1,16 @@
1
+ require "administrate/view_generator"
2
+
3
+ module Administrate
4
+ module Generators
5
+ module Views
6
+ class EditGenerator < Administrate::ViewGenerator
7
+ source_root template_source_path
8
+
9
+ def copy_edit
10
+ copy_resource_template("edit")
11
+ copy_resource_template("_form")
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,50 @@
1
+ require "administrate/view_generator"
2
+
3
+ module Administrate
4
+ module Generators
5
+ module Views
6
+ class FieldGenerator < Administrate::ViewGenerator
7
+ def self.template_source_path
8
+ File.expand_path(
9
+ "../../../../../app/views/fields/",
10
+ __FILE__,
11
+ )
12
+ end
13
+
14
+ source_root template_source_path
15
+
16
+ def copy_partials
17
+ resource_path = args.first.try(:underscore)
18
+
19
+ if resource_path == "all"
20
+ entries = Dir.entries(self.class.template_source_path)
21
+ field_types = entries.reject { |name| name[0] == "." }
22
+
23
+ field_types.each do |field_type|
24
+ copy_field_partials(field_type)
25
+ end
26
+ else
27
+ copy_field_partials(resource_path)
28
+ end
29
+ end
30
+
31
+ private
32
+
33
+ def copy_field_partials(resource_path)
34
+ copy_field_partial(resource_path, :index)
35
+ copy_field_partial(resource_path, :show)
36
+ copy_field_partial(resource_path, :form)
37
+ end
38
+
39
+ def copy_field_partial(resource_path, partial_name)
40
+ template_file = "#{resource_path}/_#{partial_name}.html.erb"
41
+
42
+ copy_file(
43
+ template_file,
44
+ "app/views/fields/#{template_file}",
45
+ )
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,15 @@
1
+ require "administrate/view_generator"
2
+
3
+ module Administrate
4
+ module Generators
5
+ module Views
6
+ class FormGenerator < Administrate::ViewGenerator
7
+ source_root template_source_path
8
+
9
+ def copy_form
10
+ copy_resource_template("_form")
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,16 @@
1
+ require "administrate/view_generator"
2
+
3
+ module Administrate
4
+ module Generators
5
+ module Views
6
+ class IndexGenerator < Administrate::ViewGenerator
7
+ source_root template_source_path
8
+
9
+ def copy_template
10
+ copy_resource_template("index")
11
+ copy_resource_template("_collection")
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,23 @@
1
+ require "administrate/view_generator"
2
+
3
+ module Administrate
4
+ module Generators
5
+ module Views
6
+ class LayoutGenerator < Administrate::ViewGenerator
7
+ source_root template_source_path
8
+
9
+ def copy_template
10
+ copy_file(
11
+ "../../layouts/administrate/application.html.erb",
12
+ "app/views/layouts/admin/application.html.erb",
13
+ )
14
+
15
+ call_generator("administrate:views:navigation")
16
+ copy_resource_template("_stylesheet")
17
+ copy_resource_template("_javascript")
18
+ copy_resource_template("_flashes")
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,15 @@
1
+ require "administrate/view_generator"
2
+
3
+ module Administrate
4
+ module Generators
5
+ module Views
6
+ class NavigationGenerator < Administrate::ViewGenerator
7
+ source_root template_source_path
8
+
9
+ def copy_navigation
10
+ copy_resource_template("_navigation")
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end