Advertisement
Savelyev_Vyacheslav

formListen

Jan 26th, 2023 (edited)
925
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const applyToTable = ['itsm_incident_task', 'itsm_request_task', 'itsm_change_task', 'itsm_problem_task'];
  2. let filterCondition = !applyToTable.includes(s_form.getTableName()) && s_form.isNewRecord();
  3. filterCondition = filterCondition || typeof s_form.getValue('work_notes') === 'undefined';
  4. if (filterCondition) return;
  5.  
  6. let server = {};
  7. async function listeningFields(condition = [0], step = 100) {
  8.     let chenges = {};
  9.     let newValue = {};
  10.     condition[0] += step;
  11.     const changedFields = s_form.getChanges();
  12.     changedFields.forEach((field) => {
  13.         newValue[field.fieldName] = field.currentValue;
  14.     });
  15.     for (const [key, value] of Object.entries(newValue)) {
  16.         await getServer(key);
  17.         chenges[key] = server[key] != value;
  18.     }
  19.     const setMandatory = Object.values(chenges);
  20.     s_form.setMandatory('work_notes', setMandatory.includes(true));
  21.     setTimeout(listeningFields, step, condition);
  22. }
  23. listeningFields();
  24.  
  25. async function getServer(fieldName) {
  26.     const current = await new SimpleRecord(s_form.getTableName());
  27.     await current.get(s_form.sysId, async () => {
  28.         if (s_user.userID != current.assigned_user) {
  29.           server[fieldName] = current[fieldName]
  30.         }
  31.     });
  32. }
  33.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement