/*jslint browser : true, continue : true,
devel : true, indent : 2, maxerr : 50,
newcap : true, nomen : true, plusplus : true,
regexp : true, sloppy : true, vars : false,
white : true
*/
/*global $, app */
app.purchases = (function() {
"use strict";
//---------------- BEGIN MODULE SCOPE VARIABLES --------------
var configMap = {
//main_html: '',
settable_map: {}
},
stateMap = {
$append_target: null
},
onSubmit,
loadList,
configModule,
initModule;
//----------------- END MODULE SCOPE VARIABLES ---------------
//------------------- BEGIN UTILITY METHODS ------------------
loadList = function() {
var epochNow = Math.round(new Date().getTime() / 1000);
//----
//fetch
app.api.get("site/" + stateMap.id + "/purchases", function(res) {
if (res.error) {
$.gevent.publish("app-show-error", res.msg);
} else {
//get the list ul
var $appList = $("#rf-list");
$appList.empty();
$.each(res, function(i, obj) {
//bugbug: don't just check for the presence of a cancel date but also is it in the past otherwise it's not cancelled
if (obj.cancelDate && obj.cancelDate < epochNow) {
$appList.append(
"
' +
// app.utilB.genListColumn(app.utilB.epochToShortDate(obj.purchaseDate)) +
// ' ' +
"" +
app.utilB.genListColumn(obj.name) +
" cancelled " +
app.utilB.genListColumn(
app.utilB.epochToShortDate(obj.cancelDate)
) +
"" +
""
);
} else {
$appList.append(
'' +
// app.utilB.genListColumn(app.utilB.epochToShortDate(obj.purchaseDate)) +
// ' ' +
app.utilB.genListColumn(obj.name) +
" expires " +
app.utilB.genListColumn(
app.utilB.epochToShortDate(obj.expireDate)
) +
""
);
//
}
});
}
});
//------
};
//-------------------- END UTILITY METHODS -------------------
//--------------------- BEGIN DOM METHODS --------------------
// Begin private DOM methods
// End private DOM methods
//---------------------- END DOM METHODS ---------------------
//------------------- BEGIN EVENT HANDLERS -------------------
//-------------------- END EVENT HANDLERS --------------------
//------------------- BEGIN PUBLIC METHODS -------------------
//CONFIGMODULE
//
configModule = function(context) {
stateMap.context = context.context;
if (stateMap.context.params.id) {
stateMap.id = stateMap.context.params.id;
}
};
// Begin public method /initModule/
// Example : app.customer.initModule( $('#div_id') );
// Purpose : directs the module to being offering features
// Arguments : $container - container to use
// Action : Provides interface
// Returns : none
// Throws : none
//
initModule = function($container) {
if (typeof $container === "undefined") {
$container = $("#app-shell-main-content");
}
stateMap.sortOrder = "d";
$container.html(Handlebars.templates["app.purchases"]({}));
if (!stateMap.id) {
throw "app.purchases.js::initModule - There is no stateMap.id!";
}
app.api.get("site/" + stateMap.id, function(res) {
if (res.error) {
$.gevent.publish("app-show-error", res.msg);
} else {
//Context menu
app.nav.contextClear();
app.nav.contextAddLink(
"purchaseEdit/new/" + stateMap.id,
"New",
"plus"
);
app.nav.contextAddLink(
"customerEdit/" + res.customerId,
"Customer",
"account"
);
app.nav.contextAddLink(
"customerSiteEdit/" + stateMap.id + "/" + res.customerId,
"Site",
"city"
);
if (stateMap.id) {
loadList();
}
}
});
};
// End public method /initModule/
// return public methods
return {
configModule: configModule,
initModule: initModule
};
//------------------- END PUBLIC METHODS ---------------------
})();