2015-12-02 56 views
1

我有一个ActiveAdmin表单,可以启动一个相对长时间的动作(5-20​​秒)。在后台任务中执行它是没有意义的,因为我需要用户在继续使用系统之前等待它。我希望在执行操作时让表单显示某种“加载”动画,但我无法找到如何使用ActiveAdmin/formtastic进行操作。我怀疑ActiveAdmin有一项功能可以使用,但我无法找到它。有什么建议么?如何将加载动画添加到ActiveAdmin

+0

按钮上的'disable_with'是不够的? –

+0

它没有为我工作。以下是我的尝试:'f.action:submit,:button_html => {:disable_with =>'等待...'}'和'f.action:submit,:disable_with =>'等等...'' –

回答

0

这是你应该如何与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...' 
    } 
+0

尝试它是这样的:'f.actions做 f.action(:提交,类:'按钮',数据:{disable_with:'等待...'))+ f.cancel_link() 结束 '但它doesn不起作用 - 该按钮在任务运行时仍处于活动状态。 –

+0

@ ro-tex查看编辑答案 –

+0

恐怕这仍然不适合我。它看起来正确,应该可以工作,但是'disabled_with'指令似乎有些问题。我用'disbaled:true'对其进行了测试,结果如此 - 按钮不起任何作用。我添加了一个提醒,所以我会知道按钮的工作时间。最后为我工作的是这个'f.action:submit, button_html:{ onclick:“this.disabled = true; this.value ='Wait ...'; this.form.submit();” }' –

0

这为我工作在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可能导致在数据库中创建多个记录,只需点击一下即可。