luci-app-dockerman: remove emoji i18n

Signed-off-by: sbwml <admin@cooluc.com>
This commit is contained in:
sbwml
2026-02-22 11:42:17 +08:00
parent ff6723c59a
commit 94c6ef5266
8 changed files with 64 additions and 64 deletions
@@ -333,18 +333,18 @@ const container = Object.freeze({
exec_die: {e: '🪦', i18n: _('exec_die')},
export: {e: '📤⬇️', i18n: _('export')},
health_status: {e: '🩺⚕️', i18n: _('health_status')},
kill: {e: '☠️', i18n: _('kill')},
kill: {e: '☠️', i18n: _('Kill')},
oom: {e: '0️⃣🧠', i18n: _('oom')},
pause: {e: '⏸️', i18n: _('pause')},
pause: {e: '⏸️', i18n: _('Pause')},
rename: {e: '✍️', i18n: _('rename')},
resize: {e: '↔️', i18n: _('resize')},
restart: {e: '🔄', i18n: _('restart')},
start: {e: '▶️', i18n: _('start')},
stop: {e: '⏹️', i18n: _('stop')},
restart: {e: '🔄', i18n: _('Restart')},
start: {e: '▶️', i18n: _('Start')},
stop: {e: '⏹️', i18n: _('Stop')},
top: {e: '🔝', i18n: _('top')},
unpause: {e: '⏯️', i18n: _('unpause')},
update: {e: '✏️', i18n: _('update')},
prune: {e: '✂️', i18n: _('prune')},
unpause: {e: '⏯️', i18n: _('Unpause')},
update: {e: '✏️', i18n: _('Update')},
prune: {e: '✂️', i18n: _('Prune')},
});
@@ -555,8 +555,8 @@ return dm2.dv.extend({
ss.anonymous = true;
ss.nodescriptions = true;
ss.addremove = true;
ss.addbtntitle = _('Connect') + ' 🔗';
ss.delbtntitle = _('Disconnect') + ' ⛓️‍💥';
ss.addbtntitle = _('Connect');
ss.delbtntitle = _('Disconnect');
o = ss.option(form.DummyValue, 'Name', _('Name'));
@@ -937,17 +937,17 @@ return dm2.dv.extend({
'class': 'cbi-button cbi-button-positive',
'style': 'margin-left: 10px;',
'click': () => this.handleFileUpload(this_container.Id),
}, _('Upload') + ' ⬆️'),
}, _('Upload')),
E('button', {
'class': 'cbi-button cbi-button-neutral',
'style': 'margin-left: 5px;',
'click': () => this.handleFileDownload(this_container.Id),
}, _('Download') + ' ⬇️'),
}, _('Download')),
E('button', {
'class': 'cbi-button cbi-button-neutral',
'style': 'margin-left: 5px;',
'click': () => this.handleInfoArchive(this_container.Id),
}, _('Inspect') + ' 🔎'),
}, _('Inspect')),
]),
E('textarea', {
'id': 'container-file-text',
@@ -981,7 +981,7 @@ return dm2.dv.extend({
output.textContent = JSON.stringify(response.body, null, 2);
return;
}),
}, _('Inspect') + ' 🔎'),
}, _('Inspect')),
]),
]);
@@ -102,7 +102,7 @@ return dm2.dv.extend({
s.anonymous = true;
const prune = s.option(form.Button, '_prune', null);
prune.inputtitle = `${dm2.ActionTypes['prune'].i18n} ${dm2.ActionTypes['prune'].e}`;
prune.inputtitle = `${dm2.ActionTypes['prune'].i18n}`;
prune.inputstyle = 'negative';
prune.onclick = L.bind(function(section_id, ev) {
return this.super('handleXHRTransfer', [{
@@ -134,7 +134,7 @@ return dm2.dv.extend({
conSec.addremove = true;
conSec.sortable = true;
conSec.filterrow = true;
conSec.addbtntitle = `${dm2.ActionTypes['create'].i18n} ${dm2.ActionTypes['create'].e}`;
conSec.addbtntitle = `${dm2.ActionTypes['create'].i18n}`;
conSec.footer = [
`${_('Total')} ${container_list.length}`,
[
@@ -188,20 +188,20 @@ return dm2.dv.extend({
dm2.ActionTypes['inspect'].i18n,
{showOutput: true, showSuccess: false}
)
}, [dm2.ActionTypes['inspect'].e]),
}, [dm2.ActionTypes['inspect'].i18n]),
E('button', {
'class': 'cbi-button cbi-button-positive edit',
'title': _('Edit this container'),
'click': () => window.location.href = `${view.dockerman_url}/container/${cont?.Id}`
}, [dm2.ActionTypes['edit'].e]),
}, [dm2.ActionTypes['edit'].i18n]),
(() => {
const icon = isRunning
? dm2.Types['container'].sub['pause'].e
? dm2.Types['container'].sub['pause'].i18n
: (isPaused
? dm2.Types['container'].sub['unpause'].e
: dm2.Types['container'].sub['start'].e);
? dm2.Types['container'].sub['unpause'].i18n
: dm2.Types['container'].sub['start'].i18n);
const title = isRunning
? _('Pause this container')
: (isPaused ? _('Unpause this container') : _('Start this container'));
@@ -241,7 +241,7 @@ return dm2.dv.extend({
_('Restart'),
{showOutput: true, showSuccess: false}
)
}, [dm2.Types['container'].sub['restart'].e]),
}, [dm2.Types['container'].sub['restart'].i18n]),
E('button', {
'class': 'cbi-button cbi-button-neutral stop',
@@ -253,7 +253,7 @@ return dm2.dv.extend({
{showOutput: true, showSuccess: false}
),
'disabled' : !(isRunning || isPaused) ? true : null
}, [dm2.Types['container'].sub['stop'].e]),
}, [dm2.Types['container'].sub['stop'].i18n]),
E('button', {
'class': 'cbi-button cbi-button-negative kill',
@@ -265,7 +265,7 @@ return dm2.dv.extend({
{showOutput: true, showSuccess: false}
),
'disabled' : !(isRunning || isPaused) ? true : null
}, [dm2.Types['container'].sub['kill'].e]),
}, [dm2.Types['container'].sub['kill'].i18n]),
E('button', {
'class': 'cbi-button cbi-button-neutral export',
@@ -273,7 +273,7 @@ return dm2.dv.extend({
'click': () => {
window.location.href = `${view.dockerman_url}/container/export/${cont.Id}`;
}
}, [dm2.Types['container'].sub['export'].e]),
}, [dm2.Types['container'].sub['export'].i18n]),
E('div', {
'style': 'width: 20px',
@@ -289,7 +289,7 @@ return dm2.dv.extend({
dm2.ActionTypes['remove'].i18n,
{showOutput: true, showSuccess: false}
)
}, [dm2.ActionTypes['remove'].e]),
}, [dm2.ActionTypes['remove'].i18n]),
E('button', {
'class': 'cbi-button cbi-button-negative important remove',
@@ -300,7 +300,7 @@ return dm2.dv.extend({
_('Force Remove'),
{showOutput: true, showSuccess: false}
)
}, [dm2.ActionTypes['force_remove'].e]),
}, [dm2.ActionTypes['force_remove'].i18n]),
];
return E('td', {
@@ -72,7 +72,7 @@ return dm2.dv.extend({
}, [
E('option', { 'value': '' }, _('All Types')),
...Object.keys(dm2.Types).map(type =>
E('option', { 'value': type }, `${dm2.Types[type].e} ${dm2.Types[type].i18n}`)
E('option', { 'value': type }, `${dm2.Types[type].i18n}`)
)
])
])
@@ -225,12 +225,12 @@ return dm2.dv.extend({
const rows = ev_array.map(event => {
const type = event.Type;
const typeInfo = dm2.Types[type];
const typeDisplay = typeInfo ? `${typeInfo.e} ${typeInfo.i18n}` : type;
const typeDisplay = typeInfo ? `${typeInfo.i18n}` : type;
const actionParts = event.Action?.split(':') || [];
const action = actionParts.length > 0 ? actionParts[0] : '';
const action_sub = actionParts.length > 1 ? actionParts[1] : null;
const actionInfo = typeInfo?.sub?.[action];
const actionDisplay = actionInfo ? `${actionInfo.e} ${actionInfo.i18n}${action_sub ? ':'+action_sub : ''}` : action;
const actionDisplay = actionInfo ? `${actionInfo.i18n}${action_sub ? ':'+action_sub : ''}` : action;
return [
view.buildTimeString(event.time),
typeDisplay,
@@ -344,7 +344,7 @@ return dm2.dv.extend({
const subtypes = dm2.Types[selectedType].sub;
for (const action in subtypes) {
subtypeSelect.appendChild(
E('option', { 'value': action }, `${subtypes[action].e} ${subtypes[action].i18n}`)
E('option', { 'value': action }, `${subtypes[action].i18n}`)
);
}
},
@@ -93,7 +93,7 @@ return dm2.dv.extend({
tagOpt.placeholder = "[registry.io[:443]/]foobar/product:latest";
o = s.option(form.Button, '_pull');
o.inputtitle = `${dm2.Types['image'].sub['pull'].i18n} ${dm2.Types['image'].sub['pull'].e}`; // _('Pull') + ' ☁️⬇️'
o.inputtitle = `${dm2.Types['image'].sub['pull'].i18n}`; // _('Pull') + ' ☁️⬇️'
o.inputstyle = 'add';
o.onclick = L.bind(function(ev, btn) {
const raw = tagOpt.formvalue('pull') || '';
@@ -168,7 +168,7 @@ return dm2.dv.extend({
}
o = s.option(form.Button, '_push');
o.inputtitle = `${dm2.Types['image'].sub['push'].i18n} ${dm2.Types['image'].sub['push'].e}`; // _('Push') + ' ☁️⬆️'
o.inputtitle = `${dm2.Types['image'].sub['push'].i18n}`; // _('Push') + ' ☁️⬆️'
o.inputstyle = 'add';
o.onclick = L.bind(function(ev, btn) {
const selected = pushTagOpt.formvalue('push') || '';
@@ -214,7 +214,7 @@ return dm2.dv.extend({
buildTagOpt.placeholder = 'repository:tag';
o = s.option(form.Button, '_build');
o.inputtitle = `${dm2.ActionTypes['build'].i18n} ${dm2.ActionTypes['build'].e}`; // _('Build') + ' 🏗️'
o.inputtitle = `${dm2.ActionTypes['build'].i18n}`; // _('Build') + ' 🏗️'
o.inputstyle = 'add';
o.onclick = L.bind(function(ev, btn) {
const uri = buildOpt.formvalue('build') || '';
@@ -246,7 +246,7 @@ return dm2.dv.extend({
}, this);
o = s.option(form.Button, '_delete_cache', null);
o.inputtitle = `${dm2.ActionTypes['clean'].i18n} ${dm2.ActionTypes['clean'].e}`;
o.inputtitle = `${dm2.ActionTypes['clean'].i18n}`;
o.inputstyle = 'negative';
o.onclick = L.bind(function(ev, btn) {
return this.super('handleXHRTransfer', [{
@@ -284,7 +284,7 @@ return dm2.dv.extend({
tagimpOpt.placeholder = 'repository:tag';
let importBtn = s.option(form.Button, '_import');
importBtn.inputtitle = `${dm2.Types['image'].sub['import'].i18n} ${dm2.Types['image'].sub['import'].e}` //_('Import') + ' ➡️';
importBtn.inputtitle = `${dm2.Types['image'].sub['import'].i18n}` //_('Import') + ' ➡️';
importBtn.inputstyle = 'add';
importBtn.onclick = L.bind(function(ev, btn) {
const rawtag = tagimpOpt.formvalue('import') || '';
@@ -339,7 +339,7 @@ return dm2.dv.extend({
s.anonymous = true;
const prune = s.option(form.Button, '_prune', null);
prune.inputtitle = `${dm2.ActionTypes['prune'].i18n} ${dm2.ActionTypes['prune'].e}`;
prune.inputtitle = `${dm2.ActionTypes['prune'].i18n}`;
prune.inputstyle = 'negative';
prune.onclick = L.bind(function(ev, btn) {
@@ -376,7 +376,7 @@ return dm2.dv.extend({
}, this);
o = s.option(form.Button, '_export', null);
o.inputtitle = `${dm2.ActionTypes['save'].i18n} ${dm2.ActionTypes['save'].e}`;
o.inputtitle = `${dm2.ActionTypes['save'].i18n}`;
o.inputstyle = 'cbi-button-positive';
o.onclick = L.bind(function(ev, btn) {
ev.preventDefault();
@@ -407,7 +407,7 @@ return dm2.dv.extend({
imgSec.addremove = true;
imgSec.sortable = true;
imgSec.filterrow = true;
imgSec.addbtntitle = `${dm2.ActionTypes['upload'].i18n} ${dm2.ActionTypes['upload'].e}`;
imgSec.addbtntitle = `${dm2.ActionTypes['upload'].i18n}`;
imgSec.footer = [
'',
`${_('Total')} ${image_list.length}`,
@@ -468,17 +468,17 @@ return dm2.dv.extend({
'class': 'cbi-button cbi-button-neutral',
'title': dm2.ActionTypes['inspect'].i18n,
'click': ui.createHandlerFn(this, this.handleInspect, image),
}, [dm2.ActionTypes['inspect'].e]),
}, [dm2.ActionTypes['inspect'].i18n]),
E('button', {
'class': 'cbi-button cbi-button-neutral',
'title': dm2.ActionTypes['history'].i18n,
'click': ui.createHandlerFn(this, this.handleHistory, image),
}, [dm2.ActionTypes['history'].e]),
}, [dm2.ActionTypes['history'].i18n]),
E('button', {
'class': 'cbi-button cbi-button-positive save',
'title': dm2.ActionTypes['save'].i18n,
'click': ui.createHandlerFn(this, this.handleGet, image),
}, [dm2.ActionTypes['save'].e]),
}, [dm2.ActionTypes['save'].i18n]),
E('div', {
'style': 'width: 20px',
// Some safety margin for mis-clicks
@@ -488,13 +488,13 @@ return dm2.dv.extend({
'title': dm2.ActionTypes['remove'].i18n,
'click': ui.createHandlerFn(this, this.handleRemove, sid, image, false),
'disabled': image?._disable_delete,
}, [dm2.ActionTypes['remove'].e]),
}, [dm2.ActionTypes['remove'].i18n]),
E('button', {
'class': 'cbi-button cbi-button-negative important remove',
'title': dm2.ActionTypes['force_remove'].i18n,
'click': ui.createHandlerFn(this, this.handleRemove, sid, image, true),
'disabled': image?._disable_delete,
}, [dm2.ActionTypes['force_remove'].e]),
}, [dm2.ActionTypes['force_remove'].i18n]),
];
return E('td', { 'class': 'td middle cbi-section-actions' }, E('div', btns));
};
@@ -510,7 +510,7 @@ return dm2.dv.extend({
return;
}
o = imgSec.option(form.DummyValue, 'RepoTags', dm2.Types['image'].sub['tag'].e);
o = imgSec.option(form.DummyValue, 'RepoTags', dm2.Types['image'].sub['tag'].i18n);
o.cfgvalue = function(sid) {
const image = this.map.data.data[sid];
const tags = Array.isArray(image?.RepoTags) ? image.RepoTags : [];
@@ -538,7 +538,7 @@ return dm2.dv.extend({
E('button', {
'class': 'cbi-button',
'click': ui.hideModal
}, '↩'),
}, _('Cancel')),
' ',
E('button', {
'class': 'cbi-button cbi-button-negative',
@@ -557,7 +557,7 @@ return dm2.dv.extend({
}
);
})
}, dm2.Types['image'].sub['untag'].e)
}, dm2.Types['image'].sub['untag'].i18n)
])
]);
}, tag, image.Id)
@@ -646,7 +646,7 @@ return dm2.dv.extend({
E('button', {
'class': 'cbi-button',
'click': ui.hideModal
}, ['↩']),
}, [_('Cancel')]),
' ',
E('button', {
'class': 'cbi-button cbi-button-positive',
@@ -673,7 +673,7 @@ return dm2.dv.extend({
}
);
})
}, [dm2.Types['image'].sub['tag'].e])
}, [dm2.Types['image'].sub['tag'].i18n])
])
]);
}, fullId)
@@ -139,7 +139,7 @@ return dm2.dv.extend({
ss.nodescriptions = true;
o = ss.option(form.Button, '_inspect_button', null);
o.inputtitle = `${dm2.ActionTypes['inspect'].i18n} ${dm2.ActionTypes['inspect'].e}`;
o.inputtitle = `${dm2.ActionTypes['inspect'].i18n}`;
o.inputstyle = 'neutral';
o.onclick = L.bind(function(section_id, ev) {
return dm2.network_inspect({ id: this_network.Id }).then((response) => {
@@ -64,7 +64,7 @@ return dm2.dv.extend({
s.anonymous = true;
const prune = s.option(form.Button, '_prune', null);
prune.inputtitle = `${dm2.ActionTypes['prune'].i18n} ${dm2.ActionTypes['prune'].e}`;
prune.inputtitle = `${dm2.ActionTypes['prune'].i18n}`;
prune.inputstyle = 'negative';
prune.onclick = L.bind(function(section_id, ev) {
@@ -107,7 +107,7 @@ return dm2.dv.extend({
netSec.addremove = true;
netSec.sortable = true;
netSec.filterrow = true;
netSec.addbtntitle = `${dm2.ActionTypes['create'].i18n} ${dm2.ActionTypes['create'].e}`;
netSec.addbtntitle = `${dm2.ActionTypes['create'].i18n}`;
netSec.footer = [
`${_('Total')} ${network_list.length}`,
];
@@ -152,7 +152,7 @@ return dm2.dv.extend({
'class': 'cbi-button view',
'title': dm2.ActionTypes['inspect'].i18n,
'click': ui.createHandlerFn(this, this.handleInspect, section_id),
}, [dm2.ActionTypes['inspect'].e]),
}, [dm2.ActionTypes['inspect'].i18n]),
E('div', {
'style': 'width: 20px',
@@ -164,13 +164,13 @@ return dm2.dv.extend({
'title': dm2.ActionTypes['remove'].i18n,
'click': ui.createHandlerFn(this, this.handleRemove, section_id, false),
'disabled': network?._disable_delete,
}, dm2.ActionTypes['remove'].e),
}, dm2.ActionTypes['remove'].i18n),
E('button', {
'class': 'cbi-button cbi-button-negative important remove',
'title': dm2.ActionTypes['force_remove'].i18n,
'click': ui.createHandlerFn(this, this.handleRemove, section_id, true),
'disabled': network?._disable_delete,
}, dm2.ActionTypes['force_remove'].e),
}, dm2.ActionTypes['force_remove'].i18n),
];
return E('td', { 'class': 'td middle cbi-section-actions' }, E('div', btns));
};
@@ -179,7 +179,7 @@ return dm2.dv.extend({
o = netSec.option(form.DummyValue, 'Name', _('Name'));
o = netSec.option(form.DummyValue, 'Labels', _('Labels') + ' 🏷️');
o = netSec.option(form.DummyValue, 'Labels', _('Labels'));
o.cfgvalue = view.objectCfgValueTT;
o = netSec.option(form.DummyValue, '_container', _('Containers'));
@@ -62,7 +62,7 @@ return dm2.dv.extend({
s.addremove = false;
s.anonymous = true;
const prune = s.option(form.Button, '_prune', null);
prune.inputtitle = `${dm2.ActionTypes['prune'].i18n} ${dm2.ActionTypes['prune'].e}`;
prune.inputtitle = `${dm2.ActionTypes['prune'].i18n}`;
prune.inputstyle = 'negative';
prune.onclick = L.bind(function(sid, ev) {
@@ -106,7 +106,7 @@ return dm2.dv.extend({
volSec.addremove = true;
volSec.sortable = true;
volSec.filterrow = true;
volSec.addbtntitle = `${dm2.ActionTypes['create'].i18n} ${dm2.ActionTypes['create'].e}`;
volSec.addbtntitle = `${dm2.ActionTypes['create'].i18n}`;
volSec.footer = [
`${_('Total')} ${volume_list.length}`,
];
@@ -145,7 +145,7 @@ return dm2.dv.extend({
E('button', {
'class': 'cbi-button',
'click': ui.hideModal
}, ['↩']),
}, [_('Cancel')]),
' ',
E('button', {
'class': 'cbi-button cbi-button-positive',
@@ -173,7 +173,7 @@ return dm2.dv.extend({
}
);
})
}, [dm2.Types['volume'].sub['create'].e])
}, [dm2.Types['volume'].sub['create'].i18n])
])
]);
};
@@ -216,7 +216,7 @@ return dm2.dv.extend({
'class': 'cbi-button view',
'title': dm2.ActionTypes['inspect'].i18n,
'click': ui.createHandlerFn(this, this.handleInspect, sid),
}, [dm2.ActionTypes['inspect'].e]),
}, [dm2.ActionTypes['inspect'].i18n]),
E('div', {
'style': 'width: 20px',
@@ -228,19 +228,19 @@ return dm2.dv.extend({
'title': dm2.ActionTypes['remove'].i18n,
'click': ui.createHandlerFn(this, this.handleRemove, sid, false),
'disabled': volume?._disable_delete,
}, [dm2.ActionTypes['remove'].e]),
}, [dm2.ActionTypes['remove'].i18n]),
E('button', {
'class': 'cbi-button cbi-button-negative important remove',
'title': dm2.ActionTypes['force_remove'].i18n,
'click': ui.createHandlerFn(this, this.handleRemove, sid, true),
}, [dm2.ActionTypes['force_remove'].e]),
}, [dm2.ActionTypes['force_remove'].i18n]),
];
return E('td', { 'class': 'td middle cbi-section-actions' }, E('div', btns));
};
volSec.option(form.DummyValue, '_name', _('Name'));
o = volSec.option(form.DummyValue, 'Labels', _('Labels') + ' 🏷️');
o = volSec.option(form.DummyValue, 'Labels', _('Labels'));
o.cfgvalue = view.objectCfgValueTT;
volSec.option(form.DummyValue, 'Driver', _('Driver'));