As we transition to the new Hyland Community, some post links may be temporarily disrupted as we finalize redirects. We apologize for the inconvenience and are working to resolve this as quickly as possible. Details.
<#include "comments-list.get.head.ftl"> <!– Comments List –> <link rel="stylesheet" type="text/css" href="http://172.18.101.35:8080/share/res/components/comments/comments-list.css" /> <script type="text/javascript" src="http://172.18.101.35:8080/share/res/components/comments/comments-list.js"></script> <#if nodeRef??> <#assign el=args.htmlid?js_string> <script type="text/javascript">//<![CDATA[ new Alfresco.CommentsList("${el}").setOptions( { nodeRef: "${nodeRef?js_string}", siteId: <#if site??>"${site?js_string}"<#else>null</#if>, maxItems: ${maxItems?js_string}, activity: <#if activityParameterJSON??>${activityParameterJSON}<#else>null</#if>, editorConfig: { inline_styles: false, convert_fonts_to_spans: false, theme: "advanced", theme_advanced_buttons1: "bold,italic,underline,|,bullist,numlist,|,forecolor,|,undo,redo,removeformat", theme_advanced_toolbar_location: "top", theme_advanced_toolbar_align: "left", theme_advanced_resizing: true, theme_advanced_buttons2: null, theme_advanced_buttons3: null, theme_advanced_path: false, language: "${locale?substring(0, 2)?js_string}" } }).setMessages( ${messages} ); //]]></script> <div id="${el}-body" class="comments-list"> <h2 class="thin dark">${msg("header.comments")}</h2> <div id="${el}-add-comment"> <div id="${el}-add-form-container" class="theme-bg-color-4 hidden"></div> </div> <div class="comments-list-actions"> <div class="left"> <div id="${el}-actions" class="hidden"> <button class="alfresco-button" name=".onAddCommentClick">${msg("button.addComment")}</button> </div> </div> <div class="right"> <div id="${el}-paginator-top"></div> </div> <div class="clear"></div> </div> <hr class="hidden"/> <div id="${el}-comments-list"></div> <hr class="hidden"/> <div class="comments-list-actions"> <div class="left"> </div> <div class="right"> <div id="${el}-paginator-bottom"></div> </div> <div class="clear"></div> </div> </div> </#if>
remote.connect("alfresco").get('/api/metadata?nodeRef=' + nodeRef);
var this_AlfrescoUtil = this; var AlfrescoUtil = { error: function error(code, message, redirect) { status.code = arguments.length > 0 ? 500 : code; status.message = message || 'An error occured'; status.redirect = arguments.length > 2 ? redirect : true; throw new Error(message); }, /** * Looks for a parameter in a "safe" way that works in all "environments". * Meaning it will look in "page" and "template" if they do exist and not fail /crash if they don't. * * Looks for an argument in the following order/locations: * 1. args[name] * 2. page.url.args[name] * 3. page.url.templateArgs[name] * 4. template.properties[name] * 5. a) if defaultValue has been passed in that is used * b) otherwise the parameter is treated as required and an error is thrown * * @param name * @param defaultValue * @return the value for the parameter */ param: function param(name, defaultValue) { var value; if (args[name] && args[name].length != 0) { value = args[name]; } else if (this_AlfrescoUtil.hasOwnProperty("page") && page.url.args[name] && page.url.args[name].length != 0) { value = page.url.args[name]; } else if (this_AlfrescoUtil.hasOwnProperty("page") && page.url.templateArgs[name] && page.url.templateArgs[name].length != 0) { value = page.url.templateArgs[name]; } else if (this_AlfrescoUtil.hasOwnProperty("template") && template.properties[name] && template.properties[name].length != 0) { value = template.properties[name]; } else if (arguments.length > 1) { value = defaultValue; } else { AlfrescoUtil.error(400, 'Parameter "' + name+ '" is missing.', true); } model[name] = value; return value; }, getMetaData: function getMetaData(nodeRef, defaultValue) { var result = remote.connect("alfresco").get('/api/metadata?nodeRef=' + nodeRef); if (result.status != 200) { if (defaultValue !== undefined) { return defaultValue; } AlfrescoUtil.error(result.status, 'Could not load meta data ' + nodeRef); } result = eval('(' + result + ')'); return result; }, };
04240078 Wrapped Exception (with status template): 04243325 Failed to execute script '/com/companyx/comments/comments-list.get.js (in repository store workspace://SpacesStore/Homepage dell'azienda/Dizionario dei dati/Web Script)': 04243324 Invalid node ref - does not contain forward slash: alfresco-util.js
<import resource="surf-doclist.lib.js"> var this_AlfrescoUtil = this; var AlfrescoUtil = { error: function error(code, message, redirect) { status.code = arguments.length > 0 ? 500 : code; status.message = message || 'An error occured'; status.redirect = arguments.length > 2 ? redirect : true; throw new Error(message); }, /** * Looks for a parameter in a "safe" way that works in all "environments". * Meaning it will look in "page" and "template" if they do exist and not fail /crash if they don't. * * Looks for an argument in the following order/locations: * 1. args[name] * 2. page.url.args[name] * 3. page.url.templateArgs[name] * 4. template.properties[name] * 5. a) if defaultValue has been passed in that is used * b) otherwise the parameter is treated as required and an error is thrown * * @param name * @param defaultValue * @return the value for the parameter */ param: function param(name, defaultValue) { var value; if (name in url.templateArgs) value=url.templateArgs[name]; // if (args[name] && args[name].length != 0) // { // value = args[name]; // } // else if (this_AlfrescoUtil.hasOwnProperty("page") && page.url.args[name] && page.url.args[name].length != 0) // { // value = page.url.args[name]; // } // else if (this_AlfrescoUtil.hasOwnProperty("page") && page.url.templateArgs[name] && page.url.templateArgs[name].length != 0) // { // value = page.url.templateArgs[name]; // } // else if (this_AlfrescoUtil.hasOwnProperty("template") && template.properties[name] && template.properties[name].length != 0) // { // value = template.properties[name]; // } else if (arguments.length > 1) { value = defaultValue; } else { AlfrescoUtil.error(400, 'Parameter "' + name+ '" is missing.', true); } model[name] = value; return value; }, getRootNode: function getRootNode() { var rootNode = "alfresco://company/home", repoConfig = config.scoped["RepositoryLibrary"]["root-node"]; if (repoConfig !== null) { rootNode = repoConfig.value; } return rootNode; }, getNodeDetails: function getNodeDetails(nodeRef, site, options) { AlfrescoUtil.error(500, 'Noderef is '+nodeRef+' while site is '+site, true); return null; if (nodeRef) { var url = '/slingshot/doclib2/node/' + nodeRef.replace('://', '/'); if (!site) { // Repository mode url += "?libraryRoot=" + encodeURIComponent(AlfrescoUtil.getRootNode()); } var result = remote.connect("alfresco").get(url); if (result.status == 200) { var details = eval('(' + result + ')'); if (details && (details.item || details.items)) { DocList.processResult(details, options); return details; } } } return null; }, getMetaData: function getMetaData(nodeRef, defaultValue) { // var result=search.findNode(nodeRef); var result = remote.connect("alfresco").get('/api/metadata?nodeRef=' + nodeRef); if (result.status != 200) { if (defaultValue !== undefined) { return defaultValue; } AlfrescoUtil.error(result.status, 'Could not load meta data ' + nodeRef); } result = eval('(' + result + ')'); return result; }, };
<import resource="alfresco-util.js"> function getActivityParameters(nodeRef, defaultValue) { var cm = "{http://www.alfresco.org/model/content/1.0}", metadata = AlfrescoUtil.getMetaData(nodeRef, {}); if (metadata.properties) { if (model.activityType == "document") { return ( { itemTitle: metadata.properties[cm + 'title'] || metadata.properties[cm + 'name'], page: 'document-details', pageParams: { nodeRef: metadata.nodeRef } }); } else if (model.activityType == "folder") { return ( { itemTitle: metadata.properties[cm + 'title'] || metadata.properties[cm + 'name'], page: 'folder-details', pageParams: { nodeRef: metadata.nodeRef } }); } else if (model.activityType == "link") { var lm = "{http://www.alfresco.org/model/linksmodel/1.0}"; return ( { itemTitle: metadata.properties[lm + "title"], page: 'links-view', pageParams: { linkId: metadata.properties[cm + "name"] } }); } else if (model.activityType == "blog") { return ( { itemTitle: metadata.properties[cm + 'title'] || metadata.properties[cm + 'name'], page: 'blog-postview', pageParams: { postId: metadata.properties[cm + "name"] } }); } } return defaultValue; } function main() { // AlfrescoUtil.param('nodeRef', null); // AlfrescoUtil.param('site', null); // AlfrescoUtil.param('maxItems', 10); // AlfrescoUtil.param('activityType', null); // model.nodeRef = null; status.code=403; status.message='Unable to get nodeRef'; status.redirect=true; // if (model.nodeRef) { // if (!model.nodeRef) // { // // Handle urls that doesn't use nodeRef // AlfrescoUtil.param('postId', null); // if (model.postId) // { // // translate blog post "postId" to a nodeRef // AlfrescoUtil.param('container', 'blog'); // model.nodeRef = AlfrescoUtil.getBlogPostDetailsByPostId(model.site, model.container, model.postId, {}).nodeRef; // } // else // { // AlfrescoUtil.param('linkId', null); // if (model.linkId) // { // // translate link's "linkId" to a nodeRef // AlfrescoUtil.param('container', 'links'); // model.nodeRef = AlfrescoUtil.getLinkDetailsByPostId(model.site, model.container, model.linkId, {}).nodeRef; // } // } // } // var documentDetails = AlfrescoUtil.getNodeDetails(model.nodeRef, model.site); // if (documentDetails) // { // var activityParameters = getActivityParameters(model.nodeRef, null); // if (activityParameters) // { // model.activityParameterJSON = jsonUtils.toJSONString(activityParameters); // } // } // } // else // { // // Signal to the template that the node doesn't exist and that comments therefore shouldn't be displayed. // model.nodeRef = null; // status.code=403; // status.message='Unable to get nodeRef'; // status.redirect=true; // } } main();
<webscript> <shortname>Comments component</shortname> <description>Displays comments for a node</description> <url>/com/companyx/components/comments/list</url> <transaction>required</transaction> <authentication>user</authentication> </webscript>
var this_AlfrescoUtil = this; var AlfrescoUtil = {};
<import resource="classpath:alfresco/templates/webscripts/org/alfresco/cmis/lib/read.lib.js">
<import resource="workspace://SpacesStore/434481d2-27d5-4966-98ff-59729b494168"> function getActivityParameters(nodeRef, defaultValue) { var cm = "{http://www.alfresco.org/model/content/1.0}", metadata = AlfrescoUtil.getMetaData(nodeRef, {}); if (metadata.properties) { if (model.activityType == "document") { return ( { itemTitle: metadata.properties[cm + 'title'] || metadata.properties[cm + 'name'], page: 'document-details', pageParams: { nodeRef: metadata.nodeRef } }); } } return defaultValue; } function main() { AlfrescoUtil.param('nodeRef', null); AlfrescoUtil.param('site', null); AlfrescoUtil.param('maxItems', 10); // AlfrescoUtil.param('activityType', null); model.maxItems=10; model.locale='it'; if (model.nodeRef && model.site) { // var documentDetails = AlfrescoUtil.getNodeDetails(model.nodeRef, model.site); // if (documentDetails) { // var activityParameters = getActivityParameters(model.nodeRef, null); // if (activityParameters) model.activityParameterJSON = jsonUtils.toJSONString(activityParameters); // } } else { status.code=404; status.message='Unable to get nodeRef or site parameter'; status.redirect=true; } } main();
<import resource="workspace://SpacesStore/d4564463-8fba-4ca2-a761-d491bd9a4c08"> var this_AlfrescoUtil = this; var AlfrescoUtil = { error: function error(code, message, redirect) { status.code = arguments.length > 0 ? 500 : code; status.message = message || 'An error occured'; status.redirect = arguments.length > 2 ? redirect : true; throw new Error(message); }, /** * Looks for a parameter in a "safe" way that works in all "environments". * Meaning it will look in "page" and "template" if they do exist and not fail /crash if they don't. * * Looks for an argument in the following order/locations: * 1. args[name] * 2. page.url.args[name] * 3. page.url.templateArgs[name] * 4. template.properties[name] * 5. a) if defaultValue has been passed in that is used * b) otherwise the parameter is treated as required and an error is thrown * * @param name * @param defaultValue * @return the value for the parameter */ param: function param(name, defaultValue) { if (args[name]!==undefined) model[name]=args[name]; else if (defaultValue) model[name]=defaultValue; else AlfrescoUtil.error(400, 'Parameter "' + name+ '" is missing.', true); return model[name]; }, getRootNode: function getRootNode() { var rootNode = "alfresco://company/home", repoConfig = config.scoped["RepositoryLibrary"]["root-node"]; if (repoConfig !== null) { rootNode = repoConfig.value; } return rootNode; }, getNodeDetails: function getNodeDetails(nodeRef, site, options) { if (nodeRef) { // var url = '/slingshot/doclib2/node/' + nodeRef.replace('://', '/'); // if (!site) // { // // Repository mode // url += "?libraryRoot=" + encodeURIComponent(AlfrescoUtil.getRootNode()); // } // var result = remote.connect("alfresco").get(url); details = search.findNode(nodeRef); if (details != null) { if (details && (details.item || details.items)) { DocList.processResult(details, options); return details; } else AlfrescoUtil.error(500, 'details not ok'+jsonUtils.toJSONString(details), true); } else AlfrescoUtil.error(500, 'details empty', true); } return null; }, getMetaData: function getMetaData(nodeRef, defaultValue) { // var result=search.findNode(nodeRef); var result = remote.connect("alfresco").get('/api/metadata?nodeRef=' + nodeRef); if (result.status != 200) { if (defaultValue !== undefined) { return defaultValue; } AlfrescoUtil.error(result.status, 'Could not load meta data ' + nodeRef); } result = eval('(' + result + ')'); return result; }, };
<script type="text/javascript">//<![CDATA[ new Alfresco.CommentsList("prova").setOptions( { nodeRef: "workspace://SpacesStore/4b7198b9-5356-446d-a1a2-747b2896a9ff", siteId: "SpacesStore", maxItems: 10, activity: null, editorConfig: { inline_styles: false, convert_fonts_to_spans: false, theme: "advanced", theme_advanced_buttons1: "bold,italic,underline,|,bullist,numlist,|,forecolor,|,undo,redo,removeformat", theme_advanced_toolbar_location: "top", theme_advanced_toolbar_align: "left", theme_advanced_resizing: true, theme_advanced_buttons2: null, theme_advanced_buttons3: null, theme_advanced_path: false, language: "it" } }).setMessages( {"message.confirm.delete": "Eliminare questo commento?", "message.delete.success": "Commento eliminato", "message.wait": "Attendere…", "message.delete.failure": "Impossibile eliminare il commento", "header.edit": "Modifica commento…", "header.comments": "Commenti", "message.noComments": "Nessun commento", "message.loadeditform.failure": "Impossibile caricare il modulo di modifica del commento", "message.savecomment": "Salvataggio del commento in corso…", "message.confirm.delete.title": "Elimina commento", "header.add": "Aggiungi commento…", "button.addComment": "Aggiungi commento", "link.deleteComment": "Elimina commento", "button.save": "Salva", "label.avatar": "Avatar", "button.cancel": "Annulla", "message.savecomment.failure": "Impossibile salvare il commento", "link.editComment": "Modifica commento"} ); //]]></script> <div id="prova-body" class="comments-list"> <h2 class="thin dark">Commenti</h2> <div id="prova-add-comment"> <div id="prova-add-form-container" class="theme-bg-color-4 hidden"></div> </div> <div class="comments-list-actions"> <div class="left"> <div id="prova-actions" class="hidden"> <button class="alfresco-button" name=".onAddCommentClick">Aggiungi commento</button> </div> </div> <div class="right"> <div id="prova-paginator-top"></div> </div> <div class="clear"></div> </div> <hr class="hidden"/> <div id="prova-comments-list"></div> <hr class="hidden"/> <div class="comments-list-actions"> <div class="left"> </div> <div class="right"> <div id="prova-paginator-bottom"></div> </div> <div class="clear"></div> </div> </div>
'Expression theme is undefined on line 14, column 9
<#– RESOURCES –> <!– Icons –> <link rel="shortcut icon" href="/share/res/favicon.ico" type="image/vnd.microsoft.icon" /> <link rel="icon" href="/share/res/favicon.ico" type="image/vnd.microsoft.icon" /> <!– YUI –> <link rel="stylesheet" type="text/css" href="/share/res/css/yui-fonts-grids.css" /> <link rel="stylesheet" type="text/css" href="/share/res/yui/columnbrowser/assets/columnbrowser.css" /> <link rel="stylesheet" type="text/css" href="/share/res/yui/columnbrowser/assets/skins/default/columnbrowser-skin.css" /> <#if theme = 'default'> <link rel="stylesheet" type="text/css" href="/share/res/yui/assets/skins/default/skin.css" /> <#else> <link rel="stylesheet" type="text/css" href="/share/res/themes/${theme}/yui/assets/skin.css" /> </#if> <#if DEBUG> <script type="text/javascript" src="/share/res/js/log4javascript.v1.4.1.js"></script> <script type="text/javascript" src="/share/res/yui/yahoo/yahoo-debug.js"></script> <script type="text/javascript" src="/share/res/yui/event/event-debug.js"></script> <script type="text/javascript" src="/share/res/yui/dom/dom-debug.js"></script> <script type="text/javascript" src="/share/res/yui/dragdrop/dragdrop-debug.js"></script> <script type="text/javascript" src="/share/res/yui/animation/animation-debug.js"></script> <script type="text/javascript" src="/share/res/yui/logger/logger-debug.js"></script> <script type="text/javascript" src="/share/res/yui/connection/connection-debug.js"></script> <script type="text/javascript" src="/share/res/yui/element/element-debug.js"></script> <script type="text/javascript" src="/share/res/yui/get/get-debug.js"></script> <script type="text/javascript" src="/share/res/yui/yuiloader/yuiloader-debug.js"></script> <script type="text/javascript" src="/share/res/yui/button/button-debug.js"></script> <script type="text/javascript" src="/share/res/yui/container/container-debug.js"></script> <script type="text/javascript" src="/share/res/yui/menu/menu-debug.js"></script> <script type="text/javascript" src="/share/res/yui/json/json-debug.js"></script> <script type="text/javascript" src="/share/res/yui/selector/selector-debug.js"></script> <script type="text/javascript" src="/share/res/yui/datasource/datasource-debug.js"></script> <script type="text/javascript" src="/share/res/yui/autocomplete/autocomplete-debug.js"></script> <script type="text/javascript" src="/share/res/yui/paginator/paginator-debug.js"></script> <script type="text/javascript" src="/share/res/yui/datatable/datatable-debug.js"></script> <script type="text/javascript" src="/share/res/yui/history/history-debug.js"></script> <script type="text/javascript" src="/share/res/yui/treeview/treeview-debug.js"></script> <script type="text/javascript" src="/share/res/yui/autocomplete/autocomplete-debug.js"></script> <script type="text/javascript" src="/share/res/yui/yui-patch.js"></script> <script type="text/javascript">//<![CDATA[ YAHOO.util.Event.throwErrors = true; //]]></script> <#else> <script type="text/javascript" src="/share/res/js/yui-common.js"></script> </#if> <script type="text/javascript" src="/share/res/js/bubbling.v2.1.js"></script> <script type="text/javascript">//<![CDATA[ YAHOO.Bubbling.unsubscribe = function(layer, handler, scope) { this.bubble[layer].unsubscribe(handler, scope); }; //]]></script> <!– Common i18n msg properties –> <script type="text/javascript" src="/share/service/messages.js?locale=${locale}"></script> <!– Alfresco web framework constants –> <script type="text/javascript">//<![CDATA[ Alfresco.constants = Alfresco.constants || {}; Alfresco.constants.DEBUG = ${DEBUG?string}; Alfresco.constants.AUTOLOGGING = ${AUTOLOGGING?string}; Alfresco.constants.PROXY_URI = window.location.protocol + "//" + window.location.host + "/share/proxy/alfresco/"; Alfresco.constants.PROXY_URI_RELATIVE = "/share/proxy/alfresco/"; Alfresco.constants.PROXY_FEED_URI = window.location.protocol + "//" + window.location.host + "/share/proxy/alfresco-feed/"; Alfresco.constants.THEME = "${theme}"; Alfresco.constants.URL_CONTEXT = "/share/"; Alfresco.constants.URL_RESCONTEXT = "/share/res/"; Alfresco.constants.URL_PAGECONTEXT = "/share/page/"; Alfresco.constants.URL_SERVICECONTEXT = "/share/service/"; Alfresco.constants.URL_FEEDSERVICECONTEXT = "/share/feedservice/"; Alfresco.constants.USERNAME = "${(user.name!"")?js_string}"; Alfresco.constants.SITE = "<#if page??>${(page.url.templateArgs.site!"")?js_string}</#if>"; Alfresco.constants.PAGEID = "<#if page??>${(page.url.templateArgs.pageid!"")?js_string}</#if>"; Alfresco.constants.PORTLET = ${PORTLET?string}; Alfresco.constants.PORTLET_URL = unescape("${(context.attributes.portletUrl!"")?js_string}"); Alfresco.constants.JS_LOCALE = "${locale}"; <#if PORTLET> document.cookie = "JSESSIONID=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/share"; </#if> //]]></script> <!– Alfresco web framework common resources –> <#if PORTLET> <link rel="stylesheet" type="text/css" href="/share/res/css/portlet.css" /> </#if> <link rel="stylesheet" type="text/css" href="/share/res/css/base.css" /> <link rel="stylesheet" type="text/css" href="/share/res/css/yui-layout.css" /> <script type="text/javascript" src="/share/res/js/flash/AC_OETags.js"></script> <script type="text/javascript" src="/share/res/js/alfresco.js"></script> <script type="text/javascript" src="/share/res/modules/editors/tiny_mce/tiny_mce${DEBUG?string("_src", "")}.js"></script> <script type="text/javascript" src="/share/res/modules/editors/tiny_mce.js"></script> <script type="text/javascript" src="/share/res/modules/editors/yui_editor.js"></script> <script type="text/javascript" src="/share/res/js/forms-runtime.js"></script> <!– Share Constants –> <script type="text/javascript">//<![CDATA[ Alfresco.service.Preferences.FAVOURITE_DOCUMENTS = "org.alfresco.share.documents.favourites"; Alfresco.service.Preferences.FAVOURITE_FOLDERS = "org.alfresco.share.folders.favourites"; Alfresco.service.Preferences.FAVOURITE_SITES = "org.alfresco.share.sites.favourites"; Alfresco.service.Preferences.IMAP_FAVOURITE_SITES = "org.alfresco.share.sites.imapFavourites"; Alfresco.service.Preferences.COLLAPSED_TWISTERS = "org.alfresco.share.twisters.collapsed"; Alfresco.service.Preferences.RULE_PROPERTY_SETTINGS = "org.alfresco.share.rule.properties"; Alfresco.constants.URI_TEMPLATES = { <#list config.scoped["UriTemplate"]["uri-templates"].childrenMap["uri-template"] as c> "${c.attributes["id"]}": "${c.value}"<#if c_has_next>,</#if> </#list> }; Alfresco.constants.HELP_PAGES = { <#list config.scoped["HelpPages"]["help-pages"].children as c> "${c.name}": "${c.value}"<#if c_has_next>,</#if> </#list> }; Alfresco.constants.HTML_EDITOR = 'tinyMCE'; //]]></script> <!– Share resources –> <script type="text/javascript" src="/share/res/js/share.js"></script> <script type="text/javascript" src="/share/res/js/lightbox.js"></script> <link rel="stylesheet" type="text/css" href="/share/res/themes/${theme}/presentation.css" /> <#if (templateStylesheets?size > 0)> <!– Common stylesheets gathered to workaround IEBug KB262161 –> <style type="text/css" media="screen"> <#list templateStylesheets as href> @import "${href}"; </#list> </style> </#if> <#– Use this "markup id" to add in a extension's resources –> <!– Comments List –> <link rel="stylesheet" type="text/css" href="/share/res/components/comments/comments-list.css" /> <script type="text/javascript" src="/share/res/components/comments/comments-list.js"></script> <#if nodeRef??> <#assign el=args.htmlid?js_string> <script type="text/javascript">//<![CDATA[ new Alfresco.CommentsList("${el}").setOptions( { nodeRef: "${nodeRef?js_string}", siteId: <#if site??>"${site?js_string}"<#else>null</#if>, maxItems: ${maxItems?js_string}, activity: <#if activityParameterJSON??>${activityParameterJSON}<#else>null</#if>, editorConfig: { inline_styles: false, convert_fonts_to_spans: false, theme: "advanced", theme_advanced_buttons1: "bold,italic,underline,|,bullist,numlist,|,forecolor,|,undo,redo,removeformat", theme_advanced_toolbar_location: "top", theme_advanced_toolbar_align: "left", theme_advanced_resizing: true, theme_advanced_buttons2: null, theme_advanced_buttons3: null, theme_advanced_path: false, language: "${locale?substring(0, 2)?js_string}" } }).setMessages( ${messages} ); //]]></script> <div id="${el}-body" class="comments-list"> <h2 class="thin dark">${msg("header.comments")}</h2> <div id="${el}-add-comment"> <div id="${el}-add-form-container" class="theme-bg-color-4 hidden"></div> </div> <div class="comments-list-actions"> <div class="left"> <div id="${el}-actions" class="hidden"> <button class="alfresco-button" name=".onAddCommentClick">${msg("button.addComment")}</button> </div> </div> <div class="right"> <div id="${el}-paginator-top"></div> </div> <div class="clear"></div> </div> <hr class="hidden"/> <div id="${el}-comments-list"></div> <hr class="hidden"/> <div class="comments-list-actions"> <div class="left"> </div> <div class="right"> <div id="${el}-paginator-bottom"></div> </div> <div class="clear"></div> </div> </div> </#if>