App-Dochazka-WWW
view release on metacpan or search on metacpan
share/js/dochazka-www/dform-init.js view on Meta::CPAN
'target'
], function (
currentUser,
coreLib,
empLib,
entries,
restLib,
schedLib,
prototypes,
target
) {
return function () {
target.push('createLastPlusOffset', {
// before doing any calculations, look up:
// - employee's schedule
// - schedule intervals on date
// - existing intervals on date
// timerange start will be:
// - end of last existing interval, if there are existing intervals
// - start of first schedule interval, if there are schedule intervals
// - 00:00 otherwise
// timerange end will be timerange start plus offset
'name': 'createLastPlusOffset',
'type': 'dform',
'menuText': "Last plus offset",
'title': "Create interval \"last plus offset\"",
'preamble': "You entered an offset without a start time. Deriving start " +
"time from schedule and last existing interval (if any).",
'aclProfile': 'active',
'entriesRead': [
entries.acTaid,
entries.iNsid,
entries.iNdateHidden,
entries.iNactHidden,
entries.iNschedintvls,
entries.iNlastexistintvl,
entries.iNoffset,
entries.iNlastplusoffset,
coreLib.emptyLineEntry,
entries.iNtoBeCreated,
],
'entriesWrite': [
entries.iNdate,
entries.iNtimerange,
entries.iNact,
entries.iNdesc,
],
'rememberState': true,
'miniMenu': {
entries: ['createSingleIntSave'],
}
}); // createLastPlusOffset
target.push('createMultipleInt', {
'name': 'createMultipleInt',
'type': 'dform',
'menuText': 'Create multiple',
'title': 'Create multiple intervals according to schedule',
'preamble': "Hints: (1) TAB or ENTER to validate and advance to next field " +
"(2) enter month by name (e.g. \"June\") or number (e.g. \"6\"); " +
"DEFAULT: current month " +
"(3) enter days as " +
"an inclusive range (e.g. \"15-18\"), as a comma-separated list (e.g. " +
"\"7, 9, 28\"), or as a combination of the two (e.g. \"1, 3-5, 16-20\"); " +
"DEFAULT: entire month " +
"(4) Use 'Select activity' if you don't know activity code " +
'(5) Description is optional',
'aclProfile': 'active',
'entriesRead': [
entries.iNdaterangeBegin,
entries.iNdaterangeEnd,
entries.iNyearHidden,
],
'entriesWrite': [
entries.iNyear,
entries.iNmonth,
entries.iNdaylist,
entries.iNact,
entries.iNdesc,
],
'rememberState': true,
'miniMenu': {
entries: ['selectActivityAction', 'createMultipleIntSave', 'viewIntervalsAction']
}
}); // createMultipleInt
target.push('createNextScheduled', {
// before doing any calculations, look up/calculate:
// - employee's schedule
// - existing intervals on date
// - schedule intervals on date
// timerange will be:
// - first schedule interval that does not conflict/overlap with an existing interval
'name': 'createNextScheduled',
'type': 'dform',
'menuText': "Next scheduled interval",
'title': "Create interval \"next scheduled\"",
'aclProfile': 'active',
'entriesRead': [
entries.acTaid,
entries.iNsid,
entries.iNdateHidden,
entries.iNactHidden,
entries.iNschedintvls,
entries.iNexistintvls,
entries.iNnextscheduled,
coreLib.emptyLineEntry,
entries.iNtoBeCreated,
],
'entriesWrite': [
entries.iNdate,
entries.iNtimerange,
entries.iNact,
entries.iNdesc,
],
'rememberState': true,
'miniMenu': {
entries: ['selectActivityAction', 'createSingleIntSave'],
}
}); // createNextScheduled
target.push('createSingleInt', {
'name': 'createSingleInt',
'type': 'dform',
'menuText': 'Create',
'title': 'Create an arbitrary interval',
'preamble': "Hints: (1) TAB or ENTER to validate and advance to next field " +
"(2) date YYYY-MM-DD; year is optional " +
"(3) time range HH:MM-HH:MM or HH:MM+HH:MM (start time plus offset) " +
"or +HH:MM (last existing interval plus offset) or + (next scheduled " +
"interval) (4) Use 'Select activity' if you don't know activity code " +
'(5) Description is optional',
'aclProfile': 'active',
'entriesWrite': [entries.iNdate, entries.iNtimerange, entries.iNact, entries.iNdesc,],
'rememberState': true,
'miniMenu': {
entries: ['selectActivityAction', 'createSingleIntSave']
}
}); // createSingleInt
target.push('createLock', {
'name': 'createLock',
'type': 'dform',
'menuText': 'Create',
'title': 'Create a Lock',
'preamble': "Hints: (1) TAB or ENTER to validate and advance to next field ",
'aclProfile': 'active',
'entriesWrite': [entries.iNyear, entries.iNmonth,],
'rememberState': true,
'miniMenu': {
entries: ['createLockSave']
}
}); // createLock
target.push('createSingleIntFixedDay', {
'name': 'createSingleIntFixedDay',
'type': 'dform',
'menuText': 'Create',
'title': 'Create an arbitrary interval',
'preamble': "Hints: (1) TAB or ENTER to validate and advance to next field " +
"(2) time range HH:MM-HH:MM " +
"(3) Use 'Select activity' if you don't know activity code " +
'(4) Description is optional',
'aclProfile': 'active',
'entriesRead': [entries.iNdate,],
'entriesWrite': [entries.iNtimerangeNoOffset, entries.iNact, entries.iNdesc,],
'rememberState': true,
'miniMenu': {
entries: ['selectActivityAction', 'createSingleIntSave']
}
}); // createSingleIntFixedDay
target.push('displaySingleInt', {
'name': 'displaySingleInt',
'type': 'dform',
'menuText': 'Single interval',
'title': 'Display a single interval',
'aclProfile': 'active',
'entriesRead': [entries.iNdaterange, entries.iNtimerange, entries.iNact, entries.iNdesc,],
'miniMenu': {
entries: []
}
}); // displaySingleInt
target.push('empProfile', {
'name': 'empProfile',
'type': 'dform',
'menuText': 'Profile',
'title': 'Employee profile',
'preamble': null,
'aclProfile': 'passerby',
'entriesRead': [
entries.ePfullname, entries.ePnick,
entries.ePsec_id, entries.ePemail,
entries.ePremark,
coreLib.emptyLineEntry,
entries.ePsuperNick, entries.ePhasReports,
coreLib.emptyLineEntry,
entries.ePpriv, entries.ePprivEffective,
coreLib.emptyLineEntry,
entries.ePscode, entries.ePsid, entries.ePschedEffective
],
'miniMenu': {
entries: [
'actionPrivHistory',
'actionSchedHistory',
'empProfileEdit',
'ldapSync',
'empProfileSetSuperSearch',
'empProfileSetSuperDelete',
]
}
}); // empProfile
target.push('empProfileEdit', {
'name': 'empProfileEdit',
'type': 'dform',
'menuText': 'Edit remark',
'title': 'Employee profile edit',
'preamble': 'Only the remark field can be modified;<br>' +
share/js/dochazka-www/dform-init.js view on Meta::CPAN
'entriesWrite': [entries.sScode, entries.sSid],
'rememberState': true,
'miniMenu': {
entries: ['actionSchedLookup']
}
}); // schedLookup
target.push('schedNewBoilerplate', {
'name': 'schedNewBoilerplate',
'type': 'dform',
'menuText': 'Boilerplate (quick form for Mon-Fri schedules)',
'title': 'Create a new schedule - boilerplate',
'preamble': 'Hint: separate schedule intervals by semi-colon<br>' +
'Example: 8:00-12:00; 12:30-16:30<br>' +
'<b>Schedule intervals will be replicated for Monday-Friday</b><br>' +
'Note: schedule code is optional',
'aclProfile': 'admin',
'entriesRead': [entries.sDid],
'entriesWrite': [entries.sCboiler, entries.sDcode],
'miniMenu': {
entries: ['createSchedule']
}
}); // schedNewBoilerPlate
target.push('schedNewCustom', {
'name': 'schedNewCustom',
'type': 'dform',
'menuText': 'Custom (long form)',
'title': 'Create a new schedule - custom',
'preamble': 'Hint: separate schedule intervals by semi-colon<br>' +
'Example: 8:00-12:00; 12:30-16:30<br>' +
'Note: schedule code is optional',
'aclProfile': 'admin',
'entriesRead': [entries.sDid],
'entriesWrite': [entries.sDmon, entries.sDtue,
entries.sDwed, entries.sDthu, entries.sDfri,
entries.sDsat, entries.sDsun, entries.sDcode],
'miniMenu': {
entries: ['createSchedule']
}
}); // schedNewCustom
target.push('searchEmployee', {
'name': 'searchEmployee',
'type': 'dform',
'menuText': 'Search Dochazka employees',
'title': 'Search Dochazka employees',
'preamble': 'Enter search key, % is wildcard',
'aclProfile': 'admin',
'entriesWrite': [entries.sEnick],
'miniMenu': {
entries: ['actionEmplSearch']
}
}); // searchEmployee
target.push('updateSingleInt', {
'name': 'updateSingleInt',
'type': 'dform',
'menuText': 'Update',
'title': 'Update an interval',
'preamble': "Hints: (1) TAB or ENTER to validate and advance to next field " +
"(2) time range HH:MM-HH:MM " +
"(3) Use 'Select activity' if you don't know activity code " +
'(4) Description is optional',
'aclProfile': 'active',
'entriesRead': [entries.iNdate, entries.acTaid],
'entriesWrite': [entries.iNtimerangeNoOffset, entries.iNact, entries.iNdesc,],
'rememberState': true,
'miniMenu': {
entries: ['selectActivityAction', 'updateSingleIntSave']
}
}); // updateSingleInt
target.push('viewIntervalsPrep', {
'name': 'viewIntervalsPrep',
'type': 'dform',
'menuText': 'View',
'title': 'View intervals for date or range of dates',
'preamble': "Hints: (1) TAB or ENTER to validate and advance to next field " +
"(2) enter month by name (e.g. \"June\") or number (e.g. \"6\"); " +
"DEFAULT: current month " +
"(3) enter days as a singleton (e.g. \"13\") or inclusive range (e.g. \"15-18\") " +
"DEFAULT: entire month",
'aclProfile': 'inactive',
'entriesRead': [
entries.iNdaterangeBegin,
entries.iNdaterangeEnd,
entries.iNyearHidden,
],
'entriesWrite': [
entries.iNyear,
entries.iNmonth,
entries.iNdayrange,
],
'rememberState': true,
'miniMenu': {
entries: ['viewIntervalsAction']
}
}); // viewIntervalsPrep
target.push('viewLocksPrep', {
'name': 'viewLocksPrep',
'type': 'dform',
'menuText': 'View',
'title': 'View locks',
'preamble': "Hints: (1) TAB or ENTER to validate and advance to next field " +
"(2) enter month by name (e.g. \"June\") or number (e.g. \"6\"); " +
"DEFAULT: current month ",
'aclProfile': 'inactive',
'entriesWrite': [
entries.iNyear,
],
'rememberState': true,
'miniMenu': {
entries: ['viewLocksAction']
}
}); // viewLocksPrep
}; // return function ()
});
( run in 0.722 second using v1.01-cache-2.11-cpan-99c4e6809bf )