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.
- checksums.yaml +7 -0
- data/Rakefile +32 -0
- data/app/assets/fonts/administrate/semantic-ui/icons.eot +0 -0
- data/app/assets/fonts/administrate/semantic-ui/icons.otf +0 -0
- data/app/assets/fonts/administrate/semantic-ui/icons.svg +2671 -0
- data/app/assets/fonts/administrate/semantic-ui/icons.ttf +0 -0
- data/app/assets/fonts/administrate/semantic-ui/icons.woff +0 -0
- data/app/assets/fonts/administrate/semantic-ui/icons.woff2 +0 -0
- data/app/assets/images/administrate/semantic-ui/flags.png +0 -0
- data/app/assets/javascripts/administrate/application.js +7 -0
- data/app/assets/javascripts/administrate/components/date_time_picker.js +6 -0
- data/app/assets/javascripts/administrate/components/has_many_form.js +3 -0
- data/app/assets/javascripts/administrate/components/table.js +23 -0
- data/app/assets/javascripts/administrate/vendor/semantic-ui.js +22943 -0
- data/app/assets/stylesheets/administrate/application.scss +27 -0
- data/app/assets/stylesheets/administrate/base/_forms.scss +106 -0
- data/app/assets/stylesheets/administrate/base/_layout.scss +10 -0
- data/app/assets/stylesheets/administrate/base/_lists.scss +19 -0
- data/app/assets/stylesheets/administrate/base/_typography.scss +48 -0
- data/app/assets/stylesheets/administrate/components/_app-container.scss +27 -0
- data/app/assets/stylesheets/administrate/components/_attributes.scss +34 -0
- data/app/assets/stylesheets/administrate/components/_buttons.scss +43 -0
- data/app/assets/stylesheets/administrate/components/_cells.scss +59 -0
- data/app/assets/stylesheets/administrate/components/_field-unit.scss +36 -0
- data/app/assets/stylesheets/administrate/components/_flashes.scss +28 -0
- data/app/assets/stylesheets/administrate/components/_form-actions.scss +3 -0
- data/app/assets/stylesheets/administrate/components/_main-content.scss +42 -0
- data/app/assets/stylesheets/administrate/components/_pagination.scss +18 -0
- data/app/assets/stylesheets/administrate/components/_search.scss +45 -0
- data/app/assets/stylesheets/administrate/components/nav-drawer.scss +156 -0
- data/app/assets/stylesheets/administrate/library/_clearfix.scss +7 -0
- data/app/assets/stylesheets/administrate/library/_data-label.scss +8 -0
- data/app/assets/stylesheets/administrate/library/_variables.scss +65 -0
- data/app/assets/stylesheets/administrate/vendor/semantic-ui.scss +37123 -0
- data/app/assets/stylesheets/docs.scss +93 -0
- data/app/controllers/administrate/application_controller.rb +162 -0
- data/app/helpers/administrate/application_helper.rb +51 -0
- data/app/views/administrate/application/_collection.html.erb +92 -0
- data/app/views/administrate/application/_flashes.html.erb +20 -0
- data/app/views/administrate/application/_form.html.erb +42 -0
- data/app/views/administrate/application/_icons.erb +13 -0
- data/app/views/administrate/application/_javascript.html.erb +21 -0
- data/app/views/administrate/application/_navigation.html.erb +19 -0
- data/app/views/administrate/application/_navigation_extra_links.html.erb +13 -0
- data/app/views/administrate/application/_navigation_footer.html.erb +44 -0
- data/app/views/administrate/application/_navigation_links.html.erb +16 -0
- data/app/views/administrate/application/_search.html.erb +25 -0
- data/app/views/administrate/application/_stylesheet.html.erb +14 -0
- data/app/views/administrate/application/edit.html.erb +36 -0
- data/app/views/administrate/application/index.html.erb +63 -0
- data/app/views/administrate/application/new.html.erb +32 -0
- data/app/views/administrate/application/show.html.erb +49 -0
- data/app/views/fields/belongs_to/_form.html.erb +26 -0
- data/app/views/fields/belongs_to/_index.html.erb +27 -0
- data/app/views/fields/belongs_to/_show.html.erb +27 -0
- data/app/views/fields/boolean/_form.html.erb +23 -0
- data/app/views/fields/boolean/_index.html.erb +19 -0
- data/app/views/fields/boolean/_show.html.erb +19 -0
- data/app/views/fields/date_time/_form.html.erb +24 -0
- data/app/views/fields/date_time/_index.html.erb +21 -0
- data/app/views/fields/date_time/_show.html.erb +21 -0
- data/app/views/fields/email/_form.html.erb +23 -0
- data/app/views/fields/email/_index.html.erb +18 -0
- data/app/views/fields/email/_show.html.erb +18 -0
- data/app/views/fields/has_many/_form.html.erb +29 -0
- data/app/views/fields/has_many/_index.html.erb +19 -0
- data/app/views/fields/has_many/_show.html.erb +35 -0
- data/app/views/fields/has_one/_form.html.erb +28 -0
- data/app/views/fields/has_one/_index.html.erb +23 -0
- data/app/views/fields/has_one/_show.html.erb +40 -0
- data/app/views/fields/number/_form.html.erb +23 -0
- data/app/views/fields/number/_index.html.erb +19 -0
- data/app/views/fields/number/_show.html.erb +19 -0
- data/app/views/fields/polymorphic/_form.html.erb +32 -0
- data/app/views/fields/polymorphic/_index.html.erb +24 -0
- data/app/views/fields/polymorphic/_show.html.erb +28 -0
- data/app/views/fields/select/_form.html.erb +31 -0
- data/app/views/fields/select/_index.html.erb +16 -0
- data/app/views/fields/select/_show.html.erb +16 -0
- data/app/views/fields/string/_form.html.erb +23 -0
- data/app/views/fields/string/_index.html.erb +18 -0
- data/app/views/fields/string/_show.html.erb +18 -0
- data/app/views/fields/text/_form.html.erb +22 -0
- data/app/views/fields/text/_index.html.erb +18 -0
- data/app/views/fields/text/_show.html.erb +19 -0
- data/app/views/layouts/administrate/application.html.erb +43 -0
- data/config/i18n-tasks.yml +18 -0
- data/config/locales/administrate.ar.yml +26 -0
- data/config/locales/administrate.bs.yml +25 -0
- data/config/locales/administrate.ca.yml +26 -0
- data/config/locales/administrate.da.yml +26 -0
- data/config/locales/administrate.de.yml +26 -0
- data/config/locales/administrate.en.yml +26 -0
- data/config/locales/administrate.es.yml +26 -0
- data/config/locales/administrate.fr.yml +26 -0
- data/config/locales/administrate.it.yml +26 -0
- data/config/locales/administrate.ja.yml +26 -0
- data/config/locales/administrate.ko.yml +26 -0
- data/config/locales/administrate.nl.yml +26 -0
- data/config/locales/administrate.pl.yml +26 -0
- data/config/locales/administrate.pt-BR.yml +27 -0
- data/config/locales/administrate.pt.yml +27 -0
- data/config/locales/administrate.ru.yml +26 -0
- data/config/locales/administrate.sv.yml +26 -0
- data/config/locales/administrate.uk.yml +26 -0
- data/config/locales/administrate.vi.yml +26 -0
- data/config/locales/administrate.zh-CN.yml +26 -0
- data/config/locales/administrate.zh-TW.yml +26 -0
- data/config/routes.rb +2 -0
- data/config/unicorn.rb +30 -0
- data/docs/adding_custom_field_types.md +79 -0
- data/docs/authentication.md +61 -0
- data/docs/customizing_attribute_partials.md +53 -0
- data/docs/customizing_controller_actions.md +42 -0
- data/docs/customizing_dashboards.md +202 -0
- data/docs/customizing_page_views.md +78 -0
- data/docs/getting_started.md +115 -0
- data/lib/administrate.rb +4 -0
- data/lib/administrate/base_dashboard.rb +72 -0
- data/lib/administrate/engine.rb +44 -0
- data/lib/administrate/field/associative.rb +33 -0
- data/lib/administrate/field/base.rb +54 -0
- data/lib/administrate/field/belongs_to.rb +36 -0
- data/lib/administrate/field/boolean.rb +15 -0
- data/lib/administrate/field/date_time.rb +21 -0
- data/lib/administrate/field/deferred.rb +35 -0
- data/lib/administrate/field/email.rb +11 -0
- data/lib/administrate/field/has_many.rb +87 -0
- data/lib/administrate/field/has_one.rb +27 -0
- data/lib/administrate/field/number.rb +35 -0
- data/lib/administrate/field/polymorphic.rb +51 -0
- data/lib/administrate/field/select.rb +21 -0
- data/lib/administrate/field/string.rb +21 -0
- data/lib/administrate/field/text.rb +21 -0
- data/lib/administrate/generator_helpers.rb +13 -0
- data/lib/administrate/namespace.rb +31 -0
- data/lib/administrate/namespace/resource.rb +28 -0
- data/lib/administrate/order.rb +45 -0
- data/lib/administrate/page.rb +4 -0
- data/lib/administrate/page/base.rb +35 -0
- data/lib/administrate/page/collection.rb +33 -0
- data/lib/administrate/page/form.rb +28 -0
- data/lib/administrate/page/show.rb +24 -0
- data/lib/administrate/resource_resolver.rb +43 -0
- data/lib/administrate/search.rb +47 -0
- data/lib/administrate/version.rb +3 -0
- data/lib/administrate/view_generator.rb +36 -0
- data/lib/generators/administrate/assets/assets_generator.rb +12 -0
- data/lib/generators/administrate/assets/javascripts_generator.rb +17 -0
- data/lib/generators/administrate/assets/stylesheets_generator.rb +17 -0
- data/lib/generators/administrate/dashboard/USAGE +9 -0
- data/lib/generators/administrate/dashboard/dashboard_generator.rb +141 -0
- data/lib/generators/administrate/dashboard/templates/controller.rb.erb +21 -0
- data/lib/generators/administrate/dashboard/templates/dashboard.rb.erb +56 -0
- data/lib/generators/administrate/field/field_generator.rb +31 -0
- data/lib/generators/administrate/field/templates/_form.html.erb +6 -0
- data/lib/generators/administrate/field/templates/_index.html.erb +1 -0
- data/lib/generators/administrate/field/templates/_show.html.erb +1 -0
- data/lib/generators/administrate/field/templates/field_object.rb.erb +7 -0
- data/lib/generators/administrate/install/install_generator.rb +49 -0
- data/lib/generators/administrate/install/templates/application_controller.rb.erb +21 -0
- data/lib/generators/administrate/routes/routes_generator.rb +91 -0
- data/lib/generators/administrate/routes/templates/routes.rb.erb +5 -0
- data/lib/generators/administrate/views/edit_generator.rb +16 -0
- data/lib/generators/administrate/views/field_generator.rb +50 -0
- data/lib/generators/administrate/views/form_generator.rb +15 -0
- data/lib/generators/administrate/views/index_generator.rb +16 -0
- data/lib/generators/administrate/views/layout_generator.rb +23 -0
- data/lib/generators/administrate/views/navigation_generator.rb +15 -0
- data/lib/generators/administrate/views/new_generator.rb +16 -0
- data/lib/generators/administrate/views/show_generator.rb +15 -0
- data/lib/generators/administrate/views/views_generator.rb +14 -0
- data/lib/tasks/administrate_tasks.rake +4 -0
- 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 @@
|
|
|
1
|
+
<%= field.to_s %>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= field.to_s %>
|
|
@@ -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,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
|