none
JSリンクによる【新しいアイテム】と検索結果が0件の文言変更 RRS feed

  • 質問

  • リストからアイテム追加する際の、【新しいアイテムを追加】と検索結果が0件の場合のリスト内の文言の変更をしたいのですが

    以下のJSリンクを作成しても、反映されません。

    なにか足りないものがあるのでしょうか?

    ***************************************************************************

    この作成したJSリンクをSharePointに追加する手順はUTF-8で保存したJSファイルを

    マスターページギャラリーにアップロードしますが

    コンテンツタイプは【Java Scriptの表示テンプレート】で

    対象コントロールの種類は【ビュー】で

    スタンドアロンは【上書き】で

    対象範囲を【/】で

    対象リストテンプレートIDを【109】にしています

    *************************************************************************

    (function(){
                overrideCtx.ListTemplateType = 109;
        overrideCtx.BaseViewID = 1;
                function stringsOverride(){
                         Strings.STS.L_SPAddNewDocument="新規";
                         Strings.STS.L_NODOCView="検索結果はありません";
    }
    ExecuteOrDelayUntilScriptLoaded(stringsOverride,"strings.js");
    ExecuteOrDelayUntilScriptLoaded(stringsOverride,"initstrings.js");
    })();

    2017年11月1日 5:21

回答

  • 記載頂いたコードからでは、最終的になにをしたいのかが読み取れませんでしたが…

    SharePoint Online のクラシック表示のカスタムリストでリストアイテムだとかの上に表示される「新しいアイテム」の文言を変えようと思うと、次のような感じかと思います。以前できていたものは動かないようですね。

    SP.SOD.executeFunc("clienttemplates.js", "SPClientTemplates", 
    	function() {
    		Strings.STS.L_SPAddNewItem="あたらしい";
    	}
    );

    ただ、ビューに表示するアイテムがない場合の文言は、現在のものだといろいろ試してみましたが、簡単に変えられる方法がみつかりませんでした…

    というように、利用している間に SharePoint Online 側の実装が変わるとコードも変更が必要となります…

    2017年11月6日 9:04

すべての返信

  • JavaScript としてみると、まずは overrideCtx が事前に定義されていないので、この書き方だと確実にエラーになりそうです。また、このあたりのスクリプトの処理は時々 MS 側で変更が入っていたと思いますので…そうした変更に合わせて JavaScript も更新が必要になるかと思います。

    どういった環境(バージョン、オンプレ?オンライン?)で試されているのかがわかりませんが…

    SP.SOD.executeFunc("clienttemplates.js", "SPClientTemplates", 
    	function() {
    		Strings.STS.L_SPAddNewDocument="新規";
    		//Strings.STS.L_SPQCB_New_Text="あたらしい";
    	}
    );
    こんな感じではどうでしょうか?

    2017年11月6日 1:20
  • SharePoint Onlineで使用しています
    2017年11月6日 5:48
  • 太田浩史さんのメモ帳だけでできる!SharePoint 2013 JSリンク ちょいHacksを参考にしています
    OTA_Hirofumiさんご本人様だと思われるのですが、お聞かせ頂いてもよろしいでしょうか

    以下のように文を直してみましたが、変わりません。

    よろしくお願いします。

    (function(){ 

    var overrideCtx = {};
    overrideCtx.Templates = {};
    overrideCtx.ListTemplateType = 109;
    overrideCtx.BaseViewID = 1;

    overrideCtx.Templates.Header = "<div id='slideshowHolder'>"; 
    overrideCtx.Templates.Footer = "</div>"; 
    overrideCtx.Templates.Item = slideShowItem; 



    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx);


    (function(){ 

    function stringsOverride(){ 

    Strings.STS.L_SPAddNewDocument="新しい書類をアップロード・作成"; 

    Strings.STS.L_NODOCView="条件に当てはまる書類はありません。"; 


    ExecuteOrDelayUntilScriptLoaded(stringsOverride, "strings.js"); 

    ExecuteOrDelayUntilScriptLoaded(stringsOverride, "initstrings.js"); 
    })();



    2017年11月6日 6:30
  • 記載頂いたコードからでは、最終的になにをしたいのかが読み取れませんでしたが…

    SharePoint Online のクラシック表示のカスタムリストでリストアイテムだとかの上に表示される「新しいアイテム」の文言を変えようと思うと、次のような感じかと思います。以前できていたものは動かないようですね。

    SP.SOD.executeFunc("clienttemplates.js", "SPClientTemplates", 
    	function() {
    		Strings.STS.L_SPAddNewItem="あたらしい";
    	}
    );

    ただ、ビューに表示するアイテムがない場合の文言は、現在のものだといろいろ試してみましたが、簡単に変えられる方法がみつかりませんでした…

    というように、利用している間に SharePoint Online 側の実装が変わるとコードも変更が必要となります…

    2017年11月6日 9:04
  • ありがとうございました。

    2017年11月9日 8:02