我有一个ActiveAdmin表单,可以启动一个相对长时间的动作(5-20秒)。在后台任务中执行它是没有意义的,因为我需要用户在继续使用系统之前等待它。我希望在执行操作时让表单显示某种“加载”动画,但我无法找到如何使用ActiveAdmin/formtastic进行操作。我怀疑ActiveAdmin有一项功能可以使用,但我无法找到它。有什么建议么?如何将加载动画添加到ActiveAdmin
回答
这是你应该如何与simple_form使用disable_with(check the docs):
f.submit,
'Submit',
class: 'button',
data: { disable_with: Wait... }
由于ActiveAdmin使用引擎盖下formtastic,AA解决方案是一个有点不同:
f.action :submit,
button_html: {
label: 'Custom label',
class: "btn primary",
disable_with: 'Wait...'
}
尝试它是这样的:'f.actions做 f.action(:提交,类:'按钮',数据:{disable_with:'等待...'))+ f.cancel_link() 结束 '但它doesn不起作用 - 该按钮在任务运行时仍处于活动状态。 –
@ ro-tex查看编辑答案 –
恐怕这仍然不适合我。它看起来正确,应该可以工作,但是'disabled_with'指令似乎有些问题。我用'disbaled:true'对其进行了测试,结果如此 - 按钮不起任何作用。我添加了一个提醒,所以我会知道按钮的工作时间。最后为我工作的是这个'f.action:submit, button_html:{ onclick:“this.disabled = true; this.value ='Wait ...'; this.form.submit();” }' –
这为我工作在ActiveAdmin上。
f.actions do
f.action :submit,
button_html: {
label: 'Custom label',
class: "btn primary",
data: {disable_with: 'Creating...'}
}
end
不添加disable_with的问题不仅仅是可视化的。如果您使用turbolink,不添加disable_with可能导致在数据库中创建多个记录,只需点击一下即可。
按钮上的'disable_with'是不够的? –
它没有为我工作。以下是我的尝试:'f.action:submit,:button_html => {:disable_with =>'等待...'}'和'f.action:submit,:disable_with =>'等等...'' –