mirror of
https://github.com/magicbug/Cloudlog
synced 2026-08-13 17:49:35 -04:00
Merge dev into master to create stable 2.4.4
Time to get version 2.4.4 ready
This commit is contained in:
commit
ba8123ee2e
133 changed files with 9303 additions and 270 deletions
26
.github/workflows/accessibility-alt-text-bot.yml
vendored
Normal file
26
.github/workflows/accessibility-alt-text-bot.yml
vendored
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
name: Accessibility-alt-text-bot
|
||||
on:
|
||||
issues:
|
||||
types: [opened, edited]
|
||||
pull_request:
|
||||
types: [opened, edited]
|
||||
issue_comment:
|
||||
types: [created, edited]
|
||||
discussion:
|
||||
types: [created, edited]
|
||||
discussion_comment:
|
||||
types: [created, edited]
|
||||
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
discussions: write
|
||||
|
||||
jobs:
|
||||
accessibility_alt_text_bot:
|
||||
name: Check alt text is set on issue or pull requests
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event.issue || github.event.pull_request || github.event.discussion }}
|
||||
steps:
|
||||
- name: Get action 'github/accessibility-alt-text-bot'
|
||||
uses: github/accessibility-alt-text-bot@v1.2.0 # Set to latest
|
||||
37
.github/workflows/push-docker-hub.yml
vendored
Normal file
37
.github/workflows/push-docker-hub.yml
vendored
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
name: Push Docker image to the Hub
|
||||
|
||||
on:
|
||||
push:
|
||||
# Pattern matched against refs/tags
|
||||
tags:
|
||||
- '*' # Push events to every tag not containing
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
docker:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
- uses: actions-ecosystem/action-get-latest-tag@v1
|
||||
id: get-latest-tag
|
||||
- name: Print latest tag
|
||||
run: echo ${{ steps.get-latest-tag.outputs.tag }}
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: ./
|
||||
file: ./docker/Dockerfile
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: true
|
||||
tags: ${{ secrets.DOCKERHUB_IMAGENAME }}:${{ steps.get-latest-tag.outputs.tag }},${{ secrets.DOCKERHUB_IMAGENAME }}:latest
|
||||
|
|
@ -5,8 +5,8 @@
|
|||
RewriteEngine On
|
||||
|
||||
RewriteCond %{REQUEST_URI} ^/backup/$
|
||||
RewriteRule ^(.*)$ /index.php?/$1 [L]
|
||||
RewriteRule ^(.*)$ /index.php?/$1 "[L,QSA,B= ?,BNP]"
|
||||
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteRule ^(.*)$ /index.php?/$1 [L]
|
||||
RewriteRule ^(.*)$ /index.php?/$1 "[L,QSA,B= ?,BNP]"
|
||||
|
|
|
|||
|
|
@ -106,6 +106,7 @@ $autoload['language'] = array(
|
|||
'notes',
|
||||
'qslcard',
|
||||
'qso',
|
||||
'gridsquares'
|
||||
);
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -8,17 +8,15 @@ defined('BASEPATH') OR exit('No direct script access allowed');
|
|||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| 'app_name' Name of the App 'Cloudlog'
|
||||
| 'app_version' Set by the dev team.
|
||||
| 'app_version' Set by the dev team.
|
||||
| 'directory' directory where cloudlog is installed eg "logger"
|
||||
| 'callbook' Selects which Callbook lookup to use defaults "hamqth" but supports "qrz"
|
||||
*/
|
||||
|
||||
$config['app_name'] = "Cloudlog";
|
||||
$config['app_version'] = "2.4.2";
|
||||
$config['app_version'] = "2.4.3";
|
||||
$config['directory'] = "logbook";
|
||||
|
||||
$config['callbook'] = "hamqth"; // Options are hamqth or qrz
|
||||
|
||||
$config['datadir'] = null; // default to install directory
|
||||
|
||||
/*
|
||||
|
|
@ -27,8 +25,8 @@ $config['datadir'] = null; // default to install directory
|
|||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| 'table_name' SQL table where log can be found
|
||||
| 'locator' Default locator used to calculate bearings/distance
|
||||
| 'display_freq' Show or Hide frequnecy info
|
||||
| 'locator' Default locator used to calculate bearings/distance
|
||||
| 'display_freq' Show or Hide frequnecy info
|
||||
*/
|
||||
|
||||
$config['table_name'] = "TABLE_HRD_CONTACTS_V01";
|
||||
|
|
@ -42,11 +40,12 @@ $config['display_freq'] = true;
|
|||
|
|
||||
| 'qrz_username' QRZ.com user login
|
||||
| 'qrz_password' QRZ.com user password
|
||||
| 'use_fullname' Get full names from QRZ, may not be GDPR compliant
|
||||
*/
|
||||
|
||||
$config['qrz_username'] = "";
|
||||
$config['qrz_password'] = "";
|
||||
|
||||
$config['use_fullname'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
@ -59,7 +58,6 @@ $config['qrz_password'] = "";
|
|||
$config['hamqth_username'] = "";
|
||||
$config['hamqth_password'] = "";
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication
|
||||
|
|
@ -67,7 +65,7 @@ $config['hamqth_password'] = "";
|
|||
|
|
||||
| 'use_auth' False turns all authentication off, best used when setting up
|
||||
| 'auth_table' MySQL Database Table defaults "users"
|
||||
| 'auth_mode' Minimum user level required 0 = anonymous, 1 = viewer,
|
||||
| 'auth_mode' Minimum user level required 0 = anonymous, 1 = viewer,
|
||||
| 2 = editor, 3 = api user, 99 = owner
|
||||
| 'auth_level[]' Defines level titles
|
||||
*/
|
||||
|
|
@ -568,6 +566,7 @@ $config['compress_output'] = FALSE;
|
|||
*/
|
||||
$config['time_reference'] = 'UTC';
|
||||
date_default_timezone_set($config['time_reference']);
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Rewrite PHP Short Tags
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ $config['migration_enabled'] = TRUE;
|
|||
| be upgraded / downgraded to.
|
||||
|
|
||||
*/
|
||||
$config['migration_version'] = 123;
|
||||
$config['migration_version'] = 124;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -423,6 +423,8 @@ class API extends CI_Controller {
|
|||
|
||||
$this->load->model('api_model');
|
||||
|
||||
$this->load->model('stations');
|
||||
|
||||
// Decode JSON and store
|
||||
$obj = json_decode(file_get_contents("php://input"), true);
|
||||
if ($obj === NULL) {
|
||||
|
|
@ -436,6 +438,14 @@ class API extends CI_Controller {
|
|||
die();
|
||||
}
|
||||
|
||||
$userid = $this->api_model->key_userid($obj['key']);
|
||||
|
||||
if(!isset($obj['station_profile_id']) || $this->stations->check_station_against_user($obj['station_profile_id'], $userid) == false) {
|
||||
http_response_code(401);
|
||||
echo json_encode(['status' => 'failed', 'reason' => "station id does not belong to the API key owner."]);
|
||||
die();
|
||||
}
|
||||
|
||||
$this->api_model->update_last_used($obj['key']);
|
||||
|
||||
if($obj['type'] == "adif" && $obj['string'] != "") {
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ class eqsl extends CI_Controller {
|
|||
public function index() {
|
||||
|
||||
$this->lang->load('qslcard');
|
||||
$folder_name = "assets/qslcard";
|
||||
$folder_name = "images/eqsl_card_images";
|
||||
$data['storage_used'] = $this->sizeFormat($this->folderSize($folder_name));
|
||||
|
||||
// Render Page
|
||||
|
|
@ -501,7 +501,7 @@ class eqsl extends CI_Controller {
|
|||
|
||||
$query = $this->user_model->get_by_id($this->session->userdata('user_id'));
|
||||
$q = $query->row();
|
||||
$username = $q->user_eqsl_name;
|
||||
$username = $qso->COL_STATION_CALLSIGN;
|
||||
$password = $q->user_eqsl_password;
|
||||
|
||||
$image_url = $this->electronicqsl->card_image($username, urlencode($password), $callsign, $band, $mode, $year, $month, $day, $hour, $minute);
|
||||
|
|
@ -559,7 +559,7 @@ class eqsl extends CI_Controller {
|
|||
|
||||
$query = $this->user_model->get_by_id($this->session->userdata('user_id'));
|
||||
$q = $query->row();
|
||||
$username = $q->user_eqsl_name;
|
||||
$username = $qso->COL_STATION_CALLSIGN;
|
||||
$password = $q->user_eqsl_password;
|
||||
$error = '';
|
||||
|
||||
|
|
|
|||
178
application/controllers/Gridmap.php
Normal file
178
application/controllers/Gridmap.php
Normal file
|
|
@ -0,0 +1,178 @@
|
|||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class Gridmap extends CI_Controller {
|
||||
|
||||
function __construct() {
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function index() {
|
||||
$data['page_title'] = lang('gridsquares_gridsquare_map');
|
||||
|
||||
$this->load->model('bands');
|
||||
$this->load->model('gridmap_model');
|
||||
|
||||
$data['modes'] = $this->gridmap_model->get_worked_modes();
|
||||
$data['bands'] = $this->bands->get_worked_bands();
|
||||
$data['sats_available'] = $this->bands->get_worked_sats();
|
||||
|
||||
$data['layer'] = $this->optionslib->get_option('option_map_tile_server');
|
||||
|
||||
$data['attribution'] = $this->optionslib->get_option('option_map_tile_server_copyright');
|
||||
|
||||
$data['gridsquares_gridsquares'] = lang('gridsquares_gridsquares');
|
||||
$data['gridsquares_gridsquares_confirmed'] = lang('gridsquares_gridsquares_confirmed');
|
||||
$data['gridsquares_gridsquares_not_confirmed'] = lang('gridsquares_gridsquares_not_confirmed');
|
||||
$data['gridsquares_gridsquares_total_worked'] = lang('gridsquares_gridsquares_total_worked');
|
||||
|
||||
$footerData = [];
|
||||
$footerData['scripts'] = [
|
||||
'assets/js/leaflet/L.MaidenheadColouredGridMap.js',
|
||||
'assets/js/sections/gridmap.js?'
|
||||
];
|
||||
|
||||
$this->load->view('interface_assets/header', $data);
|
||||
$this->load->view('gridmap/index');
|
||||
$this->load->view('interface_assets/footer', $footerData);
|
||||
}
|
||||
|
||||
public function getGridsjs() {
|
||||
$band = $this->security->xss_clean($this->input->post('band'));
|
||||
$mode = $this->security->xss_clean($this->input->post('mode'));
|
||||
$qsl = $this->security->xss_clean($this->input->post('qsl'));
|
||||
$lotw = $this->security->xss_clean($this->input->post('lotw'));
|
||||
$eqsl = $this->security->xss_clean($this->input->post('eqsl'));
|
||||
$sat = $this->security->xss_clean($this->input->post('sat'));
|
||||
$this->load->model('gridmap_model');
|
||||
|
||||
$array_grid_2char = array();
|
||||
$array_grid_4char = array();
|
||||
$array_grid_6char = array();
|
||||
|
||||
$array_grid_2char_confirmed = array();
|
||||
$array_grid_4char_confirmed = array();
|
||||
$array_grid_6char_confirmed = array();
|
||||
|
||||
$grid_2char = "";
|
||||
$grid_4char = "";
|
||||
$grid_6char = "";
|
||||
|
||||
$grid_2char_confirmed = "";
|
||||
$grid_4char_confirmed = "";
|
||||
$grid_6char_confirmed = "";
|
||||
|
||||
$query = $this->gridmap_model->get_band_confirmed($band, $mode, $qsl, $lotw, $eqsl, $sat);
|
||||
|
||||
if ($query && $query->num_rows() > 0) {
|
||||
foreach ($query->result() as $row) {
|
||||
$grid_2char_confirmed = strtoupper(substr($row->GRID_SQUARES,0,2));
|
||||
$grid_4char_confirmed = strtoupper(substr($row->GRID_SQUARES,0,4));
|
||||
if ($this->config->item('map_6digit_grids')) {
|
||||
$grid_6char_confirmed = strtoupper(substr($row->GRID_SQUARES,0,6));
|
||||
}
|
||||
|
||||
// Check if 2 Char is in array
|
||||
if(!in_array($grid_2char_confirmed, $array_grid_2char_confirmed)){
|
||||
array_push($array_grid_2char_confirmed, $grid_2char_confirmed);
|
||||
}
|
||||
|
||||
if(!in_array($grid_4char_confirmed, $array_grid_4char_confirmed)){
|
||||
array_push($array_grid_4char_confirmed, $grid_4char_confirmed);
|
||||
}
|
||||
|
||||
if ($this->config->item('map_6digit_grids')) {
|
||||
if(!in_array($grid_6char_confirmed, $array_grid_6char_confirmed)){
|
||||
array_push($array_grid_6char_confirmed, $grid_6char_confirmed);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$query = $this->gridmap_model->get_band($band, $mode, $qsl, $lotw, $eqsl, $sat);
|
||||
|
||||
if ($query && $query->num_rows() > 0) {
|
||||
foreach ($query->result() as $row) {
|
||||
|
||||
$grid_two = strtoupper(substr($row->GRID_SQUARES,0,2));
|
||||
$grid_four = strtoupper(substr($row->GRID_SQUARES,0,4));
|
||||
if ($this->config->item('map_6digit_grids')) {
|
||||
$grid_six = strtoupper(substr($row->GRID_SQUARES,0,6));
|
||||
}
|
||||
|
||||
// Check if 2 Char is in array
|
||||
if(!in_array($grid_two, $array_grid_2char)){
|
||||
array_push($array_grid_2char, $grid_two);
|
||||
}
|
||||
|
||||
if(!in_array($grid_four, $array_grid_4char)){
|
||||
array_push($array_grid_4char, $grid_four);
|
||||
}
|
||||
|
||||
if ($this->config->item('map_6digit_grids')) {
|
||||
if(!in_array($grid_six, $array_grid_6char)){
|
||||
array_push($array_grid_6char, $grid_six);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$query_vucc = $this->gridmap_model->get_band_worked_vucc_squares($band, $mode, $qsl, $lotw, $eqsl, $sat);
|
||||
|
||||
if ($query_vucc && $query_vucc->num_rows() > 0) {
|
||||
foreach ($query_vucc->result() as $row) {
|
||||
|
||||
$grids = explode(",", $row->COL_VUCC_GRIDS);
|
||||
|
||||
foreach($grids as $key) {
|
||||
$grid_two = strtoupper(substr($key,0,2));
|
||||
$grid_four = strtoupper(substr($key,0,4));
|
||||
|
||||
// Check if 2 Char is in array
|
||||
if(!in_array($grid_two, $array_grid_2char)){
|
||||
array_push($array_grid_2char, $grid_two);
|
||||
}
|
||||
|
||||
|
||||
if(!in_array($grid_four, $array_grid_4char)){
|
||||
array_push($array_grid_4char, $grid_four);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// // Confirmed Squares
|
||||
$query_vucc = $this->gridmap_model->get_band_confirmed_vucc_squares($band, $mode, $qsl, $lotw, $eqsl, $sat);
|
||||
|
||||
if ($query_vucc && $query_vucc->num_rows() > 0) {
|
||||
foreach ($query_vucc->result() as $row) {
|
||||
|
||||
$grids = explode(",", $row->COL_VUCC_GRIDS);
|
||||
|
||||
foreach($grids as $key) {
|
||||
$grid_2char_confirmed = strtoupper(substr($key,0,2));
|
||||
$grid_4char_confirmed = strtoupper(substr($key,0,4));
|
||||
|
||||
// Check if 2 Char is in array
|
||||
if(!in_array($grid_2char_confirmed, $array_grid_2char_confirmed)){
|
||||
array_push($array_grid_2char_confirmed, $grid_2char_confirmed);
|
||||
}
|
||||
|
||||
|
||||
if(!in_array($grid_4char_confirmed, $array_grid_4char_confirmed)){
|
||||
array_push($array_grid_4char_confirmed, $grid_4char_confirmed);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$data['grid_2char_confirmed'] = ($array_grid_2char_confirmed);
|
||||
$data['grid_4char_confirmed'] = ($array_grid_4char_confirmed);
|
||||
$data['grid_6char_confirmed'] = ($array_grid_6char_confirmed);
|
||||
|
||||
$data['grid_2char'] = ($array_grid_2char);
|
||||
$data['grid_4char'] = ($array_grid_4char);
|
||||
$data['grid_6char'] = ($array_grid_6char);
|
||||
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($data);
|
||||
}
|
||||
}
|
||||
281
application/controllers/Labels.php
Normal file
281
application/controllers/Labels.php
Normal file
|
|
@ -0,0 +1,281 @@
|
|||
<?php
|
||||
|
||||
use Cloudlog\Label\PDF_Label;
|
||||
use Cloudlog\Label\tfpdf;
|
||||
use Cloudlog\Label\font\unifont\ttfonts;
|
||||
|
||||
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class Labels extends CI_Controller {
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Controller: Labels
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This Controller handles all things Labels, creating, editing and printing
|
||||
|
|
||||
|
|
||||
*/
|
||||
|
||||
function __construct() {
|
||||
parent::__construct();
|
||||
$this->load->helper(array('form', 'url', 'psr4_autoloader'));
|
||||
|
||||
$this->load->model('user_model');
|
||||
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Function: index
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Nothing fancy just shows the main display of how many labels are waiting
|
||||
| to be printed per station profile.
|
||||
|
|
||||
*/
|
||||
public function index() {
|
||||
$data['page_title'] = "QSL Card Labels";
|
||||
|
||||
$this->load->model('labels_model');
|
||||
|
||||
$data['labels'] = $this->labels_model->fetchLabels($this->session->userdata('user_id'));
|
||||
|
||||
$data['qsos'] = $this->labels_model->fetchQsos($this->session->userdata('user_id'));
|
||||
|
||||
$footerData = [];
|
||||
$footerData['scripts'] = [
|
||||
'assets/js/sections/labels.js',
|
||||
];
|
||||
|
||||
$this->load->view('interface_assets/header', $data);
|
||||
$this->load->view('labels/index');
|
||||
$this->load->view('interface_assets/footer', $footerData);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Function: create
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Shows the form used to create a label type.
|
||||
|
|
||||
*/
|
||||
public function create() {
|
||||
|
||||
$data['page_title'] = "Create Label Type";
|
||||
|
||||
$this->load->library('form_validation');
|
||||
|
||||
$this->form_validation->set_rules('label_name', 'Label Name', 'required');
|
||||
|
||||
if ($this->form_validation->run() == FALSE)
|
||||
{
|
||||
$this->load->view('interface_assets/header', $data);
|
||||
$this->load->view('labels/create');
|
||||
$this->load->view('interface_assets/footer');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->load->model('labels_model');
|
||||
$this->labels_model->addLabel();
|
||||
|
||||
redirect('labels');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function printids() {
|
||||
$ids = xss_clean(json_decode($this->input->post('id')));
|
||||
$this->load->model('labels_model');
|
||||
$result = $this->labels_model->export_printrequestedids($ids);
|
||||
|
||||
$this->prepareLabel($result, true);
|
||||
}
|
||||
|
||||
public function print($station_id) {
|
||||
$clean_id = xss_clean($station_id);
|
||||
|
||||
$this->load->model('labels_model');
|
||||
$result = $this->labels_model->export_printrequested($clean_id);
|
||||
|
||||
$this->prepareLabel($result);
|
||||
}
|
||||
|
||||
function prepareLabel($qsos, $jscall = false) {
|
||||
$this->load->model('labels_model');
|
||||
$label = $this->labels_model->getDefaultLabel();
|
||||
|
||||
try {
|
||||
if ($label) {
|
||||
$pdf = new PDF_Label(array(
|
||||
'paper-size' => $label->paper_type,
|
||||
'metric' => $label->metric,
|
||||
'marginLeft' => $label->marginleft,
|
||||
'marginTop' => $label->margintop,
|
||||
'NX' => $label->nx,
|
||||
'NY' => $label->ny,
|
||||
'SpaceX' => $label->spacex,
|
||||
'SpaceY' => $label->spacey,
|
||||
'width' => $label->width,
|
||||
'height' => $label->height,
|
||||
'font-size' => $label->font_size
|
||||
));
|
||||
} else {
|
||||
if ($jscall) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('message' => 'You need to create a label and set it to be used for print.'));
|
||||
return;
|
||||
} else {
|
||||
$this->session->set_flashdata('error', 'You need to create a label and set it to be used for print.');
|
||||
redirect('labels');
|
||||
}
|
||||
}
|
||||
} catch (\Throwable $th) {
|
||||
if ($jscall) {
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('message' => 'Something went wrong! The label could not be generated. Check label size and font size.'));
|
||||
return;
|
||||
} else {
|
||||
$this->session->set_flashdata('error', 'Something went wrong! The label could not be generated. Check label size and font size.');
|
||||
redirect('labels');
|
||||
}
|
||||
}
|
||||
define('FPDF_FONTPATH', './src/Label/font/');
|
||||
|
||||
$pdf->AddPage();
|
||||
|
||||
if ($label->font == 'DejaVuSans') {
|
||||
$pdf->AddFont($label->font,'','DejaVuSansMono.ttf',true);
|
||||
$pdf->SetFont($label->font);
|
||||
} else {
|
||||
$pdf->AddFont($label->font);
|
||||
$pdf->SetFont($label->font);
|
||||
}
|
||||
|
||||
if ($qsos->num_rows() > 0) {
|
||||
if ($label->qsos == 1) {
|
||||
$this->makeOneQsoLabel($qsos->result(), $pdf);
|
||||
} else {
|
||||
$this->makeMultiQsoLabel($qsos->result(), $pdf, $label->qsos);
|
||||
}
|
||||
} else {
|
||||
$this->session->set_flashdata('message', '0 QSOs found for print!');
|
||||
redirect('labels');
|
||||
}
|
||||
$pdf->Output();
|
||||
}
|
||||
|
||||
function makeOneQsoLabel($qsos, $pdf) {
|
||||
foreach($qsos as $qso) {
|
||||
$time = strtotime($qso->COL_TIME_ON);
|
||||
$myFormatForView = date("d/m/Y H:i", $time);
|
||||
if($qso->COL_SAT_NAME != "") {
|
||||
$text = sprintf("%s\n\n%s %s\n%s %s \n\n%s", 'To: '.$qso->COL_CALL, $myFormatForView, 'on '.$qso->COL_BAND.' 2x'.$qso->COL_MODE.' RST '.$qso->COL_RST_SENT.'', 'Satellite: '.$qso->COL_SAT_NAME.' Mode: '.strtoupper($qso->COL_SAT_MODE).' ', '', 'Thanks for QSO.');
|
||||
} else {
|
||||
$text = sprintf("%s\n\n%s %s\n%s %s \n\n%s", 'To: '.$qso->COL_CALL, $myFormatForView, 'on '.$qso->COL_BAND.' 2x'.$qso->COL_MODE.' RST '.$qso->COL_RST_SENT.'', '', '', 'Thanks for QSO.');
|
||||
}
|
||||
|
||||
$pdf->Add_Label($text);
|
||||
}
|
||||
}
|
||||
|
||||
function makeMultiQsoLabel($qsos, $pdf, $numberofqsos) {
|
||||
$text = '';
|
||||
$current_callsign = '';
|
||||
$qso_data = [];
|
||||
foreach($qsos as $qso) {
|
||||
if ($qso->COL_CALL !== $current_callsign) {
|
||||
if (!empty($qso_data)) {
|
||||
$this->makeLabel($pdf, $current_callsign, $qso_data, $numberofqsos);
|
||||
$qso_data = [];
|
||||
}
|
||||
$current_callsign = $qso->COL_CALL;
|
||||
}
|
||||
|
||||
$qso_data[] = [
|
||||
'time' => $qso->COL_TIME_ON,
|
||||
'band' => $qso->COL_BAND,
|
||||
'mode' => $qso->COL_MODE,
|
||||
'rst' => $qso->COL_RST_SENT,
|
||||
'mygrid' => $qso->station_gridsquare,
|
||||
'sat' => $qso->COL_SAT_NAME,
|
||||
'sat_mode' => $qso->COL_SAT_MODE,
|
||||
];
|
||||
}
|
||||
if (!empty($qso_data)) {
|
||||
$this->makeLabel($pdf, $current_callsign, $qso_data, $numberofqsos);
|
||||
}
|
||||
}
|
||||
|
||||
function makeLabel($pdf, $current_callsign, $qso_data, $numberofqsos) {
|
||||
$text = 'To: ' . $current_callsign . "\n\n";
|
||||
$count = 0;
|
||||
$qsotext = '';
|
||||
foreach ($qso_data as $key => $qso) {
|
||||
$time = strtotime($qso['time']);
|
||||
$myFormatForView = date("d/m/Y H:i", $time);
|
||||
|
||||
if($qso['sat'] != "") {
|
||||
$qsotext .= sprintf("%s %s %s %s\n", $myFormatForView, 'on '.$qso['band'].' 2x'.$qso['mode'].' RST '.$qso['rst'].'', 'Satellite: '.$qso['sat'].' Mode: '.strtoupper($qso['sat_mode']).' ', '');
|
||||
} else {
|
||||
$qsotext .= sprintf("%s %s\n", $myFormatForView, 'on '.$qso['band'].' 2x'.$qso['mode'].' RST '.$qso['rst']);
|
||||
}
|
||||
$count++;
|
||||
|
||||
if ($count == $numberofqsos) {
|
||||
$text .= $qsotext;
|
||||
$text .= "\n" . 'Thanks for QSOs.';
|
||||
$pdf->Add_Label($text);
|
||||
$text = 'To: ' . $current_callsign . "\n\n";
|
||||
$count = 0;
|
||||
$qsotext = '';
|
||||
}
|
||||
unset($qso_data[$key]);
|
||||
}
|
||||
|
||||
if ($qsotext != '') {
|
||||
$text .= $qsotext;
|
||||
$text .= "\n" . 'Thanks for QSOs.';
|
||||
$pdf->Add_Label($text);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function edit($id) {
|
||||
$this->load->model('labels_model');
|
||||
|
||||
$cleanid = $this->security->xss_clean($id);
|
||||
|
||||
$data['label'] = $this->labels_model->getLabel($cleanid);
|
||||
|
||||
$data['page_title'] = "Edit Label";
|
||||
|
||||
$this->load->view('interface_assets/header', $data);
|
||||
$this->load->view('labels/edit');
|
||||
$this->load->view('interface_assets/footer');
|
||||
}
|
||||
|
||||
public function updateLabel($id) {
|
||||
$this->load->model('labels_model');
|
||||
$this->labels_model->updateLabel($id);
|
||||
$this->session->set_flashdata('message', 'Label was saved.');
|
||||
redirect('labels');
|
||||
}
|
||||
|
||||
public function delete($id) {
|
||||
$this->load->model('labels_model');
|
||||
$this->labels_model->deleteLabel($id);
|
||||
$this->session->set_flashdata('warning', 'Label was deleted.');
|
||||
redirect('labels');
|
||||
}
|
||||
|
||||
public function saveDefaultLabel() {
|
||||
$id = $this->input->post('id');
|
||||
$this->load->model('labels_model');
|
||||
$this->labels_model->saveDefaultLabel($id);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -128,6 +128,7 @@ class Logbook extends CI_Controller {
|
|||
"dxcc" => false,
|
||||
"callsign_name" => "",
|
||||
"callsign_qra" => "",
|
||||
"callsign_distance" => 0,
|
||||
"callsign_qth" => "",
|
||||
"callsign_iota" => "",
|
||||
"callsign_state" => "",
|
||||
|
|
@ -155,6 +156,7 @@ class Logbook extends CI_Controller {
|
|||
|
||||
$return['callsign_name'] = $this->logbook_model->call_name($callsign);
|
||||
$return['callsign_qra'] = $this->logbook_model->call_qra($callsign);
|
||||
$return['callsign_distance'] = $this->distance($return['callsign_qra'], $station_id);
|
||||
$return['callsign_qth'] = $this->logbook_model->call_qth($callsign);
|
||||
$return['callsign_iota'] = $this->logbook_model->call_iota($callsign);
|
||||
$return['qsl_manager'] = $this->logbook_model->call_qslvia($callsign);
|
||||
|
|
@ -186,6 +188,7 @@ class Logbook extends CI_Controller {
|
|||
{
|
||||
$return['callsign_name'] = $callbook['name'];
|
||||
$return['callsign_qra'] = $callbook['gridsquare'];
|
||||
$return['callsign_distance'] = $this->distance($callbook['gridsquare'], $station_id);
|
||||
$return['callsign_qth'] = $callbook['city'];
|
||||
$return['callsign_iota'] = $callbook['iota'];
|
||||
$return['callsign_state'] = $callbook['state'];
|
||||
|
|
@ -770,6 +773,7 @@ class Logbook extends CI_Controller {
|
|||
$this->db->from($this->config->item('table_name'));
|
||||
$this->db->join('station_profile', 'station_profile.station_id = '.$this->config->item('table_name').'.station_id');
|
||||
$this->db->join('dxcc_entities', 'dxcc_entities.adif = '.$this->config->item('table_name').'.COL_DXCC');
|
||||
$this->db->join('lotw_users', 'lotw_users.callsign = '.$this->config->item('table_name').'.col_call', 'left outer');
|
||||
$this->db->group_start();
|
||||
$this->db->like(''.$this->config->item('table_name').'.COL_CALL', $id);
|
||||
$this->db->or_like(''.$this->config->item('table_name').'.COL_GRIDSQUARE', $id);
|
||||
|
|
@ -949,6 +953,36 @@ class Logbook extends CI_Controller {
|
|||
return "";
|
||||
}
|
||||
|
||||
/* return distance */
|
||||
function searchdistance($locator, $station_id = null) {
|
||||
$this->load->library('Qra');
|
||||
|
||||
if($locator != null) {
|
||||
if (isset($station_id)) {
|
||||
// be sure that station belongs to user
|
||||
$this->load->model('Stations');
|
||||
if (!$this->Stations->check_station_is_accessible($station_id)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// get station profile
|
||||
$station_profile = $this->Stations->profile_clean($station_id);
|
||||
|
||||
// get locator
|
||||
$mylocator = $station_profile->station_gridsquare;
|
||||
} else if($this->session->userdata('user_locator') != null){
|
||||
$mylocator = $this->session->userdata('user_locator');
|
||||
} else {
|
||||
$mylocator = $this->config->item('locator');
|
||||
}
|
||||
|
||||
$distance = $this->qra->distance($mylocator, $locator, 'K');
|
||||
|
||||
echo $distance;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* return station bearing */
|
||||
function bearing($locator, $unit = 'M', $station_id = null) {
|
||||
$this->load->library('Qra');
|
||||
|
|
@ -979,6 +1013,36 @@ class Logbook extends CI_Controller {
|
|||
return "";
|
||||
}
|
||||
|
||||
/* return distance */
|
||||
function distance($locator, $station_id = null) {
|
||||
$distance = 0;
|
||||
$this->load->library('Qra');
|
||||
|
||||
if($locator != null) {
|
||||
if (isset($station_id)) {
|
||||
// be sure that station belongs to user
|
||||
$this->load->model('Stations');
|
||||
if (!$this->Stations->check_station_is_accessible($station_id)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// get station profile
|
||||
$station_profile = $this->Stations->profile_clean($station_id);
|
||||
|
||||
// get locator
|
||||
$mylocator = $station_profile->station_gridsquare;
|
||||
} else if($this->session->userdata('user_locator') != null){
|
||||
$mylocator = $this->session->userdata('user_locator');
|
||||
} else {
|
||||
$mylocator = $this->config->item('locator');
|
||||
}
|
||||
|
||||
$distance = $this->qra->distance($mylocator, $locator, 'K');
|
||||
|
||||
}
|
||||
return $distance;
|
||||
}
|
||||
|
||||
function qralatlng($qra) {
|
||||
$this->load->library('Qra');
|
||||
$latlng = $this->qra->qra2latlong($qra);
|
||||
|
|
|
|||
|
|
@ -184,4 +184,32 @@ class Logbookadvanced extends CI_Controller {
|
|||
header("Content-Type: application/json");
|
||||
print json_encode($q);
|
||||
}
|
||||
|
||||
function update_qsl_received() {
|
||||
$this->load->model('logbookadvanced_model');
|
||||
|
||||
$ids = xss_clean($this->input->post('id'));
|
||||
$user_id = (int)$this->session->userdata('user_id');
|
||||
$method = xss_clean($this->input->post('method'));
|
||||
$sent = xss_clean($this->input->post('sent'));
|
||||
|
||||
$status = $this->logbookadvanced_model->updateQslReceived($ids, $user_id, $method, $sent);
|
||||
|
||||
$data = $this->logbookadvanced_model->getQsosForAdif($ids, $user_id);
|
||||
|
||||
$results = $data->result('array');
|
||||
|
||||
$qsos = [];
|
||||
foreach ($results as $data) {
|
||||
$qsos[] = new QSO($data);
|
||||
}
|
||||
|
||||
$q = [];
|
||||
foreach ($qsos as $qso) {
|
||||
$q[] = $qso->toArray();
|
||||
}
|
||||
|
||||
header("Content-Type: application/json");
|
||||
print json_encode($q);
|
||||
}
|
||||
}
|
||||
|
|
@ -538,7 +538,19 @@ class Lotw extends CI_Controller {
|
|||
$cnty = "";
|
||||
}
|
||||
|
||||
$lotw_status = $this->logbook_model->lotw_update($time_on, $record['call'], $record['band'], $qsl_date, $record['qsl_rcvd'], $state, $qsl_gridsquare, $iota, $cnty);
|
||||
if (isset($record['cqz'])) {
|
||||
$cqz = $record['cqz'];
|
||||
} else {
|
||||
$cqz = "";
|
||||
}
|
||||
|
||||
if (isset($record['ituz'])) {
|
||||
$ituz = $record['ituz'];
|
||||
} else {
|
||||
$ituz = "";
|
||||
}
|
||||
|
||||
$lotw_status = $this->logbook_model->lotw_update($time_on, $record['call'], $record['band'], $qsl_date, $record['qsl_rcvd'], $state, $qsl_gridsquare, $iota, $cnty, $cqz, $ituz);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -567,7 +579,6 @@ class Lotw extends CI_Controller {
|
|||
unlink($filepath);
|
||||
|
||||
if(isset($data['lotw_table_headers'])) {
|
||||
echo "LoTW Matches<br>";
|
||||
if($display_view == TRUE) {
|
||||
$data['page_title'] = "LoTW ADIF Information";
|
||||
$this->load->view('interface_assets/header', $data);
|
||||
|
|
|
|||
|
|
@ -232,6 +232,22 @@ class Options extends CI_Controller {
|
|||
$this->session->set_flashdata('success', $this->lang->line('options_smtp_encryption_changed_to').$this->input->post('smtpEncryption'));
|
||||
}
|
||||
|
||||
// Update email sender name within the options system
|
||||
$emailSenderNameupdate = $this->optionslib->update('emailSenderName', $this->input->post('emailSenderName'), 'yes');
|
||||
|
||||
// If email address update is complete set a flashsession with a success note
|
||||
if($emailSenderNameupdate == TRUE) {
|
||||
$this->session->set_flashdata('success', $this->lang->line('options_email_sender_name_changed_to').$this->input->post('emailSenderName'));
|
||||
}
|
||||
|
||||
// Update email address choice within the options system
|
||||
$emailAddressupdate = $this->optionslib->update('emailAddress', $this->input->post('emailAddress'), 'yes');
|
||||
|
||||
// If email address update is complete set a flashsession with a success note
|
||||
if($emailAddressupdate == TRUE) {
|
||||
$this->session->set_flashdata('success', $this->lang->line('options_email_address_changed_to').$this->input->post('emailAddress'));
|
||||
}
|
||||
|
||||
// Update smtpHost choice within the options system
|
||||
$smtpHostupdate = $this->optionslib->update('smtpHost', $this->input->post('smtpHost'), 'yes');
|
||||
|
||||
|
|
|
|||
|
|
@ -181,8 +181,8 @@ class Oqrs extends CI_Controller {
|
|||
$data['usermessage'] = $this->security->xss_clean($postdata['message']);
|
||||
|
||||
$message = $this->load->view('email/oqrs_request', $data, TRUE);
|
||||
|
||||
$this->email->from('noreply@cloudlog.co.uk', 'Cloudlog');
|
||||
|
||||
$this->email->from($this->optionslib->get_option('emailAddress'), $this->optionslib->get_option('emailSenderName'));
|
||||
$this->email->to($email);
|
||||
$this->email->reply_to($this->security->xss_clean($postdata['email']), strtoupper($data['callsign']));
|
||||
|
||||
|
|
|
|||
|
|
@ -251,6 +251,11 @@ class Update extends CI_Controller {
|
|||
$this->logbook_model->check_missing_continent();
|
||||
}
|
||||
|
||||
public function update_distances() {
|
||||
$this->load->model('logbook_model');
|
||||
$this->logbook_model->update_distances();
|
||||
}
|
||||
|
||||
public function check_missing_grid($all = false){
|
||||
$this->load->model('logbook_model');
|
||||
$this->logbook_model->check_missing_grid_id($all);
|
||||
|
|
|
|||
|
|
@ -608,7 +608,7 @@ class User extends CI_Controller {
|
|||
|
||||
$message = $this->load->view('email/forgot_password', $this->data, TRUE);
|
||||
|
||||
$this->email->from('noreply@cloudlog.co.uk', 'Cloudlog');
|
||||
$this->email->from($this->optionslib->get_option('emailAddress'), $this->optionslib->get_option('emailSenderName'));
|
||||
$this->email->to($this->input->post('email', true));
|
||||
|
||||
$this->email->subject('Cloudlog Account Password Reset');
|
||||
|
|
|
|||
|
|
@ -110,6 +110,7 @@ $lang['gen_hamradio_sota'] = 'SOTA';
|
|||
$lang['gen_hamradio_wwff'] = 'WWFF';
|
||||
$lang['gen_hamradio_pota'] = 'POTA';
|
||||
$lang['gen_hamradio_gridsquare'] = 'Gridsquare';
|
||||
$lang['gen_hamradio_distance'] = 'Distance';
|
||||
$lang['gen_hamradio_operator'] = 'Operator';
|
||||
|
||||
$lang['gen_hamradio_sig'] = 'Sig';
|
||||
|
|
|
|||
|
|
@ -2,8 +2,6 @@
|
|||
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
|
||||
|
||||
$lang['gridsquares_gridsquare_map'] = 'Gridsquare map';
|
||||
|
||||
$lang['gridsquares_confirmed_is_green'] = 'Confirmed is Green';
|
||||
|
|
@ -14,3 +12,15 @@ $lang['gridsquares_this_map_does_not_include_satellite_internet_or_repeater_qsos
|
|||
|
||||
$lang['gridsquares_grid_squares'] = 'grid square';
|
||||
$lang['gridsquares_total_count'] = 'Total count';
|
||||
|
||||
$lang['gridsquares_band'] = 'Band';
|
||||
$lang['gridsquares_mode'] = 'Mode';
|
||||
$lang['gridsquares_sat'] = 'Satellite';
|
||||
$lang['gridsquares_confirmation'] = 'Confirmation';
|
||||
|
||||
$lang['gridsquares_button_plot'] = 'Plot';
|
||||
|
||||
$lang['gridsquares_gridsquares'] = 'Gridsquares';
|
||||
$lang['gridsquares_gridsquares_confirmed'] = 'Gridsquares confirmed';
|
||||
$lang['gridsquares_gridsquares_not_confirmed'] = 'Gridsquares not confirmed';
|
||||
$lang['gridsquares_gridsquares_total_worked'] = 'Total gridsquares worked';
|
||||
|
|
@ -21,6 +21,7 @@ $lang['menu_notes'] = 'Notes';
|
|||
$lang['menu_analytics'] = 'Analytics';
|
||||
$lang['menu_statistics'] = 'Statistics';
|
||||
$lang['menu_gridsquares'] = 'Gridsquares';
|
||||
$lang['menu_gridmap'] = 'Gridsquare Map';
|
||||
$lang['menu_activated_gridsquares'] = 'Activated Gridsquares';
|
||||
$lang['menu_gridsquare_activators'] = 'Gridsquare Activators';
|
||||
$lang['menu_distances_worked'] = 'Distances Worked';
|
||||
|
|
@ -70,6 +71,7 @@ $lang['menu_sota_csv_export'] = 'SOTA CSV Export';
|
|||
$lang['menu_cabrillo_export'] = 'Cabrillo Export';
|
||||
$lang['menu_oqrs_requests'] = 'OQRS Requests';
|
||||
$lang['menu_print_requested_qsls'] = 'Print Requested QSLs';
|
||||
$lang['menu_labels'] = 'Labels';
|
||||
$lang['menu_logbook_of_the_world'] = 'Logbook of the World';
|
||||
$lang['menu_eqsl_import_export'] = 'eQSL Import / Export';
|
||||
$lang['menu_qrz_logbook'] = 'QRZ Logbook';
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ $lang['options_radio_timeout_warning_changed_to'] = 'Radio Timeout Warning chang
|
|||
$lang['options_email'] = 'Email';
|
||||
$lang['options_outgoing_protocol'] = 'Outgoing Protocol';
|
||||
$lang['options_smtp_encryption'] = 'SMTP Encryption';
|
||||
$lang['options_email_address'] = 'Email Address';
|
||||
$lang['options_email_sender_name'] = 'Email Sender Name';
|
||||
$lang['options_smtp_host'] = 'SMTP Host';
|
||||
$lang['options_smtp_port'] = 'SMTP Port';
|
||||
$lang['options_smtp_username'] = 'SMTP Username';
|
||||
|
|
@ -40,6 +42,8 @@ $lang['options_crlf'] = 'CRLF';
|
|||
$lang['options_newline'] = 'Newline';
|
||||
$lang['options_outgoing_email_protocol_changed_to'] = 'Outgoing Email Protocol changed to ';
|
||||
$lang['options_smtp_encryption_changed_to'] = 'SMTP Encryption changed to ';
|
||||
$lang['options_email_address_changed_to'] = 'Email Address changed to ';
|
||||
$lang['options_email_sender_name_changed_to'] = 'Email Sender Name changed to ';
|
||||
$lang['options_smtp_host_changed_to'] = 'SMTP Host changed to ';
|
||||
$lang['options_smtp_port_changed_to'] = 'SMTP Post changed to ';
|
||||
$lang['options_smtp_username_changed_to'] = 'SMTP Username changed to ';
|
||||
|
|
|
|||
|
|
@ -8,3 +8,84 @@ $lang['account_column2_text'] = 'Sarake 2';
|
|||
$lang['account_column3_text'] = 'Sarake 3';
|
||||
$lang['account_column4_text'] = 'Sarake 4';
|
||||
$lang['account_column5_text'] = 'Sarake 5 (vain lokikirjassa)';
|
||||
|
||||
$lang['account_create_user_account'] = 'Luo käyttäjätili';
|
||||
$lang['account_edit_account'] = 'Muokkaa käyttäjätiliä';
|
||||
|
||||
$lang['account_account_information'] = 'Account Information';
|
||||
$lang['account_username'] = 'käyttäjänimi';
|
||||
$lang['account_email_address'] = 'Email';
|
||||
$lang['account_password'] = 'Salasana';
|
||||
|
||||
$lang['account_roles'] = 'Roolit';
|
||||
$lang['account_user_role'] = 'Käyttäjän rooli';
|
||||
|
||||
$lang['account_theme'] = 'Teema';
|
||||
$lang['account_stylesheet'] = 'Tyylisivu';
|
||||
|
||||
$lang['account_personal_information'] = 'Henkilötiedot';
|
||||
$lang['account_first_name'] = 'Etunimi';
|
||||
$lang['account_last_name'] = 'Sukunimi';
|
||||
$lang['account_callsign'] = 'Radioamatöörikutsu';
|
||||
$lang['account_gridsquare'] = 'Gridsquare';
|
||||
|
||||
$lang['account_cloudlog_preferences'] = 'Cloudlog Asetukset';
|
||||
$lang['account_timezone'] = 'Aikavyöhyke';
|
||||
$lang['account_date_format'] = 'Päivämäärämuoto';
|
||||
$lang['account_measurement_preference'] = 'Mittayksikkömuoto';
|
||||
$lang['account_select_how_you_would_like_dates_shown_when_logged_into_your_account'] = 'Valitse, miten haluat päivämäärät näkyvän, kun olet kirjautunut tilillesi.';
|
||||
$lang['account_choose_which_unit_distances_will_be_shown_in'] = 'Valitse, mitä mittayksikkömuotoa käytetään';
|
||||
|
||||
$lang['account_main_menu'] = 'Main Menu';
|
||||
$lang['account_show_notes_in_the_main_menu'] = 'Näytä "Muistio" päävalikossa.';
|
||||
|
||||
$lang['account_gridsquare_and_location_autocomplete'] = 'Gridsquare and Location Autocomplete';
|
||||
$lang['account_location_auto_lookup'] = 'Location auto lookup.';
|
||||
$lang['account_if_set_gridsquare_is_fetched_based_on_location_name'] = 'If set, gridsquare is fetched based on location name.';
|
||||
$lang['account_sota_auto_lookup_gridsquare_and_name_for_summit'] = 'SOTA auto lookup gridsquare and name for summit.';
|
||||
$lang['account_wwff_auto_lookup_gridsquare_and_name_for_reference'] = 'WWFF auto lookup gridsquare and name for reference.';
|
||||
$lang['account_pota_auto_lookup_gridsquare_and_name_for_park'] = 'POTA auto lookup gridsquare and name for park.';
|
||||
$lang['account_if_set_name_and_gridsquare_is_fetched_from_the_api_and_filled_in_location_and_locator'] = 'If set, name and gridsquare is fetched from the API and filled in location and locator.';
|
||||
|
||||
$lang['account_previous_qsl_type'] = 'Previous QSL Type';
|
||||
$lang['account_select_the_type_of_qsl_to_show_in_the_previous_qsos_section'] = 'Select the type of QSL to show in the previous QSOs section.';
|
||||
|
||||
$lang['account_qrzcom_hamqthcom_images'] = 'qrz.com/hamqth.com Images';
|
||||
$lang['account_show_profile_picture_of_qso_partner_from_qrzcom_hamqthcom_profile_in_the_log_qso_section'] = 'Show profile picture of QSO partner from qrz.com/hamqth.com profile in the log QSO section.';
|
||||
$lang['account_please_set_your_qrzcom_hamqthcom_credentials_in_the_general_config_file'] = 'Please set your qrz.com/hamqth.com credentials in the general config file.';
|
||||
|
||||
$lang['account_amsat_status_upload'] = 'AMSAT Status Upload';
|
||||
$lang['account_upload_status_of_sat_qsos_to'] = 'Upload status of SAT QSOs to';
|
||||
|
||||
$lang['account_logbook_of_the_world'] = 'Logbook of the World';
|
||||
$lang['account_logbook_of_the_world_lotw_username'] = 'Logbook of The World (LoTW) Käyttäjänimi';
|
||||
$lang['account_logbook_of_the_world_lotw_password'] = 'Logbook of The World (LoTW) Salasana';
|
||||
$lang['account_leave_blank_to_keep_existing_password'] = 'Jätä tyhjäksi säilyttääksesi tietokannan nykyisen salasanan';
|
||||
|
||||
$lang['account_clublog'] = 'Club Log';
|
||||
$lang['account_clublog_email_callsign'] = 'Club Log Sähköposti/Kutsu';
|
||||
$lang['account_clublog_password'] = 'Club Log Salasana';
|
||||
$lang['account_the_email_or_callsign_you_use_to_login_to_club_log'] = 'Sähköposti tai kutsu, jota käytät kirjautuessasi Club Log:iin';
|
||||
|
||||
$lang['account_eqsl'] = 'eQSL';
|
||||
$lang['account_eqsl_username'] = 'eQSL.cc Käyttäjänimi';
|
||||
$lang['account_eqsl_password'] = 'eQSL.cc Salasana';
|
||||
|
||||
$lang['account_save_account_changes'] = 'Tallenna käyttäjätilin muutokset';
|
||||
$lang['account_create_account'] = 'Luo käyttäjätili';
|
||||
|
||||
$lang['account_delete_user_account'] = 'Poista käyttäjätili';
|
||||
$lang['account_are_you_sure_you_want_to_delete_the_user_account'] = 'Oletko varma, että haluat poistaa käyttäjätilin';
|
||||
$lang['account_yes_delete_this_user'] = 'Kyllä, poista tämä käyttäjätili';
|
||||
$lang['account_no_do_not_delete_this_user'] = 'En, älä poista tätä käyttäjätiliä';
|
||||
|
||||
$lang['account_forgot_password'] = 'Salasana unohtunut?';
|
||||
$lang['account_you_can_reset_your_password_here'] = 'Voit resetoida salasanasi tästä';
|
||||
$lang['account_reset_password'] = 'Resetoi salasana';
|
||||
$lang['account_the_email_field_is_required'] = 'Sähköpostikenttä on pakollinen';
|
||||
$lang['account_confirm_password'] = 'Vahvista salasana';
|
||||
|
||||
$lang['account_forgot_your_password'] = 'Salasana unohtunut?';
|
||||
|
||||
$lang['account_login_to_cloudlog'] = 'Kirjaudu Cloudlogiin';
|
||||
$lang['account_login'] = 'Kirjaudu';
|
||||
|
|
|
|||
18
application/language/finnish/admin_lang.php
Normal file
18
application/language/finnish/admin_lang.php
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
$lang['admin_user_line1'] = 'Cloudlog tarvitsee toimiakseen vähintään yhden luodun käyttäjän.';
|
||||
$lang['admin_user_line2'] = 'Käyttäjille voidaan määrittää rooleja, jotka antavat heille erilaisia käyttöoikeuksia, kuten QSO:n lisääminen lokikirjaan ja pääsy Cloudlog-sovellusliittymiin (API).';
|
||||
$lang['admin_user_line3'] = 'Tällä hetkellä kirjautunut käyttäjä näkyy jokaisen sivun oikeassa yläkulmassa.';
|
||||
|
||||
$lang['admin_user_list'] = 'Käyttäjälista';
|
||||
|
||||
$lang['admin_user'] = 'Käyttäjä';
|
||||
$lang['admin_email'] = 'E-mail';
|
||||
$lang['admin_type'] = 'Rooli';
|
||||
$lang['admin_options'] = 'Valinnat';
|
||||
|
||||
$lang['admin_create_user'] = 'Luo käyttäjä';
|
||||
$lang['admin_delete'] = 'Poista';
|
||||
$lang['admin_edit'] = 'Muokkaa';
|
||||
5
application/language/finnish/eqsl_lang.php
Normal file
5
application/language/finnish/eqsl_lang.php
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<?php
|
||||
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
$lang['eqsl_short'] = 'eQSL';
|
||||
|
|
@ -38,16 +38,25 @@ $lang['general_word_method'] = 'Method / tapa';
|
|||
$lang['general_word_sent'] = 'Lähetetyt';
|
||||
$lang['general_word_received'] = 'Vastaanotetut';
|
||||
$lang['general_word_requested'] = 'Pyydetyt';
|
||||
$lang['general_word_qslcard'] = 'QSL kortti';
|
||||
$lang['general_word_qslcard_management'] = 'QSL manageri';
|
||||
$lang['general_word_queued'] = 'Queued';
|
||||
$lang['general_word_invalid_ignore'] = 'Virheellinen (Ohita)';
|
||||
$lang['general_word_qslcard'] = 'QSL-kortti';
|
||||
$lang['general_word_qslcard_management'] = 'QSL-manageri';
|
||||
$lang['general_word_qslcards'] = 'QSL-kortit';
|
||||
$lang['general_word_qslcard_direct'] = 'Direct';
|
||||
$lang['general_word_qslcard_bureau'] = 'Bureau';
|
||||
$lang['general_word_qslcard_electronic'] = 'Electronic';
|
||||
$lang['general_word_qslcard_manager'] = 'Manageri';
|
||||
$lang['general_word_qslcard_via'] = 'Via';
|
||||
$lang['general_word_eqslcard'] = 'eQSL Card';
|
||||
$lang['general_word_eqslcards'] = 'eQSL Cards';
|
||||
$lang['general_word_lotw'] = 'Logbook of the World';
|
||||
|
||||
$lang['general_edit_qso'] = 'Muokkaa QSO:a';
|
||||
$lang['general_mark_qsl_rx_bureau'] = 'Merkitse QSL vastaanotetuksi (Bureau)';
|
||||
$lang['general_mark_qsl_rx_direct'] = 'Merkitse QSL vastaanotetuksi (Direct)';
|
||||
$lang['general_mark_qsl_tx_bureau'] = 'Merkitse QSL lähetetyksi (Bureau)';
|
||||
$lang['general_mark_qsl_tx_direct'] = 'Merkitse QSL lähetetyksi (Direct)';
|
||||
|
||||
$lang['general_delete_qso'] = 'Poista QSO';
|
||||
|
||||
|
|
@ -86,15 +95,22 @@ $lang['gen_hamradio_logbook'] = 'Lokikirja';
|
|||
|
||||
$lang['gen_hamradio_cq_zone'] = 'CQ Zone';
|
||||
$lang['gen_hamradio_dxcc'] = 'DXCC';
|
||||
$lang['gen_hamradio_deleted_dxcc'] = 'Poistettu DXCC';
|
||||
$lang['gen_hamradio_continent'] = 'Continent';
|
||||
$lang['gen_hamradio_usa_state'] = 'USA:n osavaltio';
|
||||
$lang['gen_hamradio_county_reference'] = 'USA lääni';
|
||||
$lang['gen_hamradio_iota_reference'] = 'IOTA ref.numero';
|
||||
$lang['gen_hamradio_sota_reference'] = 'SOTA ref.numero';
|
||||
$lang['gen_hamradio_iota_reference'] = 'IOTA ref.nro';
|
||||
$lang['gen_hamradio_sota_reference'] = 'SOTA ref.nro';
|
||||
$lang['gen_hamradio_wwff_reference'] = 'WWFF ref.nro';
|
||||
$lang['gen_hamradio_pota_reference'] = 'POTA ref.nro';
|
||||
$lang['gen_hamradio_dok'] = 'DOK';
|
||||
$lang['gen_hamradio_state'] = 'osavaltio';
|
||||
$lang['gen_hamradio_iota'] = 'IOTA';
|
||||
$lang['gen_hamradio_sota'] = 'SOTA';
|
||||
$lang['gen_hamradio_wwff'] = 'WWFF';
|
||||
$lang['gen_hamradio_pota'] = 'POTA';
|
||||
$lang['gen_hamradio_gridsquare'] = 'Gridsquare';
|
||||
$lang['gen_hamradio_operator'] = 'Operator';
|
||||
|
||||
$lang['gen_hamradio_sig'] = 'Sig';
|
||||
$lang['gen_hamradio_sig_info'] = 'Sig Info';
|
||||
|
|
@ -108,3 +124,17 @@ $lang['dashboard_countries_breakdown'] = 'Maatilasto';
|
|||
$lang['gen_from_date'] = 'päivämäärästä';
|
||||
|
||||
$lang['gen_this_qso_was_confirmed_on'] = 'Tämä QSO vahvistettiin';
|
||||
|
||||
$lang['error_no_logbook_found'] = 'No logbooks were found. You need to define a logbook under Station Logbooks! Do it here:';
|
||||
|
||||
$lang['copy_to_clipboard'] = 'Kopioi leikepöydälle';
|
||||
|
||||
$lang['africa'] = 'Afrikka';
|
||||
$lang['antarctica'] = 'Antarktis';
|
||||
$lang['asia'] = 'Aasia';
|
||||
$lang['europe'] = 'Eurooppa';
|
||||
$lang['northamerica'] = 'Pohjois-Amerikka';
|
||||
$lang['oceania'] = 'Oseania';
|
||||
$lang['southamerica'] = 'Etelä-Amerikka';
|
||||
|
||||
$lang['gen_band_selection'] = 'Bandin valinta';
|
||||
16
application/language/finnish/gridsquares_lang.php
Normal file
16
application/language/finnish/gridsquares_lang.php
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
|
||||
|
||||
$lang['gridsquares_gridsquare_map'] = 'Gridsquare-kartta';
|
||||
|
||||
$lang['gridsquares_confirmed_is_green'] = 'Vahvistetut ovat vihreitä';
|
||||
$lang['gridsquares_worked_but_not_confirmed_is_red'] = 'Workitut, mutta ei vahvistetut ovat punaisena';
|
||||
$lang['gridsquares_activated_but_not_confirmed_is_red'] = 'Aktivoidut, mutta vahvistamatta ovat punaisena.';
|
||||
|
||||
$lang['gridsquares_this_map_does_not_include_satellite_internet_or_repeater_qsos'] = 'Tällä kartalla ei näy satelliitti, internet tai ripiitteri QSO:t';
|
||||
|
||||
$lang['gridsquares_grid_squares'] = 'grid square';
|
||||
$lang['gridsquares_total_count'] = 'Total count';
|
||||
|
|
@ -16,10 +16,13 @@ $lang['lotw_no_certs_uploaded'] = 'Sinun täytyy ladata ainakin yksi LoTW:n P12
|
|||
|
||||
$lang['lotw_date_created'] = 'Päivä jolloin luotu';
|
||||
$lang['lotw_date_expires'] = 'Päivä joloin vanhenee';
|
||||
$lang['lotw_status'] = 'Status';
|
||||
$lang['lotw_qso_start_date'] = 'QSO aloituspäivä';
|
||||
$lang['lotw_qso_end_date'] = 'QSO lopetuspäivä';
|
||||
$lang['lotw_status'] = 'Status / Last upload';
|
||||
$lang['lotw_options'] = 'Lisävaihtoehdot';
|
||||
$lang['lotw_valid'] = 'Voimassa';
|
||||
$lang['lotw_expired'] = 'Vanhentunut';
|
||||
$lang['lotw_expiring'] = 'Vanhenee';
|
||||
$lang['lotw_not_synced'] = 'Ei synkronoitu';
|
||||
|
||||
$lang['lotw_certificate_dxcc'] = 'Kutsumerkin varmenteen DXCC';
|
||||
|
|
@ -50,3 +53,10 @@ $lang['lotw_p12_export_step_three'] = 'Klikkaa "Tallenna kutsumerkin varmenne /
|
|||
$lang['lotw_p12_export_step_four'] = 'Lataa ja tuo äsken tallentamasi tiedosto tänne.';
|
||||
|
||||
$lang['lotw_confirmed'] = 'Tämä QSO on kuitattu LoTW:ssa';
|
||||
|
||||
// LoTW Expiry
|
||||
$lang['lotw_cert_expiring'] = 'Vähintään yksi LOTW:n kutsumerkin varmenteesi on vanhentumassa!';
|
||||
$lang['lotw_cert_expired'] = 'Vähintään yksi LOTW:n kutsumerkin varmenteesi on vanhentunut!!';
|
||||
|
||||
// Lotw User
|
||||
$lang['lotw_user'] = 'Tämä asmea käyttää LoTW-palvelua. Viimeinen yhteyksien lähetys oli';
|
||||
|
|
|
|||
81
application/language/finnish/menu_lang.php
Normal file
81
application/language/finnish/menu_lang.php
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
<?php
|
||||
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
$lang['menu_badge_developer_mode'] = 'Kehittäjätila';
|
||||
|
||||
$lang['menu_logbook'] = 'Logbook';
|
||||
$lang['menu_overview'] = 'Yleiskatsaus';
|
||||
$lang['menu_advanced'] = 'Advanced';
|
||||
|
||||
$lang['menu_qso'] = 'QSO';
|
||||
$lang['menu_live_qso'] = 'Live QSO';
|
||||
$lang['menu_post_qso'] = 'Post QSO';
|
||||
$lang['menu_live_contest_logging'] = 'Live Contest Logging';
|
||||
$lang['menu_post_contest_logging'] = 'Post Contest Logging';
|
||||
$lang['menu_view_qsl'] = 'Näytä QSL';
|
||||
$lang['menu_view_eqsl'] = 'Näytä eQSL';
|
||||
|
||||
$lang['menu_notes'] = 'Muistio';
|
||||
|
||||
$lang['menu_analytics'] = 'Analyysit';
|
||||
$lang['menu_statistics'] = 'Statistiikkaa';
|
||||
$lang['menu_gridsquares'] = 'Ruudut/Gridsquares';
|
||||
$lang['menu_activated_gridsquares'] = 'Aktivoidut ruudut';
|
||||
$lang['menu_gridsquare_activators'] = 'Ruutuja aktivoineet kutsut';
|
||||
$lang['menu_distances_worked'] = 'Workitut etäisyydet';
|
||||
$lang['menu_days_with_qsos'] = 'QSO:llsia päiviä';
|
||||
$lang['menu_timeline'] = 'Aikajana';
|
||||
$lang['menu_accumulated_statistics'] = 'Kertyneet tilastot';
|
||||
$lang['menu_timeplotter'] = 'Aikajana';
|
||||
$lang['menu_custom_maps'] = 'Custom Maps';
|
||||
$lang['menu_continents'] = 'Mantereet';
|
||||
|
||||
$lang['menu_awards'] = 'Awardit';
|
||||
$lang['menu_cq'] = 'CQ';
|
||||
$lang['menu_dok'] = 'DOK';
|
||||
$lang['menu_dxcc'] = 'DXCC';
|
||||
$lang['menu_iota'] = 'IOTA';
|
||||
$lang['menu_pota'] = 'POTA';
|
||||
$lang['menu_sig'] = 'SIG';
|
||||
$lang['menu_sota'] = 'SOTA';
|
||||
$lang['menu_us_counties'] = 'USA Osavaltiot';
|
||||
$lang['menu_vucc'] = 'VUCC';
|
||||
$lang['menu_was'] = 'WAS';
|
||||
$lang['menu_wwff'] = 'WWFF';
|
||||
|
||||
$lang['menu_admin'] = 'Admin';
|
||||
$lang['menu_user_account'] = 'Käyttäjätilit';
|
||||
$lang['menu_global_options'] = 'Yleiset asetukset';
|
||||
$lang['menu_modes'] = 'Modet';
|
||||
$lang['menu_contests'] = 'Kontestit';
|
||||
$lang['menu_themes'] = 'Teemat';
|
||||
$lang['menu_backup'] = 'Varmuuskopiot';
|
||||
$lang['menu_update_country_files'] = 'Päivitä Country Files';
|
||||
$lang['menu_debug_information'] = 'Debug Information';
|
||||
|
||||
$lang['menu_search_text'] = 'Etsi kutsulla';
|
||||
|
||||
$lang['menu_search_button'] = 'Etsi';
|
||||
$lang['menu_login_button'] = 'Kirjaudu';
|
||||
|
||||
$lang['menu_account'] = 'Käyttäjätili';
|
||||
$lang['menu_station_logbooks'] = 'Station Logbooks';
|
||||
$lang['menu_station_locations'] = 'Station Locations';
|
||||
$lang['menu_bands'] = 'Bandit';
|
||||
$lang['menu_adif_import_export'] = 'ADIF Tuonti / Vienti';
|
||||
$lang['menu_kml_export'] = 'KML Vienti';
|
||||
$lang['menu_dx_atlas_gridsquare_export'] = 'DX Atlas Gridsquare Vienti';
|
||||
$lang['menu_sota_csv_export'] = 'SOTA CSV Vienti';
|
||||
$lang['menu_cabrillo_export'] = 'Cabrillo Vienti';
|
||||
$lang['menu_oqrs_requests'] = 'OQRS Pyynnöt';
|
||||
$lang['menu_print_requested_qsls'] = 'Tulosta pyydetyt QSL:t';
|
||||
$lang['menu_logbook_of_the_world'] = 'Logbook of the World';
|
||||
$lang['menu_eqsl_import_export'] = 'eQSL Tuonti / Vienti';
|
||||
$lang['menu_qrz_logbook'] = 'QRZ Logi';
|
||||
$lang['menu_qo_100_dx_club_upload'] = 'QO-100 Dx Club Lähetys';
|
||||
$lang['menu_api_keys'] = 'API Keys';
|
||||
$lang['menu_hardware_interfaces'] = 'Hardware Interfaces';
|
||||
$lang['menu_help'] = 'Help';
|
||||
$lang['menu_forum'] = 'Foorumi';
|
||||
$lang['menu_logout'] = 'Kirjaudu ulos';
|
||||
|
|
@ -6,7 +6,7 @@ $lang['notes_menu_notes'] = 'Muistiinpanot';
|
|||
$lang['notes_edit_note'] = 'Muokkaa muistiinpanoa';
|
||||
$lang['notes_your_notes'] = 'Muistiinpanosi';
|
||||
|
||||
$lang['notes_welcome'] = "Näyttää siltä, ettei sinulla ole vielä yhtään muistiinpanoa. Nämä Cloudlogin muistiinpanot ovat kätevä tapa tallentaa tärkeitä tietoja, kuten ATU:n asetukset, taajuudet ja mitä tahansa mieleesi tuleekin. Muistiinpanosi säilyvät täällä tallessa, eikä sinun tarvitse etsiä niitä paperipinojesi alta. Näin aika säästyy workkimiseen --... ...-- ";
|
||||
$lang['notes_welcome'] = "Näyttää siltä, ettei sinulla ole vielä yhtään muistiinpanoa. Tämä Cloudlogin muistio ovat kätevä tapa tallentaa vaikka ATU:n asetukset, taajuudet. Muistiinpanosi säilyvät täällä tallessa, eikä sinun tarvitse etsiä niitä paperipinojesi alta. Näin aika säästyy workkimiseen --... ...-- ";
|
||||
|
||||
$lang['notes_create_note'] = 'Luo uusi muistiinpano';
|
||||
|
||||
|
|
|
|||
57
application/language/finnish/options_lang.php
Normal file
57
application/language/finnish/options_lang.php
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
<?php
|
||||
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
$lang['options_cloudlog_options'] = 'Cloudlog Options';
|
||||
$lang['options_message1'] = 'Cloudlog Options are global settings used for all users of the installation, which are overridden if there\'s a setting on a user level.';
|
||||
|
||||
$lang['options_appearance'] = 'Ulkoasu';
|
||||
$lang['options_theme'] = 'Teema';
|
||||
$lang['options_global_theme_choice_this_is_used_when_users_arent_logged_in'] = 'Yleisen teeman valinta, joka vaikuttaa sivuston vierailijoihin. ';
|
||||
$lang['options_public_search_bar'] = 'Julkinen hakukenttä';
|
||||
$lang['options_this_allows_non_logged_in_users_to_access_the_search_functions'] = 'Tämä mahdollistaa vieraiden suorittaa hakuja kirjautumatta.';
|
||||
$lang['options_dashboard_notification_banner'] = 'Dashboard Notification Banner';
|
||||
$lang['options_this_allows_to_disable_the_global_notification_banner_on_the_dashboard'] = 'This allows to disable the global notification banner on the dashboard.';
|
||||
$lang['options_dashboard_map'] = 'Dashboard Map';
|
||||
$lang['options_this_allows_the_map_on_the_dashboard_to_be_disabled_or_placed_on_the_right'] = 'This allows the map on the dashboard to be disabled or placed on the right.';
|
||||
$lang['options_logbook_map'] = 'Logbook Map';
|
||||
$lang['options_this_allows_to_disable_the_map_in_the_logbook'] = 'This allows to disable the map in the logbook.';
|
||||
$lang['options_theme_changed_to'] = 'Vaihdettu teema on ';
|
||||
$lang['options_global_search_changed_to'] = 'Julkinen haku on vaihdettu: ';
|
||||
$lang['options_dashboard_banner_changed_to'] = 'Dashboard banner changed to ';
|
||||
$lang['options_dashboard_map_changed_to'] = 'Dashboard map changed to ';
|
||||
$lang['options_logbook_map_changed_to'] = 'Logbook map changed to ';
|
||||
|
||||
$lang['options_radios'] = 'Radiot';
|
||||
$lang['options_radio_settings'] = 'Radion asetukset';
|
||||
$lang['options_radio_timeout_warning'] = 'Radio Timeout Warning';
|
||||
$lang['options_the_radio_timeout_warning_is_used_on_the_qso_entry_panel_to_alert_you_to_radio_interface_disconnects'] = 'The Radio Timeout Warning is used on the QSO entry panel to alert you to radio interface disconnects.';
|
||||
$lang['options_this_number_is_in_seconds'] = 'This number is in seconds.';
|
||||
$lang['options_radio_timeout_warning_changed_to'] = 'Radio Timeout Warning changed to ';
|
||||
|
||||
$lang['options_email'] = 'Email';
|
||||
$lang['options_outgoing_protocol'] = 'Outgoing Protocol';
|
||||
$lang['options_smtp_encryption'] = 'SMTP Encryption';
|
||||
$lang['options_smtp_host'] = 'SMTP Host';
|
||||
$lang['options_smtp_port'] = 'SMTP Port';
|
||||
$lang['options_smtp_username'] = 'SMTP Username';
|
||||
$lang['options_smtp_password'] = 'SMTP Password';
|
||||
$lang['options_crlf'] = 'CRLF';
|
||||
$lang['options_newline'] = 'Newline';
|
||||
$lang['options_outgoing_email_protocol_changed_to'] = 'Outgoing Email Protocol changed to ';
|
||||
$lang['options_smtp_encryption_changed_to'] = 'SMTP Encryption changed to ';
|
||||
$lang['options_smtp_host_changed_to'] = 'SMTP Host changed to ';
|
||||
$lang['options_smtp_port_changed_to'] = 'SMTP Post changed to ';
|
||||
$lang['options_smtp_username_changed_to'] = 'SMTP Username changed to ';
|
||||
$lang['options_smtp_password_changed_to'] = 'SMTP Password changed to ';
|
||||
$lang['options_email_crlf_changed_to'] = 'Email CRLF changed to ';
|
||||
$lang['options_email_newline_changed_to'] = 'Email Newline changed to ';
|
||||
|
||||
$lang['options_oqrs'] = 'OQRS Options';
|
||||
$lang['options_global_text'] = 'Global text';
|
||||
$lang['options_this_text_is_an_optional_text_that_can_be_displayed_on_top_of_the_oqrs_page'] = 'This text is an optional text that can be displayed on top of the OQRS page.';
|
||||
$lang['options_grouped_search'] = 'Grouped search';
|
||||
$lang['options_when_this_is_on_all_station_locations_with_oqrs_active_will_be_searched_at_once'] = 'When this is on, all station locations with OQRS active, will be searched at once.';
|
||||
$lang['options_oqrs_options_have_been_saved'] = 'OQRS options have been saved.';
|
||||
|
||||
$lang['options_save'] = 'Save';
|
||||
|
|
@ -7,10 +7,16 @@ $lang['qslcard_string_your_are_using'] = 'Käytät';
|
|||
$lang['qslcard_string_disk_space'] = 'levytilaa QSL-korteille';
|
||||
|
||||
$lang['qslcard_info'] = 'QSL Info';
|
||||
$lang['qslcard_sent_bureau'] = 'QSL kortti on lähetty buron kautta';
|
||||
$lang['qslcard_sent_direct'] = 'QSL kortti on lähetetty direktinä';
|
||||
$lang['qslcard_rcvd_bureau'] = 'QSL kortti on vastaanotettu buron kautta';
|
||||
$lang['qslcard_rcvd_direct'] = 'QSL kortti on vastaanotettu direktinä';
|
||||
$lang['qslcard_sent'] = 'QSL Card has been sent';
|
||||
$lang['qslcard_sent_bureau'] = 'QSL-kortti on lähetty buron kautta';
|
||||
$lang['qslcard_sent_direct'] = 'QSL-kortti on lähetetty direktinä';
|
||||
$lang['qslcard_sent_electronic'] = 'QSL-kortti on lähetetty sähköisesti';
|
||||
$lang['qslcard_sent_manager'] = 'QSL-kortti on lähetetty managerin kautta';
|
||||
$lang['qslcard_rcvd'] = 'QSL-kortti on vastaanotettu';
|
||||
$lang['qslcard_rcvd_bureau'] = 'QSL-kortti on vastaanotettu buron kautta';
|
||||
$lang['qslcard_rcvd_direct'] = 'QSL-kortti on vastaanotettu direktinä';
|
||||
$lang['qslcard_rcvd_electronic'] = 'QSL-kortti on vastaanotettu sähköisesti';
|
||||
$lang['qslcard_rcvd_manager'] = 'QSL-kortti on vastaanotettu managerin kautta';
|
||||
|
||||
$lang['qslcard_upload_front'] = 'QSL-kortin ladattu etukuva';
|
||||
$lang['qslcard_upload_back'] = 'QSL-kortin ladattu takakuva';
|
||||
|
|
|
|||
|
|
@ -6,18 +6,22 @@ defined('BASEPATH') OR exit('No direct script access allowed');
|
|||
$lang['qso_title_qso_map'] = 'Vasta-aseman sijainti kartalla';
|
||||
$lang['qso_title_suggestions'] = 'Kutsumerkkiehdotukset';
|
||||
$lang['qso_title_previous_contacts'] = 'Edelliset yhteydet';
|
||||
$lang['qso_title_image'] = 'Profiilikuva';
|
||||
|
||||
// Input Help Text on the /QSO Display
|
||||
$lang['qso_transmit_power_helptext'] = 'Anna teholukema Watteina käyttäen vain numeroita.';
|
||||
|
||||
$lang['qso_sota_ref_helptext'] = 'Esimerkiksi: OH/JS-004.';
|
||||
$lang['qso_wwff_ref_helptext'] = 'Esimerkiksi: OHFF-1234.';
|
||||
$lang['qso_pota_ref_helptext'] = 'Esimerkiksi: PA-0150.';
|
||||
|
||||
$lang['qso_sig_helptext'] = 'Esimerkiksi: GMA';
|
||||
$lang['qso_sig_info_helptext'] = 'Esimerkiksi: DA/NW-357';
|
||||
|
||||
$lang['qso_dok_helptext'] = 'Esimerkiksi: Q03';
|
||||
|
||||
$lang['qso_notes_helptext'] = 'Muistion sisältö tallentuu vain Cloudlogiin, tämän kuson yhteyteen, eikä siirry eteenpäin muihin palveluihin.';
|
||||
$lang['qso_notes_helptext'] = 'Muistio tallentuu vain logiin, tähän yhteydeen, eikä siirry eteenpäin muihin palveluihin.';
|
||||
$lang['qsl_notes_helptext'] = 'Tämä viestisi siirtyy myös QSL-palveluihin, kuten eqsl.cc.';
|
||||
|
||||
// Button Text on /qso Display
|
||||
|
||||
|
|
|
|||
17
application/language/finnish/statistics_lang.php
Normal file
17
application/language/finnish/statistics_lang.php
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
$lang['statistics_statistics'] = 'Tilastot';
|
||||
|
||||
$lang['statistics_explore_the_logbook'] = 'Uppoudu lokiisi tarkemmin';
|
||||
|
||||
$lang['statistics_years'] = 'Vuodet';
|
||||
$lang['statistics_mode'] = 'Modet';
|
||||
$lang['statistics_bands'] = 'Bandit';
|
||||
$lang['statistics_qsos'] = 'QSO:t';
|
||||
$lang['statistics_unique_callsigns'] = 'Erillisiä kutsuja';
|
||||
|
||||
$lang['statistics_total'] = 'Yhteensä';
|
||||
|
||||
$lang['statistics_year'] = 'Vuosi';
|
||||
|
|
@ -111,6 +111,7 @@ $lang['gen_hamradio_sota'] = 'SOTA';
|
|||
$lang['gen_hamradio_wwff'] = 'WWFF';
|
||||
$lang['gen_hamradio_pota'] = 'POTA';
|
||||
$lang['gen_hamradio_gridsquare'] = 'Planquadrat';
|
||||
$lang['gen_hamradio_distance'] = 'Entfernung';
|
||||
$lang['gen_hamradio_operator'] = 'Operator';
|
||||
|
||||
$lang['gen_hamradio_sig'] = 'Sig';
|
||||
|
|
|
|||
|
|
@ -6,9 +6,21 @@ $lang['gridsquares_gridsquare_map'] = 'Planquadratkarte';
|
|||
|
||||
$lang['gridsquares_confirmed_is_green'] = 'Bestätigt ist grün';
|
||||
$lang['gridsquares_worked_but_not_confirmed_is_red'] = 'Gearbeitet aber nicht bestätigt ist rot';
|
||||
$lang['gridsquares_worked_but_not_confirmed_is_red'] = 'Aktiviert aber nicht bestätigt ist rot';
|
||||
$lang['gridsquares_activated_but_not_confirmed_is_red'] = 'Aktiviert aber nicht bestätigt ist rot';
|
||||
|
||||
$lang['gridsquares_this_map_does_not_include_satellite_internet_or_repeater_qsos'] = 'Diese Karte beinhaltet keine Satelliten-, Internet- oder Relais-QSOs';
|
||||
|
||||
$lang['gridsquares_grid_squares'] = 'Planquadrate';
|
||||
$lang['gridsquares_total_count'] = 'Summe';
|
||||
|
||||
$lang['gridsquares_band'] = 'Band';
|
||||
$lang['gridsquares_mode'] = 'Mode';
|
||||
$lang['gridsquares_sat'] = 'Satellit';
|
||||
$lang['gridsquares_confirmation'] = 'Bestätigung';
|
||||
|
||||
$lang['gridsquares_button_plot'] = 'Kartieren';
|
||||
|
||||
$lang['gridsquares_gridsquares'] = 'Planquadrate';
|
||||
$lang['gridsquares_gridsquares_confirmed'] = 'Planquadrate bestätigt';
|
||||
$lang['gridsquares_gridsquares_not_confirmed'] = 'Planquadrate nicht bestätigt';
|
||||
$lang['gridsquares_gridsquares_total_worked'] = 'Summe gearbeiteter Planquadrate';
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ $lang['menu_notes'] = 'Notizen';
|
|||
$lang['menu_analytics'] = 'Analysen';
|
||||
$lang['menu_statistics'] = 'Statistik';
|
||||
$lang['menu_gridsquares'] = 'Planquadrate';
|
||||
$lang['menu_gridmap'] = 'Planquadratkarte';
|
||||
$lang['menu_activated_gridsquares'] = 'Aktivierte Planquadrate';
|
||||
$lang['menu_gridsquare_activators'] = 'Planquadrat-Aktivierer';
|
||||
$lang['menu_distances_worked'] = 'Gearbeitete Entfernungen';
|
||||
|
|
@ -70,6 +71,7 @@ $lang['menu_sota_csv_export'] = 'SOTA CSV Export';
|
|||
$lang['menu_cabrillo_export'] = 'Cabrillo Export';
|
||||
$lang['menu_oqrs_requests'] = 'OQRS Anforderungen';
|
||||
$lang['menu_print_requested_qsls'] = 'Druck angeforderter QSLs';
|
||||
$lang['menu_labels'] = 'Etiketten';
|
||||
$lang['menu_logbook_of_the_world'] = 'Logbook of the World';
|
||||
$lang['menu_eqsl_import_export'] = 'eQSL Import / Export';
|
||||
$lang['menu_qrz_logbook'] = 'QRZ Logbuch';
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ $lang['options_radio_timeout_warning_changed_to'] = 'Radio Timeout Warnung geän
|
|||
$lang['options_email'] = 'Email';
|
||||
$lang['options_outgoing_protocol'] = 'Protokoll für ausgehende Emails';
|
||||
$lang['options_smtp_encryption'] = 'SMTP Verschlüsselung';
|
||||
$lang['options_email_address'] = 'Emailaddresse';
|
||||
$lang['options_email_sender_name'] = 'Email Absendername';
|
||||
$lang['options_smtp_host'] = 'SMTP Host';
|
||||
$lang['options_smtp_port'] = 'SMTP Port';
|
||||
$lang['options_smtp_username'] = 'SMTP Benutzername';
|
||||
|
|
@ -40,6 +42,8 @@ $lang['options_crlf'] = 'CRLF';
|
|||
$lang['options_newline'] = 'Zeilenvorschub';
|
||||
$lang['options_outgoing_email_protocol_changed_to'] = 'Protokoll für ausgehende Emails geändert zu ';
|
||||
$lang['options_smtp_encryption_changed_to'] = 'SMTP Verschlüsselung geändert zu ';
|
||||
$lang['options_email_address_changed_to'] = 'Emailadresse geändert zu ';
|
||||
$lang['options_email_sender_name_changed_to'] = 'Email Absendername geändert zu ';
|
||||
$lang['options_smtp_host_changed_to'] = 'SMTP Host geändert zu ';
|
||||
$lang['options_smtp_port_changed_to'] = 'SMTP Post changed to ';
|
||||
$lang['options_smtp_username_changed_to'] = 'SMTP Benutzername geändert zu ';
|
||||
|
|
|
|||
|
|
@ -55,7 +55,14 @@ class Qra {
|
|||
$stn = qra2latlong($rx);
|
||||
|
||||
// Feed in Lat Longs plus the unit type
|
||||
$total_distance = distance($my[0], $my[1], $stn[0], $stn[1], $unit);
|
||||
try
|
||||
{
|
||||
$total_distance = distance($my[0], $my[1], $stn[0], $stn[1], $unit);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$total_distance = 0;
|
||||
}
|
||||
|
||||
// Return the distance
|
||||
return $total_distance;
|
||||
|
|
|
|||
128
application/migrations/124_create_label_types_table.php
Normal file
128
application/migrations/124_create_label_types_table.php
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
<?php
|
||||
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
class Migration_create_label_types_table extends CI_Migration {
|
||||
|
||||
public function up() {
|
||||
if (!$this->db->table_exists('label_types')) {
|
||||
$this->dbforge->add_field(array(
|
||||
'id' => array(
|
||||
'type' => 'INT',
|
||||
'constraint' => 5,
|
||||
'unsigned' => TRUE,
|
||||
'auto_increment' => TRUE
|
||||
),
|
||||
|
||||
'user_id' => array(
|
||||
'type' => 'INT',
|
||||
'constraint' => 5,
|
||||
),
|
||||
|
||||
'label_name' => array(
|
||||
'type' => 'VARCHAR',
|
||||
'constraint' => '250',
|
||||
),
|
||||
|
||||
'paper_type' => array(
|
||||
'type' => 'VARCHAR',
|
||||
'constraint' => '250',
|
||||
),
|
||||
|
||||
'metric' => array(
|
||||
'type' => 'VARCHAR',
|
||||
'constraint' => '10',
|
||||
),
|
||||
|
||||
'marginleft' => array(
|
||||
'type' => 'DECIMAL',
|
||||
'constraint' => '6,3',
|
||||
'null' => TRUE,
|
||||
),
|
||||
|
||||
'margintop' => array(
|
||||
'type' => 'DECIMAL',
|
||||
'constraint' => '6,3',
|
||||
'null' => TRUE,
|
||||
),
|
||||
|
||||
'nx' => array(
|
||||
'type' => 'DECIMAL',
|
||||
'constraint' => '6,3',
|
||||
'null' => TRUE,
|
||||
),
|
||||
|
||||
'ny' => array(
|
||||
'type' => 'DECIMAL',
|
||||
'constraint' => '6,3',
|
||||
'null' => TRUE,
|
||||
),
|
||||
|
||||
'spacex' => array(
|
||||
'type' => 'DECIMAL',
|
||||
'constraint' => '6,3',
|
||||
'null' => TRUE,
|
||||
),
|
||||
|
||||
'spacey' => array(
|
||||
'type' => 'DECIMAL',
|
||||
'constraint' => '6,3',
|
||||
'null' => TRUE,
|
||||
),
|
||||
|
||||
'width' => array(
|
||||
'type' => 'DECIMAL',
|
||||
'constraint' => '6,3',
|
||||
'null' => TRUE,
|
||||
),
|
||||
|
||||
'height' => array(
|
||||
'type' => 'DECIMAL',
|
||||
'constraint' => '6,3',
|
||||
'null' => TRUE,
|
||||
),
|
||||
|
||||
'font_size' => array(
|
||||
'type' => 'INT',
|
||||
'constraint' => '5',
|
||||
'null' => TRUE,
|
||||
),
|
||||
|
||||
'font' => array(
|
||||
'type' => 'VARCHAR',
|
||||
'constraint' => '250',
|
||||
'null' => TRUE,
|
||||
),
|
||||
|
||||
'qsos' => array(
|
||||
'type' => 'INT',
|
||||
'constraint' => '5',
|
||||
'null' => TRUE,
|
||||
),
|
||||
|
||||
'useforprint' => array(
|
||||
'type' => 'INT',
|
||||
'constraint' => '5',
|
||||
'null' => TRUE,
|
||||
),
|
||||
|
||||
'last_modified' => array(
|
||||
'type' => 'timestamp',
|
||||
'null' => TRUE,
|
||||
),
|
||||
));
|
||||
|
||||
$this->dbforge->add_key('id', TRUE);
|
||||
$this->dbforge->add_key('user_id', TRUE);
|
||||
|
||||
$this->dbforge->create_table('label_types');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function down(){
|
||||
if ($this->db->table_exists('label_types')) {
|
||||
$this->dbforge->drop_table('label_types');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -10,8 +10,7 @@ class adif_data extends CI_Model {
|
|||
if (strpos($this->api_model->access($api_key), 'r') !== false) {
|
||||
$this->api_model->update_last_used($api_key);
|
||||
$user_id = $this->api_model->key_userid($api_key);
|
||||
$active_station_logbook = $CI->logbooks_model->find_active_station_logbook_from_userid($user_id);
|
||||
$logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($active_station_logbook);
|
||||
$logbooks_locations_array = $this->list_station_locations($user_id);
|
||||
}
|
||||
} else {
|
||||
$logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));
|
||||
|
|
@ -27,6 +26,22 @@ class adif_data extends CI_Model {
|
|||
return $query;
|
||||
}
|
||||
|
||||
function list_station_locations($user_id) {
|
||||
$this->db->where('user_id', $user_id);
|
||||
$query = $this->db->get('station_profile');
|
||||
|
||||
if ($query->num_rows() == 0) {
|
||||
return array();
|
||||
}
|
||||
|
||||
$locations_array = array();
|
||||
foreach ($query->result() as $row) {
|
||||
array_push($locations_array, $row->station_id);
|
||||
}
|
||||
|
||||
return $locations_array;
|
||||
}
|
||||
|
||||
function export_printrequested($station_id = NULL) {
|
||||
$this->load->model('stations');
|
||||
$active_station_id = $this->stations->find_active();
|
||||
|
|
|
|||
226
application/models/Gridmap_model.php
Normal file
226
application/models/Gridmap_model.php
Normal file
|
|
@ -0,0 +1,226 @@
|
|||
<?php
|
||||
|
||||
class Gridmap_model extends CI_Model {
|
||||
|
||||
function get_band_confirmed($band, $mode, $qsl, $lotw, $eqsl, $sat) {
|
||||
$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;
|
||||
}
|
||||
|
||||
$location_list = "'".implode("','",$logbooks_locations_array)."'";
|
||||
|
||||
$sql = 'SELECT distinct substring(COL_GRIDSQUARE,1,6) as GRID_SQUARES, COL_BAND FROM '
|
||||
.$this->config->item('table_name')
|
||||
.' WHERE station_id in ('
|
||||
.$location_list.') AND COL_GRIDSQUARE != ""';
|
||||
|
||||
if ($band != 'All') {
|
||||
if ($band == 'SAT') {
|
||||
$sql .= " and col_prop_mode ='" . $band . "'";
|
||||
if ($sat != 'All') {
|
||||
$sql .= " and col_sat_name ='" . $sat . "'";
|
||||
}
|
||||
}
|
||||
else {
|
||||
$sql .= " and col_prop_mode !='SAT'";
|
||||
$sql .= " and col_band ='" . $band . "'";
|
||||
}
|
||||
}
|
||||
|
||||
if ($mode != 'All') {
|
||||
$sql .= " and (col_mode ='" . $mode . "' or col_submode ='" . $mode . "')";
|
||||
}
|
||||
|
||||
$sql .= $this->addQslToQuery($qsl, $lotw, $eqsl);
|
||||
|
||||
return $this->db->query($sql);
|
||||
}
|
||||
|
||||
function get_band($band, $mode, $qsl, $lotw, $eqsl, $sat) {
|
||||
$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;
|
||||
}
|
||||
|
||||
$location_list = "'".implode("','",$logbooks_locations_array)."'";
|
||||
|
||||
$sql = 'SELECT distinct substring(COL_GRIDSQUARE,1,6) as GRID_SQUARES, COL_BAND FROM '
|
||||
.$this->config->item('table_name')
|
||||
.' WHERE station_id in ('
|
||||
.$location_list.') AND COL_GRIDSQUARE != ""';
|
||||
|
||||
if ($band != 'All') {
|
||||
if ($band == 'SAT') {
|
||||
$sql .= " and col_prop_mode ='" . $band . "'";
|
||||
if ($sat != 'All') {
|
||||
$sql .= " and col_sat_name ='" . $sat . "'";
|
||||
}
|
||||
}
|
||||
else {
|
||||
$sql .= " and col_prop_mode !='SAT'";
|
||||
$sql .= " and col_band ='" . $band . "'";
|
||||
}
|
||||
}
|
||||
|
||||
if ($mode != 'All') {
|
||||
$sql .= " and (col_mode ='" . $mode . "' or col_submode ='" . $mode . "')";
|
||||
}
|
||||
|
||||
return $this->db->query($sql);
|
||||
}
|
||||
|
||||
function get_band_worked_vucc_squares($band, $mode, $qsl, $lotw, $eqsl, $sat) {
|
||||
$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;
|
||||
}
|
||||
|
||||
$location_list = "'".implode("','",$logbooks_locations_array)."'";
|
||||
|
||||
$sql = 'SELECT distinct COL_VUCC_GRIDS, COL_BAND FROM '
|
||||
.$this->config->item('table_name')
|
||||
.' WHERE station_id in ('
|
||||
.$location_list.') AND COL_VUCC_GRIDS != ""';
|
||||
|
||||
if ($band != 'All') {
|
||||
if ($band == 'SAT') {
|
||||
$sql .= " and col_prop_mode ='" . $band . "'";
|
||||
if ($sat != 'All') {
|
||||
$sql .= " and col_sat_name ='" . $sat . "'";
|
||||
}
|
||||
}
|
||||
else {
|
||||
$sql .= " and col_prop_mode !='SAT'";
|
||||
$sql .= " and col_band ='" . $band . "'";
|
||||
}
|
||||
}
|
||||
|
||||
if ($mode != 'All') {
|
||||
$sql .= " and (col_mode ='" . $mode . "' or col_submode ='" . $mode . "')";
|
||||
}
|
||||
|
||||
return $this->db->query($sql);
|
||||
}
|
||||
|
||||
function get_band_confirmed_vucc_squares($band, $mode, $qsl, $lotw, $eqsl, $sat) {
|
||||
$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;
|
||||
}
|
||||
|
||||
$location_list = "'".implode("','",$logbooks_locations_array)."'";
|
||||
|
||||
$sql = 'SELECT distinct COL_VUCC_GRIDS, COL_BAND FROM '
|
||||
.$this->config->item('table_name')
|
||||
.' WHERE station_id in ('
|
||||
.$location_list.') AND COL_VUCC_GRIDS != ""';
|
||||
|
||||
if ($band != 'All') {
|
||||
if ($band == 'SAT') {
|
||||
$sql .= " and col_prop_mode ='" . $band . "'";
|
||||
if ($sat != 'All') {
|
||||
$sql .= " and col_sat_name ='" . $sat . "'";
|
||||
}
|
||||
}
|
||||
else {
|
||||
$sql .= " and col_prop_mode !='SAT'";
|
||||
$sql .= " and col_band ='" . $band . "'";
|
||||
}
|
||||
}
|
||||
|
||||
if ($mode != 'All') {
|
||||
$sql .= " and (col_mode ='" . $mode . "' or col_submode ='" . $mode . "')";
|
||||
}
|
||||
|
||||
$sql .= $this->addQslToQuery($qsl, $lotw, $eqsl);
|
||||
|
||||
return $this->db->query($sql);
|
||||
}
|
||||
|
||||
// Adds confirmation to query
|
||||
function addQslToQuery($qsl, $lotw, $eqsl) {
|
||||
$sql = '';
|
||||
if ($lotw == "true" && $qsl == "false" && $eqsl == "false") {
|
||||
$sql .= " and col_lotw_qsl_rcvd = 'Y'";
|
||||
}
|
||||
|
||||
if ($qsl == "true" && $lotw == "false" && $eqsl == "false") {
|
||||
$sql .= " and col_qsl_rcvd = 'Y'";
|
||||
}
|
||||
|
||||
if ($eqsl == "true" && $lotw == "false" && $qsl == "false") {
|
||||
$sql .= " and col_eqsl_qsl_rcvd = 'Y'";
|
||||
}
|
||||
|
||||
if ($lotw == "true" && $qsl == "true" && $eqsl == "false") {
|
||||
$sql .= " and (col_lotw_qsl_rcvd = 'Y' or col_qsl_rcvd = 'Y')";
|
||||
}
|
||||
|
||||
if ($qsl == "true" && $lotw == "false" && $eqsl == "true") {
|
||||
$sql .= " and (col_qsl_rcvd = 'Y' or col_eqsl_qsl_rcvd = 'Y')";
|
||||
}
|
||||
|
||||
if ($eqsl == "true" && $lotw == "true" && $qsl == "false") {
|
||||
$sql .= " and (col_eqsl_qsl_rcvd = 'Y' or col_lotw_qsl_rcvd = 'Y')";
|
||||
}
|
||||
|
||||
if ($qsl == "true" && $lotw == "true" && $eqsl == "true") {
|
||||
$sql .= " and (col_qsl_rcvd = 'Y' or col_lotw_qsl_rcvd = 'Y' or col_eqsl_qsl_rcvd = 'Y')";
|
||||
}
|
||||
|
||||
if ($qsl == "false" && $lotw == "false" && $eqsl == "false") {
|
||||
$sql .= " and (col_qsl_rcvd != 'Y' and col_lotw_qsl_rcvd != 'Y' and col_eqsl_qsl_rcvd != 'Y')";
|
||||
}
|
||||
return $sql;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get's the worked modes from the log
|
||||
*/
|
||||
function get_worked_modes() {
|
||||
$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;
|
||||
}
|
||||
|
||||
$location_list = "'".implode("','",$logbooks_locations_array)."'";
|
||||
|
||||
// get all worked modes from database
|
||||
$data = $this->db->query(
|
||||
"SELECT distinct LOWER(`COL_MODE`) as `COL_MODE` FROM `" . $this->config->item('table_name') . "` WHERE station_id in (" . $location_list . ") order by COL_MODE ASC"
|
||||
);
|
||||
$results = array();
|
||||
foreach ($data->result() as $row) {
|
||||
array_push($results, $row->COL_MODE);
|
||||
}
|
||||
|
||||
$data = $this->db->query(
|
||||
"SELECT distinct LOWER(`COL_SUBMODE`) as `COL_SUBMODE` FROM `" . $this->config->item('table_name') . "` WHERE station_id in (" . $location_list . ") and coalesce(COL_SUBMODE, '') <> '' order by COL_SUBMODE ASC"
|
||||
);
|
||||
foreach ($data->result() as $row) {
|
||||
if (!in_array($row, $results)) {
|
||||
array_push($results, $row->COL_SUBMODE);
|
||||
}
|
||||
}
|
||||
|
||||
asort($results);
|
||||
|
||||
return $results;
|
||||
}
|
||||
}
|
||||
142
application/models/Labels_model.php
Normal file
142
application/models/Labels_model.php
Normal file
|
|
@ -0,0 +1,142 @@
|
|||
<?php
|
||||
|
||||
class Labels_model extends CI_Model {
|
||||
function addLabel() {
|
||||
$data = array(
|
||||
'user_id' => $this->session->userdata('user_id'),
|
||||
'label_name' => xss_clean($this->input->post('label_name', true)),
|
||||
'paper_type' => xss_clean($this->input->post('paper_type', true)),
|
||||
'metric' => xss_clean($this->input->post('measurementType', true)),
|
||||
'marginleft' => xss_clean($this->input->post('marginLeft', true)),
|
||||
'margintop' => xss_clean($this->input->post('marginTop', true)),
|
||||
'nx' => xss_clean($this->input->post('NX', true)),
|
||||
'ny' => xss_clean($this->input->post('NY', true)),
|
||||
'spacex' => xss_clean($this->input->post('SpaceX', true)),
|
||||
'spacey' => xss_clean($this->input->post('SpaceY', true)),
|
||||
'width' => xss_clean($this->input->post('width', true)),
|
||||
'height' => xss_clean($this->input->post('height', true)),
|
||||
'font_size' => xss_clean($this->input->post('font_size', true)),
|
||||
'qsos' => xss_clean($this->input->post('label_qsos', true)),
|
||||
'font' => xss_clean($this->input->post('font', true)),
|
||||
'last_modified' => date('Y-m-d H:i:s'),
|
||||
);
|
||||
|
||||
$this->db->insert('label_types', $data);
|
||||
|
||||
}
|
||||
|
||||
function getLabel($id) {
|
||||
$this->db->where('user_id', $this->session->userdata('user_id'));
|
||||
$this->db->where('id', $id);
|
||||
$query = $this->db->get('label_types');
|
||||
|
||||
return $query->row();
|
||||
}
|
||||
|
||||
function updateLabel($id) {
|
||||
$data = array(
|
||||
'user_id' => $this->session->userdata('user_id'),
|
||||
'label_name' => xss_clean($this->input->post('label_name', true)),
|
||||
'paper_type' => xss_clean($this->input->post('paper_type', true)),
|
||||
'metric' => xss_clean($this->input->post('measurementType', true)),
|
||||
'marginleft' => xss_clean($this->input->post('marginLeft', true)),
|
||||
'margintop' => xss_clean($this->input->post('marginTop', true)),
|
||||
'nx' => xss_clean($this->input->post('NX', true)),
|
||||
'ny' => xss_clean($this->input->post('NY', true)),
|
||||
'spacex' => xss_clean($this->input->post('SpaceX', true)),
|
||||
'spacey' => xss_clean($this->input->post('SpaceY', true)),
|
||||
'width' => xss_clean($this->input->post('width', true)),
|
||||
'height' => xss_clean($this->input->post('height', true)),
|
||||
'font_size' => xss_clean($this->input->post('font_size', true)),
|
||||
'qsos' => xss_clean($this->input->post('label_qsos', true)),
|
||||
'font' => xss_clean($this->input->post('font', true)),
|
||||
'last_modified' => date('Y-m-d H:i:s'),
|
||||
);
|
||||
|
||||
$cleanid = $this->security->xss_clean($id);
|
||||
|
||||
$this->db->where('user_id', $this->session->userdata('user_id'));
|
||||
$this->db->where('id', $cleanid);
|
||||
$this->db->update('label_types', $data);
|
||||
}
|
||||
|
||||
function deleteLabel($id) {
|
||||
$cleanid = xss_clean($id);
|
||||
|
||||
$this->db->delete('label_types', array('id' => $cleanid, 'user_id' => $this->session->userdata('user_id')));
|
||||
}
|
||||
|
||||
function fetchLabels($user_id) {
|
||||
$this->db->where('user_id', $user_id);
|
||||
$query = $this->db->get('label_types');
|
||||
|
||||
return $query->result();
|
||||
}
|
||||
|
||||
function fetchQsos($user_id) {
|
||||
|
||||
$qsl = "select count(*) count, station_profile.station_profile_name, station_profile.station_callsign, station_profile.station_id, station_profile.station_gridsquare
|
||||
from ". $this->config->item('table_name') . " as l
|
||||
join station_profile on l.station_id = station_profile.station_id
|
||||
where l.COL_QSL_SENT in ('R', 'Q')
|
||||
and station_profile.user_id = " . $user_id .
|
||||
" group by station_profile.station_profile_name, station_profile.station_callsign, station_profile.station_id, station_profile.station_gridsquare
|
||||
order by station_profile.station_callsign";
|
||||
|
||||
$query = $this->db->query($qsl);
|
||||
|
||||
return $query->result();
|
||||
}
|
||||
|
||||
function getDefaultLabel() {
|
||||
$this->db->where('user_id', $this->session->userdata('user_id'));
|
||||
$this->db->where('useforprint', '1');
|
||||
$query = $this->db->get('label_types');
|
||||
|
||||
return $query->row();
|
||||
}
|
||||
|
||||
function saveDefaultLabel($id) {
|
||||
$sql = 'update label_types set useforprint = 0 where user_id = ' . $this->session->userdata('user_id');
|
||||
$this->db->query($sql);
|
||||
|
||||
$cleanid = xss_clean($id);
|
||||
$sql = 'update label_types set useforprint = 1 where user_id = ' . $this->session->userdata('user_id') . ' and id = ' . $cleanid;
|
||||
$this->db->query($sql);
|
||||
}
|
||||
|
||||
function export_printrequested($station_id = NULL) {
|
||||
$this->load->model('stations');
|
||||
$active_station_id = $this->stations->find_active();
|
||||
|
||||
$this->db->select($this->config->item('table_name').'.*, station_profile.*, dxcc_entities.name as station_country');
|
||||
|
||||
if ($station_id == NULL) {
|
||||
$this->db->where($this->config->item('table_name').'.station_id', $active_station_id);
|
||||
} else if ($station_id != 'All') {
|
||||
$this->db->where($this->config->item('table_name').'.station_id', $station_id);
|
||||
}
|
||||
|
||||
$this->db->join('station_profile', 'station_profile.station_id = '.$this->config->item('table_name').'.station_id');
|
||||
$this->db->join('dxcc_entities', 'station_profile.station_dxcc = dxcc_entities.adif');
|
||||
// always filter user. this ensures that even if the station_id is from another user no inaccesible QSOs will be returned
|
||||
$this->db->where('station_profile.user_id', $this->session->userdata('user_id'));
|
||||
$this->db->where_in('COL_QSL_SENT', array('R', 'Q'));
|
||||
$this->db->order_by("COL_DXCC", "ASC");
|
||||
$query = $this->db->get($this->config->item('table_name'));
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
function export_printrequestedids($ids) {
|
||||
$this->db->select($this->config->item('table_name').'.*, station_profile.*, dxcc_entities.name as station_country');
|
||||
$this->db->join('station_profile', 'station_profile.station_id = '.$this->config->item('table_name').'.station_id');
|
||||
$this->db->join('dxcc_entities', 'station_profile.station_dxcc = dxcc_entities.adif');
|
||||
$this->db->where('station_profile.user_id', $this->session->userdata('user_id'));
|
||||
$this->db->where_in('COL_PRIMARY_KEY', $ids);
|
||||
$this->db->order_by("COL_DXCC", "ASC");
|
||||
$query = $this->db->get($this->config->item('table_name'));
|
||||
|
||||
return $query;
|
||||
}
|
||||
}
|
||||
|
|
@ -199,7 +199,7 @@ class Logbook_model extends CI_Model {
|
|||
'COL_QTH' => $this->input->post('qth'),
|
||||
'COL_PROP_MODE' => $prop_mode,
|
||||
'COL_IOTA' => $this->input->post('iota_ref') == null ? '' : trim($this->input->post('iota_ref')),
|
||||
'COL_DISTANCE' => "0",
|
||||
'COL_DISTANCE' => $this->input->post('distance'),
|
||||
'COL_FREQ_RX' => $this->parse_frequency($this->input->post('freq_display_rx')),
|
||||
'COL_ANT_AZ' => null,
|
||||
'COL_ANT_EL' => null,
|
||||
|
|
@ -314,6 +314,7 @@ class Logbook_model extends CI_Model {
|
|||
|
||||
$this->db->join('station_profile', 'station_profile.station_id = '.$this->config->item('table_name').'.station_id');
|
||||
$this->db->join('dxcc_entities', 'dxcc_entities.adif = '.$this->config->item('table_name').'.COL_DXCC', 'left outer');
|
||||
$this->db->join('lotw_users', 'lotw_users.callsign = '.$this->config->item('table_name').'.col_call', 'left outer');
|
||||
switch ($type) {
|
||||
case 'DXCC':
|
||||
$this->db->where('COL_COUNTRY', $searchphrase);
|
||||
|
|
@ -390,9 +391,10 @@ class Logbook_model extends CI_Model {
|
|||
$sql = 'SELECT COL_FREQ, COL_SOTA_REF, COL_OPERATOR, COL_IOTA, COL_VUCC_GRIDS, COL_STATE, COL_GRIDSQUARE, COL_PRIMARY_KEY, COL_CALL, COL_TIME_ON, COL_BAND, COL_SAT_NAME, COL_MODE, COL_SUBMODE, COL_RST_SENT, ';
|
||||
$sql .= 'COL_RST_RCVD, COL_STX, COL_SRX, COL_STX_STRING, COL_SRX_STRING, COL_COUNTRY, COL_QSL_SENT, COL_QSL_SENT_VIA, ';
|
||||
$sql .= 'COL_QSLSDATE, COL_QSL_RCVD, COL_QSL_RCVD_VIA, COL_QSLRDATE, COL_EQSL_QSL_SENT, COL_EQSL_QSLSDATE, COL_EQSL_QSLRDATE, ';
|
||||
$sql .= 'COL_EQSL_QSL_RCVD, COL_LOTW_QSL_SENT, COL_LOTW_QSLSDATE, COL_LOTW_QSL_RCVD, COL_LOTW_QSLRDATE, COL_CONTEST_ID, station_gridsquare, dxcc_entities.name as name, dxcc_entities.end as end ';
|
||||
$sql .= 'COL_EQSL_QSL_RCVD, COL_LOTW_QSL_SENT, COL_LOTW_QSLSDATE, COL_LOTW_QSL_RCVD, COL_LOTW_QSLRDATE, COL_CONTEST_ID, station_gridsquare, dxcc_entities.name as name, dxcc_entities.end as end, callsign, lastupload ';
|
||||
$sql .= 'FROM '.$this->config->item('table_name').' JOIN `station_profile` ON station_profile.station_id = '.$this->config->item('table_name').'.station_id ';
|
||||
$sql .= 'LEFT OUTER JOIN `dxcc_entities` ON dxcc_entities.adif = '.$this->config->item('table_name').'.COL_DXCC ';
|
||||
$sql .= 'LEFT OUTER JOIN `lotw_users` ON lotw_users.callsign = '.$this->config->item('table_name').'.COL_CALL ';
|
||||
$sql .= 'WHERE '.$this->config->item('table_name').'.station_id IN (SELECT station_id from station_profile ';
|
||||
$sql .= 'WHERE station_gridsquare LIKE "%'.$searchphrase.'%") ';
|
||||
|
||||
|
|
@ -890,6 +892,7 @@ class Logbook_model extends CI_Model {
|
|||
'COL_RST_SENT' => $this->input->post('rst_sent'),
|
||||
'COL_GRIDSQUARE' => strtoupper(trim($this->input->post('locator'))),
|
||||
'COL_VUCC_GRIDS' => strtoupper(trim($this->input->post('vucc_grids'))),
|
||||
'COL_DISTANCE' => $this->input->post('distance'),
|
||||
'COL_COMMENT' => $this->input->post('comment'),
|
||||
'COL_NAME' => $this->input->post('name'),
|
||||
'COL_COUNTRY' => $country,
|
||||
|
|
@ -1279,11 +1282,12 @@ class Logbook_model extends CI_Model {
|
|||
return array();
|
||||
}
|
||||
|
||||
$this->db->select($this->config->item('table_name').'.*, station_profile.*, dxcc_entities.*');
|
||||
$this->db->select($this->config->item('table_name').'.*, station_profile.*, dxcc_entities.*, lotw_users.callsign, lotw_users.lastupload');
|
||||
$this->db->from($this->config->item('table_name'));
|
||||
|
||||
$this->db->join('station_profile', 'station_profile.station_id = '.$this->config->item('table_name').'.station_id');
|
||||
$this->db->join('dxcc_entities', $this->config->item('table_name').'.col_dxcc = dxcc_entities.adif', 'left');
|
||||
$this->db->join('lotw_users', 'lotw_users.callsign = '.$this->config->item('table_name').'.col_call', 'left outer');
|
||||
$this->db->where_in('station_profile.station_id', $logbooks_locations_array);
|
||||
$this->db->order_by(''.$this->config->item('table_name').'.COL_TIME_ON', "desc");
|
||||
$this->db->order_by(''.$this->config->item('table_name').'.COL_PRIMARY_KEY', "desc");
|
||||
|
|
@ -2484,7 +2488,7 @@ class Logbook_model extends CI_Model {
|
|||
}
|
||||
}
|
||||
|
||||
function lotw_update($datetime, $callsign, $band, $qsl_date, $qsl_status, $state, $qsl_gridsquare, $iota, $cnty) {
|
||||
function lotw_update($datetime, $callsign, $band, $qsl_date, $qsl_status, $state, $qsl_gridsquare, $iota, $cnty, $cqz, $ituz) {
|
||||
|
||||
$data = array(
|
||||
'COL_LOTW_QSLRDATE' => $qsl_date,
|
||||
|
|
@ -2502,6 +2506,14 @@ class Logbook_model extends CI_Model {
|
|||
$data['COL_CNTY'] = $cnty;
|
||||
}
|
||||
|
||||
if($cqz != "") {
|
||||
$data['COL_CQZ'] = $cqz;
|
||||
}
|
||||
|
||||
if($ituz != "") {
|
||||
$data['COL_ITUZ'] = $ituz;
|
||||
}
|
||||
|
||||
$this->db->where('date_format(COL_TIME_ON, \'%Y-%m-%d %H:%i\') = "'.$datetime.'"');
|
||||
$this->db->where('COL_CALL', $callsign);
|
||||
$this->db->where('COL_BAND', $band);
|
||||
|
|
@ -2511,8 +2523,24 @@ class Logbook_model extends CI_Model {
|
|||
|
||||
if($qsl_gridsquare != "") {
|
||||
$data = array(
|
||||
'COL_GRIDSQUARE' => $qsl_gridsquare
|
||||
'COL_GRIDSQUARE' => $qsl_gridsquare,
|
||||
'COL_DISTANCE' => 0
|
||||
);
|
||||
$this->db->select('station_profile.station_gridsquare as station_gridsquare');
|
||||
$this->db->where('date_format(COL_TIME_ON, \'%Y-%m-%d %H:%i\') = "'.$datetime.'"');
|
||||
$this->db->where('COL_CALL', $callsign);
|
||||
$this->db->where('COL_BAND', $band);
|
||||
$this->db->join('station_profile', $this->config->item('table_name').'.station_id = station_profile.station_id', 'left outer');
|
||||
$this->db->limit(1);
|
||||
$query = $this->db->get($this->config->item('table_name'));
|
||||
$row = $query->row();
|
||||
if (isset($row)) {
|
||||
$station_gridsquare = $row->station_gridsquare;
|
||||
$this->load->library('Qra');
|
||||
|
||||
$data['COL_DISTANCE'] = $this->qra->distance($station_gridsquare, $qsl_gridsquare, 'K');
|
||||
}
|
||||
|
||||
$this->db->where('date_format(COL_TIME_ON, \'%Y-%m-%d %H:%i\') = "'.$datetime.'"');
|
||||
$this->db->where('COL_CALL', $callsign);
|
||||
$this->db->where('COL_BAND', $band);
|
||||
|
|
@ -3593,6 +3621,36 @@ class Logbook_model extends CI_Model {
|
|||
print("$count updated\n");
|
||||
}
|
||||
|
||||
public function update_distances(){
|
||||
$this->db->select("COL_PRIMARY_KEY, COL_GRIDSQUARE, station_gridsquare");
|
||||
$this->db->join('station_profile', 'station_profile.station_id = '.$this->config->item('table_name').'.station_id');
|
||||
$this->db->where("COL_DISTANCE is NULL");
|
||||
$this->db->where("COL_GRIDSQUARE is NOT NULL");
|
||||
$this->db->where("COL_GRIDSQUARE != ''");
|
||||
$this->db->trans_start();
|
||||
$query = $this->db->get($this->config->item('table_name'));
|
||||
|
||||
$count = 0;
|
||||
if ($query->num_rows() > 0){
|
||||
print("Affected QSOs: ".$this->db->affected_rows()." <br />");
|
||||
$this->load->library('Qra');
|
||||
foreach ($query->result() as $row) {
|
||||
$distance = $this->qra->distance($row->station_gridsquare, $row->COL_GRIDSQUARE, 'K');
|
||||
$data = array(
|
||||
'COL_DISTANCE' => $distance,
|
||||
);
|
||||
|
||||
$this->db->where(array('COL_PRIMARY_KEY' => $row->COL_PRIMARY_KEY));
|
||||
$this->db->update($this->config->item('table_name'), $data);
|
||||
$count++;
|
||||
}
|
||||
print("QSOs updated: ".$count);
|
||||
} else {
|
||||
print "No QSOs affected.";
|
||||
}
|
||||
$this->db->trans_complete();
|
||||
}
|
||||
|
||||
public function check_for_station_id() {
|
||||
$this->db->where('station_id =', NULL);
|
||||
$query = $this->db->get($this->config->item('table_name'));
|
||||
|
|
|
|||
|
|
@ -132,10 +132,12 @@ class Logbookadvanced_model extends CI_Model {
|
|||
$order = $this->getSortorder($sortorder);
|
||||
|
||||
$sql = "
|
||||
SELECT *, dxcc_entities.name AS station_country
|
||||
SELECT qsos.*, d2.*, lotw_users.*, station_profile.*, dxcc_entities.name AS station_country
|
||||
FROM " . $this->config->item('table_name') . " qsos
|
||||
INNER JOIN station_profile ON qsos.station_id = station_profile.station_id
|
||||
LEFT OUTER JOIN dxcc_entities ON qsos.COL_MY_DXCC = dxcc_entities.adif
|
||||
LEFT OUTER JOIN dxcc_entities d2 ON qsos.COL_DXCC = d2.adif
|
||||
LEFT OUTER JOIN lotw_users ON qsos.col_call=lotw_users.callsign
|
||||
WHERE station_profile.user_id = ?
|
||||
$where
|
||||
$order
|
||||
|
|
@ -215,6 +217,24 @@ class Logbookadvanced_model extends CI_Model {
|
|||
}
|
||||
}
|
||||
|
||||
public function updateQslReceived($ids, $user_id, $method, $sent) {
|
||||
$this->load->model('user_model');
|
||||
|
||||
if(!$this->user_model->authorize(2)) {
|
||||
return array('message' => 'Error');
|
||||
} else {
|
||||
$data = array(
|
||||
'COL_QSLRDATE' => date('Y-m-d H:i:s'),
|
||||
'COL_QSL_RCVD' => $sent,
|
||||
'COL_QSL_RCVD_VIA' => $method
|
||||
);
|
||||
$this->db->where_in('COL_PRIMARY_KEY', json_decode($ids, true));
|
||||
$this->db->update($this->config->item('table_name'), $data);
|
||||
|
||||
return array('message' => 'OK');
|
||||
}
|
||||
}
|
||||
|
||||
public function updateQsoWithCallbookInfo($qsoID, $qso, $callbook) {
|
||||
$updatedData = array();
|
||||
if (!empty($callbook['name']) && empty($qso['COL_NAME'])) {
|
||||
|
|
|
|||
|
|
@ -144,8 +144,8 @@ class Oqrs_model extends CI_Model {
|
|||
|
||||
if ($qsoid > 0) {
|
||||
$data['status'] = '2';
|
||||
$data['qsoid'] = $qsoid;
|
||||
}
|
||||
$data['qsoid'] = $qsoid;
|
||||
|
||||
$this->db->insert('oqrs', $data);
|
||||
if(!in_array(xss_clean($postdata['station_id']), $station_ids)){
|
||||
|
|
@ -177,8 +177,8 @@ class Oqrs_model extends CI_Model {
|
|||
|
||||
if ($qsoid > 0) {
|
||||
$data['status'] = '2';
|
||||
$data['qsoid'] = $qsoid;
|
||||
}
|
||||
$data['qsoid'] = $qsoid;
|
||||
|
||||
$this->db->insert('oqrs', $data);
|
||||
|
||||
|
|
|
|||
|
|
@ -61,6 +61,13 @@ class Stations extends CI_Model {
|
|||
$station_active = 1;
|
||||
}
|
||||
|
||||
// Check if the state is Canada and get the correct state
|
||||
if ($this->input->post('dxcc') == 1 && $this->input->post('station_ca_state') !="") {
|
||||
$state = $this->input->post('station_ca_state');
|
||||
} else {
|
||||
$state = $this->input->post('station_state');
|
||||
}
|
||||
|
||||
// Create data array with field values
|
||||
$data = array(
|
||||
'user_id' => $this->session->userdata('user_id'),
|
||||
|
|
@ -80,7 +87,7 @@ class Stations extends CI_Model {
|
|||
'station_cnty' => xss_clean($this->input->post('station_cnty', true)),
|
||||
'station_cq' => xss_clean($this->input->post('station_cq', true)),
|
||||
'station_itu' => xss_clean($this->input->post('station_itu', true)),
|
||||
'state' => xss_clean($this->input->post('station_state', true)),
|
||||
'state' => $state,
|
||||
'eqslqthnickname' => xss_clean($this->input->post('eqslnickname', true)),
|
||||
'qrzapikey' => xss_clean($this->input->post('qrzapikey', true)),
|
||||
'qrzrealtime' => xss_clean($this->input->post('qrzrealtime', true)),
|
||||
|
|
@ -97,6 +104,14 @@ class Stations extends CI_Model {
|
|||
}
|
||||
|
||||
function edit() {
|
||||
|
||||
// Check if the state is Canada and get the correct state
|
||||
if ($this->input->post('dxcc') == 1 && $this->input->post('station_ca_state') !="") {
|
||||
$state = $this->input->post('station_ca_state');
|
||||
} else {
|
||||
$state = $this->input->post('station_state');
|
||||
}
|
||||
|
||||
$data = array(
|
||||
'station_profile_name' => xss_clean($this->input->post('station_profile_name', true)),
|
||||
'station_gridsquare' => xss_clean($this->input->post('gridsquare', true)),
|
||||
|
|
@ -113,7 +128,7 @@ class Stations extends CI_Model {
|
|||
'station_cnty' => xss_clean($this->input->post('station_cnty', true)),
|
||||
'station_cq' => xss_clean($this->input->post('station_cq', true)),
|
||||
'station_itu' => xss_clean($this->input->post('station_itu', true)),
|
||||
'state' => xss_clean($this->input->post('station_state', true)),
|
||||
'state' => $state,
|
||||
'eqslqthnickname' => xss_clean($this->input->post('eqslnickname', true)),
|
||||
'qrzapikey' => xss_clean($this->input->post('qrzapikey', true)),
|
||||
'qrzrealtime' => xss_clean($this->input->post('qrzrealtime', true)),
|
||||
|
|
@ -423,6 +438,17 @@ class Stations extends CI_Model {
|
|||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public function check_station_against_user($stationid, $userid) {
|
||||
$this->db->select('station_id');
|
||||
$this->db->where('user_id', $userid);
|
||||
$this->db->where('station_id', $stationid);
|
||||
$query = $this->db->get('station_profile');
|
||||
if ($query->num_rows() == 1) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -218,6 +218,7 @@ class Timeline_model extends CI_Model
|
|||
|
||||
$this->db->join('station_profile', 'station_profile.station_id = '.$this->config->item('table_name').'.station_id');
|
||||
$this->db->join('dxcc_entities', 'dxcc_entities.adif = '.$this->config->item('table_name').'.COL_DXCC');
|
||||
$this->db->join('lotw_users', 'lotw_users.callsign = '.$this->config->item('table_name').'.col_call', 'left outer');
|
||||
|
||||
if ($band != 'All') {
|
||||
if ($band == 'SAT') {
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ function echo_table_header_col($ctx, $name) {
|
|||
case 'POTA': echo '<th>'.$ctx->lang->line('gen_hamradio_pota').'</th>'; break;
|
||||
case 'State': echo '<th>'.$ctx->lang->line('gen_hamradio_state').'</th>'; break;
|
||||
case 'Grid': echo '<th>'.$ctx->lang->line('gen_hamradio_gridsquare').'</th>'; break;
|
||||
case 'Distance': echo '<th>'.$ctx->lang->line('gen_hamradio_distance').'</th>'; break;
|
||||
case 'Band': echo '<th>'.$ctx->lang->line('gen_hamradio_band').'</th>'; break;
|
||||
case 'Frequency': echo '<th>'.$ctx->lang->line('gen_hamradio_frequency').'</th>'; break;
|
||||
case 'Operator': echo '<th>'.$ctx->lang->line('gen_hamradio_operator').'</th>'; break;
|
||||
|
|
@ -29,6 +30,7 @@ function echo_table_col($row, $name) {
|
|||
case 'WWFF': echo '<td>' . ($row->COL_WWFF_REF) . '</td>'; break;
|
||||
case 'POTA': echo '<td>' . ($row->COL_POTA_REF) . '</td>'; break;
|
||||
case 'Grid': echo '<td>'; echoQrbCalcLink($row->station_gridsquare, $row->COL_VUCC_GRIDS, $row->COL_GRIDSQUARE); echo '</td>'; break;
|
||||
case 'Distance': echo '<td>' . ($row->COL_DISTANCE ? $row->COL_DISTANCE . ' km' : '') . '</td>'; break;
|
||||
case 'Band': echo '<td>'; if($row->COL_SAT_NAME != null) { echo '<a href="https://db.satnogs.org/search/?q='.$row->COL_SAT_NAME.'" target="_blank">'.$row->COL_SAT_NAME.'</a></td>'; } else { echo strtolower($row->COL_BAND); } echo '</td>'; break;
|
||||
case 'Frequency': echo '<td>'; if($row->COL_SAT_NAME != null) { echo '<a href="https://db.satnogs.org/search/?q='.$row->COL_SAT_NAME.'" target="_blank">'.$row->COL_SAT_NAME.'</a></td>'; } else { if($row->COL_FREQ != null) { echo $ci->frequency->hz_to_mhz($row->COL_FREQ); } else { echo strtolower($row->COL_BAND); } } echo '</td>'; break;
|
||||
case 'State': echo '<td>' . ($row->COL_STATE) . '</td>'; break;
|
||||
|
|
|
|||
107
application/views/gridmap/index.php
Normal file
107
application/views/gridmap/index.php
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
|
||||
|
||||
<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: #777;
|
||||
}
|
||||
.legend span {
|
||||
position: relative;
|
||||
bottom: 3px;
|
||||
}
|
||||
.legend i {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
float: left;
|
||||
margin: 0 8px 0 0;
|
||||
opacity: 0.7;
|
||||
}
|
||||
</style>
|
||||
<div class="container">
|
||||
|
||||
<br>
|
||||
|
||||
<h2><?php echo $page_title; ?></h2>
|
||||
|
||||
<form class="form-inline">
|
||||
<label class="my-1 mr-2" for="band"><?php echo lang('gridsquares_band'); ?></label>
|
||||
<select class="custom-select my-1 mr-sm-2" id="band">
|
||||
<option value="All">All</option>
|
||||
<?php foreach($bands as $band) {
|
||||
echo '<option value="' . $band . '"' . '>' . $band . '</option>'."\n";
|
||||
} ?>
|
||||
</select>
|
||||
<?php if (count($sats_available) != 0) { ?>
|
||||
<label class="my-1 mr-2" for="distplot_sats"><?php echo lang('gridsquares_sat'); ?></label>
|
||||
<select class="custom-select my-1 mr-sm-2" id="sats" disabled>
|
||||
<option value="All">All</option>
|
||||
<?php foreach($sats_available as $sat) {
|
||||
echo '<option value="' . $sat . '"' . '>' . $sat . '</option>'."\n";
|
||||
} ?>
|
||||
</select>
|
||||
<?php } else { ?>
|
||||
<input id="sats" type="hidden" value="All"></input>
|
||||
<?php } ?>
|
||||
<label class="my-1 mr-2" for="mode"><?php echo lang('gridsquares_mode'); ?></label>
|
||||
<select class="custom-select my-1 mr-sm-2" id="mode">
|
||||
<option value="All">All</option>
|
||||
<?php
|
||||
foreach($modes as $mode){
|
||||
if ($mode->submode == null) {
|
||||
echo '<option value="' . $mode . '">' . strtoupper($mode) . '</option>'."\n";
|
||||
}
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<label class="my-1 mr-2"><?php echo lang('gridsquares_confirmation'); ?></label>
|
||||
<div>
|
||||
<div class="form-check-inline">
|
||||
<input class="form-check-input" type="checkbox" name="qsl" id="qsl" checked>
|
||||
<label class="form-check-label" for="qsl">QSL</label>
|
||||
</div>
|
||||
<div class="form-check-inline">
|
||||
<input class="form-check-input" type="checkbox" name="lotw" id="lotw" checked>
|
||||
<label class="form-check-label" for="lotw">LoTW</label>
|
||||
</div>
|
||||
<div class="form-check-inline">
|
||||
<input class="form-check-input" type="checkbox" name="eqsl" id="eqsl">
|
||||
<label class="form-check-label" for="eqsl">eQSL</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button id="plot" type="button" name="plot" class="btn btn-primary ld-ext-right" onclick="gridPlot(this.form)"><?php echo lang('gridsquares_button_plot'); ?><div class="ld ld-ring ld-spin"></div></button>
|
||||
</form>
|
||||
|
||||
<?php if($this->session->flashdata('message')) { ?>
|
||||
<!-- Display Message -->
|
||||
<div class="alert-message error">
|
||||
<p><?php echo $this->session->flashdata('message'); ?></p>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<div id="gridmapcontainer">
|
||||
<div id="gridsquare_map" style="width: 100%; height: 800px"></div>
|
||||
</div>
|
||||
<script>var gridsquaremap = true;
|
||||
<?php
|
||||
echo 'var jslayer ="' . $layer .'";';
|
||||
echo "var jsattribution ='" . $attribution . "';";
|
||||
|
||||
echo 'var gridsquares_gridsquares = "' . $gridsquares_gridsquares . '";';
|
||||
echo 'var gridsquares_gridsquares_confirmed = "' . $gridsquares_gridsquares_confirmed . '";';
|
||||
echo 'var gridsquares_gridsquares_not_confirmed = "' . $gridsquares_gridsquares_not_confirmed . '";';
|
||||
echo 'var gridsquares_gridsquares_total_worked = "' . $gridsquares_gridsquares_total_worked . '";';
|
||||
?>
|
||||
</script>
|
||||
|
|
@ -349,6 +349,7 @@ $(function () {
|
|||
if (isDarkModeTheme()) {
|
||||
$(".buttons-csv").css("color", "white");
|
||||
}
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
$(".runbutton").removeClass('running');
|
||||
$(".runbutton").prop('disabled', false);
|
||||
});
|
||||
|
|
@ -1388,7 +1389,7 @@ $(document).ready(function(){
|
|||
<?php } ?>
|
||||
|
||||
<?php if ($this->uri->segment(1) == "gridsquares" && !empty($this->uri->segment(2))) { ?>
|
||||
|
||||
<script>var gridsquaremap = true;</script>
|
||||
<script type="text/javascript" src="<?php echo base_url();?>assets/js/leaflet/L.MaidenheadColoured.js"></script>
|
||||
|
||||
<script>
|
||||
|
|
@ -1460,14 +1461,20 @@ $(document).ready(function(){
|
|||
|
||||
if(map.getZoom() > 2) {
|
||||
<?php if ($this->session->userdata('user_callsign')) { ?>
|
||||
var band = '';
|
||||
spawnGridsquareModal(loc_4char);
|
||||
<?php } ?>
|
||||
}
|
||||
};
|
||||
|
||||
function spawnGridsquareModal(loc_4char) {
|
||||
var band = '';
|
||||
var search_type = "<?php echo $this->uri->segment(2); ?>";
|
||||
if(search_type == "satellites") {
|
||||
band = 'SAT';
|
||||
} else {
|
||||
band = "<?php echo $this->uri->segment(3); ?>";
|
||||
}
|
||||
$(".modal-body").empty();
|
||||
$(".modal-body").empty();
|
||||
$.ajax({
|
||||
url: base_url + 'index.php/awards/qso_details_ajax',
|
||||
type: 'post',
|
||||
|
|
@ -1497,9 +1504,7 @@ $(document).ready(function(){
|
|||
}
|
||||
}
|
||||
});
|
||||
<?php } ?>
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
<?php if ($this->uri->segment(1) == "gridsquares" && $this->uri->segment(2) == "band") { ?>
|
||||
|
||||
|
|
@ -2755,6 +2760,8 @@ function viewEqsl(picture, callsign) {
|
|||
"scrollCollapse": true,
|
||||
"paging": false,
|
||||
"scrollX": true,
|
||||
"ordering": true,
|
||||
"order": [ 2, 'desc' ],
|
||||
});
|
||||
</script>
|
||||
<?php } ?>
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@
|
|||
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||
<a class="dropdown-item" href="<?php echo site_url('statistics');?>" title="Statistics"><i class="fas fa-chart-area"></i> <?php echo lang('menu_statistics'); ?></a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="<?php echo site_url('gridsquares');?>" title="Gridsquares"><i class="fas fa-globe-europe"></i> <?php echo lang('menu_gridsquares'); ?></a>
|
||||
<a class="dropdown-item" href="<?php echo site_url('gridmap');?>" title="Gridmap"><i class="fas fa-globe-europe"></i> <?php echo lang('menu_gridmap'); ?></a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="<?php echo site_url('activated_grids');?>" title="Activated Gridsquares"><i class="fas fa-globe-europe"></i> <?php echo lang('menu_activated_gridsquares'); ?></a>
|
||||
<div class="dropdown-divider"></div>
|
||||
|
|
@ -252,6 +252,8 @@ $oqrs_requests = $CI->oqrs_model->oqrs_requests($location_list);
|
|||
|
||||
<a class="dropdown-item" href="<?php echo site_url('qslprint');?>" title="Print Requested QSLs"><i class="fas fa-print"></i> <?php echo lang('menu_print_requested_qsls'); ?></a>
|
||||
|
||||
<a class="dropdown-item" href="<?php echo site_url('labels');?>" title="Label setup"><i class="fas fa-print"></i> <?php echo lang('menu_labels'); ?></a>
|
||||
|
||||
<div class="dropdown-divider"></div>
|
||||
|
||||
<a class="dropdown-item" href="<?php echo site_url('lotw');?>" title="Synchronise with Logbook of the World (LoTW)"><i class="fas fa-sync"></i> <?php echo lang('menu_logbook_of_the_world'); ?></a>
|
||||
|
|
@ -279,7 +281,42 @@ $oqrs_requests = $CI->oqrs_model->oqrs_requests($location_list);
|
|||
<a class="dropdown-item" href="<?php echo site_url('user/logout');?>" title="Logout"><i class="fas fa-sign-out-alt"></i> <?php echo lang('menu_logout'); ?></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<?php
|
||||
// Can add extra menu items by defining them in options. The format is json.
|
||||
// Useful to add extra things in Cloudlog without the need for modifying files. If you add extras, these files will not be overwritten when updating.
|
||||
//
|
||||
// The menu items will be displayed to the top right under extras.
|
||||
//
|
||||
// Example:
|
||||
// INSERT INTO options (option_name,option_value,autoload) VALUES
|
||||
// ('menuitems','[
|
||||
// {
|
||||
// "url":"gridmap",
|
||||
// "text":"Gridmap",
|
||||
// "icon":"fa-globe-europe"
|
||||
// },
|
||||
// {
|
||||
// "url":"gallery",
|
||||
// "text":"Gallery",
|
||||
// "icon":"fa-globe-europe"
|
||||
// }
|
||||
// ]','yes');
|
||||
|
||||
if ($this->optionslib->get_option('menuitems')) { ?>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Extras</a>
|
||||
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||
<?php
|
||||
foreach(json_decode($this->optionslib->get_option('menuitems')) as $item) {
|
||||
echo '<a class="dropdown-item" href="' . site_url($item->url) . '" title="Gridsquares"><i class="fas '. $item->icon .'"></i> ' . $item->text . '</a>';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</li>
|
||||
<?php } ?>
|
||||
|
||||
</ul>
|
||||
|
||||
<?php } ?>
|
||||
|
||||
|
|
|
|||
144
application/views/labels/create.php
Normal file
144
application/views/labels/create.php
Normal file
|
|
@ -0,0 +1,144 @@
|
|||
<div id="qsl_card_labels_container" class="container">
|
||||
|
||||
<br>
|
||||
<?php if($this->session->flashdata('message')) { ?>
|
||||
<!-- Display Message -->
|
||||
<div class="alert-message error">
|
||||
<p><?php echo $this->session->flashdata('message'); ?></p>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php echo validation_errors(); ?>
|
||||
|
||||
<form method="post" action="<?php echo site_url('labels/create'); ?>" name="create_label_type">
|
||||
|
||||
<div class="card">
|
||||
<h2 class="card-header"><?php echo $page_title; ?></h2>
|
||||
|
||||
<div class="card-body">
|
||||
|
||||
<!-- Label Name Input -->
|
||||
<div class="form-group">
|
||||
<label for="LabelName">Label Name</label>
|
||||
<input name="label_name" type="text" class="form-control" id="LabelName" aria-describedby="label_nameHelp" placeholder="Code 925041 6x3 Generic Label Sheet">
|
||||
<small id="label_nameHelp" class="form-text text-muted">Label name used for display purposes, so pick something meaningful, perhaps the label style.</small>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label" for="paperType">Paper Type</label>
|
||||
<div class="col-sm-4">
|
||||
<select name="paper_type" class="form-control" id="paperType">
|
||||
<option value="a4">A4</option>
|
||||
<option value="letter">Letter</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-2 col-form-label" for="measurementType">Measurement used</label>
|
||||
<div class="col-sm-4">
|
||||
<select name="measurementType" class="form-control" id="measurementType">
|
||||
<option value="mm">Millimeters</option>
|
||||
<option value="in">Inches</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label" for="marginTop">Margin Top</label>
|
||||
<div class="col-sm-4">
|
||||
<input name="marginTop" type="text" class="form-control" id="marginTop" aria-describedby="marginTopHelp">
|
||||
<small id="marginTopHelp" class="form-text text-muted">Top margin of labels</small>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-2 col-form-label" for="marginLeft">Margin Left</label>
|
||||
<div class="col-sm-4">
|
||||
<input name="marginLeft" type="text" class="form-control" id="marginLeft" aria-describedby="marginLeftHelp">
|
||||
<small id="marginLeftHelp" class="form-text text-muted">Left margin of labels.</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label" for="NX">Labels horizontally</label>
|
||||
<div class="col-sm-4">
|
||||
<input name="NX" type="number" min="1" max="40" step="1" class="form-control" id="NX" aria-describedby="NXHelp">
|
||||
<small id="NXHelp" class="form-text text-muted">Number of labels horizontally across the page.</small>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-2 col-form-label" for="NY">Labels vertically</label>
|
||||
<div class="col-sm-4">
|
||||
<input name="NY" type="number" min="1" max="40" step="1" class="form-control" id="NY" aria-describedby="NYHelp">
|
||||
<small id="NYHelp" class="form-text text-muted">Number of labels vertically across the page.</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label" for="SpaceX">Horizontal space</label>
|
||||
<div class="col-sm-4">
|
||||
<input name="SpaceX" type="text" class="form-control" id="SpaceX">
|
||||
<small id="NYHelp" class="form-text text-muted">Horizontal space between 2 labels.</small>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-2 col-form-label" for="SpaceY">Vertical space</label>
|
||||
<div class="col-sm-4">
|
||||
<input name="SpaceY" type="text" class="form-control" id="SpaceY">
|
||||
<small id="NYHelp" class="form-text text-muted">Vertical space between 2 labels.</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label" for="width">Width of label</label>
|
||||
<div class="col-sm-4">
|
||||
<input name="width" type="text" class="form-control" id="width" aria-describedby="widthHelp">
|
||||
<small id="widthHelp" class="form-text text-muted">Total width of one label.</small>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-2 col-form-label" for="height">Height of label</label>
|
||||
<div class="col-sm-4">
|
||||
<input name="height" type="text" class="form-control" id="height" aria-describedby="heightHelp">
|
||||
<small id="heightHelp" class="form-text text-muted">Total height of one label</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label" for="font_size">Font Size</label>
|
||||
<div class="col-sm-4">
|
||||
<input name="font_size" type="number" min="1" max="40" step="1" class="form-control" id="font_size" value="8" aria-describedby="font_sizeHelp">
|
||||
<small id="font_sizeHelp" class="form-text text-muted">Font size used on the label don't go too big.</small>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-2 col-form-label" for="font_size">QSOs on label</label>
|
||||
<div class="col-sm-4">
|
||||
<input name="label_qsos" type="number" min="1" max="40" step="1" class="form-control" id="font_size" value="5" aria-describedby="font_sizeHelp">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label" for="font">Font</label>
|
||||
<div class="col-sm-4">
|
||||
<select name="font" class="form-control" id="font">
|
||||
<option value="courier">Courier</option>
|
||||
<option value="courierb">Courierb</option>
|
||||
<option value="courierbi">Courierbi</option>
|
||||
<option value="courieri">Courieri</option>
|
||||
<option value="DejaVuSans">DejaVuSans</option>
|
||||
<option value="helvetica">Helvetica</option>
|
||||
<option value="helveticab">Helveticab</option>
|
||||
<option value="helveticabi">Helveticabi</option>
|
||||
<option value="helveticai">Helveticai</option>
|
||||
<option value="symbol">Symbol</option>
|
||||
<option value="times">Times</option>
|
||||
<option value="timesb">Timesb</option>
|
||||
<option value="timesb">Timesb</option>
|
||||
<option value="timesbi">Timesbi</option>
|
||||
<option value="zapfdingbats">Zapfdingbats</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary"><i class="fas fa-plus-square"></i> Save Label Type</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
<br>
|
||||
144
application/views/labels/edit.php
Normal file
144
application/views/labels/edit.php
Normal file
|
|
@ -0,0 +1,144 @@
|
|||
<div id="qsl_card_labels_container" class="container">
|
||||
|
||||
<br>
|
||||
<?php if($this->session->flashdata('message')) { ?>
|
||||
<!-- Display Message -->
|
||||
<div class="alert-message error">
|
||||
<p><?php echo $this->session->flashdata('message'); ?></p>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php echo validation_errors(); ?>
|
||||
|
||||
<form method="post" action="<?php echo site_url('labels/updateLabel/' . $label->id); ?>" name="create_label_type">
|
||||
|
||||
<div class="card">
|
||||
<h2 class="card-header"><?php echo $page_title; ?></h2>
|
||||
|
||||
<div class="card-body">
|
||||
|
||||
<!-- Label Name Input -->
|
||||
<div class="form-group">
|
||||
<label for="LabelName">Label Name</label>
|
||||
<input name="label_name" type="text" class="form-control" id="LabelName" aria-describedby="label_nameHelp" placeholder="Code 925041 6x3 Generic Label Sheet" value="<?php if(isset($label->label_name)) { echo $label->label_name; } ?>">
|
||||
<small id="label_nameHelp" class="form-text text-muted">Label name used for display purposes so pick something meaningful perhaps the label style.</small>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label" for="paperType">Paper Type</label>
|
||||
<div class="col-sm-4">
|
||||
<select name="paper_type" class="form-control" id="paperType">
|
||||
<option value="a4" <?php if($label->paper_type == "a4") { echo "selected=\"selected\""; } ?>>A4</option>
|
||||
<option value="letter" <?php if($label->paper_type == "letter") { echo "selected=\"selected\""; } ?>>Letter</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-2 col-form-label" for="measurementType">Measurement used</label>
|
||||
<div class="col-sm-4">
|
||||
<select name="measurementType" class="form-control" id="measurementType">
|
||||
<option value="mm" <?php if($label->metric == "mm") { echo "selected=\"selected\""; } ?>>Millimeters</option>
|
||||
<option value="in" <?php if($label->metric == "in") { echo "selected=\"selected\""; } ?>>Inches</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label" for="marginTop">Margin Top</label>
|
||||
<div class="col-sm-4">
|
||||
<input name="marginTop" type="text" class="form-control" id="marginTop" aria-describedby="marginTopHelp" value="<?php if(isset($label->margintop)) { echo $label->margintop; } ?>">
|
||||
<small id="marginTopHelp" class="form-text text-muted">Top margin of labels</small>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-2 col-form-label" for="marginLeft">Margin Left</label>
|
||||
<div class="col-sm-4">
|
||||
<input name="marginLeft" type="text" class="form-control" id="marginLeft" aria-describedby="marginLeftHelp" value="<?php if(isset($label->marginleft)) { echo $label->marginleft; } ?>">
|
||||
<small id="marginLeftHelp" class="form-text text-muted">Left margin of labels.</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label" for="NX">Labels horizontally</label>
|
||||
<div class="col-sm-4">
|
||||
<input name="NX" type="number" min="1" max="40" step="1" class="form-control" id="NX" aria-describedby="NXHelp" value="<?php if(isset($label->nx)) { echo $label->nx; } ?>">
|
||||
<small id="NXHelp" class="form-text text-muted">Number of labels horizontally across the page.</small>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-2 col-form-label" for="NY">Labels vertically</label>
|
||||
<div class="col-sm-4">
|
||||
<input name="NY" type="number" min="1" max="40" step="1" class="form-control" id="NY" aria-describedby="NYHelp" value="<?php if(isset($label->ny)) { echo $label->ny; } ?>">
|
||||
<small id="NYHelp" class="form-text text-muted">Number of labels vertically across the page.</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label" for="SpaceX">Horizontal space</label>
|
||||
<div class="col-sm-4">
|
||||
<input name="SpaceX" type="text" class="form-control" id="SpaceX" value="<?php if(isset($label->spacex)) { echo $label->spacex; } ?>">
|
||||
<small id="NYHelp" class="form-text text-muted">Horizontal space between 2 labels.</small>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-2 col-form-label" for="SpaceY">Vertical space</label>
|
||||
<div class="col-sm-4">
|
||||
<input name="SpaceY" type="text" class="form-control" id="SpaceY" value="<?php if(isset($label->spacey)) { echo $label->spacey; } ?>">
|
||||
<small id="NYHelp" class="form-text text-muted">Vertical space between 2 labels.</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label" for="width">Width of label</label>
|
||||
<div class="col-sm-4">
|
||||
<input name="width" type="text" class="form-control" id="width" aria-describedby="widthHelp" value="<?php if(isset($label->width)) { echo $label->width; } ?>">
|
||||
<small id="widthHelp" class="form-text text-muted">Total width of one label.</small>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-2 col-form-label" for="height">Height of label</label>
|
||||
<div class="col-sm-4">
|
||||
<input name="height" type="text" class="form-control" id="height" aria-describedby="heightHelp" value="<?php if(isset($label->height)) { echo $label->height; } ?>">
|
||||
<small id="heightHelp" class="form-text text-muted">Total height of one label</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label" for="font_size">Font Size</label>
|
||||
<div class="col-sm-4">
|
||||
<input name="font_size" type="number" min="1" max="40" step="1" class="form-control" id="font_size" aria-describedby="font_sizeHelp" value="<?php if(isset($label->font_size)) { echo $label->font_size; } ?>">
|
||||
<small id="font_sizeHelp" class="form-text text-muted">Font size used on the label don't go too big.</small>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-2 col-form-label" for="font_size">QSOs on label</label>
|
||||
<div class="col-sm-4">
|
||||
<input name="label_qsos" type="number" min="1" max="40" step="1" class="form-control" id="label_qsos" aria-describedby="font_sizeHelp" value="<?php if(isset($label->qsos)) { echo $label->qsos; } ?>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-sm-2 col-form-label" for="font">Font</label>
|
||||
<div class="col-sm-4">
|
||||
<select name="font" class="form-control" id="font">
|
||||
<option value="courier" <?php if($label->font == "courier") { echo "selected=\"selected\""; } ?>>Courier</option>
|
||||
<option value="courierb" <?php if($label->font == "courierb") { echo "selected=\"selected\""; } ?>>Courierb</option>
|
||||
<option value="courierbi" <?php if($label->font == "courierbi") { echo "selected=\"selected\""; } ?>>Courierbi</option>
|
||||
<option value="courieri" <?php if($label->font == "courieri") { echo "selected=\"selected\""; } ?>>Courieri</option>
|
||||
<option value="DejaVuSans" <?php if($label->font == "DejaVuSans") { echo "selected=\"selected\""; } ?>>DejaVuSans</option>
|
||||
<option value="helvetica" <?php if($label->font == "helvetica") { echo "selected=\"selected\""; } ?>>Helvetica</option>
|
||||
<option value="helveticab" <?php if($label->font == "helveticab") { echo "selected=\"selected\""; } ?>>Helveticab</option>
|
||||
<option value="helveticabi" <?php if($label->font == "helveticabi") { echo "selected=\"selected\""; } ?>>Helveticabi</option>
|
||||
<option value="helveticai" <?php if($label->font == "helveticai") { echo "selected=\"selected\""; } ?>>Helveticai</option>
|
||||
<option value="symbol" <?php if($label->font == "symbol") { echo "selected=\"selected\""; } ?>>Symbol</option>
|
||||
<option value="times" <?php if($label->font == "times") { echo "selected=\"selected\""; } ?>>Times</option>
|
||||
<option value="timesb" <?php if($label->font == "timesb") { echo "selected=\"selected\""; } ?>>Timesb</option>
|
||||
<option value="timesb" <?php if($label->font == "timesb") { echo "selected=\"selected\""; } ?>>Timesb</option>
|
||||
<option value="timesbi" <?php if($label->font == "timesbi") { echo "selected=\"selected\""; } ?>>Timesbi</option>
|
||||
<option value="zapfdingbats" <?php if($label->font == "zapfdingbats") { echo "selected=\"selected\""; } ?>>Zapfdingbats</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary"><i class="fas fa-plus-square"></i> Save Label Type</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
<br>
|
||||
108
application/views/labels/index.php
Normal file
108
application/views/labels/index.php
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
<div class="container">
|
||||
|
||||
<br>
|
||||
<?php if($this->session->flashdata('message')) { ?>
|
||||
<!-- Display Message -->
|
||||
<div class="alert alert-success" role="alert">
|
||||
<?php echo $this->session->flashdata('message'); ?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php if($this->session->flashdata('error')) { ?>
|
||||
<!-- Display Message -->
|
||||
<div class="alert alert-danger" role="alert">
|
||||
<?php echo $this->session->flashdata('error'); ?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php if($this->session->flashdata('warning')) { ?>
|
||||
<!-- Display Message -->
|
||||
<div class="alert alert-warning" role="alert">
|
||||
<?php echo $this->session->flashdata('warning'); ?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<div class="card">
|
||||
<h2 class="card-header">QSL Card Labels</h2>
|
||||
|
||||
<div class="card-body">
|
||||
<a href="<?php echo site_url('labels/create'); ?>" class="btn btn-outline-primary btn-sm">Create New Label Type</a>
|
||||
|
||||
|
||||
<?php if ($labels) {
|
||||
echo '<br/><br/>';?>
|
||||
<table style="width:100%" class="table-sm labeltable table-bordered table-hover table-striped table-condensed text-center">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Paper Type</th>
|
||||
<th>Measurement</th>
|
||||
<th>Width</th>
|
||||
<th>Height</th>
|
||||
<th>Font Size</th>
|
||||
<th>QSOs</th>
|
||||
<th>Last Modified</th>
|
||||
<th>Use For Print</th>
|
||||
<th>Edit</th>
|
||||
<th>Delete</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
foreach($labels as $label) { ?>
|
||||
<tr class='label_<?php echo $label->id ?>'>
|
||||
<td><?php echo $label->label_name; ?></td>
|
||||
<td><?php echo $label->paper_type; ?></td>
|
||||
<td><?php echo $label->metric; ?></td>
|
||||
<td><?php echo $label->width; ?></td>
|
||||
<td><?php echo $label->height; ?></td>
|
||||
<td><?php echo $label->font_size; ?></td>
|
||||
<td><?php echo $label->qsos; ?></td>
|
||||
<td><?php echo $label->last_modified; ?></td>
|
||||
<td><input type="checkbox" <?php if ($label->useforprint == 1) {echo 'checked';}?>></td>
|
||||
<td><a href="<?php echo site_url('labels/edit/' . $label->id); ?>" class="btn btn-outline-primary btn-sm"><i class="fas fa-edit"></i></a></td>
|
||||
<td><a href="<?php echo site_url('labels/delete/' . $label->id); ?>" class="btn btn-outline-danger btn-sm"><i class="fas fa-trash-alt"></i></a></td>
|
||||
</tr>
|
||||
|
||||
<?php }
|
||||
echo '</tbody></table>';
|
||||
} ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br><br>
|
||||
|
||||
<div class="card">
|
||||
<h2 class="card-header">QSL Card Labels Pending</h2>
|
||||
|
||||
<div class="card-body">
|
||||
<table style="width:100%" class="table-sm table table-bordered table-hover table-striped table-condensed text-center">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Callsign</th>
|
||||
<th>Station Location</th>
|
||||
<th>Gridsquare</th>
|
||||
<th>QSOs Waiting</th>
|
||||
<th>View QSOs</th>
|
||||
<th>Print</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($qsos as $qso) {
|
||||
echo '<tr>';
|
||||
echo '<td>' . $qso->station_callsign . '</td>';
|
||||
echo '<td>' . $qso->station_profile_name . '</td>';
|
||||
echo '<td>' . $qso->station_gridsquare . '</td>';
|
||||
echo '<td>' . $qso->count . '</td>';
|
||||
echo '<td><a href="'. site_url('qslprint') . '" class="btn btn-outline-info btn-sm"><i class="fas fa-search"></i></a></td>';
|
||||
echo '<td><a href="'. site_url('labels/print/' . $qso->station_id) . '" class="btn btn-outline-success btn-sm"><i class="fas fa-print"></i></a></td>';
|
||||
echo '</tr>';
|
||||
} ?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
@ -15,7 +15,9 @@
|
|||
</div>
|
||||
<?php } ?>
|
||||
<div class="row">
|
||||
|
||||
<form id="searchForm" name="searchForm" action="<?php echo base_url()."index.php/logbookadvanced/search";?>" method="post">
|
||||
<div class="filterbody collapse">
|
||||
<div class="form-row">
|
||||
<div class="form-group col-lg-2 col-md-2 col-sm-3 col-xl">
|
||||
<label class="form-label" for="dateFrom">From</label>
|
||||
|
|
@ -164,38 +166,47 @@
|
|||
<option value="V">Verified</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group col-lg-2 col-md-2 col-sm-3 col-xl">
|
||||
<label for="qsoResults"># Results</label>
|
||||
<select id="qsoResults" name="qsoResults" class="form-control form-control-sm">
|
||||
<option value="250">250</option>
|
||||
<option value="1000">1000</option>
|
||||
<option value="2500">2500</option>
|
||||
<option value="5000">5000</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group col-lg col-md-3 col-sm-3 col-xl-1">
|
||||
<label> </label><br>
|
||||
<button type="submit" class="btn btn-sm btn-primary" id="searchButton">Search</button>
|
||||
<button type="reset" class="btn btn-sm btn-danger" id="resetButton">Reset</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="actionbody collapse">
|
||||
<div class="mb-2">
|
||||
<span class="h6">With selected :</span>
|
||||
<button type="button" class="btn btn-sm btn-primary" id="btnUpdateFromCallbook">Update from Callbook</button>
|
||||
<button type="button" class="btn btn-sm btn-primary" id="queueBureau">Queue Bureau</button>
|
||||
<button type="button" class="btn btn-sm btn-primary" id="queueDirect">Queue Direct</button>
|
||||
<button type="button" class="btn btn-sm btn-primary" id="queueElectronic">Queue Electronic</button>
|
||||
<button type="button" class="btn btn-sm btn-success" id="sentBureau">Sent Bureau</button>
|
||||
<button type="button" class="btn btn-sm btn-success" id="sentDirect">Sent Direct</button>
|
||||
<button type="button" class="btn btn-sm btn-success" id="sentElectronic">Sent Electronic</button>
|
||||
<button type="button" class="btn btn-sm btn-warning" id="dontSend">Not Sent</button>
|
||||
<button type="button" class="btn btn-sm btn-warning" id="notRequired">QSL Not Required</button>
|
||||
<button type="button" class="btn btn-sm btn-info" id="exportAdif">Create ADIF</button>
|
||||
<button type="button" class="btn btn-sm btn-danger" id="deleteQsos">Delete</button>
|
||||
<button type="button" class="btn btn-sm btn-primary mr-1" id="btnUpdateFromCallbook">Update from Callbook</button>
|
||||
<button type="button" class="btn btn-sm btn-primary mr-1" id="queueBureau">Queue Bureau</button>
|
||||
<button type="button" class="btn btn-sm btn-primary mr-1" id="queueDirect">Queue Direct</button>
|
||||
<button type="button" class="btn btn-sm btn-primary mr-1" id="queueElectronic">Queue Electronic</button>
|
||||
<button type="button" class="btn btn-sm btn-success mr-1" id="sentBureau">Sent Bureau</button>
|
||||
<button type="button" class="btn btn-sm btn-success mr-1" id="sentDirect">Sent Direct</button>
|
||||
<button type="button" class="btn btn-sm btn-success mr-1" id="sentElectronic">Sent Electronic</button>
|
||||
<button type="button" class="btn btn-sm btn-warning mr-1" id="dontSend">Not Sent</button>
|
||||
<button type="button" class="btn btn-sm btn-warning mr-1" id="notRequired">QSL Not Required</button>
|
||||
<button type="button" class="btn btn-sm btn-warning mr-1" id="receivedBureau">Received (bureau)</button>
|
||||
<button type="button" class="btn btn-sm btn-warning mr-1" id="receivedDirect">Received (direct)</button>
|
||||
<button type="button" class="btn btn-sm btn-info mr-1" id="exportAdif">Create ADIF</button>
|
||||
<button type="button" class="btn btn-sm btn-info mr-1" id="printLabel">Print Label</button>
|
||||
<button type="button" class="btn btn-sm btn-danger mr-1" id="deleteQsos">Delete</button>
|
||||
<span id="infoBox"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row pt-2">
|
||||
<div class="form-group form-inline col-lg d-flex flex-row justify-content-center align-items-center">
|
||||
<button type="button" class="btn btn-sm btn-primary mr-1" data-toggle="collapse" data-target=".filterbody">Filters</button>
|
||||
<button type="button" class="btn btn-sm btn-primary mr-1" data-toggle="collapse" data-target=".actionbody">Actions</button>
|
||||
<label for="qsoResults" class="mr-2"># Results</label>
|
||||
<select id="qsoResults" name="qsoResults" class="form-control form-control-sm mr-2">
|
||||
<option value="250">250</option>
|
||||
<option value="1000">1000</option>
|
||||
<option value="2500">2500</option>
|
||||
<option value="5000">5000</option>
|
||||
</select>
|
||||
<button type="submit" class="btn btn-sm btn-primary mr-1" id="searchButton">Search</button>
|
||||
<button type="reset" class="btn btn-sm btn-danger mr-1" id="resetButton">Reset</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<table style="width:100%" class="table-sm table table-bordered table-hover table-striped table-condensed text-center" id="qsoList">
|
||||
<thead>
|
||||
<tr>
|
||||
|
|
@ -228,6 +239,4 @@
|
|||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -51,6 +51,19 @@
|
|||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label for="emailSenderName" class="col-sm-2 col-form-label"><?php echo lang('options_email_sender_name'); ?></label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="emailSenderName" class="form-control" id="emailSenderName" value="<?php echo ($this->optionslib->get_option('emailSenderName') == "" ? 'Cloudlog' : $this->optionslib->get_option('emailSenderName'));?>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label for="emailAddress" class="col-sm-2 col-form-label"><?php echo lang('options_email_address'); ?></label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="emailAddress" class="form-control" id="emailAddress" value="<?php if($this->optionslib->get_option('emailAddress') != "") { echo $this->optionslib->get_option('emailAddress'); } ?>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label for="smtpHost" class="col-sm-2 col-form-label"><?php echo lang('options_smtp_host'); ?></label>
|
||||
|
|
|
|||
|
|
@ -10,9 +10,9 @@
|
|||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
<div class="stationinfo">
|
||||
<div class="stationinfo">
|
||||
|
||||
<?php
|
||||
<?php
|
||||
if ($global_oqrs_text) {
|
||||
echo $global_oqrs_text;
|
||||
echo '<br /><br />';
|
||||
|
|
@ -24,37 +24,40 @@
|
|||
</form>';
|
||||
echo '<div class="searchinfo"></div>';
|
||||
?>
|
||||
<script>// Get the input field
|
||||
var input = document.getElementById("oqrssearch");
|
||||
<script>
|
||||
// Get the input field
|
||||
var input = document.getElementById("oqrssearch");
|
||||
|
||||
// Execute a function when the user presses a key on the keyboard
|
||||
input.addEventListener("keypress", function(event) {
|
||||
// If the user presses the "Enter" key on the keyboard
|
||||
if (event.key === "Enter") {
|
||||
// Cancel the default action, if needed
|
||||
event.preventDefault();
|
||||
// Trigger the button element with a click
|
||||
document.getElementById("stationbuttonsubmit").click();
|
||||
}
|
||||
});</script>
|
||||
<?php
|
||||
// Execute a function when the user presses a key on the keyboard
|
||||
input.addEventListener("keypress", function(event) {
|
||||
// If the user presses the "Enter" key on the keyboard
|
||||
if (event.key === "Enter") {
|
||||
// Cancel the default action, if needed
|
||||
event.preventDefault();
|
||||
// Trigger the button element with a click
|
||||
document.getElementById("stationbuttonsubmit").click();
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
<?php
|
||||
} else {
|
||||
echo '<div class="resulttable">';
|
||||
if ($stations->result() != NULL) { ?>
|
||||
|
||||
<form class="form-inline" enctype="multipart/form-data">
|
||||
<label class="my-1 mr-2" for="station">Select station: </label>
|
||||
<select id="station" class="custom-select my-1 mr-sm-2" name="station">
|
||||
<?php foreach($stations->result() as $station) {
|
||||
<form class="form-inline" enctype="multipart/form-data">
|
||||
<label class="my-1 mr-2" for="station">Select station: </label>
|
||||
<select id="station" class="custom-select my-1 mr-sm-2" name="station">
|
||||
<?php foreach($stations->result() as $station) {
|
||||
echo '<option value="' . $station->station_id . '">' . $station->station_profile_name . ' - ' . $station->station_callsign . '</option>'."\n";
|
||||
} ?>
|
||||
</select>
|
||||
<button id="button1id" type="button" onclick="loadStationInfo();" name="button1id" class="btn btn-sm btn-primary"> Proceed</button>
|
||||
</form>
|
||||
</div>
|
||||
</select>
|
||||
<button id="button1id" type="button" onclick="loadStationInfo();" name="button1id" class="btn btn-sm btn-primary"> Proceed</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="resulttable"></div>
|
||||
|
||||
<div class="searchinfo"></div>
|
||||
<?php
|
||||
<div class="searchinfo"></div>
|
||||
<?php
|
||||
}
|
||||
|
||||
else {
|
||||
|
|
@ -65,4 +68,4 @@
|
|||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -62,6 +62,6 @@ The following QSO(s) were found. Please fill out the date and time and submit yo
|
|||
<small id="emailInputHelp" class="form-text text-muted">Your e-mail address where we can contact you</small>
|
||||
</div>
|
||||
|
||||
<button type="button" onclick="submitOqrsRequest(this.form);" class="btn btn-sm btn-primary"><i
|
||||
<button type="button" id="requestSubmit" onclick="submitOqrsRequest(this.form);" class="btn btn-sm btn-primary"><i
|
||||
class="fas fa-plus-square"></i> Submit request</button>
|
||||
</form>
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ The following QSO(s) were found. Please fill out the date and time and submit yo
|
|||
<small id="emailInputHelp" class="form-text text-muted">Your e-mail address where we can contact you</small>
|
||||
</div>
|
||||
|
||||
<button type="button" onclick="submitOqrsRequestGrouped(this.form);" class="btn btn-sm btn-primary"><i
|
||||
<button type="button" id="requestGroupedSubmit" onclick="submitOqrsRequestGrouped(this.form);" class="btn btn-sm btn-primary"><i
|
||||
class="fas fa-plus-square"></i> Submit request</button>
|
||||
</form>
|
||||
<?php } else {
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
case 'SOTA': echo lang('gen_hamradio_sota'); break;
|
||||
case 'State': echo lang('gen_hamradio_state'); break;
|
||||
case 'Grid': echo lang('gen_hamradio_gridsquare'); break;
|
||||
case 'Distance': echo lang('gen_hamradio_distance'); break;
|
||||
case 'Band': echo lang('gen_hamradio_band'); break;
|
||||
case 'Frequency': echo lang('gen_hamradio_frequency'); break;
|
||||
case 'Operator': echo lang('gen_hamradio_operator'); break;
|
||||
|
|
@ -32,6 +33,7 @@
|
|||
case 'SOTA': echo lang('gen_hamradio_sota'); break;
|
||||
case 'State': echo lang('gen_hamradio_state'); break;
|
||||
case 'Grid': echo lang('gen_hamradio_gridsquare'); break;
|
||||
case 'Distance': echo lang('gen_hamradio_distance'); break;
|
||||
case 'Band': echo lang('gen_hamradio_band'); break;
|
||||
case 'Frequency': echo lang('gen_hamradio_frequency'); break;
|
||||
case 'Operator': echo lang('gen_hamradio_band'); break;
|
||||
|
|
@ -47,6 +49,7 @@
|
|||
case 'SOTA': echo lang('gen_hamradio_sota'); break;
|
||||
case 'State': echo lang('gen_hamradio_state'); break;
|
||||
case 'Grid': echo lang('gen_hamradio_gridsquare'); break;
|
||||
case 'Distance': echo lang('gen_hamradio_distance'); break;
|
||||
case 'Band': echo lang('gen_hamradio_band'); break;
|
||||
case 'Frequency': echo lang('gen_hamradio_frequency'); break;
|
||||
case 'Operator': echo lang('gen_hamradio_operator'); break;
|
||||
|
|
@ -62,6 +65,7 @@
|
|||
case 'SOTA': echo lang('gen_hamradio_sota'); break;
|
||||
case 'State': echo lang('gen_hamradio_state'); break;
|
||||
case 'Grid': echo lang('gen_hamradio_gridsquare'); break;
|
||||
case 'Distance': echo lang('gen_hamradio_distance'); break;
|
||||
case 'Band': echo lang('gen_hamradio_band'); break;
|
||||
case 'Frequency': echo lang('gen_hamradio_frequency'); break;
|
||||
case 'Operator': echo lang('gen_hamradio_operator'); break;
|
||||
|
|
@ -77,6 +81,7 @@
|
|||
case 'SOTA': echo lang('gen_hamradio_sota'); break;
|
||||
case 'State': echo lang('gen_hamradio_state'); break;
|
||||
case 'Grid': echo lang('gen_hamradio_gridsquare'); break;
|
||||
case 'Distance': echo lang('gen_hamradio_distance'); break;
|
||||
case 'Band': echo lang('gen_hamradio_band'); break;
|
||||
case 'Frequency': echo lang('gen_hamradio_frequency'); break;
|
||||
case 'Operator': echo lang('gen_hamradio_operator'); break;
|
||||
|
|
@ -114,6 +119,7 @@
|
|||
case 'WWFF': echo '<td>' . ($row->COL_WWFF_REF); break;
|
||||
case 'POTA': echo '<td>' . ($row->COL_POTA_REF); break;
|
||||
case 'Grid': echo '<td>'; echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE; break;
|
||||
case 'Distance':echo '<td>' . ($row->COL_DISTANCE ? $row->COL_DISTANCE . ' km' : ''); break;
|
||||
case 'Band': echo '<td>'; if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); }; break;
|
||||
case 'State': echo '<td>' . ($row->COL_STATE); break;
|
||||
case 'Operator': echo '<td>' . ($row->COL_OPERATOR); break;
|
||||
|
|
@ -129,6 +135,7 @@
|
|||
case 'WWFF': echo '<td>' . ($row->COL_WWFF_REF); break;
|
||||
case 'POTA': echo '<td>' . ($row->COL_POTA_REF); break;
|
||||
case 'Grid': echo '<td>'; echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE; break;
|
||||
case 'Distance':echo '<td>' . ($row->COL_DISTANCE ? $row->COL_DISTANCE . ' km' : ''); break;
|
||||
case 'Band': echo '<td>'; if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); }; break;
|
||||
case 'State': echo '<td>' . ($row->COL_STATE); break;
|
||||
case 'Operator': echo '<td>' . ($row->COL_OPERATOR); break;
|
||||
|
|
@ -145,6 +152,7 @@
|
|||
case 'WWFF': echo '<td>' . ($row->COL_WWFF_REF); break;
|
||||
case 'POTA': echo '<td>' . ($row->COL_POTA_REF); break;
|
||||
case 'Grid': echo '<td>'; echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE; break;
|
||||
case 'Distance':echo '<td>' . ($row->COL_DISTANCE ? $row->COL_DISTANCE . ' km' : ''); break;
|
||||
case 'Band': echo '<td>'; if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); }; break;
|
||||
case 'State': echo '<td>' . ($row->COL_STATE); break;
|
||||
case 'Operator': echo '<td>' . ($row->COL_OPERATOR); break;
|
||||
|
|
@ -160,6 +168,7 @@
|
|||
case 'WWFF': echo '<td>' . ($row->COL_WWFF_REF); break;
|
||||
case 'POTA': echo '<td>' . ($row->COL_POTA_REF); break;
|
||||
case 'Grid': echo '<td>'; echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE; break;
|
||||
case 'Distance':echo '<td>' . ($row->COL_DISTANCE ? $row->COL_DISTANCE . ' km' : ''); break;
|
||||
case 'Band': echo '<td>'; if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); }; break;
|
||||
case 'State': echo '<td>' . ($row->COL_STATE); break;
|
||||
case 'Operator': echo '<td>' . ($row->COL_OPERATOR); break;
|
||||
|
|
@ -175,6 +184,7 @@
|
|||
case 'WWFF': echo '<td>' . ($row->COL_WWFF_REF); break;
|
||||
case 'POTA': echo '<td>' . ($row->COL_POTA_REF); break;
|
||||
case 'Grid': echo '<td>'; echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE; break;
|
||||
case 'Distance':echo '<td>' . ($row->COL_DISTANCE ? $row->COL_DISTANCE . ' km' : ''); break;
|
||||
case 'Band': echo '<td>'; if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); }; break;
|
||||
case 'State': echo '<td>' . ($row->COL_STATE); break;
|
||||
case 'Operator': echo '<td>' . ($row->COL_OPERATOR); break;
|
||||
|
|
|
|||
|
|
@ -161,8 +161,11 @@
|
|||
<div class="form-group col-sm-6">
|
||||
<label for="locator">Gridsquare</label>
|
||||
<input type="text" class="form-control" id="locator" name="locator" value="<?php echo $qso->COL_GRIDSQUARE; ?>">
|
||||
<small id="locator_info" class="form-text text-muted"><?php if ($qso->COL_DISTANCE != "") echo $qso->COL_DISTANCE." km"; ?></small>
|
||||
</div>
|
||||
|
||||
<input type="hidden" name="distance" id="distance" value="<?php print ($qso->COL_DISTANCE != "") ? $qso->COL_DISTANCE : "0"; ?>">
|
||||
|
||||
<div class="form-group col-sm-6">
|
||||
<label for="vucc_grids">VUCC Gridsquare</label>
|
||||
<input type="text" class="form-control" id="vucc_grids" name="vucc_grids" value="<?php echo $qso->COL_VUCC_GRIDS; ?>">
|
||||
|
|
|
|||
|
|
@ -142,6 +142,8 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<input type="hidden" name="distance" id="distance" value="0">
|
||||
|
||||
<div class="form-group row">
|
||||
<label for="comment" class="col-sm-3 col-form-label"><?php echo lang('general_word_comment'); ?></label>
|
||||
<div class="col-sm-9">
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ $ci =& get_instance();
|
|||
case 'SOTA': echo lang('gen_hamradio_sota'); break;
|
||||
case 'State': echo lang('gen_hamradio_state'); break;
|
||||
case 'Grid': echo lang('gen_hamradio_gridsquare'); break;
|
||||
case 'Distance': echo lang('gen_hamradio_distance'); break;
|
||||
case 'Band': echo lang('gen_hamradio_band'); break;
|
||||
case 'Frequency': echo lang('gen_hamradio_frequency'); break;
|
||||
case 'Operator': echo lang('gen_hamradio_operator'); break;
|
||||
|
|
@ -34,6 +35,7 @@ $ci =& get_instance();
|
|||
case 'State': echo lang('gen_hamradio_state'); break;
|
||||
case 'SOTA': echo lang('gen_hamradio_sota'); break;
|
||||
case 'Grid': echo lang('gen_hamradio_gridsquare'); break;
|
||||
case 'Distance': echo lang('gen_hamradio_distance'); break;
|
||||
case 'Band': echo lang('gen_hamradio_band'); break;
|
||||
case 'Frequency': echo lang('gen_hamradio_frequency'); break;
|
||||
case 'Operator': echo lang('gen_hamradio_operator'); break;
|
||||
|
|
@ -49,6 +51,7 @@ $ci =& get_instance();
|
|||
case 'SOTA': echo lang('gen_hamradio_sota'); break;
|
||||
case 'State': echo lang('gen_hamradio_state'); break;
|
||||
case 'Grid': echo lang('gen_hamradio_gridsquare'); break;
|
||||
case 'Distance': echo lang('gen_hamradio_distance'); break;
|
||||
case 'Band': echo lang('gen_hamradio_band'); break;
|
||||
case 'Frequency': echo lang('gen_hamradio_frequency'); break;
|
||||
case 'Operator': echo lang('gen_hamradio_operator'); break;
|
||||
|
|
@ -64,6 +67,7 @@ $ci =& get_instance();
|
|||
case 'SOTA': echo lang('gen_hamradio_sota'); break;
|
||||
case 'State': echo lang('gen_hamradio_state'); break;
|
||||
case 'Grid': echo lang('gen_hamradio_gridsquare'); break;
|
||||
case 'Distance': echo lang('gen_hamradio_distance'); break;
|
||||
case 'Band': echo lang('gen_hamradio_band'); break;
|
||||
case 'Frequency': echo lang('gen_hamradio_frequency'); break;
|
||||
case 'Operator': echo lang('gen_hamradio_operator'); break;
|
||||
|
|
@ -79,6 +83,7 @@ $ci =& get_instance();
|
|||
case 'SOTA': echo lang('gen_hamradio_sota'); break;
|
||||
case 'State': echo lang('gen_hamradio_state'); break;
|
||||
case 'Grid': echo lang('gen_hamradio_gridsquare'); break;
|
||||
case 'Distance': echo lang('gen_hamradio_distance'); break;
|
||||
case 'Band': echo lang('gen_hamradio_band'); break;
|
||||
case 'Frequency': echo lang('gen_hamradio_frequency'); break;
|
||||
case 'Operator': echo lang('gen_hamradio_operator'); break;
|
||||
|
|
@ -113,7 +118,7 @@ $ci =& get_instance();
|
|||
$custom_date_format = $this->config->item('qso_date_format');
|
||||
}
|
||||
?>
|
||||
<?php echo '<tr class="tr'.($i & 1).'" id ="qso_'. $row->COL_PRIMARY_KEY .'">'; ?>
|
||||
<?php echo '<tr class="tr'.($i & 1).'" id="qso_'. $row->COL_PRIMARY_KEY .'">'; ?>
|
||||
<td><?php $timestamp = strtotime($row->COL_TIME_ON); echo date($custom_date_format, $timestamp); ?></td>
|
||||
<?php if(($this->config->item('use_auth') && ($this->session->userdata('user_type') >= 2)) || $this->config->item('use_auth') === FALSE || ($this->config->item('show_time'))) { ?>
|
||||
<td><?php $timestamp = strtotime($row->COL_TIME_ON); echo date('H:i', $timestamp); ?></td>
|
||||
|
|
@ -133,6 +138,7 @@ $ci =& get_instance();
|
|||
case 'WWFF': echo '<td>' . ($row->COL_WWFF_REF); break;
|
||||
case 'POTA': echo '<td>' . ($row->COL_POTA_REF); break;
|
||||
case 'Grid': echo '<td>'; echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE; break;
|
||||
case 'Distance':echo '<td>' . ($row->COL_DISTANCE ? $row->COL_DISTANCE . ' km' : ''); break;
|
||||
case 'Band': echo '<td>'; if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); }; break;
|
||||
case 'State': echo '<td>' . ($row->COL_STATE); break;
|
||||
case 'Operator': echo '<td>' . ($row->COL_OPERATOR); break;
|
||||
|
|
@ -149,6 +155,7 @@ $ci =& get_instance();
|
|||
case 'WWFF': echo '<td>' . ($row->COL_WWFF_REF); break;
|
||||
case 'POTA': echo '<td>' . ($row->COL_POTA_REF); break;
|
||||
case 'Grid': echo '<td>'; echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE; break;
|
||||
case 'Distance':echo '<td>' . ($row->COL_DISTANCE ? $row->COL_DISTANCE . ' km' : ''); break;
|
||||
case 'Band': echo '<td>'; if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); }; break;
|
||||
case 'State': echo '<td>' . ($row->COL_STATE); break;
|
||||
case 'Operator': echo '<td>' . ($row->COL_OPERATOR); break;
|
||||
|
|
@ -166,6 +173,7 @@ $ci =& get_instance();
|
|||
case 'WWFF': echo '<td>' . ($row->COL_WWFF_REF); break;
|
||||
case 'POTA': echo '<td>' . ($row->COL_POTA_REF); break;
|
||||
case 'Grid': echo '<td>'; echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE; break;
|
||||
case 'Distance':echo '<td>' . ($row->COL_DISTANCE ? $row->COL_DISTANCE . ' km' : ''); break;
|
||||
case 'Band': echo '<td>'; if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); }; break;
|
||||
case 'State': echo '<td>' . ($row->COL_STATE); break;
|
||||
case 'Operator': echo '<td>' . ($row->COL_OPERATOR); break;
|
||||
|
|
@ -182,6 +190,7 @@ $ci =& get_instance();
|
|||
case 'WWFF': echo '<td>' . ($row->COL_WWFF_REF); break;
|
||||
case 'POTA': echo '<td>' . ($row->COL_POTA_REF); break;
|
||||
case 'Grid': echo '<td>'; echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE; break;
|
||||
case 'Distance':echo '<td>' . ($row->COL_DISTANCE ? $row->COL_DISTANCE . ' km' : ''); break;
|
||||
case 'Band': echo '<td>'; if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); }; break;
|
||||
case 'State': echo '<td>' . ($row->COL_STATE); break;
|
||||
case 'Operator': echo '<td>' . ($row->COL_OPERATOR); break;
|
||||
|
|
@ -198,6 +207,7 @@ $ci =& get_instance();
|
|||
case 'WWFF': echo '<td>' . ($row->COL_WWFF_REF); break;
|
||||
case 'POTA': echo '<td>' . ($row->COL_POTA_REF); break;
|
||||
case 'Grid': echo '<td>'; echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE; break;
|
||||
case 'Distance':echo '<td>' . ($row->COL_DISTANCE ? $row->COL_DISTANCE . ' km' : ''); break;
|
||||
case 'Band': echo '<td>'; if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); }; break;
|
||||
case 'State': echo '<td>' . ($row->COL_STATE); break;
|
||||
case 'Operator': echo '<td>' . ($row->COL_OPERATOR); break;
|
||||
|
|
@ -207,7 +217,7 @@ $ci =& get_instance();
|
|||
if(($this->config->item('use_auth')) && ($this->session->userdata('user_type') >= 2)) { ?>
|
||||
|
||||
<?php
|
||||
echo '<td style=\'text-align: center\' class="qsl">';
|
||||
echo '<td id="qsl_'.$row->COL_PRIMARY_KEY.'" style=\'text-align: center\' class="qsl">';
|
||||
echo '<span ';
|
||||
if ($row->COL_QSL_SENT != "N") {
|
||||
if ($row->COL_QSLSDATE != null) {
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@
|
|||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-6">
|
||||
<div class="form-group col-sm-6" id="us_state">
|
||||
<label for="stateInput">Station State</label>
|
||||
<select class="form-control custom-select" name="station_state" id="StateHelp" aria-describedby="stationCntyInputHelp">
|
||||
<option value="" selected></option>
|
||||
|
|
@ -125,6 +125,27 @@
|
|||
<small id="StateHelp" class="form-text text-muted">Station state. Applies to certain countries only. Leave blank if not applicable.</small>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-6" id="canada_state">
|
||||
<label for="stateInput">Station Canadian Province</label>
|
||||
<select class="form-control custom-select" name="station_ca_state" id="StateHelp" aria-describedby="stationCntyInputHelp">
|
||||
<option value="" selected></option>
|
||||
<option value="AB">Alberta</option>
|
||||
<option value="BC">British Columbia</option>
|
||||
<option value="MB">Manitoba</option>
|
||||
<option value="NB">New Brunswick</option>
|
||||
<option value="NL">Newfoundland & Labrador</option>
|
||||
<option value="NS">Nova Scotia</option>
|
||||
<option value="NT">Northwest Territories</option>
|
||||
<option value="NU">Nunavut</option>
|
||||
<option value="ON">Ontario</option>
|
||||
<option value="PE">Prince Edward Island</option>
|
||||
<option value="QC">Quebec</option>
|
||||
<option value="SK">Saskatchewan</option>
|
||||
<option value="YT">Yukon</option>
|
||||
</select>
|
||||
<small id="StateHelp" class="form-text text-muted">Station state. Applies to certain countries only. Leave blank if not applicable.</small>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-6">
|
||||
<label for="stationCntyInput">Station County</label>
|
||||
<input disabled="disabled" type="text" class="form-control" name="station_cnty" id="stationCntyInput" aria-describedby="stationCntyInputHelp">
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@
|
|||
</div>
|
||||
|
||||
<!-- US State -->
|
||||
<div class="form-group">
|
||||
<div class="form-group" id="us_state">
|
||||
<label for="stateInput">Station State</label>
|
||||
<select class="form-control custom-select" name="station_state" id="StateHelp" aria-describedby="stationCntyInputHelp">
|
||||
<option value=""></option>
|
||||
|
|
@ -142,6 +142,15 @@
|
|||
<option value="WI" <?php if($my_station_profile->state == "WI") { echo "selected"; } ?>>Wisconsin</option>
|
||||
<option value="WV" <?php if($my_station_profile->state == "WV") { echo "selected"; } ?>>West Virginia</option>
|
||||
<option value="WY" <?php if($my_station_profile->state == "WY") { echo "selected"; } ?>>Wyoming</option>
|
||||
</select>
|
||||
<small id="StateHelp" class="form-text text-muted">Station state. Applies to certain countries only. Leave blank if not applicable.</small>
|
||||
</div>
|
||||
|
||||
<!-- Canada State -->
|
||||
<div class="form-group" id="canada_state">
|
||||
<label for="stateInput">Canadian Province</label>
|
||||
<select class="form-control custom-select" name="station_ca_state" id="StateHelp" aria-describedby="stationCntyInputHelp">
|
||||
<option value=""></option>
|
||||
<option value="AB" <?php if($my_station_profile->state == "AB") { echo "selected"; } ?>>Alberta</option>
|
||||
<option value="BC" <?php if($my_station_profile->state == "BC") { echo "selected"; } ?>>British Columbia</option>
|
||||
<option value="MB" <?php if($my_station_profile->state == "MB") { echo "selected"; } ?>>Manitoba</option>
|
||||
|
|
@ -157,7 +166,7 @@
|
|||
<option value="YT" <?php if($my_station_profile->state == "YT") { echo "selected"; } ?>>Yukon</option>
|
||||
</select>
|
||||
<small id="StateHelp" class="form-text text-muted">Station state. Applies to certain countries only. Leave blank if not applicable.</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- US County -->
|
||||
<div class="form-group">
|
||||
|
|
|
|||
|
|
@ -3,44 +3,61 @@
|
|||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
DXCC Lookup Data
|
||||
</div>
|
||||
<ul style="font-size: 15px;" class="nav nav-tabs card-header-tabs pull-right" id="myTab" role="tablist">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" id="dxcc-tab" data-toggle="tab" href="#dxcc" role="tab" aria-controls="update" aria-selected="true">DXCC Lookup Data</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" id="distance-tab" data-toggle="tab" href="#distance" role="tab" aria-controls="update" aria-selected="false">Distance Data</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p class="card-text">Here you can update the DXCC lookup data that is used for displaying callsign information.</p>
|
||||
<p class="card-text">This data is provided by <a href="https://clublog.org/">Clublog</a>.</p>
|
||||
|
||||
<?php if(!extension_loaded('xml')) { ?>
|
||||
<div class="alert alert-danger" role="alert">
|
||||
You must install php-xml for this to work.
|
||||
<div class="tab-content" id="myTabContent">
|
||||
<div class="tab-pane fade show active" id="dxcc" role="tabpanel" aria-labelledby="dxcc-tab">
|
||||
<p class="card-text">Here you can update the DXCC lookup data that is used for displaying callsign information.</p>
|
||||
<p class="card-text">This data is provided by <a href="https://clublog.org/">Clublog</a>.</p>
|
||||
|
||||
<?php if(!extension_loaded('xml')) { ?>
|
||||
<div class="alert alert-danger" role="alert">
|
||||
You must install php-xml for this to work.
|
||||
</div>
|
||||
<?php } else { ?>
|
||||
<h5>Check for DXCC Data Updates</h5>
|
||||
<input type="submit" class="btn btn-primary" id="btn_update_dxcc" value="Update DXCC Data" />
|
||||
|
||||
<div id="dxcc_update_status">Status:</br></div>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
<h5>Apply DXCC Data to Logbook</h5>
|
||||
<p class="card-text">
|
||||
After updating, Cloudlog can fill in missing callsign information in the logbook using the newly-obtained DXCC data.
|
||||
You can choose to check just the QSOs in the logbook that are missing DXCC metadata or to re-check the entire logbook
|
||||
and update existing metadata as well, in case it has changed.
|
||||
</p>
|
||||
<p><a class="btn btn-primary" href="<?php echo site_url('update/check_missing_dxcc');?>">Check QSOs missing DXCC data</a></p>
|
||||
<p><a class="btn btn-primary" href="<?php echo site_url('update/check_missing_dxcc/all');?>">Re-check all QSOs in logbook</a></p>
|
||||
|
||||
<h5>Apply Continent Data to Logbook</h5>
|
||||
<p class="card-text">
|
||||
This function can be used to update QSO continent information for all QSOs in Cloudlog missing that information.
|
||||
</p>
|
||||
<p><a class="btn btn-primary" href="<?php echo site_url('update/check_missing_continent');?>">Check QSOs missing continent data</a></p>
|
||||
<style>
|
||||
#dxcc_update_status{
|
||||
display: None;
|
||||
}
|
||||
</style>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<?php } else { ?>
|
||||
<h5>Check for DXCC Data Updates</h5>
|
||||
<input type="submit" class="btn btn-primary" id="btn_update_dxcc" value="Update DXCC Data" />
|
||||
|
||||
<div id="dxcc_update_status">Status:</br></div>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
<h5>Apply DXCC Data to Logbook</h5>
|
||||
<p class="card-text">
|
||||
After updating, Cloudlog can fill in missing callsign information in the logbook using the newly-obtained DXCC data.
|
||||
You can choose to check just the QSOs in the logbook that are missing DXCC metadata or to re-check the entire logbook
|
||||
and update existing metadata as well, in case it has changed.
|
||||
</p>
|
||||
<p><a class="btn btn-primary" href="<?php echo site_url('update/check_missing_dxcc');?>">Check QSOs missing DXCC data</a></p>
|
||||
<p><a class="btn btn-primary" href="<?php echo site_url('update/check_missing_dxcc/all');?>">Re-check all QSOs in logbook</a></p>
|
||||
|
||||
<h5>Apply Continent Data to Logbook</h5>
|
||||
<p class="card-text">
|
||||
This function can be used to update QSO continent information for all QSOs in Cloudlog missing that information.
|
||||
</p>
|
||||
<p><a class="btn btn-primary" href="<?php echo site_url('update/check_missing_continent');?>">Check QSOs missing continent data</a></p>
|
||||
<style>
|
||||
#dxcc_update_status{
|
||||
display: None;
|
||||
}
|
||||
</style>
|
||||
<?php } ?>
|
||||
<div class="tab-pane fade" id="distance" role="tabpanel" aria-labelledby="distance-tab">
|
||||
<p class="card-text">Here you can update QSOs with missing distance information.</p>
|
||||
<p><a class="btn btn-primary" hx-get="<?php echo site_url('update/update_distances');?>" hx-target="#distance_results" href="<?php echo site_url('update/update_distances');?>">Update distance data</a></p>
|
||||
<div id="distance_results"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -313,6 +313,8 @@
|
|||
</option>
|
||||
<option value="Grid">
|
||||
<?php echo lang('gen_hamradio_gridsquare'); ?></option>
|
||||
<option value="Distance">
|
||||
<?php echo lang('gen_hamradio_distance'); ?></option>
|
||||
<option value="Operator">
|
||||
<?php echo lang('gen_hamradio_operator'); ?></option>
|
||||
</select>
|
||||
|
|
@ -342,6 +344,8 @@
|
|||
</option>
|
||||
<option value="Grid">
|
||||
<?php echo lang('gen_hamradio_gridsquare'); ?></option>
|
||||
<option value="Distance">
|
||||
<?php echo lang('gen_hamradio_distance'); ?></option>
|
||||
<option value="Operator">
|
||||
<?php echo lang('gen_hamradio_operator'); ?></option>
|
||||
</select>
|
||||
|
|
@ -371,6 +375,8 @@
|
|||
</option>
|
||||
<option value="Grid">
|
||||
<?php echo lang('gen_hamradio_gridsquare'); ?></option>
|
||||
<option value="Distance">
|
||||
<?php echo lang('gen_hamradio_distance'); ?></option>
|
||||
<option value="Operator">
|
||||
<?php echo lang('gen_hamradio_operator'); ?></option>
|
||||
</select>
|
||||
|
|
@ -400,6 +406,8 @@
|
|||
</option>
|
||||
<option value="Grid">
|
||||
<?php echo lang('gen_hamradio_gridsquare'); ?></option>
|
||||
<option value="Distance">
|
||||
<?php echo lang('gen_hamradio_distance'); ?></option>
|
||||
<option value="Operator">
|
||||
<?php echo lang('gen_hamradio_operator'); ?></option>
|
||||
</select>
|
||||
|
|
@ -430,6 +438,8 @@
|
|||
</option>
|
||||
<option value="Grid">
|
||||
<?php echo lang('gen_hamradio_gridsquare'); ?></option>
|
||||
<option value="Distance">
|
||||
<?php echo lang('gen_hamradio_distance'); ?></option>
|
||||
<option value="Operator">
|
||||
<?php echo lang('gen_hamradio_operator'); ?></option>
|
||||
<option value="Location">
|
||||
|
|
|
|||
|
|
@ -360,6 +360,7 @@
|
|||
<option value="POTA" <?php if ($user_column1 == "POTA") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_pota'); ?></option>
|
||||
<option value="State" <?php if ($user_column1 == "State") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_state'); ?></option>
|
||||
<option value="Grid" <?php if ($user_column1 == "Grid") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_gridsquare'); ?></option>
|
||||
<option value="Distance" <?php if ($user_column1 == "Distance") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_distance'); ?></option>
|
||||
<option value="Operator" <?php if ($user_column1 == "Operator") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_operator'); ?></option>
|
||||
</select>
|
||||
</div>
|
||||
|
|
@ -379,6 +380,7 @@
|
|||
<option value="POTA" <?php if ($user_column1 == "POTA") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_pota'); ?></option>
|
||||
<option value="State" <?php if ($user_column2 == "State") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_state'); ?></option>
|
||||
<option value="Grid" <?php if ($user_column2 == "Grid") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_gridsquare'); ?></option>
|
||||
<option value="Distance" <?php if ($user_column2 == "Distance") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_distance'); ?></option>
|
||||
<option value="Operator" <?php if ($user_column2 == "Operator") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_operator'); ?></option>
|
||||
</select>
|
||||
</div>
|
||||
|
|
@ -398,6 +400,7 @@
|
|||
<option value="POTA" <?php if ($user_column1 == "POTA") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_pota'); ?></option>
|
||||
<option value="State" <?php if ($user_column3 == "State") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_state'); ?></option>
|
||||
<option value="Grid" <?php if ($user_column3 == "Grid") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_gridsquare'); ?></option>
|
||||
<option value="Distance" <?php if ($user_column3 == "Distance") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_distance'); ?></option>
|
||||
<option value="Operator" <?php if ($user_column3 == "Operator") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_operator'); ?></option>
|
||||
</select>
|
||||
</div>
|
||||
|
|
@ -417,6 +420,7 @@
|
|||
<option value="POTA" <?php if ($user_column1 == "POTA") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_pota'); ?></option>
|
||||
<option value="State" <?php if ($user_column4 == "State") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_state'); ?></option>
|
||||
<option value="Grid" <?php if ($user_column4 == "Grid") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_gridsquare'); ?></option>
|
||||
<option value="Distance" <?php if ($user_column4 == "Distance") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_distance'); ?></option>
|
||||
<option value="Operator" <?php if ($user_column4 == "Operator") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_operator'); ?></option>
|
||||
</select>
|
||||
</div>
|
||||
|
|
@ -436,6 +440,7 @@
|
|||
<option value="POTA" <?php if ($user_column1 == "POTA") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_pota'); ?></option>
|
||||
<option value="State" <?php if ($user_column5 == "State") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_state'); ?></option>
|
||||
<option value="Grid" <?php if ($user_column5 == "Grid") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_gridsquare'); ?></option>
|
||||
<option value="Distance" <?php if ($user_column5 == "Distance") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_distance'); ?></option>
|
||||
<option value="Operator" <?php if ($user_column5 == "Operator") { echo " selected =\"selected\""; } ?>><?php echo lang('gen_hamradio_operator'); ?></option>
|
||||
<option value="Location" <?php if ($user_column5 == "Location") { echo " selected =\"selected\""; } ?>><?php echo lang('cloudlog_station_profile'); ?></option>
|
||||
</select>
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ input[type="email"] {
|
|||
<div class="form-group">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon"><i class="glyphicon glyphicon-envelope color-blue"></i></span>
|
||||
<input id="email" name="email" placeholder="<?php echo lang('account_email_address'); ?>" class="form-control" type="email">
|
||||
<input id="email" name="email" placeholder="<?php echo lang('account_email_address'); ?>" class="form-control" type="email" autofocus>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ body {
|
|||
<div>
|
||||
<label for="floatingInput"><strong><?php echo lang('account_username'); ?></strong></label>
|
||||
<input type="text" name="user_name" class="form-control" id="floatingInput" placeholder="<?php echo lang('account_username'); ?>"
|
||||
value="<?php echo $this->input->post('user_name'); ?>">
|
||||
value="<?php echo $this->input->post('user_name'); ?>" autofocus>
|
||||
</div>
|
||||
<div>
|
||||
<label for="floatingPassword"><strong><?php echo lang('account_password'); ?></strong></label>
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ function echo_table_header_col($ctx, $name) {
|
|||
case 'POTA': echo '<th>'.$ctx->lang->line('gen_hamradio_pota').'</th>'; break;
|
||||
case 'State': echo '<th>'.$ctx->lang->line('gen_hamradio_state').'</th>'; break;
|
||||
case 'Grid': echo '<th>'.$ctx->lang->line('gen_hamradio_gridsquare').'</th>'; break;
|
||||
case 'Distance': echo '<th>'.$ctx->lang->line('gen_hamradio_distance').'</th>'; break;
|
||||
case 'Band': echo '<th>'.$ctx->lang->line('gen_hamradio_band').'</td>'; break;
|
||||
case 'Frequency': echo '<th>'.$ctx->lang->line('gen_hamradio_frequency').'</th>'; break;
|
||||
case 'Operator': echo '<th>'.$ctx->lang->line('gen_hamradio_operator').'</th>'; break;
|
||||
|
|
@ -30,6 +31,7 @@ function echo_table_col($row, $name) {
|
|||
case 'WWFF': echo '<td>' . ($row->COL_WWFF_REF) . '</td>'; break;
|
||||
case 'POTA': echo '<td>' . ($row->COL_POTA_REF) . '</td>'; break;
|
||||
case 'Grid': echo '<td>'; echoQrbCalcLink($row->station_gridsquare, $row->COL_VUCC_GRIDS, $row->COL_GRIDSQUARE); echo '</td>'; break;
|
||||
case 'Distance':echo '<td>' . ($row->COL_DISTANCE ? $row->COL_DISTANCE . ' km' : '') . '</td>'; break;
|
||||
case 'Band': echo '<td>'; if($row->COL_SAT_NAME != null) { echo '<a href="https://db.satnogs.org/search/?q='.$row->COL_SAT_NAME.'" target="_blank"><span data-toggle="tooltip" data-original-title="'.$row->COL_BAND.'">'.$row->COL_SAT_NAME.'</span></a></td>'; } else { if ($row->COL_FREQ != null) { echo '<span data-toggle="tooltip" data-original-title="'.$ci->frequency->hz_to_mhz($row->COL_FREQ).'">'. strtolower($row->COL_BAND).'</span>'; } else { echo strtolower($row->COL_BAND); } } echo '</td>'; break;
|
||||
case 'Frequency': echo '<td>'; if($row->COL_SAT_NAME != null) { echo '<a href="https://db.satnogs.org/search/?q='.$row->COL_SAT_NAME.'" target="_blank">'; if ($row->COL_FREQ != null) { echo '<span data-toggle="tooltip" data-original-title="'.$ci->frequency->hz_to_mhz($row->COL_FREQ).'">'.$row->COL_SAT_NAME.'</span>'; } else { echo $row->COL_SAT_NAME; } echo '</a></td>'; } else { if ($row->COL_FREQ != null) { echo '<span data-toggle="tooltip" data-original-title="'.$row->COL_BAND.'">'.$ci->frequency->hz_to_mhz($row->COL_FREQ).'</span>'; } else { echo strtolower($row->COL_BAND); } } echo '</td>'; break;
|
||||
case 'State': echo '<td>' . ($row->COL_STATE) . '</td>'; break;
|
||||
|
|
@ -92,13 +94,27 @@ function echoQrbCalcLink($mygrid, $grid, $vucc) {
|
|||
// Get Default date format from /config/cloudlog.php
|
||||
$custom_date_format = $this->config->item('qso_date_format');
|
||||
}
|
||||
echo '<tr class="tr'.($i & 1).'" id ="qso_'. $row->COL_PRIMARY_KEY .'">'; ?>
|
||||
echo '<tr class="tr'.($i & 1).'" id="qso_'. $row->COL_PRIMARY_KEY .'">'; ?>
|
||||
<td><?php $timestamp = strtotime($row->COL_TIME_ON); echo date($custom_date_format, $timestamp); ?></td>
|
||||
<?php if(($this->config->item('use_auth') && ($this->session->userdata('user_type') >= 2)) || $this->config->item('use_auth') === FALSE || ($this->config->item('show_time'))) { ?>
|
||||
<td><?php $timestamp = strtotime($row->COL_TIME_ON); echo date('H:i', $timestamp); ?></td>
|
||||
<?php } ?>
|
||||
<td>
|
||||
<a id="edit_qso" href="javascript:displayQso(<?php echo $row->COL_PRIMARY_KEY; ?>)"><?php echo str_replace("0","Ø",strtoupper($row->COL_CALL)); ?></a>
|
||||
<?php
|
||||
if ($row->lastupload) {
|
||||
$lotw_hint = '';
|
||||
$diff = (time() - strtotime($row->lastupload)) / 86400;
|
||||
if ($diff > 365) {
|
||||
$lotw_hint = ' lotw_info_red';
|
||||
} elseif ($diff > 30) {
|
||||
$lotw_hint = ' lotw_info_orange';
|
||||
} elseif ($diff > 7) {
|
||||
$lotw_hint = ' lotw_info_yellow';
|
||||
}
|
||||
$timestamp = strtotime($row->lastupload); echo ($row->callsign == '' ? '' : ' <small id="lotw_info" class="badge badge-success'.$lotw_hint.'" data-toggle="tooltip" data-original-title="LoTW User. Last upload was '.date($custom_date_format." H:i", $timestamp).'">L</small>');
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
<?php
|
||||
|
||||
|
|
@ -109,7 +125,7 @@ function echoQrbCalcLink($mygrid, $grid, $vucc) {
|
|||
echo_table_col($row, $this->session->userdata('user_column5'));
|
||||
|
||||
if(($this->config->item('use_auth')) && ($this->session->userdata('user_type') >= 2)) { ?>
|
||||
<td class="qsl">
|
||||
<td id="qsl_<?php echo $row->COL_PRIMARY_KEY; ?>" class="qsl">
|
||||
<span <?php if ($row->COL_QSL_SENT != "N") {
|
||||
switch ($row->COL_QSL_SENT) {
|
||||
case "Y":
|
||||
|
|
|
|||
|
|
@ -135,13 +135,13 @@
|
|||
|
||||
switch ($measurement_base) {
|
||||
case 'M':
|
||||
$distance .= "mi";
|
||||
$distance .= " mi";
|
||||
break;
|
||||
case 'K':
|
||||
$distance .= "km";
|
||||
$distance .= " km";
|
||||
break;
|
||||
case 'N':
|
||||
$distance .= "nmi";
|
||||
$distance .= " nmi";
|
||||
break;
|
||||
}
|
||||
echo $distance;
|
||||
|
|
@ -391,7 +391,7 @@
|
|||
$hashtags .= " #IOTA ".$row->COL_IOTA;
|
||||
}
|
||||
if($row->COL_SOTA_REF != null) {
|
||||
$hashtags .= " #SOTA ".$row->COL_SOTA_EF;
|
||||
$hashtags .= " #SOTA ".$row->COL_SOTA_REF;
|
||||
}
|
||||
if($row->COL_POTA_REF != null) {
|
||||
$hashtags .= " #POTA ".$row->COL_POTA_REF;
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ function echo_table_header_col($ctx, $name) {
|
|||
case 'SOTA': echo '<th>'.$ctx->lang->line('gen_hamradio_sota').'</th>'; break;
|
||||
case 'State': echo '<th>'.$ctx->lang->line('gen_hamradio_state').'</th>'; break;
|
||||
case 'Grid': echo '<th>'.$ctx->lang->line('gen_hamradio_gridsquare').'</th>'; break;
|
||||
case 'Distance': echo '<th>'.$ctx->lang->line('gen_hamradio_distance').'</th>'; break;
|
||||
case 'Band': echo '<th>'.$ctx->lang->line('gen_hamradio_band').'</th>'; break;
|
||||
case 'Frequency': echo '<th>'.$ctx->lang->line('gen_hamradio_frequency').'</th>'; break;
|
||||
case 'Operator': echo '<th>'.$ctx->lang->line('gen_hamradio_operator').'</th>'; break;
|
||||
|
|
@ -27,6 +28,7 @@ function echo_table_col($row, $name) {
|
|||
case 'WWFF': echo '<td>' . ($row->COL_WWFF_REF) . '</td>'; break;
|
||||
case 'POTA': echo '<td>' . ($row->COL_POTA_REF) . '</td>'; break;
|
||||
case 'Grid': echo '<td>'; echoQrbCalcLink($row->station_gridsquare, $row->COL_VUCC_GRIDS, $row->COL_GRIDSQUARE); echo '</td>'; break;
|
||||
case 'Distance':echo '<td>' . ($row->COL_DISTANCE ? $row->COL_DISTANCE . ' km' : '') . '</td>'; break;
|
||||
case 'Band': echo '<td>'; if($row->COL_SAT_NAME != null) { echo '<a href="https://db.satnogs.org/search/?q='.$row->COL_SAT_NAME.'" target="_blank">'.$row->COL_SAT_NAME.'</a></td>'; } else { echo strtolower($row->COL_BAND); } echo '</td>'; break;
|
||||
case 'Frequency': echo '<td>'; if($row->COL_FREQ != null) { echo $ci->frequency->hz_to_mhz($row->COL_FREQ); } else { echo strtolower($row->COL_BAND); } echo '</td>'; break;
|
||||
case 'State': echo '<td>' . ($row->COL_STATE) . '</td>'; break;
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ thead > tr > td {
|
|||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.stationinfo #oqrssearch:valid {
|
||||
#oqrssearch:valid {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
|
|
@ -440,4 +440,16 @@ div#station_logbooks_linked_table_paginate {
|
|||
|
||||
#lotw_manual_results {
|
||||
padding-top: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.lotw_info_yellow {
|
||||
background-image: linear-gradient(to bottom, #3fb618, yellow);
|
||||
}
|
||||
|
||||
.lotw_info_orange {
|
||||
background-image: linear-gradient(to bottom, #3fb618, orange);
|
||||
}
|
||||
|
||||
.lotw_info_red {
|
||||
background-image: linear-gradient(to bottom, #3fb618, red);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ L.Maidenhead = L.LayerGroup.extend({
|
|||
initialize: function (options) {
|
||||
L.LayerGroup.prototype.initialize.call(this);
|
||||
L.Util.setOptions(this, options);
|
||||
|
||||
},
|
||||
|
||||
onAdd: function (map) {
|
||||
|
|
@ -37,16 +36,19 @@ L.Maidenhead = L.LayerGroup.extend({
|
|||
|
||||
redraw: function () {
|
||||
var d3 = new Array(20, 10, 10, 1, 1, 1, 1, 1, 1, 1, 1 / 24, 1 / 24, 1 / 24, 1 / 24, 1 / 24, 1 / 240, 1 / 240, 1 / 240, 1 / 240, 1 / 240 / 24, 1 / 240 / 24);
|
||||
var lat_cor = new Array(0, 8, 8, 8, 8, 1.7, 6, 8, 8, 8, 1.4, 2.5, 3, 3.5, 4, 4, 3.5, 3.5, 3, 1.8, 1.6);
|
||||
var lat_cor = new Array(0, 8, 8, 8, 2.5, 2.2, 6, 8, 8, 8, 1.4, 2.5, 3, 3.5, 4, 4, 3.5, 3.5, 3, 1.8, 1.6); // Used for gridsquare text offset
|
||||
var bounds = map.getBounds();
|
||||
var zoom = map.getZoom();
|
||||
console.log(zoom);
|
||||
var unit = d3[zoom];
|
||||
var lcor = lat_cor[zoom];
|
||||
var w = bounds.getWest();
|
||||
var e = bounds.getEast();
|
||||
var n = bounds.getNorth();
|
||||
var s = bounds.getSouth();
|
||||
if (zoom==1) {var c = 2;} else {var c = 0.1;}
|
||||
var field_lat_cor = new Array(0, 8, 8, 9, 8, 7, 6, 8, 8, 8, 1.4, 2.5, 3, 3.5, 4, 4, 3.5, 3.5, 3, 1.8, 1.6); // Used for field text offset
|
||||
var field_cor = field_lat_cor[zoom];
|
||||
if (zoom==1) {var c = 2;} else {var c = 0.2;} // Height offset
|
||||
if (n > 85) n = 85;
|
||||
if (s < -85) s = -85;
|
||||
var left = Math.floor(w/(unit*2))*(unit*2);
|
||||
|
|
@ -56,66 +58,82 @@ L.Maidenhead = L.LayerGroup.extend({
|
|||
this.eachLayer(this.removeLayer, this);
|
||||
|
||||
for (var lon = left; lon < right; lon += (unit*2)) {
|
||||
for (var lat = bottom; lat < top; lat += unit) {
|
||||
var bounds = [[lat,lon],[lat+unit,lon+(unit*2)]];
|
||||
|
||||
if(grid_two.includes(this._getLocator(lon,lat)) || grid_four.includes(this._getLocator(lon,lat)) || grid_six.includes(this._getLocator(lon,lat))) {
|
||||
|
||||
if(grid_two_confirmed.includes(this._getLocator(lon,lat)) || grid_four_confirmed.includes(this._getLocator(lon,lat)) || grid_six_confirmed.includes(this._getLocator(lon,lat))) {
|
||||
this.addLayer(L.rectangle(bounds, {className: 'grid-rectangle grid-confirmed', color: 'rgba(144,238,144, 0.6)', weight: 1, fillOpacity: 1, fill:true, interactive: false}));
|
||||
} else {
|
||||
this.addLayer(L.rectangle(bounds, {className: 'grid-rectangle grid-worked', color: this.options.color, weight: 1, fillOpacity: 1, fill:true, interactive: false}));
|
||||
}
|
||||
if (zoom < 2 || zoom > 4) {
|
||||
this.addLayer(this._getLabel(lon+unit-(unit/lcor),lat+(unit/2)+(unit/lcor*c)));
|
||||
}
|
||||
if (zoom < 3 ) {
|
||||
this.addLayer(L.rectangle(bounds, {className: 'grid-rectangle', color: this.options.color, weight: 1, fill:false, interactive: false}));
|
||||
}
|
||||
} else {
|
||||
if (zoom < 3 || zoom > 5) {
|
||||
this.addLayer(L.rectangle(bounds, {className: 'grid-rectangle', color: this.options.color, weight: 1, fill:false, interactive: false}));
|
||||
}
|
||||
}
|
||||
//var pont = map.latLngToLayerPoint([lat,lon]);
|
||||
//console.log(pont.x);
|
||||
if (zoom < 3 || zoom > 5) {
|
||||
this.addLayer(this._getLabel(lon+unit-(unit/lcor),lat+(unit/2)+(unit/lcor*c)));
|
||||
if (lon > -180 || lon < 180) {
|
||||
for (var lat = bottom; lat < top; lat += unit) {
|
||||
var bounds = [[lat,lon],[lat+unit,lon+(unit*2)]];
|
||||
var locator = this._getLocator(lon,lat);
|
||||
|
||||
if(grid_two.includes(locator) || grid_four.includes(locator) || grid_six.includes(locator)) {
|
||||
|
||||
if(grid_two_confirmed.includes(locator) || grid_four_confirmed.includes(locator) || grid_six_confirmed.includes(locator)) {
|
||||
var rectConfirmed = L.rectangle(bounds, {className: 'grid-rectangle grid-confirmed', color: 'rgba(144,238,144, 0.6)', weight: 1, fillOpacity: 1, fill:true, interactive: false});
|
||||
this.addLayer(rectConfirmed);
|
||||
} else {
|
||||
var rectWorked = L.rectangle(bounds, {className: 'grid-rectangle grid-worked', color: this.options.color, weight: 1, fillOpacity: 1, fill:true, interactive: false})
|
||||
this.addLayer(rectWorked);
|
||||
}
|
||||
// Controls text on grid on various zoom levels
|
||||
if (zoom < 2 || zoom > 2) {
|
||||
this.addLayer(this._getLabel(lon+unit-(unit/lcor),lat+(unit/2)+(unit/lcor*c)));
|
||||
}
|
||||
if (zoom < 3 ) {
|
||||
this.addLayer(L.rectangle(bounds, {className: 'grid-rectangle', color: this.options.color, weight: 1, fill:false, interactive: false}));
|
||||
}
|
||||
} else {
|
||||
if (zoom < 3 || zoom > 5) {
|
||||
this.addLayer(L.rectangle(bounds, {className: 'grid-rectangle', color: this.options.color, weight: 1, fill:false, interactive: false}));
|
||||
}
|
||||
}
|
||||
if (zoom < 3 || zoom > 5) {
|
||||
this.addLayer(this._getLabel(lon+unit-(unit/lcor),lat+(unit/2)+(unit/lcor*c)));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Added this to print fields and field name, while still showing worked/confirmed gridsquares
|
||||
if (zoom < 5 && zoom > 2) {
|
||||
if (zoom < 6 && zoom > 2) {
|
||||
unit = 10;
|
||||
var left = Math.floor(w / (unit * 2)) * (unit * 2);
|
||||
var right = Math.ceil(e / (unit * 2)) * (unit * 2);
|
||||
var top = Math.ceil(n / unit) * unit;
|
||||
var bottom = Math.floor(s / unit) * unit;
|
||||
for (var lon = left; lon < right; lon += (unit * 2)) {
|
||||
for (var lat = bottom; lat < top; lat += unit) {
|
||||
var bounds = [[lat, lon], [lat + unit, lon + (unit * 2)]];
|
||||
for (var lat = bottom; lat < top; lat += unit) {
|
||||
var bounds = [[lat, lon], [lat + unit, lon + (unit * 2)]];
|
||||
|
||||
this.addLayer(L.rectangle(bounds, {
|
||||
className: 'grid-rectangle',
|
||||
color: this.options.color,
|
||||
weight: 1,
|
||||
fill: false,
|
||||
interactive: false
|
||||
}));
|
||||
this.addLayer(this._getLabel2(lon + unit - (unit / lcor), lat + (unit / 2) + (unit / lcor * c)));
|
||||
}
|
||||
}
|
||||
this.addLayer(L.rectangle(bounds, {
|
||||
className: 'grid-rectangle',
|
||||
color: this.options.color,
|
||||
weight: 1,
|
||||
fill: false,
|
||||
interactive: false
|
||||
}));
|
||||
this.addLayer(this._getLabel2(lon + unit - (unit / field_cor), lat + (unit / 2) + (unit / lcor * c)));
|
||||
}
|
||||
}
|
||||
}
|
||||
return this;
|
||||
},
|
||||
|
||||
_getLabel: function(lon,lat) {
|
||||
var title_size = new Array(0, 10, 14, 16, 6, 13, 14, 16, 24, 36, 12, 14, 20, 36, 60, 12, 20, 36, 60, 12, 24);
|
||||
var title_size = new Array(0, 10, 14, 16, 8.5, 13, 14, 16, 24, 36, 12, 14, 20, 36, 60, 12, 20, 36, 60, 12, 24); // Controls text size on labels
|
||||
var zoom = map.getZoom();
|
||||
var size = title_size[zoom]+'px';
|
||||
var title = '<span class="grid-text" style="cursor: default;"><font style="color:'+this.options.color+'; font-size:'+size+'; font-weight: 900; ">' + this._getLocator(lon,lat) + '</font></span>';
|
||||
var myIcon = L.divIcon({className: 'my-div-icon', html: title});
|
||||
var title = '';
|
||||
var locator = this._getLocator(lon,lat);
|
||||
if (zoom != 4 && zoom != 3) {
|
||||
title = '<span class="grid-text" style="cursor: default;"><font style="color:'+this.options.color+'; font-size:'+size+'; font-weight: 900; ">' + locator + '</font></span>';
|
||||
}
|
||||
var myIcon = L.divIcon({className: 'my-div-icon', html: title});
|
||||
var marker = L.marker([lat,lon], {icon: myIcon}, clickable=false);
|
||||
if (zoom == 4 || zoom == 3) {
|
||||
marker.bindTooltip(locator);
|
||||
if (typeof gridsquaremap !== 'undefined' && gridsquaremap == true) {
|
||||
marker.on('click', function(event) {
|
||||
spawnGridsquareModal(locator);
|
||||
});
|
||||
}
|
||||
}
|
||||
return marker;
|
||||
},
|
||||
|
||||
|
|
|
|||
217
assets/js/leaflet/L.MaidenheadColouredGridMap.js
Normal file
217
assets/js/leaflet/L.MaidenheadColouredGridMap.js
Normal file
|
|
@ -0,0 +1,217 @@
|
|||
/*
|
||||
* L.Maidenhead displays a Maidenhead Locator of lines on the map.
|
||||
*/
|
||||
|
||||
L.Maidenhead = L.LayerGroup.extend({
|
||||
|
||||
|
||||
options: {
|
||||
// Line and label color
|
||||
color: 'rgba(255, 0, 0, 0.4)',
|
||||
|
||||
// Redraw on move or moveend
|
||||
redraw: 'move'
|
||||
},
|
||||
|
||||
initialize: function (options) {
|
||||
L.LayerGroup.prototype.initialize.call(this);
|
||||
L.Util.setOptions(this, options);
|
||||
},
|
||||
|
||||
onAdd: function (map) {
|
||||
this._map = map;
|
||||
var grid = this.redraw();
|
||||
this._map.on('viewreset '+ this.options.redraw, function () {
|
||||
grid.redraw();
|
||||
});
|
||||
|
||||
this.eachLayer(map.addLayer, map);
|
||||
},
|
||||
|
||||
onRemove: function (map) {
|
||||
// remove layer listeners and elements
|
||||
map.off('viewreset '+ this.options.redraw, this.map);
|
||||
this.eachLayer(this.removeLayer, this);
|
||||
},
|
||||
|
||||
redraw: function () {
|
||||
var d3 = new Array(20, 10, 10, 1, 1, 1, 1, 1, 1, 1, 1 / 24, 1 / 24, 1 / 24, 1 / 24, 1 / 24, 1 / 240, 1 / 240, 1 / 240, 1 / 240, 1 / 240 / 24, 1 / 240 / 24);
|
||||
var lat_cor = new Array(0, 8, 8, 8, 2.5, 2.2, 6, 8, 8, 8, 1.4, 2.5, 3, 3.5, 4, 4, 3.5, 3.5, 3, 1.8, 1.6); // Used for gridsquare text offset
|
||||
var bounds = map.getBounds();
|
||||
var zoom = map.getZoom();
|
||||
console.log(zoom);
|
||||
var unit = d3[zoom];
|
||||
var lcor = lat_cor[zoom];
|
||||
var w = bounds.getWest();
|
||||
var e = bounds.getEast();
|
||||
var n = bounds.getNorth();
|
||||
var s = bounds.getSouth();
|
||||
var field_lat_cor = new Array(0, 8, 8, 9, 8, 7, 6, 8, 8, 8, 1.4, 2.5, 3, 3.5, 4, 4, 3.5, 3.5, 3, 1.8, 1.6); // Used for field text offset
|
||||
var field_cor = field_lat_cor[zoom];
|
||||
if (zoom==1) {var c = 2;} else {var c = 0.2;} // Height offset
|
||||
if (n > 85) n = 85;
|
||||
if (s < -85) s = -85;
|
||||
var left = Math.floor(w/(unit*2))*(unit*2);
|
||||
var right = Math.ceil(e/(unit*2))*(unit*2);
|
||||
var top = Math.ceil(n/unit)*unit;
|
||||
var bottom = Math.floor(s/unit)*unit;
|
||||
this.eachLayer(this.removeLayer, this);
|
||||
|
||||
for (var lon = left; lon < right; lon += (unit*2)) {
|
||||
if (lon > -180 || lon < 180) {
|
||||
for (var lat = bottom; lat < top; lat += unit) {
|
||||
var bounds = [[lat,lon],[lat+unit,lon+(unit*2)]];
|
||||
var locator = this._getLocator(lon,lat);
|
||||
|
||||
if(grid_two.includes(locator) || grid_four.includes(locator) || grid_six.includes(locator)) {
|
||||
|
||||
if(grid_two_confirmed.includes(locator) || grid_four_confirmed.includes(locator) || grid_six_confirmed.includes(locator)) {
|
||||
var rectConfirmed = L.rectangle(bounds, {className: 'grid-rectangle grid-confirmed', color: 'rgba(144,238,144, 0.6)', weight: 1, fillOpacity: 1, fill:true, interactive: false});
|
||||
this.addLayer(rectConfirmed);
|
||||
} else {
|
||||
var rectWorked = L.rectangle(bounds, {className: 'grid-rectangle grid-worked', color: this.options.color, weight: 1, fillOpacity: 1, fill:true, interactive: false})
|
||||
this.addLayer(rectWorked);
|
||||
}
|
||||
// Controls text on grid on various zoom levels
|
||||
if (zoom < 2 || zoom > 2) {
|
||||
this.addLayer(this._getLabel(lon+unit-(unit/lcor),lat+(unit/2)+(unit/lcor*c)));
|
||||
}
|
||||
if (zoom < 3 ) {
|
||||
this.addLayer(L.rectangle(bounds, {className: 'grid-rectangle', color: this.options.color, weight: 1, fill:false, interactive: false}));
|
||||
}
|
||||
} else {
|
||||
if (zoom < 3 || zoom > 5) {
|
||||
this.addLayer(L.rectangle(bounds, {className: 'grid-rectangle', color: this.options.color, weight: 1, fill:false, interactive: false}));
|
||||
}
|
||||
}
|
||||
// This one shows all grids, not just the worked/confirmed
|
||||
if (zoom < 3 || zoom > 5) {
|
||||
this.addLayer(this._getLabel(lon+unit-(unit/lcor),lat+(unit/2)+(unit/lcor*c)));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Added this to print fields and field name, while still showing worked/confirmed gridsquares
|
||||
if (zoom < 6 && zoom > 2) {
|
||||
unit = 10;
|
||||
var left = Math.floor(w / (unit * 2)) * (unit * 2);
|
||||
var right = Math.ceil(e / (unit * 2)) * (unit * 2);
|
||||
var top = Math.ceil(n / unit) * unit;
|
||||
var bottom = Math.floor(s / unit) * unit;
|
||||
for (var lon = left; lon < right; lon += (unit * 2)) {
|
||||
for (var lat = bottom; lat < top; lat += unit) {
|
||||
var bounds = [[lat, lon], [lat + unit, lon + (unit * 2)]];
|
||||
|
||||
this.addLayer(L.rectangle(bounds, {
|
||||
className: 'grid-rectangle',
|
||||
color: this.options.color,
|
||||
weight: 1,
|
||||
fill: false,
|
||||
interactive: false
|
||||
}));
|
||||
this.addLayer(this._getLabel2(lon + unit - (unit / field_cor), lat + (unit / 2) + (unit / lcor * c)));
|
||||
}
|
||||
}
|
||||
}
|
||||
return this;
|
||||
},
|
||||
|
||||
_getLabel: function(lon,lat) {
|
||||
var title_size = new Array(0, 10, 14, 16, 8.5, 13, 14, 16, 24, 36, 12, 14, 20, 36, 60, 12, 20, 36, 60, 12, 24); // Controls text size on labels
|
||||
var zoom = map.getZoom();
|
||||
var size = title_size[zoom]+'px';
|
||||
var title = '';
|
||||
var locator = this._getLocator(lon,lat);
|
||||
if (zoom != 3) {
|
||||
title = '<span class="grid-text" style="cursor: default;"><font style="color:'+this.options.color+'; font-size:'+size+'; font-weight: 900; ">' + locator + '</font></span>';
|
||||
}
|
||||
var myIcon = L.divIcon({className: 'my-div-icon', html: title});
|
||||
var marker = L.marker([lat,lon], {icon: myIcon}, clickable=false);
|
||||
if (zoom == 4 || zoom == 3) {
|
||||
marker.bindTooltip(locator);
|
||||
}
|
||||
if (typeof gridsquaremap !== 'undefined' && gridsquaremap == true) {
|
||||
marker.on('click', function(event) {
|
||||
spawnGridsquareModal(locator);
|
||||
});
|
||||
}
|
||||
return marker;
|
||||
},
|
||||
|
||||
_getLocator: function(lon,lat) {
|
||||
var ydiv_arr=new Array(10, 1, 1/24, 1/240, 1/240/24);
|
||||
var d1 = "ABCDEFGHIJKLMNOPQR".split("");
|
||||
var d2 = "ABCDEFGHIJKLMNOPQRSTUVWX".split("");
|
||||
var d4 = new Array(0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5);
|
||||
var locator = "";
|
||||
var x = lon;
|
||||
var y = lat;
|
||||
var precision = d4[map.getZoom()];
|
||||
while (x < -180) {x += 360;}
|
||||
while (x > 180) {x -=360;}
|
||||
x = x + 180;
|
||||
y = y + 90;
|
||||
locator = locator + d1[Math.floor(x/20)] + d1[Math.floor(y/10)];
|
||||
for (var i=0; i<4; i=i+1) {
|
||||
if (precision > i+1) {
|
||||
rlon = x%(ydiv_arr[i]*2);
|
||||
rlat = y%(ydiv_arr[i]);
|
||||
if ((i%2)==0) {
|
||||
locator += Math.floor(rlon/(ydiv_arr[i+1]*2)) +""+ Math.floor(rlat/(ydiv_arr[i+1]));
|
||||
} else {
|
||||
locator += d2[Math.floor(rlon/(ydiv_arr[i+1]*2))] +""+ d2[Math.floor(rlat/(ydiv_arr[i+1]))];
|
||||
}
|
||||
}
|
||||
}
|
||||
return locator;
|
||||
},
|
||||
|
||||
/*
|
||||
Need this for the field printing, while showing worked/confirmed grids
|
||||
*/
|
||||
_getLabel2: function(lon,lat) {
|
||||
var title_size = new Array(0, 10, 12, 16, 20, 26, 26, 16, 24, 36, 12, 14, 20, 36, 60, 12, 20, 36, 60, 12, 24);
|
||||
var zoom = map.getZoom();
|
||||
var size = title_size[zoom]+'px';
|
||||
var title = '<span class="grid-text" style="cursor: default;"><font style="color:'+this.options.color+'; font-size:'+size+'; font-weight: 900; ">' + this._getLocator2(lon,lat) + '</font></span>';
|
||||
var myIcon = L.divIcon({className: 'my-div-icon', html: title});
|
||||
var marker = L.marker([lat,lon], {icon: myIcon}, clickable=false);
|
||||
return marker;
|
||||
},
|
||||
|
||||
/*
|
||||
Need this for the field printing, while showing worked/confirmed grids
|
||||
*/
|
||||
_getLocator2: function(lon,lat) {
|
||||
var ydiv_arr=new Array(10, 1, 1/24, 1/240, 1/240/24);
|
||||
var d1 = "ABCDEFGHIJKLMNOPQR".split("");
|
||||
var d2 = "ABCDEFGHIJKLMNOPQRSTUVWX".split("");
|
||||
var d4 = new Array(0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5);
|
||||
var locator = "";
|
||||
var x = lon;
|
||||
var y = lat;
|
||||
var precision = d4[map.getZoom()];
|
||||
while (x < -180) {x += 360;}
|
||||
while (x > 180) {x -=360;}
|
||||
x = x + 180;
|
||||
y = y + 90;
|
||||
locator = locator + d1[Math.floor(x/20)] + d1[Math.floor(y/10)];
|
||||
for (var i=0; i<4; i=i+1) {
|
||||
if (precision > i+1) {
|
||||
rlon = x%(ydiv_arr[i]*2);
|
||||
rlat = y%(ydiv_arr[i]);
|
||||
if ((i%2)==0) {
|
||||
locator += Math.floor(rlon/(ydiv_arr[i+1]*2)) +""+ Math.floor(rlat/(ydiv_arr[i+1]));
|
||||
} else {
|
||||
locator += d2[Math.floor(rlon/(ydiv_arr[i+1]*2))] +""+ d2[Math.floor(rlat/(ydiv_arr[i+1]))];
|
||||
}
|
||||
}
|
||||
}
|
||||
return locator;
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
L.maidenhead = function (options) {
|
||||
return new L.Maidenhead(options);
|
||||
};
|
||||
|
|
@ -7,7 +7,7 @@ function qsl_rcvd(id, method) {
|
|||
},
|
||||
success: function(data) {
|
||||
if (data.message == 'OK') {
|
||||
$("#qso_" + id).find("td:eq(8)").find("span:eq(1)").attr('class', 'qsl-green'); // Paints arrow green
|
||||
$("#qsl_" + id).find("span:eq(1)").attr('class', 'qsl-green'); // Paints arrow green
|
||||
$(".qsl_rcvd_" + id).remove(); // removes choice from menu
|
||||
}
|
||||
else {
|
||||
|
|
@ -26,7 +26,7 @@ function qsl_sent(id, method) {
|
|||
},
|
||||
success: function(data) {
|
||||
if (data.message == 'OK') {
|
||||
$("#qso_" + id).find("td:eq(8)").find("span:eq(0)").attr('class', 'qsl-green'); // Paints arrow green
|
||||
$("#qsl_" + id).find("span:eq(0)").attr('class', 'qsl-green'); // Paints arrow green
|
||||
$(".qsl_sent_" + id).remove(); // removes choice from menu
|
||||
}
|
||||
else {
|
||||
|
|
@ -47,7 +47,7 @@ function qsl_requested(id, method) {
|
|||
},
|
||||
success: function(data) {
|
||||
if (data.message == 'OK') {
|
||||
$("#qso_" + id).find("td:eq(8)").find("span:eq(0)").attr('class', 'qsl-yellow'); // Paints arrow green
|
||||
$("#qsl_" + id).find("span:eq(0)").attr('class', 'qsl-yellow'); // Paints arrow yellow
|
||||
}
|
||||
else {
|
||||
$(".bootstrap-dialog-message").append('<div class="alert alert-danger"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>You are not allowed to update QSL status!</div>');
|
||||
|
|
@ -67,7 +67,7 @@ function qsl_ignore(id, method) {
|
|||
},
|
||||
success: function(data) {
|
||||
if (data.message == 'OK') {
|
||||
$("#qso_" + id).find("td:eq(8)").find("span:eq(0)").attr('class', 'qsl-grey'); // Paints arrow grey
|
||||
$("#qsl_" + id).find("span:eq(0)").attr('class', 'qsl-grey'); // Paints arrow grey
|
||||
}
|
||||
else {
|
||||
$(".bootstrap-dialog-message").append('<div class="alert alert-danger"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>You are not allowed to update QSL status!</div>');
|
||||
|
|
@ -138,6 +138,15 @@ function qso_edit(id) {
|
|||
}
|
||||
});
|
||||
|
||||
$('#locator').change(function(){
|
||||
if ($(this).val().length >= 4) {
|
||||
$('#locator_info').load("logbook/searchbearing/" + $(this).val() + "/" + $('#stationProfile').val()).fadeIn("slow");
|
||||
$.get('logbook/searchdistance/' + $(this).val() + "/" + $('#stationProfile').val(), function(result) {
|
||||
document.getElementById("distance").value = result;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$('#sota_ref_edit').selectize({
|
||||
maxItems: 1,
|
||||
closeAfterSelect: true,
|
||||
|
|
|
|||
145
assets/js/sections/gridmap.js
Normal file
145
assets/js/sections/gridmap.js
Normal file
|
|
@ -0,0 +1,145 @@
|
|||
$('#band').change(function(){
|
||||
var band = $("#band option:selected").text();
|
||||
if (band != "SAT") {
|
||||
$("#sats").prop('disabled', true);
|
||||
} else {
|
||||
$("#sats").prop('disabled', false);
|
||||
}
|
||||
});
|
||||
|
||||
var map;
|
||||
var grid_two = '';
|
||||
var grid_four = '';
|
||||
var grid_six = '';
|
||||
var grid_two_confirmed = '';
|
||||
var grid_four_confirmed = '';
|
||||
var grid_six_confirmed = '';
|
||||
|
||||
function gridPlot(form) {
|
||||
$(".ld-ext-right").addClass('running');
|
||||
$(".ld-ext-right").prop('disabled', true);
|
||||
$('#plot').prop("disabled", true);
|
||||
// If map is already initialized
|
||||
var container = L.DomUtil.get('gridsquare_map');
|
||||
|
||||
if(container != null){
|
||||
container._leaflet_id = null;
|
||||
container.remove();
|
||||
$("#gridmapcontainer").append('<div id="gridsquare_map" style="width: 100%; height: 800px"></div>');
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: site_url + '/gridmap/getGridsjs',
|
||||
type: 'post',
|
||||
data: {
|
||||
band: $("#band").val(),
|
||||
mode: $("#mode").val(),
|
||||
qsl: $("#qsl").is(":checked"),
|
||||
lotw: $("#lotw").is(":checked"),
|
||||
eqsl: $("#eqsl").is(":checked"),
|
||||
sat: $("#sats").val(),
|
||||
},
|
||||
success: function (data) {
|
||||
$(".ld-ext-right").removeClass('running');
|
||||
$(".ld-ext-right").prop('disabled', false);
|
||||
$('#plot').prop("disabled", false);
|
||||
grid_two = data.grid_2char;
|
||||
grid_four = data.grid_4char;
|
||||
grid_six = data.grid_6char;
|
||||
grid_two_confirmed = data.grid_2char_confirmed;
|
||||
grid_four_confirmed = data.grid_4char_confirmed;
|
||||
grid_six_confirmed = data.grid_6char_confirmed;
|
||||
var layer = L.tileLayer(jslayer, {
|
||||
maxZoom: 9,
|
||||
attribution: jsattribution,
|
||||
id: 'mapbox.streets'
|
||||
});
|
||||
|
||||
map = L.map('gridsquare_map', {
|
||||
layers: [layer],
|
||||
center: [19, 0],
|
||||
zoom: 3,
|
||||
minZoom: 2,
|
||||
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>" + gridsquares_gridsquares + "</h4>";
|
||||
div.innerHTML += '<i style="background: green"></i><span>' + gridsquares_gridsquares_confirmed + ' ('+grid_four_confirmed.length+')</span><br>';
|
||||
div.innerHTML += '<i style="background: red"></i><span>' + gridsquares_gridsquares_not_confirmed + ' ('+(grid_four.length - grid_four_confirmed.length)+')</span><br>';
|
||||
div.innerHTML += '<i></i><span>' + gridsquares_gridsquares_total_worked + ' ('+grid_four.length+')</span><br>';
|
||||
return div;
|
||||
};
|
||||
|
||||
legend.addTo(map);
|
||||
|
||||
var maidenhead = L.maidenhead().addTo(map);
|
||||
},
|
||||
error: function (data) {
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
function spawnGridsquareModal(loc_4char) {
|
||||
$.ajax({
|
||||
url: base_url + 'index.php/awards/qso_details_ajax',
|
||||
type: 'post',
|
||||
data: {
|
||||
'Searchphrase': loc_4char,
|
||||
'Band': $("#band").val(),
|
||||
'Mode': $("#mode").val(),
|
||||
'Type': 'VUCC'
|
||||
},
|
||||
success: function (html) {
|
||||
BootstrapDialog.show({
|
||||
title: 'QSO Data',
|
||||
cssClass: 'qso-dialog',
|
||||
size: BootstrapDialog.SIZE_WIDE,
|
||||
nl2br: false,
|
||||
message: html,
|
||||
onshown: function(dialog) {
|
||||
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
$('.contacttable').DataTable({
|
||||
"pageLength": 25,
|
||||
responsive: false,
|
||||
ordering: false,
|
||||
"scrollY": "550px",
|
||||
"scrollCollapse": true,
|
||||
"paging": false,
|
||||
"scrollX": true,
|
||||
dom: 'Bfrtip',
|
||||
buttons: [
|
||||
'csv'
|
||||
]
|
||||
});
|
||||
// change color of csv-button if dark mode is chosen
|
||||
if (isDarkModeTheme()) {
|
||||
$(".buttons-csv").css("color", "white");
|
||||
}
|
||||
},
|
||||
buttons: [{
|
||||
label: 'Close',
|
||||
action: function(dialogItself) {
|
||||
dialogItself.close();
|
||||
}
|
||||
}]
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
16
assets/js/sections/labels.js
Normal file
16
assets/js/sections/labels.js
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
$('.labeltable').on('click', 'input[type="checkbox"]', function() {
|
||||
var clickedlabelid = $(this).closest('tr').attr("class");
|
||||
clickedlabelid = clickedlabelid.match(/\d+/)[0];
|
||||
saveDefault(clickedlabelid);
|
||||
$('input:checkbox').not(this).prop('checked', false);
|
||||
});
|
||||
|
||||
function saveDefault(id) {
|
||||
$.ajax({
|
||||
url: base_url + 'index.php/labels/saveDefaultLabel',
|
||||
type: 'post',
|
||||
data: {'id': id},
|
||||
success: function (html) {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -26,13 +26,13 @@ function updateRow(qso) {
|
|||
let c = 1;
|
||||
cells.eq(c++).text(qso.qsoDateTime);
|
||||
cells.eq(c++).text(qso.de);
|
||||
cells.eq(c++).html('<a id="edit_qso" href="javascript:displayQso('+qso.qsoID+')">'+qso.dx+'</a>' + (qso.callsign == '' ? '' : ' <small id="lotw_info" class="badge badge-success" data-toggle="tooltip" data-original-title="LoTW User. Last upload was ' + qso.lastupload + '">L</small>'));
|
||||
cells.eq(c++).html('<a id="edit_qso" href="javascript:displayQso('+qso.qsoID+')">'+qso.dx+'</a>' + (qso.callsign == '' ? '' : ' <small id="lotw_info" class="badge badge-success'+qso.lotw_hint+'" data-toggle="tooltip" data-original-title="LoTW User. Last upload was ' + qso.lastupload + '">L</small>') + ' <a target="_blank" href="https://www.qrz.com/db/'+qso.dx+'"><img width="16" height="16" src="'+base_url+ 'images/icons/qrz.png" alt="Lookup ' + qso.dx + ' on QRZ.com"></a> <a target="_blank" href="https://www.hamqth.com/'+qso.dx+'"><img width="16" height="16" src="'+base_url+ 'images/icons/hamqth.png" alt="Lookup ' + qso.dx + ' on HamQTH"></a>');
|
||||
cells.eq(c++).text(qso.mode);
|
||||
cells.eq(c++).text(qso.rstS);
|
||||
cells.eq(c++).text(qso.rstR);
|
||||
cells.eq(c++).text(qso.band);
|
||||
cells.eq(c++).text(qso.deRefs);
|
||||
cells.eq(c++).text(qso.dxRefs);
|
||||
cells.eq(c++).html(qso.dxRefs);
|
||||
cells.eq(c++).text(qso.name);
|
||||
cells.eq(c++).text(qso.qslVia);
|
||||
cells.eq(c++).html(qso.qsl);
|
||||
|
|
@ -46,7 +46,7 @@ function updateRow(qso) {
|
|||
cells.eq(c++).text(qso.dxcc);
|
||||
cells.eq(c++).text(qso.state);
|
||||
cells.eq(c++).text(qso.cqzone);
|
||||
cells.eq(c++).text(qso.iota);
|
||||
cells.eq(c++).html(qso.iota);
|
||||
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
return row;
|
||||
|
|
@ -81,7 +81,7 @@ function loadQSOTable(rows) {
|
|||
data.push('<div class="form-check"><input class="form-check-input" type="checkbox" /></div>');
|
||||
data.push(qso.qsoDateTime);
|
||||
data.push(qso.de);
|
||||
data.push('<a id="edit_qso" href="javascript:displayQso('+qso.qsoID+')">'+qso.dx+'</a>' + (qso.callsign == '' ? '' : ' <small id="lotw_info" class="badge badge-success" data-toggle="tooltip" data-original-title="LoTW User. Last upload was ' + qso.lastupload + ' ">L</small>'));
|
||||
data.push('<a id="edit_qso" href="javascript:displayQso('+qso.qsoID+')">'+qso.dx+'</a>' + (qso.callsign == '' ? '' : ' <small id="lotw_info" class="badge badge-success'+qso.lotw_hint+'" data-toggle="tooltip" data-original-title="LoTW User. Last upload was ' + qso.lastupload + ' ">L</small>') + ' <a target="_blank" href="https://www.qrz.com/db/'+qso.dx+'"><img width="16" height="16" src="'+base_url+ 'images/icons/qrz.png" alt="Lookup ' + qso.dx + ' on QRZ.com"></a> <a target="_blank" href="https://www.hamqth.com/'+qso.dx+'"><img width="16" height="16" src="'+base_url+ 'images/icons/hamqth.png" alt="Lookup ' + qso.dx + ' on HamQTH"></a>');
|
||||
data.push(qso.mode);
|
||||
data.push(qso.rstS);
|
||||
data.push(qso.rstR);
|
||||
|
|
@ -348,6 +348,65 @@ $(document).ready(function () {
|
|||
$('#notRequired').click(function (event) {
|
||||
handleQsl('I','', 'notRequired');
|
||||
});
|
||||
$('#receivedBureau').click(function (event) {
|
||||
handleQslReceived('Y','B', 'receivedBureau');
|
||||
});
|
||||
$('#receivedDirect').click(function (event) {
|
||||
handleQslReceived('Y','D', 'receivedDirect');
|
||||
});
|
||||
|
||||
$('#printLabel').click(function (event) {
|
||||
var elements = $('#qsoList tbody input:checked');
|
||||
var nElements = elements.length;
|
||||
if (nElements == 0) {
|
||||
return;
|
||||
}
|
||||
$('#printLabel').prop("disabled", true);
|
||||
|
||||
var id_list=[];
|
||||
|
||||
elements.each(function() {
|
||||
let id = $(this).first().closest('tr').data('qsoID')
|
||||
id_list.push(id);
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
url: base_url + 'index.php/labels/printids',
|
||||
type: 'post',
|
||||
data: {'id': JSON.stringify(id_list, null, 2) },
|
||||
xhr:function(){
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.responseType= 'blob'
|
||||
return xhr;
|
||||
},
|
||||
success: function(data) {
|
||||
if(data){
|
||||
var file = new Blob([data], {type: 'application/pdf'});
|
||||
var fileURL = URL.createObjectURL(file);
|
||||
window.open(fileURL);
|
||||
}
|
||||
$.each(id_list, function(k, v) {
|
||||
unselectQsoID(this);
|
||||
});
|
||||
$('#printLabel').prop("disabled", false);
|
||||
},
|
||||
error: function (data) {
|
||||
BootstrapDialog.alert({
|
||||
title: 'ERROR',
|
||||
message: 'Something went wrong with label print. Go to labels and check if you have defined a label, and that it is set for print!',
|
||||
type: BootstrapDialog.TYPE_DANGER,
|
||||
closable: false,
|
||||
draggable: false,
|
||||
callback: function (result) {
|
||||
}
|
||||
});
|
||||
$.each(id_list, function(k, v) {
|
||||
unselectQsoID(this);
|
||||
});
|
||||
$('#printLabel').prop("disabled", false);
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
$('#searchForm').on('reset', function(e) {
|
||||
setTimeout(function() {
|
||||
|
|
@ -386,6 +445,37 @@ $(document).ready(function () {
|
|||
});
|
||||
}
|
||||
|
||||
function handleQslReceived(sent, method, tag) {
|
||||
var elements = $('#qsoList tbody input:checked');
|
||||
var nElements = elements.length;
|
||||
if (nElements == 0) {
|
||||
return;
|
||||
}
|
||||
$('#'+tag).prop("disabled", true);
|
||||
var id_list=[];
|
||||
elements.each(function() {
|
||||
let id = $(this).first().closest('tr').data('qsoID')
|
||||
id_list.push(id);
|
||||
});
|
||||
$.ajax({
|
||||
url: base_url + 'index.php/logbookadvanced/update_qsl_received',
|
||||
type: 'post',
|
||||
data: {'id': JSON.stringify(id_list, null, 2),
|
||||
'sent' : sent,
|
||||
'method' : method
|
||||
},
|
||||
success: function(data) {
|
||||
if (data !== []) {
|
||||
$.each(data, function(k, v) {
|
||||
updateRow(this);
|
||||
unselectQsoID(this.qsoID);
|
||||
});
|
||||
}
|
||||
$('#'+tag).prop("disabled", false);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$('#checkBoxAll').change(function (event) {
|
||||
if (this.checked) {
|
||||
$('#qsoList tbody tr').each(function (i) {
|
||||
|
|
|
|||
|
|
@ -1,14 +1,17 @@
|
|||
let station_id;
|
||||
|
||||
function loadStationInfo() {
|
||||
$(".stationinfo").empty();
|
||||
station_id = $("#station").val();
|
||||
$(".resulttable").empty();
|
||||
$(".searchinfo").empty();
|
||||
$.ajax({
|
||||
url: base_url+'index.php/oqrs/get_station_info',
|
||||
type: 'post',
|
||||
data: {'station_id': $("#station").val()},
|
||||
data: {'station_id': station_id},
|
||||
success: function (data) {
|
||||
if (data.count > 0) {
|
||||
$(".stationinfo").append('<br />' + data.count + ' Qsos logged between ' + data.mindate + ' and ' + data.maxdate + '.<br /><br />');
|
||||
$(".stationinfo").append('<form class="form-inline" onsubmit="return false;"><label class="my-1 mr-2" for="oqrssearch">Enter your callsign: </label><input class="form-control mr-sm-2" id="oqrssearch" type="search" name="callsign" placeholder="Search Callsign" aria-label="Search" required="required"><button onclick="searchOqrs();" class="btn btn-sm btn-primary" id="stationbuttonsubmit" type="button"><i class="fas fa-search"></i> Search</button></form>');
|
||||
$(".resulttable").append('<br />' + data.count + ' Qsos logged between ' + data.mindate + ' and ' + data.maxdate + '.<br /><br />');
|
||||
$(".resulttable").append('<form class="form-inline" onsubmit="return false;"><label class="my-1 mr-2" for="oqrssearch">Enter your callsign: </label><input class="form-control mr-sm-2" id="oqrssearch" type="search" name="callsign" placeholder="Search Callsign" aria-label="Search" required="required"><button onclick="searchOqrs();" class="btn btn-sm btn-primary" id="stationbuttonsubmit" type="button"><i class="fas fa-search"></i> Search</button></form>');
|
||||
// Get the input field
|
||||
var input = document.getElementById("oqrssearch");
|
||||
|
||||
|
|
@ -34,7 +37,7 @@ function searchOqrs() {
|
|||
$.ajax({
|
||||
url: base_url+'index.php/oqrs/get_qsos',
|
||||
type: 'post',
|
||||
data: {'station_id': $("#station").val(), 'callsign': $("#oqrssearch").val().toUpperCase()},
|
||||
data: {'station_id': station_id, 'callsign': $("#oqrssearch").val().toUpperCase()},
|
||||
success: function (data) {
|
||||
$(".searchinfo").append(data);
|
||||
}
|
||||
|
|
@ -68,6 +71,20 @@ function searchOqrsGrouped() {
|
|||
"paging": false,
|
||||
"scrollX": true,
|
||||
});
|
||||
|
||||
// Get the input field
|
||||
var input = document.getElementById("emailInput");
|
||||
|
||||
// Execute a function when the user presses a key on the keyboard
|
||||
input.addEventListener("keypress", function(event) {
|
||||
// If the user presses the "Enter" key on the keyboard
|
||||
if (event.key === "Enter") {
|
||||
// Cancel the default action, if needed
|
||||
event.preventDefault();
|
||||
// Trigger the button element with a click
|
||||
document.getElementById("requestGroupedSubmit").click();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -76,7 +93,7 @@ function notInLog() {
|
|||
$.ajax({
|
||||
url: base_url + 'index.php/oqrs/not_in_log',
|
||||
type: 'post',
|
||||
data: {'station_id': $("#station").val(), 'callsign': $("#oqrssearch").val().toUpperCase()},
|
||||
data: {'station_id': station_id, 'callsign': $("#oqrssearch").val().toUpperCase()},
|
||||
success: function(html) {
|
||||
$(".searchinfo").html(html);
|
||||
$('.qsotime').change(function() {
|
||||
|
|
@ -94,11 +111,11 @@ function notInLog() {
|
|||
}
|
||||
|
||||
function saveNotInLogRequest() {
|
||||
const qsos = [];
|
||||
$(".alertinfo").remove();
|
||||
if ($("#emailInput").val() == '') {
|
||||
$(".searchinfo").prepend('<div class="alertinfo"><br /><div class="alert alert-warning"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>You need to fill out an email address!</div></div>');
|
||||
} else {
|
||||
const qsos = [];
|
||||
$(".notinlog-table tbody tr").each(function(i) {
|
||||
var data = [];
|
||||
var datecell = $("#date", this).val();
|
||||
|
|
@ -119,7 +136,7 @@ function saveNotInLogRequest() {
|
|||
$.ajax({
|
||||
url: base_url+'index.php/oqrs/save_not_in_log',
|
||||
type: 'post',
|
||||
data: { 'station_id': $("#station").val(),
|
||||
data: { 'station_id': station_id,
|
||||
'callsign': $("#oqrssearch").val().toUpperCase(),
|
||||
'email': $("#emailInput").val(),
|
||||
'message': $("#messageInput").val(),
|
||||
|
|
@ -166,7 +183,7 @@ function requestOqrs() {
|
|||
$.ajax({
|
||||
url: base_url + 'index.php/oqrs/request_form',
|
||||
type: 'post',
|
||||
data: {'station_id': $("#station").val(), 'callsign': $("#oqrssearch").val().toUpperCase()},
|
||||
data: {'station_id': station_id, 'callsign': $("#oqrssearch").val().toUpperCase()},
|
||||
success: function(html) {
|
||||
$(".searchinfo").html(html);
|
||||
/* time input shortcut */
|
||||
|
|
@ -189,16 +206,29 @@ function requestOqrs() {
|
|||
"paging": false,
|
||||
"scrollX": true,
|
||||
});
|
||||
// Get the input field
|
||||
var input = document.getElementById("emailInput");
|
||||
|
||||
// Execute a function when the user presses a key on the keyboard
|
||||
input.addEventListener("keypress", function(event) {
|
||||
// If the user presses the "Enter" key on the keyboard
|
||||
if (event.key === "Enter") {
|
||||
// Cancel the default action, if needed
|
||||
event.preventDefault();
|
||||
// Trigger the button element with a click
|
||||
document.getElementById("requestSubmit").click();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function submitOqrsRequest() {
|
||||
const qsos = [];
|
||||
$(".alertinfo").remove();
|
||||
if ($("#emailInput").val() == '') {
|
||||
$(".searchinfo").prepend('<div class="alertinfo"><br /><div class="alert alert-warning"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>You need to fill out an email address!</div></div>');
|
||||
} else {
|
||||
const qsos = [];
|
||||
$(".result-table tbody tr").each(function(i) {
|
||||
var data = [];
|
||||
var datecell = $("#date", this).val();
|
||||
|
|
@ -220,7 +250,7 @@ function submitOqrsRequest() {
|
|||
$.ajax({
|
||||
url: base_url+'index.php/oqrs/save_oqrs_request',
|
||||
type: 'post',
|
||||
data: { 'station_id': $("#station").val(),
|
||||
data: { 'station_id': station_id,
|
||||
'callsign': $("#oqrssearch").val().toUpperCase(),
|
||||
'email': $("#emailInput").val(),
|
||||
'message': $("#messageInput").val(),
|
||||
|
|
@ -228,6 +258,7 @@ function submitOqrsRequest() {
|
|||
'qslroute': $('input[name="qslroute"]:checked').val()
|
||||
},
|
||||
success: function (data) {
|
||||
$(".resulttable").empty();
|
||||
$(".stationinfo").empty();
|
||||
$(".searchinfo").empty();
|
||||
$(".stationinfo").append('<br /><div class="alert alert-success"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>Your QSL request has been saved!</div>');
|
||||
|
|
@ -238,11 +269,11 @@ function submitOqrsRequest() {
|
|||
}
|
||||
|
||||
function submitOqrsRequestGrouped() {
|
||||
const qsos = [];
|
||||
$(".alertinfo").remove();
|
||||
if ($("#emailInput").val() == '') {
|
||||
$(".searchinfo").prepend('<div class="alertinfo"><br /><div class="alert alert-warning"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>You need to fill out an email address!</div></div>');
|
||||
} else {
|
||||
const qsos = [];
|
||||
$(".result-table tbody tr").each(function(i) {
|
||||
var data = [];
|
||||
var stationid = this.getAttribute('stationid');;
|
||||
|
|
@ -276,7 +307,7 @@ function submitOqrsRequestGrouped() {
|
|||
success: function (data) {
|
||||
$(".stationinfo").empty();
|
||||
$(".searchinfo").empty();
|
||||
$(".searchinfo").append('<br /><div class="alert alert-success"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>Your QSL request has been saved!</div>');
|
||||
$(".stationinfo").append('<br /><div class="alert alert-success"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>Your QSL request has been saved!</div>');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -506,6 +506,11 @@ $("#callsign").focusout(function() {
|
|||
$('#locator').val(result.callsign_qra);
|
||||
$('#locator_info').html(result.bearing);
|
||||
|
||||
if (result.callsign_distance != "" && result.callsign_distance != 0)
|
||||
{
|
||||
document.getElementById("distance").value = result.callsign_distance;
|
||||
}
|
||||
|
||||
if (result.callsign_qra != "")
|
||||
{
|
||||
if (result.workedBefore)
|
||||
|
|
@ -706,6 +711,9 @@ $("#locator").keyup(function(){
|
|||
})
|
||||
|
||||
$('#locator_info').load("logbook/searchbearing/" + $(this).val() + "/" + $('#stationProfile').val()).fadeIn("slow");
|
||||
$.get('logbook/searchdistance/' + $(this).val() + "/" + $('#stationProfile').val(), function(result) {
|
||||
document.getElementById("distance").value = result;
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,5 +1,28 @@
|
|||
$(document).ready( function () {
|
||||
|
||||
// Use Jquery to hide div ca_state
|
||||
|
||||
$('#station_locations_table').DataTable({
|
||||
"stateSave": true
|
||||
});
|
||||
|
||||
$("#canada_state").hide();
|
||||
|
||||
var selectedDXCCID = $('#dxcc_select').find(":selected").val();
|
||||
|
||||
if(selectedDXCCID == '1'){
|
||||
$("#canada_state").show();
|
||||
$("#us_state").hide();
|
||||
}
|
||||
|
||||
$('#dxcc_select').change(function(){
|
||||
if($(this).val() == '1'){ // or this.value == 'volvo'
|
||||
console.log("CANADA!");
|
||||
$("#canada_state").show();
|
||||
$("#us_state").hide();
|
||||
} else {
|
||||
$("#canada_state").hide();
|
||||
$("#us_state").show();
|
||||
}
|
||||
});
|
||||
} );
|
||||
|
|
|
|||
33
docker/Dockerfile
Normal file
33
docker/Dockerfile
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
FROM php:7.4-apache
|
||||
RUN touch /usr/local/etc/php/conf.d/uploads.ini \
|
||||
&& echo "file_uploads = On" >> /usr/local/etc/php/conf.d/uploads.ini \
|
||||
&& echo "memory_limit = 64M" >> /usr/local/etc/php/conf.d/uploads.ini \
|
||||
&& echo "upload_max_filesize = 64M" >> /usr/local/etc/php/conf.d/uploads.ini \
|
||||
&& echo "post_max_size = 64M" >> /usr/local/etc/php/conf.d/uploads.ini \
|
||||
&& echo "max_execution_time = 60" >> /usr/local/etc/php/conf.d/uploads.ini
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y git curl libxml2-dev libonig-dev
|
||||
RUN docker-php-ext-install mysqli
|
||||
#RUN docker-php-ext-install curl
|
||||
RUN docker-php-ext-install mbstring
|
||||
RUN docker-php-ext-install xml
|
||||
#RUN docker-php-ext-install openssl
|
||||
WORKDIR /var/www/html
|
||||
COPY ./ /var/www/html/
|
||||
RUN ls && rm -rf /var/www/html/docker/ \
|
||||
&& chown -R root:www-data ./application/config/ \
|
||||
&& chown -R root:www-data ./application/logs/ \
|
||||
&& chown -R root:www-data ./assets/qslcard/ \
|
||||
&& chown -R root:www-data ./backup/ \
|
||||
&& chown -R root:www-data ./updates/ \
|
||||
&& chown -R root:www-data ./uploads/ \
|
||||
&& chown -R root:www-data ./images/eqsl_card_images/ \
|
||||
&& chown -R root:www-data ./assets/json/ \
|
||||
&& chmod -R g+rw ./application/config/ \
|
||||
&& chmod -R g+rw ./application/logs/ \
|
||||
&& chmod -R g+rw ./assets/qslcard/ \
|
||||
&& chmod -R g+rw ./backup/ \
|
||||
&& chmod -R g+rw ./updates/ \
|
||||
&& chmod -R g+rw ./uploads/ \
|
||||
&& chmod -R g+rw ./images/eqsl_card_images/ \
|
||||
&& chmod -R g+rw ./assets/json/
|
||||
18
docker/docker-compose.yml
Normal file
18
docker/docker-compose.yml
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
version: ‘3.4’
|
||||
|
||||
services:
|
||||
cloudlog:
|
||||
image: cloudlog
|
||||
container_name: cloudlog
|
||||
volumes:
|
||||
- cloudlog-config:/var/www/html/application/config
|
||||
- cloudlog-backup:/var/www/html/application/backup
|
||||
- cloudlog-uploads:/var/www/html/application/uploads
|
||||
ports:
|
||||
- 8086:80
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
cloudlog-config:
|
||||
cloudlog-backup:
|
||||
cloudlog-uploads:
|
||||
|
|
@ -14,7 +14,7 @@ defined('BASEPATH') OR exit('No direct script access allowed');
|
|||
*/
|
||||
|
||||
$config['app_name'] = "Cloudlog";
|
||||
$config['app_version'] = "2.4.2";
|
||||
$config['app_version'] = "2.4.4";
|
||||
$config['directory'] = "%directory%";
|
||||
$config['callbook'] = "hamqth"; // Options are hamqth or qrz
|
||||
|
||||
|
|
|
|||
162
src/Label/PDF_Label.php
Normal file
162
src/Label/PDF_Label.php
Normal file
|
|
@ -0,0 +1,162 @@
|
|||
<?php
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// PDF_Label
|
||||
//
|
||||
// Class to print labels in Avery or custom formats
|
||||
//
|
||||
// Copyright (C) 2003 Laurent PASSEBECQ (LPA)
|
||||
// Based on code by Steve Dillon
|
||||
//
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// VERSIONS:
|
||||
// 1.0: Initial release
|
||||
// 1.1: + Added unit in the constructor
|
||||
// + Now Positions start at (1,1).. then the first label at top-left of a page is (1,1)
|
||||
// + Added in the description of a label:
|
||||
// font-size : defaut char size (can be changed by calling Set_Char_Size(xx);
|
||||
// paper-size: Size of the paper for this sheet (thanx to Al Canton)
|
||||
// metric : type of unit used in this description
|
||||
// You can define your label properties in inches by setting metric to
|
||||
// 'in' and print in millimiters by setting unit to 'mm' in constructor
|
||||
// Added some formats:
|
||||
// 5160, 5161, 5162, 5163, 5164: thanks to Al Canton
|
||||
// 8600 : thanks to Kunal Walia
|
||||
// + Added 3mm to the position of labels to avoid errors
|
||||
// 1.2: = Bug of positioning
|
||||
// = Set_Font_Size modified -> Now, just modify the size of the font
|
||||
// 1.3: + Labels are now printed horizontally
|
||||
// = 'in' as document unit didn't work
|
||||
// 1.4: + Page scaling is disabled in printing options
|
||||
// 1.5: + Added 3422 format
|
||||
// 1.6: + FPDF 1.8 compatibility
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* PDF_Label - PDF label editing
|
||||
* @package PDF_Label
|
||||
* @author Laurent PASSEBECQ
|
||||
* @copyright 2003 Laurent PASSEBECQ
|
||||
**/
|
||||
namespace Cloudlog\Label;
|
||||
|
||||
class PDF_Label extends tfpdf {
|
||||
|
||||
// Private properties
|
||||
protected $_Margin_Left; // Left margin of labels
|
||||
protected $_Margin_Top; // Top margin of labels
|
||||
protected $_X_Space; // Horizontal space between 2 labels
|
||||
protected $_Y_Space; // Vertical space between 2 labels
|
||||
protected $_X_Number; // Number of labels horizontally
|
||||
protected $_Y_Number; // Number of labels vertically
|
||||
protected $_Width; // Width of label
|
||||
protected $_Height; // Height of label
|
||||
protected $_Line_Height; // Line height
|
||||
protected $_Padding; // Padding
|
||||
protected $_Metric_Doc; // Type of metric for the document
|
||||
protected $_COUNTX; // Current x position
|
||||
protected $_COUNTY; // Current y position
|
||||
|
||||
// List of label formats
|
||||
protected $_Avery_Labels = array(
|
||||
'5160' => array('paper-size'=>'letter', 'metric'=>'mm', 'marginLeft'=>1.762, 'marginTop'=>10.7, 'NX'=>3, 'NY'=>10, 'SpaceX'=>3.175, 'SpaceY'=>0, 'width'=>66.675, 'height'=>25.4, 'font-size'=>8),
|
||||
'5161' => array('paper-size'=>'letter', 'metric'=>'mm', 'marginLeft'=>0.967, 'marginTop'=>10.7, 'NX'=>2, 'NY'=>10, 'SpaceX'=>3.967, 'SpaceY'=>0, 'width'=>101.6, 'height'=>25.4, 'font-size'=>8),
|
||||
'5162' => array('paper-size'=>'letter', 'metric'=>'mm', 'marginLeft'=>0.97, 'marginTop'=>20.224, 'NX'=>2, 'NY'=>7, 'SpaceX'=>4.762, 'SpaceY'=>0, 'width'=>100.807, 'height'=>35.72, 'font-size'=>8),
|
||||
'5163' => array('paper-size'=>'letter', 'metric'=>'mm', 'marginLeft'=>1.762, 'marginTop'=>10.7, 'NX'=>2, 'NY'=>5, 'SpaceX'=>3.175, 'SpaceY'=>0, 'width'=>101.6, 'height'=>50.8, 'font-size'=>8),
|
||||
'5164' => array('paper-size'=>'letter', 'metric'=>'in', 'marginLeft'=>0.148, 'marginTop'=>0.5, 'NX'=>2, 'NY'=>3, 'SpaceX'=>0.2031, 'SpaceY'=>0, 'width'=>4.0, 'height'=>3.33, 'font-size'=>12),
|
||||
'8600' => array('paper-size'=>'letter', 'metric'=>'mm', 'marginLeft'=>7.1, 'marginTop'=>19, 'NX'=>3, 'NY'=>10, 'SpaceX'=>9.5, 'SpaceY'=>3.1, 'width'=>66.6, 'height'=>25.4, 'font-size'=>8),
|
||||
'L7163'=> array('paper-size'=>'A4', 'metric'=>'mm', 'marginLeft'=>5, 'marginTop'=>15, 'NX'=>2, 'NY'=>7, 'SpaceX'=>25, 'SpaceY'=>0, 'width'=>99.1, 'height'=>38.1, 'font-size'=>9),
|
||||
'3422' => array('paper-size'=>'A4', 'metric'=>'mm', 'marginLeft'=>0, 'marginTop'=>8.5, 'NX'=>3, 'NY'=>8, 'SpaceX'=>0, 'SpaceY'=>0, 'width'=>70, 'height'=>35, 'font-size'=>9)
|
||||
);
|
||||
|
||||
// Constructor
|
||||
function __construct($format, $unit='mm', $posX=1, $posY=1) {
|
||||
if (is_array($format)) {
|
||||
// Custom format
|
||||
$Tformat = $format;
|
||||
} else {
|
||||
// Built-in format
|
||||
if (!isset($this->_Avery_Labels[$format]))
|
||||
$this->Error('Unknown label format: '.$format);
|
||||
$Tformat = $this->_Avery_Labels[$format];
|
||||
}
|
||||
|
||||
parent::__construct('P', $unit, $Tformat['paper-size']);
|
||||
$this->_Metric_Doc = $unit;
|
||||
$this->_Set_Format($Tformat);
|
||||
$this->SetFont('Arial');
|
||||
$this->SetMargins(0,0);
|
||||
$this->SetAutoPageBreak(false);
|
||||
$this->_COUNTX = $posX-2;
|
||||
$this->_COUNTY = $posY-1;
|
||||
}
|
||||
|
||||
function _Set_Format($format) {
|
||||
$this->_Margin_Left = $this->_Convert_Metric($format['marginLeft'], $format['metric']);
|
||||
$this->_Margin_Top = $this->_Convert_Metric($format['marginTop'], $format['metric']);
|
||||
$this->_X_Space = $this->_Convert_Metric($format['SpaceX'], $format['metric']);
|
||||
$this->_Y_Space = $this->_Convert_Metric($format['SpaceY'], $format['metric']);
|
||||
$this->_X_Number = $format['NX'];
|
||||
$this->_Y_Number = $format['NY'];
|
||||
$this->_Width = $this->_Convert_Metric($format['width'], $format['metric']);
|
||||
$this->_Height = $this->_Convert_Metric($format['height'], $format['metric']);
|
||||
$this->Set_Font_Size($format['font-size']);
|
||||
$this->_Padding = $this->_Convert_Metric(3, 'mm');
|
||||
}
|
||||
|
||||
// convert units (in to mm, mm to in)
|
||||
// $src must be 'in' or 'mm'
|
||||
function _Convert_Metric($value, $src) {
|
||||
$dest = $this->_Metric_Doc;
|
||||
if ($src != $dest) {
|
||||
$a['in'] = 39.37008;
|
||||
$a['mm'] = 1000;
|
||||
return $value * $a[$dest] / $a[$src];
|
||||
} else {
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
|
||||
// Give the line height for a given font size
|
||||
function _Get_Height_Chars($pt) {
|
||||
$a = array(6=>2, 7=>2.5, 8=>3, 9=>4, 10=>5, 11=>6, 12=>7, 13=>8, 14=>9, 15=>10);
|
||||
if (!isset($a[$pt]))
|
||||
$this->Error('Invalid font size: '.$pt);
|
||||
return $this->_Convert_Metric($a[$pt], 'mm');
|
||||
}
|
||||
|
||||
// Set the character size
|
||||
// This changes the line height too
|
||||
function Set_Font_Size($pt) {
|
||||
$this->_Line_Height = $this->_Get_Height_Chars($pt);
|
||||
$this->SetFontSize($pt);
|
||||
}
|
||||
|
||||
// Print a label
|
||||
function Add_Label($text) {
|
||||
$this->_COUNTX++;
|
||||
if ($this->_COUNTX == $this->_X_Number) {
|
||||
// Row full, we start a new one
|
||||
$this->_COUNTX=0;
|
||||
$this->_COUNTY++;
|
||||
if ($this->_COUNTY == $this->_Y_Number) {
|
||||
// End of page reached, we start a new one
|
||||
$this->_COUNTY=0;
|
||||
$this->AddPage();
|
||||
}
|
||||
}
|
||||
|
||||
$_PosX = $this->_Margin_Left + $this->_COUNTX*($this->_Width+$this->_X_Space) + $this->_Padding;
|
||||
$_PosY = $this->_Margin_Top + $this->_COUNTY*($this->_Height+$this->_Y_Space) + $this->_Padding;
|
||||
$this->SetXY($_PosX, $_PosY);
|
||||
$this->MultiCell($this->_Width - $this->_Padding, $this->_Line_Height, $text, 0, 'L');
|
||||
}
|
||||
|
||||
function _putcatalog()
|
||||
{
|
||||
parent::_putcatalog();
|
||||
// Disable the page scaling option in the printing dialog
|
||||
$this->_put('/ViewerPreferences <</PrintScaling /None>>');
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
10
src/Label/font/courier.php
Normal file
10
src/Label/font/courier.php
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
$type = 'Core';
|
||||
$name = 'Courier';
|
||||
$up = -100;
|
||||
$ut = 50;
|
||||
for($i=0;$i<=255;$i++)
|
||||
$cw[chr($i)] = 600;
|
||||
$enc = 'cp1252';
|
||||
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
||||
?>
|
||||
10
src/Label/font/courierb.php
Normal file
10
src/Label/font/courierb.php
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
$type = 'Core';
|
||||
$name = 'Courier-Bold';
|
||||
$up = -100;
|
||||
$ut = 50;
|
||||
for($i=0;$i<=255;$i++)
|
||||
$cw[chr($i)] = 600;
|
||||
$enc = 'cp1252';
|
||||
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
||||
?>
|
||||
10
src/Label/font/courierbi.php
Normal file
10
src/Label/font/courierbi.php
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
$type = 'Core';
|
||||
$name = 'Courier-BoldOblique';
|
||||
$up = -100;
|
||||
$ut = 50;
|
||||
for($i=0;$i<=255;$i++)
|
||||
$cw[chr($i)] = 600;
|
||||
$enc = 'cp1252';
|
||||
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
||||
?>
|
||||
10
src/Label/font/courieri.php
Normal file
10
src/Label/font/courieri.php
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
$type = 'Core';
|
||||
$name = 'Courier-Oblique';
|
||||
$up = -100;
|
||||
$ut = 50;
|
||||
for($i=0;$i<=255;$i++)
|
||||
$cw[chr($i)] = 600;
|
||||
$enc = 'cp1252';
|
||||
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
||||
?>
|
||||
21
src/Label/font/helvetica.php
Normal file
21
src/Label/font/helvetica.php
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
$type = 'Core';
|
||||
$name = 'Helvetica';
|
||||
$up = -100;
|
||||
$ut = 50;
|
||||
$cw = array(
|
||||
chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
|
||||
chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>278,'"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584,
|
||||
','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'<'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667,
|
||||
'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
|
||||
'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833,
|
||||
'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>222,chr(131)=>556,
|
||||
chr(132)=>333,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>222,chr(146)=>222,chr(147)=>333,chr(148)=>333,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
||||
chr(154)=>500,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>260,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
|
||||
chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>556,chr(182)=>537,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,
|
||||
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
||||
chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>500,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>556,chr(241)=>556,
|
||||
chr(242)=>556,chr(243)=>556,chr(244)=>556,chr(245)=>556,chr(246)=>556,chr(247)=>584,chr(248)=>611,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);
|
||||
$enc = 'cp1252';
|
||||
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
||||
?>
|
||||
21
src/Label/font/helveticab.php
Normal file
21
src/Label/font/helveticab.php
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
$type = 'Core';
|
||||
$name = 'Helvetica-Bold';
|
||||
$up = -100;
|
||||
$ut = 50;
|
||||
$cw = array(
|
||||
chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
|
||||
chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>333,'"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584,
|
||||
','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'<'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722,
|
||||
'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
|
||||
'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889,
|
||||
'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>278,chr(131)=>556,
|
||||
chr(132)=>500,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>278,chr(146)=>278,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
||||
chr(154)=>556,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>280,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
|
||||
chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>611,chr(182)=>556,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
|
||||
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
||||
chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>556,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>611,chr(241)=>611,
|
||||
chr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>584,chr(248)=>611,chr(249)=>611,chr(250)=>611,chr(251)=>611,chr(252)=>611,chr(253)=>556,chr(254)=>611,chr(255)=>556);
|
||||
$enc = 'cp1252';
|
||||
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
||||
?>
|
||||
21
src/Label/font/helveticabi.php
Normal file
21
src/Label/font/helveticabi.php
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
$type = 'Core';
|
||||
$name = 'Helvetica-BoldOblique';
|
||||
$up = -100;
|
||||
$ut = 50;
|
||||
$cw = array(
|
||||
chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
|
||||
chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>333,'"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584,
|
||||
','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'<'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722,
|
||||
'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
|
||||
'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889,
|
||||
'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>278,chr(131)=>556,
|
||||
chr(132)=>500,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>278,chr(146)=>278,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
||||
chr(154)=>556,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>280,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
|
||||
chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>611,chr(182)=>556,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
|
||||
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
||||
chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>556,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>611,chr(241)=>611,
|
||||
chr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>584,chr(248)=>611,chr(249)=>611,chr(250)=>611,chr(251)=>611,chr(252)=>611,chr(253)=>556,chr(254)=>611,chr(255)=>556);
|
||||
$enc = 'cp1252';
|
||||
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
||||
?>
|
||||
21
src/Label/font/helveticai.php
Normal file
21
src/Label/font/helveticai.php
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
$type = 'Core';
|
||||
$name = 'Helvetica-Oblique';
|
||||
$up = -100;
|
||||
$ut = 50;
|
||||
$cw = array(
|
||||
chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
|
||||
chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>278,'"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584,
|
||||
','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'<'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667,
|
||||
'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
|
||||
'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833,
|
||||
'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>222,chr(131)=>556,
|
||||
chr(132)=>333,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>222,chr(146)=>222,chr(147)=>333,chr(148)=>333,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
||||
chr(154)=>500,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>260,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
|
||||
chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>556,chr(182)=>537,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,
|
||||
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
||||
chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>500,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>556,chr(241)=>556,
|
||||
chr(242)=>556,chr(243)=>556,chr(244)=>556,chr(245)=>556,chr(246)=>556,chr(247)=>584,chr(248)=>611,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);
|
||||
$enc = 'cp1252';
|
||||
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
||||
?>
|
||||
20
src/Label/font/symbol.php
Normal file
20
src/Label/font/symbol.php
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
$type = 'Core';
|
||||
$name = 'Symbol';
|
||||
$up = -100;
|
||||
$ut = 50;
|
||||
$cw = array(
|
||||
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
|
||||
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>713,'#'=>500,'$'=>549,'%'=>833,'&'=>778,'\''=>439,'('=>333,')'=>333,'*'=>500,'+'=>549,
|
||||
','=>250,'-'=>549,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'<'=>549,'='=>549,'>'=>549,'?'=>444,'@'=>549,'A'=>722,
|
||||
'B'=>667,'C'=>722,'D'=>612,'E'=>611,'F'=>763,'G'=>603,'H'=>722,'I'=>333,'J'=>631,'K'=>722,'L'=>686,'M'=>889,'N'=>722,'O'=>722,'P'=>768,'Q'=>741,'R'=>556,'S'=>592,'T'=>611,'U'=>690,'V'=>439,'W'=>768,
|
||||
'X'=>645,'Y'=>795,'Z'=>611,'['=>333,'\\'=>863,']'=>333,'^'=>658,'_'=>500,'`'=>500,'a'=>631,'b'=>549,'c'=>549,'d'=>494,'e'=>439,'f'=>521,'g'=>411,'h'=>603,'i'=>329,'j'=>603,'k'=>549,'l'=>549,'m'=>576,
|
||||
'n'=>521,'o'=>549,'p'=>549,'q'=>521,'r'=>549,'s'=>603,'t'=>439,'u'=>576,'v'=>713,'w'=>686,'x'=>493,'y'=>686,'z'=>494,'{'=>480,'|'=>200,'}'=>480,'~'=>549,chr(127)=>0,chr(128)=>0,chr(129)=>0,chr(130)=>0,chr(131)=>0,
|
||||
chr(132)=>0,chr(133)=>0,chr(134)=>0,chr(135)=>0,chr(136)=>0,chr(137)=>0,chr(138)=>0,chr(139)=>0,chr(140)=>0,chr(141)=>0,chr(142)=>0,chr(143)=>0,chr(144)=>0,chr(145)=>0,chr(146)=>0,chr(147)=>0,chr(148)=>0,chr(149)=>0,chr(150)=>0,chr(151)=>0,chr(152)=>0,chr(153)=>0,
|
||||
chr(154)=>0,chr(155)=>0,chr(156)=>0,chr(157)=>0,chr(158)=>0,chr(159)=>0,chr(160)=>750,chr(161)=>620,chr(162)=>247,chr(163)=>549,chr(164)=>167,chr(165)=>713,chr(166)=>500,chr(167)=>753,chr(168)=>753,chr(169)=>753,chr(170)=>753,chr(171)=>1042,chr(172)=>987,chr(173)=>603,chr(174)=>987,chr(175)=>603,
|
||||
chr(176)=>400,chr(177)=>549,chr(178)=>411,chr(179)=>549,chr(180)=>549,chr(181)=>713,chr(182)=>494,chr(183)=>460,chr(184)=>549,chr(185)=>549,chr(186)=>549,chr(187)=>549,chr(188)=>1000,chr(189)=>603,chr(190)=>1000,chr(191)=>658,chr(192)=>823,chr(193)=>686,chr(194)=>795,chr(195)=>987,chr(196)=>768,chr(197)=>768,
|
||||
chr(198)=>823,chr(199)=>768,chr(200)=>768,chr(201)=>713,chr(202)=>713,chr(203)=>713,chr(204)=>713,chr(205)=>713,chr(206)=>713,chr(207)=>713,chr(208)=>768,chr(209)=>713,chr(210)=>790,chr(211)=>790,chr(212)=>890,chr(213)=>823,chr(214)=>549,chr(215)=>250,chr(216)=>713,chr(217)=>603,chr(218)=>603,chr(219)=>1042,
|
||||
chr(220)=>987,chr(221)=>603,chr(222)=>987,chr(223)=>603,chr(224)=>494,chr(225)=>329,chr(226)=>790,chr(227)=>790,chr(228)=>786,chr(229)=>713,chr(230)=>384,chr(231)=>384,chr(232)=>384,chr(233)=>384,chr(234)=>384,chr(235)=>384,chr(236)=>494,chr(237)=>494,chr(238)=>494,chr(239)=>494,chr(240)=>0,chr(241)=>329,
|
||||
chr(242)=>274,chr(243)=>686,chr(244)=>686,chr(245)=>686,chr(246)=>384,chr(247)=>384,chr(248)=>384,chr(249)=>384,chr(250)=>384,chr(251)=>384,chr(252)=>494,chr(253)=>494,chr(254)=>494,chr(255)=>0);
|
||||
$uv = array(32=>160,33=>33,34=>8704,35=>35,36=>8707,37=>array(37,2),39=>8715,40=>array(40,2),42=>8727,43=>array(43,2),45=>8722,46=>array(46,18),64=>8773,65=>array(913,2),67=>935,68=>array(916,2),70=>934,71=>915,72=>919,73=>921,74=>977,75=>array(922,4),79=>array(927,2),81=>920,82=>929,83=>array(931,3),86=>962,87=>937,88=>926,89=>936,90=>918,91=>91,92=>8756,93=>93,94=>8869,95=>95,96=>63717,97=>array(945,2),99=>967,100=>array(948,2),102=>966,103=>947,104=>951,105=>953,106=>981,107=>array(954,4),111=>array(959,2),113=>952,114=>961,115=>array(963,3),118=>982,119=>969,120=>958,121=>968,122=>950,123=>array(123,3),126=>8764,160=>8364,161=>978,162=>8242,163=>8804,164=>8725,165=>8734,166=>402,167=>9827,168=>9830,169=>9829,170=>9824,171=>8596,172=>array(8592,4),176=>array(176,2),178=>8243,179=>8805,180=>215,181=>8733,182=>8706,183=>8226,184=>247,185=>array(8800,2),187=>8776,188=>8230,189=>array(63718,2),191=>8629,192=>8501,193=>8465,194=>8476,195=>8472,196=>8855,197=>8853,198=>8709,199=>array(8745,2),201=>8835,202=>8839,203=>8836,204=>8834,205=>8838,206=>array(8712,2),208=>8736,209=>8711,210=>63194,211=>63193,212=>63195,213=>8719,214=>8730,215=>8901,216=>172,217=>array(8743,2),219=>8660,220=>array(8656,4),224=>9674,225=>9001,226=>array(63720,3),229=>8721,230=>array(63723,10),241=>9002,242=>8747,243=>8992,244=>63733,245=>8993,246=>array(63734,9));
|
||||
?>
|
||||
21
src/Label/font/times.php
Normal file
21
src/Label/font/times.php
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
$type = 'Core';
|
||||
$name = 'Times-Roman';
|
||||
$up = -100;
|
||||
$ut = 50;
|
||||
$cw = array(
|
||||
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
|
||||
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>408,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>180,'('=>333,')'=>333,'*'=>500,'+'=>564,
|
||||
','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'<'=>564,'='=>564,'>'=>564,'?'=>444,'@'=>921,'A'=>722,
|
||||
'B'=>667,'C'=>667,'D'=>722,'E'=>611,'F'=>556,'G'=>722,'H'=>722,'I'=>333,'J'=>389,'K'=>722,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>556,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>722,'W'=>944,
|
||||
'X'=>722,'Y'=>722,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>469,'_'=>500,'`'=>333,'a'=>444,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778,
|
||||
'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>333,'s'=>389,'t'=>278,'u'=>500,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>480,'|'=>200,'}'=>480,'~'=>541,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
|
||||
chr(132)=>444,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>889,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>444,chr(148)=>444,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>980,
|
||||
chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>444,chr(159)=>722,chr(160)=>250,chr(161)=>333,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>200,chr(167)=>500,chr(168)=>333,chr(169)=>760,chr(170)=>276,chr(171)=>500,chr(172)=>564,chr(173)=>333,chr(174)=>760,chr(175)=>333,
|
||||
chr(176)=>400,chr(177)=>564,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>500,chr(182)=>453,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>310,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>444,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
|
||||
chr(198)=>889,chr(199)=>667,chr(200)=>611,chr(201)=>611,chr(202)=>611,chr(203)=>611,chr(204)=>333,chr(205)=>333,chr(206)=>333,chr(207)=>333,chr(208)=>722,chr(209)=>722,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>564,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
||||
chr(220)=>722,chr(221)=>722,chr(222)=>556,chr(223)=>500,chr(224)=>444,chr(225)=>444,chr(226)=>444,chr(227)=>444,chr(228)=>444,chr(229)=>444,chr(230)=>667,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>500,
|
||||
chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>564,chr(248)=>500,chr(249)=>500,chr(250)=>500,chr(251)=>500,chr(252)=>500,chr(253)=>500,chr(254)=>500,chr(255)=>500);
|
||||
$enc = 'cp1252';
|
||||
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
||||
?>
|
||||
21
src/Label/font/timesb.php
Normal file
21
src/Label/font/timesb.php
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
$type = 'Core';
|
||||
$name = 'Times-Bold';
|
||||
$up = -100;
|
||||
$ut = 50;
|
||||
$cw = array(
|
||||
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
|
||||
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>555,'#'=>500,'$'=>500,'%'=>1000,'&'=>833,'\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570,
|
||||
','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>930,'A'=>722,
|
||||
'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>778,'I'=>389,'J'=>500,'K'=>778,'L'=>667,'M'=>944,'N'=>722,'O'=>778,'P'=>611,'Q'=>778,'R'=>722,'S'=>556,'T'=>667,'U'=>722,'V'=>722,'W'=>1000,
|
||||
'X'=>722,'Y'=>722,'Z'=>667,'['=>333,'\\'=>278,']'=>333,'^'=>581,'_'=>500,'`'=>333,'a'=>500,'b'=>556,'c'=>444,'d'=>556,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>333,'k'=>556,'l'=>278,'m'=>833,
|
||||
'n'=>556,'o'=>500,'p'=>556,'q'=>556,'r'=>444,'s'=>389,'t'=>333,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>394,'|'=>220,'}'=>394,'~'=>520,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
|
||||
chr(132)=>500,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>667,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
||||
chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>444,chr(159)=>722,chr(160)=>250,chr(161)=>333,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>220,chr(167)=>500,chr(168)=>333,chr(169)=>747,chr(170)=>300,chr(171)=>500,chr(172)=>570,chr(173)=>333,chr(174)=>747,chr(175)=>333,
|
||||
chr(176)=>400,chr(177)=>570,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>556,chr(182)=>540,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>330,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
|
||||
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>389,chr(205)=>389,chr(206)=>389,chr(207)=>389,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>570,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
||||
chr(220)=>722,chr(221)=>722,chr(222)=>611,chr(223)=>556,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>722,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>556,
|
||||
chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>570,chr(248)=>500,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);
|
||||
$enc = 'cp1252';
|
||||
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
||||
?>
|
||||
21
src/Label/font/timesbi.php
Normal file
21
src/Label/font/timesbi.php
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
$type = 'Core';
|
||||
$name = 'Times-BoldItalic';
|
||||
$up = -100;
|
||||
$ut = 50;
|
||||
$cw = array(
|
||||
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
|
||||
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>389,'"'=>555,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570,
|
||||
','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>832,'A'=>667,
|
||||
'B'=>667,'C'=>667,'D'=>722,'E'=>667,'F'=>667,'G'=>722,'H'=>778,'I'=>389,'J'=>500,'K'=>667,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>611,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>667,'W'=>889,
|
||||
'X'=>667,'Y'=>611,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>570,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778,
|
||||
'n'=>556,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>556,'v'=>444,'w'=>667,'x'=>500,'y'=>444,'z'=>389,'{'=>348,'|'=>220,'}'=>348,'~'=>570,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
|
||||
chr(132)=>500,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>944,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
||||
chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>389,chr(159)=>611,chr(160)=>250,chr(161)=>389,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>220,chr(167)=>500,chr(168)=>333,chr(169)=>747,chr(170)=>266,chr(171)=>500,chr(172)=>606,chr(173)=>333,chr(174)=>747,chr(175)=>333,
|
||||
chr(176)=>400,chr(177)=>570,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>576,chr(182)=>500,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>300,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,
|
||||
chr(198)=>944,chr(199)=>667,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>389,chr(205)=>389,chr(206)=>389,chr(207)=>389,chr(208)=>722,chr(209)=>722,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>570,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
||||
chr(220)=>722,chr(221)=>611,chr(222)=>611,chr(223)=>500,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>722,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>556,
|
||||
chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>570,chr(248)=>500,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>444,chr(254)=>500,chr(255)=>444);
|
||||
$enc = 'cp1252';
|
||||
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
||||
?>
|
||||
21
src/Label/font/timesi.php
Normal file
21
src/Label/font/timesi.php
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
$type = 'Core';
|
||||
$name = 'Times-Italic';
|
||||
$up = -100;
|
||||
$ut = 50;
|
||||
$cw = array(
|
||||
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
|
||||
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>420,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>214,'('=>333,')'=>333,'*'=>500,'+'=>675,
|
||||
','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>675,'='=>675,'>'=>675,'?'=>500,'@'=>920,'A'=>611,
|
||||
'B'=>611,'C'=>667,'D'=>722,'E'=>611,'F'=>611,'G'=>722,'H'=>722,'I'=>333,'J'=>444,'K'=>667,'L'=>556,'M'=>833,'N'=>667,'O'=>722,'P'=>611,'Q'=>722,'R'=>611,'S'=>500,'T'=>556,'U'=>722,'V'=>611,'W'=>833,
|
||||
'X'=>611,'Y'=>556,'Z'=>556,'['=>389,'\\'=>278,']'=>389,'^'=>422,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>278,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>444,'l'=>278,'m'=>722,
|
||||
'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>500,'v'=>444,'w'=>667,'x'=>444,'y'=>444,'z'=>389,'{'=>400,'|'=>275,'}'=>400,'~'=>541,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
|
||||
chr(132)=>556,chr(133)=>889,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>500,chr(139)=>333,chr(140)=>944,chr(141)=>350,chr(142)=>556,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>556,chr(148)=>556,chr(149)=>350,chr(150)=>500,chr(151)=>889,chr(152)=>333,chr(153)=>980,
|
||||
chr(154)=>389,chr(155)=>333,chr(156)=>667,chr(157)=>350,chr(158)=>389,chr(159)=>556,chr(160)=>250,chr(161)=>389,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>275,chr(167)=>500,chr(168)=>333,chr(169)=>760,chr(170)=>276,chr(171)=>500,chr(172)=>675,chr(173)=>333,chr(174)=>760,chr(175)=>333,
|
||||
chr(176)=>400,chr(177)=>675,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>500,chr(182)=>523,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>310,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>611,chr(193)=>611,chr(194)=>611,chr(195)=>611,chr(196)=>611,chr(197)=>611,
|
||||
chr(198)=>889,chr(199)=>667,chr(200)=>611,chr(201)=>611,chr(202)=>611,chr(203)=>611,chr(204)=>333,chr(205)=>333,chr(206)=>333,chr(207)=>333,chr(208)=>722,chr(209)=>667,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>675,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
||||
chr(220)=>722,chr(221)=>556,chr(222)=>611,chr(223)=>500,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>667,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>500,
|
||||
chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>675,chr(248)=>500,chr(249)=>500,chr(250)=>500,chr(251)=>500,chr(252)=>500,chr(253)=>444,chr(254)=>500,chr(255)=>444);
|
||||
$enc = 'cp1252';
|
||||
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
||||
?>
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue