0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

プリザンターでサイトをアーカイブ(っぽく)管理する方法

Posted at

はじめに

プリザンターであまり使わないサイトや既に終了したプロジェクトのためのサイトなど、消すわけにはいかないけど、表示されているのが邪魔だな・・・というサイトがありませんか?
アーカイブ用のフォルダを作って移動させるのも1つの方法なのですが、アクセス権の管理がサイトの階層から離れてしまうことが嫌なケースや、そもそも所定の階層外に動かしたくないなど、その場で存在だけ消したいという場合の対処法を紹介します。

「読取専用の場合は画面に表示しない」オプションを使う

サイトへのアクセス権が読み取りのみの場合に画面に表示しないというオプションです。マニュアルはこちらです。
管理者など必要最低限のユーザーのみ書き込み権限を付与して、他のユーザは読み取り権限のみとすることで、サイトからの表示は消えます。
ただし、この方法だと完全に表示からは消えてしまうので、一時的に表示させることは出来ません。これだと一時的に消しておきたいという場合はアンマッチですね。

スタイルとスクリプトで対応する

現時点だとこの方法がオススメです。消したいサイトに対してCSSをあてて非表示化して、表示させたい時にスクリプトで表示させます。
image.png
このようになっているサイトで、記録テーブルA(サイトID:3482327)にアーカイブっぽい動作をあててみます。

消したいサイトを指定する

消したいサイトが含まれるフォルダ(今回はSandbox)の管理のスタイルから、消したいサイトを指定したCSSをあてます。CSSはこのようになります。

.nav-site[data-value="3482327"] {
    display:none;
}

これによって、記録テーブルAが消えます。
image.png

再表示を行う

CSSでdisplay:none;として消してしまっているので、勘の鋭い方はもうおわかりかと思います。
再度表示させる時はjQueryでshowしてしまえばOKです。JavaScriptとしては、こんな感じです。

$('.nav-site').show();

試しに開発者ツールのコンソールで実行してみると、先ほど非表示にした記録テーブルAが再度表示されますね。
レコーディング-2024-12-10-203329.gif
あとは、これを実行しやすい様にナビゲーションメニューやコマンドボタンなどに仕込みます。

もう一工夫

先ほどの単に表示させるだけでもかまわないのですが、ちょっと工夫を凝らして、「アーカイブしていないサイト(=通常のサイト)」と「アーカイブされているサイト」をスイッチ出来るようにします。

$('.nav-site:not(.to-parent)').toggle();

工夫といってもこれだけです。toggleを使えば、showhide間で自動的にスイッチされます。このとき、「上へ」もnav-siteクラスを持っているため、それが一緒にスイッチされるのを防ぐために否定フィルタを加えています。
これを開発者ツールで実行してみるとこんな動きになります。
レコーディング-2024-12-10-204547.gif
いい感じですね。

実際に設定してみた

今度はこれをナビゲーションメニューに仕込みます。拡張ナビゲーションメニューの出番です。
定義ファイルを作ってみるとこんな感じになります。

SiteArchiveMenu.json
{
	"TargetId": "SettingsMenu",
	"Action": "Append",
	"NavigationMenus": [
		{
			"ContainerId": "SiteArchiveContainer",
			"MenuId": "SiteArchiveMenu",
			"Name": "アーカイブ",
			"Icon": "ui-icon ui-icon-gear",
			"ChildMenus": [
				{
					"MenuId": "SiteArchive_ArchiveToggle",
					"Name": "アーカイブ表示",
					"Icon": "ui-icon ui-icon-arrowrefresh-1-w",
					"Url": "javascript:$('.nav-site:not(.to-parent)').toggle();$('#SiteArchive_ArchiveToggle a').text($('#SiteArchive_ArchiveToggle a').text() === 'アーカイブ表示' ? '通常表示' : 'アーカイブ表示');",
					"ReferenceTypes": ["Sites"],
					"Actions": ["index"]
				}
			]
		}
	]
}

ナビゲーションメニューの文言の書き換えも同時におこなっています。
実行してみるとこんな感じです。
レコーディング-2024-12-10-210651.gif
いい感じですね。

まとめ

プリザンターでサイトのアーカイブっぽい挙動を作ってみました。アーカイブ対象としたいサイトの背景色を変える1などすれば、さらに見た目でわかりやすい運用も可能ですので、これらのソースをベースにカスタマイズして使ってみてください。

  1. 最初に非表示のスタイルを当てるタイミングで背景色設定もしてしまう

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?