Alfresco Share应用程序的主菜单包含我们部署的项目团队希望禁用的几个项目。特别是"我的文件"和#34;共享文件"。隐藏会很好,但如果我们可以完全禁用它们,那将是最好的。这些是用户无权访问的功能。他们所有的互动都应该通过网站进行。
是否支持Alfresco(因为在#34;我们升级版本&#34时不会中断;)这样做的方式?
答案 0 :(得分:4)
您的博客文章描述了如何在this链接隐藏主菜单项。后来证明这种方法不适用于4.2.2以下的版本。您的社区版本(4.2e)也是如此。
您可以使用this链接中描述的解决方法。 以下是您需要的确切代码。 在 share-header.get.js 的底部添加以下内容
var widget, widgetsToRemove = [ "HEADER_SHARED_FILES", "HEADER_MY_FILES" ], idx, max;
for (idx = 0, max = widgetsToRemove.length; idx < max; idx++)
{
findAndRemoveIn(model.jsonModel.widgets, null, null, widgetsToRemove[idx]);
}
function findAndRemoveIn(obj, arrContext, arrIdx, id) {
var idx, max, key;
if (obj !== undefined && obj !== null) {
if (Object.prototype.toString.apply(obj) === "[object Object]") {
if (obj.hasOwnProperty("id") && obj.id === id) {
if (arrContext !== null && arrIdx !== null)
{ arrContext.splice(arrIdx, 1); }
else
{ logger .debug("Unexpected match outside of array structure: " + jsonUtils.toJSONString(obj)); }
} else {
for (key in obj) {
if (obj.hasOwnProperty(key))
{ findAndRemoveIn(obj[key], null, null, id); }
}
}
} else if (Object.prototype.toString.apply(obj) === "[object Array]") {
for (idx = 0, max = obj.length; idx < max; idx++)
{ findAndRemoveIn(obj[idx], obj, idx, id); }
}
}
}
稍后您可以在开始工作时编写扩展模块。 可以使用 widgetUtils.deleteObjectFromArray 辅助函数从菜单中删除其他元素,如HEADER_NAVIGATION_MENU_BAR,HEADER_TITLE_MENU,HEADER_TITLE。 最后一个选项是使用CSS。