Vlastní javascript na formuláři pro nový požadavek
Vzhled a chování systémového formuláře pro odeslání nové položky můžete ovlivnit vlastním javascriptem. Můžete například:
- Skrývat a zobrazovat určité položky formuláře v závislosti na hodnotách jiných položek.
- Určit, které položky jsou povinné v závislosti na hodnotách jiných položek.
Zadat vlastní javascript do servisního formuláře pomocí příkazu Javascript v ALVAO WebApp - Administration - Services - New Request Form.
Ve skriptu můžete použít následující funkce:
Název |
Popis |
Příklady |
getElement(itemName) |
Funkce vrátí objekt prvku itemName ve formuláři. |
var $ticketName = self.getElement('tHdTicket.sHdTicket' ) |
getValue(itemName) |
Funkce vrací hodnotu, která je aktuálně vyplněna ve formuláři v položce itemName.
Funkce vrací objekt {id, value}
- Aktuální pole: {null, vyplněná hodnota}
- Pole Datum: {null, objekt typu Date()}
- Pole výběru: {identifikace vybrané položky, zobrazený text položky}
- Objekty pole: Pole[{identifikátor objektu, cesta k objektu}]
- Přílohy pole: {null, null}
|
var ticketName = self.getValue('tHdTicket.sHdTicket').value;
var slaId = self.getValue('tHdTicket.liHdTicketSlaId').id |
setValue(itemName, value) |
Vyplní položku itemName ve formuláři hodnotou value.
U položek typu int s výběrem hodnot zadejte v parametru value v nabídce id hodnoty(tColumnValue.iColumnValueId), nikoli její text. Je možné vkládat i hodnoty, ke kterým uživatel nemá oprávnění.
U položek s datem zadejte v parametru value objekty typu Date( ).
Pokud do položky číselného typu (int, float) zadáte jinou než číselnou hodnotu, hodnota položky se nezmění a na konzoli 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) |
self.setValue('tHdTicket.@Description', 'Kóduji jako mistr');
self.setValue('tHdTicket.Objects', 100);
self.setValue('tHdTicketCust.CustomDate', new Date("2020-03-01T12:00 ")) |
show(itemName) |
Zobrazí položku itemName na formuláři, pokud byla skrytá. |
self.show('tHdTicket.@Description') |
hide(itemName) |
Skryje položku itemName ve formuláři, pokud je zobrazena a není vyžadována. Skryté položky se při odeslání formuláře neodesílají. |
self.hide('tHdTicket.@Description' ) |
setRequired(itemName) |
Nastaví položku itemName jako povinnou, tj. uživatel musí před odesláním formuláře vyplnit její hodnotu. |
self.setRequired('tHdTicket.@Description' ) |
setNotRequired(itemName) |
Nastaví položku itemName jako nepovinnou. Položky, jejichž povinnost je nastavena v servisním procesu, nelze tímto způsobem nastavit jako nepovinné. |
self.setNotRequired('tHdTicket.@Description' ) |
onChange(itemName, function()) |
Při změně hodnoty položky 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 vstupním poli s formátovaným textem je volána 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() |
function ticketNameChanged() { var ticketName = self.getValue('tHdTicket.sHdTicket').value; self.show('tHdTicket.@Description'); self.setValue('tHdTicket.@Description", 'Name: ' + ticketName); };
NewFormScript.prototype.initHandlers = function () { self.onChange('tHdTicket.sHdTicket', ticketNameChanged); }
Při změně názvu požadavku ve formuláři výše uvedený skript zobrazí pole popisu požadavku a vloží do něj zadaný název požadavku.
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 |
Attachments |
tHdTicket.@Attachments |
Sla |
tHdTicket.liHdTicketSlaId |
Související organizace |
tHdTicket.RelatedAccountId |
Číslo zařízení |
tHdTicket.sHdTicketDeviceCode |
Priorita |
tHdTicket.Priority |
Fall |
tHdTicket.Impact |
Emergency |
tHdTicket.Urgency |
Objekty |
tHdTicket.Objekty |
<vlastní položka> |
tHdTicketCust.<název sloupce databáze> |
Formulář můžete upravit pomocí standardního javascriptu a nad rámec zde popsaných funkcí.
Příklady skriptů:
1. Příklad
Pokud má pole Priorita (tHdTicket.Priority) hodnotu kritickou nebo vysokou, objeví se ve formuláři vlastní položka Důvod (tHdTicketCust.PriorityReason), která bude povinná
var self;
NewFormScript.prototype.init = function () {
self = this;
//Skrýt položku Odůvodnění při načtení formuláře
self.hide('tHdTicketCust.PriorityReason');
}
NewFormScript.prototype.initHandlers = function () {
//Zaznamená změnu položky Priorita
self.onChange('tHdTicket.Priority', function(){
var priorityValue = self.getValue('tHdTicket.Priority').value;
//Kontrola, zda má položka Priorita vysokou nebo kritickou hodnotu
if (priorityValue == 'high' || priorityValue == 'critical'){
//Nastavení položky Justification jako povinné
self.setRequired('tHdTicketCust.PriorityReason');
//Zobrazení položky Reason
self.show('tHdTicketCust.PriorityReason');
} else {
//Nastavení položky Reason jako nepovinné
self.setNotRequired('tHdTicketCust.PriorityReason');
self.hide('tHdTicketCust.PriorityReason');
}
});
}
2. Příklad
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 na položce
self.getElement('tHdTicketCust.ContactPhone').find('input').attr('placeholder', 'Zadejte v mezinárodním formátu, např. +420 123 456 789');
}
Nenašli jste co jste hledali? Zeptejte se našeho týmu technické podpory.