psnc commited on
Commit
3c96070
·
1 Parent(s): 4e391bd

fix: status polling startsWith error, add TimesFM nav link to all HTML pages

Browse files
static/arima.html CHANGED
@@ -129,6 +129,7 @@
129
  <li><a href="/theta">Theta <span class="model-tag tag-theta">Classical</span></a></li>
130
  <li><a href="/ets">ETS <span class="model-tag tag-ets">Smoothing</span></a></li>
131
  <li><a href="/hybrid">Hybrid <span class="model-tag" style="background: rgba(236, 72, 153, 0.15); color: #f472b6;">LLM</span></a></li>
 
132
  </ul>
133
  </div>
134
  </nav>
 
129
  <li><a href="/theta">Theta <span class="model-tag tag-theta">Classical</span></a></li>
130
  <li><a href="/ets">ETS <span class="model-tag tag-ets">Smoothing</span></a></li>
131
  <li><a href="/hybrid">Hybrid <span class="model-tag" style="background: rgba(236, 72, 153, 0.15); color: #f472b6;">LLM</span></a></li>
132
+ <li><a href="/timesfm">TimesFM <span class="model-tag" style="background: rgba(56, 189, 248, 0.15); color: #7dd3fc;">FM</span></a></li>
133
  </ul>
134
  </div>
135
  </nav>
static/ets.html CHANGED
@@ -121,6 +121,8 @@
121
  <li><a href="/arima">ARIMA <span class="model-tag tag-classic">Classical</span></a></li>
122
  <li><a href="/theta">Theta <span class="model-tag tag-theta">Classical</span></a></li>
123
  <li><a href="/ets" class="active">ETS <span class="model-tag tag-ets">Smoothing</span></a></li>
 
 
124
  </ul>
125
  </div>
126
  </nav>
 
121
  <li><a href="/arima">ARIMA <span class="model-tag tag-classic">Classical</span></a></li>
122
  <li><a href="/theta">Theta <span class="model-tag tag-theta">Classical</span></a></li>
123
  <li><a href="/ets" class="active">ETS <span class="model-tag tag-ets">Smoothing</span></a></li>
124
+ <li><a href="/hybrid">Hybrid <span class="model-tag" style="background: rgba(236, 72, 153, 0.15); color: #f472b6;">LLM</span></a></li>
125
+ <li><a href="/timesfm">TimesFM <span class="model-tag" style="background: rgba(56, 189, 248, 0.15); color: #7dd3fc;">FM</span></a></li>
126
  </ul>
127
  </div>
128
  </nav>
static/hybrid.html CHANGED
@@ -612,6 +612,7 @@
612
  <li><a href="/theta">Theta <span class="model-tag tag-theta">Classical</span></a></li>
613
  <li><a href="/ets">ETS <span class="model-tag tag-ets">Smoothing</span></a></li>
614
  <li><a href="/hybrid" class="active">하이브리드 <span class="model-tag tag-hybrid">Hybrid</span></a></li>
 
615
  </ul>
616
  </div>
617
  </nav>
 
612
  <li><a href="/theta">Theta <span class="model-tag tag-theta">Classical</span></a></li>
613
  <li><a href="/ets">ETS <span class="model-tag tag-ets">Smoothing</span></a></li>
614
  <li><a href="/hybrid" class="active">하이브리드 <span class="model-tag tag-hybrid">Hybrid</span></a></li>
615
+ <li><a href="/timesfm">TimesFM <span class="model-tag" style="background: rgba(56, 189, 248, 0.15); color: #7dd3fc;">FM</span></a></li>
616
  </ul>
617
  </div>
618
  </nav>
static/index.html CHANGED
@@ -402,6 +402,7 @@
402
  <li><a href="/theta">Theta <span class="model-tag tag-theta">Classical</span></a></li>
403
  <li><a href="/ets">ETS <span class="model-tag tag-ets">Smoothing</span></a></li>
404
  <li><a href="/hybrid">Hybrid <span class="model-tag" style="background: rgba(236, 72, 153, 0.15); color: #f472b6;">LLM</span></a></li>
 
405
  </ul>
406
  </div>
407
  </nav>
 
402
  <li><a href="/theta">Theta <span class="model-tag tag-theta">Classical</span></a></li>
403
  <li><a href="/ets">ETS <span class="model-tag tag-ets">Smoothing</span></a></li>
404
  <li><a href="/hybrid">Hybrid <span class="model-tag" style="background: rgba(236, 72, 153, 0.15); color: #f472b6;">LLM</span></a></li>
405
+ <li><a href="/timesfm">TimesFM <span class="model-tag" style="background: rgba(56, 189, 248, 0.15); color: #7dd3fc;">FM</span></a></li>
406
  </ul>
407
  </div>
408
  </nav>
static/lightgbm.html CHANGED
@@ -120,6 +120,7 @@
120
  <li><a href="/theta">Theta <span class="model-tag tag-theta">Classical</span></a></li>
121
  <li><a href="/ets">ETS <span class="model-tag tag-ets">Smoothing</span></a></li>
122
  <li><a href="/hybrid">Hybrid <span class="model-tag" style="background: rgba(236, 72, 153, 0.15); color: #f472b6;">LLM</span></a></li>
 
123
  </ul>
124
  </div>
125
  </nav>
 
120
  <li><a href="/theta">Theta <span class="model-tag tag-theta">Classical</span></a></li>
121
  <li><a href="/ets">ETS <span class="model-tag tag-ets">Smoothing</span></a></li>
122
  <li><a href="/hybrid">Hybrid <span class="model-tag" style="background: rgba(236, 72, 153, 0.15); color: #f472b6;">LLM</span></a></li>
123
+ <li><a href="/timesfm">TimesFM <span class="model-tag" style="background: rgba(56, 189, 248, 0.15); color: #7dd3fc;">FM</span></a></li>
124
  </ul>
125
  </div>
126
  </nav>
static/prophet.html CHANGED
@@ -120,6 +120,7 @@
120
  <li><a href="/theta">Theta <span class="model-tag tag-theta">Classical</span></a></li>
121
  <li><a href="/ets">ETS <span class="model-tag tag-ets">Smoothing</span></a></li>
122
  <li><a href="/hybrid">Hybrid <span class="model-tag" style="background: rgba(236, 72, 153, 0.15); color: #f472b6;">LLM</span></a></li>
 
123
  </ul>
124
  </div>
125
  </nav>
 
120
  <li><a href="/theta">Theta <span class="model-tag tag-theta">Classical</span></a></li>
121
  <li><a href="/ets">ETS <span class="model-tag tag-ets">Smoothing</span></a></li>
122
  <li><a href="/hybrid">Hybrid <span class="model-tag" style="background: rgba(236, 72, 153, 0.15); color: #f472b6;">LLM</span></a></li>
123
+ <li><a href="/timesfm">TimesFM <span class="model-tag" style="background: rgba(56, 189, 248, 0.15); color: #7dd3fc;">FM</span></a></li>
124
  </ul>
125
  </div>
126
  </nav>
static/theta.html CHANGED
@@ -122,6 +122,7 @@
122
  <li><a href="/theta" class="active">Theta <span class="model-tag tag-theta">Classical</span></a></li>
123
  <li><a href="/ets">ETS <span class="model-tag tag-ets">Smoothing</span></a></li>
124
  <li><a href="/hybrid">Hybrid <span class="model-tag" style="background: rgba(236, 72, 153, 0.15); color: #f472b6;">LLM</span></a></li>
 
125
  </ul>
126
  </div>
127
  </nav>
 
122
  <li><a href="/theta" class="active">Theta <span class="model-tag tag-theta">Classical</span></a></li>
123
  <li><a href="/ets">ETS <span class="model-tag tag-ets">Smoothing</span></a></li>
124
  <li><a href="/hybrid">Hybrid <span class="model-tag" style="background: rgba(236, 72, 153, 0.15); color: #f472b6;">LLM</span></a></li>
125
+ <li><a href="/timesfm">TimesFM <span class="model-tag" style="background: rgba(56, 189, 248, 0.15); color: #7dd3fc;">FM</span></a></li>
126
  </ul>
127
  </div>
128
  </nav>
static/timesfm.html CHANGED
@@ -530,13 +530,17 @@
530
 
531
  /* ---- 모델 상태 폴링 ---- */
532
  function updateBadge(status) {
 
 
 
 
533
  const map = {
534
  loading: ['badge-loading', '<span class="spinner"></span>모델 로딩 중'],
535
  loaded: ['badge-loaded', '● 모델 준비됨'],
536
  error: ['badge-error', '● 로딩 오류'],
537
  not_loaded: ['badge-not_loaded', '● 모델 미로딩'],
538
  };
539
- const [cls, text] = map[status] || map['not_loaded'];
540
  modelStatusBadge.className = 'status-badge ' + cls;
541
  modelStatusBadge.innerHTML = text;
542
  }
@@ -552,7 +556,7 @@
552
  modelReady = true;
553
  refreshPredictBtn();
554
  if (pollTimer) { clearInterval(pollTimer); pollTimer = null; }
555
- } else if (status === 'error') {
556
  if (pollTimer) { clearInterval(pollTimer); pollTimer = null; }
557
  }
558
  } catch (_) {
 
530
 
531
  /* ---- 모델 상태 폴링 ---- */
532
  function updateBadge(status) {
533
+ const key = status === 'loaded' ? 'loaded'
534
+ : status === 'loading' ? 'loading'
535
+ : status.startsWith('error') ? 'error'
536
+ : 'not_loaded';
537
  const map = {
538
  loading: ['badge-loading', '<span class="spinner"></span>모델 로딩 중'],
539
  loaded: ['badge-loaded', '● 모델 준비됨'],
540
  error: ['badge-error', '● 로딩 오류'],
541
  not_loaded: ['badge-not_loaded', '● 모델 미로딩'],
542
  };
543
+ const [cls, text] = map[key];
544
  modelStatusBadge.className = 'status-badge ' + cls;
545
  modelStatusBadge.innerHTML = text;
546
  }
 
556
  modelReady = true;
557
  refreshPredictBtn();
558
  if (pollTimer) { clearInterval(pollTimer); pollTimer = null; }
559
+ } else if (status.startsWith('error')) {
560
  if (pollTimer) { clearInterval(pollTimer); pollTimer = null; }
561
  }
562
  } catch (_) {
static/xgboost.html CHANGED
@@ -120,6 +120,7 @@
120
  <li><a href="/theta">Theta <span class="model-tag tag-theta">Classical</span></a></li>
121
  <li><a href="/ets">ETS <span class="model-tag tag-ets">Smoothing</span></a></li>
122
  <li><a href="/hybrid">Hybrid <span class="model-tag" style="background: rgba(236, 72, 153, 0.15); color: #f472b6;">LLM</span></a></li>
 
123
  </ul>
124
  </div>
125
  </nav>
 
120
  <li><a href="/theta">Theta <span class="model-tag tag-theta">Classical</span></a></li>
121
  <li><a href="/ets">ETS <span class="model-tag tag-ets">Smoothing</span></a></li>
122
  <li><a href="/hybrid">Hybrid <span class="model-tag" style="background: rgba(236, 72, 153, 0.15); color: #f472b6;">LLM</span></a></li>
123
+ <li><a href="/timesfm">TimesFM <span class="model-tag" style="background: rgba(56, 189, 248, 0.15); color: #7dd3fc;">FM</span></a></li>
124
  </ul>
125
  </div>
126
  </nav>