kopia lustrzana https://github.com/magicbug/Cloudlog
Porównaj commity
38 Commity
499c29bb5a
...
6b4c46856d
Autor | SHA1 | Data |
---|---|---|
Patrick Burns | 6b4c46856d | |
Peter Goodhall | 9bbda9bf4d | |
Peter Goodhall | d169298940 | |
Peter Goodhall | 8b206a99df | |
Peter Goodhall | 9527b08181 | |
Peter Goodhall | 201368c2cc | |
Peter Goodhall | ec7d579e77 | |
Peter Goodhall | 2d72981787 | |
Peter Goodhall | dc294ef54f | |
Peter Goodhall | 64873c5178 | |
Peter Goodhall | 925656ab96 | |
Peter Goodhall | e7bb428bc4 | |
Peter Goodhall | e2a9641383 | |
Peter Goodhall | efa597f0d9 | |
Patrick Burns | 253da3797c | |
Patrick Burns | f619a6b702 | |
Patrick Burns | 6c06956e9a | |
Patrick Burns | ec8f4b4e5d | |
Patrick Burns | 485c21a1eb | |
Patrick Burns | 08c5e4420f | |
Patrick Burns | ede0b201a5 | |
Patrick Burns | e0af386cc5 | |
Patrick Burns | 08d2ffaa3b | |
Patrick Burns | a361d593e5 | |
Patrick Burns | f65a8c1e12 | |
Patrick Burns | 3d5169bbdd | |
Patrick Burns | 155537e99c | |
Patrick Burns | 45fc6b96be | |
Patrick Burns | 3dd728d251 | |
Patrick Burns | 8ade6979df | |
Patrick Burns | e1f75906ee | |
Patrick Burns | 0e7232a50c | |
Patrick Burns | f28bc904ad | |
Patrick Burns | bfb39c0b1d | |
Patrick Burns | 6d7d5fb459 | |
Patrick Burns | 0473a3c621 | |
Patrick Burns | a0a12c776c | |
Patrick Burns | 238f1e66fa |
|
@ -0,0 +1,9 @@
|
|||
MYSQL_ROOT_PASSWORD=rootpassword
|
||||
MYSQL_DATABASE=cloudlog
|
||||
MYSQL_USER=cloudlog
|
||||
MYSQL_PASSWORD=cloudlogpassword
|
||||
MYSQL_HOST=db
|
||||
MYSQL_PORT=3306
|
||||
BASE_LOCATOR=IO91WM
|
||||
WEBSITE_URL=http://localhost
|
||||
DIRECTORY=/var/www/html
|
|
@ -0,0 +1,45 @@
|
|||
name: Cypress Tests
|
||||
on: [pull_request]
|
||||
jobs:
|
||||
cypress-e2e-tests:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Cache Cypress
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.cache/Cypress
|
||||
key: cypress-${{ hashFiles('package-lock.json') }}
|
||||
restore-keys: |
|
||||
cypress-
|
||||
|
||||
- name: Install Cypress
|
||||
run: npm install cypress
|
||||
|
||||
- name: Cache .env
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: .env
|
||||
key: .env-${{ hashFiles('.env.sample') }}
|
||||
restore-keys: |
|
||||
.env-
|
||||
|
||||
- name: Setup .env
|
||||
run: |
|
||||
if [ ! -f .env ]; then
|
||||
cp .env.sample .env
|
||||
fi
|
||||
|
||||
- name: Build Docker services
|
||||
run: docker-compose up -d
|
||||
|
||||
- name: Wait for services to start
|
||||
run: sleep 5
|
||||
|
||||
- name: Populate dxcc_entities table
|
||||
run: curl "http://localhost/index.php/update/dxcc"
|
||||
|
||||
- name: Run Cypress tests
|
||||
run: npx cypress run
|
|
@ -13,8 +13,12 @@
|
|||
/assets/qslcard/*
|
||||
/assets/sstvimages/*
|
||||
/assets/js/sections/custom.js
|
||||
/cypress/screenshots
|
||||
/node_modules/
|
||||
.idea/*
|
||||
.DS_Store
|
||||
sync.sh
|
||||
*.p12
|
||||
*.swp
|
||||
.env
|
||||
/node_modules
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
# 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
|
|
@ -0,0 +1,8 @@
|
|||
# Dockerfile-db
|
||||
FROM mariadb:latest
|
||||
|
||||
# Add the install.sql file to the docker image
|
||||
ADD install/assets/install.sql /docker-entrypoint-initdb.d
|
||||
|
||||
# Expose port 3306
|
||||
EXPOSE 3306
|
89
README.md
89
README.md
|
@ -11,24 +11,99 @@ Core Contributors: 2M0SQL ([@magicbug](https://github.com/magicbug)), LA8AJA ([@
|
|||
Website: [http://www.cloudlog.co.uk](http://www.cloudlog.co.uk)
|
||||
|
||||
## Requirements
|
||||
* Linux based Operating System
|
||||
* Apache (Nginx should work)
|
||||
* PHP Version 7.4 (PHP 8.2 works)
|
||||
* MySQL (MySQL 5.7 or higher)
|
||||
|
||||
- Linux based Operating System
|
||||
- Apache (Nginx should work)
|
||||
- PHP Version 7.4 (PHP 8.2 works)
|
||||
- MySQL (MySQL 5.7 or higher)
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
# Running Cypress Tests Locally
|
||||
|
||||
Follow these steps to run the Cypress tests locally on your machine:
|
||||
|
||||
1. **Clone the repository**
|
||||
|
||||
If you haven't already, clone the repository to your local machine
|
||||
|
||||
2. **Setup .env file**
|
||||
|
||||
Copy the sample `.env` file and adjust it to your local environment:
|
||||
|
||||
```bash
|
||||
cd your-repo
|
||||
cp .env.sample .env
|
||||
```
|
||||
|
||||
3. **Build Docker services**
|
||||
|
||||
Build and start the Docker services:
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
4. **Install Cypress**
|
||||
|
||||
Navigate into the project directory and install Cypress:
|
||||
|
||||
```bash
|
||||
npm install cypress
|
||||
```
|
||||
|
||||
5. **Run the Cypress tests**
|
||||
|
||||
After the installation is complete, you can run the Cypress tests:
|
||||
|
||||
```bash
|
||||
npx cypress run
|
||||
```
|
||||
|
||||
## 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).
|
||||
|
||||
## 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.
|
||||
|
||||
## Want Cloudlog Hosting?
|
||||
|
@ -53,4 +128,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).
|
||||
|
||||
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)
|
||||
|
|
|
@ -22,7 +22,7 @@ $config['migration_enabled'] = TRUE;
|
|||
|
|
||||
*/
|
||||
|
||||
$config['migration_version'] = 178;
|
||||
$config['migration_version'] = 179;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
Plik diff jest za duży
Load Diff
|
@ -59,6 +59,10 @@ class User_Options extends CI_Controller {
|
|||
echo json_encode($jsonout);
|
||||
}
|
||||
|
||||
public function enableVersionDialog() {
|
||||
$this->user_options_model->set_option('version_dialog', 'confirmed', array('boolean' => 'false'));
|
||||
}
|
||||
|
||||
public function dismissVersionDialog() {
|
||||
$this->user_options_model->set_option('version_dialog', 'confirmed', array('boolean' => 'true'));
|
||||
}
|
||||
|
|
|
@ -193,3 +193,13 @@ $lang['awards_waja_description_ln1'] = "WAJA - Worked All Japan prefectures Awar
|
|||
$lang['awards_waja_description_ln2'] = "WAJA, Worked All Japan prefectures in Amateur Radio, encourages licensed ham radio operators to work all the prefectures in Japan.";
|
||||
$lang['awards_waja_description_ln3'] = "May be claimed for having contacted (heard) and received a QSL card from an amateur station located in each of the 47 prefectures of Japan. A list of QSL cards should be arranged in order of WAJA (HAJA) reference number, however names of prefectures may be omitted.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm' target='_blank'>https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm</a>.";
|
||||
|
||||
/*
|
||||
___________________________________________________________________________________________
|
||||
WAB -- Use all 3 Lines of Text
|
||||
___________________________________________________________________________________________
|
||||
*/
|
||||
$lang['awards_waja_description_ln1'] = "WAB - Worked All Britain Award";
|
||||
$lang['awards_wab_description_ln2'] = "The Amateur Radio Worked All Britain (WAB) Award is a prestigious recognition program within the amateur radio community that celebrates communication achievements across the United Kingdom. The WAB Award scheme encourages radio operators to establish contact with stations located in different regions of Britain, fostering camaraderie and promoting radio communication skills. To earn the WAB Award, participants must make successful radio contacts with stations located in specific WAB areas, which are defined by Ordnance Survey grid squares. These grid squares cover the entirety of Great Britain, including England, Scotland, Wales, and some offshore islands.";
|
||||
$lang['awards_wab_description_ln3'] = "Participants in the WAB Award program exchange information such as their location, signal strength, and WAB square reference during radio contacts. Points are awarded based on the location of the contacted station, with different point values assigned to contacts made within different WAB areas. By accumulating points from successful contacts, radio operators can progress through various award levels, each representing a significant milestone in their amateur radio journey. The WAB Award not only recognizes the dedication and skill of radio operators but also promotes geographic diversity and encourages exploration of the rich tapestry of locations across Britain through the medium of amateur radio.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://wab.intermip.net/default.php' target='_blank'>https://wab.intermip.net/default.php</a>.";
|
||||
|
|
|
@ -193,3 +193,13 @@ $lang['awards_waja_description_ln1'] = "WAJA - 通联全日本都道府县奖状
|
|||
$lang['awards_waja_description_ln2'] = "WAJA,通联全日本都道府县奖状,鼓励许可的业余无线电操作者与所有日本都道府县的电台通联";
|
||||
$lang['awards_waja_description_ln3'] = "也许可以通过展示出已经通联(或收听)过来自日本47个都道府县的电台发来的QSL卡片,并按照WAJA(HAJA)的顺序进行排列,都道府县的名称可以忽略";
|
||||
$lang['awards_waja_description_ln4'] = "请访问 <a href='https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm' target='_blank'>https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm</a> 获得更多信息";
|
||||
|
||||
/*
|
||||
___________________________________________________________________________________________
|
||||
WAB -- Use all 3 Lines of Text
|
||||
___________________________________________________________________________________________
|
||||
*/
|
||||
$lang['awards_waja_description_ln1'] = "WAB - Worked All Britain Award";
|
||||
$lang['awards_wab_description_ln2'] = "The Amateur Radio Worked All Britain (WAB) Award is a prestigious recognition program within the amateur radio community that celebrates communication achievements across the United Kingdom. The WAB Award scheme encourages radio operators to establish contact with stations located in different regions of Britain, fostering camaraderie and promoting radio communication skills. To earn the WAB Award, participants must make successful radio contacts with stations located in specific WAB areas, which are defined by Ordnance Survey grid squares. These grid squares cover the entirety of Great Britain, including England, Scotland, Wales, and some offshore islands.";
|
||||
$lang['awards_wab_description_ln3'] = "Participants in the WAB Award program exchange information such as their location, signal strength, and WAB square reference during radio contacts. Points are awarded based on the location of the contacted station, with different point values assigned to contacts made within different WAB areas. By accumulating points from successful contacts, radio operators can progress through various award levels, each representing a significant milestone in their amateur radio journey. The WAB Award not only recognizes the dedication and skill of radio operators but also promotes geographic diversity and encourages exploration of the rich tapestry of locations across Britain through the medium of amateur radio.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://wab.intermip.net/default.php' target='_blank'>https://wab.intermip.net/default.php</a>.";
|
||||
|
|
|
@ -193,3 +193,12 @@ $lang['awards_waja_description_ln1'] = "WAJA - Worked All Japan prefectures Awar
|
|||
$lang['awards_waja_description_ln2'] = "WAJA, Worked All Japan prefectures in Amateur Radio, encourages licensed ham radio operators to work all the prefectures in Japan.";
|
||||
$lang['awards_waja_description_ln3'] = "May be claimed for having contacted (heard) and received a QSL card from an amateur station located in each of the 47 prefectures of Japan. A list of QSL cards should be arranged in order of WAJA (HAJA) reference number, however names of prefectures may be omitted.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm' target='_blank'>https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm</a>.";
|
||||
/*
|
||||
___________________________________________________________________________________________
|
||||
WAB -- Use all 3 Lines of Text
|
||||
___________________________________________________________________________________________
|
||||
*/
|
||||
$lang['awards_waja_description_ln1'] = "WAB - Worked All Britain Award";
|
||||
$lang['awards_wab_description_ln2'] = "The Amateur Radio Worked All Britain (WAB) Award is a prestigious recognition program within the amateur radio community that celebrates communication achievements across the United Kingdom. The WAB Award scheme encourages radio operators to establish contact with stations located in different regions of Britain, fostering camaraderie and promoting radio communication skills. To earn the WAB Award, participants must make successful radio contacts with stations located in specific WAB areas, which are defined by Ordnance Survey grid squares. These grid squares cover the entirety of Great Britain, including England, Scotland, Wales, and some offshore islands.";
|
||||
$lang['awards_wab_description_ln3'] = "Participants in the WAB Award program exchange information such as their location, signal strength, and WAB square reference during radio contacts. Points are awarded based on the location of the contacted station, with different point values assigned to contacts made within different WAB areas. By accumulating points from successful contacts, radio operators can progress through various award levels, each representing a significant milestone in their amateur radio journey. The WAB Award not only recognizes the dedication and skill of radio operators but also promotes geographic diversity and encourages exploration of the rich tapestry of locations across Britain through the medium of amateur radio.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://wab.intermip.net/default.php' target='_blank'>https://wab.intermip.net/default.php</a>.";
|
||||
|
|
|
@ -193,3 +193,13 @@ $lang['awards_waja_description_ln1'] = "WAJA - Worked All Japan prefectures Awar
|
|||
$lang['awards_waja_description_ln2'] = "WAJA, Worked All Japan prefectures in Amateur Radio, encourages licensed ham radio operators to work all the prefectures in Japan.";
|
||||
$lang['awards_waja_description_ln3'] = "May be claimed for having contacted (heard) and received a QSL card from an amateur station located in each of the 47 prefectures of Japan. A list of QSL cards should be arranged in order of WAJA (HAJA) reference number, however names of prefectures may be omitted.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm' target='_blank'>https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm</a>.";
|
||||
|
||||
/*
|
||||
___________________________________________________________________________________________
|
||||
WAB -- Use all 3 Lines of Text
|
||||
___________________________________________________________________________________________
|
||||
*/
|
||||
$lang['awards_waja_description_ln1'] = "WAB - Worked All Britain Award";
|
||||
$lang['awards_wab_description_ln2'] = "The Amateur Radio Worked All Britain (WAB) Award is a prestigious recognition program within the amateur radio community that celebrates communication achievements across the United Kingdom. The WAB Award scheme encourages radio operators to establish contact with stations located in different regions of Britain, fostering camaraderie and promoting radio communication skills. To earn the WAB Award, participants must make successful radio contacts with stations located in specific WAB areas, which are defined by Ordnance Survey grid squares. These grid squares cover the entirety of Great Britain, including England, Scotland, Wales, and some offshore islands.";
|
||||
$lang['awards_wab_description_ln3'] = "Participants in the WAB Award program exchange information such as their location, signal strength, and WAB square reference during radio contacts. Points are awarded based on the location of the contacted station, with different point values assigned to contacts made within different WAB areas. By accumulating points from successful contacts, radio operators can progress through various award levels, each representing a significant milestone in their amateur radio journey. The WAB Award not only recognizes the dedication and skill of radio operators but also promotes geographic diversity and encourages exploration of the rich tapestry of locations across Britain through the medium of amateur radio.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://wab.intermip.net/default.php' target='_blank'>https://wab.intermip.net/default.php</a>.";
|
||||
|
|
|
@ -193,3 +193,13 @@ $lang['awards_waja_description_ln1'] = "WAJA - Worked All Japan prefectures Awar
|
|||
$lang['awards_waja_description_ln2'] = "WAJA, Worked All Japan prefectures in Amateur Radio, encourages licensed ham radio operators to work all the prefectures in Japan.";
|
||||
$lang['awards_waja_description_ln3'] = "May be claimed for having contacted (heard) and received a QSL card from an amateur station located in each of the 47 prefectures of Japan. A list of QSL cards should be arranged in order of WAJA (HAJA) reference number, however names of prefectures may be omitted.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm' target='_blank'>https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm</a>.";
|
||||
|
||||
/*
|
||||
___________________________________________________________________________________________
|
||||
WAB -- Use all 3 Lines of Text
|
||||
___________________________________________________________________________________________
|
||||
*/
|
||||
$lang['awards_waja_description_ln1'] = "WAB - Worked All Britain Award";
|
||||
$lang['awards_wab_description_ln2'] = "The Amateur Radio Worked All Britain (WAB) Award is a prestigious recognition program within the amateur radio community that celebrates communication achievements across the United Kingdom. The WAB Award scheme encourages radio operators to establish contact with stations located in different regions of Britain, fostering camaraderie and promoting radio communication skills. To earn the WAB Award, participants must make successful radio contacts with stations located in specific WAB areas, which are defined by Ordnance Survey grid squares. These grid squares cover the entirety of Great Britain, including England, Scotland, Wales, and some offshore islands.";
|
||||
$lang['awards_wab_description_ln3'] = "Participants in the WAB Award program exchange information such as their location, signal strength, and WAB square reference during radio contacts. Points are awarded based on the location of the contacted station, with different point values assigned to contacts made within different WAB areas. By accumulating points from successful contacts, radio operators can progress through various award levels, each representing a significant milestone in their amateur radio journey. The WAB Award not only recognizes the dedication and skill of radio operators but also promotes geographic diversity and encourages exploration of the rich tapestry of locations across Britain through the medium of amateur radio.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://wab.intermip.net/default.php' target='_blank'>https://wab.intermip.net/default.php</a>.";
|
||||
|
|
|
@ -193,3 +193,13 @@ $lang['awards_waja_description_ln1'] = "WAJA - Worked All Japan prefectures Awar
|
|||
$lang['awards_waja_description_ln2'] = "WAJA, Worked All Japan prefectures in Amateur Radio, encourages licensed ham radio operators to work all the prefectures in Japan.";
|
||||
$lang['awards_waja_description_ln3'] = "May be claimed for having contacted (heard) and received a QSL card from an amateur station located in each of the 47 prefectures of Japan. A list of QSL cards should be arranged in order of WAJA (HAJA) reference number, however names of prefectures may be omitted.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm' target='_blank'>https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm</a>.";
|
||||
|
||||
/*
|
||||
___________________________________________________________________________________________
|
||||
WAB -- Use all 3 Lines of Text
|
||||
___________________________________________________________________________________________
|
||||
*/
|
||||
$lang['awards_waja_description_ln1'] = "WAB - Worked All Britain Award";
|
||||
$lang['awards_wab_description_ln2'] = "The Amateur Radio Worked All Britain (WAB) Award is a prestigious recognition program within the amateur radio community that celebrates communication achievements across the United Kingdom. The WAB Award scheme encourages radio operators to establish contact with stations located in different regions of Britain, fostering camaraderie and promoting radio communication skills. To earn the WAB Award, participants must make successful radio contacts with stations located in specific WAB areas, which are defined by Ordnance Survey grid squares. These grid squares cover the entirety of Great Britain, including England, Scotland, Wales, and some offshore islands.";
|
||||
$lang['awards_wab_description_ln3'] = "Participants in the WAB Award program exchange information such as their location, signal strength, and WAB square reference during radio contacts. Points are awarded based on the location of the contacted station, with different point values assigned to contacts made within different WAB areas. By accumulating points from successful contacts, radio operators can progress through various award levels, each representing a significant milestone in their amateur radio journey. The WAB Award not only recognizes the dedication and skill of radio operators but also promotes geographic diversity and encourages exploration of the rich tapestry of locations across Britain through the medium of amateur radio.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://wab.intermip.net/default.php' target='_blank'>https://wab.intermip.net/default.php</a>.";
|
||||
|
|
|
@ -193,3 +193,13 @@ $lang['awards_waja_description_ln1'] = "WAJA - Worked All Japan prefectures Awar
|
|||
$lang['awards_waja_description_ln2'] = "WAJA, Worked All Japan prefectures in Amateur Radio, encourages licensed ham radio operators to work all the prefectures in Japan.";
|
||||
$lang['awards_waja_description_ln3'] = "May be claimed for having contacted (heard) and received a QSL card from an amateur station located in each of the 47 prefectures of Japan. A list of QSL cards should be arranged in order of WAJA (HAJA) reference number, however names of prefectures may be omitted.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm' target='_blank'>https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm</a>.";
|
||||
|
||||
/*
|
||||
___________________________________________________________________________________________
|
||||
WAB -- Use all 3 Lines of Text
|
||||
___________________________________________________________________________________________
|
||||
*/
|
||||
$lang['awards_waja_description_ln1'] = "WAB - Worked All Britain Award";
|
||||
$lang['awards_wab_description_ln2'] = "The Amateur Radio Worked All Britain (WAB) Award is a prestigious recognition program within the amateur radio community that celebrates communication achievements across the United Kingdom. The WAB Award scheme encourages radio operators to establish contact with stations located in different regions of Britain, fostering camaraderie and promoting radio communication skills. To earn the WAB Award, participants must make successful radio contacts with stations located in specific WAB areas, which are defined by Ordnance Survey grid squares. These grid squares cover the entirety of Great Britain, including England, Scotland, Wales, and some offshore islands.";
|
||||
$lang['awards_wab_description_ln3'] = "Participants in the WAB Award program exchange information such as their location, signal strength, and WAB square reference during radio contacts. Points are awarded based on the location of the contacted station, with different point values assigned to contacts made within different WAB areas. By accumulating points from successful contacts, radio operators can progress through various award levels, each representing a significant milestone in their amateur radio journey. The WAB Award not only recognizes the dedication and skill of radio operators but also promotes geographic diversity and encourages exploration of the rich tapestry of locations across Britain through the medium of amateur radio.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://wab.intermip.net/default.php' target='_blank'>https://wab.intermip.net/default.php</a>.";
|
||||
|
|
|
@ -193,3 +193,13 @@ $lang['awards_waja_description_ln1'] = "WAJA - Worked All Japan prefectures Awar
|
|||
$lang['awards_waja_description_ln2'] = "WAJA, Worked All Japan prefectures in Amateur Radio, encourages licensed ham radio operators to work all the prefectures in Japan.";
|
||||
$lang['awards_waja_description_ln3'] = "May be claimed for having contacted (heard) and received a QSL card from an amateur station located in each of the 47 prefectures of Japan. A list of QSL cards should be arranged in order of WAJA (HAJA) reference number, however names of prefectures may be omitted.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm' target='_blank'>https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm</a>.";
|
||||
|
||||
/*
|
||||
___________________________________________________________________________________________
|
||||
WAB -- Use all 3 Lines of Text
|
||||
___________________________________________________________________________________________
|
||||
*/
|
||||
$lang['awards_waja_description_ln1'] = "WAB - Worked All Britain Award";
|
||||
$lang['awards_wab_description_ln2'] = "The Amateur Radio Worked All Britain (WAB) Award is a prestigious recognition program within the amateur radio community that celebrates communication achievements across the United Kingdom. The WAB Award scheme encourages radio operators to establish contact with stations located in different regions of Britain, fostering camaraderie and promoting radio communication skills. To earn the WAB Award, participants must make successful radio contacts with stations located in specific WAB areas, which are defined by Ordnance Survey grid squares. These grid squares cover the entirety of Great Britain, including England, Scotland, Wales, and some offshore islands.";
|
||||
$lang['awards_wab_description_ln3'] = "Participants in the WAB Award program exchange information such as their location, signal strength, and WAB square reference during radio contacts. Points are awarded based on the location of the contacted station, with different point values assigned to contacts made within different WAB areas. By accumulating points from successful contacts, radio operators can progress through various award levels, each representing a significant milestone in their amateur radio journey. The WAB Award not only recognizes the dedication and skill of radio operators but also promotes geographic diversity and encourages exploration of the rich tapestry of locations across Britain through the medium of amateur radio.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://wab.intermip.net/default.php' target='_blank'>https://wab.intermip.net/default.php</a>.";
|
||||
|
|
|
@ -193,3 +193,13 @@ $lang['awards_waja_description_ln1'] = "WAJA - Worked All Japan prefectures Awar
|
|||
$lang['awards_waja_description_ln2'] = "WAJA, Worked All Japan prefectures in Amateur Radio, encourages licensed ham radio operators to work all the prefectures in Japan.";
|
||||
$lang['awards_waja_description_ln3'] = "May be claimed for having contacted (heard) and received a QSL card from an amateur station located in each of the 47 prefectures of Japan. A list of QSL cards should be arranged in order of WAJA (HAJA) reference number, however names of prefectures may be omitted.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm' target='_blank'>https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm</a>.";
|
||||
|
||||
/*
|
||||
___________________________________________________________________________________________
|
||||
WAB -- Use all 3 Lines of Text
|
||||
___________________________________________________________________________________________
|
||||
*/
|
||||
$lang['awards_waja_description_ln1'] = "WAB - Worked All Britain Award";
|
||||
$lang['awards_wab_description_ln2'] = "The Amateur Radio Worked All Britain (WAB) Award is a prestigious recognition program within the amateur radio community that celebrates communication achievements across the United Kingdom. The WAB Award scheme encourages radio operators to establish contact with stations located in different regions of Britain, fostering camaraderie and promoting radio communication skills. To earn the WAB Award, participants must make successful radio contacts with stations located in specific WAB areas, which are defined by Ordnance Survey grid squares. These grid squares cover the entirety of Great Britain, including England, Scotland, Wales, and some offshore islands.";
|
||||
$lang['awards_wab_description_ln3'] = "Participants in the WAB Award program exchange information such as their location, signal strength, and WAB square reference during radio contacts. Points are awarded based on the location of the contacted station, with different point values assigned to contacts made within different WAB areas. By accumulating points from successful contacts, radio operators can progress through various award levels, each representing a significant milestone in their amateur radio journey. The WAB Award not only recognizes the dedication and skill of radio operators but also promotes geographic diversity and encourages exploration of the rich tapestry of locations across Britain through the medium of amateur radio.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://wab.intermip.net/default.php' target='_blank'>https://wab.intermip.net/default.php</a>.";
|
||||
|
|
|
@ -193,3 +193,13 @@ $lang['awards_waja_description_ln1'] = "WAJA - Worked All Japan prefectures Awar
|
|||
$lang['awards_waja_description_ln2'] = "WAJA, Worked All Japan prefectures in Amateur Radio, encourages licensed ham radio operators to work all the prefectures in Japan.";
|
||||
$lang['awards_waja_description_ln3'] = "May be claimed for having contacted (heard) and received a QSL card from an amateur station located in each of the 47 prefectures of Japan. A list of QSL cards should be arranged in order of WAJA (HAJA) reference number, however names of prefectures may be omitted.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm' target='_blank'>https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm</a>.";
|
||||
|
||||
/*
|
||||
___________________________________________________________________________________________
|
||||
WAB -- Use all 3 Lines of Text
|
||||
___________________________________________________________________________________________
|
||||
*/
|
||||
$lang['awards_waja_description_ln1'] = "WAB - Worked All Britain Award";
|
||||
$lang['awards_wab_description_ln2'] = "The Amateur Radio Worked All Britain (WAB) Award is a prestigious recognition program within the amateur radio community that celebrates communication achievements across the United Kingdom. The WAB Award scheme encourages radio operators to establish contact with stations located in different regions of Britain, fostering camaraderie and promoting radio communication skills. To earn the WAB Award, participants must make successful radio contacts with stations located in specific WAB areas, which are defined by Ordnance Survey grid squares. These grid squares cover the entirety of Great Britain, including England, Scotland, Wales, and some offshore islands.";
|
||||
$lang['awards_wab_description_ln3'] = "Participants in the WAB Award program exchange information such as their location, signal strength, and WAB square reference during radio contacts. Points are awarded based on the location of the contacted station, with different point values assigned to contacts made within different WAB areas. By accumulating points from successful contacts, radio operators can progress through various award levels, each representing a significant milestone in their amateur radio journey. The WAB Award not only recognizes the dedication and skill of radio operators but also promotes geographic diversity and encourages exploration of the rich tapestry of locations across Britain through the medium of amateur radio.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://wab.intermip.net/default.php' target='_blank'>https://wab.intermip.net/default.php</a>.";
|
||||
|
|
|
@ -193,3 +193,13 @@ $lang['awards_waja_description_ln1'] = "WAJA - Worked All Japan prefectures Awar
|
|||
$lang['awards_waja_description_ln2'] = "WAJA, Worked All Japan prefectures in Amateur Radio, encourages licensed ham radio operators to work all the prefectures in Japan.";
|
||||
$lang['awards_waja_description_ln3'] = "May be claimed for having contacted (heard) and received a QSL card from an amateur station located in each of the 47 prefectures of Japan. A list of QSL cards should be arranged in order of WAJA (HAJA) reference number, however names of prefectures may be omitted.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm' target='_blank'>https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm</a>.";
|
||||
|
||||
/*
|
||||
___________________________________________________________________________________________
|
||||
WAB -- Use all 3 Lines of Text
|
||||
___________________________________________________________________________________________
|
||||
*/
|
||||
$lang['awards_waja_description_ln1'] = "WAB - Worked All Britain Award";
|
||||
$lang['awards_wab_description_ln2'] = "The Amateur Radio Worked All Britain (WAB) Award is a prestigious recognition program within the amateur radio community that celebrates communication achievements across the United Kingdom. The WAB Award scheme encourages radio operators to establish contact with stations located in different regions of Britain, fostering camaraderie and promoting radio communication skills. To earn the WAB Award, participants must make successful radio contacts with stations located in specific WAB areas, which are defined by Ordnance Survey grid squares. These grid squares cover the entirety of Great Britain, including England, Scotland, Wales, and some offshore islands.";
|
||||
$lang['awards_wab_description_ln3'] = "Participants in the WAB Award program exchange information such as their location, signal strength, and WAB square reference during radio contacts. Points are awarded based on the location of the contacted station, with different point values assigned to contacts made within different WAB areas. By accumulating points from successful contacts, radio operators can progress through various award levels, each representing a significant milestone in their amateur radio journey. The WAB Award not only recognizes the dedication and skill of radio operators but also promotes geographic diversity and encourages exploration of the rich tapestry of locations across Britain through the medium of amateur radio.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://wab.intermip.net/default.php' target='_blank'>https://wab.intermip.net/default.php</a>.";
|
||||
|
|
|
@ -193,3 +193,13 @@ $lang['awards_waja_description_ln1'] = "WAJA - Worked All Japan prefectures Awar
|
|||
$lang['awards_waja_description_ln2'] = "WAJA, Worked All Japan prefectures in Amateur Radio, encourages licensed ham radio operators to work all the prefectures in Japan.";
|
||||
$lang['awards_waja_description_ln3'] = "May be claimed for having contacted (heard) and received a QSL card from an amateur station located in each of the 47 prefectures of Japan. A list of QSL cards should be arranged in order of WAJA (HAJA) reference number, however names of prefectures may be omitted.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm' target='_blank'>https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm</a>.";
|
||||
|
||||
/*
|
||||
___________________________________________________________________________________________
|
||||
WAB -- Use all 3 Lines of Text
|
||||
___________________________________________________________________________________________
|
||||
*/
|
||||
$lang['awards_waja_description_ln1'] = "WAB - Worked All Britain Award";
|
||||
$lang['awards_wab_description_ln2'] = "The Amateur Radio Worked All Britain (WAB) Award is a prestigious recognition program within the amateur radio community that celebrates communication achievements across the United Kingdom. The WAB Award scheme encourages radio operators to establish contact with stations located in different regions of Britain, fostering camaraderie and promoting radio communication skills. To earn the WAB Award, participants must make successful radio contacts with stations located in specific WAB areas, which are defined by Ordnance Survey grid squares. These grid squares cover the entirety of Great Britain, including England, Scotland, Wales, and some offshore islands.";
|
||||
$lang['awards_wab_description_ln3'] = "Participants in the WAB Award program exchange information such as their location, signal strength, and WAB square reference during radio contacts. Points are awarded based on the location of the contacted station, with different point values assigned to contacts made within different WAB areas. By accumulating points from successful contacts, radio operators can progress through various award levels, each representing a significant milestone in their amateur radio journey. The WAB Award not only recognizes the dedication and skill of radio operators but also promotes geographic diversity and encourages exploration of the rich tapestry of locations across Britain through the medium of amateur radio.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://wab.intermip.net/default.php' target='_blank'>https://wab.intermip.net/default.php</a>.";
|
||||
|
|
|
@ -193,3 +193,13 @@ $lang['awards_waja_description_ln1'] = "WAJA - Diploma Worked All Japan prefectu
|
|||
$lang['awards_waja_description_ln2'] = "WAJA, Worked All Japan prefectures (Trabajadas todas las prefecturas de Japón) en la radioafición, fomenta que los operadores de radioafición licenciados trabajen todas las prefecturas de Japón.";
|
||||
$lang['awards_waja_description_ln3'] = "Puede ser otorgado por haber contactado (escuchado) y recibido una tarjeta QSL de una estación de radioaficionado localizada en cada una de las 47 prefecturas de Japón. La lista de tarjetas QSL debe ser ordenada por su número de referencia WAJA (HAJA), sin embargo los nombres de las prefecturas pueden ser omitidos.";
|
||||
$lang['awards_waja_description_ln4'] = "Para más información, por favor visite: <a href='https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm' target='_blank'>https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm</a> (en inglés).";
|
||||
|
||||
/*
|
||||
___________________________________________________________________________________________
|
||||
WAB -- Use all 3 Lines of Text
|
||||
___________________________________________________________________________________________
|
||||
*/
|
||||
$lang['awards_waja_description_ln1'] = "WAB - Worked All Britain Award";
|
||||
$lang['awards_wab_description_ln2'] = "The Amateur Radio Worked All Britain (WAB) Award is a prestigious recognition program within the amateur radio community that celebrates communication achievements across the United Kingdom. The WAB Award scheme encourages radio operators to establish contact with stations located in different regions of Britain, fostering camaraderie and promoting radio communication skills. To earn the WAB Award, participants must make successful radio contacts with stations located in specific WAB areas, which are defined by Ordnance Survey grid squares. These grid squares cover the entirety of Great Britain, including England, Scotland, Wales, and some offshore islands.";
|
||||
$lang['awards_wab_description_ln3'] = "Participants in the WAB Award program exchange information such as their location, signal strength, and WAB square reference during radio contacts. Points are awarded based on the location of the contacted station, with different point values assigned to contacts made within different WAB areas. By accumulating points from successful contacts, radio operators can progress through various award levels, each representing a significant milestone in their amateur radio journey. The WAB Award not only recognizes the dedication and skill of radio operators but also promotes geographic diversity and encourages exploration of the rich tapestry of locations across Britain through the medium of amateur radio.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://wab.intermip.net/default.php' target='_blank'>https://wab.intermip.net/default.php</a>.";
|
||||
|
|
|
@ -193,3 +193,13 @@ $lang['awards_waja_description_ln1'] = "WAJA - Worked All Japan prefectures Awar
|
|||
$lang['awards_waja_description_ln2'] = "WAJA, Worked All Japan prefectures in Amateur Radio, encourages licensed ham radio operators to work all the prefectures in Japan.";
|
||||
$lang['awards_waja_description_ln3'] = "May be claimed for having contacted (heard) and received a QSL card from an amateur station located in each of the 47 prefectures of Japan. A list of QSL cards should be arranged in order of WAJA (HAJA) reference number, however names of prefectures may be omitted.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm' target='_blank'>https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm</a>.";
|
||||
|
||||
/*
|
||||
___________________________________________________________________________________________
|
||||
WAB -- Use all 3 Lines of Text
|
||||
___________________________________________________________________________________________
|
||||
*/
|
||||
$lang['awards_waja_description_ln1'] = "WAB - Worked All Britain Award";
|
||||
$lang['awards_wab_description_ln2'] = "The Amateur Radio Worked All Britain (WAB) Award is a prestigious recognition program within the amateur radio community that celebrates communication achievements across the United Kingdom. The WAB Award scheme encourages radio operators to establish contact with stations located in different regions of Britain, fostering camaraderie and promoting radio communication skills. To earn the WAB Award, participants must make successful radio contacts with stations located in specific WAB areas, which are defined by Ordnance Survey grid squares. These grid squares cover the entirety of Great Britain, including England, Scotland, Wales, and some offshore islands.";
|
||||
$lang['awards_wab_description_ln3'] = "Participants in the WAB Award program exchange information such as their location, signal strength, and WAB square reference during radio contacts. Points are awarded based on the location of the contacted station, with different point values assigned to contacts made within different WAB areas. By accumulating points from successful contacts, radio operators can progress through various award levels, each representing a significant milestone in their amateur radio journey. The WAB Award not only recognizes the dedication and skill of radio operators but also promotes geographic diversity and encourages exploration of the rich tapestry of locations across Britain through the medium of amateur radio.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://wab.intermip.net/default.php' target='_blank'>https://wab.intermip.net/default.php</a>.";
|
||||
|
|
|
@ -193,3 +193,13 @@ $lang['awards_waja_description_ln1'] = "WAJA - Worked All Japan prefectures Awar
|
|||
$lang['awards_waja_description_ln2'] = "WAJA, Worked All Japan prefectures in Amateur Radio, encourages licensed ham radio operators to work all the prefectures in Japan.";
|
||||
$lang['awards_waja_description_ln3'] = "May be claimed for having contacted (heard) and received a QSL card from an amateur station located in each of the 47 prefectures of Japan. A list of QSL cards should be arranged in order of WAJA (HAJA) reference number, however names of prefectures may be omitted.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm' target='_blank'>https://www.jarl.org/English/4_Library/A-4-2_Awards/Award_Main.htm</a>.";
|
||||
|
||||
/*
|
||||
___________________________________________________________________________________________
|
||||
WAB -- Use all 3 Lines of Text
|
||||
___________________________________________________________________________________________
|
||||
*/
|
||||
$lang['awards_waja_description_ln1'] = "WAB - Worked All Britain Award";
|
||||
$lang['awards_wab_description_ln2'] = "The Amateur Radio Worked All Britain (WAB) Award is a prestigious recognition program within the amateur radio community that celebrates communication achievements across the United Kingdom. The WAB Award scheme encourages radio operators to establish contact with stations located in different regions of Britain, fostering camaraderie and promoting radio communication skills. To earn the WAB Award, participants must make successful radio contacts with stations located in specific WAB areas, which are defined by Ordnance Survey grid squares. These grid squares cover the entirety of Great Britain, including England, Scotland, Wales, and some offshore islands.";
|
||||
$lang['awards_wab_description_ln3'] = "Participants in the WAB Award program exchange information such as their location, signal strength, and WAB square reference during radio contacts. Points are awarded based on the location of the contacted station, with different point values assigned to contacts made within different WAB areas. By accumulating points from successful contacts, radio operators can progress through various award levels, each representing a significant milestone in their amateur radio journey. The WAB Award not only recognizes the dedication and skill of radio operators but also promotes geographic diversity and encourages exploration of the rich tapestry of locations across Britain through the medium of amateur radio.";
|
||||
$lang['awards_waja_description_ln4'] = "For more information, please visit: <a href='https://wab.intermip.net/default.php' target='_blank'>https://wab.intermip.net/default.php</a>.";
|
||||
|
|
|
@ -12,5 +12,4 @@ class Migration_modify_eQSL_url extends CI_Migration {
|
|||
{
|
||||
// Will not go back to insecure connections
|
||||
}
|
||||
}
|
||||
?>
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
* Tag Cloudlog as 2.6.10
|
||||
*/
|
||||
|
||||
class Migration_tag_2_6_10 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.10'));
|
||||
|
||||
// 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.9'));
|
||||
}
|
||||
}
|
|
@ -4702,6 +4702,21 @@ class Logbook_model extends CI_Model
|
|||
return $this->db->get($this->config->item('table_name'));
|
||||
}
|
||||
|
||||
function wab_qso_details($wab)
|
||||
{
|
||||
$CI = &get_instance();
|
||||
$CI->load->model('logbooks_model');
|
||||
$logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));
|
||||
|
||||
$this->db->join('station_profile', 'station_profile.station_id = ' . $this->config->item('table_name') . '.station_id');
|
||||
$this->db->join('lotw_users', 'lotw_users.callsign = ' . $this->config->item('table_name') . '.col_call', 'left outer');
|
||||
$this->db->where_in($this->config->item('table_name') . '.station_id', $logbooks_locations_array);
|
||||
$this->db->where('COL_SIG', "WAB");
|
||||
$this->db->where('COL_SIG_INFO', $wab);
|
||||
|
||||
return $this->db->get($this->config->item('table_name'));
|
||||
}
|
||||
|
||||
public function check_qso_is_accessible($id)
|
||||
{
|
||||
// check if qso belongs to user
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
<?php
|
||||
|
||||
class Worked_all_britain_model extends CI_Model
|
||||
{
|
||||
function get_worked_squares () {
|
||||
$CI =& get_instance();
|
||||
$CI->load->model('logbooks_model');
|
||||
$logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));
|
||||
|
||||
if (!$logbooks_locations_array) {
|
||||
return null;
|
||||
}
|
||||
$this->db->select("COL_SIG_INFO");
|
||||
$this->db->where_in("station_id", $logbooks_locations_array);
|
||||
$this->db->where("COL_SIG", 'WAB');
|
||||
|
||||
// return result as an array
|
||||
$query = $this->db->get($this->config->item('table_name'));
|
||||
$worked_squares[] = null;
|
||||
// run through the query results
|
||||
foreach ($query->result() as $row) {
|
||||
$worked_squares[] = "Small Square ".$row->COL_SIG_INFO." Boundry Box";
|
||||
}
|
||||
|
||||
// return the rows as an array
|
||||
return $worked_squares;
|
||||
}
|
||||
|
||||
function get_confirmed_squares () {
|
||||
$CI =& get_instance();
|
||||
$CI->load->model('logbooks_model');
|
||||
$logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));
|
||||
|
||||
if (!$logbooks_locations_array) {
|
||||
return null;
|
||||
}
|
||||
$this->db->select("COL_SIG_INFO");
|
||||
$this->db->where_in("station_id", $logbooks_locations_array);
|
||||
$this->db->where("COL_SIG", 'WAB');
|
||||
|
||||
// check if col_qsl_rcvd or col_eqsl_qsl_rcvd or COL_LOTW_QSL_RCVD is 'Y'
|
||||
$this->db->where("(col_qsl_rcvd='Y' or col_eqsl_qsl_rcvd='Y' or COL_LOTW_QSL_RCVD='Y')");
|
||||
|
||||
// return result as an array
|
||||
$query = $this->db->get($this->config->item('table_name'));
|
||||
$worked_squares[] = null;
|
||||
// run through the query results
|
||||
foreach ($query->result() as $row) {
|
||||
$worked_squares[] = "Small Square ".$row->COL_SIG_INFO." Boundry Box";
|
||||
}
|
||||
|
||||
// return the rows as an array
|
||||
return $worked_squares;
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
<style>
|
||||
#cqmap {
|
||||
height: calc(100vh - 480px) !important;
|
||||
height: calc(100vh) !important;
|
||||
max-height: 900px !important;
|
||||
}
|
||||
/*Legend specific*/
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
<style>
|
||||
#dxccmap {
|
||||
height: calc(100vh - 500px) !important;
|
||||
height: calc(100vh) !important;
|
||||
max-height: 900px !important;
|
||||
}
|
||||
/*Legend specific*/
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
<style>
|
||||
#iotamap {
|
||||
height: calc(100vh - 500px) !important;
|
||||
height: calc(100vh) !important;
|
||||
max-height: 900px !important;
|
||||
}
|
||||
/*Legend specific*/
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
<h5><?php echo lang('general_word_filtering_on'); ?> <?php echo $filter; ?></h5>
|
||||
|
||||
<?php $this->load->view('view_log/partial/log_ajax'); ?>
|
|
@ -0,0 +1,49 @@
|
|||
<style>
|
||||
/*Legend specific*/
|
||||
.legend {
|
||||
padding: 6px 8px;
|
||||
font: 14px Arial, Helvetica, sans-serif;
|
||||
background: white;
|
||||
background: rgba(255, 255, 255, 0.8);
|
||||
line-height: 24px;
|
||||
color: #555;
|
||||
}
|
||||
.legend h4 {
|
||||
text-align: center;
|
||||
font-size: 16px;
|
||||
margin: 2px 12px 8px;
|
||||
color: #555;
|
||||
}
|
||||
.legend span {
|
||||
position: relative;
|
||||
bottom: 3px;
|
||||
color: #555;
|
||||
}
|
||||
.legend i {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
float: left;
|
||||
margin: 0 8px 0 0;
|
||||
opacity: 0.7;
|
||||
color: #555;
|
||||
}
|
||||
</style>
|
||||
<div class="container">
|
||||
<!-- Award Info Box -->
|
||||
<br>
|
||||
<div id="awardInfoButton">
|
||||
<script>
|
||||
var lang_awards_info_button = "<?php echo lang('awards_info_button'); ?>";
|
||||
var lang_award_info_ln1 = "<?php echo lang('awards_wab_description_ln1'); ?>";
|
||||
var lang_award_info_ln2 = "<?php echo lang('awards_wab_description_ln2'); ?>";
|
||||
var lang_award_info_ln3 = "<?php echo lang('awards_wab_description_ln3'); ?>";
|
||||
var lang_award_info_ln4 = "<?php echo lang('awards_wab_description_ln4'); ?>";
|
||||
</script>
|
||||
|
||||
<h2><?php echo $page_title; ?></h2>
|
||||
<button type="button" class="btn btn-sm btn-primary me-1" id="displayAwardInfo"><?php echo lang('awards_info_button'); ?></button>
|
||||
</div>
|
||||
|
||||
<div id="map" style="width: 100%; height: 100vh;"></div>
|
||||
|
||||
</div>
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<style>
|
||||
#wajamap {
|
||||
height: calc(100vh - 500px) !important;
|
||||
height: calc(100vh) !important;
|
||||
max-height: 900px !important;
|
||||
}
|
||||
/*Legend specific*/
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<style>
|
||||
#wasmap {
|
||||
height: calc(100vh - 500px) !important;
|
||||
height: calc(100vh) !important;
|
||||
max-height: 900px !important;
|
||||
}
|
||||
/*Legend specific*/
|
||||
|
|
|
@ -1583,6 +1583,158 @@ if ($this->session->userdata('user_id') != null) {
|
|||
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($this->uri->segment(1) == "awards" && $this->uri->segment(2) == "wab") { ?>
|
||||
<script>
|
||||
var WorkedSquaresObject = <?php echo json_encode($worked_squares); ?>;
|
||||
var WorkedSquaresArray = Object.values(WorkedSquaresObject);
|
||||
|
||||
var ConfirmedSquaresObject = <?php echo json_encode($confirmed_squares); ?>;
|
||||
var ConfirmedSquaresArray = Object.values(ConfirmedSquaresObject);
|
||||
|
||||
var wab_squares = $.ajax({
|
||||
url: "<?php echo base_url(); ?>assets/json/WABSquares.geojson",
|
||||
dataType: "json",
|
||||
success: console.log("WAB data successfully loaded."),
|
||||
error: function(xhr) {
|
||||
alert(xhr.statusText)
|
||||
}
|
||||
})
|
||||
|
||||
// Load the external GeoJSON file
|
||||
$.when(wab_squares).done(function() {
|
||||
var layer = L.tileLayer('<?php echo $this->optionslib->get_option('option_map_tile_server'); ?>', {
|
||||
maxZoom: 18,
|
||||
attribution: '<?php echo $this->optionslib->get_option('option_map_tile_server_copyright'); ?>',
|
||||
id: 'mapbox.streets'
|
||||
});
|
||||
|
||||
var map = L.map('map', {
|
||||
layers: [layer],
|
||||
center: [54.970901, -2.457140],
|
||||
zoom: 8,
|
||||
minZoom: 8,
|
||||
fullscreenControl: true,
|
||||
fullscreenControlOptions: {
|
||||
position: 'topleft'
|
||||
},
|
||||
});
|
||||
|
||||
var printer = L.easyPrint({
|
||||
tileLayer: layer,
|
||||
sizeModes: ['Current'],
|
||||
filename: 'myMap',
|
||||
exportOnly: true,
|
||||
hideControlContainer: true
|
||||
}).addTo(map);
|
||||
|
||||
/*Legend specific*/
|
||||
var legend = L.control({ position: "topright" });
|
||||
|
||||
legend.onAdd = function(map) {
|
||||
var div = L.DomUtil.create("div", "legend");
|
||||
div.innerHTML += "<h4>" + lang_general_word_colors + "</h4>";
|
||||
div.innerHTML += "<i style='background: green'></i><span> Confirmed Square</span><br>";
|
||||
div.innerHTML += "<i style='background: orange'></i><span> Unconfirmed Square</span><br>";
|
||||
return div;
|
||||
};
|
||||
|
||||
legend.addTo(map);
|
||||
|
||||
//console.log(wab_squares.responseJSON);
|
||||
// Add requested external GeoJSON to map
|
||||
var kywab_squares = L.geoJSON(wab_squares.responseJSON, {
|
||||
style: function(feature) {
|
||||
if (WorkedSquaresArray.indexOf(feature.properties.name) !== -1) {
|
||||
if (ConfirmedSquaresArray.indexOf(feature.properties.name) !== -1) {
|
||||
return {
|
||||
fillColor: 'green',
|
||||
fill: true,
|
||||
fillOpacity: 1,
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
fillColor: 'orange',
|
||||
fill: true,
|
||||
fillOpacity: 1,
|
||||
};
|
||||
}
|
||||
} else {
|
||||
return {};
|
||||
}
|
||||
},
|
||||
pointToLayer: function(feature, latlng) {
|
||||
if (feature.properties && feature.properties.name) {
|
||||
// Create a custom icon that displays the name from the GeoJSON data
|
||||
var labelIcon = L.divIcon({
|
||||
className: 'text-labels', // Set class for CSS styling
|
||||
html: feature.properties.name
|
||||
});
|
||||
|
||||
// Create a marker at the location of the point
|
||||
return L.marker(latlng, {
|
||||
icon: labelIcon
|
||||
});
|
||||
}
|
||||
},
|
||||
onEachFeature: function(feature, layer) {
|
||||
layer.on('click', function() {
|
||||
// Code to execute when the area is clicked
|
||||
displaywabcontacts(feature.properties.name);
|
||||
});
|
||||
}
|
||||
}).addTo(map);
|
||||
// Function to update labels based on zoom level
|
||||
function updateLabels() {
|
||||
var currentZoom = map.getZoom();
|
||||
kywab_squares.eachLayer(function(layer) {
|
||||
if (currentZoom >= 8) {
|
||||
// Show labels if zoom level is 10 or higher
|
||||
layer.getElement().style.display = 'block';
|
||||
} else {
|
||||
// Hide labels if zoom level is less than 10
|
||||
layer.getElement().style.display = 'none';
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Update labels when the map zoom changes
|
||||
map.on('zoomend', updateLabels);
|
||||
|
||||
// Update labels immediately after adding the GeoJSON data to the map
|
||||
updateLabels();
|
||||
});
|
||||
|
||||
function displaywabcontacts(wabsquare) {
|
||||
var baseURL = "<?php echo base_url(); ?>";
|
||||
$.ajax({
|
||||
url: baseURL + 'index.php/awards/wab_details_ajax',
|
||||
type: 'post',
|
||||
data: {
|
||||
'Wab': wabsquare,
|
||||
},
|
||||
success: function(html) {
|
||||
BootstrapDialog.show({
|
||||
title: lang_general_word_qso_data,
|
||||
size: BootstrapDialog.SIZE_WIDE,
|
||||
cssClass: 'qso-counties-dialog',
|
||||
nl2br: false,
|
||||
message: html,
|
||||
onshown: function(dialog) {
|
||||
$('[data-bs-toggle="tooltip"]').tooltip();
|
||||
},
|
||||
buttons: [{
|
||||
label: lang_admin_close,
|
||||
action: function(dialogItself) {
|
||||
dialogItself.close();
|
||||
}
|
||||
}]
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($this->uri->segment(1) == "gridsquares" && !empty($this->uri->segment(2))) { ?>
|
||||
<script>
|
||||
var gridsquaremap = true;
|
||||
|
@ -2573,7 +2725,7 @@ if ($this->session->userdata('user_id') != null) {
|
|||
},
|
||||
success: function(data) {
|
||||
// remove selected sstv image from table
|
||||
$("#" + id).parent("tr:first").remove();
|
||||
$("#" + id).parent("tr:first").remove();
|
||||
|
||||
// remove sstv image from carousel
|
||||
$("#sstvCarouselIndicators .carousel-indicators li:last-child").remove();
|
||||
|
@ -2748,27 +2900,27 @@ if ($this->session->userdata('user_id') != null) {
|
|||
function createTable(title, type) {
|
||||
const tableClass = type === 'sstv' ? 'sstvtable' : 'qsltable';
|
||||
return `<table style="width:100%" class="${tableClass} table table-sm table-bordered table-hover table-striped table-condensed">` +
|
||||
'<thead>' +
|
||||
'<tr>' +
|
||||
'<th style="text-align: center">' + title + '</th>' +
|
||||
'<th style="text-align: center"></th>' +
|
||||
'<th style="text-align: center"></th>' +
|
||||
'</tr>' +
|
||||
'</thead>' +
|
||||
'<tbody></tbody>' +
|
||||
'</table>'
|
||||
'<thead>' +
|
||||
'<tr>' +
|
||||
'<th style="text-align: center">' + title + '</th>' +
|
||||
'<th style="text-align: center"></th>' +
|
||||
'<th style="text-align: center"></th>' +
|
||||
'</tr>' +
|
||||
'</thead>' +
|
||||
'<tbody></tbody>' +
|
||||
'</table>'
|
||||
}
|
||||
|
||||
function createTableRow(image, type){
|
||||
function createTableRow(image, type) {
|
||||
const viewFunction = type === 'sstv' ? 'viewSstv' : 'viewQsl';
|
||||
const deleteFunction = type === 'sstv' ? 'deleteSstv' : 'deleteQsl';
|
||||
return '<tr><td style="text-align: center">' + image.filename + '</td>' +
|
||||
`<td id="${image.insertid}" style="text-align: center"><button onclick="${deleteFunction}(${image.insertid});" class="btn btn-sm btn-danger">Delete</button></td>` +
|
||||
`<td style="text-align: center"><button onclick="${viewFunction}('${image.filename}')" class="btn btn-sm btn-success">View</button></td>` +
|
||||
'</tr>'
|
||||
`<td id="${image.insertid}" style="text-align: center"><button onclick="${deleteFunction}(${image.insertid});" class="btn btn-sm btn-danger">Delete</button></td>` +
|
||||
`<td style="text-align: center"><button onclick="${viewFunction}('${image.filename}')" class="btn btn-sm btn-success">View</button></td>` +
|
||||
'</tr>'
|
||||
}
|
||||
|
||||
function handleSSTVImageUpload(sstvImage){
|
||||
function handleSSTVImageUpload(sstvImage) {
|
||||
const baseURL = "<?php echo base_url(); ?>";
|
||||
const numCarouselItems = $('#sstv-carousel-indicators li').length;
|
||||
|
||||
|
@ -2777,7 +2929,7 @@ if ($this->session->userdata('user_id') != null) {
|
|||
$('.sstvtable tbody:last').append(createTableRow(sstvImage, "sstv"));
|
||||
|
||||
// Append card to the carousel
|
||||
const newCarouselItem = '<div class="' + (numCarouselItems === 0 ? 'active ' : '') + 'carousel-item carouselimageid_' + sstvImage.insertid +'"><img class="img-fluid w-qsl" src="' + baseURL + '/assets/sstvimages/' + sstvImage.filename + '" alt="QSL picture"></div>';
|
||||
const newCarouselItem = '<div class="' + (numCarouselItems === 0 ? 'active ' : '') + 'carousel-item carouselimageid_' + sstvImage.insertid + '"><img class="img-fluid w-qsl" src="' + baseURL + '/assets/sstvimages/' + sstvImage.filename + '" alt="QSL picture"></div>';
|
||||
$("#sstv-carousel-inner").append(newCarouselItem);
|
||||
|
||||
// Append new carousel indicator
|
||||
|
@ -2791,7 +2943,7 @@ if ($this->session->userdata('user_id') != null) {
|
|||
function uploadSSTV() {
|
||||
const baseURL = "<?php echo base_url(); ?>";
|
||||
const formdata = new FormData(document.getElementById("sstvinfo"));
|
||||
|
||||
|
||||
$.ajax({
|
||||
url: baseURL + 'index.php/sstv/uploadsstv',
|
||||
type: 'post',
|
||||
|
@ -2805,7 +2957,7 @@ if ($this->session->userdata('user_id') != null) {
|
|||
if (sstvImage.status == 'Success') {
|
||||
// Show the SSTV image tab
|
||||
$('.sstvimagetab').removeAttr('hidden');
|
||||
|
||||
|
||||
// Handle the SSTV image upload
|
||||
handleSSTVImageUpload(sstvImage);
|
||||
} else if (sstvImage.status != '') {
|
||||
|
@ -2829,7 +2981,7 @@ if ($this->session->userdata('user_id') != null) {
|
|||
$('.qsltable tbody:last').append(createTableRow(qslCard, "qsl"));
|
||||
|
||||
// Append card image to the carousel
|
||||
const newCarouselItem = '<div class="' + (numCarouselItems === 0 ? 'active ' : '') + 'carousel-item carouselimageid_' + qslCard.insertid +'"><img class="img-fluid w-qsl" src="' + baseURL + '/assets/qslcard/' + qslCard.filename + '" alt="QSL picture"></div>';
|
||||
const newCarouselItem = '<div class="' + (numCarouselItems === 0 ? 'active ' : '') + 'carousel-item carouselimageid_' + qslCard.insertid + '"><img class="img-fluid w-qsl" src="' + baseURL + '/assets/qslcard/' + qslCard.filename + '" alt="QSL picture"></div>';
|
||||
$("#qsl-carousel-inner").append(newCarouselItem);
|
||||
|
||||
// Append carousel indicator for the new card
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="<?php echo site_url('awards/vucc'); ?>"><i class="fas fa-trophy"></i> <?php echo lang('menu_vucc'); ?></a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="<?php echo site_url('awards/wab'); ?>"><i class="fas fa-trophy"></i> Worked All Britain</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="<?php echo site_url('awards/waja'); ?>"><i class="fas fa-trophy"></i> <?php echo lang('menu_waja'); ?></a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="<?php echo site_url('awards/was'); ?>"><i class="fas fa-trophy"></i> <?php echo lang('menu_was'); ?></a>
|
||||
|
|
|
@ -191,4 +191,4 @@ $config['num_tag_close'] = '</li>';
|
|||
<?php } ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -764,4 +764,4 @@ var callsign = "<?php echo $row->COL_CALL; ?>";
|
|||
<div hidden id ='callsign'><?php echo $row->COL_CALL; ?></div>
|
||||
<div hidden id ='qsoid'><?php echo $row->COL_PRIMARY_KEY; ?></div>
|
||||
|
||||
<?php } } ?>
|
||||
<?php } } ?>
|
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
|
@ -0,0 +1,11 @@
|
|||
const { defineConfig } = require("cypress");
|
||||
|
||||
module.exports = defineConfig({
|
||||
projectId: 'gm8wco',
|
||||
e2e: {
|
||||
baseUrl: "http://localhost/",
|
||||
setupNodeEvents(on, config) {
|
||||
// implement node event listeners here
|
||||
},
|
||||
},
|
||||
});
|
|
@ -0,0 +1,85 @@
|
|||
describe("Login Test", () => {
|
||||
it("Should log in successfully", () => {
|
||||
// Define the username and password
|
||||
const username = "m0abc";
|
||||
const password = "demo";
|
||||
|
||||
// Visit the login page
|
||||
cy.visit("/index.php/user/login");
|
||||
|
||||
// Type the username and password into the input fields
|
||||
cy.get('input[name="user_name"]').type(username);
|
||||
cy.get('input[name="user_password"]').type(password);
|
||||
|
||||
// Click the login button
|
||||
cy.get('button[type="submit"]').click();
|
||||
|
||||
// Check if the login was successful
|
||||
// This could be checking/ for a URL change, looking for a log out button, etc.
|
||||
cy.url().should("include", "/dashboard");
|
||||
cy.contains("Logout");
|
||||
});
|
||||
|
||||
it("Should display an error message on failed login", () => {
|
||||
// Define the username and password
|
||||
const username = "m0abc";
|
||||
const password = "wrongpassword";
|
||||
|
||||
// Visit the login page
|
||||
cy.visit("/index.php/user/login");
|
||||
|
||||
// Type the username and password into the input fields
|
||||
cy.get('input[name="user_name"]').type(username);
|
||||
cy.get('input[name="user_password"]').type(password);
|
||||
|
||||
// Click the login button
|
||||
cy.get('button[type="submit"]').click();
|
||||
|
||||
// Check if the login was successful
|
||||
// This could be checking/ for a URL change, looking for a log out button, etc.
|
||||
cy.url().should("include", "/login");
|
||||
|
||||
cy.get("body")
|
||||
.contains("Incorrect username or password!")
|
||||
.should("be.visible")
|
||||
.and("have.class", "alert-danger");
|
||||
});
|
||||
|
||||
it("Should display an error message on empty fields", () => {
|
||||
// Visit the login page
|
||||
cy.visit("/index.php/user/login");
|
||||
|
||||
// Click the login button
|
||||
cy.get('button[type="submit"]').click();
|
||||
|
||||
// Check if the login was successful
|
||||
// This could be checking/ for a URL change, looking for a log out button, etc.
|
||||
cy.url().should("include", "/login");
|
||||
|
||||
cy.get("body")
|
||||
.contains(`The "Username" field is required.`)
|
||||
.should("be.visible")
|
||||
.parent()
|
||||
.and("have.class", "alert-danger");
|
||||
|
||||
cy.get("body")
|
||||
.contains(`The "Password" field is required.`)
|
||||
.should("be.visible")
|
||||
.parent()
|
||||
.and("have.class", "alert-danger");
|
||||
});
|
||||
|
||||
it("Should display and open the forgot password page", () => {
|
||||
// Visit the login page
|
||||
cy.visit("/index.php/user/login");
|
||||
|
||||
// Click the "Forgot Password?" link
|
||||
cy.get("a")
|
||||
.contains("Forgot your password?")
|
||||
.should("be.visible")
|
||||
.click();
|
||||
|
||||
// Check if the correct page has been loaded by checking the URL
|
||||
cy.url().should("include", "/forgot_password");
|
||||
});
|
||||
});
|
|
@ -0,0 +1,62 @@
|
|||
describe("Version Info Modal", () => {
|
||||
beforeEach(() => {
|
||||
cy.login();
|
||||
});
|
||||
|
||||
it("should open after login", () => {
|
||||
// Make sure the dialog is enabled
|
||||
cy.request({
|
||||
method: "POST",
|
||||
url: "http://localhost/index.php/user_options/enableVersionDialog",
|
||||
}).wait(1000);
|
||||
cy.get(".modal-title").contains("Version Info").should("be.visible");
|
||||
});
|
||||
|
||||
it("should close after clicking 'Close' button", () => {
|
||||
// Make sure the dialog is enabled
|
||||
cy.request({
|
||||
method: "POST",
|
||||
url: "http://localhost/index.php/user_options/enableVersionDialog",
|
||||
}).wait(1000);
|
||||
// check if the modal is visible
|
||||
cy.get(".modal-title").contains("Version Info").should("be.visible");
|
||||
// click the 'Close' button
|
||||
cy.get("button")
|
||||
.contains("Close")
|
||||
.should("be.visible")
|
||||
.wait(500)
|
||||
.click();
|
||||
|
||||
// check if the modal is not visible
|
||||
cy.get(".modal-title")
|
||||
.contains("Version Info")
|
||||
.should("not.be.visible");
|
||||
});
|
||||
|
||||
it("should close after clicking 'Don't show again' button", () => {
|
||||
// Make sure the dialog is enabled
|
||||
cy.request({
|
||||
method: "POST",
|
||||
url: "http://localhost/index.php/user_options/enableVersionDialog",
|
||||
}).wait(1000);
|
||||
|
||||
// check if the modal is visible
|
||||
cy.get(".modal-title").contains("Version Info").should("be.visible");
|
||||
// click the "Don't show again" button
|
||||
cy.get("button")
|
||||
.contains("Don't show again")
|
||||
.should("be.visible")
|
||||
.wait(500)
|
||||
.click();
|
||||
|
||||
// check if the modal is not visible
|
||||
cy.get(".modal-title")
|
||||
.contains("Version Info")
|
||||
.should("not.be.visible");
|
||||
});
|
||||
|
||||
it("should not show the version info dialog after click 'Dont show again' button", () => {
|
||||
// check if the modal is not visible
|
||||
cy.get(".modal-title").should("not.exist");
|
||||
});
|
||||
});
|
|
@ -0,0 +1,91 @@
|
|||
// Test suite for new account alerts within the application
|
||||
describe("New account alerts", () => {
|
||||
// Before each test, perform login operation. Assumes cy.login() is a custom command.
|
||||
beforeEach(() => {
|
||||
cy.login();
|
||||
});
|
||||
|
||||
// Alert messages expected to be seen by brand new accounts
|
||||
const locationsAlertMessage =
|
||||
"You have no station locations. Go here to create it!";
|
||||
const logbookAlertMessage =
|
||||
"You have no station logbook. Go here to create it!";
|
||||
const activeStationAlertMessage =
|
||||
"Attention: you need to set an active station location.";
|
||||
const noQSOAlertMessage =
|
||||
"You have made no QSOs today; time to turn on the radio!";
|
||||
|
||||
// Test to verify the locations alert message and its link
|
||||
it(`should show a "${locationsAlertMessage}" alert with a valid link to create it`, () => {
|
||||
// Verify alert visibility and class for urgency
|
||||
cy.get("body")
|
||||
.contains(locationsAlertMessage)
|
||||
.should("be.visible")
|
||||
.and("have.class", "alert-danger");
|
||||
|
||||
// Validate the hyperlink's destination within the alert
|
||||
cy.contains(locationsAlertMessage).within(() => {
|
||||
cy.get("a")
|
||||
.contains("here")
|
||||
.should("have.attr", "href")
|
||||
.and("equal", "http://localhost/index.php/station");
|
||||
});
|
||||
});
|
||||
|
||||
// Test navigation to the station creation page via the alert link
|
||||
it("should navigate to the station creation page after clicking the link in the alert", () => {
|
||||
// Trigger click on the link within the alert message
|
||||
cy.contains(locationsAlertMessage).within(() => {
|
||||
cy.get("a").contains("here").click();
|
||||
});
|
||||
|
||||
// Assert the correct page has been loaded by checking the URL
|
||||
cy.url().should("include", "/station");
|
||||
});
|
||||
|
||||
// Test to verify the logbook alert message and its link
|
||||
it(`should show a "${logbookAlertMessage}" alert with a valid link to create it`, () => {
|
||||
// Verify alert visibility and class for urgency
|
||||
cy.get("body")
|
||||
.contains(logbookAlertMessage)
|
||||
.should("be.visible")
|
||||
.and("have.class", "alert-danger");
|
||||
|
||||
// Validate the hyperlink's destination within the alert
|
||||
cy.contains(logbookAlertMessage).within(() => {
|
||||
cy.get("a")
|
||||
.contains("here")
|
||||
.should("have.attr", "href")
|
||||
.and("equal", "http://localhost/index.php/logbooks");
|
||||
});
|
||||
});
|
||||
|
||||
// Test navigation to the logbook creation page via the alert link
|
||||
it("should navigate to the logbook creation page after clicking the link in the alert", () => {
|
||||
// Trigger click on the link within the alert message
|
||||
cy.contains(logbookAlertMessage).within(() => {
|
||||
cy.get("a").contains("here").click();
|
||||
});
|
||||
|
||||
// Assert the correct page has been loaded by checking the URL
|
||||
cy.url().should("include", "/logbooks");
|
||||
});
|
||||
|
||||
// Test to verify the active station alert is properly displayed
|
||||
it(`should display an "${activeStationAlertMessage}" alert`, () => {
|
||||
// Verify alert visibility and class for urgency
|
||||
cy.get("body")
|
||||
.contains(activeStationAlertMessage)
|
||||
.should("be.visible")
|
||||
.and("have.class", "alert-danger");
|
||||
});
|
||||
|
||||
// Test to verify the no QSO alert is properly displayed
|
||||
it(`should display a "${noQSOAlertMessage}" alert`, () => {
|
||||
// Verify alert visibility and class for importance
|
||||
cy.get("body")
|
||||
.contains(noQSOAlertMessage)
|
||||
.should("be.visible")
|
||||
.and("have.class", "alert-warning");
|
||||
});
|
||||
});
|
|
@ -0,0 +1,69 @@
|
|||
describe("Create station location", () => {
|
||||
beforeEach(() => {
|
||||
cy.login();
|
||||
});
|
||||
|
||||
it("should load an empty list of station locations", () => {
|
||||
cy.visit("/index.php/station");
|
||||
|
||||
// Check that the table is not present
|
||||
cy.get("#station_locations_table").should("not.exist");
|
||||
});
|
||||
|
||||
it("should have a button to create a new station location", () => {
|
||||
cy.visit("/index.php/station");
|
||||
|
||||
// Check that the button is present
|
||||
cy.get("a")
|
||||
.contains("Create a Station Location")
|
||||
.should("exist")
|
||||
.click();
|
||||
|
||||
cy.url().should("include", "/station/create");
|
||||
});
|
||||
|
||||
it("should create a new station location", () => {
|
||||
cy.visit("/index.php/station/create");
|
||||
|
||||
// Define the station location name
|
||||
const stationLocationName = "Test Station Location";
|
||||
const stationCallsign = "2M0SQL";
|
||||
const stationPower = "100";
|
||||
const stationDXCC = "United States Of America - K";
|
||||
const stationCity = "Olathe";
|
||||
const stationState = "Kansas";
|
||||
const stationCounty = "Johnson";
|
||||
const stationGridsquare = "EM28";
|
||||
const stationCQ = "4";
|
||||
const stationITU = "7";
|
||||
|
||||
// Type the station location name into the input field
|
||||
cy.get('input[name="station_profile_name"]').type(stationLocationName);
|
||||
cy.get('input[name="station_callsign"]').type(stationCallsign);
|
||||
cy.get('input[name="station_power"]').type(stationPower);
|
||||
cy.get('select[name="dxcc"]').select(stationDXCC);
|
||||
cy.get('input[name="city"]').type(stationCity);
|
||||
cy.get('select[name="station_state"]').select(stationState);
|
||||
cy.get("#stationCntyInput-selectized")
|
||||
.type(stationCounty, { force: true }) // force typing if the element isn't initially visible
|
||||
.get(".selectize-dropdown-content > div") // get the dropdown content
|
||||
.contains(stationCounty) // find the option containing the county name
|
||||
.click(); // click to select the option
|
||||
cy.get('input[name="gridsquare"]').type(stationGridsquare);
|
||||
cy.get('select[name="station_cq"]').select(stationCQ);
|
||||
cy.get('select[name="station_itu"]').select(stationITU);
|
||||
|
||||
// Click the save button
|
||||
cy.get('button[type="submit"]')
|
||||
.contains("Create Station Location")
|
||||
.click();
|
||||
|
||||
// Check if the station location was created successfully
|
||||
cy.url().should("include", "/station");
|
||||
|
||||
// // Check if the station location is present in the table
|
||||
cy.get("#station_locations_table")
|
||||
.contains(stationLocationName)
|
||||
.should("exist");
|
||||
});
|
||||
});
|
|
@ -0,0 +1,83 @@
|
|||
describe("Create station logbook", () => {
|
||||
beforeEach(() => {
|
||||
cy.login();
|
||||
});
|
||||
|
||||
it("should load an empty list of station locations", () => {
|
||||
// Navigate to the logbooks page
|
||||
cy.visit("/index.php/logbooks");
|
||||
|
||||
// Check that the table is not present
|
||||
cy.get("#station_logbooks_table").should("not.exist");
|
||||
});
|
||||
|
||||
it("should have a button to create a new station location", () => {
|
||||
// Navigate to the logbooks page
|
||||
cy.visit("/index.php/logbooks");
|
||||
|
||||
// Check that the button is present
|
||||
cy.get("a").contains("Create Station Logbook").should("exist").click();
|
||||
|
||||
cy.url().should("include", "/logbooks/create");
|
||||
});
|
||||
|
||||
it("should create a new station location", () => {
|
||||
// Navigate to the create logbook page
|
||||
cy.visit("/index.php/logbooks/create");
|
||||
|
||||
// Define the station location name
|
||||
const stationLogbookName = "Home QTH";
|
||||
|
||||
// Type the station location name into the input field
|
||||
cy.get('input[name="stationLogbook_Name"]').type(stationLogbookName);
|
||||
|
||||
// Click the save button
|
||||
cy.get('button[type="submit"]')
|
||||
.contains("Create Station Logbook")
|
||||
.click();
|
||||
|
||||
// Check if the station location was created successfully
|
||||
cy.url().should("include", "/logbooks");
|
||||
|
||||
// // Check if the station location is present in the table
|
||||
cy.get("#station_logbooks_table")
|
||||
.contains(stationLogbookName)
|
||||
.should("exist");
|
||||
});
|
||||
|
||||
// it("should set as active station logbook when button clicked", () => {
|
||||
// // Navigate to the logbooks page
|
||||
// cy.visit("/index.php/logbooks");
|
||||
|
||||
// // Check that the button is present
|
||||
// cy.get("a").contains("Set as Active Logbook").should("exist").click();
|
||||
|
||||
// // Check if the station was set to active
|
||||
// cy.get("body")
|
||||
// .contains("Active Logbook")
|
||||
// .should("be.visible")
|
||||
// .and("have.class", "badge text-bg-success");
|
||||
// });
|
||||
|
||||
// it("should link to a station location from the edit logbook page", () => {
|
||||
// // Navigate to the logbooks page
|
||||
// cy.visit("/index.php/logbooks");
|
||||
|
||||
// // Click the edit button
|
||||
// cy.get("i.fas.fa-edit").should("exist").click();
|
||||
|
||||
// // Ensure that the edit link navigates to the correct page
|
||||
// cy.url().should("include", "/logbooks/edit");
|
||||
|
||||
// // Scroll to the bottom of the page
|
||||
// cy.scrollTo("bottom");
|
||||
|
||||
// // Click the link location button
|
||||
// cy.get("button").contains("Link Location").should("exist").click();
|
||||
|
||||
// // Make sure that our table now shows the linked station location
|
||||
// cy.get("#station_logbooks_linked_table")
|
||||
// .contains("Test Station Location")
|
||||
// .should("exist");
|
||||
// });
|
||||
});
|
|
@ -0,0 +1,8 @@
|
|||
Cypress.Commands.add("login", () => {
|
||||
const username = "m0abc";
|
||||
const password = "demo";
|
||||
cy.visit("/index.php/user/login");
|
||||
cy.get('input[name="user_name"]').type(username);
|
||||
cy.get('input[name="user_password"]').type(password);
|
||||
cy.get('button[type="submit"]').click();
|
||||
});
|
|
@ -0,0 +1,20 @@
|
|||
// ***********************************************************
|
||||
// This example support/e2e.js is processed and
|
||||
// loaded automatically before your test files.
|
||||
//
|
||||
// This is a great place to put global configuration and
|
||||
// behavior that modifies Cypress.
|
||||
//
|
||||
// You can change the location of this file or turn off
|
||||
// automatically serving support files with the
|
||||
// 'supportFile' configuration option.
|
||||
//
|
||||
// You can read more here:
|
||||
// https://on.cypress.io/configuration
|
||||
// ***********************************************************
|
||||
|
||||
// Import commands.js using ES2015 syntax:
|
||||
import './commands'
|
||||
|
||||
// Alternatively you can use CommonJS syntax:
|
||||
// require('./commands')
|
|
@ -0,0 +1,32 @@
|
|||
version: "3.8"
|
||||
|
||||
networks:
|
||||
mynet:
|
||||
|
||||
services:
|
||||
web:
|
||||
build: .
|
||||
env_file:
|
||||
- .env
|
||||
ports:
|
||||
- "80:80"
|
||||
volumes:
|
||||
- ./:/var/www/html:rw
|
||||
command: ["./script.sh"]
|
||||
depends_on:
|
||||
- db
|
||||
networks:
|
||||
- mynet
|
||||
|
||||
db:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile-db
|
||||
env_file:
|
||||
- .env
|
||||
volumes:
|
||||
- db_data:/var/lib/mysql
|
||||
networks:
|
||||
- mynet
|
||||
volumes:
|
||||
db_data: {}
|
|
@ -148,10 +148,10 @@ if($_POST) {
|
|||
|
||||
<fieldset>
|
||||
<legend>Database settings</legend>
|
||||
<label for="hostname">Hostname</label><input type="text" id="hostname" value="localhost" class="input_text" name="hostname" />
|
||||
<label for="username">Username</label><input type="text" id="username" class="input_text" name="username" />
|
||||
<label for="password">Password</label><input type="password" id="password" class="input_text" name="password" />
|
||||
<label for="database">Database Name</label><input type="text" id="database" class="input_text" name="database" />
|
||||
<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" value="<?php echo getenv('MYSQL_USER'); ?>" class="input_text" name="username" />
|
||||
<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" value="<?php echo getenv('MYSQL_DATABASE'); ?>" class="input_text" name="database" />
|
||||
<input type="submit" value="Install" id="submit" />
|
||||
</fieldset>
|
||||
</form>
|
||||
|
|
Plik diff jest za duży
Load Diff
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"name": "cloudlog",
|
||||
"version": "1.0.0",
|
||||
"description": "> Important: Only accepting PRs on the \"dev\" branch.",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"cypress": "^13.7.2"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,102 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Define the file path for .env and the file to modify
|
||||
if [ -f "./.env" ]; then
|
||||
ENV_FILE="./.env"
|
||||
else
|
||||
ENV_FILE="./.env.sample"
|
||||
fi
|
||||
CONFIG_FILE="install/config/config.php"
|
||||
DATABASE_FILE="install/config/database.php"
|
||||
DEST_DIR="application/config"
|
||||
|
||||
# Check if .env file exists
|
||||
if [ ! -f "$ENV_FILE" ]; then
|
||||
echo ".env file not found!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Read the .env file
|
||||
source $ENV_FILE
|
||||
|
||||
# Check if MYSQL_DATABASE is set
|
||||
if [ -z "${MYSQL_DATABASE}" ]; then
|
||||
echo "MYSQL_DATABASE is not set in .env file!"
|
||||
exit 1
|
||||
fi
|
||||
# Check if MYSQL_USER is set
|
||||
if [ -z "${MYSQL_USER}" ]; then
|
||||
echo "MYSQL_USER is not set in .env file!"
|
||||
exit 1
|
||||
fi
|
||||
# Check if MYSQL_PASSWORD is set
|
||||
if [ -z "${MYSQL_PASSWORD}" ]; then
|
||||
echo "MYSQL_PASSWORD is not set in .env file!"
|
||||
exit 1
|
||||
fi
|
||||
# Check if MYSQL_HOST is set
|
||||
if [ -z "${MYSQL_HOST}" ]; then
|
||||
echo "MYSQL_HOST is not set in .env file!"
|
||||
exit 1
|
||||
fi
|
||||
# Check if BASE_LOCATOR is set
|
||||
if [ -z "${BASE_LOCATOR}" ]; then
|
||||
echo "BASE_LOCATOR is not set in .env file!"
|
||||
exit 1
|
||||
fi
|
||||
# Check if WEBSITE_URL is set
|
||||
if [ -z "${WEBSITE_URL}" ]; then
|
||||
echo "WEBSITE_URL is not set in .env file!"
|
||||
exit 1
|
||||
fi
|
||||
# Check if DIRECTORY is set
|
||||
if [ -z "${DIRECTORY}" ]; then
|
||||
echo "DIRECTORY is not set in .env file!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if destination directory exists, if not create it
|
||||
if [ ! -d "$DEST_DIR" ]; then
|
||||
mkdir -p $DEST_DIR
|
||||
fi
|
||||
|
||||
|
||||
# Use sed with a different delimiter (`|`) to avoid conflicts with special characters
|
||||
sed -i "s|%DATABASE%|${MYSQL_DATABASE}|g" $DATABASE_FILE
|
||||
sed -i "s|%USERNAME%|${MYSQL_USER}|g" $DATABASE_FILE
|
||||
sed -i "s|%PASSWORD%|${MYSQL_PASSWORD}|g" $DATABASE_FILE
|
||||
sed -i "s|%HOSTNAME%|${MYSQL_HOST}|g" $DATABASE_FILE
|
||||
sed -i "s|%baselocator%|${BASE_LOCATOR}|g" $CONFIG_FILE
|
||||
sed -i "s|%websiteurl%|${WEBSITE_URL}|g" $CONFIG_FILE
|
||||
sed -i "s|%directory%|${DIRECTORY}|g" $CONFIG_FILE
|
||||
|
||||
# Move the files to the destination directory
|
||||
mv $CONFIG_FILE $DEST_DIR
|
||||
mv $DATABASE_FILE $DEST_DIR
|
||||
|
||||
# Delete the /install directory
|
||||
rm -rf /install
|
||||
|
||||
echo "Replacement complete."
|
||||
|
||||
# Set Permissions
|
||||
chown -R root:www-data /var/www/html/application/config/
|
||||
chown -R root:www-data /var/www/html/application/logs/
|
||||
chown -R root:www-data /var/www/html/assets/qslcard/
|
||||
chown -R root:www-data /var/www/html/backup/
|
||||
chown -R root:www-data /var/www/html/updates/
|
||||
chown -R root:www-data /var/www/html/uploads/
|
||||
chown -R root:www-data /var/www/html/images/eqsl_card_images/
|
||||
chown -R root:www-data /var/www/html/assets/json
|
||||
|
||||
chmod -R g+rw /var/www/html/application/config/
|
||||
chmod -R g+rw /var/www/html/application/logs/
|
||||
chmod -R g+rw /var/www/html/assets/qslcard/
|
||||
chmod -R g+rw /var/www/html/backup/
|
||||
chmod -R g+rw /var/www/html/updates/
|
||||
chmod -R g+rw /var/www/html/uploads/
|
||||
chmod -R g+rw /var/www/html/images/eqsl_card_images/
|
||||
chmod -R g+rw /var/www/html/assets/json
|
||||
|
||||
# Start Apache in the foreground
|
||||
exec apache2-foreground
|
Ładowanie…
Reference in New Issue