This commit is contained in:
parent
b2684d5cee
commit
d598004d79
9 changed files with 94 additions and 51 deletions
|
|
@ -220,19 +220,25 @@ function displayValue(value) {
|
|||
return VALUE_LABELS[value] || value;
|
||||
}
|
||||
|
||||
function numberLabel(row, field) {
|
||||
if (!field) return "";
|
||||
const value = row[field];
|
||||
if (value === undefined || value === null || value === "") return "";
|
||||
return String(value).padStart(2, "0");
|
||||
}
|
||||
|
||||
function renderCell(row, column, options) {
|
||||
const raw = row[column] ?? "";
|
||||
const display = displayValue(raw);
|
||||
const sortValue = attribute(sortText(display));
|
||||
const numberPrefix =
|
||||
column === options.linkColumn ? numberLabel(row, options.numberField) : "";
|
||||
const sortValue = attribute(
|
||||
[numberPrefix, sortText(display)].filter(Boolean).join(" "),
|
||||
);
|
||||
const cellAttrs = `data-column="${attribute(column)}" data-sort-value="${sortValue}"`;
|
||||
|
||||
if (column === options.linkColumn && row[options.urlField]) {
|
||||
const numberValue = row[options.numberField];
|
||||
const numberLabel =
|
||||
numberValue === undefined || numberValue === null || numberValue === ""
|
||||
? ""
|
||||
: String(numberValue).padStart(2, "0");
|
||||
const prefix = options.numberField && numberLabel ? `${numberLabel}. ` : "";
|
||||
const prefix = numberPrefix ? `${numberPrefix}. ` : "";
|
||||
return `<td ${cellAttrs}><a href="${attribute(row[options.urlField])}">${escapeHtml(prefix)}${inlineMarkup(display)}</a></td>`;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -220,19 +220,25 @@ function displayValue(value) {
|
|||
return VALUE_LABELS[value] || value;
|
||||
}
|
||||
|
||||
function numberLabel(row, field) {
|
||||
if (!field) return "";
|
||||
const value = row[field];
|
||||
if (value === undefined || value === null || value === "") return "";
|
||||
return String(value).padStart(2, "0");
|
||||
}
|
||||
|
||||
function renderCell(row, column, options) {
|
||||
const raw = row[column] ?? "";
|
||||
const display = displayValue(raw);
|
||||
const sortValue = attribute(sortText(display));
|
||||
const numberPrefix =
|
||||
column === options.linkColumn ? numberLabel(row, options.numberField) : "";
|
||||
const sortValue = attribute(
|
||||
[numberPrefix, sortText(display)].filter(Boolean).join(" "),
|
||||
);
|
||||
const cellAttrs = `data-column="${attribute(column)}" data-sort-value="${sortValue}"`;
|
||||
|
||||
if (column === options.linkColumn && row[options.urlField]) {
|
||||
const numberValue = row[options.numberField];
|
||||
const numberLabel =
|
||||
numberValue === undefined || numberValue === null || numberValue === ""
|
||||
? ""
|
||||
: String(numberValue).padStart(2, "0");
|
||||
const prefix = options.numberField && numberLabel ? `${numberLabel}. ` : "";
|
||||
const prefix = numberPrefix ? `${numberPrefix}. ` : "";
|
||||
return `<td ${cellAttrs}><a href="${attribute(row[options.urlField])}">${escapeHtml(prefix)}${inlineMarkup(display)}</a></td>`;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -220,19 +220,25 @@ function displayValue(value) {
|
|||
return VALUE_LABELS[value] || value;
|
||||
}
|
||||
|
||||
function numberLabel(row, field) {
|
||||
if (!field) return "";
|
||||
const value = row[field];
|
||||
if (value === undefined || value === null || value === "") return "";
|
||||
return String(value).padStart(2, "0");
|
||||
}
|
||||
|
||||
function renderCell(row, column, options) {
|
||||
const raw = row[column] ?? "";
|
||||
const display = displayValue(raw);
|
||||
const sortValue = attribute(sortText(display));
|
||||
const numberPrefix =
|
||||
column === options.linkColumn ? numberLabel(row, options.numberField) : "";
|
||||
const sortValue = attribute(
|
||||
[numberPrefix, sortText(display)].filter(Boolean).join(" "),
|
||||
);
|
||||
const cellAttrs = `data-column="${attribute(column)}" data-sort-value="${sortValue}"`;
|
||||
|
||||
if (column === options.linkColumn && row[options.urlField]) {
|
||||
const numberValue = row[options.numberField];
|
||||
const numberLabel =
|
||||
numberValue === undefined || numberValue === null || numberValue === ""
|
||||
? ""
|
||||
: String(numberValue).padStart(2, "0");
|
||||
const prefix = options.numberField && numberLabel ? `${numberLabel}. ` : "";
|
||||
const prefix = numberPrefix ? `${numberPrefix}. ` : "";
|
||||
return `<td ${cellAttrs}><a href="${attribute(row[options.urlField])}">${escapeHtml(prefix)}${inlineMarkup(display)}</a></td>`;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -220,19 +220,25 @@ function displayValue(value) {
|
|||
return VALUE_LABELS[value] || value;
|
||||
}
|
||||
|
||||
function numberLabel(row, field) {
|
||||
if (!field) return "";
|
||||
const value = row[field];
|
||||
if (value === undefined || value === null || value === "") return "";
|
||||
return String(value).padStart(2, "0");
|
||||
}
|
||||
|
||||
function renderCell(row, column, options) {
|
||||
const raw = row[column] ?? "";
|
||||
const display = displayValue(raw);
|
||||
const sortValue = attribute(sortText(display));
|
||||
const numberPrefix =
|
||||
column === options.linkColumn ? numberLabel(row, options.numberField) : "";
|
||||
const sortValue = attribute(
|
||||
[numberPrefix, sortText(display)].filter(Boolean).join(" "),
|
||||
);
|
||||
const cellAttrs = `data-column="${attribute(column)}" data-sort-value="${sortValue}"`;
|
||||
|
||||
if (column === options.linkColumn && row[options.urlField]) {
|
||||
const numberValue = row[options.numberField];
|
||||
const numberLabel =
|
||||
numberValue === undefined || numberValue === null || numberValue === ""
|
||||
? ""
|
||||
: String(numberValue).padStart(2, "0");
|
||||
const prefix = options.numberField && numberLabel ? `${numberLabel}. ` : "";
|
||||
const prefix = numberPrefix ? `${numberPrefix}. ` : "";
|
||||
return `<td ${cellAttrs}><a href="${attribute(row[options.urlField])}">${escapeHtml(prefix)}${inlineMarkup(display)}</a></td>`;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -220,19 +220,25 @@ function displayValue(value) {
|
|||
return VALUE_LABELS[value] || value;
|
||||
}
|
||||
|
||||
function numberLabel(row, field) {
|
||||
if (!field) return "";
|
||||
const value = row[field];
|
||||
if (value === undefined || value === null || value === "") return "";
|
||||
return String(value).padStart(2, "0");
|
||||
}
|
||||
|
||||
function renderCell(row, column, options) {
|
||||
const raw = row[column] ?? "";
|
||||
const display = displayValue(raw);
|
||||
const sortValue = attribute(sortText(display));
|
||||
const numberPrefix =
|
||||
column === options.linkColumn ? numberLabel(row, options.numberField) : "";
|
||||
const sortValue = attribute(
|
||||
[numberPrefix, sortText(display)].filter(Boolean).join(" "),
|
||||
);
|
||||
const cellAttrs = `data-column="${attribute(column)}" data-sort-value="${sortValue}"`;
|
||||
|
||||
if (column === options.linkColumn && row[options.urlField]) {
|
||||
const numberValue = row[options.numberField];
|
||||
const numberLabel =
|
||||
numberValue === undefined || numberValue === null || numberValue === ""
|
||||
? ""
|
||||
: String(numberValue).padStart(2, "0");
|
||||
const prefix = options.numberField && numberLabel ? `${numberLabel}. ` : "";
|
||||
const prefix = numberPrefix ? `${numberPrefix}. ` : "";
|
||||
return `<td ${cellAttrs}><a href="${attribute(row[options.urlField])}">${escapeHtml(prefix)}${inlineMarkup(display)}</a></td>`;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -220,19 +220,25 @@ function displayValue(value) {
|
|||
return VALUE_LABELS[value] || value;
|
||||
}
|
||||
|
||||
function numberLabel(row, field) {
|
||||
if (!field) return "";
|
||||
const value = row[field];
|
||||
if (value === undefined || value === null || value === "") return "";
|
||||
return String(value).padStart(2, "0");
|
||||
}
|
||||
|
||||
function renderCell(row, column, options) {
|
||||
const raw = row[column] ?? "";
|
||||
const display = displayValue(raw);
|
||||
const sortValue = attribute(sortText(display));
|
||||
const numberPrefix =
|
||||
column === options.linkColumn ? numberLabel(row, options.numberField) : "";
|
||||
const sortValue = attribute(
|
||||
[numberPrefix, sortText(display)].filter(Boolean).join(" "),
|
||||
);
|
||||
const cellAttrs = `data-column="${attribute(column)}" data-sort-value="${sortValue}"`;
|
||||
|
||||
if (column === options.linkColumn && row[options.urlField]) {
|
||||
const numberValue = row[options.numberField];
|
||||
const numberLabel =
|
||||
numberValue === undefined || numberValue === null || numberValue === ""
|
||||
? ""
|
||||
: String(numberValue).padStart(2, "0");
|
||||
const prefix = options.numberField && numberLabel ? `${numberLabel}. ` : "";
|
||||
const prefix = numberPrefix ? `${numberPrefix}. ` : "";
|
||||
return `<td ${cellAttrs}><a href="${attribute(row[options.urlField])}">${escapeHtml(prefix)}${inlineMarkup(display)}</a></td>`;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -220,19 +220,25 @@ function displayValue(value) {
|
|||
return VALUE_LABELS[value] || value;
|
||||
}
|
||||
|
||||
function numberLabel(row, field) {
|
||||
if (!field) return "";
|
||||
const value = row[field];
|
||||
if (value === undefined || value === null || value === "") return "";
|
||||
return String(value).padStart(2, "0");
|
||||
}
|
||||
|
||||
function renderCell(row, column, options) {
|
||||
const raw = row[column] ?? "";
|
||||
const display = displayValue(raw);
|
||||
const sortValue = attribute(sortText(display));
|
||||
const numberPrefix =
|
||||
column === options.linkColumn ? numberLabel(row, options.numberField) : "";
|
||||
const sortValue = attribute(
|
||||
[numberPrefix, sortText(display)].filter(Boolean).join(" "),
|
||||
);
|
||||
const cellAttrs = `data-column="${attribute(column)}" data-sort-value="${sortValue}"`;
|
||||
|
||||
if (column === options.linkColumn && row[options.urlField]) {
|
||||
const numberValue = row[options.numberField];
|
||||
const numberLabel =
|
||||
numberValue === undefined || numberValue === null || numberValue === ""
|
||||
? ""
|
||||
: String(numberValue).padStart(2, "0");
|
||||
const prefix = options.numberField && numberLabel ? `${numberLabel}. ` : "";
|
||||
const prefix = numberPrefix ? `${numberPrefix}. ` : "";
|
||||
return `<td ${cellAttrs}><a href="${attribute(row[options.urlField])}">${escapeHtml(prefix)}${inlineMarkup(display)}</a></td>`;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue