Skip Navigation LinksALVAO 11.2 / Rozšiřující moduly / ALVAO Service Desk Custom Apps / Vlastní javascript na formuláři nové vstupenky
Vlastní javascript na formuláři nové vstupenky
Vzhled a chování systémového formuláře pro odeslání nové položky můžete ovlivnit pomocí vlastního javascriptu. 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.
Správa
Zadat vlastní javascript do servisního formuláře pomocí příkazu Administration - Services - New Ticket Form (Administrace - Služby - Formulář 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}
- 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 typu datum zadejte objekty typu Date() v parametru value.
Pokud do položky číselného typu (int, float) zadáte jinou než číselnou hodnotu, hodnota položky 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) |
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) |
Zobrazí položku itemName na formuláři, pokud byla skrytá. |
self.show('tHdTicket.@Description');
|
hide(itemName) |
Skryje položku itemName na 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í zadávací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 jízdenky ve formuláři výše uvedený skript zobrazí pole popis jízdenky a vloží do něj zadaný název jízdenky.
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 |
Fall |
tHdTicket.Impact |
Nouzové |
tHdTicket.Urgency |
Objekty |
tHdTicket.Objects |
<vlastní pole> |
tHdTicketCust.<název sloupce databáze> |
Formulář můžete upravit pomocí standardního javascriptu a nad rámec zde popsaných funkcí.
Note:
Při hromadné úpravě sekcí a textových bloků jsou vytvořena nová ID pro vlastní JavaScript. Je nutné odpovídajícím způsobem aktualizovat existující JavaScript, který tato ID používá.
Příklady skriptů:
1. Příklady
Pokud má pole Priority (tHdTicket.Priority) hodnotu kritickou nebo vysokou, objeví se ve formuláři vlastní položka Reason (tHdTicketCust.PriorityReason) a tato položka bude povinná
var self;
NewFormScript.prototype.init = function () {
self = this;
//Hide the Justification item when the form is loaded
self.hide('tHdTicketCust.PriorityReason');
}
NewFormScript.prototype.initHandlers = function () {
//Logging a change to the Priority item
self.onChange('tHdTicket.Priority', function(){
var priorityValue = self.getValue('tHdTicket.Priority').value;
//Check whether the Priority item has a high or critical
if (priorityValue == 'high' || priorityValue == 'critical'){
//Setting the Justification item as mandatory
self.setRequired('tHdTicketCust.PriorityReason');
//Display the Reason item
self.show('tHdTicketCust.PriorityReason');
} else {
//Setting the Reason item as optional
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;
//Set placeholder on item
self.getElement('tHdTicketCust.ContactPhone').find('input').attr('placeholder', 'Enter in international format e.g. +420 123 456 789');
}
Nenašli jste co jste hledali? Zeptejte se našeho týmu technické podpory.