AipoのWiki機能で詳細画面を開くのと登録ダイアログを開く分岐処理

AipoのWiki機能がリリースされました!

Wiki機能では新たに、詳細画面をダイアログではなく、画面にそのまま表示することを行っています。

Wikiでリンク先がある場合→クリックしたら画面を切り替えてリンク先を表示する

リンク先がない場合→登録用のダイアログを表示する

といった分岐処理が必要となります。

https://github.com/aipocom/aipo/blob/master/portlets/wiki/src/main/java/info/bliki/wiki/model/WikiModel.java

の以下の部分で分岐して表示を切り替えています。

Aipoの場合、Ajaxによる画面切替はaipo.common.showDialogとaipo.viewPageで行うので、この基本パターンにのっとれば意外と簡単に今回のように詳細画面をダイアログではない表示にすることができます。

      EipTWiki destWiki =
        WikiUtils.getEipTWiki(topic, queryPairs.get("parentId"));
      String jstext = "";
      if (null == destWiki) {
        String hrefForm =
          href.replaceFirst(
            WIKII_NTERNAL_LINK_SCREEN,
            WIKII_NTERNAL_LINK_FORM_SCREEN);
        jstext =
          "aipo.common.showDialog('"
            + hrefForm
            + "', '"
            + queryPairs.get("portletid")
            + "', "
            + queryPairs.get("callback")
            + ");";
        aTagNode.addAttribute("class", "wikiNew", true);
      } else {
        jstext =
          "aipo.viewPage('"
            + href
            + "', '"
            + queryPairs.get("portletid")
            + "');";

      }