function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
EvaDEvaD 

Collapse Page Block Sections by Default - solved

My issue solved!

 

I want to collapse all Page Block sections by default on page open.

I can write code in a VF Page, but I get cross site scripting errors.

 

Create a Static Resource using JavaScript to accomplish the default collapse:

 

function twistSection(twisty, sectionId) {
    //twistSection code from salesforce.com
   var parentDiv = twisty;
   while (parentDiv.tagName != 'DIV') { parentDiv = parentDiv.parentNode; }
   var headerId = sectionId || (parentDiv.id.split('_'))[1];
   var div = parentDiv.nextSibling;
   var elemWasOn = false;
   if (div.style.display != 'none') {
       div.style.display = 'none';
       twisty.className ='showListButton';
       twisty.alt = twisty.title = 'Show Section - '+twisty.name;
       elemWasOn = true;
   }
}

var registeredSections = new Array();
function registerTwistableSection(headerId, mainTableId) {
   var obj = new Object();
   obj.headerId = headerId;
   obj.mainTableId = mainTableId;
   registeredSections[registeredSections.length] = obj;

   for (var i = 0; i < registeredSections.length; i++) {
      var obj = registeredSections[i];
      
      var img = parent.document.getElementById("img_" + obj.headerId);
        //go right into twistSection if we have the img obj.
       if(img){
       if (img.className =='hideListButton') {
         twistSection(img, obj.headerId, obj.mainTableId);
       }
   }
}
}
function registerTwistableSections_ep() {
//these are the sections I know about from viewing source code...
registerTwistableSection('01B30000003osTc', 'ep');
registerTwistableSection('01B30000003osTd', 'ep');
registerTwistableSection('01B30000003osTe', 'ep');
registerTwistableSection('01B30000003osTg', 'ep');
registerTwistableSection('01B30000003osTh', 'ep');
registerTwistableSection('01B30000003osTi', 'ep');
registerTwistableSection('01B30000003osTj', 'ep');
registerTwistableSection('01B30000003osTk', 'ep');
}
registerTwistableSections_ep();

 

Now for the cross site scripting hack:

Found this in another post and am so thrilled that it works:

 

1.  Create a Custom Homepage Component that is HTML, refer to your Static Resource code:

 

<script src="/resource/1284395872000/pageBlockSupplement" type="text/javascript"></script>

 

 

2.  Make sure this component is included on the Home Pages layouts.  It is invisible, so you don't have to worry about it.

 

Best Answer chosen by Admin (Salesforce Developers) 
EvaDEvaD

Since we use the Messages & Alerts homepage component, I just added the script call there.  Now it is invisible, instead of showing up as a component title with no content on the side.

 

<script src="/resource/1284395872000/pageBlockSupplement" type="text/javascript"></script>