Skip Navigation LinksALVAO 11.2Rozšiřující modulyALVAO Service Desk Custom AppsVlastní javascript na formuláři nové vstupenky Skip Navigation Links.


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.