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;
        }
Пример #5
0
            ],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);

            });