Skip Navigation LinksALVAO 10.4Rozšiřující modulyALVAO Service Desk Custom AppsVlastní javascript na formuláři pro podání nového požadavku Skip Navigation Links.


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.