diff --git a/ConfigForm.ps1 b/ConfigForm.ps1 new file mode 100644 index 0000000..ee8495a --- /dev/null +++ b/ConfigForm.ps1 @@ -0,0 +1,24 @@ +Add-Type -AssemblyName System.Windows.Forms + +$configForm = New-Object System.Windows.Forms.Form +$configForm.Text = "SharePoint Configuration" +$configForm.Size = New-Object System.Drawing.Size(400,300) + +# Add controls for all configuration fields +$lblSiteUrl = New-Object System.Windows.Forms.Label +$lblSiteUrl.Text = "Site URL:" +$lblSiteUrl.Location = New-Object System.Drawing.Point(20,20) + +$txtSiteUrl = New-Object System.Windows.Forms.TextBox +$txtSiteUrl.Location = New-Object System.Drawing.Point(20,40) +$txtSiteUrl.Size = New-Object System.Drawing.Size(340,20) + +$btnSave = New-Object System.Windows.Forms.Button +$btnSave.Text = "Save" +$btnSave.Add_Click({ + Save-Config -SiteUrl $txtSiteUrl.Text -ProductionLibrary "Documents" -TempLibrary "Documents/Temp" -ClientId "" -ClientSecret "" + $configForm.Close() +}) + +$configForm.Controls.AddRange(@($lblSiteUrl, $txtSiteUrl, $btnSave)) +$configForm.ShowDialog() diff --git a/MainForm.ps1 b/MainForm.ps1 index 981288e..0fc7f87 100644 --- a/MainForm.ps1 +++ b/MainForm.ps1 @@ -11,6 +11,15 @@ $form.Text = "SharePoint XLS Converter" $form.Size = New-Object System.Drawing.Size(600,400) # Add controls +$txtSiteUrl = New-Object System.Windows.Forms.TextBox +$txtSiteUrl.Location = New-Object System.Drawing.Point(20,120) +$txtSiteUrl.Size = New-Object System.Drawing.Size(200,20) + +$btnSaveConfig = New-Object System.Windows.Forms.Button +$btnSaveConfig.Location = New-Object System.Drawing.Point(230,120) +$btnSaveConfig.Size = New-Object System.Drawing.Size(80,20) +$btnSaveConfig.Text = "Save Config" + $btnList = New-Object System.Windows.Forms.Button $btnList.Location = New-Object System.Drawing.Point(20,20) $btnList.Size = New-Object System.Drawing.Size(120,30) @@ -35,6 +44,13 @@ $txtStatus.Size = New-Object System.Drawing.Size(540,280) $txtStatus.Multiline = $true $txtStatus.ScrollBars = "Vertical" $form.Controls.Add($txtStatus) +$form.Controls.Add($txtSiteUrl) +$form.Controls.Add($btnSaveConfig) + +# Load configuration +if (-not (Load-Config)) { + [System.Windows.Forms.MessageBox]::Show("Configuration missing! Please enter settings.") +} # Attach event handlers $btnList.Add_Click({ List-XlsFiles }) diff --git a/SharePointFunctions.ps1 b/SharePointFunctions.ps1 index 71468ca..0b8ccff 100644 --- a/SharePointFunctions.ps1 +++ b/SharePointFunctions.ps1 @@ -1,7 +1,43 @@ +$configPath = Join-Path $PSScriptRoot "config.json" + +function Load-Config { + if (Test-Path $configPath) { + try { + $script:config = Get-Content $configPath | ConvertFrom-Json + $script:txtSiteUrl.Text = $config.SiteUrl + return $true + } + catch { + Write-Error "Invalid config file: $_" + return $false + } + } + return $false +} + +function Save-Config { + param( + [string]$SiteUrl, + [string]$ProductionLibrary, + [string]$TempLibrary, + [string]$ClientId, + [string]$ClientSecret + ) + + $config = @{ + SiteUrl = $SiteUrl + ProductionLibrary = $ProductionLibrary + TempLibrary = $TempLibrary + ClientId = $ClientId + ClientSecret = $ClientSecret + } + + $config | ConvertTo-Json | Set-Content $configPath +} + function Connect-SharePoint { - param($SiteUrl) try { - Connect-PnPOnline -Url $SiteUrl -UseWebLogin + Connect-PnPOnline -Url $config.SiteUrl -ClientId $config.ClientId -ClientSecret $config.ClientSecret return $true } catch { @@ -11,14 +47,14 @@ function Connect-SharePoint { } function List-XlsFiles { - if (-not (Connect-SharePoint -SiteUrl "https://yoursite.sharepoint.com")) { + if (-not (Connect-SharePoint)) { return } - $tempLibrary = "Documents/Temp" + $tempLibrary = $config.TempLibrary $fileList = @() - $items = Get-PnPListItem -List "Documents" -PageSize 2000 | Where { + $items = Get-PnPListItem -List $config.ProductionLibrary -PageSize 2000 | Where { ($_.FieldValues.FileRef -like "*.xls") -and (-not $_.FieldValues.FileRef.Contains(".xlsx")) } diff --git a/config.json b/config.json new file mode 100644 index 0000000..de0afac --- /dev/null +++ b/config.json @@ -0,0 +1,7 @@ +{ + "SiteUrl": "https://yoursite.sharepoint.com/sites/yoursite", + "ProductionLibrary": "Documents", + "TempLibrary": "Documents/Temp", + "ClientId": "your-client-id", + "ClientSecret": "your-client-secret" +}