69 lines
3.2 KiB
JavaScript
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>';
|
|
}
|
|
);
|
|
});
|