ライブラリのビューで、ファイルアイコンクリックでドキュメントを開く

むか~しのSharePointはライブラリのファイルアイコンクリックでドキュメントが開けたものです。

tempsnip1

しかし、いつのころからか(2013あたり、たぶん)、アイコンクリックしてもうんともすんともいわなくなってしまいました・・・

2007とか2010とかからマイグレーションした現場では、この仕様かなり不評です。アイコンクリックで開く前提でファイル名をビューに表示してなかったりするし。

ついては、以下の記事など参考にしつつ、JSリンクでアイコンクリックでドキュメントを開かすコードを書いてみました。

https://sharepoint.stackexchange.com/questions/222599/type-icon-not-opening-into-the-document

以下のコードをOpenFileViaIcon.jsという名前でサイトのリソースファイルに保存し、ドキュメントをアイコンクリックで開かせたいビューのリストwebパーツでJSリンクに以下のパスを指定します。

~siteCollection/SiteAssets/OpenFileViaIcon.js


SP.SOD.executeFunc("clienttemplates.js", "SPClientTemplates", function() {
function getBaseHtml(ctx) {
return SPClientTemplates["_defaultTemplates"].Fields.default.all.all[ctx.CurrentFieldSchema.FieldType][ctx.BaseViewID](ctx);
}
function init() {
var overrideCtx = {};
overrideCtx.Templates = {};
overrideCtx.Templates.Fields = {
'DocIcon': {
'View': function CustomIcon(ctx, field, listItem, listSchema) {
var str = "";
var itemApp = ctx.CurrentItem["File_x0020_Type.mapapp"];
if (ctx.CurrentItem.FSObjType == '1'|| itemApp == '' && ctx.CurrentItem.File_x0020_Type != "pdf") {
str = (ComputedFieldWorker.DocIcon(ctx, field, listItem, listSchema));
} else if(itemApp != ""){
str = '<a href="' + ctx.CurrentItem.FileRef + '" onmousedown="return VerifyHref(this,event,\'' + listSchema.DefaultItemOpen + '\',\'' + listItem["HTML_x0020_File_x0020_Type.File_x0020_Type.mapcon"] + '\',\'' + listItem["serverurl.progid"] + '\')" target="_blank">' + ComputedFieldWorker.DocIcon(ctx, field, listItem, listSchema) + '</a>';
} else {
str = '<a href="' + ctx.CurrentItem.FileRef + '" onmousedown="return VerifyHref(this,event,\''+ listSchema.DefaultItemOpen + '\',\'\',\'\')" target="_blank">' + ComputedFieldWorker.DocIcon(ctx, field, listItem, listSchema) + '</a>'
}
return str;
}
}
};
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx);
}
RegisterModuleInit(SPClientTemplates.Utility.ReplaceUrlTokens("~siteCollection/SiteAssets/OpenFileViaIcon.js"), init);
init();
});

これでOfficeドキュメントやPDFは、アイコンクリックで別タブでファイルが開くようになります!

JSリンクなので、クラシックUI限定ですが・・・ご参考まで。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください