G-1: 메신저 Webhook Relay + _send_to_room 실제 httpx 호출 구현 G-2: POST /api/tasks/bulk SR 대량작업 엔드포인트 (최대 100건) G-3: 라이선스 만료 알림 스케줄러 (매일 09:00 KST) G-4: 체험판 upgrade_banner 필드 + license.py 배너 로직 G-5: core/auto_rca.py + incidents/problem auto-rca 엔드포인트 G-6: core/deploy_impact.py + vibe impact-analysis 엔드포인트 G-7: core/ticket_classifier.py + SR 생성 시 AI 분류 + ai-suggestion API G-8: VulnPatchRecord 모델 + vuln_scan 패치추적 4개 엔드포인트 G-9: core/jira_sync.py + gateway Jira/Confluence 연동 엔드포인트 G-10: core/push_notify.py + routers/push.py + PushSubscription 모델 G-11: approvals 다중승인 (위임/서명/기한초과/마감연장) G-12: alembic.ini + migrations/ + cicd/migrate_to_postgres.sh 하네스: guardia-orchestrator 확장기능 Phase 반영 봇명령어: /sr /status /license /bulk 슬래시 명령어 추가 설치스크립트: setup/ (Ubuntu, CentOS, RHEL, Windows) --test 옵션 포함 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
83 lines
2.9 KiB
HTML
83 lines
2.9 KiB
HTML
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<title>Sample for the multiple dates feature</title>
|
|
<!-- calendar stylesheet -->
|
|
<link rel="stylesheet" type="text/css" media="all" href="calendar-win2k-cold-1.css" title="win2k-cold-1" />
|
|
|
|
<!-- main calendar program -->
|
|
<script type="text/javascript" src="calendar.js"></script>
|
|
|
|
<!-- language for the calendar -->
|
|
<script type="text/javascript" src="lang/calendar-en.js"></script>
|
|
|
|
<!-- the following script defines the Calendar.setup helper function, which makes
|
|
adding a calendar a matter of 1 or 2 lines of code. -->
|
|
<script type="text/javascript" src="calendar-setup.js"></script>
|
|
</head>
|
|
|
|
<body>
|
|
<h1>Sample for the multiple dates feature</h1>
|
|
|
|
<p>
|
|
Starting version 0.9.7,
|
|
the calendar is able to handle multiple dates selection, in either
|
|
flat or popup form. For this to happen one needs to pass the
|
|
"<tt>multiple: true</tt>" parameter to
|
|
<tt>Calendar.setup</tt> and to install an <tt>onUpdate</tt>
|
|
handler that watches for modifications.
|
|
</p>
|
|
|
|
<a id="trigger" href="#">[open calendar...]</a>
|
|
|
|
<div id="output"></div>
|
|
|
|
<script type="text/javascript">//<![CDATA[
|
|
// the default multiple dates selected, first time the calendar is instantiated
|
|
var MA = [];
|
|
|
|
function closed(cal) {
|
|
|
|
// here we'll write the output; this is only for example. You
|
|
// will normally fill an input field or something with the dates.
|
|
var el = document.getElementById("output");
|
|
|
|
// reset initial content.
|
|
el.innerHTML = "";
|
|
|
|
// Reset the "MA", in case one triggers the calendar again.
|
|
// CAREFUL! You don't want to do "MA = [];". We need to modify
|
|
// the value of the current array, instead of creating a new one.
|
|
// Calendar.setup is called only once! :-) So be careful.
|
|
MA.length = 0;
|
|
|
|
// walk the calendar's multiple dates selection hash
|
|
for (var i in cal.multiple) {
|
|
var d = cal.multiple[i];
|
|
// sometimes the date is not actually selected, that's why we need to check.
|
|
if (d) {
|
|
// OK, selected. Fill an input field. Or something. Just for example,
|
|
// we will display all selected dates in the element having the id "output".
|
|
el.innerHTML += d.print("%A, %Y %B %d") + "<br />";
|
|
|
|
// and push it in the "MA", in case one triggers the calendar again.
|
|
MA[MA.length] = d;
|
|
}
|
|
}
|
|
cal.hide();
|
|
return true;
|
|
};
|
|
|
|
Calendar.setup({
|
|
align : "BR",
|
|
showOthers : true,
|
|
multiple : MA, // pass the initial or computed array of multiple dates to be initially selected
|
|
onClose : closed,
|
|
button : "trigger"
|
|
});
|
|
//]]></script>
|
|
|
|
<hr />
|
|
<address><a href="http://dynarch.com/mishoo/">mishoo</a></address>
|
|
<!-- hhmts start --> Last modified: Thu Mar 3 20:17:42 EET 2005 <!-- hhmts end -->
|
|
</body> </html>
|