Merge branch 'dev' into logbook_map
这个提交包含在:
当前提交
24dbe6f6f0
共有 9 个文件被更改,包括 202 次插入 和 2 次删除
|
|
@ -22,7 +22,7 @@ $config['migration_enabled'] = TRUE;
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$config['migration_version'] = 137;
|
$config['migration_version'] = 138;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class User_Options extends CI_Controller {
|
||||||
|
|
||||||
|
function __construct() {
|
||||||
|
parent::__construct();
|
||||||
|
$this->load->model('user_model');
|
||||||
|
$this->load->model('user_options_model');
|
||||||
|
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
|
||||||
|
}
|
||||||
|
|
||||||
|
public function add_edit_fav() {
|
||||||
|
$obj = json_decode(file_get_contents("php://input"), true);
|
||||||
|
foreach($obj as $option_key => $option_value) {
|
||||||
|
$obj[$option_key]=$this->security->xss_clean($option_value);
|
||||||
|
}
|
||||||
|
if ($obj['sat_name'] ?? '' != '') {
|
||||||
|
$option_name=$obj['sat_name'].'/'.$obj['mode'];
|
||||||
|
} else {
|
||||||
|
$option_name=$obj['band'].'/'.$obj['mode'];
|
||||||
|
}
|
||||||
|
$this->user_options_model->set_option('Favourite',$option_name, $obj);
|
||||||
|
$jsonout['success']=1;
|
||||||
|
header('Content-Type: application/json');
|
||||||
|
echo json_encode($jsonout);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_fav() {
|
||||||
|
$result=$this->user_options_model->get_options('Favourite');
|
||||||
|
$jsonout=[];
|
||||||
|
foreach($result->result() as $options) {
|
||||||
|
$jsonout[$options->option_name][$options->option_key]=$options->option_value;
|
||||||
|
}
|
||||||
|
header('Content-Type: application/json');
|
||||||
|
echo json_encode($jsonout);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function del_fav() {
|
||||||
|
$result=$this->user_options_model->get_options('Favourite');
|
||||||
|
$obj = json_decode(file_get_contents("php://input"), true);
|
||||||
|
if ($obj['option_name'] ?? '' != '') {
|
||||||
|
$option_name=$this->security->xss_clean($obj['option_name']);
|
||||||
|
$this->user_options_model->del_option('Favourite',$option_name);
|
||||||
|
}
|
||||||
|
$jsonout['success']=1;
|
||||||
|
header('Content-Type: application/json');
|
||||||
|
echo json_encode($jsonout);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
@ -32,3 +32,4 @@ $lang['qso_btn_edit_qso'] = 'Edit QSO';
|
||||||
// QSO Details
|
// QSO Details
|
||||||
|
|
||||||
$lang['qso_details'] = 'QSO Details';
|
$lang['qso_details'] = 'QSO Details';
|
||||||
|
$lang['fav_add'] = 'Add Band/Mode to Favs';
|
||||||
|
|
|
||||||
|
|
@ -32,3 +32,5 @@ $lang['qso_btn_edit_qso'] = 'Editiere QSO';
|
||||||
// QSO Details
|
// QSO Details
|
||||||
|
|
||||||
$lang['qso_details'] = 'QSO Details';
|
$lang['qso_details'] = 'QSO Details';
|
||||||
|
|
||||||
|
$lang['fav_add'] = 'Band/Mode zu Favoriten hinzufügen';
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class Migration_user_options_table extends CI_Migration {
|
||||||
|
|
||||||
|
public function up() {
|
||||||
|
if (!$this->db->table_exists('user_options')) {
|
||||||
|
$this->db->query("CREATE TABLE `user_options` ( `user_id` int(11) NOT NULL, `option_type` varchar(45) NOT NULL, `option_name` varchar(45) NOT NULL, `option_key` varchar(45) NOT NULL, `option_value` varchar(45) DEFAULT NULL, PRIMARY KEY (`user_id`,`option_type`,`option_key`,`option_name`))");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(){
|
||||||
|
if ($this->db->table_exists('user_options')) {
|
||||||
|
$this->dbforge->drop_table('user_options');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class User_options_model extends CI_Model {
|
||||||
|
|
||||||
|
public function options($option_type) {
|
||||||
|
$this->db->where('user_id', $this->session->userdata('user_id'));
|
||||||
|
$this->db->where('option_type', $option_type);
|
||||||
|
return $this->db->get('user_options');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function set_option($option_type, $option_name, $option_array) {
|
||||||
|
$uid=$this->session->userdata('user_id');
|
||||||
|
$sql='insert into user_options (user_id,option_type,option_name,option_key,option_value) values (?,?,?,?,?) ON DUPLICATE KEY UPDATE option_value=?';
|
||||||
|
foreach($option_array as $option_key => $option_value) {
|
||||||
|
$query = $this->db->query($sql, array($uid, $option_type, $option_name, $option_key, $option_value, $option_value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_options($option_type) {
|
||||||
|
$uid=$this->session->userdata('user_id');
|
||||||
|
$sql='select option_name,option_key,option_value from user_options where user_id=? and option_type=?';
|
||||||
|
return $this->db->query($sql, array($uid, $option_type));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function del_option($option_type, $option_name) {
|
||||||
|
$uid=$this->session->userdata('user_id');
|
||||||
|
$sql='delete from user_options where user_id=? and option_type=? and option_name=?';
|
||||||
|
return $this->db->query($sql, array($uid, $option_type,$option_name));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
@ -34,7 +34,17 @@
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" id="qsl-tab" data-toggle="tab" href="#qsl" role="tab" aria-controls="qsl" aria-selected="false"><?php echo lang('gen_hamradio_qsl'); ?></a>
|
<a class="nav-link" id="qsl-tab" data-toggle="tab" href="#qsl" role="tab" aria-controls="qsl" aria-selected="false"><?php echo lang('gen_hamradio_qsl'); ?></a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" id="fav_item" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><i class="fa fa-star"></i></a>
|
||||||
|
<div class="dropdown-menu">
|
||||||
|
<a class="dropdown-item" href="#" id="fav_add"><?php echo lang('fav_add'); ?></a>
|
||||||
|
<div class="dropdown-divider"></div>
|
||||||
|
<div id="fav_menu"></div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
|
|
||||||
|
|
@ -520,4 +520,11 @@ div#station_logbooks_linked_table_paginate {
|
||||||
#advancedmap {
|
#advancedmap {
|
||||||
height: calc(100vh - 280px) !important;
|
height: calc(100vh - 280px) !important;
|
||||||
max-height: 1000px !important;
|
max-height: 1000px !important;
|
||||||
|
|
||||||
|
.lotw-cert-list table {
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.qso_panel a i.fa.fa-star:hover {
|
||||||
|
color: #FFD700 !important;
|
||||||
}
|
}
|
||||||
|
|
@ -1,5 +1,81 @@
|
||||||
$( document ).ready(function() {
|
$( document ).ready(function() {
|
||||||
|
|
||||||
|
var favs={};
|
||||||
|
get_fav();
|
||||||
|
|
||||||
|
$('#fav_add').click(function (event) {
|
||||||
|
save_fav();
|
||||||
|
});
|
||||||
|
|
||||||
|
$(document).on("click", "#fav_del", function (event) {
|
||||||
|
del_fav($(this).attr('name'));
|
||||||
|
});
|
||||||
|
|
||||||
|
$(document).on("click", "#fav_recall", function (event) {
|
||||||
|
$('#sat_name').val(favs[this.innerText].sat_name);
|
||||||
|
$('#sat_mode').val(favs[this.innerText].sat_mode);
|
||||||
|
$('#band_rx').val(favs[this.innerText].band_rx);
|
||||||
|
$('#band').val(favs[this.innerText].band);
|
||||||
|
$('#frequency_rx').val(favs[this.innerText].frequency_rx);
|
||||||
|
$('#frequency').val(favs[this.innerText].frequency);
|
||||||
|
$('#selectPropagation').val(favs[this.innerText].prop_mode);
|
||||||
|
$('#mode').val(favs[this.innerText].mode);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
function del_fav(name) {
|
||||||
|
if (confirm("Are you sure to delete Fav?")) {
|
||||||
|
$.ajax({
|
||||||
|
url: base_url+'index.php/user_options/del_fav',
|
||||||
|
method: 'POST',
|
||||||
|
dataType: 'json',
|
||||||
|
contentType: "application/json; charset=utf-8",
|
||||||
|
data: JSON.stringify({ "option_name": name }),
|
||||||
|
success: function(result) {
|
||||||
|
get_fav();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_fav() {
|
||||||
|
$.ajax({
|
||||||
|
url: base_url+'index.php/user_options/get_fav',
|
||||||
|
method: 'GET',
|
||||||
|
dataType: 'json',
|
||||||
|
contentType: "application/json; charset=utf-8",
|
||||||
|
success: function(result) {
|
||||||
|
$("#fav_menu").empty();
|
||||||
|
for (const key in result) {
|
||||||
|
$("#fav_menu").append('<label class="dropdown-item"><span id="fav_del" name="'+key+'"><i class="fas fa-trash-alt"></i></span> <span id="fav_recall">'+key+'</span></label>');
|
||||||
|
}
|
||||||
|
favs=result;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function save_fav() {
|
||||||
|
var payload={};
|
||||||
|
payload.sat_name=$('#sat_name').val();
|
||||||
|
payload.sat_mode=$('#sat_mode').val();
|
||||||
|
payload.band_rx=$('#band_rx').val();
|
||||||
|
payload.band=$('#band').val();
|
||||||
|
payload.frequency_rx=$('#frequency_rx').val();
|
||||||
|
payload.frequency=$('#frequency').val();
|
||||||
|
payload.prop_mode=$('#selectPropagation').val();
|
||||||
|
payload.mode=$('#mode').val();
|
||||||
|
$.ajax({
|
||||||
|
url: base_url+'index.php/user_options/add_edit_fav',
|
||||||
|
method: 'POST',
|
||||||
|
dataType: 'json',
|
||||||
|
contentType: "application/json; charset=utf-8",
|
||||||
|
data: JSON.stringify(payload),
|
||||||
|
success: function(result) {
|
||||||
|
get_fav();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
var bc_bandmap = new BroadcastChannel('qso_window');
|
var bc_bandmap = new BroadcastChannel('qso_window');
|
||||||
bc_bandmap.onmessage = function (ev) {
|
bc_bandmap.onmessage = function (ev) {
|
||||||
|
|
|
||||||
正在加载…
在新工单中引用