MTAppSortDisabled

メインカラムのフィールドの D&D 並べ替えを無効化する(#sortable の jQuery UI sortable を disable)。v3 の mtapp.sortDisabled() 相当。

メインカラムのフィールドのドラッグ&ドロップによる並べ替えを無効化する静的メソッドです。PowerCMS / MT は記事・ウェブページ編集画面のフィールドのコンテナ(既定 #sortable)を jQuery UI sortable にして並べ替えを可能にしていますが、これを無効化します。フィールドの順序を運用者に変更させたくない場合に使います。

MTAppjQuery v3 の mtapp.sortDisabled() に相当する機能です。P7 では他メソッドと同じ $.MTApp* 形式で $.MTAppSortDisabled() として提供します。

構文

$.MTAppSortDisabled(options);

静的メソッド($.MTAppSortDisabled)です。

パラメータ

options {Object} — 省略可。以下のプロパティを持ちます。

プロパティ既定値説明
targetstring'#sortable'並べ替えを無効化する jQuery UI sortable コンテナのセレクタ

戻り値

なし(undefined)。

使用例

// メインカラムのフィールドの並べ替えを無効化
$.MTAppSortDisabled();

user.js での記述例

user.js(「デザイン → user.js を編集」)に書く場合は、mtappVars.screen_id で画面を判定して呼び出します。

(function ($) {
    if (typeof mtappVars !== 'object') return;
    if (mtappVars.screen_id === 'edit-entry') {
        $.MTAppSortDisabled();
    }
})(jQuery);

補足

  • 内部で対象コンテナの jQuery UI sortable を disable します。ドラッグでの並べ替えができなくなります。
  • PowerCMS / MT は #sortable を自身の document ready 内で sortable 化します。これは MTAppjQuery の初期化より後に走るため、本メソッドは対象が sortable 化されるまで短時間待ってから無効化します(最大約3秒)。そのため、初期化スクリプト(user.js / jquery_ready.js)から呼んでもタイミングを気にせず動作します。
  • 無効化中は、ドラッグに関わる見た目を CSS(.ui-sortable-disabled)ですべて消し、すっきりした表示にします。
    • ドラッグハンドルのグリップ画像(.sort-enabled の背景画像)
    • ドラッグ可能を示す影(box-shadow)とフィールドを囲む枠線(border / border-radius
    • マウスオーバー時のカーソル変化(move)とアニメーション(transition
    • グリップ用に確保されていた左余白(ラベルと入力欄の左端を揃える)
  • 対象が存在しない、または sortable 化されない場合は何もしません(エラーにはなりません)。

関連

  • MTAppFieldSort — フィールドを指定した順序に並べ替える(プログラムによる並べ替え。本メソッドで D&D を無効化しても利用できる)。
  • MTAppMoveToWidget — 既存フィールドをサイドバーのウィジェットへ移動する。