Porównaj commity

...

18 Commity

Autor SHA1 Wiadomość Data
Patrick Burns 2aedac2847
Merge 96ed12cd89 into 42e76d8aa6 2024-04-16 10:59:14 -07:00
Peter Goodhall 42e76d8aa6
Fix SSTV localization strings 2024-04-16 13:59:50 +01:00
Peter Goodhall 4dc074241d
Merge pull request #3080 from nolith/qso_labels_awards
Print activator references on QSO labels
2024-04-16 13:59:02 +01:00
Alessio Caiazza cb85ad2144
Print activator references on QSO labels 2024-04-15 21:50:27 +02:00
Peter Goodhall 01ba223c27 Revert "Update pota.txt"
This reverts commit b551ba3a30.
2024-04-14 17:06:42 +01:00
Peter Goodhall 73032061e4 Tag 2.6.9 2024-04-14 16:23:57 +01:00
Patrick Burns 134d6bcf98 add sstv strings to the rest of the language files 2024-04-07 12:27:05 -05:00
Patrick Burns 96ed12cd89 Merge branch 'dev' into dockerize-for-development 2024-04-03 16:25:24 -05:00
Patrick Burns 58d8705774 Merge branch 'dev' into dockerize-for-development 2024-04-01 20:49:33 -05:00
Patrick Burns 236e86f7a8 Merge branch 'dockerize-for-development' of github.com:patrickrb/Cloudlog into dockerize-for-development 2024-03-29 09:20:50 -05:00
Patrick Burns ab119a1f5d add a bit more details about the importance of docker-compose service names 2024-03-29 09:20:14 -05:00
Patrick Burns b9483d910e add a special note about the db service name in docker-compose 2024-03-29 09:18:25 -05:00
Patrick Burns b926cb68d4 updated sample to the correct defaults for docker-compose 2024-03-28 19:57:02 -05:00
Patrick Burns 5b2c04f6d5 pre-populate the install config inputs with the .env values if they exist 2024-03-28 17:49:59 -05:00
Patrick Burns 0d9924a49c bump php version to 7.4 to meet minimums 2024-03-28 17:43:43 -05:00
Patrick Burns 8e63c3a694 undo some errant changes to the readme 2024-03-28 17:31:55 -05:00
Patrick Burns 7345289b86 fix formatting issue in readme markdown 2024-03-28 17:26:42 -05:00
Patrick Burns 671e34157f dockerize the app so i can develop easier on my work machine 2024-03-28 17:22:55 -05:00
30 zmienionych plików z 39606 dodań i 54829 usunięć

6
.env.sample 100644
Wyświetl plik

@ -0,0 +1,6 @@
MYSQL_ROOT_PASSWORD=rootpassword
MYSQL_DATABASE=cloudlog
MYSQL_USER=cloudlog
MYSQL_PASSWORD=cloudlogpassword
MYSQL_HOST=db
MYSQL_PORT=3306

1
.gitignore vendored
Wyświetl plik

@ -18,3 +18,4 @@
sync.sh sync.sh
*.p12 *.p12
*.swp *.swp
.env

29
Dockerfile 100644
Wyświetl plik

@ -0,0 +1,29 @@
# Use the official image for PHP and Apache
FROM php:7.4-apache
# Set the working directory to /var/www/html
WORKDIR /var/www/html
# Install system dependencies, including git and libxml2
RUN apt-get update && apt-get install -y \
libcurl4-openssl-dev \
libxml2-dev \
libzip-dev \
zlib1g-dev \
libpng-dev \
libonig-dev \
default-mysql-client \
curl \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-install pdo_mysql \
&& docker-php-ext-install mysqli \
&& docker-php-ext-install gd \
&& docker-php-ext-install mbstring \
&& docker-php-ext-install zip \
&& docker-php-ext-install xml \
&& a2enmod rewrite
# Expose port 80
EXPOSE 80

Wyświetl plik

@ -11,24 +11,58 @@ Core Contributors: 2M0SQL ([@magicbug](https://github.com/magicbug)), LA8AJA ([@
Website: [http://www.cloudlog.co.uk](http://www.cloudlog.co.uk) Website: [http://www.cloudlog.co.uk](http://www.cloudlog.co.uk)
## Requirements ## Requirements
* Linux based Operating System
* Apache (Nginx should work) - Linux based Operating System
* PHP Version 7.4 (PHP 8.2 works) - Apache (Nginx should work)
* MySQL (MySQL 5.7 or higher) - PHP Version 7.4 (PHP 8.2 works)
- MySQL (MySQL 5.7 or higher)
Notes 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. - 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 ## Setup
Installation information can be found on the [wiki](https://github.com/magicbug/Cloudlog/wiki). Installation information can be found on the [wiki](https://github.com/magicbug/Cloudlog/wiki).
# Docker Development Environment
This guide provides instructions for setting up a local development environment using Docker and Docker Compose. Please note that this setup is not recommended for production use.
## Prerequisites
Before you begin, you need to install Docker and Docker Compose. You can download them using the following links:
- [Docker](https://docs.docker.com/get-docker/)
- [Docker Compose](https://docs.docker.com/compose/install/)
## Configuration
1. Copy the `.env.sample` file to `.env`:
```bash
cp .env.sample .env
```
2. Open the `.env` file and update the values to match your setup. The values from the `.env` file will be used to populate the database connection details on the install page. You should not need to change these unless your setup requires different values.
**Note:** Docker Compose creates a network for your application, and each service (container) in the Docker Compose file can reach each other via the service name. This is why the `DB_HOST` value in the `.env` file and on the install page should match the service name of the database in the `docker-compose.yml` file. For example, if the database service in `docker-compose.yml` is defined as `db`, then `DB_HOST` should be set as 'db'. This allows the application to communicate with the database service on its internal docker network.
## Starting the Development Environment
To start the development environment, run the following command in your terminal:
```bash
docker-compose up
```
## Support ## Support
Cloudlog has two support systems for code issues use Github issues, however if you have general issues with setting up your server please use our general discussion forum [https://github.com/magicbug/Cloudlog/discussions](https://github.com/magicbug/Cloudlog/discussions). Cloudlog has two support systems for code issues use Github issues, however if you have general issues with setting up your server please use our general discussion forum [https://github.com/magicbug/Cloudlog/discussions](https://github.com/magicbug/Cloudlog/discussions).
## Security Vulnerabilities ## Security Vulnerabilities
If you discover a security vulnerability within Cloudlog, please send an e-mail to Peter Goodhall, 2M0SQL via [peter@magicbug.co.uk](mailto:peter@magicbug.co.uk). All security vulnerabilities will be promptly addressed. If you discover a security vulnerability within Cloudlog, please send an e-mail to Peter Goodhall, 2M0SQL via [peter@magicbug.co.uk](mailto:peter@magicbug.co.uk). All security vulnerabilities will be promptly addressed.
## Want Cloudlog Hosting? ## Want Cloudlog Hosting?
@ -53,4 +87,4 @@ Cloudlog is supported by Patreon and donations via PayPal, thanks to the followi
Paul (M0TZO), Tim (G4VXE), Paul (N8HM), Michelle (W5NYV), Mitchell (AD0HJ), Dan (M0TCB), Martin (DK3ML), Juan Carlos (EA5WA), Iain (M0PCB), Charlie (GM1TGY), Ondrej (OK1CDJ), Trystan (G0KAY), Oliver (DL6KBG), Volkmar Schirmer, Jordan (M0PIR), Thomas Ziegler, Mathis (DB9MAT), Ken (VE3HLS), Tyler (WL7T), Jeremy Taylor, Ben Kuhn, Eric Thresher, Michael Cullen, Juuso (OH1JW), Anthony Castiglia, Fernando Ramirez-Ferrer, Robert Dixon, Mark Percival, Julia (KV1V), Timo Tomasini, Ant (NU1U), Christopher Williams, Danny Barnes, Vic, Tom (M0LTE), smurphboy, Lars (SM0TGU), Theo (PD9DP), Stefan (SM0RGM). Peter (G0ABI), Lou (KI5FTY), Michael (DG3NAB), Dragan (4O4A), minorsecond, Emily (W7AYQ), Steve (M0SKM), Rob (M0VFC), Doug (WA6L), Petr (OK1PKR), Fabian (HB9HIL), Daniel (OK2VLK), John (M5JFS). Paul (M0TZO), Tim (G4VXE), Paul (N8HM), Michelle (W5NYV), Mitchell (AD0HJ), Dan (M0TCB), Martin (DK3ML), Juan Carlos (EA5WA), Iain (M0PCB), Charlie (GM1TGY), Ondrej (OK1CDJ), Trystan (G0KAY), Oliver (DL6KBG), Volkmar Schirmer, Jordan (M0PIR), Thomas Ziegler, Mathis (DB9MAT), Ken (VE3HLS), Tyler (WL7T), Jeremy Taylor, Ben Kuhn, Eric Thresher, Michael Cullen, Juuso (OH1JW), Anthony Castiglia, Fernando Ramirez-Ferrer, Robert Dixon, Mark Percival, Julia (KV1V), Timo Tomasini, Ant (NU1U), Christopher Williams, Danny Barnes, Vic, Tom (M0LTE), smurphboy, Lars (SM0TGU), Theo (PD9DP), Stefan (SM0RGM). Peter (G0ABI), Lou (KI5FTY), Michael (DG3NAB), Dragan (4O4A), minorsecond, Emily (W7AYQ), Steve (M0SKM), Rob (M0VFC), Doug (WA6L), Petr (OK1PKR), Fabian (HB9HIL), Daniel (OK2VLK), John (M5JFS).
If you'd like to donate to Cloudlog to help allow @magicbug spend less time doing commercial work and more time coding Cloudlog then you can donate via [PayPal](https://paypal.me/PGoodhall), [Github Sponsor](https://github.com/sponsors/magicbug) or become a [Patreon](https://www.patreon.com/2m0sql) If you'd like to donate to Cloudlog to help allow @magicbug spend less time doing commercial work and more time coding Cloudlog then you can donate via [PayPal](https://paypal.me/PGoodhall), [Github Sponsor](https://github.com/sponsors/magicbug) or become a [Patreon](https://www.patreon.com/2m0sql)

Wyświetl plik

@ -22,7 +22,7 @@ $config['migration_enabled'] = TRUE;
| |
*/ */
$config['migration_version'] = 177; $config['migration_version'] = 178;
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

Wyświetl plik

@ -135,10 +135,11 @@ class Labels extends CI_Controller {
$offset = xss_clean($this->input->post('startat')); $offset = xss_clean($this->input->post('startat'));
$grid = $this->input->post('grid') === "true" ? 1 : 0; $grid = $this->input->post('grid') === "true" ? 1 : 0;
$via = $this->input->post('via') === "true" ? 1 : 0; $via = $this->input->post('via') === "true" ? 1 : 0;
$awards = $this->input->post('awards') === "true" ? 1 : 0;
$this->load->model('labels_model'); $this->load->model('labels_model');
$result = $this->labels_model->export_printrequestedids($ids); $result = $this->labels_model->export_printrequestedids($ids);
$this->prepareLabel($result, true, $offset, $grid, $via); $this->prepareLabel($result, true, $offset, $grid, $via, $awards);
} }
public function print($station_id) { public function print($station_id) {
@ -146,18 +147,19 @@ class Labels extends CI_Controller {
$offset = xss_clean($this->input->post('startat')); $offset = xss_clean($this->input->post('startat'));
$grid = xss_clean($this->input->post('grid') ?? 0); $grid = xss_clean($this->input->post('grid') ?? 0);
$via = xss_clean($this->input->post('via') ?? 0); $via = xss_clean($this->input->post('via') ?? 0);
$awards = xss_clean($this->input->post('awards') ?? 0);
$this->load->model('stations'); $this->load->model('stations');
if ($this->stations->check_station_is_accessible($station_id)) { if ($this->stations->check_station_is_accessible($station_id)) {
$this->load->model('labels_model'); $this->load->model('labels_model');
$result = $this->labels_model->export_printrequested($clean_id); $result = $this->labels_model->export_printrequested($clean_id);
$this->prepareLabel($result, false, $offset, $grid, $via); $this->prepareLabel($result, false, $offset, $grid, $via, $awards);
} else { } else {
redirect('labels'); redirect('labels');
} }
} }
function prepareLabel($qsos, $jscall = false, $offset = 1, $grid = false, $via = false) { function prepareLabel($qsos, $jscall = false, $offset = 1, $grid = false, $via = false, $awards = false) {
$this->load->model('labels_model'); $this->load->model('labels_model');
$label = $this->labels_model->getDefaultLabel(); $label = $this->labels_model->getDefaultLabel();
@ -232,11 +234,7 @@ class Labels extends CI_Controller {
} }
if ($qsos->num_rows() > 0) { if ($qsos->num_rows() > 0) {
if ($label->qsos == 1) { $this->makeMultiQsoLabel($qsos->result(), $pdf, $label->qsos, $offset, $ptype->orientation, $grid, $via, $awards);
$this->makeMultiQsoLabel($qsos->result(), $pdf, 1, $offset, $ptype->orientation, $grid, $via);
} else {
$this->makeMultiQsoLabel($qsos->result(), $pdf, $label->qsos, $offset, $ptype->orientation, $grid, $via);
}
} else { } else {
$this->session->set_flashdata('message', '0 QSOs found for print!'); $this->session->set_flashdata('message', '0 QSOs found for print!');
redirect('labels'); redirect('labels');
@ -244,7 +242,7 @@ class Labels extends CI_Controller {
$pdf->Output(); $pdf->Output();
} }
function makeMultiQsoLabel($qsos, $pdf, $numberofqsos, $offset, $orientation, $grid, $via) { function makeMultiQsoLabel($qsos, $pdf, $numberofqsos, $offset, $orientation, $grid, $via, $awards) {
$text = ''; $text = '';
$current_callsign = ''; $current_callsign = '';
$current_sat = ''; $current_sat = '';
@ -261,7 +259,7 @@ class Labels extends CI_Controller {
( ($qso->COL_BAND_RX !== $current_sat_bandrx) && ($this->pretty_sat_mode($qso->COL_SAT_MODE) !== '')) ) { ( ($qso->COL_BAND_RX !== $current_sat_bandrx) && ($this->pretty_sat_mode($qso->COL_SAT_MODE) !== '')) ) {
// ((($qso->COL_SAT_NAME ?? '' !== $current_sat) || ($qso->COL_CALL !== $current_callsign)) && ($qso->COL_SAT_NAME ?? '' !== '') && ($col->COL_BAND_RX ?? '' !== $current_sat_bandrx))) { // ((($qso->COL_SAT_NAME ?? '' !== $current_sat) || ($qso->COL_CALL !== $current_callsign)) && ($qso->COL_SAT_NAME ?? '' !== '') && ($col->COL_BAND_RX ?? '' !== $current_sat_bandrx))) {
if (!empty($qso_data)) { if (!empty($qso_data)) {
$this->finalizeData($pdf, $current_callsign, $qso_data, $numberofqsos, $orientation, $grid, $via); $this->finalizeData($pdf, $current_callsign, $qso_data, $numberofqsos, $orientation, $grid, $via, $awards);
$qso_data = []; $qso_data = [];
} }
$current_callsign = $qso->COL_CALL; $current_callsign = $qso->COL_CALL;
@ -281,19 +279,46 @@ class Labels extends CI_Controller {
'sat_mode' => $this->pretty_sat_mode($qso->COL_SAT_MODE ?? ''), 'sat_mode' => $this->pretty_sat_mode($qso->COL_SAT_MODE ?? ''),
'sat_band_rx' => ($qso->COL_BAND_RX ?? ''), 'sat_band_rx' => ($qso->COL_BAND_RX ?? ''),
'qsl_recvd' => $qso->COL_QSL_RCVD, 'qsl_recvd' => $qso->COL_QSL_RCVD,
'mycall' => $qso->COL_STATION_CALLSIGN 'mycall' => $qso->COL_STATION_CALLSIGN,
'awards' => $this->stationAwardsList($qso)
]; ];
} }
if (!empty($qso_data)) { if (!empty($qso_data)) {
$this->finalizeData($pdf, $current_callsign, $qso_data, $numberofqsos, $orientation, $grid, $via); $this->finalizeData($pdf, $current_callsign, $qso_data, $numberofqsos, $orientation, $grid, $via, $awards);
} }
} }
function stationAwardsList($station_profile) {
$awards = "";
if (trim($station_profile->station_iota) !== '') {
$awards .= "IOTA:" . $station_profile->station_iota . " ";
}
if (trim($station_profile->station_sota) !== '') {
$awards .= "SOTA:" . $station_profile->station_sota . " ";
}
if (trim($station_profile->station_wwff) !== '') {
$awards .= "WWFF:" . $station_profile->station_wwff . " ";
}
if (trim($station_profile->station_pota) !== '') {
$awards .= "POTA:" . $station_profile->station_pota . " ";
}
if (trim($station_profile->station_sig) !== '' && trim($station_profile->station_sig_info) !== '') {
$awards .= $station_profile->station_sig . ":" . $station_profile->station_sig_info;
}
return $awards;
}
// New begin // New begin
function pretty_sat_mode($sat_mode) { function pretty_sat_mode($sat_mode) {
return(strlen($sat_mode ?? '') == 2 ? (strtoupper($sat_mode[0]).'/'.strtoupper($sat_mode[1])) : strtoupper($sat_mode ?? '')); return(strlen($sat_mode ?? '') == 2 ? (strtoupper($sat_mode[0]).'/'.strtoupper($sat_mode[1])) : strtoupper($sat_mode ?? ''));
} }
function finalizeData($pdf, $current_callsign, &$preliminaryData, $qso_per_label,$orientation, $grid, $via) { function finalizeData($pdf, $current_callsign, &$preliminaryData, $qso_per_label,$orientation, $grid, $via, $awards) {
$tableData = []; $tableData = [];
$count_qso = 0; $count_qso = 0;
@ -313,7 +338,7 @@ class Labels extends CI_Controller {
if($count_qso == $qso_per_label){ if($count_qso == $qso_per_label){
$this->generateLabel($pdf, $current_callsign, $tableData,$count_qso,$qso,$orientation, $grid, $via); $this->generateLabel($pdf, $current_callsign, $tableData,$count_qso,$qso,$orientation, $grid, $via, $awards);
$tableData = []; // reset the data $tableData = []; // reset the data
$count_qso = 0; // reset the counter $count_qso = 0; // reset the counter
} }
@ -321,12 +346,12 @@ class Labels extends CI_Controller {
} }
// generate label for remaining QSOs // generate label for remaining QSOs
if($count_qso > 0){ if($count_qso > 0){
$this->generateLabel($pdf, $current_callsign, $tableData,$count_qso,$qso,$orientation, $grid, $via); $this->generateLabel($pdf, $current_callsign, $tableData,$count_qso,$qso,$orientation, $grid, $via, $awards);
$preliminaryData = []; // reset the data $preliminaryData = []; // reset the data
} }
} }
function generateLabel($pdf, $current_callsign, $tableData,$numofqsos,$qso,$orientation,$grid=true, $via=false){ function generateLabel($pdf, $current_callsign, $tableData,$numofqsos,$qso,$orientation,$grid=true, $via=false, $awards=false){
$builder = new \AsciiTable\Builder(); $builder = new \AsciiTable\Builder();
$builder->addRows($tableData); $builder->addRows($tableData);
$text = "Confirming QSO".($numofqsos>1 ? 's' : '')." with "; $text = "Confirming QSO".($numofqsos>1 ? 's' : '')." with ";
@ -347,6 +372,7 @@ class Labels extends CI_Controller {
} }
$text.="\n"; $text.="\n";
if ($grid) { $text .= "My call: ".$qso['mycall']." Grid: ".$qso['mygrid']."\n"; } if ($grid) { $text .= "My call: ".$qso['mycall']." Grid: ".$qso['mygrid']."\n"; }
if ($awards) { $text .= $qso['awards']."\n"; }
$text .= "Thanks for the QSO".($numofqsos>1 ? 's' : ''); $text .= "Thanks for the QSO".($numofqsos>1 ? 's' : '');
$text .= " | ".($qso['qsl_recvd'] == 'Y' ? 'TNX' : 'PSE')." QSL"; $text .= " | ".($qso['qsl_recvd'] == 'Y' ? 'TNX' : 'PSE')." QSL";
$pdf->Add_Label($text,$orientation); $pdf->Add_Label($text,$orientation);

Wyświetl plik

@ -81,6 +81,10 @@ $lang['general_word_qslcard_manager'] = 'Manager';
$lang['general_word_qslcard_via'] = 'Чрез'; $lang['general_word_qslcard_via'] = 'Чрез';
$lang['general_word_eqslcard'] = 'eQSL Card'; $lang['general_word_eqslcard'] = 'eQSL Card';
$lang['general_word_eqslcards'] = 'eQSL Cards'; $lang['general_word_eqslcards'] = 'eQSL Cards';
$lang['general_word_sstv_management'] = 'SSTV Management';
$lang['general_word_sstvimages'] = 'SSTV Images';
$lang['general_sstv_upload'] = 'Uploaded SSTV images';
$lang['general_sstv_upload_button'] = 'Upload SSTV image(s)';
$lang['general_word_lotw'] = 'Logbook of the World'; $lang['general_word_lotw'] = 'Logbook of the World';
$lang['general_word_lotw_short'] = 'LoTW'; $lang['general_word_lotw_short'] = 'LoTW';

Wyświetl plik

@ -79,6 +79,10 @@ $lang['general_word_qslcard_bureau'] = '卡片局';
$lang['general_word_qslcard_electronic'] = '电子卡片'; $lang['general_word_qslcard_electronic'] = '电子卡片';
$lang['general_word_qslcard_manager'] = '卡片管理员'; $lang['general_word_qslcard_manager'] = '卡片管理员';
$lang['general_word_qslcard_via'] = '通过via'; $lang['general_word_qslcard_via'] = '通过via';
$lang['general_word_sstv_management'] = 'SSTV Management';
$lang['general_word_sstvimages'] = 'SSTV Images';
$lang['general_sstv_upload'] = 'Uploaded SSTV images';
$lang['general_sstv_upload_button'] = 'Upload SSTV image(s)';
$lang['general_word_eqslcard'] = '电子 QSL 卡片'; $lang['general_word_eqslcard'] = '电子 QSL 卡片';
$lang['general_word_eqslcards'] = 'eQSL 卡片'; $lang['general_word_eqslcards'] = 'eQSL 卡片';
$lang['general_word_lotw'] = 'Logbook of the WorldLoTW'; $lang['general_word_lotw'] = 'Logbook of the WorldLoTW';

Wyświetl plik

@ -17,6 +17,7 @@ $lang['menu_post_contest_logging'] = '比赛日志(手动)';
$lang['menu_bandmap'] = '波段地图'; $lang['menu_bandmap'] = '波段地图';
$lang['menu_view_qsl'] = '浏览QSL卡片'; $lang['menu_view_qsl'] = '浏览QSL卡片';
$lang['menu_view_eqsl'] = '浏览eQSL卡片'; $lang['menu_view_eqsl'] = '浏览eQSL卡片';
$lang['menu_view_sstv'] = 'View SSTV Images';
$lang['menu_notes'] = '笔记'; $lang['menu_notes'] = '笔记';

Wyświetl plik

@ -81,6 +81,10 @@ $lang['general_word_qslcard_manager'] = 'Správce';
$lang['general_word_qslcard_via'] = 'Přes'; $lang['general_word_qslcard_via'] = 'Přes';
$lang['general_word_eqslcard'] = 'eQSL karta'; $lang['general_word_eqslcard'] = 'eQSL karta';
$lang['general_word_eqslcards'] = 'eQSL karty'; $lang['general_word_eqslcards'] = 'eQSL karty';
$lang['general_word_sstv_management'] = 'SSTV Management';
$lang['general_word_sstvimages'] = 'SSTV Images';
$lang['general_sstv_upload'] = 'Uploaded SSTV images';
$lang['general_sstv_upload_button'] = 'Upload SSTV image(s)';
$lang['general_word_lotw'] = 'Logbook of the World'; $lang['general_word_lotw'] = 'Logbook of the World';
$lang['general_word_lotw_short'] = 'LoTW'; $lang['general_word_lotw_short'] = 'LoTW';

Wyświetl plik

@ -17,6 +17,7 @@ $lang['menu_post_contest_logging'] = 'Uložit závodní log';
$lang['menu_bandmap'] = 'Bandmap'; $lang['menu_bandmap'] = 'Bandmap';
$lang['menu_view_qsl'] = 'Zobrazit QSL'; $lang['menu_view_qsl'] = 'Zobrazit QSL';
$lang['menu_view_eqsl'] = 'Zobrazit eQSL'; $lang['menu_view_eqsl'] = 'Zobrazit eQSL';
$lang['menu_view_sstv'] = 'View SSTV Images';
$lang['menu_notes'] = 'Poznámky'; $lang['menu_notes'] = 'Poznámky';

Wyświetl plik

@ -81,6 +81,10 @@ $lang['general_word_qslcard_manager'] = 'Manager';
$lang['general_word_qslcard_via'] = 'Via'; $lang['general_word_qslcard_via'] = 'Via';
$lang['general_word_eqslcard'] = 'eQSL Card'; $lang['general_word_eqslcard'] = 'eQSL Card';
$lang['general_word_eqslcards'] = 'eQSL Cards'; $lang['general_word_eqslcards'] = 'eQSL Cards';
$lang['general_word_sstv_management'] = 'SSTV Management';
$lang['general_word_sstvimages'] = 'SSTV Images';
$lang['general_sstv_upload'] = 'Uploaded SSTV images';
$lang['general_sstv_upload_button'] = 'Upload SSTV image(s)';
$lang['general_word_lotw'] = 'Logbook of the World'; $lang['general_word_lotw'] = 'Logbook of the World';
$lang['general_word_lotw_short'] = 'LoTW'; $lang['general_word_lotw_short'] = 'LoTW';

Wyświetl plik

@ -81,6 +81,10 @@ $lang['general_word_qslcard_manager'] = 'Manageri';
$lang['general_word_qslcard_via'] = 'Via'; $lang['general_word_qslcard_via'] = 'Via';
$lang['general_word_eqslcard'] = 'eQSL Card'; $lang['general_word_eqslcard'] = 'eQSL Card';
$lang['general_word_eqslcards'] = 'eQSL Cards'; $lang['general_word_eqslcards'] = 'eQSL Cards';
$lang['general_word_sstv_management'] = 'SSTV Management';
$lang['general_word_sstvimages'] = 'SSTV Images';
$lang['general_sstv_upload'] = 'Uploaded SSTV images';
$lang['general_sstv_upload_button'] = 'Upload SSTV image(s)';
$lang['general_word_lotw'] = 'Logbook of the World'; $lang['general_word_lotw'] = 'Logbook of the World';
$lang['general_word_lotw_short'] = 'LoTW'; $lang['general_word_lotw_short'] = 'LoTW';

Wyświetl plik

@ -17,6 +17,7 @@ $lang['menu_post_contest_logging'] = 'Post Contest Logging';
$lang['menu_bandmap'] = 'Bandikartta'; $lang['menu_bandmap'] = 'Bandikartta';
$lang['menu_view_qsl'] = 'Näytä QSL'; $lang['menu_view_qsl'] = 'Näytä QSL';
$lang['menu_view_eqsl'] = 'Näytä eQSL'; $lang['menu_view_eqsl'] = 'Näytä eQSL';
$lang['menu_view_sstv'] = 'View SSTV Images';
$lang['menu_notes'] = 'Muistio'; $lang['menu_notes'] = 'Muistio';

Wyświetl plik

@ -81,6 +81,10 @@ $lang['general_word_qslcard_manager'] = "Manager";
$lang['general_word_qslcard_via'] = "Via"; $lang['general_word_qslcard_via'] = "Via";
$lang['general_word_eqslcard'] = "Carte eQSL"; $lang['general_word_eqslcard'] = "Carte eQSL";
$lang['general_word_eqslcards'] = "Cartes eQSL"; $lang['general_word_eqslcards'] = "Cartes eQSL";
$lang['general_word_sstv_management'] = 'SSTV Management';
$lang['general_word_sstvimages'] = 'SSTV Images';
$lang['general_sstv_upload'] = 'Uploaded SSTV images';
$lang['general_sstv_upload_button'] = 'Upload SSTV image(s)';
$lang['general_word_lotw'] = "Logbook of the World"; $lang['general_word_lotw'] = "Logbook of the World";
$lang['general_word_lotw_short'] = "LoTW"; $lang['general_word_lotw_short'] = "LoTW";

Wyświetl plik

@ -81,6 +81,10 @@ $lang['general_word_qslcard_manager'] = 'Διευθυντής';
$lang['general_word_qslcard_via'] = 'Μέσω'; $lang['general_word_qslcard_via'] = 'Μέσω';
$lang['general_word_eqslcard'] = 'eQSL Card'; $lang['general_word_eqslcard'] = 'eQSL Card';
$lang['general_word_eqslcards'] = 'Κάρτες eQSL'; $lang['general_word_eqslcards'] = 'Κάρτες eQSL';
$lang['general_word_sstv_management'] = 'SSTV Management';
$lang['general_word_sstvimages'] = 'SSTV Images';
$lang['general_sstv_upload'] = 'Uploaded SSTV images';
$lang['general_sstv_upload_button'] = 'Upload SSTV image(s)';
$lang['general_word_lotw'] = 'Logbook of the World'; $lang['general_word_lotw'] = 'Logbook of the World';
$lang['general_word_lotw_short'] = 'LoTW'; $lang['general_word_lotw_short'] = 'LoTW';

Wyświetl plik

@ -81,6 +81,10 @@ $lang['general_word_qslcard_manager'] = 'Manager';
$lang['general_word_qslcard_via'] = 'Via'; $lang['general_word_qslcard_via'] = 'Via';
$lang['general_word_eqslcard'] = 'eQSL Card'; $lang['general_word_eqslcard'] = 'eQSL Card';
$lang['general_word_eqslcards'] = 'Cartoline eQSL'; $lang['general_word_eqslcards'] = 'Cartoline eQSL';
$lang['general_word_sstv_management'] = 'SSTV Management';
$lang['general_word_sstvimages'] = 'SSTV Images';
$lang['general_sstv_upload'] = 'Uploaded SSTV images';
$lang['general_sstv_upload_button'] = 'Upload SSTV image(s)';
$lang['general_word_lotw'] = 'Logbook of the World'; $lang['general_word_lotw'] = 'Logbook of the World';
$lang['general_word_lotw_short'] = 'LoTW'; $lang['general_word_lotw_short'] = 'LoTW';

Wyświetl plik

@ -81,6 +81,10 @@ $lang['general_word_qslcard_manager'] = 'Manager';
$lang['general_word_qslcard_via'] = 'Via'; $lang['general_word_qslcard_via'] = 'Via';
$lang['general_word_eqslcard'] = 'eQSL Card'; $lang['general_word_eqslcard'] = 'eQSL Card';
$lang['general_word_eqslcards'] = 'eQSL Cards'; $lang['general_word_eqslcards'] = 'eQSL Cards';
$lang['general_word_sstv_management'] = 'SSTV Management';
$lang['general_word_sstvimages'] = 'SSTV Images';
$lang['general_sstv_upload'] = 'Uploaded SSTV images';
$lang['general_sstv_upload_button'] = 'Upload SSTV image(s)';
$lang['general_word_lotw'] = 'Logbook of the World'; $lang['general_word_lotw'] = 'Logbook of the World';
$lang['general_word_lotw_short'] = 'LoTW'; $lang['general_word_lotw_short'] = 'LoTW';

Wyświetl plik

@ -82,6 +82,10 @@ $lang['general_word_qslcard_manager'] = 'Менеджер';
$lang['general_word_qslcard_via'] = 'через'; $lang['general_word_qslcard_via'] = 'через';
$lang['general_word_eqslcard'] = 'eQSL Card'; $lang['general_word_eqslcard'] = 'eQSL Card';
$lang['general_word_eqslcards'] = 'eQSL'; $lang['general_word_eqslcards'] = 'eQSL';
$lang['general_word_sstv_management'] = 'SSTV Management';
$lang['general_word_sstvimages'] = 'SSTV Images';
$lang['general_sstv_upload'] = 'Uploaded SSTV images';
$lang['general_sstv_upload_button'] = 'Upload SSTV image(s)';
$lang['general_word_lotw'] = 'Logbook of the World'; $lang['general_word_lotw'] = 'Logbook of the World';
$lang['general_word_lotw_short'] = 'LoTW'; $lang['general_word_lotw_short'] = 'LoTW';

Wyświetl plik

@ -17,6 +17,7 @@ $lang['menu_post_contest_logging'] = 'Журнал прошедших сорев
$lang['menu_bandmap'] = 'План диапазонов'; $lang['menu_bandmap'] = 'План диапазонов';
$lang['menu_view_qsl'] = 'Просмотр QSL'; $lang['menu_view_qsl'] = 'Просмотр QSL';
$lang['menu_view_eqsl'] = 'Просмотр eQSL'; $lang['menu_view_eqsl'] = 'Просмотр eQSL';
$lang['menu_view_sstv'] = 'View SSTV Images';
$lang['menu_notes'] = 'Заметки'; $lang['menu_notes'] = 'Заметки';

Wyświetl plik

@ -82,6 +82,10 @@ $lang['general_word_qslcard_manager'] = 'Manager';
$lang['general_word_qslcard_via'] = 'Vía'; $lang['general_word_qslcard_via'] = 'Vía';
$lang['general_word_eqslcard'] = 'Tarjeta eQSL'; $lang['general_word_eqslcard'] = 'Tarjeta eQSL';
$lang['general_word_eqslcards'] = 'Tarjetas eQSL'; $lang['general_word_eqslcards'] = 'Tarjetas eQSL';
$lang['general_word_sstv_management'] = 'SSTV Management';
$lang['general_word_sstvimages'] = 'SSTV Images';
$lang['general_sstv_upload'] = 'Uploaded SSTV images';
$lang['general_sstv_upload_button'] = 'Upload SSTV image(s)';
$lang['general_word_lotw'] = 'Logbook of the World'; $lang['general_word_lotw'] = 'Logbook of the World';
$lang['general_word_lotw_short'] = 'LoTW'; $lang['general_word_lotw_short'] = 'LoTW';

Wyświetl plik

@ -17,6 +17,7 @@ $lang['menu_post_contest_logging'] = 'Registrar Entrada de Concurso';
$lang['menu_bandmap'] = 'mapa de Bandas'; $lang['menu_bandmap'] = 'mapa de Bandas';
$lang['menu_view_qsl'] = 'Ver Tarjetas QSL'; $lang['menu_view_qsl'] = 'Ver Tarjetas QSL';
$lang['menu_view_eqsl'] = 'Ver Tarjetas eQSL'; $lang['menu_view_eqsl'] = 'Ver Tarjetas eQSL';
$lang['menu_view_sstv'] = 'View SSTV Images';
$lang['menu_notes'] = 'Notas'; $lang['menu_notes'] = 'Notas';

Wyświetl plik

@ -25,7 +25,7 @@ $lang['general_word_enabled'] = "Enabled";
$lang['general_word_disabled'] = "Disabled"; $lang['general_word_disabled'] = "Disabled";
$lang['general_word_count'] = "Count"; $lang['general_word_count'] = "Count";
$lang['general_word_filtering_on'] = "Filtering on"; $lang['general_word_filtering_on'] = "Filtering on";
$lang['general_word_never'] = "Never"; $lang['general_word_never'] = "Never";
$lang['general_word_export'] = "Export"; $lang['general_word_export'] = "Export";
$lang['general_word_import'] = "Import"; $lang['general_word_import'] = "Import";
$lang['general_word_startdate'] = "Start Date"; $lang['general_word_startdate'] = "Start Date";
@ -82,6 +82,10 @@ $lang['general_word_qslcard_manager'] = 'Manager';
$lang['general_word_qslcard_via'] = 'Via'; $lang['general_word_qslcard_via'] = 'Via';
$lang['general_word_eqslcard'] = 'eQSL Card'; $lang['general_word_eqslcard'] = 'eQSL Card';
$lang['general_word_eqslcards'] = 'eQSL Cards'; $lang['general_word_eqslcards'] = 'eQSL Cards';
$lang['general_word_sstv_management'] = 'SSTV Management';
$lang['general_word_sstvimages'] = 'SSTV Images';
$lang['general_sstv_upload'] = 'Uploaded SSTV images';
$lang['general_sstv_upload_button'] = 'Upload SSTV image(s)';
$lang['general_word_lotw'] = 'Logbook of the World'; $lang['general_word_lotw'] = 'Logbook of the World';
$lang['general_word_lotw_short'] = 'LoTW'; $lang['general_word_lotw_short'] = 'LoTW';
@ -125,8 +129,8 @@ $lang['gen_hamradio_callsign'] = 'Signal';
$lang['gen_hamradio_de'] = 'De'; $lang['gen_hamradio_de'] = 'De';
$lang['gen_hamradio_dx'] = 'Dx'; $lang['gen_hamradio_dx'] = 'Dx';
$lang['gen_hamradio_mode'] = 'Mode'; $lang['gen_hamradio_mode'] = 'Mode';
$lang['gen_hamradio_ant_az'] = 'Antenna Azimuth'; $lang['gen_hamradio_ant_az'] = 'Antenna Azimuth';
$lang['gen_hamradio_ant_el'] = 'Antenna Elevation'; $lang['gen_hamradio_ant_el'] = 'Antenna Elevation';
$lang['gen_hamradio_rst_sent'] = 'Skickat'; $lang['gen_hamradio_rst_sent'] = 'Skickat';
$lang['gen_hamradio_rst_rcvd'] = 'Mottagen\'d'; $lang['gen_hamradio_rst_rcvd'] = 'Mottagen\'d';
$lang['gen_hamradio_band'] = 'Band'; $lang['gen_hamradio_band'] = 'Band';

Wyświetl plik

@ -17,6 +17,7 @@ $lang['menu_post_contest_logging'] = 'Post Tävlingsloggning';
$lang['menu_bandmap'] = 'Bandkarta'; $lang['menu_bandmap'] = 'Bandkarta';
$lang['menu_view_qsl'] = 'Se QSL'; $lang['menu_view_qsl'] = 'Se QSL';
$lang['menu_view_eqsl'] = 'Se eQSL'; $lang['menu_view_eqsl'] = 'Se eQSL';
$lang['menu_view_sstv'] = 'View SSTV Images';
$lang['menu_notes'] = 'Anteckningar'; $lang['menu_notes'] = 'Anteckningar';

Wyświetl plik

@ -81,6 +81,10 @@ $lang['general_word_qslcard_manager'] = 'Yönetici';
$lang['general_word_qslcard_via'] = 'üzerinden'; $lang['general_word_qslcard_via'] = 'üzerinden';
$lang['general_word_eqslcard'] = 'eQSL Card'; $lang['general_word_eqslcard'] = 'eQSL Card';
$lang['general_word_eqslcards'] = 'eQSL Kartları'; $lang['general_word_eqslcards'] = 'eQSL Kartları';
$lang['general_word_sstv_management'] = 'SSTV Management';
$lang['general_word_sstvimages'] = 'SSTV Images';
$lang['general_sstv_upload'] = 'Uploaded SSTV images';
$lang['general_sstv_upload_button'] = 'Upload SSTV image(s)';
$lang['general_word_lotw'] = 'Logbook of the World'; $lang['general_word_lotw'] = 'Logbook of the World';
$lang['general_word_lotw_short'] = 'LoTW'; $lang['general_word_lotw_short'] = 'LoTW';

Wyświetl plik

@ -0,0 +1,30 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
* Tag Cloudlog as 2.6.9
*/
class Migration_tag_2_6_9 extends CI_Migration {
public function up()
{
// Tag Cloudlog 2.6.3
$this->db->where('option_name', 'version');
$this->db->update('options', array('option_value' => '2.6.9'));
// Trigger Version Info Dialog
$this->db->where('option_type', 'version_dialog');
$this->db->where('option_name', 'confirmed');
$this->db->update('user_options', array('option_value' => 'false'));
}
public function down()
{
$this->db->where('option_name', 'version');
$this->db->update('options', array('option_value' => '2.6.8'));
}
}

Wyświetl plik

@ -11,6 +11,12 @@
<input class="form-check-input" type="checkbox" name="via" id="via"> <input class="form-check-input" type="checkbox" name="via" id="via">
</div> </div>
</div> </div>
<div class="mb-3 row">
<label class="my-1 me-2 col-md-4" for="via">Include awards?</label>
<div class="form-check-inline">
<input class="form-check-input" type="checkbox" name="awards" id="awards">
</div>
</div>
<div class="mb-3 row"> <div class="mb-3 row">
<label class="my-1 me-2 col-md-4" for="startat">Start printing at?</label> <label class="my-1 me-2 col-md-4" for="startat">Start printing at?</label>
<div class="d-flex align-items-center"> <div class="d-flex align-items-center">

Plik diff jest za duży Load Diff

22
docker-compose.yml 100644
Wyświetl plik

@ -0,0 +1,22 @@
version: "3.8"
services:
web:
build: .
env_file:
- .env
ports:
- "80:80"
volumes:
- ./:/var/www/html:rw
depends_on:
- db
db:
image: mariadb:latest
env_file:
- .env
volumes:
- db_data:/var/lib/mysql
volumes:
db_data: {}

Wyświetl plik

@ -148,10 +148,10 @@ if($_POST) {
<fieldset> <fieldset>
<legend>Database settings</legend> <legend>Database settings</legend>
<label for="hostname">Hostname</label><input type="text" id="hostname" value="localhost" class="input_text" name="hostname" /> <label for="hostname">Hostname</label><input type="text" id="hostname" value="<?php echo getenv('MYSQL_HOST') ?: 'localhost'; ?>" class="input_text" name="hostname" />
<label for="username">Username</label><input type="text" id="username" class="input_text" name="username" /> <label for="username">Username</label><input type="text" id="username" value="<?php echo getenv('MYSQL_USER'); ?>" class="input_text" name="username" />
<label for="password">Password</label><input type="password" id="password" class="input_text" name="password" /> <label for="password">Password</label><input type="password" id="password" value="<?php echo getenv('MYSQL_PASSWORD'); ?>" class="input_text" name="password" />
<label for="database">Database Name</label><input type="text" id="database" class="input_text" name="database" /> <label for="database">Database Name</label><input type="text" id="database" value="<?php echo getenv('MYSQL_DATABASE'); ?>" class="input_text" name="database" />
<input type="submit" value="Install" id="submit" /> <input type="submit" value="Install" id="submit" />
</fieldset> </fieldset>
</form> </form>