0

我已经创建了一个 web-script 模块扩展并验证了它可以正常工作。它所做的是从一个站点获取dashboard.xml相关page.component-X-Y.type~id~dashboard.xml文件,删除另一个站点上的所有仪表板相关文件,然后将源文件复制到已删除它们的新站点。

伪代码

var siteDashboard = getDashboard("site1-shortname");
var siteDashboard = renameShortNames("site1-shortname", "short2-shortname");

deleteDashboard("site2-shortname");
createDashboard("site2-shortname", siteDashboard);

renameShortNames只需将仪表板文件中的站点 ID 重命名为新站点的 ID。

这一切都有效,我已经测试并验证了它。我的问题是,当我转到http://alfrescosite.com/alfresco/s/remoteadm/get/s/sitestore/alfresco/site-data/pages/site/site2-shortname/dashboard.xml它时,它会向我显示新的仪表板布局,site1-shortname从中是正确的行为,但是当我转到 Alfresco 共享中的实际站点仪表板时,它会显示旧site2-shortname仪表板。我可以让新仪表板显示的唯一方法是重新启动 Alfresco/Tomcat 服务。我什至尝试使用不同的浏览器查看仪表板,以防万一这是本地缓存问题,但事实并非如此。

关于如何使仪表板刷新到新布局而不必每次都重新启动 Alfresco/Tomcat 服务的任何想法?

4

1 回答 1

1

我弄清楚了问题所在。问题是我通过Remote API调用来删除和重新创建仪表板Alfresco Repository,这样做是在进行适当的更改,但没有告诉Alfresco Share这些更改。

解决方案是使用 Share 根对象的组合sitedata来移除组件绑定,删除组件并通过重新创建它们,Share以便在前端自动更新更改而无需重新启动服务。

基本上这最终是customise-dashboard.post.json.js内部代码的修改版本Alfresco Share

于 2015-09-11T23:33:20.867 回答