This commit is contained in:
2022-08-28 23:10:17 +00:00
parent 4e5095d46c
commit c2cf61c4ce
3 changed files with 542 additions and 436 deletions

View File

@@ -43,7 +43,7 @@ namespace rockfishCore.Controllers
//do stuff with the notification
(string username, string password) = rockfishCore.Util.AutoOrderProcessingUtil.GetUsernameAndPasswordFromAuthorizeHeader(Authorization);
// Now use username and password with whatever authentication process you want
if (username == "Y24PYYDQSA1L12905N5MKU" && password == "GI2F7CP17C2JS872MHASAF")
if (username == "Y24PYYDQSA1L12905N5MKU" && password == "MA8GMQK2PC3FDNT1RTR68R")
{
//put the notification into the db as freeform notification information
//to be processed by other code later. i.e. just capture it as is cleanly and don't bother trying to do anything fancy here this should be tight and focused and side effect free

View File

@@ -12,383 +12,445 @@
/*global $, io, app */
app.api = (function () {
"use strict";
var initModule,
getAuthHeaderObject,
RockFishVersion,
get,
remove,
create,
update,
uploadFile,
putAction,
postAction,
createLicense,
createRavLicense,
getLicenseRequests,
generateFromRequest,
licenseEmailResponse;
"use strict";
var initModule,
getAuthHeaderObject,
RockFishVersion,
get,
remove,
create,
update,
uploadFile,
putAction,
postAction,
createLicense,
createRavLicense,
getLicenseRequests,
generateFromRequest,
licenseEmailResponse,
test;
RockFishVersion = "6.20";
RockFishVersion = "6.20";
//////////////////////////////////////////////////////////////////////////////////////
// NOT AUTHORIZED ERROR HANDLER
//////////////////////////////////////////////////////////////////////////////////////
// NOT AUTHORIZED ERROR HANDLER
$(document).ajaxError(function (event, jqxhr, settings, thrownError) {
//unauthorized? Trigger logout which will trigger login after clearing creds
if (jqxhr.status == 401) {
window.location.replace("#!/logout");
}
});
$(document).ajaxError(function (event, jqxhr, settings, thrownError) {
//unauthorized? Trigger logout which will trigger login after clearing creds
if (jqxhr.status == 401) {
window.location.replace("#!/logout");
}
});
//////////////////////////////////////////////////////////////////////////////////////
// UTILITY
//////////////////////////////////////////////////////////////////////////////////////
// UTILITY
///////////////////////////////////////////////////////////
// Return the auth token header
//
//
getAuthHeaderObject = function () {
return {
Authorization: "Bearer " + app.shell.stateMap.user.token
///////////////////////////////////////////////////////////
// Return the auth token header
//
//
getAuthHeaderObject = function () {
return {
Authorization: "Bearer " + app.shell.stateMap.user.token
};
};
};
//////////////////////////////////////////////////////////////////////////////////////
// ROCKFISH CORE ROUTES
//////////////////////////////////////////////////////////////////////////////////////
// ROCKFISH CORE ROUTES
///////////////////////////////////////////////////////////
//Create
//Route app.post('/api/:obj_type/create', function (req, res) {
//
create = function (apiRoute, objData, callback) {
$.ajax({
method: "post",
dataType: "json",
url: app.shell.stateMap.apiUrl + apiRoute,
headers: getAuthHeaderObject(),
contentType: "application/json; charset=utf-8",
data: JSON.stringify(objData),
success: function (data, textStatus) {
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg: textStatus + "\n" + jqXHR.responseText + "\n" + errorThrown,
error_detail: {}
///////////////////////////////////////////////////////////
//Create
//Route app.post('/api/:obj_type/create', function (req, res) {
//
create = function (apiRoute, objData, callback) {
$.ajax({
method: "post",
dataType: "json",
url: app.shell.stateMap.apiUrl + apiRoute,
headers: getAuthHeaderObject(),
contentType: "application/json; charset=utf-8",
data: JSON.stringify(objData),
success: function (data, textStatus) {
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg:
textStatus +
"\n" +
jqXHR.responseText +
"\n" +
errorThrown,
error_detail: {}
});
}
});
}
});
};
};
/////////////////
//Get - get anything, the caller provides the route, this should replace most legacy get
//
get = function (apiRoute, callback) {
$.ajax({
method: "GET",
dataType: "json",
url: app.shell.stateMap.apiUrl + apiRoute,
headers: getAuthHeaderObject(),
/////////////////
//Get - get anything, the caller provides the route, this should replace most legacy get
//
get = function (apiRoute, callback) {
$.ajax({
method: "GET",
dataType: "json",
url: app.shell.stateMap.apiUrl + apiRoute,
headers: getAuthHeaderObject(),
success: function (data, textStatus) {
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg: textStatus + "\n" + jqXHR.responseText + "\n" + errorThrown,
error_detail: {}
success: function (data, textStatus) {
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg:
textStatus +
"\n" +
jqXHR.responseText +
"\n" +
errorThrown,
error_detail: {}
});
}
});
}
});
};
////////////////////
};
////////////////////
///////////////////////////////////////////////////////////
//Update
//route: app.post('/api/:obj_type/update/:id', function (req, res) {
//
update = function (objType, objData, callback) {
var theId;
if (!objData.id) {
return callback({
error: 1,
msg: "app.api.js::update->Error: missing id field in update document",
error_detail: objData
});
}
theId = objData.id;
$.ajax({
method: "put",
dataType: "json",
url: app.shell.stateMap.apiUrl + objType + "/" + theId,
headers: getAuthHeaderObject(),
contentType: "application/json; charset=utf-8",
data: JSON.stringify(objData),
success: function (data, textStatus) {
if (data == null) {
data = { ok: 1 };
///////////////////////////////////////////////////////////
//Update
//route: app.post('/api/:obj_type/update/:id', function (req, res) {
//
update = function (objType, objData, callback) {
var theId;
if (!objData.id) {
return callback({
error: 1,
msg: "app.api.js::update->Error: missing id field in update document",
error_detail: objData
});
}
theId = objData.id;
$.ajax({
method: "put",
dataType: "json",
url: app.shell.stateMap.apiUrl + objType + "/" + theId,
headers: getAuthHeaderObject(),
contentType: "application/json; charset=utf-8",
data: JSON.stringify(objData),
success: function (data, textStatus) {
if (data == null) {
data = { ok: 1 };
}
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg: textStatus + "\n" + jqXHR.responseText + "\n" + errorThrown,
error_detail: {}
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg:
textStatus +
"\n" +
jqXHR.responseText +
"\n" +
errorThrown,
error_detail: {}
});
}
});
}
});
};
};
///////////////////////////////////////////////////////////
//remove Item
remove = function (apiRoute, callback) {
$.ajax({
method: "DELETE",
dataType: "json",
url: app.shell.stateMap.apiUrl + apiRoute,
headers: getAuthHeaderObject(),
success: function (data, textStatus) {
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg: textStatus + "\n" + jqXHR.responseText + "\n" + errorThrown,
error_detail: {}
///////////////////////////////////////////////////////////
//remove Item
remove = function (apiRoute, callback) {
$.ajax({
method: "DELETE",
dataType: "json",
url: app.shell.stateMap.apiUrl + apiRoute,
headers: getAuthHeaderObject(),
success: function (data, textStatus) {
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg:
textStatus +
"\n" +
jqXHR.responseText +
"\n" +
errorThrown,
error_detail: {}
});
}
});
}
});
};
};
///////////////////////////////////////////////////////////
// uploadFile
// (ajax route to upload a file)
//
uploadFile = function (apiRoute, objData, callback) {
$.ajax({
method: "post",
dataType: "json",
url: app.shell.stateMap.apiUrl + apiRoute,
headers: getAuthHeaderObject(),
contentType: false,
processData: false,
data: objData,
success: function (data, textStatus) {
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg: textStatus + "\n" + errorThrown,
error_detail: {}
///////////////////////////////////////////////////////////
// uploadFile
// (ajax route to upload a file)
//
uploadFile = function (apiRoute, objData, callback) {
$.ajax({
method: "post",
dataType: "json",
url: app.shell.stateMap.apiUrl + apiRoute,
headers: getAuthHeaderObject(),
contentType: false,
processData: false,
data: objData,
success: function (data, textStatus) {
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg: textStatus + "\n" + errorThrown,
error_detail: {}
});
}
});
}
});
};
};
//////////////////////////////////////////////////////////////
//putAction - ad-hoc put method used to trigger actions etc
//
putAction = function (apiRoute, callback) {
$.ajax({
method: "put",
dataType: "json",
url: app.shell.stateMap.apiUrl + apiRoute,
headers: getAuthHeaderObject(),
contentType: "application/json; charset=utf-8",
//data: JSON.stringify(objData),
success: function (data, textStatus) {
if (data == null) {
data = { ok: 1 };
}
//////////////////////////////////////////////////////////////
//putAction - ad-hoc put method used to trigger actions etc
//
putAction = function (apiRoute, callback) {
$.ajax({
method: "put",
dataType: "json",
url: app.shell.stateMap.apiUrl + apiRoute,
headers: getAuthHeaderObject(),
contentType: "application/json; charset=utf-8",
//data: JSON.stringify(objData),
success: function (data, textStatus) {
if (data == null) {
data = { ok: 1 };
}
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg: textStatus + "\n" + jqXHR.responseText + "\n" + errorThrown,
error_detail: {}
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg:
textStatus +
"\n" +
jqXHR.responseText +
"\n" +
errorThrown,
error_detail: {}
});
}
});
}
});
};
};
//////////////////////////////////////////////////////////////
//postAction - ad-hoc post method used to trigger actions etc
// (becuase it shouldn't have been put in the first place above)
postAction = function (apiRoute, callback) {
$.ajax({
method: "post",
dataType: "json",
url: app.shell.stateMap.apiUrl + apiRoute,
headers: getAuthHeaderObject(),
contentType: "application/json; charset=utf-8",
success: function (data, textStatus) {
if (data == null) {
data = { ok: 1 };
}
//////////////////////////////////////////////////////////////
//postAction - ad-hoc post method used to trigger actions etc
// (becuase it shouldn't have been put in the first place above)
postAction = function (apiRoute, callback) {
$.ajax({
method: "post",
dataType: "json",
url: app.shell.stateMap.apiUrl + apiRoute,
headers: getAuthHeaderObject(),
contentType: "application/json; charset=utf-8",
success: function (data, textStatus) {
if (data == null) {
data = { ok: 1 };
}
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg: textStatus + "\n" + jqXHR.responseText + "\n" + errorThrown,
error_detail: {}
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg:
textStatus +
"\n" +
jqXHR.responseText +
"\n" +
errorThrown,
error_detail: {}
});
}
});
}
});
};
};
//////////////////////////////////////////////////////////////////////////////////////
// LICENSE KEY RELATED API METHODS
//////////////////////////////////////////////////////////////////////////////////////
// LICENSE KEY RELATED API METHODS
///////////////////////////////////////////////////////////
//CreateLicense
//Route app.post('/api/license/create', function (req, res) {
//
createLicense = function (objData, callback) {
$.ajax({
method: "post",
dataType: "text",
url: app.shell.stateMap.apiUrl + "license/generate",
headers: getAuthHeaderObject(),
contentType: "application/json; charset=utf-8",
data: JSON.stringify(objData),
success: function (data, textStatus) {
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg: textStatus + "\n" + errorThrown,
error_detail: {}
///////////////////////////////////////////////////////////
//CreateLicense
//Route app.post('/api/license/create', function (req, res) {
//
createLicense = function (objData, callback) {
$.ajax({
method: "post",
dataType: "text",
url: app.shell.stateMap.apiUrl + "license/generate",
headers: getAuthHeaderObject(),
contentType: "application/json; charset=utf-8",
data: JSON.stringify(objData),
success: function (data, textStatus) {
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg: textStatus + "\n" + errorThrown,
error_detail: {}
});
}
});
}
});
};
};
///////////////////////////////////////////////////////////
//CreateRavLicense
//Route app.post('/api/license/create', function (req, res) {
//
createRavLicense = function (objData, callback) {
$.ajax({
method: "post",
dataType: "text",
url: app.shell.stateMap.apiUrl + "rvl",
headers: getAuthHeaderObject(),
contentType: "application/json; charset=utf-8",
data: JSON.stringify(objData),
success: function (data, textStatus) {
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg: textStatus + "\n" + errorThrown,
error_detail: {}
///////////////////////////////////////////////////////////
//CreateRavLicense
//Route app.post('/api/license/create', function (req, res) {
//
createRavLicense = function (objData, callback) {
$.ajax({
method: "post",
dataType: "text",
url: app.shell.stateMap.apiUrl + "rvl",
headers: getAuthHeaderObject(),
contentType: "application/json; charset=utf-8",
data: JSON.stringify(objData),
success: function (data, textStatus) {
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg: textStatus + "\n" + errorThrown,
error_detail: {}
});
}
});
}
});
};
};
///////////////////////////////////////////////////////////
//GetLicenseRequests
//Fetch license requests
//route: app.get('/api/license/requests', function (req, res) {
//
getLicenseRequests = function (callback) {
$.ajax({
method: "GET",
dataType: "json",
url: app.shell.stateMap.apiUrl + "license/requests",
headers: getAuthHeaderObject(),
success: function (data, textStatus) {
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg: textStatus + "\n" + errorThrown,
error_detail: {}
///////////////////////////////////////////////////////////
//GetLicenseRequests
//Fetch license requests
//route: app.get('/api/license/requests', function (req, res) {
//
getLicenseRequests = function (callback) {
$.ajax({
method: "GET",
dataType: "json",
url: app.shell.stateMap.apiUrl + "license/requests",
headers: getAuthHeaderObject(),
success: function (data, textStatus) {
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg: textStatus + "\n" + errorThrown,
error_detail: {}
});
}
});
}
});
};
};
///////////////////////////////////////////////////////////
//GenerateFromRequest
//Fetch generated response to license request
//route: app.get('/api/license/generateFromRequest/:uid', function (req, res) {
//
generateFromRequest = function (uid, callback) {
$.ajax({
method: "GET",
dataType: "json",
url: app.shell.stateMap.apiUrl + "license/generateFromRequest/" + uid,
headers: getAuthHeaderObject(),
success: function (data, textStatus) {
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg: textStatus + "\n" + errorThrown,
error_detail: {}
///////////////////////////////////////////////////////////
//GenerateFromRequest
//Fetch generated response to license request
//route: app.get('/api/license/generateFromRequest/:uid', function (req, res) {
//
generateFromRequest = function (uid, callback) {
$.ajax({
method: "GET",
dataType: "json",
url:
app.shell.stateMap.apiUrl +
"license/generateFromRequest/" +
uid,
headers: getAuthHeaderObject(),
success: function (data, textStatus) {
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg: textStatus + "\n" + errorThrown,
error_detail: {}
});
}
});
}
});
};
};
///////////////////////////////////////////////////////////
//Email license request response
//app.post('/api/license/email_response', function (req, res) {
//
licenseEmailResponse = function (objData, callback) {
$.ajax({
method: "post",
dataType: "text",
url: app.shell.stateMap.apiUrl + "license/email_response",
headers: getAuthHeaderObject(),
contentType: "application/json; charset=utf-8",
data: JSON.stringify(objData),
success: function (data, textStatus) {
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg: textStatus + "\n" + errorThrown,
error_detail: {}
///////////////////////////////////////////////////////////
//Email license request response
//app.post('/api/license/email_response', function (req, res) {
//
licenseEmailResponse = function (objData, callback) {
$.ajax({
method: "post",
dataType: "text",
url: app.shell.stateMap.apiUrl + "license/email_response",
headers: getAuthHeaderObject(),
contentType: "application/json; charset=utf-8",
data: JSON.stringify(objData),
success: function (data, textStatus) {
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg: textStatus + "\n" + errorThrown,
error_detail: {}
});
}
});
}
});
};
};
initModule = function () {};
///////////////////////////////////////////////////////////
//test functin for rockfish endpoint testing
//
//
test = function (objData, callback) {
//Test fake shareit webhook
$.ajax({
method: "post",
dataType: "json",
url: app.shell.stateMap.apiUrl + "order/shareit",
username: 'Y24PYYDQSA1L12905N5MKU',
password: 'MA8GMQK2PC3FDNT1RTR68R',
contentType: "application/json; charset=utf-8",
data: JSON.stringify(objData),
success: function (data) {
callback(data);
},
error: function (jqXHR, textStatus, errorThrown) {
callback({
error: 1,
msg: textStatus + "\n" + errorThrown,
error_detail: {}
});
}
});
};
return {
initModule: initModule,
getAuthHeaderObject: getAuthHeaderObject,
RockFishVersion: RockFishVersion,
get: get,
remove: remove,
create: create,
update: update,
uploadFile: uploadFile,
putAction: putAction,
postAction: postAction,
createLicense: createLicense,
createRavLicense: createRavLicense,
getLicenseRequests: getLicenseRequests,
generateFromRequest: generateFromRequest,
licenseEmailResponse: licenseEmailResponse
};
initModule = function () {};
return {
initModule: initModule,
getAuthHeaderObject: getAuthHeaderObject,
RockFishVersion: RockFishVersion,
get: get,
remove: remove,
create: create,
update: update,
uploadFile: uploadFile,
putAction: putAction,
postAction: postAction,
createLicense: createLicense,
createRavLicense: createRavLicense,
getLicenseRequests: getLicenseRequests,
generateFromRequest: generateFromRequest,
licenseEmailResponse: licenseEmailResponse,
test: test
};
})();

View File

@@ -7,108 +7,152 @@
/*global $, app */
app.rfsettings = (function() {
"use strict";
//---------------- BEGIN MODULE SCOPE VARIABLES --------------
var stateMap = {},
configModule,
onChangePassword,
initModule,
onTest;
//----------------- END MODULE SCOPE VARIABLES ---------------
app.rfsettings = (function () {
"use strict";
//---------------- BEGIN MODULE SCOPE VARIABLES --------------
var stateMap = {},
configModule,
onChangePassword,
initModule,
onTest;
//----------------- END MODULE SCOPE VARIABLES ---------------
//------------------- BEGIN UTILITY METHODS ------------------
//-------------------- END UTILITY METHODS -------------------
//------------------- BEGIN EVENT HANDLERS -------------------
///////////////////////////////
//ONUPDATE
//
onChangePassword = function(event) {
event.preventDefault();
$.gevent.publish("app-clear-error");
//get form data
var formData = $("form").serializeArray({
checkboxesAsBools: true
});
var submitData = app.utilB.objectifyFormDataArray(formData);
app.api.create(
"user/" + app.shell.stateMap.user.id + "/changepassword",
submitData,
function(res) {
if (res.error) {
$.gevent.publish("app-show-error", res.msg);
} else {
page("#!/logout");
}
}
);
return false; //prevent default?
};
//------------------- BEGIN UTILITY METHODS ------------------
//-------------------- END UTILITY METHODS -------------------
//------------------- BEGIN EVENT HANDLERS -------------------
///////////////////////////////
//ONTEST
//
onTest = function(event) {
event.preventDefault();
//ONUPDATE
//
onChangePassword = function (event) {
event.preventDefault();
$.gevent.publish("app-clear-error");
//get form data
var formData = $("form").serializeArray({
checkboxesAsBools: true
});
return false; //prevent default?
};
//-------------------- END EVENT HANDLERS --------------------
var submitData = app.utilB.objectifyFormDataArray(formData);
//------------------- BEGIN PUBLIC METHODS -------------------
//CONFIGMODULE
//
configModule = function(context) {
stateMap.context = context.context;
if (stateMap.context.params.id) {
stateMap.id = stateMap.context.params.id;
}
};
//INITMODULE
//
initModule = function($container) {
if (typeof $container === "undefined") {
$container = $("#app-shell-main-content");
}
$container.html(Handlebars.templates["app.rfsettings"]({}));
// bind actions
$("#btn-change-password").bind("click", onChangePassword);
$("#btn-test").bind("click", onTest);
//Context menu
app.nav.contextClear();
app.api.get("meta/server_version/", function(res) {
if (res.error) {
$.gevent.publish("app-show-error", res.msg);
} else {
$("#about").append(
"<p>Rockfish client version: " +
app.api.RockFishVersion +
"</p><p>Rockfish server version: " +
res.server_version +
"</p>"
app.api.create(
"user/" + app.shell.stateMap.user.id + "/changepassword",
submitData,
function (res) {
if (res.error) {
$.gevent.publish("app-show-error", res.msg);
} else {
page("#!/logout");
}
}
);
}
});
////app.nav.setContextTitle("Search");
};
return false; //prevent default?
};
//PUBLIC METHODS
//
return {
configModule: configModule,
initModule: initModule
};
//------------------- END PUBLIC METHODS ---------------------
///////////////////////////////
//ONTEST
//
onTest = function (event) {
event.preventDefault();
var submitData = {
creation_date: "2018-06-19T11:08:09.0000000Z", // <-- NEW
id: 283832781, // <-- NEW
order_notification: {
// <-- NEW - Type of the message (same as in XML with out the "e5"-prefix)
purchase: {
customer_data: {
billing_contact: {},
customer_payment_data: {},
delivery_contact: {},
language: "English",
language_iso: "en", // <-- NEW
reg_name: "Test",
shopper_id: "5678", // <-- NEW, also known as Customer ID
subscribe_newsletter: false,
user_id: "abc@test.com-100"
},
payment_status: "complete",
payment_status_id: "PCA", // <-- NEW, our status ID
purchase_id: 1234567890,
purchase_date: "2018-03-29T10:25:12.0000000Z",
purchase_item: [
// <-- NEW, this is now an array
{
running_no: 1,
your_product_id:
"this is the same as product_code in the API"
},
{
running_no: 2
}
],
purchase_origin: "online"
}
}
};
app.api.test(submitData, function (res) {
if (res.error) {
$.gevent.publish("app-show-error", res.msg);
} else {
//do nothing, success!
//$('#key').val(res);
return false;
}
});
return false; //prevent default?
};
//-------------------- 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;
}
};
//INITMODULE
//
initModule = function ($container) {
if (typeof $container === "undefined") {
$container = $("#app-shell-main-content");
}
$container.html(Handlebars.templates["app.rfsettings"]({}));
// bind actions
$("#btn-change-password").bind("click", onChangePassword);
$("#btn-test").bind("click", onTest);
//Context menu
app.nav.contextClear();
app.api.get("meta/server_version/", function (res) {
if (res.error) {
$.gevent.publish("app-show-error", res.msg);
} else {
$("#about").append(
"<p>Rockfish client version: " +
app.api.RockFishVersion +
"</p><p>Rockfish server version: " +
res.server_version +
"</p>"
);
}
});
////app.nav.setContextTitle("Search");
};
//PUBLIC METHODS
//
return {
configModule: configModule,
initModule: initModule
};
//------------------- END PUBLIC METHODS ---------------------
})();