Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Document Properties Marker
doctypeproduct-space
extract-short-desctrue
render-asdefinition-list
Short Description
Display Space Attribute
attributedescription

NameUserscripts for Confluence
Tags
Tag List
propertyTags

Flagsprojectdoc.space-home, projectdoc.allhide
Space Tags
Display Space Attribute
attributelabels
hide
Sort Keyhide
documentation-json-urihttps://www.smartics.eu/confluence/download/attachments/12156954/docmap.json?api=v2hide
Panel
borderStylenone
Livesearch
spaceKeyuserscripts
sizelarge
additionalpage excerpt
placeholderSearch in this space

Browsers render Confluence pages in HTML when users traverse a Confluence site. The appearance of the page can be altered or additional functions can be applied to these pages by JavaScript code. Confluence users may use bookmarklets or userscripts to execute their own code from within their browser on these pages.

Teams in corporations may need to share these scripts and administration teams may need to prohibit code from uncontrolled sources to be executed in a corporate environment. This is when Userscripts for Confluence enters the stage. Userscripts for Confluence is an app for Confluence Server that allows to administrate JavaScript code to be executed in the browser of Confluence users.

While bookmarklets need to be executed by users explicitly by clicking on links in the browser's bookmarks, userscripts are executed when predefined conditions are meet, typically by the use of a browser add-on.

Userscripts for Confluence allows to execute scripts stored on the server side. The administration team defines the parameters that activates a particular userscript. A userscript can be executed on a given page

  • if a user is member of a certain Confluence group
  • if a user's name is explicitly registered
  • if the current page
    • is part of a certain space
    • is part of a space labelled with a certain category
    • is labelled with a given label

Or a combination of user and page information. Like

  • a page with a given label for users of a given group
  • a space identified by a key for a user with a specific name

By providing scripts to be executed in explicitly specified contexts, users of Confluence can implement a number of use cases.

  1. Hide elements like
    1. macros from the macro browser
    2. space blueprints from the space wizard
    3. page blueprints from the page wizard
  2. Add page elements
    1. links or buttons
    2. divs and paragraphs

Please note that all scripts are executed on the client side, within the browser of the user visiting the page.

Section
titleUserscripts

A userscript is JavaScript code that is executed on a page. These scripts are usually configured by users to add additional functions on web pages they are visiting. A browser add-on allows them to add userscripts and define on which pages they should run.

Userscripts for Confluence is a bit different. The userscript is configured for users by the administration team. Hence users can benefit from additional functions without bothering to validate the fitness of a script for their task by themselves. This makes using Confluence easier especially for team members without programming skills. It also allows to easily share scripts that boost the productivity for teams.

A userscript consists of

  1. an identifier consisting of namespace, name, and version
  2. a reference to the JavaScript code (script)
  3. metadata, like a a description, and a reference to further information (documentation), and author
  4. an activation record (activation) that defines when the userscript is actually executed

Here is the basic structure of a userscript in JSON.

Code Block
languagejs
titleUserscript
{
  "namespace": "...",
  "name": "...",
  "version": "...",
  "script": "...",
  "description": "...",
  "documentation": "...",
  "author": "...",
  "activation": {
     ...
  }
}
Section
titleAdministration of Userscripts

The 

Static Document Link
documentUserscripts
labeluserscripts resource
 provides operations to add, remove, and alter userscripts. The userscript code is typically stored on a remote server (like an internal Git repository) or on a Confluence page as attachment. The userscript resource manages metadata and a reference to the userscript code.

Transclusion
documentUserscripts
idsOperations

Section
titleActivation Record

The activation record is part of a userscript.

Code Block
languagejs
titleActivation Record
{
  ...
  "activation": {
    "preserve": false,
    "space": ["...", ...],
    "category": ["...", ...],
    "label": ["...", ...],
    "group": ["...", ...],
    "user": ["...", ...]
  }
}
Content Marker
cssprojectdoc-homepage-panel-app
idproduct
Aside Panel
cssprojectdoc-pagetype-spacehome, projectdoc-addon-app, projectdoc-panel-app, projectdoc-nav-panel
titleProducts
Table Merger
discardno-items
  • Wiki Link
    empty-handlingempty
    pageprojectdoc.content.app.home.title
  • Wiki Link
    empty-handlingempty
    pageprojectdoc.content.app-extension.home.title
Content Marker
cssprojectdoc-homepage-panel-app
iddefault
Aside Panel
cssprojectdoc-pagetype-spacehome, projectdoc-addon-app, projectdoc-panel-app, projectdoc-nav-panel
titleApp Tools
Table Merger
discardno-items
  • Wiki Link
    empty-handlingempty
    pageprojectdoc.content.app-bookmarklet.home.title
  • Wiki Link
    empty-handlingempty
    pageprojectdoc.content.app-macro.home.title
  • Wiki Link
    empty-handlingempty
    pageprojectdoc.content.app-script.home.title
  • Wiki Link
    empty-handlingempty
    pageprojectdoc.content.app-service.home.title
  • Wiki Link
    empty-handlingempty
    pageprojectdoc.content.app-tool.home.title
  • Wiki Link
    empty-handlingempty
    pageprojectdoc.content.app-web-resource.home.title
  • Wiki Link
    empty-handlingempty
    pageprojectdoc.content.app-web-service.home.title
  • Wiki Link
    empty-handlingempty
    pageprojectdoc.content.page-blueprint.home.title
  • Wiki Link
    empty-handlingempty
    pageprojectdoc.content.space-blueprint.home.title
Content Marker
cssprojectdoc-homepage-panel-app
idprojectdoc
Aside Panel
cssprojectdoc-pagetype-spacehome, projectdoc-addon-app, projectdoc-panel-app, projectdoc-nav-panel
titleprojectdoc
Table Merger
discardno-items
  • Wiki Link
    empty-handlingempty
    pageprojectdoc.content.doctype.home.title
  • Wiki Link
    empty-handlingempty
    pageprojectdoc.content.doctype-property.home.title
  • Wiki Link
    empty-handlingempty
    pageprojectdoc.content.document-property.home.title
  • Wiki Link
    empty-handlingempty
    pageprojectdoc.content.document-property-control.home.title
  • Wiki Link
    empty-handlingempty
    pageprojectdoc.content.document-section.home.title
  • Wiki Link
    empty-handlingempty
    pageprojectdoc.content.space-property.home.title
  • Wiki Link
    empty-handlingempty
    pageprojectdoc.content.space-property-control.home.title
Content Marker
cssprojectdoc-homepage-panel-app
idconfiguration
Aside Panel
cssprojectdoc-pagetype-spacehome, projectdoc-addon-app, projectdoc-panel-app, projectdoc-nav-panel
titleConfiguration
Table Merger
discardno-items
  • Wiki Link
    empty-handlingempty
    pageprojectdoc.content.propertyapp-datatype.home.title
  • Wiki Link
    empty-handlingempty
    pageprojectdoc.content.app-parameter.home.title