/ *
* This Source Code Form is subject to the terms of the Mozilla Public
* License , v . 2.0 . If a copy of the MPL was not distributed with this
* file , You can obtain one at http : //mozilla.org/MPL/2.0/.
* /
function uploadList ( ) {
if ( packages . length == 0 ) {
app . dialog . alert ( "Your list doesn't have anything to send." , "Empty List" ) ;
return ;
}
app . dialog . preloader ( "Uploading..." ) ;
var uploadlistdialogopen = true ;
$ . ajax ( {
url : SETTINGS . sharelistapi ,
dataType : 'json' ,
method : 'post' ,
data : {
packages : JSON . stringify ( packages ) ,
appversion : app _version
} ,
timeout : 15 * 1000 ,
success : function ( resp ) {
if ( uploadlistdialogopen ) {
app . dialog . close ( ) ;
uploadlistdialogopen = false ;
}
if ( resp . status == "OK" ) {
JsBarcode ( "#listidbarcode" , resp . uuid , {
format : "code128" ,
ean128 : false ,
width : 2 ,
height : 40
} ) ;
$ ( "#listidbarcodeli" ) . css ( "display" , "" ) ;
appendActivityLog ( "Shared List" , countPackages ( ) + " items sent" , "" , "fas fa-file-upload" ) ;
} else {
app . dialog . alert ( resp . message , "Error" ) ;
}
} ,
error : function ( jqXHR , status , errorThrown ) {
if ( uploadlistdialogopen ) {
app . dialog . close ( ) ;
uploadlistdialogopen = false ;
}
app . dialog . alert ( "There was a network or server issue while uploading the list. Please try again." , "Error" ) ;
}
} ) ;
}
function downloadItemList ( code ) {
if ( typeof code == "undefined" ) {
code = $ ( "#getlistidbox" ) . val ( ) ;
}
if ( code . match ( /^[a-f0-9]{10}$/i ) ) {
app . dialog . preloader ( "Downloading..." ) ;
var downloadlistdialogopen = true ;
$ . ajax ( {
url : SETTINGS . sharelistapi ,
dataType : 'json' ,
method : 'get' ,
data : {
uuid : code
} ,
timeout : 15 * 1000 ,
success : function ( resp ) {
if ( downloadlistdialogopen ) {
app . dialog . close ( ) ;
downloadlistdialogopen = false ;
}
if ( resp . status == "OK" ) {
if ( typeof resp . appversion == "string" ) {
if ( resp . appversion != app _version ) {
app . dialog . alert ( "The sender is using " + app . name + " verson " + resp . appversion + " but you have " + app _version + ". Both devices must have the same version installed." , "Version Mismatch" ) ;
return ;
}
} else {
app . dialog . alert ( "The sender is using an old version of " + app . name + ". Both devices must have the same version installed." , "Version Mismatch" ) ;
return ;
}
var skipped = importPackageList ( resp . packages ) ;
if ( skipped > 0 ) {
app . dialog . alert ( "List imported and merged with the existing one. " + skipped + " items already existed locally and were skipped. Verify their delivery status manually." , "Import Complete" ) ;
} else if ( skipped == - 1 ) {
app . dialog . alert ( "List imported." , "Import Complete" ) ;
} else {
app . dialog . alert ( "List imported and merged with the existing one." , "Import Complete" ) ;
}
} else {
app . dialog . alert ( resp . message , "Error" ) ;
}
} ,
error : function ( jqXHR , status , errorThrown ) {
if ( downloadlistdialogopen ) {
app . dialog . close ( ) ;
downloadlistdialogopen = false ;
}
app . dialog . alert ( "There was a network or server issue while downloading the list. Please try again." , "Error" ) ;
}
} ) ;
} else {
app . dialog . alert ( "That's not a valid list ID." , "Error" ) ;
}
}
function scanListIDBarcode ( ) {
scanBarcode ( function ( code ) {
playSound ( "scan" ) ;
downloadItemList ( code ) ;
} , function ( error ) {
app . dialog . alert ( error , "Error" ) ;
} ) ;
}