EC.Project.loadRemoteXML
by ParanoidAndroid77
JavaScript
/*jslint vars: true , nomen: true, devel: true, plusplus:true*/
/*global $, jQuery*/
/**
* @module EC
* @submodule Project
*/
var EC = EC || {};
EC.Project = EC.Project || {};
EC.Project = (function (module) {
"use strict";
module.loadRemoteXML = function (the_project_name) {
var cached_project_names;
var i;
var iLength;
var project_name = the_project_name;
var project_xml_URL;
var epicollect_server_url;
//if the project is already on the device, warn user and exit
try {
cached_project_names = JSON.parse(window.localStorage.project_names);
iLength = cached_project_names.length;
for (i = 0; i < iLength; i++) {
if (cached_project_names[i] === project_name) {
EC.Notification.showAlert(EC.Localise.getTranslation("error"), EC.Localise.getTranslation("project_already_loaded"));
return;
}
}
} catch (error) {
//no project yet
console.log("no projects on device yet");
}
//If Chrome, load xml locally
if (EC.Utils.isChrome()) {
project_xml_URL = "xml/" + project_name + ".xml";
} else {
//if the project name is a full url, use that instead of app settings
if (EC.Utils.isURL(project_name)) {
project_xml_URL = project_name;
} else {
//get the project server url (default to http://plus.epicollect.net/)
epicollect_server_url = window.localStorage.project_server_url;
project_xml_URL = epicollect_server_url + project_name + '.xml';
}
}
EC.Notification.showProgressDialog();
if (EC.Utils.isChrome()) {
project_xml_URL = "../" + project_xml_URL;
}
$.ajax({
url: project_xml_URL, //url
type: 'get', //method type post or...