Details

    • Type: Service Pack Request
    • Status: Closed
    • Resolution: Not a bug
    • Affects Version/s: 4.2.7, 5.1.3, 5.2.1
    • Fix Version/s: None
    • Labels:
      None
    • Environment:
      ACS 5.1.N/5.2.1.N, Tomcat, Any DB
    • Bug Priority:
      Category 3
    • ACT Numbers:

      00911132

    • Premier Customer:
      Yes

      Description

      Summary

      Based on the documentation the use of the labelParam in indicator configuration should override the status message (i.e. label) when rolling over the indicator icon in the document library views.

      This fails to work.

      Replication Steps

      • add the following to <web-extension>/custom-slingshot-application-context.xml
        note: testing add indicator for ootb versionable aspect
        <!-- custom evaluate using has aspect evaluator -->
        <bean id="evaluator.doclib.indicator.hasVersionable" parent="evaluator.doclib.metadata.hasAspect">
              <property name="aspects">
                 <list>
                    <value>cm:versionable</value>
                 </list>
              </property>
           </bean>
        
      • add the following to <web-extension>/share-config-custom.xml DocumentLibrary config

      note: reusing the exif-16.png icon for test purposes, else add new testMe-16.png to the "../share/components/documentlibrary/indicators/testme-16.png" and use use testme-16.png or leave out icon param it should use the <id>-16.png

         <config evaluator="string-compare" condition="DocumentLibrary" replace="true">
      . . .
      <indicators>
            <indicator id="testme" icon="exif-16.png" index="110">
          	     <evaluator>evaluator.doclib.indicator.hasVersionable</evaluator>
                   <labelParam index="0">Final Count Down</labelParam>
                  <labelParam index="1">{jsNode.properties.name}</labelParam>
                   <labelParam index="2">{jsNode.properties.cm_versionLabel}</labelParam> 
              </indicator> 
      </indicators>
      . . .
      

      Actual Behavior

      • On roll over of the indicator see
        status.testme
        

      Expected Behavior

      • On roll over of the indicator should see
        Final Count Down
        <node name>
        <version label>
        

      Additional Information

      Unsure if there is a configuration change for usage of labelParam or if this function every worked. But based on our own lock indicators it looks like we had been using it in past.

      This would be a regression, but I am unable to determine in which version this functionality changed. Tested 4.2.7, 5.1.N, 5.2.N ACS.

      • generation of label occurs in: documentlist-view-details.js; documentlist.js
      . . .
      
       /**
             * Status custom datacell formatter
             *
             * @method renderCellStatus
             * @param scope {object} The DocumentList object
             * @param elCell {object}
             * @param oRecord {object}
             * @param oColumn {object}
             * @param oData {object|string}
             */
            renderCellStatus: function DL_VR_renderCellStatus(scope, elCell, oRecord, oColumn, oData)
            {
               Dom.setStyle(elCell, "width", oColumn.width + "px");
               Dom.setStyle(elCell.parentNode, "width", oColumn.width + "px");
      
               var record = oRecord.getData(),
                  node = record.jsNode,
                  indicators = record.indicators,
                  indicator, label, desc = "";
      
               if (indicators && indicators.length > 0)
               {
                  for (var i = 0, ii = indicators.length; i < ii; i++)
                  {
                     indicator = indicators[i];
                     // Note: deliberate bypass of scope.msg() function
                     label = Alfresco.util.message(indicator.label, scope.name, indicator.labelParams);
                     label = Alfresco.util.substituteDotNotation(label, record);
      
                     desc += '<div class="status">';
                     
                     if (indicator.action)
                     {
                        desc += '<a class="indicator-action" data-action="' + indicator.action + '">';
                     }
                     
                     desc += '<img src="' + Alfresco.constants.URL_RESCONTEXT + 'components/documentlibrary/indicators/' + indicator.icon + '" title="' + $html(label) + '" alt="' + indicator.id + '" />';
                     if (indicator.action)
                     {
                        desc += '</a>';
                     }
                     desc += '</div>';
                  }
               }
      
               elCell.innerHTML = desc;
            },
      . . .
      
      • The Alfresco.util.messages should be defined in alfresco.js.
        note: it indicates third parameter 'mulitple' but does not seem to be handling it
        line 5766
        . . .
        /**
         * Resolve a messageId into a message.
         * If a messageScope is supplied, that container will be searched first, followed by the "global" message scope.
         * Note: Implementation follows single-quote quirks of server implementations whereby I18N messages containing
         *       one or more tokens must use two single-quotes in order to display one.
         *       See: http://download.oracle.com/javase/1.5.0/docs/api/java/text/MessageFormat.html
         *
         * @method Alfresco.util.message
         * @param p_messageId {string} Message id to resolve
         * @param p_messageScope {string} Message scope, e.g. componentId
         * @param multiple-values {string} Values to replace tokens with
         * @return {string} The localized message string or the messageId if not found
         * @throws {Error}
         * @static
         */
        Alfresco.util.message = function(p_messageId, p_messageScope)
        {
        . . .
        

      Overlay in the documentlist takes in three parameters:

      label = Alfresco.util.message(indicator.label, scope.name, indicator.labelParams);
      

      Aikau list pages look to be customizable with configuration https://dev.alfresco.com/resource/docs/aikau-jsdoc/Indicators.js.html, but this is not applicable to standard document list views (meaning only aikau faceted/search results rendered pages).

      Workaround would require overriding the function in the documentlist js files to create label as needed.

        Attachments

          Structure

            Activity

              People

              • Assignee:
                closedissues Closed Issues
                Reporter:
                jsoria Jennie Soria [X] (Inactive)
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Structure Helper Panel