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); } }