SharePoint サイトに含まれるリストやライブラリは「サイト コンテンツ」の画面で一覧することができるのですが、一般のユーザーには触らせたくない、または、システム上必要だけど業務に不要なリストやライブラリは見せたくないといった要望が挙がることがあります。
たとえば、「スタイル ライブラリ」などが分かりやすい例で、サイトのデザインなどに関わる作業中は必要ですが、それが終わると「サイト コンテンツ」に表示しておく必要はありません。
SharePoint Designer を利用する
SharePoint Designer でリストやライブラリの設定画面を開くと、「設定」の中に「ブラウザーに表示しない」という項目があり、ここにチェックを入れることで「サイト コンテンツ」では非表示にすることができます。
また、再度「表示」する場合は「すべてのファイル」から設定を行う必要が出てくるので注意が必要です。「すべてのファイル」からの操作を行うためには強い権限が必要なため、サイトの所有者などではこの操作を行えません。
JavaScript を利用する
リストやライブラリのこうしたプロパティの設定は JavaScript を利用して行うことができます。例として処理を書いてみました。
function setListHidden(txtListName, blHidden){
var ctx = SP.ClientContext.get_current();
var web = ctx.get_web();
var list = web.get_lists().getByTitle(txtListName);
list.set_hidden(blHidden);
list.update();
ctx.load(list);
ctx.executeQueryAsync(onSucceeded, onFailed);
function onSucceeded(sender, args){
alert(list.get_title() + ":" + list.get_hidden());
}
function onFailed(sender, args){
alert(args.get_message());
}
}
この例では、setListHidden 関数の txtListName へリストやライブラリの表示名、blHidden に非表示にする場合は true を指定し、再度表示させるには false を指定します。
ちょっと注意点
この設定変更では、任意のリストやライブラリを「サイト コンテンツ」から非表示にできるのですが、合わせて「リッチ テキスト」列などへファイルを「挿入」する時のダイアログからも非表示になってしまいます。
そのため、ライブラリに関しては「サイトのリソース ファイル」ライブラリのようなものを最低ひとつは残しておいた方が良さそうです。また、この設定ではあくまで一覧から非表示にしているだけであり、URL を直接指定すると開くことができます。権限の設定ではないことに注意が必要です。
さいごに
ポータルサイトなど、不特定多数のユーザーが閲覧し、またカスタマイズのために多くのリストやライブラリをウラ側に作成しておく場合などは積極的にこの設定を行っても良いかと思います。また、SharePoint Online のモバイルビュー(スマホ用画面)を利用する場合も、利用しないリストやライブラリを非表示にしておくと利便性があがると思います。