我的管理页面上有action_item:
action_item :only => :index do
link_to I18n.t('admin.dem_ref_nvl_etb'), :action => 'whatever'
end
我想知道如何通过单击上面的链接显示弹出窗口,就像batch_action在使用“form”选项时一样(我不需要这样的操作) ,这只是一个基本链接。)
任何提示?
万分感谢阅读和帮助!
答案 0 :(得分:7)
在Hugues的回答的基础上,这是一个更加充实的例子,我设法用我非常微薄的javascript技巧拼凑起来:
在app/assets/javascripts/active_admin.js
:
//= require active_admin/base
$(document).on('ready page:load turbolinks:load', function() {
$('a.lextest').click(function(e) {
e.stopPropagation(); // prevent Rails UJS click event
e.preventDefault();
ActiveAdmin.modal_dialog("Send email to: ", {emails: 'text'}, function(inputs) {alert (inputs.emails)})
})
})
请注意,我不使用默认的active_admin.js.coffee
,因为我不喜欢coffeescript - 只是个人偏好。此代码将onClick事件处理程序添加到具有类lextest
的所有链接。现在,您可以使用link_to:
link_to('Modal', '#', class: 'lextest')
我从batch_action
implemented的方式拼凑了所有这些。
答案 1 :(得分:3)
我找到了你问题的答案。我不会详细介绍,因为我想你知道你的Javascript,但这可以进一步扩展。
ActiveAdmin附带一个模态对话框javascript库。这很粗糙,但可以完成工作。您可以在此文档页面上了解它的存在: http://activeadmin.info/docs/9-batch-actions.html 在Batch Action表单部分结束时向3/4向下。 对于确切的代码检查github: https://github.com/activeadmin/activeadmin/blob/master/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee
这是一个非常基本的示例,您可以在javascript控制台中复制粘贴以检查效果。
ActiveAdmin.modal_dialog("Send email to: ", {emails: 'text'}, function(inputs) {alert (inputs.emails)})
只要你的Javascript技能很好,你就应该走上正轨。