1
0

refactor: introduce modern frontend

This commit is contained in:
2026-04-28 15:47:32 +08:00
parent a0e3385670
commit 37435eeb66
71 changed files with 3582 additions and 0 deletions

View File

@@ -0,0 +1,100 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title id="ccn-pageName"></title>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.1/css/bulma.min.css">
<script src="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.12.1/js/all.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery-i18n-properties@1.2.7/jquery.i18n.properties.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jsrender@1.0.10/jsrender.min.js"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-headerNav" src="/static/tmpl/headerNav.tmpl"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-messagebox" src="/static/tmpl/messagebox.tmpl"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-userItem" src="/static/tmpl/userItem.tmpl"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-tokenItem" src="/static/tmpl/tokenItem.tmpl"></script>
<script type="text/javascript" src="/static/js/localStorageAssist.js"></script>
<script type="text/javascript" src="/static/js/i18n.js"></script>
<script type="text/javascript" src="/static/js/utils.js"></script>
<script type="text/javascript" src="/static/js/api.js"></script>
<script type="text/javascript" src="/static/js/template.js"></script>
<script type="text/javascript" src="/static/js/headerNav.js"></script>
<script type="text/javascript" src="/static/js/tabcontrol.js"></script>
<script type="text/javascript" src="/static/js/messagebox.js"></script>
<script type="text/javascript" src="/static/js/page/admin.js"></script>
<link rel="stylesheet" href="/static/css/admin.css">
</head>
<body>
<div class="container" style="margin-top: 20px;">
<div class="tabs">
<ul>
<li id="tabcontrol-tab-1-1" class="tabcontrol-tab-1"><a
i18n-name="ccn-i18n-admin-tabcontrol-tabProfile"></a></li>
<li id="tabcontrol-tab-1-2" class="tabcontrol-tab-1"><a
i18n-name="ccn-i18n-admin-tabcontrol-tabToken"></a></li>
<li id="tabcontrol-tab-1-3" class="tabcontrol-tab-1"><a
i18n-name="ccn-i18n-admin-tabcontrol-tabUserList"></a></li>
</ul>
</div>
</div>
<div id="tabcontrol-panel-1-1" class="container tabcontrol-panel-1" style="margin-top: 20px;">
<h1 class="title" i18n-name="ccn-i18n-admin-changePassword"></h1>
<div class="field has-addons">
<div class="control">
<input id="ccn-admin-profile-inputPassword" class="input" type="password">
</div>
<div class="control">
<a id="ccn-admin-profile-btnChangePassword" class="button is-primary">
<span class="icon is-small"><i class="fas fa-key"></i></span>
</a>
</div>
</div>
</div>
<div id="tabcontrol-panel-1-2" class="container tabcontrol-panel-1" style="margin-top: 20px;">
<h1 class="title" i18n-name="ccn-i18n-admin-manageToken"></h1>
<h2 class="subtitle" i18n-name="ccn-i18n-admin-manageToken-desc"></h2>
<div id="ccn-admin-tokenList-btnRefresh" class="control">
<a class="button is-primary">
<span class="icon is-small"><i class="fas fa-sync"></i></span>
</a>
</div>
<div id="ccn-admin-tokenList" style="display: flex; flex-flow: column; margin-top: 1.25rem;">
</div>
</div>
<div id="tabcontrol-panel-1-3" class="container tabcontrol-panel-1" style="margin-top: 20px;">
<h1 class="title" i18n-name="ccn-i18n-admin-userList"></h1>
<div class="control-list">
<div class="field has-addons">
<div class="control">
<input id="ccn-admin-userList-inputUsername" class="input" type="text">
</div>
<div id="ccn-admin-userList-btnAdd" class="control">
<a class="button is-primary">
<span class="icon is-small"><i class="fas fa-plus"></i></span>
</a>
</div>
</div>
<div id="ccn-admin-userList-btnRefresh" class="control">
<a class="button is-primary">
<span class="icon is-small"><i class="fas fa-sync"></i></span>
</a>
</div>
</div>
<div id="ccn-admin-userList" style="display: flex; flex-flow: column; margin-top: 1.25rem;">
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,156 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title id="ccn-pageName"></title>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.1/css/bulma.min.css">
<script src="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.12.1/js/all.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.js"></script>
<script type="text/javascript"
src="https://cdn.jsdelivr.net/npm/jquery-i18n-properties@1.2.7/jquery.i18n.properties.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jsrender@1.0.10/jsrender.min.js"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-headerNav" src="/static/tmpl/headerNav.tmpl"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-messagebox" src="/static/tmpl/messagebox.tmpl"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-datetimepicker" src="/static/tmpl/datetimepicker.tmpl"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-calendarItem" src="/static/tmpl/calendarItem.tmpl"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-scheduleItem" src="/static/tmpl/scheduleItem.tmpl"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-displayOwnedItem" src="/static/tmpl/displayOwnedItem.tmpl"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-displaySharedItem" src="/static/tmpl/displaySharedItem.tmpl"></script>
<script type="text/javascript" src="/static/js/localStorageAssist.js"></script>
<script type="text/javascript" src="/static/js/datetime.js"></script>
<script type="text/javascript" src="/static/js/i18n.js"></script>
<script type="text/javascript" src="/static/js/utils.js"></script>
<script type="text/javascript" src="/static/js/api.js"></script>
<script type="text/javascript" src="/static/js/template.js"></script>
<script type="text/javascript" src="/static/js/headerNav.js"></script>
<script type="text/javascript" src="/static/js/tabcontrol.js"></script>
<script type="text/javascript" src="/static/js/messagebox.js"></script>
<script type="text/javascript" src="/static/js/datetimepicker.js"></script>
<script type="text/javascript" src="/static/js/page/calendar.js"></script>
<link rel="stylesheet" href="/static/css/calendar.css">
<link rel="stylesheet" href="/static/css/datetimepicker.css">
</head>
<body>
<div class="container" style="margin-top: 20px;">
<div class="tabs">
<ul>
<li id="tabcontrol-tab-1-1" class="tabcontrol-tab-1"><a
i18n-name="ccn-i18n-calendar-tabcontrol-tabCalendar"></a></li>
<li id="tabcontrol-tab-1-2" class="tabcontrol-tab-1"><a
i18n-name="ccn-i18n-calendar-tabcontrol-tabCollection"></a></li>
<li id="tabcontrol-tab-1-3" class="tabcontrol-tab-1"><a
i18n-name="ccn-i18n-calendar-tabcontrol-tabDisplay"></a></li>
</ul>
</div>
</div>
<div id="tabcontrol-panel-1-1" class="container tabcontrol-panel-1" style="margin-top: 20px;">
<nav class="level is-mobile">
<div class="level-left">
<div class="level-item control">
<a id="ccn-calendar-calendar-btnPrevMonth" class="button">
<span class="icon is-small"><i class="fas fa-chevron-circle-left"></i></span>
</a>
</div>
</div>
<div class="level-item control">
<a id="ccn-calendar-calendar-btnJump" class="button" datetimepicker="1">
<span id="ccn-calendar-calendar-textMonth"></span>
</a>
</div>
<div class="level-right">
<div class="level-item control">
<a id="ccn-calendar-calendar-btnNextMonth" class="button">
<span class="icon is-small"><i class="fas fa-chevron-circle-right"></i></span>
</a>
</div>
</div>
</nav>
<nav class="level is-mobile">
<div class="level-item control">
<a id="ccn-calendar-calendar-btnToday" i18n-name="ccn-i18n-calendar-calendar-today" class="button is-info"></a>
</div>
<div class="level-item control">
<a id="ccn-calendar-calendar-btnAdd" i18n-name="ccn-i18n-calendar-calendar-add" class="button is-primary"></a>
</div>
</nav>
<div id="ccn-calendar-calendarBody" class="card" style="padding: 1.25rem; display: flex; flex-flow: column;">
<div style="margin: 0 0 0.75em 0;">
<div><b i18n-name="ccn-i18n-universal-week-1"></b></div>
<div><b i18n-name="ccn-i18n-universal-week-2"></b></div>
<div><b i18n-name="ccn-i18n-universal-week-3"></b></div>
<div><b i18n-name="ccn-i18n-universal-week-4"></b></div>
<div><b i18n-name="ccn-i18n-universal-week-5"></b></div>
<div><b i18n-name="ccn-i18n-universal-week-6" style="color: red;"></b></div>
<div><b i18n-name="ccn-i18n-universal-week-7" style="color: red;"></b></div>
</div>
</div>
<div class="container" style="padding: 1.25rem; display: flex; flex-flow: column; margin-top: 1.25rem;">
<h1 i18n-name="ccn-i18n-calendar-calendar-scheduleList" class="title"></h1>
<div id="ccn-calendar-scheduleList">
</div>
</div>
</div>
<div id="tabcontrol-panel-1-2" class="container tabcontrol-panel-1" style="margin-top: 20px;">
<div id="ccn-calendar-collection-btnRefresh" class="control" style="margin: 0.75rem;">
<a class="button is-primary">
<span class="icon is-small"><i class="fas fa-sync"></i></span>
</a>
</div>
<h1 i18n-name="ccn-i18n-calendar-owned-list" class="title"></h1>
<div id="ccn-calendar-ownedList" style="display: flex; flex-flow: column; margin-top: 1.25rem; margin-bottom: 1.25rem;">
</div>
<h1 i18n-name="ccn-i18n-calendar-shared-list" class="title"></h1>
<div id="ccn-calendar-sharedList" style="display: flex; flex-flow: column; margin-top: 1.25rem; margin-bottom: 1.25rem;">
</div>
</div>
<div id="tabcontrol-panel-1-3" class="container tabcontrol-panel-1" style="margin-top: 20px;">
<div class="field">
<label class="label" i18n-name="ccn-i18n-calendar-display-firstDayOfWeek"></label>
<div class="control">
<div class="select">
<select id="ccn-calendar-display-firstDayOfWeek">
<option i18n-name="ccn-i18n-universal-week-1"></option>
<option i18n-name="ccn-i18n-universal-week-2"></option>
<option i18n-name="ccn-i18n-universal-week-3"></option>
<option i18n-name="ccn-i18n-universal-week-4"></option>
<option i18n-name="ccn-i18n-universal-week-5"></option>
<option i18n-name="ccn-i18n-universal-week-6"></option>
<option i18n-name="ccn-i18n-universal-week-7"></option>
</select>
</div>
</div>
</div>
<div class="field">
<label class="label" i18n-name="ccn-i18n-calendar-display-subcalendar"></label>
<div class="control">
<div class="select">
<select id="ccn-calendar-display-subcalendar">
<option i18n-name="ccn-i18n-calendar-display-subcalendar-chineseLunisolarCalendar"></option>
</select>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,94 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title id="ccn-pageName"></title>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.1/css/bulma.min.css">
<script src="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.12.1/js/all.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.js"></script>
<script type="text/javascript"
src="https://cdn.jsdelivr.net/npm/jquery-i18n-properties@1.2.7/jquery.i18n.properties.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jsrender@1.0.10/jsrender.min.js"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-headerNav" src="/static/tmpl/headerNav.tmpl"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-messagebox" src="/static/tmpl/messagebox.tmpl"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-ownedItem" src="/static/tmpl/ownedItem.tmpl"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-sharingItem" src="/static/tmpl/sharingItem.tmpl"></script>
<script type="text/javascript" src="/static/js/localStorageAssist.js"></script>
<script type="text/javascript" src="/static/js/i18n.js"></script>
<script type="text/javascript" src="/static/js/utils.js"></script>
<script type="text/javascript" src="/static/js/api.js"></script>
<script type="text/javascript" src="/static/js/template.js"></script>
<script type="text/javascript" src="/static/js/headerNav.js"></script>
<script type="text/javascript" src="/static/js/tabcontrol.js"></script>
<script type="text/javascript" src="/static/js/messagebox.js"></script>
<script type="text/javascript" src="/static/js/page/collection.js"></script>
<link rel="stylesheet" href="/static/css/collection.css">
</head>
<body>
<div style="margin-top: 20px;">
<div class="container" style="display: flex; flex-flow: column;">
<h1 i18n-name="ccn-i18n-collection-owned-list" class="title"></h1>
<div class="control-list">
<div class="field has-addons">
<div class="control">
<input id="ccn-collection-owned-inputAdd" class="input" type="text">
</div>
<div id="ccn-collection-owned-btnAdd" class="control">
<a class="button is-primary">
<span class="icon is-small"><i class="fas fa-plus"></i></span>
</a>
</div>
</div>
<div id="ccn-collection-owned-btnRefresh" class="control">
<a class="button is-primary">
<span class="icon is-small"><i class="fas fa-sync"></i></span>
</a>
</div>
</div>
<div id="ccn-collection-ownedList" style="display: flex; flex-flow: column; margin-top: 1.25rem;">
</div>
</div>
<div id="ccn-collection-sharing-container" class="container" style="display: flex; flex-flow: column;">
<h1 i18n-name="ccn-i18n-collection-sharing-list" class="title"></h1>
<label class="label"><span i18n-name="ccn-i18n-collection-sharing-editing"></span>
<span id="ccn-collection-sharing-sharingEditing"></span>
</label>
<div class="control-list">
<div class="field has-addons">
<div class="control">
<input id="ccn-collection-sharing-inputAdd" class="input" type="text">
</div>
<div id="ccn-collection-sharing-btnAdd" class="control">
<a class="button is-primary">
<span class="icon is-small"><i class="fas fa-plus"></i></span>
</a>
</div>
</div>
<div id="ccn-collection-sharing-btnRefresh" class="control">
<a class="button is-primary">
<span class="icon is-small"><i class="fas fa-sync"></i></span>
</a>
</div>
</div>
<div id="ccn-collection-sharingList" style="display: flex; flex-flow: column; margin-top: 1.25rem;">
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,277 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title id="ccn-pageName"></title>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.1/css/bulma.min.css">
<script src="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.12.1/js/all.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.js"></script>
<script type="text/javascript"
src="https://cdn.jsdelivr.net/npm/jquery-i18n-properties@1.2.7/jquery.i18n.properties.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jsrender@1.0.10/jsrender.min.js"></script>
<!-- if is empty, mean add, otherwise, it is a uuid-->
<meta name="uuid" content="{{uuidPath}}">
<script type="text/x-jsrender" id="jsrender-tmpl-headerNav" src="/static/tmpl/headerNav.tmpl"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-messagebox" src="/static/tmpl/messagebox.tmpl"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-datetimepicker" src="/static/tmpl/datetimepicker.tmpl"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-optionItem" src="/static/tmpl/optionItem.tmpl"></script>
<script type="text/javascript" src="/static/js/localStorageAssist.js"></script>
<script type="text/javascript" src="/static/js/datetime.js"></script>
<script type="text/javascript" src="/static/js/i18n.js"></script>
<script type="text/javascript" src="/static/js/utils.js"></script>
<script type="text/javascript" src="/static/js/api.js"></script>
<script type="text/javascript" src="/static/js/template.js"></script>
<script type="text/javascript" src="/static/js/headerNav.js"></script>
<script type="text/javascript" src="/static/js/messagebox.js"></script>
<script type="text/javascript" src="/static/js/datetimepicker.js"></script>
<script type="text/javascript" src="/static/js/page/event.js"></script>
<link rel="stylesheet" href="/static/css/event.css">
<link rel="stylesheet" href="/static/css/datetimepicker.css">
</head>
<body>
<!-- add is-active in class to show this-->
<div id="ccn-event-eventFormBody" class="container" style="margin-top: 20px;">
<h1 i18n-name="ccn-i18n-event-header" class="title"></h1>
<section class="section">
<div class="field">
<label class="label" i18n-name="ccn-i18n-event-title"></label>
<div class="control">
<input id="ccn-event-inputTitle" class="input" type="text">
</div>
</div>
<div class="field">
<label class="label" i18n-name="ccn-i18n-event-description"></label>
<div class="control">
<textarea id="ccn-event-inputDescription" class="textarea"></textarea>
</div>
</div>
<div class="field">
<label class="label" i18n-name="ccn-i18n-event-color"></label>
<div class="control">
<input id="ccn-event-inputColor" class="input" type="color">
</div>
</div>
<div class="field">
<label class="label" i18n-name="ccn-i18n-event-collection"></label>
<div class="control">
<div class="select">
<select id="ccn-event-inputCollection"></select>
</div>
</div>
</div>
</section>
<section class="section">
<h2 class="subtitle" i18n-name="ccn-i18n-event-startDateTime"></h2>
<a id="ccn-event-btnStartDateTime" class="button" datetimepicker="1">
<span id="ccn-event-btnStartDateTime-text"></span>
</a>
<h2 class="subtitle" i18n-name="ccn-i18n-event-endDateTime"></h2>
<div class="control-list">
<div class="control">
<a id="ccn-event-btnSpot" class="button is-link" i18n-name="ccn-i18n-event-btnSpot"></a>
</div>
<div class="control">
<a id="ccn-event-btnFullDay" class="button is-link" i18n-name="ccn-i18n-event-btnFullDay"></a>
</div>
</div>
<a id="ccn-event-btnEndDateTime" class="button" datetimepicker="2">
<span id="ccn-event-btnEndDateTime-text"></span>
</a>
</section>
<section class="section">
<h2 class="subtitle" i18n-name="ccn-i18n-event-loop"></h2>
<div class="control-list">
<label class="radio">
<input id="ccn-event-radioLoopNever" type="radio" name="loop-method">
<span i18n-name="ccn-i18n-event-loop-never"></span>
</label>
<label class="radio">
<input id="ccn-event-radioLoopDay" type="radio" name="loop-method">
<span i18n-name="ccn-i18n-event-loop-day"></span>
</label>
<label class="radio">
<input id="ccn-event-radioLoopWeek" type="radio" name="loop-method">
<span i18n-name="ccn-i18n-event-loop-week"></span>
</label>
<label class="radio">
<input id="ccn-event-radioLoopMonth" type="radio" name="loop-method">
<span i18n-name="ccn-i18n-event-loop-month"></span>
</label>
<label class="radio">
<input id="ccn-event-radioLoopYear" type="radio" name="loop-method">
<span i18n-name="ccn-i18n-event-loop-year"></span>
</label>
</div>
<div id="ccn-event-boxLoopDay">
<div class="field">
<label class="label" i18n-name="ccn-i18n-event-loopDay-span"></label>
<div class="control">
<input id="ccn-event-loopDay-inputSpan" class="input spanpicker" type="number">
</div>
</div>
</div>
<div id="ccn-event-boxLoopWeek">
<div class="field">
<label class="label" i18n-name="ccn-i18n-event-loopWeek-span"></label>
<div class="control">
<input id="ccn-event-loopWeek-inputSpan" class="input spanpicker" type="number">
</div>
</div>
<div class="field">
<label class="label" i18n-name="ccn-i18n-event-loopWeek-option"></label>
<div class="control-list">
<label class="checkbox">
<input id="ccn-event-loopWeek-check1" type="checkbox">
<span i18n-name="ccn-i18n-universal-week-1"></span>
</label>
<label class="checkbox">
<input id="ccn-event-loopWeek-check2" type="checkbox">
<span i18n-name="ccn-i18n-universal-week-2"></span>
</label>
<label class="checkbox">
<input id="ccn-event-loopWeek-check3" type="checkbox">
<span i18n-name="ccn-i18n-universal-week-3"></span>
</label>
<label class="checkbox">
<input id="ccn-event-loopWeek-check4" type="checkbox">
<span i18n-name="ccn-i18n-universal-week-4"></span>
</label>
<label class="checkbox">
<input id="ccn-event-loopWeek-check5" type="checkbox">
<span i18n-name="ccn-i18n-universal-week-5"></span>
</label>
<label class="checkbox">
<input id="ccn-event-loopWeek-check6" type="checkbox">
<span i18n-name="ccn-i18n-universal-week-6"></span>
</label>
<label class="checkbox">
<input id="ccn-event-loopWeek-check7" type="checkbox">
<span i18n-name="ccn-i18n-universal-week-7"></span>
</label>
</div>
</div>
</div>
<div id="ccn-event-boxLoopMonth">
<div class="field">
<label class="label" i18n-name="ccn-i18n-event-loopMonth-span"></label>
<div class="control">
<input id="ccn-event-loopMonth-inputSpan" class="input spanpicker" type="number">
</div>
</div>
<div class="field">
<label class="label" i18n-name="ccn-i18n-event-loopWeek-option"></label>
<div class="control-list">
<label class="radio">
<input id="ccn-event-loopMonth-radioA" type="radio" name="month-loop-method">
<span id="ccn-event-loopMonth-textA"></span>
</label>
<label class="radio">
<input id="ccn-event-loopMonth-radioB" type="radio" name="month-loop-method">
<span id="ccn-event-loopMonth-textB"></span>
</label>
<label class="radio">
<input id="ccn-event-loopMonth-radioC" type="radio" name="month-loop-method">
<span id="ccn-event-loopMonth-textC"></span>
</label>
<label class="radio">
<input id="ccn-event-loopMonth-radioD" type="radio" name="month-loop-method">
<span id="ccn-event-loopMonth-textD"></span>
</label>
</div>
</div>
</div>
<div id="ccn-event-boxLoopYear">
<div class="field">
<label class="label" i18n-name="ccn-i18n-event-loopYear-span"></label>
<div class="control">
<input id="ccn-event-loopYear-inputSpan" class="input spanpicker" type="number">
</div>
</div>
</div>
</section>
<section id="ccn-event-boxLoopStop" class="section">
<h2 class="subtitle" i18n-name="ccn-i18n-event-loopStop"></h2>
<div class="control-list">
<label class="radio">
<input id="ccn-event-loopStop-radioForever" type="radio" name="loop-end">
<span i18n-name="ccn-i18n-event-loopStop-forever"></span>
</label>
<label class="radio">
<input id="ccn-event-loopStop-radioDateTime" type="radio" name="loop-end">
<span i18n-name="ccn-i18n-event-loopStop-datetime"></span>
</label>
<label class="radio">
<input id="ccn-event-loopStop-radioTimes" type="radio" name="loop-end">
<span i18n-name="ccn-i18n-event-loopStop-times"></span>
</label>
</div>
<div id="ccn-event-boxLoopStopDateTime">
<a id="ccn-event-btnLoopStopDateTime" class="button" datetimepicker="3">
<span id="ccn-event-btnLoopStopDateTime-text"></span>
</a>
</div>
<div id="ccn-event-boxLoopStopTimes">
<div class="field">
<div class="control">
<input id="ccn-event-loopStop-inputTimes" class="input spanpicker" type="number">
</div>
</div>
</div>
</section>
<section id="ccn-event-boxStrictMode" class="section">
<h2 class="subtitle" i18n-name="ccn-i18n-event-strictMode-title"></h2>
<p i18n-name="ccn-i18n-event-strictMode-warning"></p>
<div class="control-list">
<label class="radio">
<input id="ccn-event-strictMode-radioStrict" type="radio" name="timezone">
<span i18n-name="ccn-i18n-event-strictMode-strict"></span>
</label>
<label class="radio">
<input id="ccn-event-strictMode-radioRough" type="radio" name="timezone">
<span i18n-name="ccn-i18n-event-strictMode-rough"></span>
</label>
</div>
</section>
<section id="ccn-event-boxTimezone" class="section">
<h2 class="subtitle" i18n-name="ccn-i18n-event-timezone-title"></h2>
<p i18n-name="ccn-i18n-event-timezone-warning"></p>
<div class="control-list">
<label class="radio">
<input id="ccn-event-timezone-radioKeep" type="radio" name="timezone">
<span i18n-name="ccn-i18n-event-timezone-keep"></span>
</label>
<label class="radio">
<input id="ccn-event-timezone-radioReplace" type="radio" name="timezone">
<span i18n-name="ccn-i18n-event-timezone-replace"></span>
</label>
</div>
</section>
<section class="section">
<div class="control-list">
<a id="ccn-event-btnSubmit" class="button is-success" i18n-name="ccn-i18n-event-btnSubmit"></a>
<a id="ccn-event-btnCancel" class="button" i18n-name="ccn-i18n-event-btnCancel"></a>
</div>
</section>
</div>
</body>
</html>

View File

@@ -0,0 +1,35 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title id="ccn-pageName"></title>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.1/css/bulma.min.css">
<script src="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.12.1/js/all.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery-i18n-properties@1.2.7/jquery.i18n.properties.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jsrender@1.0.10/jsrender.min.js"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-headerNav" src="/static/tmpl/headerNav.tmpl"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-messagebox" src="/static/tmpl/messagebox.tmpl"></script>
<script type="text/javascript" src="/static/js/localStorageAssist.js"></script>
<script type="text/javascript" src="/static/js/i18n.js"></script>
<script type="text/javascript" src="/static/js/utils.js"></script>
<script type="text/javascript" src="/static/js/api.js"></script>
<script type="text/javascript" src="/static/js/template.js"></script>
<script type="text/javascript" src="/static/js/headerNav.js"></script>
<script type="text/javascript" src="/static/js/messagebox.js"></script>
<script type="text/javascript" src="/static/js/page/home.js"></script>
</head>
<body>
<div class="container" style="margin-top: 1.25rem;">
<article i18n-name="ccn-i18n-home-desc">
</article>
</div>
</body>
</html>

View File

@@ -0,0 +1,60 @@
<!DOCTYPE html>
<html style="height: 100%; overflow: hidden;">
<head>
<meta charset="utf-8">
<title id="ccn-pageName"></title>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.1/css/bulma.min.css">
<script src="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.12.1/js/all.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery-i18n-properties@1.2.7/jquery.i18n.properties.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jsrender@1.0.10/jsrender.min.js"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-headerNav" src="/static/tmpl/headerNav.tmpl"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-messagebox" src="/static/tmpl/messagebox.tmpl"></script>
<script type="text/javascript" src="/static/js/localStorageAssist.js"></script>
<script type="text/javascript" src="/static/js/i18n.js"></script>
<script type="text/javascript" src="/static/js/utils.js"></script>
<script type="text/javascript" src="/static/js/api.js"></script>
<script type="text/javascript" src="/static/js/template.js"></script>
<script type="text/javascript" src="/static/js/headerNav.js"></script>
<script type="text/javascript" src="/static/js/messagebox.js"></script>
<script type="text/javascript" src="/static/js/page/login.js"></script>
</head>
<body style="height: 100%; display: flex; flex-flow: column;">
<div style="height: 100%; width: 100%; display: flex; justify-content: center; align-items: center;">
<div class="card" style="padding: 1.25rem;">
<div class="field">
<label class="label" i18n-name="ccn-i18n-login-form-username"></label>
<div class="control has-icons-left has-icons-right">
<input id="ccn-login-form-username" class="input" type="text">
<span class="icon is-small is-left">
<i class="fas fa-user"></i>
</span>
</div>
</div>
<div class="field">
<label class="label" i18n-name="ccn-i18n-login-form-password"></label>
<p class="control has-icons-left">
<input id="ccn-login-form-password" class="input" type="password">
<span class="icon is-small is-left">
<i class="fas fa-lock"></i>
</span>
</p>
</div>
<div class="control">
<button id="ccn-login-form-login" class="button is-primary" i18n-name="ccn-i18n-login-form-login"></button>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,51 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title id="ccn-pageName"></title>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.1/css/bulma.min.css">
<script src="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.12.1/js/all.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery-i18n-properties@1.2.7/jquery.i18n.properties.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jsrender@1.0.10/jsrender.min.js"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-headerNav" src="/static/tmpl/headerNav.tmpl"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-messagebox" src="/static/tmpl/messagebox.tmpl"></script>
<script type="text/x-jsrender" id="jsrender-tmpl-todoItem" src="/static/tmpl/todoItem.tmpl"></script>
<script type="text/javascript" src="/static/js/localStorageAssist.js"></script>
<script type="text/javascript" src="/static/js/i18n.js"></script>
<script type="text/javascript" src="/static/js/utils.js"></script>
<script type="text/javascript" src="/static/js/api.js"></script>
<script type="text/javascript" src="/static/js/template.js"></script>
<script type="text/javascript" src="/static/js/headerNav.js"></script>
<script type="text/javascript" src="/static/js/messagebox.js"></script>
<script type="text/javascript" src="/static/js/page/todo.js"></script>
<link rel="stylesheet" href="/static/css/todo.css">
</head>
<body>
<div class="container" style="display: flex; flex-flow: column; margin-top: 1.25rem;">
<h1 i18n-name="ccn-i18n-todo-todoList" class="title"></h1>
<div class="control-list">
<div id="ccn-todo-btnAdd" class="control">
<a class="button is-primary"><span class="icon is-small"><i class="fas fa-plus"></i></span></a>
</div>
<div id="ccn-todo-btnRefresh" class="control">
<a class="button is-primary">
<span class="icon is-small"><i class="fas fa-sync"></i></span>
</a>
</div>
</div>
<div id="ccn-todo-todoList" style="display: flex; flex-flow: column; margin-top: 1.25rem;">
</div>
</div>
</body>
</html>