kopia lustrzana https://gitlab.com/gridtracker.org/gridtracker
Allow reordering of roster columns
rodzic
441970c2e3
commit
f92ca3dd51
16
README.md
16
README.md
|
@ -107,19 +107,3 @@ Final build results are left in:
|
||||||
# Editing GeoJSON files
|
# Editing GeoJSON files
|
||||||
|
|
||||||
We've had success using https://vector.rocks/ and then cleaning up the output with https://jsonformatter.org/
|
We've had success using https://vector.rocks/ and then cleaning up the output with https://jsonformatter.org/
|
||||||
|
|
||||||
# Hacks
|
|
||||||
|
|
||||||
### Roster Column Ordering
|
|
||||||
|
|
||||||
We've added internal support for reordering roster columns, but have yet to implement a UI to change these settings.
|
|
||||||
|
|
||||||
In the meantime you can:
|
|
||||||
* Open the roster window, right click on the "More Controls" link on the top right corner and select "Inspect" from the context menu.
|
|
||||||
|
|
||||||
* Select the "Console" tab in the Chrome DevTools window that should have appeared.
|
|
||||||
|
|
||||||
* Enter `g_rosterSettings.columnOrder` in the Console and press `[return]` to see the current list of columns.
|
|
||||||
|
|
||||||
* Enter the following in the Console, changing the values of `columnOrder` to fit your needs: `changeRosterColumnOrder(["Callsign", "Grid", "Spot"]);` and press `[return]`.
|
|
||||||
Any columns included in this list will be shown before all other columns.
|
|
||||||
|
|
|
@ -26,6 +26,8 @@ var g_callMenu = null;
|
||||||
var g_ageMenu = null;
|
var g_ageMenu = null;
|
||||||
var g_callingMenu = null;
|
var g_callingMenu = null;
|
||||||
var g_compactMenu = null;
|
var g_compactMenu = null;
|
||||||
|
var g_menuItemForCurrentColumn = null;
|
||||||
|
var g_currentColumnName = null;
|
||||||
var g_targetHash = "";
|
var g_targetHash = "";
|
||||||
var g_clearIgnores = null;
|
var g_clearIgnores = null;
|
||||||
var g_clearIgnoresCall = null;
|
var g_clearIgnoresCall = null;
|
||||||
|
@ -1706,6 +1708,19 @@ function init()
|
||||||
item = new nw.MenuItem({ type: "separator" });
|
item = new nw.MenuItem({ type: "separator" });
|
||||||
g_menu.append(item);
|
g_menu.append(item);
|
||||||
|
|
||||||
|
g_menuItemForCurrentColumn = new nw.MenuItem({
|
||||||
|
type: "normal",
|
||||||
|
label: "Move Column Left",
|
||||||
|
click: function ()
|
||||||
|
{
|
||||||
|
moveColumnLeft(g_currentColumnName);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
g_menu.append(g_menuItemForCurrentColumn)
|
||||||
|
|
||||||
|
item = new nw.MenuItem({ type: "separator" });
|
||||||
|
g_menu.append(item);
|
||||||
|
|
||||||
for (let columnIndex in g_rosterSettings.columnOrder)
|
for (let columnIndex in g_rosterSettings.columnOrder)
|
||||||
{
|
{
|
||||||
let key = g_rosterSettings.columnOrder[columnIndex];
|
let key = g_rosterSettings.columnOrder[columnIndex];
|
||||||
|
@ -2164,7 +2179,9 @@ function handleContextMenu(ev)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let name = ev.target.getAttribute("name");
|
let name
|
||||||
|
if (ev.target.tagName == "TD") name = ev.target.getAttribute("name");
|
||||||
|
|
||||||
if (name == "Callsign")
|
if (name == "Callsign")
|
||||||
{
|
{
|
||||||
g_targetHash = ev.target.parentNode.id;
|
g_targetHash = ev.target.parentNode.id;
|
||||||
|
@ -2202,13 +2219,24 @@ function handleContextMenu(ev)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (g_rosterSettings.compact == false)
|
if (g_rosterSettings.compact)
|
||||||
{
|
{
|
||||||
g_menu.popup(mouseX, mouseY);
|
g_compactMenu.popup(mouseX, mouseY);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
g_compactMenu.popup(mouseX, mouseY);
|
if (ev.target.tagName == "TH" && ev.target.getAttribute("name"))
|
||||||
|
{
|
||||||
|
g_menuItemForCurrentColumn.enabled = true;
|
||||||
|
g_currentColumnName = ev.target.getAttribute("name");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
g_menuItemForCurrentColumn.enabled = false;
|
||||||
|
g_currentColumnName = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_menu.popup(mouseX, mouseY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,8 @@ function renderHeaderForColumn(column)
|
||||||
|
|
||||||
let attrs = (columnInfo && columnInfo.tableHeader && columnInfo.tableHeader()) || {}
|
let attrs = (columnInfo && columnInfo.tableHeader && columnInfo.tableHeader()) || {}
|
||||||
|
|
||||||
|
attrs.name = column
|
||||||
|
|
||||||
attrs.html = attrs.html || column
|
attrs.html = attrs.html || column
|
||||||
|
|
||||||
if (columnInfo.compare)
|
if (columnInfo.compare)
|
||||||
|
@ -98,12 +100,21 @@ function validateRosterColumnOrder(columns)
|
||||||
{
|
{
|
||||||
let correctedColumnOrder = (columns || DEFAULT_COLUMN_ORDER || []).slice();
|
let correctedColumnOrder = (columns || DEFAULT_COLUMN_ORDER || []).slice();
|
||||||
|
|
||||||
|
// Aappend columns not included in the suggested list.
|
||||||
DEFAULT_COLUMN_ORDER.forEach(column =>
|
DEFAULT_COLUMN_ORDER.forEach(column =>
|
||||||
{
|
{
|
||||||
if (!correctedColumnOrder.includes(column)) correctedColumnOrder.push(column);
|
if (!correctedColumnOrder.includes(column)) correctedColumnOrder.push(column);
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// Exclude any unexpected values
|
||||||
correctedColumnOrder = correctedColumnOrder.filter(column => !!ROSTER_COLUMNS[column])
|
correctedColumnOrder = correctedColumnOrder.filter(column => !!ROSTER_COLUMNS[column])
|
||||||
|
|
||||||
|
// Ensure the first three columns are always the same
|
||||||
|
correctedColumnOrder = correctedColumnOrder.filter(column => column != "Callsign" && column != "Band" && column != "Mode");
|
||||||
|
correctedColumnOrder.unshift("Mode");
|
||||||
|
correctedColumnOrder.unshift("Band");
|
||||||
|
correctedColumnOrder.unshift("Callsign");
|
||||||
|
|
||||||
return correctedColumnOrder;
|
return correctedColumnOrder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,3 +124,15 @@ function changeRosterColumnOrder(columns)
|
||||||
writeRosterSettings();
|
writeRosterSettings();
|
||||||
window.opener.goProcessRoster();
|
window.opener.goProcessRoster();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function moveColumnLeft(column)
|
||||||
|
{
|
||||||
|
const columns = rosterColumnList(g_rosterSettings.columns, { Callsign: true, Grid: true });
|
||||||
|
const pos = columns.indexOf(column);
|
||||||
|
if (pos > 1)
|
||||||
|
{
|
||||||
|
columns[pos] = columns[pos - 1];
|
||||||
|
columns[pos - 1] = column;
|
||||||
|
}
|
||||||
|
changeRosterColumnOrder(columns);
|
||||||
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue