PowerShell/menu_example/menu_example.ps1

180 lines
4.6 KiB
PowerShell

# toko
<#
Opis
#>
# zmienne
$path_main = "C:\scripts\todolista"
$path_csv = "$($path_main)\todolista.csv"
$path_log = "$($path_main)\todolista.log"
$systemy = @(
"System 01",
"System 02",
"System 03",
"System 04"
)
$priorytety = @(
0,1,2,3
)
$tmp_task = [PSCustomObject]@{
id = $null
data_utworzenia = $null
system = $null
rfc_jira = $null
opis = $null
komentarz = $null
priorytet = $null
przypisano = $null
przewidziane_zamkniecie = $null
data_modyfikacji = $null
data_zamkniecia = $null
czas_trwania = $null
utworzony_przez = $null
modyfikowany_przez = $null
zakonczony_przez = $null
}
$menu = @(
"1. Wyświetl zadania",
"2. Dodaj zadanie",
"3. Wyświetl wszystkie zadania",
"Q. Zakończ skrypt"
)
$menu_01 = @(
"1. Wyświetl zadania ->"
" 1. Modyfikuj zadanie",
" 2. Zakończ zadanie",
" B. Powrót poziom wyżej"
)
$menu_02 = @(
"2. Dodaj zadanie ->"
" 1. Dodaj kolejne"
" B. Powrót"
)
$menu_03 = @(
"3. Wyświetl wszystkie zadania ->"
" B. Powrót"
)
# funckje
function main-menu {
do {
Clear-Host
$menu
$choice = Read-Host "Wybierz opcję"
switch ($choice) {
1 {
Get-zadania
}
2 {
Add-zadania
}
3 {
Get-WszystkieZadania
}
"Q" {
"Q. Zakończ skrypt ->"
" Zamykam..."
Start-Sleep 1
exit
}
Default {
Write-Host "Wybrano błędną opcję..."
Start-Sleep 1
}
}
} until (
$choice -in (1,2,3,"Q")
)
}
function Get-zadania {
do {
Clear-Host
"Tutaj wyświetlanie zadań"
$menu_01
$choice_01 = Read-Host "Wybierz opcję"
switch ($choice_01) {
1 { Modify-Zadania }
2 { Close-Zadania }
"B" { main-menu }
Default { Write-Host "Wybierz poprawną opcję"; Start-Sleep 1 }
}
} until (
$choice_01 -in (1,2,"B")
)
}
function Add-zadania {
do {
Clear-Host
"Tutaj dodajemy zadanie"
$menu_02
$choice_02 = Read-Host "Wybierz opcję"
switch ($choice_02) {
1 { Add-zadania }
"B" { main-menu }
Default { Write-Host "Wybierz poprawną opcję"; Start-Sleep 1 }
}
} until (
$choice_02 -in (1,"B")
)
}
function Get-WszystkieZadania {
do {
Clear-Host
"Tutaj wyświetlanie wszystkich zadań"
$menu_03
$choice_03 = Read-Host "Wybierz opcję"
switch ($choice_03) {
"B" { main-menu }
Default { Write-Host "Wybierz poprawną opcję"; Start-Sleep 1 }
}
} until (
$choice_03 -in ("B")
)
}
function Modify-Zadania {
$choice_modify = Read-Host "Podaj ID do modyfikacji"
"Tutaj funkcja od modyfikacji wskazanego ID"
Start-Sleep 1
Get-zadania
}
function Close-Zadania {
$choice_modify = Read-Host "Podaj ID do zamknięcia"
"Tutaj funkcja od zamknięcia wskazanego ID"
Start-Sleep 1
Get-zadania
}
function przewidziane_zamkniecie {
param (
[int]$priorytet
)
$tmp = ((get-date $tmp_task.data_utworzenia).AddDays($priorytet * 7)).ToString("yyyy-MM-dd")
return $tmp
}
# skrypt
if (-not (Test-Path -path $path_csv)) {
$tmp_task.id = 1
$tmp_task.data_utworzenia = (Get-Date).ToString("yyyy-MM-dd")
$tmp_task.system = $systemy[0]
$tmp_task.rfc_jira = "123456"
$tmp_task.opis = "Przykładowy opis"
$tmp_task.komentarz = "Przykładowy komentarz"
$tmp_task.priorytet = $priorytety[0]
$tmp_task.przypisano = $env:USERNAME
$tmp_task.przewidziane_zamkniecie = przewidziane_zamkniecie
$tmp_task.data_modyfikacji = (Get-Date).ToString("yyyy-MM-dd")
$tmp_task.data_zamkniecia = (Get-Date).ToString("yyyy-MM-dd")
$tmp_task.czas_trwania = 0
$tmp_task.utworzony_przez = $env:USERNAME
$tmp_task.modyfikowany_przez = $env:USERNAME
$tmp_task.zakonczony_przez = $env:USERNAME
$tmp_task | Export-Csv -Path $path_csv -NoTypeInformation -Encoding utf8 -Force
}
main-menu