SharePoint JavaScript On Demand SPSOD
http://www.ilovesharepoint.com/2010/08/sharepoint-scripts-on-demand-spsod.html
Update:
If you want to modify Item’s ECB Menu, please do not make a copy of core.js.
Change
<SharePoint:ScriptLink language="javascript" name="core.js" OnDemand="true" runat="server"/>
->
<SharePoint:ScriptLink language="javascript" name="core.js" OnDemand="false" runat="server"/>
Add another webpart at the end of the page, override the “AddCheckinCheckoutMenuItem” (for hiding “Publish a Major Version”)
function AddCheckinCheckoutMenuItem(m, ctx, url)
{ULSsa6:;
var menuOption;
if(!HasRights(0x0, 0x4))
return;
if (currentItemCheckedOutUserId==SYSTEM_ACCOUNT_ID && ctx.CurrentUserId !=SYSTEM_ACCOUNT_ID)
return;
if (currentItemCheckedOutUserId==null)
currentItemCheckedOutUserId=itemTable.getAttribute("COUId");
if (currentItemCheckedOutUserId !="")
{
if(currentItemCheckedOutUserId==ctx.CurrentUserId
|| ctx.CurrentUserId==null
|| HasRights(0x0, 0x100))
{
strDisplayText=L_Checkin_Text;
if (!FV4UI() || ctx.listTemplate==109)
strAction="NavigateToCheckinAspx('"+ctx.HttpRoot+"', 'List="+ctx.listName+"&FileName="+url+"')";
else
strAction="CheckInSingleItemFromECB_Stub(event, currentCtx, itemTable)";
strImagePath=ctx.imagesPath+"checkin.gif";
menuOption=CAMOpt(m, strDisplayText, strAction, strImagePath, null, 300);
menuOption.id="ID_Checkin";
CUIInfo(menuOption, "CheckIn", ["CheckIn"]);
strDisplayText=L_DiscardCheckou_Text;
strAction="UnDoCheckOutwithNotification('"+ctx.HttpRoot+"', '"+url+"')";
strImagePath=ctx.imagesPath+"unchkout.gif";
menuOption=CAMOpt(m, strDisplayText, strAction, strImagePath, null, 310);
menuOption.id="ID_DiscardCheckou";
CUIInfo(menuOption, "DiscardCheckOut", ["DiscardCheckOut"]);
}
}
else if(typeof(g_disableCheckoutInEditMode)=="undefined" || !g_disableCheckoutInEditMode)
{
strDisplayText=L_Checkout_Text;
if (currentItemOpenControl=="")
setDocType();
var opencontrol="";
if (ctx.listTemplate !=109)
opencontrol=currentItemOpenControl+".3";
var serverFileRedirect=itemTable.getAttribute("SRed");
if(serverFileRedirect==null || serverFileRedirect=="" || HasRights(0x0, 0x20))
{
if (!FV4UI() || ctx.listTemplate==109)
strAction="CheckoutDocument('"+ctx.HttpRoot+"', '"+url+"', '"+opencontrol+"')";
else
strAction="CheckoutSingleItemFromECB(currentCtx, itemTable)";
strImagePath=ctx.imagesPath+"checkout.gif";
menuOption=CAMOpt(m, strDisplayText, strAction, strImagePath, null, 300);
menuOption.id="ID_Checkout";
CUIInfo(menuOption, "CheckOut", ["CheckOut"]);
}
if (currentItemModerationStatus==null)
currentItemModerationStatus=GetAttributeFromItemTable(itemTable, "MS", "MStatus");
if (ctx.EnableMinorVersions)
{
if (currentItemUIString==null)
currentItemUIString=GetAttributeFromItemTable(itemTable, "UIS", "UIString");
var minorversion=currentItemUIString%512;
if ((((currentItemModerationStatus==1) ||
(currentItemModerationStatus==3)) &&
ctx.isModerated) ||
(!ctx.isModerated && minorversion !=0))
{
/*strDisplayText=L_PublishItem_Text;
strAction="PublishMajorVersion(event, '"+ctx.HttpRoot+"', 'List="+ctx.listName+"&FileName="+url+"&Publish=true')";
strImagePath=ctx.imagesPath+"pubmajor.gif";
menuOption=CAMOpt(m, strDisplayText, strAction, strImagePath, null, 320);
CUIInfo(menuOption, "Publish", ["Publish"]);
menuOption.id="ID_PublishItem";*/
}
else
{
var strMenuOptionId;
var bCancelApproval=false;
if ((!ctx.isModerated) || (currentItemModerationStatus==0))
{
strDisplayText=L_UnPublishItem_Text;
strMenuOptionId="ID_UnPublishItem";
strImagePath=ctx.imagesPath+"unpub.gif";
}
else
{
strDisplayText=L_CancelPublish_Text;
strMenuOptionId="ID_CancelPublish";
strImagePath=ctx.imagesPath+"unapprv.gif";
bCancelApproval=true;
}
strAction="UnPublish('"+ctx.HttpRoot+"', 'FileName="+url+"&UnPublish=true',"+bCancelApproval+")";
menuOption=CAMOpt(m, strDisplayText, strAction, strImagePath, null, 330);
if (bCancelApproval)
CUIInfo(menuOption, "CancelApproval", ["CancelApproval"]);
else
CUIInfo(menuOption, "Unpublish", ["Unpublish"]);
menuOption.id=strMenuOptionId;
}
}
}
}
Thanks ILoveSharePoint.
Comments
Post a Comment