Drupalで記事を新規投稿するときに、保存ボタンを二重クリックするとノードが2つ作成される。
もしくは故意で連打すると押した分だけノードが作成される。
業務で使っているなら必ず起きる問題点。
そんなときの回避候補として・・・
JavaScriptで一度押された保存ボタンを無効にする。
保存前にpopupを表示し、保存する。
Rulesモジュールである時間内に、同一のタイトルで保存出来ないようにする。
そんなモジュールがあれば・・・。
ということで、Hide submit buttonという丁度よいモジュールがあった。
モジュールをインストール後、
admin/config/content/hide-submit
に設定画面。
一番上の「Blocking method」設定
Disable the submit buttons. ボタンを無効化
Hide the submit buttons. ボタンを非表示
Built-in loading indicator. ボタンのところにローディングを表示
Reset buttons after some time (ms). *
数字はそのままでも0でも良い。
ローディングボタンのサンプルはhttp://lab.hakim.se/ladda/で確認出来る。
INDICATOR SETTINGSの部分で
ローディングエフェクトの選択が可能。
またローディングエフェクトの色が変えられる。
ボタンの色は変えられない。
検証するとDBが重いサイトでは、結局押した分だけノードが作成されて使えなかったりする。
次の策としてUnique fieldモジュールでタイトルや本文で判定させる方法があるが、これもやっぱり動作が不安定だ。