Skip Navigation LinksALVAO 11.1Rozšiřující modulyALVAO Service Desk Custom AppsVlastní javascript na formuláři pro nový požadavek Skip Navigation Links.


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.