Source
/*
** Copyright (C) 2001-2025 Zabbix SIA
**
** This program is free software: you can redistribute it and/or modify it under the terms of
** the GNU Affero General Public License as published by the Free Software Foundation, version 3.
**
** This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
** without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
** See the GNU Affero General Public License for more details.
**
** You should have received a copy of the GNU Affero General Public License along with this program.
** If not, see <https://www.gnu.org/licenses/>.
**/
class CWidgetSelectPopup {
static #table_template = `
<table class="${ZBX_STYLE_LIST_TABLE}">
<thead>
<tr>
<th>${t('Name')}</th>
</tr>
</thead>
<tbody></tbody>
</table>
`;
static #row_template = `
<tr>
<td>
<a class="js-select-reference" data-reference="#{id}" role="button" href="javascript:void(0)">#{name}</a>
</td>
</tr>
`;
static #nothing_to_show_template = `
<tr>
<td>${t('No compatible widgets.')}</td>
</tr>
`;
/**
* @type {Overlay}
*/
#overlay;
constructor(widgets) {
const widgets_table = new Template(CWidgetSelectPopup.#table_template).evaluateToElement();
let rows_html = '';
if (widgets.length > 0) {
const widget_row = new Template(CWidgetSelectPopup.#row_template);
for (const widget of widgets) {
rows_html += widget_row.evaluate(widget);
}
}
else {
widgets_table.classList.add(ZBX_STYLE_NO_DATA);
rows_html = CWidgetSelectPopup.#nothing_to_show_template;
}