Merge branch 'dev' of github.com:int2001/Cloudlog into dev
这个提交包含在:
当前提交
f7b35a38b1
共有 19 个文件被更改,包括 120 次插入 和 15 次删除
|
|
@ -21,7 +21,7 @@ $config['migration_enabled'] = TRUE;
|
|||
| be upgraded / downgraded to.
|
||||
|
|
||||
*/
|
||||
$config['migration_version'] = 125;
|
||||
$config['migration_version'] = 126;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -497,7 +497,7 @@ class Lotw extends CI_Controller {
|
|||
$record['qsl_rcvd'] = $config['lotw_rcvd_mark'];
|
||||
}
|
||||
|
||||
$status = $this->logbook_model->import_check($time_on, $record['call'], $record['band'],$record['station_callsign']);
|
||||
$status = $this->logbook_model->import_check($time_on, $record['call'], $record['band'], $record['mode'], $record['station_callsign']);
|
||||
$skipNewQso = $this->input->post('importMissing'); // If import missing was checked
|
||||
|
||||
if($status[0] == "No Match" && $skipNewQso != NULL) {
|
||||
|
|
|
|||
|
|
@ -84,6 +84,7 @@ class User extends CI_Controller {
|
|||
$data['user_show_profile_image'] = $this->input->post('user_show_profile_image');
|
||||
$data['user_previous_qsl_type'] = $this->input->post('user_previous_qsl_type');
|
||||
$data['user_amsat_status_upload'] = $this->input->post('user_amsat_status_upload');
|
||||
$data['user_mastodon_url'] = $this->input->post('user_mastodon_url');
|
||||
$this->load->view('user/add', $data);
|
||||
} else {
|
||||
$this->load->view('user/add', $data);
|
||||
|
|
@ -116,7 +117,8 @@ class User extends CI_Controller {
|
|||
$this->input->post('user_column5'),
|
||||
$this->input->post('user_show_profile_image'),
|
||||
$this->input->post('user_previous_qsl_type'),
|
||||
$this->input->post('user_amsat_status_upload'))) {
|
||||
$this->input->post('user_amsat_status_upload'),
|
||||
$this->input->post('user_mastodon_url'))) {
|
||||
// Check for errors
|
||||
case EUSERNAMEEXISTS:
|
||||
$data['username_error'] = 'Username <b>'.$this->input->post('user_name').'</b> already in use!';
|
||||
|
|
@ -159,6 +161,7 @@ class User extends CI_Controller {
|
|||
$data['user_show_profile_image'] = $this->input->post('user_show_profile_image');
|
||||
$data['user_previous_qsl_type'] = $this->input->post('user_previous_qsl_type');
|
||||
$data['user_amsat_status_upload'] = $this->input->post('user_amsat_status_upload');
|
||||
$data['user_mastodon_url'] = $this->input->post('user_mastodon_url');
|
||||
$this->load->view('user/add', $data);
|
||||
$this->load->view('interface_assets/footer');
|
||||
}
|
||||
|
|
@ -366,6 +369,12 @@ class User extends CI_Controller {
|
|||
$data['user_amsat_status_upload'] = $q->user_amsat_status_upload;
|
||||
}
|
||||
|
||||
if($this->input->post('user_mastodon_url')) {
|
||||
$data['user_mastodon_url'] = $this->input->post('user_mastodon_url', false);
|
||||
} else {
|
||||
$data['user_mastodon_url'] = $q->user_mastodon_url;
|
||||
}
|
||||
|
||||
if($this->input->post('user_column1')) {
|
||||
$data['user_column1'] = $this->input->post('user_column1', true);
|
||||
} else {
|
||||
|
|
@ -451,6 +460,7 @@ class User extends CI_Controller {
|
|||
$data['user_show_profile_image'] = $this->input->post('user_show_profile_image');
|
||||
$data['user_previous_qsl_type'] = $this->input->post('user_previous_qsl_type');
|
||||
$data['user_amsat_status_upload'] = $this->input->post('user_amsat_status_upload');
|
||||
$data['user_mastodon_url'] = $this->input->post('user_mastodon_url');
|
||||
$this->load->view('user/edit');
|
||||
$this->load->view('interface_assets/footer');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -89,3 +89,6 @@ $lang['account_forgot_your_password'] = 'Forgot your password?';
|
|||
|
||||
$lang['account_login_to_cloudlog'] = 'Login to Cloudlog';
|
||||
$lang['account_login'] = 'Login';
|
||||
|
||||
$lang['account_mastodon'] = 'Mastodonserver';
|
||||
$lang['account_user_mastodon'] = 'URL of Mastodonserver';
|
||||
|
|
|
|||
|
|
@ -89,3 +89,6 @@ $lang['account_forgot_your_password'] = 'Salasana unohtunut?';
|
|||
|
||||
$lang['account_login_to_cloudlog'] = 'Kirjaudu Cloudlogiin';
|
||||
$lang['account_login'] = 'Kirjaudu';
|
||||
|
||||
$lang['account_mastodon'] = 'Mastodonserver';
|
||||
$lang['account_user_mastodon'] = 'URL of Mastodonserver';
|
||||
|
|
|
|||
|
|
@ -89,3 +89,6 @@ $lang['account_forgot_your_password'] = 'Passwort vergessen?';
|
|||
|
||||
$lang['account_login_to_cloudlog'] = 'Anmeldung bei Cloudlog';
|
||||
$lang['account_login'] = 'Anmeldung';
|
||||
|
||||
$lang['account_mastodon'] = 'Mastodonserver';
|
||||
$lang['account_user_mastodon'] = 'URL des Mastodonservers';
|
||||
|
|
|
|||
|
|
@ -89,3 +89,6 @@ $lang['account_forgot_your_password'] = 'Забыли пароль?';
|
|||
|
||||
$lang['account_login_to_cloudlog'] = 'Вход в Cloudlog';
|
||||
$lang['account_login'] = 'Вход';
|
||||
|
||||
$lang['account_mastodon'] = 'Mastodonserver';
|
||||
$lang['account_user_mastodon'] = 'URL of Mastodonserver';
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ $lang['general_mark_qsl_rx_bureau'] = 'Отметить QSL полученной
|
|||
$lang['general_mark_qsl_rx_direct'] = 'Отметить QSL полученной (напрямую)';
|
||||
$lang['general_mark_qsl_tx_bureau'] = 'Отметить QSL отправленной (через бюро)';
|
||||
$lang['general_mark_qsl_tx_direct'] = 'Отметить QSL отправленой (напрямую)';
|
||||
$lang['general_mark_qsl_rx_electronic'] = 'Отметить QSL полученной (электронно)';
|
||||
|
||||
$lang['general_delete_qso'] = 'Удалить QSO';
|
||||
|
||||
|
|
@ -111,6 +112,7 @@ $lang['gen_hamradio_iota'] = 'IOTA';
|
|||
$lang['gen_hamradio_sota'] = 'SOTA';
|
||||
$lang['gen_hamradio_pota'] = 'POTA';
|
||||
$lang['gen_hamradio_gridsquare'] = 'Квадрат';
|
||||
$lang['gen_hamradio_distance'] = 'Дистанция';
|
||||
$lang['gen_hamradio_operator'] = 'Оператор';
|
||||
|
||||
$lang['gen_hamradio_sig'] = 'Sig';
|
||||
|
|
|
|||
|
|
@ -2,14 +2,25 @@
|
|||
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
|
||||
|
||||
$lang['gridsquares_gridsquare_map'] = 'Выбор диапазона';
|
||||
$lang['gridsquares_gridsquare_map'] = 'Карта квадратов';
|
||||
|
||||
$lang['gridsquares_confirmed_is_green'] = 'Подтверждённые окрашены зелёным';
|
||||
$lang['gridsquares_worked_but_not_confirmed_is_red'] = 'Сработанные, но не подтверждённые — красным';
|
||||
$lang['gridsquares_worked_but_not_confirmed_is_red'] = 'Сработанные, но не подтверждённые окрвшены красным';
|
||||
$lang['gridsquares_activated_but_not_confirmed_is_red'] = 'Активированные, но не подтверждённые окрашены красным';
|
||||
|
||||
$lang['gridsquares_this_map_does_not_include_satellite_internet_or_repeater_qsos'] = 'На этой карте не отображены QSO, проведённые через спутники, интернет или репитеры';
|
||||
|
||||
$lang['gridsquares_grid_squares'] = 'квадрат(/-а/-ов)';
|
||||
$lang['gridsquares_total_count'] = 'Всего';
|
||||
|
||||
$lang['gridsquares_band'] = 'Диапазон';
|
||||
$lang['gridsquares_mode'] = 'Вид излучения';
|
||||
$lang['gridsquares_sat'] = 'Спутник';
|
||||
$lang['gridsquares_confirmation'] = 'Подтверждение';
|
||||
|
||||
$lang['gridsquares_button_plot'] = 'Отобразить';
|
||||
|
||||
$lang['gridsquares_gridsquares'] = 'Квадраты';
|
||||
$lang['gridsquares_gridsquares_confirmed'] = 'Подтверждёно квадратов';
|
||||
$lang['gridsquares_gridsquares_not_confirmed'] = 'Неподтверждёно квадратов';
|
||||
$lang['gridsquares_gridsquares_total_worked'] = 'Всего сработано квадратов';
|
||||
|
|
@ -21,6 +21,7 @@ $lang['menu_notes'] = 'Заметки';
|
|||
$lang['menu_analytics'] = 'Аналитика';
|
||||
$lang['menu_statistics'] = 'Статистика';
|
||||
$lang['menu_gridsquares'] = 'Квадраты';
|
||||
$lang['menu_gridmap'] = 'Карта квадратов';
|
||||
$lang['menu_activated_gridsquares'] = 'Активированные квадраты';
|
||||
$lang['menu_gridsquare_activators'] = 'Активаторы квадратов';
|
||||
$lang['menu_distances_worked'] = 'Сработанные дистанции';
|
||||
|
|
@ -70,6 +71,7 @@ $lang['menu_sota_csv_export'] = 'Экспорт SOTA CSV';
|
|||
$lang['menu_cabrillo_export'] = 'Экспорт Cabrillo';
|
||||
$lang['menu_oqrs_requests'] = 'Запросы OQRS';
|
||||
$lang['menu_print_requested_qsls'] = 'Распечатать запрошенные QSL';
|
||||
$lang['menu_labels'] = 'Наклейки';
|
||||
$lang['menu_logbook_of_the_world'] = 'Logbook of the World';
|
||||
$lang['menu_eqsl_import_export'] = 'Импорт / экспорт eQSL';
|
||||
$lang['menu_qrz_logbook'] = 'QRZ Logbook';
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ $lang['options_radio_timeout_warning_changed_to'] = 'Значение тайма
|
|||
$lang['options_email'] = 'Емэйл';
|
||||
$lang['options_outgoing_protocol'] = 'Протокол отправки емэйл';
|
||||
$lang['options_smtp_encryption'] = 'Шифрование SMTP';
|
||||
$lang['options_email_address'] = 'Адрес электронной почты';
|
||||
$lang['options_email_sender_name'] = 'Имя отправителя';
|
||||
$lang['options_smtp_host'] = 'SMTP хост';
|
||||
$lang['options_smtp_port'] = 'SMTP порт';
|
||||
$lang['options_smtp_username'] = 'SMTP логин';
|
||||
|
|
@ -40,6 +42,8 @@ $lang['options_crlf'] = 'CRLF';
|
|||
$lang['options_newline'] = 'Newline';
|
||||
$lang['options_outgoing_email_protocol_changed_to'] = 'Протокол отправки емэйл изменён на ';
|
||||
$lang['options_smtp_encryption_changed_to'] = 'Шифрование SMTP изменено на ';
|
||||
$lang['options_email_address_changed_to'] = 'Адрес электронной почты изменён на ';
|
||||
$lang['options_email_sender_name_changed_to'] = 'Имя отправителя изменено на ';
|
||||
$lang['options_smtp_host_changed_to'] = 'SMTP хост изменён на ';
|
||||
$lang['options_smtp_port_changed_to'] = 'SMTP порт изменён на ';
|
||||
$lang['options_smtp_username_changed_to'] = 'SMTP логин изменён на ';
|
||||
|
|
|
|||
|
|
@ -156,14 +156,14 @@ class EqslImporter
|
|||
$record['qsl_sent'] = $config['eqsl_rcvd_mark'];
|
||||
}
|
||||
|
||||
$status = $this->CI->logbook_model->import_check($time_on, $record['call'], $record['band'],$station_callsign);
|
||||
$status = $this->CI->logbook_model->import_check($time_on, $record['call'], $record['band'], $record['mode'],$station_callsign);
|
||||
$qsoid = 0;
|
||||
if ($status[0] == "Found") {
|
||||
$qsoid = $status[1];
|
||||
$dupe = $this->CI->eqslmethods_model->eqsl_dupe_check($time_on, $record['call'], $record['band'], $config['eqsl_rcvd_mark'],$station_callsign);
|
||||
$dupe = $this->CI->eqslmethods_model->eqsl_dupe_check($time_on, $record['call'], $record['band'], $record['mode'],$config['eqsl_rcvd_mark'],$station_callsign);
|
||||
if ($dupe == false) {
|
||||
$updated += 1;
|
||||
$eqsl_status = $this->CI->eqslmethods_model->eqsl_update($time_on, $record['call'], $record['band'], $config['eqsl_rcvd_mark'],$station_callsign);
|
||||
$eqsl_status = $this->CI->eqslmethods_model->eqsl_update($time_on, $record['call'], $record['band'], $record['mode'], $config['eqsl_rcvd_mark'],$station_callsign);
|
||||
} else {
|
||||
$dupes += 1;
|
||||
$eqsl_status = "Already received an eQSL for this QSO.";
|
||||
|
|
|
|||
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Class Migration_mastodon_url
|
||||
*
|
||||
* Creates a varchar column for the Mastodon-URL of the User
|
||||
*/
|
||||
|
||||
class Migration_mastodon_url extends CI_Migration {
|
||||
|
||||
public function up()
|
||||
{
|
||||
if (!$this->db->field_exists('user_mastodon_url', 'users')) {
|
||||
$fields = array(
|
||||
'user_mastodon_url varchar(32) default NULL',
|
||||
);
|
||||
$this->dbforge->add_column('users', $fields, 'user_column5');
|
||||
}
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
$this->dbforge->drop_column('users', 'user_mastodon_url');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
@ -156,7 +156,7 @@ class Eqslmethods_model extends CI_Model {
|
|||
// Update a QSO with eQSL QSL info
|
||||
// We could also probably use this use this: http://eqsl.cc/qslcard/VerifyQSO.txt
|
||||
// http://www.eqsl.cc/qslcard/ImportADIF.txt
|
||||
function eqsl_update($datetime, $callsign, $band, $qsl_status,$station_callsign) {
|
||||
function eqsl_update($datetime, $callsign, $band, $mode, $qsl_status,$station_callsign) {
|
||||
$data = array(
|
||||
'COL_EQSL_QSLRDATE' => date('Y-m-d H:i:s'), // eQSL doesn't give us a date, so let's use current
|
||||
'COL_EQSL_QSL_RCVD' => $qsl_status
|
||||
|
|
@ -167,6 +167,7 @@ class Eqslmethods_model extends CI_Model {
|
|||
$this->db->where('COL_CALL', $callsign);
|
||||
$this->db->where('COL_STATION_CALLSIGN', $station_callsign);
|
||||
$this->db->where('COL_BAND', $band);
|
||||
$this->db->where('COL_MODE', $mode);
|
||||
|
||||
$this->db->update($this->config->item('table_name'), $data);
|
||||
|
||||
|
|
@ -174,12 +175,13 @@ class Eqslmethods_model extends CI_Model {
|
|||
}
|
||||
|
||||
// Determine if we've already received an eQSL for this QSO
|
||||
function eqsl_dupe_check($datetime, $callsign, $band, $qsl_status,$station_callsign) {
|
||||
function eqsl_dupe_check($datetime, $callsign, $band, $mode, $qsl_status,$station_callsign) {
|
||||
$this->db->select('COL_EQSL_QSLRDATE');
|
||||
$this->db->where('COL_TIME_ON >= DATE_ADD(DATE_FORMAT("'.$datetime.'", \'%Y-%m-%d %H:%i\' ), INTERVAL -15 MINUTE )');
|
||||
$this->db->where('COL_TIME_ON <= DATE_ADD(DATE_FORMAT("'.$datetime.'", \'%Y-%m-%d %H:%i\' ), INTERVAL 15 MINUTE )');
|
||||
$this->db->where('COL_CALL', $callsign);
|
||||
$this->db->where('COL_BAND', $band);
|
||||
$this->db->where('COL_MODE', $mode);
|
||||
$this->db->where('COL_STATION_CALLSIGN', $station_callsign);
|
||||
$this->db->where('COL_EQSL_QSL_RCVD', $qsl_status);
|
||||
$this->db->limit(1);
|
||||
|
|
|
|||
|
|
@ -2469,7 +2469,7 @@ class Logbook_model extends CI_Model {
|
|||
}
|
||||
|
||||
/* Used to check if the qso is already in the database */
|
||||
function import_check($datetime, $callsign, $band,$station_callsign) {
|
||||
function import_check($datetime, $callsign, $band, $mode, $station_callsign) {
|
||||
|
||||
$this->db->select('COL_PRIMARY_KEY, COL_TIME_ON, COL_CALL, COL_BAND');
|
||||
$this->db->where('COL_TIME_ON >= DATE_ADD(DATE_FORMAT("'.$datetime.'", \'%Y-%m-%d %H:%i\' ), INTERVAL -15 MINUTE )');
|
||||
|
|
@ -2477,6 +2477,7 @@ class Logbook_model extends CI_Model {
|
|||
$this->db->where('COL_CALL', $callsign);
|
||||
$this->db->where('COL_STATION_CALLSIGN', $station_callsign);
|
||||
$this->db->where('COL_BAND', $band);
|
||||
$this->db->where('COL_MODE', $mode);
|
||||
|
||||
$query = $this->db->get($this->config->item('table_name'));
|
||||
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ class User_Model extends CI_Model {
|
|||
function add($username, $password, $email, $type, $firstname, $lastname, $callsign, $locator, $timezone,
|
||||
$measurement, $user_date_format, $user_stylesheet, $user_qth_lookup, $user_sota_lookup, $user_wwff_lookup,
|
||||
$user_pota_lookup, $user_show_notes, $user_column1, $user_column2, $user_column3, $user_column4, $user_column5,
|
||||
$user_show_profile_image, $user_previous_qsl_type, $user_amsat_status_upload) {
|
||||
$user_show_profile_image, $user_previous_qsl_type, $user_amsat_status_upload, $user_mastodon_url) {
|
||||
// Check that the user isn't already used
|
||||
if(!$this->exists($username)) {
|
||||
$data = array(
|
||||
|
|
@ -152,6 +152,7 @@ class User_Model extends CI_Model {
|
|||
'user_show_profile_image' => xss_clean($user_show_profile_image),
|
||||
'user_previous_qsl_type' => xss_clean($user_previous_qsl_type),
|
||||
'user_amsat_status_upload' => xss_clean($user_amsat_status_upload),
|
||||
'user_mastodon_url' => xss_clean($user_mastodon_url),
|
||||
);
|
||||
|
||||
// Check the password is valid
|
||||
|
|
@ -208,6 +209,7 @@ class User_Model extends CI_Model {
|
|||
'user_show_profile_image' => xss_clean($fields['user_show_profile_image']),
|
||||
'user_previous_qsl_type' => xss_clean($fields['user_previous_qsl_type']),
|
||||
'user_amsat_status_upload' => xss_clean($fields['user_amsat_status_upload']),
|
||||
'user_mastodon_url' => xss_clean($fields['user_mastodon_url']),
|
||||
);
|
||||
|
||||
// Check to see if the user is allowed to change user levels
|
||||
|
|
@ -328,6 +330,7 @@ class User_Model extends CI_Model {
|
|||
'user_column5' => isset($u->row()->user_column5) ? $u->row()->user_column5: 'Country',
|
||||
'user_previous_qsl_type' => isset($u->row()->user_previous_qsl_type) ? $u->row()->user_previous_qsl_type: 0,
|
||||
'user_amsat_status_upload' => isset($u->row()->user_amsat_status_upload) ? $u->row()->user_amsat_status_upload: 0,
|
||||
'user_mastodon_url' => $u->row()->user_mastodon_url,
|
||||
'active_station_logbook' => $u->row()->active_station_logbook,
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -514,6 +514,20 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<?php echo lang('account_mastodon'); ?>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="form-group">
|
||||
<label><?php echo lang('account_user_mastodon'); ?></label>
|
||||
<input class="form-control" type="text" name="user_mastodon_url" value="<?php if(isset($user_mastodon_url)) { echo $user_mastodon_url; } ?>" />
|
||||
<div class="small form-text text-muted">Main-URL of your Mastodonserver. f.ex. https://radiosocial.de</div></td>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="hidden" name="id" value="<?php echo $this->uri->segment(3); ?>" />
|
||||
|
|
|
|||
|
|
@ -512,7 +512,20 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<?php echo lang('account_mastodon'); ?>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="form-group">
|
||||
<label><?php echo lang('account_user_mastodon'); ?></label>
|
||||
<input class="form-control" type="text" name="user_mastodon_url" value="<?php if(isset($user_mastodon_url)) { echo $user_mastodon_url; } ?>" />
|
||||
<div class="small form-text text-muted">Main-URL of your Mastodonserver. f.ex. https://radiosocial.de</div></td>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="hidden" name="id" value="<?php echo $this->uri->segment(3); ?>" />
|
||||
|
|
|
|||
|
|
@ -407,6 +407,7 @@
|
|||
?>
|
||||
|
||||
<div style="display: inline-block;"><a class="btn btn-primary twitter-share-button" target="_blank" href="https://twitter.com/intent/tweet?text=<?php echo $twitter_string; ?>"><i class="fab fa-twitter"></i> Tweet</a></div>
|
||||
<?php if($this->session->userdata('user_mastodon_url') != null) { echo '<div style="display: inline-block;"><a class="btn btn-primary twitter-share-button" target="_blank" href="'.$this->session->userdata('user_mastodon_url').'/share?text='.$twitter_string.'"><i class="fab fa-mastodon"></i> Toot</a></div>'; } ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
正在加载…
在新工单中引用