Wednesday, September 15, 2010

Collapse Page Block Sections by Default - solved


This one is good I use this one in Salesforce.


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.

"

No comments: