como agregar boton a las busquedas avanzadas?

cancel
Showing results for 
Search instead for 
Did you mean: 
eliosnieto
Active Member II

como agregar boton a las busquedas avanzadas?

Estuve viendo este ejemplo de pero hasta ahora mis intentos son fallidos 

GitHub - angelborroy/alfresco-add-menu-sample: Ejemplo para crear un menú en la Biblioteca de Docume... 

Gracias de por su ayuda

7 Replies
angelborroy
Alfresco Employee

Re: como agregar boton a las busquedas avanzadas?

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.

Hyland Developer Evangelist
eliosnieto
Active Member II

Re: como agregar boton a las busquedas avanzadas?

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){

}
});
})();

angelborroy
Alfresco Employee

Re: como agregar boton a las busquedas avanzadas?

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?

Hyland Developer Evangelist
eliosnieto
Active Member II

Re: como agregar boton a las busquedas avanzadas?

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";
   }
}

angelborroy
Alfresco Employee

Re: como agregar boton a las busquedas avanzadas?

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

Hyland Developer Evangelist
eliosnieto
Active Member II

Re: como agregar boton a las busquedas avanzadas?

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>

angelborroy
Alfresco Employee

Re: como agregar boton a las busquedas avanzadas?

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. 

Hyland Developer Evangelist