New SX APIs

Last modified by Vincent Massol on 2024/11/19 16:12

 XWiki
 Implementation
 Dormant
 

Description

This proposal aims to propose replacement for SX scripting APIs, currently exposed by the plugin technology via $xwiki.ssx, $xwiki.jsx, $xwiki.jfsx etc. entry points.

Proposal

Entry point

$services.skin

APIs

$services.skin.require(Map<String,Object>)

Full example

$services.skin.require({
  'My.Extension' : { 'type': 'js', 'forceSkinAction' : 'true' },
  'My.OtherExtension' : {'type' ['css', 'js', 'link'] },
  'uicomponents/widgers/some/widget.js' : { 'medium' : 'file' },
  'some/resource/style.css' : { 'medium':'resource' }
})

$services.skin.require(String)

Example : 

$services.skin.require("My.Extension")

-> Requires all extensions in document My.Extension

$services.skin.require(String, Map<String,Object>)

Example : 

$services.skin.require("My.Extension", {'forceSkinAction' : true})

-> Requires all extensions in document My.Extension with param forceSkinAction to true

$services.skin.requireFile(String)

Example :
$services.skin.requireFile('uicomponents/widgers/some/widget.js')

$services.skin.requireFile(String, Map<String,Object>)

Example :
$services.skin.requireFile('uicomponents/widgers/some/widget.js', {'forceSkinAction' : true}) {{code}}


 

Get Connected