App-Dochazka-WWW
view release on metacpan or search on metacpan
share/js/dochazka-www/ldap-lib.js view on Meta::CPAN
console.log("Payload is", st.payload);
ldapEmployeeObject.dochazka = true;
}
if (document.getElementById('ldapLookup') ||
document.getElementById('ldapDisplayEmployee')) {
displayLdapEmployee(ldapEmployeeObject, 'ldapLookup');
}
},
fc = function (st) {
if (document.getElementById('ldapLookup') ||
document.getElementById('ldapDisplayEmployee')) {
displayLdapEmployee(ldapEmployeeObject, 'ldapLookup');
}
}
ajax(rest, sc, fc);
},
ldapLookupSubmit = function (obj) {
var emp = obj;
console.log("Entering function ldapLookupSubmit, object", emp);
// "nick" is the only property of emp that is populated
if (! emp.nick) {
return;
}
var nick = emp.nick,
rest = {
method: 'GET',
path: 'employee/nick/' + nick + "/ldap"
},
// success callback -- employee already exists
sc = function (st) {
if (st.code === 'DOCHAZKA_LDAP_LOOKUP') {
console.log("Employee exists in LDAP");
console.log("Server said", st);
resetLdapEmployeeObject();
$.extend(ldapEmployeeObject, st.payload);
} else {
console.log("REST server returned unexpected status", st);
}
ldapEmployeeLink();
},
// failure callback -- employee doesn't exist
fc = function (st) {
coreLib.displayError(st.payload.message);
};
ajax(rest, sc, fc);
},
ldapSync = function (ldapEmp) {
// if (! ldapEmp) {
// stack.getState();
// }
console.log("Entered ldapSync with object", ldapEmp);
if (! ldapEmp.nick) {
return;
}
var bo,
nick = ldapEmp.nick,
stackTarget,
rest = {
method: 'PUT',
path: 'employee/nick/' + nick + '/ldap'
},
// success callback -- employee already exists
sc = function (st) {
console.log("PUT ldap success, st object is", st);
if (st.code === 'DOCHAZKA_CUD_OK') {
console.log("Payload is", st.payload);
ldapEmployeeObject = $.extend(ldapEmployeeObject, st.payload);
ldapEmployeeObject.dochazka = true;
}
stackTarget = stack.getTarget().name;
console.log("Detected target ' + stackTarget + ' on top of stack");
if (stackTarget === 'ldapDisplayEmployee') {
ldapEmployeeLink();
} else if (stackTarget === 'simpleEmployeeBrowser') {
// FIXME: this code belongs in App::MFILE::WWW
bo = coreLib.dbrowserState.set[coreLib.dbrowserState.pos];
$.extend(coreLib.dbrowserState.obj, ldapEmployeeObject);
$.extend(bo, ldapEmployeeObject);
start.dbrowserListen("Employee profile updated from LDAP");
} else if (stackTarget === 'empProfile') {
stack.restart(
$.extend(ldapEmp, ldapEmployeeObject),
{"resultLine": "Employee profile updated from LDAP"},
);
}
},
// failure callback -- employee doesn't exist
fc = function (st) {
var err = st.payload.code,
msg;
if (err === '404') {
msg = 'Employee ' + ldapEmp.nick + ' not found in LDAP';
} else {
msg = st.payload.message;
}
coreLib.displayError(msg);
}
ajax(rest, sc, fc);
},
ldapSyncFromBrowser = function (obj) {
ldapSync(obj);
},
resetLdapEmployeeObject = function () {
ldapEmployeeObject = Object.create(prototypes.ldapEmpObject);
};
return {
ldapLookupSubmit: ldapLookupSubmit,
ldapSync: ldapSync,
ldapSyncFromBrowser: ldapSyncFromBrowser,
};
});
( run in 0.860 second using v1.01-cache-2.11-cpan-5735350b133 )