On this page:

Code snippets for Linchpin Theme

Function: Content Navigation / Toolbar

Valid for Confluence Version from 5.10

Fix for wrong-positioned "share"-popup in content navigation / toolbar when using the Comala Workflows (Comala Document Management) plugin

CSS
div#inline-dialog-shareContentPopup > .aui-inline-dialog-contents

Function: Navigation Menu Editor

Valid for Confluence Version from 5.10

Set column count and width for submenus of the "Navigation Menu Editor" plugin

JS
SeibertMedia = (typeof SeibertMedia === "undefined") ? : SeibertMedia;
SeibertMedia.MenuEditor = SeibertMedia.MenuEditor || ;
SeibertMedia.MenuEditor.FlyoutColumnWidth = 450;
SeibertMedia.MenuEditor.FlyoutMaxColumns = 2;

Function: Login

Valid for Confluence Version from 5.10

Set background color / image on login screen via Linchpin Theme customCSS

Examples

YOUR BASE64 IMAGE PATH: data:image/jpeg;base64,/9j/4AAQSkZJRgAB...
YOUR HEX CODE IMAGE COLOR: #000000 for black background
CSS
html body.login

Function: Dashboard

Valid for Confluence Version from 5.10

Hide unintentional scrollbars from dashboard items when using sections (e.g for the Cover Stories macro)

CSS
body.dashboard .confluence-dashboard .wiki-content .innerCell

Hide third party web panels in welcome message (dashboard)

.confluence-dashboard ul#web-panels

Hide the task macro on the dashboard (Comala Document Management plugin)

< Version 4.16.0

CSS
body.dashboard #welcome-message > .section-title.welcome-message + table.awpdashboard
body.dashboard #welcome-message > .section-title.welcome-message

> Version 4.16.0

CSS
body.dashboard .awpdashboard 

Hide "Invite user" & "Create space" buttons on the dashboard

CSS
body.dashboard .confluence-dashboard aside.content-sidebar .dashboard-buttons

Function: Linchpin Sidebar

Valid for Confluence Version from 5.10

Function: A click outside of the Linchpin Sidebar will close it

JS
"use strict";
var SeibertMedia;
(function (SeibertMedia) {
    var misc;
    (function (misc) {
        var SidebarAutoClose = (function () {
            function SidebarAutoClose() {
                this.$sidebar = $("#linchpin-sidebar-container");
            }
            SidebarAutoClose.prototype.registerHandler = function () {
                var _this = this;
                $(document).click(function (e) {
                    _this.closeIfNecessary(e);
                });
            };
            SidebarAutoClose.prototype.closeIfNecessary = function (e) {
                AJS.debug("isClickOutsideOfLPSidebar " this.isClickOutsideOfLPSidebar(e));
                AJS.debug("isOverlayVisible " + SidebarAutoClose.isOverlayVisible());
                AJS.debug("isSidebarOpened " + SidebarAutoClose.isSidebarOpened());
                AJS.debug("isClickInAuiDialog " + SidebarAutoClose.isClickInAuiDialog(e));
                if (this.isClickOutsideOfLPSidebar(e) && !SidebarAutoClose.isOverlayVisible() && SidebarAutoClose.isSidebarOpened() && !SidebarAutoClose.isClickInAuiDialog(e)) {
                    this.$sidebar.find(".menu-item.active-tab").click();
                }
            };
            SidebarAutoClose.prototype.isClickOutsideOfLPSidebar = function (e) {
                return !$.contains(this.$sidebar.get(0), e.target);
            };
            SidebarAutoClose.isOverlayVisible = function () {
                var attrAriaHidden = $("body > .aui-blanket").attr("aria-hidden");
                var overlayVisibility = $("body > .aui-blanket").is(":visible");
                return !(typeof attrAriaHidden === "undefined" || attrAriaHidden == "true" || !overlayVisibility);
            };
            SidebarAutoClose.isSidebarOpened = function () {
                return $("#linchpin-sidebar .slidebar.sidebar-opened").length > 0;
            };
            SidebarAutoClose.isClickInAuiDialog = function (e) {
                return ($(e.target).parents(".aui-layer.aui-dialog2").length > 0);
            };
            return SidebarAutoClose;
        }());
        misc.SidebarAutoClose = SidebarAutoClose;
    })(misc = SeibertMedia.misc || (SeibertMedia.misc = {}));
})(SeibertMedia || (SeibertMedia = {}));
AJS.toInit(function () {
    new SeibertMedia.misc.SidebarAutoClose().registerHandler();
});

Hide left sidebar and set content to full width

CSS
.ia-splitter-left 
#splitter-content
body:not(.login) div#main
div#footer

Function: Profile

Valid for Confluence Version from 5.10

Hide the "Activity" macro in a profile

CSS
body.profile #profile-status-list

Hide Confluence standard category "personal" in a profile

CSS
body.profile #cup-profile #confluence-data

Indention of "text combinations" and "text choice" in "profile" when Comala Workflows (Comala Document Management) is installed.

CSS
.page-item.profile-main > form.aui .group

Fixes missing profile edit button on profile page for CUP 2.0

CSS
body.profile #main #main-header
body.profile .pagetitle

Function: Bugfixes for third party plugins

Valid for Confluence Version from 5.10

Show Comala Workflow (Comala Document Management) tabs (bug: will not be shown with sidebar on)

< Version 4.17.1 (with Comala Workflows (Comala Document Management) 4.17.1 this bug is fixed!)

JS
(function () ())

Sharepoint Connector (1.9.8, changes quick search drastically)

CSS
#linchpin-header-inner #header #header-right-panel
#linchpin-header-inner #header-right-panel #quick-search-sharepoint-option
#linchpin-header-inner #header #sharepoint-search-query
#linchpin-header-inner #header #quick-search .quick-nav-drop-down.aui-dd-parent
#linchpin-header-inner #header #quick-search :-ms-input-placeholder

Correction of gaps, concision and color in the Team Calendar plugin

CSS
div.plugin-calendar .sub-calendar-panel .subcalendar-item .subcalendar-name .ellipsis_text
div.plugin-calendar .sub-calendar-panel .subcalendar-dropdown-menu
div#navigation.content-navigation.calendar-navigation-buttons
 
div.plugin-calendar .sub-calendar-panel .subcalendar-item .subcalendar-name.header-color

Function: Footer

Valid for Confluence Version from 5.10

Added footer links (for example for "Polls" plugin)
JS
(function(ajs) )(AJS)

Include a Confluence page to a footer column

Assigns a Confluence page to a footer column (column 0-3).
Configurable at the marked place “this.assignments”. The pages have to exist (no bug-fixing at this point).

JS
   
   
   
(function(ajs, $, Confluence) {
    "use strict";
    var footerPageAssign = {
        config: function() {
                
                
                
                
                
            this.assignments = [
                {colId: 0, pageId: 1015814}
            ];
        },
        init: function() {
            this.config();
            this.vars();
            this.getPageContents();
        },
        vars: function() {
            this.baseUrl = Confluence.getBaseUrl();
            this.$footer = $("#com-atlassian-confluence #footer");
            this.$footerColumns = this.$footer.find("td");
            this.pageContents = {};
            this.pageParsedContents = {};
        },
        getPageContents: function() {
            var self = this;
            var promises = [];
            for (var i = 0; i < this.assignments.length; i++) {
                (function($, self, i) {
                    var pageID = self.assignments[i].pageId;
                    $.get(self.baseUrl + "/rest/prototype/1/content/" + pageID, function(data) {
                        var pageBody = $(data).find("body")[0].textContent;
                        var pageId = $(data).find("content")[0].getAttribute("id");
                        self.parsePageContents(pageBody, pageId, i);
                    })
                })($, this, i);
            }
        },
        parsePageContents: function(pageBody, pageId, callNo) {
            var self = this;
            $.ajax({
                url: self.baseUrl + '/rest/api/contentbody/convert/view',
                type: 'POST',
                data: JSON.stringify({
                    "value": pageBody,
                    "representation""storage",
                    "content": {
                        "id": pageId
                    }
                }),
                dataType: 'json',
                contentType: "application/json; charset=utf-8",
                success: function(res) {
                    self.pageParsedContents[pageId] = res.value;
                    if (callNo == self.assignments.length-1) {
                        self.modifyColumns();
                    }
                },
                error: function(res) {
                    ajs.debug("Bad thing happend! " + res.statusText);
                }
            });
        },
        modifyColumns: function() {
            for (var i = 0; i < this.assignments.length; i++) {
                var colId = this.assignments[i].colId;
                var pageId = this.assignments[i].pageId;
                var $col  = this.$footerColumns.eq(colId);
                var html  = this.pageParsedContents[pageId];
                $col.html(html);
            }
        }
    };
    AJS.toInit(function(){
      footerPageAssign.init(); 
    })
})(AJS, AJS.$, Confluence);
CSS
#footer #footer-navigation td {positionrelative; }