SharePoint 2013 以降では、ドキュメント ライブラリへのファイルのアップロードが、デスクトップからのドラッグ & ドロップで行うことができるようになりました。これはすごく便利なのですが、ファイルのアップロード時にメタデータを入力させたい場合は、自動的に入力のためのダイアログが開かないため少々手間がかかります。であれば、いっそのことこの機能を無効にして、従来通りのアップロード画面からの利用に統一したいなと思うも、どこからも無効化するための設定を探し出せません。というわけで調べたところ、JavaScript を使って無効化できる方法を発見しました。SharePoint Online でもこの方法で OK でした。

ドキュメント ライブラリのビューの画面に仕込む

というわけで、ドラッグ & ドロップを無効化したいドキュメント ライブラリを開き、ビューの画面で「ページの編集」モードに切替えます。JavaScript と CSS を仕込みますので、コンテンツ エディタかスクリプト エディタ Web パーツを追加しておきます。記述するのは下記の通りです。

<style type="text/css">
div.ms-dragDropAttract-subtle{display:none;}
</style>
<script type="text/javascript">
ExecuteOrDelayUntilScriptLoaded(function(){
	g_uploadType = DragDropMode.NOTSUPPORTED;
	SPDragDropManager.DragDropMode = DragDropMode.NOTSUPPORTED;
},"DragDrop.js");
</script>

機能の無効化自体は JavaScript のみで大丈夫のようですが、SharePoint Online の場合は「ファイルをアップロードするには、ここにドラッグします」といった表記があるので、CSS でこの部分を非表示にしています。

さいごに

今回のスクリプトは、こちらのページを参考にさせていただきました。

SharePoint 2013 Hide upload and disable drag drop for document library
http://georgetowndctechie.blogspot.jp/2015/01/sharepoint-2013-hide-upload-and-disable.html

全世界のユーザーの知恵を借りられるのは、SharePoint の良いところですね。