mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-15 04:53:00 +08:00
46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
// SPDX-License-Identifier: MIT
|
|
'use strict';
|
|
'require baseclass';
|
|
'require ui';
|
|
|
|
const TIMEOUT = 12000;
|
|
|
|
return baseclass.extend({
|
|
createWarning: function() {
|
|
let previous = '', timer = null;
|
|
const message = E('span', { 'class': 'dm-warning-message' });
|
|
const dismiss = () => {
|
|
clearTimeout(timer);
|
|
timer = null;
|
|
node.style.display = 'none';
|
|
};
|
|
const node = E('div', {
|
|
'id': 'dm-source-warning', 'class': 'alert-message warning dm-source-warning',
|
|
'role': 'status', 'style': 'display:none;'
|
|
}, [ message, E('button', {
|
|
'type': 'button', 'class': 'btn cbi-button dm-warning-close',
|
|
'click': dismiss
|
|
}, [ _('Close') ]) ]);
|
|
return {
|
|
node: node,
|
|
destroy: dismiss,
|
|
update: errors => {
|
|
const text = errors.length
|
|
? _('Some device data could not be read. Unconfirmed devices are shown as unknown: %s').format(errors.join('; ')) : '';
|
|
if (text === previous) return;
|
|
previous = text;
|
|
dismiss();
|
|
message.textContent = text;
|
|
if (text) {
|
|
node.style.display = 'flex';
|
|
timer = setTimeout(dismiss, TIMEOUT);
|
|
}
|
|
}
|
|
};
|
|
},
|
|
notify: function(message, level) {
|
|
const node = ui.addNotification(null, E('p', {}, [ message ]), level);
|
|
if (node) setTimeout(() => node.remove(), TIMEOUT);
|
|
}
|
|
});
|