Tal y como he comentado en el otro hilo, tienes que usar la página advsearch.get.html.ftl
El resto es equivalente.
Por favor, no repitas la misma pregunta en diferentes hilos.
Buenas Angel Borroy que me estará faltando para agregar el boton ?
(function() {
var Dom = YAHOO.util.Dom, Event = YAHOO.util.Event, Selector = YAHOO.util.Selector, Bubbling = YAHOO.Bubbling;
var $html = Alfresco.util.encodeHTML, $siteURL = Alfresco.util.siteURL;
if (typeof custom == "undefined" || !custom) {
custom = {};
}
if (!custom.button) {
custom.button = {};
}
custom.button.MiSearch = function CustomAdvanceSearch_constructor(htmlId) {
custom.button.MiSearch.superclass.constructor.call(this,htmlId);
return this;
};
YAHOO.extend(custom.button.MiSearch,
Alfresco.Alfresco.AdvancedSearch);
YAHOO.lang.augmentProto(custom.button.MiSearch,
Alfresco.doclib.Actions);
YAHOO.extend(custom.button.MiSearch,Alfresco.AdvancedSearch,{
onReady: function ADVSearch_onReady(){
custom.button.MiSearch.superclass.onReady.call(this);
this.widgets.customButton = Alfresco.util.createYUIButton(this,"search-button-3",this.onClickCustomButton, {
disabled : false,
value : "CreateChildren"
});
},
onClickCustomButton: function ADVSearch_onSearchClick(e, obj){
}
});
})();
A parte de la extensión de YUI que incluyes, ¿qué otras modificaciones estás haciendo? ¿Has incluido el "search-button-3" en la plantilla FTL?
mira estos son los archivos, gracias
.html.ftl
<@script type="text/javascript" src="${url.context}/res/components/search/extend-search.js" group="search" />
<@markup id="custonsearch-buuton" >
<@uniqueIdDiv>
<#assign el = args.htmlid?html>
<div class="yui-gc form-row">
<div class="yui-u first"></div>
<#-- search button -->
<div class="yui-u align-left">
<span id="${el}-search-button-3" class="yui-button yui-push-button search-icon">
<span class="first-child">
<button type="button">${msg('button.search')}</button>
</span>
</span>
</div>
</div>
</div>
</@>
</@>
.get.js
for (var i = 0; i < model.widgets.length; i++) {
if (model.widgets[i].id == "AdvancedSearch") {
model.widgets[i].name = "custom.button.MiSearch";
}
}
Te falta indicarle a Surf que quieres sobreescribir los componentes de org.alfresco.components.search
Algo parecido a esto: alfresco-add-menu-sample/add-menu.xml at master · angelborroy/alfresco-add-menu-sample · GitHub
https://github.com/angelborroy/alfresco-add-menu-sample#extender-el-componente-de-alfresco
Hola mira también hice la extencion, en site-data/extensions, me guié de es ejemplo.
<?xml version="1.0"?>
-<extension>
-<modules>
-<module>
<id>Add Button Scan</id>
-<customizations>
-<customization>
<targetPackageRoot>org.alfresco.components.search</targetPackageRoot>
<sourcePackageRoot>com.abc.buttom-search</sourcePackageRoot>
</customization>
</customizations>
<auto-deploy>true</auto-deploy>
</module>
</modules>
</extension>
Vamos a volver a revisar algunos conceptos. He montado un proyecto con tu código fuente y he visto algunos problemas.
Extensión Surf de los componentes
Requerida para extender componentes de Alfresco en la ruta org.alfresco.components.search
/src/main/resources/alfresco/web-extension/site-data/extensions/ext-adv-search.xml
<extension>
<modules>
<module>
<id>Testing add button</id>
<customizations>
<customization>
<targetPackageRoot>org.alfresco.components.search</targetPackageRoot>
<sourcePackageRoot>com.abc.button-search</sourcePackageRoot>
</customization>
</customizations>
<auto-deploy>true</auto-deploy>
</module>
</modules>
</extension>
Adición de componentes en la página FTL
Requerido para incluir componentes en la página. La propiedad target indica la sección de la página en la que quieres añadir tu componente.
src/main/resources/alfresco/web-extension/site-webscripts/com/abc/button-search/advsearch.get.html.ftl
<@markup id="customDocumentlist-js" target="js" action="after">
<@script type="text/javascript" src="${url.context}/res/components/search/extend-search.js" group="search" />
</@>
<@markup id="custom-button" target="html" action="before">
<@uniqueIdDiv>
<#assign el = args.htmlid?html>
<div class="yui-gc form-row">
<div class="yui-u first"></div>
<#-- search button -->
<div class="yui-u align-left">
<span id="${el}-search-button-3" class="yui-button yui-push-button search-icon">
<span class="first-child">
<button type="button">${msg('button.search')}</button>
</span>
</span>
</div>
</div>
</div>
</@>
</@>
Creación del componente YUI que extiende el original
Requerido para añadir el control JavaScript a los botones o elementos que se añaden en la página.
src/main/resources/META-INF/components/search/extend-search.js
(function() {
var Dom = YAHOO.util.Dom, Event = YAHOO.util.Event, Selector = YAHOO.util.Selector, Bubbling = YAHOO.Bubbling;
var $html = Alfresco.util.encodeHTML, $siteURL = Alfresco.util.siteURL;
if (typeof custom == "undefined" || !custom) {
custom = {};
}
if (!custom.button) {
custom.button = {};
}
custom.button.MiSearch = function CustomAdvanceSearch_constructor(htmlId) {
custom.button.MiSearch.superclass.constructor.call(this, htmlId);
return this;
};
YAHOO.extend(custom.button.MiSearch, Alfresco.AdvancedSearch);
YAHOO.extend(custom.button.MiSearch, Alfresco.AdvancedSearch,{
onReady : function ADVSearch_onReady() {
custom.button.MiSearch.superclass.onReady.call(this);
this.widgets.customButton = Alfresco.util.createYUIButton(this,
"search-button-3", this.onClickCustomButton, {
disabled : false,
value : "CreateChildren"
});
},
onClickCustomButton : function ADVSearch_onSearchClick(e, obj) {
}
});
})();
Carga del componente YUI personalizado
Requerido para que sea instanciado en sustitución del original
src/main/resources/alfresco/web-extension/site-webscripts/com/abc/button-search/advsearch.get.js
for (var i = 0; i < model.widgets.length; i++) {
if (model.widgets[i].id == "AdvancedSearch") {
model.widgets[i].name = "custom.button.MiSearch";
}
}
Con estos cambios el botón ya aparece en la página, aunque todavía quedaría definir su comportamiento en la función onClickCustomButton del componente YUI.
Discussions about Alfresco Content Services and Alfresco Process Services in Spanish
Related:
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.