activeadmin-nested-namespaces 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c71e81138b744889a06e3dc7f7c6c3e0899098f1
|
4
|
+
data.tar.gz: 9d0d3dc993d4b028d4bbaedbc64183481e0ec741
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80780964c5f7ed4020f16f93835b83f8f7e810a1f69d86218bc0079d8d9d23e95e5025674ce8e3428d5125a0dc548182058cd0895200f2c6ac483adba59af769
|
7
|
+
data.tar.gz: 2f0b87ae6cc970bdf2b5b04bfe11683fa37bac6221984779aaaac555b831d90a10bdf3e5bb2f17419952ec5189fd1f14cc05b5847ef1d3387fa43776eec197e4
|
data/README.md
CHANGED
@@ -54,15 +54,7 @@ ActiveAdmin.setup do |config|
|
|
54
54
|
#
|
55
55
|
# This setting changes the method which Active Admin calls
|
56
56
|
# within the application controller.
|
57
|
-
|
58
|
-
|
59
|
-
config.authentication_method = Proc.new do |name_path|
|
60
|
-
if [config.default_namespace, :root].include?(name_path.first)
|
61
|
-
:authenticate_admin_user!
|
62
|
-
else
|
63
|
-
"authenticate_#{name_path.map(&:to_s).join('_').underscore}_admin_user!".to_sym
|
64
|
-
end
|
65
|
-
end
|
57
|
+
config.authentication_method = :authenticate_admin_user!
|
66
58
|
|
67
59
|
# == User Authorization
|
68
60
|
#
|
@@ -94,13 +86,7 @@ ActiveAdmin.setup do |config|
|
|
94
86
|
#
|
95
87
|
# This setting changes the method which Active Admin calls
|
96
88
|
# (within the application controller) to return the currently logged in user.
|
97
|
-
config.current_user_method =
|
98
|
-
if [config.default_namespace, :root].include?(name_path.first)
|
99
|
-
:current_admin_user
|
100
|
-
else
|
101
|
-
"current_#{name_path.map(&:to_s).join('_').underscore}_admin_user".to_sym
|
102
|
-
end
|
103
|
-
end
|
89
|
+
config.current_user_method = :current_admin_user
|
104
90
|
|
105
91
|
# == Logging Out
|
106
92
|
#
|
@@ -112,13 +98,7 @@ ActiveAdmin.setup do |config|
|
|
112
98
|
# will call the method to return the path.
|
113
99
|
#
|
114
100
|
# Default:
|
115
|
-
config.logout_link_path =
|
116
|
-
if [config.default_namespace, :root].include?(name_path.first)
|
117
|
-
:destroy_admin_user_session_path
|
118
|
-
else
|
119
|
-
"destroy_#{name_path.map(&:to_s).join('_').underscore}_admin_user_session_path".to_sym
|
120
|
-
end
|
121
|
-
end
|
101
|
+
config.logout_link_path = :destroy_admin_user_session_path
|
122
102
|
|
123
103
|
# This setting changes the http method used when rendering the
|
124
104
|
# link. For example :get, :delete, :put, etc..
|
data/dummy_app/config/routes.rb
CHANGED
@@ -1,20 +1,5 @@
|
|
1
1
|
Rails.application.routes.draw do
|
2
2
|
devise_for :admin_users, ActiveAdmin::Devise.config
|
3
|
-
|
4
|
-
namespace :site1 do
|
5
|
-
devise_for :admin_users, ActiveAdmin::Devise.config
|
6
|
-
end
|
7
|
-
|
8
|
-
namespace :site2 do
|
9
|
-
devise_for :admin_users, ActiveAdmin::Devise.config
|
10
|
-
end
|
11
|
-
|
12
|
-
namespace :site3 do
|
13
|
-
namespace :demo do
|
14
|
-
devise_for :admin_users, ActiveAdmin::Devise.config
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
3
|
ActiveAdmin.routes(self)
|
19
4
|
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
|
20
5
|
end
|
@@ -118,9 +118,7 @@ module ActiveAdmin
|
|
118
118
|
end
|
119
119
|
|
120
120
|
end
|
121
|
-
|
122
|
-
# TODO: patch active_admin/orm/active_record/comments.rb
|
123
|
-
|
121
|
+
|
124
122
|
ActiveAdmin::Comment.class_eval do
|
125
123
|
def self.find_for_resource_in_namespace(resource, name)
|
126
124
|
where(
|
@@ -265,6 +263,84 @@ module ActiveAdmin
|
|
265
263
|
@body.add_class(active_admin_namespace.name_path.map(&:to_s).join('_') + '_namespace')
|
266
264
|
end
|
267
265
|
end
|
266
|
+
|
267
|
+
# patch - active_admin/orm/active_record/comments.rb
|
268
|
+
ActiveAdmin.after_load do |app|
|
269
|
+
app.namespaces.each do |namespace|
|
270
|
+
|
271
|
+
# Un-register default comment pages
|
272
|
+
namespace.resources.instance_variable_get(:@collection).delete_if {|k,v| v.instance_variable_get(:@resource_class_name) == '::ActiveAdmin::Comment' }
|
273
|
+
|
274
|
+
# Re-register comments pages with nested namespaces
|
275
|
+
namespace.register ActiveAdmin::Comment, as: namespace.comments_registration_name do
|
276
|
+
actions :index, :show, :create, :destroy
|
277
|
+
|
278
|
+
menu namespace.comments ? namespace.comments_menu : false
|
279
|
+
|
280
|
+
config.comments = false # Don't allow comments on comments
|
281
|
+
config.batch_actions = false # The default destroy batch action isn't showing up anyway...
|
282
|
+
|
283
|
+
scope :all, show_count: false
|
284
|
+
# Register a scope for every namespace that exists.
|
285
|
+
# The current namespace will be the default scope.
|
286
|
+
app.namespaces.map(&:name_path).sort { |x,y| x[0] <=> y[0] }.each do |name_path|
|
287
|
+
scope "/#{name_path.join('/')}", default: namespace.name_path == name_path do |scope|
|
288
|
+
scope.where namespace: name_path.to_s
|
289
|
+
end
|
290
|
+
end
|
291
|
+
|
292
|
+
# Store the author and namespace
|
293
|
+
before_save do |comment|
|
294
|
+
comment.namespace = active_admin_config.namespace.name_path
|
295
|
+
comment.author = current_active_admin_user
|
296
|
+
end
|
297
|
+
|
298
|
+
controller do
|
299
|
+
# Prevent N+1 queries
|
300
|
+
def scoped_collection
|
301
|
+
super.includes(:author, :resource)
|
302
|
+
end
|
303
|
+
|
304
|
+
# Redirect to the resource show page after comment creation
|
305
|
+
def create
|
306
|
+
create! do |success, failure|
|
307
|
+
success.html do
|
308
|
+
ActiveAdmin::Dependency.rails.redirect_back self, active_admin_root
|
309
|
+
end
|
310
|
+
failure.html do
|
311
|
+
flash[:error] = I18n.t 'active_admin.comments.errors.empty_text'
|
312
|
+
ActiveAdmin::Dependency.rails.redirect_back self, active_admin_root
|
313
|
+
end
|
314
|
+
end
|
315
|
+
|
316
|
+
def destroy
|
317
|
+
destroy! do |success, failure|
|
318
|
+
success.html do
|
319
|
+
ActiveAdmin::Dependency.rails.redirect_back self, active_admin_root
|
320
|
+
end
|
321
|
+
failure.html do
|
322
|
+
ActiveAdmin::Dependency.rails.redirect_back self, active_admin_root
|
323
|
+
end
|
324
|
+
end
|
325
|
+
end
|
326
|
+
end
|
327
|
+
end
|
328
|
+
|
329
|
+
permit_params :body, :namespace, :resource_id, :resource_type
|
330
|
+
|
331
|
+
index do
|
332
|
+
column I18n.t('active_admin.comments.resource_type'), :resource_type
|
333
|
+
column I18n.t('active_admin.comments.author_type'), :author_type
|
334
|
+
column I18n.t('active_admin.comments.resource'), :resource
|
335
|
+
column I18n.t('active_admin.comments.author'), :author
|
336
|
+
column I18n.t('active_admin.comments.body'), :body
|
337
|
+
column I18n.t('active_admin.comments.created_at'), :created_at
|
338
|
+
actions
|
339
|
+
end
|
340
|
+
end
|
341
|
+
end
|
342
|
+
end
|
343
|
+
|
268
344
|
end
|
269
345
|
end
|
270
346
|
end
|