const getCurrentUserOrgChartId = (completed, error) => {
const camlQueryTemplate = "<View><Query><Where><Eq><FieldRef Name='{{loginFieldInternalName}}'/><Value Type='Text'>{{currentUserLogin}}</Value></Eq></Where></Query></ View>";
const listId = renderer.config.listDataSourceSettings.listId;
const orgChartIdFieldName = renderer.config.idFieldMapping.InternalFieldName;
const context = SP.ClientContext.get_current();
api.dataProvider.getCurrentUserAccountName((currentUserLogin) => {
console.log("currentUserLogin:", currentUserLogin);
currentUserLogin = currentUserLogin.replace(/.*\|/, "");
const list = context.get_web().get_lists().getById(listId);
const camlQuery = new SP.CamlQuery();
const queryText = camlQueryTemplate
.replace("{{loginFieldInternalName}}", loginFieldInternalName)
.replace("{{currentUserLogin}}", currentUserLogin);
console.log("queryText: ", queryText);
camlQuery.set_viewXml(queryText);
const foundItems = list.getItems(camlQuery);
context.load(foundItems);
context.executeQueryAsync(() => {
f = foundItems;
const en = foundItems.getEnumerator();
if (en.moveNext()) {
const fieldValuesForCurrentUser = en.get_current().get_fieldValues();
const currentUserOrgChartId = fieldValuesForCurrentUser[orgChartIdFieldName];
completed(currentUserOrgChartId);
} else {
console.log("List item for current user not found.");
}
}, (sender, args) => {
error(args);
});
});
}
let currentUserId = "";
let loginFieldInternalName = "AccountName";
api.prerenderAction = function (completed) {
getCurrentUserOrgChartId((userId) => {
currentUserId = userId;
completed();
}, (errorArgs) => {
console.log(errorArgs);
completed();
});
}
api.onInitialLoadingFinished(() => {
if (currentUserId) {
api.drillDown(currentUserId);
}
});