Google Appmaker - 在PeopleViewer模板中按PrimaryOrganizationTitle搜索人员

时间:2018-04-09 18:02:22

标签: google-apps-script google-app-maker

我正在使用peopleViewer模板,我想知道如何修改搜索选项,以便通过帖子和名称来查找人员。

我尝试添加:
loadAllData()函数中的userInfoDs.query.filters.PrimaryOrganizationTitle = title;,但

1-自动完成不会在过滤器中显示PrimaryOrganizationTitle 2-我不认为var title = userInfoDs.query.parameters.PrimaryOrganizationTitle;可以创建变量。

编辑:或者,我想知道是否可以手动添加要在userInfoDs.query.filters中使用的过滤器。

1 个答案:

答案 0 :(得分:0)

您引用的数据源userInfoDs用于加载有关已找/已选/当前用户(People页面)的数据。 SearchResults页面使用SearchResults数据源。页眉中的搜索框绑定到keywords。目录模型keywords将在名字/姓氏和主要电子邮件中查找搜索词出现次数。目录模型不支持按PrimaryOrganizationTitle进行过滤:https://developers.google.com/appmaker/models/directory#user_fields_and_query_operators

因此,如果您迫切希望按照目录模型不支持的字段搜索人员,除了使用Admin Directory SDK之外别无选择。这是服务器端搜索脚本的近似品味。

/**
 * Searches for people.
 */
function search(term) {
  var result = AdminDirectory.Users.list({
    domain: 'ENTER HERE YOUR DOMAIN (exapmle.com)',
    // Build your query basing on this doc
    // https://developers.google.com/admin-sdk/directory/v1/guides/search-users
    query: getQuery(term),
    viewType: 'domain_public',
    maxResults: 10
  });

  return mapToAppMakerRecords(result);
}

getQuery函数应构建类似于email:Bob or name:Bob or orgTitle:Bob的查询,而mapToAppMakerRecords应将搜索结果转换为App Maker的UI可以消化的形式(Calculated Model或后续跟进查询Directory Model)。通过这种方法,与结果排序和分页相关的所有工作也将落在你的肩上。