adminsite 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +12 -0
- data/Gemfile.lock +209 -0
- data/MIT-LICENSE +20 -0
- data/README.markdown +122 -0
- data/Rakefile +14 -0
- data/USAGE +18 -0
- data/VERSION +1 -0
- data/app/admin_configs/adminsite/adminsite_admin_user_admin_config.rb +43 -0
- data/app/admin_configs/adminsite/adminsite_file_asset_admin_config.rb +32 -0
- data/app/admin_configs/adminsite/adminsite_page_admin_config.rb +46 -0
- data/app/admin_configs/adminsite/adminsite_page_layout_admin_config.rb +31 -0
- data/app/assets/images/adminsite/admin/accept.png +0 -0
- data/app/assets/images/adminsite/admin/add.png +0 -0
- data/app/assets/images/adminsite/admin/arrow_left.png +0 -0
- data/app/assets/images/adminsite/admin/arrow_refresh.png +0 -0
- data/app/assets/images/adminsite/admin/arrow_up.png +0 -0
- data/app/assets/images/adminsite/admin/cross.png +0 -0
- data/app/assets/images/adminsite/admin/logo.gif +0 -0
- data/app/assets/images/adminsite/admin/logo.png +0 -0
- data/app/assets/images/adminsite/admin/magnifier.png +0 -0
- data/app/assets/images/adminsite/admin/newspaper_add.png +0 -0
- data/app/assets/images/adminsite/admin/newspaper_delete.png +0 -0
- data/app/assets/images/adminsite/admin/openid-icon-small.gif +0 -0
- data/app/assets/images/adminsite/admin/page_white_magnify.png +0 -0
- data/app/assets/images/adminsite/admin/pencil.png +0 -0
- data/app/assets/images/adminsite/admin/rails.png +0 -0
- data/app/assets/images/adminsite/admin/reorder.gif +0 -0
- data/app/assets/images/adminsite/admin/spinner.gif +0 -0
- data/app/assets/javascripts/adminsite/admin.js +13 -0
- data/app/assets/javascripts/adminsite/admin/code_editor.js.coffee +40 -0
- data/app/assets/javascripts/adminsite/admin/hide_and_show.js +26 -0
- data/app/assets/stylesheets/adminsite/admin.scss +16 -0
- data/app/assets/stylesheets/adminsite/admin/base.scss +521 -0
- data/app/assets/stylesheets/adminsite/admin/code_editor.scss +29 -0
- data/app/assets/stylesheets/adminsite/admin/pagination.scss +28 -0
- data/app/controllers/adminsite/admin/adminsite_admin_users_controller.rb +21 -0
- data/app/controllers/adminsite/admin/adminsite_file_assets_controller.rb +57 -0
- data/app/controllers/adminsite/admin/adminsite_page_layouts_controller.rb +41 -0
- data/app/controllers/adminsite/admin/adminsite_pages_controller.rb +40 -0
- data/app/controllers/adminsite/admin/base_controller.rb +16 -0
- data/app/controllers/adminsite/admin/crud_controller.rb +27 -0
- data/app/controllers/adminsite/admin/iframe_controller.rb +28 -0
- data/app/controllers/adminsite/admin/resources_controller.rb +148 -0
- data/app/controllers/adminsite/admin_application_controller.rb +9 -0
- data/app/controllers/adminsite/admin_user_sessions_controller.rb +5 -0
- data/app/controllers/adminsite/contents_controller.rb +88 -0
- data/app/helpers/admin/adminsite_application_helper.rb +174 -0
- data/app/helpers/admin_application_helper.rb +3 -0
- data/app/models/adminsite/admin_config/base.rb +100 -0
- data/app/models/adminsite/admin_user.rb +10 -0
- data/app/models/adminsite/file_asset.rb +22 -0
- data/app/models/adminsite/page.rb +59 -0
- data/app/models/adminsite/page_layout.rb +9 -0
- data/app/views/adminsite/admin/adminsite_file_assets/index.html.haml +39 -0
- data/app/views/adminsite/admin/adminsite_page_layouts/edit.html.haml +5 -0
- data/app/views/adminsite/admin/adminsite_page_layouts/index.html.haml +9 -0
- data/app/views/adminsite/admin/adminsite_page_layouts/new.html.haml +5 -0
- data/app/views/adminsite/admin/adminsite_pages/edit.html.haml +5 -0
- data/app/views/adminsite/admin/adminsite_pages/index.html.haml +16 -0
- data/app/views/adminsite/admin/adminsite_pages/new.html.haml +5 -0
- data/app/views/adminsite/admin/crud/index.html.haml +4 -0
- data/app/views/adminsite/admin/crud/show.html.haml +15 -0
- data/app/views/adminsite/admin/iframe/index.haml +14 -0
- data/app/views/adminsite/admin/resources/_form.haml +6 -0
- data/app/views/adminsite/admin/resources/_list.haml +18 -0
- data/app/views/adminsite/admin/resources/_search_form.html.haml +41 -0
- data/app/views/adminsite/admin/resources/edit.haml +13 -0
- data/app/views/adminsite/admin/resources/index.haml +13 -0
- data/app/views/adminsite/admin/resources/new.haml +14 -0
- data/app/views/adminsite/admin/resources/show.haml +15 -0
- data/app/views/adminsite/admin/shared/_admin_menu.html.haml +6 -0
- data/app/views/adminsite/admin/shared/_content_menu.html.haml +4 -0
- data/app/views/adminsite/admin/shared/_page_assets_list.html.haml +6 -0
- data/app/views/adminsite/admin/shared/_syntax_help.html.haml +24 -0
- data/app/views/adminsite/admin_user_sessions/new.html.haml +14 -0
- data/app/views/layouts/adminsite/admin.html.haml +31 -0
- data/config/initializers/adminsite_constants.rb +2 -0
- data/config/initializers/assets.rb +7 -0
- data/config/initializers/devise.rb +265 -0
- data/config/initializers/filter_parameter_logging.rb +4 -0
- data/config/initializers/paperclip.rb +15 -0
- data/config/initializers/time_formats.rb +1 -0
- data/config/locales/da.devise.yaml +57 -0
- data/config/locales/da.yaml +199 -0
- data/config/locales/en.devise.yaml +60 -0
- data/config/locales/en.yaml +205 -0
- data/config/routes.rb +17 -0
- data/db/migrate/20101007000000_create_admin.rb +59 -0
- data/db/migrate/20101007000001_create_cms_tables.rb +39 -0
- data/lib/adminsite.rb +28 -0
- data/lib/adminsite/configuration.rb +15 -0
- data/lib/adminsite/engine.rb +30 -0
- data/lib/adminsite/liquid/tags/asset.rb +70 -0
- data/lib/adminsite/version.rb +3 -0
- data/lib/generators/adminsite/add_dashboard/add_dashboard_generator.rb +34 -0
- data/lib/generators/adminsite/add_dashboard/templates/controllers/admin_dashboard_controller.rb +13 -0
- data/lib/generators/adminsite/add_dashboard/templates/views/index.html.haml +6 -0
- data/lib/generators/adminsite/add_iframe/add_iframe_generator.rb +42 -0
- data/lib/generators/adminsite/add_iframe/templates/controllers/admin_iframe_controller.rb +16 -0
- data/lib/generators/adminsite/add_resource/USAGE +0 -0
- data/lib/generators/adminsite/add_resource/add_resource_generator.rb +40 -0
- data/lib/generators/adminsite/add_resource/templates/admin_configs/resource_admin_config.rb +47 -0
- data/lib/generators/adminsite/add_resource/templates/controllers/admin_resource_controller.rb +19 -0
- data/lib/generators/adminsite/install/USAGE +13 -0
- data/lib/generators/adminsite/install/install_generator.rb +51 -0
- data/lib/generators/adminsite/install/templates/assets/adminsite.js +17 -0
- data/lib/generators/adminsite/install/templates/assets/adminsite.scss +14 -0
- data/lib/generators/adminsite/install/templates/config/locales/adminsite.da.yml +4 -0
- data/lib/generators/adminsite/install/templates/config/locales/adminsite.en.yml +6 -0
- data/lib/generators/adminsite/install/templates/recipes/application.rb +18 -0
- data/lib/generators/adminsite/install/templates/views/_admin_menu.html.haml +8 -0
- data/lib/recipes/adminsite.rb +82 -0
- data/lib/tasks/adminsite.rake +147 -0
- metadata +384 -0
data/config/routes.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
Adminsite::Engine.routes.draw do
|
2
|
+
devise_for :adminsite_admin_user, class_name: 'Adminsite::AdminUser',
|
3
|
+
:controllers => { :sessions => "adminsite/admin_user_sessions" }
|
4
|
+
|
5
|
+
namespace Adminsite.config.admin_namespace, as: :admin, module: :admin do
|
6
|
+
Adminsite.register_routes(self)
|
7
|
+
|
8
|
+
root :to => 'adminsite_pages#index'
|
9
|
+
end
|
10
|
+
|
11
|
+
get '/:page_url(.:format)(/:id)' => 'contents#show',
|
12
|
+
:constraints => lambda { |req|
|
13
|
+
Adminsite::ContentsController.find_page_by_url(req.params[:page_url], req.params[:format]).present? &&
|
14
|
+
( req.params[:id].nil? || req.params[:id].try(:match, /\A[0-9a-zA-Z]*\z/).present? )
|
15
|
+
}
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
class CreateAdmin < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table(:adminsite_admin_users) do |t|
|
4
|
+
## Database authenticatable
|
5
|
+
t.string :name
|
6
|
+
t.string :email, :null => false, :default => ""
|
7
|
+
t.string :encrypted_password, :null => false, :default => ""
|
8
|
+
|
9
|
+
## Recoverable
|
10
|
+
t.string :reset_password_token
|
11
|
+
t.datetime :reset_password_sent_at
|
12
|
+
|
13
|
+
## Rememberable
|
14
|
+
t.datetime :remember_created_at
|
15
|
+
|
16
|
+
## Trackable
|
17
|
+
t.integer :sign_in_count, :default => 0
|
18
|
+
t.datetime :current_sign_in_at
|
19
|
+
t.datetime :last_sign_in_at
|
20
|
+
t.string :current_sign_in_ip
|
21
|
+
t.string :last_sign_in_ip
|
22
|
+
|
23
|
+
## Encryptable
|
24
|
+
# t.string :password_salt
|
25
|
+
|
26
|
+
## Confirmable
|
27
|
+
# t.string :confirmation_token
|
28
|
+
# t.datetime :confirmed_at
|
29
|
+
# t.datetime :confirmation_sent_at
|
30
|
+
# t.string :unconfirmed_email # Only if using reconfirmable
|
31
|
+
|
32
|
+
## Lockable
|
33
|
+
# t.integer :failed_attempts, :default => 0 # Only if lock strategy is :failed_attempts
|
34
|
+
# t.string :unlock_token # Only if unlock strategy is :email or :both
|
35
|
+
# t.datetime :locked_at
|
36
|
+
|
37
|
+
# Token authenticatable
|
38
|
+
# t.string :authentication_token
|
39
|
+
|
40
|
+
## Invitable
|
41
|
+
# t.string :invitation_token
|
42
|
+
|
43
|
+
t.string :openid_identifier
|
44
|
+
t.timestamps
|
45
|
+
end
|
46
|
+
|
47
|
+
add_index :adminsite_admin_users, :email, :unique => true
|
48
|
+
add_index :adminsite_admin_users, :reset_password_token, :unique => true
|
49
|
+
# add_index :adminsite_admin_users, :confirmation_token, :unique => true
|
50
|
+
# add_index :adminsite_admin_users, :unlock_token, :unique => true
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.down
|
54
|
+
# drop_table :open_id_authentication_associations
|
55
|
+
# drop_table :open_id_authentication_nonces
|
56
|
+
# drop_table :sessions
|
57
|
+
drop_table :adminsite_admin_users
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
class CreateCmsTables < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
|
4
|
+
create_table :adminsite_file_assets do |t|
|
5
|
+
t.string :attachment_file_name
|
6
|
+
t.string :attachment_content_type
|
7
|
+
t.integer :attachment_file_size
|
8
|
+
t.datetime :attachment_updated_at
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
add_index :adminsite_file_assets, :attachment_file_name
|
12
|
+
|
13
|
+
|
14
|
+
create_table :adminsite_pages do |t|
|
15
|
+
t.string :title
|
16
|
+
t.string :url
|
17
|
+
t.text :body
|
18
|
+
t.boolean :requires_login, :default => false
|
19
|
+
t.boolean :cacheable, :default => false
|
20
|
+
t.integer :page_layout_id
|
21
|
+
t.timestamps
|
22
|
+
end
|
23
|
+
add_index :adminsite_pages, :page_layout_id
|
24
|
+
add_index :adminsite_pages, :url
|
25
|
+
|
26
|
+
|
27
|
+
create_table :adminsite_page_layouts do |t|
|
28
|
+
t.string :title
|
29
|
+
t.text :body
|
30
|
+
t.timestamps
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.down
|
35
|
+
drop_table :adminsite_page_layouts
|
36
|
+
drop_table :adminsite_pages
|
37
|
+
drop_table :adminsite_file_assets
|
38
|
+
end
|
39
|
+
end
|
data/lib/adminsite.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require "adminsite/engine"
|
2
|
+
require 'adminsite/configuration'
|
3
|
+
|
4
|
+
module Adminsite
|
5
|
+
class << self
|
6
|
+
def configure
|
7
|
+
yield configuration
|
8
|
+
end
|
9
|
+
|
10
|
+
# Accessor for Adminsite::Configuration
|
11
|
+
def configuration
|
12
|
+
@configuration ||= Configuration.new
|
13
|
+
end
|
14
|
+
alias :config :configuration
|
15
|
+
|
16
|
+
def register_routes(rails_router)
|
17
|
+
load_controllers if Adminsite::Admin::CrudController.descendants.blank?
|
18
|
+
Adminsite::Admin::CrudController.descendants.each{|d| d.register_routes(rails_router) }
|
19
|
+
rails_router
|
20
|
+
end
|
21
|
+
|
22
|
+
def load_controllers
|
23
|
+
Gem.find_files('../app/controllers/**/admin/**/*_controller.rb').each do |c|
|
24
|
+
load(c)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
%w(rails action_controller/page_caching).each{|f| require f }
|
2
|
+
%w(paperclip liquid adminsite/liquid/tags/asset).each{|f| require f }
|
3
|
+
%w(devise haml formtastic codemirror-rails kaminari ransack).each{|f| require f }
|
4
|
+
|
5
|
+
module Adminsite
|
6
|
+
class Engine < Rails::Engine
|
7
|
+
isolate_namespace Adminsite
|
8
|
+
|
9
|
+
# config.generators.integration_tool :rspec
|
10
|
+
# config.generators.test_framework :rspec
|
11
|
+
|
12
|
+
initializer "adminsite.assets.precompile" do |app|
|
13
|
+
app.config.assets.precompile |= %w( adminsite.css adminsite.js )
|
14
|
+
end
|
15
|
+
|
16
|
+
initializer :adminsite do
|
17
|
+
Adminsite::Engine.config.action_controller.page_cache_directory = "#{Rails.root.to_s}/public"
|
18
|
+
|
19
|
+
# Make sure to load adminsite controllers to initalize adminsite resource routing
|
20
|
+
load_paths( [ Adminsite::Engine.root, Rails.root].collect{|r| "#{r}/app/controllers/**/adminsite/admin/**/*.*" } )
|
21
|
+
end
|
22
|
+
|
23
|
+
def load_paths(paths)
|
24
|
+
paths.each do |path|
|
25
|
+
Dir.glob(path).each{|f| require f }
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
class Asset < Liquid::Tag
|
2
|
+
def initialize(tag_name, asset_name, tokens)
|
3
|
+
super
|
4
|
+
@asset_name = asset_name.strip
|
5
|
+
end
|
6
|
+
|
7
|
+
def render(context)
|
8
|
+
Adminsite::FileAsset.attachment_url_for(@asset_name)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
module Adminsite
|
13
|
+
class LiquidTag < Liquid::Tag
|
14
|
+
protected
|
15
|
+
|
16
|
+
def controller
|
17
|
+
Adminsite::ContentsController
|
18
|
+
end
|
19
|
+
|
20
|
+
def helpers
|
21
|
+
@helpers ||= controller.helpers
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class CsrfMetaTags < Adminsite::LiquidTag
|
27
|
+
include ActionView::Helpers::CsrfHelper
|
28
|
+
include ActionView::Helpers::FormTagHelper
|
29
|
+
|
30
|
+
def render(context)
|
31
|
+
@environment = context.environments.first
|
32
|
+
csrf_meta_tags
|
33
|
+
end
|
34
|
+
|
35
|
+
def protect_against_forgery?
|
36
|
+
true
|
37
|
+
end
|
38
|
+
|
39
|
+
def form_authenticity_token
|
40
|
+
@environment['authenticity_token']
|
41
|
+
end
|
42
|
+
|
43
|
+
def request_forgery_protection_token
|
44
|
+
@environment['authenticity_param']
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
class Adminsite::LiquidNameTag < Adminsite::LiquidTag
|
49
|
+
def initialize(tag_name, name, tokens)
|
50
|
+
super
|
51
|
+
@name = name.strip
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
class JavascriptIncludeTag < Adminsite::LiquidNameTag
|
56
|
+
def render(context)
|
57
|
+
helpers.javascript_include_tag @name
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
class StylesheetLinkTag < Adminsite::LiquidNameTag
|
62
|
+
def render(context)
|
63
|
+
helpers.stylesheet_link_tag @name
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
Liquid::Template.register_tag('asset', Asset)
|
68
|
+
Liquid::Template.register_tag('javascript_include_tag', JavascriptIncludeTag)
|
69
|
+
Liquid::Template.register_tag('stylesheet_link_tag', StylesheetLinkTag)
|
70
|
+
Liquid::Template.register_tag('csrf_meta_tags', CsrfMetaTags)
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Adminsite
|
2
|
+
module Generators
|
3
|
+
class AddDashboardGenerator < Rails::Generators::Base
|
4
|
+
source_root File.expand_path("../templates", __FILE__)
|
5
|
+
|
6
|
+
|
7
|
+
def run_generation
|
8
|
+
|
9
|
+
|
10
|
+
@title = "Override Me !!!"
|
11
|
+
|
12
|
+
|
13
|
+
#puts "my first iframe for controller_name'#{@controller_name}' }'"
|
14
|
+
template "controllers/admin_dashboard_controller.rb", "app/controllers/adminsite/admin/dashbord_controller.rb"
|
15
|
+
|
16
|
+
template "views/index.html.haml", "app/views/adminsite/admin/dashboard/index.html.haml"
|
17
|
+
|
18
|
+
# Content-Menu
|
19
|
+
inject_into_file "app/views/adminsite/admin/shared/_admin_menu.html.haml", :after => /\= yield :admin_menu\n/ do\
|
20
|
+
# "\n = menu_item 'IFrameMgt', admin_#Dashboard_index_path, ['#{@file_name}']\n"
|
21
|
+
"\n = menu_item 'Dashboard', admin_dashboard_index_path "
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'uri'
|
2
|
+
module Adminsite
|
3
|
+
module Generators
|
4
|
+
class AddIframeGenerator < Rails::Generators::Base
|
5
|
+
source_root File.expand_path("../templates", __FILE__)
|
6
|
+
|
7
|
+
argument :url,
|
8
|
+
:type => :string,
|
9
|
+
:desc => "The url ex: www.google.com",
|
10
|
+
:required => true
|
11
|
+
|
12
|
+
argument :controller_name,
|
13
|
+
:type => :string,
|
14
|
+
:desc => "ex : GoogleSearch ",
|
15
|
+
:required => false
|
16
|
+
|
17
|
+
|
18
|
+
def run_generation
|
19
|
+
require 'domainatrix'
|
20
|
+
|
21
|
+
url_parsed = Domainatrix.parse(url)
|
22
|
+
@url = url_parsed.url
|
23
|
+
@domain = url_parsed.domain
|
24
|
+
@controller_name = controller_name || "#{@domain}Iframe"
|
25
|
+
|
26
|
+
@file_name = @controller_name.underscore.gsub('/','_')
|
27
|
+
puts "file_name: '#{@file_name}'"
|
28
|
+
|
29
|
+
raise "Domain missing or not valid" if @domain.blank?
|
30
|
+
|
31
|
+
puts "my first iframe for domain: '#{@controller_name}' with url: '#{@url}'"
|
32
|
+
template "controllers/admin_iframe_controller.rb", "app/controllers/adminsite/admin/#{@file_name}_controller.rb"
|
33
|
+
|
34
|
+
# Content-Menu
|
35
|
+
inject_into_file "app/views/adminsite/admin/shared/_admin_menu.html.haml", :after => /\= yield :admin_menu\n/ do\
|
36
|
+
"\n = menu_item 'IFrameMgt', admin_#{@file_name}_index_path, ['#{@file_name}']\n"
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class Adminsite::Admin::<%= @controller_name.camelize.gsub('::','') %>Controller < Adminsite::Admin::IframeController
|
2
|
+
|
3
|
+
private
|
4
|
+
|
5
|
+
class << self
|
6
|
+
|
7
|
+
def iframe_url
|
8
|
+
'<%= @url %>'
|
9
|
+
end
|
10
|
+
|
11
|
+
def iframe_name
|
12
|
+
'<%= @controller_name %>'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
File without changes
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Adminsite
|
2
|
+
module Generators
|
3
|
+
class AddResourceGenerator < Rails::Generators::NamedBase
|
4
|
+
source_root File.expand_path("../templates", __FILE__)
|
5
|
+
|
6
|
+
def table_name
|
7
|
+
class_name_underscore.pluralize
|
8
|
+
end
|
9
|
+
|
10
|
+
#def file_name
|
11
|
+
# super.underscore.gsub('/','_')
|
12
|
+
#end
|
13
|
+
|
14
|
+
def class_name_underscore
|
15
|
+
class_name.underscore.gsub('/','_')
|
16
|
+
end
|
17
|
+
|
18
|
+
def run_generation
|
19
|
+
puts "Setting up resource #{class_name.camelize} for Adminsite"
|
20
|
+
@resource_class = class_name.camelize
|
21
|
+
|
22
|
+
#puts "file_name: #{file_name}"
|
23
|
+
puts "table_name: #{table_name}"
|
24
|
+
|
25
|
+
# Controllers
|
26
|
+
template "controllers/admin_resource_controller.rb", "app/controllers/adminsite/admin/#{table_name}_controller.rb"
|
27
|
+
|
28
|
+
# Models
|
29
|
+
template "admin_configs/resource_admin_config.rb", "app/admin_configs/adminsite/#{class_name_underscore}_admin_config.rb"
|
30
|
+
|
31
|
+
# Content-Menu
|
32
|
+
inject_into_file "app/views/adminsite/admin/shared/_admin_menu.html.haml", :after => /\= yield :admin_menu\n/ do\
|
33
|
+
"\n = menu_item '#{class_name.camelize}Mngt', admin_#{table_name}_path, ['#{table_name}']\n"
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Adminsite
|
2
|
+
class <%= @resource_class.gsub('::','') %>AdminConfig < Adminsite::AdminConfig::Base
|
3
|
+
|
4
|
+
# def ignore_columns
|
5
|
+
# ['created_at', 'updated_at', 'id']
|
6
|
+
# end
|
7
|
+
|
8
|
+
# def column_names
|
9
|
+
# @column_names ||= resource_class.column_names
|
10
|
+
# end
|
11
|
+
|
12
|
+
# def attributes_index
|
13
|
+
# column_names
|
14
|
+
# end
|
15
|
+
|
16
|
+
# def attributes_edit
|
17
|
+
# @attributes_edit ||= (column_names - ignore_columns)
|
18
|
+
# end
|
19
|
+
|
20
|
+
# def attributes_show
|
21
|
+
# attributes_edit
|
22
|
+
# end
|
23
|
+
|
24
|
+
# def default_member_actions
|
25
|
+
# [ :show,
|
26
|
+
# :edit,
|
27
|
+
# :destroy]
|
28
|
+
# end
|
29
|
+
|
30
|
+
# def actions_index
|
31
|
+
# [ :new ]
|
32
|
+
# end
|
33
|
+
|
34
|
+
# def attributes_search
|
35
|
+
# attributes_index
|
36
|
+
# end
|
37
|
+
|
38
|
+
# def label_attribute
|
39
|
+
# :title
|
40
|
+
# end
|
41
|
+
|
42
|
+
# def scopes
|
43
|
+
# [:all]
|
44
|
+
# end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|