Tcendros

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

Tcendros

Buenas soy nuevo en esto de alfresco y me instalado una comunity 5c en preproduccion en ubuntu server y mysql. De momneto se adapta bien a mis requerimientos, pero tengo un gran problema (tan grande que sino lo soluciono tendre que abandonar el proyecto) he de hacer que desaparezcan ciertos menus de el share de los clientes, como crear nuevo sitio y mis documentos.
He estado mirando y parece que cada version de alfresco tiene diferentes metodos para hacer eso, total que he probado todos los que he visto y soy incapa de hacer que desaparezcan los menus. Solo me queda la opcion de instalarme un Alfresco antiguo pero vaya no creo que se la solucion.

gracias.
3 Replies
angelborroy
Alfresco Employee

Re: Tcendros

Tienes un buen tutorial sobre cómo eliminar elementos aquí (http://blogs.alfresco.com/wp/developer/2013/09/16/customizing-the-share-header-part-3/). Es válido para 4.2.d o superior.

Básicamente tienes que extender Alfresco Share (<CODE>customization-extensions.xml</CODE>):
<javascript>
<extension>
   <modules>
      <module>
         <customizations>
            <customization>
               <targetPackageRoot>org.alfresco.share.header</targetPackageRoot>
               <sourcePackageRoot>es.keensoft.share.header</sourcePackageRoot>
           </customization>
         </customizations>
         <auto-deploy>true</auto-deploy>
      </module>
   </modules>
</extension>
</javascript>

Y después establecer condiciones que desees sobre los elementos de menú (<CODE>share-header.get.js</CODE>):
<javascript>
var sitesMenu = widgetUtils.findObject(model.jsonModel, "id", "HEADER_SITES_MENU");
if (sitesMenu) {
      sitesMenu.config.showCreateSite = user.isAdmin;
}
if (!user.isAdmin) {
  widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_SHARED_FILES");
  widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_REPOSITORY");
}
</javascript>

También tienes un ejemplo completo en https://github.com/keensoft/alfresco-summit-2014/tree/master/10-enhancements/09-hide-create-site
Puede servirte de base para realizar tu propio desarrollo.
Hyland Developer Evangelist
tcendros
Member II

Re: Tcendros

He cogido este post:
The object to remove the widget definition from (you can typically just use “model.jsonModel“)
The attribute to search for (you should use “id“)
The value to match against the target attribute (the “id” attribute of the widget definition to remove)
So for example to remove the “My Files” link from the menu bar you would need to include the following code in your “share-header.get.js” extension:

widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_MY_FILES");
Before the module is deployed the header is as follows:

————————————————————————–
Parece muy claro así que me ido a:
vi /opt/alfresco/tomcat/webapps/share/WEB-INF/classes/alfresco/site-webscripts/org/alfresco/share/header/share-header.get.js
Y he añadido al final widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_MY_FILES"); 
Quedadno el fichero asi:
<import resource="classpath:/alfresco/site-webscripts/org/alfresco/share/imports/share-header.lib.js">

model.jsonModel = {
   rootNodeId: "share-header",
   services: getHeaderServices(),
   widgets: [
      {
         id: "SHARE_VERTICAL_LAYOUT",
         name: "alfresco/layout/VerticalWidgets",
         config:
         {
            widgets: getHeaderModel()
         }
      }
   ]
};
widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_MY_FILES");
widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_MY_FILES");
widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_REPOSITORY");
widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_PEOPLE");
widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_SITES_MENU");
widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_HOME");

Reinicio Alfresco y desaparece My files pero no todo lo demas, imagino que me estoy dejando de hacer algo  pero me falta un empujon para entender como funciona, lo agradezco.
tcendros
Member II

Re: Tcendros

El codigo funciona !!!!