activeadmin-nested-namespaces 0.1.0 → 0.1.1
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
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
|