diff --git a/application/config/migration.php b/application/config/migration.php index fc8056f6..da1ea557 100644 --- a/application/config/migration.php +++ b/application/config/migration.php @@ -21,7 +21,7 @@ $config['migration_enabled'] = TRUE; | be upgraded / downgraded to. | */ -$config['migration_version'] = 110; +$config['migration_version'] = 112; /* |-------------------------------------------------------------------------- diff --git a/application/controllers/Logbook.php b/application/controllers/Logbook.php index 1470c924..b02a208a 100644 --- a/application/controllers/Logbook.php +++ b/application/controllers/Logbook.php @@ -509,7 +509,7 @@ class Logbook extends CI_Controller { $html = ""; if(!empty($logbooks_locations_array)) { - $this->db->select(''.$this->config->item('table_name').'.COL_CALL, '.$this->config->item('table_name').'.COL_BAND, '.$this->config->item('table_name').'.COL_TIME_ON, '.$this->config->item('table_name').'.COL_RST_RCVD, '.$this->config->item('table_name').'.COL_RST_SENT, '.$this->config->item('table_name').'.COL_MODE, '.$this->config->item('table_name').'.COL_SUBMODE, '.$this->config->item('table_name').'.COL_PRIMARY_KEY, '.$this->config->item('table_name').'.COL_SAT_NAME, '.$this->config->item('table_name').'.COL_GRIDSQUARE, '.$this->config->item('table_name').'.COL_QSL_RCVD, '.$this->config->item('table_name').'.COL_EQSL_QSL_RCVD, '.$this->config->item('table_name').'.COL_EQSL_QSL_SENT, '.$this->config->item('table_name').'.COL_QSL_SENT, '.$this->config->item('table_name').'.COL_STX, '.$this->config->item('table_name').'.COL_STX_STRING, '.$this->config->item('table_name').'.COL_SRX, '.$this->config->item('table_name').'.COL_SRX_STRING, '.$this->config->item('table_name').'.COL_LOTW_QSL_SENT, '.$this->config->item('table_name').'.COL_LOTW_QSL_RCVD, '.$this->config->item('table_name').'.COL_VUCC_GRIDS, station_profile.*'); + $this->db->select(''.$this->config->item('table_name').'.COL_CALL, '.$this->config->item('table_name').'.COL_BAND, '.$this->config->item('table_name').'.COL_FREQ, '.$this->config->item('table_name').'.COL_TIME_ON, '.$this->config->item('table_name').'.COL_RST_RCVD, '.$this->config->item('table_name').'.COL_RST_SENT, '.$this->config->item('table_name').'.COL_MODE, '.$this->config->item('table_name').'.COL_SUBMODE, '.$this->config->item('table_name').'.COL_PRIMARY_KEY, '.$this->config->item('table_name').'.COL_SAT_NAME, '.$this->config->item('table_name').'.COL_GRIDSQUARE, '.$this->config->item('table_name').'.COL_QSL_RCVD, '.$this->config->item('table_name').'.COL_EQSL_QSL_RCVD, '.$this->config->item('table_name').'.COL_EQSL_QSL_SENT, '.$this->config->item('table_name').'.COL_QSL_SENT, '.$this->config->item('table_name').'.COL_STX, '.$this->config->item('table_name').'.COL_STX_STRING, '.$this->config->item('table_name').'.COL_SRX, '.$this->config->item('table_name').'.COL_SRX_STRING, '.$this->config->item('table_name').'.COL_LOTW_QSL_SENT, '.$this->config->item('table_name').'.COL_LOTW_QSL_RCVD, '.$this->config->item('table_name').'.COL_VUCC_GRIDS, station_profile.*'); $this->db->from($this->config->item('table_name')); $this->db->join('station_profile', 'station_profile.station_id = '.$this->config->item('table_name').'.station_id'); @@ -530,10 +530,14 @@ class Logbook extends CI_Controller { $html .= ""; $html .= "Date"; $html .= "Callsign"; + $html .= "Mode"; $html .= "RST (S)"; $html .= "RST (R)"; - $html .= "Band"; - $html .= "Mode"; + if ($this->session->userdata('user_column1')=='Frequency' || $this->session->userdata('user_column2')=='Frequency' || $this->session->userdata('user_column3')=='Frequency' || $this->session->userdata('user_column4')=='Frequency' || $this->session->userdata('user_column5')=='Frequency') { + $html .= "Frequency"; + } else { + $html .= "Band"; + } switch($this->session->userdata('user_previous_qsl_type')) { case 0: $html .= "".$this->lang->line('gen_hamradio_qsl').""; @@ -568,17 +572,21 @@ class Logbook extends CI_Controller { $html .= ""; $html .= "".date($custom_date_format, $timestamp). date(' H:i',strtotime($row->COL_TIME_ON)) . ""; $html .= "" . str_replace('0','Ø',strtoupper($row->COL_CALL)) . ""; - $html .= "".$row->COL_RST_SENT.""; - $html .= "".$row->COL_RST_RCVD.""; - if($row->COL_SAT_NAME != null) { - $html .= "".$row->COL_SAT_NAME.""; - } else { - $html .= "".$row->COL_BAND.""; - } if ($row->COL_SUBMODE==null) $html .= "".$row->COL_MODE.""; else $html .= "".$row->COL_SUBMODE.""; + $html .= "".$row->COL_RST_SENT.""; + $html .= "".$row->COL_RST_RCVD.""; + if($row->COL_SAT_NAME != null) { + $html .= "".$row->COL_SAT_NAME.""; + } else { + if ($this->session->userdata('user_column1')=='Frequency' || $this->session->userdata('user_column2')=='Frequency' || $this->session->userdata('user_column3')=='Frequency' || $this->session->userdata('user_column4')=='Frequency' || $this->session->userdata('user_column5')=='Frequency') { + $html .= "".$this->frequency->hz_to_mhz($row->COL_FREQ).""; + } else { + $html .= "".$row->COL_BAND.""; + } + } if ($this->session->userdata('user_previous_qsl_type') == 1) { $html .= ""; $html .= "load->helper(array('form', 'url', 'psr4_autoloader')); + + $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'); + } + } + + function index() { + $this->load->model('stations'); + $this->load->model('logbookadvanced_model'); + $this->load->model('logbook_model'); + $this->load->model('bands'); + $this->load->model('iota'); + $this->load->model('dxcc'); + + $stationIds = []; + + $deOptions = []; + foreach ($this->stations->all_of_user()->result() as $station) { + $deOptions[$station->station_callsign] = 1; + $stationIds[] = $station->station_id; + } + ksort($deOptions); + $deOptions = array_keys($deOptions); + + $modes = []; + if ($stationIds !== []) { + foreach ($this->logbookadvanced_model->get_worked_modes($stationIds) as $mode) { + $key = $mode['mode']; + if ($mode['submode'] !== null) { + $key .= "|" . $mode['submode']; + } + if ($mode['submode'] == null) { + $modes[$key] = $mode['mode']; + } else { + $modes[$key] = $mode['submode']; + } + } + } + + $data = []; + $data['page_title'] = "Advanced logbook"; + $data['hasDatePicker'] = true; + + $pageData = []; + $pageData['datePlaceholder'] = 'DD/MM/YYYY'; + $pageData['deOptions'] = $deOptions; + $pageData['modes'] = $modes; + $pageData['dxccarray'] = $this->logbook_model->fetchDxcc(); + $pageData['iotaarray'] = $this->logbook_model->fetchIota(); + + $pageData['bands'] = $this->bands->get_worked_bands(); + + $footerData = []; + $footerData['scripts'] = [ + 'assets/js/moment.min.js', + 'assets/js/tempusdominus-bootstrap-4.min.js', + 'assets/js/sections/logbookadvanced.js?' . filemtime(realpath(__DIR__ . "/../../assets/js/sections/logbookadvanced.js")) + ]; + + $this->load->view('interface_assets/header', $data); + $this->load->view('logbookadvanced/index', $pageData); + $this->load->view('interface_assets/footer', $footerData); + } + + public function search() { + $this->load->model('logbookadvanced_model'); + + $searchCriteria = array( + 'user_id' => (int)$this->session->userdata('user_id'), + 'dateFrom' => xss_clean($this->input->post('dateFrom')), + 'dateTo' => xss_clean($this->input->post('dateTo')), + 'de' => xss_clean($this->input->post('de')), + 'dx' => xss_clean($this->input->post('dx')), + 'mode' => xss_clean($this->input->post('mode')), + 'band' => xss_clean($this->input->post('band')), + 'qslSent' => xss_clean($this->input->post('qslSent')), + 'qslReceived' => xss_clean($this->input->post('qslReceived')), + 'iota' => xss_clean($this->input->post('iota')), + 'dxcc' => xss_clean($this->input->post('dxcc')), + 'propmode' => xss_clean($this->input->post('propmode')), + 'gridsquare' => xss_clean($this->input->post('gridsquare')), + 'state' => xss_clean($this->input->post('state')), + 'qsoresults' => xss_clean($this->input->post('qsoresults')), + ); + + $qsos = []; + foreach ($this->logbookadvanced_model->searchQsos($searchCriteria) as $qso) { + $qsos[] = $qso->toArray(); + } + + header("Content-Type: application/json"); + print json_encode($qsos); + } + + public function updateFromCallbook() { + $this->load->model('logbook_model'); + $this->load->model('logbookadvanced_model'); + + $qsoID = xss_clean($this->input->post('qsoID')); + $qso = $this->logbook_model->qso_info($qsoID)->row_array(); + if ($qso === null) { + header("Content-Type: application/json"); + echo json_encode([]); + return; + } + + $callbook = $this->logbook_model->loadCallBook($qso['COL_CALL'], $this->config->item('use_fullname')); + + if ($callbook['callsign'] !== "") { + $this->logbookadvanced_model->updateQsoWithCallbookInfo($qsoID, $qso, $callbook); + $qso['COL_NAME'] = trim($callbook['name']); + if (isset($callbook['qslmgr'])) { + $qso['COL_QSL_VIA'] = trim($callbook['qslmgr']); + } + } + + $qsoObj = new QSO($qso); + + header("Content-Type: application/json"); + echo json_encode($qsoObj->toArray()); + } + + function export_to_adif() { + $this->load->model('logbookadvanced_model'); + + $ids = xss_clean($this->input->post('id')); + $user_id = (int)$this->session->userdata('user_id'); + + $data['qsos'] = $this->logbookadvanced_model->getQsosForAdif($ids, $user_id); + + $this->load->view('adif/data/exportall', $data); + } + + function update_qsl() { + $this->load->model('logbookadvanced_model'); + + $ids = xss_clean($this->input->post('id')); + $user_id = (int)$this->session->userdata('user_id'); + $method = xss_clean($this->input->post('method')); + $sent = xss_clean($this->input->post('sent')); + + $status = $this->logbookadvanced_model->updateQsl($ids, $user_id, $method, $sent); + + $data = $this->logbookadvanced_model->getQsosForAdif($ids, $user_id); + + $results = $data->result('array'); + + $qsos = []; + foreach ($results as $data) { + $qsos[] = new QSO($data); + } + + $q = []; + foreach ($qsos as $qso) { + $q[] = $qso->toArray(); + } + + header("Content-Type: application/json"); + print json_encode($q); + } +} \ No newline at end of file diff --git a/application/helpers/psr4_autoloader_helper.php b/application/helpers/psr4_autoloader_helper.php new file mode 100644 index 00000000..74a00521 --- /dev/null +++ b/application/helpers/psr4_autoloader_helper.php @@ -0,0 +1,21 @@ +db->set('COL_SAT_NAME', 'FO-118'); + $this->db->where('COL_SAT_NAME', 'CAS-5A'); + $this->db->update($this->config->item('table_name')); + } + + public function down() + { + $this->db->set('COL_SAT_NAME', 'CAS-5A'); + $this->db->where('COL_SAT_NAME', 'FO-118'); + $this->db->update($this->config->item('table_name')); + } +} diff --git a/application/migrations/111_reupload_io117_and_fo118.php b/application/migrations/111_reupload_io117_and_fo118.php new file mode 100644 index 00000000..6e6506b7 --- /dev/null +++ b/application/migrations/111_reupload_io117_and_fo118.php @@ -0,0 +1,21 @@ +db->set('COL_LOTW_QSL_SENT', 'N'); + $this->db->where('COL_SAT_NAME', 'IO-117'); + $this->db->update($this->config->item('table_name')); + + $this->db->set('COL_LOTW_QSL_SENT', 'N'); + $this->db->where('COL_SAT_NAME', 'FO-118'); + $this->db->update($this->config->item('table_name')); + } + + public function down() + { + // Not Possible + } +} diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index a8ba548b..56bc6be9 100755 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -776,7 +776,7 @@ class Logbook_model extends CI_Model { $CI->load->model('logbooks_model'); $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); - $this->db->select('COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_SUBMODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME'); + $this->db->select('COL_CALL, COL_BAND, COL_FREQ, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_SUBMODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME'); $this->db->where_in('station_id', $logbooks_locations_array); $this->db->order_by("COL_TIME_ON", "desc"); $this->db->limit(10); @@ -791,7 +791,7 @@ class Logbook_model extends CI_Model { $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); if(!empty($logbooks_locations_array)) { - $this->db->select('COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_SUBMODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME'); + $this->db->select('COL_CALL, COL_BAND, COL_FREQ, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_SUBMODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME'); $this->db->where_in('station_id', $logbooks_locations_array); $this->db->order_by("COL_TIME_ON", "desc"); $this->db->limit($num); diff --git a/application/models/Logbookadvanced_model.php b/application/models/Logbookadvanced_model.php new file mode 100644 index 00000000..58dccd1f --- /dev/null +++ b/application/models/Logbookadvanced_model.php @@ -0,0 +1,227 @@ +load->model('logbooks_model'); + + $ids = "'".implode("','",$stationIds)."'"; + + $sql = " + SELECT distinct `COL_MODE`, `COL_SUBMODE` + FROM `" . $this->config->item('table_name') . "` qsos + WHERE qsos.station_id IN (".$ids.") + ORDER BY COL_MODE, COL_SUBMODE"; + + $data = $this->db->query($sql); + + $results = []; + foreach ($data->result() as $row) { + $results[] = [ + 'mode' => $row->COL_MODE, + 'submode' => $row->COL_SUBMODE + ]; + } + return $results; + } + + /* + * @param array $searchCriteria + * @return array + */ + public function searchQsos($searchCriteria) : array { + $conditions = []; + $binding = [$searchCriteria['user_id']]; + + if ($searchCriteria['dateFrom'] !== '') { + $from = DateTime::createFromFormat('d/m/Y', $searchCriteria['dateFrom']); + $from = $from->format('Y-m-d'); + $conditions[] = "date(COL_TIME_ON) >= ?"; + $binding[] = $from; + } + if ($searchCriteria['dateTo'] !== '') { + $to = DateTime::createFromFormat('d/m/Y', $searchCriteria['dateTo']); + $to = $to->format('Y-m-d'); + $conditions[] = "date(COL_TIME_ON) <= ?"; + $binding[] = $to; + } + if ($searchCriteria['de'] !== '') { + $conditions[] = "COL_STATION_CALLSIGN = ?"; + $binding[] = trim($searchCriteria['de']); + } + if ($searchCriteria['dx'] !== '') { + $conditions[] = "COL_CALL LIKE ?"; + $binding[] = '%' . trim($searchCriteria['dx']) . '%'; + } + if ($searchCriteria['mode'] !== '') { + list ($mode, $subMode) = explode("|", trim($searchCriteria['mode'])); + $mode = trim($mode); + $subMode = trim($subMode); + $conditions[] = "COL_MODE = ?"; + $binding[] = $mode; + if ($subMode !== '') { + $conditions[] = "COL_SUBMODE = ?"; + $binding[] = $subMode; + } + } + if ($searchCriteria['band'] !== '') { + if($searchCriteria['band'] != "SAT") { + $conditions[] = "COL_BAND = ? and COL_PROP_MODE != 'SAT'"; + $binding[] = trim($searchCriteria['band']); + } else { + $conditions[] = "COL_PROP_MODE = 'SAT'"; + } + } + if ($searchCriteria['qslSent'] !== '') { + $conditions[] = "COL_QSL_SENT = ?"; + $binding[] = $searchCriteria['qslSent']; + } + if ($searchCriteria['qslReceived'] !== '') { + $conditions[] = "COL_QSL_RCVD = ?"; + $binding[] = $searchCriteria['qslReceived']; + } + + if ($searchCriteria['iota'] !== '') { + $conditions[] = "COL_IOTA = ?"; + $binding[] = $searchCriteria['iota']; + } + + if ($searchCriteria['dxcc'] !== '') { + $conditions[] = "COL_DXCC = ?"; + $binding[] = $searchCriteria['dxcc']; + } + + if ($searchCriteria['state'] !== '') { + $conditions[] = "COL_STATE = ?"; + $binding[] = $searchCriteria['state']; + } + + if ($searchCriteria['gridsquare'] !== '') { + $conditions[] = "(COL_GRIDSQUARE like ? or COL_VUCC_GRIDS like ?)"; + $binding[] = '%' . $searchCriteria['gridsquare'] . '%'; + $binding[] = '%' . $searchCriteria['gridsquare'] . '%'; + } + + if ($searchCriteria['propmode'] !== '') { + $conditions[] = "COL_PROP_MODE = ?"; + $binding[] = $searchCriteria['propmode']; + } + + $where = trim(implode(" AND ", $conditions)); + if ($where != "") { + $where = "AND $where"; + } + + $limit = $searchCriteria['qsoresults']; + + $sql = " + SELECT * + FROM " . $this->config->item('table_name') . " qsos + INNER JOIN station_profile ON qsos.station_id=station_profile.station_id + WHERE station_profile.user_id = ? + $where + ORDER BY qsos.COL_TIME_ON desc + LIMIT $limit + "; + + $data = $this->db->query($sql, $binding); + + $results = $data->result('array'); + + $qsos = []; + foreach ($results as $data) { + $qsos[] = new QSO($data); + } + + return $qsos; + } + + public function getQsosForAdif($ids, $user_id) : object { + $binding = [$user_id]; + $conditions[] = "COL_PRIMARY_KEY in ?"; + $binding[] = json_decode($ids, true); + + $where = trim(implode(" AND ", $conditions)); + if ($where != "") { + $where = "AND $where"; + } + + $sql = " + SELECT * + FROM " . $this->config->item('table_name') . " qsos + INNER JOIN station_profile ON qsos.station_id = station_profile.station_id + WHERE station_profile.user_id = ? + $where + ORDER BY qsos.COL_TIME_ON desc + "; + + return $this->db->query($sql, $binding); + } + + public function updateQsl($ids, $user_id, $method, $sent) { + $this->load->model('user_model'); + + if(!$this->user_model->authorize(2)) { + return array('message' => 'Error'); + } else { + $data = array( + 'COL_QSLSDATE' => date('Y-m-d H:i:s'), + 'COL_QSL_SENT' => $sent, + 'COL_QSL_SENT_VIA' => $method + ); + $this->db->where_in('COL_PRIMARY_KEY', json_decode($ids, true)); + $this->db->update($this->config->item('table_name'), $data); + + return array('message' => 'OK'); + } + } + + public function updateQsoWithCallbookInfo($qsoID, $qso, $callbook) { + $updatedData = array(); + if (!empty($callbook['name']) && empty($qso['COL_NAME'])) { + $updatedData['COL_NAME'] = $callbook['name']; + } + if (!empty($callbook['gridsquare']) && empty($qso['COL_GRIDSQUARE']) && empty($qso['COL_VUCC_GRIDS'] )) { + if (strpos(trim($callbook['gridsquare']), ',') === false) { + $updatedData['COL_GRIDSQUARE'] = strtoupper(trim($callbook['gridsquare'])); + } else { + $updatedData['COL_VUCC_GRIDS'] = strtoupper(trim($callbook['gridsquare'])); + } + } + if (!empty($callbook['city']) && empty($qso['COL_QTH'])) { + $updatedData['COL_QTH'] = $callbook['city']; + } + if (!empty($callbook['lat']) && empty($qso['COL_LAT'])) { + $updatedData['COL_LAT'] = $callbook['lat']; + } + if (!empty($callbook['long']) && empty($qso['COL_LON'])) { + $updatedData['COL_LON'] = $callbook['long']; + } + if (!empty($callbook['iota']) && empty($qso['COL_IOTA'])) { + $updatedData['COL_IOTA'] = $callbook['iota']; + } + if (!empty($callbook['state']) && empty($qso['COL_STATE'])) { + $updatedData['COL_STATE'] = $callbook['state']; + } + if (!empty($callbook['us_county']) && empty($qso['COL_USACA_COUNTIES'])) { + $updatedData['COL_USACA_COUNTIES'] = $callbook['us_county']; + } + if (!empty($callbook['qslmgr']) && empty($qso['COL_QSL_VIA'])) { + $updatedData['COL_QSL_VIA'] = $callbook['qslmgr']; + } + + if (count($updatedData) > 0) { + $this->db->where('COL_PRIMARY_KEY', $qsoID); + $this->db->update($this->config->item('table_name'), $updatedData); + return true; + } + + return false; + } +} \ No newline at end of file diff --git a/application/views/dashboard/index.php b/application/views/dashboard/index.php index 8b37b3d6..d99945da 100644 --- a/application/views/dashboard/index.php +++ b/application/views/dashboard/index.php @@ -12,11 +12,13 @@ function echo_table_header_col($ctx, $name) { case 'State': echo ''.$ctx->lang->line('gen_hamradio_state').''; break; case 'Grid': echo ''.$ctx->lang->line('gen_hamradio_gridsquare').''; break; case 'Band': echo ''.$ctx->lang->line('gen_hamradio_band').''; break; + case 'Frequency': echo ''.$ctx->lang->line('gen_hamradio_frequency').''; break; case 'Operator': echo ''.$ctx->lang->line('gen_hamradio_operator').''; break; } } function echo_table_col($row, $name) { + $ci =& get_instance(); switch($name) { case 'Mode': echo ''; echo $row->COL_SUBMODE==null?$row->COL_MODE:$row->COL_SUBMODE . ''; break; case 'RSTS': echo '' . $row->COL_RST_SENT; if ($row->COL_STX) { echo 'COL_CONTEST_ID:"n/a").'" class="badge badge-light">'; printf("%03d", $row->COL_STX); echo '';} if ($row->COL_STX_STRING) { echo 'COL_CONTEST_ID:"n/a").'" class="badge badge-light">' . $row->COL_STX_STRING . '';} echo ''; break; @@ -28,15 +30,16 @@ function echo_table_col($row, $name) { case 'POTA': echo '' . ($row->COL_POTA_REF) . ''; break; case 'Grid': echo ''; echoQrbCalcLink($row->station_gridsquare, $row->COL_VUCC_GRIDS, $row->COL_GRIDSQUARE); echo ''; break; case 'Band': echo ''; if($row->COL_SAT_NAME != null) { echo ''.$row->COL_SAT_NAME.''; } else { echo strtolower($row->COL_BAND); } echo ''; break; + case 'Frequency': echo ''; if($row->COL_SAT_NAME != null) { echo ''.$row->COL_SAT_NAME.''; } else { if($row->COL_FREQ != null) { echo $ci->frequency->hz_to_mhz($row->COL_FREQ); } else { echo strtolower($row->COL_BAND); } } echo ''; break; case 'State': echo '' . ($row->COL_STATE) . ''; break; case 'Operator': echo '' . ($row->COL_OPERATOR) . ''; break; } } function echoQrbCalcLink($mygrid, $grid, $vucc) { - if (strlen($grid) != 0) { + if (!empty($grid)) { echo $grid . ' '; - } else if (strlen($vucc) != 0) { + } else if (!empty($vucc)) { echo $vucc .' '; } } diff --git a/application/views/interface_assets/footer.php b/application/views/interface_assets/footer.php index f223920f..df4031da 100644 --- a/application/views/interface_assets/footer.php +++ b/application/views/interface_assets/footer.php @@ -3217,5 +3217,14 @@ function deleteQsl(id) { + + + diff --git a/application/views/interface_assets/header.php b/application/views/interface_assets/header.php index 8ebd2794..adc96920 100644 --- a/application/views/interface_assets/header.php +++ b/application/views/interface_assets/header.php @@ -36,7 +36,7 @@ - uri->segment(1) == "adif") { ?> + uri->segment(1) == "adif" || (isset($hasDatePicker) && $hasDatePicker)) { ?> @@ -58,7 +58,14 @@