2023-01-24 09:52:58 +00:00
function qsl _rcvd ( id , method ) {
2023-06-29 15:53:18 +00:00
$ ( ".ld-ext-right-r-" + method ) . addClass ( 'running' ) ;
$ ( ".ld-ext-right-r-" + method ) . prop ( 'disabled' , true ) ;
2023-01-24 09:52:58 +00:00
$ . ajax ( {
url : base _url + 'index.php/qso/qsl_rcvd_ajax' ,
type : 'post' ,
data : { 'id' : id ,
'method' : method
} ,
success : function ( data ) {
2023-06-29 15:53:18 +00:00
$ ( ".ld-ext-right-r-" + method ) . removeClass ( 'running' ) ;
$ ( ".ld-ext-right-r-" + method ) . prop ( 'disabled' , false ) ;
2023-01-24 09:52:58 +00:00
if ( data . message == 'OK' ) {
2023-06-02 15:09:02 +00:00
$ ( "#qsl_" + id ) . find ( "span:eq(1)" ) . attr ( 'class' , 'qsl-green' ) ; // Paints arrow green
2023-01-24 09:52:58 +00:00
$ ( ".qsl_rcvd_" + id ) . remove ( ) ; // removes choice from menu
}
else {
$ ( ".bootstrap-dialog-message" ) . append ( '<div class="alert alert-danger"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>You are not allowed to update QSL status!</div>' ) ;
}
}
} ) ;
}
function qsl _sent ( id , method ) {
$ . ajax ( {
url : base _url + 'index.php/qso/qsl_sent_ajax' ,
type : 'post' ,
data : { 'id' : id ,
'method' : method
} ,
success : function ( data ) {
if ( data . message == 'OK' ) {
2023-06-02 15:09:02 +00:00
$ ( "#qsl_" + id ) . find ( "span:eq(0)" ) . attr ( 'class' , 'qsl-green' ) ; // Paints arrow green
2023-01-24 09:52:58 +00:00
$ ( ".qsl_sent_" + id ) . remove ( ) ; // removes choice from menu
}
else {
$ ( ".bootstrap-dialog-message" ) . append ( '<div class="alert alert-danger"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>You are not allowed to update QSL status!</div>' ) ;
}
}
} ) ;
}
// Function: qsl_requested
// Marks QSL card requested against the QSO.
function qsl _requested ( id , method ) {
2023-06-29 15:53:18 +00:00
$ ( ".ld-ext-right-t-" + method ) . addClass ( 'running' ) ;
$ ( ".ld-ext-right-t-" + method ) . prop ( 'disabled' , true ) ;
2023-01-24 09:52:58 +00:00
$ . ajax ( {
url : base _url + 'index.php/qso/qsl_requested_ajax' ,
type : 'post' ,
data : { 'id' : id ,
'method' : method
} ,
success : function ( data ) {
2023-06-29 15:53:18 +00:00
$ ( ".ld-ext-right-t-" + method ) . removeClass ( 'running' ) ;
$ ( ".ld-ext-right-t-" + method ) . prop ( 'disabled' , false ) ;
2023-01-24 09:52:58 +00:00
if ( data . message == 'OK' ) {
2023-06-02 15:09:02 +00:00
$ ( "#qsl_" + id ) . find ( "span:eq(0)" ) . attr ( 'class' , 'qsl-yellow' ) ; // Paints arrow yellow
2023-01-24 09:52:58 +00:00
}
else {
$ ( ".bootstrap-dialog-message" ) . append ( '<div class="alert alert-danger"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>You are not allowed to update QSL status!</div>' ) ;
}
}
} ) ;
}
// Function: qsl_ignore
// Marks QSL card ignore against the QSO.
function qsl _ignore ( id , method ) {
2023-06-29 15:53:18 +00:00
$ ( ".ld-ext-right-ignore" ) . addClass ( 'running' ) ;
$ ( ".ld-ext-right-ignore" ) . prop ( 'disabled' , true ) ;
2023-01-24 09:52:58 +00:00
$ . ajax ( {
url : base _url + 'index.php/qso/qsl_ignore_ajax' ,
type : 'post' ,
data : { 'id' : id ,
'method' : method
} ,
success : function ( data ) {
2023-06-29 15:53:18 +00:00
$ ( ".ld-ext-right-ignore" ) . removeClass ( 'running' ) ;
$ ( ".ld-ext-right-ignore" ) . prop ( 'disabled' , false ) ;
2023-01-24 09:52:58 +00:00
if ( data . message == 'OK' ) {
2023-06-02 15:09:02 +00:00
$ ( "#qsl_" + id ) . find ( "span:eq(0)" ) . attr ( 'class' , 'qsl-grey' ) ; // Paints arrow grey
2023-01-24 09:52:58 +00:00
}
else {
$ ( ".bootstrap-dialog-message" ) . append ( '<div class="alert alert-danger"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>You are not allowed to update QSL status!</div>' ) ;
}
}
} ) ;
}
function qso _delete ( id , call ) {
BootstrapDialog . confirm ( {
title : 'DANGER' ,
message : 'Warning! Are you sure you want delete QSO with ' + call + '?' ,
type : BootstrapDialog . TYPE _DANGER ,
closable : true ,
draggable : true ,
btnOKClass : 'btn-danger' ,
callback : function ( result ) {
if ( result ) {
$ ( ".edit-dialog" ) . modal ( 'hide' ) ;
$ ( ".qso-dialog" ) . modal ( 'hide' ) ;
$ . ajax ( {
url : base _url + 'index.php/qso/delete_ajax' ,
type : 'post' ,
data : { 'id' : id
} ,
success : function ( data ) {
$ ( ".alert" ) . remove ( ) ;
$ ( ".bootstrap-dialog-message" ) . prepend ( '<div class="alert alert-danger"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>The contact with ' + call + ' has been deleted!</div>' ) ;
$ ( "#qso_" + id ) . remove ( ) ; // removes qso from table in dialog
}
} ) ;
}
}
} ) ;
}
function qso _edit ( id ) {
$ . ajax ( {
url : base _url + 'index.php/qso/edit_ajax' ,
type : 'post' ,
data : { 'id' : id
} ,
success : function ( html ) {
BootstrapDialog . show ( {
title : 'QSO Data' ,
cssClass : 'edit-dialog' ,
size : BootstrapDialog . SIZE _WIDE ,
nl2br : false ,
message : html ,
onshown : function ( dialog ) {
var state = $ ( "#input_usa_state_edit option:selected" ) . text ( ) ;
if ( state != "" ) {
$ ( "#stationCntyInputEdit" ) . prop ( 'disabled' , false ) ;
selectize _usa _county ( ) ;
}
$ ( '#input_usa_state_edit' ) . change ( function ( ) {
var state = $ ( "#input_usa_state_edit option:selected" ) . text ( ) ;
if ( state != "" ) {
$ ( "#stationCntyInputEdit" ) . prop ( 'disabled' , false ) ;
selectize _usa _county ( ) ;
} else {
$ ( "#stationCntyInputEdit" ) . prop ( 'disabled' , true ) ;
//$('#stationCntyInput')[0].selectize.destroy();
$ ( "#stationCntyInputEdit" ) . val ( "" ) ;
}
} ) ;
2023-06-16 10:17:56 +00:00
$ ( '#locator' ) . change ( function ( ) {
2023-06-22 16:58:13 +00:00
if ( $ ( this ) . val ( ) . length >= 4 ) {
$ ( '#locator_info' ) . load ( "logbook/searchbearing/" + $ ( this ) . val ( ) + "/" + $ ( '#stationProfile' ) . val ( ) ) . fadeIn ( "slow" ) ;
$ . get ( 'logbook/searchdistance/' + $ ( this ) . val ( ) + "/" + $ ( '#stationProfile' ) . val ( ) , function ( result ) {
document . getElementById ( "distance" ) . value = result ;
} ) ;
}
2023-06-16 10:17:56 +00:00
} ) ;
2023-01-24 09:52:58 +00:00
$ ( '#sota_ref_edit' ) . selectize ( {
maxItems : 1 ,
closeAfterSelect : true ,
loadThrottle : 250 ,
valueField : 'name' ,
labelField : 'name' ,
searchField : 'name' ,
options : [ ] ,
2023-02-06 18:07:30 +00:00
create : true ,
2023-01-24 09:52:58 +00:00
load : function ( query , callback ) {
if ( ! query || query . length < 3 ) return callback ( ) ; // Only trigger if 3 or more characters are entered
$ . ajax ( {
url : base _url + 'index.php/qso/get_sota' ,
type : 'GET' ,
dataType : 'json' ,
data : {
query : query ,
} ,
error : function ( ) {
callback ( ) ;
} ,
success : function ( res ) {
callback ( res ) ;
}
} ) ;
}
} ) ;
$ ( '#wwff_ref_edit' ) . selectize ( {
maxItems : 1 ,
closeAfterSelect : true ,
loadThrottle : 250 ,
valueField : 'name' ,
labelField : 'name' ,
searchField : 'name' ,
options : [ ] ,
2023-02-06 07:33:19 +00:00
create : true ,
2023-01-24 09:52:58 +00:00
load : function ( query , callback ) {
if ( ! query || query . length < 3 ) return callback ( ) ; // Only trigger if 3 or more characters are entered
$ . ajax ( {
url : base _url + 'index.php/qso/get_wwff' ,
type : 'GET' ,
dataType : 'json' ,
data : {
query : query ,
} ,
error : function ( ) {
callback ( ) ;
} ,
success : function ( res ) {
callback ( res ) ;
}
} ) ;
}
} ) ;
$ ( '#pota_ref_edit' ) . selectize ( {
maxItems : 1 ,
closeAfterSelect : true ,
loadThrottle : 250 ,
valueField : 'name' ,
labelField : 'name' ,
searchField : 'name' ,
options : [ ] ,
2023-02-06 18:07:30 +00:00
create : true ,
2023-01-24 09:52:58 +00:00
load : function ( query , callback ) {
if ( ! query || query . length < 3 ) return callback ( ) ; // Only trigger if 3 or more characters are entered
$ . ajax ( {
url : base _url + 'index.php/qso/get_pota' ,
type : 'GET' ,
dataType : 'json' ,
data : {
query : query ,
} ,
error : function ( ) {
callback ( ) ;
} ,
success : function ( res ) {
callback ( res ) ;
}
} ) ;
}
} ) ;
$ ( '#darc_dok_edit' ) . selectize ( {
maxItems : 1 ,
closeAfterSelect : true ,
loadThrottle : 250 ,
valueField : 'name' ,
labelField : 'name' ,
searchField : 'name' ,
options : [ ] ,
create : true ,
load : function ( query , callback ) {
if ( ! query ) return callback ( ) ; // Only trigger if 3 or more characters are entered
$ . ajax ( {
url : base _url + 'index.php/qso/get_dok' ,
type : 'GET' ,
dataType : 'json' ,
data : {
query : query ,
} ,
error : function ( ) {
callback ( ) ;
} ,
success : function ( res ) {
callback ( res ) ;
}
} ) ;
}
} ) ;
} ,
} ) ;
}
} ) ;
}
function spawnQrbCalculator ( locator1 , locator2 ) {
$ . ajax ( {
url : base _url + 'index.php/qrbcalc' ,
type : 'post' ,
success : function ( html ) {
BootstrapDialog . show ( {
title : 'Compute QRB and QTF' ,
size : BootstrapDialog . SIZE _WIDE ,
cssClass : 'lookup-dialog' ,
nl2br : false ,
message : html ,
onshown : function ( dialog ) {
if ( locator1 !== undefined ) {
$ ( "#qrbcalc_locator1" ) . val ( locator1 ) ;
}
if ( locator2 !== undefined ) {
$ ( "#qrbcalc_locator2" ) . val ( locator2 ) ;
calculateQrb ( ) ;
}
} ,
buttons : [ {
label : 'Close' ,
action : function ( dialogItself ) {
dialogItself . close ( ) ;
}
} ]
} ) ;
}
} ) ;
}
function spawnActivatorsMap ( call , count , grids ) {
$ . ajax ( {
url : base _url + 'index.php/activatorsmap' ,
type : 'post' ,
success : function ( html ) {
BootstrapDialog . show ( {
title : 'Activators Map' ,
size : BootstrapDialog . SIZE _WIDE ,
cssClass : 'lookup-dialog' ,
nl2br : false ,
message : html ,
onshown : function ( dialog ) {
showActivatorsMap ( call , count , grids ) ;
} ,
buttons : [ {
label : 'Close' ,
action : function ( dialogItself ) {
dialogItself . close ( ) ;
}
} ]
} ) ;
}
} ) ;
}
function calculateQrb ( ) {
let locator1 = $ ( "#qrbcalc_locator1" ) . val ( ) ;
let locator2 = $ ( "#qrbcalc_locator2" ) . val ( ) ;
$ ( ".qrbalert" ) . remove ( ) ;
if ( validateLocator ( locator1 ) && validateLocator ( locator2 ) ) {
$ . ajax ( {
url : base _url + 'index.php/qrbcalc/calculate' ,
type : 'post' ,
data : { 'locator1' : locator1 ,
'locator2' : locator2 } ,
success : function ( html ) {
var result = "<h5>Negative latitudes are south of the equator, negative longitudes are west of Greenwich. <br/>" ;
result += ' ' + locator1 . toUpperCase ( ) + ' Latitude = ' + html [ 'latlng1' ] [ 0 ] + ' Longitude = ' + html [ 'latlng1' ] [ 1 ] + '<br/>' ;
result += ' ' + locator2 . toUpperCase ( ) + ' Latitude = ' + html [ 'latlng2' ] [ 0 ] + ' Longitude = ' + html [ 'latlng2' ] [ 1 ] + '<br/>' ;
result += 'Distance between ' + locator1 . toUpperCase ( ) + ' and ' + locator2 . toUpperCase ( ) + ' is ' + html [ 'distance' ] + '.<br />' ;
result += 'The bearing is ' + html [ 'bearing' ] + '.</h5>' ;
$ ( ".qrbResult" ) . html ( result ) ;
newpath ( html [ 'latlng1' ] , html [ 'latlng2' ] , locator1 , locator2 ) ;
}
} ) ;
} else {
$ ( '.qrbResult' ) . html ( '<div class="qrbalert alert alert-danger" role="alert">Error in locators. Please check.</div>' ) ;
}
}
function validateLocator ( locator ) {
if ( locator . length < 4 && ! ( /^[a-rA-R]{2}[0-9]{2}[a-xA-X]{0,2}[0-9]{0,2}[a-xA-X]{0,2}$/ . test ( locator ) ) ) {
return false ;
}
return true ;
}
// This displays the dialog with the form and it's where the resulttable is displayed
2023-06-29 16:59:12 +00:00
function spawnLookupModal ( searchphrase , searchtype ) {
2023-01-24 09:52:58 +00:00
$ . ajax ( {
url : base _url + 'index.php/lookup' ,
type : 'post' ,
success : function ( html ) {
BootstrapDialog . show ( {
title : 'Quick lookup' ,
size : BootstrapDialog . SIZE _WIDE ,
cssClass : 'lookup-dialog' ,
nl2br : false ,
message : html ,
onshown : function ( dialog ) {
$ ( '#quicklookuptype' ) . change ( function ( ) {
var type = $ ( '#quicklookuptype' ) . val ( ) ;
2023-06-29 16:59:12 +00:00
changeLookupType ( type ) ;
2023-01-24 09:52:58 +00:00
} ) ;
2023-06-29 16:59:12 +00:00
if ( searchtype !== undefined ) {
$ ( '#quicklookuptype' ) . val ( searchtype ) ;
if ( searchtype == 'dxcc' ) {
$ ( "#quicklookupdxcc" ) . val ( searchphrase ) ;
} else if ( searchtype == 'iota' ) {
$ ( "#quicklookupiota" ) . val ( searchphrase ) ;
} else if ( searchtype == 'cq' ) {
$ ( "#quicklookupcqz" ) . val ( searchphrase ) ;
} else {
$ ( "#quicklookuptext" ) . val ( searchphrase ) ;
}
changeLookupType ( searchtype ) ;
getLookupResult ( this . form ) ;
}
2023-01-24 09:52:58 +00:00
} ,
buttons : [ {
label : 'Close' ,
action : function ( dialogItself ) {
dialogItself . close ( ) ;
}
} ]
} ) ;
}
} ) ;
}
2023-06-29 16:59:12 +00:00
function changeLookupType ( type ) {
if ( type == "dxcc" ) {
$ ( '#quicklookupdxcc' ) . show ( ) ;
$ ( '#quicklookupiota' ) . hide ( ) ;
$ ( '#quicklookupcqz' ) . hide ( ) ;
$ ( '#quicklookupwas' ) . hide ( ) ;
$ ( '#quicklookuptext' ) . hide ( ) ;
} else if ( type == "iota" ) {
$ ( '#quicklookupiota' ) . show ( ) ;
$ ( '#quicklookupdxcc' ) . hide ( ) ;
$ ( '#quicklookupcqz' ) . hide ( ) ;
$ ( '#quicklookupwas' ) . hide ( ) ;
$ ( '#quicklookuptext' ) . hide ( ) ;
} else if ( type == "vucc" || type == "sota" || type == "wwff" ) {
$ ( '#quicklookuptext' ) . show ( ) ;
$ ( '#quicklookupiota' ) . hide ( ) ;
$ ( '#quicklookupdxcc' ) . hide ( ) ;
$ ( '#quicklookupcqz' ) . hide ( ) ;
$ ( '#quicklookupwas' ) . hide ( ) ;
} else if ( type == "cq" ) {
$ ( '#quicklookupcqz' ) . show ( ) ;
$ ( '#quicklookupiota' ) . hide ( ) ;
$ ( '#quicklookupdxcc' ) . hide ( ) ;
$ ( '#quicklookupwas' ) . hide ( ) ;
$ ( '#quicklookuptext' ) . hide ( ) ;
} else if ( type == "was" ) {
$ ( '#quicklookupwas' ) . show ( ) ;
$ ( '#quicklookupcqz' ) . hide ( ) ;
$ ( '#quicklookupiota' ) . hide ( ) ;
$ ( '#quicklookupdxcc' ) . hide ( ) ;
$ ( '#quicklookuptext' ) . hide ( ) ;
}
}
2023-01-24 09:52:58 +00:00
// This function executes the call to the backend for fetching queryresult and displays the table in the dialog
function getLookupResult ( ) {
$ ( ".ld-ext-right" ) . addClass ( 'running' ) ;
$ ( ".ld-ext-right" ) . prop ( 'disabled' , true ) ;
$ . ajax ( {
url : base _url + 'index.php/lookup/search' ,
type : 'post' ,
data : {
type : $ ( '#quicklookuptype' ) . val ( ) ,
dxcc : $ ( '#quicklookupdxcc' ) . val ( ) ,
was : $ ( '#quicklookupwas' ) . val ( ) ,
grid : $ ( '#quicklookuptext' ) . val ( ) ,
cqz : $ ( '#quicklookupcqz' ) . val ( ) ,
iota : $ ( '#quicklookupiota' ) . val ( ) ,
sota : $ ( '#quicklookuptext' ) . val ( ) ,
wwff : $ ( '#quicklookuptext' ) . val ( ) ,
} ,
success : function ( html ) {
$ ( '#lookupresulttable' ) . html ( html ) ;
$ ( ".ld-ext-right" ) . removeClass ( 'running' ) ;
$ ( ".ld-ext-right" ) . prop ( 'disabled' , false ) ;
}
} ) ;
2023-01-26 07:54:35 +00:00
}
// This function executes the call to the backend for fetching dxcc summary and inserted table below qso entry
2023-01-26 08:20:45 +00:00
function getDxccResult ( dxcc , name ) {
2023-01-26 07:54:35 +00:00
$ . ajax ( {
url : base _url + 'index.php/lookup/search' ,
type : 'post' ,
data : {
type : 'dxcc' ,
dxcc : dxcc ,
} ,
success : function ( html ) {
$ ( '.dxccsummary' ) . remove ( ) ;
2023-03-04 20:36:41 +00:00
$ ( '.qsopane' ) . append ( '<div class="dxccsummary col-sm-12"><br><div class="card"><div class="card-header dxccsummaryheader" data-toggle="collapse" data-target=".dxccsummarybody">DXCC Summary for ' + name + '</div><div class="card-body collapse dxccsummarybody"></div></div></div>' ) ;
2023-01-26 07:54:35 +00:00
$ ( '.dxccsummarybody' ) . append ( html ) ;
}
} ) ;
2023-02-06 07:33:19 +00:00
}
2023-06-30 21:36:35 +00:00
function displayQsl ( id ) {
$ . ajax ( {
url : base _url + 'index.php/qsl/viewQsl' ,
type : 'post' ,
data : {
id : id ,
} ,
success : function ( html ) {
BootstrapDialog . show ( {
title : 'QSL Card' ,
size : BootstrapDialog . SIZE _WIDE ,
cssClass : 'lookup-dialog' ,
nl2br : false ,
message : html ,
onshown : function ( dialog ) {
} ,
buttons : [ {
label : 'Close' ,
action : function ( dialogItself ) {
dialogItself . close ( ) ;
}
} ]
} ) ;
}
} ) ;
}