Merge branch 'master' into mode_ajax_activate_deactivate

pull/649/head
Peter Goodhall 2020-10-12 15:12:59 +01:00 zatwierdzone przez GitHub
commit 2f69d3c4d9
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
32 zmienionych plików z 725 dodań i 241 usunięć

Wyświetl plik

@ -0,0 +1,49 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Accumulated extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->model('user_model');
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
}
public function index()
{
// Render Page
$data['page_title'] = "Accumulated statistics";
$this->load->model('Accumulate_model');
$data['worked_bands'] = $this->Accumulate_model->get_worked_bands();
$this->load->model('modes');
$data['modes'] = $this->modes->active();
$this->load->view('interface_assets/header', $data);
$this->load->view('accumulate/index');
$this->load->view('interface_assets/footer');
}
/*
* Used for ajax-call in javascript to fetch the data and insert into table and chart
*/
public function get_accumulated_data(){
//load model
$this->load->model('accumulate_model');
$band = $this->input->post('Band');
$award = $this->input->post('Award');
$mode = $this->input->post('Mode');
$period = $this->input->post('Period');
// get data
$data = $this->accumulate_model->get_accumulated_data($band, $award, $mode, $period);
header('Content-Type: application/json');
echo json_encode($data);
}
}

Wyświetl plik

@ -40,41 +40,6 @@ class Awards extends CI_Controller {
}
public function dok_details(){
$a = $this->input->get();
$q = "";
foreach ($a as $key => $value) {
$q .= $key."=".$value.("&#40;and&#41;");
}
$q = substr($q, 0, strlen($q)-13);
$arguments["query"] = $q;
$arguments["fields"] = '';
$arguments["format"] = "json";
$arguments["limit"] = '';
$arguments["order"] = '';
// print_r($arguments);
// return;
// Load the API and Logbook models
$this->load->model('api_model');
$this->load->model('logbook_model');
// Call the parser within the API model to build the query
$query = $this->api_model->select_parse($arguments);
// Execute the query, and retrieve the results
$data = $this->logbook_model->api_search_query($query);
// Render Page
$data['page_title'] = "Log View - DOK";
$data['filter'] = str_replace("&#40;and&#41;", ", ", $q);//implode(", ", array_keys($a));
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/dok/details');
$this->load->view('interface_assets/footer');
}
public function dok_details_ajax(){
$a = $this->input->post();
$q = "";
@ -172,22 +137,6 @@ class Awards extends CI_Controller {
$this->load->view('interface_assets/footer');
}
public function dxcc_details(){
$this->load->model('logbook_model');
$country = str_replace('"', "", $this->input->get("Country"));
$band = str_replace('"', "", $this->input->get("Band"));
$data['results'] = $this->logbook_model->dxcc_qso_details($country, $band);
// Render Page
$data['page_title'] = "Log View - DXCC";
$data['filter'] = "country ".$country. " and ".$band;
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/dxcc/details');
$this->load->view('interface_assets/footer');
}
public function dxcc_details_ajax(){
$this->load->model('logbook_model');
@ -228,21 +177,6 @@ class Awards extends CI_Controller {
$this->load->view('interface_assets/footer');
}
public function vucc_details(){
$this->load->model('logbook_model');
$gridsquare = str_replace('"', "", $this->input->get("Gridsquare"));
$band = str_replace('"', "", $this->input->get("Band"));
$data['results'] = $this->logbook_model->vucc_qso_details($gridsquare, $band);
// Render Page
$data['page_title'] = "Log View - VUCC";
$data['filter'] = "vucc " . $gridsquare . " and band ".$band;
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/vucc/details');
$this->load->view('interface_assets/footer');
}
public function vucc_details_ajax(){
$this->load->model('logbook_model');
@ -357,21 +291,6 @@ class Awards extends CI_Controller {
$this->load->view('interface_assets/footer');
}
public function cq_details(){
$this->load->model('logbook_model');
$cqzone = str_replace('"', "", $this->input->get("CQZone"));
$band = str_replace('"', "", $this->input->get("Band"));
$data['results'] = $this->logbook_model->cq_qso_details($cqzone, $band);
// Render Page
$data['page_title'] = "Log View - DXCC";
$data['filter'] = "CQZone ".$cqzone;
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/cq/details');
$this->load->view('interface_assets/footer');
}
public function cq_details_ajax(){
$this->load->model('logbook_model');
@ -430,21 +349,6 @@ class Awards extends CI_Controller {
$this->load->view('interface_assets/footer');
}
public function was_details() {
$this->load->model('logbook_model');
$state = str_replace('"', "", $this->input->get("State"));
$band = str_replace('"', "", $this->input->get("Band"));
$data['results'] = $this->logbook_model->was_qso_details($state, $band);
// Render Page
$data['page_title'] = "Log View - WAS";
$data['filter'] = "state ".$state. " and ".$band;
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/was/details');
$this->load->view('interface_assets/footer');
}
public function was_details_ajax() {
$this->load->model('logbook_model');
@ -515,21 +419,6 @@ class Awards extends CI_Controller {
$this->load->view('interface_assets/footer');
}
public function iota_details(){
$this->load->model('logbook_model');
$iota = str_replace('"', "", $this->input->get("Iota"));
$band = str_replace('"', "", $this->input->get("Band"));
$data['results'] = $this->logbook_model->iota_qso_details($iota, $band);
// Render Page
$data['page_title'] = "Log View - IOTA";
$data['filter'] = "iota ".$iota. " and ".$band;
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/iota/details');
$this->load->view('interface_assets/footer');
}
public function iota_details_ajax(){
$this->load->model('logbook_model');

Wyświetl plik

@ -68,7 +68,7 @@ class Dashboard extends CI_Controller {
$raw = strtotime('Monday last week');
$mon = date('Y-m-d', $raw);
$sun = date('Y-m-d', strtotime('Sunday this week'));
$sun = date('Y-m-d', strtotime('Monday next week'));
$qsos = $this->logbook_model->map_week_qsos($mon, $sun);

Wyświetl plik

@ -37,6 +37,9 @@ class Station extends CI_Controller {
$this->load->model('dxcc');
$data['dxcc_list'] = $this->dxcc->list();
$this->load->model('logbook_model');
$data['iota_list'] = $this->logbook_model->fetchIota();
$this->load->library('form_validation');
$this->form_validation->set_rules('station_profile_name', 'Station Profile Name', 'required');
@ -62,6 +65,9 @@ class Station extends CI_Controller {
$this->load->model('stations');
$this->load->model('dxcc');
$this->load->model('logbook_model');
$data['iota_list'] = $this->logbook_model->fetchIota();
$item_id_clean = $this->security->xss_clean($id);

Wyświetl plik

@ -2,9 +2,9 @@
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['error_no_active_station_profile'] = 'Attention you need to set an active station profile.';
$lang['error_no_active_station_profile'] = 'Attention: you need to set an active station profile.';
$lang['notice_turn_the_radio_on'] = 'You have made no QSOs today, time to turn on the radio!';
$lang['notice_turn_the_radio_on'] = 'You have made no QSOs today; time to turn on the radio!';
$lang['general_word_important'] = 'Important';
@ -36,4 +36,4 @@ $lang['gen_hamradio_band'] = 'Band';
$lang['dashboard_you_have_had'] = 'You have had';
$lang['dashboard_qsos_today'] = 'QSOs Today!';
$lang['dashboard_qso_breakdown'] = 'QSOs Breakdown';
$lang['dashboard_countries_breakdown'] = 'Countries Breakdown';
$lang['dashboard_countries_breakdown'] = 'Countries Breakdown';

Wyświetl plik

@ -0,0 +1,314 @@
<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');
class Accumulate_model extends CI_Model
{
function __construct()
{
// Call the Model constructor
parent::__construct();
}
function get_accumulated_data($band, $award, $mode, $period) {
$CI =& get_instance();
$CI->load->model('Stations');
$station_id = $CI->Stations->find_active();
switch ($award) {
case 'dxcc': $result = $this->get_accumulated_dxcc($band, $mode, $period, $station_id); break;
case 'was': $result = $this->get_accumulated_was($band, $mode, $period, $station_id); break;
case 'iota': $result = $this->get_accumulated_iota($band, $mode, $period, $station_id); break;
case 'waz': $result = $this->get_accumulated_waz($band, $mode, $period, $station_id); break;
}
return $result;
}
function get_accumulated_dxcc($band, $mode, $period, $station_id) {
if ($period == "year") {
$sql = "SELECT year(col_time_on) as year,
(select count(distinct b.col_dxcc) from " .
$this->config->item('table_name') .
" as b where year(col_time_on) <= year and b.station_id = ". $station_id;
}
else if ($period == "month") {
$sql = "SELECT date_format(col_time_on, '%Y%m') as year,
(select count(distinct b.col_dxcc) from " .
$this->config->item('table_name') .
" as b where date_format(col_time_on, '%Y%m') <= year and b.station_id = ". $station_id;
}
if ($band != 'All') {
if ($band == 'SAT') {
$sql .= " and col_prop_mode ='" . $band . "'";
} else {
$sql .= " and col_prop_mode !='SAT'";
$sql .= " and col_band ='" . $band . "'";
}
}
if ($mode != 'All') {
$sql .= " and col_mode ='" . $mode . "'";
}
$sql .=") total from " . $this->config->item('table_name') . " as a
where a.station_id = ". $station_id;
if ($band != 'All') {
if ($band == 'SAT') {
$sql .= " and col_prop_mode ='" . $band . "'";
} else {
$sql .= " and col_prop_mode !='SAT'";
$sql .= " and col_band ='" . $band . "'";
}
}
if ($mode != 'All') {
$sql .= " and col_mode ='" . $mode . "'";
}
if ($period == "year") {
$sql .= " group by year(a.col_time_on)
order by year(a.col_time_on)";
}
else if ($period == "month") {
$sql .= " group by date_format(a.col_time_on, '%Y%m')
order by date_format(a.col_time_on, '%Y%m')";
}
$query = $this->db->query($sql);
return $query->result();
}
function get_accumulated_was($band, $mode, $period, $station_id) {
if ($period == "year") {
$sql = "SELECT year(col_time_on) as year,
(select count(distinct b.col_state) from " .
$this->config->item('table_name') .
" as b where year(col_time_on) <= year and b.station_id = ". $station_id;
}
else if ($period == "month") {
$sql = "SELECT date_format(col_time_on, '%Y%m') as year,
(select count(distinct b.col_state) from " .
$this->config->item('table_name') .
" as b where date_format(col_time_on, '%Y%m') <= year and b.station_id = ". $station_id;
}
if ($band != 'All') {
if ($band == 'SAT') {
$sql .= " and col_prop_mode ='" . $band . "'";
} else {
$sql .= " and col_prop_mode !='SAT'";
$sql .= " and col_band ='" . $band . "'";
}
}
if ($mode != 'All') {
$sql .= " and col_mode ='" . $mode . "'";
}
$sql .= " and COL_DXCC in ('291', '6', '110')";
$sql .= " and COL_STATE in ('AK','AL','AR','AZ','CA','CO','CT','DE','FL','GA','HI','IA','ID','IL','IN','KS','KY','LA','MA','MD','ME','MI','MN','MO','MS','MT','NC','ND','NE','NH','NJ','NM','NV','NY','OH','OK','OR','PA','RI','SC','SD','TN','TX','UT','VA','VT','WA','WI','WV','WY')";
$sql .=") total from " . $this->config->item('table_name') . " as a
where a.station_id = ". $station_id;
if ($band != 'All') {
if ($band == 'SAT') {
$sql .= " and col_prop_mode ='" . $band . "'";
} else {
$sql .= " and col_prop_mode !='SAT'";
$sql .= " and col_band ='" . $band . "'";
}
}
if ($mode != 'All') {
$sql .= " and col_mode ='" . $mode . "'";
}
$sql .= " and COL_DXCC in ('291', '6', '110')";
$sql .= " and COL_STATE in ('AK','AL','AR','AZ','CA','CO','CT','DE','FL','GA','HI','IA','ID','IL','IN','KS','KY','LA','MA','MD','ME','MI','MN','MO','MS','MT','NC','ND','NE','NH','NJ','NM','NV','NY','OH','OK','OR','PA','RI','SC','SD','TN','TX','UT','VA','VT','WA','WI','WV','WY')";
if ($period == "year") {
$sql .= " group by year(a.col_time_on)
order by year(a.col_time_on)";
}
else if ($period == "month") {
$sql .= " group by date_format(a.col_time_on, '%Y%m')
order by date_format(a.col_time_on, '%Y%m')";
}
$query = $this->db->query($sql);
return $query->result();
}
function get_accumulated_iota($band, $mode, $period, $station_id) {
if ($period == "year") {
$sql = "SELECT year(col_time_on) as year,
(select count(distinct b.col_iota) from " .
$this->config->item('table_name') .
" as b where year(col_time_on) <= year and b.station_id = ". $station_id;
}
else if ($period == "month") {
$sql = "SELECT date_format(col_time_on, '%Y%m') as year,
(select count(distinct b.col_iota) from " .
$this->config->item('table_name') .
" as b where date_format(col_time_on, '%Y%m') <= year and b.station_id = ". $station_id;
}
if ($band != 'All') {
if ($band == 'SAT') {
$sql .= " and col_prop_mode ='" . $band . "'";
} else {
$sql .= " and col_prop_mode !='SAT'";
$sql .= " and col_band ='" . $band . "'";
}
}
if ($mode != 'All') {
$sql .= " and col_mode ='" . $mode . "'";
}
$sql .=") total from " . $this->config->item('table_name') . " as a
where a.station_id = ". $station_id;
if ($band != 'All') {
if ($band == 'SAT') {
$sql .= " and col_prop_mode ='" . $band . "'";
} else {
$sql .= " and col_prop_mode !='SAT'";
$sql .= " and col_band ='" . $band . "'";
}
}
if ($mode != 'All') {
$sql .= " and col_mode ='" . $mode . "'";
}
if ($period == "year") {
$sql .= " group by year(a.col_time_on)
order by year(a.col_time_on)";
}
else if ($period == "month") {
$sql .= " group by date_format(a.col_time_on, '%Y%m')
order by date_format(a.col_time_on, '%Y%m')";
}
$query = $this->db->query($sql);
return $query->result();
}
function get_accumulated_waz($band, $mode, $period, $station_id) {
if ($period == "year") {
$sql = "SELECT year(col_time_on) as year,
(select count(distinct b.col_cqz) from " .
$this->config->item('table_name') .
" as b where year(col_time_on) <= year and b.station_id = ". $station_id;
}
else if ($period == "month") {
$sql = "SELECT date_format(col_time_on, '%Y%m') as year,
(select count(distinct b.col_cqz) from " .
$this->config->item('table_name') .
" as b where date_format(col_time_on, '%Y%m') <= year and b.station_id = ". $station_id;
}
if ($band != 'All') {
if ($band == 'SAT') {
$sql .= " and col_prop_mode ='" . $band . "'";
} else {
$sql .= " and col_prop_mode !='SAT'";
$sql .= " and col_band ='" . $band . "'";
}
}
if ($mode != 'All') {
$sql .= " and col_mode ='" . $mode . "'";
}
$sql .=") total from " . $this->config->item('table_name') . " as a
where a.station_id = ". $station_id;
if ($band != 'All') {
if ($band == 'SAT') {
$sql .= " and col_prop_mode ='" . $band . "'";
} else {
$sql .= " and col_prop_mode !='SAT'";
$sql .= " and col_band ='" . $band . "'";
}
}
if ($mode != 'All') {
$sql .= " and col_mode ='" . $mode . "'";
}
if ($period == "year") {
$sql .= " group by year(a.col_time_on)
order by year(a.col_time_on)";
}
else if ($period == "month") {
$sql .= " group by date_format(a.col_time_on, '%Y%m')
order by date_format(a.col_time_on, '%Y%m')";
}
$query = $this->db->query($sql);
return $query->result();
}
function get_worked_bands() {
$CI =& get_instance();
$CI->load->model('Stations');
$station_id = $CI->Stations->find_active();
$data = $this->db->query(
"SELECT distinct LOWER(`COL_BAND`) as `COL_BAND` FROM `" . $this->config->item('table_name') . "` WHERE station_id = " . $station_id . " AND COL_PROP_MODE != \"SAT\""
);
$worked_slots = array();
foreach ($data->result() as $row) {
array_push($worked_slots, $row->COL_BAND);
}
$SAT_data = $this->db->query(
"SELECT distinct LOWER(`COL_PROP_MODE`) as `COL_PROP_MODE` FROM `" . $this->config->item('table_name') . "` WHERE station_id = " . $station_id . " AND COL_PROP_MODE = \"SAT\""
);
foreach ($SAT_data->result() as $row) {
array_push($worked_slots, strtoupper($row->COL_PROP_MODE));
}
// bring worked-slots in order of defined $bandslots
$results = array();
foreach (array_keys($this->bandslots) as $slot) {
if (in_array($slot, $worked_slots)) {
array_push($results, $slot);
}
}
return $results;
}
public $bandslots = array("160m" => 0,
"80m" => 0,
"60m" => 0,
"40m" => 0,
"30m" => 0,
"20m" => 0,
"17m" => 0,
"15m" => 0,
"12m" => 0,
"10m" => 0,
"6m" => 0,
"4m" => 0,
"2m" => 0,
"70cm" => 0,
"23cm" => 0,
"13cm" => 0,
"9cm" => 0,
"6cm" => 0,
"3cm" => 0,
"1.25cm" => 0,
"SAT" => 0,
);
}

Wyświetl plik

@ -263,11 +263,13 @@ class Logbook_model extends CI_Model {
$CI->load->model('Stations');
$station_id = $CI->Stations->find_active();
if ($band == 'SAT') {
$this->db->where('col_prop_mode', $band);
} else if ($band != '') {
$this->db->where('col_prop_mode !=', 'SAT');
$this->db->where('col_band', $band);
if ($band != 'All') {
if ($band == 'SAT') {
$this->db->where('col_prop_mode', $band);
} else if ($band != '') {
$this->db->where('col_prop_mode !=', 'SAT');
$this->db->where('col_band', $band);
}
}
$this->db->where('station_id', $station_id);

Wyświetl plik

@ -0,0 +1,99 @@
<div class="container">
<h2><?php echo $page_title; ?></h1>
<form class="form">
<!-- Select Basic -->
<div class="form-group row">
<label class="col-md-1 control-label" for="band">Band</label>
<div class="col-md-3">
<select id="band" name="band" class="form-control custom-select">
<option value="All">All</option>
<?php foreach($worked_bands as $band) {
echo '<option value="' . $band . '">' . $band . '</option>'."\n";
} ?>
</select>
</div>
<label class="col-md-1 control-label" for="mode">Mode</label>
<div class="col-md-3">
<select id="mode" name="mode" class="form-control custom-select">
<option value="All">All</option>
<?php
foreach($modes->result() as $mode){
if ($mode->submode == null) {
printf("<option value=\"%s\">%s</option>", $mode->mode, $mode->mode);
} else {
printf("<option value=\"%s\">&rArr; %s</option>", $mode->submode, $mode->submode);
}
}
?>
</select>
</div>
</div>
<div class="form-group row">
<label class="col-md-1 control-label" for="radio">Award</label>
<div class="col-md-3">
<div class="form-check">
<input class="form-check-input" type="radio" name="awardradio" id="dxcc" value="dxcc" checked>
<label class="form-check-label" for="dxcc">
DX Century Club (DXCC)
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="awardradio" id="was" value="was">
<label class="form-check-label" for="was">
Worked all states (WAS)
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="awardradio" id="iota" value="iota">
<label class="form-check-label" for="iota">
Islands on the air (IOTA)
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="awardradio" id="waz" value="waz">
<label class="form-check-label" for="waz">
Worked all zones (WAZ)
</label>
</div>
</div>
<label class="col-md-1 control-label" for="radio">Period</label>
<div class="col-md-3">
<div class="form-check">
<input class="form-check-input" type="radio" name="periodradio" id="yearly" value="year" checked>
<label class="form-check-label" for="yearly">
Yearly
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="periodradio" id="monthly" value="month">
<label class="form-check-label" for="monthly">
Monthly
</label>
</div>
</div>
</div>
<!-- Button (Double) -->
<div class="form-group row">
<div class="col-md-10">
<button id="button1id" type="button" name="button1id" class="btn btn-success btn-primary ld-ext-right" onclick="accumulatePlot(this.form)">Show<div class="ld ld-ring ld-spin"></div></button>
</div>
</div>
</form>
<div id="accumulateContainer">
<canvas id="myChartAccumulate" width="400" height="150"></canvas>
<div id="accumulateTable"></div>
</div>
</div>

Wyświetl plik

@ -25,7 +25,7 @@
<div class="form-group">
<label for="APIDescription">API Description</label>
<input type="text" class="form-control" name="api_desc" id="APIDescription" aria-describedby="APIDescriptionHelp" value="<?php echo $api_info['description']; ?>">
<small id="APIDescriptionHelp" class="form-text text-muted">Simple name to describle what you use this API for.</small>
<small id="APIDescriptionHelp" class="form-text text-muted">Simple name to describe what you use this API for.</small>
</div>
<input type="hidden" name="api_key" value="<?php echo $api_info['key']; ?>">

Wyświetl plik

@ -1,7 +0,0 @@
<div class="container">
<h2>Logbook</h2>
<h3>Filtering on <?php echo $filter ?></h3>
<?php $this->load->view('view_log/partial/log') ?>

Wyświetl plik

@ -1,3 +1,3 @@
<h3>Filtering on <?php echo $filter ?></h3>
<h5>Filtering on <?php echo $filter ?></h5>
<?php $this->load->view('view_log/partial/log_ajax') ?>

Wyświetl plik

@ -16,54 +16,55 @@
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade" id="cqmap" role="tabpanel" aria-labelledby="home-tab">
<br />
<map name="CQ">
<area href="cq_details?CQZone=1" title="zone_1" class="zone_1" shape="poly" coords="306,0,306,25,322,37,322,41,291,62,291,76,291,84,364,84,364,67,368,64,373,60,378,60,378,57,377,57,372,52,366,52,366,51,393,51,419,51,419,37,422,35,422,33,420,33,417,30,417,26,408,17,408,0">
<area href="cq_details?CQZone=2" title="zone_2" class="zone_2" shape="poly" coords="408,0,408,17,417,26,417,30,420,33,422,33,422,35,419,37,419,51,444,51,452,64,452,67,483,67,487,64,495,61,494,53,491,48,490,46,486,40,485,39,461,21,461,19,471,16,477,15,480,14,480,0">
<area href="cq_details?CQZone=3" title="zone_3" class="zone_3" shape="poly" coords="366,51,366,52,372,52,377,57,378,57,378,60,373,60,368,64,364,67,364,84,364,97,401,97,404,99,409,99,409,83,406,83,406,77,403,77,399,72,400,67,393,61,393,51">
<area href="cq_details?CQZone=4" title="zone_4" class="zone_4" shape="poly" coords="393,51,393,61,400,67,399,72,403,77,406,77,406,83,409,83,409,99,411,98,414,99,415,102,420,101,424,107,427,109,433,110,438,111,440,111,440,100,441,99,444,99,444,93,448,90,448,88,451,81,454,78,457,78,458,75,452,73,452,67,452,64,444,51,419,51">
<area href="cq_details?CQZone=5" title="zone_5" class="zone_5" shape="poly" coords="452,67,452,73,458,75,457,78,454,78,451,81,448,88,448,90,444,93,444,99,441,99,440,100,440,111,451,111,452,110,452,108,453,103,458,102,459,101,517,101,517,91,517,53,495,61,487,64,483,67">
<area href="cq_details?CQZone=6" title="zone_6" class="zone_6" shape="poly" coords="364,97,364,128,433,128,434,126,435,121,440,121,441,120,444,118,440,111,438,111,433,110,427,109,424,107,420,101,416,102,414,99,411,98,409,99,404,99,401,97">
<area href="cq_details?CQZone=7" title="zone_7" class="zone_7" shape="poly" coords="364,128,364,148,432,148,454,139,456,136,456,130,444,118,441,120,440,121,435,121,434,126,433,128">
<area href="cq_details?CQZone=8" title="zone_8" class="zone_8" shape="poly" coords="524,116,517,116,517,101,459,101,458,102,453,103,452,109,451,111,440,111,444,118,456,130,465,130,475,132,524,132">
<area href="cq_details?CQZone=8" title="zone_8" class="zone_8" shape="poly" coords="0,116,0,132,6,132,6,116">
<area href="cq_details?CQZone=9" title="zone_9" class="zone_9" shape="poly" coords="524,132,475,132,465,130,456,130,456,130,456,136,454,139,432,148,432,149,453,149,455,151,459,152,461,155,467,156,466,149,473,150,475,148,474,145,481,144,481,149,487,148,491,148,493,143,524,143">
<area href="cq_details?CQZone=9" title="zone_9" class="zone_9" shape="poly" coords="0,132,0,143,6,143,6,132">
<area href="cq_details?CQZone=10" title="zone_10" class="zone_10" shape="poly" coords="364,148,364,163,371,163,371,168,393,168,393,185,460,185,466,182,468,184,468,187,470,190,472,189,474,189,476,188,477,186,479,184,483,184,482,179,480,179,480,175,476,173,473,172,473,168,466,169,463,168,459,163,467,156,461,155,459,152,455,151,453,149,432,149,432,148">
<area href="cq_details?CQZone=11" title="zone_11" class="zone_11" shape="poly" coords="524,143,493,143,491,148,489,148,487,148,481,149,481,144,474,145,475,148,473,150,466,149,467,156,459,163,463,168,466,169,473,168,473,172,476,173,480,175,480,179,482,179,483,184,479,184,477,186,476,188,483,193,483,197,487,197,489,195,490,196,485,201,484,201,485,202,490,206,490,209,524,209">
<area href="cq_details?CQZone=11" title="zone_11" class="zone_11" shape="poly" coords="0,143,0,209,6,209,6,185,6,151,6,143">
<area href="cq_details?CQZone=12" title="zone_12" class="zone_12" shape="poly" coords="466,303,466,249,471,244,471,243,468,243,468,239,463,239,463,237,460,236,462,233,463,225,464,213,465,211,465,200,468,197,468,194,470,192,470,190,468,187,468,184,466,182,460,185,393,185,393,303">
<area href="cq_details?CQZone=13" title="zone_13" class="zone_13" shape="poly" coords="524,209,490,209,490,206,485,202,484,201,485,201,490,196,489,195,487,197,483,197,483,194,476,188,474,189,472,189,470,190,470,192,468,194,468,197,465,200,465,211,464,213,463,225,462,233,460,236,463,237,463,239,468,239,468,243,471,243,471,244,466,249,466,303,524,303">
<area href="cq_details?CQZone=13" title="zone_13" class="zone_13" shape="poly" coords="0,209,0,303,6,303,6,209">
<area href="cq_details?CQZone=14" title="zone_14" class="zone_14" shape="poly" coords="0,91,42,91,51,88,54,81,54,74,63,70,62,67,65,65,65,58,70,58,72,56,72,47,78,42,78,38,75,36,75,35,76,35,85,34,88,34,88,28,0,51">
<area href="cq_details?CQZone=14" title="zone_14" class="zone_14" shape="poly" coords="524,51,517,53,517,91,524,91">
<area href="cq_details?CQZone=15" title="zone_15" class="zone_15" shape="poly" coords="52,87,59,87,63,91,66,92,68,92,72,85,76,82,76,77,74,75,76,70,78,66,78,62,84,56,84,50,88,46,87,43,86,35,85,34,76,35,75,35,75,36,78,38,78,42,72,47,72,56,70,58,65,58,65,65,62,67,63,70,54,74,54,81,52,86">
<area href="cq_details?CQZone=16" title="zone_16" class="zone_16" shape="poly" coords="146,0,146,15,145,15,89,28,89,35,86,35,87,43,88,46,84,50,84,56,78,62,78,66,76,70,83,71,85,74,101,81,102,78,113,81,114,81,116,79,114,72,111,69,111,68,118,65,131,65,129,63,129,57,123,56,121,54,121,50,115,51,115,48,111,44,115,42,115,40,119,39,135,39,138,36,138,27,152,21,152,0">
<area href="cq_details?CQZone=17" title="zone_17" class="zone_17" shape="poly" coords="152,21,138,27,138,36,135,39,119,39,115,40,115,42,111,44,115,48,115,51,121,50,121,54,123,56,129,57,129,63,131,65,118,65,111,68,111,69,114,72,116,79,121,88,129,88,133,91,136,91,139,88,144,88,147,87,148,89,152,88,150,84,157,82,160,80,160,76,163,75,165,72,167,72,169,69,166,66,159,65,154,59,154,51,156,49,163,49,167,48,168,43,164,39,163,35,160,34,159,31,156,28,153,24,153,21">
<area href="cq_details?CQZone=18" title="zone_18" class="zone_18" shape="poly" coords="153,0,153,24,156,28,159,31,160,34,163,35,164,39,168,43,167,48,163,49,156,49,154,51,154,59,159,65,166,66,169,69,172,68,173,65,180,63,182,62,187,62,188,64,192,65,193,66,199,67,201,68,208,68,217,67,219,62,222,61,221,58,218,57,216,52,212,50,209,51,203,51,203,46,199,42,198,42,199,35,206,31,206,27,213,24,213,0">
<area href="cq_details?CQZone=19" title="zone_19" class="zone_19" shape="poly" coords="213,0,213,24,206,27,206,31,199,35,198,42,199,42,203,46,203,51,209,51,212,50,216,52,218,57,221,58,222,61,224,61,227,63,228,66,230,68,232,68,234,70,239,70,239,72,235,76,234,79,238,82,240,83,248,75,255,75,255,79,257,79,262,76,291,76,291,62,322,41,322,37,306,25,306,0">
<area href="cq_details?CQZone=20" title="zone_20" class="zone_20" shape="poly" coords="76,71,74,75,76,77,76,82,72,85,69,91,69,93,92,98,94,101,97,101,98,100,98,98,100,98,100,95,103,93,104,90,108,88,108,84,105,81,101,81,85,74,83,71">
<area href="cq_details?CQZone=21" title="zone_21" class="zone_21" shape="poly" coords="94,101,94,105,107,131,111,131,131,126,144,110,146,110,146,108,145,107,145,105,147,105,149,103,153,97,151,93,156,92,152,88,148,89,147,87,144,88,139,88,136,91,133,91,129,88,121,88,116,79,114,81,112,81,102,78,101,81,105,81,108,84,108,88,104,90,103,93,100,95,100,98,98,98,98,100,97,101">
<area href="cq_details?CQZone=22" title="zone_22" class="zone_22" shape="poly" coords="131,151,144,151,148,154,152,154,156,151,160,151,178,151,178,141,178,116,180,111,183,106,185,104,183,102,178,104,169,104,158,98,158,94,156,92,151,93,153,97,149,103,147,105,145,105,145,107,146,108,146,110,144,110,131,126">
<area href="cq_details?CQZone=23" title="zone_23" class="zone_23" shape="poly" coords="158,94,158,98,169,104,178,104,183,102,185,104,187,104,187,96,192,96,194,95,197,96,199,94,199,93,201,91,201,88,203,86,212,81,217,81,223,79,222,75,222,72,224,70,226,67,226,65,223,65,221,63,222,61,219,62,217,67,208,68,201,68,199,67,193,66,192,65,188,64,187,62,182,62,180,63,173,65,172,68,169,69,167,72,165,72,163,75,160,76,160,80,157,82,150,84,152,88,156,92">
<area href="cq_details?CQZone=24" title="zone_24" class="zone_24" shape="poly" coords="188,111,188,114,191,115,196,112,198,113,200,115,201,121,202,122,205,122,212,119,213,119,220,115,223,113,223,108,225,90,225,84,228,82,234,79,235,76,239,72,239,70,234,70,232,68,230,68,228,66,227,63,224,61,222,61,221,63,223,65,226,65,226,67,224,70,222,72,222,75,223,79,217,81,212,81,203,86,201,88,201,91,199,93,199,94,197,96,194,95,192,96,187,96,186,111">
<area href="cq_details?CQZone=25" title="zone_25" class="zone_25" shape="poly" coords="223,113,233,113,249,103,262,84,284,84,291,84,291,76,262,76,257,79,255,79,255,75,248,75,240,83,238,82,234,79,227,82,225,84,225,90,223,108">
<area href="cq_details?CQZone=26" title="zone_26" class="zone_26" shape="poly" coords="178,116,178,141,192,141,212,140,212,119,205,122,202,122,201,121,200,115,198,113,196,112,191,115,188,114,188,111,186,111,187,104,185,104,183,106,180,111">
<area href="cq_details?CQZone=27" title="zone_27" class="zone_27" shape="poly" coords="222,113,222,115,213,119,213,140,215,140,219,144,229,144,233,148,242,148,242,151,284,151,284,141,277,135,277,126,284,126,284,84,262,84,249,103,233,113">
<area href="cq_details?CQZone=28" title="zone_28" class="zone_28" shape="poly" coords="178,141,178,168,213,168,222,171,224,171,231,168,250,168,253,167,253,173,284,173,284,168,284,151,241,151,241,148,233,148,229,144,219,144,215,140,212,140,192,141">
<area href="cq_details?CQZone=29" title="zone_29" class="zone_29" shape="poly" coords="231,303,231,195,245,195,245,168,231,168,224,171,222,171,213,168,178,168,178,151,160,151,160,303">
<area href="cq_details?CQZone=30" title="zone_30" class="zone_30" shape="poly" coords="291,303,291,252,284,244,284,244,284,191,279,191,279,180,284,180,284,173,253,173,253,167,250,168,245,168,245,195,231,195,231,303">
<area href="cq_details?CQZone=31" title="zone_31" class="zone_31" shape="poly" coords="284,84,284,126,277,126,277,135,284,141,284,151,284,168,295,168,296,172,301,171,303,170,303,172,311,172,311,168,327,168,339,166,339,172,371,172,371,168,371,163,364,163,364,148,364,128,364,97,364,84,291,84">
<area href="cq_details?CQZone=32" title="zone_32" class="zone_32" shape="poly" coords="393,303,393,185,393,168,371,168,371,172,339,172,339,166,327,168,311,168,311,172,303,172,303,170,301,171,296,172,295,168,284,168,284,173,284,180,283,180,279,180,279,191,284,191,284,244,291,252,291,303">
<area href="cq_details?CQZone=33" title="zone_33" class="zone_33" shape="poly" coords="0,116,6,116,25,116,26,108,31,108,31,106,35,108,38,110,48,118,53,118,56,116,61,112,57,108,58,100,63,91,59,87,52,87,51,88,42,91,0,91">
<area href="cq_details?CQZone=33" title="zone_33" class="zone_33" shape="poly" coords="524,91,517,91,517,101,517,116,524,116">
<area href="cq_details?CQZone=34" title="zone_34" class="zone_34" shape="poly" coords="63,91,58,100,57,108,61,112,65,113,67,112,77,118,78,119,78,124,76,127,76,132,81,140,84,143,89,145,92,145,95,143,95,142,92,137,97,128,97,123,100,121,101,120,94,105,94,101,92,98,69,93,68,92,66,92">
<area href="cq_details?CQZone=35" title="zone_35" class="zone_35" shape="poly" coords="6,151,49,151,55,145,56,142,58,140,60,140,63,133,64,132,64,127,66,120,66,112,61,112,56,116,53,118,48,118,38,110,35,108,31,106,31,108,26,108,25,116,6,116">
<area href="cq_details?CQZone=36" title="zone_36" class="zone_36" shape="poly" coords="6,185,49,185,62,180,64,181,83,181,88,177,89,177,91,175,91,171,92,168,88,165,86,160,88,157,87,150,88,149,89,145,84,143,81,140,76,132,76,127,78,124,78,119,77,118,67,112,66,112,66,120,64,127,64,132,63,133,60,140,58,140,56,142,55,145,49,151,6,151">
<area href="cq_details?CQZone=37" title="zone_37" class="zone_37" shape="poly" coords="89,145,88,149,87,150,88,157,86,160,88,165,92,168,91,171,91,175,89,177,91,179,91,186,90,189,90,196,95,201,96,201,100,186,105,177,105,168,120,151,131,151,131,126,111,131,107,131,101,120,100,121,97,123,97,128,92,137,95,142,95,143,92,145">
<area href="cq_details?CQZone=38" title="zone_38" class="zone_38" shape="poly" coords="96,303,96,235,101,235,101,224,96,224,96,201,95,201,90,196,90,189,91,186,91,179,89,177,88,177,83,181,64,181,62,180,49,185,6,185,6,209,6,303">
<area href="cq_details?CQZone=39" title="zone_39" class="zone_39" shape="poly" coords="160,303,160,151,156,151,152,154,148,154,144,151,131,151,120,151,105,168,105,177,100,186,96,201,96,224,101,224,101,235,96,235,96,303">
<area href="cq_details?CQZone=40" title="zone_40" class="zone_40" shape="poly" coords="0,0,0,51,88,28,89,28,145,15,145,0">
<area href="cq_details?CQZone=40" title="zone_40" class="zone_40" shape="poly" coords="480,0,480,14,477,15,471,16,461,19,461,21,485,39,486,40,490,46,491,48,494,53,495,61,517,53,524,51,524,0">
<area href="javascript:displayCqContacts(1, 'All');" title="zone_1" class="zone_1" shape="poly" coords="306,0,306,25,322,37,322,41,291,62,291,76,291,84,364,84,364,67,368,64,373,60,378,60,378,57,377,57,372,52,366,52,366,51,393,51,419,51,419,37,422,35,422,33,420,33,417,30,417,26,408,17,408,0">
<area href="javascript:displayCqContacts(2, 'All');2" title="zone_2" class="zone_2" shape="poly" coords="408,0,408,17,417,26,417,30,420,33,422,33,422,35,419,37,419,51,444,51,452,64,452,67,483,67,487,64,495,61,494,53,491,48,490,46,486,40,485,39,461,21,461,19,471,16,477,15,480,14,480,0">
<area href="javascript:displayCqContacts(3, 'All');3" title="zone_3" class="zone_3" shape="poly" coords="366,51,366,52,372,52,377,57,378,57,378,60,373,60,368,64,364,67,364,84,364,97,401,97,404,99,409,99,409,83,406,83,406,77,403,77,399,72,400,67,393,61,393,51">
<area href="javascript:displayCqContacts(4, 'All');4" title="zone_4" class="zone_4" shape="poly" coords="393,51,393,61,400,67,399,72,403,77,406,77,406,83,409,83,409,99,411,98,414,99,415,102,420,101,424,107,427,109,433,110,438,111,440,111,440,100,441,99,444,99,444,93,448,90,448,88,451,81,454,78,457,78,458,75,452,73,452,67,452,64,444,51,419,51">
<area href="javascript:displayCqContacts(5, 'All');5" title="zone_5" class="zone_5" shape="poly" coords="452,67,452,73,458,75,457,78,454,78,451,81,448,88,448,90,444,93,444,99,441,99,440,100,440,111,451,111,452,110,452,108,453,103,458,102,459,101,517,101,517,91,517,53,495,61,487,64,483,67">
<area href="javascript:displayCqContacts(6, 'All');6" title="zone_6" class="zone_6" shape="poly" coords="364,97,364,128,433,128,434,126,435,121,440,121,441,120,444,118,440,111,438,111,433,110,427,109,424,107,420,101,416,102,414,99,411,98,409,99,404,99,401,97">
<area href="javascript:displayCqContacts(7, 'All');7" title="zone_7" class="zone_7" shape="poly" coords="364,128,364,148,432,148,454,139,456,136,456,130,444,118,441,120,440,121,435,121,434,126,433,128">
<area href="javascript:displayCqContacts(8, 'All');8" title="zone_8" class="zone_8" shape="poly" coords="524,116,517,116,517,101,459,101,458,102,453,103,452,109,451,111,440,111,444,118,456,130,465,130,475,132,524,132">
<area href="javascript:displayCqContacts(8, 'All');8" title="zone_8" class="zone_8" shape="poly" coords="0,116,0,132,6,132,6,116">
<area href="javascript:displayCqContacts(9, 'All');9" title="zone_9" class="zone_9" shape="poly" coords="524,132,475,132,465,130,456,130,456,130,456,136,454,139,432,148,432,149,453,149,455,151,459,152,461,155,467,156,466,149,473,150,475,148,474,145,481,144,481,149,487,148,491,148,493,143,524,143">
<area href="javascript:displayCqContacts(9, 'All');9" title="zone_9" class="zone_9" shape="poly" coords="0,132,0,143,6,143,6,132">
<area href="javascript:displayCqContacts(10, 'All');10" title="zone_10" class="zone_10" shape="poly" coords="364,148,364,163,371,163,371,168,393,168,393,185,460,185,466,182,468,184,468,187,470,190,472,189,474,189,476,188,477,186,479,184,483,184,482,179,480,179,480,175,476,173,473,172,473,168,466,169,463,168,459,163,467,156,461,155,459,152,455,151,453,149,432,149,432,148">
<area href="javascript:displayCqContacts(11, 'All');11" title="zone_11" class="zone_11" shape="poly" coords="524,143,493,143,491,148,489,148,487,148,481,149,481,144,474,145,475,148,473,150,466,149,467,156,459,163,463,168,466,169,473,168,473,172,476,173,480,175,480,179,482,179,483,184,479,184,477,186,476,188,483,193,483,197,487,197,489,195,490,196,485,201,484,201,485,202,490,206,490,209,524,209">
<area href="javascript:displayCqContacts(11, 'All');11" title="zone_11" class="zone_11" shape="poly" coords="0,143,0,209,6,209,6,185,6,151,6,143">
<area href="javascript:displayCqContacts(12, 'All');12" title="zone_12" class="zone_12" shape="poly" coords="466,303,466,249,471,244,471,243,468,243,468,239,463,239,463,237,460,236,462,233,463,225,464,213,465,211,465,200,468,197,468,194,470,192,470,190,468,187,468,184,466,182,460,185,393,185,393,303">
<area href="javascript:displayCqContacts(13, 'All');13" title="zone_13" class="zone_13" shape="poly" coords="524,209,490,209,490,206,485,202,484,201,485,201,490,196,489,195,487,197,483,197,483,194,476,188,474,189,472,189,470,190,470,192,468,194,468,197,465,200,465,211,464,213,463,225,462,233,460,236,463,237,463,239,468,239,468,243,471,243,471,244,466,249,466,303,524,303">
<area href="javascript:displayCqContacts(13, 'All');13" title="zone_13" class="zone_13" shape="poly" coords="0,209,0,303,6,303,6,209">
<area href="javascript:displayCqContacts(14, 'All');14" title="zone_14" class="zone_14" shape="poly" coords="0,91,42,91,51,88,54,81,54,74,63,70,62,67,65,65,65,58,70,58,72,56,72,47,78,42,78,38,75,36,75,35,76,35,85,34,88,34,88,28,0,51">
<area href="javascript:displayCqContacts(14, 'All');14" title="zone_14" class="zone_14" shape="poly" coords="524,51,517,53,517,91,524,91">
<area href="javascript:displayCqContacts(15, 'All');15" title="zone_15" class="zone_15" shape="poly" coords="52,87,59,87,63,91,66,92,68,92,72,85,76,82,76,77,74,75,76,70,78,66,78,62,84,56,84,50,88,46,87,43,86,35,85,34,76,35,75,35,75,36,78,38,78,42,72,47,72,56,70,58,65,58,65,65,62,67,63,70,54,74,54,81,52,86">
<area href="javascript:displayCqContacts(16, 'All');16" title="zone_16" class="zone_16" shape="poly" coords="146,0,146,15,145,15,89,28,89,35,86,35,87,43,88,46,84,50,84,56,78,62,78,66,76,70,83,71,85,74,101,81,102,78,113,81,114,81,116,79,114,72,111,69,111,68,118,65,131,65,129,63,129,57,123,56,121,54,121,50,115,51,115,48,111,44,115,42,115,40,119,39,135,39,138,36,138,27,152,21,152,0">
<area href="javascript:displayCqContacts(17, 'All');17" title="zone_17" class="zone_17" shape="poly" coords="152,21,138,27,138,36,135,39,119,39,115,40,115,42,111,44,115,48,115,51,121,50,121,54,123,56,129,57,129,63,131,65,118,65,111,68,111,69,114,72,116,79,121,88,129,88,133,91,136,91,139,88,144,88,147,87,148,89,152,88,150,84,157,82,160,80,160,76,163,75,165,72,167,72,169,69,166,66,159,65,154,59,154,51,156,49,163,49,167,48,168,43,164,39,163,35,160,34,159,31,156,28,153,24,153,21">
<area href="javascript:displayCqContacts(18, 'All');18" title="zone_18" class="zone_18" shape="poly" coords="153,0,153,24,156,28,159,31,160,34,163,35,164,39,168,43,167,48,163,49,156,49,154,51,154,59,159,65,166,66,169,69,172,68,173,65,180,63,182,62,187,62,188,64,192,65,193,66,199,67,201,68,208,68,217,67,219,62,222,61,221,58,218,57,216,52,212,50,209,51,203,51,203,46,199,42,198,42,199,35,206,31,206,27,213,24,213,0">
<area href="javascript:displayCqContacts(19, 'All');19" title="zone_19" class="zone_19" shape="poly" coords="213,0,213,24,206,27,206,31,199,35,198,42,199,42,203,46,203,51,209,51,212,50,216,52,218,57,221,58,222,61,224,61,227,63,228,66,230,68,232,68,234,70,239,70,239,72,235,76,234,79,238,82,240,83,248,75,255,75,255,79,257,79,262,76,291,76,291,62,322,41,322,37,306,25,306,0">
<area href="javascript:displayCqContacts(20, 'All');20" title="zone_20" class="zone_20" shape="poly" coords="76,71,74,75,76,77,76,82,72,85,69,91,69,93,92,98,94,101,97,101,98,100,98,98,100,98,100,95,103,93,104,90,108,88,108,84,105,81,101,81,85,74,83,71">
<area href="javascript:displayCqContacts(21, 'All');21" title="zone_21" class="zone_21" shape="poly" coords="94,101,94,105,107,131,111,131,131,126,144,110,146,110,146,108,145,107,145,105,147,105,149,103,153,97,151,93,156,92,152,88,148,89,147,87,144,88,139,88,136,91,133,91,129,88,121,88,116,79,114,81,112,81,102,78,101,81,105,81,108,84,108,88,104,90,103,93,100,95,100,98,98,98,98,100,97,101">
<area href="javascript:displayCqContacts(22, 'All');22" title="zone_22" class="zone_22" shape="poly" coords="131,151,144,151,148,154,152,154,156,151,160,151,178,151,178,141,178,116,180,111,183,106,185,104,183,102,178,104,169,104,158,98,158,94,156,92,151,93,153,97,149,103,147,105,145,105,145,107,146,108,146,110,144,110,131,126">
<area href="javascript:displayCqContacts(23, 'All');23" title="zone_23" class="zone_23" shape="poly" coords="158,94,158,98,169,104,178,104,183,102,185,104,187,104,187,96,192,96,194,95,197,96,199,94,199,93,201,91,201,88,203,86,212,81,217,81,223,79,222,75,222,72,224,70,226,67,226,65,223,65,221,63,222,61,219,62,217,67,208,68,201,68,199,67,193,66,192,65,188,64,187,62,182,62,180,63,173,65,172,68,169,69,167,72,165,72,163,75,160,76,160,80,157,82,150,84,152,88,156,92">
<area href="javascript:displayCqContacts(24, 'All');24" title="zone_24" class="zone_24" shape="poly" coords="188,111,188,114,191,115,196,112,198,113,200,115,201,121,202,122,205,122,212,119,213,119,220,115,223,113,223,108,225,90,225,84,228,82,234,79,235,76,239,72,239,70,234,70,232,68,230,68,228,66,227,63,224,61,222,61,221,63,223,65,226,65,226,67,224,70,222,72,222,75,223,79,217,81,212,81,203,86,201,88,201,91,199,93,199,94,197,96,194,95,192,96,187,96,186,111">
<area href="javascript:displayCqContacts(25, 'All');25" title="zone_25" class="zone_25" shape="poly" coords="223,113,233,113,249,103,262,84,284,84,291,84,291,76,262,76,257,79,255,79,255,75,248,75,240,83,238,82,234,79,227,82,225,84,225,90,223,108">
<area href="javascript:displayCqContacts(26, 'All');26" title="zone_26" class="zone_26" shape="poly" coords="178,116,178,141,192,141,212,140,212,119,205,122,202,122,201,121,200,115,198,113,196,112,191,115,188,114,188,111,186,111,187,104,185,104,183,106,180,111">
<area href="javascript:displayCqContacts(27, 'All');27" title="zone_27" class="zone_27" shape="poly" coords="222,113,222,115,213,119,213,140,215,140,219,144,229,144,233,148,242,148,242,151,284,151,284,141,277,135,277,126,284,126,284,84,262,84,249,103,233,113">
<area href="javascript:displayCqContacts(28, 'All');28" title="zone_28" class="zone_28" shape="poly" coords="178,141,178,168,213,168,222,171,224,171,231,168,250,168,253,167,253,173,284,173,284,168,284,151,241,151,241,148,233,148,229,144,219,144,215,140,212,140,192,141">
<area href="javascript:displayCqContacts(29, 'All');29" title="zone_29" class="zone_29" shape="poly" coords="231,303,231,195,245,195,245,168,231,168,224,171,222,171,213,168,178,168,178,151,160,151,160,303">
<area href="javascript:displayCqContacts(30, 'All');30" title="zone_30" class="zone_30" shape="poly" coords="291,303,291,252,284,244,284,244,284,191,279,191,279,180,284,180,284,173,253,173,253,167,250,168,245,168,245,195,231,195,231,303">
<area href="javascript:displayCqContacts(31, 'All');31" title="zone_31" class="zone_31" shape="poly" coords="284,84,284,126,277,126,277,135,284,141,284,151,284,168,295,168,296,172,301,171,303,170,303,172,311,172,311,168,327,168,339,166,339,172,371,172,371,168,371,163,364,163,364,148,364,128,364,97,364,84,291,84">
<area href="javascript:displayCqContacts(32, 'All');32" title="zone_32" class="zone_32" shape="poly" coords="393,303,393,185,393,168,371,168,371,172,339,172,339,166,327,168,311,168,311,172,303,172,303,170,301,171,296,172,295,168,284,168,284,173,284,180,283,180,279,180,279,191,284,191,284,244,291,252,291,303">
<area href="javascript:displayCqContacts(33, 'All');33" title="zone_33" class="zone_33" shape="poly" coords="0,116,6,116,25,116,26,108,31,108,31,106,35,108,38,110,48,118,53,118,56,116,61,112,57,108,58,100,63,91,59,87,52,87,51,88,42,91,0,91">
<area href="javascript:displayCqContacts(33, 'All');33" title="zone_33" class="zone_33" shape="poly" coords="524,91,517,91,517,101,517,116,524,116">
<area href="javascript:displayCqContacts(34, 'All');34" title="zone_34" class="zone_34" shape="poly" coords="63,91,58,100,57,108,61,112,65,113,67,112,77,118,78,119,78,124,76,127,76,132,81,140,84,143,89,145,92,145,95,143,95,142,92,137,97,128,97,123,100,121,101,120,94,105,94,101,92,98,69,93,68,92,66,92">
<area href="javascript:displayCqContacts(35, 'All');35" title="zone_35" class="zone_35" shape="poly" coords="6,151,49,151,55,145,56,142,58,140,60,140,63,133,64,132,64,127,66,120,66,112,61,112,56,116,53,118,48,118,38,110,35,108,31,106,31,108,26,108,25,116,6,116">
<area href="javascript:displayCqContacts(36, 'All');36" title="zone_36" class="zone_36" shape="poly" coords="6,185,49,185,62,180,64,181,83,181,88,177,89,177,91,175,91,171,92,168,88,165,86,160,88,157,87,150,88,149,89,145,84,143,81,140,76,132,76,127,78,124,78,119,77,118,67,112,66,112,66,120,64,127,64,132,63,133,60,140,58,140,56,142,55,145,49,151,6,151">
<area href="javascript:displayCqContacts(37, 'All');37" title="zone_37" class="zone_37" shape="poly" coords="89,145,88,149,87,150,88,157,86,160,88,165,92,168,91,171,91,175,89,177,91,179,91,186,90,189,90,196,95,201,96,201,100,186,105,177,105,168,120,151,131,151,131,126,111,131,107,131,101,120,100,121,97,123,97,128,92,137,95,142,95,143,92,145">
<area href="javascript:displayCqContacts(38, 'All');38" title="zone_38" class="zone_38" shape="poly" coords="96,303,96,235,101,235,101,224,96,224,96,201,95,201,90,196,90,189,91,186,91,179,89,177,88,177,83,181,64,181,62,180,49,185,6,185,6,209,6,303">
<area href="javascript:displayCqContacts(39, 'All');39" title="zone_39" class="zone_39" shape="poly" coords="160,303,160,151,156,151,152,154,148,154,144,151,131,151,120,151,105,168,105,177,100,186,96,201,96,224,101,224,101,235,96,235,96,303">
<area href="javascript:displayCqContacts(40, 'All');40" title="zone_40" class="zone_40" shape="poly" coords="0,0,0,51,88,28,89,28,145,15,145,0">
<area href="javascript:displayCqContacts(40, 'All');40" title="zone_40" class="zone_40" shape="poly" coords="480,0,480,14,477,15,471,16,461,19,461,21,485,39,486,40,490,46,491,48,494,53,495,61,517,53,524,51,524,0">
</map>
<img class="map" src="<?php echo site_url("../images/CQzone.gif"); ?>" usemap="#CQ" border="0">
@ -144,7 +145,7 @@
$i = 1;
if ($cq_array) {
echo '
<table class="table table-sm table-bordered table-hover table-striped table-condensed text-center">
<table style="width:100%" class="table tablecq table-sm table-bordered table-hover table-striped table-condensed text-center">
<thead>
<tr>
<td>#</td>

Wyświetl plik

@ -1,7 +0,0 @@
<div class="container">
<h2>Logbook</h2>
<h3>Filtering on <?php echo $filter ?></h3>
<?php $this->load->view('view_log/partial/log') ?>

Wyświetl plik

@ -1,3 +1,3 @@
<h3>Filtering on <?php echo $filter ?></h3>
<h5>Filtering on <?php echo $filter ?></h5>
<?php $this->load->view('view_log/partial/log_ajax') ?>

Wyświetl plik

@ -1,7 +0,0 @@
<div class="container">
<h2>Logbook</h2>
<h3>Filtering on <?php echo $filter ?></h3>
<?php $this->load->view('view_log/partial/log') ?>

Wyświetl plik

@ -1,3 +1,3 @@
<h3>Filtering on <?php echo $filter ?></h3>
<h5>Filtering on <?php echo $filter ?></h5>
<?php $this->load->view('view_log/partial/log_ajax') ?>

Wyświetl plik

@ -1,7 +0,0 @@
<div class="container">
<h2>Logbook</h2>
<h3>Filtering on <?php echo $filter ?></h3>
<?php $this->load->view('view_log/partial/log') ?>

Wyświetl plik

@ -1,3 +1,3 @@
<h3>Filtering on <?php echo $filter ?></h3>
<h5>Filtering on <?php echo $filter ?></h5>
<?php $this->load->view('view_log/partial/log_ajax') ?>

Wyświetl plik

@ -1,7 +0,0 @@
<div class="container">
<h2>Logbook</h2>
<h3>Filtering on <?php echo $filter ?></h3>
<?php $this->load->view('view_log/partial/log') ?>

Wyświetl plik

@ -1,3 +1,3 @@
<h3>Filtering on <?php echo $filter ?></h3>
<h5>Filtering on <?php echo $filter ?></h5>
<?php $this->load->view('view_log/partial/log_ajax') ?>

Wyświetl plik

@ -1,7 +0,0 @@
<div class="container">
<h2>Logbook</h2>
<h3>Filtering on <?php echo $filter ?></h3>
<?php $this->load->view('view_log/partial/log') ?>

Wyświetl plik

@ -68,7 +68,7 @@
if ($was_array) {
$i = 1;
echo '
<table class="table table-sm table-bordered table-hover table-striped table-condensed text-center">
<table style="width:100%" class="table table-sm tablewas table-bordered table-hover table-striped table-condensed text-center">
<thead>
<tr>
<td>#</td>

Wyświetl plik

@ -96,7 +96,7 @@
?>
<p>If you make a QSO today, you can continue to extend your streak, else your current streak will be broken!</p>
<?php
echo '<div id="streaks" class="table-responsive"><table class="qsotable table table-bordered table-hover table-striped table-condensed">';
echo '<div id="streaks" class="table-responsive"><table class="qsotable table table-sm table-bordered table-hover table-striped table-condensed">';
echo '<tr>';
echo '<th style=\'text-align: center\'>Current Streak (Continues days with QSOs)</th>';

Wyświetl plik

@ -31,9 +31,7 @@
<script src="<?php echo base_url() ;?>assets/js/sections/notes.js"></script>
<?php } ?>
<?php if ($this->uri->segment(1) == "awards") { ?>
<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/datatables.min.js"></script>
<?php } ?>
<?php if ($this->uri->segment(1) == "search" && $this->uri->segment(2) == "filter") { ?>
@ -1259,7 +1257,7 @@ $(document).ready(function(){
$.ajax({
url: baseURL+'index.php/distances/get_distances',
type: 'post',
data: {'locator': 'JP50HP', 'band': form.distplot_bands.value},
data: {'band': form.distplot_bands.value},
success: function(tmp) {
if (tmp.ok == 'OK') {
if (!($('#information').length > 0))
@ -1271,7 +1269,7 @@ $(document).ready(function(){
renderTo: 'graphcontainer'
},
title: {
text: 'Mode distribution'
text: 'Distance distribution'
},
xAxis: {
categories: [],
@ -1615,6 +1613,16 @@ $(document).ready(function(){
<?php if ($this->uri->segment(2) == "cq") { ?>
<script>
$('.tablecq').DataTable({
"pageLength": 25,
responsive: false,
ordering: false,
"scrollY": "400px",
"scrollCollapse": true,
"paging": false,
"scrollX": true
});
function displayCqContacts(cqzone, band) {
var baseURL= "<?php echo base_url();?>";
$.ajax({
@ -1645,6 +1653,16 @@ $(document).ready(function(){
<?php if ($this->uri->segment(2) == "was") { ?>
<script>
$('.tablewas').DataTable({
"pageLength": 25,
responsive: false,
ordering: false,
"scrollY": "400px",
"scrollCollapse": true,
"paging": false,
"scrollX": true
});
function displayWasContacts(was, band) {
var baseURL= "<?php echo base_url();?>";
$.ajax({
@ -1705,6 +1723,7 @@ $(document).ready(function(){
callback: function(result) {
if(result) {
$(".edit-dialog").modal('hide');
$(".qso-dialog").modal('hide');
var baseURL= "<?php echo base_url();?>";
$.ajax({
url: baseURL + 'index.php/qso/delete_ajax',
@ -1822,6 +1841,131 @@ $(document).ready(function(){
</script>
<?php } ?>
<?php if ($this->uri->segment(1) == "accumulated") { ?>
<script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>
<script>
function accumulatePlot(form) {
$(".ld-ext-right").addClass('running');
$(".ld-ext-right").prop('disabled', true);
// using this to change color of legend and label according to background color
var background = $('body').css( "background-color");
var color = 'grey';
if (background != ('rgb(255, 255, 255)')) {
color = 'white';
}
var baseURL= "<?php echo base_url();?>";
var award = form.awardradio.value;
var mode = form.mode.value;
var period = form.periodradio.value;
$.ajax({
url: baseURL+'index.php/accumulated/get_accumulated_data',
type: 'post',
data: {'Band': form.band.value, 'Award': award, 'Mode': mode, 'Period': period},
success: function(data) {
// used for switching award text in the table and the chart
switch(award) {
case 'dxcc': var awardtext = "DXCC\'s"; break;
case 'was': var awardtext = "states";break;
case 'iota': var awardtext = "IOTA\'s";break;
case 'waz': var awardtext = "CQ zones"; break;
}
var periodtext = 'Year';
if (period == 'month') {
periodtext += ' + month';
}
// removing the old chart so that it will not interfere when loading chart again
$("#accumulateContainer").empty();
$("#accumulateContainer").append("<canvas id=\"myChartAccumulate\" width=\"400\" height=\"150\"></canvas><div id=\"accumulateTable\"></div>");
// appending table to hold the data
$("#accumulateTable").append('<table style="width:100%" class="accutable table table-sm table-bordered table-hover table-striped table-condensed text-center"><thead>' +
'<tr>' +
'<td>#</td>' +
'<td>' + periodtext + '</td>' +
'<td>Accumulated # of ' + awardtext + ' worked </td>'+
'</tr>' +
'</thead>' +
'<tbody></tbody></table>');
var labels = [];
var dataDxcc = [];
var $myTable = $('.accutable');
var i = 1;
// building the rows in the table
var rowElements = data.map(function ( row ) {
var $row = $('<tr></tr>');
var $iterator = $('<td></td>').html(i++);
var $type = $('<td></td>').html(row.year);
var $content = $('<td></td>').html(row.total);
$row.append($iterator, $type, $content);
return $row;
});
// finally inserting the rows
$myTable.append(rowElements);
$.each(data, function(){
labels.push(this.year);
dataDxcc.push(this.total);
});
var ctx = document.getElementById("myChartAccumulate").getContext('2d');
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: labels,
datasets: [{
label: 'Accumulated number of ' + awardtext + ' worked each ' + period,
data: dataDxcc,
backgroundColor: 'rgba(54, 162, 235, 0.2)',
borderColor: 'rgba(54, 162, 235, 1)',
borderWidth: 2,
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero:true,
fontColor: color
}
}],
xAxes: [{
ticks: {
fontColor: color
}
}]
},
legend: {
labels: {
fontColor: color,
}
},
}
});
$(".ld-ext-right").removeClass('running');
$(".ld-ext-right").prop('disabled', false);
$('.accutable').DataTable({
responsive: false,
ordering: false,
"scrollY": "400px",
"scrollCollapse": true,
"paging": false,
"scrollX": true
});
}
});
}
</script>
<?php } ?>
</body>
</html>

Wyświetl plik

@ -28,16 +28,14 @@
<link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>assets/plugins/quill/quill.snow.css" />
<?php } ?>
<?php if ($this->uri->segment(1) == "qrz") { ?>
<?php if ($this->uri->segment(1) == "qrz" || $this->uri->segment(1) == "accumulated") { ?>
<link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>assets/css/loading.min.css" />
<link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>assets/css/ldbtn.min.css" />
<?php } ?>
<link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>assets/js/bootstrapdialog/css/bootstrap-dialog.min.css" />
<?php if ($this->uri->segment(1) == "awards") { ?>
<link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>assets/css/datatables.min.css"/>
<?php } ?>
<link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>assets/css/datatables.min.css"/>
<?php if ($this->uri->segment(1) == "adif") { ?>
<link rel="stylesheet" href="<?php echo base_url(); ?>assets/css/datepicker.css" />
@ -86,6 +84,8 @@
<a class="dropdown-item" href="<?php echo site_url('dayswithqso');?>" title="Dayswithqso">Days with QSOs</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="<?php echo site_url('timeline');?>" title="Dxcctimeline">DXCC Timeline</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="<?php echo site_url('accumulated');?>" title="Dxcctimeline">Accumulated statistics</a>
</div>
</li>

Wyświetl plik

@ -25,7 +25,7 @@
</div>
<p class="card-text">
<span class="badge badge-info">Info</span> You can find out how to use the <a href="https://github.com/magicbug/Cloudlog/wiki/Radio-Interface" target="_blank">radio functons</a> in the wiki.</a>
<span class="badge badge-info">Info</span> You can find out how to use the <a href="https://github.com/magicbug/Cloudlog/wiki/Radio-Interface" target="_blank">radio functions</a> in the wiki.</a>
</p>
</div>

Wyświetl plik

@ -159,11 +159,20 @@
<small id="stationGridInputHelp" class="form-text text-muted">Station Gridsquare for example IO87IP, if you are at a gridline enter the gridsquare with a comma for example IO77,IO78,IO87,IO88.</small>
</div>
<div class="form-group">
<label for="stationIOTAInput">IOTA Reference</label>
<input type="text" class="form-control" name="iota" id="stationIOTAInput" aria-describedby="stationIOTAInputHelp" placeholder="EU-005">
<small id="stationIOTAInputHelp" class="form-text text-muted">Station IOTA Reference for example EU-005, You can lookup IOTA References at the <a target="_blank" href="https://www.iota-world.org/iota-directory/annex-f-short-title-iota-reference-number-list.html">IOTA World</a> website.</small>
</div>
<div class="form-group">
<label for="stationIOTAInput">IOTA Reference</label>
<select class="custom-select" name="iota" id="stationIOTAInput" aria-describedby="stationIOTAInputHelp" placeholder="EU-005">
<option value =""></option>
<?php
foreach($iota_list as $i){
echo '<option value=' . $i->tag . '>' . $i->tag . ' - ' . $i->name . '</option>';
}
?>
</select>
<small id="stationIOTAInputHelp" class="form-text text-muted">Station IOTA Reference for example EU-005, You can lookup IOTA References at the <a target="_blank" href="https://www.iota-world.org/iota-directory/annex-f-short-title-iota-reference-number-list.html">IOTA World</a> website.</small>
</div>
<div class="form-group">
<label for="stationSOTAInput">SOTA Reference</label>

Wyświetl plik

@ -177,11 +177,24 @@
<small id="stationGridInputHelp" class="form-text text-muted">Station Gridsquare for example IO87IP, if you are at a gridline enter the gridsquare with a comma for example IO77,IO78,IO87,IO88.</small>
</div>
<div class="form-group">
<label for="stationIOTAInput">IOTA Reference</label>
<input type="text" class="form-control" name="iota" id="stationIOTAInput" aria-describedby="stationIOTAInputHelp" value="<?php if(set_value('iota') != "") { echo set_value('iota'); } else { echo $my_station_profile->station_iota; } ?>">
<small id="stationIOTAInputHelp" class="form-text text-muted">Station IOTA Reference for example EU-005, You can lookup IOTA References at the <a target="_blank" href="https://www.iota-world.org/iota-directory/annex-f-short-title-iota-reference-number-list.html">IOTA World</a> website.</small>
</div>
<div class="form-group">
<label for="stationIOTAInput">IOTA Reference</label>
<select class="custom-select" name="iota" id="stationIOTAInput" aria-describedby="stationIOTAInputHelp" placeholder="EU-005">
<option value =""></option>
<?php
foreach($iota_list as $i){
echo '<option value=' . $i->tag;
if ($my_station_profile->station_iota == $i->tag) {
echo " selected =\"selected\"";
}
echo '>' . $i->tag . ' - ' . $i->name . '</option>';
}
?>
</select>
<small id="stationIOTAInputHelp" class="form-text text-muted">Station IOTA Reference for example EU-005, You can lookup IOTA References at the <a target="_blank" href="https://www.iota-world.org/iota-directory/annex-f-short-title-iota-reference-number-list.html">IOTA World</a> website.</small>
</div>
<div class="form-group">
<label for="stationSOTAInput">SOTA Reference</label>

Wyświetl plik

@ -6540,7 +6540,7 @@ a.close.disabled {
@media (min-width: 992px) {
.modal-lg,
.modal-xl {
max-width: 800px;
max-width: 900px;
}
}

Wyświetl plik

@ -6560,7 +6560,7 @@ a.close.disabled {
@media (min-width: 992px) {
.modal-lg,
.modal-xl {
max-width: 800px;
max-width: 900px;
}
}

Wyświetl plik

@ -5507,7 +5507,7 @@ button.close {
@media (min-width: 992px) {
.modal-lg {
max-width: 800px;
max-width: 900px;
}
}

File diff suppressed because one or more lines are too long