MCPcopy Create free account
hub / github.com/Tron521/codex-console-temp / renderEmailServices

Function renderEmailServices

static/js/settings.js:523–568  ·  view source on GitHub ↗
(services)

Source from the content-addressed store, hash-verified

521
522// 渲染邮箱服务
523function renderEmailServices(services) {
524 // 检查元素是否存在
525 if (!elements.emailServicesTable) return;
526
527 if (services.length === 0) {
528 elements.emailServicesTable.innerHTML = `
529 <tr>
530 <td colspan="7">
531 <div class="empty-state">
532 <div class="empty-state-icon">📭</div>
533 <div class="empty-state-title">暂无配置</div>
534 <div class="empty-state-description">点击上方"添加服务"按钮添加邮箱服务</div>
535 </div>
536 </td>
537 </tr>
538 `;
539 return;
540 }
541
542 elements.emailServicesTable.innerHTML = services.map(service => `
543 <tr data-service-id="${service.id}">
544 <td>
545 <input type="checkbox" class="service-checkbox" data-id="${service.id}"
546 onchange="updateSelectedServices()">
547 </td>
548 <td>${escapeHtml(service.name)}</td>
549 <td>${getServiceTypeText(service.service_type)}</td>
550 <td title="${service.enabled ? '已启用' : '已禁用'}">${service.enabled ? '✅' : '⭕'}</td>
551 <td>${service.priority}</td>
552 <td>${format.date(service.last_used)}</td>
553 <td>
554 <div class="action-buttons">
555 <button class="btn btn-ghost btn-sm" onclick="testService(${service.id})" title="测试">
556 🔌
557 </button>
558 <button class="btn btn-ghost btn-sm" onclick="toggleService(${service.id}, ${!service.enabled})" title="${service.enabled ? '禁用' : '启用'}">
559 ${service.enabled ? '🔒' : '🔓'}
560 </button>
561 <button class="btn btn-ghost btn-sm" onclick="deleteService(${service.id})" title="删除">
562 🗑️
563 </button>
564 </div>
565 </td>
566 </tr>
567 `).join('');
568}
569
570// 加载数据库信息
571async function loadDatabaseInfo() {

Callers 1

loadEmailServicesFunction · 0.85

Calls 2

getServiceTypeTextFunction · 0.85
escapeHtmlFunction · 0.70

Tested by

no test coverage detected