CookBook

imuiTreeでドラッグ&ドロップのバリデーションを実装する方法

投稿日:

このCookBookでは、imuiTree (ツリービュー) のドラッグ&ドロップバリデーションについて紹介しています。

intra-mart Accel Platform では、画面上にツリーを表示するUI部品でimuiTreeを用意しています。
imuiTree
この部品を使用すると、ツリー形式の表示はもちろんですが、dnd プラグインを設定することで、ドラッグ&ドロップ操作による各アイテムの移動ができるようになります。

完成イメージ


1. root1フォルダをドラッグ&ドロップします。
⇒ root2フォルダの後や、root2フォルダの中に移動することができます。
⇒ root3フォルダの中には移動できません。
 
2. root3フォルダをドラッグ&ドロップします。
⇒ どこにも移動できません。
 
3. child1-1ファイルをドラッグ&ドロップします。
⇒ root2フォルダの中に移動することができます。
⇒ root3フォルダの中には移動できません。
 
4. child3-1ファイルをドラッグ&ドロップします。
⇒ どこにも移動できません。

image

完成サンプル

以下の完成サンプルをダウンロードしてご活用ください。

e builder プロジェクト : im_cookbook_113622.zip
imm ファイル : im_cookbook_113622-1.0.0.imm

ローカル環境で表示させる場合は、以下のURLにアクセスしてください。
http://localhost:8080/imart/im_cookbook/113622/index
なおベースURLである以下の部分は、環境に合わせて適宜変更してください。
http://localhost:8080/imart

レシピ

  1. imuiTreeタグをページ上に配置してください。
  2. バリデーションを行うコールバック関数を追加してください。
  3. コールバック関数内に、バリデーションルールを実装してください。

1. imuiTreeタグをページ上に配置してください。

このとき、parameterのpluginsに、"dnd" と "crrm" を追加してください。
プラグインを追加することで、ドラッグ&ドロップ操作が可能になります。

index.js:

index.html:

2. バリデーションを行うコールバック関数を追加してください。

imuiTreeはjsTreeライブラリを使用しています。
jsTreeライブラリのAPIを呼び出して、バリデーションを行うためのコールバック関数を設定に追加してください。

3. コールバック関数内に、バリデーションルールを実装してください。

コールバック関数内にバリデーションルールを実装ください。
true を返却するとドラッグ操作可能、false を返却すると不可となります。

引数の data には、ドラッグ操作を行っているアイテムや、ドロップ先のアイテムなどの情報が格納されています。
実際に格納される内容は、jsTreeのAPIドキュメントを参照してください。
https://old.jstree.com/documentation/crrm
https://old.jstree.com/documentation/core.html#_get_move

このCookbookでは、以下のルールに従ってバリデーションを実装しています。
1. 禁止マークがある root3 フォルダと配下のファイルは、常にドラッグ不可
2. フォルダはトップ階層と、フォルダ配下にのみドラッグ可能
3. ファイルはフォルダ配下にのみドラッグ可能 (トップ階層は不可)
4. 禁止マークがある root3 配下にはドラッグ不可

以上で、imuiTreeのアイテムをドラッグ&ドロップする際のバリデーションを実装することができました。

-CookBook
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

完了したワークフロー案件の登録データをメンテナンスする方法

このCookBookでは、IM-BISとIM-FormaDesignerで作成したワークフロー案件の登録データを編集する方法を紹介します。 一部制限はありますが、IM-FormaDesignerのアプ …

【ViewCreator】LogicDesignerと連携してデータ参照の一覧を表示するデータ参照を作成する方法

ViewCreator において、標準の「データ参照一覧」画面では以下のような変更ができません。 「説明」を一覧に表示する。 「データ参照名」の(初期表示時の)列幅を変更する。 各データ参照の表示画面 …

no image

No.1 メールに添付されているExcelファイル読み込み → ワークフロー申請

この記事は、EWS 2017で行われたLogicDesignerの講演内容に関する記事です。 こちらの例では、メールサーバと連携し、メールの添付ファイルの内容から自動的にワークフローを申請できます。 …

no image

ViewCreatorでIM-Workflowのフロー毎の取止め・差戻し案件件数を表示する。

このCookBookでは、ViewCreatorでIM-Workflowのフロー毎の取止め/差戻し案件件数を表示する方法を説明します。 検索条件を変更することで、IM-Workflowの特定の状況をモ …

no image

FormaのスクリプトからAjax処理を呼び出す

このCookBookでは、Formaのスクリプトからサーバサイドロジックを呼び出し、Ajax処理を実現する方法をご紹介します。 IM-LogicDesignerを利用し、サーバサイドロジックとその呼び …

まだデータがありません。

RSSRSSRSSRSS