mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Merged HEAD-BUG-FIX (5.1/Cloud) to HEAD (5.1/Cloud)
99015: ACE-3703 - Refactor Repository Admin Console framework to allow the basic framework to work in Community version - Refactor of admin console core (non JMX) into Community project - Enterprise extensions extend core - Moved Interpreter consoles into Community Admin Console - Moved Node Browser into Community Admin Console git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@99076 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
45
config/alfresco/messages/admin-console.properties
Normal file
45
config/alfresco/messages/admin-console.properties
Normal file
@@ -0,0 +1,45 @@
|
||||
# I18N messages for the Repository Admin Console
|
||||
admin-console.header=Alfresco Admin Console
|
||||
admin-console.help=Help
|
||||
admin-console.success=Successfully saved values.
|
||||
|
||||
admin-console.host=Host
|
||||
admin-console.ipaddress=IP
|
||||
|
||||
# Common label messages
|
||||
admin-console.save=Save
|
||||
admin-console.cancel=Cancel
|
||||
admin-console.enabled=Enabled
|
||||
admin-console.disabled=Disabled
|
||||
admin-console.true=True
|
||||
admin-console.false=False
|
||||
admin-console.yesno.true=Yes
|
||||
admin-console.yesno.false=No
|
||||
admin-console.close=Close
|
||||
admin-console.password.show=Show Password
|
||||
admin-console.password.hide=Hide Password
|
||||
admin-console.unavailable=Information is currently unavailable!
|
||||
admin-console.not.installed=Not Installed
|
||||
|
||||
admin-console.requesterror=Request failed due to error.
|
||||
|
||||
# Admin Tool Group labels
|
||||
admin-console.tool.group.general=General
|
||||
admin-console.tool.group.support-tools=Support Tools
|
||||
admin-console.tool.group.consoles=Consoles
|
||||
|
||||
# Individual Admin Tool labels - format is admin-console.tool.<tool-scriptid>.label/description
|
||||
admin-console.tool.admin-communitysummary.label=System Summary
|
||||
admin-console.tool.admin-communitysummary.description=Summary of general Alfresco System information
|
||||
|
||||
admin-console.tool.admin-tenantconsole.label=Tenant Console
|
||||
admin-console.tool.admin-tenantconsole.description=Command console for Tenant admin.
|
||||
|
||||
admin-console.tool.admin-repoconsole.label=Model and Messages Console
|
||||
admin-console.tool.admin-repoconsole.description=Command console for Model and Messages admin.
|
||||
|
||||
admin-console.tool.admin-workflowconsole.label=Workflow Console
|
||||
admin-console.tool.admin-workflowconsole.description=Command console for Workflow admin.
|
||||
|
||||
admin-console.tool.admin-nodebrowser.label=Node Browser
|
||||
admin-console.tool.admin-nodebrowser.description=Repository Node Browser tool.
|
@@ -10,6 +10,8 @@
|
||||
* Repository Admin Console
|
||||
*
|
||||
* Common JavaScript library functions.
|
||||
*
|
||||
* @author Kevin Roast
|
||||
*/
|
||||
|
||||
/* Admin JavaScript namespace - public functions exposed through this namespace. */
|
||||
@@ -70,6 +72,7 @@ var Admin = Admin || {};
|
||||
var info =
|
||||
{
|
||||
id: scriptName,
|
||||
uri: tool.URIs[0],
|
||||
label: msg.get(labelId) != labelId ? msg.get(labelId) : tool.shortName,
|
||||
group: group,
|
||||
groupLabel: group != "" ? (msg.get(groupLabelId) != groupLabelId ? msg.get(groupLabelId) : String(group).replace(/_/g, " ")) : "",
|
||||
@@ -141,6 +144,16 @@ var Admin = Admin || {};
|
||||
return tool.id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the URI of the default Admin Console tool (first tool indexed in the list)
|
||||
*/
|
||||
Admin.getDefaultToolURI = function getDefaultTool()
|
||||
{
|
||||
var tools = Admin.getConsoleTools(),
|
||||
tool = tools[0][0];
|
||||
return tool.uri;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an object containing IP metadata about the server instance.
|
||||
*/
|
||||
|
@@ -7,9 +7,8 @@
|
||||
*/
|
||||
function main()
|
||||
{
|
||||
var surl = url.service + (url.service.lastIndexOf('/') !== url.service.length() - 1 ? '/' : "");
|
||||
status.code = 301;
|
||||
status.location = surl + Admin.getDefaultTool();
|
||||
status.location = url.serviceContext + Admin.getDefaultToolURI();
|
||||
status.redirect = true;
|
||||
}
|
||||
|
||||
|
@@ -0,0 +1,47 @@
|
||||
<import resource="classpath:alfresco/enterprise/webscripts/org/alfresco/enterprise/repository/admin/admin-common.lib.js">
|
||||
|
||||
/**
|
||||
* Repository Admin Console
|
||||
*
|
||||
* Root page POST method
|
||||
*/
|
||||
function main()
|
||||
{
|
||||
var returnParams = "m=admin-console.success";
|
||||
try
|
||||
{
|
||||
Admin.persistJMXFormData();
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
returnParams = "e=" + e.message;
|
||||
}
|
||||
// generate the return URL - using the supplied tool ID or default tool if not specified
|
||||
// redrawing the appropriate tool page will retrieve the updated attribute values
|
||||
status.code = 301;
|
||||
status.location = url.serviceContext + (args.t ? args.t : Admin.getDefaultToolURI()) + "?" + returnParams;
|
||||
status.redirect = true;
|
||||
}
|
||||
|
||||
function debug()
|
||||
{
|
||||
// dump each form field in a name/value pair for easy log output
|
||||
var params = [];
|
||||
for each (field in formdata.fields)
|
||||
{
|
||||
params.push({
|
||||
name: field.name,
|
||||
value: field.value
|
||||
});
|
||||
}
|
||||
model.params = params;
|
||||
}
|
||||
|
||||
if (!args.debug)
|
||||
{
|
||||
main();
|
||||
}
|
||||
else
|
||||
{
|
||||
debug();
|
||||
}
|
@@ -6,10 +6,10 @@
|
||||
|
||||
@param title - Title msg for the page
|
||||
@param readonly (default:false) - boolean read only flag, if true will not display the Submit buttons.
|
||||
@param controller (default:"/enterprise/admin") - optionally override the Form controller
|
||||
@param controller (default:"/admin") - optionally override the Form controller
|
||||
@param params (default:"") - url encoded params to be added to the HTML form URL
|
||||
-->
|
||||
<#macro page title readonly=false controller="/enterprise/admin" params="" dialog=false>
|
||||
<#macro page title readonly=false controller=DEFAULT_CONTROLLER!"/admin" params="" dialog=false>
|
||||
<#assign FORM_ID="admin-jmx-form" />
|
||||
<#if metadata??>
|
||||
<#assign HOSTNAME>${msg("admin-console.host")}: ${metadata.hostname}</#assign>
|
||||
@@ -465,7 +465,7 @@ Admin.addEventListener(window, 'load', function() {
|
||||
<div class="sticky-wrapper">
|
||||
|
||||
<div class="header">
|
||||
<span><a href="${url.serviceContext}/enterprise/admin">${msg("admin-console.header")}</a></span><#if metadata??><span class="meta">${HOSTNAME}</span><span class="meta">${HOSTADDR}</span></#if>
|
||||
<span><a href="${url.serviceContext}${DEFAULT_CONTROLLER!"/admin"}">${msg("admin-console.header")}</a></span><#if metadata??><span class="meta">${HOSTNAME}</span><span class="meta">${HOSTADDR}</span></#if>
|
||||
<div style="float:right"><a href="http://docs.alfresco.com/5.0/concepts/ch-administering.html" target="_blank">${msg("admin-console.help")}</a></div>
|
||||
</div>
|
||||
|
||||
@@ -479,7 +479,7 @@ Admin.addEventListener(window, 'load', function() {
|
||||
<#list tools as group>
|
||||
<#list group as tool>
|
||||
<#if tool_index = 0 && tool.group != ""></ul><h3>${tool.groupLabel}</h3><ul></#if>
|
||||
<li class="<#if tool.selected><#local tool=tool.id/>selected</#if>"><a href="${tool.id}" class="tool-link" title="${tool.description?html}">${tool.label?html}</a></li>
|
||||
<li class="<#if tool.selected><#local tool=tool.uri/>selected</#if>"><a href="${url.serviceContext}${tool.uri}" class="tool-link" title="${tool.description?html}">${tool.label?html}</a></li>
|
||||
</#list>
|
||||
</#list>
|
||||
</#if>
|
||||
@@ -507,7 +507,7 @@ Admin.addEventListener(window, 'load', function() {
|
||||
</div>
|
||||
</#if>
|
||||
<div class="main">
|
||||
<form id="${FORM_ID}" action="${url.serviceContext}${controller}?t=${tool}<#if params!="">&${params}</#if>" enctype="multipart/form-data" accept-charset="utf-8" method="post">
|
||||
<form id="${FORM_ID}" action="${url.serviceContext}${controller}?t=${tool?url}<#if params!="">&${params}</#if>" enctype="multipart/form-data" accept-charset="utf-8" method="post">
|
||||
<#-- Template-specific markup -->
|
||||
<#nested>
|
||||
|
||||
|
@@ -0,0 +1,10 @@
|
||||
<webscript>
|
||||
<shortname>Admin Console - Repo Model and Messages Admin Console</shortname>
|
||||
<description><![CDATA[Admin Console WebScript that displays the Repo Model and Messages Console.]]></description>
|
||||
<url>/admin/admin-repoconsole</url>
|
||||
<family>AdminConsole</family>
|
||||
<format default="html">argument</format>
|
||||
<authentication>admin</authentication>
|
||||
<lifecycle>internal</lifecycle>
|
||||
<transaction allow="readonly">required</transaction>
|
||||
</webscript>
|
@@ -0,0 +1,35 @@
|
||||
<#include "../admin-template.ftl" />
|
||||
|
||||
<@page title=msg("repoconsole.title") controller="/admin/admin-repoconsole" readonly=true>
|
||||
|
||||
<div class="column-full">
|
||||
<@section label=msg("repoconsole.command") />
|
||||
<@text id="cmd" name="repo-cmd" label="" description="${cmd.description}" value="" controlStyle="width:55em" escape=false />
|
||||
<@button label=msg("repoconsole.execute") onclick="AdminConsole_execute()" style="" />
|
||||
</div>
|
||||
|
||||
<div class="column-full">
|
||||
<@section label=msg("repoconsole.result") />
|
||||
<pre>${cmd.output}</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
|
||||
/* Page load handler */
|
||||
Admin.addEventListener(window, 'load', function() {
|
||||
// bind Enter key press to call the Add button event handler
|
||||
Admin.addEventListener(el("cmd"), 'keypress', function(e) {
|
||||
if (e.keyCode === 13) AdminConsole_execute();
|
||||
return true;
|
||||
});
|
||||
});
|
||||
|
||||
function AdminConsole_execute()
|
||||
{
|
||||
el("${FORM_ID}").submit();
|
||||
return false;
|
||||
}
|
||||
|
||||
//]]></script>
|
||||
|
||||
</@page>
|
@@ -0,0 +1,24 @@
|
||||
<import resource="classpath:alfresco/templates/webscripts/org/alfresco/repository/admin/admin-common.lib.js">
|
||||
|
||||
/**
|
||||
* Repository Admin Console
|
||||
*
|
||||
* Repo Admin Console GET method
|
||||
*/
|
||||
|
||||
function main()
|
||||
{
|
||||
model.attributes = [];
|
||||
|
||||
// cmd info
|
||||
model.cmd = {
|
||||
description: "Last command: " + Admin.encodeHtml(repoInterpreter.command) + "<br>" + "Duration: " + repoInterpreter.duration + "ms",
|
||||
output: repoInterpreter.result
|
||||
};
|
||||
|
||||
// mandatory model values for UI
|
||||
model.tools = Admin.getConsoleTools("admin-repoconsole");
|
||||
model.metadata = Admin.getServerMetaData();
|
||||
}
|
||||
|
||||
main();
|
@@ -0,0 +1,4 @@
|
||||
repoconsole.title=Model and Messages Console
|
||||
repoconsole.command=Command (type 'help' for help)
|
||||
repoconsole.execute=Execute
|
||||
repoconsole.result=Result
|
@@ -0,0 +1,4 @@
|
||||
repoconsole.title=Modell- und Nachrichtenkonsole
|
||||
repoconsole.command=Befehl ('help' eingeben, um Hilfe aufzurufen)
|
||||
repoconsole.execute=Ausf\u00fchren
|
||||
repoconsole.result=Ergebnis
|
@@ -0,0 +1,4 @@
|
||||
repoconsole.title=Consola de mensajes y modelo
|
||||
repoconsole.command=Comando (escriba 'help' para obtener ayuda)
|
||||
repoconsole.execute=Ejecutar
|
||||
repoconsole.result=Resultado
|
@@ -0,0 +1,4 @@
|
||||
repoconsole.title=Console des mod\u00e8les et messages
|
||||
repoconsole.command=Commande (saisissez 'help' pour obtenir de l'aide)
|
||||
repoconsole.execute=Ex\u00e9cuter
|
||||
repoconsole.result=R\u00e9sultat
|
@@ -0,0 +1,4 @@
|
||||
repoconsole.title=Console di modelli e messaggi
|
||||
repoconsole.command=Comando (digitare 'help' per la guida)
|
||||
repoconsole.execute=Esegui
|
||||
repoconsole.result=Risultato
|
@@ -0,0 +1,4 @@
|
||||
repoconsole.title=\u30e2\u30c7\u30eb\u3068\u30e1\u30c3\u30bb\u30fc\u30b8\u30b3\u30f3\u30bd\u30fc\u30eb
|
||||
repoconsole.command=\u30b3\u30de\u30f3\u30c9 \uff08\u30d8\u30eb\u30d7\u3092\u51fa\u3059\u306b\u306f 'help' \u3068\u5165\u529b\u3057\u307e\u3059\uff09
|
||||
repoconsole.execute=\u5b9f\u884c
|
||||
repoconsole.result=\u7d50\u679c
|
@@ -0,0 +1,4 @@
|
||||
repoconsole.title=Modell- og meldingskonsoll
|
||||
repoconsole.command=Kommando (skriv 'help' for \u00e5 f\u00e5 hjelp)
|
||||
repoconsole.execute=Utf\u00f8r
|
||||
repoconsole.result=Resultat
|
@@ -0,0 +1,4 @@
|
||||
repoconsole.title=Model- en berichtenconsole
|
||||
repoconsole.command=Opdracht (typ 'help' voor hulp)
|
||||
repoconsole.execute=Uitvoeren
|
||||
repoconsole.result=Resultaat
|
@@ -0,0 +1,4 @@
|
||||
repoconsole.title=Console de modelo e mensagens
|
||||
repoconsole.command=Comando (digite 'help' para obter ajuda)
|
||||
repoconsole.execute=Executar
|
||||
repoconsole.result=Resultado
|
@@ -0,0 +1,4 @@
|
||||
repoconsole.title=\u041a\u043e\u043d\u0441\u043e\u043b\u044c \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439
|
||||
repoconsole.command=\u041a\u043e\u043c\u0430\u043d\u0434\u0430 (\u0432\u0432\u0435\u0434\u0438\u0442\u0435 help, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0441\u043f\u0440\u0430\u0432\u043a\u0443)
|
||||
repoconsole.execute=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c
|
||||
repoconsole.result=\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442
|
@@ -0,0 +1,4 @@
|
||||
repoconsole.title=\u6a21\u578b\u548c\u6d88\u606f\u63a7\u5236\u53f0
|
||||
repoconsole.command=\u547d\u4ee4\uff08\u8f93\u5165 'help' \u83b7\u53d6\u5e2e\u52a9\uff09
|
||||
repoconsole.execute=\u6267\u884c
|
||||
repoconsole.result=\u7ed3\u679c
|
@@ -0,0 +1,9 @@
|
||||
<webscript>
|
||||
<shortname>Admin Console - Repo Admin Console</shortname>
|
||||
<description><![CDATA[Repo Admin Console POST method for executing commands.]]></description>
|
||||
<url>/admin/admin-repoconsole</url>
|
||||
<format default="html">argument</format>
|
||||
<authentication>admin</authentication>
|
||||
<lifecycle>internal</lifecycle>
|
||||
<transaction>required</transaction>
|
||||
</webscript>
|
@@ -0,0 +1,20 @@
|
||||
<import resource="classpath:alfresco/templates/webscripts/org/alfresco/repository/admin/admin-common.lib.js">
|
||||
|
||||
/**
|
||||
* Repository Admin Console
|
||||
*
|
||||
* Repo Console POST method
|
||||
*/
|
||||
function main()
|
||||
{
|
||||
// execute supplied command
|
||||
var cmd = args["repo-cmd"];
|
||||
repoInterpreter.executeCmd(cmd);
|
||||
|
||||
// generate the return URL
|
||||
status.code = 301;
|
||||
status.location = url.service;
|
||||
status.redirect = true;
|
||||
}
|
||||
|
||||
main();
|
@@ -0,0 +1,10 @@
|
||||
<webscript>
|
||||
<shortname>Admin Console - Tenant Admin Console</shortname>
|
||||
<description><![CDATA[Admin Console WebScript that displays the Tenant Admin Console.]]></description>
|
||||
<url>/admin/admin-tenantconsole</url>
|
||||
<family>AdminConsole</family>
|
||||
<format default="html">argument</format>
|
||||
<authentication>admin</authentication>
|
||||
<lifecycle>internal</lifecycle>
|
||||
<transaction allow="readonly">required</transaction>
|
||||
</webscript>
|
@@ -0,0 +1,35 @@
|
||||
<#include "../admin-template.ftl" />
|
||||
|
||||
<@page title=msg("tenantconsole.title") controller="/admin/admin-tenantconsole" readonly=true>
|
||||
|
||||
<div class="column-full">
|
||||
<@section label=msg("tenantconsole.command") />
|
||||
<@text id="cmd" name="tenant-cmd" label="" description="${cmd.description}" value="" controlStyle="width:55em" escape=false />
|
||||
<@button label=msg("tenantconsole.execute") onclick="AdminConsole_execute()" style="" />
|
||||
</div>
|
||||
|
||||
<div class="column-full">
|
||||
<@section label=msg("tenantconsole.result") />
|
||||
<pre>${cmd.output}</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
|
||||
/* Page load handler */
|
||||
Admin.addEventListener(window, 'load', function() {
|
||||
// bind Enter key press to call the Add button event handler
|
||||
Admin.addEventListener(el("cmd"), 'keypress', function(e) {
|
||||
if (e.keyCode === 13) AdminConsole_execute();
|
||||
return true;
|
||||
});
|
||||
});
|
||||
|
||||
function AdminConsole_execute()
|
||||
{
|
||||
el("${FORM_ID}").submit();
|
||||
return false;
|
||||
}
|
||||
|
||||
//]]></script>
|
||||
|
||||
</@page>
|
@@ -0,0 +1,24 @@
|
||||
<import resource="classpath:alfresco/templates/webscripts/org/alfresco/repository/admin/admin-common.lib.js">
|
||||
|
||||
/**
|
||||
* Repository Admin Console
|
||||
*
|
||||
* Tenant Admin Console GET method
|
||||
*/
|
||||
|
||||
function main()
|
||||
{
|
||||
model.attributes = [];
|
||||
|
||||
// cmd info
|
||||
model.cmd = {
|
||||
description: "Last command: " + Admin.encodeHtml(tenantInterpreter.command) + "<br>" + "Duration: " + tenantInterpreter.duration + "ms",
|
||||
output: tenantInterpreter.result
|
||||
};
|
||||
|
||||
// mandatory model values for UI
|
||||
model.tools = Admin.getConsoleTools("admin-tenantconsole");
|
||||
model.metadata = Admin.getServerMetaData();
|
||||
}
|
||||
|
||||
main();
|
@@ -0,0 +1,4 @@
|
||||
tenantconsole.title=Tenant Admin Console
|
||||
tenantconsole.command=Command (type 'help' for help)
|
||||
tenantconsole.execute=Execute
|
||||
tenantconsole.result=Result
|
@@ -0,0 +1,4 @@
|
||||
tenantconsole.title=Mandanten Admin Konsole
|
||||
tenantconsole.command=Befehl ('help' eingeben, um Hilfe aufzurufen)
|
||||
tenantconsole.execute=Ausf\u00fchren
|
||||
tenantconsole.result=Ergebnis
|
@@ -0,0 +1,4 @@
|
||||
tenantconsole.title=Consola Admin de Inquilino
|
||||
tenantconsole.command=Comando (escriba 'help' para obtener ayuda)
|
||||
tenantconsole.execute=Ejecutar
|
||||
tenantconsole.result=Resultado
|
@@ -0,0 +1,4 @@
|
||||
tenantconsole.title=Console d'administration de la gestion des entrep\u00f4ts en colocation
|
||||
tenantconsole.command=Commande (saisissez 'help' pour obtenir de l'aide)
|
||||
tenantconsole.execute=Ex\u00e9cuter
|
||||
tenantconsole.result=R\u00e9sultat
|
@@ -0,0 +1,4 @@
|
||||
tenantconsole.title=Console di amministrazione dei tenant
|
||||
tenantconsole.command=Comando (digitare 'help' per la guida)
|
||||
tenantconsole.execute=Esegui
|
||||
tenantconsole.result=Risultato
|
@@ -0,0 +1,4 @@
|
||||
tenantconsole.title=\u30c6\u30ca\u30f3\u30c8\u7ba1\u7406\u8005\u30b3\u30f3\u30bd\u30fc\u30eb
|
||||
tenantconsole.command=\u30b3\u30de\u30f3\u30c9 \uff08\u30d8\u30eb\u30d7\u3092\u51fa\u3059\u306b\u306f 'help' \u3068\u5165\u529b\u3057\u307e\u3059\uff09
|
||||
tenantconsole.execute=\u5b9f\u884c
|
||||
tenantconsole.result=\u7d50\u679c
|
@@ -0,0 +1,4 @@
|
||||
tenantconsole.title=Leietakeradmin.konsoll
|
||||
tenantconsole.command=Kommando (skriv 'help' for \u00e5 f\u00e5 hjelp)
|
||||
tenantconsole.execute=Utf\u00f8r
|
||||
tenantconsole.result=Resultat
|
@@ -0,0 +1,4 @@
|
||||
tenantconsole.title=Tenant-beheerconsole
|
||||
tenantconsole.command=Opdracht (typ 'help' voor hulp)
|
||||
tenantconsole.execute=Uitvoeren
|
||||
tenantconsole.result=Resultaat
|
@@ -0,0 +1,4 @@
|
||||
tenantconsole.title=Console de Administra\u00e7\u00e3o do Tenant
|
||||
tenantconsole.command=Comando (digite 'help' para obter ajuda)
|
||||
tenantconsole.execute=Executar
|
||||
tenantconsole.result=Resultado
|
@@ -0,0 +1,4 @@
|
||||
tenantconsole.title=\u041a\u043e\u043d\u0441\u043e\u043b\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439
|
||||
tenantconsole.command=\u041a\u043e\u043c\u0430\u043d\u0434\u0430 (\u0432\u0432\u0435\u0434\u0438\u0442\u0435 help, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0441\u043f\u0440\u0430\u0432\u043a\u0443)
|
||||
tenantconsole.execute=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c
|
||||
tenantconsole.result=\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442
|
@@ -0,0 +1,4 @@
|
||||
tenantconsole.title=\u79df\u6237\u7ba1\u7406\u63a7\u5236\u53f0
|
||||
tenantconsole.command=\u547d\u4ee4\uff08\u8f93\u5165 'help' \u83b7\u53d6\u5e2e\u52a9\uff09
|
||||
tenantconsole.execute=\u6267\u884c
|
||||
tenantconsole.result=\u7ed3\u679c
|
@@ -0,0 +1,9 @@
|
||||
<webscript>
|
||||
<shortname>Admin Console - Tenant Admin Console</shortname>
|
||||
<description><![CDATA[Tenant Admin Console POST method for executing commands.]]></description>
|
||||
<url>/admin/admin-tenantconsole</url>
|
||||
<format default="html">argument</format>
|
||||
<authentication>admin</authentication>
|
||||
<lifecycle>internal</lifecycle>
|
||||
<transaction>required</transaction>
|
||||
</webscript>
|
@@ -0,0 +1,20 @@
|
||||
<import resource="classpath:alfresco/templates/webscripts/org/alfresco/repository/admin/admin-common.lib.js">
|
||||
|
||||
/**
|
||||
* Repository Admin Console
|
||||
*
|
||||
* Tenant Console POST method
|
||||
*/
|
||||
function main()
|
||||
{
|
||||
// execute supplied command
|
||||
var cmd = args["tenant-cmd"];
|
||||
tenantInterpreter.executeCmd(cmd);
|
||||
|
||||
// generate the return URL
|
||||
status.code = 301;
|
||||
status.location = url.service;
|
||||
status.redirect = true;
|
||||
}
|
||||
|
||||
main();
|
@@ -0,0 +1,10 @@
|
||||
<webscript>
|
||||
<shortname>Admin Console - Workflow Admin Console</shortname>
|
||||
<description><![CDATA[Admin Console WebScript that displays the Workflow Admin Console.]]></description>
|
||||
<url>/admin/admin-workflowconsole</url>
|
||||
<family>AdminConsole</family>
|
||||
<format default="html">argument</format>
|
||||
<authentication>admin</authentication>
|
||||
<lifecycle>internal</lifecycle>
|
||||
<transaction allow="readonly">required</transaction>
|
||||
</webscript>
|
@@ -0,0 +1,35 @@
|
||||
<#include "../admin-template.ftl" />
|
||||
|
||||
<@page title=msg("workflowconsole.title") controller="/admin/admin-workflowconsole" readonly=true>
|
||||
|
||||
<div class="column-full">
|
||||
<@section label=msg("workflowconsole.command") />
|
||||
<@text id="cmd" name="workflow-cmd" label="" description="${cmd.description}" value="" controlStyle="width:55em" escape=false />
|
||||
<@button label=msg("workflowconsole.execute") onclick="AdminConsole_execute()" style="" />
|
||||
</div>
|
||||
|
||||
<div class="column-full">
|
||||
<@section label=msg("workflowconsole.result") />
|
||||
<pre>${cmd.output}</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
|
||||
/* Page load handler */
|
||||
Admin.addEventListener(window, 'load', function() {
|
||||
// bind Enter key press to call the Add button event handler
|
||||
Admin.addEventListener(el("cmd"), 'keypress', function(e) {
|
||||
if (e.keyCode === 13) AdminConsole_execute();
|
||||
return true;
|
||||
});
|
||||
});
|
||||
|
||||
function AdminConsole_execute()
|
||||
{
|
||||
el("${FORM_ID}").submit();
|
||||
return false;
|
||||
}
|
||||
|
||||
//]]></script>
|
||||
|
||||
</@page>
|
@@ -0,0 +1,24 @@
|
||||
<import resource="classpath:alfresco/templates/webscripts/org/alfresco/repository/admin/admin-common.lib.js">
|
||||
|
||||
/**
|
||||
* Repository Admin Console
|
||||
*
|
||||
* Workflow Admin Console GET method
|
||||
*/
|
||||
|
||||
function main()
|
||||
{
|
||||
model.attributes = [];
|
||||
|
||||
// cmd info
|
||||
model.cmd = {
|
||||
description: "Last command: " + Admin.encodeHtml(workflowInterpreter.command) + "<br>" + "Duration: " + workflowInterpreter.duration + "ms",
|
||||
output: workflowInterpreter.result
|
||||
};
|
||||
|
||||
// mandatory model values for UI
|
||||
model.tools = Admin.getConsoleTools("admin-workflowconsole");
|
||||
model.metadata = Admin.getServerMetaData();
|
||||
}
|
||||
|
||||
main();
|
@@ -0,0 +1,4 @@
|
||||
workflowconsole.title=Workflow Admin Console
|
||||
workflowconsole.command=Command (type 'help' for help)
|
||||
workflowconsole.execute=Execute
|
||||
workflowconsole.result=Result
|
@@ -0,0 +1,4 @@
|
||||
workflowconsole.title=Konsole f\u00fcr Arbeitsablauf-Admin
|
||||
workflowconsole.command=Befehl ('help' eingeben, um Hilfe aufzurufen)
|
||||
workflowconsole.execute=Ausf\u00fchren
|
||||
workflowconsole.result=Ergebnis
|
@@ -0,0 +1,4 @@
|
||||
workflowconsole.title=Consola de administraci\u00f3n de flujo de trabajo
|
||||
workflowconsole.command=Comando (escriba 'help' para obtener ayuda)
|
||||
workflowconsole.execute=Ejecutar
|
||||
workflowconsole.result=Resultado
|
@@ -0,0 +1,4 @@
|
||||
workflowconsole.title=Console d'administration du workflow
|
||||
workflowconsole.command=Commande (saisissez 'help' pour obtenir de l'aide)
|
||||
workflowconsole.execute=Ex\u00e9cuter
|
||||
workflowconsole.result=R\u00e9sultat
|
@@ -0,0 +1,4 @@
|
||||
workflowconsole.title=Console di amministazione dei workflow
|
||||
workflowconsole.command=Comando (digitare 'help' per la guida)
|
||||
workflowconsole.execute=Esegui
|
||||
workflowconsole.result=Risultato
|
@@ -0,0 +1,4 @@
|
||||
workflowconsole.title=\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u7ba1\u7406\u30b3\u30f3\u30bd\u30fc\u30eb
|
||||
workflowconsole.command=\u30b3\u30de\u30f3\u30c9 \uff08\u30d8\u30eb\u30d7\u3092\u51fa\u3059\u306b\u306f 'help' \u3068\u5165\u529b\u3057\u307e\u3059\uff09
|
||||
workflowconsole.execute=\u5b9f\u884c
|
||||
workflowconsole.result=\u7d50\u679c
|
@@ -0,0 +1,4 @@
|
||||
workflowconsole.title=Arbeidsflyt admin-konsoll
|
||||
workflowconsole.command=Kommando (skriv 'help' for \u00e5 f\u00e5 hjelp)
|
||||
workflowconsole.execute=Utf\u00f8r
|
||||
workflowconsole.result=Resultat
|
@@ -0,0 +1,4 @@
|
||||
workflowconsole.title=Werkstroombeheerconsole
|
||||
workflowconsole.command=Opdracht (typ 'help' voor hulp)
|
||||
workflowconsole.execute=Uitvoeren
|
||||
workflowconsole.result=Resultaat
|
@@ -0,0 +1,4 @@
|
||||
workflowconsole.title=Console de admin do fluxo de trabalho
|
||||
workflowconsole.command=Comando (digite 'help' para obter ajuda)
|
||||
workflowconsole.execute=Executar
|
||||
workflowconsole.result=Resultado
|
@@ -0,0 +1,4 @@
|
||||
workflowconsole.title=\u041a\u043e\u043d\u0441\u043e\u043b\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0431\u0438\u0437\u043d\u0435\u0441-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432
|
||||
workflowconsole.command=\u041a\u043e\u043c\u0430\u043d\u0434\u0430 (\u0432\u0432\u0435\u0434\u0438\u0442\u0435 help, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0441\u043f\u0440\u0430\u0432\u043a\u0443)
|
||||
workflowconsole.execute=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c
|
||||
workflowconsole.result=\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442
|
@@ -0,0 +1,4 @@
|
||||
workflowconsole.title=\u5de5\u4f5c\u6d41\u7a0b\u7ba1\u7406\u63a7\u5236\u53f0
|
||||
workflowconsole.command=\u547d\u4ee4\uff08\u8f93\u5165 'help' \u83b7\u53d6\u5e2e\u52a9\uff09
|
||||
workflowconsole.execute=\u6267\u884c
|
||||
workflowconsole.result=\u7ed3\u679c
|
@@ -0,0 +1,9 @@
|
||||
<webscript>
|
||||
<shortname>Admin Console - Workflow Admin Console</shortname>
|
||||
<description><![CDATA[Workflow Admin Console POST method for executing commands.]]></description>
|
||||
<url>/admin/admin-workflowconsole</url>
|
||||
<format default="html">argument</format>
|
||||
<authentication>admin</authentication>
|
||||
<lifecycle>internal</lifecycle>
|
||||
<transaction>required</transaction>
|
||||
</webscript>
|
@@ -0,0 +1,20 @@
|
||||
<import resource="classpath:alfresco/templates/webscripts/org/alfresco/repository/admin/admin-common.lib.js">
|
||||
|
||||
/**
|
||||
* Repository Admin Console
|
||||
*
|
||||
* Workflow Console POST method
|
||||
*/
|
||||
function main()
|
||||
{
|
||||
// execute supplied command
|
||||
var cmd = args["workflow-cmd"];
|
||||
workflowInterpreter.executeCmd(cmd);
|
||||
|
||||
// generate the return URL
|
||||
status.code = 301;
|
||||
status.location = url.service;
|
||||
status.redirect = true;
|
||||
}
|
||||
|
||||
main();
|
@@ -0,0 +1,10 @@
|
||||
<webscript>
|
||||
<shortname>Admin Console - Node Browser</shortname>
|
||||
<description><![CDATA[Admin Console WebScript that displays the Node Browser.]]></description>
|
||||
<url>/admin/admin-nodebrowser</url>
|
||||
<family>AdminConsole</family>
|
||||
<format default="html">argument</format>
|
||||
<authentication>admin</authentication>
|
||||
<lifecycle>internal</lifecycle>
|
||||
<transaction allow="readonly">required</transaction>
|
||||
</webscript>
|
@@ -0,0 +1,283 @@
|
||||
<#assign null><span style="color:red">${msg("nodebrowser.null")?html}</span></#assign>
|
||||
<#assign none><span style="color:red">${msg("nodebrowser.none")?html}</span></#assign>
|
||||
<#assign collection>${msg("nodebrowser.collection")?html}</#assign>
|
||||
|
||||
<#macro dateFormat date>${date?string("dd MMM yyyy HH:mm:ss 'GMT'Z '('zzz')'")}</#macro>
|
||||
<#macro propValue p>
|
||||
<#if p.value??>
|
||||
<#if p.value?is_date>
|
||||
<@dateFormat p.value />
|
||||
<#elseif p.value?is_boolean>
|
||||
${p.value?string}
|
||||
<#elseif p.value?is_number>
|
||||
${p.value?c}
|
||||
<#elseif p.value?is_string>
|
||||
${p.value?html}
|
||||
<#elseif p.value?is_hash>
|
||||
<#assign result = "{"/>
|
||||
<#assign first = true />
|
||||
<#list p.value?keys as key>
|
||||
<#if first = false>
|
||||
<#assign result = result + ", "/>
|
||||
</#if>
|
||||
<#assign result = result + "${key}=${p.value[key]?html}" />
|
||||
<#assign first = false/>
|
||||
</#list>
|
||||
<#assign result = result + "}"/>
|
||||
${result}
|
||||
</#if>
|
||||
<#else>
|
||||
${null}
|
||||
</#if>
|
||||
</#macro>
|
||||
<#macro contentUrl nodeRef prop>
|
||||
${url.serviceContext}/api/node/${nodeRef?replace("://","/")}/content;${prop?url}
|
||||
</#macro>
|
||||
|
||||
<#include "../admin-template.ftl" />
|
||||
|
||||
<@page title=msg("nodebrowser.title") controller="/admin/admin-nodebrowser" readonly=true>
|
||||
|
||||
<div class="column-full">
|
||||
<@section label=msg("nodebrowser.store") />
|
||||
<@options name="nodebrowser-store" style="display:inline" valueStyle="display:inline" onchange="AdminConsole_execute('root')" value="${args.store!'workspace://SpacesStore'}">
|
||||
<#list stores as s>
|
||||
<@option label=s value=s />
|
||||
</#list>
|
||||
</@options>
|
||||
<@button label=msg("nodebrowser.root") onclick="AdminConsole_execute('root')" />
|
||||
<#if action??><@button label=msg("nodebrowser.refresh") onclick="AdminConsole_execute('${action?html}')" class="input" style="position:absolute;top:60px;left:1042px" /></#if>
|
||||
|
||||
<@section label=msg("nodebrowser.query") />
|
||||
<@options name="nodebrowser-search" style="display:inline" valueStyle="display:inline" value="${args.searcher!''}">
|
||||
<@option label="noderef" value="noderef" />
|
||||
<@option label="fts-alfresco" value="fts-alfresco" />
|
||||
<@option label="lucene" value="lucene" />
|
||||
<@option label="xpath" value="xpath" />
|
||||
<@option label="selectnodes" value="selectnodes" />
|
||||
<@option label="cmis-strict" value="cmis-strict" />
|
||||
<@option label="cmis-alfresco" value="cmis-alfresco" />
|
||||
<@option label="db-afts" value="db-afts" />
|
||||
<@option label="db-cmis" value="db-cmis" />
|
||||
</@options>
|
||||
<@text id="query" name="nodebrowser-query" label="" value="${query!''}" style="display:inline" valueStyle="display:inline" controlStyle="width:50em" />
|
||||
<@button label=msg("nodebrowser.execute") onclick="AdminConsole_execute('search')" />
|
||||
<@tsection label=msg("nodebrowser.search-settings")>
|
||||
<div class="column-left">
|
||||
<@text name="nodebrowser-query-maxresults" label=msg("nodebrowser.maxresults") value="${args.maxResults!''}" />
|
||||
</div>
|
||||
<div class="column-right">
|
||||
<@text name="nodebrowser-query-skipcount" label=msg("nodebrowser.skipcount") value="${args.skipCount!''}" />
|
||||
</div>
|
||||
</@tsection>
|
||||
|
||||
<!-- hidden values set by button and key events to provide action ID to the Form POST -->
|
||||
<@hidden name="nodebrowser-action" id="action" />
|
||||
<@hidden name="nodebrowser-action-value" id="action-value" value="${actionValue!''}" />
|
||||
</div>
|
||||
|
||||
<#if result??>
|
||||
|
||||
<#if result.info??>
|
||||
<div class="column-full">
|
||||
<a name="parent"></a><a name="children"></a>
|
||||
<@section label=msg("nodebrowser.node-info") />
|
||||
<table id="info-table" class="node">
|
||||
<tr><td class="node-info">${msg("nodebrowser.reference")}</td><td>${result.info.nodeRef}</td></tr>
|
||||
<tr><td class="node-info">${msg("nodebrowser.path")}</td><td style="word-break:break-all">${result.info.path!""}</td></tr>
|
||||
<tr><td class="node-info">${msg("nodebrowser.type")}</td><td>${result.info.type}</td></tr>
|
||||
<tr><td class="node-info">${msg("nodebrowser.parent")}</td><td><a href="#" onclick="AdminConsole_parentClick('${result.info.parent}');return false;">${result.info.parent}</a></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
</#if>
|
||||
|
||||
<#if result.properties??>
|
||||
<div class="column-full">
|
||||
<#assign propsMsg>${msg("nodebrowser.properties")} (<#if result.properties??>${result.properties?size?c}<#else>0</#if>)</#assign>
|
||||
<@section label=propsMsg />
|
||||
<table id="properties-table" class="node grid">
|
||||
<tr>
|
||||
<th>${msg("nodebrowser.name")}</th>
|
||||
<th>${msg("nodebrowser.type")}</th>
|
||||
<th>${msg("nodebrowser.value")}</th>
|
||||
<th>${msg("nodebrowser.residual")}</th>
|
||||
</tr>
|
||||
<#list result.properties as p>
|
||||
<tr>
|
||||
<td>${p.name.prefixedName}</td>
|
||||
<td><#if p.typeName??>${p.typeName.prefixedName}<#else>${none}</#if></td>
|
||||
<td><#if (p.values?size > 1)><span style="color:red">${collection} (${p.values?size?c})</span><br></#if><#list p.values as v><#if v.content><a target="new" href="<@contentUrl result.info.nodeRef p.name.prefixedName/>"></#if><@propValue v/><#if v.content></a></#if><#if v_has_next><br></#if></#list></td>
|
||||
<td>${p.residual?string}</td>
|
||||
</tr>
|
||||
</#list>
|
||||
</table>
|
||||
</div>
|
||||
</#if>
|
||||
|
||||
<#if result.aspects??>
|
||||
<div class="column-full">
|
||||
<#assign aspectMsg>${msg("nodebrowser.aspects")} (<#if result.aspects??>${result.aspects?size?c}<#else>0</#if>)</#assign>
|
||||
<@section label=aspectMsg />
|
||||
<table id="aspects-table" class="node">
|
||||
<#list result.aspects as a>
|
||||
<tr><td>${a.prefixedName}</td></tr>
|
||||
</#list>
|
||||
</table>
|
||||
</div>
|
||||
</#if>
|
||||
|
||||
<div class="column-full">
|
||||
<#assign childMsg><#if action?? && action="search">${msg("nodebrowser.results")}<#else>${msg("nodebrowser.children")}</#if> (${result.children?size?c})</#assign>
|
||||
<@section label=childMsg />
|
||||
<table id="child-table" class="node grid">
|
||||
<tr>
|
||||
<th>${msg("nodebrowser.name")}</th>
|
||||
<th>${msg("nodebrowser.child-node")}</th>
|
||||
<th>${msg("nodebrowser.primary")}</th>
|
||||
<th>${msg("nodebrowser.association-type")}</th>
|
||||
<th>${msg("nodebrowser.index")}</th>
|
||||
</tr>
|
||||
<#list result.children as n>
|
||||
<tr>
|
||||
<td><a href="#" onclick="AdminConsole_childClick('${n.childRef}');return false;">${n.QName}</a></td>
|
||||
<td><a href="#" onclick="AdminConsole_childClick('${n.childRef}');return false;">${n.childRef}</a></td>
|
||||
<td>${n.primary?string}</td>
|
||||
<td>${n.typeQName}</td>
|
||||
<td>${n_index}</td>
|
||||
</tr>
|
||||
</#list>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<#if result.parents??>
|
||||
<div class="column-full">
|
||||
<#assign parentMsg>${msg("nodebrowser.parents")} (<#if result.parents??>${result.parents?size?c}<#else>0</#if>)</#assign>
|
||||
<@section label=parentMsg />
|
||||
<table id="parents-table" class="node grid">
|
||||
<tr>
|
||||
<th>${msg("nodebrowser.name")}</th>
|
||||
<th>${msg("nodebrowser.parent-type")}</th>
|
||||
<th>${msg("nodebrowser.parent-reference")}</th>
|
||||
<th>${msg("nodebrowser.primary")}</th>
|
||||
<th>${msg("nodebrowser.association-type")}</th>
|
||||
</tr>
|
||||
<#list result.parents as p>
|
||||
<tr>
|
||||
<td>${p.name.prefixedName}</td>
|
||||
<td>${p.parentTypeName.prefixedName}</td>
|
||||
<td><a href="#" onclick="AdminConsole_parentClick('${p.parentRef}');return false;">${p.parentRef}</a></td></td>
|
||||
<td>${p.primary?string}</td>
|
||||
<td><#if p.typeName??>${p.typeName.prefixedName}<#else>${none}</#if></td>
|
||||
</tr>
|
||||
</#list>
|
||||
</table>
|
||||
</div>
|
||||
</#if>
|
||||
|
||||
<#if result.assocs??>
|
||||
<div class="column-full">
|
||||
<#assign assocsMsg>${msg("nodebrowser.associations")} (<#if result.assocs??>${result.assocs?size?c}<#else>0</#if>)</#assign>
|
||||
<@section label=assocsMsg />
|
||||
<table id="assocs-table" class="node grid">
|
||||
<tr>
|
||||
<th>${msg("nodebrowser.type")}</th>
|
||||
<th>${msg("nodebrowser.target-reference")}</th>
|
||||
<th>${msg("nodebrowser.association-type")}</th>
|
||||
</tr>
|
||||
<#list result.assocs as a>
|
||||
<tr>
|
||||
<td>${a.targetTypeName.prefixedName}</td>
|
||||
<td><a href="#" onclick="AdminConsole_parentClick('${a.targetRef}');return false;">${a.targetRef}</a></td></td>
|
||||
<td><#if a.typeName??>${a.typeName.prefixedName}<#else>${none}</#if></td>
|
||||
</tr>
|
||||
</#list>
|
||||
</table>
|
||||
</div>
|
||||
</#if>
|
||||
|
||||
<#if result.sourceAssocs??>
|
||||
<div class="column-full">
|
||||
<#assign sassocsMsg>${msg("nodebrowser.source-assocs")} (<#if result.sourceAssocs??>${result.sourceAssocs?size?c}<#else>0</#if>)</#assign>
|
||||
<@section label=sassocsMsg />
|
||||
<table id="sourceassocs-table" class="node grid">
|
||||
<tr>
|
||||
<th>${msg("nodebrowser.type")}</th>
|
||||
<th>${msg("nodebrowser.source-reference")}</th>
|
||||
<th>${msg("nodebrowser.association-type")}</th>
|
||||
</tr>
|
||||
<#list result.sourceAssocs as a>
|
||||
<tr>
|
||||
<td>${a.sourceTypeName.prefixedName}</td>
|
||||
<td><a href="#" onclick="AdminConsole_parentClick('${a.sourceRef}');return false;">${a.sourceRef}</a></td></td>
|
||||
<td><#if a.typeName??>${a.typeName.prefixedName}<#else>${none}</#if></td>
|
||||
</tr>
|
||||
</#list>
|
||||
</table>
|
||||
</div>
|
||||
</#if>
|
||||
|
||||
<#if result.permissions??>
|
||||
<div class="column-full">
|
||||
<@section label=msg("nodebrowser.permissions") />
|
||||
<table id="perminfo-table" class="node">
|
||||
<tr><td>${msg("nodebrowser.inherits")}: ${result.permissions.inherit?string}</td></tr>
|
||||
<tr><td>${msg("nodebrowser.owner")}: ${result.permissions.owner!""}</td></tr>
|
||||
</table>
|
||||
<table id="permissions-table" class="node grid">
|
||||
<tr>
|
||||
<th>${msg("nodebrowser.permission")}</th>
|
||||
<th>${msg("nodebrowser.authority")}</th>
|
||||
<th>${msg("nodebrowser.access")}</th>
|
||||
</tr>
|
||||
<#list result.permissions.entries as p>
|
||||
<tr>
|
||||
<td>${p.permission}</td>
|
||||
<td>${p.authority}</td>
|
||||
<td>${p.accessStatus}</td>
|
||||
</tr>
|
||||
</#list>
|
||||
</table>
|
||||
</div>
|
||||
</#if>
|
||||
|
||||
</#if>
|
||||
|
||||
<#if args.in??><br><p>Processed in ${args.in?html}ms</p></#if>
|
||||
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
|
||||
/* Page load handler */
|
||||
Admin.addEventListener(window, 'load', function() {
|
||||
// bind Enter key press to call the Execute search button event handler
|
||||
Admin.addEventListener(el("query"), 'keypress', function(e) {
|
||||
if (e.keyCode === 13) AdminConsole_execute('search');
|
||||
return true;
|
||||
});
|
||||
|
||||
<#if args.nodeRef??>
|
||||
AdminConsole_execute('search');
|
||||
</#if>
|
||||
});
|
||||
|
||||
function AdminConsole_execute(action)
|
||||
{
|
||||
el("action").value = action;
|
||||
el("${FORM_ID}").submit();
|
||||
return false;
|
||||
}
|
||||
|
||||
function AdminConsole_childClick(ref)
|
||||
{
|
||||
el("action-value").value = ref;
|
||||
AdminConsole_execute("children");
|
||||
}
|
||||
|
||||
function AdminConsole_parentClick(ref)
|
||||
{
|
||||
el("action-value").value = ref;
|
||||
AdminConsole_execute("parent");
|
||||
}
|
||||
|
||||
//]]></script>
|
||||
|
||||
</@page>
|
@@ -0,0 +1,38 @@
|
||||
<import resource="classpath:alfresco/templates/webscripts/org/alfresco/repository/admin/admin-common.lib.js">
|
||||
|
||||
/**
|
||||
* Repository Admin Console
|
||||
*
|
||||
* Node Browser GET method
|
||||
*/
|
||||
|
||||
function main()
|
||||
{
|
||||
// available repository stores
|
||||
model.stores = utils.getStores();
|
||||
|
||||
// action persisted values
|
||||
model.action = args.action;
|
||||
model.actionValue = args.actionValue;
|
||||
|
||||
// special case for "nodeRef" argument
|
||||
// support URL driven NodeRef argument to the Node Browser page e.g. /admin-nodebrowser?nodeRef=workspace://SpacesStore/...
|
||||
model.query = args.query;
|
||||
if (args.nodeRef)
|
||||
{
|
||||
model.query = args.nodeRef;
|
||||
}
|
||||
|
||||
// result info from session
|
||||
if (args.resultId)
|
||||
{
|
||||
model.result = session.getValue(args.resultId);
|
||||
}
|
||||
|
||||
// mandatory model values for UI
|
||||
model.attributes = [];
|
||||
model.tools = Admin.getConsoleTools("admin-nodebrowser");
|
||||
model.metadata = Admin.getServerMetaData();
|
||||
}
|
||||
|
||||
main();
|
@@ -0,0 +1,43 @@
|
||||
nodebrowser.title=Node Browser
|
||||
nodebrowser.query=Query
|
||||
nodebrowser.execute=Execute
|
||||
nodebrowser.store=Store
|
||||
nodebrowser.refresh=Refresh
|
||||
nodebrowser.root=Root List
|
||||
nodebrowser.search-settings=Search Advanced Settings
|
||||
nodebrowser.maxresults=Max Results
|
||||
nodebrowser.skipcount=Skip Count
|
||||
nodebrowser.null=null
|
||||
nodebrowser.none=<none>
|
||||
nodebrowser.collection=<collection>
|
||||
|
||||
nodebrowser.results=Results
|
||||
nodebrowser.children=Children
|
||||
nodebrowser.node-info=Node Information
|
||||
nodebrowser.child-name=Child Name
|
||||
nodebrowser.child-node=Child Reference
|
||||
nodebrowser.primary=Primary
|
||||
nodebrowser.association-type=Association Type
|
||||
nodebrowser.index=Index
|
||||
nodebrowser.reference=Reference
|
||||
nodebrowser.path=Primary Path
|
||||
nodebrowser.name=Name
|
||||
nodebrowser.type=Type
|
||||
nodebrowser.value=Value
|
||||
nodebrowser.residual=Residual
|
||||
nodebrowser.parent=Parent
|
||||
nodebrowser.parents=Parents
|
||||
nodebrowser.parent-type=Parent Type
|
||||
nodebrowser.parent-reference=Parent Reference
|
||||
nodebrowser.properties=Properties
|
||||
nodebrowser.aspects=Aspects
|
||||
nodebrowser.associations=Associations
|
||||
nodebrowser.source-assocs=Source Associations
|
||||
nodebrowser.source-reference=Source Reference
|
||||
nodebrowser.target-reference=Target Reference
|
||||
nodebrowser.permissions=Permissions
|
||||
nodebrowser.permission=Permission
|
||||
nodebrowser.authority=Authority
|
||||
nodebrowser.access=Access
|
||||
nodebrowser.inherits=Inherits
|
||||
nodebrowser.owner=Owner
|
@@ -0,0 +1,43 @@
|
||||
nodebrowser.title=Node Browser
|
||||
nodebrowser.query=Anfrage
|
||||
nodebrowser.execute=Ausf\u00fchren
|
||||
nodebrowser.store=Speichern
|
||||
nodebrowser.refresh=Aktualisieren
|
||||
nodebrowser.root=Root-Liste
|
||||
nodebrowser.search-settings=Erweiterte Sucheinstellungen
|
||||
nodebrowser.maxresults=Max. Ergebnisse
|
||||
nodebrowser.skipcount=Anzahl \u00fcberspringen
|
||||
nodebrowser.null=Null
|
||||
nodebrowser.none=<keine>
|
||||
nodebrowser.collection=<Sammlung>
|
||||
|
||||
nodebrowser.results=Ergebnisse
|
||||
nodebrowser.children=Kinder
|
||||
nodebrowser.node-info=Node-Information
|
||||
nodebrowser.child-name=Kindname
|
||||
nodebrowser.child-node=Kindreferenz
|
||||
nodebrowser.primary=Prim\u00e4r
|
||||
nodebrowser.association-type=Zuordnungstyp
|
||||
nodebrowser.index=Index
|
||||
nodebrowser.reference=Referenz
|
||||
nodebrowser.path=Prim\u00e4rer Pfad
|
||||
nodebrowser.name=Name
|
||||
nodebrowser.type=Typ
|
||||
nodebrowser.value=Wert
|
||||
nodebrowser.residual=Rest
|
||||
nodebrowser.parent=Eltern
|
||||
nodebrowser.parents=Eltern
|
||||
nodebrowser.parent-type=Elterntyp
|
||||
nodebrowser.parent-reference=Elternreferenz
|
||||
nodebrowser.properties=Eigenschaften
|
||||
nodebrowser.aspects=Aspekte
|
||||
nodebrowser.associations=Zuordnungen
|
||||
nodebrowser.source-assocs=Quellzuordnungen
|
||||
nodebrowser.source-reference=Quellreferenz
|
||||
nodebrowser.target-reference=Zielreferenz
|
||||
nodebrowser.permissions=Berechtigungen
|
||||
nodebrowser.permission=Berechtigung
|
||||
nodebrowser.authority=Authority
|
||||
nodebrowser.access=Zugriff
|
||||
nodebrowser.inherits=Erbt
|
||||
nodebrowser.owner=Eigent\u00fcmer
|
@@ -0,0 +1,43 @@
|
||||
nodebrowser.title=Navegador de nodos
|
||||
nodebrowser.query=Consulta
|
||||
nodebrowser.execute=Ejecutar
|
||||
nodebrowser.store=Almacenar
|
||||
nodebrowser.refresh=Actualizar
|
||||
nodebrowser.root=Lista ra\u00edz
|
||||
nodebrowser.search-settings=Buscar ajustes avanzados
|
||||
nodebrowser.maxresults=Resultados m\u00e1ximos
|
||||
nodebrowser.skipcount=Saltar recuento
|
||||
nodebrowser.null=nulo
|
||||
nodebrowser.none=<ninguno>
|
||||
nodebrowser.collection=<colecci\u00f3n>
|
||||
|
||||
nodebrowser.results=Resultados
|
||||
nodebrowser.children=Hijos
|
||||
nodebrowser.node-info=Informaci\u00f3n de nodo
|
||||
nodebrowser.child-name=Nombre de hijo
|
||||
nodebrowser.child-node=Referencia de hijo
|
||||
nodebrowser.primary=Primario
|
||||
nodebrowser.association-type=Tipo de asociaci\u00f3n
|
||||
nodebrowser.index=\u00cdndice
|
||||
nodebrowser.reference=Referencia
|
||||
nodebrowser.path=Ruta primaria
|
||||
nodebrowser.name=Nombre
|
||||
nodebrowser.type=Tipo
|
||||
nodebrowser.value=Valor
|
||||
nodebrowser.residual=Residual
|
||||
nodebrowser.parent=Padre
|
||||
nodebrowser.parents=Padres
|
||||
nodebrowser.parent-type=Tipo de padre
|
||||
nodebrowser.parent-reference=Referencia de padre
|
||||
nodebrowser.properties=Propiedades
|
||||
nodebrowser.aspects=Contenidos
|
||||
nodebrowser.associations=Asociaciones
|
||||
nodebrowser.source-assocs=Asociaciones de origen
|
||||
nodebrowser.source-reference=Referencia de origen
|
||||
nodebrowser.target-reference=Referencia de destino
|
||||
nodebrowser.permissions=Permisos
|
||||
nodebrowser.permission=Permiso
|
||||
nodebrowser.authority=Autoridad
|
||||
nodebrowser.access=Acceso
|
||||
nodebrowser.inherits=Herencias
|
||||
nodebrowser.owner=Propietario
|
@@ -0,0 +1,43 @@
|
||||
nodebrowser.title=Navigateur de noeuds
|
||||
nodebrowser.query=Requ\u00eate
|
||||
nodebrowser.execute=Ex\u00e9cuter
|
||||
nodebrowser.store=Entrep\u00f4t
|
||||
nodebrowser.refresh=Rafra\u00eechir
|
||||
nodebrowser.root=Liste racine
|
||||
nodebrowser.search-settings=Param\u00e8tres avanc\u00e9s de recherche
|
||||
nodebrowser.maxresults=R\u00e9sultats max.
|
||||
nodebrowser.skipcount=Ignorer le nombre
|
||||
nodebrowser.null=nulle
|
||||
nodebrowser.none=<aucun>
|
||||
nodebrowser.collection=<collection>
|
||||
|
||||
nodebrowser.results=R\u00e9sultats
|
||||
nodebrowser.children=Fils
|
||||
nodebrowser.node-info=Informations de noeud
|
||||
nodebrowser.child-name=Nom de l'enfant
|
||||
nodebrowser.child-node=R\u00e9f\u00e9rence de l'enfant
|
||||
nodebrowser.primary=Primaire
|
||||
nodebrowser.association-type=Type d'association
|
||||
nodebrowser.index=Index
|
||||
nodebrowser.reference=R\u00e9f\u00e9rence
|
||||
nodebrowser.path=Chemin primaire
|
||||
nodebrowser.name=Nom
|
||||
nodebrowser.type=Type
|
||||
nodebrowser.value=Valeur
|
||||
nodebrowser.residual=R\u00e9siduelle
|
||||
nodebrowser.parent=Parent
|
||||
nodebrowser.parents=Parents
|
||||
nodebrowser.parent-type=Type de parent
|
||||
nodebrowser.parent-reference=R\u00e9f\u00e9rence du parent
|
||||
nodebrowser.properties=Propri\u00e9t\u00e9s
|
||||
nodebrowser.aspects=Aspects
|
||||
nodebrowser.associations=Associations
|
||||
nodebrowser.source-assocs=Associations source
|
||||
nodebrowser.source-reference=R\u00e9f\u00e9rence de la source
|
||||
nodebrowser.target-reference=R\u00e9f\u00e9rence de la cible
|
||||
nodebrowser.permissions=Permissions
|
||||
nodebrowser.permission=Droit d'acc\u00e8s
|
||||
nodebrowser.authority=Autorit\u00e9s
|
||||
nodebrowser.access=Acc\u00e8s
|
||||
nodebrowser.inherits=H\u00e9rite
|
||||
nodebrowser.owner=Propri\u00e9taire
|
@@ -0,0 +1,43 @@
|
||||
nodebrowser.title=Browser nodi
|
||||
nodebrowser.query=Query
|
||||
nodebrowser.execute=Esegui
|
||||
nodebrowser.store=Deposito
|
||||
nodebrowser.refresh=Aggiorna
|
||||
nodebrowser.root=Elenco principale
|
||||
nodebrowser.search-settings=Impostazioni avanzate ricerca
|
||||
nodebrowser.maxresults=Risultati max
|
||||
nodebrowser.skipcount=Salta conteggio
|
||||
nodebrowser.null=nullo
|
||||
nodebrowser.none=<nessuno>
|
||||
nodebrowser.collection=<raccolta>
|
||||
|
||||
nodebrowser.results=Risultati
|
||||
nodebrowser.children=Figli
|
||||
nodebrowser.node-info=Informazioni nodo
|
||||
nodebrowser.child-name=Nome figlio
|
||||
nodebrowser.child-node=Riferimento figlio
|
||||
nodebrowser.primary=Primario
|
||||
nodebrowser.association-type=Tipo di associazione
|
||||
nodebrowser.index=Indice
|
||||
nodebrowser.reference=Riferimento
|
||||
nodebrowser.path=Percorso principale
|
||||
nodebrowser.name=Nome
|
||||
nodebrowser.type=Tipo
|
||||
nodebrowser.value=Valore
|
||||
nodebrowser.residual=Residuo
|
||||
nodebrowser.parent=Genitore
|
||||
nodebrowser.parents=Genitori
|
||||
nodebrowser.parent-type=Tipo di genitore
|
||||
nodebrowser.parent-reference=Riferimento genitore
|
||||
nodebrowser.properties=Propriet\u00e0
|
||||
nodebrowser.aspects=Aspetti
|
||||
nodebrowser.associations=Associazioni
|
||||
nodebrowser.source-assocs=Associazione della fonte
|
||||
nodebrowser.source-reference=Riferimento fonte
|
||||
nodebrowser.target-reference=Riferimento destinazione
|
||||
nodebrowser.permissions=Permessi
|
||||
nodebrowser.permission=Permesso
|
||||
nodebrowser.authority=Autorit\u00e0
|
||||
nodebrowser.access=Accesso
|
||||
nodebrowser.inherits=Eredit\u00e0
|
||||
nodebrowser.owner=Proprietario
|
@@ -0,0 +1,43 @@
|
||||
nodebrowser.title=\u30ce\u30fc\u30c9\u30d6\u30e9\u30a6\u30b6
|
||||
nodebrowser.query=\u554f\u5408\u305b
|
||||
nodebrowser.execute=\u5b9f\u884c
|
||||
nodebrowser.store=\u30b9\u30c8\u30a2
|
||||
nodebrowser.refresh=\u518d\u8aad\u307f\u8fbc\u307f
|
||||
nodebrowser.root=\u30eb\u30fc\u30c8\u30ea\u30b9\u30c8
|
||||
nodebrowser.search-settings=\u691c\u7d22\u306e\u8a73\u7d30\u8a2d\u5b9a
|
||||
nodebrowser.maxresults=\u7d50\u679c\u306e\u6700\u5927\u8868\u793a\u4ef6\u6570
|
||||
nodebrowser.skipcount=\u30b9\u30ad\u30c3\u30d7\u56de\u6570
|
||||
nodebrowser.null=\u30cc\u30eb
|
||||
nodebrowser.none=<\u306a\u3057>
|
||||
nodebrowser.collection=<\u30b3\u30ec\u30af\u30b7\u30e7\u30f3>
|
||||
|
||||
nodebrowser.results=\u7d50\u679c
|
||||
nodebrowser.children=\u5b50
|
||||
nodebrowser.node-info=\u30ce\u30fc\u30c9\u60c5\u5831
|
||||
nodebrowser.child-name=\u5b50\u306e\u540d\u524d
|
||||
nodebrowser.child-node=\u5b50\u306e\u53c2\u7167
|
||||
nodebrowser.primary=\u30d7\u30e9\u30a4\u30de\u30ea
|
||||
nodebrowser.association-type=\u95a2\u9023\u30bf\u30a4\u30d7
|
||||
nodebrowser.index=\u30a4\u30f3\u30c7\u30c3\u30af\u30b9
|
||||
nodebrowser.reference=\u53c2\u7167
|
||||
nodebrowser.path=\u30d7\u30e9\u30a4\u30de\u30ea\u30d1\u30b9
|
||||
nodebrowser.name=\u540d\u524d
|
||||
nodebrowser.type=\u30bf\u30a4\u30d7
|
||||
nodebrowser.value=\u5024
|
||||
nodebrowser.residual=\u672a\u51e6\u7406
|
||||
nodebrowser.parent=\u89aa
|
||||
nodebrowser.parents=\u89aa
|
||||
nodebrowser.parent-type=\u89aa\u306e\u30bf\u30a4\u30d7
|
||||
nodebrowser.parent-reference=\u89aa\u306e\u53c2\u7167
|
||||
nodebrowser.properties=\u30d7\u30ed\u30d1\u30c6\u30a3
|
||||
nodebrowser.aspects=\u30a2\u30b9\u30da\u30af\u30c8
|
||||
nodebrowser.associations=\u95a2\u9023
|
||||
nodebrowser.source-assocs=\u30bd\u30fc\u30b9\u306e\u95a2\u9023
|
||||
nodebrowser.source-reference=\u30bd\u30fc\u30b9\u306e\u53c2\u7167
|
||||
nodebrowser.target-reference=\u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u53c2\u7167
|
||||
nodebrowser.permissions=\u6a29\u9650
|
||||
nodebrowser.permission=\u6a29\u9650
|
||||
nodebrowser.authority=\u627f\u8a8d\u8005
|
||||
nodebrowser.access=\u30a2\u30af\u30bb\u30b9
|
||||
nodebrowser.inherits=\u7d99\u627f
|
||||
nodebrowser.owner=\u6240\u6709\u8005
|
@@ -0,0 +1,43 @@
|
||||
nodebrowser.title=Nodeleser
|
||||
nodebrowser.query=Sp\u00f8rring
|
||||
nodebrowser.execute=Utf\u00f8r
|
||||
nodebrowser.store=Lagre
|
||||
nodebrowser.refresh=Oppdater
|
||||
nodebrowser.root=Rotliste
|
||||
nodebrowser.search-settings=S\u00f8k avanserte innstillinger
|
||||
nodebrowser.maxresults=Maks. resultater
|
||||
nodebrowser.skipcount=Hopp over telling
|
||||
nodebrowser.null=null
|
||||
nodebrowser.none=<none>
|
||||
nodebrowser.collection=<collection>
|
||||
|
||||
nodebrowser.results=Resultater
|
||||
nodebrowser.children=Underordnede
|
||||
nodebrowser.node-info=Nodeinformasjon
|
||||
nodebrowser.child-name=Underordnedes navn
|
||||
nodebrowser.child-node=Referanse for underordnet
|
||||
nodebrowser.primary=Prim\u00e6r
|
||||
nodebrowser.association-type=Type tilknytning
|
||||
nodebrowser.index=Indeks
|
||||
nodebrowser.reference=Referanse
|
||||
nodebrowser.path=Prim\u00e6rbane
|
||||
nodebrowser.name=Navn
|
||||
nodebrowser.type=Type
|
||||
nodebrowser.value=Verdi
|
||||
nodebrowser.residual=Rest
|
||||
nodebrowser.parent=Overordnet
|
||||
nodebrowser.parents=Overordnede
|
||||
nodebrowser.parent-type=Type overordnet
|
||||
nodebrowser.parent-reference=Referanse for overordnet
|
||||
nodebrowser.properties=Egenskaper
|
||||
nodebrowser.aspects=Aspekter
|
||||
nodebrowser.associations=Tilknytninger
|
||||
nodebrowser.source-assocs=Kildetilknytninger
|
||||
nodebrowser.source-reference=Referanse for kilde
|
||||
nodebrowser.target-reference=Referanse for m\u00e5l
|
||||
nodebrowser.permissions=Tillatelser
|
||||
nodebrowser.permission=Tillatelse
|
||||
nodebrowser.authority=Autoritet
|
||||
nodebrowser.access=Tilgang
|
||||
nodebrowser.inherits=Arver
|
||||
nodebrowser.owner=Eier
|
@@ -0,0 +1,43 @@
|
||||
nodebrowser.title=Nodebrowser
|
||||
nodebrowser.query=Query
|
||||
nodebrowser.execute=Uitvoeren
|
||||
nodebrowser.store=Opslaan
|
||||
nodebrowser.refresh=Vernieuwen
|
||||
nodebrowser.root=Hoofdlijst
|
||||
nodebrowser.search-settings=Geavanceerde instellingen voor zoeken
|
||||
nodebrowser.maxresults=Max. aantal resultaten
|
||||
nodebrowser.skipcount=Aantal overgeslagen
|
||||
nodebrowser.null=leeg
|
||||
nodebrowser.none=<geen>
|
||||
nodebrowser.collection=<verzameling>
|
||||
|
||||
nodebrowser.results=Resultaten
|
||||
nodebrowser.children=Onderliggende elementen
|
||||
nodebrowser.node-info=Nodegegevens
|
||||
nodebrowser.child-name=Naam onderliggend element
|
||||
nodebrowser.child-node=Verwijzing naar onderliggend element
|
||||
nodebrowser.primary=Primair
|
||||
nodebrowser.association-type=Type koppeling
|
||||
nodebrowser.index=Index
|
||||
nodebrowser.reference=Verwijzing
|
||||
nodebrowser.path=Primair pad
|
||||
nodebrowser.name=Naam
|
||||
nodebrowser.type=Type
|
||||
nodebrowser.value=Waarde
|
||||
nodebrowser.residual=Restwaarde
|
||||
nodebrowser.parent=Bovenliggend element
|
||||
nodebrowser.parents=Bovenliggende elementen
|
||||
nodebrowser.parent-type=Type bovenliggend element
|
||||
nodebrowser.parent-reference=Verwijzing naar bovenliggend element
|
||||
nodebrowser.properties=Eigenschappen
|
||||
nodebrowser.aspects=Aspecten
|
||||
nodebrowser.associations=Koppelingen
|
||||
nodebrowser.source-assocs=Koppelingen naar bron
|
||||
nodebrowser.source-reference=Verwijzing naar bron
|
||||
nodebrowser.target-reference=Verwijzing naar bestemming
|
||||
nodebrowser.permissions=Rechten
|
||||
nodebrowser.permission=Recht
|
||||
nodebrowser.authority=Autoriteit
|
||||
nodebrowser.access=Toegang
|
||||
nodebrowser.inherits=Neemt over
|
||||
nodebrowser.owner=Eigenaar
|
@@ -0,0 +1,43 @@
|
||||
nodebrowser.title=Navegador de n\u00f3s
|
||||
nodebrowser.query=Consulta
|
||||
nodebrowser.execute=Executar
|
||||
nodebrowser.store=Armazenar
|
||||
nodebrowser.refresh=Atualizar
|
||||
nodebrowser.root=Lista raiz
|
||||
nodebrowser.search-settings=Pesquisar configura\u00e7\u00f5es avan\u00e7adas
|
||||
nodebrowser.maxresults=Resultados m\u00e1x.
|
||||
nodebrowser.skipcount=Ignorar contagem
|
||||
nodebrowser.null=nulo
|
||||
nodebrowser.none=<none>
|
||||
nodebrowser.collection=<collection>
|
||||
|
||||
nodebrowser.results=Resultados
|
||||
nodebrowser.children=Secund\u00e1rios
|
||||
nodebrowser.node-info=Informa\u00e7\u00f5es do n\u00f3
|
||||
nodebrowser.child-name=Nome do secund\u00e1rio
|
||||
nodebrowser.child-node=Refer\u00eancia do secund\u00e1rio
|
||||
nodebrowser.primary=Prim\u00e1rio
|
||||
nodebrowser.association-type=Tipo de associa\u00e7\u00e3o
|
||||
nodebrowser.index=\u00cdndice
|
||||
nodebrowser.reference=Refer\u00eancia
|
||||
nodebrowser.path=Caminho prim\u00e1rio
|
||||
nodebrowser.name=Nome
|
||||
nodebrowser.type=Tipo
|
||||
nodebrowser.value=Valor
|
||||
nodebrowser.residual=Residual
|
||||
nodebrowser.parent=Prim\u00e1rio
|
||||
nodebrowser.parents=Prim\u00e1rios
|
||||
nodebrowser.parent-type=Tipo de prim\u00e1rio
|
||||
nodebrowser.parent-reference=Refer\u00eancia de prim\u00e1rio
|
||||
nodebrowser.properties=Propriedades
|
||||
nodebrowser.aspects=Aspectos
|
||||
nodebrowser.associations=Associa\u00e7\u00f5es
|
||||
nodebrowser.source-assocs=Associa\u00e7\u00f5es da fonte
|
||||
nodebrowser.source-reference=Refer\u00eancia da fonte
|
||||
nodebrowser.target-reference=Refer\u00eancia de destino
|
||||
nodebrowser.permissions=Permiss\u00f5es
|
||||
nodebrowser.permission=Permiss\u00e3o
|
||||
nodebrowser.authority=Autoridade
|
||||
nodebrowser.access=Acessar
|
||||
nodebrowser.inherits=Herda
|
||||
nodebrowser.owner=Propriet\u00e1rio
|
@@ -0,0 +1,43 @@
|
||||
nodebrowser.title=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432
|
||||
nodebrowser.query=\u0417\u0430\u043f\u0440\u043e\u0441
|
||||
nodebrowser.execute=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c
|
||||
nodebrowser.store=\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435
|
||||
nodebrowser.refresh=\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c
|
||||
nodebrowser.root=\u041a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a
|
||||
nodebrowser.search-settings=\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0438\u0441\u043a\u0430
|
||||
nodebrowser.maxresults=\u041c\u0430\u043a\u0441. \u043a\u043e\u043b-\u0432\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432
|
||||
nodebrowser.skipcount=\u041f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u043e\u0434\u0441\u0447\u0435\u0442
|
||||
nodebrowser.null=\u043f\u0443\u0441\u0442\u043e
|
||||
nodebrowser.none=<\u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e>
|
||||
nodebrowser.collection=<\u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f>
|
||||
|
||||
nodebrowser.results=\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b
|
||||
nodebrowser.children=\u0414\u043e\u0447\u0435\u0440\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b
|
||||
nodebrowser.node-info=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u043e\u0431\u044a\u0435\u043a\u0442\u0435
|
||||
nodebrowser.child-name=\u0418\u043c\u044f \u0434\u043e\u0447\u0435\u0440\u043d\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430
|
||||
nodebrowser.child-node=\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442
|
||||
nodebrowser.primary=\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439
|
||||
nodebrowser.association-type=\u0422\u0438\u043f \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0438
|
||||
nodebrowser.index=\u0418\u043d\u0434\u0435\u043a\u0441
|
||||
nodebrowser.reference=\u0421\u0441\u044b\u043b\u043a\u0430
|
||||
nodebrowser.path=\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u0443\u0442\u044c
|
||||
nodebrowser.name=\u0418\u043c\u044f
|
||||
nodebrowser.type=\u0422\u0438\u043f
|
||||
nodebrowser.value=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435
|
||||
nodebrowser.residual=\u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u043c\u043e\u0434\u0435\u043b\u0438
|
||||
nodebrowser.parent=\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442
|
||||
nodebrowser.parents=\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b
|
||||
nodebrowser.parent-type=\u0422\u0438\u043f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430
|
||||
nodebrowser.parent-reference=\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442
|
||||
nodebrowser.properties=\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430
|
||||
nodebrowser.aspects=\u0410\u0441\u043f\u0435\u043a\u0442\u044b
|
||||
nodebrowser.associations=\u0410\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0438
|
||||
nodebrowser.source-assocs=\u0410\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430
|
||||
nodebrowser.source-reference=\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a
|
||||
nodebrowser.target-reference=\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0446\u0435\u043b\u044c
|
||||
nodebrowser.permissions=\u041f\u0440\u0430\u0432\u0430
|
||||
nodebrowser.permission=\u041f\u0440\u0430\u0432\u043e
|
||||
nodebrowser.authority=\u041f\u043e\u043b\u043d\u043e\u043c\u043e\u0447\u0438\u044f
|
||||
nodebrowser.access=\u0414\u043e\u0441\u0442\u0443\u043f
|
||||
nodebrowser.inherits=\u041d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442
|
||||
nodebrowser.owner=\u0412\u043b\u0430\u0434\u0435\u043b\u0435\u0446
|
@@ -0,0 +1,43 @@
|
||||
nodebrowser.title=\u8282\u70b9\u6d4f\u89c8\u5668
|
||||
nodebrowser.query=\u67e5\u8be2
|
||||
nodebrowser.execute=\u6267\u884c
|
||||
nodebrowser.store=\u5e93
|
||||
nodebrowser.refresh=\u5237\u65b0
|
||||
nodebrowser.root=\u6839\u5217\u8868
|
||||
nodebrowser.search-settings=\u641c\u7d22\u9ad8\u7ea7\u8bbe\u7f6e
|
||||
nodebrowser.maxresults=\u6700\u5927\u7ed3\u679c\u6570
|
||||
nodebrowser.skipcount=\u8df3\u8fc7\u8ba1\u6570
|
||||
nodebrowser.null=\u7a7a
|
||||
nodebrowser.none=<\u65e0>
|
||||
nodebrowser.collection=<\u6536\u96c6>
|
||||
|
||||
nodebrowser.results=\u7ed3\u679c
|
||||
nodebrowser.children=\u5b50\u7ea7
|
||||
nodebrowser.node-info=\u8282\u70b9\u4fe1\u606f
|
||||
nodebrowser.child-name=\u5b50\u540d\u79f0
|
||||
nodebrowser.child-node=\u5b50\u5f15\u7528
|
||||
nodebrowser.primary=\u4e3b
|
||||
nodebrowser.association-type=\u5173\u8054\u7c7b\u578b
|
||||
nodebrowser.index=\u7d22\u5f15
|
||||
nodebrowser.reference=\u5f15\u7528
|
||||
nodebrowser.path=\u4e3b\u8def\u5f84
|
||||
nodebrowser.name=\u540d\u79f0
|
||||
nodebrowser.type=\u7c7b\u578b
|
||||
nodebrowser.value=\u503c
|
||||
nodebrowser.residual=\u6b8b\u7559
|
||||
nodebrowser.parent=\u7236\u7ea7
|
||||
nodebrowser.parents=\u7236\u7ea7
|
||||
nodebrowser.parent-type=\u7236\u7c7b\u578b
|
||||
nodebrowser.parent-reference=\u7236\u5f15\u7528
|
||||
nodebrowser.properties=\u5c5e\u6027
|
||||
nodebrowser.aspects=\u5207\u9762
|
||||
nodebrowser.associations=\u5173\u8054
|
||||
nodebrowser.source-assocs=\u6e90\u5173\u8054
|
||||
nodebrowser.source-reference=\u6e90\u5f15\u7528
|
||||
nodebrowser.target-reference=\u76ee\u6807\u5f15\u7528
|
||||
nodebrowser.permissions=\u6743\u9650
|
||||
nodebrowser.permission=\u6743\u9650
|
||||
nodebrowser.authority=\u6388\u6743
|
||||
nodebrowser.access=\u8bbf\u95ee
|
||||
nodebrowser.inherits=\u7ee7\u627f
|
||||
nodebrowser.owner=\u6240\u6709\u8005
|
@@ -0,0 +1,9 @@
|
||||
<webscript>
|
||||
<shortname>Admin Console - Node Browser</shortname>
|
||||
<description><![CDATA[Admin Console POST method for the Node Browser.]]></description>
|
||||
<url>/admin/admin-nodebrowser</url>
|
||||
<format default="html">argument</format>
|
||||
<authentication>admin</authentication>
|
||||
<lifecycle>internal</lifecycle>
|
||||
<transaction allow="readonly">required</transaction>
|
||||
</webscript>
|
@@ -1932,4 +1932,51 @@
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- Repository Admin Console messages -->
|
||||
<bean id="communityAdminConsoleResourceBundle" class="org.alfresco.i18n.ResourceBundleBootstrapComponent">
|
||||
<property name="resourceBundles">
|
||||
<list>
|
||||
<value>alfresco.messages.admin-console</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- Repository Admin Console Node Browser -->
|
||||
<bean id="webscript.org.alfresco.repository.admin.support-tools.admin-nodebrowser.post"
|
||||
class="org.alfresco.repo.web.scripts.admin.NodeBrowserPost"
|
||||
parent="webscript">
|
||||
<property name="nodeService" ref="NodeService"/>
|
||||
<property name="dictionaryService" ref="DictionaryService"/>
|
||||
<property name="searchService" ref="SearchService"/>
|
||||
<property name="namespaceService" ref="NamespaceService"/>
|
||||
<property name="permissionService" ref="PermissionService"/>
|
||||
<property name="ownableService" ref="OwnableService" />
|
||||
</bean>
|
||||
|
||||
<!-- Repository Admin Console script extensions -->
|
||||
<bean id="scriptRepoInterpreter" parent="baseJavaScriptExtension" class="org.alfresco.repo.web.scripts.admin.DynamicInterpreterExtension">
|
||||
<property name="extensionName">
|
||||
<value>repoInterpreter</value>
|
||||
</property>
|
||||
<property name="interpreter">
|
||||
<ref bean="repoAdminInterpreter" />
|
||||
</property>
|
||||
</bean>
|
||||
<bean id="scriptTenantInterpreter" parent="baseJavaScriptExtension" class="org.alfresco.repo.web.scripts.admin.DynamicInterpreterExtension">
|
||||
<property name="extensionName">
|
||||
<value>tenantInterpreter</value>
|
||||
</property>
|
||||
<property name="interpreter">
|
||||
<ref bean="tenantInterpreter" />
|
||||
</property>
|
||||
</bean>
|
||||
<bean id="scriptWorkflowInterpreter" parent="baseJavaScriptExtension" class="org.alfresco.repo.web.scripts.admin.DynamicInterpreterExtension">
|
||||
<property name="extensionName">
|
||||
<value>workflowInterpreter</value>
|
||||
</property>
|
||||
<property name="interpreter">
|
||||
<ref bean="workflowInterpreter" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
|
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2015 Alfresco Software Limited.
|
||||
*
|
||||
* This file is part of Alfresco
|
||||
*
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Alfresco is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.alfresco.repo.web.scripts.admin;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.io.StringWriter;
|
||||
|
||||
import org.alfresco.repo.admin.BaseInterpreter;
|
||||
import org.alfresco.repo.processor.BaseProcessorExtension;
|
||||
|
||||
/**
|
||||
* Console Interpeter script extension - dynamically binds to the configured BaseInterpreter instance.
|
||||
* This avoids the need for a specific bean class per script interpreter.
|
||||
*
|
||||
* @see org.alfresco.repo.admin.BaseInterpreter
|
||||
* See script beans configured in 'web-scripts-application-context.xml'.
|
||||
*
|
||||
* @author Kevin Roast
|
||||
* @since 5.1
|
||||
*/
|
||||
public class DynamicInterpreterExtension extends BaseProcessorExtension
|
||||
{
|
||||
private BaseInterpreter interpreter;
|
||||
private long duration;
|
||||
private String result = "";
|
||||
private String command = "";
|
||||
|
||||
/**
|
||||
* Set the BaseInterpreter to use when executing commands and retrieving the command result.
|
||||
*
|
||||
* @param interpreter For example, repoAdminInterpreter
|
||||
*/
|
||||
public void setInterpreter(BaseInterpreter interpreter)
|
||||
{
|
||||
this.interpreter = interpreter;
|
||||
}
|
||||
|
||||
private BaseInterpreter getInterpreter()
|
||||
{
|
||||
return this.interpreter;
|
||||
}
|
||||
|
||||
/**
|
||||
* Script execute command gateway.
|
||||
*
|
||||
* @param command string to execute
|
||||
*/
|
||||
public void executeCmd(String command)
|
||||
{
|
||||
this.command = command;
|
||||
this.interpretCommand(command);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the command duration
|
||||
*/
|
||||
public long getDuration()
|
||||
{
|
||||
return this.duration;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the command result
|
||||
*/
|
||||
public String getResult()
|
||||
{
|
||||
return this.result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the command last executed
|
||||
*/
|
||||
public String getCommand()
|
||||
{
|
||||
return this.command;
|
||||
}
|
||||
|
||||
/**
|
||||
* Interpret console command using the configured Interpreter
|
||||
*
|
||||
* @param command command
|
||||
*/
|
||||
private void interpretCommand(String command)
|
||||
{
|
||||
try
|
||||
{
|
||||
long startms = System.currentTimeMillis();
|
||||
this.result = getInterpreter().interpretCommand(command);
|
||||
this.duration = System.currentTimeMillis() - startms;
|
||||
}
|
||||
catch (Throwable e)
|
||||
{
|
||||
StringWriter stackTrace = new StringWriter();
|
||||
e.printStackTrace(new PrintWriter(stackTrace));
|
||||
this.result = stackTrace.toString();
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,318 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2015 Alfresco Software Limited.
|
||||
*
|
||||
* This file is part of Alfresco
|
||||
*
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Alfresco is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.alfresco.repo.web.scripts.admin;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.alfresco.error.AlfrescoRuntimeException;
|
||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.StoreRef;
|
||||
import org.alfresco.service.cmr.search.ResultSet;
|
||||
import org.alfresco.service.cmr.search.SearchParameters;
|
||||
import org.alfresco.slingshot.web.scripts.NodeBrowserScript;
|
||||
import org.alfresco.util.GUID;
|
||||
import org.springframework.extensions.surf.util.URLEncoder;
|
||||
import org.springframework.extensions.webscripts.Cache;
|
||||
import org.springframework.extensions.webscripts.Status;
|
||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||
import org.springframework.extensions.webscripts.servlet.WebScriptServletRequest;
|
||||
|
||||
/**
|
||||
* Admin Console NodeBrowser WebScript POST controller.
|
||||
* <p>
|
||||
* Implements a low-level node browser client for the Admin Console tool. Extends
|
||||
* the slingshot NodeBrowserScript WebScript to share the useful value wrapper classes.
|
||||
*
|
||||
* @author Kevin Roast
|
||||
* @since 5.1
|
||||
*/
|
||||
public class NodeBrowserPost extends NodeBrowserScript implements Serializable
|
||||
{
|
||||
private static final long serialVersionUID = 8464392337270665212L;
|
||||
|
||||
@Override
|
||||
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status, Cache cache)
|
||||
{
|
||||
Map<String, Object> result = new HashMap<>(16);
|
||||
|
||||
// gather inputs
|
||||
Map<String, String> returnParams = new HashMap<>(16);
|
||||
String store = req.getParameter("nodebrowser-store");
|
||||
String searcher = req.getParameter("nodebrowser-search");
|
||||
String query = req.getParameter("nodebrowser-query");
|
||||
String maxResults = req.getParameter("nodebrowser-query-maxresults");
|
||||
String skipCount = req.getParameter("nodebrowser-query-skipcount");
|
||||
String error = null;
|
||||
|
||||
StoreRef storeRef = new StoreRef(store);
|
||||
|
||||
// always a list of assoc refs from some result
|
||||
List<ChildAssociationRef> assocRefs = Collections.<ChildAssociationRef>emptyList();
|
||||
NodeRef currentNode = null;
|
||||
|
||||
// what action should be processed?
|
||||
long timeStart = System.currentTimeMillis();
|
||||
String actionValue = req.getParameter("nodebrowser-action-value");
|
||||
String action = req.getParameter("nodebrowser-action");
|
||||
try
|
||||
{
|
||||
switch (action)
|
||||
{
|
||||
// on Execute btn press and query present, perform search
|
||||
case "search":
|
||||
{
|
||||
if (query != null && query.trim().length() != 0)
|
||||
{
|
||||
switch (searcher)
|
||||
{
|
||||
case "noderef":
|
||||
{
|
||||
// ensure node exists - or throw error
|
||||
NodeRef nodeRef = new NodeRef(query);
|
||||
boolean exists = getNodeService().exists(nodeRef);
|
||||
if (!exists)
|
||||
{
|
||||
throw new AlfrescoRuntimeException("Node " + nodeRef + " does not exist.");
|
||||
}
|
||||
currentNode = nodeRef;
|
||||
// this is not really a search for results, it is a direct node reference
|
||||
// so gather the child assocs as usual and update the action value for the UI location
|
||||
assocRefs = getNodeService().getChildAssocs(currentNode);
|
||||
actionValue = query;
|
||||
action = "parent";
|
||||
break;
|
||||
}
|
||||
case "selectnodes":
|
||||
{
|
||||
List<NodeRef> nodes = getSearchService().selectNodes(
|
||||
getNodeService().getRootNode(storeRef), query, null, getNamespaceService(), false);
|
||||
assocRefs = new ArrayList<>(nodes.size());
|
||||
for (NodeRef node: nodes)
|
||||
{
|
||||
assocRefs.add(getNodeService().getPrimaryParent(node));
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
// perform search
|
||||
SearchParameters params = new SearchParameters();
|
||||
params.setQuery(query);
|
||||
params.addStore(storeRef);
|
||||
params.setLanguage(searcher);
|
||||
if (maxResults != null && maxResults.length() != 0)
|
||||
{
|
||||
params.setMaxItems(Integer.parseInt(maxResults));
|
||||
params.setLimit(Integer.parseInt(maxResults));
|
||||
}
|
||||
if (skipCount != null && skipCount.length() != 0)
|
||||
{
|
||||
params.setSkipCount(Integer.parseInt(skipCount));
|
||||
}
|
||||
ResultSet rs = getSearchService().query(params);
|
||||
assocRefs = rs.getChildAssocRefs();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "root":
|
||||
{
|
||||
// iterate the properties and children of a store root node
|
||||
currentNode = getNodeService().getRootNode(storeRef);
|
||||
assocRefs = getNodeService().getChildAssocs(currentNode);
|
||||
break;
|
||||
}
|
||||
case "parent":
|
||||
case "children":
|
||||
{
|
||||
currentNode = new NodeRef(actionValue);
|
||||
assocRefs = getNodeService().getChildAssocs(currentNode);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// get the required information from the assocRefs list and wrap objects
|
||||
List<ChildAssocRefWrapper> wrappers = new ArrayList<>(assocRefs.size());
|
||||
for (ChildAssociationRef ref : assocRefs)
|
||||
{
|
||||
wrappers.add(new ChildAssocRefWrapper(ref));
|
||||
}
|
||||
result.put("children", wrappers);
|
||||
}
|
||||
catch (Throwable e)
|
||||
{
|
||||
// empty child list on error - current node will still be null
|
||||
result.put("children", new ArrayList<>(0));
|
||||
error = e.getMessage();
|
||||
}
|
||||
|
||||
// current node info if any
|
||||
if (currentNode != null)
|
||||
{
|
||||
// node info
|
||||
Map<String, Object> info = new HashMap<>(8);
|
||||
info.put("nodeRef", currentNode.toString());
|
||||
info.put("path", getNodeService().getPath(currentNode).toPrefixString(getNamespaceService()));
|
||||
info.put("type", getNodeService().getType(currentNode).toPrefixString(getNamespaceService()));
|
||||
ChildAssociationRef parent = getNodeService().getPrimaryParent(currentNode);
|
||||
info.put("parent", parent.getParentRef() != null ? parent.getParentRef().toString() : "");
|
||||
result.put("info", info);
|
||||
|
||||
// node properties
|
||||
result.put("properties", getProperties(currentNode));
|
||||
|
||||
// parents
|
||||
List<ChildAssociationRef> parents = getNodeService().getParentAssocs(currentNode);
|
||||
List<ChildAssociation> assocs = new ArrayList<ChildAssociation>(parents.size());
|
||||
for (ChildAssociationRef ref : parents)
|
||||
{
|
||||
assocs.add(new ChildAssociation(ref));
|
||||
}
|
||||
result.put("parents", assocs);
|
||||
|
||||
// aspects
|
||||
List<Aspect> aspects = getAspects(currentNode);
|
||||
result.put("aspects", aspects);
|
||||
|
||||
// target assocs
|
||||
List<PeerAssociation> targetAssocs = getAssocs(currentNode);
|
||||
result.put("assocs", targetAssocs);
|
||||
|
||||
// source assocs
|
||||
List<PeerAssociation> sourceAssocs = getSourceAssocs(currentNode);
|
||||
result.put("sourceAssocs", sourceAssocs);
|
||||
|
||||
// permissions
|
||||
Map<String, Object> permissionInfo = new HashMap<String, Object>();
|
||||
permissionInfo.put("entries", getPermissions(currentNode));
|
||||
permissionInfo.put("owner", getOwnableService().getOwner(currentNode));
|
||||
permissionInfo.put("inherit", getInheritPermissions(currentNode));
|
||||
result.put("permissions", permissionInfo);
|
||||
}
|
||||
|
||||
// store result in session for the resulting GET request webscript
|
||||
final String resultId = GUID.generate();
|
||||
HttpServletRequest request = ((WebScriptServletRequest)req).getHttpServletRequest();
|
||||
HttpSession session = request.getSession();
|
||||
session.putValue(resultId, result);
|
||||
|
||||
// return params
|
||||
returnParams.put("resultId", resultId);
|
||||
returnParams.put("action", action);
|
||||
returnParams.put("actionValue", actionValue);
|
||||
returnParams.put("query", query);
|
||||
returnParams.put("store", store);
|
||||
returnParams.put("searcher", searcher);
|
||||
returnParams.put("maxResults", maxResults);
|
||||
returnParams.put("skipCount", skipCount);
|
||||
returnParams.put("in", Long.toString(System.currentTimeMillis()-timeStart));
|
||||
returnParams.put("e", error);
|
||||
|
||||
// redirect as all admin console pages do (follow standard pattern)
|
||||
// The logic to generate the navigation section and server meta-data is all tied into alfresco-common.lib.js
|
||||
// which is great for writing JS based JMX surfaced pages, but not so great for Java backed WebScripts.
|
||||
status.setCode(301);
|
||||
status.setRedirect(true);
|
||||
status.setLocation(buildUrl(req, returnParams, action));
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private static String buildUrl(WebScriptRequest req, Map<String, String> params, String hash)
|
||||
{
|
||||
StringBuilder url = new StringBuilder(256);
|
||||
|
||||
url.append(req.getServicePath());
|
||||
if (!params.isEmpty())
|
||||
{
|
||||
boolean first = true;
|
||||
for (String key: params.keySet())
|
||||
{
|
||||
String val = params.get(key);
|
||||
if (val != null && val.length() != 0)
|
||||
{
|
||||
url.append(first ? '?' : '&');
|
||||
url.append(key);
|
||||
url.append('=');
|
||||
url.append(URLEncoder.encode(val));
|
||||
first = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (hash != null && hash.length() != 0)
|
||||
{
|
||||
url.append('#').append(hash);
|
||||
}
|
||||
|
||||
return url.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper to resolve Assoc Type and QName to short form with resolved prefix
|
||||
*/
|
||||
public class ChildAssocRefWrapper implements Serializable
|
||||
{
|
||||
private static final long serialVersionUID = 4321292337846270665L;
|
||||
|
||||
final private ChildAssociationRef ref;
|
||||
private String qname = null;
|
||||
private String typeqname = null;
|
||||
|
||||
public ChildAssocRefWrapper(ChildAssociationRef r)
|
||||
{
|
||||
ref = r;
|
||||
}
|
||||
|
||||
public String getTypeQName()
|
||||
{
|
||||
return typeqname != null ? typeqname : (typeqname = ref.getTypeQName().toPrefixString(getNamespaceService()));
|
||||
}
|
||||
|
||||
public String getQName()
|
||||
{
|
||||
return qname != null ? qname : (qname = ref.getQName().toPrefixString(getNamespaceService()));
|
||||
}
|
||||
|
||||
public NodeRef getChildRef()
|
||||
{
|
||||
return ref.getChildRef();
|
||||
}
|
||||
|
||||
public NodeRef getParentRef()
|
||||
{
|
||||
return ref.getParentRef();
|
||||
}
|
||||
|
||||
public boolean isPrimary()
|
||||
{
|
||||
return ref.isPrimary();
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user