$scriptDir = Split-Path $script:MyInvocation.MyCommand.Path
$configPath = "$($scriptDir)\configuration.ps1"
. $configPath
$xmlPath = "$($scriptDir)\MoveToArchive.xml"
$lists = @{
"MWI" = @{
"ACTIONID" = "{3285FA3D-623C-4805-96D7-A935387D0772}"
"COMMANDGUID" = "{128A01C7-9833-4DCE-9507-FAD14A0B0959}"
}
}
$jsFiles = @( "jquery-1.11.2.min.js", "handlebars-v3.0.0.js", "moment.min.js" )
function InstallCustomActions() {
$s = get-spsite $siteUrl
$w = $s.RootWeb
$xmlContent = [System.IO.File]::ReadAllText($xmlPath)
$len = $jsFiles.Length
for($i = 0; $i -lt $len; $i++){
$scriptlink = $w.UserCustomActions.Add()
$scriptlink.Location = "ScriptLink"
$scriptlink.Name = $jsFiles[$i]
$scriptlink.ScriptSrc = "/_layouts/nova.bhb.policies.archive/JS/" + $jsFiles[$i]
$scriptlink.Update()
}
foreach($listName in $lists.Keys){
$xmlStr = $xmlContent
foreach($idName in $lists[$listName].Keys){
$xmlStr = $xmlStr.Replace($idName, $lists[$listName][$idName])
}
$l = $w.Lists.TryGetList($listName)
if($l -eq $null){
$errMsg = "List $($listName) doesn't exist"
throw $errMsg
}
$actionUnlockPayment = $l.UserCustomActions.Add()
$actionUnlockPayment.Location = "CommandUI.Ribbon"
#$actionUnlockPayment.Rights = [Microsoft.SharePoint.SPBasePermissions]::EditListItems -bor [Microsoft.SharePoint.SPBasePermissions]::DeleteListItems
$actionUnlockPayment.Sequence = 100
$actionUnlockPayment.Title = "Move to the Archive"
$actionUnlockPayment.CommandUIExtension = $xmlStr
$actionUnlockPayment.Update()
}
}
function UninstallCustomActions() {
$s = get-spsite $siteUrl
$w = $s.RootWeb
$len = $jsFiles.Length
for($i = 0; $i -lt $len; $i++){
$w.UserCustomActions|?{$_.Name -eq $jsFiles[$i] }|% { $_ } |% {$_.Delete()}
}
foreach($listName in $lists.Keys){
$l = $w.Lists.TryGetList($listName)
if($l -eq $null){
$errMsg = "List $($listName) doesn't exist"
throw $errMsg
}
$l.UserCustomActions.Clear()
$l.Update()
}
}
Comments