adminsite 2.0.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/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
|