chestacio

multiUpdate de arreglo de efwform's

Sep 11th, 2020
1,449
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. formDatas = [];
  2. for (var i = 0; i < 10; i++) {
  3.     formDatas[i] = new EFWForm({
  4.         //...
  5.     });
  6.  
  7.     // lógica del EFWForm recién instanciado
  8.     // ...
  9. }
  10.  
  11. $updateButton.on('click', function (e) {
  12.     var validation = true;
  13.  
  14.     // valida todos los formularios antes de actualizar
  15.     for (var i = 0; i < formDatas.length; i++) {
  16.         formDatas[i].checkFieldsRequired();
  17.         validation = validation && formDatas[i].getValidation();
  18.     }
  19.  
  20.     if (validation) {
  21.         var dialog = app.dialog.progress('Cargando...');
  22.  
  23.         var multiUpdate = function (i) {
  24.             if (i == formDatas.length) {
  25.                 dialog.close();
  26.                 console.log('Terminó de actualizar');
  27.                 // lógica post guardado
  28.                 // ...
  29.                 return;
  30.             }
  31.  
  32.             var metadata = formDatas[i].getMetadata();
  33.             var id = metadata.Id // Si el metadata no tiene el Id tienes que ver la forma de encontrarlo a partir de los otros objetos jejex
  34.            
  35.             spo.updateListItem(spo.getSiteUrl(), 'nombreLista', id, metadata,
  36.                 function (response) {
  37.                     multiUpdate(i + 1);
  38.                 },
  39.                 function (response) {
  40.                     dialog.close();
  41.                     console.log('error al guardar!');
  42.                 }
  43.             );
  44.         }
  45.  
  46.         multiUpdate(0);
  47.  
  48.     } else {
  49.         console.log('hay campos inválidos o por completar');
  50.     }
  51. });
RAW Paste Data