Vlastní javascript na formuláři pro podání nového požadavku
Vzhled a chování systémového formuláře pro podání nového požadavku můžete ovlivnit vlastním javascriptem. Tak můžete např.:
- Skrývat a zobrazovat určité položky formuláře v závislosti na hodnotách jiných položek.
- Určovat, které položky jsou povinné, v závislosti na hodnotách jiných položek.
Vlastní javascript do formuláře služby zadejte příkazem ALVAO WebApp – Správa – Služby – Formulář pro podání nového požadavku – Javascript.
Ve skriptu můžete použít následující funkce:
Název |
Popis |
Příklady |
getElement(itemName) |
Funkce vrací objekt položky 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}:
- Běžná pole: {null, vyplněná hodnota}
- Datumová pole: {null, objekt typu Date()}
- Výběrová pole: {id vybrané položky, zobrazený text položky}
- Pole Objekty: Array[{id objektu, cesta k objektu}]
- Pole Přílohy: {null, null}
|
var ticketName = self.getValue('tHdTicket.sHdTicket').value;
var slaId = self.getValue('tHdTicket.liHdTicketSlaId').id;
|
setValue(itemName, value) |
Do položky itemName ve formuláři vyplní hodnotu value.
Pro položky typu int s výběrem hodnot uveďte v parametru value id hodnoty v nabídce (tColumnValue.iColumnValueId), ne její text.
Je možné vkládat i hodnoty, na které uživatel nemá oprávnění.
Pro datumové položky zadejte do parametru value objekty typu Date().
Pokud do položky číselného typu (int, float) vložíte nečíselnou hodnotu, hodnota položky se nezmění a do konzole v prohlížeči se vypíše chyba.
Do polí s formátovaným textem (HTML) je možné vkládat pouze prostý text (bez HTML tagů).
|
self.setValue('tHdTicket.@Description', 'I am coding like a champ');
self.setValue('tHdTicket.Objects', 100);
self.setValue('tHdTicketCust.CustomDate', new Date("2020-03-01T12:00"));
|
show(itemName) |
Na formuláři zobrazí položku itemName, pokud byla skryta. |
self.show('tHdTicket.@Description');
|
hide(itemName) |
Na formuláři skryje položku itemName, pokud je zobrazena a není povinná. Skryté položky se neodesílají při odeslání formuláře. |
self.hide('tHdTicket.@Description');
|
setRequired(itemName) |
Položku itemName nastaví jako povinnou, tzn. uživatel do ní musí před odesláním formuláře vyplnit hodnotu. |
self.setRequired('tHdTicket.@Description');
|
setNotRequired(itemName) |
Položku itemName nastaví jako nepovinnou. Položky, jejichž povinnost je nastavena v procesu služby, nelze takto 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 obvyklé volá až při opuštění 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 pro formátovaný text se volá po každém napsaném znaku, změně formátování apod. Funkce se volá také při programové
změně hodnoty funkcí setValue().
|
function ticketNameChanged() {
var ticketName = self.getValue('tHdTicket.sHdTicket').value;
self.show('tHdTicket.@Description');
self.setValue('tHdTicket.@Description', 'Název: ' + ticketName);
};
NewFormScript.prototype.initHandlers = function () {
self.onChange('tHdTicket.sHdTicket', ticketNameChanged);
}
Při změne názvu požadavku na formuláři, zobrazí uvedený skript pole pro popis 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 |
Přílohy |
tHdTicket.@Attachments |
Sla |
tHdTicket.liHdTicketSlaId |
Související organizace |
tHdTicket.RelatedAccountId |
Číslo zařízení |
tHdTicket.sHdTicketDeviceCode |
Priorita |
tHdTicket.Priority |
Dopad |
tHdTicket.Impact |
Naléhavost |
tHdTicket.Urgency |
Objekty |
tHdTicket.Objects |
<vlastní položky> |
tHdTicketCust.<název sloupce v databázi> |
Formulář můžete modifikovat pomocí standardního javascriptu i nad rámce zde popsaných funkcí.
Příklady skriptu:
1. Příklad
Pokud pole Priorita (tHdTicket.Priority) má hodnotu kritická nebo vysoká, na formuláři se zobrazí vlastní položka Odůvodnění (tHdTicketCust.PriorityReason)
a tato položka bude povinná.
var self;
NewFormScript.prototype.init = function () {
self = this;
//Skrytí položky Odůvodnění při načtení formuláře
self.hide('tHdTicketCust.PriorityReason');
}
NewFormScript.prototype.initHandlers = function () {
//Zaregistrování změny položky Priorita
self.onChange('tHdTicket.Priority', function(){
var priorityValue = self.getValue('tHdTicket.Priority').value;
//Kontrola zda má položka Priorita vysoká nebo kritická
if (priorityValue == 'vysoká' || priorityValue == 'kritická'){
//Nastavení položky Odůvodnění jako povinné
self.setRequired('tHdTicketCust.PriorityReason');
//Zobrazení položky Odůvodnění
self.show('tHdTicketCust.PriorityReason');
} else {
//Nastavení položky Odůvodnění jako nepovinné
self.setNotRequired('tHdTicketCust.PriorityReason');
//Skrytí položky Odůvodnění
self.hide('tHdTicketCust.PriorityReason');
}
});
}
2. Příklad
Ve vlastní položce Kontaktní telefon (tHdTicketCust.ContactPhone) chceme zobrazit placeholder: „Zadejte v mezinárodním formátu např. +420 123 456 789“.
var self;
NewFormScript.prototype.init = function () {
self = this;
//Nastavení placeholderu u položky
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.