3
2
1

Confluence Serverを使用しています。

サイドバーが常に表示され幅を占めるため、非表示にするか畳んだ状態をデフォルトにしたいのですが何か設定でできるのでしょうか?

    Commentコメントを追加...

    1 回答

    1.  
      5
      4
      3

      以下AtlassianのナレッジベースにJavaScriptが紹介されていました。設定ではできないようですね…。

      Confluence全体に適用であれば、カスタムHTML。

      スペースごとに適用であれば、Confluence管理者にお願いして レイアウト に設定するとかですかね…。

      またはユーザーマクロを作って、サイドバーのどこかに設定とか…。

      ページごとに適用であれば、ユーザーマクロ、HTMLマクロのJavaScript埋め込みとかですかね…。

      1. 伊藤看寿

        サイドバーにユーザーマクロを置けるんですね。

        知りませんでした!

      2. Kengo Ohsaki

        今回のケースでまともに動くか心配ですが…置くことはできるはず。

        サイドバーであればWikiマークアップが記述できます。

        sidebar_toggle 的なユーザーマクロ作ってJavaScriptを設定して

        サイドバーのヘッダーとかに埋め込むと…きっとね。

        {sidebar_toggle}

        Confluenceのユーザーマクロの作り方はググって。

        https://qiita.com/ymd_aaa/items/fd9c6ca15fc5bed22ab2

        https://kenchan0130.github.io/sre/2018/04/19/1.html

      3. Shuzaburo Doba

        サイドバーにユーザーマクロは私も知りませんでした!
        ありがとうございます。

        ユーザーのグループによってはサイドバーを表示させたくなかったので、
        カスタム HTML の BODY の最後にスクリプトを差し込んでみました。

        <script>
        (function(){
            var user = AJS.Meta.get('remote-user');
            var baseUrl = AJS.Meta.get('base-url');
            
            var xhr = new XMLHttpRequest();
            
            xhr.onreadystatechange = function(){
                if(xhr.readyState === 4){
                    if(xhr.status === 200){
                        var data = JSON.parse(xhr.responseText);
                        var groups = data.results;
                        var result = false;
                        for(var i = 0, len = groups.length; i < len; i++){
                            if(groups[i].name === 'confluence-administrators'){
                                result = true;
                                break;
                            }
                        }
                        if(!result){
                            document.querySelector('.aui-sidebar-wrapper').style.display = 'none';
                            document.querySelector('.aui-page-panel').style.paddingLeft = 'initial';
                        }
                    }
                }
            }
            
            xhr.open('GET', baseUrl + '/rest/api/user/memberof?username=' + user);
            xhr.send();
        })();
        </script>
      4. Kengo Ohsaki

        素晴らしい。

        レイアウトでもConfluenceのJava API使えるので、高度なことができそうですね。

        ただ、レイアウト は設定ミスると表示されないような大事故になるので

        JavaScriptで実現するぐらいがいいですね。

      Commentコメントを追加...