La marca de privado por defecto "Crear un sitio"

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

La marca de privado por defecto "Crear un sitio"

Buenas tardes a tod@s,

 

Ahora estoy realizando un desarrollo de personalización de la nueva versión de alfresco 5.2, veo algunos códigos que son muy distintos que los de alfresco 4.2f.  

El problema que tengo es el siguiente: quiero cambiar  la marca de publico que estaba ya definida por defecto por la marca de privado para que aparezca la marca privado por defecto en la ventana de "crear un sitio". 

 

Hace tres años más o menos lo modifiqué en el archivo de "create-sitie.get.html.ftl" de alfresco 4.2 y sí funcionaba:

 

<input id="${el}-isPrivate" type="radio" checked="checked" tabindex="0" name="-" /> <label for="${el}-isPrivate">${msg("label.isPrivate")}</label>

 

Ahora he probado a modificarlo en el mismo archivo de alfresco 5.2, pero no funciona porque no me deja poner  la marca de privado por defecto. He querido probar a quitar directamente los archivos de "crear-sitie.xxxx" para ver si no se aparece la ventana de "Crear un sitio", sin embargo, al final sí que aparece, ¿cómo? no lo entiendo :-/

 

He leído un blog https://community.alfresco.com/community/ecm/blog/2016/11/23/create-and-edit-site-customization  pero no explica exactamente lo que quiero.

Agradecería que si alguien sabe cómo hacerlo me lo pudiera indicar o referenciarme a otra web en la que se explique la solución al problema que he señalado más arriba en negrita.

 

Muchas gracias

9 Replies
cesarista
Customer

Re: La marca de privado por defecto "Crear un sitio"

Hola:

En mi caso esa customización la realicé extendiendo el fichero create-site.js (que está originalmente por debajo del WEB-INF de share):

/opt/alfresco512/tomcat/shared/classes/alfresco/web-extension/site-webscripts/org/alfresco/modules/create-site.js

y cambiando la siguente variable a:

model.defaultVisibility = "PRIVATE";

Saludos.

--C.

fjsobrino
Active Member

Re: La marca de privado por defecto "Crear un sitio"

Hola Cesar,

Muchas gracias por responderme rápido, ayer y hoy he probado lo que has comentado pero tampoco funciona.
Quiero explicarte lo que he hecho:

1- He creado el siguiente fichero XML de nombre "create-site-extensions.xml" y también he creado el directorio: C:\Alfresco\tomcat\webapps\share\WEB-INF\classes\alfresco\web-extension\site-data\extensions\create-site-extensions.xml

<extension>
   <modules>
      <module>
         <id>Create site private</id>
         <version>1.0</version>
          <auto-deploy>true</auto-deploy>
          <customizations>
            <customization>
                  <targetPackageRoot>org.alfresco.modules</targetPackageRoot>
                  <sourcePackageRoot>org.alfresco.create.modules</sourcePackageRoot>
            </customization>
          </customizations>
      </module>
      </modules>
</extension>

2- He comprobado con http://localhost:8080/share/page/modules/deploy y me ha salido "Create site private (Version 1.0)"

3- He creado el fichero personalizado "create-site.get.js", el directorio: C:\Alfresco\tomcat\webapps\share\WEB-INF\classes\alfresco\web-extension\site-webscripts\org\alfresco\create\modules\create-site.get.js y he cambiado la variable "PUBLIC" por "PRIVATE"

var sitePresets = [{id: "site-dashboard", name: msg.get("title.collaborationSite")}];
model.sitePresets = sitePresets;

model.defaultVisibility = "PRIVATE";

Al final, desafortunadamente, no selecciona la opción de privado por defecto en la ventana de "crear un sitio".

No sé si me faltaría algún paso adicional.

Muchas gracias.

douglascrp
Advanced II

Re: La marca de privado por defecto "Crear un sitio"

Following the blog post you shared, I started looking at the documentation and I found the widget id you need to change is CREATE_SITE_FIELD_VISIBILITY in the widgetsForCreateSiteDialog array 

Search for the ids here JSDoc: Source: services/SiteService.js 

You will see how they are defined, and following the blog post, you will be able to apply the techniques required to change that.

fjsobrino
Active Member

Re: La marca de privado por defecto "Crear un sitio"

Hi Douglas

Thanks for replying very fast, yesterday and today I tried what you said but it does not work.

But I read a blog https://community.alfresco.com/community/ecm/blog/2016/11/23/create-and-edit-site-customization  but I don´t understand it well because it does not explain it exactly.

I want to explain you what I did:

1- I downloaded a  java file "HeaderCustomization.jar", a pre-built extension from:  Alfresco-Share-Extensions/HeaderCustomization.jar at master · draperd/Alfresco-Share-Extensions · Gi... and I kept it in the directory: C:\Alfresco\tomcat\webapps\share\WEB-INF\classes\alfresco\web-extension\HeaderCustomization\HeaderCustomization.jar

2- I created the following XML file named "share-header-customization.xml" and I also created the directory C:\Alfresco\tomcat\webapps\share\WEB-INF\classes\alfresco\web-extension\HeaderCustomization\alfresco\site-data\extensions\share-header-customization.xml

<extension>
  <modules>
    <module>
      <id>Share Header Customization</id>
      <auto-deploy>true</auto-deploy>
      <evaluator type="default.extensibility.evaluator"/>
      <customizations>
        
         <!-- Target the header in legacy Share pages -->
         <customization>
            <targetPackageRoot>org.alfresco</targetPackageRoot>
            <sourcePackageRoot>org.alfresco.share.pages.customizations</sourcePackageRoot>
         </customization>

         <!-- Target full Aikau Share pages -->
         <customization>
           <targetPackageRoot>org.alfresco.share.pages</targetPackageRoot>
           <sourcePackageRoot>org.alfresco.share.pages.customizations.share.header</sourcePackageRoot>
           <alwaysApply>
             <webscript>share-header</webscript>
           </alwaysApply>
         </customization>
      </customizations>
    </module>
  </modules>
</extension>‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

3- I checked it with http://localhost:8080/share/page/modules/deploy and it got "default.extensibility.evaluator"

4- I created the customized file "share-header.get.js", the directory: C:\Alfresco\tomcat\webapps\share\WEB-INF\classes\alfresco\web-extension\site-webscripts\org\alfresco\share\pages\customizations\share\header\share-header.get.js and I put the new value:

value: "PRIVATE", ‍‍

/* global widgetUtils */
var siteService = widgetUtils.findObject(model.jsonModel, "id", "SITE_SERVICE");
if (siteService && siteService.config)
{
     siteService.config.widgetsForCreateSiteDialog = [
     {
        id: "CREATE_SITE_FIELD_VISIBILITY",
        name: "alfresco/forms/controls/RadioButtons",
        config: {
            fieldId: "VISIBILITY",
            label: "create-site.dialog.visibility.label",
            name: "visibility",
               value: "PRIVATE",
            optionsConfig: {
                fixed: [
                 {
                    label: "create-site.dialog.visibility.public",
                    description: "create-site.dialog.visibility.public.description",
                    value: "PUBLIC"
                 },
                 {
                    label: "create-site.dialog.visibility.moderated",
                    description: "create-site.dialog.visibility.moderated.description",
                    value: "MODERATED"
                 },
                 {
                    label: "create-site.dialog.visibility.private", 
                    description: "create-site.dialog.visibility.private.description",
                    value: "PRIVATE"
                 }
                ]
            }
        }
      }
     ];
}‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

I rebooted the server, at the end, unfortunately, it does not select the default private option in the "create a site" window. I don't know if maybe I am missing an additional step. Could you please help me?

Thank you so much

douglascrp
Advanced II

Re: La marca de privado por defecto "Crear un sitio"

You should try the Aikau tutorial in order to understand how it works.

Aikau/About.md at master · Alfresco/Aikau · GitHub 

Once you understand it, you will be able to do the change you need.

fjsobrino
Active Member

Re: La marca de privado por defecto "Crear un sitio"

Hi Douglas

 

Thanks for replying, I will read it later, Let's see if I am lucky. :-)

fjsobrino
Active Member

Re: La marca de privado por defecto "Crear un sitio"

Buenas tardes a todos,

He conseguido hacer funcionar!!, he pillado un problema de tontería, bueno he hecho lo mismo, paso a paso, de este blog "https://community.alfresco.com/community/ecm/blog/2016/11/23/create-and-edit-site-customization " solo lo he modificado en el archivo share-header.get.js, el directorio C:\Alfresco\tomcat\webapps\share\WEB-INF\classes\alfresco\site-webscripts\org\alfresco\share\pages\customizations\share\header\

/* global widgetUtils */
var siteService = widgetUtils.findObject(model.jsonModel, "id", "SITE_SERVICE");
if (siteService && siteService.config)
{
   siteService.config.widgetsForCreateSiteDialogOverrides = [
     {
        id: "CREATE_SITE_FIELD_VISIBILITY",
        name: "alfresco/forms/controls/RadioButtons",
        config: {
            fieldId: "VISIBILITY",
            label: "create-site.dialog.visibility.label",
            name: "visibility",
               value: "PRIVATE"
        }
     }
   ];
}

Reiniciar el servidor y funciona! ya esta!!

douglascrp
Advanced II

Re: La marca de privado por defecto "Crear un sitio"

Que bueno que funciona, pelo usted no debería poner el archivo en la carpeta Share.

Usted debería utilizar extension-module

fjsobrino
Active Member

Re: La marca de privado por defecto "Crear un sitio"

Ah vale vale, he sacado esos archivos y los he puesto en el directorio de Shared, funciona!!

Gracias por avisarme :-)