Vlastní příkazy v hlavní nabídce
Umístěním příkazu do hlavní nabídky můžete uživatelům zpřístupnit často
používané stránky a operace, které nejsou vázané na konkrétní požadavek v ALVAO
Service Desk.
Příkazy se zobrazují v hlavní nabídce aplikací ALVAO
WebAp.
Příprava nového příkazu
V aplikaci vytvořte nový skript podle šablony IGeneralCommand a vhodně jej pojmenujte podle funkčnosti vlastního příkazu.
V nově vytvořeném skriptu nastavte v konstruktoru třídy příkazu hodnoty vlastností id, name, position a icon.
- id – číslo příkazu (jedinečné)
- name – název příkazu, který se bude zobrazovat v aplikacích
- position – pozice, na které se bude příkaz zobrazovat v aplikacích
- 1 = v hlavní nabídce pod systémovými příkazy
- 2 = v hlavní nabídce nad nabídkou Více
- 3 = v hlavní nabídce v nabídce Více nad systémovým příkazem Správa
- 4 = v nabídce uživatele nad systémovým příkazem Nastavení
- icon – název ikony příkazu
- Jako název ikony příkazu použijte název ikony z knihovny Microsoft Fabric (na stránce se název ikony zobrazí po najetí kurzorem myši nad vybranou ikonu). Pokud ikony nezadáte, použije se ikona LightningBolt.
Pro uložení vlastností a nastavení příkazu doporučujeme definovat třídu Settings v samostatném skriptu, který vytvoříte ze šablony Knihovna tříd, např.:
class Settings {
public static int CommandId = 1;
public static string CommandName = "Nahlásit problém";
public static string CommandPosition = 1;
public static string CommandIcon = "ReportWarning";
public static string ProblemServiceCatalogUrl = "/NewTicket/SectionCatalog/1";
}
Příklad
Pomocí příkazu může žadatel nahlásit problém přes Katalog služeb.
1. část příkladu:
…
class ProblemReporting : IGeneralCommand
{
CommandDesc commandDesc;
public CommandDesc CommandDesc
{
get { return commandDesc;
}
set { commandDesc = value;
}
}
public ProblemReporting()
{
int id = Settings.CommandId;
string name = Settings.CommandName;
int position = Settings.CommandPosition;
string icon = Settings.CommandIcon;
commandDesc = new
CommandDesc(id, name, position, icon);
}
}
…
Definice podmínek zobrazení příkazu
Ve vytvořené třídě příkazu implementujte metodu Show z rozhraní
IGeneralCommand. Vstupní parametr personId obsahuje id osoby, které by se měl
příkaz zobrazit.
Výstupem je potom pravdivostní hodnota, zda se má příkaz uživateli zobrazit v
hlavní nabídce aplikace.
Tip:
Voláním této metody v metodě Run(…) lze před spuštěním příkazu kontrolovat,
jestli se nezměnily podmínky pro jeho zobrazení v době mezi zobrazením a
spuštěním příkazu.
2.část příkladu:
…
class ProblemReporting : IGeneralCommand
{
…
public bool Show(SqlConnection Con, int personId)
{
bool show = false;
bool isRequester = PersonRights.IsAnySectionRoleMember(personId, PersonRights.SectionRoles.Requester);
bool isOperator = PersonRights.IsAnySectionRoleMember(personId, PersonRights.SectionRoles.Operator);
// pokud je uživatel žadatel a není
operátor, tak se příkaz zobrazí
if (isRequester && !isOperator)
show = true;
return show;
}
…
}
…
Definice akcí prováděných příkazem
Ve vytvořené třídě příkazu implementujte metodu Run z rozhraní
IGeneralCommand. Vstupní parametr personId obsahuje id osoby, která příkaz
spouští.
Výstupem je pravdivostní hodnota o úspěchu provedení, text, který se může
zobrazit v hlášení pro uživatele a URL k otevření v prohlížeči.
3.část příkladu:
…
class ProblemReporting : IGeneralCommand
{
…
public Tuple<bool, string, string> Run(SqlConnection Con, int
personId)
{
bool complete = false;
string message = "";
string url = "";
// Kontrola jestli se mezi zobrazením a
spuštěním příkazu nezměnily podmínky pro jeho spuštění/zobrazení (lze provést
kdekoliv v této metodě Run).
if (!Show(Con, personId))
{
message = "Příkaz nelze
provést, protože nejsou splněny podmínky pro jeho zobrazení.";
complete = false;
return Tuple.Create(complete,
message, url);
}
// Zjištění adresy WA
string waUrl = Alvao.API.Common.DbProperty.WebAppUrl;
if (!string.IsNullOrEmpty(waUrl))
{
// Část katalogu služeb
pro hlášení problémů
url = waUrl + Settings.ProblemServiceCatalogUrl;
complete = true;
}
else
{
message = "Příkaz nelze
provést, protože v systému ALVAO chybí nastavení URL k aplikaci WebApp.
Kontaktujte prosím administrátora systému ALVAO.";
complete = false;
}
return Tuple.Create(complete, message, url);
}
…
}
…
Příklad ke stažení: Example_ProblemReporting.zip
Tip:
Pokud má vlastní příkaz otevřít jinou stránku z ALVAO WebApp, pro zjištění
kořenové URL WebApp použijte vlastnost Alvao.API.Common.DbProperty.WebAppUrl z rozhraní Alvao.API.
Nenašli jste co jste hledali? Zeptejte se našeho týmu technické podpory.
|