Files
ShoppingList.dev/transfer.js

118 lines
4.1 KiB
JavaScript
Raw Normal View History

2017-02-07 20:09:53 +00:00
var TransferJSRevision="$Revision: 58 $".split(' ')[1]
function callServerFunction(sFunctionName, ojData, cbSuccess, cbError) {
ojData.action=sFunctionName;
ojData.ShoppingListName=sGShoppingListName;
ojData.BrowserId=sGBrowserId;
$.ajax
({
type: "POST",
timeout: 120000,
url: './shoppinglist.php',
dataType: 'json',
async: true,
//json object to sent to the authentication url
data: ojData}).done(cbSuccess).fail(cbError);
}
function OnError_callback(response,textstatus)
{
console.log('[OnError_callback] Error:', response, textstatus);
}
function transferQDispatcher() {
updateTransferQCounter();
db.objectStore("TransferQ").each(function(Qitem){
if (Qitem.value.type=="SendEntry") {
var EntryId=Qitem.value.data;
var TransferQKey=Qitem.key;
db.objectStore("Entry").get(Number(EntryId)).done(function(result,event){
if (null != result) {
var theEntry={"EntryId":EntryId, "TransferQKey":TransferQKey, "Description":result.Description, "shopGlobalId":result.shopGlobalId};
callServerFunction("ReceiveEntry",theEntry,deleteQitem,OnError_callback)
} else {
// this entry no longer exists, maybe the user deleted it before it could be transferred
deleteQitem({"TransferQKey":TransferQKey, "Result":"True"});
console.log("[transferQDispatcher] Failed to find Q-record from Data :" , Qitem);
}
}
)
}
if (Qitem.value.type=="SendShop") {
var ShopKey=Qitem.value.data;
var TransferQKey=Qitem.key;
db.objectStore("Shop").get(ShopKey).done(function(result,event){
if (null != result) {
var theShop={"GlobalId":result.GlobalId, "TransferQKey":TransferQKey, "Description":result.Description};
callServerFunction("ReceiveShop",theShop,deleteQitem,OnError_callback)
} else {
// this entry no longer exists, maybe the user deleted it before it could be transferred
deleteQitem({"TransferQKey":TransferQKey, "Result":"True"});
console.log("[transferQDispatcher] Failed to find Q-record from Data :" , Qitem);
}
}
);
}
if (Qitem.value.type=="ShopDeletion") {
var GlobalId=Qitem.value.data;
var TransferQKey=Qitem.key;
var oData={"TransferQKey":TransferQKey, "GlobalId":GlobalId};
callServerFunction("DeleteShop",oData,deleteQitem,OnError_callback)
}
if (Qitem.value.type=="BrandBrowser") {
var TransferQKey=Qitem.key;
var oData={ "ShoppingListName":Qitem.value.data, "TransferQKey":TransferQKey };
callServerFunction("BrandBrowser",oData,deleteQitem,OnError_callback)
}
if (Qitem.value.type=="DeleteEntry") {
var TransferQKey=Qitem.key;
var oData={"TransferQKey":TransferQKey, "Description":Qitem.value.data.Description, "shopGlobalId":Qitem.value.data.shopGlobalId};
callServerFunction("DeleteEntry",oData,deleteQitem,OnError_callback)
}
})
}
function deleteQitem(response){
if (response.Result == "True") {
db.objectStore("TransferQ").delete(Number(response.TransferQKey)).done(function(){
updateTransferQCounter();
console.log("[deleteQitem] Done SendEntry (" + response.TransferQKey + "): ", response)
}).fail(function(result,event){
console.log("[deleteQitem] failed deleteQitem (" , response , "): ", response,event)
});
} else {
console.log("[deleteQitem] Failed SendEntry (" + response.TransferQKey + "): " , response);
}
}
function addToQ(type,data,unique) {
var isUnique=false || unique;
var theItem = new Object();
theItem.type=type;
theItem.data=data;
if (isUnique) {
db.objectStore("TransferQ").index("type").get("GetServerEntries").done(function(result){
if (result==null) {
db.objectStore("TransferQ").add(theItem).done(function (result){ transferQDispatcher(); });
console.log("[addToQ] uniqueAdd added: " , theItem );
} else {
console.log("[addToQ] uniqueAdd item not added because such typed item already exists: " , theItem);
}
})
} else {
db.objectStore("TransferQ").add(theItem).done(function (result){ transferQDispatcher(); });
console.log("[addToQ] non-unique Add added: " , theItem);
}
}