diff --git a/.github/workflows/issue_bot.yml b/.github/workflows/issue_bot.yml
new file mode 100644
index 000000000..21ab4119f
--- /dev/null
+++ b/.github/workflows/issue_bot.yml
@@ -0,0 +1,25 @@
+name: Issue Bot
+on:
+ schedule:
+ - cron: "20 */12 * * *"
+ workflow_dispatch:
+
+jobs:
+ close-issues:
+ runs-on: ubuntu-latest
+ permissions:
+ issues: write
+ steps:
+ - uses: actions/stale@v9.0.0
+ with:
+ any-of-labels: 'wait 4 close'
+ exempt-issue-labels: 'hold'
+ days-before-issue-stale: 5
+ days-before-issue-close: 3
+ stale-issue-label: 'stale'
+ stale-issue-message: 'As this issue is marked as “wait 4 close” and there was no activity for 5 days, it is now marked as “stale.” It will be automatically closed in 3 more days.'
+ close-issue-message: 'This issue was closed because it had been inactive for 3 days since being marked as "stale".'
+ days-before-pr-stale: -1
+ days-before-pr-close: -1
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
+ # debug-only: true
diff --git a/.github/workflows/translation.yml b/.github/workflows/translation.yml
index 626d90ac4..ec0080da0 100644
--- a/.github/workflows/translation.yml
+++ b/.github/workflows/translation.yml
@@ -1,12 +1,13 @@
name: Run the po generator script
on:
+ workflow_dispatch:
push:
branches:
- dev
jobs:
- build:
+ run_scripts:
if: github.repository == 'wavelog/wavelog'
runs-on: ubuntu-latest
@@ -29,9 +30,13 @@ jobs:
run: |
git config --global user.name "github-actions"
git config --global user.email "github-actions@github.com"
- git add .
- git commit -m "po/mo updates"
- git push
+ if [[ -n $(git status --porcelain) ]]; then
+ git add .
+ git commit -m "po/mo updates"
+ git push
+ else
+ echo "No changes to commit."
+ fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/README.md b/README.md
index 865dda99c..defe920c8 100644
--- a/README.md
+++ b/README.md
@@ -38,7 +38,6 @@ https://demo.wavelog.org
Notes
* If you want to log microwave QSOs you will need to use a 64bit operating system.
-* We do not provide Docker support, however you are free to use it if you wish but we will not handle support.
## Setup
@@ -51,8 +50,13 @@ Wavelog-support can be reached by creating an issue here at github. If you've an
## Contributing
-Special thanks to our contributors, who are part of Wavelog by improving code!
-[F4ANS](https://github.com/abarrau), [DG0TM](https://github.com/dg0tm), [DG9VH](https://github.com/dg9vh), [DJ3CE](https://github.com/dj3ce), [R1BLH](https://github.com/r1blh), [BG2ELG](https://github.com/violarulan), [DF1ASH](https://github.com/derFogel), [DB4SCW](https://github.com/DB4SCW)
+Special thanks to our contributors, who are part of Wavelog by improving code!
+
+[F4ANS](https://github.com/abarrau), [DG0TM](https://github.com/dg0tm), [DG9VH](https://github.com/dg9vh), [DJ3CE](https://github.com/dj3ce), [R1BLH](https://github.com/r1blh), [BG2ELG](https://github.com/violarulan), [DF1ASH](https://github.com/derFogel), [DB4SCW](https://github.com/DB4SCW), [VE2HEW](https://github.com/anthonydiiorio)
+
+Translators:
+
+[Ondřej Koloničný (OK1CDJ)](https://translate.wavelog.org/user/ok1cdj/), [Michael Skolsky (R1BLH)](https://translate.wavelog.org/user/R1BLH/), [Karuru (BG2ELG)](https://translate.wavelog.org/user/viola/), [Byt3](https://translate.wavelog.org/user/205er/), [BG6HJE](https://translate.wavelog.org/user/BG6HJE/), [Francisco (F4VSE)](https://translate.wavelog.org/user/kikosgc/), [Kim (DG9VH)](https://translate.wavelog.org/user/dg9vh/), [Casper van Lieburg (PA7DX)](https://translate.wavelog.org/user/pa7dx/), [Halil AYYILDIZ (TA2LG)](https://translate.wavelog.org/user/TA2LG/), [Michal Šiman](https://translate.wavelog.org/user/michalsiman/), [DN4BS](https://github.com/dn4bs), [Luca (IU2FRL)](https://translate.wavelog.org/user/iu2frl/), [Dragan Đorđević (4O4A)](https://translate.wavelog.org/user/4o4a/), [Dren Imeraj (Z63DRI)](https://translate.wavelog.org/user/Dren/)
If you would like to contribute in any way to Wavelog, it is most appreciated. This has been developed in free time, help coding new features or writing documentation is always useful.
diff --git a/application/config/config.sample.php b/application/config/config.sample.php
index 27a4a0d61..335522087 100644
--- a/application/config/config.sample.php
+++ b/application/config/config.sample.php
@@ -394,10 +394,9 @@ $config['cache_query_string'] = FALSE;
| Encryption Key
|--------------------------------------------------------------------------
|
-| If you use the Encryption class, you must set an encryption key.
-| See the user guide for more info.
+| Encryption Key is used to encrypt sensitive data. Choose a strong and secure key.
+| Example: 'cnawuihp87f4g3ofb837rf93brlcve378rgf93be9837dgvzcl39rlzfbrzvc834lvvf83frgv83zrbzv'
|
-| https://codeigniter.com/user_guide/libraries/encryption.html
|
*/
$config['encryption_key'] = 'flossie1234555541';
@@ -670,4 +669,30 @@ $config['disable_oqrs'] = false;
$config['special_callsign'] = false;
// hides the usermenu; takes action only if "special_callsign" is true
-$config['sc_hide_usermenu'] = true;
\ No newline at end of file
+$config['sc_hide_usermenu'] = true;
+
+
+/*
+|--------------------------------------------------------------------------
+| Impersonate
+|--------------------------------------------------------------------------
+|
+| This config switch disables the impersonate feature. This feauture is used to impersonate another user.
+| Impersonate is enabled by default. To disable it, set the value to false.
+|
+*/
+
+$config['disable_impersonate'] = false;
+
+
+/*
+|--------------------------------------------------------------------------
+| Cronmanager Allow Insecure
+|--------------------------------------------------------------------------
+|
+| The cronmanager needs http or https with a valid certificate to work.
+| If you want to use it with https and a self-signed certificate, you need to set this to true.
+|
+*/
+
+$config['cron_allow_insecure'] = false;
\ No newline at end of file
diff --git a/application/config/gettext.php b/application/config/gettext.php
index 120742dec..43d0bfcea 100644
--- a/application/config/gettext.php
+++ b/application/config/gettext.php
@@ -61,6 +61,26 @@ $config['gettext_domain'] = NULL;
*/
$config['languages'] = array(
+ 'albanian' => array(
+ 'name' => 'Shqip',
+ 'name_en' => 'Albanian',
+ 'folder' => 'albanian',
+ 'locale' => 'sq',
+ 'gettext' => 'sq',
+ 'direction' => 'ltr',
+ 'code' => 'sq',
+ 'flag' => 'al',
+ ),
+ 'bosnian' => array(
+ 'name' => 'Bosanski',
+ 'name_en' => 'Bosnian',
+ 'folder' => 'bosnian',
+ 'locale' => 'bs',
+ 'gettext' => 'bs',
+ 'direction' => 'ltr',
+ 'code' => 'bs',
+ 'flag' => 'ba',
+ ),
'bulgarian' => array(
'name' => 'Български',
'name_en' => 'Bulgarian',
@@ -81,6 +101,16 @@ $config['languages'] = array(
'code' => 'zh-Hans',
'flag' => 'cn',
),
+ 'croatian' => array(
+ 'name' => 'Hrvatski',
+ 'name_en' => 'Croatian',
+ 'folder' => 'croatian',
+ 'locale' => 'hr',
+ 'gettext' => 'hr',
+ 'direction' => 'ltr',
+ 'code' => 'hr',
+ 'flag' => 'hr',
+ ),
'czech' => array(
'name' => 'Čeština',
'name_en' => 'Czech',
@@ -161,6 +191,16 @@ $config['languages'] = array(
'code' => 'it',
'flag' => 'it',
),
+ 'montenegrin' => array(
+ 'name' => 'Crnogorski',
+ 'name_en' => 'Montenegrin',
+ 'folder' => 'montenegrin',
+ 'locale' => 'cnr',
+ 'gettext' => 'cnr',
+ 'direction' => 'ltr',
+ 'code' => 'cnr',
+ 'flag' => 'me',
+ ),
'polish' => array(
'name' => 'Polski',
'name_en' => 'Polish',
@@ -191,6 +231,16 @@ $config['languages'] = array(
'code' => 'ru',
'flag' => 'ru',
),
+ 'serbian' => array(
+ 'name' => 'Srpski',
+ 'name_en' => 'Serbian',
+ 'folder' => 'serbian',
+ 'locale' => 'sr',
+ 'gettext' => 'sr',
+ 'direction' => 'ltr',
+ 'code' => 'sr',
+ 'flag' => 'rs',
+ ),
'spanish' => array(
'name' => 'Español',
'name_en' => 'Spanish',
diff --git a/application/config/migration.php b/application/config/migration.php
index 03983d214..4b866b010 100644
--- a/application/config/migration.php
+++ b/application/config/migration.php
@@ -22,7 +22,7 @@ $config['migration_enabled'] = TRUE;
|
*/
-$config['migration_version'] = 211;
+$config['migration_version'] = 214;
/*
|--------------------------------------------------------------------------
@@ -37,5 +37,20 @@ $config['migration_version'] = 211;
$config['migration_path'] = APPPATH . 'migrations/';
+/*
+|--------------------------------------------------------------------------
+| Migration Lockfile
+|--------------------------------------------------------------------------
+|
+| Path to the migration lockfile.
+| This lockfile prevents migrations from running twice
+|
+*/
+$config['migration_lockfile'] = sys_get_temp_dir() . '/.migration_running';
+
+// the maximum age of the lockfile in seconds
+$config['migration_lf_maxage'] = 300;
+
+
/* End of file migration.php */
/* Location: ./application/config/migration.php */
diff --git a/application/controllers/Accumulated.php b/application/controllers/Accumulated.php
index 3f024d14b..f8616fb4b 100644
--- a/application/controllers/Accumulated.php
+++ b/application/controllers/Accumulated.php
@@ -10,7 +10,7 @@ class Accumulated extends CI_Controller
$this->load->model('user_model');
if (!$this->user_model->authorize(2)) {
- $this->session->set_flashdata('notice', 'You\'re not allowed to do that!');
+ $this->session->set_flashdata('error', __("You're not allowed to do that!"));
redirect('dashboard');
}
}
@@ -40,10 +40,10 @@ class Accumulated extends CI_Controller
{
//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');
+ $band = xss_clean($this->input->post('Band'));
+ $award = xss_clean($this->input->post('Award'));
+ $mode = xss_clean($this->input->post('Mode'));
+ $period = xss_clean($this->input->post('Period'));
// get data
$data = $this->accumulate_model->get_accumulated_data($band, $award, $mode, $period);
diff --git a/application/controllers/Activators.php b/application/controllers/Activators.php
index f50ce1c21..652833dc6 100644
--- a/application/controllers/Activators.php
+++ b/application/controllers/Activators.php
@@ -10,7 +10,7 @@ class Activators extends CI_Controller
$this->load->model('user_model');
if (!$this->user_model->authorize(2)) {
- $this->session->set_flashdata('notice', 'You\'re not allowed to do that!');
+ $this->session->set_flashdata('error', __("You're not allowed to do that!"));
redirect('dashboard');
}
}
@@ -30,7 +30,7 @@ class Activators extends CI_Controller
if ($this->input->post('mincount') != NULL) { // mincount is not set when page first loads.
$mincount = $this->input->post('mincount');
} else {
- $mincount = 2;
+ $mincount = 2;
}
if ($this->input->post('leogeo') != NULL) { // orbit is not set when page first loads.
@@ -46,7 +46,6 @@ class Activators extends CI_Controller
$data['maxactivatedgrids'] = $this->Activators_model->get_max_activated_grids();
$data['orbit'] = $orbit;
$data['activators_array'] = $this->Activators_model->get_activators($band, $mincount, $orbit);
- $data['activators_vucc_array'] = $this->Activators_model->get_activators_vucc($band, $orbit);
$data['bandselect'] = $band;
$footerData = [];
diff --git a/application/controllers/Activatorsmap.php b/application/controllers/Activatorsmap.php
index 1399f4d0f..288527c7c 100644
--- a/application/controllers/Activatorsmap.php
+++ b/application/controllers/Activatorsmap.php
@@ -10,7 +10,7 @@ class Activatorsmap extends CI_Controller {
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'); }
+ if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
}
public function index() {
diff --git a/application/controllers/Adif.php b/application/controllers/Adif.php
index 4b83bc15e..7dd8af5f7 100644
--- a/application/controllers/Adif.php
+++ b/application/controllers/Adif.php
@@ -10,7 +10,7 @@ class adif extends CI_Controller {
$this->load->helper(array('form', 'url'));
$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'); }
+ if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
}
public function test() {
diff --git a/application/controllers/Api.php b/application/controllers/Api.php
index 738d7b75b..a2bdd5a83 100644
--- a/application/controllers/Api.php
+++ b/application/controllers/Api.php
@@ -325,6 +325,7 @@ class API extends CI_Controller {
{
http_response_code(200);
echo json_encode(['status' => 'successfull', 'message' => 'No new QSOs available.', 'lastfetchedid' => $fetchfromid, 'exported_qsos' => 0, 'adif' => null]);
+ return;
}
//convert data to ADIF
@@ -551,6 +552,11 @@ class API extends CI_Controller {
$user_id = $this->api_model->key_userid($obj['key']);
+ // Special Case: Yaesu Radio's use CW-U and CW-L which aren't official ADIF Modes. We override this here to CW
+ if (isset($obj['mode']) && (strtoupper($obj['mode']) == 'CW-U' || strtoupper($obj['mode']) == 'CW-L')) {
+ $obj['mode'] = 'CW';
+ }
+
// Store Result to Database
$this->cat->update($obj, $user_id);
diff --git a/application/controllers/Awards.php b/application/controllers/Awards.php
index 754fceda5..675ff5990 100644
--- a/application/controllers/Awards.php
+++ b/application/controllers/Awards.php
@@ -13,7 +13,7 @@ class Awards extends CI_Controller {
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'); }
+ if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
}
public function index()
@@ -451,7 +451,7 @@ class Awards extends CI_Controller {
// Render Page
$data['page_title'] = __("Log View")." - " . $type;
- $data['filter'] = $type." ".$searchphrase." and band ".$band;
+ $data['filter'] = $type." ".$searchphrase.__(" and band ").$band;
if ($band == 'SAT') {
if ($sat != 'All' && $sat != null) {
$data['filter'] .= __(" and sat ").$sat;
@@ -783,6 +783,15 @@ class Awards extends CI_Controller {
$this->load->model('iota');
$this->load->model('modes');
$this->load->model('bands');
+ $this->load->model('logbooks_model');
+
+ $logbooks_locations_array = $this->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));
+
+ if (!$logbooks_locations_array) {
+ return null;
+ }
+
+ $location_list = "'".implode("','",$logbooks_locations_array)."'";
$data['worked_bands'] = $this->bands->get_worked_bands('iota'); // Used in the view for band select
@@ -839,9 +848,9 @@ class Awards extends CI_Controller {
$postdata['mode'] = 'All';
}
- $iotalist = $this->iota->fetchIota($postdata);
- $data['iota_array'] = $this->iota->get_iota_array($iotalist, $bands, $postdata);
- $data['iota_summary'] = $this->iota->get_iota_summary($bands, $postdata);
+ $iotalist = $this->iota->fetchIota($postdata, $location_list);
+ $data['iota_array'] = $this->iota->get_iota_array($iotalist, $bands, $postdata, $location_list);
+ $data['iota_summary'] = $this->iota->get_iota_summary($bands, $postdata, $location_list);
// Render Page
$data['page_title'] = sprintf(__("Awards - %s"), __("IOTA (Island On The Air)"));
@@ -948,17 +957,20 @@ class Awards extends CI_Controller {
$footerData = [];
$footerData['scripts']= [
- 'assets/js/leaflet/geocoding.js',
- 'assets/js/leaflet/L.MaidenheadColouredGridmasterMap.js',
- 'assets/js/sections/ffma.js'
+ 'assets/js/leaflet/geocoding.js',
+ 'assets/js/leaflet/L.MaidenheadColouredGridmasterMap.js',
+ 'assets/js/sections/ffma.js'
];
$this->load->view('interface_assets/header',$data);
$this->load->view('awards/ffma/index');
$this->load->view('interface_assets/footer',$footerData);
- }
+ }
public function getFfmaGridsjs() {
+ $this->load->model('logbooks_model');
+ $logbooks_locations_array = $this->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));
+ $location_list = "'".implode("','",$logbooks_locations_array)."'";
$this->load->model('ffma_model');
$array_grid_4char = array();
@@ -968,7 +980,7 @@ class Awards extends CI_Controller {
$grid_4char = "";
$grid_4char_lotw = "";
- $query = $this->ffma_model->get_lotw();
+ $query = $this->ffma_model->get_lotw($location_list);
if ($query && $query->num_rows() > 0) {
foreach ($query->result() as $row) {
$grid_4char_lotw = strtoupper(substr($row->GRID_SQUARES,0,4));
@@ -978,7 +990,7 @@ class Awards extends CI_Controller {
}
}
- $query = $this->ffma_model->get_paper();
+ $query = $this->ffma_model->get_paper($location_list);
if ($query && $query->num_rows() > 0) {
foreach ($query->result() as $row) {
$grid_4char_paper = strtoupper(substr($row->GRID_SQUARES,0,4));
@@ -988,7 +1000,7 @@ class Awards extends CI_Controller {
}
}
- $query = $this->ffma_model->get_worked();
+ $query = $this->ffma_model->get_worked($location_list);
if ($query && $query->num_rows() > 0) {
foreach ($query->result() as $row) {
$grid_four = strtoupper(substr($row->GRID_SQUARES,0,4));
@@ -998,7 +1010,7 @@ class Awards extends CI_Controller {
}
}
- $vucc_grids = $this->ffma_model->get_vucc_lotw();
+ $vucc_grids = $this->ffma_model->get_vucc_lotw($location_list);
foreach($vucc_grids as $key) {
$grid_four_lotw = strtoupper(substr($key,0,4));
if(!in_array($grid_four_lotw, $array_grid_4char_lotw)){
@@ -1006,7 +1018,7 @@ class Awards extends CI_Controller {
}
}
- $vucc_grids = $this->ffma_model->get_vucc_paper();
+ $vucc_grids = $this->ffma_model->get_vucc_paper($location_list);
foreach($vucc_grids as $key) {
$grid_four_paper = strtoupper(substr($key,0,4));
if(!in_array($grid_four_paper, $array_grid_4char_paper)){
@@ -1014,7 +1026,7 @@ class Awards extends CI_Controller {
}
}
- $vucc_grids = $this->ffma_model->get_vucc_worked();
+ $vucc_grids = $this->ffma_model->get_vucc_worked($location_list);
foreach($vucc_grids as $key) {
$grid_four = strtoupper(substr($key,0,4));
if(!in_array($grid_four, $array_grid_4char)){
@@ -1033,6 +1045,9 @@ class Awards extends CI_Controller {
}
public function getGridmasterGridsjs($dxcc) {
+ $this->load->model('logbooks_model');
+ $logbooks_locations_array = $this->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));
+ $location_list = "'".implode("','",$logbooks_locations_array)."'";
$this->load->model('gridmaster_model');
$dxcc = $this->security->xss_clean($dxcc);
@@ -1044,7 +1059,7 @@ class Awards extends CI_Controller {
$grid_4char = "";
$grid_4char_lotw = "";
- $query = $this->gridmaster_model->get_lotw($dxcc);
+ $query = $this->gridmaster_model->get_lotw($dxcc, $location_list);
if ($query && $query->num_rows() > 0) {
foreach ($query->result() as $row) {
$grid_4char_lotw = strtoupper(substr($row->GRID_SQUARES,0,4));
@@ -1054,7 +1069,7 @@ class Awards extends CI_Controller {
}
}
- $query = $this->gridmaster_model->get_paper($dxcc);
+ $query = $this->gridmaster_model->get_paper($dxcc, $location_list);
if ($query && $query->num_rows() > 0) {
foreach ($query->result() as $row) {
$grid_4char_paper = strtoupper(substr($row->GRID_SQUARES,0,4));
@@ -1064,7 +1079,7 @@ class Awards extends CI_Controller {
}
}
- $query = $this->gridmaster_model->get_worked($dxcc);
+ $query = $this->gridmaster_model->get_worked($dxcc, $location_list);
if ($query && $query->num_rows() > 0) {
foreach ($query->result() as $row) {
$grid_four = strtoupper(substr($row->GRID_SQUARES,0,4));
@@ -1074,7 +1089,7 @@ class Awards extends CI_Controller {
}
}
- $vucc_grids = $this->gridmaster_model->get_vucc_lotw($dxcc);
+ $vucc_grids = $this->gridmaster_model->get_vucc_lotw($dxcc, $location_list);
foreach($vucc_grids as $key) {
$grid_four_lotw = strtoupper(substr($key,0,4));
if(!in_array($grid_four_lotw, $array_grid_4char_lotw)){
@@ -1082,7 +1097,7 @@ class Awards extends CI_Controller {
}
}
- $vucc_grids = $this->gridmaster_model->get_vucc_paper($dxcc);
+ $vucc_grids = $this->gridmaster_model->get_vucc_paper($dxcc, $location_list);
foreach($vucc_grids as $key) {
$grid_four_paper = strtoupper(substr($key,0,4));
if(!in_array($grid_four_paper, $array_grid_4char_paper)){
@@ -1090,7 +1105,7 @@ class Awards extends CI_Controller {
}
}
- $vucc_grids = $this->gridmaster_model->get_vucc_worked($dxcc);
+ $vucc_grids = $this->gridmaster_model->get_vucc_worked($dxcc, $location_list);
foreach($vucc_grids as $key) {
$grid_four = strtoupper(substr($key,0,4));
if(!in_array($grid_four, $array_grid_4char)){
@@ -1534,6 +1549,15 @@ class Awards extends CI_Controller {
public function iota_map() {
$this->load->model('iota');
$this->load->model('bands');
+ $this->load->model('logbooks_model');
+ $logbooks_locations_array = $this->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));
+
+ if (!$logbooks_locations_array) {
+ return null;
+ }
+
+ $location_list = "'".implode("','",$logbooks_locations_array)."'";
+
$bands[] = $this->security->xss_clean($this->input->post('band'));
@@ -1553,9 +1577,9 @@ class Awards extends CI_Controller {
$postdata['Oceania'] = $this->input->post('Oceania') == 0 ? NULL: 1;
$postdata['Antarctica'] = $this->input->post('Antarctica') == 0 ? NULL: 1;
- $iotalist = $this->iota->fetchIota($postdata);
+ $iotalist = $this->iota->fetchIota($postdata, $location_list);
- $iota_array = $this->iota->get_iota_array($iotalist, $bands, $postdata);
+ $iota_array = $this->iota->get_iota_array($iotalist, $bands, $postdata, $location_list);
$i = 0;
diff --git a/application/controllers/Backup.php b/application/controllers/Backup.php
index ddd78b15e..5c65e2028 100644
--- a/application/controllers/Backup.php
+++ b/application/controllers/Backup.php
@@ -10,7 +10,7 @@ class Backup extends CI_Controller {
public function index()
{
$this->load->model('user_model');
- if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
+ if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
$data['page_title'] = __("Backup");
@@ -23,16 +23,18 @@ class Backup extends CI_Controller {
public function adif($key = null){
if ($key == null) {
$this->load->model('user_model');
- if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
+ if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
}
+ $clean_key = $this->security->xss_clean($key);
+
$this->load->helper('file');
// Set memory limit to unlimited to allow heavy usage
ini_set('memory_limit', '-1');
$this->load->model('adif_data');
- $data['qsos'] = $this->adif_data->export_all($key);
+ $data['qsos'] = $this->adif_data->export_all($clean_key);
$data['filename'] = 'backup/logbook'. date('_Y_m_d_H_i_s') .'.adi';
@@ -58,13 +60,15 @@ class Backup extends CI_Controller {
public function notes($key = null) {
if ($key == null) {
$this->load->model('user_model');
- if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
+ if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
}
+ $clean_key = $this->security->xss_clean($key);
+
$this->load->helper('file');
$this->load->model('note');
- $data['list_note'] = $this->note->list_all($key);
+ $data['list_note'] = $this->note->list_all($clean_key);
$data['filename'] = 'backup/notes'. date('_Y_m_d_H_i_s') .'.xml';
diff --git a/application/controllers/Band.php b/application/controllers/Band.php
index 052114aab..121c10803 100644
--- a/application/controllers/Band.php
+++ b/application/controllers/Band.php
@@ -12,7 +12,7 @@ class Band extends CI_Controller {
$this->load->helper(array('form', 'url'));
$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'); }
+ if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
}
public function index()
diff --git a/application/controllers/Bandmap.php b/application/controllers/Bandmap.php
index 55c7fef4c..8145030ca 100644
--- a/application/controllers/Bandmap.php
+++ b/application/controllers/Bandmap.php
@@ -6,7 +6,7 @@ class Bandmap extends CI_Controller {
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'); }
+ if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
$this->load->model('bands');
}
diff --git a/application/controllers/Cabrillo.php b/application/controllers/Cabrillo.php
index a8b77cf88..062c079ee 100644
--- a/application/controllers/Cabrillo.php
+++ b/application/controllers/Cabrillo.php
@@ -13,7 +13,7 @@ class Cabrillo extends CI_Controller {
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'); }
+ if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
}
public function index() {
@@ -50,7 +50,7 @@ class Cabrillo extends CI_Controller {
header('Content-Type: application/json');
echo json_encode($result);
} else {
- $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard');
+ $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard');
}
}
@@ -77,7 +77,7 @@ class Cabrillo extends CI_Controller {
header('Content-Type: application/json');
echo json_encode($result);
} else {
- $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard');
+ $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard');
}
}
@@ -132,7 +132,7 @@ class Cabrillo extends CI_Controller {
$this->load->view('cabrillo/export', $data);
}else {
- $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard');
+ $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard');
}
}
}
diff --git a/application/controllers/Calltester.php b/application/controllers/Calltester.php
index 84afaa8b3..f5baad08e 100644
--- a/application/controllers/Calltester.php
+++ b/application/controllers/Calltester.php
@@ -8,7 +8,7 @@ class Calltester extends CI_Controller {
parent::__construct();
$this->load->model('user_model');
- if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
+ if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
}
diff --git a/application/controllers/Cfdexport.php b/application/controllers/Cfdexport.php
index 9e40c792d..4d15bff2b 100644
--- a/application/controllers/Cfdexport.php
+++ b/application/controllers/Cfdexport.php
@@ -15,7 +15,7 @@ class Cfdexport extends CI_Controller {
$this->load->model('logbook_model');
$this->load->model('bands');
- if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
+ if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
$data['page_title'] = __("CFD Export");
@@ -26,7 +26,7 @@ class Cfdexport extends CI_Controller {
public function export() {
$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'); }
+ if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
$this->load->model('logbook_model');
$this->load->model('dxcc');
diff --git a/application/controllers/Components.php b/application/controllers/Components.php
index 63d807188..283700e03 100644
--- a/application/controllers/Components.php
+++ b/application/controllers/Components.php
@@ -10,7 +10,7 @@ class Components extends CI_Controller {
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'); }
+ if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
}
public function index() {
diff --git a/application/controllers/Contestcalendar.php b/application/controllers/Contestcalendar.php
index 421b42dab..7eebe29c9 100644
--- a/application/controllers/Contestcalendar.php
+++ b/application/controllers/Contestcalendar.php
@@ -12,7 +12,7 @@ class Contestcalendar extends CI_Controller {
public function index() {
$this->load->model('user_model');
if (!$this->user_model->authorize(2)) {
- $this->session->set_flashdata('notice', 'You\'re not allowed to do that!');
+ $this->session->set_flashdata('error', __("You're not allowed to do that!"));
redirect('dashboard');
}
@@ -72,7 +72,6 @@ class Contestcalendar extends CI_Controller {
return $rssData;
}
-
private function parseTimeRange($string) {
$timeData = array();
@@ -86,7 +85,19 @@ class Contestcalendar extends CI_Controller {
// create proper dateTime
$timeData['start'] = DateTime::createFromFormat('Hi\Z, M d', $start);
+
+ if (!$timeData['start']) {
+ // If the first format didn't match, try the format without the comma
+ $timeData['start'] = DateTime::createFromFormat('Hi\Z M d', $start);
+ }
+
$timeData['end'] = DateTime::createFromFormat('Hi\Z, M d', $end);
+
+ if (!$timeData['end']) {
+ // If the first format didn't match, try the format without the comma
+ $timeData['end'] = DateTime::createFromFormat('Hi\Z M d', $end);
+ }
+
} else {
// split in start and end time
@@ -144,8 +155,8 @@ class Contestcalendar extends CI_Controller {
continue;
}
- $start = date('Y-m-d', strtotime($contest['start']->format('Y-m-d')));
- $end = date('Y-m-d', strtotime($contest['end']->format('Y-m-d')));
+ $start = $contest['start'] == '' ? '' : date('Y-m-d', strtotime($contest['start']->format('Y-m-d')));
+ $end = $contest['end'] == '' ? '' : date('Y-m-d', strtotime($contest['end']->format('Y-m-d')));
if ($start <= $this->today && $end >= $this->today) {
$contestsToday[] = $contest;
@@ -175,8 +186,8 @@ class Contestcalendar extends CI_Controller {
continue;
}
- $start = date('Y-m-d', strtotime($contest['start']->format('Y-m-d')));
- $end = date('Y-m-d', strtotime($contest['end']->format('Y-m-d')));
+ $start = $contest['start'] == '' ? '' : date('Y-m-d', strtotime($contest['start']->format('Y-m-d')));
+ $end = $contest['end'] == '' ? '' : date('Y-m-d', strtotime($contest['end']->format('Y-m-d')));
if ($start >= $nextFriday && $start <= $nextSunday && $start >= $this->today) {
$contestsNextWeekend[] = $contest;
diff --git a/application/controllers/Contesting.php b/application/controllers/Contesting.php
index d0cad9fd8..7aef397c9 100644
--- a/application/controllers/Contesting.php
+++ b/application/controllers/Contesting.php
@@ -11,7 +11,7 @@ class Contesting extends CI_Controller {
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'); }
+ if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
}
public function index() {
@@ -21,8 +21,19 @@ class Contesting extends CI_Controller {
$this->load->model('contesting_model');
$this->load->model('bands');
+ // Getting the live/post mode from GET command
+ // 0 = live
+ // 1 = post (manual)
+ $get_manual_mode = $this->security->xss_clean($this->input->get('manual'));
+ if ($get_manual_mode == '0' || $get_manual_mode == '1') {
+ $data['manual_mode'] = $get_manual_mode;
+ } else {
+ show_404();
+ }
+
$data['my_gridsquare'] = $this->stations->find_gridsquare();
$data['radios'] = $this->cat->radios();
+ $data['radio_last_updated'] = $this->cat->last_updated()->row();
$data['modes'] = $this->modes->active();
$data['contestnames'] = $this->contesting_model->getActivecontests();
$data['bands'] = $this->bands->get_user_bands_for_qso_entry();
diff --git a/application/controllers/Cron.php b/application/controllers/Cron.php
index a122876c1..125ee37de 100644
--- a/application/controllers/Cron.php
+++ b/application/controllers/Cron.php
@@ -23,7 +23,7 @@ class cron extends CI_Controller {
$this->load->model('user_model');
if (!$this->user_model->authorize(99)) {
- $this->session->set_flashdata('notice', 'You\'re not allowed to do that!');
+ $this->session->set_flashdata('error', __("You're not allowed to do that!"));
redirect('dashboard');
}
@@ -37,6 +37,7 @@ class cron extends CI_Controller {
$data['page_title'] = __("Cron Manager");
$data['crons'] = $this->cron_model->get_crons();
+ $data['cron_allow_insecure'] = $this->config->item('cron_allow_insecure') ?? false;
$mastercron = array();
$mastercron = $this->get_mastercron_status();
@@ -94,6 +95,9 @@ class cron extends CI_Controller {
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_USERAGENT, 'Wavelog Updater');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ if ($this->config->item('cron_allow_insecure') ?? false == true) {
+ curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
+ }
$crun = curl_exec($ch);
curl_close($ch);
@@ -101,7 +105,7 @@ class cron extends CI_Controller {
echo "CRON: " . $cron->id . " -> CURL Result: " . $crun . "\n";
$status = 'healthy';
} else {
- echo "ERROR: Something went wrong with " . $cron->id . "\n";
+ echo "ERROR: Something went wrong with " . $cron->id . "; Message: " . $crun . "\n";
$status = 'failed';
}
} else {
@@ -142,7 +146,7 @@ class cron extends CI_Controller {
public function edit() {
$this->load->model('user_model');
if (!$this->user_model->authorize(99)) {
- $this->session->set_flashdata('notice', 'You\'re not allowed to do that!');
+ $this->session->set_flashdata('error', __("You're not allowed to do that!"));
redirect('dashboard');
}
@@ -254,19 +258,19 @@ class cron extends CI_Controller {
$diff = $now->getTimestamp() - $timestamp_last_run->getTimestamp();
if ($diff >= 0 && $diff <= $warning_timelimit_seconds) {
- $result['status'] = 'OK';
+ $result['status'] = __("OK");
$result['status_class'] = 'success';
} else {
if ($diff <= $error_timelimit_seconds) {
- $result['status'] = 'Last run occurred more than ' . $warning_timelimit_seconds . ' seconds ago.
Please check your master cron! It should run every minute (* * * * *).';
+ $result['status'] = sprintf(__("Last run occurred more than %s seconds ago.%sPlease check your master cron! It should run every minute (* * * * *)."), $warning_timelimit_seconds, '
');
$result['status_class'] = 'warning';
} else {
- $result['status'] = 'Last run occurred more than ' . ($error_timelimit_seconds / 60) . ' minutes ago.
Seems like your Mastercron isn\'t running!
It should run every minute (* * * * *).';
+ $result['status'] = sprintf(__("Last run occurred more than %s minutes ago.%sSeems like your Mastercron isn't running!%sIt should run every minute (* * * * *)."), ($error_timelimit_seconds / 60), '
', '
');
$result['status_class'] = 'danger';
}
}
} else {
- $result['status'] = 'Not running';
+ $result['status'] = _pgettext("Master Cron", "Not running");
$result['status_class'] = 'danger';
}
diff --git a/application/controllers/Csv.php b/application/controllers/Csv.php
index 9b7c4b7dd..037de83cb 100644
--- a/application/controllers/Csv.php
+++ b/application/controllers/Csv.php
@@ -5,7 +5,7 @@ class Csv extends CI_Controller {
public function index() {
$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'); }
+ if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
$this->load->model('modes');
$this->load->model('logbook_model');
@@ -28,7 +28,7 @@ class Csv extends CI_Controller {
public function export() {
$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'); }
+ if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
$this->load->model('csv_model');
// Parameters
diff --git a/application/controllers/Dashboard.php b/application/controllers/Dashboard.php
index a7231554d..8741cbf01 100644
--- a/application/controllers/Dashboard.php
+++ b/application/controllers/Dashboard.php
@@ -43,6 +43,9 @@ class Dashboard extends CI_Controller
$data['qra'] = "none";
}
+ // We need the form_helper for the layout/messages
+ $this->load->helper('form');
+
$this->load->model('stations');
$this->load->model('setup_model');
diff --git a/application/controllers/Dayswithqso.php b/application/controllers/Dayswithqso.php
index 9e1bb0862..c82567b55 100644
--- a/application/controllers/Dayswithqso.php
+++ b/application/controllers/Dayswithqso.php
@@ -8,7 +8,7 @@ class Dayswithqso extends CI_Controller {
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'); }
+ if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
}
public function index()
diff --git a/application/controllers/Debug.php b/application/controllers/Debug.php
index 54115cb98..c2c377e41 100644
--- a/application/controllers/Debug.php
+++ b/application/controllers/Debug.php
@@ -7,7 +7,7 @@ class Debug extends CI_Controller
$this->load->model('user_model');
if (!$this->user_model->authorize(2)) {
- $this->session->set_flashdata('notice', 'You\'re not allowed to do that!');
+ $this->session->set_flashdata('error', __("You're not allowed to do that!"));
redirect('dashboard');
}
@@ -42,9 +42,11 @@ class Debug extends CI_Controller
// get mig version from config file
$this->load->config('migration');
$data['migration_config'] = $this->config->item('migration_version');
+ $data['migration_lockfile'] = $this->config->item('migration_lockfile');
+ $data['miglock_lifetime'] = $this->config->item('migration_lf_maxage');
// compare mig versions
- if ($data['migration_version'] !== $data['migration_config'] && file_exists('application/cache/.migration_running')) {
+ if ($data['migration_version'] != $data['migration_config'] && file_exists($data['migration_lockfile'])) {
$data['migration_is_uptodate'] = false;
} else {
$data['migration_is_uptodate'] = true;
diff --git a/application/controllers/Distances.php b/application/controllers/Distances.php
index f68287ca1..5c65831fa 100644
--- a/application/controllers/Distances.php
+++ b/application/controllers/Distances.php
@@ -8,7 +8,7 @@ class Distances extends CI_Controller {
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'); }
+ if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
}
public function index()
diff --git a/application/controllers/Dxatlas.php b/application/controllers/Dxatlas.php
index 48cbf81bf..dc10fa4f9 100644
--- a/application/controllers/Dxatlas.php
+++ b/application/controllers/Dxatlas.php
@@ -4,7 +4,7 @@ class Dxatlas extends CI_Controller {
public function index() {
$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'); }
+ if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
$this->load->model('modes');
$this->load->model('logbook_model');
@@ -26,7 +26,7 @@ class Dxatlas extends CI_Controller {
public function export() {
$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'); }
+ if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
$this->load->model('dxatlas_model');
@@ -48,7 +48,7 @@ class Dxatlas extends CI_Controller {
function generateFiles($wkdArray, $cfmArray, $band) {
$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'); }
+ if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
$gridCfmArray = [];
$gridWkdArray = [];
@@ -105,7 +105,7 @@ class Dxatlas extends CI_Controller {
function makeZip($gridWkdString, $gridCfmString, $band) {
$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'); }
+ if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
$zipFileName = 'dxatlas_gridsquares_'. $band . '.zip';
// Prepare File
$file = tempnam(".", "zip");
diff --git a/application/controllers/Dxcalendar.php b/application/controllers/Dxcalendar.php
index 9a4029702..a9281c925 100644
--- a/application/controllers/Dxcalendar.php
+++ b/application/controllers/Dxcalendar.php
@@ -5,7 +5,7 @@ class Dxcalendar extends CI_Controller {
public function index() {
$this->load->model('user_model');
$this->load->model('logbook_model');
- if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
+ if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
$data['page_title'] = __("DX Calendar");
diff --git a/application/controllers/Dxcluster.php b/application/controllers/Dxcluster.php
index 3a642256c..4414873f5 100644
--- a/application/controllers/Dxcluster.php
+++ b/application/controllers/Dxcluster.php
@@ -6,7 +6,7 @@ class Dxcluster extends CI_Controller {
{
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'); }
+ if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('error', __("You're not allowed to do that!")); redirect('dashboard'); }
$this->load->model('dxcluster_model');
}
diff --git a/application/controllers/Eqsl.php b/application/controllers/Eqsl.php
index 6c70c9eee..b6b8d2d60 100644
--- a/application/controllers/Eqsl.php
+++ b/application/controllers/Eqsl.php
@@ -20,7 +20,7 @@ class eqsl extends CI_Controller {
$this->load->model('user_model');
if (!$this->user_model->authorize(2)) {
- $this->session->set_flashdata('notice', 'You\'re not allowed to do that!');
+ $this->session->set_flashdata('error', __("You're not allowed to do that!"));
redirect('dashboard');
}
@@ -44,7 +44,7 @@ class eqsl extends CI_Controller {
public function import() {
$this->load->model('user_model');
if (!$this->user_model->authorize(2)) {
- $this->session->set_flashdata('notice', 'You\'re not allowed to do that!');
+ $this->session->set_flashdata('error', __("You're not allowed to do that!"));
redirect('dashboard');
}
@@ -141,7 +141,7 @@ class eqsl extends CI_Controller {
public function export() {
$this->load->model('user_model');
if (!$this->user_model->authorize(2)) {
- $this->session->set_flashdata('notice', 'You\'re not allowed to do that!');
+ $this->session->set_flashdata('error', __("You're not allowed to do that!"));
redirect('dashboard');
}
@@ -220,7 +220,7 @@ class eqsl extends CI_Controller {
function generateResultTable($custom_date_format, $rows) {
$this->load->model('user_model');
if (!$this->user_model->authorize(2)) {
- $this->session->set_flashdata('notice', 'You\'re not allowed to do that!');
+ $this->session->set_flashdata('error', __("You're not allowed to do that!"));
redirect('dashboard');
}
@@ -244,7 +244,7 @@ class eqsl extends CI_Controller {
function writeEqslNotSent($qslsnotsent, $custom_date_format) {
$this->load->model('user_model');
if (!$this->user_model->authorize(2)) {
- $this->session->set_flashdata('notice', 'You\'re not allowed to do that!');
+ $this->session->set_flashdata('error', __("You're not allowed to do that!"));
redirect('dashboard');
}
$table = '
= sprintf(_pgettext("uses 'this article'", "A full summary of all commands and the necessary syntax can be found in %s of our Wiki."), "this article"); ?>
+= sprintf(__("A full summary of all commands and the necessary syntax can be found in %sthis article%s of our Wiki."), '', ''); ?>
diff --git a/application/views/station_profile/create.php b/application/views/station_profile/create.php index 676951f65..199f83899 100644 --- a/application/views/station_profile/create.php +++ b/application/views/station_profile/create.php @@ -1,3 +1,29 @@ += __("Station Locations define operating locations, such as your QTH, a friends QTH, or a portable station."); ?>
-= __("Similar to logbooks, a station profile keeps a set of QSOs together."); ?>
-= __("Only one station may be active at a time. In the table below this is shown with the -Active Station- badge."); ?>
- -= __("Create a Station Location"); ?>
- - num_rows() > 0) { ?> - - -| = __("Profile Name"); ?> | -= __("Station Callsign"); ?> | -= __("Country"); ?> | -= __("Gridsquare"); ?> | -- | = __("Edit"); ?> | -= __("Copy"); ?> | - user_options_model->get_options('header_menu', array('option_name'=>'locations_quickswitch'))->row()->option_value ?? 'false'); - if ($quickswitch_enabled == 'true') { - ?> -Favorite | - -= __("Empty Log"); ?> | -= __("Delete"); ?> | -
|---|---|---|---|---|---|---|---|---|---|
|
- station_profile_name;?> - |
- station_callsign;?> | -station_country == '' ? '- NONE -' : $row->station_country; if ($row->dxcc_end != NULL) { echo ' '.__("Deleted DXCC").''; } ?> | -station_gridsquare;?> | -
- station_active != 1) { ?>
- station_id; ?>" class="btn btn-outline-secondary btn-sm" onclick="return confirm('= __("Are you sure you want to make the following station the active station: "); ?> station_profile_name; ?>');">= __("Set Active"); ?>
-
- = __("Active Station"); ?>
-
-
- - ID: station_id;?> - qso_total;?> = __("QSO"); ?> - |
- - station_id; ?>" title== __("Edit"); ?> class="btn btn-outline-primary btn-sm"> - | -- station_id; ?>" title== __("Copy"); ?> class="btn btn-outline-primary btn-sm"> - | - -- user_options_model->get_options('station_location', array('option_name'=>'is_favorite', 'option_key'=>$row->station_id))->row()->option_value ?? 'false'); - if ($locationFavorite == 'true') { - $favStarClasses = 'class="fas fa-star" style="color: #ffc82b;"'; - } else { - $favStarClasses = 'class="far fa-star" style="color: #a58118;"'; - } ?> - station_id; ?>" title="mark/unmark as favorite" > - | - -- - station_id; ?>" class="btn btn-danger btn-sm" title== __("Empty Log"); ?> onclick="return confirm('');"> | - -- station_active != 1) { - $cnfmsg = sprintf(__("Are you sure you want delete station profile '%s'? This will delete all QSOs within this station profile."), $row->station_profile_name); ?> - station_id; ?>" class="btn btn-danger btn-sm" title== __("Delete"); ?> onclick="return confirm('= $cnfmsg ?>')"> - - | -
= __("Click here on 'Add a Theme' and type in the necessary data. Type in the filenames for the logos without the file extension '.png'"); ?>
+= sprintf(__("Click here on 'Add a Theme' and type in the necessary data. Type in the filenames for the logos %swithout%s the file extension '.png'"), '', ''); ?>
= __("Here you can update QSOs with missing distance information."); ?>
= __("Update distance data"); ?>
+= __("Use the following button to update the distance information for all your QSOs. Depending on the number of QSOs this might take some time to execute. Please be patient."); ?>
+= __("This demo will be reset every night at 0200z."); ?>
= __("Username"); ?>: demo
= __("Password"); ?>: demo
- = sprintf(__("More Information about Wavelog on Github."), "https://www.github.com/wavelog/wavelog"); ?>