RTU_ALL_AI/config/web/js/pages/signals.js

69 lines
3.2 KiB
JavaScript

/**
* @file signals.js
* @brief 信号管理页面 — out / in / yk / ao (统一渲染)
*/
/* ---- Out ---- */
Router.register('#out', function(c) {
c.innerHTML = renderSignalPage('out',
['<input type="checkbox" style="pointer-events:none;opacity:0">', I18n.t('signal.saddr'), I18n.t('signal.desc'), I18n.t('signal.type')],
function(s) { return td(esc(s.type || '?'), 'cell-mono'); },
function(s) {
return '<div class="btn-group">'
+ '<button class="btn btn-sm" onclick="SignalActions.set(\'out\',\'' + esc(s.saddr) + '\')">' + Icon.get('edit') + ' ' + I18n.t('signal.set') + '</button>'
+ '<button class="btn btn-danger btn-sm" onclick="SignalActions.del(\'out\',\'' + esc(s.saddr) + '\')">' + Icon.get('trash') + '</button>'
+ '</div>';
}
);
[].slice.call(document.querySelectorAll('#tbody-out tr')).forEach(function(tr) {
var saddr = (tr.querySelector('.cell-mono') || {}).textContent || '';
tr.dataset.saddr = saddr;
tr.querySelector('td:first-child').innerHTML = '<input type="checkbox">';
});
});
/* ---- In ---- */
Router.register('#in', function(c) {
c.innerHTML = renderSignalPage('in',
['<input type="checkbox" style="pointer-events:none;opacity:0">', I18n.t('signal.saddr'), I18n.t('signal.desc'), I18n.t('signal.link'), I18n.t('signal.type')],
function(s) { return td(esc(s.link_saddr || '\u2014'), 'cell-mono') + td(esc(s.type || '?'), 'cell-mono'); },
function(s) {
return '<button class="btn btn-danger btn-sm" onclick="SignalActions.del(\'in\',\'' + esc(s.saddr) + '\')">' + Icon.get('trash') + '</button>';
}
);
[].slice.call(document.querySelectorAll('#tbody-in tr')).forEach(function(tr) {
var saddr = (tr.querySelector('.cell-mono') || {}).textContent || '';
tr.dataset.saddr = saddr;
tr.querySelector('td:first-child').innerHTML = '<input type="checkbox">';
});
});
/* ---- YK ---- */
Router.register('#yk', function(c) {
c.innerHTML = renderSignalPage('yk',
[I18n.t('signal.saddr'), I18n.t('signal.desc'), I18n.t('signal.type'), I18n.t('signal.ctrl')],
function(s) { return td(esc(s.type || '?'), 'cell-mono') + td(s.ctrl_type == 1 ? I18n.t('signal.ctrl_sbo') : I18n.t('signal.ctrl_direct'), 'cell-mono'); },
function(s) {
return '<div class="btn-group">'
+ '<button class="btn btn-sm" onclick="SignalActions.set(\'yk\',\'' + esc(s.saddr) + '\')">' + Icon.get('edit') + ' ' + I18n.t('signal.set') + '</button>'
+ '<button class="btn btn-danger btn-sm" onclick="SignalActions.del(\'yk\',\'' + esc(s.saddr) + '\')">' + Icon.get('trash') + '</button>'
+ '</div>';
}
);
});
/* ---- AO ---- */
Router.register('#ao', function(c) {
c.innerHTML = renderSignalPage('ao',
[I18n.t('signal.saddr'), I18n.t('signal.desc'), I18n.t('signal.type'), I18n.t('signal.ctrl')],
function(s) { return td(esc(s.type || '?'), 'cell-mono') + td(s.ctrl_type == 1 ? I18n.t('signal.ctrl_sbo') : I18n.t('signal.ctrl_direct'), 'cell-mono'); },
function(s) {
return '<div class="btn-group">'
+ '<button class="btn btn-sm" onclick="SignalActions.set(\'ao\',\'' + esc(s.saddr) + '\')">' + Icon.get('edit') + ' ' + I18n.t('signal.set') + '</button>'
+ '<button class="btn btn-danger btn-sm" onclick="SignalActions.del(\'ao\',\'' + esc(s.saddr) + '\')">' + Icon.get('trash') + '</button>'
+ '</div>';
}
);
});