auto: 일일 백업 2026-06-26 02:00

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
hyowons
2026-06-26 02:00:04 +09:00
parent c15c3a1fec
commit 03989e9df4
161 changed files with 2658 additions and 1563 deletions
+51 -1
View File
@@ -5074,6 +5074,33 @@ table.market-adr td.adr-breakdown { font-size: 11px; color: #8b8f9a; }
background: rgba(255,77,94,0.15); border-color: #ff4d5e; color: #ff4d5e;
}
.account-view-pane[hidden] { display: none; }
/* 옵션 버튼 + 작은 팝업 메뉴 상단 자동토글 왼쪽. 클릭하면 팝업 토글, 안에 계좌 나누기 버튼 등을 담는다. */
.opts-wrap { position: relative; flex: none; display: inline-flex; }
.opts-btn {
flex: none; display: inline-flex; align-items: center; justify-content: center;
min-width: 36px; height: 36px; padding: 0 10px;
background: #1c2230; border: 1px solid #2a3142; color: #e6e6e6;
border-radius: 8px; font-size: 13px; line-height: 1; cursor: pointer;
font-family: inherit; user-select: none;
transition: background 0.15s, color 0.15s, border-color 0.15s, transform 0.1s;
}
.opts-btn:hover { background: #232a3b; }
.opts-btn:active { transform: scale(0.95); }
.opts-btn[aria-expanded="true"] { background: #232a3b; border-color: #3a4256; }
.opts-popup {
position: absolute; top: calc(100% + 6px); right: 0; z-index: 60;
background: #161b27; border: 1px solid #2a3142; border-radius: 10px;
padding: 6px; box-shadow: 0 8px 24px rgba(0,0,0,0.45);
display: flex; flex-direction: column; gap: 4px; min-width: 168px;
}
.opts-popup[hidden] { display: none; }
/* 팝업 메뉴 항목으로 쓰일 때의 계좌 나누기 버튼 가로 채우고 좌측 정렬 + 아이콘. */
.opts-item {
width: 100%; min-width: 0; height: auto; padding: 9px 11px;
justify-content: flex-start; gap: 9px; font-size: 13px; font-weight: 600;
}
.opts-item .opts-ico { font-size: 16px; line-height: 1; }
.holdings-toggle-wrap { margin-top: 4px; }
/* 차트 컨트롤 자산정보 상단의 공통 기간·단위 select 묶음. */
@@ -7051,6 +7078,24 @@ def render_html() -> str:
'accountViewState=next;'
'applyAccountView(next);'
'});'
# 옵션 버튼 → 작은 팝업 토글. 버튼 클릭은 열고/닫고, 바깥 클릭은 닫는다.
# (팝업 안 계좌 나누기 버튼은 위 핸들러가 처리 — 팝업은 그대로 열어둠)
'document.addEventListener("click",function(e){'
'var pop=document.getElementById("opts-popup");'
'var btn=document.getElementById("opts-toggle");'
'if(!pop||!btn)return;'
'var ob=e.target.closest&&e.target.closest("#opts-toggle");'
'if(ob){'
'e.preventDefault();'
'var willOpen=pop.hasAttribute("hidden");'
'if(willOpen){pop.removeAttribute("hidden");btn.setAttribute("aria-expanded","true");}'
'else{pop.setAttribute("hidden","");btn.setAttribute("aria-expanded","false");}'
'return;'
'}'
'if(!pop.hasAttribute("hidden")&&!(e.target.closest&&e.target.closest("#opts-popup"))){'
'pop.setAttribute("hidden","");btn.setAttribute("aria-expanded","false");'
'}'
'});'
# ADR 추세 카드의 기간 버튼 (1주/1달/3달/6달/1년/전체) — localStorage 저장 후 전체 재fetch.
'document.addEventListener("click",function(e){'
'var bt=e.target.closest&&e.target.closest(".adr-range-btn");'
@@ -9695,9 +9740,14 @@ window.openPinModal = openPinModal;
</div>
<div class="top-actions">
<button type="button" id="ws-status" class="ws-dot" title="실시간 연결 상태 (탭하면 표시)" aria-label="실시간 연결 상태"></button>
<button type="button" class="account-view-toggle-btn" data-account-view-state="consolidated" aria-label="계좌 보기 방식 (합산 / 각계좌별도) 토글" title="합산 / 각계좌별도 토글"></button>
<button id="auto-toggle" class="auto-toggle" type="button" aria-pressed="false" title="자동 갱신 사이클: off → 10s → 3s (자산정보·관리자·가희·관심종목 탭에서 동작, 페이지를 보고 있을 때만)"><span class="auto-dot"></span><span>자동</span></button>
<a class="refresh" href="#" onclick="event.preventDefault();window.__behive_manual_refresh&&window.__behive_manual_refresh();" aria-label="새로고침" title="새로고침"></a>
<div class="opts-wrap">
<button type="button" id="opts-toggle" class="opts-btn" aria-haspopup="true" aria-expanded="false" aria-label="옵션" title="옵션"></button>
<div class="opts-popup" id="opts-popup" hidden role="menu" aria-label="옵션">
<button type="button" class="account-view-toggle-btn opts-item" data-account-view-state="consolidated" role="menuitem" aria-label="계좌 보기 방식 (합산 / 각계좌별도) 토글" title="합산 / 각계좌별도 토글"><span class="opts-ico"></span><span>계좌 나누기</span></button>
</div>
</div>
</div>
</header>
<nav class="tabs" role="tablist">