Как получить множественный выбор в App Maker для отображения списка пользователей, который извлекается из сценария сервера? - PullRequest
0 голосов
/ 18 сентября 2018

Я пытался заставить мое меню множественного выбора отобразить список пользователей, которые серверный скрипт извлекает из AdminDirectory.

Пока у меня есть поле параметров множественного выбора, вызывающее функцию вклиентский скрипт, клиентская функция принимает доменное имя пользователя, вызывает серверную функцию, которая извлекает всех пользователей, связанных с этим доменом, и возвращает массив полных имен пользователей.Затем клиентский скрипт возвращает этот массив в поле опций Multi Select и должен отображать массив полных имен в качестве выбираемых опций, вместо этого на экране ничего не отображается.

Когда я тестирую это с фиктивным массивом, который содержит несколько фиктивных символовимена в клиентском скрипте будут отображаться правильно, если я протестирую фиктивный массив в серверном скрипте, который он не отобразит.Итак, из того, что я могу сказать, проблема в сценарии сервера, и я предполагаю, что это связано с задержкой получения информации из сценария сервера.

Мне просто нужен способ отобразить всех пользователей из текущего домена пользователя приложения в виде списка с несколькими вариантами выбора, если кто-то может придумать способ исправить мой процесс или знает о более простом способе сделать этоэто было бы здорово!

Вот мой код для справки:

function testingMultiSelectList(domain) {
  var testArray = ['test 1', 'test 2', 'test 3'];
  var array;

  google.script.run.withSuccessHandler( function (result) {
    array = result;
    console.log("PRINT " + array);
    return array;
      }).withFailureHandler( function (result) {
      console.log("FAILED!");
      return array;
          }).tryServerScript(domain);

  //return testArray;
}

И скрипт сервера:

function tryServerScript(domain) {
  var users;
  var getter;
  var holder;
  var listUsersNames = new Array(0);

  getter = AdminDirectory.Users.list({
      domain: domain,
      orderBy: 'givenName',
      maxResults: 100,

  });

  users = getter.users;

  if (users) {
    for (var x = 0; x < users.length; x++) {
      holder = users[x].name.fullName;
      console.log("Holder: " + holder);
      listUsersNames.push(holder);
    }

  }

  console.log("Users: " + listUsersNames);
  return listUsersNames; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...