Aipoのwiki機能で同時編集をブロックする

y-ozaki 268views 更新:2014年3月24日

同時編集をブロックする処理は、編集ボタンを押した際のwikiの最終更新時間と更新するボタンを押した時の最終更新時間を比較して異なる場合、エラーメッセージを出すようにしています。

編集ボタンを押した際にWikiFormDataのloadFormData内で以下のように更新時間をセッションに保存します。

ALEipUtils.setTemp(rundata, context, "update_date", wiki
        .getUpdateDate()
        .toString());

更新するボタンをおした時の処理は、まずWikiFormDataのinitでセッションから更新時間を取ってきて、以下のようにvalidate内で処理を行います。

if (update_date != null) {
      EipTWiki eipTWiki = WikiUtils.getEipTWiki(Integer.parseInt(entityId));
      if (!update_date.equals(eipTWiki.getUpdateDate().toString())) {
        msgList.add(ALLocalizationUtils.getl10n("WIKI_CONFLICT_ERROR"));
      }
    }

メッセージリストに同時編集であるとエラーメッセージを入れることで、他のエラーの際と同様の方法で意図しない同時編集をブロックしています。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません