initialize-tool : function to call to initialize the tool (when the button is pressed)
selection-listener : function to call on a vent of selection
context : the right's context
Sample of init function for the sitemap context
This function opens the sitemap tool and init the context according to the current selection (the selected page context or the root sitemap context if no page is selected)
Oops !
Copy to clipboard failed. Open the code and copy it manually.
org.ametys.web.tool.right.context.SitemapContextIniialize = function(tool, context)
{
// Open sitemap
org.ametys.uitool.ToolsManager.getInstance().openTool('uitool-sitemap', {});
var targets = org.ametys.ribbon.RibbonManager.getInstance().getCurrentSelectionTargets();
var target = org.ametys.messagebus.message.MessageTargetHelper.findFirst(targets, function(target) { return target.getType() == "page" || target.getType() == "sitemap";});
if (target == null)
{
tool.updateContext (null, true);
tool.updateContextHelperText ("<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_NO_SELECTION"/>");
}
else
{
if (target.getType() == "page")
{
var ctx = '/' + target.getParameters().siteName + '/pages/'
+ target.getParameters().lang
+ (target.getType() == "page" ? '/' + target.getParameters().path : "");
var text = "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_PAGE_1"/>";
text += '<b>' + target.getParameters().title + '</b>'
text += "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_PAGE_2"/>";
tool.updateContext (ctx, true);
tool.updateContextHelperText (text);
}
else
{
var ctx = '/' + target.getParameters().siteName + '/pages/' + target.getParameters().lang;
var text = "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_SITEMAP"/>";
tool.updateContext (ctx, true);
tool.updateContextHelperText (text);
}
}
}
org.ametys.web.tool.right.context.SitemapContextIniialize = function(tool, context)
{
// Open sitemap
org.ametys.uitool.ToolsManager.getInstance().openTool('uitool-sitemap', {});
var targets = org.ametys.ribbon.RibbonManager.getInstance().getCurrentSelectionTargets();
var target = org.ametys.messagebus.message.MessageTargetHelper.findFirst(targets, function(target) { return target.getType() == "page" || target.getType() == "sitemap";});
if (target == null)
{
tool.updateContext (null, true);
tool.updateContextHelperText ("<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_NO_SELECTION"/>");
}
else
{
if (target.getType() == "page")
{
var ctx = '/' + target.getParameters().siteName + '/pages/'
+ target.getParameters().lang
+ (target.getType() == "page" ? '/' + target.getParameters().path : "");
var text = "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_PAGE_1"/>";
text += '<b>' + target.getParameters().title + '</b>'
text += "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_PAGE_2"/>";
tool.updateContext (ctx, true);
tool.updateContextHelperText (text);
}
else
{
var ctx = '/' + target.getParameters().siteName + '/pages/' + target.getParameters().lang;
var text = "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_SITEMAP"/>";
tool.updateContext (ctx, true);
tool.updateContextHelperText (text);
}
}
}
org.ametys.web.tool.right.context.SitemapContextIniialize = function(tool, context)
{
// Open sitemap
org.ametys.uitool.ToolsManager.getInstance().openTool('uitool-sitemap', {});
var targets = org.ametys.ribbon.RibbonManager.getInstance().getCurrentSelectionTargets();
var target = org.ametys.messagebus.message.MessageTargetHelper.findFirst(targets, function(target) { return target.getType() == "page" || target.getType() == "sitemap";});
if (target == null)
{
tool.updateContext (null, true);
tool.updateContextHelperText ("<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_NO_SELECTION"/>");
}
else
{
if (target.getType() == "page")
{
var ctx = '/' + target.getParameters().siteName + '/pages/'
+ target.getParameters().lang
+ (target.getType() == "page" ? '/' + target.getParameters().path : "");
var text = "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_PAGE_1"/>";
text += '<b>' + target.getParameters().title + '</b>'
text += "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_PAGE_2"/>";
tool.updateContext (ctx, true);
tool.updateContextHelperText (text);
}
else
{
var ctx = '/' + target.getParameters().siteName + '/pages/' + target.getParameters().lang;
var text = "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_SITEMAP"/>";
tool.updateContext (ctx, true);
tool.updateContextHelperText (text);
}
}
}
Sample of selection function for the sitemap context
This function update the context of the tool when a new page is selected.
Oops !
Copy to clipboard failed. Open the code and copy it manually.
org.ametys.web.tool.right.context.SitemapContextSelectionListener = function(tool, targets)
{
var target = org.ametys.messagebus.message.MessageTargetHelper.findFirst(targets, function(target) { return target.getType() == "page" || target.getType() == "sitemap";});
if (target != null)
{
if (target.getType() == "page")
{
var ctx = '/' + target.getParameters().siteName + '/pages/'
+ target.getParameters().lang
+ (target.getType() == "page" ? '/' + target.getParameters().path : "");
var text = "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_PAGE_1"/>";
text += '<b>' + target.getParameters().title + '</b>'
text += "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_PAGE_2"/>";
tool.updateContext (ctx);
tool.updateContextHelperText (text);
}
else
{
var ctx = '/' + target.getParameters().siteName + '/pages/' + target.getParameters().lang;
var text = "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_SITEMAP"/>";
tool.updateContext (ctx);
tool.updateContextHelperText (text);
}
return;
}
var target = org.ametys.messagebus.message.MessageTargetHelper.findFirst(targets, function(target) { return target.getType() == "profile";})
if (target == null)
{
var text = "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_NO_SELECTION"/>";
tool.updateContext (null);
tool.updateContextHelperText (text);
}
}
org.ametys.web.tool.right.context.SitemapContextSelectionListener = function(tool, targets)
{
var target = org.ametys.messagebus.message.MessageTargetHelper.findFirst(targets, function(target) { return target.getType() == "page" || target.getType() == "sitemap";});
if (target != null)
{
if (target.getType() == "page")
{
var ctx = '/' + target.getParameters().siteName + '/pages/'
+ target.getParameters().lang
+ (target.getType() == "page" ? '/' + target.getParameters().path : "");
var text = "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_PAGE_1"/>";
text += '<b>' + target.getParameters().title + '</b>'
text += "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_PAGE_2"/>";
tool.updateContext (ctx);
tool.updateContextHelperText (text);
}
else
{
var ctx = '/' + target.getParameters().siteName + '/pages/' + target.getParameters().lang;
var text = "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_SITEMAP"/>";
tool.updateContext (ctx);
tool.updateContextHelperText (text);
}
return;
}
var target = org.ametys.messagebus.message.MessageTargetHelper.findFirst(targets, function(target) { return target.getType() == "profile";})
if (target == null)
{
var text = "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_NO_SELECTION"/>";
tool.updateContext (null);
tool.updateContextHelperText (text);
}
}
org.ametys.web.tool.right.context.SitemapContextSelectionListener = function(tool, targets)
{
var target = org.ametys.messagebus.message.MessageTargetHelper.findFirst(targets, function(target) { return target.getType() == "page" || target.getType() == "sitemap";});
if (target != null)
{
if (target.getType() == "page")
{
var ctx = '/' + target.getParameters().siteName + '/pages/'
+ target.getParameters().lang
+ (target.getType() == "page" ? '/' + target.getParameters().path : "");
var text = "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_PAGE_1"/>";
text += '<b>' + target.getParameters().title + '</b>'
text += "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_PAGE_2"/>";
tool.updateContext (ctx);
tool.updateContextHelperText (text);
}
else
{
var ctx = '/' + target.getParameters().siteName + '/pages/' + target.getParameters().lang;
var text = "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_SITEMAP"/>";
tool.updateContext (ctx);
tool.updateContextHelperText (text);
}
return;
}
var target = org.ametys.messagebus.message.MessageTargetHelper.findFirst(targets, function(target) { return target.getType() == "profile";})
if (target == null)
{
var text = "<i18n:text i18n:key="PLUGINS_WEB_RIGHTS_ASSIGNMENT_SITEMAP_CONTEXT_NO_SELECTION"/>";
tool.updateContext (null);
tool.updateContextHelperText (text);
}
}
Add a new item menu
You must declare a new org.ametys.cms.rights.RightsContextExtensionPoint. This extension point adds automatically a new item in the rights assignment menu. This item has the same purpose of the button (see up).
Declaration
Oops !
Copy to clipboard failed. Open the code and copy it manually.