Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
tl_estate
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hujun
tl_estate
Commits
e2bd8d3f
Commit
e2bd8d3f
authored
Dec 22, 2017
by
clone
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
时间控件和分页组建
parent
03f03716
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
207 additions
and
95 deletions
+207
-95
Login.php
application/index/controller/Login.php
+1
-1
footer_tpl.html
application/index/view/global/footer_tpl.html
+2
-2
frame_tpl.html
application/index/view/global/frame_tpl.html
+2
-0
index.html
application/index/view/transfer/index.html
+86
-57
bootstrap-datetimepicker.min.css
public/resource/css/bootstrap-datetimepicker.min.css
+4
-3
bootstrap-theme.min.css
public/resource/css/bootstrap-theme.min.css
+2
-0
banner.js
public/resource/js/banner.js
+1
-1
main.js
public/resource/js/main.js
+2
-1
transfer.js
public/resource/js/transfer.js
+53
-3
bootstrap-datetimepicker.min.js
public/resource/lib/js/bootstrap-datetimepicker.min.js
+2
-27
zw.pagination.js
public/resource/lib/js/zw.pagination.js
+52
-0
No files found.
application/index/controller/Login.php
View file @
e2bd8d3f
...
...
@@ -46,7 +46,7 @@ class Login extends Basic
Session
::
set
(
"userName"
,
$result
[
0
][
"name"
]);
Session
::
set
(
"userId"
,
$result
[
0
][
"id"
]);
Session
::
set
(
"lastLoginTime"
,
$result
[
0
][
"last_login_time"
]);
$this
->
redirect
(
'banner/banner'
);
}
else
{
return
view
(
"login/login"
,
[
"msg"
=>
"用户名或密码错误"
]);
...
...
application/index/view/global/footer_tpl.html
View file @
e2bd8d3f
<script
src=
'/resource/lib/js/require.min.js'
data-main=
'/resource/js/main?version=1vsdfv1235544241'
charset=
'utf-8'
></script>
\ No newline at end of file
<script
src=
'/resource/lib/js/require.min.js'
data-main=
'/resource/js/main?version=1'
charset=
'utf-8'
></script>
\ No newline at end of file
application/index/view/global/frame_tpl.html
View file @
e2bd8d3f
...
...
@@ -5,6 +5,8 @@
<link
rel=
"stylesheet"
href=
"/resource/css/bootstrap.css"
type=
"text/css"
/>
<link
rel=
"stylesheet"
href=
"/resource/css/public.css"
type=
"text/css"
/>
<link
rel=
"stylesheet"
href=
"//qidian.gtimg.com/lulu/theme/peak/css/common/ui/Pagination.css"
>
<link
rel=
"stylesheet"
href=
"/resource/css/bootstrap-theme.min.css"
>
<link
rel=
"stylesheet"
href=
"/resource/css/bootstrap-datetimepicker.min.css"
>
</head>
<body>
...
...
application/index/view/transfer/index.html
View file @
e2bd8d3f
{layout name="global/frame_tpl" /}
<input
type=
"hidden"
class=
"page-load"
id=
"transfer"
/>
<input
type=
"hidden"
class=
"page-load"
id=
"transfer"
/>
<!--导航star-->
<!-- Sidebar -->
<!-- /#sidebar-wrapper -->
<!-- Sidebar -->
<!-- /#sidebar-wrapper -->
<!-- Page Content -->
<div
id=
"page-content-wrapper"
>
<div
class=
"container"
>
<div
class=
"row"
>
<div
class=
"col-lg-10 col-lg-offset-0"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel-heading"
>
委托转铺列表
<!-- Page Content -->
<div
id=
"page-content-wrapper"
>
<div
class=
"container"
>
<div
class=
"row"
>
<div
class=
"col-lg-10 col-lg-offset-0"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel-heading"
>
委托转铺列表
</div>
<div
class=
"panel-body"
>
<div
class=
"table-responsive"
>
<table
class=
"table table-striped table-bordered table-hover table-condensed"
>
<thead>
<tr>
<td
colspan=
"9"
>
<form
id=
"form_search"
>
<span
class=
"fore-span"
>
提交时间:
</span>
<div
class=
"form-group"
>
<div
class=
"input-group date form_date "
data-date=
""
data-date-format=
"yyyy-MM-dd"
data-link-field=
"dtp_input2"
data-link-format=
"yyyy-mm-dd"
style=
"width: 200px;float: left;"
>
<input
class=
"form-control"
size=
"16"
type=
"text"
value=
""
id=
"start_date"
readonly
>
<span
class=
"input-group-addon"
><span
class=
"glyphicon glyphicon-remove"
></span></span>
<span
class=
"input-group-addon"
><span
class=
"glyphicon glyphicon-calendar"
></span></span>
</div>
<div
class=
"input-group date form_date "
data-date=
""
data-date-format=
"yyyy-MM-dd"
data-link-field=
"dtp_input2"
data-link-format=
"yyyy-mm-dd"
style=
"width: 200px;float: left"
>
<input
class=
"form-control"
size=
"16"
type=
"text"
value=
""
id=
"end_date"
readonly
>
<span
class=
"input-group-addon"
><span
class=
"glyphicon glyphicon-remove"
></span></span>
<span
class=
"input-group-addon"
><span
class=
"glyphicon glyphicon-calendar"
></span></span>
</div>
</div>
<input
class=
"form-control btn2"
data-rule-phoneus=
"false"
data-rule-required=
"false"
id=
"name"
placeholder=
"客户姓名"
type=
"text"
value=
""
>
<input
class=
"form-control btn2"
data-rule-phoneus=
"false"
data-rule-required=
"false"
id=
"phone"
placeholder=
"手机号"
type=
"text"
value=
""
>
<input
class=
"form-control btn2"
data-rule-phoneus=
"false"
data-rule-required=
"false"
id=
"shop_name"
placeholder=
"店铺名"
type=
"text"
value=
""
>
<span
class=
"btn btn-default btn3"
id=
"search"
>
搜索
</span>
<span
class=
"btn btn-default btn3"
id=
"form_search_reset"
>
重置
</span>
</form>
</td>
</tr>
<tr>
<th
class=
"text-center"
>
店铺名
</th>
<th
class=
"text-center"
>
称呼
</th>
<th
class=
"text-center"
>
客户电话
</th>
<th
class=
"text-center"
>
经营业态
</th>
<th
class=
"text-center"
>
所在区域
</th>
<th
class=
"text-center"
>
具体地址
</th>
<th
class=
"text-center"
>
期望月租金
</th>
<th
class=
"text-center"
>
提交时间
</th>
<th
class=
"text-center"
>
操作
</th>
</tr>
</thead>
<tbody
id=
"sublet_list"
class=
"text-center"
>
</tbody>
</table>
</div>
<div
class=
"panel-body"
>
<div
class=
"table-responsive"
>
<table
class=
"table table-striped table-bordered table-hover table-condensed"
>
<thead>
<tr>
<td
colspan=
"9"
>
<form
id=
"form_search"
>
<span
class=
"fore-span"
>
提交时间
</span>
<input
class=
"form-control btn4"
data-rule-phoneus=
"false"
data-rule-required=
"false"
id=
"start_date"
type=
"datetime-local"
value=
""
>
<input
class=
"form-control btn4"
data-rule-phoneus=
"false"
data-rule-required=
"false"
id=
"end_date"
type=
"datetime-local"
value=
""
>
<input
class=
"form-control btn2"
data-rule-phoneus=
"false"
data-rule-required=
"false"
id=
"name"
placeholder=
"客户姓名"
type=
"text"
value=
""
>
<input
class=
"form-control btn2"
data-rule-phoneus=
"false"
data-rule-required=
"false"
id=
"phone"
placeholder=
"手机号"
type=
"text"
value=
""
>
<input
class=
"form-control btn2"
data-rule-phoneus=
"false"
data-rule-required=
"false"
id=
"shop_name"
placeholder=
"店铺名"
type=
"text"
value=
""
>
<span
class=
"btn btn-default btn3"
id=
"search"
>
搜索
</span>
<span
class=
"btn btn-default btn3"
id=
"form_search_reset"
>
重置
</span>
</form>
</td>
</tr>
<tr>
<th
class=
"text-center"
>
店铺名
</th>
<th
class=
"text-center"
>
称呼
</th>
<th
class=
"text-center"
>
客户电话
</th>
<th
class=
"text-center"
>
经营业态
</th>
<th
class=
"text-center"
>
所在区域
</th>
<th
class=
"text-center"
>
具体地址
</th>
<th
class=
"text-center"
>
期望月租金
</th>
<th
class=
"text-center"
>
提交时间
</th>
<th
class=
"text-center"
>
操作
</th>
</tr>
</thead>
<tbody
id=
"sublet_list"
class=
"text-center"
>
</tbody>
</table>
</div>
<!-- /#page-content-wrapper -->
<div
class=
"text-right"
id=
"pagediv"
>
<!-- /#page-content-wrapper -->
<div
class=
"text-right pageinfo"
id=
"pagediv"
>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- /#wrapper -->
<!-- /#跟进模态框 -->
<div
class=
"modal fade"
id=
"modal-process"
tabindex=
"-1"
role=
"dialog"
aria-labelledby=
"myModalLabel"
aria-hidden=
"true"
>
<div
class=
"modal fade"
id=
"modal-process"
tabindex=
"-1"
role=
"dialog"
aria-labelledby=
"myModalLabel"
aria-hidden=
"true"
>
<div
class=
"modal-dialog"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
...
...
@@ -69,18 +99,18 @@
×
</button>
<h4
class=
"modal-title"
id=
"myModalLabel"
>
跟进
跟进
</h4>
</div>
<div
class=
"modal-body"
>
<div
class=
"table-responsive table-responsive1"
>
<table
class=
"table table-striped table-bordered table-hover"
>
<thead>
<tr>
<th>
跟进内容
</th>
<th>
跟进人
</th>
<th>
跟进时间
</th>
</tr>
<tr>
<th>
跟进内容
</th>
<th>
跟进人
</th>
<th>
跟进时间
</th>
</tr>
</thead>
<tbody
id=
"list_follow"
>
...
...
@@ -103,4 +133,4 @@
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal -->
</div>
\ No newline at end of file
</div>
public/resource/css/bootstrap-datetimepicker.min.css
View file @
e2bd8d3f
/*!
* Datepicker for Bootstrap
* Date
time
picker for Bootstrap
*
* Copyright 2012 Stefan Petre
* Improvements by Andrew Rowls
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
*/
.clearfix
{
*
zoom
:
1
}
.clearfix
:before
,
.clearfix
:after
{
display
:
table
;
content
:
""
;
line-height
:
0
}
.clearfix
:after
{
clear
:
both
}
.hide-text
{
font
:
0
/
0
a
;
color
:
transparent
;
text-shadow
:
none
;
background-color
:
transparent
;
border
:
0
}
.input-block-level
{
display
:
block
;
width
:
100%
;
min-height
:
30px
;
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
}
.bootstrap-datetimepicker-widget
{
top
:
0
;
left
:
0
;
width
:
250px
;
padding
:
4px
;
margin-top
:
1px
;
z-index
:
3000
;
-webkit-border-radius
:
4px
;
-moz-border-radius
:
4px
;
border-radius
:
4px
}
.bootstrap-datetimepicker-widget
:before
{
content
:
''
;
display
:
inline-block
;
border-left
:
7px
solid
transparent
;
border-right
:
7px
solid
transparent
;
border-bottom
:
7px
solid
#ccc
;
border-bottom-color
:
rgba
(
0
,
0
,
0
,
0.2
);
position
:
absolute
;
top
:
-7px
;
left
:
6px
}
.bootstrap-datetimepicker-widget
:after
{
content
:
''
;
display
:
inline-block
;
border-left
:
6px
solid
transparent
;
border-right
:
6px
solid
transparent
;
border-bottom
:
6px
solid
#fff
;
position
:
absolute
;
top
:
-6px
;
left
:
7px
}
.bootstrap-datetimepicker-widget.pull-right
:before
{
left
:
auto
;
right
:
6px
}
.bootstrap-datetimepicker-widget.pull-right
:after
{
left
:
auto
;
right
:
7px
}
.bootstrap-datetimepicker-widget
>
ul
{
list-style-type
:
none
;
margin
:
0
}
.bootstrap-datetimepicker-widget
.timepicker-hour
,
.bootstrap-datetimepicker-widget
.timepicker-minute
,
.bootstrap-datetimepicker-widget
.timepicker-second
{
width
:
100%
;
font-weight
:
bold
;
font-size
:
1.2em
}
.bootstrap-datetimepicker-widget
table
[
data-hour-format
=
"12"
]
.separator
{
width
:
4px
;
padding
:
0
;
margin
:
0
}
.bootstrap-datetimepicker-widget
.datepicker
>
div
{
display
:
none
}
.bootstrap-datetimepicker-widget
.picker-switch
{
text-align
:
center
}
.bootstrap-datetimepicker-widget
table
{
width
:
100%
;
margin
:
0
}
.bootstrap-datetimepicker-widget
td
,
.bootstrap-datetimepicker-widget
th
{
text-align
:
center
;
width
:
20px
;
height
:
20px
;
-webkit-border-radius
:
4px
;
-moz-border-radius
:
4px
;
border-radius
:
4px
}
.bootstrap-datetimepicker-widget
td
.day
:hover
,
.bootstrap-datetimepicker-widget
td
.hour
:hover
,
.bootstrap-datetimepicker-widget
td
.minute
:hover
,
.bootstrap-datetimepicker-widget
td
.second
:hover
{
background
:
#eee
;
cursor
:
pointer
}
.bootstrap-datetimepicker-widget
td
.old
,
.bootstrap-datetimepicker-widget
td
.new
{
color
:
#999
}
.bootstrap-datetimepicker-widget
td
.active
,
.bootstrap-datetimepicker-widget
td
.active
:hover
{
color
:
#fff
;
background-color
:
#006dcc
;
background-image
:
-moz-linear-gradient
(
top
,
#08c
,
#04c
);
background-image
:
-webkit-gradient
(
linear
,
0
0
,
0
100%
,
from
(
#08c
),
to
(
#04c
));
background-image
:
-webkit-linear-gradient
(
top
,
#08c
,
#04c
);
background-image
:
-o-linear-gradient
(
top
,
#08c
,
#04c
);
background-image
:
linear-gradient
(
to
bottom
,
#08c
,
#04c
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ff0088cc'
,
endColorstr
=
'#ff0044cc'
,
GradientType
=
0
);
border-color
:
#04c
#04c
#002a80
;
border-color
:
rgba
(
0
,
0
,
0
,
0.1
)
rgba
(
0
,
0
,
0
,
0.1
)
rgba
(
0
,
0
,
0
,
0.25
);
*
background-color
:
#04c
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
enabled
=
false
);
color
:
#fff
;
text-shadow
:
0
-1px
0
rgba
(
0
,
0
,
0
,
0.25
)}
.bootstrap-datetimepicker-widget
td
.active
:hover
,
.bootstrap-datetimepicker-widget
td
.active
:hover:hover
,
.bootstrap-datetimepicker-widget
td
.active
:active
,
.bootstrap-datetimepicker-widget
td
.active
:hover:active
,
.bootstrap-datetimepicker-widget
td
.active.active
,
.bootstrap-datetimepicker-widget
td
.active
:hover
.active
,
.bootstrap-datetimepicker-widget
td
.active.disabled
,
.bootstrap-datetimepicker-widget
td
.active
:hover
.disabled
,
.bootstrap-datetimepicker-widget
td
.active
[
disabled
],
.bootstrap-datetimepicker-widget
td
.active
:hover
[
disabled
]
{
color
:
#fff
;
background-color
:
#04c
;
*
background-color
:
#003bb3
}
.bootstrap-datetimepicker-widget
td
.active
:active
,
.bootstrap-datetimepicker-widget
td
.active
:hover:active
,
.bootstrap-datetimepicker-widget
td
.active.active
,
.bootstrap-datetimepicker-widget
td
.active
:hover
.active
{
background-color
:
#039
\
9
}
.bootstrap-datetimepicker-widget
td
.disabled
,
.bootstrap-datetimepicker-widget
td
.disabled
:hover
{
background
:
0
;
color
:
#999
;
cursor
:
not-allowed
}
.bootstrap-datetimepicker-widget
td
span
{
display
:
block
;
width
:
47px
;
height
:
54px
;
line-height
:
54px
;
float
:
left
;
margin
:
2px
;
cursor
:
pointer
;
-webkit-border-radius
:
4px
;
-moz-border-radius
:
4px
;
border-radius
:
4px
}
.bootstrap-datetimepicker-widget
td
span
:hover
{
background
:
#eee
}
.bootstrap-datetimepicker-widget
td
span
.active
{
color
:
#fff
;
background-color
:
#006dcc
;
background-image
:
-moz-linear-gradient
(
top
,
#08c
,
#04c
);
background-image
:
-webkit-gradient
(
linear
,
0
0
,
0
100%
,
from
(
#08c
),
to
(
#04c
));
background-image
:
-webkit-linear-gradient
(
top
,
#08c
,
#04c
);
background-image
:
-o-linear-gradient
(
top
,
#08c
,
#04c
);
background-image
:
linear-gradient
(
to
bottom
,
#08c
,
#04c
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ff0088cc'
,
endColorstr
=
'#ff0044cc'
,
GradientType
=
0
);
border-color
:
#04c
#04c
#002a80
;
border-color
:
rgba
(
0
,
0
,
0
,
0.1
)
rgba
(
0
,
0
,
0
,
0.1
)
rgba
(
0
,
0
,
0
,
0.25
);
*
background-color
:
#04c
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
enabled
=
false
);
color
:
#fff
;
text-shadow
:
0
-1px
0
rgba
(
0
,
0
,
0
,
0.25
)}
.bootstrap-datetimepicker-widget
td
span
.active
:hover
,
.bootstrap-datetimepicker-widget
td
span
.active
:active
,
.bootstrap-datetimepicker-widget
td
span
.active.active
,
.bootstrap-datetimepicker-widget
td
span
.active.disabled
,
.bootstrap-datetimepicker-widget
td
span
.active
[
disabled
]
{
color
:
#fff
;
background-color
:
#04c
;
*
background-color
:
#003bb3
}
.bootstrap-datetimepicker-widget
td
span
.active
:active
,
.bootstrap-datetimepicker-widget
td
span
.active.active
{
background-color
:
#039
\
9
}
.bootstrap-datetimepicker-widget
td
span
.old
{
color
:
#999
}
.bootstrap-datetimepicker-widget
td
span
.disabled
,
.bootstrap-datetimepicker-widget
td
span
.disabled
:hover
{
background
:
0
;
color
:
#999
;
cursor
:
not-allowed
}
.bootstrap-datetimepicker-widget
th
.switch
{
width
:
145px
}
.bootstrap-datetimepicker-widget
th
.next
,
.bootstrap-datetimepicker-widget
th
.prev
{
font-size
:
21px
}
.bootstrap-datetimepicker-widget
th
.disabled
,
.bootstrap-datetimepicker-widget
th
.disabled
:hover
{
background
:
0
;
color
:
#999
;
cursor
:
not-allowed
}
.bootstrap-datetimepicker-widget
thead
tr
:first-child
th
{
cursor
:
pointer
}
.bootstrap-datetimepicker-widget
thead
tr
:first-child
th
:hover
{
background
:
#eee
}
.input-append.date
.add-on
i
,
.input-prepend.date
.add-on
i
{
display
:
block
;
cursor
:
pointer
;
width
:
16px
;
height
:
16px
}
.bootstrap-datetimepicker-widget.left-oriented
:before
{
left
:
auto
;
right
:
6px
}
.bootstrap-datetimepicker-widget.left-oriented
:after
{
left
:
auto
;
right
:
7px
}
\ No newline at end of file
*/
.datetimepicker
{
padding
:
4px
;
margin-top
:
1px
;
-webkit-border-radius
:
4px
;
-moz-border-radius
:
4px
;
border-radius
:
4px
;
direction
:
ltr
}
.datetimepicker-inline
{
width
:
220px
}
.datetimepicker.datetimepicker-rtl
{
direction
:
rtl
}
.datetimepicker.datetimepicker-rtl
table
tr
td
span
{
float
:
right
}
.datetimepicker-dropdown
,
.datetimepicker-dropdown-left
{
top
:
0
;
left
:
0
}
[
class
*=
" datetimepicker-dropdown"
]
:before
{
content
:
''
;
display
:
inline-block
;
border-left
:
7px
solid
transparent
;
border-right
:
7px
solid
transparent
;
border-bottom
:
7px
solid
#ccc
;
border-bottom-color
:
rgba
(
0
,
0
,
0
,
0.2
);
position
:
absolute
}
[
class
*=
" datetimepicker-dropdown"
]
:after
{
content
:
''
;
display
:
inline-block
;
border-left
:
6px
solid
transparent
;
border-right
:
6px
solid
transparent
;
border-bottom
:
6px
solid
#fff
;
position
:
absolute
}
[
class
*=
" datetimepicker-dropdown-top"
]
:before
{
content
:
''
;
display
:
inline-block
;
border-left
:
7px
solid
transparent
;
border-right
:
7px
solid
transparent
;
border-top
:
7px
solid
#ccc
;
border-top-color
:
rgba
(
0
,
0
,
0
,
0.2
);
border-bottom
:
0
}
[
class
*=
" datetimepicker-dropdown-top"
]
:after
{
content
:
''
;
display
:
inline-block
;
border-left
:
6px
solid
transparent
;
border-right
:
6px
solid
transparent
;
border-top
:
6px
solid
#fff
;
border-bottom
:
0
}
.datetimepicker-dropdown-bottom-left
:before
{
top
:
-7px
;
right
:
6px
}
.datetimepicker-dropdown-bottom-left
:after
{
top
:
-6px
;
right
:
7px
}
.datetimepicker-dropdown-bottom-right
:before
{
top
:
-7px
;
left
:
6px
}
.datetimepicker-dropdown-bottom-right
:after
{
top
:
-6px
;
left
:
7px
}
.datetimepicker-dropdown-top-left
:before
{
bottom
:
-7px
;
right
:
6px
}
.datetimepicker-dropdown-top-left
:after
{
bottom
:
-6px
;
right
:
7px
}
.datetimepicker-dropdown-top-right
:before
{
bottom
:
-7px
;
left
:
6px
}
.datetimepicker-dropdown-top-right
:after
{
bottom
:
-6px
;
left
:
7px
}
.datetimepicker
>
div
{
display
:
none
}
.datetimepicker.minutes
div
.datetimepicker-minutes
{
display
:
block
}
.datetimepicker.hours
div
.datetimepicker-hours
{
display
:
block
}
.datetimepicker.days
div
.datetimepicker-days
{
display
:
block
}
.datetimepicker.months
div
.datetimepicker-months
{
display
:
block
}
.datetimepicker.years
div
.datetimepicker-years
{
display
:
block
}
.datetimepicker
table
{
margin
:
0
}
.datetimepicker
td
,
.datetimepicker
th
{
text-align
:
center
;
width
:
20px
;
height
:
20px
;
-webkit-border-radius
:
4px
;
-moz-border-radius
:
4px
;
border-radius
:
4px
;
border
:
0
}
.table-striped
.datetimepicker
table
tr
td
,
.table-striped
.datetimepicker
table
tr
th
{
background-color
:
transparent
}
.datetimepicker
table
tr
td
.minute
:hover
{
background
:
#eee
;
cursor
:
pointer
}
.datetimepicker
table
tr
td
.hour
:hover
{
background
:
#eee
;
cursor
:
pointer
}
.datetimepicker
table
tr
td
.day
:hover
{
background
:
#eee
;
cursor
:
pointer
}
.datetimepicker
table
tr
td
.old
,
.datetimepicker
table
tr
td
.new
{
color
:
#999
}
.datetimepicker
table
tr
td
.disabled
,
.datetimepicker
table
tr
td
.disabled
:hover
{
background
:
0
;
color
:
#999
;
cursor
:
default
}
.datetimepicker
table
tr
td
.today
,
.datetimepicker
table
tr
td
.today
:hover
,
.datetimepicker
table
tr
td
.today.disabled
,
.datetimepicker
table
tr
td
.today.disabled
:hover
{
background-color
:
#fde19a
;
background-image
:
-moz-linear-gradient
(
top
,
#fdd49a
,
#fdf59a
);
background-image
:
-ms-linear-gradient
(
top
,
#fdd49a
,
#fdf59a
);
background-image
:
-webkit-gradient
(
linear
,
0
0
,
0
100%
,
from
(
#fdd49a
),
to
(
#fdf59a
));
background-image
:
-webkit-linear-gradient
(
top
,
#fdd49a
,
#fdf59a
);
background-image
:
-o-linear-gradient
(
top
,
#fdd49a
,
#fdf59a
);
background-image
:
linear-gradient
(
to
bottom
,
#fdd49a
,
#fdf59a
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#fdd49a'
,
endColorstr
=
'#fdf59a'
,
GradientType
=
0
);
border-color
:
#fdf59a
#fdf59a
#fbed50
;
border-color
:
rgba
(
0
,
0
,
0
,
0.1
)
rgba
(
0
,
0
,
0
,
0.1
)
rgba
(
0
,
0
,
0
,
0.25
);
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
enabled
=
false
)}
.datetimepicker
table
tr
td
.today
:hover
,
.datetimepicker
table
tr
td
.today
:hover:hover
,
.datetimepicker
table
tr
td
.today.disabled
:hover
,
.datetimepicker
table
tr
td
.today.disabled
:hover:hover
,
.datetimepicker
table
tr
td
.today
:active
,
.datetimepicker
table
tr
td
.today
:hover:active
,
.datetimepicker
table
tr
td
.today.disabled
:active
,
.datetimepicker
table
tr
td
.today.disabled
:hover:active
,
.datetimepicker
table
tr
td
.today.active
,
.datetimepicker
table
tr
td
.today
:hover
.active
,
.datetimepicker
table
tr
td
.today.disabled.active
,
.datetimepicker
table
tr
td
.today.disabled
:hover
.active
,
.datetimepicker
table
tr
td
.today.disabled
,
.datetimepicker
table
tr
td
.today
:hover
.disabled
,
.datetimepicker
table
tr
td
.today.disabled.disabled
,
.datetimepicker
table
tr
td
.today.disabled
:hover
.disabled
,
.datetimepicker
table
tr
td
.today
[
disabled
],
.datetimepicker
table
tr
td
.today
:hover
[
disabled
],
.datetimepicker
table
tr
td
.today.disabled
[
disabled
],
.datetimepicker
table
tr
td
.today.disabled
:hover
[
disabled
]
{
background-color
:
#fdf59a
}
.datetimepicker
table
tr
td
.today
:active
,
.datetimepicker
table
tr
td
.today
:hover:active
,
.datetimepicker
table
tr
td
.today.disabled
:active
,
.datetimepicker
table
tr
td
.today.disabled
:hover:active
,
.datetimepicker
table
tr
td
.today.active
,
.datetimepicker
table
tr
td
.today
:hover
.active
,
.datetimepicker
table
tr
td
.today.disabled.active
,
.datetimepicker
table
tr
td
.today.disabled
:hover
.active
{
background-color
:
#fbf069
}
.datetimepicker
table
tr
td
.active
,
.datetimepicker
table
tr
td
.active
:hover
,
.datetimepicker
table
tr
td
.active.disabled
,
.datetimepicker
table
tr
td
.active.disabled
:hover
{
background-color
:
#006dcc
;
background-image
:
-moz-linear-gradient
(
top
,
#08c
,
#04c
);
background-image
:
-ms-linear-gradient
(
top
,
#08c
,
#04c
);
background-image
:
-webkit-gradient
(
linear
,
0
0
,
0
100%
,
from
(
#08c
),
to
(
#04c
));
background-image
:
-webkit-linear-gradient
(
top
,
#08c
,
#04c
);
background-image
:
-o-linear-gradient
(
top
,
#08c
,
#04c
);
background-image
:
linear-gradient
(
to
bottom
,
#08c
,
#04c
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#0088cc'
,
endColorstr
=
'#0044cc'
,
GradientType
=
0
);
border-color
:
#04c
#04c
#002a80
;
border-color
:
rgba
(
0
,
0
,
0
,
0.1
)
rgba
(
0
,
0
,
0
,
0.1
)
rgba
(
0
,
0
,
0
,
0.25
);
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
enabled
=
false
);
color
:
#fff
;
text-shadow
:
0
-1px
0
rgba
(
0
,
0
,
0
,
0.25
)}
.datetimepicker
table
tr
td
.active
:hover
,
.datetimepicker
table
tr
td
.active
:hover:hover
,
.datetimepicker
table
tr
td
.active.disabled
:hover
,
.datetimepicker
table
tr
td
.active.disabled
:hover:hover
,
.datetimepicker
table
tr
td
.active
:active
,
.datetimepicker
table
tr
td
.active
:hover:active
,
.datetimepicker
table
tr
td
.active.disabled
:active
,
.datetimepicker
table
tr
td
.active.disabled
:hover:active
,
.datetimepicker
table
tr
td
.active.active
,
.datetimepicker
table
tr
td
.active
:hover
.active
,
.datetimepicker
table
tr
td
.active.disabled.active
,
.datetimepicker
table
tr
td
.active.disabled
:hover
.active
,
.datetimepicker
table
tr
td
.active.disabled
,
.datetimepicker
table
tr
td
.active
:hover
.disabled
,
.datetimepicker
table
tr
td
.active.disabled.disabled
,
.datetimepicker
table
tr
td
.active.disabled
:hover
.disabled
,
.datetimepicker
table
tr
td
.active
[
disabled
],
.datetimepicker
table
tr
td
.active
:hover
[
disabled
],
.datetimepicker
table
tr
td
.active.disabled
[
disabled
],
.datetimepicker
table
tr
td
.active.disabled
:hover
[
disabled
]
{
background-color
:
#04c
}
.datetimepicker
table
tr
td
.active
:active
,
.datetimepicker
table
tr
td
.active
:hover:active
,
.datetimepicker
table
tr
td
.active.disabled
:active
,
.datetimepicker
table
tr
td
.active.disabled
:hover:active
,
.datetimepicker
table
tr
td
.active.active
,
.datetimepicker
table
tr
td
.active
:hover
.active
,
.datetimepicker
table
tr
td
.active.disabled.active
,
.datetimepicker
table
tr
td
.active.disabled
:hover
.active
{
background-color
:
#039
}
.datetimepicker
table
tr
td
span
{
display
:
block
;
width
:
23%
;
height
:
54px
;
line-height
:
54px
;
float
:
left
;
margin
:
1%
;
cursor
:
pointer
;
-webkit-border-radius
:
4px
;
-moz-border-radius
:
4px
;
border-radius
:
4px
}
.datetimepicker
.datetimepicker-hours
span
{
height
:
26px
;
line-height
:
26px
}
.datetimepicker
.datetimepicker-hours
table
tr
td
span
.hour_am
,
.datetimepicker
.datetimepicker-hours
table
tr
td
span
.hour_pm
{
width
:
14.6%
}
.datetimepicker
.datetimepicker-hours
fieldset
legend
,
.datetimepicker
.datetimepicker-minutes
fieldset
legend
{
margin-bottom
:
inherit
;
line-height
:
30px
}
.datetimepicker
.datetimepicker-minutes
span
{
height
:
26px
;
line-height
:
26px
}
.datetimepicker
table
tr
td
span
:hover
{
background
:
#eee
}
.datetimepicker
table
tr
td
span
.disabled
,
.datetimepicker
table
tr
td
span
.disabled
:hover
{
background
:
0
;
color
:
#999
;
cursor
:
default
}
.datetimepicker
table
tr
td
span
.active
,
.datetimepicker
table
tr
td
span
.active
:hover
,
.datetimepicker
table
tr
td
span
.active.disabled
,
.datetimepicker
table
tr
td
span
.active.disabled
:hover
{
background-color
:
#006dcc
;
background-image
:
-moz-linear-gradient
(
top
,
#08c
,
#04c
);
background-image
:
-ms-linear-gradient
(
top
,
#08c
,
#04c
);
background-image
:
-webkit-gradient
(
linear
,
0
0
,
0
100%
,
from
(
#08c
),
to
(
#04c
));
background-image
:
-webkit-linear-gradient
(
top
,
#08c
,
#04c
);
background-image
:
-o-linear-gradient
(
top
,
#08c
,
#04c
);
background-image
:
linear-gradient
(
to
bottom
,
#08c
,
#04c
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#0088cc'
,
endColorstr
=
'#0044cc'
,
GradientType
=
0
);
border-color
:
#04c
#04c
#002a80
;
border-color
:
rgba
(
0
,
0
,
0
,
0.1
)
rgba
(
0
,
0
,
0
,
0.1
)
rgba
(
0
,
0
,
0
,
0.25
);
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
enabled
=
false
);
color
:
#fff
;
text-shadow
:
0
-1px
0
rgba
(
0
,
0
,
0
,
0.25
)}
.datetimepicker
table
tr
td
span
.active
:hover
,
.datetimepicker
table
tr
td
span
.active
:hover:hover
,
.datetimepicker
table
tr
td
span
.active.disabled
:hover
,
.datetimepicker
table
tr
td
span
.active.disabled
:hover:hover
,
.datetimepicker
table
tr
td
span
.active
:active
,
.datetimepicker
table
tr
td
span
.active
:hover:active
,
.datetimepicker
table
tr
td
span
.active.disabled
:active
,
.datetimepicker
table
tr
td
span
.active.disabled
:hover:active
,
.datetimepicker
table
tr
td
span
.active.active
,
.datetimepicker
table
tr
td
span
.active
:hover
.active
,
.datetimepicker
table
tr
td
span
.active.disabled.active
,
.datetimepicker
table
tr
td
span
.active.disabled
:hover
.active
,
.datetimepicker
table
tr
td
span
.active.disabled
,
.datetimepicker
table
tr
td
span
.active
:hover
.disabled
,
.datetimepicker
table
tr
td
span
.active.disabled.disabled
,
.datetimepicker
table
tr
td
span
.active.disabled
:hover
.disabled
,
.datetimepicker
table
tr
td
span
.active
[
disabled
],
.datetimepicker
table
tr
td
span
.active
:hover
[
disabled
],
.datetimepicker
table
tr
td
span
.active.disabled
[
disabled
],
.datetimepicker
table
tr
td
span
.active.disabled
:hover
[
disabled
]
{
background-color
:
#04c
}
.datetimepicker
table
tr
td
span
.active
:active
,
.datetimepicker
table
tr
td
span
.active
:hover:active
,
.datetimepicker
table
tr
td
span
.active.disabled
:active
,
.datetimepicker
table
tr
td
span
.active.disabled
:hover:active
,
.datetimepicker
table
tr
td
span
.active.active
,
.datetimepicker
table
tr
td
span
.active
:hover
.active
,
.datetimepicker
table
tr
td
span
.active.disabled.active
,
.datetimepicker
table
tr
td
span
.active.disabled
:hover
.active
{
background-color
:
#039
}
.datetimepicker
table
tr
td
span
.old
{
color
:
#999
}
.datetimepicker
th
.switch
{
width
:
145px
}
.datetimepicker
th
span
.glyphicon
{
pointer-events
:
none
}
.datetimepicker
thead
tr
:first-child
th
,
.datetimepicker
tfoot
th
{
cursor
:
pointer
}
.datetimepicker
thead
tr
:first-child
th
:hover
,
.datetimepicker
tfoot
th
:hover
{
background
:
#eee
}
.input-append.date
.add-on
i
,
.input-prepend.date
.add-on
i
,
.input-group.date
.input-group-addon
span
{
cursor
:
pointer
;
width
:
14px
;
height
:
14px
}
\ No newline at end of file
public/resource/css/bootstrap-theme.min.css
0 → 100644
View file @
e2bd8d3f
.btn-default
,
.btn-primary
,
.btn-success
,
.btn-info
,
.btn-warning
,
.btn-danger
{
text-shadow
:
0
-1px
0
rgba
(
0
,
0
,
0
,
0.2
);
-webkit-box-shadow
:
inset
0
1px
0
rgba
(
255
,
255
,
255
,
0.15
),
0
1px
1px
rgba
(
0
,
0
,
0
,
0.075
);
box-shadow
:
inset
0
1px
0
rgba
(
255
,
255
,
255
,
0.15
),
0
1px
1px
rgba
(
0
,
0
,
0
,
0.075
)}
.btn-default
:active
,
.btn-primary
:active
,
.btn-success
:active
,
.btn-info
:active
,
.btn-warning
:active
,
.btn-danger
:active
,
.btn-default.active
,
.btn-primary.active
,
.btn-success.active
,
.btn-info.active
,
.btn-warning.active
,
.btn-danger.active
{
-webkit-box-shadow
:
inset
0
3px
5px
rgba
(
0
,
0
,
0
,
0.125
);
box-shadow
:
inset
0
3px
5px
rgba
(
0
,
0
,
0
,
0.125
)}
.btn
:active
,
.btn.active
{
background-image
:
none
}
.btn-default
{
text-shadow
:
0
1px
0
#fff
;
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#fff
),
to
(
#e6e6e6
));
background-image
:
-webkit-linear-gradient
(
top
,
#fff
,
0%
,
#e6e6e6
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#fff
0
,
#e6e6e6
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#fff
0
,
#e6e6e6
100%
);
background-repeat
:
repeat-x
;
border-color
:
#e0e0e0
;
border-color
:
#ccc
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ffffffff'
,
endColorstr
=
'#ffe6e6e6'
,
GradientType
=
0
)}
.btn-default
:active
,
.btn-default.active
{
background-color
:
#e6e6e6
;
border-color
:
#e0e0e0
}
.btn-primary
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#428bca
),
to
(
#3071a9
));
background-image
:
-webkit-linear-gradient
(
top
,
#428bca
,
0%
,
#3071a9
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#428bca
0
,
#3071a9
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#428bca
0
,
#3071a9
100%
);
background-repeat
:
repeat-x
;
border-color
:
#2d6ca2
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ff428bca'
,
endColorstr
=
'#ff3071a9'
,
GradientType
=
0
)}
.btn-primary
:active
,
.btn-primary.active
{
background-color
:
#3071a9
;
border-color
:
#2d6ca2
}
.btn-success
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#5cb85c
),
to
(
#449d44
));
background-image
:
-webkit-linear-gradient
(
top
,
#5cb85c
,
0%
,
#449d44
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#5cb85c
0
,
#449d44
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#5cb85c
0
,
#449d44
100%
);
background-repeat
:
repeat-x
;
border-color
:
#419641
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ff5cb85c'
,
endColorstr
=
'#ff449d44'
,
GradientType
=
0
)}
.btn-success
:active
,
.btn-success.active
{
background-color
:
#449d44
;
border-color
:
#419641
}
.btn-warning
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#f0ad4e
),
to
(
#ec971f
));
background-image
:
-webkit-linear-gradient
(
top
,
#f0ad4e
,
0%
,
#ec971f
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#f0ad4e
0
,
#ec971f
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#f0ad4e
0
,
#ec971f
100%
);
background-repeat
:
repeat-x
;
border-color
:
#eb9316
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#fff0ad4e'
,
endColorstr
=
'#ffec971f'
,
GradientType
=
0
)}
.btn-warning
:active
,
.btn-warning.active
{
background-color
:
#ec971f
;
border-color
:
#eb9316
}
.btn-danger
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#d9534f
),
to
(
#c9302c
));
background-image
:
-webkit-linear-gradient
(
top
,
#d9534f
,
0%
,
#c9302c
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#d9534f
0
,
#c9302c
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#d9534f
0
,
#c9302c
100%
);
background-repeat
:
repeat-x
;
border-color
:
#c12e2a
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ffd9534f'
,
endColorstr
=
'#ffc9302c'
,
GradientType
=
0
)}
.btn-danger
:active
,
.btn-danger.active
{
background-color
:
#c9302c
;
border-color
:
#c12e2a
}
.btn-info
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#5bc0de
),
to
(
#31b0d5
));
background-image
:
-webkit-linear-gradient
(
top
,
#5bc0de
,
0%
,
#31b0d5
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#5bc0de
0
,
#31b0d5
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#5bc0de
0
,
#31b0d5
100%
);
background-repeat
:
repeat-x
;
border-color
:
#2aabd2
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ff5bc0de'
,
endColorstr
=
'#ff31b0d5'
,
GradientType
=
0
)}
.btn-info
:active
,
.btn-info.active
{
background-color
:
#31b0d5
;
border-color
:
#2aabd2
}
.thumbnail
,
.img-thumbnail
{
-webkit-box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.075
);
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.075
)}
.dropdown-menu
>
li
>
a
:hover
,
.dropdown-menu
>
li
>
a
:focus
,
.dropdown-menu
>
.active
>
a
,
.dropdown-menu
>
.active
>
a
:hover
,
.dropdown-menu
>
.active
>
a
:focus
{
background-color
:
#357ebd
;
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#428bca
),
to
(
#357ebd
));
background-image
:
-webkit-linear-gradient
(
top
,
#428bca
,
0%
,
#357ebd
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#428bca
0
,
#357ebd
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#428bca
0
,
#357ebd
100%
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ff428bca'
,
endColorstr
=
'#ff357ebd'
,
GradientType
=
0
)}
.navbar
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#fff
),
to
(
#f8f8f8
));
background-image
:
-webkit-linear-gradient
(
top
,
#fff
,
0%
,
#f8f8f8
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#fff
0
,
#f8f8f8
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#fff
0
,
#f8f8f8
100%
);
background-repeat
:
repeat-x
;
border-radius
:
4px
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ffffffff'
,
endColorstr
=
'#fff8f8f8'
,
GradientType
=
0
);
-webkit-box-shadow
:
inset
0
1px
0
rgba
(
255
,
255
,
255
,
0.15
),
0
1px
5px
rgba
(
0
,
0
,
0
,
0.075
);
box-shadow
:
inset
0
1px
0
rgba
(
255
,
255
,
255
,
0.15
),
0
1px
5px
rgba
(
0
,
0
,
0
,
0.075
)}
.navbar
.navbar-nav
>
.active
>
a
{
background-color
:
#f8f8f8
}
.navbar-brand
,
.navbar-nav
>
li
>
a
{
text-shadow
:
0
1px
0
rgba
(
255
,
255
,
255
,
0.25
)}
.navbar-inverse
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#3c3c3c
),
to
(
#222
));
background-image
:
-webkit-linear-gradient
(
top
,
#3c3c3c
,
0%
,
#222
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#3c3c3c
0
,
#222
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#3c3c3c
0
,
#222
100%
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ff3c3c3c'
,
endColorstr
=
'#ff222222'
,
GradientType
=
0
)}
.navbar-inverse
.navbar-nav
>
.active
>
a
{
background-color
:
#222
}
.navbar-inverse
.navbar-brand
,
.navbar-inverse
.navbar-nav
>
li
>
a
{
text-shadow
:
0
-1px
0
rgba
(
0
,
0
,
0
,
0.25
)}
.navbar-static-top
,
.navbar-fixed-top
,
.navbar-fixed-bottom
{
border-radius
:
0
}
.alert
{
text-shadow
:
0
1px
0
rgba
(
255
,
255
,
255
,
0.2
);
-webkit-box-shadow
:
inset
0
1px
0
rgba
(
255
,
255
,
255
,
0.25
),
0
1px
2px
rgba
(
0
,
0
,
0
,
0.05
);
box-shadow
:
inset
0
1px
0
rgba
(
255
,
255
,
255
,
0.25
),
0
1px
2px
rgba
(
0
,
0
,
0
,
0.05
)}
.alert-success
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#dff0d8
),
to
(
#c8e5bc
));
background-image
:
-webkit-linear-gradient
(
top
,
#dff0d8
,
0%
,
#c8e5bc
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#dff0d8
0
,
#c8e5bc
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#dff0d8
0
,
#c8e5bc
100%
);
background-repeat
:
repeat-x
;
border-color
:
#b2dba1
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ffdff0d8'
,
endColorstr
=
'#ffc8e5bc'
,
GradientType
=
0
)}
.alert-info
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#d9edf7
),
to
(
#b9def0
));
background-image
:
-webkit-linear-gradient
(
top
,
#d9edf7
,
0%
,
#b9def0
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#d9edf7
0
,
#b9def0
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#d9edf7
0
,
#b9def0
100%
);
background-repeat
:
repeat-x
;
border-color
:
#9acfea
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ffd9edf7'
,
endColorstr
=
'#ffb9def0'
,
GradientType
=
0
)}
.alert-warning
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#fcf8e3
),
to
(
#f8efc0
));
background-image
:
-webkit-linear-gradient
(
top
,
#fcf8e3
,
0%
,
#f8efc0
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#fcf8e3
0
,
#f8efc0
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#fcf8e3
0
,
#f8efc0
100%
);
background-repeat
:
repeat-x
;
border-color
:
#f5e79e
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#fffcf8e3'
,
endColorstr
=
'#fff8efc0'
,
GradientType
=
0
)}
.alert-danger
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#f2dede
),
to
(
#e7c3c3
));
background-image
:
-webkit-linear-gradient
(
top
,
#f2dede
,
0%
,
#e7c3c3
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#f2dede
0
,
#e7c3c3
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#f2dede
0
,
#e7c3c3
100%
);
background-repeat
:
repeat-x
;
border-color
:
#dca7a7
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#fff2dede'
,
endColorstr
=
'#ffe7c3c3'
,
GradientType
=
0
)}
.progress
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#ebebeb
),
to
(
#f5f5f5
));
background-image
:
-webkit-linear-gradient
(
top
,
#ebebeb
,
0%
,
#f5f5f5
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#ebebeb
0
,
#f5f5f5
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#ebebeb
0
,
#f5f5f5
100%
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ffebebeb'
,
endColorstr
=
'#fff5f5f5'
,
GradientType
=
0
)}
.progress-bar
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#428bca
),
to
(
#3071a9
));
background-image
:
-webkit-linear-gradient
(
top
,
#428bca
,
0%
,
#3071a9
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#428bca
0
,
#3071a9
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#428bca
0
,
#3071a9
100%
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ff428bca'
,
endColorstr
=
'#ff3071a9'
,
GradientType
=
0
)}
.progress-bar-success
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#5cb85c
),
to
(
#449d44
));
background-image
:
-webkit-linear-gradient
(
top
,
#5cb85c
,
0%
,
#449d44
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#5cb85c
0
,
#449d44
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#5cb85c
0
,
#449d44
100%
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ff5cb85c'
,
endColorstr
=
'#ff449d44'
,
GradientType
=
0
)}
.progress-bar-info
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#5bc0de
),
to
(
#31b0d5
));
background-image
:
-webkit-linear-gradient
(
top
,
#5bc0de
,
0%
,
#31b0d5
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#5bc0de
0
,
#31b0d5
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#5bc0de
0
,
#31b0d5
100%
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ff5bc0de'
,
endColorstr
=
'#ff31b0d5'
,
GradientType
=
0
)}
.progress-bar-warning
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#f0ad4e
),
to
(
#ec971f
));
background-image
:
-webkit-linear-gradient
(
top
,
#f0ad4e
,
0%
,
#ec971f
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#f0ad4e
0
,
#ec971f
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#f0ad4e
0
,
#ec971f
100%
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#fff0ad4e'
,
endColorstr
=
'#ffec971f'
,
GradientType
=
0
)}
.progress-bar-danger
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#d9534f
),
to
(
#c9302c
));
background-image
:
-webkit-linear-gradient
(
top
,
#d9534f
,
0%
,
#c9302c
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#d9534f
0
,
#c9302c
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#d9534f
0
,
#c9302c
100%
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ffd9534f'
,
endColorstr
=
'#ffc9302c'
,
GradientType
=
0
)}
.list-group
{
border-radius
:
4px
;
-webkit-box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.075
);
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.075
)}
.list-group-item.active
,
.list-group-item.active
:hover
,
.list-group-item.active
:focus
{
text-shadow
:
0
-1px
0
#3071a9
;
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#428bca
),
to
(
#3278b3
));
background-image
:
-webkit-linear-gradient
(
top
,
#428bca
,
0%
,
#3278b3
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#428bca
0
,
#3278b3
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#428bca
0
,
#3278b3
100%
);
background-repeat
:
repeat-x
;
border-color
:
#3278b3
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ff428bca'
,
endColorstr
=
'#ff3278b3'
,
GradientType
=
0
)}
.panel
{
-webkit-box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.05
);
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.05
)}
.panel-default
>
.panel-heading
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#f5f5f5
),
to
(
#e8e8e8
));
background-image
:
-webkit-linear-gradient
(
top
,
#f5f5f5
,
0%
,
#e8e8e8
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#f5f5f5
0
,
#e8e8e8
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#f5f5f5
0
,
#e8e8e8
100%
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#fff5f5f5'
,
endColorstr
=
'#ffe8e8e8'
,
GradientType
=
0
)}
.panel-primary
>
.panel-heading
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#428bca
),
to
(
#357ebd
));
background-image
:
-webkit-linear-gradient
(
top
,
#428bca
,
0%
,
#357ebd
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#428bca
0
,
#357ebd
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#428bca
0
,
#357ebd
100%
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ff428bca'
,
endColorstr
=
'#ff357ebd'
,
GradientType
=
0
)}
.panel-success
>
.panel-heading
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#dff0d8
),
to
(
#d0e9c6
));
background-image
:
-webkit-linear-gradient
(
top
,
#dff0d8
,
0%
,
#d0e9c6
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#dff0d8
0
,
#d0e9c6
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#dff0d8
0
,
#d0e9c6
100%
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ffdff0d8'
,
endColorstr
=
'#ffd0e9c6'
,
GradientType
=
0
)}
.panel-info
>
.panel-heading
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#d9edf7
),
to
(
#c4e3f3
));
background-image
:
-webkit-linear-gradient
(
top
,
#d9edf7
,
0%
,
#c4e3f3
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#d9edf7
0
,
#c4e3f3
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#d9edf7
0
,
#c4e3f3
100%
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ffd9edf7'
,
endColorstr
=
'#ffc4e3f3'
,
GradientType
=
0
)}
.panel-warning
>
.panel-heading
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#fcf8e3
),
to
(
#faf2cc
));
background-image
:
-webkit-linear-gradient
(
top
,
#fcf8e3
,
0%
,
#faf2cc
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#fcf8e3
0
,
#faf2cc
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#fcf8e3
0
,
#faf2cc
100%
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#fffcf8e3'
,
endColorstr
=
'#fffaf2cc'
,
GradientType
=
0
)}
.panel-danger
>
.panel-heading
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#f2dede
),
to
(
#ebcccc
));
background-image
:
-webkit-linear-gradient
(
top
,
#f2dede
,
0%
,
#ebcccc
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#f2dede
0
,
#ebcccc
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#f2dede
0
,
#ebcccc
100%
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#fff2dede'
,
endColorstr
=
'#ffebcccc'
,
GradientType
=
0
)}
.well
{
background-image
:
-webkit-gradient
(
linear
,
left
0
,
left
100%
,
from
(
#e8e8e8
),
to
(
#f5f5f5
));
background-image
:
-webkit-linear-gradient
(
top
,
#e8e8e8
,
0%
,
#f5f5f5
,
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#e8e8e8
0
,
#f5f5f5
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#e8e8e8
0
,
#f5f5f5
100%
);
background-repeat
:
repeat-x
;
border-color
:
#dcdcdc
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ffe8e8e8'
,
endColorstr
=
'#fff5f5f5'
,
GradientType
=
0
);
-webkit-box-shadow
:
inset
0
1px
3px
rgba
(
0
,
0
,
0
,
0.05
),
0
1px
0
rgba
(
255
,
255
,
255
,
0.1
);
box-shadow
:
inset
0
1px
3px
rgba
(
0
,
0
,
0
,
0.05
),
0
1px
0
rgba
(
255
,
255
,
255
,
0.1
)}
\ No newline at end of file
public/resource/js/banner.js
View file @
e2bd8d3f
/**
* Created by zw on 2017/12/15.
*/
define
([
'doT'
,
'text!temp/banner_template_tpl.html'
,
'ckfinder'
,
'ckfinderStart'
,
'css!style/home.css'
,
'bootstrapJs'
,
'pagination'
],
function
(
doT
,
template
)
{
define
([
'doT'
,
'text!temp/banner_template_tpl.html'
,
'ckfinder'
,
'ckfinderStart'
,
'css!style/home.css'
],
function
(
doT
,
template
)
{
var
banner
=
{
pageNo
:
1
,
/*第几页*/
pageSize
:
15
,
/*每页显示多少条*/
...
...
public/resource/js/main.js
View file @
e2bd8d3f
...
...
@@ -14,6 +14,7 @@ require.config ({
'bootstrapJs'
:
'lib/js/bootstrap.min'
,
'datetimepicker'
:
'lib/js/bootstrap-datetimepicker.min'
,
'pagination'
:
'lib/js/pagination'
,
'paginationStart'
:
'lib/js/zw.pagination'
,
},
'shim'
:
{
'jquery'
:
{
...
...
@@ -47,4 +48,4 @@ require.config ({
}
});
require
([
'require'
,
'jquery'
,
'doT'
,
'app/public'
]);
require
([
'require'
,
'jquery'
,
'doT'
,
'app/public'
,
"datetimepicker"
,
'pagination'
,
'bootstrapJs'
,
"paginationStart"
]);
public/resource/js/transfer.js
View file @
e2bd8d3f
define
([
'doT'
,
'text!temp/transfer_template_tpl.html'
,
'css!style/home.css'
,
"datetimepicker"
,
'pagination'
,
'bootstrapJs'
],
function
(
doT
,
template
)
{
define
([
'doT'
,
'text!temp/transfer_template_tpl.html'
,
'css!style/home.css'
],
function
(
doT
,
template
)
{
user
=
{
pageNo
:
1
,
/*第几页*/
pageSize
:
10
,
/*每页显示多少条*/
urls
:
''
,
init
:
function
()
{
;(
function
(
$
){
$
.
fn
.
datetimepicker
.
dates
[
'zh-CN'
]
=
{
days
:
[
"星期日"
,
"星期一"
,
"星期二"
,
"星期三"
,
"星期四"
,
"星期五"
,
"星期六"
,
"星期日"
],
daysShort
:
[
"周日"
,
"周一"
,
"周二"
,
"周三"
,
"周四"
,
"周五"
,
"周六"
,
"周日"
],
daysMin
:
[
"日"
,
"一"
,
"二"
,
"三"
,
"四"
,
"五"
,
"六"
,
"日"
],
months
:
[
"01"
,
"02"
,
"03"
,
"04"
,
"05"
,
"06"
,
"07"
,
"08"
,
"09"
,
"10"
,
"11"
,
"12"
],
monthsShort
:
[
"01"
,
"02"
,
"03"
,
"04"
,
"05"
,
"06"
,
"07"
,
"08"
,
"09"
,
"10"
,
"11"
,
"12"
],
today
:
"今日"
,
suffix
:
[],
meridiem
:
[
"am"
,
"pm"
],
weekStart
:
1
,
};
}(
jQuery
));
$
(
'.form_datetime'
).
datetimepicker
({
//language: 'fr',
weekStart
:
1
,
todayBtn
:
1
,
autoclose
:
1
,
todayHighlight
:
1
,
startView
:
2
,
forceParse
:
0
,
showMeridian
:
1
});
$
(
'.form_date'
).
datetimepicker
({
language
:
'zh-CN'
,
weekStart
:
1
,
todayBtn
:
1
,
autoclose
:
1
,
todayHighlight
:
1
,
startView
:
2
,
minView
:
2
,
forceParse
:
0
});
$
(
'.form_time'
).
datetimepicker
({
language
:
'zh-CN'
,
weekStart
:
1
,
todayBtn
:
1
,
autoclose
:
1
,
todayHighlight
:
1
,
startView
:
1
,
minView
:
0
,
maxView
:
1
,
forceParse
:
0
});
//初始化dot
$
(
"body"
).
append
(
template
);
user
.
getList
();
...
...
@@ -53,14 +101,16 @@ define (['doT', 'text!temp/transfer_template_tpl.html', 'css!style/home.css',"da
$
(
"#sublet_list"
).
html
(
doTtmpl
(
data
.
data
.
list
));
/*分页代码*/
$
(
"#pagediv"
).
pagination
({
/*
$ ("#pagediv").pagination ({
length: data.data.total,
current: pageNo,
coping:true,
every: user.pageSize,
onClick: function (el) {
user.getList (el.num.current);
}
});
});*/
addpage
(
user
.
getList
);
}
});
},
...
...
public/resource/lib/js/bootstrap-datetimepicker.min.js
View file @
e2bd8d3f
/**
* @license
* =========================================================
* bootstrap-datetimepicker.js
* http://www.eyecon.ro/bootstrap-datepicker
* =========================================================
* Copyright 2012 Stefan Petre
*
* Contributions:
* - Andrew Rowls
* - Thiago de Arruda
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* =========================================================
*/
(
function
(
$
){
var
smartPhone
=
window
.
orientation
!=
undefined
;
var
DateTimePicker
=
function
(
element
,
options
){
this
.
id
=
dpgId
++
;
this
.
init
(
element
,
options
)};
var
dateToDate
=
function
(
dt
){
if
(
typeof
dt
===
"string"
){
return
new
Date
(
dt
)}
return
dt
};
DateTimePicker
.
prototype
=
{
constructor
:
DateTimePicker
,
init
:
function
(
element
,
options
){
var
icon
;
if
(
!
(
options
.
pickTime
||
options
.
pickDate
))
throw
new
Error
(
"Must choose at least one picker"
);
this
.
options
=
options
;
this
.
$element
=
$
(
element
);
this
.
language
=
options
.
language
in
dates
?
options
.
language
:
"en"
;
this
.
pickDate
=
options
.
pickDate
;
this
.
pickTime
=
options
.
pickTime
;
this
.
isInput
=
this
.
$element
.
is
(
"input"
);
this
.
component
=
false
;
if
(
this
.
$element
.
find
(
".input-append"
)
||
this
.
$element
.
find
(
".input-prepend"
))
this
.
component
=
this
.
$element
.
find
(
".add-on"
);
this
.
format
=
options
.
format
;
if
(
!
this
.
format
){
if
(
this
.
isInput
)
this
.
format
=
this
.
$element
.
data
(
"format"
);
else
this
.
format
=
this
.
$element
.
find
(
"input"
).
data
(
"format"
);
if
(
!
this
.
format
)
this
.
format
=
"MM/dd/yyyy"
}
this
.
_compileFormat
();
if
(
this
.
component
){
icon
=
this
.
component
.
find
(
"i"
)}
if
(
this
.
pickTime
){
if
(
icon
&&
icon
.
length
)
this
.
timeIcon
=
icon
.
data
(
"time-icon"
);
if
(
!
this
.
timeIcon
)
this
.
timeIcon
=
"icon-time"
;
icon
.
addClass
(
this
.
timeIcon
)}
if
(
this
.
pickDate
){
if
(
icon
&&
icon
.
length
)
this
.
dateIcon
=
icon
.
data
(
"date-icon"
);
if
(
!
this
.
dateIcon
)
this
.
dateIcon
=
"icon-calendar"
;
icon
.
removeClass
(
this
.
timeIcon
);
icon
.
addClass
(
this
.
dateIcon
)}
this
.
widget
=
$
(
getTemplate
(
this
.
timeIcon
,
options
.
pickDate
,
options
.
pickTime
,
options
.
pick12HourFormat
,
options
.
pickSeconds
,
options
.
collapse
)).
appendTo
(
"body"
);
this
.
minViewMode
=
options
.
minViewMode
||
this
.
$element
.
data
(
"date-minviewmode"
)
||
0
;
if
(
typeof
this
.
minViewMode
===
"string"
){
switch
(
this
.
minViewMode
){
case
"months"
:
this
.
minViewMode
=
1
;
break
;
case
"years"
:
this
.
minViewMode
=
2
;
break
;
default
:
this
.
minViewMode
=
0
;
break
}}
this
.
viewMode
=
options
.
viewMode
||
this
.
$element
.
data
(
"date-viewmode"
)
||
0
;
if
(
typeof
this
.
viewMode
===
"string"
){
switch
(
this
.
viewMode
){
case
"months"
:
this
.
viewMode
=
1
;
break
;
case
"years"
:
this
.
viewMode
=
2
;
break
;
default
:
this
.
viewMode
=
0
;
break
}}
this
.
startViewMode
=
this
.
viewMode
;
this
.
weekStart
=
options
.
weekStart
||
this
.
$element
.
data
(
"date-weekstart"
)
||
0
;
this
.
weekEnd
=
this
.
weekStart
===
0
?
6
:
this
.
weekStart
-
1
;
this
.
setStartDate
(
options
.
startDate
||
this
.
$element
.
data
(
"date-startdate"
));
this
.
setEndDate
(
options
.
endDate
||
this
.
$element
.
data
(
"date-enddate"
));
this
.
fillDow
();
this
.
fillMonths
();
this
.
fillHours
();
this
.
fillMinutes
();
this
.
fillSeconds
();
this
.
update
();
this
.
showMode
();
this
.
_attachDatePickerEvents
()},
show
:
function
(
e
){
this
.
widget
.
show
();
this
.
height
=
this
.
component
?
this
.
component
.
outerHeight
():
this
.
$element
.
outerHeight
();
this
.
place
();
this
.
$element
.
trigger
({
type
:
"show"
,
date
:
this
.
_date
});
this
.
_attachDatePickerGlobalEvents
();
if
(
e
){
e
.
stopPropagation
();
e
.
preventDefault
()}},
disable
:
function
(){
this
.
$element
.
find
(
"input"
).
prop
(
"disabled"
,
true
);
this
.
_detachDatePickerEvents
()},
enable
:
function
(){
this
.
$element
.
find
(
"input"
).
prop
(
"disabled"
,
false
);
this
.
_attachDatePickerEvents
()},
hide
:
function
(){
var
collapse
=
this
.
widget
.
find
(
".collapse"
);
for
(
var
i
=
0
;
i
<
collapse
.
length
;
i
++
){
var
collapseData
=
collapse
.
eq
(
i
).
data
(
"collapse"
);
if
(
collapseData
&&
collapseData
.
transitioning
)
return
}
this
.
widget
.
hide
();
this
.
viewMode
=
this
.
startViewMode
;
this
.
showMode
();
this
.
set
();
this
.
$element
.
trigger
({
type
:
"hide"
,
date
:
this
.
_date
});
this
.
_detachDatePickerGlobalEvents
()},
set
:
function
(){
var
formatted
=
""
;
if
(
!
this
.
_unset
)
formatted
=
this
.
formatDate
(
this
.
_date
);
if
(
!
this
.
isInput
){
if
(
this
.
component
){
var
input
=
this
.
$element
.
find
(
"input"
);
input
.
val
(
formatted
);
this
.
_resetMaskPos
(
input
)}
this
.
$element
.
data
(
"date"
,
formatted
)}
else
{
this
.
$element
.
val
(
formatted
);
this
.
_resetMaskPos
(
this
.
$element
)}},
setValue
:
function
(
newDate
){
if
(
!
newDate
){
this
.
_unset
=
true
}
else
{
this
.
_unset
=
false
}
if
(
typeof
newDate
===
"string"
){
this
.
_date
=
this
.
parseDate
(
newDate
)}
else
if
(
newDate
){
this
.
_date
=
new
Date
(
newDate
)}
this
.
set
();
this
.
viewDate
=
UTCDate
(
this
.
_date
.
getUTCFullYear
(),
this
.
_date
.
getUTCMonth
(),
1
,
0
,
0
,
0
,
0
);
this
.
fillDate
();
this
.
fillTime
()},
getDate
:
function
(){
if
(
this
.
_unset
)
return
null
;
return
new
Date
(
this
.
_date
.
valueOf
())},
setDate
:
function
(
date
){
if
(
!
date
)
this
.
setValue
(
null
);
else
this
.
setValue
(
date
.
valueOf
())},
setStartDate
:
function
(
date
){
if
(
date
instanceof
Date
){
this
.
startDate
=
date
}
else
if
(
typeof
date
===
"string"
){
this
.
startDate
=
new
UTCDate
(
date
);
if
(
!
this
.
startDate
.
getUTCFullYear
()){
this
.
startDate
=-
Infinity
}}
else
{
this
.
startDate
=-
Infinity
}
if
(
this
.
viewDate
){
this
.
update
()}},
setEndDate
:
function
(
date
){
if
(
date
instanceof
Date
){
this
.
endDate
=
date
}
else
if
(
typeof
date
===
"string"
){
this
.
endDate
=
new
UTCDate
(
date
);
if
(
!
this
.
endDate
.
getUTCFullYear
()){
this
.
endDate
=
Infinity
}}
else
{
this
.
endDate
=
Infinity
}
if
(
this
.
viewDate
){
this
.
update
()}},
getLocalDate
:
function
(){
if
(
this
.
_unset
)
return
null
;
var
d
=
this
.
_date
;
return
new
Date
(
d
.
getUTCFullYear
(),
d
.
getUTCMonth
(),
d
.
getUTCDate
(),
d
.
getUTCHours
(),
d
.
getUTCMinutes
(),
d
.
getUTCSeconds
(),
d
.
getUTCMilliseconds
())},
setLocalDate
:
function
(
localDate
){
if
(
!
localDate
)
this
.
setValue
(
null
);
else
this
.
setValue
(
Date
.
UTC
(
localDate
.
getFullYear
(),
localDate
.
getMonth
(),
localDate
.
getDate
(),
localDate
.
getHours
(),
localDate
.
getMinutes
(),
localDate
.
getSeconds
(),
localDate
.
getMilliseconds
()))},
place
:
function
(){
var
position
=
"absolute"
;
var
offset
=
this
.
component
?
this
.
component
.
offset
():
this
.
$element
.
offset
();
this
.
width
=
this
.
component
?
this
.
component
.
outerWidth
():
this
.
$element
.
outerWidth
();
offset
.
top
=
offset
.
top
+
this
.
height
;
var
$window
=
$
(
window
);
if
(
this
.
options
.
width
!=
undefined
){
this
.
widget
.
width
(
this
.
options
.
width
)}
if
(
this
.
options
.
orientation
==
"left"
){
this
.
widget
.
addClass
(
"left-oriented"
);
offset
.
left
=
offset
.
left
-
this
.
widget
.
width
()
+
20
}
if
(
this
.
_isInFixed
()){
position
=
"fixed"
;
offset
.
top
-=
$window
.
scrollTop
();
offset
.
left
-=
$window
.
scrollLeft
()}
if
(
$window
.
width
()
<
offset
.
left
+
this
.
widget
.
outerWidth
()){
offset
.
right
=
$window
.
width
()
-
offset
.
left
-
this
.
width
;
offset
.
left
=
"auto"
;
this
.
widget
.
addClass
(
"pull-right"
)}
else
{
offset
.
right
=
"auto"
;
this
.
widget
.
removeClass
(
"pull-right"
)}
this
.
widget
.
css
({
position
:
position
,
top
:
offset
.
top
,
left
:
offset
.
left
,
right
:
offset
.
right
})},
notifyChange
:
function
(){
this
.
$element
.
trigger
({
type
:
"changeDate"
,
date
:
this
.
getDate
(),
localDate
:
this
.
getLocalDate
()})},
update
:
function
(
newDate
){
var
dateStr
=
newDate
;
if
(
!
dateStr
){
if
(
this
.
isInput
){
dateStr
=
this
.
$element
.
val
()}
else
{
dateStr
=
this
.
$element
.
find
(
"input"
).
val
()}
if
(
dateStr
){
this
.
_date
=
this
.
parseDate
(
dateStr
)}
if
(
!
this
.
_date
){
var
tmp
=
new
Date
;
this
.
_date
=
UTCDate
(
tmp
.
getFullYear
(),
tmp
.
getMonth
(),
tmp
.
getDate
(),
tmp
.
getHours
(),
tmp
.
getMinutes
(),
tmp
.
getSeconds
(),
tmp
.
getMilliseconds
())}}
this
.
viewDate
=
UTCDate
(
this
.
_date
.
getUTCFullYear
(),
this
.
_date
.
getUTCMonth
(),
1
,
0
,
0
,
0
,
0
);
this
.
fillDate
();
this
.
fillTime
()},
fillDow
:
function
(){
var
dowCnt
=
this
.
weekStart
;
var
html
=
$
(
"<tr>"
);
while
(
dowCnt
<
this
.
weekStart
+
7
){
html
.
append
(
'<th class="dow">'
+
dates
[
this
.
language
].
daysMin
[
dowCnt
++%
7
]
+
"</th>"
)}
this
.
widget
.
find
(
".datepicker-days thead"
).
append
(
html
)},
fillMonths
:
function
(){
var
html
=
""
;
var
i
=
0
;
while
(
i
<
12
){
html
+=
'<span class="month">'
+
dates
[
this
.
language
].
monthsShort
[
i
++
]
+
"</span>"
}
this
.
widget
.
find
(
".datepicker-months td"
).
append
(
html
)},
fillDate
:
function
(){
var
year
=
this
.
viewDate
.
getUTCFullYear
();
var
month
=
this
.
viewDate
.
getUTCMonth
();
var
currentDate
=
UTCDate
(
this
.
_date
.
getUTCFullYear
(),
this
.
_date
.
getUTCMonth
(),
this
.
_date
.
getUTCDate
(),
0
,
0
,
0
,
0
);
var
startYear
=
typeof
this
.
startDate
===
"object"
?
this
.
startDate
.
getUTCFullYear
():
-
Infinity
;
var
startMonth
=
typeof
this
.
startDate
===
"object"
?
this
.
startDate
.
getUTCMonth
():
-
1
;
var
endYear
=
typeof
this
.
endDate
===
"object"
?
this
.
endDate
.
getUTCFullYear
():
Infinity
;
var
endMonth
=
typeof
this
.
endDate
===
"object"
?
this
.
endDate
.
getUTCMonth
():
12
;
this
.
widget
.
find
(
".datepicker-days"
).
find
(
".disabled"
).
removeClass
(
"disabled"
);
this
.
widget
.
find
(
".datepicker-months"
).
find
(
".disabled"
).
removeClass
(
"disabled"
);
this
.
widget
.
find
(
".datepicker-years"
).
find
(
".disabled"
).
removeClass
(
"disabled"
);
this
.
widget
.
find
(
".datepicker-days th:eq(1)"
).
text
(
dates
[
this
.
language
].
months
[
month
]
+
" "
+
year
);
var
prevMonth
=
UTCDate
(
year
,
month
-
1
,
28
,
0
,
0
,
0
,
0
);
var
day
=
DPGlobal
.
getDaysInMonth
(
prevMonth
.
getUTCFullYear
(),
prevMonth
.
getUTCMonth
());
prevMonth
.
setUTCDate
(
day
);
prevMonth
.
setUTCDate
(
day
-
(
prevMonth
.
getUTCDay
()
-
this
.
weekStart
+
7
)
%
7
);
if
(
year
==
startYear
&&
month
<=
startMonth
||
year
<
startYear
){
this
.
widget
.
find
(
".datepicker-days th:eq(0)"
).
addClass
(
"disabled"
)}
if
(
year
==
endYear
&&
month
>=
endMonth
||
year
>
endYear
){
this
.
widget
.
find
(
".datepicker-days th:eq(2)"
).
addClass
(
"disabled"
)}
var
nextMonth
=
new
Date
(
prevMonth
.
valueOf
());
nextMonth
.
setUTCDate
(
nextMonth
.
getUTCDate
()
+
42
);
nextMonth
=
nextMonth
.
valueOf
();
var
html
=
[];
var
row
;
var
clsName
;
while
(
prevMonth
.
valueOf
()
<
nextMonth
){
if
(
prevMonth
.
getUTCDay
()
===
this
.
weekStart
){
row
=
$
(
"<tr>"
);
html
.
push
(
row
)}
clsName
=
""
;
if
(
prevMonth
.
getUTCFullYear
()
<
year
||
prevMonth
.
getUTCFullYear
()
==
year
&&
prevMonth
.
getUTCMonth
()
<
month
){
clsName
+=
" old"
}
else
if
(
prevMonth
.
getUTCFullYear
()
>
year
||
prevMonth
.
getUTCFullYear
()
==
year
&&
prevMonth
.
getUTCMonth
()
>
month
){
clsName
+=
" new"
}
if
(
prevMonth
.
valueOf
()
===
currentDate
.
valueOf
()){
clsName
+=
" active"
}
if
(
prevMonth
.
valueOf
()
+
864
e5
<=
this
.
startDate
){
clsName
+=
" disabled"
}
if
(
prevMonth
.
valueOf
()
>
this
.
endDate
){
clsName
+=
" disabled"
}
row
.
append
(
'<td class="day'
+
clsName
+
'">'
+
prevMonth
.
getUTCDate
()
+
"</td>"
);
prevMonth
.
setUTCDate
(
prevMonth
.
getUTCDate
()
+
1
)}
this
.
widget
.
find
(
".datepicker-days tbody"
).
empty
().
append
(
html
);
var
currentYear
=
this
.
_date
.
getUTCFullYear
();
var
months
=
this
.
widget
.
find
(
".datepicker-months"
).
find
(
"th:eq(1)"
).
text
(
year
).
end
().
find
(
"span"
).
removeClass
(
"active"
);
if
(
currentYear
===
year
){
months
.
eq
(
this
.
_date
.
getUTCMonth
()).
addClass
(
"active"
)}
if
(
currentYear
-
1
<
startYear
){
this
.
widget
.
find
(
".datepicker-months th:eq(0)"
).
addClass
(
"disabled"
)}
if
(
currentYear
+
1
>
endYear
){
this
.
widget
.
find
(
".datepicker-months th:eq(2)"
).
addClass
(
"disabled"
)}
for
(
var
i
=
0
;
i
<
12
;
i
++
){
if
(
year
==
startYear
&&
startMonth
>
i
||
year
<
startYear
){
$
(
months
[
i
]).
addClass
(
"disabled"
)}
else
if
(
year
==
endYear
&&
endMonth
<
i
||
year
>
endYear
){
$
(
months
[
i
]).
addClass
(
"disabled"
)}}
html
=
""
;
year
=
parseInt
(
year
/
10
,
10
)
*
10
;
var
yearCont
=
this
.
widget
.
find
(
".datepicker-years"
).
find
(
"th:eq(1)"
).
text
(
year
+
"-"
+
(
year
+
9
)).
end
().
find
(
"td"
);
this
.
widget
.
find
(
".datepicker-years"
).
find
(
"th"
).
removeClass
(
"disabled"
);
if
(
startYear
>
year
){
this
.
widget
.
find
(
".datepicker-years"
).
find
(
"th:eq(0)"
).
addClass
(
"disabled"
)}
if
(
endYear
<
year
+
9
){
this
.
widget
.
find
(
".datepicker-years"
).
find
(
"th:eq(2)"
).
addClass
(
"disabled"
)}
year
-=
1
;
for
(
var
i
=-
1
;
i
<
11
;
i
++
){
html
+=
'<span class="year'
+
(
i
===-
1
||
i
===
10
?
" old"
:
""
)
+
(
currentYear
===
year
?
" active"
:
""
)
+
(
year
<
startYear
||
year
>
endYear
?
" disabled"
:
""
)
+
'">'
+
year
+
"</span>"
;
year
+=
1
}
yearCont
.
html
(
html
)},
fillHours
:
function
(){
var
table
=
this
.
widget
.
find
(
".timepicker .timepicker-hours table"
);
table
.
parent
().
hide
();
var
html
=
""
;
if
(
this
.
options
.
pick12HourFormat
){
var
current
=
1
;
for
(
var
i
=
0
;
i
<
3
;
i
+=
1
){
html
+=
"<tr>"
;
for
(
var
j
=
0
;
j
<
4
;
j
+=
1
){
var
c
=
current
.
toString
();
html
+=
'<td class="hour">'
+
padLeft
(
c
,
2
,
"0"
)
+
"</td>"
;
current
++
}
html
+=
"</tr>"
}}
else
{
var
current
=
0
;
for
(
var
i
=
0
;
i
<
6
;
i
+=
1
){
html
+=
"<tr>"
;
for
(
var
j
=
0
;
j
<
4
;
j
+=
1
){
var
c
=
current
.
toString
();
html
+=
'<td class="hour">'
+
padLeft
(
c
,
2
,
"0"
)
+
"</td>"
;
current
++
}
html
+=
"</tr>"
}}
table
.
html
(
html
)},
fillMinutes
:
function
(){
var
table
=
this
.
widget
.
find
(
".timepicker .timepicker-minutes table"
);
table
.
parent
().
hide
();
var
html
=
""
;
var
current
=
0
;
for
(
var
i
=
0
;
i
<
5
;
i
++
){
html
+=
"<tr>"
;
for
(
var
j
=
0
;
j
<
4
;
j
+=
1
){
var
c
=
current
.
toString
();
html
+=
'<td class="minute">'
+
padLeft
(
c
,
2
,
"0"
)
+
"</td>"
;
current
+=
3
}
html
+=
"</tr>"
}
table
.
html
(
html
)},
fillSeconds
:
function
(){
var
table
=
this
.
widget
.
find
(
".timepicker .timepicker-seconds table"
);
table
.
parent
().
hide
();
var
html
=
""
;
var
current
=
0
;
for
(
var
i
=
0
;
i
<
5
;
i
++
){
html
+=
"<tr>"
;
for
(
var
j
=
0
;
j
<
4
;
j
+=
1
){
var
c
=
current
.
toString
();
html
+=
'<td class="second">'
+
padLeft
(
c
,
2
,
"0"
)
+
"</td>"
;
current
+=
3
}
html
+=
"</tr>"
}
table
.
html
(
html
)},
fillTime
:
function
(){
if
(
!
this
.
_date
)
return
;
var
timeComponents
=
this
.
widget
.
find
(
".timepicker span[data-time-component]"
);
var
table
=
timeComponents
.
closest
(
"table"
);
var
is12HourFormat
=
this
.
options
.
pick12HourFormat
;
var
hour
=
this
.
_date
.
getUTCHours
();
var
period
=
"AM"
;
if
(
is12HourFormat
){
if
(
hour
>=
12
)
period
=
"PM"
;
if
(
hour
===
0
)
hour
=
12
;
else
if
(
hour
!=
12
)
hour
=
hour
%
12
;
this
.
widget
.
find
(
".timepicker [data-action=togglePeriod]"
).
text
(
period
)}
hour
=
padLeft
(
hour
.
toString
(),
2
,
"0"
);
var
minute
=
padLeft
(
this
.
_date
.
getUTCMinutes
().
toString
(),
2
,
"0"
);
var
second
=
padLeft
(
this
.
_date
.
getUTCSeconds
().
toString
(),
2
,
"0"
);
timeComponents
.
filter
(
"[data-time-component=hours]"
).
text
(
hour
);
timeComponents
.
filter
(
"[data-time-component=minutes]"
).
text
(
minute
);
timeComponents
.
filter
(
"[data-time-component=seconds]"
).
text
(
second
)},
click
:
function
(
e
){
e
.
stopPropagation
();
e
.
preventDefault
();
this
.
_unset
=
false
;
var
target
=
$
(
e
.
target
).
closest
(
"span, td, th"
);
if
(
target
.
length
===
1
){
if
(
!
target
.
is
(
".disabled"
)){
switch
(
target
[
0
].
nodeName
.
toLowerCase
()){
case
"th"
:
switch
(
target
[
0
].
className
){
case
"switch"
:
this
.
showMode
(
1
);
break
;
case
"prev"
:
case
"next"
:
var
vd
=
this
.
viewDate
;
var
navFnc
=
DPGlobal
.
modes
[
this
.
viewMode
].
navFnc
;
var
step
=
DPGlobal
.
modes
[
this
.
viewMode
].
navStep
;
if
(
target
[
0
].
className
===
"prev"
)
step
=
step
*-
1
;
vd
[
"set"
+
navFnc
](
vd
[
"get"
+
navFnc
]()
+
step
);
this
.
fillDate
();
this
.
set
();
break
}
break
;
case
"span"
:
if
(
target
.
is
(
".month"
)){
var
month
=
target
.
parent
().
find
(
"span"
).
index
(
target
);
this
.
viewDate
.
setUTCMonth
(
month
)}
else
{
var
year
=
parseInt
(
target
.
text
(),
10
)
||
0
;
this
.
viewDate
.
setUTCFullYear
(
year
)}
if
(
this
.
viewMode
!==
0
){
this
.
_date
=
UTCDate
(
this
.
viewDate
.
getUTCFullYear
(),
this
.
viewDate
.
getUTCMonth
(),
this
.
viewDate
.
getUTCDate
(),
this
.
_date
.
getUTCHours
(),
this
.
_date
.
getUTCMinutes
(),
this
.
_date
.
getUTCSeconds
(),
this
.
_date
.
getUTCMilliseconds
());
this
.
notifyChange
()}
this
.
showMode
(
-
1
);
this
.
fillDate
();
this
.
set
();
break
;
case
"td"
:
if
(
target
.
is
(
".day"
)){
var
day
=
parseInt
(
target
.
text
(),
10
)
||
1
;
var
month
=
this
.
viewDate
.
getUTCMonth
();
var
year
=
this
.
viewDate
.
getUTCFullYear
();
if
(
target
.
is
(
".old"
)){
if
(
month
===
0
){
month
=
11
;
year
-=
1
}
else
{
month
-=
1
}}
else
if
(
target
.
is
(
".new"
)){
if
(
month
==
11
){
month
=
0
;
year
+=
1
}
else
{
month
+=
1
}}
this
.
_date
=
UTCDate
(
year
,
month
,
day
,
this
.
_date
.
getUTCHours
(),
this
.
_date
.
getUTCMinutes
(),
this
.
_date
.
getUTCSeconds
(),
this
.
_date
.
getUTCMilliseconds
());
this
.
viewDate
=
UTCDate
(
year
,
month
,
Math
.
min
(
28
,
day
),
0
,
0
,
0
,
0
);
this
.
fillDate
();
this
.
set
();
this
.
notifyChange
()}
break
}}}},
actions
:{
incrementHours
:
function
(
e
){
this
.
_date
.
setUTCHours
(
this
.
_date
.
getUTCHours
()
+
1
)},
incrementMinutes
:
function
(
e
){
this
.
_date
.
setUTCMinutes
(
this
.
_date
.
getUTCMinutes
()
+
1
)},
incrementSeconds
:
function
(
e
){
this
.
_date
.
setUTCSeconds
(
this
.
_date
.
getUTCSeconds
()
+
1
)},
decrementHours
:
function
(
e
){
this
.
_date
.
setUTCHours
(
this
.
_date
.
getUTCHours
()
-
1
)},
decrementMinutes
:
function
(
e
){
this
.
_date
.
setUTCMinutes
(
this
.
_date
.
getUTCMinutes
()
-
1
)},
decrementSeconds
:
function
(
e
){
this
.
_date
.
setUTCSeconds
(
this
.
_date
.
getUTCSeconds
()
-
1
)},
togglePeriod
:
function
(
e
){
var
hour
=
this
.
_date
.
getUTCHours
();
if
(
hour
>=
12
)
hour
-=
12
;
else
hour
+=
12
;
this
.
_date
.
setUTCHours
(
hour
)},
showPicker
:
function
(){
this
.
widget
.
find
(
".timepicker > div:not(.timepicker-picker)"
).
hide
();
this
.
widget
.
find
(
".timepicker .timepicker-picker"
).
show
()},
showHours
:
function
(){
this
.
widget
.
find
(
".timepicker .timepicker-picker"
).
hide
();
this
.
widget
.
find
(
".timepicker .timepicker-hours"
).
show
()},
showMinutes
:
function
(){
this
.
widget
.
find
(
".timepicker .timepicker-picker"
).
hide
();
this
.
widget
.
find
(
".timepicker .timepicker-minutes"
).
show
()},
showSeconds
:
function
(){
this
.
widget
.
find
(
".timepicker .timepicker-picker"
).
hide
();
this
.
widget
.
find
(
".timepicker .timepicker-seconds"
).
show
()},
selectHour
:
function
(
e
){
var
tgt
=
$
(
e
.
target
);
var
value
=
parseInt
(
tgt
.
text
(),
10
);
if
(
this
.
options
.
pick12HourFormat
){
var
current
=
this
.
_date
.
getUTCHours
();
if
(
current
>=
12
){
if
(
value
!=
12
)
value
=
(
value
+
12
)
%
24
}
else
{
if
(
value
===
12
)
value
=
0
;
else
value
=
value
%
12
}}
this
.
_date
.
setUTCHours
(
value
);
this
.
actions
.
showPicker
.
call
(
this
)},
selectMinute
:
function
(
e
){
var
tgt
=
$
(
e
.
target
);
var
value
=
parseInt
(
tgt
.
text
(),
10
);
this
.
_date
.
setUTCMinutes
(
value
);
this
.
actions
.
showPicker
.
call
(
this
)},
selectSecond
:
function
(
e
){
var
tgt
=
$
(
e
.
target
);
var
value
=
parseInt
(
tgt
.
text
(),
10
);
this
.
_date
.
setUTCSeconds
(
value
);
this
.
actions
.
showPicker
.
call
(
this
)}},
doAction
:
function
(
e
){
e
.
stopPropagation
();
e
.
preventDefault
();
if
(
!
this
.
_date
)
this
.
_date
=
UTCDate
(
1970
,
0
,
0
,
0
,
0
,
0
,
0
);
var
action
=
$
(
e
.
currentTarget
).
data
(
"action"
);
var
rv
=
this
.
actions
[
action
].
apply
(
this
,
arguments
);
this
.
set
();
this
.
fillTime
();
this
.
notifyChange
();
return
rv
},
stopEvent
:
function
(
e
){
e
.
stopPropagation
();
e
.
preventDefault
()},
keydown
:
function
(
e
){
var
self
=
this
,
k
=
e
.
which
,
input
=
$
(
e
.
target
);
if
(
k
==
8
||
k
==
46
){
setTimeout
(
function
(){
self
.
_resetMaskPos
(
input
)})}},
keypress
:
function
(
e
){
var
k
=
e
.
which
;
if
(
k
==
8
||
k
==
46
){
return
}
var
input
=
$
(
e
.
target
);
var
c
=
String
.
fromCharCode
(
k
);
var
val
=
input
.
val
()
||
""
;
val
+=
c
;
var
mask
=
this
.
_mask
[
this
.
_maskPos
];
if
(
!
mask
){
return
false
}
if
(
mask
.
end
!=
val
.
length
){
return
}
if
(
!
mask
.
pattern
.
test
(
val
.
slice
(
mask
.
start
))){
val
=
val
.
slice
(
0
,
val
.
length
-
1
);
while
((
mask
=
this
.
_mask
[
this
.
_maskPos
])
&&
mask
.
character
){
val
+=
mask
.
character
;
this
.
_maskPos
++
}
val
+=
c
;
if
(
mask
.
end
!=
val
.
length
){
input
.
val
(
val
);
return
false
}
else
{
if
(
!
mask
.
pattern
.
test
(
val
.
slice
(
mask
.
start
))){
input
.
val
(
val
.
slice
(
0
,
mask
.
start
));
return
false
}
else
{
input
.
val
(
val
);
this
.
_maskPos
++
;
return
false
}}}
else
{
this
.
_maskPos
++
}},
change
:
function
(
e
){
var
input
=
$
(
e
.
target
);
var
val
=
input
.
val
();
if
(
this
.
_formatPattern
.
test
(
val
)){
this
.
update
();
this
.
setValue
(
this
.
_date
.
getTime
());
this
.
notifyChange
();
this
.
set
()}
else
if
(
val
&&
val
.
trim
()){
this
.
setValue
(
this
.
_date
.
getTime
());
if
(
this
.
_date
)
this
.
set
();
else
input
.
val
(
""
)}
else
{
if
(
this
.
_date
){
this
.
setValue
(
null
);
this
.
notifyChange
();
this
.
_unset
=
true
}}
this
.
_resetMaskPos
(
input
)},
showMode
:
function
(
dir
){
if
(
dir
){
this
.
viewMode
=
Math
.
max
(
this
.
minViewMode
,
Math
.
min
(
2
,
this
.
viewMode
+
dir
))}
this
.
widget
.
find
(
".datepicker > div"
).
hide
().
filter
(
".datepicker-"
+
DPGlobal
.
modes
[
this
.
viewMode
].
clsName
).
show
()},
destroy
:
function
(){
this
.
_detachDatePickerEvents
();
this
.
_detachDatePickerGlobalEvents
();
this
.
widget
.
remove
();
this
.
$element
.
removeData
(
"datetimepicker"
);
this
.
component
.
removeData
(
"datetimepicker"
)},
formatDate
:
function
(
d
){
return
this
.
format
.
replace
(
formatReplacer
,
function
(
match
){
var
methodName
,
property
,
rv
,
len
=
match
.
length
;
if
(
match
===
"ms"
)
len
=
1
;
property
=
dateFormatComponents
[
match
].
property
;
if
(
property
===
"Hours12"
){
rv
=
d
.
getUTCHours
();
if
(
rv
===
0
)
rv
=
12
;
else
if
(
rv
!==
12
)
rv
=
rv
%
12
}
else
if
(
property
===
"Period12"
){
if
(
d
.
getUTCHours
()
>=
12
)
return
"PM"
;
else
return
"AM"
}
else
{
methodName
=
"get"
+
property
;
rv
=
d
[
methodName
]()}
if
(
methodName
===
"getUTCMonth"
)
rv
=
rv
+
1
;
if
(
methodName
===
"getUTCYear"
)
rv
=
rv
+
1900
-
2
e3
;
return
padLeft
(
rv
.
toString
(),
len
,
"0"
)})},
parseDate
:
function
(
str
){
var
match
,
i
,
property
,
methodName
,
value
,
parsed
=
{};
if
(
!
(
match
=
this
.
_formatPattern
.
exec
(
str
)))
return
null
;
for
(
i
=
1
;
i
<
match
.
length
;
i
++
){
property
=
this
.
_propertiesByIndex
[
i
];
if
(
!
property
)
continue
;
value
=
match
[
i
];
if
(
/^
\d
+$/
.
test
(
value
))
value
=
parseInt
(
value
,
10
);
parsed
[
property
]
=
value
}
return
this
.
_finishParsingDate
(
parsed
)},
_resetMaskPos
:
function
(
input
){
var
val
=
input
.
val
();
for
(
var
i
=
0
;
i
<
this
.
_mask
.
length
;
i
++
){
if
(
this
.
_mask
[
i
].
end
>
val
.
length
){
this
.
_maskPos
=
i
;
break
}
else
if
(
this
.
_mask
[
i
].
end
===
val
.
length
){
this
.
_maskPos
=
i
+
1
;
break
}}},
_finishParsingDate
:
function
(
parsed
){
var
year
,
month
,
date
,
hours
,
minutes
,
seconds
,
milliseconds
;
year
=
parsed
.
UTCFullYear
;
if
(
parsed
.
UTCYear
)
year
=
2
e3
+
parsed
.
UTCYear
;
if
(
!
year
)
year
=
1970
;
if
(
parsed
.
UTCMonth
)
month
=
parsed
.
UTCMonth
-
1
;
else
month
=
0
;
date
=
parsed
.
UTCDate
||
1
;
hours
=
parsed
.
UTCHours
||
0
;
minutes
=
parsed
.
UTCMinutes
||
0
;
seconds
=
parsed
.
UTCSeconds
||
0
;
milliseconds
=
parsed
.
UTCMilliseconds
||
0
;
if
(
parsed
.
Hours12
){
hours
=
parsed
.
Hours12
}
if
(
parsed
.
Period12
){
if
(
/pm/i
.
test
(
parsed
.
Period12
)){
if
(
hours
!=
12
)
hours
=
(
hours
+
12
)
%
24
}
else
{
hours
=
hours
%
12
}}
return
UTCDate
(
year
,
month
,
date
,
hours
,
minutes
,
seconds
,
milliseconds
)},
_compileFormat
:
function
(){
var
match
,
component
,
components
=
[],
mask
=
[],
str
=
this
.
format
,
propertiesByIndex
=
{},
i
=
0
,
pos
=
0
;
while
(
match
=
formatComponent
.
exec
(
str
)){
component
=
match
[
0
];
if
(
component
in
dateFormatComponents
){
i
++
;
propertiesByIndex
[
i
]
=
dateFormatComponents
[
component
].
property
;
components
.
push
(
"
\\
s*"
+
dateFormatComponents
[
component
].
getPattern
(
this
)
+
"
\\
s*"
);
mask
.
push
({
pattern
:
new
RegExp
(
dateFormatComponents
[
component
].
getPattern
(
this
)),
property
:
dateFormatComponents
[
component
].
property
,
start
:
pos
,
end
:
pos
+=
component
.
length
})}
else
{
components
.
push
(
escapeRegExp
(
component
));
mask
.
push
({
pattern
:
new
RegExp
(
escapeRegExp
(
component
)),
character
:
component
,
start
:
pos
,
end
:
++
pos
})}
str
=
str
.
slice
(
component
.
length
)}
this
.
_mask
=
mask
;
this
.
_maskPos
=
0
;
this
.
_formatPattern
=
new
RegExp
(
"^
\\
s*"
+
components
.
join
(
""
)
+
"
\\
s*$"
);
this
.
_propertiesByIndex
=
propertiesByIndex
},
_attachDatePickerEvents
:
function
(){
var
self
=
this
;
this
.
widget
.
on
(
"click"
,
".datepicker *"
,
$
.
proxy
(
this
.
click
,
this
));
this
.
widget
.
on
(
"click"
,
"[data-action]"
,
$
.
proxy
(
this
.
doAction
,
this
));
this
.
widget
.
on
(
"mousedown"
,
$
.
proxy
(
this
.
stopEvent
,
this
));
if
(
this
.
pickDate
&&
this
.
pickTime
){
this
.
widget
.
on
(
"click.togglePicker"
,
".accordion-toggle"
,
function
(
e
){
e
.
stopPropagation
();
var
$this
=
$
(
this
);
var
$parent
=
$this
.
closest
(
"ul"
);
var
expanded
=
$parent
.
find
(
".collapse.in"
);
var
closed
=
$parent
.
find
(
".collapse:not(.in)"
);
if
(
expanded
&&
expanded
.
length
){
var
collapseData
=
expanded
.
data
(
"collapse"
);
if
(
collapseData
&&
collapseData
.
transitioning
)
return
;
expanded
.
collapse
(
"hide"
);
closed
.
collapse
(
"show"
);
$this
.
find
(
"i"
).
toggleClass
(
self
.
timeIcon
+
" "
+
self
.
dateIcon
);
self
.
$element
.
find
(
".add-on i"
).
toggleClass
(
self
.
timeIcon
+
" "
+
self
.
dateIcon
)}})}
if
(
this
.
isInput
){
this
.
$element
.
on
({
focus
:
$
.
proxy
(
this
.
show
,
this
),
change
:
$
.
proxy
(
this
.
change
,
this
)});
if
(
this
.
options
.
maskInput
){
this
.
$element
.
on
({
keydown
:
$
.
proxy
(
this
.
keydown
,
this
),
keypress
:
$
.
proxy
(
this
.
keypress
,
this
)})}}
else
{
this
.
$element
.
on
({
change
:
$
.
proxy
(
this
.
change
,
this
)},
"input"
);
if
(
this
.
options
.
maskInput
){
this
.
$element
.
on
({
keydown
:
$
.
proxy
(
this
.
keydown
,
this
),
keypress
:
$
.
proxy
(
this
.
keypress
,
this
)},
"input"
)}
if
(
this
.
component
){
this
.
component
.
on
(
"click"
,
$
.
proxy
(
this
.
show
,
this
))}
else
{
this
.
$element
.
on
(
"click"
,
$
.
proxy
(
this
.
show
,
this
))}}},
_attachDatePickerGlobalEvents
:
function
(){
$
(
window
).
on
(
"resize.datetimepicker"
+
this
.
id
,
$
.
proxy
(
this
.
place
,
this
));
if
(
!
this
.
isInput
){
$
(
document
).
on
(
"mousedown.datetimepicker"
+
this
.
id
,
$
.
proxy
(
this
.
hide
,
this
))}},
_detachDatePickerEvents
:
function
(){
this
.
widget
.
off
(
"click"
,
".datepicker *"
,
this
.
click
);
this
.
widget
.
off
(
"click"
,
"[data-action]"
);
this
.
widget
.
off
(
"mousedown"
,
this
.
stopEvent
);
if
(
this
.
pickDate
&&
this
.
pickTime
){
this
.
widget
.
off
(
"click.togglePicker"
)}
if
(
this
.
isInput
){
this
.
$element
.
off
({
focus
:
this
.
show
,
change
:
this
.
change
});
if
(
this
.
options
.
maskInput
){
this
.
$element
.
off
({
keydown
:
this
.
keydown
,
keypress
:
this
.
keypress
})}}
else
{
this
.
$element
.
off
({
change
:
this
.
change
},
"input"
);
if
(
this
.
options
.
maskInput
){
this
.
$element
.
off
({
keydown
:
this
.
keydown
,
keypress
:
this
.
keypress
},
"input"
)}
if
(
this
.
component
){
this
.
component
.
off
(
"click"
,
this
.
show
)}
else
{
this
.
$element
.
off
(
"click"
,
this
.
show
)}}},
_detachDatePickerGlobalEvents
:
function
(){
$
(
window
).
off
(
"resize.datetimepicker"
+
this
.
id
);
if
(
!
this
.
isInput
){
$
(
document
).
off
(
"mousedown.datetimepicker"
+
this
.
id
)}},
_isInFixed
:
function
(){
if
(
this
.
$element
){
var
parents
=
this
.
$element
.
parents
();
var
inFixed
=
false
;
for
(
var
i
=
0
;
i
<
parents
.
length
;
i
++
){
if
(
$
(
parents
[
i
]).
css
(
"position"
)
==
"fixed"
){
inFixed
=
true
;
break
}}
return
inFixed
}
else
{
return
false
}}};
$
.
fn
.
datetimepicker
=
function
(
option
,
val
){
return
this
.
each
(
function
(){
var
$this
=
$
(
this
),
data
=
$this
.
data
(
"datetimepicker"
),
options
=
typeof
option
===
"object"
&&
option
;
if
(
!
data
){
$this
.
data
(
"datetimepicker"
,
data
=
new
DateTimePicker
(
this
,
$
.
extend
({},
$
.
fn
.
datetimepicker
.
defaults
,
options
)))}
if
(
typeof
option
===
"string"
)
data
[
option
](
val
)})};
$
.
fn
.
datetimepicker
.
defaults
=
{
maskInput
:
false
,
pickDate
:
true
,
pickTime
:
true
,
pick12HourFormat
:
false
,
pickSeconds
:
true
,
startDate
:
-
Infinity
,
endDate
:
Infinity
,
collapse
:
true
};
$
.
fn
.
datetimepicker
.
Constructor
=
DateTimePicker
;
var
dpgId
=
0
;
var
dates
=
$
.
fn
.
datetimepicker
.
dates
=
{
en
:{
days
:[
"Sunday"
,
"Monday"
,
"Tuesday"
,
"Wednesday"
,
"Thursday"
,
"Friday"
,
"Saturday"
,
"Sunday"
],
daysShort
:[
"Sun"
,
"Mon"
,
"Tue"
,
"Wed"
,
"Thu"
,
"Fri"
,
"Sat"
,
"Sun"
],
daysMin
:[
"Su"
,
"Mo"
,
"Tu"
,
"We"
,
"Th"
,
"Fr"
,
"Sa"
,
"Su"
],
months
:[
"January"
,
"February"
,
"March"
,
"April"
,
"May"
,
"June"
,
"July"
,
"August"
,
"September"
,
"October"
,
"November"
,
"December"
],
monthsShort
:[
"Jan"
,
"Feb"
,
"Mar"
,
"Apr"
,
"May"
,
"Jun"
,
"Jul"
,
"Aug"
,
"Sep"
,
"Oct"
,
"Nov"
,
"Dec"
]}};
var
dateFormatComponents
=
{
dd
:{
property
:
"UTCDate"
,
getPattern
:
function
(){
return
"(0?[1-9]|[1-2][0-9]|3[0-1])
\\
b"
}},
MM
:{
property
:
"UTCMonth"
,
getPattern
:
function
(){
return
"(0?[1-9]|1[0-2])
\\
b"
}},
yy
:{
property
:
"UTCYear"
,
getPattern
:
function
(){
return
"(
\\
d{2})
\\
b"
}},
yyyy
:{
property
:
"UTCFullYear"
,
getPattern
:
function
(){
return
"(
\\
d{4})
\\
b"
}},
hh
:{
property
:
"UTCHours"
,
getPattern
:
function
(){
return
"(0?[0-9]|1[0-9]|2[0-3])
\\
b"
}},
mm
:{
property
:
"UTCMinutes"
,
getPattern
:
function
(){
return
"(0?[0-9]|[1-5][0-9])
\\
b"
}},
ss
:{
property
:
"UTCSeconds"
,
getPattern
:
function
(){
return
"(0?[0-9]|[1-5][0-9])
\\
b"
}},
ms
:{
property
:
"UTCMilliseconds"
,
getPattern
:
function
(){
return
"([0-9]{1,3})
\\
b"
}},
HH
:{
property
:
"Hours12"
,
getPattern
:
function
(){
return
"(0?[1-9]|1[0-2])
\\
b"
}},
PP
:{
property
:
"Period12"
,
getPattern
:
function
(){
return
"(AM|PM|am|pm|Am|aM|Pm|pM)
\\
b"
}}};
var
keys
=
[];
for
(
var
k
in
dateFormatComponents
)
keys
.
push
(
k
);
keys
[
keys
.
length
-
1
]
+=
"
\\
b"
;
keys
.
push
(
"."
);
var
formatComponent
=
new
RegExp
(
keys
.
join
(
"
\\
b|"
));
keys
.
pop
();
var
formatReplacer
=
new
RegExp
(
keys
.
join
(
"
\\
b|"
),
"g"
);
function
escapeRegExp
(
str
){
return
str
.
replace
(
/
[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]
/g
,
"
\\
$&"
)}
function
padLeft
(
s
,
l
,
c
){
if
(
l
<
s
.
length
)
return
s
;
else
return
Array
(
l
-
s
.
length
+
1
).
join
(
c
||
" "
)
+
s
}
function
getTemplate
(
timeIcon
,
pickDate
,
pickTime
,
is12Hours
,
showSeconds
,
collapse
){
if
(
pickDate
&&
pickTime
){
return
'<div class="bootstrap-datetimepicker-widget dropdown-menu">'
+
"<ul>"
+
"<li"
+
(
collapse
?
' class="collapse in"'
:
""
)
+
">"
+
'<div class="datepicker">'
+
DPGlobal
.
template
+
"</div>"
+
"</li>"
+
'<li class="picker-switch accordion-toggle"><a><i class="'
+
timeIcon
+
'"></i></a></li>'
+
"<li"
+
(
collapse
?
' class="collapse"'
:
""
)
+
">"
+
'<div class="timepicker">'
+
TPGlobal
.
getTemplate
(
is12Hours
,
showSeconds
)
+
"</div>"
+
"</li>"
+
"</ul>"
+
"</div>"
}
else
if
(
pickTime
){
return
'<div class="bootstrap-datetimepicker-widget dropdown-menu">'
+
'<div class="timepicker">'
+
TPGlobal
.
getTemplate
(
is12Hours
,
showSeconds
)
+
"</div>"
+
"</div>"
}
else
{
return
'<div class="bootstrap-datetimepicker-widget dropdown-menu">'
+
'<div class="datepicker">'
+
DPGlobal
.
template
+
"</div>"
+
"</div>"
}}
function
UTCDate
(){
return
new
Date
(
Date
.
UTC
.
apply
(
Date
,
arguments
))}
var
DPGlobal
=
{
modes
:[{
clsName
:
"days"
,
navFnc
:
"UTCMonth"
,
navStep
:
1
},{
clsName
:
"months"
,
navFnc
:
"UTCFullYear"
,
navStep
:
1
},{
clsName
:
"years"
,
navFnc
:
"UTCFullYear"
,
navStep
:
10
}],
isLeapYear
:
function
(
year
){
return
year
%
4
===
0
&&
year
%
100
!==
0
||
year
%
400
===
0
},
getDaysInMonth
:
function
(
year
,
month
){
return
[
31
,
DPGlobal
.
isLeapYear
(
year
)?
29
:
28
,
31
,
30
,
31
,
30
,
31
,
31
,
30
,
31
,
30
,
31
][
month
]},
headTemplate
:
"<thead>"
+
"<tr>"
+
'<th class="prev">‹</th>'
+
'<th colspan="5" class="switch"></th>'
+
'<th class="next">›</th>'
+
"</tr>"
+
"</thead>"
,
contTemplate
:
'<tbody><tr><td colspan="7"></td></tr></tbody>'
};
DPGlobal
.
template
=
'<div class="datepicker-days">'
+
'<table class="table-condensed">'
+
DPGlobal
.
headTemplate
+
"<tbody></tbody>"
+
"</table>"
+
"</div>"
+
'<div class="datepicker-months">'
+
'<table class="table-condensed">'
+
DPGlobal
.
headTemplate
+
DPGlobal
.
contTemplate
+
"</table>"
+
"</div>"
+
'<div class="datepicker-years">'
+
'<table class="table-condensed">'
+
DPGlobal
.
headTemplate
+
DPGlobal
.
contTemplate
+
"</table>"
+
"</div>"
;
var
TPGlobal
=
{
hourTemplate
:
'<span data-action="showHours" data-time-component="hours" class="timepicker-hour"></span>'
,
minuteTemplate
:
'<span data-action="showMinutes" data-time-component="minutes" class="timepicker-minute"></span>'
,
secondTemplate
:
'<span data-action="showSeconds" data-time-component="seconds" class="timepicker-second"></span>'
};
TPGlobal
.
getTemplate
=
function
(
is12Hours
,
showSeconds
){
return
'<div class="timepicker-picker">'
+
'<table class="table-condensed"'
+
(
is12Hours
?
' data-hour-format="12"'
:
""
)
+
">"
+
"<tr>"
+
'<td><a href="#" class="btn" data-action="incrementHours"><i class="icon-chevron-up"></i></a></td>'
+
'<td class="separator"></td>'
+
'<td><a href="#" class="btn" data-action="incrementMinutes"><i class="icon-chevron-up"></i></a></td>'
+
(
showSeconds
?
'<td class="separator"></td>'
+
'<td><a href="#" class="btn" data-action="incrementSeconds"><i class="icon-chevron-up"></i></a></td>'
:
""
)
+
(
is12Hours
?
'<td class="separator"></td>'
:
""
)
+
"</tr>"
+
"<tr>"
+
"<td>"
+
TPGlobal
.
hourTemplate
+
"</td> "
+
'<td class="separator">:</td>'
+
"<td>"
+
TPGlobal
.
minuteTemplate
+
"</td> "
+
(
showSeconds
?
'<td class="separator">:</td>'
+
"<td>"
+
TPGlobal
.
secondTemplate
+
"</td>"
:
""
)
+
(
is12Hours
?
'<td class="separator"></td>'
+
"<td>"
+
'<button type="button" class="btn btn-primary" data-action="togglePeriod"></button>'
+
"</td>"
:
""
)
+
"</tr>"
+
"<tr>"
+
'<td><a href="#" class="btn" data-action="decrementHours"><i class="icon-chevron-down"></i></a></td>'
+
'<td class="separator"></td>'
+
'<td><a href="#" class="btn" data-action="decrementMinutes"><i class="icon-chevron-down"></i></a></td>'
+
(
showSeconds
?
'<td class="separator"></td>'
+
'<td><a href="#" class="btn" data-action="decrementSeconds"><i class="icon-chevron-down"></i></a></td>'
:
""
)
+
(
is12Hours
?
'<td class="separator"></td>'
:
""
)
+
"</tr>"
+
"</table>"
+
"</div>"
+
'<div class="timepicker-hours" data-action="selectHour">'
+
'<table class="table-condensed">'
+
"</table>"
+
"</div>"
+
'<div class="timepicker-minutes" data-action="selectMinute">'
+
'<table class="table-condensed">'
+
"</table>"
+
"</div>"
+
(
showSeconds
?
'<div class="timepicker-seconds" data-action="selectSecond">'
+
'<table class="table-condensed">'
+
"</table>"
+
"</div>"
:
""
)}})(
window
.
jQuery
);
\ No newline at end of file
(
function
(
a
){
if
(
typeof
define
===
"function"
&&
define
.
amd
){
define
([
"jquery"
],
a
)}
else
{
if
(
typeof
exports
===
"object"
){
a
(
require
(
"jquery"
))}
else
{
a
(
jQuery
)}}}(
function
(
d
,
f
){
if
(
!
(
"indexOf"
in
Array
.
prototype
)){
Array
.
prototype
.
indexOf
=
function
(
k
,
j
){
if
(
j
===
f
){
j
=
0
}
if
(
j
<
0
){
j
+=
this
.
length
}
if
(
j
<
0
){
j
=
0
}
for
(
var
l
=
this
.
length
;
j
<
l
;
j
++
){
if
(
j
in
this
&&
this
[
j
]
===
k
){
return
j
}}
return
-
1
}}
function
a
(){
var
q
,
k
,
p
,
l
,
j
,
n
,
m
,
o
;
k
=
(
new
Date
()).
toString
();
p
=
((
m
=
k
.
split
(
"("
)[
1
])
!=
null
?
m
.
slice
(
0
,
-
1
):
0
)
||
k
.
split
(
" "
);
if
(
p
instanceof
Array
){
n
=
[];
for
(
var
l
=
0
,
j
=
p
.
length
;
l
<
j
;
l
++
){
o
=
p
[
l
];
if
((
q
=
(
m
=
o
.
match
(
/
\b[
A-Z
]
+
\b
/
))
!==
null
)?
m
[
0
]:
0
){
n
.
push
(
q
)}}
p
=
n
.
pop
()}
return
p
}
function
h
(){
return
new
Date
(
Date
.
UTC
.
apply
(
Date
,
arguments
))}
var
g
=
function
(
k
,
j
){
var
m
=
this
;
this
.
element
=
d
(
k
);
this
.
container
=
j
.
container
||
"body"
;
this
.
language
=
j
.
language
||
this
.
element
.
data
(
"date-language"
)
||
"en"
;
this
.
language
=
this
.
language
in
e
?
this
.
language
:
this
.
language
.
split
(
"-"
)[
0
];
this
.
language
=
this
.
language
in
e
?
this
.
language
:
"en"
;
this
.
isRTL
=
e
[
this
.
language
].
rtl
||
false
;
this
.
formatType
=
j
.
formatType
||
this
.
element
.
data
(
"format-type"
)
||
"standard"
;
this
.
format
=
c
.
parseFormat
(
j
.
format
||
this
.
element
.
data
(
"date-format"
)
||
e
[
this
.
language
].
format
||
c
.
getDefaultFormat
(
this
.
formatType
,
"input"
),
this
.
formatType
);
this
.
isInline
=
false
;
this
.
isVisible
=
false
;
this
.
isInput
=
this
.
element
.
is
(
"input"
);
this
.
fontAwesome
=
j
.
fontAwesome
||
this
.
element
.
data
(
"font-awesome"
)
||
false
;
this
.
bootcssVer
=
j
.
bootcssVer
||
(
this
.
isInput
?(
this
.
element
.
is
(
".form-control"
)?
3
:
2
):(
this
.
bootcssVer
=
this
.
element
.
is
(
".input-group"
)?
3
:
2
));
this
.
component
=
this
.
element
.
is
(
".date"
)?(
this
.
bootcssVer
===
3
?
this
.
element
.
find
(
".input-group-addon .glyphicon-th, .input-group-addon .glyphicon-time, .input-group-addon .glyphicon-remove, .input-group-addon .glyphicon-calendar, .input-group-addon .fa-calendar, .input-group-addon .fa-clock-o"
).
parent
():
this
.
element
.
find
(
".add-on .icon-th, .add-on .icon-time, .add-on .icon-calendar, .add-on .fa-calendar, .add-on .fa-clock-o"
).
parent
()):
false
;
this
.
componentReset
=
this
.
element
.
is
(
".date"
)?(
this
.
bootcssVer
===
3
?
this
.
element
.
find
(
".input-group-addon .glyphicon-remove, .input-group-addon .fa-times"
).
parent
():
this
.
element
.
find
(
".add-on .icon-remove, .add-on .fa-times"
).
parent
()):
false
;
this
.
hasInput
=
this
.
component
&&
this
.
element
.
find
(
"input"
).
length
;
if
(
this
.
component
&&
this
.
component
.
length
===
0
){
this
.
component
=
false
}
this
.
linkField
=
j
.
linkField
||
this
.
element
.
data
(
"link-field"
)
||
false
;
this
.
linkFormat
=
c
.
parseFormat
(
j
.
linkFormat
||
this
.
element
.
data
(
"link-format"
)
||
c
.
getDefaultFormat
(
this
.
formatType
,
"link"
),
this
.
formatType
);
this
.
minuteStep
=
j
.
minuteStep
||
this
.
element
.
data
(
"minute-step"
)
||
5
;
this
.
pickerPosition
=
j
.
pickerPosition
||
this
.
element
.
data
(
"picker-position"
)
||
"bottom-right"
;
this
.
showMeridian
=
j
.
showMeridian
||
this
.
element
.
data
(
"show-meridian"
)
||
false
;
this
.
initialDate
=
j
.
initialDate
||
new
Date
();
this
.
zIndex
=
j
.
zIndex
||
this
.
element
.
data
(
"z-index"
)
||
f
;
this
.
title
=
typeof
j
.
title
===
"undefined"
?
false
:
j
.
title
;
this
.
timezone
=
j
.
timezone
||
a
();
this
.
icons
=
{
leftArrow
:
this
.
fontAwesome
?
"fa-arrow-left"
:(
this
.
bootcssVer
===
3
?
"glyphicon-arrow-left"
:
"icon-arrow-left"
),
rightArrow
:
this
.
fontAwesome
?
"fa-arrow-right"
:(
this
.
bootcssVer
===
3
?
"glyphicon-arrow-right"
:
"icon-arrow-right"
)};
this
.
icontype
=
this
.
fontAwesome
?
"fa"
:
"glyphicon"
;
this
.
_attachEvents
();
this
.
clickedOutside
=
function
(
n
){
if
(
d
(
n
.
target
).
closest
(
".datetimepicker"
).
length
===
0
){
m
.
hide
()}};
this
.
formatViewType
=
"datetime"
;
if
(
"formatViewType"
in
j
){
this
.
formatViewType
=
j
.
formatViewType
}
else
{
if
(
"formatViewType"
in
this
.
element
.
data
()){
this
.
formatViewType
=
this
.
element
.
data
(
"formatViewType"
)}}
this
.
minView
=
0
;
if
(
"minView"
in
j
){
this
.
minView
=
j
.
minView
}
else
{
if
(
"minView"
in
this
.
element
.
data
()){
this
.
minView
=
this
.
element
.
data
(
"min-view"
)}}
this
.
minView
=
c
.
convertViewMode
(
this
.
minView
);
this
.
maxView
=
c
.
modes
.
length
-
1
;
if
(
"maxView"
in
j
){
this
.
maxView
=
j
.
maxView
}
else
{
if
(
"maxView"
in
this
.
element
.
data
()){
this
.
maxView
=
this
.
element
.
data
(
"max-view"
)}}
this
.
maxView
=
c
.
convertViewMode
(
this
.
maxView
);
this
.
wheelViewModeNavigation
=
false
;
if
(
"wheelViewModeNavigation"
in
j
){
this
.
wheelViewModeNavigation
=
j
.
wheelViewModeNavigation
}
else
{
if
(
"wheelViewModeNavigation"
in
this
.
element
.
data
()){
this
.
wheelViewModeNavigation
=
this
.
element
.
data
(
"view-mode-wheel-navigation"
)}}
this
.
wheelViewModeNavigationInverseDirection
=
false
;
if
(
"wheelViewModeNavigationInverseDirection"
in
j
){
this
.
wheelViewModeNavigationInverseDirection
=
j
.
wheelViewModeNavigationInverseDirection
}
else
{
if
(
"wheelViewModeNavigationInverseDirection"
in
this
.
element
.
data
()){
this
.
wheelViewModeNavigationInverseDirection
=
this
.
element
.
data
(
"view-mode-wheel-navigation-inverse-dir"
)}}
this
.
wheelViewModeNavigationDelay
=
100
;
if
(
"wheelViewModeNavigationDelay"
in
j
){
this
.
wheelViewModeNavigationDelay
=
j
.
wheelViewModeNavigationDelay
}
else
{
if
(
"wheelViewModeNavigationDelay"
in
this
.
element
.
data
()){
this
.
wheelViewModeNavigationDelay
=
this
.
element
.
data
(
"view-mode-wheel-navigation-delay"
)}}
this
.
startViewMode
=
2
;
if
(
"startView"
in
j
){
this
.
startViewMode
=
j
.
startView
}
else
{
if
(
"startView"
in
this
.
element
.
data
()){
this
.
startViewMode
=
this
.
element
.
data
(
"start-view"
)}}
this
.
startViewMode
=
c
.
convertViewMode
(
this
.
startViewMode
);
this
.
viewMode
=
this
.
startViewMode
;
this
.
viewSelect
=
this
.
minView
;
if
(
"viewSelect"
in
j
){
this
.
viewSelect
=
j
.
viewSelect
}
else
{
if
(
"viewSelect"
in
this
.
element
.
data
()){
this
.
viewSelect
=
this
.
element
.
data
(
"view-select"
)}}
this
.
viewSelect
=
c
.
convertViewMode
(
this
.
viewSelect
);
this
.
forceParse
=
true
;
if
(
"forceParse"
in
j
){
this
.
forceParse
=
j
.
forceParse
}
else
{
if
(
"dateForceParse"
in
this
.
element
.
data
()){
this
.
forceParse
=
this
.
element
.
data
(
"date-force-parse"
)}}
var
l
=
this
.
bootcssVer
===
3
?
c
.
templateV3
:
c
.
template
;
while
(
l
.
indexOf
(
"{iconType}"
)
!==-
1
){
l
=
l
.
replace
(
"{iconType}"
,
this
.
icontype
)}
while
(
l
.
indexOf
(
"{leftArrow}"
)
!==-
1
){
l
=
l
.
replace
(
"{leftArrow}"
,
this
.
icons
.
leftArrow
)}
while
(
l
.
indexOf
(
"{rightArrow}"
)
!==-
1
){
l
=
l
.
replace
(
"{rightArrow}"
,
this
.
icons
.
rightArrow
)}
this
.
picker
=
d
(
l
).
appendTo
(
this
.
isInline
?
this
.
element
:
this
.
container
).
on
({
click
:
d
.
proxy
(
this
.
click
,
this
),
mousedown
:
d
.
proxy
(
this
.
mousedown
,
this
)});
if
(
this
.
wheelViewModeNavigation
){
if
(
d
.
fn
.
mousewheel
){
this
.
picker
.
on
({
mousewheel
:
d
.
proxy
(
this
.
mousewheel
,
this
)})}
else
{
console
.
log
(
"Mouse Wheel event is not supported. Please include the jQuery Mouse Wheel plugin before enabling this option"
)}}
if
(
this
.
isInline
){
this
.
picker
.
addClass
(
"datetimepicker-inline"
)}
else
{
this
.
picker
.
addClass
(
"datetimepicker-dropdown-"
+
this
.
pickerPosition
+
" dropdown-menu"
)}
if
(
this
.
isRTL
){
this
.
picker
.
addClass
(
"datetimepicker-rtl"
);
var
i
=
this
.
bootcssVer
===
3
?
".prev span, .next span"
:
".prev i, .next i"
;
this
.
picker
.
find
(
i
).
toggleClass
(
this
.
icons
.
leftArrow
+
" "
+
this
.
icons
.
rightArrow
)}
d
(
document
).
on
(
"mousedown touchend"
,
this
.
clickedOutside
);
this
.
autoclose
=
false
;
if
(
"autoclose"
in
j
){
this
.
autoclose
=
j
.
autoclose
}
else
{
if
(
"dateAutoclose"
in
this
.
element
.
data
()){
this
.
autoclose
=
this
.
element
.
data
(
"date-autoclose"
)}}
this
.
keyboardNavigation
=
true
;
if
(
"keyboardNavigation"
in
j
){
this
.
keyboardNavigation
=
j
.
keyboardNavigation
}
else
{
if
(
"dateKeyboardNavigation"
in
this
.
element
.
data
()){
this
.
keyboardNavigation
=
this
.
element
.
data
(
"date-keyboard-navigation"
)}}
this
.
todayBtn
=
(
j
.
todayBtn
||
this
.
element
.
data
(
"date-today-btn"
)
||
false
);
this
.
clearBtn
=
(
j
.
clearBtn
||
this
.
element
.
data
(
"date-clear-btn"
)
||
false
);
this
.
todayHighlight
=
(
j
.
todayHighlight
||
this
.
element
.
data
(
"date-today-highlight"
)
||
false
);
this
.
weekStart
=
0
;
if
(
typeof
j
.
weekStart
!==
"undefined"
){
this
.
weekStart
=
j
.
weekStart
}
else
{
if
(
typeof
this
.
element
.
data
(
"date-weekstart"
)
!==
"undefined"
){
this
.
weekStart
=
this
.
element
.
data
(
"date-weekstart"
)}
else
{
if
(
typeof
e
[
this
.
language
].
weekStart
!==
"undefined"
){
this
.
weekStart
=
e
[
this
.
language
].
weekStart
}}}
this
.
weekStart
=
this
.
weekStart
%
7
;
this
.
weekEnd
=
((
this
.
weekStart
+
6
)
%
7
);
this
.
onRenderDay
=
function
(
n
){
var
p
=
(
j
.
onRenderDay
||
function
(){
return
[]})(
n
);
if
(
typeof
p
===
"string"
){
p
=
[
p
]}
var
o
=
[
"day"
];
return
o
.
concat
((
p
?
p
:[]))};
this
.
onRenderHour
=
function
(
n
){
var
p
=
(
j
.
onRenderHour
||
function
(){
return
[]})(
n
);
var
o
=
[
"hour"
];
if
(
typeof
p
===
"string"
){
p
=
[
p
]}
return
o
.
concat
((
p
?
p
:[]))};
this
.
onRenderMinute
=
function
(
n
){
var
p
=
(
j
.
onRenderMinute
||
function
(){
return
[]})(
n
);
var
o
=
[
"minute"
];
if
(
typeof
p
===
"string"
){
p
=
[
p
]}
if
(
n
<
this
.
startDate
||
n
>
this
.
endDate
){
o
.
push
(
"disabled"
)}
else
{
if
(
Math
.
floor
(
this
.
date
.
getUTCMinutes
()
/
this
.
minuteStep
)
===
Math
.
floor
(
n
.
getUTCMinutes
()
/
this
.
minuteStep
)){
o
.
push
(
"active"
)}}
return
o
.
concat
((
p
?
p
:[]))};
this
.
onRenderYear
=
function
(
o
){
var
q
=
(
j
.
onRenderYear
||
function
(){
return
[]})(
o
);
var
p
=
[
"year"
];
if
(
typeof
q
===
"string"
){
q
=
[
q
]}
if
(
this
.
date
.
getUTCFullYear
()
===
o
.
getUTCFullYear
()){
p
.
push
(
"active"
)}
var
n
=
o
.
getUTCFullYear
();
var
r
=
this
.
endDate
.
getUTCFullYear
();
if
(
o
<
this
.
startDate
||
n
>
r
){
p
.
push
(
"disabled"
)}
return
p
.
concat
((
q
?
q
:[]))};
this
.
onRenderMonth
=
function
(
n
){
var
p
=
(
j
.
onRenderMonth
||
function
(){
return
[]})(
n
);
var
o
=
[
"month"
];
if
(
typeof
p
===
"string"
){
p
=
[
p
]}
return
o
.
concat
((
p
?
p
:[]))};
this
.
startDate
=
new
Date
(
-
8639968443048000
);
this
.
endDate
=
new
Date
(
8639968443048000
);
this
.
datesDisabled
=
[];
this
.
daysOfWeekDisabled
=
[];
this
.
setStartDate
(
j
.
startDate
||
this
.
element
.
data
(
"date-startdate"
));
this
.
setEndDate
(
j
.
endDate
||
this
.
element
.
data
(
"date-enddate"
));
this
.
setDatesDisabled
(
j
.
datesDisabled
||
this
.
element
.
data
(
"date-dates-disabled"
));
this
.
setDaysOfWeekDisabled
(
j
.
daysOfWeekDisabled
||
this
.
element
.
data
(
"date-days-of-week-disabled"
));
this
.
setMinutesDisabled
(
j
.
minutesDisabled
||
this
.
element
.
data
(
"date-minute-disabled"
));
this
.
setHoursDisabled
(
j
.
hoursDisabled
||
this
.
element
.
data
(
"date-hour-disabled"
));
this
.
fillDow
();
this
.
fillMonths
();
this
.
update
();
this
.
showMode
();
if
(
this
.
isInline
){
this
.
show
()}};
g
.
prototype
=
{
constructor
:
g
,
_events
:[],
_attachEvents
:
function
(){
this
.
_detachEvents
();
if
(
this
.
isInput
){
this
.
_events
=
[[
this
.
element
,{
focus
:
d
.
proxy
(
this
.
show
,
this
),
keyup
:
d
.
proxy
(
this
.
update
,
this
),
keydown
:
d
.
proxy
(
this
.
keydown
,
this
)}]]}
else
{
if
(
this
.
component
&&
this
.
hasInput
){
this
.
_events
=
[[
this
.
element
.
find
(
"input"
),{
focus
:
d
.
proxy
(
this
.
show
,
this
),
keyup
:
d
.
proxy
(
this
.
update
,
this
),
keydown
:
d
.
proxy
(
this
.
keydown
,
this
)}],[
this
.
component
,{
click
:
d
.
proxy
(
this
.
show
,
this
)}]];
if
(
this
.
componentReset
){
this
.
_events
.
push
([
this
.
componentReset
,{
click
:
d
.
proxy
(
this
.
reset
,
this
)}])}}
else
{
if
(
this
.
element
.
is
(
"div"
)){
this
.
isInline
=
true
}
else
{
this
.
_events
=
[[
this
.
element
,{
click
:
d
.
proxy
(
this
.
show
,
this
)}]]}}}
for
(
var
j
=
0
,
k
,
l
;
j
<
this
.
_events
.
length
;
j
++
){
k
=
this
.
_events
[
j
][
0
];
l
=
this
.
_events
[
j
][
1
];
k
.
on
(
l
)}},
_detachEvents
:
function
(){
for
(
var
j
=
0
,
k
,
l
;
j
<
this
.
_events
.
length
;
j
++
){
k
=
this
.
_events
[
j
][
0
];
l
=
this
.
_events
[
j
][
1
];
k
.
off
(
l
)}
this
.
_events
=
[]},
show
:
function
(
i
){
this
.
picker
.
show
();
this
.
height
=
this
.
component
?
this
.
component
.
outerHeight
():
this
.
element
.
outerHeight
();
if
(
this
.
forceParse
){
this
.
update
()}
this
.
place
();
d
(
window
).
on
(
"resize"
,
d
.
proxy
(
this
.
place
,
this
));
if
(
i
){
i
.
stopPropagation
();
i
.
preventDefault
()}
this
.
isVisible
=
true
;
this
.
element
.
trigger
({
type
:
"show"
,
date
:
this
.
date
})},
hide
:
function
(){
if
(
!
this
.
isVisible
){
return
}
if
(
this
.
isInline
){
return
}
this
.
picker
.
hide
();
d
(
window
).
off
(
"resize"
,
this
.
place
);
this
.
viewMode
=
this
.
startViewMode
;
this
.
showMode
();
if
(
!
this
.
isInput
){
d
(
document
).
off
(
"mousedown"
,
this
.
hide
)}
if
(
this
.
forceParse
&&
(
this
.
isInput
&&
this
.
element
.
val
()
||
this
.
hasInput
&&
this
.
element
.
find
(
"input"
).
val
())){
this
.
setValue
()}
this
.
isVisible
=
false
;
this
.
element
.
trigger
({
type
:
"hide"
,
date
:
this
.
date
})},
remove
:
function
(){
this
.
_detachEvents
();
d
(
document
).
off
(
"mousedown"
,
this
.
clickedOutside
);
this
.
picker
.
remove
();
delete
this
.
picker
;
delete
this
.
element
.
data
().
datetimepicker
},
getDate
:
function
(){
var
i
=
this
.
getUTCDate
();
if
(
i
===
null
){
return
null
}
return
new
Date
(
i
.
getTime
()
+
(
i
.
getTimezoneOffset
()
*
60000
))},
getUTCDate
:
function
(){
return
this
.
date
},
getInitialDate
:
function
(){
return
this
.
initialDate
},
setInitialDate
:
function
(
i
){
this
.
initialDate
=
i
},
setDate
:
function
(
i
){
this
.
setUTCDate
(
new
Date
(
i
.
getTime
()
-
(
i
.
getTimezoneOffset
()
*
60000
)))},
setUTCDate
:
function
(
i
){
if
(
i
>=
this
.
startDate
&&
i
<=
this
.
endDate
){
this
.
date
=
i
;
this
.
setValue
();
this
.
viewDate
=
this
.
date
;
this
.
fill
()}
else
{
this
.
element
.
trigger
({
type
:
"outOfRange"
,
date
:
i
,
startDate
:
this
.
startDate
,
endDate
:
this
.
endDate
})}},
setFormat
:
function
(
j
){
this
.
format
=
c
.
parseFormat
(
j
,
this
.
formatType
);
var
i
;
if
(
this
.
isInput
){
i
=
this
.
element
}
else
{
if
(
this
.
component
){
i
=
this
.
element
.
find
(
"input"
)}}
if
(
i
&&
i
.
val
()){
this
.
setValue
()}},
setValue
:
function
(){
var
i
=
this
.
getFormattedDate
();
if
(
!
this
.
isInput
){
if
(
this
.
component
){
this
.
element
.
find
(
"input"
).
val
(
i
)}
this
.
element
.
data
(
"date"
,
i
)}
else
{
this
.
element
.
val
(
i
)}
if
(
this
.
linkField
){
d
(
"#"
+
this
.
linkField
).
val
(
this
.
getFormattedDate
(
this
.
linkFormat
))}},
getFormattedDate
:
function
(
i
){
i
=
i
||
this
.
format
;
return
c
.
formatDate
(
this
.
date
,
i
,
this
.
language
,
this
.
formatType
,
this
.
timezone
)},
setStartDate
:
function
(
i
){
this
.
startDate
=
i
||
this
.
startDate
;
if
(
this
.
startDate
.
valueOf
()
!==
8639968443048000
){
this
.
startDate
=
c
.
parseDate
(
this
.
startDate
,
this
.
format
,
this
.
language
,
this
.
formatType
,
this
.
timezone
)}
this
.
update
();
this
.
updateNavArrows
()},
setEndDate
:
function
(
i
){
this
.
endDate
=
i
||
this
.
endDate
;
if
(
this
.
endDate
.
valueOf
()
!==
8639968443048000
){
this
.
endDate
=
c
.
parseDate
(
this
.
endDate
,
this
.
format
,
this
.
language
,
this
.
formatType
,
this
.
timezone
)}
this
.
update
();
this
.
updateNavArrows
()},
setDatesDisabled
:
function
(
j
){
this
.
datesDisabled
=
j
||
[];
if
(
!
d
.
isArray
(
this
.
datesDisabled
)){
this
.
datesDisabled
=
this
.
datesDisabled
.
split
(
/,
\s
*/
)}
var
i
=
this
;
this
.
datesDisabled
=
d
.
map
(
this
.
datesDisabled
,
function
(
k
){
return
c
.
parseDate
(
k
,
i
.
format
,
i
.
language
,
i
.
formatType
,
i
.
timezone
).
toDateString
()});
this
.
update
();
this
.
updateNavArrows
()},
setTitle
:
function
(
i
,
j
){
return
this
.
picker
.
find
(
i
).
find
(
"th:eq(1)"
).
text
(
this
.
title
===
false
?
j
:
this
.
title
)},
setDaysOfWeekDisabled
:
function
(
i
){
this
.
daysOfWeekDisabled
=
i
||
[];
if
(
!
d
.
isArray
(
this
.
daysOfWeekDisabled
)){
this
.
daysOfWeekDisabled
=
this
.
daysOfWeekDisabled
.
split
(
/,
\s
*/
)}
this
.
daysOfWeekDisabled
=
d
.
map
(
this
.
daysOfWeekDisabled
,
function
(
j
){
return
parseInt
(
j
,
10
)});
this
.
update
();
this
.
updateNavArrows
()},
setMinutesDisabled
:
function
(
i
){
this
.
minutesDisabled
=
i
||
[];
if
(
!
d
.
isArray
(
this
.
minutesDisabled
)){
this
.
minutesDisabled
=
this
.
minutesDisabled
.
split
(
/,
\s
*/
)}
this
.
minutesDisabled
=
d
.
map
(
this
.
minutesDisabled
,
function
(
j
){
return
parseInt
(
j
,
10
)});
this
.
update
();
this
.
updateNavArrows
()},
setHoursDisabled
:
function
(
i
){
this
.
hoursDisabled
=
i
||
[];
if
(
!
d
.
isArray
(
this
.
hoursDisabled
)){
this
.
hoursDisabled
=
this
.
hoursDisabled
.
split
(
/,
\s
*/
)}
this
.
hoursDisabled
=
d
.
map
(
this
.
hoursDisabled
,
function
(
j
){
return
parseInt
(
j
,
10
)});
this
.
update
();
this
.
updateNavArrows
()},
place
:
function
(){
if
(
this
.
isInline
){
return
}
if
(
!
this
.
zIndex
){
var
j
=
0
;
d
(
"div"
).
each
(
function
(){
var
o
=
parseInt
(
d
(
this
).
css
(
"zIndex"
),
10
);
if
(
o
>
j
){
j
=
o
}});
this
.
zIndex
=
j
+
10
}
var
n
,
m
,
l
,
k
;
if
(
this
.
container
instanceof
d
){
k
=
this
.
container
.
offset
()}
else
{
k
=
d
(
this
.
container
).
offset
()}
if
(
this
.
component
){
n
=
this
.
component
.
offset
();
l
=
n
.
left
;
if
(
this
.
pickerPosition
===
"bottom-left"
||
this
.
pickerPosition
===
"top-left"
){
l
+=
this
.
component
.
outerWidth
()
-
this
.
picker
.
outerWidth
()}}
else
{
n
=
this
.
element
.
offset
();
l
=
n
.
left
;
if
(
this
.
pickerPosition
===
"bottom-left"
||
this
.
pickerPosition
===
"top-left"
){
l
+=
this
.
element
.
outerWidth
()
-
this
.
picker
.
outerWidth
()}}
var
i
=
document
.
body
.
clientWidth
||
window
.
innerWidth
;
if
(
l
+
220
>
i
){
l
=
i
-
220
}
if
(
this
.
pickerPosition
===
"top-left"
||
this
.
pickerPosition
===
"top-right"
){
m
=
n
.
top
-
this
.
picker
.
outerHeight
()}
else
{
m
=
n
.
top
+
this
.
height
}
m
=
m
-
k
.
top
;
l
=
l
-
k
.
left
;
this
.
picker
.
css
({
top
:
m
,
left
:
l
,
zIndex
:
this
.
zIndex
})},
hour_minute
:
"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]"
,
update
:
function
(){
var
i
,
j
=
false
;
if
(
arguments
&&
arguments
.
length
&&
(
typeof
arguments
[
0
]
===
"string"
||
arguments
[
0
]
instanceof
Date
)){
i
=
arguments
[
0
];
j
=
true
}
else
{
i
=
(
this
.
isInput
?
this
.
element
.
val
():
this
.
element
.
find
(
"input"
).
val
())
||
this
.
element
.
data
(
"date"
)
||
this
.
initialDate
;
if
(
typeof
i
===
"string"
){
i
=
i
.
replace
(
/^
\s
+|
\s
+$/g
,
""
)}}
if
(
!
i
){
i
=
new
Date
();
j
=
false
}
if
(
typeof
i
===
"string"
){
if
(
new
RegExp
(
this
.
hour_minute
).
test
(
i
)
||
new
RegExp
(
this
.
hour_minute
+
":[0-5][0-9]"
).
test
(
i
)){
i
=
this
.
getDate
()}}
this
.
date
=
c
.
parseDate
(
i
,
this
.
format
,
this
.
language
,
this
.
formatType
,
this
.
timezone
);
if
(
j
){
this
.
setValue
()}
if
(
this
.
date
<
this
.
startDate
){
this
.
viewDate
=
new
Date
(
this
.
startDate
)}
else
{
if
(
this
.
date
>
this
.
endDate
){
this
.
viewDate
=
new
Date
(
this
.
endDate
)}
else
{
this
.
viewDate
=
new
Date
(
this
.
date
)}}
this
.
fill
()},
fillDow
:
function
(){
var
i
=
this
.
weekStart
,
j
=
"<tr>"
;
while
(
i
<
this
.
weekStart
+
7
){
j
+=
'<th class="dow">'
+
e
[
this
.
language
].
daysMin
[(
i
++
)
%
7
]
+
"</th>"
}
j
+=
"</tr>"
;
this
.
picker
.
find
(
".datetimepicker-days thead"
).
append
(
j
)},
fillMonths
:
function
(){
var
l
=
""
;
var
m
=
new
Date
(
this
.
viewDate
);
for
(
var
k
=
0
;
k
<
12
;
k
++
){
m
.
setUTCMonth
(
k
);
var
j
=
this
.
onRenderMonth
(
m
);
l
+=
'<span class="'
+
j
.
join
(
" "
)
+
'">'
+
e
[
this
.
language
].
monthsShort
[
k
]
+
"</span>"
}
this
.
picker
.
find
(
".datetimepicker-months td"
).
html
(
l
)},
fill
:
function
(){
if
(
!
this
.
date
||!
this
.
viewDate
){
return
}
var
E
=
new
Date
(
this
.
viewDate
),
t
=
E
.
getUTCFullYear
(),
G
=
E
.
getUTCMonth
(),
n
=
E
.
getUTCDate
(),
A
=
E
.
getUTCHours
(),
w
=
this
.
startDate
.
getUTCFullYear
(),
B
=
this
.
startDate
.
getUTCMonth
(),
p
=
this
.
endDate
.
getUTCFullYear
(),
x
=
this
.
endDate
.
getUTCMonth
()
+
1
,
q
=
(
new
h
(
this
.
date
.
getUTCFullYear
(),
this
.
date
.
getUTCMonth
(),
this
.
date
.
getUTCDate
())).
valueOf
(),
D
=
new
Date
();
this
.
setTitle
(
".datetimepicker-days"
,
e
[
this
.
language
].
months
[
G
]
+
" "
+
t
);
if
(
this
.
formatViewType
===
"time"
){
var
k
=
this
.
getFormattedDate
();
this
.
setTitle
(
".datetimepicker-hours"
,
k
);
this
.
setTitle
(
".datetimepicker-minutes"
,
k
)}
else
{
this
.
setTitle
(
".datetimepicker-hours"
,
n
+
" "
+
e
[
this
.
language
].
months
[
G
]
+
" "
+
t
);
this
.
setTitle
(
".datetimepicker-minutes"
,
n
+
" "
+
e
[
this
.
language
].
months
[
G
]
+
" "
+
t
)}
this
.
picker
.
find
(
"tfoot th.today"
).
text
(
e
[
this
.
language
].
today
||
e
.
en
.
today
).
toggle
(
this
.
todayBtn
!==
false
);
this
.
picker
.
find
(
"tfoot th.clear"
).
text
(
e
[
this
.
language
].
clear
||
e
.
en
.
clear
).
toggle
(
this
.
clearBtn
!==
false
);
this
.
updateNavArrows
();
this
.
fillMonths
();
var
I
=
h
(
t
,
G
-
1
,
28
,
0
,
0
,
0
,
0
),
z
=
c
.
getDaysInMonth
(
I
.
getUTCFullYear
(),
I
.
getUTCMonth
());
I
.
setUTCDate
(
z
);
I
.
setUTCDate
(
z
-
(
I
.
getUTCDay
()
-
this
.
weekStart
+
7
)
%
7
);
var
j
=
new
Date
(
I
);
j
.
setUTCDate
(
j
.
getUTCDate
()
+
42
);
j
=
j
.
valueOf
();
var
r
=
[];
var
F
;
while
(
I
.
valueOf
()
<
j
){
if
(
I
.
getUTCDay
()
===
this
.
weekStart
){
r
.
push
(
"<tr>"
)}
F
=
this
.
onRenderDay
(
I
);
if
(
I
.
getUTCFullYear
()
<
t
||
(
I
.
getUTCFullYear
()
===
t
&&
I
.
getUTCMonth
()
<
G
)){
F
.
push
(
"old"
)}
else
{
if
(
I
.
getUTCFullYear
()
>
t
||
(
I
.
getUTCFullYear
()
===
t
&&
I
.
getUTCMonth
()
>
G
)){
F
.
push
(
"new"
)}}
if
(
this
.
todayHighlight
&&
I
.
getUTCFullYear
()
===
D
.
getFullYear
()
&&
I
.
getUTCMonth
()
===
D
.
getMonth
()
&&
I
.
getUTCDate
()
===
D
.
getDate
()){
F
.
push
(
"today"
)}
if
(
I
.
valueOf
()
===
q
){
F
.
push
(
"active"
)}
if
((
I
.
valueOf
()
+
86400000
)
<=
this
.
startDate
||
I
.
valueOf
()
>
this
.
endDate
||
d
.
inArray
(
I
.
getUTCDay
(),
this
.
daysOfWeekDisabled
)
!==-
1
||
d
.
inArray
(
I
.
toDateString
(),
this
.
datesDisabled
)
!==-
1
){
F
.
push
(
"disabled"
)}
r
.
push
(
'<td class="'
+
F
.
join
(
" "
)
+
'">'
+
I
.
getUTCDate
()
+
"</td>"
);
if
(
I
.
getUTCDay
()
===
this
.
weekEnd
){
r
.
push
(
"</tr>"
)}
I
.
setUTCDate
(
I
.
getUTCDate
()
+
1
)}
this
.
picker
.
find
(
".datetimepicker-days tbody"
).
empty
().
append
(
r
.
join
(
""
));
r
=
[];
var
u
=
""
,
C
=
""
,
s
=
""
;
var
l
=
this
.
hoursDisabled
||
[];
E
=
new
Date
(
this
.
viewDate
);
for
(
var
y
=
0
;
y
<
24
;
y
++
){
E
.
setUTCHours
(
y
);
F
=
this
.
onRenderHour
(
E
);
if
(
l
.
indexOf
(
y
)
!==-
1
){
F
.
push
(
"disabled"
)}
var
v
=
h
(
t
,
G
,
n
,
y
);
if
((
v
.
valueOf
()
+
3600000
)
<=
this
.
startDate
||
v
.
valueOf
()
>
this
.
endDate
){
F
.
push
(
"disabled"
)}
else
{
if
(
A
===
y
){
F
.
push
(
"active"
)}}
if
(
this
.
showMeridian
&&
e
[
this
.
language
].
meridiem
.
length
===
2
){
C
=
(
y
<
12
?
e
[
this
.
language
].
meridiem
[
0
]:
e
[
this
.
language
].
meridiem
[
1
]);
if
(
C
!==
s
){
if
(
s
!==
""
){
r
.
push
(
"</fieldset>"
)}
r
.
push
(
'<fieldset class="hour"><legend>'
+
C
.
toUpperCase
()
+
"</legend>"
)}
s
=
C
;
u
=
(
y
%
12
?
y
%
12
:
12
);
if
(
y
<
12
){
F
.
push
(
"hour_am"
)}
else
{
F
.
push
(
"hour_pm"
)}
r
.
push
(
'<span class="'
+
F
.
join
(
" "
)
+
'">'
+
u
+
"</span>"
);
if
(
y
===
23
){
r
.
push
(
"</fieldset>"
)}}
else
{
u
=
y
+
":00"
;
r
.
push
(
'<span class="'
+
F
.
join
(
" "
)
+
'">'
+
u
+
"</span>"
)}}
this
.
picker
.
find
(
".datetimepicker-hours td"
).
html
(
r
.
join
(
""
));
r
=
[];
u
=
""
;
C
=
""
;
s
=
""
;
var
m
=
this
.
minutesDisabled
||
[];
E
=
new
Date
(
this
.
viewDate
);
for
(
var
y
=
0
;
y
<
60
;
y
+=
this
.
minuteStep
){
if
(
m
.
indexOf
(
y
)
!==-
1
){
continue
}
E
.
setUTCMinutes
(
y
);
E
.
setUTCSeconds
(
0
);
F
=
this
.
onRenderMinute
(
E
);
if
(
this
.
showMeridian
&&
e
[
this
.
language
].
meridiem
.
length
===
2
){
C
=
(
A
<
12
?
e
[
this
.
language
].
meridiem
[
0
]:
e
[
this
.
language
].
meridiem
[
1
]);
if
(
C
!==
s
){
if
(
s
!==
""
){
r
.
push
(
"</fieldset>"
)}
r
.
push
(
'<fieldset class="minute"><legend>'
+
C
.
toUpperCase
()
+
"</legend>"
)}
s
=
C
;
u
=
(
A
%
12
?
A
%
12
:
12
);
r
.
push
(
'<span class="'
+
F
.
join
(
" "
)
+
'">'
+
u
+
":"
+
(
y
<
10
?
"0"
+
y
:
y
)
+
"</span>"
);
if
(
y
===
59
){
r
.
push
(
"</fieldset>"
)}}
else
{
u
=
y
+
":00"
;
r
.
push
(
'<span class="'
+
F
.
join
(
" "
)
+
'">'
+
A
+
":"
+
(
y
<
10
?
"0"
+
y
:
y
)
+
"</span>"
)}}
this
.
picker
.
find
(
".datetimepicker-minutes td"
).
html
(
r
.
join
(
""
));
var
J
=
this
.
date
.
getUTCFullYear
();
var
o
=
this
.
setTitle
(
".datetimepicker-months"
,
t
).
end
().
find
(
".month"
).
removeClass
(
"active"
);
if
(
J
===
t
){
o
.
eq
(
this
.
date
.
getUTCMonth
()).
addClass
(
"active"
)}
if
(
t
<
w
||
t
>
p
){
o
.
addClass
(
"disabled"
)}
if
(
t
===
w
){
o
.
slice
(
0
,
B
).
addClass
(
"disabled"
)}
if
(
t
===
p
){
o
.
slice
(
x
).
addClass
(
"disabled"
)}
r
=
""
;
t
=
parseInt
(
t
/
10
,
10
)
*
10
;
var
H
=
this
.
setTitle
(
".datetimepicker-years"
,
t
+
"-"
+
(
t
+
9
)).
end
().
find
(
"td"
);
t
-=
1
;
E
=
new
Date
(
this
.
viewDate
);
for
(
var
y
=-
1
;
y
<
11
;
y
++
){
E
.
setUTCFullYear
(
t
);
F
=
this
.
onRenderYear
(
E
);
if
(
y
===-
1
||
y
===
10
){
F
.
push
(
b
)}
r
+=
'<span class="'
+
F
.
join
(
" "
)
+
'">'
+
t
+
"</span>"
;
t
+=
1
}
H
.
html
(
r
);
this
.
place
()},
updateNavArrows
:
function
(){
var
m
=
new
Date
(
this
.
viewDate
),
k
=
m
.
getUTCFullYear
(),
l
=
m
.
getUTCMonth
(),
j
=
m
.
getUTCDate
(),
i
=
m
.
getUTCHours
();
switch
(
this
.
viewMode
){
case
0
:
if
(
k
<=
this
.
startDate
.
getUTCFullYear
()
&&
l
<=
this
.
startDate
.
getUTCMonth
()
&&
j
<=
this
.
startDate
.
getUTCDate
()
&&
i
<=
this
.
startDate
.
getUTCHours
()){
this
.
picker
.
find
(
".prev"
).
css
({
visibility
:
"hidden"
})}
else
{
this
.
picker
.
find
(
".prev"
).
css
({
visibility
:
"visible"
})}
if
(
k
>=
this
.
endDate
.
getUTCFullYear
()
&&
l
>=
this
.
endDate
.
getUTCMonth
()
&&
j
>=
this
.
endDate
.
getUTCDate
()
&&
i
>=
this
.
endDate
.
getUTCHours
()){
this
.
picker
.
find
(
".next"
).
css
({
visibility
:
"hidden"
})}
else
{
this
.
picker
.
find
(
".next"
).
css
({
visibility
:
"visible"
})}
break
;
case
1
:
if
(
k
<=
this
.
startDate
.
getUTCFullYear
()
&&
l
<=
this
.
startDate
.
getUTCMonth
()
&&
j
<=
this
.
startDate
.
getUTCDate
()){
this
.
picker
.
find
(
".prev"
).
css
({
visibility
:
"hidden"
})}
else
{
this
.
picker
.
find
(
".prev"
).
css
({
visibility
:
"visible"
})}
if
(
k
>=
this
.
endDate
.
getUTCFullYear
()
&&
l
>=
this
.
endDate
.
getUTCMonth
()
&&
j
>=
this
.
endDate
.
getUTCDate
()){
this
.
picker
.
find
(
".next"
).
css
({
visibility
:
"hidden"
})}
else
{
this
.
picker
.
find
(
".next"
).
css
({
visibility
:
"visible"
})}
break
;
case
2
:
if
(
k
<=
this
.
startDate
.
getUTCFullYear
()
&&
l
<=
this
.
startDate
.
getUTCMonth
()){
this
.
picker
.
find
(
".prev"
).
css
({
visibility
:
"hidden"
})}
else
{
this
.
picker
.
find
(
".prev"
).
css
({
visibility
:
"visible"
})}
if
(
k
>=
this
.
endDate
.
getUTCFullYear
()
&&
l
>=
this
.
endDate
.
getUTCMonth
()){
this
.
picker
.
find
(
".next"
).
css
({
visibility
:
"hidden"
})}
else
{
this
.
picker
.
find
(
".next"
).
css
({
visibility
:
"visible"
})}
break
;
case
3
:
case
4
:
if
(
k
<=
this
.
startDate
.
getUTCFullYear
()){
this
.
picker
.
find
(
".prev"
).
css
({
visibility
:
"hidden"
})}
else
{
this
.
picker
.
find
(
".prev"
).
css
({
visibility
:
"visible"
})}
if
(
k
>=
this
.
endDate
.
getUTCFullYear
()){
this
.
picker
.
find
(
".next"
).
css
({
visibility
:
"hidden"
})}
else
{
this
.
picker
.
find
(
".next"
).
css
({
visibility
:
"visible"
})}
break
}},
mousewheel
:
function
(
j
){
j
.
preventDefault
();
j
.
stopPropagation
();
if
(
this
.
wheelPause
){
return
}
this
.
wheelPause
=
true
;
var
i
=
j
.
originalEvent
;
var
l
=
i
.
wheelDelta
;
var
k
=
l
>
0
?
1
:(
l
===
0
)?
0
:
-
1
;
if
(
this
.
wheelViewModeNavigationInverseDirection
){
k
=-
k
}
this
.
showMode
(
k
);
setTimeout
(
d
.
proxy
(
function
(){
this
.
wheelPause
=
false
},
this
),
this
.
wheelViewModeNavigationDelay
)},
click
:
function
(
m
){
m
.
stopPropagation
();
m
.
preventDefault
();
var
n
=
d
(
m
.
target
).
closest
(
"span, td, th, legend"
);
if
(
n
.
is
(
"."
+
this
.
icontype
)){
n
=
d
(
n
).
parent
().
closest
(
"span, td, th, legend"
)}
if
(
n
.
length
===
1
){
if
(
n
.
is
(
".disabled"
)){
this
.
element
.
trigger
({
type
:
"outOfRange"
,
date
:
this
.
viewDate
,
startDate
:
this
.
startDate
,
endDate
:
this
.
endDate
});
return
}
switch
(
n
[
0
].
nodeName
.
toLowerCase
()){
case
"th"
:
switch
(
n
[
0
].
className
){
case
"switch"
:
this
.
showMode
(
1
);
break
;
case
"prev"
:
case
"next"
:
var
i
=
c
.
modes
[
this
.
viewMode
].
navStep
*
(
n
[
0
].
className
===
"prev"
?
-
1
:
1
);
switch
(
this
.
viewMode
){
case
0
:
this
.
viewDate
=
this
.
moveHour
(
this
.
viewDate
,
i
);
break
;
case
1
:
this
.
viewDate
=
this
.
moveDate
(
this
.
viewDate
,
i
);
break
;
case
2
:
this
.
viewDate
=
this
.
moveMonth
(
this
.
viewDate
,
i
);
break
;
case
3
:
case
4
:
this
.
viewDate
=
this
.
moveYear
(
this
.
viewDate
,
i
);
break
}
this
.
fill
();
this
.
element
.
trigger
({
type
:
n
[
0
].
className
+
":"
+
this
.
convertViewModeText
(
this
.
viewMode
),
date
:
this
.
viewDate
,
startDate
:
this
.
startDate
,
endDate
:
this
.
endDate
});
break
;
case
"clear"
:
this
.
reset
();
if
(
this
.
autoclose
){
this
.
hide
()}
break
;
case
"today"
:
var
j
=
new
Date
();
j
=
h
(
j
.
getFullYear
(),
j
.
getMonth
(),
j
.
getDate
(),
j
.
getHours
(),
j
.
getMinutes
(),
j
.
getSeconds
(),
0
);
if
(
j
<
this
.
startDate
){
j
=
this
.
startDate
}
else
{
if
(
j
>
this
.
endDate
){
j
=
this
.
endDate
}}
this
.
viewMode
=
this
.
startViewMode
;
this
.
showMode
(
0
);
this
.
_setDate
(
j
);
this
.
fill
();
if
(
this
.
autoclose
){
this
.
hide
()}
break
}
break
;
case
"span"
:
if
(
!
n
.
is
(
".disabled"
)){
var
p
=
this
.
viewDate
.
getUTCFullYear
(),
o
=
this
.
viewDate
.
getUTCMonth
(),
q
=
this
.
viewDate
.
getUTCDate
(),
r
=
this
.
viewDate
.
getUTCHours
(),
k
=
this
.
viewDate
.
getUTCMinutes
(),
s
=
this
.
viewDate
.
getUTCSeconds
();
if
(
n
.
is
(
".month"
)){
this
.
viewDate
.
setUTCDate
(
1
);
o
=
n
.
parent
().
find
(
"span"
).
index
(
n
);
q
=
this
.
viewDate
.
getUTCDate
();
this
.
viewDate
.
setUTCMonth
(
o
);
this
.
element
.
trigger
({
type
:
"changeMonth"
,
date
:
this
.
viewDate
});
if
(
this
.
viewSelect
>=
3
){
this
.
_setDate
(
h
(
p
,
o
,
q
,
r
,
k
,
s
,
0
))}}
else
{
if
(
n
.
is
(
".year"
)){
this
.
viewDate
.
setUTCDate
(
1
);
p
=
parseInt
(
n
.
text
(),
10
)
||
0
;
this
.
viewDate
.
setUTCFullYear
(
p
);
this
.
element
.
trigger
({
type
:
"changeYear"
,
date
:
this
.
viewDate
});
if
(
this
.
viewSelect
>=
4
){
this
.
_setDate
(
h
(
p
,
o
,
q
,
r
,
k
,
s
,
0
))}}
else
{
if
(
n
.
is
(
".hour"
)){
r
=
parseInt
(
n
.
text
(),
10
)
||
0
;
if
(
n
.
hasClass
(
"hour_am"
)
||
n
.
hasClass
(
"hour_pm"
)){
if
(
r
===
12
&&
n
.
hasClass
(
"hour_am"
)){
r
=
0
}
else
{
if
(
r
!==
12
&&
n
.
hasClass
(
"hour_pm"
)){
r
+=
12
}}}
this
.
viewDate
.
setUTCHours
(
r
);
this
.
element
.
trigger
({
type
:
"changeHour"
,
date
:
this
.
viewDate
});
if
(
this
.
viewSelect
>=
1
){
this
.
_setDate
(
h
(
p
,
o
,
q
,
r
,
k
,
s
,
0
))}}
else
{
if
(
n
.
is
(
".minute"
)){
k
=
parseInt
(
n
.
text
().
substr
(
n
.
text
().
indexOf
(
":"
)
+
1
),
10
)
||
0
;
this
.
viewDate
.
setUTCMinutes
(
k
);
this
.
element
.
trigger
({
type
:
"changeMinute"
,
date
:
this
.
viewDate
});
if
(
this
.
viewSelect
>=
0
){
this
.
_setDate
(
h
(
p
,
o
,
q
,
r
,
k
,
s
,
0
))}}}}}
if
(
this
.
viewMode
!==
0
){
var
l
=
this
.
viewMode
;
this
.
showMode
(
-
1
);
this
.
fill
();
if
(
l
===
this
.
viewMode
&&
this
.
autoclose
){
this
.
hide
()}}
else
{
this
.
fill
();
if
(
this
.
autoclose
){
this
.
hide
()}}}
break
;
case
"td"
:
if
(
n
.
is
(
".day"
)
&&!
n
.
is
(
".disabled"
)){
var
q
=
parseInt
(
n
.
text
(),
10
)
||
1
;
var
p
=
this
.
viewDate
.
getUTCFullYear
(),
o
=
this
.
viewDate
.
getUTCMonth
(),
r
=
this
.
viewDate
.
getUTCHours
(),
k
=
this
.
viewDate
.
getUTCMinutes
(),
s
=
this
.
viewDate
.
getUTCSeconds
();
if
(
n
.
is
(
".old"
)){
if
(
o
===
0
){
o
=
11
;
p
-=
1
}
else
{
o
-=
1
}}
else
{
if
(
n
.
is
(
".new"
)){
if
(
o
===
11
){
o
=
0
;
p
+=
1
}
else
{
o
+=
1
}}}
this
.
viewDate
.
setUTCFullYear
(
p
);
this
.
viewDate
.
setUTCMonth
(
o
,
q
);
this
.
element
.
trigger
({
type
:
"changeDay"
,
date
:
this
.
viewDate
});
if
(
this
.
viewSelect
>=
2
){
this
.
_setDate
(
h
(
p
,
o
,
q
,
r
,
k
,
s
,
0
))}}
var
l
=
this
.
viewMode
;
this
.
showMode
(
-
1
);
this
.
fill
();
if
(
l
===
this
.
viewMode
&&
this
.
autoclose
){
this
.
hide
()}
break
}}},
_setDate
:
function
(
i
,
k
){
if
(
!
k
||
k
===
"date"
){
this
.
date
=
i
}
if
(
!
k
||
k
===
"view"
){
this
.
viewDate
=
i
}
this
.
fill
();
this
.
setValue
();
var
j
;
if
(
this
.
isInput
){
j
=
this
.
element
}
else
{
if
(
this
.
component
){
j
=
this
.
element
.
find
(
"input"
)}}
if
(
j
){
j
.
change
()}
this
.
element
.
trigger
({
type
:
"changeDate"
,
date
:
this
.
getDate
()});
if
(
i
===
null
){
this
.
date
=
this
.
viewDate
}},
moveMinute
:
function
(
j
,
i
){
if
(
!
i
){
return
j
}
var
k
=
new
Date
(
j
.
valueOf
());
k
.
setUTCMinutes
(
k
.
getUTCMinutes
()
+
(
i
*
this
.
minuteStep
));
return
k
},
moveHour
:
function
(
j
,
i
){
if
(
!
i
){
return
j
}
var
k
=
new
Date
(
j
.
valueOf
());
k
.
setUTCHours
(
k
.
getUTCHours
()
+
i
);
return
k
},
moveDate
:
function
(
j
,
i
){
if
(
!
i
){
return
j
}
var
k
=
new
Date
(
j
.
valueOf
());
k
.
setUTCDate
(
k
.
getUTCDate
()
+
i
);
return
k
},
moveMonth
:
function
(
j
,
k
){
if
(
!
k
){
return
j
}
var
n
=
new
Date
(
j
.
valueOf
()),
r
=
n
.
getUTCDate
(),
o
=
n
.
getUTCMonth
(),
m
=
Math
.
abs
(
k
),
q
,
p
;
k
=
k
>
0
?
1
:
-
1
;
if
(
m
===
1
){
p
=
k
===-
1
?
function
(){
return
n
.
getUTCMonth
()
===
o
}:
function
(){
return
n
.
getUTCMonth
()
!==
q
};
q
=
o
+
k
;
n
.
setUTCMonth
(
q
);
if
(
q
<
0
||
q
>
11
){
q
=
(
q
+
12
)
%
12
}}
else
{
for
(
var
l
=
0
;
l
<
m
;
l
++
){
n
=
this
.
moveMonth
(
n
,
k
)}
q
=
n
.
getUTCMonth
();
n
.
setUTCDate
(
r
);
p
=
function
(){
return
q
!==
n
.
getUTCMonth
()}}
while
(
p
()){
n
.
setUTCDate
(
--
r
);
n
.
setUTCMonth
(
q
)}
return
n
},
moveYear
:
function
(
j
,
i
){
return
this
.
moveMonth
(
j
,
i
*
12
)},
dateWithinRange
:
function
(
i
){
return
i
>=
this
.
startDate
&&
i
<=
this
.
endDate
},
keydown
:
function
(
o
){
if
(
this
.
picker
.
is
(
":not(:visible)"
)){
if
(
o
.
keyCode
===
27
){
this
.
show
()}
return
}
var
k
=
false
,
j
,
i
,
n
;
switch
(
o
.
keyCode
){
case
27
:
this
.
hide
();
o
.
preventDefault
();
break
;
case
37
:
case
39
:
if
(
!
this
.
keyboardNavigation
){
break
}
j
=
o
.
keyCode
===
37
?
-
1
:
1
;
var
m
=
this
.
viewMode
;
if
(
o
.
ctrlKey
){
m
+=
2
}
else
{
if
(
o
.
shiftKey
){
m
+=
1
}}
if
(
m
===
4
){
i
=
this
.
moveYear
(
this
.
date
,
j
);
n
=
this
.
moveYear
(
this
.
viewDate
,
j
)}
else
{
if
(
m
===
3
){
i
=
this
.
moveMonth
(
this
.
date
,
j
);
n
=
this
.
moveMonth
(
this
.
viewDate
,
j
)}
else
{
if
(
m
===
2
){
i
=
this
.
moveDate
(
this
.
date
,
j
);
n
=
this
.
moveDate
(
this
.
viewDate
,
j
)}
else
{
if
(
m
===
1
){
i
=
this
.
moveHour
(
this
.
date
,
j
);
n
=
this
.
moveHour
(
this
.
viewDate
,
j
)}
else
{
if
(
m
===
0
){
i
=
this
.
moveMinute
(
this
.
date
,
j
);
n
=
this
.
moveMinute
(
this
.
viewDate
,
j
)}}}}}
if
(
this
.
dateWithinRange
(
i
)){
this
.
date
=
i
;
this
.
viewDate
=
n
;
this
.
setValue
();
this
.
update
();
o
.
preventDefault
();
k
=
true
}
break
;
case
38
:
case
40
:
if
(
!
this
.
keyboardNavigation
){
break
}
j
=
o
.
keyCode
===
38
?
-
1
:
1
;
m
=
this
.
viewMode
;
if
(
o
.
ctrlKey
){
m
+=
2
}
else
{
if
(
o
.
shiftKey
){
m
+=
1
}}
if
(
m
===
4
){
i
=
this
.
moveYear
(
this
.
date
,
j
);
n
=
this
.
moveYear
(
this
.
viewDate
,
j
)}
else
{
if
(
m
===
3
){
i
=
this
.
moveMonth
(
this
.
date
,
j
);
n
=
this
.
moveMonth
(
this
.
viewDate
,
j
)}
else
{
if
(
m
===
2
){
i
=
this
.
moveDate
(
this
.
date
,
j
*
7
);
n
=
this
.
moveDate
(
this
.
viewDate
,
j
*
7
)}
else
{
if
(
m
===
1
){
if
(
this
.
showMeridian
){
i
=
this
.
moveHour
(
this
.
date
,
j
*
6
);
n
=
this
.
moveHour
(
this
.
viewDate
,
j
*
6
)}
else
{
i
=
this
.
moveHour
(
this
.
date
,
j
*
4
);
n
=
this
.
moveHour
(
this
.
viewDate
,
j
*
4
)}}
else
{
if
(
m
===
0
){
i
=
this
.
moveMinute
(
this
.
date
,
j
*
4
);
n
=
this
.
moveMinute
(
this
.
viewDate
,
j
*
4
)}}}}}
if
(
this
.
dateWithinRange
(
i
)){
this
.
date
=
i
;
this
.
viewDate
=
n
;
this
.
setValue
();
this
.
update
();
o
.
preventDefault
();
k
=
true
}
break
;
case
13
:
if
(
this
.
viewMode
!==
0
){
var
p
=
this
.
viewMode
;
this
.
showMode
(
-
1
);
this
.
fill
();
if
(
p
===
this
.
viewMode
&&
this
.
autoclose
){
this
.
hide
()}}
else
{
this
.
fill
();
if
(
this
.
autoclose
){
this
.
hide
()}}
o
.
preventDefault
();
break
;
case
9
:
this
.
hide
();
break
}
if
(
k
){
var
l
;
if
(
this
.
isInput
){
l
=
this
.
element
}
else
{
if
(
this
.
component
){
l
=
this
.
element
.
find
(
"input"
)}}
if
(
l
){
l
.
change
()}
this
.
element
.
trigger
({
type
:
"changeDate"
,
date
:
this
.
getDate
()})}},
showMode
:
function
(
i
){
if
(
i
){
var
j
=
Math
.
max
(
0
,
Math
.
min
(
c
.
modes
.
length
-
1
,
this
.
viewMode
+
i
));
if
(
j
>=
this
.
minView
&&
j
<=
this
.
maxView
){
this
.
element
.
trigger
({
type
:
"changeMode"
,
date
:
this
.
viewDate
,
oldViewMode
:
this
.
viewMode
,
newViewMode
:
j
});
this
.
viewMode
=
j
}}
this
.
picker
.
find
(
">div"
).
hide
().
filter
(
".datetimepicker-"
+
c
.
modes
[
this
.
viewMode
].
clsName
).
css
(
"display"
,
"block"
);
this
.
updateNavArrows
()},
reset
:
function
(){
this
.
_setDate
(
null
,
"date"
)},
convertViewModeText
:
function
(
i
){
switch
(
i
){
case
4
:
return
"decade"
;
case
3
:
return
"year"
;
case
2
:
return
"month"
;
case
1
:
return
"day"
;
case
0
:
return
"hour"
}}};
var
b
=
d
.
fn
.
datetimepicker
;
d
.
fn
.
datetimepicker
=
function
(
k
){
var
i
=
Array
.
apply
(
null
,
arguments
);
i
.
shift
();
var
j
;
this
.
each
(
function
(){
var
n
=
d
(
this
),
m
=
n
.
data
(
"datetimepicker"
),
l
=
typeof
k
===
"object"
&&
k
;
if
(
!
m
){
n
.
data
(
"datetimepicker"
,(
m
=
new
g
(
this
,
d
.
extend
({},
d
.
fn
.
datetimepicker
.
defaults
,
l
))))}
if
(
typeof
k
===
"string"
&&
typeof
m
[
k
]
===
"function"
){
j
=
m
[
k
].
apply
(
m
,
i
);
if
(
j
!==
f
){
return
false
}}});
if
(
j
!==
f
){
return
j
}
else
{
return
this
}};
d
.
fn
.
datetimepicker
.
defaults
=
{};
d
.
fn
.
datetimepicker
.
Constructor
=
g
;
var
e
=
d
.
fn
.
datetimepicker
.
dates
=
{
en
:{
days
:[
"Sunday"
,
"Monday"
,
"Tuesday"
,
"Wednesday"
,
"Thursday"
,
"Friday"
,
"Saturday"
,
"Sunday"
],
daysShort
:[
"Sun"
,
"Mon"
,
"Tue"
,
"Wed"
,
"Thu"
,
"Fri"
,
"Sat"
,
"Sun"
],
daysMin
:[
"Su"
,
"Mo"
,
"Tu"
,
"We"
,
"Th"
,
"Fr"
,
"Sa"
,
"Su"
],
months
:[
"January"
,
"February"
,
"March"
,
"April"
,
"May"
,
"June"
,
"July"
,
"August"
,
"September"
,
"October"
,
"November"
,
"December"
],
monthsShort
:[
"Jan"
,
"Feb"
,
"Mar"
,
"Apr"
,
"May"
,
"Jun"
,
"Jul"
,
"Aug"
,
"Sep"
,
"Oct"
,
"Nov"
,
"Dec"
],
meridiem
:[
"am"
,
"pm"
],
suffix
:[
"st"
,
"nd"
,
"rd"
,
"th"
],
today
:
"Today"
,
clear
:
"Clear"
}};
var
c
=
{
modes
:[{
clsName
:
"minutes"
,
navFnc
:
"Hours"
,
navStep
:
1
},{
clsName
:
"hours"
,
navFnc
:
"Date"
,
navStep
:
1
},{
clsName
:
"days"
,
navFnc
:
"Month"
,
navStep
:
1
},{
clsName
:
"months"
,
navFnc
:
"FullYear"
,
navStep
:
1
},{
clsName
:
"years"
,
navFnc
:
"FullYear"
,
navStep
:
10
}],
isLeapYear
:
function
(
i
){
return
(((
i
%
4
===
0
)
&&
(
i
%
100
!==
0
))
||
(
i
%
400
===
0
))},
getDaysInMonth
:
function
(
i
,
j
){
return
[
31
,(
c
.
isLeapYear
(
i
)?
29
:
28
),
31
,
30
,
31
,
30
,
31
,
31
,
30
,
31
,
30
,
31
][
j
]},
getDefaultFormat
:
function
(
i
,
j
){
if
(
i
===
"standard"
){
if
(
j
===
"input"
){
return
"yyyy-mm-dd hh:ii"
}
else
{
return
"yyyy-mm-dd hh:ii:ss"
}}
else
{
if
(
i
===
"php"
){
if
(
j
===
"input"
){
return
"Y-m-d H:i"
}
else
{
return
"Y-m-d H:i:s"
}}
else
{
throw
new
Error
(
"Invalid format type."
)}}},
validParts
:
function
(
i
){
if
(
i
===
"standard"
){
return
/t|hh
?
|HH
?
|p|P|z|Z|ii
?
|ss
?
|dd
?
|DD
?
|mm
?
|MM
?
|yy
(?:
yy
)?
/g
}
else
{
if
(
i
===
"php"
){
return
/
[
dDjlNwzFmMnStyYaABgGhHis
]
/g
}
else
{
throw
new
Error
(
"Invalid format type."
)}}},
nonpunctuation
:
/
[^
-
\/
:-@
\[
-`{-~
\t\n\r
TZ
]
+/g
,
parseFormat
:
function
(
l
,
j
){
var
i
=
l
.
replace
(
this
.
validParts
(
j
),
"
\
0"
).
split
(
"
\
0"
),
k
=
l
.
match
(
this
.
validParts
(
j
));
if
(
!
i
||!
i
.
length
||!
k
||
k
.
length
===
0
){
throw
new
Error
(
"Invalid date format."
)}
return
{
separators
:
i
,
parts
:
k
}},
parseDate
:
function
(
A
,
y
,
v
,
j
,
r
){
if
(
A
instanceof
Date
){
var
u
=
new
Date
(
A
.
valueOf
()
-
A
.
getTimezoneOffset
()
*
60000
);
u
.
setMilliseconds
(
0
);
return
u
}
if
(
/^
\d{4}\-\d{1,2}\-\d{1,2}
$/
.
test
(
A
)){
y
=
this
.
parseFormat
(
"yyyy-mm-dd"
,
j
)}
if
(
/^
\d{4}\-\d{1,2}\-\d{1,2}[
T
]\d{1,2}\:\d{1,2}
$/
.
test
(
A
)){
y
=
this
.
parseFormat
(
"yyyy-mm-dd hh:ii"
,
j
)}
if
(
/^
\d{4}\-\d{1,2}\-\d{1,2}[
T
]\d{1,2}\:\d{1,2}\:\d{1,2}[
Z
]{0,1}
$/
.
test
(
A
)){
y
=
this
.
parseFormat
(
"yyyy-mm-dd hh:ii:ss"
,
j
)}
if
(
/^
[
-+
]\d
+
[
dmwy
]([\s
,
]
+
[
-+
]\d
+
[
dmwy
])
*$/
.
test
(
A
)){
var
l
=
/
([
-+
]\d
+
)([
dmwy
])
/
,
q
=
A
.
match
(
/
([
-+
]\d
+
)([
dmwy
])
/g
),
t
,
p
;
A
=
new
Date
();
for
(
var
x
=
0
;
x
<
q
.
length
;
x
++
){
t
=
l
.
exec
(
q
[
x
]);
p
=
parseInt
(
t
[
1
]);
switch
(
t
[
2
]){
case
"d"
:
A
.
setUTCDate
(
A
.
getUTCDate
()
+
p
);
break
;
case
"m"
:
A
=
g
.
prototype
.
moveMonth
.
call
(
g
.
prototype
,
A
,
p
);
break
;
case
"w"
:
A
.
setUTCDate
(
A
.
getUTCDate
()
+
p
*
7
);
break
;
case
"y"
:
A
=
g
.
prototype
.
moveYear
.
call
(
g
.
prototype
,
A
,
p
);
break
}}
return
h
(
A
.
getUTCFullYear
(),
A
.
getUTCMonth
(),
A
.
getUTCDate
(),
A
.
getUTCHours
(),
A
.
getUTCMinutes
(),
A
.
getUTCSeconds
(),
0
)}
var
q
=
A
&&
A
.
toString
().
match
(
this
.
nonpunctuation
)
||
[],
A
=
new
Date
(
0
,
0
,
0
,
0
,
0
,
0
,
0
),
m
=
{},
z
=
[
"hh"
,
"h"
,
"ii"
,
"i"
,
"ss"
,
"s"
,
"yyyy"
,
"yy"
,
"M"
,
"MM"
,
"m"
,
"mm"
,
"D"
,
"DD"
,
"d"
,
"dd"
,
"H"
,
"HH"
,
"p"
,
"P"
,
"z"
,
"Z"
],
o
=
{
hh
:
function
(
s
,
i
){
return
s
.
setUTCHours
(
i
)},
h
:
function
(
s
,
i
){
return
s
.
setUTCHours
(
i
)},
HH
:
function
(
s
,
i
){
return
s
.
setUTCHours
(
i
===
12
?
0
:
i
)},
H
:
function
(
s
,
i
){
return
s
.
setUTCHours
(
i
===
12
?
0
:
i
)},
ii
:
function
(
s
,
i
){
return
s
.
setUTCMinutes
(
i
)},
i
:
function
(
s
,
i
){
return
s
.
setUTCMinutes
(
i
)},
ss
:
function
(
s
,
i
){
return
s
.
setUTCSeconds
(
i
)},
s
:
function
(
s
,
i
){
return
s
.
setUTCSeconds
(
i
)},
yyyy
:
function
(
s
,
i
){
return
s
.
setUTCFullYear
(
i
)},
yy
:
function
(
s
,
i
){
return
s
.
setUTCFullYear
(
2000
+
i
)},
m
:
function
(
s
,
i
){
i
-=
1
;
while
(
i
<
0
){
i
+=
12
}
i
%=
12
;
s
.
setUTCMonth
(
i
);
while
(
s
.
getUTCMonth
()
!==
i
){
if
(
isNaN
(
s
.
getUTCMonth
())){
return
s
}
else
{
s
.
setUTCDate
(
s
.
getUTCDate
()
-
1
)}}
return
s
},
d
:
function
(
s
,
i
){
return
s
.
setUTCDate
(
i
)},
p
:
function
(
s
,
i
){
return
s
.
setUTCHours
(
i
===
1
?
s
.
getUTCHours
()
+
12
:
s
.
getUTCHours
())},
z
:
function
(){
return
r
}},
B
,
k
,
t
;
o
.
M
=
o
.
MM
=
o
.
mm
=
o
.
m
;
o
.
dd
=
o
.
d
;
o
.
P
=
o
.
p
;
o
.
Z
=
o
.
z
;
A
=
h
(
A
.
getFullYear
(),
A
.
getMonth
(),
A
.
getDate
(),
A
.
getHours
(),
A
.
getMinutes
(),
A
.
getSeconds
());
if
(
q
.
length
===
y
.
parts
.
length
){
for
(
var
x
=
0
,
w
=
y
.
parts
.
length
;
x
<
w
;
x
++
){
B
=
parseInt
(
q
[
x
],
10
);
t
=
y
.
parts
[
x
];
if
(
isNaN
(
B
)){
switch
(
t
){
case
"MM"
:
k
=
d
(
e
[
v
].
months
).
filter
(
function
(){
var
i
=
this
.
slice
(
0
,
q
[
x
].
length
),
s
=
q
[
x
].
slice
(
0
,
i
.
length
);
return
i
===
s
});
B
=
d
.
inArray
(
k
[
0
],
e
[
v
].
months
)
+
1
;
break
;
case
"M"
:
k
=
d
(
e
[
v
].
monthsShort
).
filter
(
function
(){
var
i
=
this
.
slice
(
0
,
q
[
x
].
length
),
s
=
q
[
x
].
slice
(
0
,
i
.
length
);
return
i
.
toLowerCase
()
===
s
.
toLowerCase
()});
B
=
d
.
inArray
(
k
[
0
],
e
[
v
].
monthsShort
)
+
1
;
break
;
case
"p"
:
case
"P"
:
B
=
d
.
inArray
(
q
[
x
].
toLowerCase
(),
e
[
v
].
meridiem
);
break
;
case
"z"
:
case
"Z"
:
r
;
break
}}
m
[
t
]
=
B
}
for
(
var
x
=
0
,
n
;
x
<
z
.
length
;
x
++
){
n
=
z
[
x
];
if
(
n
in
m
&&!
isNaN
(
m
[
n
])){
o
[
n
](
A
,
m
[
n
])}}}
return
A
},
formatDate
:
function
(
l
,
q
,
m
,
p
,
o
){
if
(
l
===
null
){
return
""
}
var
k
;
if
(
p
===
"standard"
){
k
=
{
t
:
l
.
getTime
(),
yy
:
l
.
getUTCFullYear
().
toString
().
substring
(
2
),
yyyy
:
l
.
getUTCFullYear
(),
m
:
l
.
getUTCMonth
()
+
1
,
M
:
e
[
m
].
monthsShort
[
l
.
getUTCMonth
()],
MM
:
e
[
m
].
months
[
l
.
getUTCMonth
()],
d
:
l
.
getUTCDate
(),
D
:
e
[
m
].
daysShort
[
l
.
getUTCDay
()],
DD
:
e
[
m
].
days
[
l
.
getUTCDay
()],
p
:(
e
[
m
].
meridiem
.
length
===
2
?
e
[
m
].
meridiem
[
l
.
getUTCHours
()
<
12
?
0
:
1
]:
""
),
h
:
l
.
getUTCHours
(),
i
:
l
.
getUTCMinutes
(),
s
:
l
.
getUTCSeconds
(),
z
:
o
};
if
(
e
[
m
].
meridiem
.
length
===
2
){
k
.
H
=
(
k
.
h
%
12
===
0
?
12
:
k
.
h
%
12
)}
else
{
k
.
H
=
k
.
h
}
k
.
HH
=
(
k
.
H
<
10
?
"0"
:
""
)
+
k
.
H
;
k
.
P
=
k
.
p
.
toUpperCase
();
k
.
Z
=
k
.
z
;
k
.
hh
=
(
k
.
h
<
10
?
"0"
:
""
)
+
k
.
h
;
k
.
ii
=
(
k
.
i
<
10
?
"0"
:
""
)
+
k
.
i
;
k
.
ss
=
(
k
.
s
<
10
?
"0"
:
""
)
+
k
.
s
;
k
.
dd
=
(
k
.
d
<
10
?
"0"
:
""
)
+
k
.
d
;
k
.
mm
=
(
k
.
m
<
10
?
"0"
:
""
)
+
k
.
m
}
else
{
if
(
p
===
"php"
){
k
=
{
y
:
l
.
getUTCFullYear
().
toString
().
substring
(
2
),
Y
:
l
.
getUTCFullYear
(),
F
:
e
[
m
].
months
[
l
.
getUTCMonth
()],
M
:
e
[
m
].
monthsShort
[
l
.
getUTCMonth
()],
n
:
l
.
getUTCMonth
()
+
1
,
t
:
c
.
getDaysInMonth
(
l
.
getUTCFullYear
(),
l
.
getUTCMonth
()),
j
:
l
.
getUTCDate
(),
l
:
e
[
m
].
days
[
l
.
getUTCDay
()],
D
:
e
[
m
].
daysShort
[
l
.
getUTCDay
()],
w
:
l
.
getUTCDay
(),
N
:(
l
.
getUTCDay
()
===
0
?
7
:
l
.
getUTCDay
()),
S
:(
l
.
getUTCDate
()
%
10
<=
e
[
m
].
suffix
.
length
?
e
[
m
].
suffix
[
l
.
getUTCDate
()
%
10
-
1
]:
""
),
a
:(
e
[
m
].
meridiem
.
length
===
2
?
e
[
m
].
meridiem
[
l
.
getUTCHours
()
<
12
?
0
:
1
]:
""
),
g
:(
l
.
getUTCHours
()
%
12
===
0
?
12
:
l
.
getUTCHours
()
%
12
),
G
:
l
.
getUTCHours
(),
i
:
l
.
getUTCMinutes
(),
s
:
l
.
getUTCSeconds
()};
k
.
m
=
(
k
.
n
<
10
?
"0"
:
""
)
+
k
.
n
;
k
.
d
=
(
k
.
j
<
10
?
"0"
:
""
)
+
k
.
j
;
k
.
A
=
k
.
a
.
toString
().
toUpperCase
();
k
.
h
=
(
k
.
g
<
10
?
"0"
:
""
)
+
k
.
g
;
k
.
H
=
(
k
.
G
<
10
?
"0"
:
""
)
+
k
.
G
;
k
.
i
=
(
k
.
i
<
10
?
"0"
:
""
)
+
k
.
i
;
k
.
s
=
(
k
.
s
<
10
?
"0"
:
""
)
+
k
.
s
}
else
{
throw
new
Error
(
"Invalid format type."
)}}
var
l
=
[],
r
=
d
.
extend
([],
q
.
separators
);
for
(
var
n
=
0
,
j
=
q
.
parts
.
length
;
n
<
j
;
n
++
){
if
(
r
.
length
){
l
.
push
(
r
.
shift
())}
l
.
push
(
k
[
q
.
parts
[
n
]])}
if
(
r
.
length
){
l
.
push
(
r
.
shift
())}
return
l
.
join
(
""
)},
convertViewMode
:
function
(
i
){
switch
(
i
){
case
4
:
case
"decade"
:
i
=
4
;
break
;
case
3
:
case
"year"
:
i
=
3
;
break
;
case
2
:
case
"month"
:
i
=
2
;
break
;
case
1
:
case
"day"
:
i
=
1
;
break
;
case
0
:
case
"hour"
:
i
=
0
;
break
}
return
i
},
headTemplate
:
'<thead><tr><th class="prev"><i class="{iconType} {leftArrow}"/></th><th colspan="5" class="switch"></th><th class="next"><i class="{iconType} {rightArrow}"/></th></tr></thead>'
,
headTemplateV3
:
'<thead><tr><th class="prev"><span class="{iconType} {leftArrow}"></span> </th><th colspan="5" class="switch"></th><th class="next"><span class="{iconType} {rightArrow}"></span> </th></tr></thead>'
,
contTemplate
:
'<tbody><tr><td colspan="7"></td></tr></tbody>'
,
footTemplate
:
'<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>'
};
c
.
template
=
'<div class="datetimepicker"><div class="datetimepicker-minutes"><table class=" table-condensed">'
+
c
.
headTemplate
+
c
.
contTemplate
+
c
.
footTemplate
+
'</table></div><div class="datetimepicker-hours"><table class=" table-condensed">'
+
c
.
headTemplate
+
c
.
contTemplate
+
c
.
footTemplate
+
'</table></div><div class="datetimepicker-days"><table class=" table-condensed">'
+
c
.
headTemplate
+
"<tbody></tbody>"
+
c
.
footTemplate
+
'</table></div><div class="datetimepicker-months"><table class="table-condensed">'
+
c
.
headTemplate
+
c
.
contTemplate
+
c
.
footTemplate
+
'</table></div><div class="datetimepicker-years"><table class="table-condensed">'
+
c
.
headTemplate
+
c
.
contTemplate
+
c
.
footTemplate
+
"</table></div></div>"
;
c
.
templateV3
=
'<div class="datetimepicker"><div class="datetimepicker-minutes"><table class=" table-condensed">'
+
c
.
headTemplateV3
+
c
.
contTemplate
+
c
.
footTemplate
+
'</table></div><div class="datetimepicker-hours"><table class=" table-condensed">'
+
c
.
headTemplateV3
+
c
.
contTemplate
+
c
.
footTemplate
+
'</table></div><div class="datetimepicker-days"><table class=" table-condensed">'
+
c
.
headTemplateV3
+
"<tbody></tbody>"
+
c
.
footTemplate
+
'</table></div><div class="datetimepicker-months"><table class="table-condensed">'
+
c
.
headTemplateV3
+
c
.
contTemplate
+
c
.
footTemplate
+
'</table></div><div class="datetimepicker-years"><table class="table-condensed">'
+
c
.
headTemplateV3
+
c
.
contTemplate
+
c
.
footTemplate
+
"</table></div></div>"
;
d
.
fn
.
datetimepicker
.
DPGlobal
=
c
;
d
.
fn
.
datetimepicker
.
noConflict
=
function
(){
d
.
fn
.
datetimepicker
=
b
;
return
this
};
d
(
document
).
on
(
"focus.datetimepicker.data-api click.datetimepicker.data-api"
,
'[data-provide="datetimepicker"]'
,
function
(
j
){
var
i
=
d
(
this
);
if
(
i
.
data
(
"datetimepicker"
)){
return
}
j
.
preventDefault
();
i
.
datetimepicker
(
"show"
)});
d
(
function
(){
d
(
'[data-provide="datetimepicker-inline"]'
).
datetimepicker
()})}));
\ No newline at end of file
public/resource/lib/js/zw.pagination.js
0 → 100644
View file @
e2bd8d3f
/**
* Created by zw on 2017/12/22.
*/
var
pagination_page_no
=
1
;
//页码
var
pagination_pages
=
1
;
//总页数
var
pagination_totals
=
0
;
//总条数
var
pagination_pagesize
=
15
;
//每页显示多少条
function
addpage
(
methodName
)
{
alert
(
111111111
);
if
(
pagination_page_no
>
pagination_pages
)
pagination_page_no
=
pagination_pages
;
$
(
'.pageinfo'
).
pagination
({
pages
:
pagination_pages
,
//总页数
styleClass
:
[
'pagination-large'
],
showCtrl
:
true
,
displayPage
:
6
,
currentPage
:
pagination_page_no
,
//当前页码
onSelect
:
function
(
num
)
{
pagination_page_no
=
num
;
if
(
typeof
methodName
===
"function"
)
{
methodName
();
}
}
});
/*
$('.pageinfo').find('span:contains(共)').append("(" + pagination_totals + "条记录)");
var pageselect = ' <select class="page_size_select" style="width:80px;">';
var pagearr = [15, 30, 50, 100];
$.each(pagearr, function () {
if (this == pagination_pagesize) {
pageselect = pageselect + '<option value="' + this + '" selected>' + this + '</option>';
} else {
pageselect = pageselect + '<option value="' + this + '" >' + this + '</option>';
}
});
pageselect = pageselect + '</select> ';
if (!$('.page_size_select').val()) {
$('.pageinfo').find('span:contains(共)').prepend(pageselect);
}
$('.page_size_select').one('change', function () {
pagination_pagesize = $(this).val();
methodName();
});*/
};
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment