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

Function bindEvents

static/js/logs.js:235–285  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

233}
234
235function bindEvents() {
236 el.refreshBtn.addEventListener("click", () => {
237 loadLogs();
238 loadStats();
239 });
240 el.clearFiltersBtn.addEventListener("click", resetFilters);
241 el.cleanupBtn.addEventListener("click", cleanupLogs);
242 el.clearLogsBtn?.addEventListener("click", clearAllLogs);
243
244 el.pageSizeSelect.addEventListener("change", () => {
245 logsState.pageSize = Number(el.pageSizeSelect.value || 100);
246 logsState.page = 1;
247 loadLogs();
248 });
249 el.prevPageBtn.addEventListener("click", () => {
250 if (logsState.page <= 1) return;
251 logsState.page -= 1;
252 loadLogs();
253 });
254 el.nextPageBtn.addEventListener("click", () => {
255 const maxPage = Math.max(1, Math.ceil(logsState.total / logsState.pageSize));
256 if (logsState.page >= maxPage) return;
257 logsState.page += 1;
258 loadLogs();
259 });
260
261 [
262 el.filterLevel,
263 el.filterLogger,
264 el.filterKeyword,
265 el.filterSinceMinutes,
266 ].forEach((node) => {
267 node.addEventListener("change", () => {
268 logsState.page = 1;
269 loadLogs();
270 });
271 });
272 el.filterLogger.addEventListener("input", debounce(() => {
273 logsState.page = 1;
274 loadLogs(true);
275 }, 300));
276 el.filterKeyword.addEventListener("input", debounce(() => {
277 logsState.page = 1;
278 loadLogs(true);
279 }, 300));
280
281 el.autoRefreshSeconds.addEventListener("change", () => {
282 logsState.autoRefreshSeconds = Number(el.autoRefreshSeconds.value || 0);
283 restartAutoRefresh();
284 });
285}
286
287document.addEventListener("DOMContentLoaded", async () => {
288 bindEvents();

Callers 1

logs.jsFile · 0.70

Calls 4

loadLogsFunction · 0.85
debounceFunction · 0.85
restartAutoRefreshFunction · 0.85
loadStatsFunction · 0.70

Tested by

no test coverage detected