如何覆盖共享层中的客户端 JavaScript?
How to override client-side JavaScript in Share tier?
我的问题从这里开始:
我发现我可以使用 people-finder.js
来控制排序顺序
此脚本包含在 FreeMarker 模板中 people-finder.get.html.ftl
:
<@standalone>
<@markup id="css" >
<#-- CSS Dependencies -->
<@link href="${url.context}/res/components/people-finder/people-finder.css" group="people-finder"/>
</@>
<@markup id="js">
<#-- JavaScript Dependencies -->
<@script src="${url.context}/res/components/people-finder/people-finder.js" group="people-finder"/>
</@>
<@markup id="new-js" action="replace" target="js">
<#– JavaScript Dependencies –>
<@script src="${url.context}/res/components/people-finder/people-finder-ext.js" group="people-finder"/>
</@>
<@markup id="widgets">
<@createWidgets group="people-finder"/>
</@>
<@markup id="html">
<@uniqueIdDiv>
<#assign el=args.htmlid?html>
<div id="${el}-body" class="people-finder list theme-color-1">
<div class="title theme-color-2"><label for="${el}-search-text">${msg("title")}</label></div>
<div class="finder-wrapper">
<@markup id="searchBar">
<div class="search-bar theme-bg-color-3">
<div class="search-text"><input type="text" id="${el}-search-text" name="-" value="" maxlength="256" tabindex="0" placeholder="${msg('help.title')}"/></div>
<div class="search-button alf-colored-button">
<span id="${el}-search-button" class="yui-button yui-push-button"><span class="first-child"><button>${msg("button.search")}</button></span></span>
</div>
</div>
</@markup>
<@markup id="searchHelp">
<div id="${el}-help" class="yui-g theme-bg-color-2 help hidden">
<span>${msg("help.content")}</span>
</div>
</@markup>
<@markup id="searchResults">
<div class="alf-results-wrapper">
<div id="${el}-results-info" class="yui-dt-liner theme-bg-color-2 result-info hidden"></div>
<div id="${el}-results" class="results hidden"></div>
</div>
</@markup>
</div>
</div>
</@>
</@>
</@>
为了确定所需的功能,我需要重写此脚本并且我 "developed" 我自己的 - 比方说,people-finder-ext.js
据我了解,使用这段代码我可以实现:
<@markup id="new-js" action="replace" target="js">
<#– JavaScript Dependencies –>
<@script src="${url.context}/res/components/people-finder/people-finder-ext.js" group="people-finder"/>
</@>
在我的 AMP- 扩展中,我将 people-finder-ext.js
放在这里:
/some-customization-share/src/main/amp/web/components/people-finder/people-finder-ext.js
并修改了FreeMarker模板people-finder.get.html.ftl
我放在这里:
/some-customization-share/src/main/amp/config/alfresco/web-extension/site-webscripts/org/alfresco/components/people-finder/people-finder.get.html.ftl
然后我运行我的嵌入式项目Tomcat:
mvn integration-test -Pamp-to-war
所以,我发现排序不符合我的需要。
我观察了共享层和 Alfresco/Repo 层之间的网络流量,发现我的脚本 people-finder-ext.js
没有加载。
构建后我注意到,我的脚本不存在于 \target\amp-war\
中,而仅存在于 \target\amp\
.
中
可能是什么原因?
使用 Eclips 和 maven sdk 自定义 alfresco,这对开发和创建 amps 非常有用。
使用 Maven 设置 Alfresco SDK:Setup Alfresco sdk using maven
我的问题从这里开始:
我发现我可以使用 people-finder.js
此脚本包含在 FreeMarker 模板中 people-finder.get.html.ftl
:
<@standalone>
<@markup id="css" >
<#-- CSS Dependencies -->
<@link href="${url.context}/res/components/people-finder/people-finder.css" group="people-finder"/>
</@>
<@markup id="js">
<#-- JavaScript Dependencies -->
<@script src="${url.context}/res/components/people-finder/people-finder.js" group="people-finder"/>
</@>
<@markup id="new-js" action="replace" target="js">
<#– JavaScript Dependencies –>
<@script src="${url.context}/res/components/people-finder/people-finder-ext.js" group="people-finder"/>
</@>
<@markup id="widgets">
<@createWidgets group="people-finder"/>
</@>
<@markup id="html">
<@uniqueIdDiv>
<#assign el=args.htmlid?html>
<div id="${el}-body" class="people-finder list theme-color-1">
<div class="title theme-color-2"><label for="${el}-search-text">${msg("title")}</label></div>
<div class="finder-wrapper">
<@markup id="searchBar">
<div class="search-bar theme-bg-color-3">
<div class="search-text"><input type="text" id="${el}-search-text" name="-" value="" maxlength="256" tabindex="0" placeholder="${msg('help.title')}"/></div>
<div class="search-button alf-colored-button">
<span id="${el}-search-button" class="yui-button yui-push-button"><span class="first-child"><button>${msg("button.search")}</button></span></span>
</div>
</div>
</@markup>
<@markup id="searchHelp">
<div id="${el}-help" class="yui-g theme-bg-color-2 help hidden">
<span>${msg("help.content")}</span>
</div>
</@markup>
<@markup id="searchResults">
<div class="alf-results-wrapper">
<div id="${el}-results-info" class="yui-dt-liner theme-bg-color-2 result-info hidden"></div>
<div id="${el}-results" class="results hidden"></div>
</div>
</@markup>
</div>
</div>
</@>
</@>
</@>
为了确定所需的功能,我需要重写此脚本并且我 "developed" 我自己的 - 比方说,people-finder-ext.js
据我了解,使用这段代码我可以实现:
<@markup id="new-js" action="replace" target="js">
<#– JavaScript Dependencies –>
<@script src="${url.context}/res/components/people-finder/people-finder-ext.js" group="people-finder"/>
</@>
在我的 AMP- 扩展中,我将 people-finder-ext.js
放在这里:
/some-customization-share/src/main/amp/web/components/people-finder/people-finder-ext.js
并修改了FreeMarker模板people-finder.get.html.ftl
我放在这里:
/some-customization-share/src/main/amp/config/alfresco/web-extension/site-webscripts/org/alfresco/components/people-finder/people-finder.get.html.ftl
然后我运行我的嵌入式项目Tomcat:
mvn integration-test -Pamp-to-war
所以,我发现排序不符合我的需要。
我观察了共享层和 Alfresco/Repo 层之间的网络流量,发现我的脚本 people-finder-ext.js
没有加载。
构建后我注意到,我的脚本不存在于 \target\amp-war\
中,而仅存在于 \target\amp\
.
可能是什么原因?
使用 Eclips 和 maven sdk 自定义 alfresco,这对开发和创建 amps 非常有用。
使用 Maven 设置 Alfresco SDK:Setup Alfresco sdk using maven