>>851
ソースを修正してみた
https://codepen.io/cocotto/pen/OJgmXyo

自分はMVCとかよく分からんので、元のロジックは基本的にそのままで
機械的に細かく関数に分けてみただけだが

一応意識したのはタグの操作(insertAdjacentHTMLとかsetAttributeなどの行)は
ソースとしては非常に読みづらいので1行2行でも関数化したのと、
ボタンの状態変化をupdateButtonStatus()の1箇所にまとめ、
アクションの種類によらずその1種類の関数だけを呼べばよいようにしたことくらい