Uploaded image for project: 'Service Packs and Hot Fixes'
  1. Service Packs and Hot Fixes
  2. MNT-15990

CLONE - Copy/Move dialog's default selection should fall back to a non-hidden view mode

    Details

      Description

      They found an error handling issue on 5.0.3 when users hide the "Recent Site" view mode. The Copy/Move dialog would still render the view instead of choosing to another view to render.

      [Steps to reproduce]

      1. In share-config-custom.xml, add the following under section <config evaluator="string-compare" condition="DocumentLibrary" replace="true"> to hide these views:

      
         <!-- Document Library config section -->
         <config evaluator="string-compare" condition="DocumentLibrary" replace="true">
      
      
      	  <hidden-picker-view-modes>
      		<mode>VIEW_MODE_SITE</mode>
      		<mode>VIEW_MODE_USERHOME</mode>
      		<mode>VIEW_MODE_RECENT_SITES</mode>
      		<mode>VIEW_MODE_FAVOURITE_SITES</mode>
      		<mode>VIEW_MODE_SHARED</mode>
      	  </hidden-picker-view-modes>
      
      ...
      
         </config>
      
      

      2. Start Alfresco and log into Share
      3. Click on either Copy or Move action of any file

      [Actual result]
      The Copy/Move dialog still try to show the "Recent Site" view but not expanding its path, i.e. rendering empty panels, see image "Copy and Move with Recent Site hidden.png" attached.

      [Expected result]
      The Copy/Move dialog triggers path expansion of the first visible view when the "Recent Site" view mode is hidden. It shouldn't try to render the "Recent Site" view.

      [Investigation]
      I noticed that the global-folder.js is trying to handle this but doesn't trigger the path expansion once the default selection has been changed:

      Original code

               for (var i = 0, ii = modeButtons.length; i < ii; i++)
               {
                  modeButton = modeButtons[i];
                  viewMode = parseInt(modeButton.get("name"), 10);
                  modeButton.set("disabled", !(viewMode in allowedViewModes));
                  modeButton.setStyle("display", viewMode in allowedViewModes ? "block" : "none");
                  if (viewMode == this.options.viewMode)
                  {
                     if (modeButton.get("checked"))
                     {
                        // Will trigger the path expansion
                        this.setViewMode(viewMode);
                     }
                     else
                     {
                        modeButton.set("checked", true);
                     }
                  }
               }
      

      The following change by bringing "this.setViewMode(viewMode);" out of the if statement seemed to have fixed the issue:

               for (var i = 0, ii = modeButtons.length; i < ii; i++)
               {
                  modeButton = modeButtons[i];
                  viewMode = parseInt(modeButton.get("name"), 10);
                  modeButton.set("disabled", !(viewMode in allowedViewModes));
                  modeButton.setStyle("display", viewMode in allowedViewModes ? "block" : "none");
                  if (viewMode == this.options.viewMode)
                  {
                     if (modeButton.get("checked"))
                     {
                     }
                     else
                     {
                        modeButton.set("checked", true);
                     }
                     // Will trigger the path expansion
                     this.setViewMode(viewMode);
                  }
               }
      
      

      See image "Copy and Move after proposed fix.png" after the proposed fix is in place.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                closedbugs Closed Bugs
                Reporter:
                ctan Craig Tan
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 2 hours, 30 minutes
                  2h 30m