Vlastní javascript ve formuláři Nový požadavek
Vzhled a chování systému Formulář pro zadání nového tipu můžete ovlivnit pomocí vlastního javascriptu. Můžete například:
- Skrývání a zobrazování určitých polí formuláře v závislosti na hodnotách jiných polí.
- Určete, která pole jsou povinná v závislosti na hodnotách ostatních polí.
Zadejte vlastní javascript do formuláře služby pomocí příkazu Administration - Services - New Ticket Form Javascript.
Ve skriptu můžete použít následující funkce:
Název | Popis | Příklady |
---|---|---|
getElement(itemName) | Funkce vrací objekt pole itemName ve formuláři. |
|
getValue(itemName) | Funkce vrací hodnotu, která je aktuálně vyplněna ve formuláři v poli itemName. Funkce vrací objekt {id, value} :
|
|
setValue(itemName, value) | Vyplní pole itemName ve formuláři hodnotou value. U polí typu int s výběrem hodnot zadejte v parametru value v nabídce (tColumnValue.iColumnValueId) id hodnoty, nikoli její text. Je také možné vkládat hodnoty, ke kterým uživatel nemá oprávnění. U polí s datem zadejte v parametru hodnota objekty typu Date(). Pokud do pole číselného typu (int, float) zadáte jinou než číselnou hodnotu, hodnota pole se nezmění a do konzoly prohlížeče se vypíše chyba. Do polí s formátovaným textem (HTML) lze vkládat pouze prostý text (bez značek HTML). |
|
show(itemName) | Zobrazí pole itemName ve formuláři, pokud bylo skryté. |
|
hide(itemName) | Skryje pole itemName ve formuláři, pokud je zobrazeno a není vyžadováno. Skrytá pole se při odeslání formuláře neodesílají. |
|
setRequired(itemName) | Nastaví pole itemName jako povinné, tj. uživatel musí před odesláním formuláře vyplnit hodnotu. |
|
setNotRequired(itemName) | Nastaví pole itemName jako nepovinné. Pole, jejichž povinnost je nastavena v servisním procesu, nelze tímto způsobem nastavit jako nepovinná. |
|
onChange(itemName, function()) | Při změně hodnoty pole itemName se automaticky zavolá definovaná funkce. Funkci onChange() volejte pouze v těle funkce initHandlers(). Definovaná funkce se obvykle volá pouze při ukončení vstupního pole. V polích s výběrem hodnot se volá po výběru hodnoty z nabídky. Ve formátovaném textovém vstupním poli se volá po každém napsaném znaku, změně formátování atd. Funkce je volána také při programové změně hodnoty pomocí funkce setValue(). |
Při změně názvu tipu ve formuláři výše uvedený skript zobrazí pole popisu tipu a vloží do něj zadaný název tipu. Funkci ticketNameChanged() můžete nahradit anonymní funkcí definovanou přímo v argumentu volání funkce onChange(). |
Hodnoty parametru itemName:
Položka formuláře | itemName |
---|---|
Název | tHdTicket.sHdTicket |
Popis | tHdTicket.@Description |
Přílohy | tHdTicket.@Attachments |
Sla | tHdTicket.liHdTicketSlaId |
Související organizace | tHdTicket.RelatedAccountId |
Číslo zařízení | tHdTicket.sHdTicketDeviceCode |
Priorita | tHdTicket.Priority |
Podzim | tHdTicket.Impact |
Pohotovostní služba | tHdTicket.Urgency |
Objekty | tHdTicket.Objects |
<vlastní pole> | tHdTicketCust.<database column name> |
Při hromadných úpravách sekcí a textových bloků se vytvářejí nová ID pro vlastní JavaScript. Proto je třeba odpovídajícím způsobem aktualizovat všechny stávající používané vlastní JavaScripty.
Formulář můžete upravit pomocí standardního javascriptu i mimo zde popsané funkce.
Příklady skriptů:
Příklad č. 1
Pokud má pole Priorita(tHdTicket.Priorita) hodnotu kritická nebo vysoká, zobrazí se ve formuláři vlastní pole Důvod (tHdTicketCust.PrioritaDůvod ), které je povinné.
var self;
NewFormScript.prototype.init = function () {
self = this;
//Skrýt pole Justification při načtení formuláře
self.hide('tHdTicketCust.PriorityReason');
}
NewFormScript.prototype.initHandlers = function () {
//Zaznamenávání změny pole Priorita
self.onChange('tHdTicket.Priority', function() {
var priorityValue = self.getValue('tHdTicket.Priority').value;
//Kontrola, zda je pole Priorita vysoké nebo kritické
if (priorityValue == 'high' || priorityValue == 'critical') {
//Nastavení pole Justification jako povinného
self.setRequired('tHdTicketCust.PriorityReason');
//Zobrazení pole Důvod
self.show('tHdTicketCust.PriorityReason');
}
else {
//Nastavení pole Důvod jako nepovinného
self.setNotRequired('tHdTicketCust.PriorityReason');
self.hide('tHdTicketCust.PriorityReason');
}
});
}
Příklad č. 2
Ve vlastním poli Kontaktní telefon (tHdTicketCust.ContactPhone) chceme zobrazit zástupný symbol: "Zadejte v mezinárodním formátu, např. +420 123 456 789".
var self;
NewFormScript.prototype.init = function () { self = this;
//Nastavení zástupného znaku v poli self.getElement('tHdTicketCust.ContactPhone').find('input').attr('placeholder', 'Zadejte v mezinárodním formátu, např. +420 123 456 789');}