feat(funcs-console): показывать sless_service вместе с функциями — единый листинг
This commit is contained in:
+46
-12
@@ -176,6 +176,18 @@
|
||||
color: #f85149;
|
||||
}
|
||||
|
||||
.badge-kind-service {
|
||||
background: #0d2538;
|
||||
border: 1px solid #1158a7;
|
||||
color: #58a6ff;
|
||||
}
|
||||
|
||||
.badge-kind-function {
|
||||
background: #1a2538;
|
||||
border: 1px solid #30363d;
|
||||
color: #8b949e;
|
||||
}
|
||||
|
||||
.fn-url {
|
||||
font-size: 0.76rem;
|
||||
color: #58a6ff;
|
||||
@@ -328,7 +340,10 @@
|
||||
var byFn = data.triggersByFn || {};
|
||||
|
||||
document.getElementById('ns-label').textContent = ns;
|
||||
document.getElementById('summary').textContent = 'Функций: ' + fns.length;
|
||||
var svcsCount = fns.filter(function(f){ return f.kind === 'service'; }).length;
|
||||
var fnsCount = fns.filter(function(f){ return f.kind !== 'service'; }).length;
|
||||
document.getElementById('summary').textContent =
|
||||
'Функций: ' + fnsCount + ' | Сервисов: ' + svcsCount + ' | Всего: ' + fns.length;
|
||||
|
||||
var list = document.getElementById('fn-list');
|
||||
if (fns.length === 0) {
|
||||
@@ -348,21 +363,40 @@
|
||||
|
||||
$txt(hdr, 'span', 'fn-name', fn.name);
|
||||
$txt(hdr, 'span', 'badge badge-runtime', fn.runtime);
|
||||
$txt(hdr, 'span', 'badge badge-' + fn.phase, fn.phase);
|
||||
$txt(hdr, 'span', 'badge badge-' + fn.phase, fn.phase || 'Pending');
|
||||
if (fn.kind) {
|
||||
var kindLabel = fn.kind === 'service' ? 'always-on' : 'job';
|
||||
$txt(hdr, 'span', 'badge badge-kind-' + fn.kind, kindLabel);
|
||||
}
|
||||
|
||||
// sless_service имеет прямой URL из статуса деплоя
|
||||
if (fn.url) {
|
||||
var a = document.createElement('a');
|
||||
a.className = 'fn-url';
|
||||
a.href = fn.url;
|
||||
a.target = '_blank';
|
||||
a.rel = 'noopener noreferrer';
|
||||
a.textContent = fn.url;
|
||||
a.addEventListener('click', function (e) { e.stopPropagation(); });
|
||||
hdr.appendChild(a);
|
||||
}
|
||||
|
||||
for (var t = 0; t < triggers.length; t++) {
|
||||
var tr = triggers[t];
|
||||
if (tr.type === 'http') {
|
||||
var url = extURL ? extURL + '/fn/' + ns + '/' + fn.name : (tr.url || '');
|
||||
if (url) {
|
||||
var a = document.createElement('a');
|
||||
a.className = 'fn-url';
|
||||
a.href = url;
|
||||
a.target = '_blank';
|
||||
a.rel = 'noopener noreferrer';
|
||||
a.textContent = url;
|
||||
a.addEventListener('click', function (e) { e.stopPropagation(); });
|
||||
hdr.appendChild(a);
|
||||
// Для job-style функций URL берём из триггера; для сервисов уже показан fn.url
|
||||
if (!fn.url) {
|
||||
var url = extURL ? extURL + '/fn/' + ns + '/' + fn.name : (tr.url || '');
|
||||
if (url) {
|
||||
var a = document.createElement('a');
|
||||
a.className = 'fn-url';
|
||||
a.href = url;
|
||||
a.target = '_blank';
|
||||
a.rel = 'noopener noreferrer';
|
||||
a.textContent = url;
|
||||
a.addEventListener('click', function (e) { e.stopPropagation(); });
|
||||
hdr.appendChild(a);
|
||||
}
|
||||
}
|
||||
hdr.appendChild(makeTriggerBtn(tr, ns));
|
||||
} else if (tr.type === 'cron') {
|
||||
|
||||
Reference in New Issue
Block a user