活动管理员:通过单击action_item链接触发模态窗口

时间:2016-03-23 18:00:45

标签: ruby-on-rails-4 activeadmin

我的管理页面上有action_item:

action_item :only => :index do
    link_to I18n.t('admin.dem_ref_nvl_etb'), :action => 'whatever'
  end

我想知道如何通过单击上面的链接显示弹出窗口,就像batch_action在使用“form”选项时一样(我不需要这样的操作) ,这只是一个基本链接。)

任何提示?

万分感谢阅读和帮助!

2 个答案:

答案 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技能很好,你就应该走上正轨。