Tuesday, 15 April 2014

Expand Collapse functionality in SharePoint 2010 for connected web parts

We had an issue in SharePoint 2010 Connected web parts. 
It states when 2 web parts are connected and source web part is set to group by mode, despite of setting it to collapse mode, It comes in expanded mode.
All are expanded

 I have written below code to collapse all and only checked item is expanded by default.

 <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>

<script>
//<input onclick="maintainState()" type="button" value="Maintain State"/>

$( document ).ready(function() {
        //console.log( "ready!" );
        //applyExpCol();

//setTimeout(maintainState(),10000);       
    });
 
 
  function applyExpCol()
  {
      $("img[src='/_layouts/images/minus.gif']").each(function() {
        //console.log($(this).parent().html());
        $(this).parent().click();
       
        });
     
      var tracker =  true;
      var source = $(".ms-vb2 img[alt='Selected']").parent().parent().parent().prev();
      $(".ms-vb2 img[alt='Selected']").addClass("inforceFocus");
      if(source.length > 0)
      {
          var currentnode = source;
          while(tracker)
          {   
            var previousnode = currentnode.prev();
            currentnode = previousnode;
            if(previousnode.prop("groupString"))
            {       
                //console.log("Entered " + $(previousnode).find('a').addClass("test","test").html());
                $(previousnode).find('a').addClass("targetNotch");
                tracker = false;
            }   
          }
     
          tracker =  true;
          var source = $(".ms-vb2 img[alt='Selected']").parent().parent().parent().prev();
          var currentnode = source;
          while(tracker)
          {
            var previousnode = currentnode.prev();
            var prepreviousnode = currentnode.prev().prev();
            currentnode = previousnode;
            if(previousnode.prop("groupString") && prepreviousnode.prop("groupString"))
            {       
                //console.log("Entered " + $(previousnode).find('a').addClass("test","test").html());
                $(prepreviousnode).find('a:first').addClass("targetNotch");
                tracker = false;
            }   
          }
     
      }
      else
      {   
        $("#nostate").html("Nothing is selected!");
      }
  }

function maintainState()
  {
    applyExpCol();
    $('.targetNotch').click();
    if($(".inforceFocus").length > 0)
    {
        $(".inforceFocus").parent().focus();
    }
  }

function collapseall()
{
$("img[src='/_layouts/images/minus.gif']").each(function() {
        //console.log($(this).parent().html());
        $(this).parent().click();
       
        });

}
  </script>
  <!--<input onclick="maintainState()" type="button" value="Maintain State"/> <span id="nostate">Nothing is selected!</span>-->
  <script>_spBodyOnLoadFunctionNames.push("maintainState");</script>


No comments:

Post a Comment