App-Dochazka-WWW
view release on metacpan or search on metacpan
0.121 2014-10-13 16:47 CEST
- js/: CSS tweaks
0.122 2014-10-14 09:36 CEST
- js/: enable new dnotice feature and use it to implement privhistory listing
0.123 2014-10-14 11:21 CEST
- js/: refine privHistory dnotice
0.124 2014-10-16 15:42 CEST
- js/emp-lib.js: fix "Edit employee profile" functionality (was using PUT
on 'employee/eid' resource, which is no longer supported by the server)
0.125 2015-07-22 09:59 CEST
- update copyright statement to 2015
- migrate repo to Github
- new release script
- drop t/boilerplate.t
0.126 2016-09-04 20:40 CEST
- packaging tweaks
- Implement "LDAP lookup" feature
- Provide masquerade option if LDAP lookup succeeds
0.138 2016-09-27 16:59 CEST
- Move privHistory target to Employee menu
- ldapLookup: always display AJAX error
- Improve AJAX error reporting
- Dispatch.pm: revamp/simplify session management
- Rip out entry definitions for deprecated newEmployee target
- Plumb in an empObject prototype distinct from empProfile
- js: make ldapLookupSubmit GET instead of PUT
- dispatch: tweak debug log messages
- js: lower ACL profile of ldapLookupSubmit and privHistory targets
- Revamp LDAP lookup feature (GET first)
- js: handle empty nick in ldapLookupSubmit
- Add "Sync" option to LDAP lookup result miniMenu
- js: simplify LDAP lookup failure handling
- Reinstate "Priv (status) menu" with privHistory target
- Display workforce ID instead of EID in simpleEmployeeBrowser
- Change "Status"/"Since" to "Privlevel"/"Effective"
- dmenu: add Schedule menu
share/js/dochazka-www/emp-lib.js view on Meta::CPAN
console.log("Entering empSetSupervisor() with superEmp", superEmp);
console.log("Will set superEmp as the supervisor of " + cu.nick);
console.log("Pushing empProfileSetSuperConfirm onto stack with obj", obj);
stack.push('empProfileSetSuperConfirm', obj);
},
empProfileSetSuperCommit = function (obj) {
var cu = currentUser('obj'),
empProfile,
rest = {
"method": 'PUT',
"path": 'employee/eid/' + obj.ePsetsuperofEID,
"body": {
"supervisor": obj.ePsetsupertoEID,
}
},
sc = function (st) {
if (st.code === 'DOCHAZKA_CUD_OK' || st.code === 'DISPATCH_UPDATE_NO_CHANGE_OK' ) {
cu.supervisor = obj.ePsetsupertoEID;
empProfile = appCaches.getProfileByEID(obj.ePsetsuperofEID);
if (empProfile) {
share/js/dochazka-www/int-lib.js view on Meta::CPAN
return null;
}
if (! createIntervalCheckMandatoryProps(obj)) {
return null;
}
obj["intvl"] = genIntvl(obj.iNdate, obj.iNtimerange);
if (! obj.intvl) {
return null;
}
rest = {
"method": 'PUT',
"path": 'interval/iid/' + obj.iid,
"body": {
"eid": cu.eid,
"aid": obj.acTaid,
"intvl": obj.intvl,
"long_desc": obj.long_desc,
},
}
ajax(rest, sc);
},
share/js/dochazka-www/ldap-lib.js view on Meta::CPAN
// 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') {
share/js/dochazka-www/sched-lib.js view on Meta::CPAN
}
}
stack.unwindToFlag();
}
coreLib.displayResult(dispMsg);
},
fc = function (st) {
coreLib.displayError(st.payload.message);
};
if (mode === 'edit') {
rest.method = 'PUT';
} else if (mode === 'delete') {
rest.method = 'DELETE';
}
ajax(rest, sc, fc);
};
// here is where we define methods implementing the various
// schedule-related actions (see daction-start.js)
return {
actionDisplaySchedule: actionDisplaySchedule,
( run in 0.474 second using v1.01-cache-2.11-cpan-4e96b696675 )