var createCampus = function(opts) { var req = opts.req; var gmaId = opts.gmaId; var name = opts.name; var uuid = AD.util.uuid(); var log = ' - <green><bold>creating:</bold></green> campus for assignment '+gmaId+' uuid=['+uuid+']'; var params = { campus_uuid: uuid, node_id: gmaId, language_code: ADCore.user.current(req).getLanguageCode(), campus_label: name }; var userUUID = null; if ('undefined' != typeof req.appdev.userUUID) { userUUID = req.appdev.userUUID; } else { AD.log.error('*** Shoot! req.appdev.userUUID not defined yet. How?!'); } return DBHelper.applyMultilingualTransaction({ userUUID:userUUID, operation:'create', params:params, table:NSServerCampus, assocTable:NSServerUserCampus, log:log }); };
var createStep = function(opts) { var dfd = $.Deferred(); var req = opts.req; var campusUUID = opts.campusUUID; var measurement = opts.measurement; // console.log(' - creating new step/measurement m_id:'+measurement.measurementId); var log = ' <green><bold>created:</bold></green> new step/measurement m_id:'+measurement.measurementId+' for campus:'+campusUUID; var params = { step_uuid: AD.util.uuid(), campus_uuid: campusUUID, measurement_id: measurement.measurementId, language_code: ADCore.user.current(req).getLanguageCode(), step_label: measurement.measurementName, step_description: measurement.measurementDescription }; var userUUID = null; if ('undefined' != typeof req.appdev.userUUID) { userUUID = req.appdev.userUUID; } else { AD.log.error('*** Shoot! req.appdev.userUUID not defined yet. How?!'); } return DBHelper.applyMultilingualTransaction({ userUUID:userUUID, operation:'create', params:params, table:NSServerSteps, assocTable:NSServerUserSteps, log:log }); };
// step : compile the Approval packet: function(next){ // clean up Dates: var createdAt = AD.util.moment(activity.createdAt).format('LL'); activity.date_start = AD.util.moment(activity.date_start).format('LL'); if (activity.date_end != null){ activity.date_end = AD.util.moment(activity.date_end).format('LL'); } else { activity.date_end = ''; } var request = { "menu":{ "icon":"fa-calendar", "action": { "key":"fcf.activityapproval.newActivity", "context":"opstool-FCFActivities" }, "instanceRef":"activity_name", "createdBy":creator.displayName(), "date":createdAt }, "form":{ "data":activity, "view":"/opstools/FCFActivities/views/FCFActivities/activityApproval.ejs", "viewData":{ "objectives":objectives, "language_code":language_code } }, "relatedInfo":{ "view":"/opstools/FCFActivities/views/FCFActivities/activityApprovalRelated.ejs", "viewData":{ "user":{ "displayName":creator.displayName(), "avatar":creator.avatar, "teams":ministryTeams }, "teamID":activity.team, "createdAt":createdAt } }, "callback":{ message:"fcf.activities.activity", reference: { id: activity.id } }, "permission":{ actionKey:'fcf.activities.approve', userID: creatorGUID } }; ADCore.queue.publish('opsportal.approval.create', request); AD.log('... Published Request:', request); next(); }
validateUser: function(req, res) { var dfd = $.Deferred(); AD.log(' - validateUser()'); // this is our testing Stub, so load in our // expected incoming data: var testData = {}; var test = req.param('test'); // allow to specify a different set on the querystring // NOTE: .parse( .stringify() ) is a method to clone an object. if (Tests[test]) { testData = AD.util.clone(Tests[test]); } else { testData = AD.util.clone(Tests.defaultClientData); } // if any of the data is provided in the req, keep it: for (var t in testData) { var val = req.param(t); if (val) { testData[t] = val; } } // Lets try to make the data seem more intelligent // match the campus_uuids & step_uuids with values from the DB: campusMatchUp(req, testData) .fail(function(err){ dfd.reject(err); }) .then(function(){ //AD.log(' - campusMatchUp().then()'); // now matchup the step uuid's stepMatchUp(testData) .fail(function(err){ dfd.reject(err); }) .then(function(){ //AD.log(' - stepMatchUp().then()'); // make sure lastSyncTimestamp is a valid value if (testData.lastSyncTimestamp == '') { // let's use yesterday: var dateNow = new Date(); // actual date of right now var year = dateNow.getFullYear(); // now have YYYY var month = dateNow.getMonth() +1; var days = dateNow.getDate() - 1; if (days < 1) { days = 28; // just to be sure month = month -1; if (month == 0) { month = 12; year --; } } var newDate = month+"/"+days+"/"+year; testData.lastSyncTimestamp = new Date(newDate).getTime(); } // make sure our dates make sense dateMatchUp(testData); AD.log('*** testData ***'); AD.log(testData.transactionLog); AD.log(); AD.log(); // now load up our test data: for( var key in testData) { req.body[key] = testData[key]; } dfd.resolve(); }); }); return dfd; }
],function(err, results){ if (err) { dfd.reject(err); return; } // clean up Dates: var createdAt = AD.util.moment(options.createdAt).format('LL'); var request = { "menu":{ "icon":options.icon || 'fa-file-image-o', "action": { "key":options.action, "context":"opstool-FCFActivities" }, // "instanceRef":"caption", "createdBy":creator.displayName(), "date":createdAt }, // "form":{ // "data":image, // "view":"//opstools/FCFActivities/views/FCFActivities/imageApproval.ejs", // "viewData":{ // "taggedPeople":listTeammatesTagged // // "objectives":objectives // } // }, "relatedInfo":{ "viewData":{ "user":{ "displayName":creator.displayName(), "avatar":creator.avatar, "teams":ministryTeams }, "createdAt":createdAt, } }, "callback":options.callback, "permission":{ actionKey:options.permissionKey, userID: creatorGUID } }; dfd.resolve(request); });