From 4d73a50ef60cc5389a89867e32888d0d9d99161b Mon Sep 17 00:00:00 2001 From: Jeremy Brown Date: Tue, 10 Nov 2020 20:25:26 -0500 Subject: [PATCH 01/79] Shows full name, but only when logged in (if available) --- application/libraries/Qrz.php | 2 +- application/views/view_log/qso.php | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/application/libraries/Qrz.php b/application/libraries/Qrz.php index dd0c995d9..356073dcc 100755 --- a/application/libraries/Qrz.php +++ b/application/libraries/Qrz.php @@ -73,7 +73,7 @@ class Qrz { // Return Required Fields $data['callsign'] = (string) $xml->Callsign->call; - $data['name'] = (string) $xml->Callsign->fname; + $data['name'] = (string) $xml->Callsign->fname . ' '. (string) $xml->Callsign->name; $data['gridsquare'] = (string) $xml->Callsign->grid; $data['city'] = (string) $xml->Callsign->addr2; $data['lat'] = (string) $xml->Callsign->lat; diff --git a/application/views/view_log/qso.php b/application/views/view_log/qso.php index 7a98d4892..ff6610846 100644 --- a/application/views/view_log/qso.php +++ b/application/views/view_log/qso.php @@ -141,13 +141,15 @@ + config->item('use_auth') && ($this->session->userdata('user_type') >= 2)) || $this->config->item('use_auth') === FALSE) { ?> - COL_NAME != null) { ?> + COL_NAME != null) { ?> Name: COL_NAME; ?> + config->item('use_auth') && ($this->session->userdata('user_type') >= 2)) || $this->config->item('use_auth') === FALSE) { ?> COL_COMMENT != null) { ?> From 8660d3d3ce6d0a22e5ecfbaf59743ca044dd6def Mon Sep 17 00:00:00 2001 From: Jeremy Brown Date: Tue, 10 Nov 2020 22:13:25 -0500 Subject: [PATCH 02/79] Does a lookup on qrz/hamqth on api or when entering by hand. Names and grid squares are returned and populated if not already set. Full names are set since they are not shown unless logged in. --- application/controllers/Logbook.php | 33 +------------------ application/models/Logbook_model.php | 48 ++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 32 deletions(-) diff --git a/application/controllers/Logbook.php b/application/controllers/Logbook.php index d7a781994..ddadc4b91 100755 --- a/application/controllers/Logbook.php +++ b/application/controllers/Logbook.php @@ -138,39 +138,8 @@ class Logbook extends CI_Controller { return; } + $callbook = $this->logbook_model->loadCallBook($callsign); - if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) - { - // Lookup using QRZ - $this->load->library('qrz'); - - if(!$this->session->userdata('qrz_session_key')) { - $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); - $this->session->set_userdata('qrz_session_key', $qrz_session_key); - } - - $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key')); - } - - if ($this->config->item('callbook') == "hamqth" && $this->config->item('hamqth_username') != null && $this->config->item('hamqth_password') != null) - { - // Load the HamQTH library - $this->load->library('hamqth'); - - if(!$this->session->userdata('hamqth_session_key')) { - $hamqth_session_key = $this->hamqth->session($this->config->item('hamqth_username'), $this->config->item('hamqth_password')); - $this->session->set_userdata('hamqth_session_key', $hamqth_session_key); - } - - $callbook = $this->hamqth->search($callsign, $this->session->userdata('hamqth_session_key')); - - // If HamQTH session has expired, start a new session and retry the search. - if($callbook['error'] == "Session does not exist or expired") { - $hamqth_session_key = $this->hamqth->session($this->config->item('hamqth_username'), $this->config->item('hamqth_password')); - $this->session->set_userdata('hamqth_session_key', $hamqth_session_key); - $callbook = $this->hamqth->search($callsign, $this->session->userdata('hamqth_session_key')); - } - } if (isset($callbook)) { diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index b5bd539bc..907379d86 100755 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -1791,6 +1791,16 @@ class Logbook_model extends CI_Model { } } + // if we are doing lookups and grid square and name aren't set, do the lookup now + + $callbook = $this->loadCallBook(strtoupper($record['call'])); + if (isset($callbook)) { + $record['name']= $callbook['name']; + if (empty($record['gridsquare'])) { + $record['gridsquare'] = $callbook['gridsquare']; + } + } + if (!$skip) { // Create array with QSO Data use ?: @@ -2158,6 +2168,42 @@ class Logbook_model extends CI_Model { } } + public function loadCallBook($callsign) + { + if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) + { + // Lookup using QRZ + $this->load->library('qrz'); + + if(!$this->session->userdata('qrz_session_key')) { + $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); + $this->session->set_userdata('qrz_session_key', $qrz_session_key); + } + + $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key')); + } + + if ($this->config->item('callbook') == "hamqth" && $this->config->item('hamqth_username') != null && $this->config->item('hamqth_password') != null) + { + // Load the HamQTH library + $this->load->library('hamqth'); + + if(!$this->session->userdata('hamqth_session_key')) { + $hamqth_session_key = $this->hamqth->session($this->config->item('hamqth_username'), $this->config->item('hamqth_password')); + $this->session->set_userdata('hamqth_session_key', $hamqth_session_key); + } + + $callbook = $this->hamqth->search($callsign, $this->session->userdata('hamqth_session_key')); + + // If HamQTH session has expired, start a new session and retry the search. + if($callbook['error'] == "Session does not exist or expired") { + $hamqth_session_key = $this->hamqth->session($this->config->item('hamqth_username'), $this->config->item('hamqth_password')); + $this->session->set_userdata('hamqth_session_key', $hamqth_session_key); + $callbook = $this->hamqth->search($callsign, $this->session->userdata('hamqth_session_key')); + } + } + return $callbook; + } public function update_all_station_ids() { @@ -2271,4 +2317,6 @@ function validateADIFDate($date, $format = 'Ymd') $d = DateTime::createFromFormat($format, $date); return $d && $d->format($format) == $date; } + + ?> From 593db48556a2860caf62b0f6eeaea789906f50f9 Mon Sep 17 00:00:00 2001 From: Jeremy Brown Date: Wed, 11 Nov 2020 09:17:08 -0500 Subject: [PATCH 03/79] Added exception handling when qrz or hamqth is not available/accessible. --- application/libraries/Hamqth.php | 67 +++++++++++++++------------- application/libraries/Qrz.php | 67 +++++++++++++++------------- application/models/Logbook_model.php | 52 ++++++++++----------- 3 files changed, 97 insertions(+), 89 deletions(-) diff --git a/application/libraries/Hamqth.php b/application/libraries/Hamqth.php index 69b49aadd..c0ad8c86a 100644 --- a/application/libraries/Hamqth.php +++ b/application/libraries/Hamqth.php @@ -56,41 +56,44 @@ class Hamqth { public function search($callsign, $key) { + $data = null; + try { + // URL to the XML Source + $xml_feed_url = 'https://www.hamqth.com/xml.php?id=' . $key . '&callsign=' . $callsign . '&prg=cloudlog'; - // URL to the XML Source - $xml_feed_url = 'https://www.hamqth.com/xml.php?id='.$key.'&callsign='.$callsign.'&prg=cloudlog'; + // CURL Functions + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $xml_feed_url); + curl_setopt($ch, CURLOPT_HEADER, false); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + $xml = curl_exec($ch); + curl_close($ch); - // CURL Functions - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, $xml_feed_url); - curl_setopt($ch, CURLOPT_HEADER, false); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - $xml = curl_exec($ch); - curl_close($ch); + // Create XML object + $xml = simplexml_load_string($xml); + if (empty($xml)) return; - // Create XML object - $xml = simplexml_load_string($xml); + // Return Required Fields + $data['callsign'] = (string)$xml->search->callsign; + $data['name'] = (string)$xml->search->nick; + $data['gridsquare'] = (string)$xml->search->grid; + $data['city'] = (string)$xml->search->adr_city; + $data['lat'] = (string)$xml->search->latitude; + $data['long'] = (string)$xml->search->longitude; + $data['iota'] = (string)$xml->search->iota; + $data['us_state'] = (string)$xml->search->us_state; + $data['us_county'] = (string)$xml->search->us_county; + $data['error'] = (string)$xml->session->error; - // Return Required Fields - $data['callsign'] = (string) $xml->search->callsign; - $data['name'] = (string) $xml->search->nick; - $data['gridsquare'] = (string) $xml->search->grid; - $data['city'] = (string) $xml->search->adr_city; - $data['lat'] = (string) $xml->search->latitude; - $data['long'] = (string) $xml->search->longitude; - $data['iota'] = (string) $xml->search->iota; - $data['us_state'] = (string) $xml->search->us_state; - $data['us_county'] = (string) $xml->search->us_county; - $data['error'] = (string) $xml->session->error; - - if($xml->search->country == "United States") { - $data['state'] = (string) $xml->search->us_state; - $data['us_county'] = (string) $xml->search->us_county; - } else { - $data['state'] = null; - $data['us_county'] = null; - } - - return $data; + if ($xml->search->country == "United States") { + $data['state'] = (string)$xml->search->us_state; + $data['us_county'] = (string)$xml->search->us_county; + } else { + $data['state'] = null; + $data['us_county'] = null; + } + } finally { + return $data; + } } } diff --git a/application/libraries/Qrz.php b/application/libraries/Qrz.php index 356073dcc..532a893ea 100755 --- a/application/libraries/Qrz.php +++ b/application/libraries/Qrz.php @@ -56,40 +56,43 @@ class Qrz { public function search($callsign, $key) { + $data = null; + try { + // URL to the XML Source + $xml_feed_url = 'http://xmldata.qrz.com/xml/current/?s=' . $key . ';callsign=' . $callsign . ''; - // URL to the XML Source - $xml_feed_url = 'http://xmldata.qrz.com/xml/current/?s='.$key.';callsign='.$callsign.''; - - // CURL Functions - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, $xml_feed_url); - curl_setopt($ch, CURLOPT_HEADER, false); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - $xml = curl_exec($ch); - curl_close($ch); - - // Create XML object - $xml = simplexml_load_string($xml); - - // Return Required Fields - $data['callsign'] = (string) $xml->Callsign->call; - $data['name'] = (string) $xml->Callsign->fname . ' '. (string) $xml->Callsign->name; - $data['gridsquare'] = (string) $xml->Callsign->grid; - $data['city'] = (string) $xml->Callsign->addr2; - $data['lat'] = (string) $xml->Callsign->lat; - $data['long'] = (string) $xml->Callsign->lon; - $data['iota'] = (string) $xml->Callsign->iota; - $data['qslmgr'] = (string) $xml->Callsign->qslmgr; + // CURL Functions + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $xml_feed_url); + curl_setopt($ch, CURLOPT_HEADER, false); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + $xml = curl_exec($ch); + curl_close($ch); - if($xml->Callsign->country == "United States") { - $data['state'] = (string) $xml->Callsign->state; - $data['us_county'] = (string) $xml->Callsign->county; - } else { - $data['state'] = null; - $data['us_county'] = null; - } + // Create XML object + $xml = simplexml_load_string($xml); + if (empty($xml)) return; - - return $data; + // Return Required Fields + $data['callsign'] = (string)$xml->Callsign->call; + $data['name'] = (string)$xml->Callsign->fname . ' ' . (string)$xml->Callsign->name; + $data['gridsquare'] = (string)$xml->Callsign->grid; + $data['city'] = (string)$xml->Callsign->addr2; + $data['lat'] = (string)$xml->Callsign->lat; + $data['long'] = (string)$xml->Callsign->lon; + $data['iota'] = (string)$xml->Callsign->iota; + $data['qslmgr'] = (string)$xml->Callsign->qslmgr; + + if ($xml->Callsign->country == "United States") { + $data['state'] = (string)$xml->Callsign->state; + $data['us_county'] = (string)$xml->Callsign->county; + } else { + $data['state'] = null; + $data['us_county'] = null; + } + } finally { + + return $data; + } } } diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index 907379d86..002cda23a 100755 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -2170,39 +2170,41 @@ class Logbook_model extends CI_Model { public function loadCallBook($callsign) { - if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) - { - // Lookup using QRZ - $this->load->library('qrz'); + $callbook = null; + try { + if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) { + // Lookup using QRZ + $this->load->library('qrz'); - if(!$this->session->userdata('qrz_session_key')) { - $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); - $this->session->set_userdata('qrz_session_key', $qrz_session_key); + if (!$this->session->userdata('qrz_session_key')) { + $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); + $this->session->set_userdata('qrz_session_key', $qrz_session_key); + } + + $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key')); } - $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key')); - } + if ($this->config->item('callbook') == "hamqth" && $this->config->item('hamqth_username') != null && $this->config->item('hamqth_password') != null) { + // Load the HamQTH library + $this->load->library('hamqth'); - if ($this->config->item('callbook') == "hamqth" && $this->config->item('hamqth_username') != null && $this->config->item('hamqth_password') != null) - { - // Load the HamQTH library - $this->load->library('hamqth'); + if (!$this->session->userdata('hamqth_session_key')) { + $hamqth_session_key = $this->hamqth->session($this->config->item('hamqth_username'), $this->config->item('hamqth_password')); + $this->session->set_userdata('hamqth_session_key', $hamqth_session_key); + } - if(!$this->session->userdata('hamqth_session_key')) { - $hamqth_session_key = $this->hamqth->session($this->config->item('hamqth_username'), $this->config->item('hamqth_password')); - $this->session->set_userdata('hamqth_session_key', $hamqth_session_key); - } - - $callbook = $this->hamqth->search($callsign, $this->session->userdata('hamqth_session_key')); - - // If HamQTH session has expired, start a new session and retry the search. - if($callbook['error'] == "Session does not exist or expired") { - $hamqth_session_key = $this->hamqth->session($this->config->item('hamqth_username'), $this->config->item('hamqth_password')); - $this->session->set_userdata('hamqth_session_key', $hamqth_session_key); $callbook = $this->hamqth->search($callsign, $this->session->userdata('hamqth_session_key')); + + // If HamQTH session has expired, start a new session and retry the search. + if ($callbook['error'] == "Session does not exist or expired") { + $hamqth_session_key = $this->hamqth->session($this->config->item('hamqth_username'), $this->config->item('hamqth_password')); + $this->session->set_userdata('hamqth_session_key', $hamqth_session_key); + $callbook = $this->hamqth->search($callsign, $this->session->userdata('hamqth_session_key')); + } } + } finally { + return $callbook; } - return $callbook; } public function update_all_station_ids() { From 406441894234979e06b2ed75c41087d47c740784 Mon Sep 17 00:00:00 2001 From: Jeremy Brown Date: Wed, 11 Nov 2020 12:18:37 -0500 Subject: [PATCH 04/79] Trying to get full names working correctly --- application/controllers/Logbook.php | 15 ++++++++------- application/libraries/Qrz.php | 12 ++++++++++-- application/models/Logbook_model.php | 8 ++++++-- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/application/controllers/Logbook.php b/application/controllers/Logbook.php index ddadc4b91..80db8bcf1 100755 --- a/application/controllers/Logbook.php +++ b/application/controllers/Logbook.php @@ -122,7 +122,7 @@ class Logbook extends CI_Controller { $measurement_base = $this->session->userdata('user_measurement_base'); } - $return['callsign_name'] = $this->logbook_model->call_name($callsign); + $return['callsign_name'] = $this->logbook_model->call_name($callsign); $return['callsign_qra'] = $this->logbook_model->call_qra($callsign); $return['callsign_qth'] = $this->logbook_model->call_qth($callsign); $return['callsign_iota'] = $this->logbook_model->call_iota($callsign); @@ -138,7 +138,8 @@ class Logbook extends CI_Controller { return; } - $callbook = $this->logbook_model->loadCallBook($callsign); + + $callbook = $this->logbook_model->loadCallBook($callsign, $this->config->item('personal')); if (isset($callbook)) @@ -490,8 +491,8 @@ class Logbook extends CI_Controller { $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); $this->session->set_userdata('qrz_session_key', $qrz_session_key); } - - $data['callsign'] = $this->qrz->search($id, $this->session->userdata('qrz_session_key')); + echo("Part 1: ". (int)$this->config->item('personal')); + $data['callsign'] = $this->qrz->search($id, $this->session->userdata('qrz_session_key'), $this->config->item('personal')); } // There's no hamli integration? Disabled for now. @@ -544,11 +545,11 @@ class Logbook extends CI_Controller { $this->load->library('qrz'); if(!$this->session->userdata('qrz_session_key')) { - $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); + $qrz_session_key = $this->qrz->session($this->config->item('qrz_username')); $this->session->set_userdata('qrz_session_key', $qrz_session_key); } - - $data['callsign'] = $this->qrz->search($id, $this->session->userdata('qrz_session_key')); + echo ("Part 2: ". $this->config->item('personal'). "
"); + $data['callsign'] = $this->qrz->search($id, $this->session->userdata('qrz_session_key'), $this->config->item('qrz_password'), $this->config->item('personal')); } else { // Lookup using hamli $this->load->library('hamli'); diff --git a/application/libraries/Qrz.php b/application/libraries/Qrz.php index 532a893ea..afbc3884b 100755 --- a/application/libraries/Qrz.php +++ b/application/libraries/Qrz.php @@ -54,8 +54,11 @@ class Qrz { } - public function search($callsign, $key) + public function search($callsign, $key, $private="dog") { + echo("Callsign: ".$callsign."
"); + echo("key: ".$key."
"); + echo("FOOOOOO: ". $private."
"); $data = null; try { // URL to the XML Source @@ -75,7 +78,12 @@ class Qrz { // Return Required Fields $data['callsign'] = (string)$xml->Callsign->call; - $data['name'] = (string)$xml->Callsign->fname . ' ' . (string)$xml->Callsign->name; + + if ($private === true) { + $data['name'] = (string)$xml->Callsign->fname . ' AAAA ' . (string)$xml->Callsign->name; + } else { + $data['name'] = (string)$xml->Callsign->fname; + } $data['gridsquare'] = (string)$xml->Callsign->grid; $data['city'] = (string)$xml->Callsign->addr2; $data['lat'] = (string)$xml->Callsign->lat; diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index 002cda23a..9cbca2e1c 100755 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -2168,7 +2168,7 @@ class Logbook_model extends CI_Model { } } - public function loadCallBook($callsign) + public function loadCallBook($callsign, $personal=false) { $callbook = null; try { @@ -2181,7 +2181,11 @@ class Logbook_model extends CI_Model { $this->session->set_userdata('qrz_session_key', $qrz_session_key); } - $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key')); + + $personal = "foo"; + echo ("part 3: ". $personal. "
"); + $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key'), $this->config->item('qrz_password'), "foobar"); + echo ("part 4: ". $personal. "
"); } if ($this->config->item('callbook') == "hamqth" && $this->config->item('hamqth_username') != null && $this->config->item('hamqth_password') != null) { From 30600ae220a5f9f69f1dca73aba040b6d6be524b Mon Sep 17 00:00:00 2001 From: Jeremy Brown Date: Wed, 11 Nov 2020 14:38:00 -0500 Subject: [PATCH 05/79] Added support for a config flag to determine if we should get full names from qrz. Added error checking for this with the api for import as well. --- application/controllers/Logbook.php | 10 +++++----- application/libraries/Qrz.php | 9 +++------ application/models/Logbook_model.php | 8 +++----- install/config/config.php | 11 +++++++++++ 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/application/controllers/Logbook.php b/application/controllers/Logbook.php index 80db8bcf1..654d92ee5 100755 --- a/application/controllers/Logbook.php +++ b/application/controllers/Logbook.php @@ -139,7 +139,7 @@ class Logbook extends CI_Controller { } - $callbook = $this->logbook_model->loadCallBook($callsign, $this->config->item('personal')); + $callbook = $this->logbook_model->loadCallBook($callsign, $this->config->item('use_fullname')); if (isset($callbook)) @@ -491,8 +491,8 @@ class Logbook extends CI_Controller { $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); $this->session->set_userdata('qrz_session_key', $qrz_session_key); } - echo("Part 1: ". (int)$this->config->item('personal')); - $data['callsign'] = $this->qrz->search($id, $this->session->userdata('qrz_session_key'), $this->config->item('personal')); + + $data['callsign'] = $this->qrz->search($id, $this->session->userdata('qrz_session_key'), $this->config->item('use_fullname')); } // There's no hamli integration? Disabled for now. @@ -548,8 +548,8 @@ class Logbook extends CI_Controller { $qrz_session_key = $this->qrz->session($this->config->item('qrz_username')); $this->session->set_userdata('qrz_session_key', $qrz_session_key); } - echo ("Part 2: ". $this->config->item('personal'). "
"); - $data['callsign'] = $this->qrz->search($id, $this->session->userdata('qrz_session_key'), $this->config->item('qrz_password'), $this->config->item('personal')); + + $data['callsign'] = $this->qrz->search($id, $this->session->userdata('qrz_session_key'), $this->config->item('qrz_password'), $this->config->item('use_fullname')); } else { // Lookup using hamli $this->load->library('hamli'); diff --git a/application/libraries/Qrz.php b/application/libraries/Qrz.php index afbc3884b..0ab43b1cd 100755 --- a/application/libraries/Qrz.php +++ b/application/libraries/Qrz.php @@ -54,11 +54,8 @@ class Qrz { } - public function search($callsign, $key, $private="dog") + public function search($callsign, $key, $use_fullname) { - echo("Callsign: ".$callsign."
"); - echo("key: ".$key."
"); - echo("FOOOOOO: ". $private."
"); $data = null; try { // URL to the XML Source @@ -79,8 +76,8 @@ class Qrz { // Return Required Fields $data['callsign'] = (string)$xml->Callsign->call; - if ($private === true) { - $data['name'] = (string)$xml->Callsign->fname . ' AAAA ' . (string)$xml->Callsign->name; + if ($use_fullname === true) { + $data['name'] = (string)$xml->Callsign->fname . ' ' . (string)$xml->Callsign->name; } else { $data['name'] = (string)$xml->Callsign->fname; } diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index 9cbca2e1c..b2c9678e8 100755 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -2168,7 +2168,7 @@ class Logbook_model extends CI_Model { } } - public function loadCallBook($callsign, $personal=false) + public function loadCallBook($callsign, $use_fullname=false) { $callbook = null; try { @@ -2182,10 +2182,8 @@ class Logbook_model extends CI_Model { } - $personal = "foo"; - echo ("part 3: ". $personal. "
"); - $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key'), $this->config->item('qrz_password'), "foobar"); - echo ("part 4: ". $personal. "
"); + + $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key'), $use_fullname); } if ($this->config->item('callbook') == "hamqth" && $this->config->item('hamqth_username') != null && $this->config->item('hamqth_password') != null) { diff --git a/install/config/config.php b/install/config/config.php index 9be403234..008e90041 100644 --- a/install/config/config.php +++ b/install/config/config.php @@ -40,10 +40,21 @@ $config['display_freq'] = false; | | '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; + + +/* +|-------------------------------------------------------------------------- +| Are we running this on a personal server? If we are, GDPR laws +| prevent us from storing personal information. +| +*/ +$config['personal'] = false; /* |-------------------------------------------------------------------------- From 7c2c6cf4f0593129ebe6607cea8eab3cce362456 Mon Sep 17 00:00:00 2001 From: Jeremy Brown Date: Wed, 11 Nov 2020 18:42:32 -0500 Subject: [PATCH 06/79] Checks to see if eithere the name and gridsquare is set on import, and if neithere is not set, it will do the lookup. If both are set in the adi for import, no lookup will be done. --- application/models/Logbook_model.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index b2c9678e8..6092fddb0 100755 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -1793,11 +1793,16 @@ class Logbook_model extends CI_Model { // if we are doing lookups and grid square and name aren't set, do the lookup now - $callbook = $this->loadCallBook(strtoupper($record['call'])); - if (isset($callbook)) { - $record['name']= $callbook['name']; - if (empty($record['gridsquare'])) { - $record['gridsquare'] = $callbook['gridsquare']; + if ((empty($record['name'])) || empty($record['gridsquare'])) { + $callbook = $this->loadCallBook(strtoupper($record['call']), $this->config->item('use_fullname')); + if (isset($callbook)) { + if (empty($record['name'])) { + $record['name'] = $callbook['name']; + } + + if (empty($record['gridsquare'])) { + $record['gridsquare'] = $callbook['gridsquare']; + } } } From f70b24971018a0eb20db391fa55457ba42fc6c38 Mon Sep 17 00:00:00 2001 From: Jeremy Brown Date: Wed, 11 Nov 2020 18:46:10 -0500 Subject: [PATCH 07/79] Fixed code that I accidently deleted --- application/controllers/Logbook.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/controllers/Logbook.php b/application/controllers/Logbook.php index 654d92ee5..5182a8527 100755 --- a/application/controllers/Logbook.php +++ b/application/controllers/Logbook.php @@ -545,7 +545,7 @@ class Logbook extends CI_Controller { $this->load->library('qrz'); if(!$this->session->userdata('qrz_session_key')) { - $qrz_session_key = $this->qrz->session($this->config->item('qrz_username')); + $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); $this->session->set_userdata('qrz_session_key', $qrz_session_key); } From 9718ae672ebea0354e1ac33e3671221ce5ad9da1 Mon Sep 17 00:00:00 2001 From: Jeremy Brown Date: Wed, 11 Nov 2020 18:48:30 -0500 Subject: [PATCH 08/79] Fixed code that I accidently deleted --- application/controllers/Logbook.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/controllers/Logbook.php b/application/controllers/Logbook.php index 5182a8527..f663c7c34 100755 --- a/application/controllers/Logbook.php +++ b/application/controllers/Logbook.php @@ -549,7 +549,7 @@ class Logbook extends CI_Controller { $this->session->set_userdata('qrz_session_key', $qrz_session_key); } - $data['callsign'] = $this->qrz->search($id, $this->session->userdata('qrz_session_key'), $this->config->item('qrz_password'), $this->config->item('use_fullname')); + $data['callsign'] = $this->qrz->search($id, $this->session->userdata('qrz_session_key'), $this->config->item('use_fullname')); } else { // Lookup using hamli $this->load->library('hamli'); From 80f4bc210c43bdd73e602cc717749b2f9972535f Mon Sep 17 00:00:00 2001 From: Jeremy Brown Date: Fri, 13 Nov 2020 08:01:30 -0500 Subject: [PATCH 09/79] Escape names so that names with quotes in them work (aka, nicknames) --- application/libraries/Qrz.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/libraries/Qrz.php b/application/libraries/Qrz.php index 0ab43b1cd..6019ac3d2 100755 --- a/application/libraries/Qrz.php +++ b/application/libraries/Qrz.php @@ -77,9 +77,9 @@ class Qrz { $data['callsign'] = (string)$xml->Callsign->call; if ($use_fullname === true) { - $data['name'] = (string)$xml->Callsign->fname . ' ' . (string)$xml->Callsign->name; + $data['name'] = addslashes((string)$xml->Callsign->fname) . ' ' . addslashes((string)$xml->Callsign->name); } else { - $data['name'] = (string)$xml->Callsign->fname; + $data['name'] = addslashes((string)$xml->Callsign->fname); } $data['gridsquare'] = (string)$xml->Callsign->grid; $data['city'] = (string)$xml->Callsign->addr2; From 064075980bccc6ce965a0e009421771781269cf5 Mon Sep 17 00:00:00 2001 From: Jeremy Brown Date: Fri, 13 Nov 2020 08:02:17 -0500 Subject: [PATCH 10/79] Check to see if dxcc is set on import to avoid errors --- application/models/Logbook_model.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index 6092fddb0..c89e28077 100755 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -1538,7 +1538,9 @@ class Logbook_model extends CI_Model { if(isset($record['country'])) { $country = $record['country']; } else { - $country = ucwords(strtolower($dxcc[1])); + if (isset($dxcc[1])) { + $country = ucwords(strtolower($dxcc[1])); + } } // RST recevied From a5561236b18e1df3b90bf2af2ebc5d98812a1a0f Mon Sep 17 00:00:00 2001 From: Jeremy Brown Date: Fri, 13 Nov 2020 10:57:48 -0500 Subject: [PATCH 11/79] Add a check when doing QRZ lookups to see if the session is valid, if not, create a new session and try again. --- application/models/Logbook_model.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index c89e28077..aba5184c3 100755 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -2191,6 +2191,14 @@ class Logbook_model extends CI_Model { $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key'), $use_fullname); + + // if we got nothing, it's probably because our session key is invalid, try again + if (!isset($callbook['callsign'])) + { + $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); + $this->session->set_userdata('qrz_session_key', $qrz_session_key); + $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key'), $use_fullname); + } } if ($this->config->item('callbook') == "hamqth" && $this->config->item('hamqth_username') != null && $this->config->item('hamqth_password') != null) { From ace8de82bfcc84f13ad0230d42b496843c15039f Mon Sep 17 00:00:00 2001 From: Jeremy Brown Date: Fri, 13 Nov 2020 13:30:37 -0500 Subject: [PATCH 12/79] Fixes issues #1. Apparently the code I added broke it, and there was a different issue that was causing names not to save. --- application/libraries/Qrz.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/libraries/Qrz.php b/application/libraries/Qrz.php index 6019ac3d2..f855706ae 100755 --- a/application/libraries/Qrz.php +++ b/application/libraries/Qrz.php @@ -77,9 +77,9 @@ class Qrz { $data['callsign'] = (string)$xml->Callsign->call; if ($use_fullname === true) { - $data['name'] = addslashes((string)$xml->Callsign->fname) . ' ' . addslashes((string)$xml->Callsign->name); + $data['name'] = (string)$xml->Callsign->fname. ' ' . (string)$xml->Callsign->name; } else { - $data['name'] = addslashes((string)$xml->Callsign->fname); + $data['name'] = (string)$xml->Callsign->fname; } $data['gridsquare'] = (string)$xml->Callsign->grid; $data['city'] = (string)$xml->Callsign->addr2; From c896e5d909d0edd9a4d029a131919b2b61de4aad Mon Sep 17 00:00:00 2001 From: Jeremy Brown Date: Fri, 13 Nov 2020 13:43:33 -0500 Subject: [PATCH 13/79] When using fullname, the space was always inserted between first and last names even when no name was set. This now fixes issues #3 by triming the resultant string. --- application/libraries/Qrz.php | 1 + 1 file changed, 1 insertion(+) diff --git a/application/libraries/Qrz.php b/application/libraries/Qrz.php index f855706ae..42a280be8 100755 --- a/application/libraries/Qrz.php +++ b/application/libraries/Qrz.php @@ -81,6 +81,7 @@ class Qrz { } else { $data['name'] = (string)$xml->Callsign->fname; } + $data['name'] = trim($data['name']); $data['gridsquare'] = (string)$xml->Callsign->grid; $data['city'] = (string)$xml->Callsign->addr2; $data['lat'] = (string)$xml->Callsign->lat; From bf24cff4aa28e862b40c3915d4c8bb7c6e6cb499 Mon Sep 17 00:00:00 2001 From: Jeremy Brown Date: Sat, 14 Nov 2020 15:40:22 -0500 Subject: [PATCH 14/79] Fix for #2, if dxcc info is not in the adif, and the user wants to get it from the adif, we will still look it up if it's not included. --- application/models/Logbook_model.php | 2 +- application/views/adif/import.php | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index aba5184c3..4ac8ab79c 100755 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -1525,7 +1525,7 @@ class Logbook_model extends CI_Model { $entity = $this->get_entity($record['dxcc']); $dxcc = array($record['dxcc'], $entity['name']); } else { - $dxcc = NULL; + $dxcc = $this->check_dxcc_table($record['call'], $time_off); } } else { $dxcc = $this->check_dxcc_table($record['call'], $time_off); diff --git a/application/views/adif/import.php b/application/views/adif/import.php index 7f56d40ec..56f26899b 100644 --- a/application/views/adif/import.php +++ b/application/views/adif/import.php @@ -53,7 +53,8 @@ -
If not selected, Cloudlog will attempt to determine DXCC information automatically.
+
If not selected, Cloudlog will attempt to determine DXCC information automatically.
+ If selected, we will import from ADIF, but determine if not included in entries.
From 4ed092b955299c439d43ac70b84557f2309f9d45 Mon Sep 17 00:00:00 2001 From: Jeremy Brown Date: Mon, 16 Nov 2020 10:00:47 -0500 Subject: [PATCH 15/79] Fixed an issue that I had fixed for imports when the QRZ session key had expired lookups would fail. Now it does the same thing for manually entering QSOs --- application/controllers/Logbook.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/application/controllers/Logbook.php b/application/controllers/Logbook.php index f663c7c34..caaf87308 100755 --- a/application/controllers/Logbook.php +++ b/application/controllers/Logbook.php @@ -491,8 +491,14 @@ class Logbook extends CI_Controller { $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); $this->session->set_userdata('qrz_session_key', $qrz_session_key); } + $data= $this->qrz->search($id, $this->session->userdata('qrz_session_key'), $this->config->item('use_fullname')); - $data['callsign'] = $this->qrz->search($id, $this->session->userdata('qrz_session_key'), $this->config->item('use_fullname')); + if (empty($data['callsign'])) + { + $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); + $this->session->set_userdata('qrz_session_key', $qrz_session_key); + $data = $this->qrz->search($id, $this->session->userdata('qrz_session_key'), $this->config->item('use_fullname')); + } } // There's no hamli integration? Disabled for now. From 1adae9fd885d8342cff87fc89540ff828aadbea8 Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Sat, 7 Aug 2021 10:13:38 +0200 Subject: [PATCH 16/79] [Contesting] Started working on adding more possibilities for contest exchange --- application/views/contesting/index.php | 46 ++++++++++++++++++-------- assets/js/sections/contesting.js | 29 +++++++++++++--- 2 files changed, 56 insertions(+), 19 deletions(-) diff --git a/application/views/contesting/index.php b/application/views/contesting/index.php index 2b4820854..491a6966e 100644 --- a/application/views/contesting/index.php +++ b/application/views/contesting/index.php @@ -8,19 +8,17 @@
- + -
-
- - -
- -
- - -
-
+
+ +
@@ -121,21 +119,41 @@
+
+ + +
+
+
+ + +
+
- - + +
+
+ + +
+ +
+ + +
+
diff --git a/assets/js/sections/contesting.js b/assets/js/sections/contesting.js index cf1b60905..0eef65e84 100644 --- a/assets/js/sections/contesting.js +++ b/assets/js/sections/contesting.js @@ -9,10 +9,10 @@ $( document ).ready(function() { setRst($("#mode").val()); // Check to see what serial type is selected and set validation - if($('#serial').is(':checked')) { + if($('#serial').is(':checked')) { set_serial_number_input_validation(); } - if($('#other').is(':checked')) { + if($('#other').is(':checked')) { set_other_input_validation(); } }); @@ -181,18 +181,37 @@ $('#band').change(function() { // Change Serial Validation when selected $('#serial').change(function() { - if($('#serial').is(':checked')) { + if($('#serial').is(':checked')) { set_serial_number_input_validation(); } }); // Change other serial type when selected $('#other').change(function() { - if($('#other').is(':checked')) { + if($('#other').is(':checked')) { set_other_input_validation(); } }); +$('#exchangetype').change(function(){ + var exchangetype = $("#exchangetype option:selected").text(); + if (exchangetype == 'None') { + + } + if (exchangetype == 'Serial') { + + } + if (exchangetype == 'Serialexchange') { + + } + if (exchangetype == 'Serialgridsquare') { + + } + if (exchangetype == 'Gridsquare') { + + } +}); + /* Function: set_serial_number_input_validation Job: This sets the field input to number for validation @@ -209,4 +228,4 @@ function set_serial_number_input_validation() { function set_other_input_validation() { $('#exch_sent').attr('type', 'text'); $('#exch_recv').attr('type', 'text'); -} \ No newline at end of file +} From 9f670aab8cf4e5421436a93caab55832fcc01fb1 Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Sat, 7 Aug 2021 19:43:56 +0200 Subject: [PATCH 17/79] [Gridsquare Map] Tweaked the different zoom levels. Fields are shown at the same time as worked/confirmed gridsquares (but only at certain zoom levels). Also gridsquares are visible at a lower zoom level. --- application/views/interface_assets/footer.php | 4 +- assets/js/leaflet/L.MaidenheadColoured.js | 104 +++++++++++++++--- 2 files changed, 91 insertions(+), 17 deletions(-) diff --git a/application/views/interface_assets/footer.php b/application/views/interface_assets/footer.php index c8195c332..80c9e674f 100644 --- a/application/views/interface_assets/footer.php +++ b/application/views/interface_assets/footer.php @@ -785,7 +785,7 @@ $(document).ready(function(){ var map = L.map('map', { layers: [layer], center: [19, 0], - zoom: 3 + zoom: 2 }); var grid_two = ; @@ -809,7 +809,7 @@ $(document).ready(function(){ console.log(loc_4char); console.log(map.getZoom()); - if(map.getZoom() > 5) { + if(map.getZoom() > 2) { var search_type = "uri->segment(2); ?>"; if(search_type == "satellites") { console.log("satellites search"); diff --git a/assets/js/leaflet/L.MaidenheadColoured.js b/assets/js/leaflet/L.MaidenheadColoured.js index a12e490be..063347001 100644 --- a/assets/js/leaflet/L.MaidenheadColoured.js +++ b/assets/js/leaflet/L.MaidenheadColoured.js @@ -4,7 +4,7 @@ L.Maidenhead = L.LayerGroup.extend({ - + options: { // Line and label color color: 'rgba(255, 0, 0, 0.4)', @@ -28,7 +28,7 @@ L.Maidenhead = L.LayerGroup.extend({ this.eachLayer(map.addLayer, map); }, - + onRemove: function (map) { // remove layer listeners and elements map.off('viewreset '+ this.options.redraw, this.map); @@ -36,8 +36,8 @@ L.Maidenhead = L.LayerGroup.extend({ }, redraw: function () { - var d3 = new Array(20,10,10,10,10,10,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 ,10,14,6 ,8 ,8 ,8 ,1.4 ,2.5 ,3 ,3.5 ,4 ,4 ,3.5 ,3.5 ,3 ,1.8 ,1.6 ); + 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 bounds = map.getBounds(); var zoom = map.getZoom(); var unit = d3[zoom]; @@ -54,10 +54,11 @@ L.Maidenhead = L.LayerGroup.extend({ 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)) { 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))) { @@ -65,19 +66,51 @@ L.Maidenhead = L.LayerGroup.extend({ } 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 { - 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(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); - this.addLayer(this._getLabel(lon+unit-(unit/lcor),lat+(unit/2)+(unit/lcor*c))); + 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) { + 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 / lcor), lat + (unit / 2) + (unit / lcor * c))); + } } } return this; }, - + _getLabel: function(lon,lat) { - var title_size = new Array(0 ,10,12,16,20,26,15,16,24,36,12 ,14 ,20 ,36 ,60 ,12 ,20 ,36 ,60 ,12 ,24 ); + 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 zoom = map.getZoom(); var size = title_size[zoom]+'px'; var title = '' + this._getLocator(lon,lat) + ''; @@ -85,12 +118,12 @@ L.Maidenhead = L.LayerGroup.extend({ var marker = L.marker([lat,lon], {icon: myIcon}, clickable=false); 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 ,1 ,1 ,1 ,2 ,2 ,2 ,2 ,3 ,3 ,3 ,3 ,3 ,4 ,4 ,4 ,4 ,5 ,5 ); + 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; @@ -107,15 +140,56 @@ L.Maidenhead = L.LayerGroup.extend({ 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]))]; + 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 = '' + this._getLocator2(lon,lat) + ''; + 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; + }, }); From a9b5672438ff41d02796b43b79b6f878525d8c1d Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Sun, 8 Aug 2021 14:24:31 +0200 Subject: [PATCH 18/79] [Superhero Theme] Tweaked CSS for map. --- assets/css/superhero/overrides.css | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/assets/css/superhero/overrides.css b/assets/css/superhero/overrides.css index ec0daf888..2c4774f99 100644 --- a/assets/css/superhero/overrides.css +++ b/assets/css/superhero/overrides.css @@ -7,20 +7,21 @@ */ .leaflet-tile { - filter: brightness(0.7) grayscale(0.6) !important; + filter: invert() hue-rotate(180deg) sepia(100%) hue-rotate(180deg) !important; } + path.grid-rectangle { stroke: rgba(200, 200, 200, 0.5); } span.grid-text > font { - color: rgba(220, 220, 220, 0.85) !important; - -webkit-text-stroke: 1px black !important; + color: rgba(220, 220, 220, 1) !important; + -webkit-text-stroke: 0.6px black !important; } path.grid-confirmed { - fill: rgba(144, 238, 144, 0.3) !important; - stroke: rgba(144, 238, 144, 0.3) !important; + fill: rgba(144, 238, 144, 0.4) !important; + stroke: rgba(144, 238, 144, 0.4) !important; } path.grid-worked { @@ -28,7 +29,7 @@ path.grid-worked { stroke: rgba(220, 50, 50, 0.4) !important; } -#map, +#map, #qsomap{ background-color: #2E3E50; } From 720cf766f2370fc7778830de7a19bfca8d22592c Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Sun, 8 Aug 2021 18:30:07 +0200 Subject: [PATCH 19/79] [DOK autofill fix] Set option create to true so that entries not found in the DOK list, can be manually added. Fixed #1120 --- application/views/interface_assets/footer.php | 2 +- assets/js/sections/qso.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/application/views/interface_assets/footer.php b/application/views/interface_assets/footer.php index c8195c332..8c0c1cbb8 100644 --- a/application/views/interface_assets/footer.php +++ b/application/views/interface_assets/footer.php @@ -1323,7 +1323,7 @@ $(document).ready(function(){ labelField: 'name', searchField: 'name', options: [], - create: false, + create: true, load: function(query, callback) { if (!query) return callback(); // Only trigger if 3 or more characters are entered $.ajax({ diff --git a/assets/js/sections/qso.js b/assets/js/sections/qso.js index c92a103fe..5c7083d82 100644 --- a/assets/js/sections/qso.js +++ b/assets/js/sections/qso.js @@ -79,7 +79,7 @@ $( document ).ready(function() { labelField: 'name', searchField: 'name', options: [], - create: false, + create: true, load: function(query, callback) { if (!query) return callback(); // Only trigger if at least 1 character is entered $.ajax({ From 600a12f6ad17d5cbdc2b5abafc77ffe5455e3cda Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Mon, 9 Aug 2021 11:55:10 +0200 Subject: [PATCH 20/79] [Gridsquare Map] Renamed id tag for gridsquare map (to be able to split the different maps, and use custom css) --- application/views/gridsquares/index.php | 2 +- application/views/interface_assets/footer.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/application/views/gridsquares/index.php b/application/views/gridsquares/index.php index f1b2b027d..eec7fe519 100644 --- a/application/views/gridsquares/index.php +++ b/application/views/gridsquares/index.php @@ -20,7 +20,7 @@
-
+
uri->segment(2) == "satellites") { ?> diff --git a/application/views/interface_assets/footer.php b/application/views/interface_assets/footer.php index 80c9e674f..f0af844e4 100644 --- a/application/views/interface_assets/footer.php +++ b/application/views/interface_assets/footer.php @@ -782,7 +782,7 @@ $(document).ready(function(){ }); - var map = L.map('map', { + var map = L.map('gridsquare_map', { layers: [layer], center: [19, 0], zoom: 2 From 041114e85af29f982958f00c22cd2f0e99fad1fd Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Tue, 10 Aug 2021 22:32:15 +0200 Subject: [PATCH 21/79] [Contesting] Added hide/show on exchangefields when selection is made. --- application/views/contesting/index.php | 12 ++++----- assets/js/sections/contesting.js | 37 +++++++++++++++++++++----- 2 files changed, 37 insertions(+), 12 deletions(-) diff --git a/application/views/contesting/index.php b/application/views/contesting/index.php index 491a6966e..e49d575cd 100644 --- a/application/views/contesting/index.php +++ b/application/views/contesting/index.php @@ -119,17 +119,17 @@
-
+ -
+ -
+ @@ -139,17 +139,17 @@
-
+ -
+ -
+ diff --git a/assets/js/sections/contesting.js b/assets/js/sections/contesting.js index 0eef65e84..e39bb9e4e 100644 --- a/assets/js/sections/contesting.js +++ b/assets/js/sections/contesting.js @@ -194,21 +194,46 @@ $('#other').change(function() { }); $('#exchangetype').change(function(){ - var exchangetype = $("#exchangetype option:selected").text(); + var exchangetype = $("#exchangetype").val(); if (exchangetype == 'None') { - + $(".exchanger").hide(); + $(".exchanges").hide(); + $(".serials").hide(); + $(".serialr").hide(); + $(".gridsquarer").hide(); + $(".gridsquares").hide(); } if (exchangetype == 'Serial') { - + $(".exchanger").hide(); + $(".exchanges").hide(); + $(".serials").show(); + $(".serialr").show(); + $(".gridsquarer").hide(); + $(".gridsquares").hide(); } if (exchangetype == 'Serialexchange') { - + $(".exchanger").show(); + $(".exchanges").show(); + $(".serials").show(); + $(".serialr").show(); + $(".gridsquarer").hide(); + $(".gridsquares").hide(); } if (exchangetype == 'Serialgridsquare') { - + $(".exchanger").hide(); + $(".exchanges").hide(); + $(".serials").show(); + $(".serialr").show(); + $(".gridsquarer").show(); + $(".gridsquares").show(); } if (exchangetype == 'Gridsquare') { - + $(".exchanger").hide(); + $(".exchanges").hide(); + $(".serials").hide(); + $(".serialr").hide(); + $(".gridsquarer").show(); + $(".gridsquares").show(); } }); From a361cfb897c3050e0bbf2faee198f845802826be Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Wed, 11 Aug 2021 08:54:24 +0200 Subject: [PATCH 22/79] [Contesting] Moved 2 js-functions from footer to the contesting.js file, just to clean things up a bit. --- application/views/interface_assets/footer.php | 131 ----------------- assets/js/sections/contesting.js | 132 ++++++++++++++++++ 2 files changed, 132 insertions(+), 131 deletions(-) diff --git a/application/views/interface_assets/footer.php b/application/views/interface_assets/footer.php index c8195c332..1bb11ed91 100644 --- a/application/views/interface_assets/footer.php +++ b/application/views/interface_assets/footer.php @@ -1756,137 +1756,6 @@ function deleteQsl(id) { uri->segment(1) == "contesting") { ?> - - uri->segment(1) == "station") { ?> diff --git a/assets/js/sections/contesting.js b/assets/js/sections/contesting.js index e39bb9e4e..f1da1e4b2 100644 --- a/assets/js/sections/contesting.js +++ b/assets/js/sections/contesting.js @@ -254,3 +254,135 @@ function set_other_input_validation() { $('#exch_sent').attr('type', 'text'); $('#exch_recv').attr('type', 'text'); } + +/* + Function: logQso + Job: this handles the logging done in the contesting module. + */ +function logQso() { + if ($("#callsign").val().length > 0) { + + $('.callsign-suggestions').text(""); + + var table = $('.qsotable').DataTable(); + + var data = [[$("#start_date").val()+ ' ' + $("#start_time").val(), + $("#callsign").val().toUpperCase(), + $("#band").val(), + $("#mode").val(), + $("#rst_sent").val(), + $("#rst_recv").val(), + $("#exch_sent").val(), + $("#exch_recv").val()]]; + + table.rows.add(data).draw(); + + var formdata = new FormData(document.getElementById("qso_input")); + $.ajax({ + url: base_url + 'index.php/qso/saveqso', + type: 'post', + data: formdata, + processData: false, + contentType: false, + enctype: 'multipart/form-data', + success: function (html) { + if (localStorage.getItem("qso") == null) { + localStorage.setItem("qso", $("#start_date").val()+ ' ' + $("#start_time").val() + ',' + $("#callsign").val().toUpperCase() + ',' + $("#contestname").val()); + } + + $('#name').val(""); + + $('#callsign').val(""); + $('#comment').val(""); + $('#exch_recv').val(""); + if ($('input[name=exchangeradio]:checked', '#qso_input').val() == "serial") { + $("#exch_sent").val(+$("#exch_sent").val() + 1); + } + $("#callsign").focus(); + + // Store contest session + localStorage.setItem("contestid", $("#contestname").val()); + localStorage.setItem("exchangetype", $('input[name=exchangeradio]:checked', '#qso_input').val()); + localStorage.setItem("exchangesent", $("#exch_sent").val()); + } + }); + } +} + +// We are restoring the settings in the contest logging form here +function restoreContestSession() { + var contestname = localStorage.getItem("contestid"); + + if (contestname != null) { + $("#contestname").val(contestname); + } + + var exchangetype = localStorage.getItem("exchangetype"); + + if (exchangetype == "other") { + $("[name=exchangeradio]").val(["other"]); + } + + var exchangesent = localStorage.getItem("exchangesent"); + + if (exchangesent != null) { + $("#exch_sent").val(exchangesent); + } + + if (localStorage.getItem("qso") != null) { + var baseURL= ""; + //alert(localStorage.getItem("qso")); + var qsodata = localStorage.getItem("qso"); + $.ajax({ + url: base_url + 'index.php/contesting/getSessionQsos', + type: 'post', + data: {'qso': qsodata,}, + success: function (html) { + var mode = ''; + var sentexchange = ''; + var receivedexchange = ''; + $.each(html, function(){ + if (this.col_submode == null || this.col_submode == '') { + mode = this.col_mode; + } else { + mode = this.col_submode; + } + + if (this.col_srx == null || this.col_srx == '') { + receivedexchange = this.col_srx_string; + } else { + receivedexchange = this.col_srx; + } + + if (this.col_stx == null || this.col_stx == '') { + sentexchange = this.col_stx_string; + } else { + sentexchange = this.col_stx; + } + + $(".qsotable tbody").prepend('' + + ''+ this.col_time_on + '' + + ''+ this.col_call + '' + + ''+ this.col_band + '' + + ''+ mode + '' + + ''+ this.col_rst_sent + '' + + ''+ this.col_rst_rcvd + '' + + ''+ sentexchange + '' + + ''+ receivedexchange + '' + + ''); + }); + if (!$.fn.DataTable.isDataTable('.qsotable')) { + $('.qsotable').DataTable({ + "pageLength": 25, + responsive: false, + "scrollY": "400px", + "scrollCollapse": true, + "paging": false, + "scrollX": true, + "order": [[ 0, "desc" ]] + }); + } + } + }); + } +} From d0a0cad4b75f5f1e4f033e7fc40f90204c0096ea Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Thu, 12 Aug 2021 11:52:36 +0200 Subject: [PATCH 23/79] [Contesting] Added exchange to exchange type. Input fields change according to exchange type. Storing values in localstorage, and restoring on reload. --- application/views/contesting/index.php | 3 +- assets/js/sections/contesting.js | 55 ++++++++++++++++---------- 2 files changed, 37 insertions(+), 21 deletions(-) diff --git a/application/views/contesting/index.php b/application/views/contesting/index.php index e49d575cd..ae71052e5 100644 --- a/application/views/contesting/index.php +++ b/application/views/contesting/index.php @@ -13,10 +13,11 @@
diff --git a/assets/js/sections/contesting.js b/assets/js/sections/contesting.js index f1da1e4b2..bd095e533 100644 --- a/assets/js/sections/contesting.js +++ b/assets/js/sections/contesting.js @@ -195,6 +195,10 @@ $('#other').change(function() { $('#exchangetype').change(function(){ var exchangetype = $("#exchangetype").val(); + setExchangetype(exchangetype); +}); + +function setExchangetype(exchangetype) { if (exchangetype == 'None') { $(".exchanger").hide(); $(".exchanges").hide(); @@ -203,7 +207,15 @@ $('#exchangetype').change(function(){ $(".gridsquarer").hide(); $(".gridsquares").hide(); } - if (exchangetype == 'Serial') { + else if (exchange == 'Exchange') { + $(".exchanger").show(); + $(".exchanges").show(); + $(".serials").hide(); + $(".serialr").hide(); + $(".gridsquarer").hide(); + $(".gridsquares").hide(); + } + else if (exchangetype == 'Serial') { $(".exchanger").hide(); $(".exchanges").hide(); $(".serials").show(); @@ -211,7 +223,7 @@ $('#exchangetype').change(function(){ $(".gridsquarer").hide(); $(".gridsquares").hide(); } - if (exchangetype == 'Serialexchange') { + else if (exchangetype == 'Serialexchange') { $(".exchanger").show(); $(".exchanges").show(); $(".serials").show(); @@ -219,7 +231,7 @@ $('#exchangetype').change(function(){ $(".gridsquarer").hide(); $(".gridsquares").hide(); } - if (exchangetype == 'Serialgridsquare') { + else if (exchangetype == 'Serialgridsquare') { $(".exchanger").hide(); $(".exchanges").hide(); $(".serials").show(); @@ -227,7 +239,7 @@ $('#exchangetype').change(function(){ $(".gridsquarer").show(); $(".gridsquares").show(); } - if (exchangetype == 'Gridsquare') { + else if (exchangetype == 'Gridsquare') { $(".exchanger").hide(); $(".exchanges").hide(); $(".serials").hide(); @@ -235,7 +247,7 @@ $('#exchangetype').change(function(){ $(".gridsquarer").show(); $(".gridsquares").show(); } -}); +} /* Function: set_serial_number_input_validation @@ -295,15 +307,21 @@ function logQso() { $('#callsign').val(""); $('#comment').val(""); $('#exch_recv').val(""); - if ($('input[name=exchangeradio]:checked', '#qso_input').val() == "serial") { - $("#exch_sent").val(+$("#exch_sent").val() + 1); + var exchangetype = $("#exchangetype").val(); + if (exchangetype == "Serial" || exchangetype == 'Serialexchange' || exchangetype == 'Serialgridsquare') { + $(".serials").val(+$(".serials").val() + 1); } $("#callsign").focus(); // Store contest session localStorage.setItem("contestid", $("#contestname").val()); - localStorage.setItem("exchangetype", $('input[name=exchangeradio]:checked', '#qso_input').val()); - localStorage.setItem("exchangesent", $("#exch_sent").val()); + localStorage.setItem("exchangetype", $("#exchangetype").val()); + localStorage.setItem("exchangereceived", $(".exchanger").val()); + localStorage.setItem("exchangesent", $(".exchanges").val()); + localStorage.setItem("serialreceived", $(".serialr").val()); + localStorage.setItem("serialsent", $(".serials").val()); + localStorage.setItem("gridsquarereceived", $(".gridsquarer").val()); + localStorage.setItem("gridsquaresent", $(".gridsquares").val()); } }); } @@ -318,20 +336,17 @@ function restoreContestSession() { } var exchangetype = localStorage.getItem("exchangetype"); + $("#exchangetype").val(exchangetype); + setExchangetype(exchangetype); - if (exchangetype == "other") { - $("[name=exchangeradio]").val(["other"]); - } - - var exchangesent = localStorage.getItem("exchangesent"); - - if (exchangesent != null) { - $("#exch_sent").val(exchangesent); - } + $(".exchanger").val(localStorage.getItem("exchangereceived")); + $(".exchanges").val(localStorage.getItem("exchangesent")); + $(".serialr").val(localStorage.getItem("serialreceived")); + $(".serials").val(localStorage.getItem("serialsent")); + $(".gridsquarer").val(localStorage.getItem("gridsquarereceived")); + $(".gridsquares").val(localStorage.getItem("gridsquaresent")); if (localStorage.getItem("qso") != null) { - var baseURL= ""; - //alert(localStorage.getItem("qso")); var qsodata = localStorage.getItem("qso"); $.ajax({ url: base_url + 'index.php/contesting/getSessionQsos', From 1746f7e5817b73810083576f408323be3cf2130d Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Thu, 12 Aug 2021 11:56:38 +0200 Subject: [PATCH 24/79] [Contesting] Fixed a typo that would break function. --- assets/js/sections/contesting.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/js/sections/contesting.js b/assets/js/sections/contesting.js index bd095e533..2fd66376d 100644 --- a/assets/js/sections/contesting.js +++ b/assets/js/sections/contesting.js @@ -207,7 +207,7 @@ function setExchangetype(exchangetype) { $(".gridsquarer").hide(); $(".gridsquares").hide(); } - else if (exchange == 'Exchange') { + else if (exchangetype == 'Exchange') { $(".exchanger").show(); $(".exchanges").show(); $(".serials").hide(); From f7a2303713b656afab50028afbc19de994d8d68d Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Thu, 12 Aug 2021 13:13:03 +0200 Subject: [PATCH 25/79] [User Accounts] Hides delete button for logged in user. Fixes #1129 --- application/views/user/main.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/application/views/user/main.php b/application/views/user/main.php index 11de1b3f1..da1bd291a 100644 --- a/application/views/user/main.php +++ b/application/views/user/main.php @@ -37,7 +37,14 @@ user_id; ?>">user_name; ?> user_email; ?> config->item('auth_level'); echo $l[$row->user_type]; ?> - user_id; ?>" class="btn btn-outline-primary btn-sm"> Edit user_id; ?>" class="btn btn-danger btn-sm"> Delete + + user_id; ?>" class="btn btn-outline-primary btn-sm"> Edit + user_id) { + echo "user_id . " class=\"btn btn-danger btn-sm\"> Delete"; + } + ?> + @@ -50,4 +57,4 @@
-
\ No newline at end of file +
From 6f448e056a5f12c0afb77fe91e9398ea56c2bb06 Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Thu, 12 Aug 2021 19:37:16 +0200 Subject: [PATCH 26/79] [Contesting] Cleaning up the JS code, fixing some bugs and getting everything to work in the GUI. --- application/views/contesting/index.php | 4 +- assets/js/sections/contesting.js | 127 ++++++++++++------------- 2 files changed, 65 insertions(+), 66 deletions(-) diff --git a/application/views/contesting/index.php b/application/views/contesting/index.php index ae71052e5..81255f892 100644 --- a/application/views/contesting/index.php +++ b/application/views/contesting/index.php @@ -122,7 +122,7 @@ @@ -191,19 +192,8 @@
- COL_STX_STRING) { ?> -
- - -
- - COL_SRX_STRING) { ?> -
- - -
- +
@@ -578,8 +568,50 @@
+ + From e588623726ef5dd4ccd9a8f5df3b1046cfddc89f Mon Sep 17 00:00:00 2001 From: Peter Goodhall Date: Fri, 20 Aug 2021 17:00:34 +0100 Subject: [PATCH 31/79] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 49355f72b..3bf40e93d 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,6 @@ Thanks to Andy (VE7CXZ), Gavin (M1BXF), Graham (W5ISP), Robert (M0VFC), Corby (K Cloudlog is supported by Patreon and donations via PayPal, thanks to the following people: -Paul (M0TZO), Tim (G4VXE), Paul (N8HM), Michelle (W5NYV), Mitchell (AD0HJ), Dan (M0TCB), Martin (DK3ML), Juan Carlos (EA5WA), Iain (M0PCB), Charlie (GM1TGY), Ondrej (OK1CDJ), Trystan (G0KAY), Oliver (DL6KBG), Volkmar Schirmer, Jordan (M0PIR), Thomas Ziegler, Mathis (DB9MAT), Ken (VE3HLS), Tyler (WL7T), Jeremy Taylor, Ben Kuhn, Eric Thresher, Michael Cullen, Juuso (OH1JW), Anthony Castiglia, Fernando Ramirez-Ferrer, Robert Dixon, Mark Percival, Julia (KV1V), Timo Tomasini, Ant (NU1U), Christopher Williams, Danny Barnes, Vic, Tom (M0LTE), smurphboy +Paul (M0TZO), Tim (G4VXE), Paul (N8HM), Michelle (W5NYV), Mitchell (AD0HJ), Dan (M0TCB), Martin (DK3ML), Juan Carlos (EA5WA), Iain (M0PCB), Charlie (GM1TGY), Ondrej (OK1CDJ), Trystan (G0KAY), Oliver (DL6KBG), Volkmar Schirmer, Jordan (M0PIR), Thomas Ziegler, Mathis (DB9MAT), Ken (VE3HLS), Tyler (WL7T), Jeremy Taylor, Ben Kuhn, Eric Thresher, Michael Cullen, Juuso (OH1JW), Anthony Castiglia, Fernando Ramirez-Ferrer, Robert Dixon, Mark Percival, Julia (KV1V), Timo Tomasini, Ant (NU1U), Christopher Williams, Danny Barnes, Vic, Tom (M0LTE), smurphboy, Lars (SM0TGU) If you'd like to donate to Cloudlog to help allow @magicbug spend less time doing commercial work and more time coding Cloudlog then you can donate via [PayPal](https://paypal.me/PGoodhall), [Github Sponsor](https://github.com/sponsors/magicbug) or become a [Patreon](https://www.patreon.com/2m0sql) From 3523d04cdcca54e2b3f296e5269bf4b1650e7655 Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Sat, 21 Aug 2021 17:17:21 +0200 Subject: [PATCH 32/79] [Themes] Moved bootstrap-dialog.css and selectize.bootstrap4.css to css folder. Moved differences to overrides.css, and made sure to load this after the other css files. Now we only need two files for a theme in Cloudlog. --- application/views/interface_assets/header.php | 4 +- assets/css/blue/bootstrap-dialog.css | 169 ------ assets/css/blue/overrides.css | 76 ++- assets/css/blue/selectize.bootstrap4.css | 480 ------------------ assets/css/cosmo/bootstrap-dialog.css | 169 ------ assets/css/cosmo/overrides.css | 10 +- assets/css/cosmo/selectize.bootstrap4.css | 478 ----------------- assets/css/cyborg/bootstrap-dialog.css | 169 ------ assets/css/cyborg/overrides.css | 70 ++- assets/css/cyborg/selectize.bootstrap4.css | 480 ------------------ assets/css/darkly/bootstrap-dialog.css | 169 ------ assets/css/darkly/overrides.css | 67 ++- assets/css/darkly/selectize.bootstrap4.css | 480 ------------------ assets/css/default/bootstrap-dialog.css | 169 ------ assets/css/default/overrides.css | 6 +- assets/css/default/selectize.bootstrap4.css | 478 ----------------- assets/css/superhero/bootstrap-dialog.css | 169 ------ assets/css/superhero/overrides.css | 64 ++- assets/css/superhero/selectize.bootstrap4.css | 480 ------------------ 19 files changed, 213 insertions(+), 3974 deletions(-) delete mode 100644 assets/css/blue/bootstrap-dialog.css delete mode 100644 assets/css/blue/selectize.bootstrap4.css delete mode 100644 assets/css/cosmo/bootstrap-dialog.css delete mode 100644 assets/css/cosmo/selectize.bootstrap4.css delete mode 100644 assets/css/cyborg/bootstrap-dialog.css delete mode 100644 assets/css/cyborg/selectize.bootstrap4.css delete mode 100644 assets/css/darkly/bootstrap-dialog.css delete mode 100644 assets/css/darkly/selectize.bootstrap4.css delete mode 100644 assets/css/default/bootstrap-dialog.css delete mode 100644 assets/css/default/selectize.bootstrap4.css delete mode 100644 assets/css/superhero/bootstrap-dialog.css delete mode 100644 assets/css/superhero/selectize.bootstrap4.css diff --git a/application/views/interface_assets/header.php b/application/views/interface_assets/header.php index 088d02da0..e630dbbd1 100644 --- a/application/views/interface_assets/header.php +++ b/application/views/interface_assets/header.php @@ -9,9 +9,9 @@ optionslib->get_theme()) { ?> + + - - diff --git a/assets/css/blue/bootstrap-dialog.css b/assets/css/blue/bootstrap-dialog.css deleted file mode 100644 index 8553d42ac..000000000 --- a/assets/css/blue/bootstrap-dialog.css +++ /dev/null @@ -1,169 +0,0 @@ -.bootstrap-dialog{ - overflow-y: initial !important -} -.bootstrap-dialog-body{ - max-height: calc(100vh - 200px); - overflow-y: auto; -} - -.bootstrap-dialog { - /* dialog types */ - /** - * Icon animation - * Copied from font-awesome: http://fontawesome.io/ - **/ - /** End of icon animation **/ -} - -.bootstrap-dialog .modal-header { - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} - -.bootstrap-dialog .bootstrap-dialog-title { - color: #fff; - display: inline-block; - font-size: 16px; -} - -.bootstrap-dialog .bootstrap-dialog-message { - font-size: 14px; -} - -.bootstrap-dialog .bootstrap-dialog-button-icon { - margin-right: 3px; -} - -.bootstrap-dialog .bootstrap-dialog-close-button { - font-size: 20px; - float: right; - opacity: 0.9; - filter: alpha(opacity=90); -} - -.bootstrap-dialog .bootstrap-dialog-close-button:hover { - cursor: pointer; - opacity: 1; - filter: alpha(opacity=100); -} - -@media (min-width: 1172px) { - .bootstrap-dialog .modal-xl { - max-width: 95%; - } -} -.bootstrap-dialog .modal-lg .bootstrap4-dialog-button:first-child { - margin-top: 8px; -} - -.bootstrap-dialog.type-default .modal-header { - background-color: #fff; -} - -.bootstrap-dialog.type-default .bootstrap-dialog-title { - color: #333; -} - -.bootstrap-dialog.type-info .modal-header { - background-color: #17a2b8; -} - -.bootstrap-dialog.type-primary .modal-header { - background-color: #2B3E50; -} - -.bootstrap-dialog.type-secondary .modal-header { - background-color: #6c757d; -} - -.bootstrap-dialog.type-success .modal-header { - background-color: #28a745; -} - -.bootstrap-dialog.type-warning .modal-header { - background-color: #ffc107; -} - -.bootstrap-dialog.type-danger .modal-header { - background-color: #dc3545; -} - -.bootstrap-dialog.type-light .modal-header { - background-color: #f8f9fa; -} - -.bootstrap-dialog.type-dark .modal-header { - background-color: #343a40; -} - -.bootstrap-dialog.size-large .bootstrap-dialog-title { - font-size: 24px; -} - -.bootstrap-dialog.size-large .bootstrap-dialog-close-button { - font-size: 30px; -} - -.bootstrap-dialog.size-large .bootstrap-dialog-message { - font-size: 18px; -} - -.bootstrap-dialog .icon-spin { - display: inline-block; - -moz-animation: spin 2s infinite linear; - -o-animation: spin 2s infinite linear; - -webkit-animation: spin 2s infinite linear; - animation: spin 2s infinite linear; -} - -.bootstrap-dialog-footer-buttons { - display: flex; -} - -@-moz-keyframes spin { - 0% { - -moz-transform: rotate(0deg); - } - 100% { - -moz-transform: rotate(359deg); - } -} -@-webkit-keyframes spin { - 0% { - -webkit-transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - } -} -@-o-keyframes spin { - 0% { - -o-transform: rotate(0deg); - } - 100% { - -o-transform: rotate(359deg); - } -} -@-ms-keyframes spin { - 0% { - -ms-transform: rotate(0deg); - } - 100% { - -ms-transform: rotate(359deg); - } -} -@keyframes spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(359deg); - } -} -.bootstrap-dialog-header { - display: contents; -} - -/*# sourceMappingURL=bootstrap-dialog.css.map */ - -/*# sourceMappingURL=bootstrap-dialog.css.map */ diff --git a/assets/css/blue/overrides.css b/assets/css/blue/overrides.css index a4cf926ca..5d5c448bf 100644 --- a/assets/css/blue/overrides.css +++ b/assets/css/blue/overrides.css @@ -1,7 +1,7 @@ -thead > tr > td { - position: sticky; - top: 45px; - background-color: aliceblue; +thead>tr>td { + position: sticky; + top: 45px; + background-color: aliceblue; } .workedGrid { @@ -13,35 +13,42 @@ thead > tr > td { border-width: 2px; } -.eqsl-green{ +.eqsl-green { color: #00A000; font-size: 1.1em; } -.eqsl-red{ + +.eqsl-red { color: #F00; font-size: 1.1em; } -.qsl-green{ + +.qsl-green { color: #00A000; font-size: 1.1em; } -.qsl-red{ + +.qsl-red { color: #F00; font-size: 1.1em; } -.qsl-yellow{ + +.qsl-yellow { color: #d39e00; font-size: 1.1em; } -.qsl-grey{ + +.qsl-grey { color: #dddddd; font-size: 1.1em; } -.lotw-green{ + +.lotw-green { color: #00A000; font-size: 1.1em; } -.lotw-red{ + +.lotw-red { color: #F00; font-size: 1.1em; } @@ -62,18 +69,51 @@ thead > tr > td { .settings-nav .nav-link:hover { background-color: #e1e4e8; - } /* QSL Card Management CSS */ .qso-map-new .card-header { -background: #0F2027; /* fallback for old browsers */ -background: -webkit-linear-gradient(to right, #2C5364, #203A43, #0F2027); /* Chrome 10-25, Safari 5.1-6 */ -background: linear-gradient(to right, #2C5364, #203A43, #0F2027); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ -color: #ffffff; + background: #0F2027; + /* fallback for old browsers */ + background: -webkit-linear-gradient(to right, #2C5364, #203A43, #0F2027); + /* Chrome 10-25, Safari 5.1-6 */ + background: linear-gradient(to right, #2C5364, #203A43, #0F2027); + /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ + color: #ffffff; } div.alert-danger { - color: #ffffff; + color: #ffffff; +} + +.bootstrap-dialog.type-primary .modal-header { + background-color: #2B3E50; +} + +.selectize-dropdown, .selectize-input, .selectize-input input { + color: #495057; +} + +.selectize-input, .selectize-control.single .selectize-input.input-active { + color: #495057; +} + +.selectize-input { + border-radius: 0; +} + +.selectize-input.focus { + box-shadow: inset 0 1px 2px rgba(0, 0, 0, .15); +} + +.selectize-dropdown .optgroup-header { + color: #495057; +} + +.selectize-input.focus { + color: #495057; + background-color: #fff; + border-color: #f1b287; + box-shadow: 0 0 0 .2rem rgba(223, 105, 26, .25) } \ No newline at end of file diff --git a/assets/css/blue/selectize.bootstrap4.css b/assets/css/blue/selectize.bootstrap4.css deleted file mode 100644 index f4c8f6c6a..000000000 --- a/assets/css/blue/selectize.bootstrap4.css +++ /dev/null @@ -1,480 +0,0 @@ -.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder { - visibility: visible !important; - background: #f2f2f2 !important; - background: rgba(0, 0, 0, .06) !important; - border: 0 none !important; - box-shadow: inset 0 0 12px 4px #fff -} - -.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after { - content: "!"; - visibility: hidden -} - -.selectize-control.plugin-drag_drop .ui-sortable-helper { - box-shadow: 0 2px 5px rgba(0, 0, 0, .2) -} - -.selectize-control .dropdown-header { - position: relative; - padding: 6px .75rem; - border-bottom: 1px solid #d0d0d0; - background: #f8f8f8; - border-radius: .25rem .25rem 0 0 -} - -.selectize-control .dropdown-header-close { - position: absolute; - right: .75rem; - top: 50%; - color: #343a40; - opacity: .4; - margin-top: -12px; - line-height: 20px; - font-size: 20px !important -} - -.selectize-control .dropdown-header-close:hover { - color: #000 -} - -.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content { - display: flex -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup { - border-right: 1px solid #f2f2f2; - border-top: 0 none; - flex-grow: 1; - flex-basis: 0; - min-width: 0 -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child { - border-right: 0 none -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup:before { - display: none -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup-header { - border-top: 0 none -} - -.selectize-control.plugin-remove_button .item { - display: inline-flex; - align-items: center; - padding-right: 0 !important -} - -.selectize-control.plugin-remove_button .item .remove { - color: inherit; - text-decoration: none; - vertical-align: middle; - display: inline-block; - padding: 1px 5px; - border-left: 1px solid #dee2e6; - border-radius: 0 2px 2px 0; - box-sizing: border-box; - margin-left: 5px -} - -.selectize-control.plugin-remove_button .item .remove:hover { - background: rgba(0, 0, 0, .05) -} - -.selectize-control.plugin-remove_button .item.active .remove { - border-left-color: rgba(0, 0, 0, 0) -} - -.selectize-control.plugin-remove_button .disabled .item .remove:hover { - background: none -} - -.selectize-control.plugin-remove_button .disabled .item .remove { - border-left-color: #fff -} - -.selectize-control.plugin-remove_button .remove-single { - position: absolute; - right: 0; - top: 0; - font-size: 23px -} - -.selectize-control { - position: relative -} - -.selectize-dropdown, .selectize-input, .selectize-input input { - color: #495057; - font-family: inherit; - font-size: inherit; - line-height: 1.5; - font-smoothing: inherit -} - -.selectize-input, .selectize-control.single .selectize-input.input-active { - background: #FFF; - color: #495057; - cursor: text; - display: inline-block -} - -.selectize-input { - padding: .375rem .75rem; - display: inline-block; - width: 100%; - overflow: hidden; - position: relative; - z-index: 1; - box-sizing: border-box; - box-shadow: none; - border-radius: 0; -} - -.selectize-control.multi .selectize-input.has-items { - padding: calc( 0.375rem - 1px - 0px) .75rem calc( 0.375rem - 1px - 3px - 0px) -} - -.selectize-input.full { - background-color: #FFF; -} - -.selectize-input.disabled, .selectize-input.disabled * { - cursor: default !important -} - -.selectize-input.focus { - box-shadow: inset 0 1px 2px rgba(0, 0, 0, .15); -} - -.selectize-input.dropdown-active { - border-radius: .25rem .25rem 0 0 -} - -.selectize-input>* { - vertical-align: baseline; - display: inline-block; - zoom: 1 -} - -.selectize-control.multi .selectize-input>div { - cursor: pointer; - margin: 0 3px 3px 0; - padding: 1px 5px; - background: #efefef; - color: #343a40; - border: 0px solid #dee2e6 -} - -.selectize-control.multi .selectize-input>div.active { - background: #007bff; - color: #fff; - border: 0px solid rgba(0, 0, 0, 0) -} - -.selectize-control.multi .selectize-input.disabled>div, .selectize-control.multi .selectize-input.disabled>div.active { - color: #878787; - background: #fff; - border: 0px solid #fff -} - -.selectize-input>input { - display: inline-block !important; - padding: 0 !important; - min-height: 0 !important; - max-height: none !important; - max-width: 100% !important; - margin: 0 !important; - text-indent: 0 !important; - border: 0 none !important; - background: none !important; - line-height: inherit !important; - user-select: auto !important; - box-shadow: none !important -} - -.selectize-input>input::-ms-clear { - display: none -} - -.selectize-input>input:focus { - outline: none !important -} - -.selectize-input>input[placeholder] { - box-sizing: initial -} - -.selectize-input.has-items>input { - margin: 0 4px !important -} - -.selectize-input::after { - content: " "; - display: block; - clear: left -} - -.selectize-input.dropdown-active::before { - content: " "; - display: block; - position: absolute; - background: #fff; - height: 1px; - bottom: 0; - left: 0; - right: 0 -} - -.selectize-dropdown { - position: absolute; - top: 100%; - left: 0; - width: 100%; - z-index: 10; - border: 1px solid #d0d0d0; - background: #fff; - margin: -1px 0 0 0; - border-top: 0 none; - box-sizing: border-box; - box-shadow: 0 1px 3px rgba(0, 0, 0, .1); - border-radius: 0 0 .25rem .25rem -} - -.selectize-dropdown [data-selectable] { - cursor: pointer; - overflow: hidden -} - -.selectize-dropdown [data-selectable] .highlight { - background: rgba(255, 237, 40, .4); - border-radius: 1px -} - -.selectize-dropdown .option, .selectize-dropdown .optgroup-header, .selectize-dropdown .no-results, .selectize-dropdown .create { - padding: 3px .75rem -} - -.selectize-dropdown .option, .selectize-dropdown [data-disabled], .selectize-dropdown [data-disabled] [data-selectable].option { - cursor: inherit; - opacity: .5 -} - -.selectize-dropdown [data-selectable].option { - opacity: 1; - cursor: pointer -} - -.selectize-dropdown .optgroup:first-child .optgroup-header { - border-top: 0 none -} - -.selectize-dropdown .optgroup-header { - color: #495057; - background: #fff; - cursor: default -} - -.selectize-dropdown .active { - background-color: #3593FB; - color: #FFF -} - -.selectize-dropdown .active.create { - color: #16181b -} - -.selectize-dropdown .create { - color: rgba(52, 58, 64, .5) -} - -.selectize-dropdown-content { - overflow-y: auto; - overflow-x: hidden; - max-height: 200px; - overflow-scrolling: touch -} - -.selectize-dropdown .spinner { - display: inline-block; - width: 30px; - height: 30px; - margin: 3px .75rem -} - -.selectize-dropdown .spinner:after { - content: " "; - display: block; - width: 24px; - height: 24px; - margin: 3px; - border-radius: 50%; - border: 5px solid #d0d0d0; - border-color: #d0d0d0 transparent #d0d0d0 transparent; - animation: lds-dual-ring 1.2s linear infinite -} - -@keyframes lds-dual-ring { - 0% { - transform: rotate(0deg) - } - 100% { - transform: rotate(360deg) - } -} - -.selectize-control.single .selectize-input, .selectize-control.single .selectize-input input { - cursor: pointer -} - -.selectize-control.single .selectize-input.input-active, .selectize-control.single .selectize-input.input-active input { - cursor: text -} - -.selectize-control.single .selectize-input:after { - content: " "; - display: block; - position: absolute; - top: 50%; - right: calc(0.75rem + 5px); - margin-top: -3px; - width: 0; - height: 0; - border-style: solid; - border-width: 5px 5px 0 5px; - border-color: #343a40 transparent transparent transparent -} - -.selectize-control.single .selectize-input.dropdown-active:after { - margin-top: -4px; - border-width: 0 5px 5px 5px; - border-color: transparent transparent #343a40 transparent -} - -.selectize-control.rtl { - text-align: right -} - -.selectize-control.rtl.single .selectize-input:after { - left: calc(0.75rem + 5px); - right: auto -} - -.selectize-control.rtl .selectize-input>input { - margin: 0 4px 0 -2px !important -} - -.selectize-control .selectize-input.disabled { - opacity: .5; - background-color: #fff -} - -.selectize-dropdown, .selectize-dropdown.form-control { - height: auto; - padding: 0; - margin: 2px 0 0 0; - z-index: 1000; - background: #fff; - border: 1px solid rgba(0, 0, 0, .15); - border-radius: .25rem; - box-shadow: 0 6px 12px rgba(0, 0, 0, .175) -} - -.selectize-dropdown .optgroup-header { - font-size: .875rem; - line-height: 1.5 -} - -.selectize-dropdown .optgroup:first-child:before { - display: none -} - -.selectize-dropdown .optgroup:before { - content: " "; - display: block; - height: 0; - margin: .5rem 0; - overflow: hidden; - border-top: 1px solid #e9ecef; - margin-left: -0.75rem; - margin-right: -0.75rem -} - -.selectize-dropdown .create { - padding-left: .75rem -} - -.selectize-dropdown-content { - padding: 5px 0 -} - -.selectize-input { - min-height: calc(1.5em + 0.75rem + 2px); - transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out -} - -@media(prefers-reduced-motion: reduce) { - .selectize-input { - transition: none - } -} - -.selectize-input.dropdown-active { - border-radius: .25rem -} - -.selectize-input.dropdown-active::before { - display: none -} - -.selectize-input.focus { - color: #495057; - background-color: #fff; - border-color: #f1b287; - outline: 0; - box-shadow: 0 0 0 .2rem rgba(223, 105, 26, .25) -} - -.is-invalid .selectize-input { - border-color: #dc3545; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075) -} - -.is-invalid .selectize-input:focus { - border-color: #bd2130; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #eb8c95 -} - -.selectize-control.form-control-sm .selectize-input.has-items { - min-height: calc(1.5em + 0.5rem + 2px) !important; - height: calc(1.5em + 0.5rem + 2px) !important; - padding: .25rem .5rem !important; - font-size: .875rem; - line-height: 1.5 -} - -.selectize-control.multi .selectize-input.has-items { - padding-left: calc(0.75rem - 5px); - padding-right: calc(0.75rem - 5px) -} - -.selectize-control.multi .selectize-input>div { - border-radius: calc(0.25rem - 1px) -} - -.form-control.selectize-control { - padding: 0; - height: auto; - border: none; - background: none; - box-shadow: none; - border-radius: 0 -} - -.input-group .selectize-input { - overflow: unset; - border-radius: 0 .25rem .25rem 0 -} \ No newline at end of file diff --git a/assets/css/cosmo/bootstrap-dialog.css b/assets/css/cosmo/bootstrap-dialog.css deleted file mode 100644 index ec4f2ce74..000000000 --- a/assets/css/cosmo/bootstrap-dialog.css +++ /dev/null @@ -1,169 +0,0 @@ -.bootstrap-dialog{ - overflow-y: initial !important -} -.bootstrap-dialog-body{ - max-height: calc(100vh - 200px); - overflow-y: auto; -} - -.bootstrap-dialog { - /* dialog types */ - /** - * Icon animation - * Copied from font-awesome: http://fontawesome.io/ - **/ - /** End of icon animation **/ -} - -.bootstrap-dialog .modal-header { - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} - -.bootstrap-dialog .bootstrap-dialog-title { - color: #fff; - display: inline-block; - font-size: 16px; -} - -.bootstrap-dialog .bootstrap-dialog-message { - font-size: 14px; -} - -.bootstrap-dialog .bootstrap-dialog-button-icon { - margin-right: 3px; -} - -.bootstrap-dialog .bootstrap-dialog-close-button { - font-size: 20px; - float: right; - opacity: 0.9; - filter: alpha(opacity=90); -} - -.bootstrap-dialog .bootstrap-dialog-close-button:hover { - cursor: pointer; - opacity: 1; - filter: alpha(opacity=100); -} - -@media (min-width: 1172px) { - .bootstrap-dialog .modal-xl { - max-width: 95%; - } -} -.bootstrap-dialog .modal-lg .bootstrap4-dialog-button:first-child { - margin-top: 8px; -} - -.bootstrap-dialog.type-default .modal-header { - background-color: #fff; -} - -.bootstrap-dialog.type-default .bootstrap-dialog-title { - color: #333; -} - -.bootstrap-dialog.type-info .modal-header { - background-color: #17a2b8; -} - -.bootstrap-dialog.type-primary .modal-header { - background-color: #007bff; -} - -.bootstrap-dialog.type-secondary .modal-header { - background-color: #6c757d; -} - -.bootstrap-dialog.type-success .modal-header { - background-color: #28a745; -} - -.bootstrap-dialog.type-warning .modal-header { - background-color: #ffc107; -} - -.bootstrap-dialog.type-danger .modal-header { - background-color: #dc3545; -} - -.bootstrap-dialog.type-light .modal-header { - background-color: #f8f9fa; -} - -.bootstrap-dialog.type-dark .modal-header { - background-color: #343a40; -} - -.bootstrap-dialog.size-large .bootstrap-dialog-title { - font-size: 24px; -} - -.bootstrap-dialog.size-large .bootstrap-dialog-close-button { - font-size: 30px; -} - -.bootstrap-dialog.size-large .bootstrap-dialog-message { - font-size: 18px; -} - -.bootstrap-dialog .icon-spin { - display: inline-block; - -moz-animation: spin 2s infinite linear; - -o-animation: spin 2s infinite linear; - -webkit-animation: spin 2s infinite linear; - animation: spin 2s infinite linear; -} - -.bootstrap-dialog-footer-buttons { - display: flex; -} - -@-moz-keyframes spin { - 0% { - -moz-transform: rotate(0deg); - } - 100% { - -moz-transform: rotate(359deg); - } -} -@-webkit-keyframes spin { - 0% { - -webkit-transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - } -} -@-o-keyframes spin { - 0% { - -o-transform: rotate(0deg); - } - 100% { - -o-transform: rotate(359deg); - } -} -@-ms-keyframes spin { - 0% { - -ms-transform: rotate(0deg); - } - 100% { - -ms-transform: rotate(359deg); - } -} -@keyframes spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(359deg); - } -} -.bootstrap-dialog-header { - display: contents; -} - -/*# sourceMappingURL=bootstrap-dialog.css.map */ - -/*# sourceMappingURL=bootstrap-dialog.css.map */ diff --git a/assets/css/cosmo/overrides.css b/assets/css/cosmo/overrides.css index 544511851..281e2c4f1 100644 --- a/assets/css/cosmo/overrides.css +++ b/assets/css/cosmo/overrides.css @@ -1,3 +1,11 @@ /*! * No overrides for the default theme as it aligns with general.css -*/ \ No newline at end of file +*/ + +.selectize-input { + border-radius: 0 +} + +.selectize-input { + border: 1px solid #ced4da; +} \ No newline at end of file diff --git a/assets/css/cosmo/selectize.bootstrap4.css b/assets/css/cosmo/selectize.bootstrap4.css deleted file mode 100644 index 949ef62f2..000000000 --- a/assets/css/cosmo/selectize.bootstrap4.css +++ /dev/null @@ -1,478 +0,0 @@ -.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder { - visibility: visible !important; - background: #f2f2f2 !important; - background: rgba(0, 0, 0, .06) !important; - border: 0 none !important; - box-shadow: inset 0 0 12px 4px #fff -} - -.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after { - content: "!"; - visibility: hidden -} - -.selectize-control.plugin-drag_drop .ui-sortable-helper { - box-shadow: 0 2px 5px rgba(0, 0, 0, .2) -} - -.selectize-control .dropdown-header { - position: relative; - padding: 6px .75rem; - border-bottom: 1px solid #d0d0d0; - background: #f8f8f8; - border-radius: .25rem .25rem 0 0 -} - -.selectize-control .dropdown-header-close { - position: absolute; - right: .75rem; - top: 50%; - color: #343a40; - opacity: .4; - margin-top: -12px; - line-height: 20px; - font-size: 20px !important -} - -.selectize-control .dropdown-header-close:hover { - color: #000 -} - -.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content { - display: flex -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup { - border-right: 1px solid #f2f2f2; - border-top: 0 none; - flex-grow: 1; - flex-basis: 0; - min-width: 0 -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child { - border-right: 0 none -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup:before { - display: none -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup-header { - border-top: 0 none -} - -.selectize-control.plugin-remove_button .item { - display: inline-flex; - align-items: center; - padding-right: 0 !important -} - -.selectize-control.plugin-remove_button .item .remove { - color: inherit; - text-decoration: none; - vertical-align: middle; - display: inline-block; - padding: 1px 5px; - border-left: 1px solid #dee2e6; - border-radius: 0 2px 2px 0; - box-sizing: border-box; - margin-left: 5px -} - -.selectize-control.plugin-remove_button .item .remove:hover { - background: rgba(0, 0, 0, .05) -} - -.selectize-control.plugin-remove_button .item.active .remove { - border-left-color: rgba(0, 0, 0, 0) -} - -.selectize-control.plugin-remove_button .disabled .item .remove:hover { - background: none -} - -.selectize-control.plugin-remove_button .disabled .item .remove { - border-left-color: #fff -} - -.selectize-control.plugin-remove_button .remove-single { - position: absolute; - right: 0; - top: 0; - font-size: 23px -} - -.selectize-control { - position: relative -} - -.selectize-dropdown, .selectize-input, .selectize-input input { - color: #343a40; - font-family: inherit; - font-size: inherit; - line-height: 1.5; - font-smoothing: inherit -} - -.selectize-input, .selectize-control.single .selectize-input.input-active { - background: #fff; - cursor: text; - display: inline-block -} - -.selectize-input { - border: 1px solid #ced4da; - padding: .375rem .75rem; - display: inline-block; - width: 100%; - overflow: hidden; - position: relative; - z-index: 1; - box-sizing: border-box; - box-shadow: none; - border-radius: 0 -} - -.selectize-control.multi .selectize-input.has-items { - padding: calc( 0.375rem - 1px - 0px) .75rem calc( 0.375rem - 1px - 3px - 0px) -} - -.selectize-input.full { - background-color: #fff -} - -.selectize-input.disabled, .selectize-input.disabled * { - cursor: default !important -} - -.selectize-input.focus { - box-shadow: inset 0 1px 2px rgba(0, 0, 0, .15) -} - -.selectize-input.dropdown-active { - border-radius: .25rem .25rem 0 0 -} - -.selectize-input>* { - vertical-align: baseline; - display: inline-block; - zoom: 1 -} - -.selectize-control.multi .selectize-input>div { - cursor: pointer; - margin: 0 3px 3px 0; - padding: 1px 5px; - background: #efefef; - color: #343a40; - border: 0px solid #dee2e6 -} - -.selectize-control.multi .selectize-input>div.active { - background: #007bff; - color: #fff; - border: 0px solid rgba(0, 0, 0, 0) -} - -.selectize-control.multi .selectize-input.disabled>div, .selectize-control.multi .selectize-input.disabled>div.active { - color: #878787; - background: #fff; - border: 0px solid #fff -} - -.selectize-input>input { - display: inline-block !important; - padding: 0 !important; - min-height: 0 !important; - max-height: none !important; - max-width: 100% !important; - margin: 0 !important; - text-indent: 0 !important; - border: 0 none !important; - background: none !important; - line-height: inherit !important; - user-select: auto !important; - box-shadow: none !important -} - -.selectize-input>input::-ms-clear { - display: none -} - -.selectize-input>input:focus { - outline: none !important -} - -.selectize-input>input[placeholder] { - box-sizing: initial -} - -.selectize-input.has-items>input { - margin: 0 4px !important -} - -.selectize-input::after { - content: " "; - display: block; - clear: left -} - -.selectize-input.dropdown-active::before { - content: " "; - display: block; - position: absolute; - background: #fff; - height: 1px; - bottom: 0; - left: 0; - right: 0 -} - -.selectize-dropdown { - position: absolute; - top: 100%; - left: 0; - width: 100%; - z-index: 10; - border: 1px solid #d0d0d0; - background: #fff; - margin: -1px 0 0 0; - border-top: 0 none; - box-sizing: border-box; - box-shadow: 0 1px 3px rgba(0, 0, 0, .1); - border-radius: 0 0 .25rem .25rem -} - -.selectize-dropdown [data-selectable] { - cursor: pointer; - overflow: hidden -} - -.selectize-dropdown [data-selectable] .highlight { - background: rgba(255, 237, 40, .4); - border-radius: 1px -} - -.selectize-dropdown .option, .selectize-dropdown .optgroup-header, .selectize-dropdown .no-results, .selectize-dropdown .create { - padding: 3px .75rem -} - -.selectize-dropdown .option, .selectize-dropdown [data-disabled], .selectize-dropdown [data-disabled] [data-selectable].option { - cursor: inherit; - opacity: .5 -} - -.selectize-dropdown [data-selectable].option { - opacity: 1; - cursor: pointer -} - -.selectize-dropdown .optgroup:first-child .optgroup-header { - border-top: 0 none -} - -.selectize-dropdown .optgroup-header { - color: #6c757d; - background: #fff; - cursor: default -} - -.selectize-dropdown .active { - background-color: #3593FB; - color: #FFF -} - -.selectize-dropdown .active.create { - color: #16181b -} - -.selectize-dropdown .create { - color: rgba(52, 58, 64, .5) -} - -.selectize-dropdown-content { - overflow-y: auto; - overflow-x: hidden; - max-height: 200px; - overflow-scrolling: touch -} - -.selectize-dropdown .spinner { - display: inline-block; - width: 30px; - height: 30px; - margin: 3px .75rem -} - -.selectize-dropdown .spinner:after { - content: " "; - display: block; - width: 24px; - height: 24px; - margin: 3px; - border-radius: 50%; - border: 5px solid #d0d0d0; - border-color: #d0d0d0 transparent #d0d0d0 transparent; - animation: lds-dual-ring 1.2s linear infinite -} - -@keyframes lds-dual-ring { - 0% { - transform: rotate(0deg) - } - 100% { - transform: rotate(360deg) - } -} - -.selectize-control.single .selectize-input, .selectize-control.single .selectize-input input { - cursor: pointer -} - -.selectize-control.single .selectize-input.input-active, .selectize-control.single .selectize-input.input-active input { - cursor: text -} - -.selectize-control.single .selectize-input:after { - content: " "; - display: block; - position: absolute; - top: 50%; - right: calc(0.75rem + 5px); - margin-top: -3px; - width: 0; - height: 0; - border-style: solid; - border-width: 5px 5px 0 5px; - border-color: #343a40 transparent transparent transparent -} - -.selectize-control.single .selectize-input.dropdown-active:after { - margin-top: -4px; - border-width: 0 5px 5px 5px; - border-color: transparent transparent #343a40 transparent -} - -.selectize-control.rtl { - text-align: right -} - -.selectize-control.rtl.single .selectize-input:after { - left: calc(0.75rem + 5px); - right: auto -} - -.selectize-control.rtl .selectize-input>input { - margin: 0 4px 0 -2px !important -} - -.selectize-control .selectize-input.disabled { - opacity: .5; - background-color: #fff -} - -.selectize-dropdown, .selectize-dropdown.form-control { - height: auto; - padding: 0; - margin: 2px 0 0 0; - z-index: 1000; - background: #fff; - border: 1px solid rgba(0, 0, 0, .15); - border-radius: .25rem; - box-shadow: 0 6px 12px rgba(0, 0, 0, .175) -} - -.selectize-dropdown .optgroup-header { - font-size: .875rem; - line-height: 1.5 -} - -.selectize-dropdown .optgroup:first-child:before { - display: none -} - -.selectize-dropdown .optgroup:before { - content: " "; - display: block; - height: 0; - margin: .5rem 0; - overflow: hidden; - border-top: 1px solid #e9ecef; - margin-left: -0.75rem; - margin-right: -0.75rem -} - -.selectize-dropdown .create { - padding-left: .75rem -} - -.selectize-dropdown-content { - padding: 5px 0 -} - -.selectize-input { - min-height: calc(1.5em + 0.75rem + 2px); - transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out -} - -@media(prefers-reduced-motion: reduce) { - .selectize-input { - transition: none - } -} - -.selectize-input.dropdown-active { - border-radius: .25rem -} - -.selectize-input.dropdown-active::before { - display: none -} - -.selectize-input.focus { - border-color: #80bdff; - outline: 0; - box-shadow: 0 0 0 .2rem rgba(0, 123, 255, .25) -} - -.is-invalid .selectize-input { - border-color: #dc3545; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075) -} - -.is-invalid .selectize-input:focus { - border-color: #bd2130; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #eb8c95 -} - -.selectize-control.form-control-sm .selectize-input.has-items { - min-height: calc(1.5em + 0.5rem + 2px) !important; - height: calc(1.5em + 0.5rem + 2px) !important; - padding: .25rem .5rem !important; - font-size: .875rem; - line-height: 1.5 -} - -.selectize-control.multi .selectize-input.has-items { - padding-left: calc(0.75rem - 5px); - padding-right: calc(0.75rem - 5px) -} - -.selectize-control.multi .selectize-input>div { - border-radius: calc(0.25rem - 1px) -} - -.form-control.selectize-control { - padding: 0; - height: auto; - border: none; - background: none; - box-shadow: none; - border-radius: 0 -} - -.input-group .selectize-input { - overflow: unset; - border-radius: 0 .25rem .25rem 0 -} \ No newline at end of file diff --git a/assets/css/cyborg/bootstrap-dialog.css b/assets/css/cyborg/bootstrap-dialog.css deleted file mode 100644 index 9e030b098..000000000 --- a/assets/css/cyborg/bootstrap-dialog.css +++ /dev/null @@ -1,169 +0,0 @@ -.bootstrap-dialog{ - overflow-y: initial !important -} -.bootstrap-dialog-body{ - max-height: calc(100vh - 200px); - overflow-y: auto; -} - -.bootstrap-dialog { - /* dialog types */ - /** - * Icon animation - * Copied from font-awesome: http://fontawesome.io/ - **/ - /** End of icon animation **/ -} - -.bootstrap-dialog .modal-header { - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} - -.bootstrap-dialog .bootstrap-dialog-title { - color: #fff; - display: inline-block; - font-size: 16px; -} - -.bootstrap-dialog .bootstrap-dialog-message { - font-size: 14px; -} - -.bootstrap-dialog .bootstrap-dialog-button-icon { - margin-right: 3px; -} - -.bootstrap-dialog .bootstrap-dialog-close-button { - font-size: 20px; - float: right; - opacity: 0.9; - filter: alpha(opacity=90); -} - -.bootstrap-dialog .bootstrap-dialog-close-button:hover { - cursor: pointer; - opacity: 1; - filter: alpha(opacity=100); -} - -@media (min-width: 1172px) { - .bootstrap-dialog .modal-xl { - max-width: 95%; - } -} -.bootstrap-dialog .modal-lg .bootstrap4-dialog-button:first-child { - margin-top: 8px; -} - -.bootstrap-dialog.type-default .modal-header { - background-color: #fff; -} - -.bootstrap-dialog.type-default .bootstrap-dialog-title { - color: #333; -} - -.bootstrap-dialog.type-info .modal-header { - background-color: #17a2b8; -} - -.bootstrap-dialog.type-primary .modal-header { - background-color: #131313; -} - -.bootstrap-dialog.type-secondary .modal-header { - background-color: #6c757d; -} - -.bootstrap-dialog.type-success .modal-header { - background-color: #28a745; -} - -.bootstrap-dialog.type-warning .modal-header { - background-color: #ffc107; -} - -.bootstrap-dialog.type-danger .modal-header { - background-color: #dc3545; -} - -.bootstrap-dialog.type-light .modal-header { - background-color: #f8f9fa; -} - -.bootstrap-dialog.type-dark .modal-header { - background-color: #343a40; -} - -.bootstrap-dialog.size-large .bootstrap-dialog-title { - font-size: 24px; -} - -.bootstrap-dialog.size-large .bootstrap-dialog-close-button { - font-size: 30px; -} - -.bootstrap-dialog.size-large .bootstrap-dialog-message { - font-size: 18px; -} - -.bootstrap-dialog .icon-spin { - display: inline-block; - -moz-animation: spin 2s infinite linear; - -o-animation: spin 2s infinite linear; - -webkit-animation: spin 2s infinite linear; - animation: spin 2s infinite linear; -} - -.bootstrap-dialog-footer-buttons { - display: flex; -} - -@-moz-keyframes spin { - 0% { - -moz-transform: rotate(0deg); - } - 100% { - -moz-transform: rotate(359deg); - } -} -@-webkit-keyframes spin { - 0% { - -webkit-transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - } -} -@-o-keyframes spin { - 0% { - -o-transform: rotate(0deg); - } - 100% { - -o-transform: rotate(359deg); - } -} -@-ms-keyframes spin { - 0% { - -ms-transform: rotate(0deg); - } - 100% { - -ms-transform: rotate(359deg); - } -} -@keyframes spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(359deg); - } -} -.bootstrap-dialog-header { - display: contents; -} - -/*# sourceMappingURL=bootstrap-dialog.css.map */ - -/*# sourceMappingURL=bootstrap-dialog.css.map */ diff --git a/assets/css/cyborg/overrides.css b/assets/css/cyborg/overrides.css index 82ecbea58..d6b4f3ca8 100644 --- a/assets/css/cyborg/overrides.css +++ b/assets/css/cyborg/overrides.css @@ -14,8 +14,8 @@ path.grid-rectangle { stroke: rgba(200, 200, 200, 0.5); } -span.grid-text > font { - color: rgba(220, 220, 220, 0.7) !important; +span.grid-text>font { + color: rgba(220, 220, 220, 0.7) !important; -webkit-text-stroke: 1px black !important; } @@ -29,53 +29,83 @@ path.grid-worked { stroke: rgba(220, 50, 50, 0.25) !important; } -#map, -#qsomap{ +#map, #qsomap { background-color: #000; } .leaflet-popup-content h3 { color: #000; } + /* * Dark Navigation */ /* Navigation background */ + .navbar.bg-light { - background-color: #000 !important; + background-color: #000 !important; } /* Inactive Links */ + .navbar-light .navbar-nav .nav-link { - color: rgba(255,255,255,.6); + color: rgba(255, 255, 255, .6); } /* Active Links and Logo */ -.navbar-light .navbar-brand, -.navbar-light .navbar-brand:focus, -.navbar-light .navbar-brand:hover, -.navbar-light .navbar-nav .active>.nav-link, -.navbar-light .navbar-nav .nav-link:focus, -.navbar-light .navbar-nav .nav-link:hover { - color: #fff; + +.navbar-light .navbar-brand, .navbar-light .navbar-brand:focus, .navbar-light .navbar-brand:hover, .navbar-light .navbar-nav .active>.nav-link, .navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover { + color: #fff; } /* Hamburger Menu */ + .navbar-light .navbar-toggler-icon { - background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.6%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.6%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") } /* * Dark inputs */ -.form-control, -.form-control-sm, -.form-control:focus, -.form-control:disabled, -.custom-select { +.form-control, .form-control-sm, .form-control:focus, .form-control:disabled, .custom-select { background-color: #151515; - color: #eeeeee; + color: #eeeeee; border: 1px solid #333; +} + +.bootstrap-dialog.type-primary .modal-header { + background-color: #131313; +} + +.selectize-dropdown, .selectize-input, .selectize-input input { + color: #fff; +} + +.selectize-input, .selectize-control.single .selectize-input.input-active { + background: #151515; +} + +.selectize-input.full { + background-color: #151515; +} + +.selectize-input.focus { + box-shadow: inset 0 1px 2px rgba(0, 0, 0, .15); +} + +.selectize-dropdown .optgroup-header { + color: #151515; +} + +.selectize-dropdown, .selectize-dropdown.form-control { + background: #151515; +} + +.selectize-input.focus { + color: #282828; + background-color: #fff; + border-color: #95cfeb; + box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25); } \ No newline at end of file diff --git a/assets/css/cyborg/selectize.bootstrap4.css b/assets/css/cyborg/selectize.bootstrap4.css deleted file mode 100644 index 91c7d6c02..000000000 --- a/assets/css/cyborg/selectize.bootstrap4.css +++ /dev/null @@ -1,480 +0,0 @@ -.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder { - visibility: visible !important; - background: #f2f2f2 !important; - background: rgba(0, 0, 0, .06) !important; - border: 0 none !important; - box-shadow: inset 0 0 12px 4px #fff -} - -.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after { - content: "!"; - visibility: hidden -} - -.selectize-control.plugin-drag_drop .ui-sortable-helper { - box-shadow: 0 2px 5px rgba(0, 0, 0, .2) -} - -.selectize-control .dropdown-header { - position: relative; - padding: 6px .75rem; - border-bottom: 1px solid #d0d0d0; - background: #f8f8f8; - border-radius: .25rem .25rem 0 0 -} - -.selectize-control .dropdown-header-close { - position: absolute; - right: .75rem; - top: 50%; - color: #343a40; - opacity: .4; - margin-top: -12px; - line-height: 20px; - font-size: 20px !important -} - -.selectize-control .dropdown-header-close:hover { - color: #000 -} - -.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content { - display: flex -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup { - border-right: 1px solid #f2f2f2; - border-top: 0 none; - flex-grow: 1; - flex-basis: 0; - min-width: 0 -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child { - border-right: 0 none -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup:before { - display: none -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup-header { - border-top: 0 none -} - -.selectize-control.plugin-remove_button .item { - display: inline-flex; - align-items: center; - padding-right: 0 !important -} - -.selectize-control.plugin-remove_button .item .remove { - color: inherit; - text-decoration: none; - vertical-align: middle; - display: inline-block; - padding: 1px 5px; - border-left: 1px solid #dee2e6; - border-radius: 0 2px 2px 0; - box-sizing: border-box; - margin-left: 5px -} - -.selectize-control.plugin-remove_button .item .remove:hover { - background: rgba(0, 0, 0, .05) -} - -.selectize-control.plugin-remove_button .item.active .remove { - border-left-color: rgba(0, 0, 0, 0) -} - -.selectize-control.plugin-remove_button .disabled .item .remove:hover { - background: none -} - -.selectize-control.plugin-remove_button .disabled .item .remove { - border-left-color: #fff -} - -.selectize-control.plugin-remove_button .remove-single { - position: absolute; - right: 0; - top: 0; - font-size: 23px -} - -.selectize-control { - position: relative -} - -.selectize-dropdown, .selectize-input, .selectize-input input { - color: #fff; - font-family: inherit; - font-size: inherit; - line-height: 1.5; - font-smoothing: inherit -} - -.selectize-input, .selectize-control.single .selectize-input.input-active { - background: #151515; - color: #fff; - cursor: text; - display: inline-block -} - -.selectize-input { - padding: .375rem .75rem; - display: inline-block; - width: 100%; - overflow: hidden; - position: relative; - z-index: 1; - box-sizing: border-box; - box-shadow: none; - border-radius: 0.25rem; -} - -.selectize-control.multi .selectize-input.has-items { - padding: calc( 0.375rem - 1px - 0px) .75rem calc( 0.375rem - 1px - 3px - 0px) -} - -.selectize-input.full { - background-color: #151515; -} - -.selectize-input.disabled, .selectize-input.disabled * { - cursor: default !important -} - -.selectize-input.focus { - box-shadow: inset 0 1px 2px rgba(0, 0, 0, .15); -} - -.selectize-input.dropdown-active { - border-radius: .25rem .25rem 0 0 -} - -.selectize-input>* { - vertical-align: baseline; - display: inline-block; - zoom: 1 -} - -.selectize-control.multi .selectize-input>div { - cursor: pointer; - margin: 0 3px 3px 0; - padding: 1px 5px; - background: #efefef; - color: #343a40; - border: 0px solid #dee2e6 -} - -.selectize-control.multi .selectize-input>div.active { - background: #007bff; - color: #fff; - border: 0px solid rgba(0, 0, 0, 0) -} - -.selectize-control.multi .selectize-input.disabled>div, .selectize-control.multi .selectize-input.disabled>div.active { - color: #878787; - background: #fff; - border: 0px solid #fff -} - -.selectize-input>input { - display: inline-block !important; - padding: 0 !important; - min-height: 0 !important; - max-height: none !important; - max-width: 100% !important; - margin: 0 !important; - text-indent: 0 !important; - border: 0 none !important; - background: none !important; - line-height: inherit !important; - user-select: auto !important; - box-shadow: none !important -} - -.selectize-input>input::-ms-clear { - display: none -} - -.selectize-input>input:focus { - outline: none !important -} - -.selectize-input>input[placeholder] { - box-sizing: initial -} - -.selectize-input.has-items>input { - margin: 0 4px !important -} - -.selectize-input::after { - content: " "; - display: block; - clear: left -} - -.selectize-input.dropdown-active::before { - content: " "; - display: block; - position: absolute; - background: #fff; - height: 1px; - bottom: 0; - left: 0; - right: 0 -} - -.selectize-dropdown { - position: absolute; - top: 100%; - left: 0; - width: 100%; - z-index: 10; - border: 1px solid #d0d0d0; - background: #fff; - margin: -1px 0 0 0; - border-top: 0 none; - box-sizing: border-box; - box-shadow: 0 1px 3px rgba(0, 0, 0, .1); - border-radius: 0 0 .25rem .25rem -} - -.selectize-dropdown [data-selectable] { - cursor: pointer; - overflow: hidden -} - -.selectize-dropdown [data-selectable] .highlight { - background: rgba(255, 237, 40, .4); - border-radius: 1px -} - -.selectize-dropdown .option, .selectize-dropdown .optgroup-header, .selectize-dropdown .no-results, .selectize-dropdown .create { - padding: 3px .75rem -} - -.selectize-dropdown .option, .selectize-dropdown [data-disabled], .selectize-dropdown [data-disabled] [data-selectable].option { - cursor: inherit; - opacity: .5 -} - -.selectize-dropdown [data-selectable].option { - opacity: 1; - cursor: pointer -} - -.selectize-dropdown .optgroup:first-child .optgroup-header { - border-top: 0 none -} - -.selectize-dropdown .optgroup-header { - color: #151515; - background: #fff; - cursor: default -} - -.selectize-dropdown .active { - background-color: #3593FB; - color: #FFF -} - -.selectize-dropdown .active.create { - color: #16181b -} - -.selectize-dropdown .create { - color: rgba(52, 58, 64, .5) -} - -.selectize-dropdown-content { - overflow-y: auto; - overflow-x: hidden; - max-height: 200px; - overflow-scrolling: touch -} - -.selectize-dropdown .spinner { - display: inline-block; - width: 30px; - height: 30px; - margin: 3px .75rem -} - -.selectize-dropdown .spinner:after { - content: " "; - display: block; - width: 24px; - height: 24px; - margin: 3px; - border-radius: 50%; - border: 5px solid #d0d0d0; - border-color: #d0d0d0 transparent #d0d0d0 transparent; - animation: lds-dual-ring 1.2s linear infinite -} - -@keyframes lds-dual-ring { - 0% { - transform: rotate(0deg) - } - 100% { - transform: rotate(360deg) - } -} - -.selectize-control.single .selectize-input, .selectize-control.single .selectize-input input { - cursor: pointer -} - -.selectize-control.single .selectize-input.input-active, .selectize-control.single .selectize-input.input-active input { - cursor: text -} - -.selectize-control.single .selectize-input:after { - content: " "; - display: block; - position: absolute; - top: 50%; - right: calc(0.75rem + 5px); - margin-top: -3px; - width: 0; - height: 0; - border-style: solid; - border-width: 5px 5px 0 5px; - border-color: #343a40 transparent transparent transparent -} - -.selectize-control.single .selectize-input.dropdown-active:after { - margin-top: -4px; - border-width: 0 5px 5px 5px; - border-color: transparent transparent #343a40 transparent -} - -.selectize-control.rtl { - text-align: right -} - -.selectize-control.rtl.single .selectize-input:after { - left: calc(0.75rem + 5px); - right: auto -} - -.selectize-control.rtl .selectize-input>input { - margin: 0 4px 0 -2px !important -} - -.selectize-control .selectize-input.disabled { - opacity: .5; - background-color: #fff -} - -.selectize-dropdown, .selectize-dropdown.form-control { - height: auto; - padding: 0; - margin: 2px 0 0 0; - z-index: 1000; - background: #151515; - border: 1px solid rgba(0, 0, 0, .15); - border-radius: .25rem; - box-shadow: 0 6px 12px rgba(0, 0, 0, .175) -} - -.selectize-dropdown .optgroup-header { - font-size: .875rem; - line-height: 1.5 -} - -.selectize-dropdown .optgroup:first-child:before { - display: none -} - -.selectize-dropdown .optgroup:before { - content: " "; - display: block; - height: 0; - margin: .5rem 0; - overflow: hidden; - border-top: 1px solid #e9ecef; - margin-left: -0.75rem; - margin-right: -0.75rem -} - -.selectize-dropdown .create { - padding-left: .75rem -} - -.selectize-dropdown-content { - padding: 5px 0 -} - -.selectize-input { - min-height: calc(1.5em + 0.75rem + 2px); - transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out -} - -@media(prefers-reduced-motion: reduce) { - .selectize-input { - transition: none - } -} - -.selectize-input.dropdown-active { - border-radius: .25rem -} - -.selectize-input.dropdown-active::before { - display: none -} - -.selectize-input.focus { - color: #282828; - background-color: #fff; - border-color: #95cfeb; - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25); -} - -.is-invalid .selectize-input { - border-color: #dc3545; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075) -} - -.is-invalid .selectize-input:focus { - border-color: #bd2130; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #eb8c95 -} - -.selectize-control.form-control-sm .selectize-input.has-items { - min-height: calc(1.5em + 0.5rem + 2px) !important; - height: calc(1.5em + 0.5rem + 2px) !important; - padding: .25rem .5rem !important; - font-size: .875rem; - line-height: 1.5 -} - -.selectize-control.multi .selectize-input.has-items { - padding-left: calc(0.75rem - 5px); - padding-right: calc(0.75rem - 5px) -} - -.selectize-control.multi .selectize-input>div { - border-radius: calc(0.25rem - 1px) -} - -.form-control.selectize-control { - padding: 0; - height: auto; - border: none; - background: none; - box-shadow: none; - border-radius: 0 -} - -.input-group .selectize-input { - overflow: unset; - border-radius: 0 .25rem .25rem 0 -} \ No newline at end of file diff --git a/assets/css/darkly/bootstrap-dialog.css b/assets/css/darkly/bootstrap-dialog.css deleted file mode 100644 index 957e70987..000000000 --- a/assets/css/darkly/bootstrap-dialog.css +++ /dev/null @@ -1,169 +0,0 @@ -.bootstrap-dialog{ - overflow-y: initial !important -} -.bootstrap-dialog-body{ - max-height: calc(100vh - 200px); - overflow-y: auto; -} - -.bootstrap-dialog { - /* dialog types */ - /** - * Icon animation - * Copied from font-awesome: http://fontawesome.io/ - **/ - /** End of icon animation **/ -} - -.bootstrap-dialog .modal-header { - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} - -.bootstrap-dialog .bootstrap-dialog-title { - color: #fff; - display: inline-block; - font-size: 16px; -} - -.bootstrap-dialog .bootstrap-dialog-message { - font-size: 14px; -} - -.bootstrap-dialog .bootstrap-dialog-button-icon { - margin-right: 3px; -} - -.bootstrap-dialog .bootstrap-dialog-close-button { - font-size: 20px; - float: right; - opacity: 0.9; - filter: alpha(opacity=90); -} - -.bootstrap-dialog .bootstrap-dialog-close-button:hover { - cursor: pointer; - opacity: 1; - filter: alpha(opacity=100); -} - -@media (min-width: 1172px) { - .bootstrap-dialog .modal-xl { - max-width: 95%; - } -} -.bootstrap-dialog .modal-lg .bootstrap4-dialog-button:first-child { - margin-top: 8px; -} - -.bootstrap-dialog.type-default .modal-header { - background-color: #fff; -} - -.bootstrap-dialog.type-default .bootstrap-dialog-title { - color: #333; -} - -.bootstrap-dialog.type-info .modal-header { - background-color: #17a2b8; -} - -.bootstrap-dialog.type-primary .modal-header { - background-color: #222222; -} - -.bootstrap-dialog.type-secondary .modal-header { - background-color: #6c757d; -} - -.bootstrap-dialog.type-success .modal-header { - background-color: #28a745; -} - -.bootstrap-dialog.type-warning .modal-header { - background-color: #ffc107; -} - -.bootstrap-dialog.type-danger .modal-header { - background-color: #dc3545; -} - -.bootstrap-dialog.type-light .modal-header { - background-color: #f8f9fa; -} - -.bootstrap-dialog.type-dark .modal-header { - background-color: #343a40; -} - -.bootstrap-dialog.size-large .bootstrap-dialog-title { - font-size: 24px; -} - -.bootstrap-dialog.size-large .bootstrap-dialog-close-button { - font-size: 30px; -} - -.bootstrap-dialog.size-large .bootstrap-dialog-message { - font-size: 18px; -} - -.bootstrap-dialog .icon-spin { - display: inline-block; - -moz-animation: spin 2s infinite linear; - -o-animation: spin 2s infinite linear; - -webkit-animation: spin 2s infinite linear; - animation: spin 2s infinite linear; -} - -.bootstrap-dialog-footer-buttons { - display: flex; -} - -@-moz-keyframes spin { - 0% { - -moz-transform: rotate(0deg); - } - 100% { - -moz-transform: rotate(359deg); - } -} -@-webkit-keyframes spin { - 0% { - -webkit-transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - } -} -@-o-keyframes spin { - 0% { - -o-transform: rotate(0deg); - } - 100% { - -o-transform: rotate(359deg); - } -} -@-ms-keyframes spin { - 0% { - -ms-transform: rotate(0deg); - } - 100% { - -ms-transform: rotate(359deg); - } -} -@keyframes spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(359deg); - } -} -.bootstrap-dialog-header { - display: contents; -} - -/*# sourceMappingURL=bootstrap-dialog.css.map */ - -/*# sourceMappingURL=bootstrap-dialog.css.map */ diff --git a/assets/css/darkly/overrides.css b/assets/css/darkly/overrides.css index 436f69602..2cb4ccab3 100644 --- a/assets/css/darkly/overrides.css +++ b/assets/css/darkly/overrides.css @@ -14,8 +14,8 @@ path.grid-rectangle { stroke: rgba(200, 200, 200, 0.5); } -span.grid-text > font { - color: rgba(220, 220, 220, 0.85) !important; +span.grid-text>font { + color: rgba(220, 220, 220, 0.85) !important; -webkit-text-stroke: 1px black !important; } @@ -29,8 +29,7 @@ path.grid-worked { stroke: rgba(220, 50, 50, 0.25) !important; } -#map, -#qsomap{ +#map, #qsomap { background-color: #222; } @@ -39,48 +38,70 @@ path.grid-worked { */ /* Navigation background */ + .bg-light { - background-color: #303030!important; + background-color: #303030!important; } /* Inactive Links */ + .navbar-light .navbar-nav .nav-link { - color: rgba(255,255,255,.6); + color: rgba(255, 255, 255, .6); } /* Active Links and Logo */ -.navbar-light .navbar-brand, -.navbar-light .navbar-brand:focus, -.navbar-light .navbar-brand:hover, -.navbar-light .navbar-nav .active>.nav-link, -.navbar-light .navbar-nav .nav-link:focus, -.navbar-light .navbar-nav .nav-link:hover { - color: #fff; + +.navbar-light .navbar-brand, .navbar-light .navbar-brand:focus, .navbar-light .navbar-brand:hover, .navbar-light .navbar-nav .active>.nav-link, .navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover { + color: #fff; } /* Hamburger Menu */ + .navbar-light .navbar-toggler-icon { - background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.6%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.6%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") } /* * Dark inputs */ -.form-control, -.form-control-sm, -.form-control:focus, -.form-control:disabled, -.custom-select { - background-color: rgba(20,20,20,.5); - color: #eee; +.form-control, .form-control-sm, .form-control:focus, .form-control:disabled, .custom-select { + background-color: rgba(20, 20, 20, .5); + color: #eee; } -select optgroup, -select option { +select optgroup, select option { background-color: #222; } div.alert-success a, div.alert-danger a, div.alert-danger { color: #ffffff; +} + +.bootstrap-dialog.type-primary .modal-header { + background-color: #222222; +} + +.selectize-dropdown, .selectize-input, .selectize-input input { + color: #fff; +} + +.selectize-input, .selectize-control.single .selectize-input.input-active { + background: #222222; + color: #fff; +} + +.selectize-input.full { + background-color: #222222; +} + +.selectize-dropdown, .selectize-dropdown.form-control { + background: #222222; +} + +.selectize-input.focus { + color: #444; + background-color: #fff; + border-color: #739ac2; + box-shadow: 0 0 0 .2rem rgba(55, 90, 127, .25) } \ No newline at end of file diff --git a/assets/css/darkly/selectize.bootstrap4.css b/assets/css/darkly/selectize.bootstrap4.css deleted file mode 100644 index 3b9c834d9..000000000 --- a/assets/css/darkly/selectize.bootstrap4.css +++ /dev/null @@ -1,480 +0,0 @@ -.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder { - visibility: visible !important; - background: #f2f2f2 !important; - background: rgba(0, 0, 0, .06) !important; - border: 0 none !important; - box-shadow: inset 0 0 12px 4px #fff -} - -.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after { - content: "!"; - visibility: hidden -} - -.selectize-control.plugin-drag_drop .ui-sortable-helper { - box-shadow: 0 2px 5px rgba(0, 0, 0, .2) -} - -.selectize-control .dropdown-header { - position: relative; - padding: 6px .75rem; - border-bottom: 1px solid #d0d0d0; - background: #f8f8f8; - border-radius: .25rem .25rem 0 0 -} - -.selectize-control .dropdown-header-close { - position: absolute; - right: .75rem; - top: 50%; - color: #343a40; - opacity: .4; - margin-top: -12px; - line-height: 20px; - font-size: 20px !important -} - -.selectize-control .dropdown-header-close:hover { - color: #000 -} - -.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content { - display: flex -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup { - border-right: 1px solid #f2f2f2; - border-top: 0 none; - flex-grow: 1; - flex-basis: 0; - min-width: 0 -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child { - border-right: 0 none -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup:before { - display: none -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup-header { - border-top: 0 none -} - -.selectize-control.plugin-remove_button .item { - display: inline-flex; - align-items: center; - padding-right: 0 !important -} - -.selectize-control.plugin-remove_button .item .remove { - color: inherit; - text-decoration: none; - vertical-align: middle; - display: inline-block; - padding: 1px 5px; - border-left: 1px solid #dee2e6; - border-radius: 0 2px 2px 0; - box-sizing: border-box; - margin-left: 5px -} - -.selectize-control.plugin-remove_button .item .remove:hover { - background: rgba(0, 0, 0, .05) -} - -.selectize-control.plugin-remove_button .item.active .remove { - border-left-color: rgba(0, 0, 0, 0) -} - -.selectize-control.plugin-remove_button .disabled .item .remove:hover { - background: none -} - -.selectize-control.plugin-remove_button .disabled .item .remove { - border-left-color: #fff -} - -.selectize-control.plugin-remove_button .remove-single { - position: absolute; - right: 0; - top: 0; - font-size: 23px -} - -.selectize-control { - position: relative -} - -.selectize-dropdown, .selectize-input, .selectize-input input { - color: #fff; - font-family: inherit; - font-size: inherit; - line-height: 1.5; - font-smoothing: inherit -} - -.selectize-input, .selectize-control.single .selectize-input.input-active { - background: #222222; - color: #fff; - cursor: text; - display: inline-block -} - -.selectize-input { - padding: .375rem .75rem; - display: inline-block; - width: 100%; - overflow: hidden; - position: relative; - z-index: 1; - box-sizing: border-box; - box-shadow: none; - border-radius: 0.25rem; -} - -.selectize-control.multi .selectize-input.has-items { - padding: calc( 0.375rem - 1px - 0px) .75rem calc( 0.375rem - 1px - 3px - 0px) -} - -.selectize-input.full { - background-color: #222222; -} - -.selectize-input.disabled, .selectize-input.disabled * { - cursor: default !important -} - -.selectize-input.focus { - box-shadow: inset 0 1px 2px rgba(0, 0, 0, .15); -} - -.selectize-input.dropdown-active { - border-radius: .25rem .25rem 0 0 -} - -.selectize-input>* { - vertical-align: baseline; - display: inline-block; - zoom: 1 -} - -.selectize-control.multi .selectize-input>div { - cursor: pointer; - margin: 0 3px 3px 0; - padding: 1px 5px; - background: #efefef; - color: #343a40; - border: 0px solid #dee2e6 -} - -.selectize-control.multi .selectize-input>div.active { - background: #007bff; - color: #fff; - border: 0px solid rgba(0, 0, 0, 0) -} - -.selectize-control.multi .selectize-input.disabled>div, .selectize-control.multi .selectize-input.disabled>div.active { - color: #878787; - background: #fff; - border: 0px solid #fff -} - -.selectize-input>input { - display: inline-block !important; - padding: 0 !important; - min-height: 0 !important; - max-height: none !important; - max-width: 100% !important; - margin: 0 !important; - text-indent: 0 !important; - border: 0 none !important; - background: none !important; - line-height: inherit !important; - user-select: auto !important; - box-shadow: none !important -} - -.selectize-input>input::-ms-clear { - display: none -} - -.selectize-input>input:focus { - outline: none !important -} - -.selectize-input>input[placeholder] { - box-sizing: initial -} - -.selectize-input.has-items>input { - margin: 0 4px !important -} - -.selectize-input::after { - content: " "; - display: block; - clear: left -} - -.selectize-input.dropdown-active::before { - content: " "; - display: block; - position: absolute; - background: #fff; - height: 1px; - bottom: 0; - left: 0; - right: 0 -} - -.selectize-dropdown { - position: absolute; - top: 100%; - left: 0; - width: 100%; - z-index: 10; - border: 1px solid #d0d0d0; - background: #fff; - margin: -1px 0 0 0; - border-top: 0 none; - box-sizing: border-box; - box-shadow: 0 1px 3px rgba(0, 0, 0, .1); - border-radius: 0 0 .25rem .25rem -} - -.selectize-dropdown [data-selectable] { - cursor: pointer; - overflow: hidden -} - -.selectize-dropdown [data-selectable] .highlight { - background: rgba(255, 237, 40, .4); - border-radius: 1px -} - -.selectize-dropdown .option, .selectize-dropdown .optgroup-header, .selectize-dropdown .no-results, .selectize-dropdown .create { - padding: 3px .75rem -} - -.selectize-dropdown .option, .selectize-dropdown [data-disabled], .selectize-dropdown [data-disabled] [data-selectable].option { - cursor: inherit; - opacity: .5 -} - -.selectize-dropdown [data-selectable].option { - opacity: 1; - cursor: pointer -} - -.selectize-dropdown .optgroup:first-child .optgroup-header { - border-top: 0 none -} - -.selectize-dropdown .optgroup-header { - color: #6c757d; - background: #fff; - cursor: default -} - -.selectize-dropdown .active { - background-color: #3593FB; - color: #FFF -} - -.selectize-dropdown .active.create { - color: #16181b -} - -.selectize-dropdown .create { - color: rgba(52, 58, 64, .5) -} - -.selectize-dropdown-content { - overflow-y: auto; - overflow-x: hidden; - max-height: 200px; - overflow-scrolling: touch -} - -.selectize-dropdown .spinner { - display: inline-block; - width: 30px; - height: 30px; - margin: 3px .75rem -} - -.selectize-dropdown .spinner:after { - content: " "; - display: block; - width: 24px; - height: 24px; - margin: 3px; - border-radius: 50%; - border: 5px solid #d0d0d0; - border-color: #d0d0d0 transparent #d0d0d0 transparent; - animation: lds-dual-ring 1.2s linear infinite -} - -@keyframes lds-dual-ring { - 0% { - transform: rotate(0deg) - } - 100% { - transform: rotate(360deg) - } -} - -.selectize-control.single .selectize-input, .selectize-control.single .selectize-input input { - cursor: pointer -} - -.selectize-control.single .selectize-input.input-active, .selectize-control.single .selectize-input.input-active input { - cursor: text -} - -.selectize-control.single .selectize-input:after { - content: " "; - display: block; - position: absolute; - top: 50%; - right: calc(0.75rem + 5px); - margin-top: -3px; - width: 0; - height: 0; - border-style: solid; - border-width: 5px 5px 0 5px; - border-color: #343a40 transparent transparent transparent -} - -.selectize-control.single .selectize-input.dropdown-active:after { - margin-top: -4px; - border-width: 0 5px 5px 5px; - border-color: transparent transparent #343a40 transparent -} - -.selectize-control.rtl { - text-align: right -} - -.selectize-control.rtl.single .selectize-input:after { - left: calc(0.75rem + 5px); - right: auto -} - -.selectize-control.rtl .selectize-input>input { - margin: 0 4px 0 -2px !important -} - -.selectize-control .selectize-input.disabled { - opacity: .5; - background-color: #fff -} - -.selectize-dropdown, .selectize-dropdown.form-control { - height: auto; - padding: 0; - margin: 2px 0 0 0; - z-index: 1000; - background: #222222; - border: 1px solid rgba(0, 0, 0, .15); - border-radius: .25rem; - box-shadow: 0 6px 12px rgba(0, 0, 0, .175) -} - -.selectize-dropdown .optgroup-header { - font-size: .875rem; - line-height: 1.5 -} - -.selectize-dropdown .optgroup:first-child:before { - display: none -} - -.selectize-dropdown .optgroup:before { - content: " "; - display: block; - height: 0; - margin: .5rem 0; - overflow: hidden; - border-top: 1px solid #e9ecef; - margin-left: -0.75rem; - margin-right: -0.75rem -} - -.selectize-dropdown .create { - padding-left: .75rem -} - -.selectize-dropdown-content { - padding: 5px 0 -} - -.selectize-input { - min-height: calc(1.5em + 0.75rem + 2px); - transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out -} - -@media(prefers-reduced-motion: reduce) { - .selectize-input { - transition: none - } -} - -.selectize-input.dropdown-active { - border-radius: .25rem -} - -.selectize-input.dropdown-active::before { - display: none -} - -.selectize-input.focus { - color: #444; - background-color: #fff; - border-color: #739ac2; - outline: 0; - box-shadow: 0 0 0 .2rem rgba(55, 90, 127, .25) -} - -.is-invalid .selectize-input { - border-color: #dc3545; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075) -} - -.is-invalid .selectize-input:focus { - border-color: #bd2130; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #eb8c95 -} - -.selectize-control.form-control-sm .selectize-input.has-items { - min-height: calc(1.5em + 0.5rem + 2px) !important; - height: calc(1.5em + 0.5rem + 2px) !important; - padding: .25rem .5rem !important; - font-size: .875rem; - line-height: 1.5 -} - -.selectize-control.multi .selectize-input.has-items { - padding-left: calc(0.75rem - 5px); - padding-right: calc(0.75rem - 5px) -} - -.selectize-control.multi .selectize-input>div { - border-radius: calc(0.25rem - 1px) -} - -.form-control.selectize-control { - padding: 0; - height: auto; - border: none; - background: none; - box-shadow: none; - border-radius: 0 -} - -.input-group .selectize-input { - overflow: unset; - border-radius: 0 .25rem .25rem 0 -} \ No newline at end of file diff --git a/assets/css/default/bootstrap-dialog.css b/assets/css/default/bootstrap-dialog.css deleted file mode 100644 index ec4f2ce74..000000000 --- a/assets/css/default/bootstrap-dialog.css +++ /dev/null @@ -1,169 +0,0 @@ -.bootstrap-dialog{ - overflow-y: initial !important -} -.bootstrap-dialog-body{ - max-height: calc(100vh - 200px); - overflow-y: auto; -} - -.bootstrap-dialog { - /* dialog types */ - /** - * Icon animation - * Copied from font-awesome: http://fontawesome.io/ - **/ - /** End of icon animation **/ -} - -.bootstrap-dialog .modal-header { - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} - -.bootstrap-dialog .bootstrap-dialog-title { - color: #fff; - display: inline-block; - font-size: 16px; -} - -.bootstrap-dialog .bootstrap-dialog-message { - font-size: 14px; -} - -.bootstrap-dialog .bootstrap-dialog-button-icon { - margin-right: 3px; -} - -.bootstrap-dialog .bootstrap-dialog-close-button { - font-size: 20px; - float: right; - opacity: 0.9; - filter: alpha(opacity=90); -} - -.bootstrap-dialog .bootstrap-dialog-close-button:hover { - cursor: pointer; - opacity: 1; - filter: alpha(opacity=100); -} - -@media (min-width: 1172px) { - .bootstrap-dialog .modal-xl { - max-width: 95%; - } -} -.bootstrap-dialog .modal-lg .bootstrap4-dialog-button:first-child { - margin-top: 8px; -} - -.bootstrap-dialog.type-default .modal-header { - background-color: #fff; -} - -.bootstrap-dialog.type-default .bootstrap-dialog-title { - color: #333; -} - -.bootstrap-dialog.type-info .modal-header { - background-color: #17a2b8; -} - -.bootstrap-dialog.type-primary .modal-header { - background-color: #007bff; -} - -.bootstrap-dialog.type-secondary .modal-header { - background-color: #6c757d; -} - -.bootstrap-dialog.type-success .modal-header { - background-color: #28a745; -} - -.bootstrap-dialog.type-warning .modal-header { - background-color: #ffc107; -} - -.bootstrap-dialog.type-danger .modal-header { - background-color: #dc3545; -} - -.bootstrap-dialog.type-light .modal-header { - background-color: #f8f9fa; -} - -.bootstrap-dialog.type-dark .modal-header { - background-color: #343a40; -} - -.bootstrap-dialog.size-large .bootstrap-dialog-title { - font-size: 24px; -} - -.bootstrap-dialog.size-large .bootstrap-dialog-close-button { - font-size: 30px; -} - -.bootstrap-dialog.size-large .bootstrap-dialog-message { - font-size: 18px; -} - -.bootstrap-dialog .icon-spin { - display: inline-block; - -moz-animation: spin 2s infinite linear; - -o-animation: spin 2s infinite linear; - -webkit-animation: spin 2s infinite linear; - animation: spin 2s infinite linear; -} - -.bootstrap-dialog-footer-buttons { - display: flex; -} - -@-moz-keyframes spin { - 0% { - -moz-transform: rotate(0deg); - } - 100% { - -moz-transform: rotate(359deg); - } -} -@-webkit-keyframes spin { - 0% { - -webkit-transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - } -} -@-o-keyframes spin { - 0% { - -o-transform: rotate(0deg); - } - 100% { - -o-transform: rotate(359deg); - } -} -@-ms-keyframes spin { - 0% { - -ms-transform: rotate(0deg); - } - 100% { - -ms-transform: rotate(359deg); - } -} -@keyframes spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(359deg); - } -} -.bootstrap-dialog-header { - display: contents; -} - -/*# sourceMappingURL=bootstrap-dialog.css.map */ - -/*# sourceMappingURL=bootstrap-dialog.css.map */ diff --git a/assets/css/default/overrides.css b/assets/css/default/overrides.css index 9dde279a7..57b583fb7 100644 --- a/assets/css/default/overrides.css +++ b/assets/css/default/overrides.css @@ -1,3 +1,7 @@ -thead > tr > td { +thead>tr>td { background-color: aliceblue !important; +} + +.selectize-input { + border: 1px solid #ced4da; } \ No newline at end of file diff --git a/assets/css/default/selectize.bootstrap4.css b/assets/css/default/selectize.bootstrap4.css deleted file mode 100644 index e2445f968..000000000 --- a/assets/css/default/selectize.bootstrap4.css +++ /dev/null @@ -1,478 +0,0 @@ -.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder { - visibility: visible !important; - background: #f2f2f2 !important; - background: rgba(0, 0, 0, .06) !important; - border: 0 none !important; - box-shadow: inset 0 0 12px 4px #fff -} - -.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after { - content: "!"; - visibility: hidden -} - -.selectize-control.plugin-drag_drop .ui-sortable-helper { - box-shadow: 0 2px 5px rgba(0, 0, 0, .2) -} - -.selectize-control .dropdown-header { - position: relative; - padding: 6px .75rem; - border-bottom: 1px solid #d0d0d0; - background: #f8f8f8; - border-radius: .25rem .25rem 0 0 -} - -.selectize-control .dropdown-header-close { - position: absolute; - right: .75rem; - top: 50%; - color: #343a40; - opacity: .4; - margin-top: -12px; - line-height: 20px; - font-size: 20px !important -} - -.selectize-control .dropdown-header-close:hover { - color: #000 -} - -.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content { - display: flex -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup { - border-right: 1px solid #f2f2f2; - border-top: 0 none; - flex-grow: 1; - flex-basis: 0; - min-width: 0 -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child { - border-right: 0 none -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup:before { - display: none -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup-header { - border-top: 0 none -} - -.selectize-control.plugin-remove_button .item { - display: inline-flex; - align-items: center; - padding-right: 0 !important -} - -.selectize-control.plugin-remove_button .item .remove { - color: inherit; - text-decoration: none; - vertical-align: middle; - display: inline-block; - padding: 1px 5px; - border-left: 1px solid #dee2e6; - border-radius: 0 2px 2px 0; - box-sizing: border-box; - margin-left: 5px -} - -.selectize-control.plugin-remove_button .item .remove:hover { - background: rgba(0, 0, 0, .05) -} - -.selectize-control.plugin-remove_button .item.active .remove { - border-left-color: rgba(0, 0, 0, 0) -} - -.selectize-control.plugin-remove_button .disabled .item .remove:hover { - background: none -} - -.selectize-control.plugin-remove_button .disabled .item .remove { - border-left-color: #fff -} - -.selectize-control.plugin-remove_button .remove-single { - position: absolute; - right: 0; - top: 0; - font-size: 23px -} - -.selectize-control { - position: relative -} - -.selectize-dropdown, .selectize-input, .selectize-input input { - color: #343a40; - font-family: inherit; - font-size: inherit; - line-height: 1.5; - font-smoothing: inherit -} - -.selectize-input, .selectize-control.single .selectize-input.input-active { - background: #fff; - cursor: text; - display: inline-block -} - -.selectize-input { - border: 1px solid #ced4da; - padding: .375rem .75rem; - display: inline-block; - width: 100%; - overflow: hidden; - position: relative; - z-index: 1; - box-sizing: border-box; - box-shadow: none; - border-radius: 0.25rem -} - -.selectize-control.multi .selectize-input.has-items { - padding: calc( 0.375rem - 1px - 0px) .75rem calc( 0.375rem - 1px - 3px - 0px) -} - -.selectize-input.full { - background-color: #fff -} - -.selectize-input.disabled, .selectize-input.disabled * { - cursor: default !important -} - -.selectize-input.focus { - box-shadow: inset 0 1px 2px rgba(0, 0, 0, .15) -} - -.selectize-input.dropdown-active { - border-radius: .25rem .25rem 0 0 -} - -.selectize-input>* { - vertical-align: baseline; - display: inline-block; - zoom: 1 -} - -.selectize-control.multi .selectize-input>div { - cursor: pointer; - margin: 0 3px 3px 0; - padding: 1px 5px; - background: #efefef; - color: #343a40; - border: 0px solid #dee2e6 -} - -.selectize-control.multi .selectize-input>div.active { - background: #007bff; - color: #fff; - border: 0px solid rgba(0, 0, 0, 0) -} - -.selectize-control.multi .selectize-input.disabled>div, .selectize-control.multi .selectize-input.disabled>div.active { - color: #878787; - background: #fff; - border: 0px solid #fff -} - -.selectize-input>input { - display: inline-block !important; - padding: 0 !important; - min-height: 0 !important; - max-height: none !important; - max-width: 100% !important; - margin: 0 !important; - text-indent: 0 !important; - border: 0 none !important; - background: none !important; - line-height: inherit !important; - user-select: auto !important; - box-shadow: none !important -} - -.selectize-input>input::-ms-clear { - display: none -} - -.selectize-input>input:focus { - outline: none !important -} - -.selectize-input>input[placeholder] { - box-sizing: initial -} - -.selectize-input.has-items>input { - margin: 0 4px !important -} - -.selectize-input::after { - content: " "; - display: block; - clear: left -} - -.selectize-input.dropdown-active::before { - content: " "; - display: block; - position: absolute; - background: #fff; - height: 1px; - bottom: 0; - left: 0; - right: 0 -} - -.selectize-dropdown { - position: absolute; - top: 100%; - left: 0; - width: 100%; - z-index: 10; - border: 1px solid #d0d0d0; - background: #fff; - margin: -1px 0 0 0; - border-top: 0 none; - box-sizing: border-box; - box-shadow: 0 1px 3px rgba(0, 0, 0, .1); - border-radius: 0 0 .25rem .25rem -} - -.selectize-dropdown [data-selectable] { - cursor: pointer; - overflow: hidden -} - -.selectize-dropdown [data-selectable] .highlight { - background: rgba(255, 237, 40, .4); - border-radius: 1px -} - -.selectize-dropdown .option, .selectize-dropdown .optgroup-header, .selectize-dropdown .no-results, .selectize-dropdown .create { - padding: 3px .75rem -} - -.selectize-dropdown .option, .selectize-dropdown [data-disabled], .selectize-dropdown [data-disabled] [data-selectable].option { - cursor: inherit; - opacity: .5 -} - -.selectize-dropdown [data-selectable].option { - opacity: 1; - cursor: pointer -} - -.selectize-dropdown .optgroup:first-child .optgroup-header { - border-top: 0 none -} - -.selectize-dropdown .optgroup-header { - color: #6c757d; - background: #fff; - cursor: default -} - -.selectize-dropdown .active { - background-color: #3593FB; - color: #FFF -} - -.selectize-dropdown .active.create { - color: #16181b -} - -.selectize-dropdown .create { - color: rgba(52, 58, 64, .5) -} - -.selectize-dropdown-content { - overflow-y: auto; - overflow-x: hidden; - max-height: 200px; - overflow-scrolling: touch -} - -.selectize-dropdown .spinner { - display: inline-block; - width: 30px; - height: 30px; - margin: 3px .75rem -} - -.selectize-dropdown .spinner:after { - content: " "; - display: block; - width: 24px; - height: 24px; - margin: 3px; - border-radius: 50%; - border: 5px solid #d0d0d0; - border-color: #d0d0d0 transparent #d0d0d0 transparent; - animation: lds-dual-ring 1.2s linear infinite -} - -@keyframes lds-dual-ring { - 0% { - transform: rotate(0deg) - } - 100% { - transform: rotate(360deg) - } -} - -.selectize-control.single .selectize-input, .selectize-control.single .selectize-input input { - cursor: pointer -} - -.selectize-control.single .selectize-input.input-active, .selectize-control.single .selectize-input.input-active input { - cursor: text -} - -.selectize-control.single .selectize-input:after { - content: " "; - display: block; - position: absolute; - top: 50%; - right: calc(0.75rem + 5px); - margin-top: -3px; - width: 0; - height: 0; - border-style: solid; - border-width: 5px 5px 0 5px; - border-color: #343a40 transparent transparent transparent -} - -.selectize-control.single .selectize-input.dropdown-active:after { - margin-top: -4px; - border-width: 0 5px 5px 5px; - border-color: transparent transparent #343a40 transparent -} - -.selectize-control.rtl { - text-align: right -} - -.selectize-control.rtl.single .selectize-input:after { - left: calc(0.75rem + 5px); - right: auto -} - -.selectize-control.rtl .selectize-input>input { - margin: 0 4px 0 -2px !important -} - -.selectize-control .selectize-input.disabled { - opacity: .5; - background-color: #fff -} - -.selectize-dropdown, .selectize-dropdown.form-control { - height: auto; - padding: 0; - margin: 2px 0 0 0; - z-index: 1000; - background: #fff; - border: 1px solid rgba(0, 0, 0, .15); - border-radius: .25rem; - box-shadow: 0 6px 12px rgba(0, 0, 0, .175) -} - -.selectize-dropdown .optgroup-header { - font-size: .875rem; - line-height: 1.5 -} - -.selectize-dropdown .optgroup:first-child:before { - display: none -} - -.selectize-dropdown .optgroup:before { - content: " "; - display: block; - height: 0; - margin: .5rem 0; - overflow: hidden; - border-top: 1px solid #e9ecef; - margin-left: -0.75rem; - margin-right: -0.75rem -} - -.selectize-dropdown .create { - padding-left: .75rem -} - -.selectize-dropdown-content { - padding: 5px 0 -} - -.selectize-input { - min-height: calc(1.5em + 0.75rem + 2px); - transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out -} - -@media(prefers-reduced-motion: reduce) { - .selectize-input { - transition: none - } -} - -.selectize-input.dropdown-active { - border-radius: .25rem -} - -.selectize-input.dropdown-active::before { - display: none -} - -.selectize-input.focus { - border-color: #80bdff; - outline: 0; - box-shadow: 0 0 0 .2rem rgba(0, 123, 255, .25) -} - -.is-invalid .selectize-input { - border-color: #dc3545; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075) -} - -.is-invalid .selectize-input:focus { - border-color: #bd2130; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #eb8c95 -} - -.selectize-control.form-control-sm .selectize-input.has-items { - min-height: calc(1.5em + 0.5rem + 2px) !important; - height: calc(1.5em + 0.5rem + 2px) !important; - padding: .25rem .5rem !important; - font-size: .875rem; - line-height: 1.5 -} - -.selectize-control.multi .selectize-input.has-items { - padding-left: calc(0.75rem - 5px); - padding-right: calc(0.75rem - 5px) -} - -.selectize-control.multi .selectize-input>div { - border-radius: calc(0.25rem - 1px) -} - -.form-control.selectize-control { - padding: 0; - height: auto; - border: none; - background: none; - box-shadow: none; - border-radius: 0 -} - -.input-group .selectize-input { - overflow: unset; - border-radius: 0 .25rem .25rem 0 -} \ No newline at end of file diff --git a/assets/css/superhero/bootstrap-dialog.css b/assets/css/superhero/bootstrap-dialog.css deleted file mode 100644 index 8553d42ac..000000000 --- a/assets/css/superhero/bootstrap-dialog.css +++ /dev/null @@ -1,169 +0,0 @@ -.bootstrap-dialog{ - overflow-y: initial !important -} -.bootstrap-dialog-body{ - max-height: calc(100vh - 200px); - overflow-y: auto; -} - -.bootstrap-dialog { - /* dialog types */ - /** - * Icon animation - * Copied from font-awesome: http://fontawesome.io/ - **/ - /** End of icon animation **/ -} - -.bootstrap-dialog .modal-header { - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} - -.bootstrap-dialog .bootstrap-dialog-title { - color: #fff; - display: inline-block; - font-size: 16px; -} - -.bootstrap-dialog .bootstrap-dialog-message { - font-size: 14px; -} - -.bootstrap-dialog .bootstrap-dialog-button-icon { - margin-right: 3px; -} - -.bootstrap-dialog .bootstrap-dialog-close-button { - font-size: 20px; - float: right; - opacity: 0.9; - filter: alpha(opacity=90); -} - -.bootstrap-dialog .bootstrap-dialog-close-button:hover { - cursor: pointer; - opacity: 1; - filter: alpha(opacity=100); -} - -@media (min-width: 1172px) { - .bootstrap-dialog .modal-xl { - max-width: 95%; - } -} -.bootstrap-dialog .modal-lg .bootstrap4-dialog-button:first-child { - margin-top: 8px; -} - -.bootstrap-dialog.type-default .modal-header { - background-color: #fff; -} - -.bootstrap-dialog.type-default .bootstrap-dialog-title { - color: #333; -} - -.bootstrap-dialog.type-info .modal-header { - background-color: #17a2b8; -} - -.bootstrap-dialog.type-primary .modal-header { - background-color: #2B3E50; -} - -.bootstrap-dialog.type-secondary .modal-header { - background-color: #6c757d; -} - -.bootstrap-dialog.type-success .modal-header { - background-color: #28a745; -} - -.bootstrap-dialog.type-warning .modal-header { - background-color: #ffc107; -} - -.bootstrap-dialog.type-danger .modal-header { - background-color: #dc3545; -} - -.bootstrap-dialog.type-light .modal-header { - background-color: #f8f9fa; -} - -.bootstrap-dialog.type-dark .modal-header { - background-color: #343a40; -} - -.bootstrap-dialog.size-large .bootstrap-dialog-title { - font-size: 24px; -} - -.bootstrap-dialog.size-large .bootstrap-dialog-close-button { - font-size: 30px; -} - -.bootstrap-dialog.size-large .bootstrap-dialog-message { - font-size: 18px; -} - -.bootstrap-dialog .icon-spin { - display: inline-block; - -moz-animation: spin 2s infinite linear; - -o-animation: spin 2s infinite linear; - -webkit-animation: spin 2s infinite linear; - animation: spin 2s infinite linear; -} - -.bootstrap-dialog-footer-buttons { - display: flex; -} - -@-moz-keyframes spin { - 0% { - -moz-transform: rotate(0deg); - } - 100% { - -moz-transform: rotate(359deg); - } -} -@-webkit-keyframes spin { - 0% { - -webkit-transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - } -} -@-o-keyframes spin { - 0% { - -o-transform: rotate(0deg); - } - 100% { - -o-transform: rotate(359deg); - } -} -@-ms-keyframes spin { - 0% { - -ms-transform: rotate(0deg); - } - 100% { - -ms-transform: rotate(359deg); - } -} -@keyframes spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(359deg); - } -} -.bootstrap-dialog-header { - display: contents; -} - -/*# sourceMappingURL=bootstrap-dialog.css.map */ - -/*# sourceMappingURL=bootstrap-dialog.css.map */ diff --git a/assets/css/superhero/overrides.css b/assets/css/superhero/overrides.css index 2c4774f99..f6960b3e4 100644 --- a/assets/css/superhero/overrides.css +++ b/assets/css/superhero/overrides.css @@ -14,7 +14,7 @@ path.grid-rectangle { stroke: rgba(200, 200, 200, 0.5); } -span.grid-text > font { +span.grid-text>font { color: rgba(220, 220, 220, 1) !important; -webkit-text-stroke: 0.6px black !important; } @@ -29,8 +29,7 @@ path.grid-worked { stroke: rgba(220, 50, 50, 0.4) !important; } -#map, -#qsomap{ +#map, #qsomap { background-color: #2E3E50; } @@ -39,43 +38,70 @@ path.grid-worked { */ /* Navigation background */ + .bg-light { - background-color: #4e5d6c !important; + background-color: #4e5d6c !important; } /* Inactive Links */ + .navbar-light .navbar-nav .nav-link { - color: rgba(255,255,255,.6); + color: rgba(255, 255, 255, .6); } /* Active Links and Logo */ -.navbar-light .navbar-brand, -.navbar-light .navbar-brand:focus, -.navbar-light .navbar-brand:hover, -.navbar-light .navbar-nav .active>.nav-link, -.navbar-light .navbar-nav .nav-link:focus, -.navbar-light .navbar-nav .nav-link:hover { - color: #fff; + +.navbar-light .navbar-brand, .navbar-light .navbar-brand:focus, .navbar-light .navbar-brand:hover, .navbar-light .navbar-nav .active>.nav-link, .navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover { + color: #fff; } /* Hamburger Menu */ + .navbar-light .navbar-toggler-icon { - background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.6%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.6%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") } /* * Dark inputs */ -.form-control, -.form-control-sm, -.form-control:focus, -.form-control:disabled, -.custom-select { +.form-control, .form-control-sm, .form-control:focus, .form-control:disabled, .custom-select { background-color: rgba(20, 41, 62, 0.6); - color: #fff; + color: #fff; } div.alert-danger { color: #ffffff; +} + +.bootstrap-dialog.type-primary .modal-header { + background-color: #2B3E50; +} + +.selectize-dropdown, .selectize-input, .selectize-input input { + color: #fff; +} + +.selectize-input, .selectize-control.single .selectize-input.input-active { + background: #2B3D51; + color: #fff; +} + +.selectize-input { + border-radius: 0; +} + +.selectize-input.full { + background-color: #2B3D51; +} + +.selectize-dropdown, .selectize-dropdown.form-control { + background: #737F8B; +} + +.selectize-input.focus { + color: #495057; + background-color: #fff; + border-color: #f1b287; + box-shadow: 0 0 0 .2rem rgba(223, 105, 26, .25) } \ No newline at end of file diff --git a/assets/css/superhero/selectize.bootstrap4.css b/assets/css/superhero/selectize.bootstrap4.css deleted file mode 100644 index 56799ee87..000000000 --- a/assets/css/superhero/selectize.bootstrap4.css +++ /dev/null @@ -1,480 +0,0 @@ -.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder { - visibility: visible !important; - background: #f2f2f2 !important; - background: rgba(0, 0, 0, .06) !important; - border: 0 none !important; - box-shadow: inset 0 0 12px 4px #fff -} - -.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after { - content: "!"; - visibility: hidden -} - -.selectize-control.plugin-drag_drop .ui-sortable-helper { - box-shadow: 0 2px 5px rgba(0, 0, 0, .2) -} - -.selectize-control .dropdown-header { - position: relative; - padding: 6px .75rem; - border-bottom: 1px solid #d0d0d0; - background: #f8f8f8; - border-radius: .25rem .25rem 0 0 -} - -.selectize-control .dropdown-header-close { - position: absolute; - right: .75rem; - top: 50%; - color: #343a40; - opacity: .4; - margin-top: -12px; - line-height: 20px; - font-size: 20px !important -} - -.selectize-control .dropdown-header-close:hover { - color: #000 -} - -.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content { - display: flex -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup { - border-right: 1px solid #f2f2f2; - border-top: 0 none; - flex-grow: 1; - flex-basis: 0; - min-width: 0 -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child { - border-right: 0 none -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup:before { - display: none -} - -.selectize-dropdown.plugin-optgroup_columns .optgroup-header { - border-top: 0 none -} - -.selectize-control.plugin-remove_button .item { - display: inline-flex; - align-items: center; - padding-right: 0 !important -} - -.selectize-control.plugin-remove_button .item .remove { - color: inherit; - text-decoration: none; - vertical-align: middle; - display: inline-block; - padding: 1px 5px; - border-left: 1px solid #dee2e6; - border-radius: 0 2px 2px 0; - box-sizing: border-box; - margin-left: 5px -} - -.selectize-control.plugin-remove_button .item .remove:hover { - background: rgba(0, 0, 0, .05) -} - -.selectize-control.plugin-remove_button .item.active .remove { - border-left-color: rgba(0, 0, 0, 0) -} - -.selectize-control.plugin-remove_button .disabled .item .remove:hover { - background: none -} - -.selectize-control.plugin-remove_button .disabled .item .remove { - border-left-color: #fff -} - -.selectize-control.plugin-remove_button .remove-single { - position: absolute; - right: 0; - top: 0; - font-size: 23px -} - -.selectize-control { - position: relative -} - -.selectize-dropdown, .selectize-input, .selectize-input input { - color: #fff; - font-family: inherit; - font-size: inherit; - line-height: 1.5; - font-smoothing: inherit -} - -.selectize-input, .selectize-control.single .selectize-input.input-active { - background: #2B3D51; - color: #fff; - cursor: text; - display: inline-block -} - -.selectize-input { - padding: .375rem .75rem; - display: inline-block; - width: 100%; - overflow: hidden; - position: relative; - z-index: 1; - box-sizing: border-box; - box-shadow: none; - border-radius: 0 -} - -.selectize-control.multi .selectize-input.has-items { - padding: calc( 0.375rem - 1px - 0px) .75rem calc( 0.375rem - 1px - 3px - 0px) -} - -.selectize-input.full { - background-color: #2B3D51; -} - -.selectize-input.disabled, .selectize-input.disabled * { - cursor: default !important -} - -.selectize-input.focus { - box-shadow: inset 0 1px 2px rgba(0, 0, 0, .15) -} - -.selectize-input.dropdown-active { - border-radius: .25rem .25rem 0 0 -} - -.selectize-input>* { - vertical-align: baseline; - display: inline-block; - zoom: 1 -} - -.selectize-control.multi .selectize-input>div { - cursor: pointer; - margin: 0 3px 3px 0; - padding: 1px 5px; - background: #efefef; - color: #343a40; - border: 0px solid #dee2e6 -} - -.selectize-control.multi .selectize-input>div.active { - background: #007bff; - color: #fff; - border: 0px solid rgba(0, 0, 0, 0) -} - -.selectize-control.multi .selectize-input.disabled>div, .selectize-control.multi .selectize-input.disabled>div.active { - color: #878787; - background: #fff; - border: 0px solid #fff -} - -.selectize-input>input { - display: inline-block !important; - padding: 0 !important; - min-height: 0 !important; - max-height: none !important; - max-width: 100% !important; - margin: 0 !important; - text-indent: 0 !important; - border: 0 none !important; - background: none !important; - line-height: inherit !important; - user-select: auto !important; - box-shadow: none !important -} - -.selectize-input>input::-ms-clear { - display: none -} - -.selectize-input>input:focus { - outline: none !important -} - -.selectize-input>input[placeholder] { - box-sizing: initial -} - -.selectize-input.has-items>input { - margin: 0 4px !important -} - -.selectize-input::after { - content: " "; - display: block; - clear: left -} - -.selectize-input.dropdown-active::before { - content: " "; - display: block; - position: absolute; - background: #fff; - height: 1px; - bottom: 0; - left: 0; - right: 0 -} - -.selectize-dropdown { - position: absolute; - top: 100%; - left: 0; - width: 100%; - z-index: 10; - border: 1px solid #d0d0d0; - background: #fff; - margin: -1px 0 0 0; - border-top: 0 none; - box-sizing: border-box; - box-shadow: 0 1px 3px rgba(0, 0, 0, .1); - border-radius: 0 0 .25rem .25rem -} - -.selectize-dropdown [data-selectable] { - cursor: pointer; - overflow: hidden -} - -.selectize-dropdown [data-selectable] .highlight { - background: rgba(255, 237, 40, .4); - border-radius: 1px -} - -.selectize-dropdown .option, .selectize-dropdown .optgroup-header, .selectize-dropdown .no-results, .selectize-dropdown .create { - padding: 3px .75rem -} - -.selectize-dropdown .option, .selectize-dropdown [data-disabled], .selectize-dropdown [data-disabled] [data-selectable].option { - cursor: inherit; - opacity: .5 -} - -.selectize-dropdown [data-selectable].option { - opacity: 1; - cursor: pointer -} - -.selectize-dropdown .optgroup:first-child .optgroup-header { - border-top: 0 none -} - -.selectize-dropdown .optgroup-header { - color: #6c757d; - background: #fff; - cursor: default -} - -.selectize-dropdown .active { - background-color: #3593FB; - color: #FFF -} - -.selectize-dropdown .active.create { - color: #16181b -} - -.selectize-dropdown .create { - color: rgba(52, 58, 64, .5) -} - -.selectize-dropdown-content { - overflow-y: auto; - overflow-x: hidden; - max-height: 200px; - overflow-scrolling: touch -} - -.selectize-dropdown .spinner { - display: inline-block; - width: 30px; - height: 30px; - margin: 3px .75rem -} - -.selectize-dropdown .spinner:after { - content: " "; - display: block; - width: 24px; - height: 24px; - margin: 3px; - border-radius: 50%; - border: 5px solid #d0d0d0; - border-color: #d0d0d0 transparent #d0d0d0 transparent; - animation: lds-dual-ring 1.2s linear infinite -} - -@keyframes lds-dual-ring { - 0% { - transform: rotate(0deg) - } - 100% { - transform: rotate(360deg) - } -} - -.selectize-control.single .selectize-input, .selectize-control.single .selectize-input input { - cursor: pointer -} - -.selectize-control.single .selectize-input.input-active, .selectize-control.single .selectize-input.input-active input { - cursor: text -} - -.selectize-control.single .selectize-input:after { - content: " "; - display: block; - position: absolute; - top: 50%; - right: calc(0.75rem + 5px); - margin-top: -3px; - width: 0; - height: 0; - border-style: solid; - border-width: 5px 5px 0 5px; - border-color: #343a40 transparent transparent transparent -} - -.selectize-control.single .selectize-input.dropdown-active:after { - margin-top: -4px; - border-width: 0 5px 5px 5px; - border-color: transparent transparent #343a40 transparent -} - -.selectize-control.rtl { - text-align: right -} - -.selectize-control.rtl.single .selectize-input:after { - left: calc(0.75rem + 5px); - right: auto -} - -.selectize-control.rtl .selectize-input>input { - margin: 0 4px 0 -2px !important -} - -.selectize-control .selectize-input.disabled { - opacity: .5; - background-color: #fff -} - -.selectize-dropdown, .selectize-dropdown.form-control { - height: auto; - padding: 0; - margin: 2px 0 0 0; - z-index: 1000; - background: #737F8B; - border: 1px solid rgba(0, 0, 0, .15); - border-radius: .25rem; - box-shadow: 0 6px 12px rgba(0, 0, 0, .175) -} - -.selectize-dropdown .optgroup-header { - font-size: .875rem; - line-height: 1.5 -} - -.selectize-dropdown .optgroup:first-child:before { - display: none -} - -.selectize-dropdown .optgroup:before { - content: " "; - display: block; - height: 0; - margin: .5rem 0; - overflow: hidden; - border-top: 1px solid #e9ecef; - margin-left: -0.75rem; - margin-right: -0.75rem -} - -.selectize-dropdown .create { - padding-left: .75rem -} - -.selectize-dropdown-content { - padding: 5px 0 -} - -.selectize-input { - min-height: calc(1.5em + 0.75rem + 2px); - transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out -} - -@media(prefers-reduced-motion: reduce) { - .selectize-input { - transition: none - } -} - -.selectize-input.dropdown-active { - border-radius: .25rem -} - -.selectize-input.dropdown-active::before { - display: none -} - -.selectize-input.focus { - color: #495057; - background-color: #fff; - border-color: #f1b287; - outline: 0; - box-shadow: 0 0 0 .2rem rgba(223, 105, 26, .25) -} - -.is-invalid .selectize-input { - border-color: #dc3545; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075) -} - -.is-invalid .selectize-input:focus { - border-color: #bd2130; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #eb8c95 -} - -.selectize-control.form-control-sm .selectize-input.has-items { - min-height: calc(1.5em + 0.5rem + 2px) !important; - height: calc(1.5em + 0.5rem + 2px) !important; - padding: .25rem .5rem !important; - font-size: .875rem; - line-height: 1.5 -} - -.selectize-control.multi .selectize-input.has-items { - padding-left: calc(0.75rem - 5px); - padding-right: calc(0.75rem - 5px) -} - -.selectize-control.multi .selectize-input>div { - border-radius: calc(0.25rem - 1px) -} - -.form-control.selectize-control { - padding: 0; - height: auto; - border: none; - background: none; - box-shadow: none; - border-radius: 0 -} - -.input-group .selectize-input { - overflow: unset; - border-radius: 0 .25rem .25rem 0 -} \ No newline at end of file From a9dd72a97404efc5b9be58edf0c308a0f6101147 Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Sat, 21 Aug 2021 20:16:57 +0200 Subject: [PATCH 33/79] [Themes] Small tweaking of CSS for selectize overrides. --- assets/css/blue/overrides.css | 9 +++++++++ assets/css/cosmo/overrides.css | 8 ++++++++ assets/css/cyborg/overrides.css | 8 ++++++++ assets/css/darkly/overrides.css | 4 ++++ assets/css/superhero/overrides.css | 8 ++++++++ 5 files changed, 37 insertions(+) diff --git a/assets/css/blue/overrides.css b/assets/css/blue/overrides.css index 5d5c448bf..9d7ee9a10 100644 --- a/assets/css/blue/overrides.css +++ b/assets/css/blue/overrides.css @@ -105,6 +105,7 @@ div.alert-danger { .selectize-input.focus { box-shadow: inset 0 1px 2px rgba(0, 0, 0, .15); + border-radius: 0; } .selectize-dropdown .optgroup-header { @@ -116,4 +117,12 @@ div.alert-danger { background-color: #fff; border-color: #f1b287; box-shadow: 0 0 0 .2rem rgba(223, 105, 26, .25) +} + +.selectize-input.dropdown-active { + border-radius: 0; +} + +.selectize-dropdown, .selectize-dropdown.form-control { + border-radius: 0; } \ No newline at end of file diff --git a/assets/css/cosmo/overrides.css b/assets/css/cosmo/overrides.css index 281e2c4f1..2ef8afe25 100644 --- a/assets/css/cosmo/overrides.css +++ b/assets/css/cosmo/overrides.css @@ -8,4 +8,12 @@ .selectize-input { border: 1px solid #ced4da; +} + +.selectize-input.dropdown-active { + border-radius: 0; +} + +.selectize-dropdown, .selectize-dropdown.form-control { + border-radius: 0; } \ No newline at end of file diff --git a/assets/css/cyborg/overrides.css b/assets/css/cyborg/overrides.css index d6b4f3ca8..fe94a5308 100644 --- a/assets/css/cyborg/overrides.css +++ b/assets/css/cyborg/overrides.css @@ -79,6 +79,10 @@ path.grid-worked { background-color: #131313; } +.selectize-input { + border: 1px solid #333333; +} + .selectize-dropdown, .selectize-input, .selectize-input input { color: #fff; } @@ -108,4 +112,8 @@ path.grid-worked { background-color: #fff; border-color: #95cfeb; box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25); +} + +.selectize-dropdown, .selectize-dropdown.form-control { + border-radius: 0; } \ No newline at end of file diff --git a/assets/css/darkly/overrides.css b/assets/css/darkly/overrides.css index 2cb4ccab3..9d5ea2bfb 100644 --- a/assets/css/darkly/overrides.css +++ b/assets/css/darkly/overrides.css @@ -104,4 +104,8 @@ div.alert-success a, div.alert-danger a, div.alert-danger { background-color: #fff; border-color: #739ac2; box-shadow: 0 0 0 .2rem rgba(55, 90, 127, .25) +} + +.selectize-dropdown, .selectize-dropdown.form-control { + border-radius: 0; } \ No newline at end of file diff --git a/assets/css/superhero/overrides.css b/assets/css/superhero/overrides.css index f6960b3e4..33a991cb6 100644 --- a/assets/css/superhero/overrides.css +++ b/assets/css/superhero/overrides.css @@ -104,4 +104,12 @@ div.alert-danger { background-color: #fff; border-color: #f1b287; box-shadow: 0 0 0 .2rem rgba(223, 105, 26, .25) +} + +.selectize-input.dropdown-active { + border-radius: 0; +} + +.selectize-dropdown, .selectize-dropdown.form-control { + border-radius: 0; } \ No newline at end of file From 3e8c57a11ba5e8cd44a9474d08894731185f3f89 Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Mon, 23 Aug 2021 20:18:34 +0200 Subject: [PATCH 34/79] [Themes] Added missing files --- assets/css/bootstrap-dialog.css | 169 ++++++++++ assets/css/selectize.bootstrap4.css | 477 ++++++++++++++++++++++++++++ 2 files changed, 646 insertions(+) create mode 100644 assets/css/bootstrap-dialog.css create mode 100644 assets/css/selectize.bootstrap4.css diff --git a/assets/css/bootstrap-dialog.css b/assets/css/bootstrap-dialog.css new file mode 100644 index 000000000..ec4f2ce74 --- /dev/null +++ b/assets/css/bootstrap-dialog.css @@ -0,0 +1,169 @@ +.bootstrap-dialog{ + overflow-y: initial !important +} +.bootstrap-dialog-body{ + max-height: calc(100vh - 200px); + overflow-y: auto; +} + +.bootstrap-dialog { + /* dialog types */ + /** + * Icon animation + * Copied from font-awesome: http://fontawesome.io/ + **/ + /** End of icon animation **/ +} + +.bootstrap-dialog .modal-header { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +.bootstrap-dialog .bootstrap-dialog-title { + color: #fff; + display: inline-block; + font-size: 16px; +} + +.bootstrap-dialog .bootstrap-dialog-message { + font-size: 14px; +} + +.bootstrap-dialog .bootstrap-dialog-button-icon { + margin-right: 3px; +} + +.bootstrap-dialog .bootstrap-dialog-close-button { + font-size: 20px; + float: right; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.bootstrap-dialog .bootstrap-dialog-close-button:hover { + cursor: pointer; + opacity: 1; + filter: alpha(opacity=100); +} + +@media (min-width: 1172px) { + .bootstrap-dialog .modal-xl { + max-width: 95%; + } +} +.bootstrap-dialog .modal-lg .bootstrap4-dialog-button:first-child { + margin-top: 8px; +} + +.bootstrap-dialog.type-default .modal-header { + background-color: #fff; +} + +.bootstrap-dialog.type-default .bootstrap-dialog-title { + color: #333; +} + +.bootstrap-dialog.type-info .modal-header { + background-color: #17a2b8; +} + +.bootstrap-dialog.type-primary .modal-header { + background-color: #007bff; +} + +.bootstrap-dialog.type-secondary .modal-header { + background-color: #6c757d; +} + +.bootstrap-dialog.type-success .modal-header { + background-color: #28a745; +} + +.bootstrap-dialog.type-warning .modal-header { + background-color: #ffc107; +} + +.bootstrap-dialog.type-danger .modal-header { + background-color: #dc3545; +} + +.bootstrap-dialog.type-light .modal-header { + background-color: #f8f9fa; +} + +.bootstrap-dialog.type-dark .modal-header { + background-color: #343a40; +} + +.bootstrap-dialog.size-large .bootstrap-dialog-title { + font-size: 24px; +} + +.bootstrap-dialog.size-large .bootstrap-dialog-close-button { + font-size: 30px; +} + +.bootstrap-dialog.size-large .bootstrap-dialog-message { + font-size: 18px; +} + +.bootstrap-dialog .icon-spin { + display: inline-block; + -moz-animation: spin 2s infinite linear; + -o-animation: spin 2s infinite linear; + -webkit-animation: spin 2s infinite linear; + animation: spin 2s infinite linear; +} + +.bootstrap-dialog-footer-buttons { + display: flex; +} + +@-moz-keyframes spin { + 0% { + -moz-transform: rotate(0deg); + } + 100% { + -moz-transform: rotate(359deg); + } +} +@-webkit-keyframes spin { + 0% { + -webkit-transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + } +} +@-o-keyframes spin { + 0% { + -o-transform: rotate(0deg); + } + 100% { + -o-transform: rotate(359deg); + } +} +@-ms-keyframes spin { + 0% { + -ms-transform: rotate(0deg); + } + 100% { + -ms-transform: rotate(359deg); + } +} +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(359deg); + } +} +.bootstrap-dialog-header { + display: contents; +} + +/*# sourceMappingURL=bootstrap-dialog.css.map */ + +/*# sourceMappingURL=bootstrap-dialog.css.map */ diff --git a/assets/css/selectize.bootstrap4.css b/assets/css/selectize.bootstrap4.css new file mode 100644 index 000000000..321517a7d --- /dev/null +++ b/assets/css/selectize.bootstrap4.css @@ -0,0 +1,477 @@ +.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder { + visibility: visible !important; + background: #f2f2f2 !important; + background: rgba(0, 0, 0, .06) !important; + border: 0 none !important; + box-shadow: inset 0 0 12px 4px #fff +} + +.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after { + content: "!"; + visibility: hidden +} + +.selectize-control.plugin-drag_drop .ui-sortable-helper { + box-shadow: 0 2px 5px rgba(0, 0, 0, .2) +} + +.selectize-control .dropdown-header { + position: relative; + padding: 6px .75rem; + border-bottom: 1px solid #d0d0d0; + background: #f8f8f8; + border-radius: .25rem .25rem 0 0 +} + +.selectize-control .dropdown-header-close { + position: absolute; + right: .75rem; + top: 50%; + color: #343a40; + opacity: .4; + margin-top: -12px; + line-height: 20px; + font-size: 20px !important +} + +.selectize-control .dropdown-header-close:hover { + color: #000 +} + +.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content { + display: flex +} + +.selectize-dropdown.plugin-optgroup_columns .optgroup { + border-right: 1px solid #f2f2f2; + border-top: 0 none; + flex-grow: 1; + flex-basis: 0; + min-width: 0 +} + +.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child { + border-right: 0 none +} + +.selectize-dropdown.plugin-optgroup_columns .optgroup:before { + display: none +} + +.selectize-dropdown.plugin-optgroup_columns .optgroup-header { + border-top: 0 none +} + +.selectize-control.plugin-remove_button .item { + display: inline-flex; + align-items: center; + padding-right: 0 !important +} + +.selectize-control.plugin-remove_button .item .remove { + color: inherit; + text-decoration: none; + vertical-align: middle; + display: inline-block; + padding: 1px 5px; + border-left: 1px solid #dee2e6; + border-radius: 0 2px 2px 0; + box-sizing: border-box; + margin-left: 5px +} + +.selectize-control.plugin-remove_button .item .remove:hover { + background: rgba(0, 0, 0, .05) +} + +.selectize-control.plugin-remove_button .item.active .remove { + border-left-color: rgba(0, 0, 0, 0) +} + +.selectize-control.plugin-remove_button .disabled .item .remove:hover { + background: none +} + +.selectize-control.plugin-remove_button .disabled .item .remove { + border-left-color: #fff +} + +.selectize-control.plugin-remove_button .remove-single { + position: absolute; + right: 0; + top: 0; + font-size: 23px +} + +.selectize-control { + position: relative +} + +.selectize-dropdown, .selectize-input, .selectize-input input { + color: #343a40; + font-family: inherit; + font-size: inherit; + line-height: 1.5; + font-smoothing: inherit +} + +.selectize-input, .selectize-control.single .selectize-input.input-active { + background: #fff; + cursor: text; + display: inline-block +} + +.selectize-input { + padding: .375rem .75rem; + display: inline-block; + width: 100%; + overflow: hidden; + position: relative; + z-index: 1; + box-sizing: border-box; + box-shadow: none; + border-radius: 0.25rem +} + +.selectize-control.multi .selectize-input.has-items { + padding: calc( 0.375rem - 1px - 0px) .75rem calc( 0.375rem - 1px - 3px - 0px) +} + +.selectize-input.full { + background-color: #fff +} + +.selectize-input.disabled, .selectize-input.disabled * { + cursor: default !important +} + +.selectize-input.focus { + box-shadow: inset 0 1px 2px rgba(0, 0, 0, .15) +} + +.selectize-input.dropdown-active { + border-radius: .25rem .25rem 0 0 +} + +.selectize-input>* { + vertical-align: baseline; + display: inline-block; + zoom: 1 +} + +.selectize-control.multi .selectize-input>div { + cursor: pointer; + margin: 0 3px 3px 0; + padding: 1px 5px; + background: #efefef; + color: #343a40; + border: 0px solid #dee2e6 +} + +.selectize-control.multi .selectize-input>div.active { + background: #007bff; + color: #fff; + border: 0px solid rgba(0, 0, 0, 0) +} + +.selectize-control.multi .selectize-input.disabled>div, .selectize-control.multi .selectize-input.disabled>div.active { + color: #878787; + background: #fff; + border: 0px solid #fff +} + +.selectize-input>input { + display: inline-block !important; + padding: 0 !important; + min-height: 0 !important; + max-height: none !important; + max-width: 100% !important; + margin: 0 !important; + text-indent: 0 !important; + border: 0 none !important; + background: none !important; + line-height: inherit !important; + user-select: auto !important; + box-shadow: none !important +} + +.selectize-input>input::-ms-clear { + display: none +} + +.selectize-input>input:focus { + outline: none !important +} + +.selectize-input>input[placeholder] { + box-sizing: initial +} + +.selectize-input.has-items>input { + margin: 0 4px !important +} + +.selectize-input::after { + content: " "; + display: block; + clear: left +} + +.selectize-input.dropdown-active::before { + content: " "; + display: block; + position: absolute; + background: #fff; + height: 1px; + bottom: 0; + left: 0; + right: 0 +} + +.selectize-dropdown { + position: absolute; + top: 100%; + left: 0; + width: 100%; + z-index: 10; + border: 1px solid #d0d0d0; + background: #fff; + margin: -1px 0 0 0; + border-top: 0 none; + box-sizing: border-box; + box-shadow: 0 1px 3px rgba(0, 0, 0, .1); + border-radius: 0 0 .25rem .25rem +} + +.selectize-dropdown [data-selectable] { + cursor: pointer; + overflow: hidden +} + +.selectize-dropdown [data-selectable] .highlight { + background: rgba(255, 237, 40, .4); + border-radius: 1px +} + +.selectize-dropdown .option, .selectize-dropdown .optgroup-header, .selectize-dropdown .no-results, .selectize-dropdown .create { + padding: 3px .75rem +} + +.selectize-dropdown .option, .selectize-dropdown [data-disabled], .selectize-dropdown [data-disabled] [data-selectable].option { + cursor: inherit; + opacity: .5 +} + +.selectize-dropdown [data-selectable].option { + opacity: 1; + cursor: pointer +} + +.selectize-dropdown .optgroup:first-child .optgroup-header { + border-top: 0 none +} + +.selectize-dropdown .optgroup-header { + color: #6c757d; + background: #fff; + cursor: default +} + +.selectize-dropdown .active { + background-color: #3593FB; + color: #FFF +} + +.selectize-dropdown .active.create { + color: #16181b +} + +.selectize-dropdown .create { + color: rgba(52, 58, 64, .5) +} + +.selectize-dropdown-content { + overflow-y: auto; + overflow-x: hidden; + max-height: 200px; + overflow-scrolling: touch +} + +.selectize-dropdown .spinner { + display: inline-block; + width: 30px; + height: 30px; + margin: 3px .75rem +} + +.selectize-dropdown .spinner:after { + content: " "; + display: block; + width: 24px; + height: 24px; + margin: 3px; + border-radius: 50%; + border: 5px solid #d0d0d0; + border-color: #d0d0d0 transparent #d0d0d0 transparent; + animation: lds-dual-ring 1.2s linear infinite +} + +@keyframes lds-dual-ring { + 0% { + transform: rotate(0deg) + } + 100% { + transform: rotate(360deg) + } +} + +.selectize-control.single .selectize-input, .selectize-control.single .selectize-input input { + cursor: pointer +} + +.selectize-control.single .selectize-input.input-active, .selectize-control.single .selectize-input.input-active input { + cursor: text +} + +.selectize-control.single .selectize-input:after { + content: " "; + display: block; + position: absolute; + top: 50%; + right: calc(0.75rem + 5px); + margin-top: -3px; + width: 0; + height: 0; + border-style: solid; + border-width: 5px 5px 0 5px; + border-color: #343a40 transparent transparent transparent +} + +.selectize-control.single .selectize-input.dropdown-active:after { + margin-top: -4px; + border-width: 0 5px 5px 5px; + border-color: transparent transparent #343a40 transparent +} + +.selectize-control.rtl { + text-align: right +} + +.selectize-control.rtl.single .selectize-input:after { + left: calc(0.75rem + 5px); + right: auto +} + +.selectize-control.rtl .selectize-input>input { + margin: 0 4px 0 -2px !important +} + +.selectize-control .selectize-input.disabled { + opacity: .5; + background-color: #fff +} + +.selectize-dropdown, .selectize-dropdown.form-control { + height: auto; + padding: 0; + margin: 2px 0 0 0; + z-index: 1000; + background: #fff; + border: 1px solid rgba(0, 0, 0, .15); + border-radius: .25rem; + box-shadow: 0 6px 12px rgba(0, 0, 0, .175) +} + +.selectize-dropdown .optgroup-header { + font-size: .875rem; + line-height: 1.5 +} + +.selectize-dropdown .optgroup:first-child:before { + display: none +} + +.selectize-dropdown .optgroup:before { + content: " "; + display: block; + height: 0; + margin: .5rem 0; + overflow: hidden; + border-top: 1px solid #e9ecef; + margin-left: -0.75rem; + margin-right: -0.75rem +} + +.selectize-dropdown .create { + padding-left: .75rem +} + +.selectize-dropdown-content { + padding: 5px 0 +} + +.selectize-input { + min-height: calc(1.5em + 0.75rem + 2px); + transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out +} + +@media(prefers-reduced-motion: reduce) { + .selectize-input { + transition: none + } +} + +.selectize-input.dropdown-active { + border-radius: .25rem +} + +.selectize-input.dropdown-active::before { + display: none +} + +.selectize-input.focus { + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 .2rem rgba(0, 123, 255, .25) +} + +.is-invalid .selectize-input { + border-color: #dc3545; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075) +} + +.is-invalid .selectize-input:focus { + border-color: #bd2130; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #eb8c95 +} + +.selectize-control.form-control-sm .selectize-input.has-items { + min-height: calc(1.5em + 0.5rem + 2px) !important; + height: calc(1.5em + 0.5rem + 2px) !important; + padding: .25rem .5rem !important; + font-size: .875rem; + line-height: 1.5 +} + +.selectize-control.multi .selectize-input.has-items { + padding-left: calc(0.75rem - 5px); + padding-right: calc(0.75rem - 5px) +} + +.selectize-control.multi .selectize-input>div { + border-radius: calc(0.25rem - 1px) +} + +.form-control.selectize-control { + padding: 0; + height: auto; + border: none; + background: none; + box-shadow: none; + border-radius: 0 +} + +.input-group .selectize-input { + overflow: unset; + border-radius: 0 .25rem .25rem 0 +} \ No newline at end of file From fddc03b4ef7dcc20381f28f304f51258a8ab8fa9 Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Tue, 24 Aug 2021 20:10:07 +0200 Subject: [PATCH 35/79] [QSLPrint] Bugfix for exporting ADIF and CSV when all is selected in Station Location --- application/controllers/Qslprint.php | 8 ++++---- application/models/Adif_data.php | 2 +- application/models/Logbook_model.php | 24 +++++++++++------------- application/views/qslprint/index.php | 2 ++ application/views/qslprint/qslprint.php | 2 ++ 5 files changed, 20 insertions(+), 18 deletions(-) diff --git a/application/controllers/Qslprint.php b/application/controllers/Qslprint.php index 3de67e652..5c4391e2f 100644 --- a/application/controllers/Qslprint.php +++ b/application/controllers/Qslprint.php @@ -35,8 +35,8 @@ class QSLPrint extends CI_Controller { // Set memory limit to unlimited to allow heavy usage ini_set('memory_limit', '-1'); - if ($this->uri->segment(3) == 'All') { - $station_id = NULL; + if ($this->uri->segment(3) == 'all') { + $station_id = 'All'; } else { $station_id = $this->security->xss_clean($this->uri->segment(3)); } @@ -53,8 +53,8 @@ class QSLPrint extends CI_Controller { // Set memory limit to unlimited to allow heavy usage ini_set('memory_limit', '-1'); - if ($this->uri->segment(3) == 'All') { - $station_id = NULL; + if ($this->uri->segment(3) == 'all') { + $station_id = 'All'; } else { $station_id = $this->security->xss_clean($this->uri->segment(3)); } diff --git a/application/models/Adif_data.php b/application/models/Adif_data.php index 217747290..deaa9ea4b 100644 --- a/application/models/Adif_data.php +++ b/application/models/Adif_data.php @@ -25,7 +25,7 @@ class adif_data extends CI_Model { if ($station_id == NULL) { $this->db->where($this->config->item('table_name').'.station_id', $active_station_id); - } else { + } else if ($station_id != 'All') { $this->db->where($this->config->item('table_name').'.station_id', $station_id); } diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index 886f7633b..b13f741a8 100755 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -776,23 +776,21 @@ class Logbook_model extends CI_Model { COL_SAT_MODE, COL_QSL_RCVD, COL_COMMENT, - (CASE WHEN COL_QSL_VIA != \'\' THEN COL_QSL_VIA ELSE COL_CALL END) AS COL_ROUTING, - ADIF, - ENTITY - FROM '.$this->config->item('table_name').', dxcc_prefixes, station_profile - WHERE - COL_QSL_SENT in (\'R\', \'Q\') - and (CASE WHEN COL_QSL_VIA != \'\' THEN COL_QSL_VIA ELSE COL_CALL END) like CONCAT(dxcc_prefixes.call,\'%\') - and (end is null or end > now()) - and ' . $this->config->item('table_name') . '.station_id = station_profile.station_id'; + (select adif from dxcc_prefixes where (CASE WHEN COL_QSL_VIA != \'\' THEN COL_QSL_VIA ELSE COL_CALL END) like concat(dxcc_prefixes.`call`,\'%\') order by end limit 1) as ADIF, + (select entity from dxcc_prefixes where (CASE WHEN COL_QSL_VIA != \'\' THEN COL_QSL_VIA ELSE COL_CALL END) like concat(dxcc_prefixes.`call`,\'%\') order by end limit 1) as ENTITY, + (CASE WHEN COL_QSL_VIA != \'\' THEN COL_QSL_VIA ELSE COL_CALL END) AS COL_ROUTING + FROM '.$this->config->item('table_name').' thcv + join station_profile on thcv.station_id = station_profile.station_id + WHERE + COL_QSL_SENT in (\'R\', \'Q\')'; if ($station_id2 == NULL) { - $sql .= ' and ' . $this->config->item('table_name') . '.station_id = ' . $station_id; - } else { - $sql .= ' and ' . $this->config->item('table_name') . '.station_id = ' . $station_id2; + $sql .= ' and thcv.station_id = ' . $station_id; + } else if ($station_id2 != 'All') { + $sql .= ' and thcv.station_id = ' . $station_id2; } - $sql .= ' ORDER BY adif, col_routing'; + $sql .= ' ORDER BY ADIF, COL_ROUTING'; $query = $this->db->query($sql); return $query; diff --git a/application/views/qslprint/index.php b/application/views/qslprint/index.php index dbbc9a98a..b8250c579 100644 --- a/application/views/qslprint/index.php +++ b/application/views/qslprint/index.php @@ -40,6 +40,7 @@ '. $this->lang->line('general_word_time') .' ' . $this->lang->line('gen_hamradio_mode') . ' ' . $this->lang->line('gen_hamradio_band') . ' + ' . $this->lang->line('gen_hamradio_qsl') . ' ' . $this->lang->line('general_word_qslcard_via') . ' ' . $this->lang->line('gen_hamradio_station') . ' @@ -62,6 +63,7 @@ echo ''; $timestamp = strtotime($qsl->COL_TIME_ON); echo date('H:i', $timestamp); echo ''; echo ''; echo $qsl->COL_SUBMODE==null?$qsl->COL_MODE:$qsl->COL_SUBMODE; echo ''; echo ''; if($qsl->COL_SAT_NAME != null) { echo $qsl->COL_SAT_NAME; } else { echo strtolower($qsl->COL_BAND); }; echo ''; + echo '' . $qsl->COL_QSL_VIA . ''; echo '' . $qsl->station_callsign . ''; echo ''; echo ''; diff --git a/application/views/qslprint/qslprint.php b/application/views/qslprint/qslprint.php index 7c34a9427..8c7a4bcf8 100644 --- a/application/views/qslprint/qslprint.php +++ b/application/views/qslprint/qslprint.php @@ -8,6 +8,7 @@ if ($qsos->result() != NULL) { '. $this->lang->line('general_word_time') .' ' . $this->lang->line('gen_hamradio_mode') . ' ' . $this->lang->line('gen_hamradio_band') . ' + ' . $this->lang->line('gen_hamradio_qsl') . ' ' . $this->lang->line('general_word_qslcard_via') . ' ' . $this->lang->line('gen_hamradio_station') . ' @@ -30,6 +31,7 @@ if ($qsos->result() != NULL) { echo ''; $timestamp = strtotime($qsl->COL_TIME_ON); echo date('H:i', $timestamp); echo ''; echo ''; echo $qsl->COL_SUBMODE==null?$qsl->COL_MODE:$qsl->COL_SUBMODE; echo ''; echo ''; if($qsl->COL_SAT_NAME != null) { echo $qsl->COL_SAT_NAME; } else { echo strtolower($qsl->COL_BAND); }; echo ''; + echo '' . $qsl->COL_QSL_VIA . ''; echo '' . $qsl->station_callsign . ''; echo ''; echo ''; From 6446c31cc6b535e314c19d144a1dfdc4f2a66fc2 Mon Sep 17 00:00:00 2001 From: phl0 Date: Sun, 29 Aug 2021 16:24:19 +0200 Subject: [PATCH 36/79] Improve German translation --- application/language/german/general_words_lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/language/german/general_words_lang.php b/application/language/german/general_words_lang.php index 09c616625..d48b88cc0 100644 --- a/application/language/german/general_words_lang.php +++ b/application/language/german/general_words_lang.php @@ -14,7 +14,7 @@ $lang['general_word_date'] = 'Datum'; $lang['general_word_time'] = 'Zeit'; $lang['general_word_none'] = 'None'; $lang['general_word_name'] = 'Name'; -$lang['general_word_location'] = 'Stelle'; +$lang['general_word_location'] = 'Standort'; $lang['general_word_comment'] = 'Kommentar'; $lang['general_word_general'] = 'Allgemeines'; $lang['general_word_satellite'] = 'Satellit'; From deb4d6cd53f3c2565e5f5b0604b4475884c26b1f Mon Sep 17 00:00:00 2001 From: phl0 Date: Sun, 29 Aug 2021 21:08:34 +0200 Subject: [PATCH 37/79] Implement shortcut for time input during post QSO --- assets/js/sections/qso.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/assets/js/sections/qso.js b/assets/js/sections/qso.js index 5c7083d82..0ae7aadb1 100644 --- a/assets/js/sections/qso.js +++ b/assets/js/sections/qso.js @@ -459,6 +459,18 @@ if ($('#frequency').val() == "") }); } +/* format time input shortcut */ +$('#start_time').change(function() { + var raw_time = $(this).val(); + if(raw_time.match(/^\d\[0-6]d$/)) { + raw_time = "0"+raw_time; + } + if(raw_time.match(/^[012]\d[0-5]\d$/)) { + raw_time = raw_time.substring(0,2)+":"+raw_time.substring(2,4); + $('#start_time').val(raw_time); + } +}); + /* on mode change */ $('.mode').change(function() { $.get('qso/band_to_freq/' + $('#band').val() + '/' + $('.mode').val(), function(result) { From 9bf9faec1ebae6efaad3a1a589e92fae53ee6ff7 Mon Sep 17 00:00:00 2001 From: phl0 Date: Sun, 29 Aug 2021 21:17:43 +0200 Subject: [PATCH 38/79] Also add shortcut for date input --- assets/js/sections/qso.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/assets/js/sections/qso.js b/assets/js/sections/qso.js index 0ae7aadb1..a188f8c64 100644 --- a/assets/js/sections/qso.js +++ b/assets/js/sections/qso.js @@ -459,7 +459,7 @@ if ($('#frequency').val() == "") }); } -/* format time input shortcut */ +/* time input shortcut */ $('#start_time').change(function() { var raw_time = $(this).val(); if(raw_time.match(/^\d\[0-6]d$/)) { @@ -471,6 +471,15 @@ $('#start_time').change(function() { } }); +/* date input shortcut */ +$('#start_date').change(function() { + raw_date = $(this).val(); + if(raw_date.match(/^[12]\d\d\d[01]\d[0123]\d$/)) { + raw_date = raw_date.substring(0,4)+"-"+raw_date.substring(4,6)+"-"+raw_date.substring(6,8); + $('#start_date').val(raw_date); + } +}); + /* on mode change */ $('.mode').change(function() { $.get('qso/band_to_freq/' + $('#band').val() + '/' + $('.mode').val(), function(result) { From 538fd0f285913fd2649347c3e133947dca412291 Mon Sep 17 00:00:00 2001 From: phl0 Date: Mon, 30 Aug 2021 09:03:39 +0200 Subject: [PATCH 39/79] Simplify date match regex a little ... --- assets/js/sections/qso.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/js/sections/qso.js b/assets/js/sections/qso.js index a188f8c64..59e910fd7 100644 --- a/assets/js/sections/qso.js +++ b/assets/js/sections/qso.js @@ -474,7 +474,7 @@ $('#start_time').change(function() { /* date input shortcut */ $('#start_date').change(function() { raw_date = $(this).val(); - if(raw_date.match(/^[12]\d\d\d[01]\d[0123]\d$/)) { + if(raw_date.match(/^[12]\d{3}[01]\d[0123]\d$/)) { raw_date = raw_date.substring(0,4)+"-"+raw_date.substring(4,6)+"-"+raw_date.substring(6,8); $('#start_date').val(raw_date); } From 2daf46d870a4d67c73ad3273ea67506fd6f12bb6 Mon Sep 17 00:00:00 2001 From: Charlie Jonas Date: Tue, 31 Aug 2021 18:19:19 +0100 Subject: [PATCH 40/79] Use UTC timestamps for CAT control --- application/controllers/Api.php | 4 ++++ application/controllers/Radio.php | 5 +++-- application/models/Cat.php | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/application/controllers/Api.php b/application/controllers/Api.php index 9e88e859d..b0b1a17a6 100644 --- a/application/controllers/Api.php +++ b/application/controllers/Api.php @@ -476,6 +476,10 @@ class API extends CI_Controller { die(); } + if(!isset($obj['timestamp'])) { + $obj['timestamp'] = gmdate('Y/m/d H:i:s'); + } + // Store Result to Database $this->cat->update($obj); diff --git a/application/controllers/Radio.php b/application/controllers/Radio.php index d8c958382..0b7a14e88 100755 --- a/application/controllers/Radio.php +++ b/application/controllers/Radio.php @@ -120,8 +120,9 @@ } // Calculate how old the data is in minutes - $datetime1 = new DateTime(); // Today's Date/Time - $datetime2 = new DateTime($row->newtime); + $timezone = new DateTimeZone("UTC"); + $datetime1 = new DateTime("now", $timezone); + $datetime2 = new DateTime($row->timestamp, $timezone); $interval = $datetime1->diff($datetime2); $minutes = $interval->days * 24 * 60; diff --git a/application/models/Cat.php b/application/models/Cat.php index 2f92b788c..4306cdbe3 100644 --- a/application/models/Cat.php +++ b/application/models/Cat.php @@ -102,7 +102,7 @@ function radio_status($id) { - return $this->db->query('SELECT *, CONVERT_TZ(`timestamp`, @@session.time_zone, \'+00:00\' ) as newtime FROM `cat` WHERE id = '.$id.' '); + return $this->db->query('SELECT * FROM `cat` WHERE id = '.$id.' '); } From 033971ad09a5240fc4f87d41c86f4a661921f490 Mon Sep 17 00:00:00 2001 From: Charlie Jonas Date: Tue, 31 Aug 2021 18:37:33 +0100 Subject: [PATCH 41/79] Further clarify timestamp format in comments --- application/controllers/Api.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/application/controllers/Api.php b/application/controllers/Api.php index b0b1a17a6..8857167d8 100644 --- a/application/controllers/Api.php +++ b/application/controllers/Api.php @@ -455,14 +455,18 @@ class API extends CI_Controller { } - /* ENDPOINT for Rig Control */ + /* + * ENDPOINT for Rig Control + * + * Note: timestamp should always be in UTC + */ function radio() { header('Content-type: application/json'); $this->load->model('api_model'); - //$json = '{"radio":"FT-950","frequency":14075,"mode":"SSB","timestamp":"2012/04/07 16:47"}'; + //$json = '{"radio":"FT-950","frequency":14075,"mode":"SSB","timestamp":"2012/04/07 16:47:31"}'; $this->load->model('cat'); @@ -477,7 +481,7 @@ class API extends CI_Controller { } if(!isset($obj['timestamp'])) { - $obj['timestamp'] = gmdate('Y/m/d H:i:s'); + $obj['timestamp'] = gmdate('Y/m/d H:i:s'); // in UTC } // Store Result to Database From 1ca1ab85132b2cd4456e10f8cbfc738109347ac8 Mon Sep 17 00:00:00 2001 From: Peter Goodhall Date: Wed, 1 Sep 2021 11:50:50 +0100 Subject: [PATCH 42/79] Revert "Merge pull request #1144 from CHTJonas/master" This reverts commit c67e0a92e64ae4bc2ed5dfe4d691c842afb83d9b, reversing changes made to 23ccd119b967df65cd59389986f4d1ed25d6b07f. --- application/controllers/Api.php | 12 ++---------- application/controllers/Radio.php | 5 ++--- application/models/Cat.php | 2 +- 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/application/controllers/Api.php b/application/controllers/Api.php index 8857167d8..9e88e859d 100644 --- a/application/controllers/Api.php +++ b/application/controllers/Api.php @@ -455,18 +455,14 @@ class API extends CI_Controller { } - /* - * ENDPOINT for Rig Control - * - * Note: timestamp should always be in UTC - */ + /* ENDPOINT for Rig Control */ function radio() { header('Content-type: application/json'); $this->load->model('api_model'); - //$json = '{"radio":"FT-950","frequency":14075,"mode":"SSB","timestamp":"2012/04/07 16:47:31"}'; + //$json = '{"radio":"FT-950","frequency":14075,"mode":"SSB","timestamp":"2012/04/07 16:47"}'; $this->load->model('cat'); @@ -480,10 +476,6 @@ class API extends CI_Controller { die(); } - if(!isset($obj['timestamp'])) { - $obj['timestamp'] = gmdate('Y/m/d H:i:s'); // in UTC - } - // Store Result to Database $this->cat->update($obj); diff --git a/application/controllers/Radio.php b/application/controllers/Radio.php index 0b7a14e88..d8c958382 100755 --- a/application/controllers/Radio.php +++ b/application/controllers/Radio.php @@ -120,9 +120,8 @@ } // Calculate how old the data is in minutes - $timezone = new DateTimeZone("UTC"); - $datetime1 = new DateTime("now", $timezone); - $datetime2 = new DateTime($row->timestamp, $timezone); + $datetime1 = new DateTime(); // Today's Date/Time + $datetime2 = new DateTime($row->newtime); $interval = $datetime1->diff($datetime2); $minutes = $interval->days * 24 * 60; diff --git a/application/models/Cat.php b/application/models/Cat.php index 4306cdbe3..2f92b788c 100644 --- a/application/models/Cat.php +++ b/application/models/Cat.php @@ -102,7 +102,7 @@ function radio_status($id) { - return $this->db->query('SELECT * FROM `cat` WHERE id = '.$id.' '); + return $this->db->query('SELECT *, CONVERT_TZ(`timestamp`, @@session.time_zone, \'+00:00\' ) as newtime FROM `cat` WHERE id = '.$id.' '); } From c750d04848aa22fbc748d09cf715cfa15cad96d6 Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Sat, 4 Sep 2021 09:42:46 +0200 Subject: [PATCH 43/79] [QSLPrint] Fixed marking of QSLs as sent when station location was all. --- application/controllers/Qslprint.php | 4 ++-- application/models/Qslprint_model.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/application/controllers/Qslprint.php b/application/controllers/Qslprint.php index 5c4391e2f..bc826b06b 100644 --- a/application/controllers/Qslprint.php +++ b/application/controllers/Qslprint.php @@ -115,8 +115,8 @@ class QSLPrint extends CI_Controller { function qsl_printed() { - if ($this->uri->segment(3) == 'All') { - $station_id = NULL; + if ($this->uri->segment(3) == 'all') { + $station_id = 'All'; } else { $station_id = $this->security->xss_clean($this->uri->segment(3)); } diff --git a/application/models/Qslprint_model.php b/application/models/Qslprint_model.php index b32ef8b55..23177eb3b 100644 --- a/application/models/Qslprint_model.php +++ b/application/models/Qslprint_model.php @@ -22,7 +22,7 @@ class Qslprint_model extends CI_Model { if ($station_id2 == NULL) { $this->db->where("station_id", $station_id); - } else { + } else if ($station_id2 != 'All') { $this->db->where("station_id", $station_id2); } From 0377fe1989919810fef8a1d0075cef05b2a8e7e0 Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Sun, 5 Sep 2021 16:49:53 +0200 Subject: [PATCH 44/79] [QRZ Logbook] Changed view. Moved marking of QSOs uploaded from ADIF Export to QRZ Logbook. --- application/views/adif/import.php | 37 ---------------------- application/views/qrz/export.php | 51 ++++++++++++++++++++++++++++--- 2 files changed, 47 insertions(+), 41 deletions(-) diff --git a/application/views/adif/import.php b/application/views/adif/import.php index 7405abdf4..33b97b8e7 100644 --- a/application/views/adif/import.php +++ b/application/views/adif/import.php @@ -14,9 +14,6 @@ -
@@ -186,40 +183,6 @@ - -
- - -
- -

Warning If a date range is not selected then all QSOs will be marked!

-

From date:

-
-
- -
-
-
-
-
-

To date:

-
-
- -
-
-
-
-
-
- -
-
diff --git a/application/views/qrz/export.php b/application/views/qrz/export.php index 7567429c8..693dab4d4 100644 --- a/application/views/qrz/export.php +++ b/application/views/qrz/export.php @@ -5,15 +5,24 @@
- Upload Logbook + +
- +
+

Here you can see and upload all QSOs which have not been previously uploaded to a QRZ logbook.

You need to set a QRZ Logbook API key in your station profile. Only station profiles with an API Key set are displayed.

WarningThis might take a while as QSO uploads are processed sequentially.

- + result()) { echo ' @@ -48,5 +57,39 @@ ?>
-
+
+ +
+ +

Warning If a date range is not selected then all QSOs will be marked!

+

From date:

+
+
+ +
+
+
+
+
+

To date:

+
+
+ +
+
+
+
+
+
+ +
+
+
+
+ From f4b29bd6012b4caeacefd1c436dea75117bd40ff Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Sun, 5 Sep 2021 17:11:58 +0200 Subject: [PATCH 45/79] [QRZ Logbook] Updated the rest of the code to work with the new placement for the marking of QSOs. --- application/controllers/Adif.php | 20 ------------- application/controllers/Qrz.php | 30 ++++++++++++++++---- application/views/qrz/export.php | 6 ++-- application/views/{adif => qrz}/mark_qrz.php | 0 4 files changed, 28 insertions(+), 28 deletions(-) rename application/views/{adif => qrz}/mark_qrz.php (100%) diff --git a/application/controllers/Adif.php b/application/controllers/Adif.php index 3864f0be5..eb789d6da 100644 --- a/application/controllers/Adif.php +++ b/application/controllers/Adif.php @@ -121,26 +121,6 @@ class adif extends CI_Controller { $this->load->view('adif/mark_lotw', $data); } - public function mark_qrz() { - // Set memory limit to unlimited to allow heavy usage - ini_set('memory_limit', '-1'); - - $station_id = $this->security->xss_clean($this->input->post('station_profile')); - - $this->load->model('adif_data'); - - $data['qsos'] = $this->adif_data->export_custom($this->input->post('from'), $this->input->post('to'), $station_id); - - $this->load->model('logbook_model'); - - foreach ($data['qsos']->result() as $qso) - { - $this->logbook_model->mark_qrz_qsos_sent($qso->COL_PRIMARY_KEY); - } - - $this->load->view('adif/mark_qrz', $data); - } - public function export_lotw() { // Set memory limit to unlimited to allow heavy usage diff --git a/application/controllers/Qrz.php b/application/controllers/Qrz.php index 29e1e856e..c663d6ff2 100644 --- a/application/controllers/Qrz.php +++ b/application/controllers/Qrz.php @@ -108,11 +108,8 @@ class Qrz extends CI_Controller { $data['page_title'] = "QRZ Logbook"; + $data['station_profiles'] = $this->stations->all(); $data['station_profile'] = $this->stations->stations_with_qrz_api_key(); - $active_station_id = $this->stations->find_active(); - $station_profile = $this->stations->profile($active_station_id); - - $data['active_station_info'] = $station_profile->row(); $this->load->view('interface_assets/header', $data); $this->load->view('qrz/export'); @@ -125,6 +122,7 @@ class Qrz extends CI_Controller { public function upload_station() { $this->setOptions(); $this->load->model('stations'); + $postData = $this->input->post(); $this->load->model('logbook_model'); @@ -148,4 +146,26 @@ class Qrz extends CI_Controller { echo json_encode($data); } } -} \ No newline at end of file + + public function mark_qrz() { + // Set memory limit to unlimited to allow heavy usage + ini_set('memory_limit', '-1'); + + $station_id = $this->security->xss_clean($this->input->post('station_profile')); + + $this->load->model('adif_data'); + + $data['qsos'] = $this->adif_data->export_custom($this->input->post('from'), $this->input->post('to'), $station_id); + + $this->load->model('logbook_model'); + + foreach ($data['qsos']->result() as $qso) + { + $this->logbook_model->mark_qrz_qsos_sent($qso->COL_PRIMARY_KEY); + } + + $this->load->view('interface_assets/header', $data); + $this->load->view('qrz/mark_qrz', $data); + $this->load->view('interface_assets/footer'); + } +} diff --git a/application/views/qrz/export.php b/application/views/qrz/export.php index 693dab4d4..36ac306c5 100644 --- a/application/views/qrz/export.php +++ b/application/views/qrz/export.php @@ -48,7 +48,7 @@ echo ''; echo ''; } - echo ''; + echo ''; } else { @@ -60,9 +60,9 @@
- - result() as $station) { ?> + result() as $station) { ?> diff --git a/application/views/adif/mark_qrz.php b/application/views/qrz/mark_qrz.php similarity index 100% rename from application/views/adif/mark_qrz.php rename to application/views/qrz/mark_qrz.php From b8a106d18796fc2cba450484b9fe8fe1b6aedc41 Mon Sep 17 00:00:00 2001 From: Peter Goodhall Date: Tue, 7 Sep 2021 17:01:55 +0100 Subject: [PATCH 46/79] [LoTW] Removing the option to import new qsos from LoTW Removing the option to import new qsos from LoTW this is because LoTW keep changing how they output and its not predictable. --- application/views/lotw/import.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/views/lotw/import.php b/application/views/lotw/import.php index ceda94e46..7efd04068 100644 --- a/application/views/lotw/import.php +++ b/application/views/lotw/import.php @@ -41,7 +41,7 @@

-
+