118 lines
4.1 KiB
JavaScript
118 lines
4.1 KiB
JavaScript
|
|
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);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|