如何在不重新启动 Alfresco/Tomcat 服务的情况下刷新以编程方式更改的站点仪表板?
How do I make a programatically changed site dashboard refresh without restarting the Alfresco/Tomcat service?
我已经创建了一个 web 脚本模块扩展并验证了它可以正常工作。它所做的是从一个站点获取 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 共享中的实际站点仪表板时,它会显示旧的 [=17] =] 仪表板。显示新仪表板的唯一方法是重新启动 Alfresco/Tomcat 服务。我什至尝试过使用不同的浏览器查看仪表板,以防这是本地缓存问题,但事实并非如此。
关于如何使仪表板刷新到新布局而不必每次都重新启动 Alfresco/Tomcat 服务的任何想法?
我知道问题出在哪里了。问题是我通过 Remote API
调用 Alfresco Repository
删除并重新创建仪表板,这样做是进行适当的更改,但没有告诉 Alfresco Share
这些更改。
解决方案是使用 Share root object sitedata
的组合来删除组件绑定,删除组件并通过 Share
重新创建它们,以便在前端自动更新更改无需重新启动服务。
基本上这是 Alfresco Share
中 customise-dashboard.post.json.js
中代码的修改版本
我已经创建了一个 web 脚本模块扩展并验证了它可以正常工作。它所做的是从一个站点获取 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 共享中的实际站点仪表板时,它会显示旧的 [=17] =] 仪表板。显示新仪表板的唯一方法是重新启动 Alfresco/Tomcat 服务。我什至尝试过使用不同的浏览器查看仪表板,以防这是本地缓存问题,但事实并非如此。
关于如何使仪表板刷新到新布局而不必每次都重新启动 Alfresco/Tomcat 服务的任何想法?
我知道问题出在哪里了。问题是我通过 Remote API
调用 Alfresco Repository
删除并重新创建仪表板,这样做是进行适当的更改,但没有告诉 Alfresco Share
这些更改。
解决方案是使用 Share root object sitedata
的组合来删除组件绑定,删除组件并通过 Share
重新创建它们,以便在前端自动更新更改无需重新启动服务。
基本上这是 Alfresco Share
customise-dashboard.post.json.js
中代码的修改版本