2015-12-02 24 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可能導致在數據庫中創建多個記錄,只需點擊一下即可。