seperate 1 page into 3 pages for more fluent manage
This commit is contained in:
@@ -66,6 +66,25 @@ def web_loginHandle():
|
||||
# UpdateStaticResources()
|
||||
return render_template("login.html")
|
||||
|
||||
@app.route('/web/collection', methods=['GET'])
|
||||
def web_collectionHandle():
|
||||
# UpdateStaticResources()
|
||||
return render_template("collection.html")
|
||||
|
||||
@app.route('/web/eventAdd', methods=['GET'])
|
||||
def web_eventAddHandle():
|
||||
# UpdateStaticResources()
|
||||
return render_template("event.html",
|
||||
uuidPath=''
|
||||
)
|
||||
|
||||
@app.route('/web/eventUpdate/<path:uuidPath>', methods=['GET'])
|
||||
def web_eventUpdateHandle(uuidPath):
|
||||
# UpdateStaticResources()
|
||||
return render_template("event.html",
|
||||
uuidPath = uuidPath
|
||||
)
|
||||
|
||||
# ============================================= query page route
|
||||
|
||||
# ================================ common
|
||||
|
||||
34
src/static/css/collection.css
Normal file
34
src/static/css/collection.css
Normal file
@@ -0,0 +1,34 @@
|
||||
div.collection-item {
|
||||
display: flex;
|
||||
flex-flow: row;
|
||||
align-items: flex-start;
|
||||
|
||||
padding: 1.25rem;
|
||||
margin-bottom: 1.25rem;
|
||||
}
|
||||
|
||||
div.collection-item-words {
|
||||
flex-grow: 1;
|
||||
flex-basis: 0;
|
||||
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
div.collection-item-icon {
|
||||
margin-left: 0.75rem;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
div.control-list {
|
||||
display: flex;
|
||||
flex-flow: row;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
div.control-list > * {
|
||||
margin-right: 0.75rem;
|
||||
margin-bottom: 0.75rem;
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
11
src/static/css/event.css
Normal file
11
src/static/css/event.css
Normal file
@@ -0,0 +1,11 @@
|
||||
div.control-list {
|
||||
display: flex;
|
||||
flex-flow: row;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
div.control-list > * {
|
||||
margin-right: 0.75rem;
|
||||
margin-bottom: 0.75rem;
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
@@ -1,102 +1,120 @@
|
||||
ccn-pageName-home=coconut-leaf - A light, self-host calendar system.
|
||||
ccn-pageName-calendar=coconut-leaf - Calendar
|
||||
ccn-pageName-todo=coconut-leaf - Todo
|
||||
ccn-pageName-admin=coconut-leaf - Admin
|
||||
ccn-pageName-login=coconut-leaf - Login
|
||||
ccn-i18n-pageName-home=coconut-leaf - A light, self-host calendar system.
|
||||
ccn-i18n-pageName-collection=coconut-leaf - Collection
|
||||
ccn-i18n-pageName-calendar=coconut-leaf - Calendar
|
||||
ccn-i18n-pageName-event=coconut-leaf - Event
|
||||
ccn-i18n-pageName-todo=coconut-leaf - Todo
|
||||
ccn-i18n-pageName-admin=coconut-leaf - Admin
|
||||
ccn-i18n-pageName-login=coconut-leaf - Login
|
||||
|
||||
ccn-header-nav-home=Home
|
||||
ccn-header-nav-calendar=Calendar
|
||||
ccn-header-nav-todo=Todo
|
||||
ccn-header-nav-admin=Admin
|
||||
ccn-header-user-login=Login
|
||||
ccn-header-user-logout=Logout
|
||||
ccn-header-language=Language
|
||||
ccn-i18n-header-nav-home=Home
|
||||
ccn-i18n-header-nav-collection=Collection
|
||||
ccn-i18n-header-nav-calendar=Calendar
|
||||
ccn-i18n-header-nav-todo=Todo
|
||||
ccn-i18n-header-nav-admin=Admin
|
||||
ccn-i18n-header-user-login=Login
|
||||
ccn-i18n-header-user-logout=Logout
|
||||
ccn-i18n-header-language=Language
|
||||
|
||||
ccn-messagebox-confirm=OK
|
||||
ccn-messagebox-title=Notification
|
||||
ccn-i18n-universal-text-year=Year
|
||||
ccn-i18n-universal-text-month=Month
|
||||
ccn-i18n-universal-text-day=Day
|
||||
ccn-i18n-universal-text-hour=Hour
|
||||
ccn-i18n-universal-text-minute=Minute
|
||||
ccn-i18n-universal-week-1=Monday
|
||||
ccn-i18n-universal-week-2=Tuesday
|
||||
ccn-i18n-universal-week-3=Wednesday
|
||||
ccn-i18n-universal-week-4=Thursday
|
||||
ccn-i18n-universal-week-5=Friday
|
||||
ccn-i18n-universal-week-6=Saturday
|
||||
ccn-i18n-universal-week-7=Sunday
|
||||
ccn-i18n-universal-month-1=1月
|
||||
ccn-i18n-universal-month-2=2月
|
||||
ccn-i18n-universal-month-3=3月
|
||||
ccn-i18n-universal-month-4=4月
|
||||
ccn-i18n-universal-month-5=5月
|
||||
ccn-i18n-universal-month-6=6月
|
||||
ccn-i18n-universal-month-7=7月
|
||||
ccn-i18n-universal-month-8=8月
|
||||
ccn-i18n-universal-month-9=9月
|
||||
ccn-i18n-universal-month-10=10月
|
||||
ccn-i18n-universal-month-11=11月
|
||||
ccn-i18n-universal-month-12=12月
|
||||
|
||||
ccn-js-fail-login=Fail to login. Please check your username or password.
|
||||
ccn-js-fail-logout=Fail to logout due to unknow reason. Consider refreshing page to solve problem.
|
||||
ccn-js-fail-get=A get operation failed. It may caused by server internal error or your limited permission. Refreshing page may fix system problem. Before refreshing page, please backup all your unsaved data.
|
||||
ccn-js-fail-add=An add operation failed. It may caused by wrong arguments. Refreshing page may fix system problem. Before refreshing page, please backup all your unsaved data.
|
||||
ccn-js-fail-update=An update operation failed. It may caused by wrong arguments or lost target. Refreshing page may fix system problem. Before refreshing page, please backup all your unsaved data.
|
||||
ccn-js-fail-delete=A delete operation failed. It may caused by no matched item. Refreshing page may fix system problem. Before refreshing page, please backup all your unsaved data.
|
||||
ccn-js-success=Operation OK.
|
||||
ccn-i18n-messagebox-confirm=OK
|
||||
ccn-i18n-messagebox-title=Notification
|
||||
|
||||
ccn-home-desc=<h1 class="title">coconut-leaf</h1><p>A light, self-host calendar system.</p><p>Originally, this app is served for yyc12345 personal use.</p><br /><p>Pull request / issue / translation are welcomed.</p><p>Submit them in our <a href="https://github.com/yyc12345/coconut-leaf">GitHub project</a>.</p><p>This project source code is licensed <a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL v3</a>.</p>
|
||||
ccn-i18n-js-fail-login=Fail to login. Please check your username or password.
|
||||
ccn-i18n-js-fail-logout=Fail to logout due to unknow reason. Consider refreshing page to solve problem.
|
||||
ccn-i18n-js-fail-get=A get operation failed. It may caused by server internal error or your limited permission. Refreshing page may fix system problem. Before refreshing page, please backup all your unsaved data.
|
||||
ccn-i18n-js-fail-add=An add operation failed. It may caused by wrong arguments. Refreshing page may fix system problem. Before refreshing page, please backup all your unsaved data.
|
||||
ccn-i18n-js-fail-update=An update operation failed. It may caused by wrong arguments or lost target. Refreshing page may fix system problem. Before refreshing page, please backup all your unsaved data.
|
||||
ccn-i18n-js-fail-delete=A delete operation failed. It may caused by no matched item. Refreshing page may fix system problem. Before refreshing page, please backup all your unsaved data.
|
||||
ccn-i18n-js-success=Operation OK.
|
||||
|
||||
ccn-login-form-username=Username
|
||||
ccn-login-form-password=Password
|
||||
ccn-login-form-login=Login
|
||||
ccn-i18n-home-desc=<h1 class="title">coconut-leaf</h1><p>A light, self-host calendar system.</p><p>Originally, this app is served for yyc12345 personal use.</p><br /><p>Pull request / issue / translation are welcomed.</p><p>Submit them in our <a href="https://github.com/yyc12345/coconut-leaf">GitHub project</a>.</p><p>This project source code is licensed <a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL v3</a>.</p>
|
||||
|
||||
ccn-todo-todoList=Todo list
|
||||
ccn-i18n-login-form-username=Username
|
||||
ccn-i18n-login-form-password=Password
|
||||
ccn-i18n-login-form-login=Login
|
||||
|
||||
ccn-calendar-calendar-jump=Jump
|
||||
ccn-calendar-calendar-today=Today
|
||||
ccn-calendar-calendar-add=Add...
|
||||
ccn-calendar-calendar-scheduleList=Schedule
|
||||
ccn-calendar-tabcontrol-tabCalendar=Calendar
|
||||
ccn-calendar-tabcontrol-tabShared=Shared
|
||||
ccn-calendar-tabcontrol-tabSharing=Sharing
|
||||
ccn-calendar-text-year=Year
|
||||
ccn-calendar-text-month=Month
|
||||
ccn-calendar-text-day=Day
|
||||
ccn-calendar-text-hour=Hour
|
||||
ccn-calendar-text-minute=Minute
|
||||
ccn-calendar-week-1=Monday
|
||||
ccn-calendar-week-2=Tuesday
|
||||
ccn-calendar-week-3=Wednesday
|
||||
ccn-calendar-week-4=Thursday
|
||||
ccn-calendar-week-5=Friday
|
||||
ccn-calendar-week-6=Saturday
|
||||
ccn-calendar-week-7=Sunday
|
||||
ccn-calendar-modalEvent-header=Edit Event
|
||||
ccn-calendar-modalEvent-title=Title
|
||||
ccn-calendar-modalEvent-description=Description
|
||||
ccn-calendar-modalEvent-collection=Collection
|
||||
ccn-calendar-modalEvent-startDateTime=Start Date Time
|
||||
ccn-calendar-modalEvent-endDateTime=Stop Date Time
|
||||
ccn-calendar-modalEvent-btnSpot=Spot
|
||||
ccn-calendar-modalEvent-btnFullDay=Full day
|
||||
ccn-calendar-modalEvent-loop=Event Loop
|
||||
ccn-calendar-modalEvent-loop-never=Never
|
||||
ccn-calendar-modalEvent-loop-day=Day
|
||||
ccn-calendar-modalEvent-loop-week=Week
|
||||
ccn-calendar-modalEvent-loop-month=Month
|
||||
ccn-calendar-modalEvent-loop-year=Year
|
||||
ccn-calendar-modalEvent-loopDay-span=Day span
|
||||
ccn-calendar-modalEvent-loopWeek-span=Week span
|
||||
ccn-calendar-modalEvent-loopWeek-option=Week options
|
||||
ccn-calendar-modalEvent-loopMonth-span=Month span
|
||||
ccn-calendar-modalEvent-loopWeek-option=Month mode
|
||||
ccn-calendar-modalEvent-loopWeek-optionA=Day {0} in month
|
||||
ccn-calendar-modalEvent-loopWeek-optionB=Day {0} from the end of the month
|
||||
ccn-calendar-modalEvent-loopWeek-optionC=Week {0}, day {1} in month
|
||||
ccn-calendar-modalEvent-loopWeek-optionD=Week {0}, day {1} from the end of the month
|
||||
ccn-calendar-modalEvent-loopYear-span=Year span
|
||||
ccn-calendar-modalEvent-loopStop=Event Loop Stop
|
||||
ccn-calendar-modalEvent-loopStop-forever=Forever
|
||||
ccn-calendar-modalEvent-loopStop-datetime=Date Time
|
||||
ccn-calendar-modalEvent-loopStop-times=Times
|
||||
ccn-calendar-modalEvent-timezone-title=Timezone
|
||||
ccn-calendar-modalEvent-timezone-warning=The timezone of this event is not corresponding with your current timezone. You can choose a timezone option in follwing content. If you are not familar with this, please pick keep timezone.
|
||||
ccn-calendar-modalEvent-timezone-keep=Keep timezone
|
||||
ccn-calendar-modalEvent-timezone-replace=Use my timezone
|
||||
ccn-calendar-modalEvent-strictMode-title=Strict Mode in Event Loop
|
||||
ccn-calendar-modalEvent-strictMode-warning=You can choose strict mode or rough mode in following content. This is only effect on looped event.
|
||||
ccn-calendar-modalEvent-strictMode-strict=Strict Mode. If ordered day is not existing, skip it.
|
||||
ccn-calendar-modalEvent-strictMode-rough=Rough mode. If ordered day is not existing, choose the day closing with original day to arrange event.
|
||||
ccn-calendar-modalEvent-btnSubmit=Submit
|
||||
ccn-calendar-modalEvent-btnCancel=Cancel
|
||||
ccn-calendar-shared-list=Shared
|
||||
ccn-calendar-owned-list=Owned
|
||||
ccn-calendar-sharing-list=Sharing target
|
||||
ccn-calendar-sharing-editing=Editing:
|
||||
ccn-calendar-sharedItem-sharedBy=Shared by:
|
||||
ccn-i18n-todo-todoList=Todo list
|
||||
|
||||
ccn-admin-tabcontrol-tabProfile=My Profile
|
||||
ccn-admin-tabcontrol-tabUserList=Manager User
|
||||
ccn-admin-changePassword=Change Password
|
||||
ccn-admin-userList=User List
|
||||
ccn-admin-userItem-newPassword=New Password
|
||||
ccn-admin-userItem-isAdmin=Is Admin
|
||||
ccn-i18n-calendar-calendar-jump=Jump
|
||||
ccn-i18n-calendar-calendar-today=Today
|
||||
ccn-i18n-calendar-calendar-add=Add...
|
||||
ccn-i18n-calendar-calendar-scheduleList=Schedule
|
||||
ccn-i18n-calendar-tabcontrol-tabCalendar=Calendar
|
||||
ccn-i18n-calendar-tabcontrol-tabCollection=Collection
|
||||
ccn-i18n-calendar-tabcontrol-tabDisplay=Display
|
||||
|
||||
ccn-i18n-event-header=Edit Event
|
||||
ccn-i18n-event-title=Title
|
||||
ccn-i18n-event-description=Description
|
||||
ccn-i18n-event-collection=Collection
|
||||
ccn-i18n-event-startDateTime=Start Date Time
|
||||
ccn-i18n-event-endDateTime=Stop Date Time
|
||||
ccn-i18n-event-btnSpot=Spot
|
||||
ccn-i18n-event-btnFullDay=Full day
|
||||
ccn-i18n-event-loop=Event Loop
|
||||
ccn-i18n-event-loop-never=Never
|
||||
ccn-i18n-event-loop-day=Day
|
||||
ccn-i18n-event-loop-week=Week
|
||||
ccn-i18n-event-loop-month=Month
|
||||
ccn-i18n-event-loop-year=Year
|
||||
ccn-i18n-event-loopDay-span=Day span
|
||||
ccn-i18n-event-loopWeek-span=Week span
|
||||
ccn-i18n-event-loopWeek-option=Week options
|
||||
ccn-i18n-event-loopMonth-span=Month span
|
||||
ccn-i18n-event-loopWeek-option=Month mode
|
||||
ccn-i18n-event-loopWeek-optionA=Day {0} in month
|
||||
ccn-i18n-event-loopWeek-optionB=Day {0} from the end of the month
|
||||
ccn-i18n-event-loopWeek-optionC=Week {0}, day {1} in month
|
||||
ccn-i18n-event-loopWeek-optionD=Week {0}, day {1} from the end of the month
|
||||
ccn-i18n-event-loopYear-span=Year span
|
||||
ccn-i18n-event-loopStop=Event Loop Stop
|
||||
ccn-i18n-event-loopStop-forever=Forever
|
||||
ccn-i18n-event-loopStop-datetime=Date Time
|
||||
ccn-i18n-event-loopStop-times=Times
|
||||
ccn-i18n-event-timezone-title=Timezone
|
||||
ccn-i18n-event-timezone-warning=The timezone of this event is not corresponding with your current timezone. You can choose a timezone option in follwing content. If you are not familar with this, please pick keep timezone.
|
||||
ccn-i18n-event-timezone-keep=Keep timezone
|
||||
ccn-i18n-event-timezone-replace=Use my timezone
|
||||
ccn-i18n-event-strictMode-title=Strict Mode in Event Loop
|
||||
ccn-i18n-event-strictMode-warning=You can choose strict mode or rough mode in following content. This is only effect on looped event.
|
||||
ccn-i18n-event-strictMode-strict=Strict Mode. If ordered day is not existing, skip it.
|
||||
ccn-i18n-event-strictMode-rough=Rough mode. If ordered day is not existing, choose the day closing with original day to arrange event.
|
||||
ccn-i18n-event-btnSubmit=Submit
|
||||
ccn-i18n-event-btnCancel=Cancel
|
||||
ccn-i18n-calendar-shared-list=Shared
|
||||
ccn-i18n-collection-owned-list=Owned
|
||||
ccn-i18n-collection-sharing-list=Sharing target
|
||||
ccn-i18n-collection-sharing-editing=Editing:
|
||||
|
||||
ccn-i18n-sharedItem-sharedBy=Shared by:
|
||||
|
||||
ccn-i18n-admin-tabcontrol-tabProfile=My Profile
|
||||
ccn-i18n-admin-tabcontrol-tabUserList=Manager User
|
||||
ccn-i18n-admin-changePassword=Change Password
|
||||
ccn-i18n-admin-userList=User List
|
||||
ccn-i18n-userItem-newPassword=New Password
|
||||
ccn-i18n-userItem-isAdmin=Is Admin
|
||||
|
||||
@@ -1,115 +1,124 @@
|
||||
ccn-pageName-home=coconut-leaf - 一个轻量的自建日历系统
|
||||
ccn-pageName-calendar=coconut-leaf - 日历
|
||||
ccn-pageName-todo=coconut-leaf - 待办
|
||||
ccn-pageName-admin=coconut-leaf - 管理
|
||||
ccn-pageName-login=coconut-leaf - 登录
|
||||
ccn-i18n-pageName-home=coconut-leaf - 一个轻量的自建日历系统
|
||||
ccn-i18n-pageName-collection=coconut-leaf - 集合
|
||||
ccn-i18n-pageName-calendar=coconut-leaf - 日历
|
||||
ccn-i18n-pageName-event=coconut-leaf - 事件
|
||||
ccn-i18n-pageName-todo=coconut-leaf - 待办
|
||||
ccn-i18n-pageName-admin=coconut-leaf - 管理
|
||||
ccn-i18n-pageName-login=coconut-leaf - 登录
|
||||
|
||||
ccn-header-nav-home=主页
|
||||
ccn-header-nav-calendar=日历
|
||||
ccn-header-nav-todo=待办
|
||||
ccn-header-nav-admin=管理
|
||||
ccn-header-user-login=登录
|
||||
ccn-header-user-logout=登出
|
||||
ccn-header-language=语言
|
||||
ccn-i18n-header-nav-home=主页
|
||||
ccn-i18n-header-nav-collection=集合
|
||||
ccn-i18n-header-nav-calendar=日历
|
||||
ccn-i18n-header-nav-todo=待办
|
||||
ccn-i18n-header-nav-admin=管理
|
||||
ccn-i18n-header-user-login=登录
|
||||
ccn-i18n-header-user-logout=登出
|
||||
ccn-i18n-header-language=语言
|
||||
|
||||
ccn-messagebox-confirm=确认
|
||||
ccn-messagebox-title=通知
|
||||
ccn-i18n-universal-text-year=年
|
||||
ccn-i18n-universal-text-month=月
|
||||
ccn-i18n-universal-text-day=日
|
||||
ccn-i18n-universal-text-hour=时
|
||||
ccn-i18n-universal-text-minute=分
|
||||
ccn-i18n-universal-week-1=星期一
|
||||
ccn-i18n-universal-week-2=星期二
|
||||
ccn-i18n-universal-week-3=星期三
|
||||
ccn-i18n-universal-week-4=星期四
|
||||
ccn-i18n-universal-week-5=星期五
|
||||
ccn-i18n-universal-week-6=星期六
|
||||
ccn-i18n-universal-week-7=星期日
|
||||
ccn-i18n-universal-month-1=1月
|
||||
ccn-i18n-universal-month-2=2月
|
||||
ccn-i18n-universal-month-3=3月
|
||||
ccn-i18n-universal-month-4=4月
|
||||
ccn-i18n-universal-month-5=5月
|
||||
ccn-i18n-universal-month-6=6月
|
||||
ccn-i18n-universal-month-7=7月
|
||||
ccn-i18n-universal-month-8=8月
|
||||
ccn-i18n-universal-month-9=9月
|
||||
ccn-i18n-universal-month-10=10月
|
||||
ccn-i18n-universal-month-11=11月
|
||||
ccn-i18n-universal-month-12=12月
|
||||
|
||||
ccn-js-fail-login=登陆失败,请检查您的用户名和密码。
|
||||
ccn-js-fail-logout=由于未知原因,登出失败,请考虑刷新页面解决问题。
|
||||
ccn-js-fail-get=一个获取操作失败了,可能是系统错误或者您的权限不足。刷新页面可能会解决问题。请在刷新页面前备份好自己的数据。
|
||||
ccn-js-fail-add=一个添加操作失败了,可能是您输入的参数有误。刷新页面可能会解决问题。请在刷新页面前备份好自己的数据。
|
||||
ccn-js-fail-update=一个更新操作失败了,可能是没有找到匹配的条目或者您的参数输入错误。刷新页面可能会解决问题。请在刷新页面前备份好自己的数据。
|
||||
ccn-js-fail-delete=一个删除操作失败了,可能是没有找到对应条目。刷新页面可能会解决问题。请在刷新页面前备份好自己的数据。
|
||||
ccn-js-success=操作成功
|
||||
ccn-i18n-messagebox-confirm=确认
|
||||
ccn-i18n-messagebox-title=通知
|
||||
|
||||
ccn-home-desc=<h1 class="title">coconut-leaf</h1><p>一个轻量的自建日历系统</p><p>原本是出于yyc12345的个人使用而制作的。</p><br /><p>欢迎提出Pull request / issue / 翻译</p><p>将他们提交到我们的<a href="https://github.com/yyc12345/coconut-leaf">GitHub项目</a>.</p><p>本工程代码使用<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL v3</a>授权。</p>
|
||||
ccn-i18n-js-fail-login=登陆失败,请检查您的用户名和密码。
|
||||
ccn-i18n-js-fail-logout=由于未知原因,登出失败,请考虑刷新页面解决问题。
|
||||
ccn-i18n-js-fail-get=一个获取操作失败了,可能是系统错误或者您的权限不足。刷新页面可能会解决问题。请在刷新页面前备份好自己的数据。
|
||||
ccn-i18n-js-fail-add=一个添加操作失败了,可能是您输入的参数有误。刷新页面可能会解决问题。请在刷新页面前备份好自己的数据。
|
||||
ccn-i18n-js-fail-update=一个更新操作失败了,可能是没有找到匹配的条目或者您的参数输入错误。刷新页面可能会解决问题。请在刷新页面前备份好自己的数据。
|
||||
ccn-i18n-js-fail-delete=一个删除操作失败了,可能是没有找到对应条目。刷新页面可能会解决问题。请在刷新页面前备份好自己的数据。
|
||||
ccn-i18n-js-success=操作成功
|
||||
|
||||
ccn-login-form-username=用户名
|
||||
ccn-login-form-password=密码
|
||||
ccn-login-form-login=登录
|
||||
ccn-i18n-home-desc=<h1 class="title">coconut-leaf</h1><p>一个轻量的自建日历系统</p><p>原本是出于yyc12345的个人使用而制作的。</p><br /><p>欢迎提出Pull request / issue / 翻译</p><p>将他们提交到我们的<a href="https://github.com/yyc12345/coconut-leaf">GitHub项目</a>.</p><p>本工程代码使用<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL v3</a>授权。</p>
|
||||
|
||||
ccn-todo-todoList=待办列表
|
||||
ccn-i18n-login-form-username=用户名
|
||||
ccn-i18n-login-form-password=密码
|
||||
ccn-i18n-login-form-login=登录
|
||||
|
||||
ccn-calendar-calendar-jump=转到
|
||||
ccn-calendar-calendar-today=今天
|
||||
ccn-calendar-calendar-add=添加...
|
||||
ccn-calendar-calendar-scheduleList=日程安排
|
||||
ccn-calendar-tabcontrol-tabCalendar=日历
|
||||
ccn-calendar-tabcontrol-tabShared=被共享的
|
||||
ccn-calendar-tabcontrol-tabSharing=共享给其他人
|
||||
ccn-calendar-text-year=年
|
||||
ccn-calendar-text-month=月
|
||||
ccn-calendar-text-day=日
|
||||
ccn-calendar-text-hour=时
|
||||
ccn-calendar-text-minute=分
|
||||
ccn-calendar-week-1=星期一
|
||||
ccn-calendar-week-2=星期二
|
||||
ccn-calendar-week-3=星期三
|
||||
ccn-calendar-week-4=星期四
|
||||
ccn-calendar-week-5=星期五
|
||||
ccn-calendar-week-6=星期六
|
||||
ccn-calendar-week-7=星期日
|
||||
ccn-calendar-month-1=1月
|
||||
ccn-calendar-month-2=2月
|
||||
ccn-calendar-month-3=3月
|
||||
ccn-calendar-month-4=4月
|
||||
ccn-calendar-month-5=5月
|
||||
ccn-calendar-month-6=6月
|
||||
ccn-calendar-month-7=7月
|
||||
ccn-calendar-month-8=8月
|
||||
ccn-calendar-month-9=9月
|
||||
ccn-calendar-month-10=10月
|
||||
ccn-calendar-month-11=11月
|
||||
ccn-calendar-month-12=12月
|
||||
ccn-calendar-modalEvent-header=编辑事件
|
||||
ccn-calendar-modalEvent-title=标题
|
||||
ccn-calendar-modalEvent-description=描述
|
||||
ccn-calendar-modalEvent-collection=集合
|
||||
ccn-calendar-modalEvent-startDateTime=开始时间
|
||||
ccn-calendar-modalEvent-endDateTime=结束时间
|
||||
ccn-calendar-modalEvent-btnSpot=时间点
|
||||
ccn-calendar-modalEvent-btnFullDay=全天
|
||||
ccn-calendar-modalEvent-loop=事件循环
|
||||
ccn-calendar-modalEvent-loop-never=从不
|
||||
ccn-calendar-modalEvent-loop-day=按天
|
||||
ccn-calendar-modalEvent-loop-week=按周
|
||||
ccn-calendar-modalEvent-loop-month=按月
|
||||
ccn-calendar-modalEvent-loop-year=按年
|
||||
ccn-calendar-modalEvent-loopDay-span=间隔天数
|
||||
ccn-calendar-modalEvent-loopWeek-span=间隔周数
|
||||
ccn-calendar-modalEvent-loopWeek-option=在下列这些星期上循环
|
||||
ccn-calendar-modalEvent-loopMonth-span=间隔月数
|
||||
ccn-calendar-modalEvent-loopWeek-option=月份模式
|
||||
ccn-calendar-modalEvent-loopWeek-optionA=第{0}天
|
||||
ccn-calendar-modalEvent-loopWeek-optionB=倒数第{0}天
|
||||
ccn-calendar-modalEvent-loopWeek-optionC=第{0}个星期第{1}天
|
||||
ccn-calendar-modalEvent-loopWeek-optionD=倒数第{0}个星期第{1}天
|
||||
ccn-calendar-modalEvent-loopYear-span=间隔年数
|
||||
ccn-calendar-modalEvent-loopStop=事件循环停止方式
|
||||
ccn-calendar-modalEvent-loopStop-forever=永不停止
|
||||
ccn-calendar-modalEvent-loopStop-datetime=指定时间
|
||||
ccn-calendar-modalEvent-loopStop-times=指定次数
|
||||
ccn-calendar-modalEvent-timezone-title=时区设定
|
||||
ccn-calendar-modalEvent-timezone-warning=您当前设置的事件的时区与您的时区不匹配,您可以在下面修改您对于此事件的时区选择,如果您不熟悉时区,请选择保持原有时区。
|
||||
ccn-calendar-modalEvent-timezone-keep=保持原有时区
|
||||
ccn-calendar-modalEvent-timezone-replace=使用我现在的时区
|
||||
ccn-calendar-modalEvent-strictMode-title=循环的严格与宽松
|
||||
ccn-calendar-modalEvent-strictMode-warning=允许您在严格模式与宽松模式种进行选择,此选择只对循环事件有效。
|
||||
ccn-calendar-modalEvent-strictMode-strict=严格模式,严格遵守日期要求,如果日期不存在,就不安排。
|
||||
ccn-calendar-modalEvent-strictMode-rough=宽松模式,不在意日期要求的精确性,如果日期不存在,则找到最近的符合条件的日子安排。
|
||||
ccn-calendar-modalEvent-btnSubmit=提交
|
||||
ccn-calendar-modalEvent-btnCancel=取消
|
||||
ccn-calendar-shared-list=被共享的集合
|
||||
ccn-calendar-owned-list=我的集合
|
||||
ccn-calendar-sharing-list=分享目标
|
||||
ccn-calendar-sharing-editing=正在编辑集合:
|
||||
ccn-calendar-sharedItem-sharedBy=共享人:
|
||||
ccn-i18n-todo-todoList=待办列表
|
||||
|
||||
ccn-admin-tabcontrol-tabProfile=我的资料
|
||||
ccn-admin-tabcontrol-tabUserList=管理用户
|
||||
ccn-admin-changePassword=更改密码
|
||||
ccn-admin-userList=用户列表
|
||||
ccn-admin-userItem-newPassword=新密码
|
||||
ccn-admin-userItem-isAdmin=是管理员
|
||||
ccn-i18n-calendar-calendar-jump=转到
|
||||
ccn-i18n-calendar-calendar-today=今天
|
||||
ccn-i18n-calendar-calendar-add=添加...
|
||||
ccn-i18n-calendar-calendar-scheduleList=日程安排
|
||||
ccn-i18n-calendar-tabcontrol-tabCalendar=日历
|
||||
ccn-i18n-calendar-tabcontrol-tabCollection=集合
|
||||
ccn-i18n-calendar-tabcontrol-tabDisplay=显示设置
|
||||
ccn-i18n-calendar-owned-list=我的集合
|
||||
ccn-i18n-calendar-shared-list=被共享的集合
|
||||
|
||||
ccn-i18n-collection-owned-list=我的集合
|
||||
ccn-i18n-collection-sharing-list=分享目标
|
||||
ccn-i18n-collection-sharing-editing=正在编辑集合:
|
||||
|
||||
ccn-i18n-event-header=编辑事件
|
||||
ccn-i18n-event-title=标题
|
||||
ccn-i18n-event-description=描述
|
||||
ccn-i18n-event-collection=集合
|
||||
ccn-i18n-event-startDateTime=开始时间
|
||||
ccn-i18n-event-endDateTime=结束时间
|
||||
ccn-i18n-event-btnSpot=时间点
|
||||
ccn-i18n-event-btnFullDay=全天
|
||||
ccn-i18n-event-loop=事件循环
|
||||
ccn-i18n-event-loop-never=从不
|
||||
ccn-i18n-event-loop-day=按天
|
||||
ccn-i18n-event-loop-week=按周
|
||||
ccn-i18n-event-loop-month=按月
|
||||
ccn-i18n-event-loop-year=按年
|
||||
ccn-i18n-event-loopDay-span=间隔天数
|
||||
ccn-i18n-event-loopWeek-span=间隔周数
|
||||
ccn-i18n-event-loopWeek-option=在下列这些星期上循环
|
||||
ccn-i18n-event-loopMonth-span=间隔月数
|
||||
ccn-i18n-event-loopWeek-option=月份模式
|
||||
ccn-i18n-event-loopWeek-optionA=第{0}天
|
||||
ccn-i18n-event-loopWeek-optionB=倒数第{0}天
|
||||
ccn-i18n-event-loopWeek-optionC=第{0}个星期第{1}天
|
||||
ccn-i18n-event-loopWeek-optionD=倒数第{0}个星期第{1}天
|
||||
ccn-i18n-event-loopYear-span=间隔年数
|
||||
ccn-i18n-event-loopStop=事件循环停止方式
|
||||
ccn-i18n-event-loopStop-forever=永不停止
|
||||
ccn-i18n-event-loopStop-datetime=指定时间
|
||||
ccn-i18n-event-loopStop-times=指定次数
|
||||
ccn-i18n-event-timezone-title=时区设定
|
||||
ccn-i18n-event-timezone-warning=您当前设置的事件的时区与您的时区不匹配,您可以在下面修改您对于此事件的时区选择,如果您不熟悉时区,请选择保持原有时区。
|
||||
ccn-i18n-event-timezone-keep=保持原有时区
|
||||
ccn-i18n-event-timezone-replace=使用我现在的时区
|
||||
ccn-i18n-event-strictMode-title=循环的严格与宽松
|
||||
ccn-i18n-event-strictMode-warning=允许您在严格模式与宽松模式种进行选择,此选择只对循环事件有效。
|
||||
ccn-i18n-event-strictMode-strict=严格模式,严格遵守日期要求,如果日期不存在,就不安排。
|
||||
ccn-i18n-event-strictMode-rough=宽松模式,不在意日期要求的精确性,如果日期不存在,则找到最近的符合条件的日子安排。
|
||||
ccn-i18n-event-btnSubmit=提交
|
||||
ccn-i18n-event-btnCancel=取消
|
||||
|
||||
ccn-i18n-sharedItem-sharedBy=共享人:
|
||||
|
||||
ccn-i18n-admin-tabcontrol-tabProfile=我的资料
|
||||
ccn-i18n-admin-tabcontrol-tabUserList=管理用户
|
||||
ccn-i18n-admin-changePassword=更改密码
|
||||
ccn-i18n-admin-userList=用户列表
|
||||
|
||||
ccn-i18n-userItem-newPassword=新密码
|
||||
ccn-i18n-userItem-isAdmin=是管理员
|
||||
|
||||
|
||||
74
src/static/js/datetimepicker.js
Normal file
74
src/static/js/datetimepicker.js
Normal file
@@ -0,0 +1,74 @@
|
||||
function ccn_datetimepicker_Init() {
|
||||
var nowtime = new Date();
|
||||
|
||||
$('.datetimepicker-year').attr('min', ccn_datetime_MIN_YEAR)
|
||||
.attr('max', ccn_datetime_MAX_YEAR)
|
||||
.attr('step', 1)
|
||||
.val(nowtime.getFullYear())
|
||||
.bind('propertychange', ccn_datetimepicker_Sync);
|
||||
|
||||
$('.datetimepicker-month').attr('min', 1)
|
||||
.attr('max', 12)
|
||||
.attr('step', 1)
|
||||
.val(nowtime.getMonth() + 1)
|
||||
.bind('propertychange', ccn_datetimepicker_Sync);
|
||||
|
||||
$('.datetimepicker-day').attr('min', 1)
|
||||
.attr('step', 1)
|
||||
.each(function(){
|
||||
ccn_datetimepicker_SyncEx($(this).attr("datetimepicker"));
|
||||
})
|
||||
.val(nowtime.getDate());
|
||||
|
||||
$('.datetimepicker-hour').attr('min', 0)
|
||||
.attr('max', 23)
|
||||
.attr('step', 1)
|
||||
.val(nowtime.getHours());
|
||||
|
||||
$('.datetimepicker-minute').attr('min', 0)
|
||||
.attr('max', 59)
|
||||
.attr('step', 1)
|
||||
.val(nowtime.getMinutes());
|
||||
}
|
||||
|
||||
function ccn_datetimepicker_Sync() {
|
||||
var pickerIndex = $(this).attr("datetimepicker");
|
||||
ccn_datetimepicker_SyncEx(pickerIndex);
|
||||
}
|
||||
|
||||
function ccn_datetimepicker_SyncEx(pickerIndex) {
|
||||
year = $('.datetimepicker-year[datetimepicker=' + pickerIndex + ']').val();
|
||||
month = $('.datetimepicker-month[datetimepicker=' + pickerIndex + ']').val();
|
||||
|
||||
dayDOM = $('.datetimepicker-day[datetimepicker=' + pickerIndex + ']');
|
||||
if (typeof(year) == 'undefined' || typeof(month) == 'undefined') {
|
||||
dayDOM.attr('max', 1)
|
||||
.val(1);
|
||||
} else {
|
||||
dayDOM.attr('max', ccn_datetime_monthDayCount[month - 1] + ((month == 2 && ccn_datetime_IsLeapYear(year) ? 1 : 0)))
|
||||
.val(1);
|
||||
}
|
||||
}
|
||||
|
||||
function ccn_datetimepicker_Set(pickerIndex, dt) {
|
||||
$('.datetimepicker-year[datetimepicker=' + pickerIndex + ']').val(dt.getFullYear());
|
||||
$('.datetimepicker-month[datetimepicker=' + pickerIndex + ']').val(dt.getMonth() + 1);
|
||||
$('.datetimepicker-day[datetimepicker=' + pickerIndex + ']').val(dt.getDate());
|
||||
$('.datetimepicker-hour[datetimepicker=' + pickerIndex + ']').val(dt.getHours());
|
||||
$('.datetimepicker-minute[datetimepicker=' + pickerIndex + ']').val(dt.getMinutes());
|
||||
}
|
||||
|
||||
function ccn_datetimepicker_Get(pickerIndex) {
|
||||
year = $('.datetimepicker-year[datetimepicker=' + pickerIndex + ']').val();
|
||||
month = $('.datetimepicker-month[datetimepicker=' + pickerIndex + ']').val();
|
||||
day = $('.datetimepicker-day[datetimepicker=' + pickerIndex + ']').val();
|
||||
hour = $('.datetimepicker-hour[datetimepicker=' + pickerIndex + ']').val();
|
||||
minute = $('.datetimepicker-minute[datetimepicker=' + pickerIndex + ']').val();
|
||||
if (IsUndefinedOrEmpty(year)) year = ccn_datetime_MIN_YEAR;
|
||||
if (IsUndefinedOrEmpty(month)) month = 1;
|
||||
if (IsUndefinedOrEmpty(day)) day = 1;
|
||||
if (IsUndefinedOrEmpty(hour)) hour = 0;
|
||||
if (IsUndefinedOrEmpty(minute)) minute = 0;
|
||||
|
||||
return new Date(year, month - 1, day, hour, minute, 0, 0);
|
||||
}
|
||||
@@ -6,6 +6,7 @@ function ccn_headerNav_LoggedRefresh() {
|
||||
if (ccn_api_common_tokenValid()) {
|
||||
// logged, show all nav button and logout button
|
||||
$("#ccn-header-nav-home").show();
|
||||
$("#ccn-header-nav-collection").show();
|
||||
$("#ccn-header-nav-calendar").show();
|
||||
$("#ccn-header-nav-todo").show();
|
||||
$("#ccn-header-nav-admin").show();
|
||||
@@ -14,6 +15,7 @@ function ccn_headerNav_LoggedRefresh() {
|
||||
$("#ccn-header-user-logout").show();
|
||||
} else {
|
||||
$("#ccn-header-nav-home").show();
|
||||
$("#ccn-header-nav-collection").hide();
|
||||
$("#ccn-header-nav-calendar").hide();
|
||||
$("#ccn-header-nav-todo").hide();
|
||||
$("#ccn-header-nav-admin").hide();
|
||||
@@ -42,7 +44,7 @@ function ccn_headerNav_BindEvents() {
|
||||
window.location.href = '/web/home';
|
||||
return;
|
||||
|
||||
} else ccn_messagebox_Show($.i18n.prop("ccn-js-fail-logout"));
|
||||
} else ccn_messagebox_Show($.i18n.prop("ccn-i18n-js-fail-logout"));
|
||||
});
|
||||
|
||||
// bind burger menu
|
||||
|
||||
@@ -5,7 +5,9 @@ var ccn_pages_enumPages = {
|
||||
calendar: 1,
|
||||
todo: 2,
|
||||
admin: 3,
|
||||
login: 4
|
||||
login: 4,
|
||||
collection: 5,
|
||||
event: 6
|
||||
};
|
||||
var ccn_pages_currentPage = ccn_pages_enumPages.home;
|
||||
|
||||
@@ -46,19 +48,25 @@ function ccn_i18n_ApplyLanguage() {
|
||||
//set title
|
||||
switch(ccn_pages_currentPage) {
|
||||
case ccn_pages_enumPages.home:
|
||||
$('#ccn-pageName').html($.i18n.prop('ccn-pageName-home'));
|
||||
$('#ccn-pageName').html($.i18n.prop('ccn-i18n-pageName-home'));
|
||||
break;
|
||||
case ccn_pages_enumPages.calendar:
|
||||
$('#ccn-pageName').html($.i18n.prop('ccn-pageName-calendar'));
|
||||
$('#ccn-pageName').html($.i18n.prop('ccn-i18n-pageName-calendar'));
|
||||
break;
|
||||
case ccn_pages_enumPages.todo:
|
||||
$('#ccn-pageName').html($.i18n.prop('ccn-pageName-todo'));
|
||||
$('#ccn-pageName').html($.i18n.prop('ccn-i18n-pageName-todo'));
|
||||
break;
|
||||
case ccn_pages_enumPages.admin:
|
||||
$('#ccn-pageName').html($.i18n.prop('ccn-pageName-admin'));
|
||||
$('#ccn-pageName').html($.i18n.prop('ccn-i18n-pageName-admin'));
|
||||
break;
|
||||
case ccn_pages_enumPages.login:
|
||||
$('#ccn-pageName').html($.i18n.prop('ccn-pageName-login'));
|
||||
$('#ccn-pageName').html($.i18n.prop('ccn-i18n-pageName-login'));
|
||||
break;
|
||||
case ccn_pages_enumPages.collection:
|
||||
$('#ccn-pageName').html($.i18n.prop('ccn-i18n-pageName-collection'));
|
||||
break;
|
||||
case ccn_pages_enumPages.event:
|
||||
$('#ccn-pageName').html($.i18n.prop('ccn-i18n-pageName-event'));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,10 +46,10 @@ function ccn_admin_profile_ChangePassword() {
|
||||
|
||||
var result = ccn_api_common_changePassword(newpassword);
|
||||
if(result) {
|
||||
ccn_messagebox_Show($.i18n.prop("ccn-js-success"));
|
||||
ccn_messagebox_Show($.i18n.prop("ccn-i18n-js-success"));
|
||||
$('#ccn-admin-profile-inputPassword').val('');
|
||||
} else
|
||||
ccn_messagebox_Show($.i18n.prop("ccn-js-fail-update"));
|
||||
ccn_messagebox_Show($.i18n.prop("ccn-i18n-js-fail-update"));
|
||||
|
||||
}
|
||||
|
||||
@@ -80,10 +80,10 @@ function ccn_admin_userList_RenderItem(item, index, listDOM) {
|
||||
ccn_admin_userList_ChangeDisplayMode(uuid, false, item[1])
|
||||
|
||||
// bind event
|
||||
$("#ccn-admin-userItem-btnEdit-" + uuid).click(ccn_admin_userList_ItemEdit);
|
||||
$("#ccn-admin-userItem-btnDelete-" + uuid).click(ccn_admin_userList_ItemDelete);
|
||||
$("#ccn-admin-userItem-btnUpdate-" + uuid).click(ccn_admin_userList_ItemUpdate);
|
||||
$("#ccn-admin-userItem-btnCancelUpdate-" + uuid).click(ccn_admin_userList_ItemCancelUpdate);
|
||||
$("#ccn-userItem-btnEdit-" + uuid).click(ccn_admin_userList_ItemEdit);
|
||||
$("#ccn-userItem-btnDelete-" + uuid).click(ccn_admin_userList_ItemDelete);
|
||||
$("#ccn-userItem-btnUpdate-" + uuid).click(ccn_admin_userList_ItemUpdate);
|
||||
$("#ccn-userItem-btnCancelUpdate-" + uuid).click(ccn_admin_userList_ItemCancelUpdate);
|
||||
}
|
||||
|
||||
function ccn_admin_userList_RenderCacheList() {
|
||||
@@ -104,28 +104,28 @@ function ccn_admin_userList_RenderCacheList() {
|
||||
function ccn_admin_userList_ChangeDisplayMode(uuid, isEdit, isAdmin) {
|
||||
if (typeof(isAdmin) != 'undefined') {
|
||||
if (isAdmin)
|
||||
$("#ccn-admin-userItem-iconIsAdmin-" + uuid).show();
|
||||
$("#ccn-userItem-iconIsAdmin-" + uuid).show();
|
||||
else
|
||||
$("#ccn-admin-userItem-iconIsAdmin-" + uuid).hide();
|
||||
$("#ccn-userItem-iconIsAdmin-" + uuid).hide();
|
||||
}
|
||||
|
||||
if (typeof(isEdit) != 'undefined') {
|
||||
if (isEdit) {
|
||||
$("#ccn-admin-userItem-btnEdit-" + uuid).hide();
|
||||
$("#ccn-admin-userItem-btnDelete-" + uuid).hide();
|
||||
$("#ccn-admin-userItem-btnUpdate-" + uuid).show();
|
||||
$("#ccn-admin-userItem-btnCancelUpdate-" + uuid).show();
|
||||
$("#ccn-userItem-btnEdit-" + uuid).hide();
|
||||
$("#ccn-userItem-btnDelete-" + uuid).hide();
|
||||
$("#ccn-userItem-btnUpdate-" + uuid).show();
|
||||
$("#ccn-userItem-btnCancelUpdate-" + uuid).show();
|
||||
|
||||
$("#ccn-admin-userItem-boxPassword-" + uuid).show();
|
||||
$("#ccn-admin-userItem-boxIsAdmin-" + uuid).show();
|
||||
$("#ccn-userItem-boxPassword-" + uuid).show();
|
||||
$("#ccn-userItem-boxIsAdmin-" + uuid).show();
|
||||
} else {
|
||||
$("#ccn-admin-userItem-btnEdit-" + uuid).show();
|
||||
$("#ccn-admin-userItem-btnDelete-" + uuid).show();
|
||||
$("#ccn-admin-userItem-btnUpdate-" + uuid).hide();
|
||||
$("#ccn-admin-userItem-btnCancelUpdate-" + uuid).hide();
|
||||
$("#ccn-userItem-btnEdit-" + uuid).show();
|
||||
$("#ccn-userItem-btnDelete-" + uuid).show();
|
||||
$("#ccn-userItem-btnUpdate-" + uuid).hide();
|
||||
$("#ccn-userItem-btnCancelUpdate-" + uuid).hide();
|
||||
|
||||
$("#ccn-admin-userItem-boxPassword-" + uuid).hide();
|
||||
$("#ccn-admin-userItem-boxIsAdmin-" + uuid).hide();
|
||||
$("#ccn-userItem-boxPassword-" + uuid).hide();
|
||||
$("#ccn-userItem-boxIsAdmin-" + uuid).hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -142,7 +142,7 @@ function ccn_admin_userList_Add() {
|
||||
|
||||
var result = ccn_api_admin_add(username);
|
||||
if (typeof(result) == 'undefined') {
|
||||
ccn_messagebox_Show($.i18n.prop("ccn-js-fail-add"));
|
||||
ccn_messagebox_Show($.i18n.prop("ccn-i18n-js-fail-add"));
|
||||
} else {
|
||||
// render
|
||||
var index = ccn_admin_userListCache.push(result) - 1;
|
||||
@@ -156,8 +156,8 @@ function ccn_admin_userList_ItemEdit() {
|
||||
var uuid = $(this).attr("uuid");
|
||||
|
||||
// copy isAdmin to checkbox and clean password box
|
||||
$('#ccn-admin-userItem-inputIsAdmin-' + uuid).prop("checked", ccn_admin_userListCache[uuid][1]);
|
||||
$('#ccn-admin-userItem-inputPassword-' + uuid).val('');
|
||||
$('#ccn-userItem-inputIsAdmin-' + uuid).prop("checked", ccn_admin_userListCache[uuid][1]);
|
||||
$('#ccn-userItem-inputPassword-' + uuid).val('');
|
||||
|
||||
// switch to edit mode
|
||||
ccn_admin_userList_ChangeDisplayMode(uuid, true, undefined);
|
||||
@@ -170,17 +170,17 @@ function ccn_admin_userList_ItemDelete() {
|
||||
|
||||
if(!result) {
|
||||
// fail
|
||||
ccn_messagebox_Show($.i18n.prop("ccn-js-fail-delete"));
|
||||
ccn_messagebox_Show($.i18n.prop("ccn-i18n-js-fail-delete"));
|
||||
} else {
|
||||
// remove body
|
||||
$("#ccn-admin-userItem-" + uuid).remove();
|
||||
$("#ccn-userItem-" + uuid).remove();
|
||||
}
|
||||
}
|
||||
|
||||
function ccn_admin_userList_ItemUpdate() {
|
||||
var uuid = $(this).attr("uuid");
|
||||
var newpassword = $('#ccn-admin-userItem-inputPassword-' + uuid).val();
|
||||
var isAdmin = $('#ccn-admin-userItem-inputIsAdmin-' + uuid).prop("checked");
|
||||
var newpassword = $('#ccn-userItem-inputPassword-' + uuid).val();
|
||||
var isAdmin = $('#ccn-userItem-inputIsAdmin-' + uuid).prop("checked");
|
||||
|
||||
var result = ccn_api_admin_update(
|
||||
ccn_admin_userListCache[uuid][0],
|
||||
@@ -189,7 +189,7 @@ function ccn_admin_userList_ItemUpdate() {
|
||||
|
||||
if (!result) {
|
||||
// fail
|
||||
ccn_messagebox_Show($.i18n.prop("ccn-js-fail-update"));
|
||||
ccn_messagebox_Show($.i18n.prop("ccn-i18n-js-fail-update"));
|
||||
} else {
|
||||
// safely update data
|
||||
ccn_admin_userListCache[uuid][1] = isAdmin
|
||||
|
||||
@@ -1,20 +1,13 @@
|
||||
// 3 used cache list
|
||||
var ccn_calendar_owned_listCache = [];
|
||||
var ccn_calendar_sharing_listCache = [];
|
||||
var ccn_calendar_shared_listCache = [];
|
||||
|
||||
// current editing sharing collection
|
||||
var ccn_calendar_sharing_editingOwned = undefined; // the uuid of owned collection
|
||||
|
||||
// 2 list which will store sharing and shared collection's display mode.
|
||||
// key is uuid, value is bool
|
||||
var ccn_calendar_sharing_displayCache = [];
|
||||
var ccn_calendar_owned_displayCache = [];
|
||||
var ccn_calendar_shared_displayCache = [];
|
||||
|
||||
// modal editing object.
|
||||
// undefined mean add
|
||||
// not undefined mean update
|
||||
// not undefined mean update(a copy of calendar event)
|
||||
var ccn_calendar_eventModal_editing = undefined;
|
||||
var ccn_calendar_eventModal_collectionCache = [];
|
||||
var ccn_calendar_calendar_listCache = [];
|
||||
var ccn_calendar_calendar_displayCache = [];
|
||||
|
||||
@@ -36,6 +29,9 @@ $(document).ready(function() {
|
||||
// process calendar it self
|
||||
ccn_calendar_calendar_LoadCalendarBody();
|
||||
|
||||
// init datetimepicker
|
||||
ccn_datetimepicker_Init();
|
||||
|
||||
// bind tab control switcher and set current tab
|
||||
$("#tabcontrol-tab-1-1").click(function(){
|
||||
ccn_tabcontrol_SwitchTab(1, 1);
|
||||
@@ -48,116 +44,21 @@ $(document).ready(function() {
|
||||
});
|
||||
ccn_tabcontrol_SwitchTab(1, 1);
|
||||
|
||||
// init datetimepicker
|
||||
ccn_calendar_datetimepicker_Init();
|
||||
|
||||
// init span picker
|
||||
$('.spanpicker').attr('max', 100)
|
||||
.attr('min', 1)
|
||||
.attr('step', 1)
|
||||
.val(1);
|
||||
|
||||
// apply i18n
|
||||
ccn_i18n_LoadLanguage();
|
||||
ccn_i18n_ApplyLanguage();
|
||||
|
||||
//refresh once
|
||||
ccn_calendar_shared_Refresh();
|
||||
ccn_calendar_owned_Refresh();
|
||||
ccn_calendar_collection_Refresh();
|
||||
|
||||
// bind event
|
||||
$('#ccn-calendar-shared-btnRefresh').click(ccn_calendar_shared_Refresh);
|
||||
$('#ccn-calendar-owned-btnAdd').click(ccn_calendar_owned_Add);
|
||||
$('#ccn-calendar-owned-btnRefresh').click(ccn_calendar_owned_Refresh);
|
||||
$('#ccn-calendar-sharing-btnAdd').click(ccn_calendar_sharing_Add);
|
||||
$('#ccn-calendar-sharing-btnRefresh').click(ccn_calendar_sharing_Refresh);
|
||||
$('#ccn-calendar-collection-btnRefresh').click(ccn_calendar_collection_Refresh);
|
||||
|
||||
$('#ccn-calendar-calendar-btnJump').click(ccn_calendar_calendar_Refresh);
|
||||
$('#ccn-calendar-calendar-btnToday').click(ccn_calendar_calendar_Today);
|
||||
$('#ccn-calendar-calendar-btnAdd').click(ccn_calendar_calendar_Add);
|
||||
|
||||
$('#ccn-calendar-modalEvent-btnSubmit').click(ccn_calendar_calendar_ItemUpdate);
|
||||
$('#ccn-calendar-modalEvent-btnCancel').click(ccn_calendar_calendar_ItemCancel);
|
||||
$('#ccn-calendar-modalEvent-btnClose').click(ccn_calendar_calendar_ItemCancel);
|
||||
});
|
||||
|
||||
// ================== assist func
|
||||
|
||||
function ccn_calendar_datetimepicker_Init() {
|
||||
var nowtime = new Date();
|
||||
|
||||
$('.datetimepicker-year').attr('min', ccn_datetime_MIN_YEAR)
|
||||
.attr('max', ccn_datetime_MAX_YEAR)
|
||||
.attr('step', 1)
|
||||
.val(nowtime.getFullYear())
|
||||
.bind('propertychange', ccn_calendar_datetimepicker_Sync);
|
||||
|
||||
$('.datetimepicker-month').attr('min', 1)
|
||||
.attr('max', 12)
|
||||
.attr('step', 1)
|
||||
.val(nowtime.getMonth() + 1)
|
||||
.bind('propertychange', ccn_calendar_datetimepicker_Sync);
|
||||
|
||||
$('.datetimepicker-day').attr('min', 1)
|
||||
.attr('step', 1)
|
||||
.each(function(){
|
||||
ccn_calendar_datetimepicker_SyncEx($(this).attr("datetimepicker"));
|
||||
})
|
||||
.val(nowtime.getDate());
|
||||
|
||||
$('.datetimepicker-hour').attr('min', 0)
|
||||
.attr('max', 23)
|
||||
.attr('step', 1)
|
||||
.val(nowtime.getHours());
|
||||
|
||||
$('.datetimepicker-minute').attr('min', 0)
|
||||
.attr('max', 59)
|
||||
.attr('step', 1)
|
||||
.val(nowtime.getMinutes());
|
||||
}
|
||||
|
||||
function ccn_calendar_datetimepicker_Sync() {
|
||||
var pickerIndex = $(this).attr("datetimepicker");
|
||||
ccn_calendar_datetimepicker_SyncEx(pickerIndex);
|
||||
}
|
||||
|
||||
function ccn_calendar_datetimepicker_SyncEx(pickerIndex) {
|
||||
year = $('.datetimepicker-year[datetimepicker=' + pickerIndex + ']').val();
|
||||
month = $('.datetimepicker-month[datetimepicker=' + pickerIndex + ']').val();
|
||||
|
||||
dayDOM = $('.datetimepicker-day[datetimepicker=' + pickerIndex + ']');
|
||||
if (typeof(year) == 'undefined' || typeof(month) == 'undefined') {
|
||||
dayDOM.attr('max', 1)
|
||||
.val(1);
|
||||
} else {
|
||||
dayDOM.attr('max', ccn_datetime_monthDayCount[month - 1] + ((month == 2 && ccn_datetime_IsLeapYear(year) ? 1 : 0)))
|
||||
.val(1);
|
||||
}
|
||||
}
|
||||
|
||||
function ccn_calendar_datetimepicker_Set(pickerIndex, dt) {
|
||||
$('.datetimepicker-year[datetimepicker=' + pickerIndex + ']').val(dt.getFullYear());
|
||||
$('.datetimepicker-month[datetimepicker=' + pickerIndex + ']').val(dt.getMonth() + 1);
|
||||
$('.datetimepicker-day[datetimepicker=' + pickerIndex + ']').val(dt.getDate());
|
||||
$('.datetimepicker-hour[datetimepicker=' + pickerIndex + ']').val(dt.getHours());
|
||||
$('.datetimepicker-minute[datetimepicker=' + pickerIndex + ']').val(dt.getMinutes());
|
||||
}
|
||||
|
||||
function ccn_calendar_datetimepicker_Get(pickerIndex) {
|
||||
year = $('.datetimepicker-year[datetimepicker=' + pickerIndex + ']').val();
|
||||
month = $('.datetimepicker-month[datetimepicker=' + pickerIndex + ']').val();
|
||||
day = $('.datetimepicker-day[datetimepicker=' + pickerIndex + ']').val();
|
||||
hour = $('.datetimepicker-hour[datetimepicker=' + pickerIndex + ']').val();
|
||||
minute = $('.datetimepicker-minute[datetimepicker=' + pickerIndex + ']').val();
|
||||
if (IsUndefinedOrEmpty(year)) year = ccn_datetime_MIN_YEAR;
|
||||
if (IsUndefinedOrEmpty(month)) month = 1;
|
||||
if (IsUndefinedOrEmpty(day)) day = 1;
|
||||
if (IsUndefinedOrEmpty(hour)) hour = 0;
|
||||
if (IsUndefinedOrEmpty(minute)) minute = 0;
|
||||
|
||||
return new Date(year, month - 1, day, hour, minute, 0, 0);
|
||||
}
|
||||
|
||||
// ================== calendar
|
||||
|
||||
function ccn_calendar_calendar_LoadCalendarBody() {
|
||||
@@ -165,7 +66,7 @@ function ccn_calendar_calendar_LoadCalendarBody() {
|
||||
}
|
||||
|
||||
function ccn_calendar_calendar_Refresh() {
|
||||
gottenDateTime = ccn_calendar_datetimepicker_Get(4);
|
||||
gottenDateTime = ccn_datetimepicker_Get(1);
|
||||
gottenYear = gottenDateTime.getFullYear();
|
||||
gottenMonth = gottenDateTime.getMonth() + 1;
|
||||
}
|
||||
@@ -180,361 +81,118 @@ function ccn_calendar_calendar_AnalyseEvent() {
|
||||
|
||||
function ccn_calendar_calendar_Today() {
|
||||
var nowtime = new Date();
|
||||
ccn_calendar_datetimepicker_Set(4, nowtime);
|
||||
ccn_datetimepicker_Set(1, nowtime);
|
||||
ccn_calendar_calendar_Refresh();
|
||||
}
|
||||
|
||||
function ccn_calendar_calendar_Add() {
|
||||
$('#ccn-calendar-modalEvent').addClass('is-active');
|
||||
}
|
||||
|
||||
function ccn_calendar_calendar_ItemEdit() {
|
||||
$('#ccn-calendar-modalEvent').addClass('is-active');
|
||||
window.location.href = '/web/eventAdd';
|
||||
}
|
||||
|
||||
function ccn_calendar_calendar_ItemUpdate() {
|
||||
$('#ccn-calendar-modalEvent').removeClass('is-active');
|
||||
var uuid = $(this).attr("uuid");
|
||||
window.location.href = '/web/eventUpdate/' + uuid;
|
||||
}
|
||||
|
||||
function ccn_calendar_calendar_ItemCancel() {
|
||||
$('#ccn-calendar-modalEvent').removeClass('is-active');
|
||||
}
|
||||
// ============================= collection
|
||||
|
||||
function ccn_calendar_calendar_DeployEventModal() {
|
||||
|
||||
}
|
||||
|
||||
// return undefined to indicate an error
|
||||
function ccn_calendar_calendar_GetEventModal() {
|
||||
|
||||
}
|
||||
|
||||
// ================== collection
|
||||
|
||||
function ccn_calendar_owned_Refresh() {
|
||||
ccn_calendar_owned_listCache = new Array();
|
||||
ccn_calendar_sharing_displayCache = new Array();
|
||||
|
||||
var result = ccn_api_collection_getFullOwn();
|
||||
if(typeof(result) != 'undefined') {
|
||||
for(var index in result) {
|
||||
ccn_calendar_owned_listCache[result[index][0]] = result[index];
|
||||
ccn_calendar_sharing_displayCache[result[index][0]] = true;
|
||||
}
|
||||
}
|
||||
|
||||
// render
|
||||
var listDOM = $('#ccn-calendar-ownedList');
|
||||
listDOM.empty();
|
||||
for(var index in ccn_calendar_owned_listCache) {
|
||||
ccn_calendar_owned_RenderItem(
|
||||
ccn_calendar_owned_listCache[index],
|
||||
listDOM
|
||||
)
|
||||
}
|
||||
|
||||
// also, order sharing list clean
|
||||
ccn_calendar_sharing_editingOwned = undefined;
|
||||
ccn_calendar_sharing_Refresh();
|
||||
}
|
||||
|
||||
function ccn_calendar_owned_RenderItem(item, listDOM) {
|
||||
var renderdata = {
|
||||
uuid: item[0],
|
||||
name: item[1]
|
||||
}
|
||||
|
||||
// render
|
||||
listDOM.append(ccn_template_ownedItem.render(renderdata));
|
||||
|
||||
// set mode
|
||||
var uuid = renderdata.uuid;
|
||||
ccn_calendar_owned_ChangeDisplayMode(uuid, true, false);
|
||||
|
||||
// bind event
|
||||
$('#ccn-calendar-ownedItem-btnEdit-' + uuid).click(ccn_calendar_owned_ItemEdit);
|
||||
$('#ccn-calendar-ownedItem-btnDelete-' + uuid).click(ccn_calendar_owned_ItemDelete);
|
||||
$('#ccn-calendar-ownedItem-btnShare-' + uuid).click(ccn_calendar_owned_ItemShare);
|
||||
$('#ccn-calendar-ownedItem-btnHide-' + uuid).click(ccn_calendar_owned_ItemSwitchDisplay);
|
||||
$('#ccn-calendar-ownedItem-btnShow-' + uuid).click(ccn_calendar_owned_ItemSwitchDisplay);
|
||||
$('#ccn-calendar-ownedItem-btnUpdate-' + uuid).click(ccn_calendar_owned_ItemUpdate);
|
||||
$('#ccn-calendar-ownedItem-btnCancelUpdate-' + uuid).click(ccn_calendar_owned_ItemCancelUpdate);
|
||||
|
||||
}
|
||||
|
||||
function ccn_calendar_owned_ChangeDisplayMode(uuid, isShow, isEdit) {
|
||||
if (typeof(isShow) != 'undefined') {
|
||||
if (isShow) {
|
||||
$('#ccn-calendar-ownedItem-btnHide-' + uuid).show();
|
||||
$('#ccn-calendar-ownedItem-btnShow-' + uuid).hide();
|
||||
} else {
|
||||
$('#ccn-calendar-ownedItem-btnHide-' + uuid).hide();
|
||||
$('#ccn-calendar-ownedItem-btnShow-' + uuid).show();
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof(isEdit) != 'undefined') {
|
||||
if (isEdit) {
|
||||
$('#ccn-calendar-ownedItem-btnEdit-' + uuid).hide();
|
||||
$('#ccn-calendar-ownedItem-btnShare-' + uuid).hide();
|
||||
$('#ccn-calendar-ownedItem-btnDelete-' + uuid).hide();
|
||||
|
||||
$('#ccn-calendar-ownedItem-btnUpdate-' + uuid).show();
|
||||
$('#ccn-calendar-ownedItem-btnCancelUpdate-' + uuid).show();
|
||||
|
||||
$('#ccn-calendar-ownedItem-textName-' + uuid).hide();
|
||||
$('#ccn-calendar-ownedItem-boxName-' + uuid).show();
|
||||
} else {
|
||||
$('#ccn-calendar-ownedItem-btnEdit-' + uuid).show();
|
||||
$('#ccn-calendar-ownedItem-btnShare-' + uuid).show();
|
||||
$('#ccn-calendar-ownedItem-btnDelete-' + uuid).show();
|
||||
|
||||
$('#ccn-calendar-ownedItem-btnUpdate-' + uuid).hide();
|
||||
$('#ccn-calendar-ownedItem-btnCancelUpdate-' + uuid).hide();
|
||||
|
||||
$('#ccn-calendar-ownedItem-textName-' + uuid).show();
|
||||
$('#ccn-calendar-ownedItem-boxName-' + uuid).hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function ccn_calendar_sharing_Refresh() {
|
||||
ccn_calendar_sharing_listCache = new Array();
|
||||
|
||||
if (typeof(ccn_calendar_sharing_editingOwned) != 'undefined') {
|
||||
var result = ccn_api_collection_getSharing(ccn_calendar_sharing_editingOwned);
|
||||
if (typeof(result) != 'undefined') {
|
||||
for(var index in result) {
|
||||
ccn_calendar_sharing_listCache[index] = result[index];
|
||||
// also, sharingTarget don't have uuid, use index instead
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// update editing text
|
||||
$('#ccn-calendar-sharing-sharingEditing').text(
|
||||
typeof(ccn_calendar_sharing_editingOwned) == 'undefined' ?
|
||||
'' :
|
||||
ccn_calendar_owned_listCache[ccn_calendar_sharing_editingOwned][1]
|
||||
);
|
||||
|
||||
// if editing is undefined, hide container
|
||||
if (typeof(ccn_calendar_sharing_editingOwned) == 'undefined')
|
||||
$('#ccn-calendar-sharing-container').hide();
|
||||
else
|
||||
$('#ccn-calendar-sharing-container').show();
|
||||
|
||||
|
||||
var listDOM = $('#ccn-calendar-sharingList');
|
||||
listDOM.empty();
|
||||
for(var index in ccn_calendar_sharing_listCache) {
|
||||
ccn_calendar_sharing_RenderItem(
|
||||
ccn_calendar_sharing_listCache[index],
|
||||
index,
|
||||
listDOM
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
function ccn_calendar_sharing_RenderItem(item, index, listDOM) {
|
||||
var renderdata = {
|
||||
uuid: index,
|
||||
username: item
|
||||
}
|
||||
|
||||
// render
|
||||
listDOM.append(ccn_template_sharingItem.render(renderdata));
|
||||
|
||||
// bind event
|
||||
var uuid = index;
|
||||
$("#ccn-calendar-sharingItem-btnDelete-" + uuid).click(ccn_calendar_sharing_ItemDelete);
|
||||
}
|
||||
|
||||
|
||||
function ccn_calendar_shared_Refresh() {
|
||||
ccn_calendar_shared_listCache = new Array();
|
||||
function ccn_calendar_collection_Refresh() {
|
||||
ccn_calendar_owned_displayCache = new Array();
|
||||
ccn_calendar_shared_displayCache = new Array();
|
||||
|
||||
// render shared
|
||||
var result = ccn_api_collection_getShared();
|
||||
if (typeof(result) != 'undefined') {
|
||||
for(var index in result) {
|
||||
ccn_calendar_shared_listCache[result[index][0]] = result[index];
|
||||
ccn_calendar_shared_displayCache[result[index][0]] = true;
|
||||
}
|
||||
}
|
||||
|
||||
var listDOM = $('#ccn-calendar-sharedList');
|
||||
listDOM.empty();
|
||||
var renderdata = {
|
||||
uuid: undefined,
|
||||
name: undefined,
|
||||
username: undefined
|
||||
}
|
||||
if (typeof(result) != 'undefined') {
|
||||
for(var index in result) {
|
||||
var item = result[index];
|
||||
renderdata.uuid = item[0];
|
||||
renderdata.name = item[1];
|
||||
renderdata.username = item[2];
|
||||
|
||||
listDOM.append(ccn_template_displaySharedItem.render(renderdata));
|
||||
|
||||
// change display
|
||||
var uuid = renderdata.uuid;
|
||||
ccn_calendar_shared_ChangeDisplayMode(uuid, true);
|
||||
|
||||
var listDOM = $('#ccn-calendar-sharedList');
|
||||
listDOM.empty();
|
||||
for(var index in ccn_calendar_shared_listCache) {
|
||||
var item = ccn_calendar_shared_listCache[index];
|
||||
renderdata.uuid = item[0];
|
||||
renderdata.name = item[1];
|
||||
renderdata.username = item[2];
|
||||
|
||||
listDOM.append(ccn_template_sharedItem.render(renderdata));
|
||||
|
||||
// change display
|
||||
var uuid = renderdata.uuid;
|
||||
ccn_calendar_shared_ChangeDisplayMode(uuid, true);
|
||||
|
||||
// bind event
|
||||
$('#ccn-calendar-sharedItem-btnHide-' + uuid).click(ccn_calendar_shared_ItemSwitchDisplay);
|
||||
$('#ccn-calendar-sharedItem-btnShow-' + uuid).click(ccn_calendar_shared_ItemSwitchDisplay);
|
||||
// push into display list
|
||||
ccn_calendar_shared_displayCache[uuid] = true;
|
||||
|
||||
// bind event
|
||||
$('#ccn-displaySharedItem-btnHide-' + uuid).click(ccn_calendar_shared_ItemSwitchDisplay);
|
||||
$('#ccn-displaySharedItem-btnShow-' + uuid).click(ccn_calendar_shared_ItemSwitchDisplay);
|
||||
}
|
||||
}
|
||||
|
||||
ccn_i18n_ApplyLanguage2Content(listDOM);
|
||||
}
|
||||
|
||||
function ccn_calendar_shared_ChangeDisplayMode(uuid, isShow) {
|
||||
if (isShow) {
|
||||
$('#ccn-calendar-sharedItem-btnHide-' + uuid).show();
|
||||
$('#ccn-calendar-sharedItem-btnShow-' + uuid).hide();
|
||||
} else {
|
||||
$('#ccn-calendar-sharedItem-btnHide-' + uuid).hide();
|
||||
$('#ccn-calendar-sharedItem-btnShow-' + uuid).show();
|
||||
// render owned
|
||||
result = ccn_api_collection_getFullOwn();
|
||||
listDOM = $('#ccn-calendar-ownedList');
|
||||
listDOM.empty();
|
||||
renderdata = {
|
||||
uuid: undefined,
|
||||
name: undefined
|
||||
}
|
||||
}
|
||||
if (typeof(result) != 'undefined') {
|
||||
for(var index in result) {
|
||||
var item = result[index];
|
||||
renderdata.uuid = item[0];
|
||||
renderdata.name = item[1];
|
||||
|
||||
// ========================= input operation
|
||||
|
||||
function ccn_calendar_owned_Add() {
|
||||
var newname = $('#ccn-calendar-owned-inputAdd').val();
|
||||
if (newname == "") return;
|
||||
|
||||
var result = ccn_api_collection_addOwn(newname);
|
||||
if (typeof(result) == 'undefined') ccn_messagebox_Show($.i18n.prop("ccn-js-fail-add"));
|
||||
else {
|
||||
// second get. get detail
|
||||
result = ccn_api_collection_getDetailOwn(result);
|
||||
|
||||
if (typeof(result) == 'undefined') ccn_messagebox_Show($.i18n.prop("ccn-js-fail-get"));
|
||||
else {
|
||||
// render
|
||||
ccn_calendar_owned_listCache[result[0]] = result;
|
||||
var listDOM = $('#ccn-calendar-ownedList');
|
||||
ccn_calendar_owned_RenderItem(result, listDOM);
|
||||
listDOM.append(ccn_template_displayOwnedItem.render(renderdata));
|
||||
|
||||
// set mode
|
||||
var uuid = renderdata.uuid;
|
||||
ccn_calendar_owned_ChangeDisplayMode(uuid, true);
|
||||
|
||||
// push into display list
|
||||
ccn_calendar_owned_displayCache[uuid] = true;
|
||||
|
||||
// bind event
|
||||
$('#ccn-displayOwnedItem-btnHide-' + uuid).click(ccn_calendar_owned_ItemSwitchDisplay);
|
||||
$('#ccn-displayOwnedItem-btnShow-' + uuid).click(ccn_calendar_owned_ItemSwitchDisplay);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function ccn_calendar_owned_ItemEdit() {
|
||||
var uuid = $(this).attr("uuid");
|
||||
|
||||
// preset inputbox
|
||||
$('#ccn-calendar-ownedItem-inputName-' + uuid).val(
|
||||
ccn_calendar_owned_listCache[uuid][1]
|
||||
);
|
||||
|
||||
// switch to edit mode
|
||||
ccn_calendar_owned_ChangeDisplayMode(uuid, undefined, true);
|
||||
}
|
||||
|
||||
function ccn_calendar_owned_ItemDelete() {
|
||||
var uuid = $(this).attr("uuid");
|
||||
|
||||
var result = ccn_api_collection_deleteOwn(
|
||||
uuid,
|
||||
ccn_calendar_owned_listCache[uuid][2]
|
||||
);
|
||||
if (!result) ccn_messagebox_Show($.i18n.prop("ccn-js-fail-delete"));
|
||||
else {
|
||||
$('#ccn-calendar-ownedItem-' + uuid).remove();
|
||||
|
||||
// also, we should notice sharing target, and try clean it
|
||||
if (ccn_calendar_sharing_editingOwned == uuid) {
|
||||
ccn_calendar_sharing_editingOwned = undefined;
|
||||
ccn_calendar_sharing_Refresh();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function ccn_calendar_owned_ItemUpdate() {
|
||||
var uuid = $(this).attr("uuid");
|
||||
var newname = $('#ccn-calendar-ownedItem-inputName-' + uuid).val();
|
||||
|
||||
var result = ccn_api_collection_updateOwn(uuid, newname, ccn_calendar_owned_listCache[uuid][2]);
|
||||
if (typeof(result) == 'undefined') ccn_messagebox_Show($.i18n.prop("ccn-js-fail-update"));
|
||||
else {
|
||||
// update last change
|
||||
ccn_calendar_owned_listCache[uuid][2] = result;
|
||||
ccn_calendar_owned_listCache[uuid][1] = newname;
|
||||
// update elements
|
||||
$('#ccn-calendar-ownedItem-textName-' + uuid).text(newname);
|
||||
// if editing, update sharing target
|
||||
if (ccn_calendar_sharing_editingOwned == uuid)
|
||||
ccn_calendar_sharing_Refresh();
|
||||
// back to normal mode
|
||||
ccn_calendar_owned_ChangeDisplayMode(uuid, undefined, false);
|
||||
}
|
||||
}
|
||||
|
||||
function ccn_calendar_owned_ItemCancelUpdate() {
|
||||
var uuid = $(this).attr("uuid");
|
||||
ccn_calendar_owned_ChangeDisplayMode(uuid, undefined, false);
|
||||
}
|
||||
|
||||
function ccn_calendar_owned_ItemSwitchDisplay() {
|
||||
var uuid = $(this).attr("uuid");
|
||||
ccn_calendar_sharing_displayCache[uuid] = !(ccn_calendar_sharing_displayCache[uuid]);
|
||||
ccn_calendar_owned_ChangeDisplayMode(uuid, ccn_calendar_sharing_displayCache[uuid], undefined);
|
||||
ccn_calendar_owned_displayCache[uuid] = !(ccn_calendar_owned_displayCache[uuid]);
|
||||
ccn_calendar_owned_ChangeDisplayMode(uuid, ccn_calendar_owned_displayCache[uuid]);
|
||||
}
|
||||
|
||||
function ccn_calendar_owned_ItemShare() {
|
||||
var uuid = $(this).attr("uuid");
|
||||
ccn_calendar_sharing_editingOwned = uuid;
|
||||
ccn_calendar_sharing_Refresh();
|
||||
}
|
||||
|
||||
|
||||
function ccn_calendar_sharing_Add() {
|
||||
var newusername = $('#ccn-calendar-sharing-inputAdd').val();
|
||||
if (newusername == "" || typeof(ccn_calendar_sharing_editingOwned) == 'undefined') return;
|
||||
|
||||
var result = ccn_api_collection_addSharing(
|
||||
ccn_calendar_sharing_editingOwned,
|
||||
newusername,
|
||||
ccn_calendar_owned_listCache[ccn_calendar_sharing_editingOwned][2]
|
||||
);
|
||||
if (typeof(result) == 'undefined') ccn_messagebox_Show($.i18n.prop("ccn-js-fail-add"));
|
||||
else {
|
||||
// add new item
|
||||
var index = ccn_calendar_sharing_listCache.push(newusername) - 1;
|
||||
var listDOM = $('#ccn-calendar-sharingList');
|
||||
ccn_calendar_sharing_RenderItem(newusername, index, listDOM);
|
||||
// update last change
|
||||
ccn_calendar_owned_listCache[ccn_calendar_sharing_editingOwned][2] = result;
|
||||
}
|
||||
}
|
||||
|
||||
function ccn_calendar_sharing_ItemDelete() {
|
||||
var uuid = $(this).attr("uuid");
|
||||
var username = ccn_calendar_sharing_listCache[uuid];
|
||||
|
||||
var result = ccn_api_collection_deleteSharing(
|
||||
ccn_calendar_sharing_editingOwned,
|
||||
username,
|
||||
ccn_calendar_owned_listCache[ccn_calendar_sharing_editingOwned][2]
|
||||
);
|
||||
if (typeof(result) == 'undefined') ccn_messagebox_Show($.i18n.prop("ccn-js-fail-delete"));
|
||||
else {
|
||||
// remove item in ui
|
||||
$('#ccn-calendar-sharingItem-' + uuid).remove();
|
||||
// update last change
|
||||
ccn_calendar_owned_listCache[ccn_calendar_sharing_editingOwned][2] = result;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function ccn_calendar_shared_ItemSwitchDisplay() {
|
||||
var uuid = $(this).attr("uuid");
|
||||
ccn_calendar_shared_displayCache[uuid] = !(ccn_calendar_shared_displayCache[uuid]);
|
||||
ccn_calendar_shared_ChangeDisplayMode(uuid, ccn_calendar_shared_displayCache[uuid]);
|
||||
}
|
||||
|
||||
function ccn_calendar_shared_ChangeDisplayMode(uuid, isShow) {
|
||||
if (isShow) {
|
||||
$('#ccn-displaySharedItem-btnHide-' + uuid).show();
|
||||
$('#ccn-displaySharedItem-btnShow-' + uuid).hide();
|
||||
} else {
|
||||
$('#ccn-displaySharedItem-btnHide-' + uuid).hide();
|
||||
$('#ccn-displaySharedItem-btnShow-' + uuid).show();
|
||||
}
|
||||
}
|
||||
|
||||
function ccn_calendar_owned_ChangeDisplayMode(uuid, isShow) {
|
||||
if (isShow) {
|
||||
$('#ccn-displayOwnedItem-btnHide-' + uuid).show();
|
||||
$('#ccn-displayOwnedItem-btnShow-' + uuid).hide();
|
||||
} else {
|
||||
$('#ccn-displayOwnedItem-btnHide-' + uuid).hide();
|
||||
$('#ccn-displayOwnedItem-btnShow-' + uuid).show();
|
||||
}
|
||||
}
|
||||
|
||||
288
src/static/js/page/collection.js
Normal file
288
src/static/js/page/collection.js
Normal file
@@ -0,0 +1,288 @@
|
||||
// 3 used cache list
|
||||
var ccn_collection_owned_listCache = [];
|
||||
var ccn_collection_sharing_listCache = [];
|
||||
|
||||
// current editing sharing collection
|
||||
var ccn_collection_sharing_editingOwned = undefined; // the uuid of owned collection
|
||||
|
||||
$(document).ready(function() {
|
||||
ccn_pages_currentPage = ccn_pages_enumPages.collection;
|
||||
|
||||
// template process
|
||||
ccn_template_Load();
|
||||
|
||||
// nav process
|
||||
ccn_headerNav_Insert();
|
||||
ccn_headerNav_BindEvents();
|
||||
ccn_headerNav_LoggedRefresh();
|
||||
|
||||
// messagebox process
|
||||
ccn_messagebox_Insert();
|
||||
ccn_messagebox_BindEvent();
|
||||
|
||||
// apply i18n
|
||||
ccn_i18n_LoadLanguage();
|
||||
ccn_i18n_ApplyLanguage();
|
||||
|
||||
//refresh once
|
||||
ccn_collection_owned_Refresh();
|
||||
|
||||
// bind event
|
||||
//$('#ccn-calendar-shared-btnRefresh').click(ccn_calendar_shared_Refresh);
|
||||
$('#ccn-collection-owned-btnAdd').click(ccn_collection_owned_Add);
|
||||
$('#ccn-collection-owned-btnRefresh').click(ccn_collection_owned_Refresh);
|
||||
$('#ccn-collection-sharing-btnAdd').click(ccn_collection_sharing_Add);
|
||||
$('#ccn-collection-sharing-btnRefresh').click(ccn_collection_sharing_Refresh);
|
||||
|
||||
});
|
||||
|
||||
|
||||
function ccn_collection_owned_Refresh() {
|
||||
ccn_collection_owned_listCache = new Array();
|
||||
ccn_collection_sharing_displayCache = new Array();
|
||||
|
||||
var result = ccn_api_collection_getFullOwn();
|
||||
if(typeof(result) != 'undefined') {
|
||||
for(var index in result) {
|
||||
ccn_collection_owned_listCache[result[index][0]] = result[index];
|
||||
}
|
||||
}
|
||||
|
||||
// render
|
||||
var listDOM = $('#ccn-collection-ownedList');
|
||||
listDOM.empty();
|
||||
for(var index in ccn_collection_owned_listCache) {
|
||||
ccn_collection_owned_RenderItem(
|
||||
ccn_collection_owned_listCache[index],
|
||||
listDOM
|
||||
);
|
||||
}
|
||||
|
||||
// also, order sharing list clean
|
||||
ccn_collection_sharing_editingOwned = undefined;
|
||||
ccn_collection_sharing_Refresh();
|
||||
}
|
||||
|
||||
function ccn_collection_owned_RenderItem(item, listDOM) {
|
||||
var renderdata = {
|
||||
uuid: item[0],
|
||||
name: item[1]
|
||||
}
|
||||
|
||||
// render
|
||||
listDOM.append(ccn_template_ownedItem.render(renderdata));
|
||||
|
||||
// set mode
|
||||
var uuid = renderdata.uuid;
|
||||
ccn_collection_owned_ChangeDisplayMode(uuid, false);
|
||||
|
||||
// bind event
|
||||
$('#ccn-ownedItem-btnEdit-' + uuid).click(ccn_collection_owned_ItemEdit);
|
||||
$('#ccn-ownedItem-btnDelete-' + uuid).click(ccn_collection_owned_ItemDelete);
|
||||
$('#ccn-ownedItem-btnShare-' + uuid).click(ccn_collection_owned_ItemShare);
|
||||
$('#ccn-ownedItem-btnUpdate-' + uuid).click(ccn_collection_owned_ItemUpdate);
|
||||
$('#ccn-ownedItem-btnCancelUpdate-' + uuid).click(ccn_collection_owned_ItemCancelUpdate);
|
||||
|
||||
}
|
||||
|
||||
function ccn_collection_owned_ChangeDisplayMode(uuid, isEdit) {
|
||||
if (isEdit) {
|
||||
$('#ccn-ownedItem-btnEdit-' + uuid).hide();
|
||||
$('#ccn-ownedItem-btnShare-' + uuid).hide();
|
||||
$('#ccn-ownedItem-btnDelete-' + uuid).hide();
|
||||
|
||||
$('#ccn-ownedItem-btnUpdate-' + uuid).show();
|
||||
$('#ccn-ownedItem-btnCancelUpdate-' + uuid).show();
|
||||
|
||||
$('#ccn-ownedItem-textName-' + uuid).hide();
|
||||
$('#ccn-ownedItem-boxName-' + uuid).show();
|
||||
} else {
|
||||
$('#ccn-ownedItem-btnEdit-' + uuid).show();
|
||||
$('#ccn-ownedItem-btnShare-' + uuid).show();
|
||||
$('#ccn-ownedItem-btnDelete-' + uuid).show();
|
||||
|
||||
$('#ccn-ownedItem-btnUpdate-' + uuid).hide();
|
||||
$('#ccn-ownedItem-btnCancelUpdate-' + uuid).hide();
|
||||
|
||||
$('#ccn-ownedItem-textName-' + uuid).show();
|
||||
$('#ccn-ownedItem-boxName-' + uuid).hide();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function ccn_collection_sharing_Refresh() {
|
||||
ccn_collection_sharing_listCache = new Array();
|
||||
|
||||
if (typeof(ccn_collection_sharing_editingOwned) != 'undefined') {
|
||||
var result = ccn_api_collection_getSharing(ccn_collection_sharing_editingOwned);
|
||||
if (typeof(result) != 'undefined') {
|
||||
for(var index in result) {
|
||||
ccn_collection_sharing_listCache[index] = result[index];
|
||||
// also, sharingTarget don't have uuid, use index instead
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// update editing text
|
||||
$('#ccn-collection-sharing-sharingEditing').text(
|
||||
typeof(ccn_collection_sharing_editingOwned) == 'undefined' ?
|
||||
'' :
|
||||
ccn_collection_owned_listCache[ccn_collection_sharing_editingOwned][1]
|
||||
);
|
||||
|
||||
// if editing is undefined, hide container
|
||||
if (typeof(ccn_collection_sharing_editingOwned) == 'undefined')
|
||||
$('#ccn-collection-sharing-container').hide();
|
||||
else
|
||||
$('#ccn-collection-sharing-container').show();
|
||||
|
||||
|
||||
var listDOM = $('#ccn-collection-sharingList');
|
||||
listDOM.empty();
|
||||
for(var index in ccn_collection_sharing_listCache) {
|
||||
ccn_collection_sharing_RenderItem(
|
||||
ccn_collection_sharing_listCache[index],
|
||||
index,
|
||||
listDOM
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
function ccn_collection_sharing_RenderItem(item, index, listDOM) {
|
||||
var renderdata = {
|
||||
uuid: index,
|
||||
username: item
|
||||
}
|
||||
|
||||
// render
|
||||
listDOM.append(ccn_template_sharingItem.render(renderdata));
|
||||
|
||||
// bind event
|
||||
var uuid = index;
|
||||
$("#ccn-sharingItem-btnDelete-" + uuid).click(ccn_collection_sharing_ItemDelete);
|
||||
}
|
||||
|
||||
// ========================= input operation
|
||||
|
||||
function ccn_collection_owned_Add() {
|
||||
var newname = $('#ccn-collection-owned-inputAdd').val();
|
||||
if (newname == "") return;
|
||||
|
||||
var result = ccn_api_collection_addOwn(newname);
|
||||
if (typeof(result) == 'undefined') ccn_messagebox_Show($.i18n.prop("ccn-i18n-js-fail-add"));
|
||||
else {
|
||||
// second get. get detail
|
||||
result = ccn_api_collection_getDetailOwn(result);
|
||||
|
||||
if (typeof(result) == 'undefined') ccn_messagebox_Show($.i18n.prop("ccn-i18n-js-fail-get"));
|
||||
else {
|
||||
// render
|
||||
ccn_collection_owned_listCache[result[0]] = result;
|
||||
var listDOM = $('#ccn-collection-ownedList');
|
||||
ccn_collection_owned_RenderItem(result, listDOM);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function ccn_collection_owned_ItemEdit() {
|
||||
var uuid = $(this).attr("uuid");
|
||||
|
||||
// preset inputbox
|
||||
$('#ccn-ownedItem-inputName-' + uuid).val(
|
||||
ccn_collection_owned_listCache[uuid][1]
|
||||
);
|
||||
|
||||
// switch to edit mode
|
||||
ccn_collection_owned_ChangeDisplayMode(uuid, true);
|
||||
}
|
||||
|
||||
function ccn_collection_owned_ItemDelete() {
|
||||
var uuid = $(this).attr("uuid");
|
||||
|
||||
var result = ccn_api_collection_deleteOwn(
|
||||
uuid,
|
||||
ccn_collection_owned_listCache[uuid][2]
|
||||
);
|
||||
if (!result) ccn_messagebox_Show($.i18n.prop("ccn-i18n-js-fail-delete"));
|
||||
else {
|
||||
$('#ccn-ownedItem-' + uuid).remove();
|
||||
|
||||
// also, we should notice sharing target, and try clean it
|
||||
if (ccn_collection_sharing_editingOwned == uuid) {
|
||||
ccn_collection_sharing_editingOwned = undefined;
|
||||
ccn_collection_sharing_Refresh();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function ccn_collection_owned_ItemUpdate() {
|
||||
var uuid = $(this).attr("uuid");
|
||||
var newname = $('#ccn-ownedItem-inputName-' + uuid).val();
|
||||
|
||||
var result = ccn_api_collection_updateOwn(uuid, newname, ccn_collection_owned_listCache[uuid][2]);
|
||||
if (typeof(result) == 'undefined') ccn_messagebox_Show($.i18n.prop("ccn-i18n-js-fail-update"));
|
||||
else {
|
||||
// update last change
|
||||
ccn_collection_owned_listCache[uuid][2] = result;
|
||||
ccn_collection_owned_listCache[uuid][1] = newname;
|
||||
// update elements
|
||||
$('#ccn-ownedItem-textName-' + uuid).text(newname);
|
||||
// if editing, update sharing target
|
||||
if (ccn_collection_sharing_editingOwned == uuid)
|
||||
ccn_collection_sharing_Refresh();
|
||||
// back to normal mode
|
||||
ccn_collection_owned_ChangeDisplayMode(uuid, false);
|
||||
}
|
||||
}
|
||||
|
||||
function ccn_collection_owned_ItemCancelUpdate() {
|
||||
var uuid = $(this).attr("uuid");
|
||||
ccn_collection_owned_ChangeDisplayMode(uuid, false);
|
||||
}
|
||||
|
||||
function ccn_collection_owned_ItemShare() {
|
||||
var uuid = $(this).attr("uuid");
|
||||
ccn_collection_sharing_editingOwned = uuid;
|
||||
ccn_collection_sharing_Refresh();
|
||||
}
|
||||
|
||||
|
||||
function ccn_collection_sharing_Add() {
|
||||
var newusername = $('#ccn-collection-sharing-inputAdd').val();
|
||||
if (newusername == "" || typeof(ccn_collection_sharing_editingOwned) == 'undefined') return;
|
||||
|
||||
var result = ccn_api_collection_addSharing(
|
||||
ccn_collection_sharing_editingOwned,
|
||||
newusername,
|
||||
ccn_collection_owned_listCache[ccn_collection_sharing_editingOwned][2]
|
||||
);
|
||||
if (typeof(result) == 'undefined') ccn_messagebox_Show($.i18n.prop("ccn-i18n-js-fail-add"));
|
||||
else {
|
||||
// add new item
|
||||
var index = ccn_collection_sharing_listCache.push(newusername) - 1;
|
||||
var listDOM = $('#ccn-collection-sharingList');
|
||||
ccn_collection_sharing_RenderItem(newusername, index, listDOM);
|
||||
// update last change
|
||||
ccn_collection_owned_listCache[ccn_collection_sharing_editingOwned][2] = result;
|
||||
}
|
||||
}
|
||||
|
||||
function ccn_collection_sharing_ItemDelete() {
|
||||
var uuid = $(this).attr("uuid");
|
||||
var username = ccn_collection_sharing_listCache[uuid];
|
||||
|
||||
var result = ccn_api_collection_deleteSharing(
|
||||
ccn_collection_sharing_editingOwned,
|
||||
username,
|
||||
ccn_collection_owned_listCache[ccn_collection_sharing_editingOwned][2]
|
||||
);
|
||||
if (typeof(result) == 'undefined') ccn_messagebox_Show($.i18n.prop("ccn-i18n-js-fail-delete"));
|
||||
else {
|
||||
// remove item in ui
|
||||
$('#ccn-sharingItem-' + uuid).remove();
|
||||
// update last change
|
||||
ccn_collection_owned_listCache[ccn_collection_sharing_editingOwned][2] = result;
|
||||
}
|
||||
}
|
||||
|
||||
77
src/static/js/page/event.js
Normal file
77
src/static/js/page/event.js
Normal file
@@ -0,0 +1,77 @@
|
||||
$(document).ready(function() {
|
||||
ccn_pages_currentPage = ccn_pages_enumPages.event;
|
||||
|
||||
// template process
|
||||
ccn_template_Load();
|
||||
|
||||
// nav process
|
||||
ccn_headerNav_Insert();
|
||||
ccn_headerNav_BindEvents();
|
||||
ccn_headerNav_LoggedRefresh();
|
||||
|
||||
// messagebox process
|
||||
ccn_messagebox_Insert();
|
||||
ccn_messagebox_BindEvent();
|
||||
|
||||
// apply i18n
|
||||
ccn_i18n_LoadLanguage();
|
||||
ccn_i18n_ApplyLanguage();
|
||||
|
||||
// init datetimepicker
|
||||
ccn_datetimepicker_Init();
|
||||
|
||||
// init span picker
|
||||
$('.spanpicker').attr('max', 100)
|
||||
.attr('min', 1)
|
||||
.attr('step', 1)
|
||||
.val(1);
|
||||
|
||||
// refresh once
|
||||
|
||||
|
||||
// bind event
|
||||
|
||||
});
|
||||
|
||||
|
||||
function ccn_event_Deploy() {
|
||||
var isAdd = typeof(ccn_calendar_eventModal_editing) == 'undefined';
|
||||
$('#ccn-event-inputTitle').val(
|
||||
isAdd ? '' : ccn_calendar_eventModal_editing[2]
|
||||
);
|
||||
$('#ccn-event-inputDescription').val(
|
||||
isAdd ? '' : ccn_calendar_eventModal_editing[3]
|
||||
);
|
||||
|
||||
// we also need render eventModal collection select
|
||||
var collectionDOM = $('#ccn-event-inputCollection');
|
||||
collectionDOM.options.length = 0;
|
||||
for(var index in ccn_calendar_eventModal_collectionCache) {
|
||||
var uuid = ccn_calendar_eventModal_collectionCache[index];
|
||||
collectionDOM.add(new Option(
|
||||
|
||||
));
|
||||
}
|
||||
$('#ccn-event-inputCollection').selectedIndex = isAdd ? -1 : ccn_calendar_eventModal_collectionCache.indexOf(ccn_calendar_eventModal_editing[1]);
|
||||
|
||||
var currentDateTime = new Date();
|
||||
currentDateTime.setMilliseconds(0);
|
||||
currentDateTime.setSeconds(0);
|
||||
currentDateTime.setMinutes(0);
|
||||
ccn_datetimepicker_Set(1, currentDateTime);
|
||||
|
||||
currentDateTime.setHours(currentDateTime.getHours() + 2);
|
||||
ccn_datetimepicker_Set(2, currentDateTime);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
function ccn_event_Refresh() {
|
||||
|
||||
}
|
||||
|
||||
// return undefined to indicate an error
|
||||
function ccn_event_Get() {
|
||||
|
||||
}
|
||||
@@ -40,8 +40,8 @@ function ccn_login_startLogin() {
|
||||
// jump into home page again
|
||||
window.location.href = '/web/home';
|
||||
|
||||
} else ccn_messagebox_Show($.i18n.prop("ccn-js-fail-login"));
|
||||
} else ccn_messagebox_Show($.i18n.prop("ccn-js-fail-login"));
|
||||
} else ccn_messagebox_Show($.i18n.prop("ccn-i18n-js-fail-login"));
|
||||
} else ccn_messagebox_Show($.i18n.prop("ccn-i18n-js-fail-login"));
|
||||
*/
|
||||
if (ccn_api_common_webLogin(username, password)) {
|
||||
// ok, logged
|
||||
@@ -49,7 +49,7 @@ function ccn_login_startLogin() {
|
||||
window.location.href = '/web/home';
|
||||
return;
|
||||
|
||||
} else ccn_messagebox_Show($.i18n.prop("ccn-js-fail-login"));
|
||||
} else ccn_messagebox_Show($.i18n.prop("ccn-i18n-js-fail-login"));
|
||||
|
||||
// retore ui
|
||||
$("#ccn-login-form-login").removeAttr("disabled");
|
||||
|
||||
@@ -64,32 +64,32 @@ function ccn_todo_RenderCacheList() {
|
||||
ccn_todo_ChangeDisplayMode(uuid, false);
|
||||
|
||||
// bind event
|
||||
$("#ccn-todo-todoItem-btnEdit-" + uuid).click(ccn_todo_ItemEdit);
|
||||
$("#ccn-todo-todoItem-btnDelete-" + uuid).click(ccn_todo_ItemDelete);
|
||||
$("#ccn-todo-todoItem-btnUpdate-" + uuid).click(ccn_todo_ItemUpdate);
|
||||
$("#ccn-todo-todoItem-btnCancelUpdate-" + uuid).click(ccn_todo_ItemCancelUpdate);
|
||||
$("#ccn-todoItem-btnEdit-" + uuid).click(ccn_todo_ItemEdit);
|
||||
$("#ccn-todoItem-btnDelete-" + uuid).click(ccn_todo_ItemDelete);
|
||||
$("#ccn-todoItem-btnUpdate-" + uuid).click(ccn_todo_ItemUpdate);
|
||||
$("#ccn-todoItem-btnCancelUpdate-" + uuid).click(ccn_todo_ItemCancelUpdate);
|
||||
}
|
||||
}
|
||||
|
||||
function ccn_todo_ChangeDisplayMode(uuid, isEdit) {
|
||||
if(isEdit) {
|
||||
// 4 buttons
|
||||
$("#ccn-todo-todoItem-btnEdit-" + uuid).hide();
|
||||
$("#ccn-todo-todoItem-btnDelete-" + uuid).hide();
|
||||
$("#ccn-todo-todoItem-btnUpdate-" + uuid).show();
|
||||
$("#ccn-todo-todoItem-btnCancelUpdate-" + uuid).show();
|
||||
$("#ccn-todoItem-btnEdit-" + uuid).hide();
|
||||
$("#ccn-todoItem-btnDelete-" + uuid).hide();
|
||||
$("#ccn-todoItem-btnUpdate-" + uuid).show();
|
||||
$("#ccn-todoItem-btnCancelUpdate-" + uuid).show();
|
||||
|
||||
// 2 elements
|
||||
$("#ccn-todo-todoItem-p-" + uuid).hide();
|
||||
$("#ccn-todo-todoItem-textarea-" + uuid).show();
|
||||
$("#ccn-todoItem-p-" + uuid).hide();
|
||||
$("#ccn-todoItem-textarea-" + uuid).show();
|
||||
} else {
|
||||
$("#ccn-todo-todoItem-btnEdit-" + uuid).show();
|
||||
$("#ccn-todo-todoItem-btnDelete-" + uuid).show();
|
||||
$("#ccn-todo-todoItem-btnUpdate-" + uuid).hide();
|
||||
$("#ccn-todo-todoItem-btnCancelUpdate-" + uuid).hide();
|
||||
$("#ccn-todoItem-btnEdit-" + uuid).show();
|
||||
$("#ccn-todoItem-btnDelete-" + uuid).show();
|
||||
$("#ccn-todoItem-btnUpdate-" + uuid).hide();
|
||||
$("#ccn-todoItem-btnCancelUpdate-" + uuid).hide();
|
||||
|
||||
$("#ccn-todo-todoItem-p-" + uuid).show();
|
||||
$("#ccn-todo-todoItem-textarea-" + uuid).hide();
|
||||
$("#ccn-todoItem-p-" + uuid).show();
|
||||
$("#ccn-todoItem-textarea-" + uuid).hide();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -104,7 +104,7 @@ function ccn_todo_Add() {
|
||||
var result = ccn_api_todo_add();
|
||||
if (typeof(result) == 'undefined') {
|
||||
// fail
|
||||
ccn_messagebox_Show($.i18n.prop("ccn-js-fail-add"));
|
||||
ccn_messagebox_Show($.i18n.prop("ccn-i18n-js-fail-add"));
|
||||
} else {
|
||||
// add into cache
|
||||
ccn_todo_todoListCache[result[0]] = result;
|
||||
@@ -121,10 +121,10 @@ function ccn_todo_Add() {
|
||||
ccn_todo_ChangeDisplayMode(uuid, false);
|
||||
|
||||
// bind event
|
||||
$("#ccn-todo-todoItem-btnEdit-" + uuid).click(ccn_todo_ItemEdit);
|
||||
$("#ccn-todo-todoItem-btnDelete-" + uuid).click(ccn_todo_ItemDelete);
|
||||
$("#ccn-todo-todoItem-btnUpdate-" + uuid).click(ccn_todo_ItemUpdate);
|
||||
$("#ccn-todo-todoItem-btnCancelUpdate-" + uuid).click(ccn_todo_ItemCancelUpdate);
|
||||
$("#ccn-todoItem-btnEdit-" + uuid).click(ccn_todo_ItemEdit);
|
||||
$("#ccn-todoItem-btnDelete-" + uuid).click(ccn_todo_ItemDelete);
|
||||
$("#ccn-todoItem-btnUpdate-" + uuid).click(ccn_todo_ItemUpdate);
|
||||
$("#ccn-todoItem-btnCancelUpdate-" + uuid).click(ccn_todo_ItemCancelUpdate);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -132,7 +132,7 @@ function ccn_todo_ItemEdit() {
|
||||
var uuid = $(this).attr("uuid");
|
||||
|
||||
// copy current data to textarea
|
||||
$("#ccn-todo-todoItem-textarea-" + uuid).val(
|
||||
$("#ccn-todoItem-textarea-" + uuid).val(
|
||||
ccn_todo_todoListCache[uuid][2]
|
||||
);
|
||||
|
||||
@@ -150,17 +150,17 @@ function ccn_todo_ItemDelete() {
|
||||
|
||||
if(!result) {
|
||||
// fail
|
||||
ccn_messagebox_Show($.i18n.prop("ccn-js-fail-delete"));
|
||||
ccn_messagebox_Show($.i18n.prop("ccn-i18n-js-fail-delete"));
|
||||
} else {
|
||||
// remove body
|
||||
$("#ccn-todo-todoItem-" + uuid).remove();
|
||||
$("#ccn-todoItem-" + uuid).remove();
|
||||
}
|
||||
}
|
||||
|
||||
function ccn_todo_ItemUpdate() {
|
||||
var uuid = $(this).attr("uuid");
|
||||
|
||||
var newData = $("#ccn-todo-todoItem-textarea-" + uuid).val();
|
||||
var newData = $("#ccn-todoItem-textarea-" + uuid).val();
|
||||
var result = ccn_api_todo_update(
|
||||
uuid,
|
||||
newData,
|
||||
@@ -169,12 +169,12 @@ function ccn_todo_ItemUpdate() {
|
||||
|
||||
if (typeof(result) == 'undefined') {
|
||||
// fail
|
||||
ccn_messagebox_Show($.i18n.prop("ccn-js-fail-update"));
|
||||
ccn_messagebox_Show($.i18n.prop("ccn-i18n-js-fail-update"));
|
||||
} else {
|
||||
// safely update data & lastChanged and control
|
||||
ccn_todo_todoListCache[uuid][2] = newData;
|
||||
ccn_todo_todoListCache[uuid][3] = result;
|
||||
$("#ccn-todo-todoItem-p-" + uuid).html(LineBreaker2Br(newData));
|
||||
$("#ccn-todoItem-p-" + uuid).html(LineBreaker2Br(newData));
|
||||
|
||||
// switch to normal mode
|
||||
ccn_todo_ChangeDisplayMode(uuid, false);
|
||||
@@ -184,7 +184,7 @@ function ccn_todo_ItemUpdate() {
|
||||
function ccn_todo_ItemCancelUpdate() {
|
||||
var uuid = $(this).attr("uuid");
|
||||
// clean data
|
||||
$("#ccn-todo-todoItem-textarea-" + uuid).val("");
|
||||
$("#ccn-todoItem-textarea-" + uuid).val("");
|
||||
// switch to normal mode
|
||||
ccn_todo_ChangeDisplayMode(uuid, false);
|
||||
}
|
||||
|
||||
@@ -4,7 +4,8 @@ var ccn_template_calendarItem = undefined;
|
||||
var ccn_template_scheduleItem = undefined;
|
||||
var ccn_template_ownedItem = undefined;
|
||||
var ccn_template_sharingItem = undefined;
|
||||
var ccn_template_sharedItem = undefined;
|
||||
var ccn_template_displayOwnedItem = undefined;
|
||||
var ccn_template_displaySharedItem = undefined;
|
||||
var ccn_template_userItem = undefined;
|
||||
var ccn_template_todoItem = undefined;
|
||||
|
||||
@@ -47,27 +48,19 @@ function ccn_template_Load() {
|
||||
}
|
||||
});
|
||||
$.ajax({
|
||||
url: $("#jsrender-tmpl-ownedItem").attr('src'),
|
||||
url: $("#jsrender-tmpl-displayOwnedItem").attr('src'),
|
||||
type: "GET",
|
||||
async: false,
|
||||
success: function (data) {
|
||||
ccn_template_ownedItem = $.templates(data);
|
||||
ccn_template_displayOwnedItem = $.templates(data);
|
||||
}
|
||||
});
|
||||
$.ajax({
|
||||
url: $("#jsrender-tmpl-sharingItem").attr('src'),
|
||||
url: $("#jsrender-tmpl-displaySharedItem").attr('src'),
|
||||
type: "GET",
|
||||
async: false,
|
||||
success: function (data) {
|
||||
ccn_template_sharingItem = $.templates(data);
|
||||
}
|
||||
});
|
||||
$.ajax({
|
||||
url: $("#jsrender-tmpl-sharedItem").attr('src'),
|
||||
type: "GET",
|
||||
async: false,
|
||||
success: function (data) {
|
||||
ccn_template_sharedItem = $.templates(data);
|
||||
ccn_template_displaySharedItem = $.templates(data);
|
||||
}
|
||||
});
|
||||
break;
|
||||
@@ -93,5 +86,24 @@ function ccn_template_Load() {
|
||||
break;
|
||||
case ccn_pages_enumPages.login:
|
||||
break;
|
||||
case ccn_pages_enumPages.collection:
|
||||
$.ajax({
|
||||
url: $("#jsrender-tmpl-ownedItem").attr('src'),
|
||||
type: "GET",
|
||||
async: false,
|
||||
success: function (data) {
|
||||
ccn_template_ownedItem = $.templates(data);
|
||||
}
|
||||
});
|
||||
$.ajax({
|
||||
url: $("#jsrender-tmpl-sharingItem").attr('src'),
|
||||
type: "GET",
|
||||
async: false,
|
||||
success: function (data) {
|
||||
ccn_template_sharingItem = $.templates(data);
|
||||
}
|
||||
});
|
||||
case ccn_pages_enumPages.event:
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
{{for start=0 end=6 step=1 itemVar="~row"}}
|
||||
<div>
|
||||
{{for start=0 end=7 step=1 itemVar="~column"}}
|
||||
<div id="ccn-calendar-calendarItem-{{:~row}}-{{:~column}}">
|
||||
<p><b id="ccn-calendar-calendarItem-title-{{:~row}}-{{:~column}}"> </b></p>
|
||||
<p><small id="ccn-calendar-calendarItem-desc-{{:~row}}-{{:~column}}"> </small></p>
|
||||
<p><span class="icon is-small"><i class="fas fa-tasks"></i></span id="ccn-calendar-calendarItem-task-{{:~row}}-{{:~column}}"> </p>
|
||||
<div id="ccn-calendarItem-{{:~row}}-{{:~column}}">
|
||||
<p><b id="ccn-calendarItem-title-{{:~row}}-{{:~column}}"> </b></p>
|
||||
<p><small id="ccn-calendarItem-desc-{{:~row}}-{{:~column}}"> </small></p>
|
||||
<p><span class="icon is-small"><i class="fas fa-tasks"></i></span id="ccn-calendarItem-task-{{:~row}}-{{:~column}}"> </p>
|
||||
</div>
|
||||
{{/for}}
|
||||
</div>
|
||||
|
||||
12
src/static/tmpl/displayOwnedItem.tmpl
Normal file
12
src/static/tmpl/displayOwnedItem.tmpl
Normal file
@@ -0,0 +1,12 @@
|
||||
<div id="ccn-displayOwnedItem-{{:uuid}}" class="collection-item card">
|
||||
<div class="collection-item-words">
|
||||
<p>{{>name}}</p>
|
||||
</div>
|
||||
|
||||
<div id="ccn-displayOwnedItem-btnHide-{{:uuid}}" uuid="{{:uuid}}" class="collection-item-icon control">
|
||||
<a class="button"><span class="icon is-small"><i class="fas fa-eye"></i></span></a>
|
||||
</div>
|
||||
<div id="ccn-displayOwnedItem-btnShow-{{:uuid}}" uuid="{{:uuid}}" class="collection-item-icon control">
|
||||
<a class="button"><span class="icon is-small"><i class="fas fa-eye-slash"></i></span></a>
|
||||
</div>
|
||||
</div>
|
||||
16
src/static/tmpl/displaySharedItem.tmpl
Normal file
16
src/static/tmpl/displaySharedItem.tmpl
Normal file
@@ -0,0 +1,16 @@
|
||||
<div id="ccn-displaySharedItem-{{:uuid}}" class="collection-item card">
|
||||
<div class="collection-item-words">
|
||||
<b>{{>name}}</b>
|
||||
<p>
|
||||
<span i18n-name="ccn-i18n-sharedItem-sharedBy"></span>
|
||||
<span>{{>username}}</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="ccn-displaySharedItem-btnHide-{{:uuid}}" uuid="{{:uuid}}" class="collection-item-icon control">
|
||||
<a class="button"><span class="icon is-small"><i class="fas fa-eye"></i></span></a>
|
||||
</div>
|
||||
<div id="ccn-displaySharedItem-btnShow-{{:uuid}}" uuid="{{:uuid}}" class="collection-item-icon control">
|
||||
<a class="button"><span class="icon is-small"><i class="fas fa-eye-slash"></i></span></a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -14,22 +14,23 @@
|
||||
|
||||
<div id="navbarBasicExample" class="navbar-menu">
|
||||
<div class="navbar-start">
|
||||
<a i18n-name="ccn-header-nav-home" id="ccn-header-nav-home" class="navbar-item" href="/web/home"></a>
|
||||
<a i18n-name="ccn-header-nav-calendar" id="ccn-header-nav-calendar" class="navbar-item" href="/web/calendar"></a>
|
||||
<a i18n-name="ccn-header-nav-todo" id="ccn-header-nav-todo" class="navbar-item" href="/web/todo"></a>
|
||||
<a i18n-name="ccn-header-nav-admin" id="ccn-header-nav-admin" class="navbar-item" href="/web/admin"></a>
|
||||
<a i18n-name="ccn-i18n-header-nav-home" id="ccn-header-nav-home" class="navbar-item" href="/web/home"></a>
|
||||
<a i18n-name="ccn-i18n-header-nav-collection" id="ccn-header-nav-collection" class="navbar-item" href="/web/collection"></a>
|
||||
<a i18n-name="ccn-i18n-header-nav-calendar" id="ccn-header-nav-calendar" class="navbar-item" href="/web/calendar"></a>
|
||||
<a i18n-name="ccn-i18n-header-nav-todo" id="ccn-header-nav-todo" class="navbar-item" href="/web/todo"></a>
|
||||
<a i18n-name="ccn-i18n-header-nav-admin" id="ccn-header-nav-admin" class="navbar-item" href="/web/admin"></a>
|
||||
</div>
|
||||
|
||||
<div class="navbar-end">
|
||||
<p id="ccn-header-user-login" class="navbar-item">
|
||||
<a class="button is-primary" i18n-name="ccn-header-user-login" href="/web/login"></a>
|
||||
<a class="button is-primary" i18n-name="ccn-i18n-header-user-login" href="/web/login"></a>
|
||||
</p>
|
||||
<p id="ccn-header-user-logout" class="navbar-item">
|
||||
<a class="button is-primary" i18n-name="ccn-header-user-logout"></a>
|
||||
<a class="button is-primary" i18n-name="ccn-i18n-header-user-logout"></a>
|
||||
</p>
|
||||
|
||||
<div class="navbar-item has-dropdown is-hoverable">
|
||||
<a class="navbar-link" i18n-name="ccn-header-language"></a>
|
||||
<a class="navbar-link" i18n-name="ccn-i18n-header-language"></a>
|
||||
|
||||
<div id="ccn-header-language" class="navbar-dropdown">
|
||||
<a language="en-US" class="navbar-item">English</a>
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
<div class="modal-background"></div>
|
||||
<div class="modal-card">
|
||||
<header class="modal-card-head">
|
||||
<p id="ccn-messagebox-title" class="modal-card-title" i18n-name="ccn-messagebox-title"></p>
|
||||
<p id="ccn-messagebox-title" class="modal-card-title" i18n-name="ccn-i18n-messagebox-title"></p>
|
||||
<button id="ccn-messagebox-btnClose" class="delete" aria-label="close"></button>
|
||||
</header>
|
||||
<div class="modal-card-body">
|
||||
<p id="ccn-messagebox-body"></p>
|
||||
</div>
|
||||
<footer class="modal-card-foot">
|
||||
<button id="ccn-messagebox-btnConfirm" class="button is-success" i18n-name="ccn-messagebox-confirm"></button>
|
||||
<button id="ccn-messagebox-btnConfirm" class="button is-success" i18n-name="ccn-i18n-messagebox-confirm"></button>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,30 +1,24 @@
|
||||
<div id="ccn-calendar-ownedItem-{{:uuid}}" class="collection-item card">
|
||||
<div id="ccn-ownedItem-{{:uuid}}" class="collection-item card">
|
||||
<div class="collection-item-words">
|
||||
<p id="ccn-calendar-ownedItem-textName-{{:uuid}}">{{>name}}</p>
|
||||
<div id="ccn-calendar-ownedItem-boxName-{{:uuid}}" class="control">
|
||||
<input id="ccn-calendar-ownedItem-inputName-{{:uuid}}" class="input" type="text"></input>
|
||||
<p id="ccn-ownedItem-textName-{{:uuid}}">{{>name}}</p>
|
||||
<div id="ccn-ownedItem-boxName-{{:uuid}}" class="control">
|
||||
<input id="ccn-ownedItem-inputName-{{:uuid}}" class="input" type="text"></input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="ccn-calendar-ownedItem-btnEdit-{{:uuid}}" uuid="{{:uuid}}" class="collection-item-icon control">
|
||||
<div id="ccn-ownedItem-btnEdit-{{:uuid}}" uuid="{{:uuid}}" class="collection-item-icon control">
|
||||
<a class="button"><span class="icon is-small"><i class="fas fa-pen"></i></span></a>
|
||||
</div>
|
||||
<div id="ccn-calendar-ownedItem-btnShare-{{:uuid}}" uuid="{{:uuid}}" class="collection-item-icon control">
|
||||
<div id="ccn-ownedItem-btnShare-{{:uuid}}" uuid="{{:uuid}}" class="collection-item-icon control">
|
||||
<a class="button"><span class="icon is-small"><i class="fas fa-share"></i></a>
|
||||
</div>
|
||||
<div id="ccn-calendar-ownedItem-btnDelete-{{:uuid}}" uuid="{{:uuid}}" class="collection-item-icon control">
|
||||
<div id="ccn-ownedItem-btnDelete-{{:uuid}}" uuid="{{:uuid}}" class="collection-item-icon control">
|
||||
<a class="button"><span class="icon is-small"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
<div id="ccn-calendar-ownedItem-btnUpdate-{{:uuid}}" uuid="{{:uuid}}" class="collection-item-icon control">
|
||||
<div id="ccn-ownedItem-btnUpdate-{{:uuid}}" uuid="{{:uuid}}" class="collection-item-icon control">
|
||||
<button class="button"><span class="icon is-small"><i class="fas fa-check"></i></span></button>
|
||||
</div>
|
||||
<div id="ccn-calendar-ownedItem-btnCancelUpdate-{{:uuid}}" uuid="{{:uuid}}" class="collection-item-icon control">
|
||||
<div id="ccn-ownedItem-btnCancelUpdate-{{:uuid}}" uuid="{{:uuid}}" class="collection-item-icon control">
|
||||
<button class="button"><span class="icon is-small"><i class="fas fa-times"></i></button>
|
||||
</div>
|
||||
<div id="ccn-calendar-ownedItem-btnHide-{{:uuid}}" uuid="{{:uuid}}" class="collection-item-icon control">
|
||||
<a class="button"><span class="icon is-small"><i class="fas fa-eye"></i></span></a>
|
||||
</div>
|
||||
<div id="ccn-calendar-ownedItem-btnShow-{{:uuid}}" uuid="{{:uuid}}" class="collection-item-icon control">
|
||||
<a class="button"><span class="icon is-small"><i class="fas fa-eye-slash"></i></span></a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,16 +0,0 @@
|
||||
<div id="ccn-calendar-sharedItem-{{:uuid}}" class="collection-item card">
|
||||
<div class="collection-item-words">
|
||||
<b>{{>name}}</b>
|
||||
<p>
|
||||
<span i18n-name="ccn-calendar-sharedItem-sharedBy"></span>
|
||||
<span>{{>username}}</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="ccn-calendar-sharedItem-btnHide-{{:uuid}}" uuid="{{:uuid}}" class="collection-item-icon control">
|
||||
<a class="button"><span class="icon is-small"><i class="fas fa-eye"></i></span></a>
|
||||
</div>
|
||||
<div id="ccn-calendar-sharedItem-btnShow-{{:uuid}}" uuid="{{:uuid}}" class="collection-item-icon control">
|
||||
<a class="button"><span class="icon is-small"><i class="fas fa-eye-slash"></i></span></a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,9 +1,9 @@
|
||||
<div id="ccn-calendar-sharingItem-{{:uuid}}" class="collection-item card">
|
||||
<div id="ccn-sharingItem-{{:uuid}}" class="collection-item card">
|
||||
<div class="collection-item-words">
|
||||
<p>{{>username}}</p>
|
||||
</div>
|
||||
|
||||
<div id="ccn-calendar-sharingItem-btnDelete-{{:uuid}}" uuid="{{:uuid}}" class="collection-item-icon control">
|
||||
<div id="ccn-sharingItem-btnDelete-{{:uuid}}" uuid="{{:uuid}}" class="collection-item-icon control">
|
||||
<a class="button"><span class="icon is-small"><i class="fas fa-trash"></i></span></a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,20 +1,20 @@
|
||||
<div id="ccn-todo-todoItem-{{:uuid}}" class="todo-item card">
|
||||
<div id="ccn-todoItem-{{:uuid}}" class="todo-item card">
|
||||
<div class="todo-item-words">
|
||||
<p id="ccn-todo-todoItem-p-{{:uuid}}">{{:data}}</p>
|
||||
<textarea id="ccn-todo-todoItem-textarea-{{:uuid}}" class="textarea"></textarea>
|
||||
<p id="ccn-todoItem-p-{{:uuid}}">{{:data}}</p>
|
||||
<textarea id="ccn-todoItem-textarea-{{:uuid}}" class="textarea"></textarea>
|
||||
</div>
|
||||
|
||||
<div id="ccn-todo-todoItem-btnEdit-{{:uuid}}" uuid="{{:uuid}}" class="todo-item-icon control">
|
||||
<div id="ccn-todoItem-btnEdit-{{:uuid}}" uuid="{{:uuid}}" class="todo-item-icon control">
|
||||
<button class="button"><span class="icon is-small"><i class="fas fa-pen"></i></span></button>
|
||||
</div>
|
||||
<div id="ccn-todo-todoItem-btnDelete-{{:uuid}}" uuid="{{:uuid}}" class="todo-item-icon control">
|
||||
<div id="ccn-todoItem-btnDelete-{{:uuid}}" uuid="{{:uuid}}" class="todo-item-icon control">
|
||||
<button class="button"><span class="icon is-small"><i class="fas fa-trash"></i></button>
|
||||
</div>
|
||||
|
||||
<div id="ccn-todo-todoItem-btnUpdate-{{:uuid}}" uuid="{{:uuid}}" class="todo-item-icon control">
|
||||
<div id="ccn-todoItem-btnUpdate-{{:uuid}}" uuid="{{:uuid}}" class="todo-item-icon control">
|
||||
<button class="button"><span class="icon is-small"><i class="fas fa-check"></i></span></button>
|
||||
</div>
|
||||
<div id="ccn-todo-todoItem-btnCancelUpdate-{{:uuid}}" uuid="{{:uuid}}" class="todo-item-icon control">
|
||||
<div id="ccn-todoItem-btnCancelUpdate-{{:uuid}}" uuid="{{:uuid}}" class="todo-item-icon control">
|
||||
<button class="button"><span class="icon is-small"><i class="fas fa-times"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,35 +1,35 @@
|
||||
<div id="ccn-admin-userItem-{{:uuid}}" class="user-item card">
|
||||
<div id="ccn-userItem-{{:uuid}}" class="user-item card">
|
||||
<div class="user-item-words">
|
||||
<div class="control" style="display: flex; flex-flow: row; align-items: center;">
|
||||
<div id="ccn-admin-userItem-iconIsAdmin-{{:uuid}}" class="icon is-small" style="margin-right: 1rem;">
|
||||
<div id="ccn-userItem-iconIsAdmin-{{:uuid}}" class="icon is-small" style="margin-right: 1rem;">
|
||||
<i class="fas fa-wrench"></i>
|
||||
</div>
|
||||
<div id="ccn-admin-userItem-textName-{{:uuid}}">{{>username}}</div>
|
||||
<div id="ccn-userItem-textName-{{:uuid}}">{{>username}}</div>
|
||||
</div>
|
||||
<div id="ccn-admin-userItem-boxPassword-{{:uuid}}" class="field">
|
||||
<label class="label" i18n-name="ccn-admin-userItem-newPassword"></label>
|
||||
<div id="ccn-userItem-boxPassword-{{:uuid}}" class="field">
|
||||
<label class="label" i18n-name="ccn-i18n-userItem-newPassword"></label>
|
||||
<div class="control">
|
||||
<input id="ccn-admin-userItem-inputPassword-{{:uuid}}" class="input" type="password"></input>
|
||||
<input id="ccn-userItem-inputPassword-{{:uuid}}" class="input" type="password"></input>
|
||||
</div>
|
||||
</div>
|
||||
<div id="ccn-admin-userItem-boxIsAdmin-{{:uuid}}" class="field">
|
||||
<div id="ccn-userItem-boxIsAdmin-{{:uuid}}" class="field">
|
||||
<label class="checkbox">
|
||||
<input id="ccn-admin-userItem-inputIsAdmin-{{:uuid}}" type="checkbox"><span i18n-name="ccn-admin-userItem-isAdmin"></span>
|
||||
<input id="ccn-userItem-inputIsAdmin-{{:uuid}}" type="checkbox"><span i18n-name="ccn-i18n-userItem-isAdmin"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="ccn-admin-userItem-btnEdit-{{:uuid}}" uuid="{{:uuid}}" class="user-item-icon control">
|
||||
<div id="ccn-userItem-btnEdit-{{:uuid}}" uuid="{{:uuid}}" class="user-item-icon control">
|
||||
<a class="button"><span class="icon is-small"><i class="fas fa-pen"></i></span></a>
|
||||
</div>
|
||||
<div id="ccn-admin-userItem-btnDelete-{{:uuid}}" uuid="{{:uuid}}" class="user-item-icon control">
|
||||
<div id="ccn-userItem-btnDelete-{{:uuid}}" uuid="{{:uuid}}" class="user-item-icon control">
|
||||
<a class="button"><span class="icon is-small"><i class="fas fa-trash"></i></span></a>
|
||||
</div>
|
||||
|
||||
<div id="ccn-admin-userItem-btnUpdate-{{:uuid}}" uuid="{{:uuid}}" class="user-item-icon control">
|
||||
<div id="ccn-userItem-btnUpdate-{{:uuid}}" uuid="{{:uuid}}" class="user-item-icon control">
|
||||
<a class="button"><span class="icon is-small"><i class="fas fa-check"></i></span></a>
|
||||
</div>
|
||||
<div id="ccn-admin-userItem-btnCancelUpdate-{{:uuid}}" uuid="{{:uuid}}" class="user-item-icon control">
|
||||
<div id="ccn-userItem-btnCancelUpdate-{{:uuid}}" uuid="{{:uuid}}" class="user-item-icon control">
|
||||
<a class="button"><span class="icon is-small"><i class="fas fa-times"></i></span></a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -34,16 +34,16 @@
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li id="tabcontrol-tab-1-1" class="tabcontrol-tab-1"><a
|
||||
i18n-name="ccn-admin-tabcontrol-tabProfile"></a></li>
|
||||
i18n-name="ccn-i18n-admin-tabcontrol-tabProfile"></a></li>
|
||||
<li id="tabcontrol-tab-1-2" class="tabcontrol-tab-1"><a
|
||||
i18n-name="ccn-admin-tabcontrol-tabUserList"></a></li>
|
||||
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;">
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-admin-changePassword"></label>
|
||||
<label class="label" i18n-name="ccn-i18n-admin-changePassword"></label>
|
||||
<div class="field has-addons">
|
||||
<div class="control">
|
||||
<input id="ccn-admin-profile-inputPassword" class="input" type="password">
|
||||
@@ -58,7 +58,7 @@
|
||||
</div>
|
||||
|
||||
<div id="tabcontrol-panel-1-2" class="container tabcontrol-panel-1" style="margin-top: 20px;">
|
||||
<h1 class="title" i18n-name="ccn-admin-userList"></h1>
|
||||
<h1 class="title" i18n-name="ccn-i18n-admin-userList"></h1>
|
||||
<div class="control-list">
|
||||
<div class="field has-addons">
|
||||
<div class="control">
|
||||
|
||||
@@ -16,9 +16,8 @@
|
||||
<script type="text/x-jsrender" id="jsrender-tmpl-messagebox" src="/static/tmpl/messagebox.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-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/x-jsrender" id="jsrender-tmpl-sharedItem" src="/static/tmpl/sharedItem.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>
|
||||
@@ -29,6 +28,7 @@
|
||||
<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">
|
||||
@@ -40,11 +40,11 @@
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li id="tabcontrol-tab-1-1" class="tabcontrol-tab-1"><a
|
||||
i18n-name="ccn-calendar-tabcontrol-tabCalendar"></a></li>
|
||||
i18n-name="ccn-i18n-calendar-tabcontrol-tabCalendar"></a></li>
|
||||
<li id="tabcontrol-tab-1-2" class="tabcontrol-tab-1"><a
|
||||
i18n-name="ccn-calendar-tabcontrol-tabShared"></a></li>
|
||||
i18n-name="ccn-i18n-calendar-tabcontrol-tabCollection"></a></li>
|
||||
<li id="tabcontrol-tab-1-3" class="tabcontrol-tab-1"><a
|
||||
i18n-name="ccn-calendar-tabcontrol-tabSharing"></a></li>
|
||||
i18n-name="ccn-i18n-calendar-tabcontrol-tabDisplay"></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -54,39 +54,39 @@
|
||||
<div class="level-item">
|
||||
<div class="field has-addons">
|
||||
<div class="control">
|
||||
<input datetimepicker="4" class="input datetimepicker-year" type="number">
|
||||
<input datetimepicker="1" class="input datetimepicker-year" type="number">
|
||||
</div>
|
||||
<div class="control">
|
||||
<input datetimepicker="4" class="input datetimepicker-month" type="number">
|
||||
<input datetimepicker="1" class="input datetimepicker-month" type="number">
|
||||
</div>
|
||||
<div class="control">
|
||||
<a id="ccn-calendar-calendar-btnJump" i18n-name="ccn-calendar-calendar-jump" class="button is-info"></a>
|
||||
<a id="ccn-calendar-calendar-btnJump" i18n-name="ccn-i18n-calendar-calendar-jump" class="button is-info"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="level-item control">
|
||||
<a id="ccn-calendar-calendar-btnToday" i18n-name="ccn-calendar-calendar-today" class="button is-info"></a>
|
||||
<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-calendar-calendar-add" class="button is-primary"></a>
|
||||
<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-calendar-week-1"></b></div>
|
||||
<div><b i18n-name="ccn-calendar-week-2"></b></div>
|
||||
<div><b i18n-name="ccn-calendar-week-3"></b></div>
|
||||
<div><b i18n-name="ccn-calendar-week-4"></b></div>
|
||||
<div><b i18n-name="ccn-calendar-week-5"></b></div>
|
||||
<div><b i18n-name="ccn-calendar-week-6" style="color: red;"></b></div>
|
||||
<div><b i18n-name="ccn-calendar-week-7" style="color: red;"></b></div>
|
||||
<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-calendar-calendar-scheduleList" class="title"></h1>
|
||||
<h1 i18n-name="ccn-i18n-calendar-calendar-scheduleList" class="title"></h1>
|
||||
|
||||
<div id="ccn-calendar-scheduleList">
|
||||
<div class="schedule-day container">
|
||||
@@ -186,387 +186,21 @@
|
||||
</div>
|
||||
|
||||
<div id="tabcontrol-panel-1-2" class="container tabcontrol-panel-1" style="margin-top: 20px;">
|
||||
|
||||
<div class="container" style="display: flex; flex-flow: column;">
|
||||
<h1 i18n-name="ccn-calendar-shared-list" class="title"></h1>
|
||||
<div class="field">
|
||||
<div id="ccn-calendar-shared-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-calendar-sharedList" style="display: flex; flex-flow: column;">
|
||||
</div>
|
||||
<div id="ccn-calendar-collection-btnRefresh" class="control">
|
||||
<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="container" style="display: flex; flex-flow: column;">
|
||||
<h1 i18n-name="ccn-calendar-owned-list" class="title"></h1>
|
||||
<div class="control-list">
|
||||
<div class="field has-addons">
|
||||
<div class="control">
|
||||
<input id="ccn-calendar-owned-inputAdd" class="input" type="text">
|
||||
</div>
|
||||
<div id="ccn-calendar-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-calendar-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-calendar-ownedList" style="display: flex; flex-flow: column; margin-top: 1.25rem;">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="ccn-calendar-sharing-container" class="container" style="display: flex; flex-flow: column;">
|
||||
<h1 i18n-name="ccn-calendar-sharing-list" class="title"></h1>
|
||||
<label class="label"><span i18n-name="ccn-calendar-sharing-editing"></span>
|
||||
<span id="ccn-calendar-sharing-sharingEditing"></span>
|
||||
</label>
|
||||
|
||||
<div class="control-list">
|
||||
<div class="field has-addons">
|
||||
<div class="control">
|
||||
<input id="ccn-calendar-sharing-inputAdd" class="input" type="text">
|
||||
</div>
|
||||
<div id="ccn-calendar-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-calendar-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-calendar-sharingList" style="display: flex; flex-flow: column; margin-top: 1.25rem;">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<!-- add is-active in class to show this-->
|
||||
<div id="ccn-calendar-modalEvent" class="modal"
|
||||
style="float: left; position: fixed; top: 0; bottom: 0; left: 0; right: 0;">
|
||||
<div class="modal-background"></div>
|
||||
<div class="modal-card">
|
||||
<header class="modal-card-head">
|
||||
<p i18n-name="ccn-calendar-modalEvent-header" class="modal-card-title"></p>
|
||||
<a id="ccn-calendar-modalEvent-btnClose" class="delete" aria-label="close"></a>
|
||||
</header>
|
||||
<div class="modal-card-body" style="word-break: break-all;">
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-modalEvent-title"></label>
|
||||
<div class="control">
|
||||
<input id="ccn-calendar-modalEvent-inputTitle" class="input" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-modalEvent-description"></label>
|
||||
<div class="control">
|
||||
<textarea id="ccn-calendar-modalEvent-inputDescription" class="textarea"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-modalEvent-collection"></label>
|
||||
<div class="control">
|
||||
<div class="select">
|
||||
<select id="ccn-calendar-modalEvent-inputCollection"></select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="label" i18n-name="ccn-calendar-modalEvent-startDateTime"></label>
|
||||
<div class="control-list">
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-text-year"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="1" class="input datetimepicker-year" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-text-month"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="1" class="input datetimepicker-month" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-text-day"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="1" class="input datetimepicker-day" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-text-hour"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="1" class="input datetimepicker-hour" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-text-minute"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="1" class="input datetimepicker-minute" type="number">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="label" i18n-name="ccn-calendar-modalEvent-endDateTime"></label>
|
||||
<div class="control-list">
|
||||
<div class="control">
|
||||
<a id="ccn-calendar-modalEvent-btnSpot" class="button is-link" i18n-name="ccn-calendar-modalEvent-btnSpot"></a>
|
||||
</div>
|
||||
<div class="control">
|
||||
<a id="ccn-calendar-modalEvent-btnFullDay" class="button is-link" i18n-name="ccn-calendar-modalEvent-btnFullDay"></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-list">
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-text-year"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="2" class="input datetimepicker-year" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-text-month"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="2" class="input datetimepicker-month" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-text-day"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="2" class="input datetimepicker-day" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-text-hour"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="2" class="input datetimepicker-hour" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-text-minute"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="2" class="input datetimepicker-minute" type="number">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="label" i18n-name="ccn-calendar-modalEvent-loop"></label>
|
||||
<div class="control-list">
|
||||
<label class="radio">
|
||||
<input id="ccn-calendar-modalEvent-radioLoopNever" type="radio" name="loop-method">
|
||||
<span i18n-name="ccn-calendar-modalEvent-loop-never"></span>
|
||||
</label>
|
||||
<label class="radio">
|
||||
<input id="ccn-calendar-modalEvent-radioLoopDay" type="radio" name="loop-method">
|
||||
<span i18n-name="ccn-calendar-modalEvent-loop-day"></span>
|
||||
</label>
|
||||
<label class="radio">
|
||||
<input id="ccn-calendar-modalEvent-radioLoopWeek" type="radio" name="loop-method">
|
||||
<span i18n-name="ccn-calendar-modalEvent-loop-week"></span>
|
||||
</label>
|
||||
<label class="radio">
|
||||
<input id="ccn-calendar-modalEvent-radioLoopMonth" type="radio" name="loop-method">
|
||||
<span i18n-name="ccn-calendar-modalEvent-loop-month"></span>
|
||||
</label>
|
||||
<label class="radio">
|
||||
<input id="ccn-calendar-modalEvent-radioLoopYear" type="radio" name="loop-method">
|
||||
<span i18n-name="ccn-calendar-modalEvent-loop-year"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div id="ccn-calendar-modalEvent-boxLoopDay">
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-modalEvent-loopDay-span"></label>
|
||||
<div class="control">
|
||||
<input id="ccn-calendar-modalEvent-loopDay-inputSpan" class="input spanpicker" type="number">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="ccn-calendar-modalEvent-boxLoopWeek">
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-modalEvent-loopWeek-span"></label>
|
||||
<div class="control">
|
||||
<input id="ccn-calendar-modalEvent-loopWeek-inputSpan" class="input spanpicker" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-modalEvent-loopWeek-option"></label>
|
||||
<div class="control-list">
|
||||
<label class="checkbox">
|
||||
<input id="ccn-calendar-modalEvent-loopWeek-check1" type="checkbox">
|
||||
<span i18n-name="ccn-calendar-week-1"></span>
|
||||
</label>
|
||||
<label class="checkbox">
|
||||
<input id="ccn-calendar-modalEvent-loopWeek-check2" type="checkbox">
|
||||
<span i18n-name="ccn-calendar-week-2"></span>
|
||||
</label>
|
||||
<label class="checkbox">
|
||||
<input id="ccn-calendar-modalEvent-loopWeek-check3" type="checkbox">
|
||||
<span i18n-name="ccn-calendar-week-3"></span>
|
||||
</label>
|
||||
<label class="checkbox">
|
||||
<input id="ccn-calendar-modalEvent-loopWeek-check4" type="checkbox">
|
||||
<span i18n-name="ccn-calendar-week-4"></span>
|
||||
</label>
|
||||
<label class="checkbox">
|
||||
<input id="ccn-calendar-modalEvent-loopWeek-check5" type="checkbox">
|
||||
<span i18n-name="ccn-calendar-week-5"></span>
|
||||
</label>
|
||||
<label class="checkbox">
|
||||
<input id="ccn-calendar-modalEvent-loopWeek-check6" type="checkbox">
|
||||
<span i18n-name="ccn-calendar-week-6"></span>
|
||||
</label>
|
||||
<label class="checkbox">
|
||||
<input id="ccn-calendar-modalEvent-loopWeek-check7" type="checkbox">
|
||||
<span i18n-name="ccn-calendar-week-7"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="ccn-calendar-modalEvent-boxLoopMonth">
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-modalEvent-loopMonth-span"></label>
|
||||
<div class="control">
|
||||
<input id="ccn-calendar-modalEvent-loopMonth-inputSpan" class="input spanpicker" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-modalEvent-loopWeek-option"></label>
|
||||
<div class="control-list">
|
||||
<label class="radio">
|
||||
<input id="ccn-calendar-modalEvent-loopMonth-radioA" type="radio" name="month-loop-method">
|
||||
<span id="ccn-calendar-modalEvent-loopMonth-textA"></span>
|
||||
</label>
|
||||
<label class="radio">
|
||||
<input id="ccn-calendar-modalEvent-loopMonth-radioB" type="radio" name="month-loop-method">
|
||||
<span id="ccn-calendar-modalEvent-loopMonth-textB"></span>
|
||||
</label>
|
||||
<label class="radio">
|
||||
<input id="ccn-calendar-modalEvent-loopMonth-radioC" type="radio" name="month-loop-method">
|
||||
<span id="ccn-calendar-modalEvent-loopMonth-textC"></span>
|
||||
</label>
|
||||
<label class="radio">
|
||||
<input id="ccn-calendar-modalEvent-loopMonth-radioD" type="radio" name="month-loop-method">
|
||||
<span id="ccn-calendar-modalEvent-loopMonth-textD"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="ccn-calendar-modalEvent-boxLoopYear">
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-modalEvent-loopYear-span"></label>
|
||||
<div class="control">
|
||||
<input id="ccn-calendar-modalEvent-loopYear-inputSpan" class="input spanpicker" type="number">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="ccn-calendar-modalEvent-boxLoopStop">
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-modalEvent-loopStop"></label>
|
||||
<div class="control-list">
|
||||
<label class="radio">
|
||||
<input id="ccn-calendar-modalEvent-loopStop-radioForever" type="radio" name="loop-end">
|
||||
<span i18n-name="ccn-calendar-modalEvent-loopStop-forever"></span>
|
||||
</label>
|
||||
<label class="radio">
|
||||
<input id="ccn-calendar-modalEvent-loopStop-radioDateTime" type="radio" name="loop-end">
|
||||
<span i18n-name="ccn-calendar-modalEvent-loopStop-datetime"></span>
|
||||
</label>
|
||||
<label class="radio">
|
||||
<input id="ccn-calendar-modalEvent-loopStop-radioTimes" type="radio" name="loop-end">
|
||||
<span i18n-name="ccn-calendar-modalEvent-loopStop-times"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div id="ccn-calendar-modalEvent-boxLoopStopDateTime">
|
||||
<div class="field">
|
||||
<div class="control-list">
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-text-year"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="3" class="input datetimepicker-year" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-text-month"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="3" class="input datetimepicker-month" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-text-day"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="3" class="input datetimepicker-day" type="number">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="ccn-calendar-modalEvent-boxLoopStopTimes">
|
||||
<div class="field">
|
||||
<div class="control">
|
||||
<input id="ccn-calendar-modalEvent-loopStop-inputTimes" class="input" type="text">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="ccn-calendar-modalEvent-boxStrictMode" class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-modalEvent-strictMode-title"></label>
|
||||
<p i18n-name="ccn-calendar-modalEvent-strictMode-warning"></p>
|
||||
<div class="control-list">
|
||||
<label class="radio">
|
||||
<input id="ccn-calendar-modalEvent-strictMode-radioStrict" type="radio" name="timezone">
|
||||
<span i18n-name="ccn-calendar-modalEvent-strictMode-strict"></span>
|
||||
</label>
|
||||
<label class="radio">
|
||||
<input id="ccn-calendar-modalEvent-strictMode-radioRough" type="radio" name="timezone">
|
||||
<span i18n-name="ccn-calendar-modalEvent-strictMode-rough"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="ccn-calendar-modalEvent-boxTimezone" class="field">
|
||||
<label class="label" i18n-name="ccn-calendar-modalEvent-timezone-title"></label>
|
||||
<p i18n-name="ccn-calendar-modalEvent-timezone-warning"></p>
|
||||
<div class="control-list">
|
||||
<label class="radio">
|
||||
<input id="ccn-calendar-modalEvent-timezone-radioKeep" type="radio" name="timezone">
|
||||
<span i18n-name="ccn-calendar-modalEvent-timezone-keep"></span>
|
||||
</label>
|
||||
<label class="radio">
|
||||
<input id="ccn-calendar-modalEvent-timezone-radioReplace" type="radio" name="timezone">
|
||||
<span i18n-name="ccn-calendar-modalEvent-timezone-replace"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<footer class="modal-card-foot">
|
||||
<a id="ccn-calendar-modalEvent-btnSubmit" class="button is-success" i18n-name="ccn-calendar-modalEvent-btnSubmit"></a>
|
||||
<a id="ccn-calendar-modalEvent-btnCancel" class="button" i18n-name="ccn-calendar-modalEvent-btnCancel"></a>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
94
src/templates/collection.html
Normal file
94
src/templates/collection.html
Normal 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">
|
||||
<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>
|
||||
346
src/templates/event.html
Normal file
346
src/templates/event.html
Normal file
@@ -0,0 +1,346 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title id="ccn-pageName"></title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<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/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">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- add is-active in class to show this-->
|
||||
<div style="margin-top: 20px;">
|
||||
<div class="modal-background"></div>
|
||||
<div class="modal-card">
|
||||
<header class="modal-card-head">
|
||||
<p i18n-name="ccn-i18n-event-header" class="modal-card-title"></p>
|
||||
<a id="ccn-event-btnClose" class="delete" aria-label="close"></a>
|
||||
</header>
|
||||
<div class="modal-card-body" style="word-break: break-all;">
|
||||
<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-collection"></label>
|
||||
<div class="control">
|
||||
<div class="select">
|
||||
<select id="ccn-event-inputCollection"></select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="label" i18n-name="ccn-i18n-event-startDateTime"></label>
|
||||
<div class="control-list">
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-i18n-universal-text-year"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="1" class="input datetimepicker-year" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-i18n-universal-text-month"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="1" class="input datetimepicker-month" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-i18n-universal-text-day"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="1" class="input datetimepicker-day" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-i18n-universal-text-hour"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="1" class="input datetimepicker-hour" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-i18n-universal-text-minute"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="1" class="input datetimepicker-minute" type="number">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="label" i18n-name="ccn-i18n-event-endDateTime"></label>
|
||||
<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>
|
||||
<div class="control-list">
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-i18n-universal-text-year"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="2" class="input datetimepicker-year" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-i18n-universal-text-month"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="2" class="input datetimepicker-month" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-i18n-universal-text-day"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="2" class="input datetimepicker-day" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-i18n-universal-text-hour"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="2" class="input datetimepicker-hour" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-i18n-universal-text-minute"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="2" class="input datetimepicker-minute" type="number">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="label" i18n-name="ccn-i18n-event-loop"></label>
|
||||
<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>
|
||||
|
||||
<div id="ccn-event-boxLoopStop">
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-i18n-event-loopStop"></label>
|
||||
<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>
|
||||
<div id="ccn-event-boxLoopStopDateTime">
|
||||
<div class="field">
|
||||
<div class="control-list">
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-i18n-universal-text-year"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="3" class="input datetimepicker-year" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-i18n-universal-text-month"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="3" class="input datetimepicker-month" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-i18n-universal-text-day"></label>
|
||||
<div class="control">
|
||||
<input datetimepicker="3" class="input datetimepicker-day" type="number">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="ccn-event-boxLoopStopTimes">
|
||||
<div class="field">
|
||||
<div class="control">
|
||||
<input id="ccn-event-loopStop-inputTimes" class="input" type="text">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="ccn-event-boxStrictMode" class="field">
|
||||
<label class="label" i18n-name="ccn-i18n-event-strictMode-title"></label>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
<div id="ccn-event-boxTimezone" class="field">
|
||||
<label class="label" i18n-name="ccn-i18n-event-timezone-title"></label>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<footer class="modal-card-foot">
|
||||
<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>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
<body>
|
||||
<div class="container" style="margin-top: 1.25rem;">
|
||||
<article i18n-name="ccn-home-desc">
|
||||
<article i18n-name="ccn-i18n-home-desc">
|
||||
</article>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
<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-login-form-username"></label>
|
||||
<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">
|
||||
@@ -39,7 +39,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" i18n-name="ccn-login-form-password"></label>
|
||||
<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">
|
||||
@@ -49,7 +49,7 @@
|
||||
</div>
|
||||
|
||||
<div class="control">
|
||||
<button id="ccn-login-form-login" class="button is-primary" i18n-name="ccn-login-form-login"></button>
|
||||
<button id="ccn-login-form-login" class="button is-primary" i18n-name="ccn-i18n-login-form-login"></button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
<body>
|
||||
|
||||
<div class="container" style="display: flex; flex-flow: column; margin-top: 1.25rem;">
|
||||
<h1 i18n-name="ccn-todo-todoList" class="title ccn-i18n"></h1>
|
||||
<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>
|
||||
|
||||
Reference in New Issue
Block a user