Registros borrados en el Dashlet Mis Actividades

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

Registros borrados en el Dashlet Mis Actividades

Hola todos,

Por favor me podrían ayudar con el siguiente caso:

1. Ingreso al Alfresco y realizo la visualización y descarga de un documento.
2. Visualizo en el dashlet "Mis Actividades" las acciones mencionadas en el primer punto.
3. Pasa algunos minutos y las actividades desaparecen del dashlet, sin ninguna causa o acción realizada.
4. El dashlet "Mis Actividades" quedá vacío.

Por favor alguno sabe a qué se debe esto?.

Muchas Gracias de antemano por su tiempo.

Saludos.
4 Replies
angelborroy
Alfresco Employee

Re: Registros borrados en el Dashlet Mis Actividades

Es un comportamiento anómalo. ¿Hay algún error en las trazas (alfresco.log / catalina.out)?
Hyland Developer Evangelist
joseph
Active Member II

Re: Registros borrados en el Dashlet Mis Actividades

Hemos realizado una configuración personalizada en share, en la cual solo se muestra las actividades del mismo usuario.

Gracias.
joseph
Active Member II

Re: Registros borrados en el Dashlet Mis Actividades

Hemos detectado que el problema se produciría por la gran cantidad de actividades que se guardan en la base de datos de Alfresco cada vez que un usuario realiza una actividad (visualizar y descargar un documento, principalmente). Tenemos 5867 usuarios y aproximadamente 80 actividades por hora. En un ambiente de preproducción con muy pocos usuarios, el dashlet funciona con normalidad, registrando activididades de hasta hace 28 días.

La configuración hecha para mostrar solo las actividades del mismo usuario es:

src/main/resources/META-INF/customizations/components/dashlets/custom-activities.js

var CustomActivities = CustomActivities || {};

(function(){
   var PREFERENCES_ACTIVITIES = "org.alfresco.share.activities",
   PREF_FILTER = ".filter",
   PREF_RANGE = ".range",
   PREF_ACTIVITIES = ".activities";
   var Dom = YAHOO.util.Dom;
    var $html = Alfresco.util.encodeHTML;
    var $userProfile = Alfresco.util.userProfileLink;   
    CustomActivities.Activities = function CustomActivities_constructor(htmlId) {
       CustomActivities.Activities.superclass.constructor.call(this, htmlId);
      return this;
   };
   
   YAHOO.extend(CustomActivities.Activities, Alfresco.dashlet.Activities, {
      onReady: function CustomActivities_onReady() {
            var me = this;
           
            // Create dropdown filter widgets
            this.widgets.range = Alfresco.util.createYUIButton(this, "range", this.onDateFilterChanged,
            {
               type: "menu",
               menu: "range-menu",
               lazyloadmenu: false
            });
           
            this.widgets.user = Alfresco.util.createYUIButton(this, "user", this.onExclusionFilterChanged,
            {
               type: "menu",
               menu: "user-menu",
               lazyloadmenu: false
            });
           
            this.widgets.activities = Alfresco.util.createYUIButton(this, "activities", this.onActivitiesFilterChanged,
            {
               type: "menu",
               menu: "activities-menu",
               lazyloadmenu: false
            });
           
            // The activity list container
            this.activityList = Dom.get(this.id + "-activityList");
           
            // Load preferences to override default filter and range
            this.widgets.range.set("label", this.msg("filter.7days"));
            this.widgets.range.value = "7";
           

//            Sirve para que el botón por defecto sea "Mis Actividades"
//            this.widgets.user.set("label", this.msg("filter.all"));
            this.widgets.user.set("label", this.msg("filter.mine"));
            this.widgets.user.value = "mine";

           
            this.widgets.activities.set("label", this.msg("filter.allItems") + " " + Alfresco.constants.MENU_ARROW_SYMBOL);
            this.widgets.activities.value = "";

            var prefs = this.services.preferences.get();
            var activitiesPreference = Alfresco.util.findValueByDotNotation(prefs, this.buildPreferences(PREF_ACTIVITIES), "");
            if (activitiesPreference !== null)
            {
               this.widgets.activities.value = activitiesPreference;
               // set the correct menu label
               var menuItems = this.widgets.activities.getMenu().getItems();
               for (index in menuItems)
               {
                  if (menuItems.hasOwnProperty(index))
                  {
                     if (menuItems[index].value === activitiesPreference)
                     {
                        this.widgets.activities.set("label", menuItems[index].cfg.getProperty("text") + " " + Alfresco.constants.MENU_ARROW_SYMBOL);
                        break;
                     }
                  }
               }
            }
           
            var rangePreference = Alfresco.util.findValueByDotNotation(prefs, this.buildPreferences(PREF_RANGE), "7");
            if (rangePreference !== null)
            {
               this.widgets.range.value = rangePreference;
               // set the correct menu label
               var menuItems = this.widgets.range.getMenu().getItems();
               for (index in menuItems)
               {
                  if (menuItems.hasOwnProperty(index))
                  {
                     if (menuItems[index].value === rangePreference)
                     {
                        this.widgets.range.set("label", menuItems[index].cfg.getProperty("text") + " " + Alfresco.constants.MENU_ARROW_SYMBOL);
                        break;
                     }
                  }
               }
            }
           
//            var filterPreference = Alfresco.util.findValueByDotNotation(prefs, this.buildPreferences(PREF_FILTER), "all");
//            if (filterPreference !== null)
//            {
//               this.widgets.user.value = filterPreference;
//               // set the correct menu label
//               var menuItems = this.widgets.user.getMenu().getItems();
//               for (index in menuItems)
//               {
//                  if (menuItems.hasOwnProperty(index))
//                  {
//                     if (menuItems[index].value === filterPreference)
//                     {
//                        this.widgets.user.set("label", menuItems[index].cfg.getProperty("text") + " " + Alfresco.constants.MENU_ARROW_SYMBOL);
//                        break;
//                     }
//                  }
//               }
//            }
           
            // Display the toolbar now that we have selected the filter
            Dom.removeClass(Selector.query(".toolbar div", this.id, true), "hidden");
            // Populate the activity list
            this.populateActivityList(this.widgets.range.value, this.widgets.user.value, this.widgets.activities.value);         
      }
   });
})();


src/main/amp/config/alfresco/web-extension/site-webscripts/xx/xxxx/components/dashlets/my-activities.get.js

model.widgets[0].name = "CustomActivities.Activities";


src/main/amp/config/alfresco/web-extension/site-webscripts/xx/xxxx/components/dashlets/my-activities.get.html.ftl


<@markup id="mis-actividades-por-defecto-js" action="after" target="js" scope="global">

   <@script type="text/javascript" src="${url.context}/res/customizations/components/dashlets/custom-activities.js" group="dashlets"/>
   
</@markup>

<@markup id="mis-actividades-por-defecto-html" action="replace" target="html" scope="global">
   <@uniqueIdDiv>
      <#assign id = args.htmlid>
      <div class="dashlet activities">
         <div class="title">${msg("header")}</div>
         <div class="toolbar flat-button">
            <div class="hidden">
               <span class="align-left yui-button yui-menu-button" id="${id}-user">
                  <span class="first-child">
                     <button type="button" tabindex="0"></button>
                  </span>
               </span>
              
              
              
               <select id="${id}-user-menu">
              
               <#–
              
               <#list filterTypes as filter>
                  <option value="${filter.type?html}">${msg("filter." + filter.label)}</option>
               </#list>
              
               –>
              
               </select>
              
              
              
               <span class="align-left yui-button yui-menu-button" id="${id}-activities">
                  <span class="first-child">
                     <button type="button" tabindex="0"></button>
                  </span>
               </span>
               <select id="${id}-activities-menu">
               <#list filterActivities as filter>
                  <option value="${filter.type?html}">${msg("filter." + filter.label)}</option>
               </#list>
               </select>
               <span class="align-left yui-button yui-menu-button" id="${id}-range">
                  <span class="first-child">
                     <button type="button" tabindex="0"></button>
                  </span>
               </span>
               <select id="${id}-range-menu">
               <#list filterRanges as filter>
                  <option value="${filter.type?html}">${msg("filter." + filter.label)}</option>
               </#list>
               </select>
               <div class="clear"></div>
            </div>
         </div>
         <div id="${id}-activityList" class="body scrollableList" <#if args.height??>style="height: ${args.height?html}px;"</#if>></div>
      </div>
     
      <#– Empty results list template –>
      <div id="${id}-empty" style="display: none">
         <div class="empty"><h3>${msg("empty.title")}</h3><span>${msg("empty.description")}</span></div>
      </div>
   </@>
</@markup>



En esta página: http://blogs.alfresco.com/wp/kevinr/2014/10/14/configuring-alfresco-activity-stream/ mencionan que es posible desactivar el flujo de los tipos de actividades de un usuario. Sin embargo, no es lo que necesitamos, ya que se desactivarían todas las actividades, deseamos que a un usuario solo le llegue el flujo de sus propias actividades, es decir, que cada vez que un usuario vea un documento, no le lleguen 5867 actividades, sino ninguna y que solo le llegue una actividad cuando el mismo usuario vea un documento.

Por cierto, ¿existe alguna forma de configurar el archivo my-activities.get.config.xml desde un AMP y no desde tomcat/shared/classes/alfresco/web-extension?

Gracias por su ayuda.
angelborroy
Alfresco Employee

Re: Registros borrados en el Dashlet Mis Actividades

En relación a la configuración del archivo, si lo colocas en un amp-share por defecto de la SDK 2.1 la ruta adecuada es
/amp-share/src/main/amp/config/alfresco/web-extension/site-webscripts/org/alfresco/components/dashlets/my-activities.get.config.xml
Hyland Developer Evangelist