Commit 0b2d343d60b5d71407f49f5e6a9c8e86694bba05
1 parent
53b5851d
加入日期控件
Showing
9 changed files
with
1137 additions
and
586 deletions
src/main/resources/static/index.html
| 1 | -<!DOCTYPE html> | |
| 2 | -<html> | |
| 3 | -<head> | |
| 4 | -<meta charset="UTF-8"> | |
| 5 | -<title>调度系统</title> | |
| 6 | -<meta name=”renderer” content=”webkit”> | |
| 7 | -<meta http-equiv=”X-UA-Compatible” content=”IE=Edge,chrome=1″ > | |
| 8 | - | |
| 9 | -<!-- Font Awesome 图标字体 --> | |
| 10 | -<link href="metronic_v4.5.4/plugins/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css" /> | |
| 11 | -<!-- Bootstrap style --> | |
| 12 | -<link href="metronic_v4.5.4/plugins/bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css" /> | |
| 13 | -<!-- jsTree 数插件 --> | |
| 14 | -<link href="metronic_v4.5.4/plugins/jstree/dist/themes/default/style.min.css" rel="stylesheet" type="text/css" /> | |
| 15 | -<!-- multi-select 多选下拉框美化 --> | |
| 16 | -<link href="metronic_v4.5.4/plugins/jquery-multi-select/css/multi-select.css" rel="stylesheet" type="text/css" /> | |
| 17 | -<!-- metronic style --> | |
| 18 | -<link href="metronic_v4.5.4/layout4/css/themes/default.min.css" rel="stylesheet" type="text/css" id="style_color" /> | |
| 19 | -<link href="metronic_v4.5.4/css/components.css" rel="stylesheet" type="text/css" /> | |
| 20 | -<link href="metronic_v4.5.4/css/plugins.css" rel="stylesheet" type="text/css" /> | |
| 21 | -<link href="metronic_v4.5.4/layout4/css/layout.min.css" rel="stylesheet" type="text/css" /> | |
| 22 | -<link href="metronic_v4.5.4/layout4/css/custom.min.css" rel="stylesheet" type="text/css" /> | |
| 23 | -<!-- select2 下拉框插件 --> | |
| 24 | -<link href="metronic_v4.5.4/plugins/select2/css/select2.min.css" rel="stylesheet" type="text/css" /> | |
| 25 | -<link href="metronic_v4.5.4/plugins/select2/css/select2-bootstrap.min.css" rel="stylesheet" type="text/css" /> | |
| 26 | -<!-- layer 弹层 插件 --> | |
| 27 | -<link href="assets/plugins/layer-v2.2/layer/skin/layer.css" rel="stylesheet" type="text/css" /> | |
| 28 | -<!-- iCheck 单选框和复选框 --> | |
| 29 | -<link href="metronic_v4.5.4/plugins/icheck/skins/all.css" rel="stylesheet" type="text/css" /> | |
| 30 | -<style type="text/css"> | |
| 31 | -.searchForm{ | |
| 32 | -} | |
| 33 | -.searchForm .form-group .control-label{ | |
| 34 | - padding-right: 0px; | |
| 35 | - text-align: right; | |
| 36 | - margin-top: 7px; | |
| 37 | -} | |
| 38 | -.searchForm .form-group>div{ | |
| 39 | - padding-left: 10px; | |
| 40 | - padding-right: 0px; | |
| 41 | -} | |
| 42 | -.searchForm .row>div{ | |
| 43 | - padding-left: 0px; | |
| 44 | - padding-right: 0px; | |
| 45 | - padding: 5px 0 5px 0; | |
| 46 | - width: 270px; | |
| 47 | - display: inline-block; | |
| 48 | -} | |
| 49 | -.searchForm .form-actions{ | |
| 50 | - | |
| 51 | -} | |
| 52 | -tr.row-active td { | |
| 53 | - border-bottom: 1px solid blue!important; | |
| 54 | - color: blue; | |
| 55 | -} | |
| 56 | -.ms-container .ms-selectable li.ms-elem-selectable, .ms-container .ms-selection li.ms-elem-selection { | |
| 57 | - font-size: 14px; | |
| 58 | -} | |
| 59 | -.ms-container .ms-selectable li.ms-elem-selectable, .ms-container .ms-selection li.ms-elem-selection{ | |
| 60 | - padding: 6px 26px; | |
| 61 | -} | |
| 62 | -.ms-container .ms-list{ | |
| 63 | - height: 306px; | |
| 64 | -} | |
| 65 | -.ms-container .ms-selectable, .ms-container .ms-selection{ | |
| 66 | - width: 47%; | |
| 67 | -} | |
| 68 | -.ms-container { | |
| 69 | - width: 470px; | |
| 70 | - margin: auto; | |
| 71 | -} | |
| 72 | -.multi-custom-header-left{ | |
| 73 | - text-align: center; | |
| 74 | - padding: 7px; | |
| 75 | - color: #3B3F51; | |
| 76 | -} | |
| 77 | -.multi-custom-header-right{ | |
| 78 | - text-align: center; | |
| 79 | - padding: 7px; | |
| 80 | - font-weight: bold; | |
| 81 | - color: #36C6D3; | |
| 82 | -} | |
| 83 | -.mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content { | |
| 84 | - padding: 0 55px 0 0px; | |
| 85 | -} | |
| 86 | -.mt-element-list .list-simple.mt-list-container ul > .mt-list-item { | |
| 87 | - padding: 3.3px 0; | |
| 88 | -} | |
| 89 | -</style> | |
| 90 | -</head> | |
| 91 | -<body class="page-container-bg-solid page-header-fixed page-sidebar-closed-hide-logo page-sidebar-fixed"> | |
| 92 | - <div class="page-header navbar navbar-fixed-top"> | |
| 93 | - <div class="page-header-inner "> | |
| 94 | - <!-- LOGO --> | |
| 95 | - <div class="page-logo"> | |
| 96 | - <a href="index.html"> | |
| 97 | - <img src="" alt="logo" class="logo-default" /> </a> | |
| 98 | - <div class="menu-toggler sidebar-toggler"> | |
| 99 | - </div> | |
| 100 | - </div> | |
| 101 | - <!-- END LOGO --> | |
| 102 | - <a href="javascript:;" class="menu-toggler responsive-toggler" data-toggle="collapse" data-target=".navbar-collapse"> </a> | |
| 103 | - <div class="page-top"> | |
| 104 | - <form class="search-form" action="page_general_search_2.html" method="GET"> | |
| 105 | - <div class="input-group"> | |
| 106 | - <input type="text" class="form-control input-sm" placeholder="Search..." name="query"> | |
| 107 | - <span class="input-group-btn"> | |
| 108 | - <a href="javascript:;" class="btn submit"> | |
| 109 | - <i class="fa fa-search"></i> | |
| 110 | - </a> | |
| 111 | - </span> | |
| 112 | - </div> | |
| 113 | - </form> | |
| 114 | - <div class="top-menu"> | |
| 115 | - <ul class="nav navbar-nav pull-right"> | |
| 116 | - <!-- 信息通知区 --> | |
| 117 | - <li class="dropdown dropdown-extended dropdown-notification dropdown-dark" id="header_notification_bar"> | |
| 118 | - <a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true"> | |
| 119 | - <i class="fa fa-bell"></i> | |
| 120 | - <span class="badge badge-success"> 3 </span> | |
| 121 | - </a> | |
| 122 | - <ul class="dropdown-menu" style="max-width: 345px;width: 345px;"> | |
| 123 | - <li class="external"> | |
| 124 | - <h3>今日 <span class="bold">318 条</span> 通知</h3> | |
| 125 | - <a href="page_user_profile_1.html">查看全部</a> | |
| 126 | - </li> | |
| 127 | - <li> | |
| 128 | - <ul class="dropdown-menu-list scroller" style="height: 250px;" data-handle-color="#637283"> | |
| 129 | - <li> | |
| 130 | - <a href="javascript:;"> | |
| 131 | - <span class="time">现在</span> | |
| 132 | - <span class="details"> | |
| 133 | - <span class="label label-sm label-icon label-info"> </span> | |
| 134 | - W1B-020 成山路请求出场 | |
| 135 | - </span> | |
| 136 | - </a> | |
| 137 | - </li> | |
| 138 | - <li> | |
| 139 | - <a href="javascript:;"> | |
| 140 | - <span class="time">10分钟前</span> | |
| 141 | - <span class="details"> | |
| 142 | - <span class="label label-sm label-icon label-success"> </span> | |
| 143 | - W1B-375 速度正常,超速约10分钟 | |
| 144 | - </span> | |
| 145 | - </a> | |
| 146 | - </li> | |
| 147 | - <li> | |
| 148 | - <a href="javascript:;"> | |
| 149 | - <span class="time">20分钟前</span> | |
| 150 | - <span class="details"> | |
| 151 | - <span class="label label-sm label-icon label-danger"> </span> | |
| 152 | - W1B-375 超速警报 | |
| 153 | - </span> | |
| 154 | - </a> | |
| 155 | - </li> | |
| 156 | - </ul> | |
| 157 | - </li> | |
| 158 | - </ul> | |
| 159 | - </li> | |
| 160 | - <li class="dropdown dropdown-user dropdown-dark"> | |
| 161 | - <a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true"> | |
| 162 | - <span class="username username-hide-on-mobile" style="vertical-align: middle;">潘钊 <i class="fa fa-user"></i></span> | |
| 163 | - </a> | |
| 164 | - <ul class="dropdown-menu dropdown-menu-default"> | |
| 165 | - <li> | |
| 166 | - <a href="javascript:;"> | |
| 167 | - <i class="fa fa-user"></i> 我的信息 </a> | |
| 168 | - </li> | |
| 169 | - <li class="divider"> </li> | |
| 170 | - <li> | |
| 171 | - <a href="javascript:;"> | |
| 172 | - <i class="fa fa-lock"></i> 锁屏 </a> | |
| 173 | - </li> | |
| 174 | - <li> | |
| 175 | - <a href="/user/logout"> | |
| 176 | - <i class="fa fa-key"></i> 注销登陆 </a> | |
| 177 | - </li> | |
| 178 | - </ul> | |
| 179 | - </li> | |
| 180 | - </ul> | |
| 181 | - </div> | |
| 182 | - </div> | |
| 183 | - </div> | |
| 184 | - </div> | |
| 185 | - <div class="page-container"> | |
| 186 | - <div class="page-sidebar-wrapper"> | |
| 187 | - <div class="page-sidebar navbar-collapse collapse"> | |
| 188 | - <ul class="page-sidebar-menu page-sidebar-menu-fixed" data-keep-expanded="false" data-auto-scroll="true" data-slide-speed="200" id="leftMenuSidebar"> | |
| 189 | - </ul> | |
| 190 | - </div> | |
| 191 | - </div> | |
| 192 | - <div class="page-content-wrapper"> | |
| 193 | - <div class="page-content" id="pjax-container"></div> | |
| 194 | - </div> | |
| 195 | - </div> | |
| 196 | - | |
| 197 | -<script id="menu_list_temp" type="text/html"> | |
| 198 | -{{each list as group i}} | |
| 199 | - <li class="heading"> | |
| 200 | - <h3 class="uppercase">{{group.name}}</h3> | |
| 201 | - </li> | |
| 202 | - {{each group.children as dir j}} | |
| 203 | - <li class="nav-item"> | |
| 204 | - <a href="javascript:;" class="nav-link nav-toggle "> | |
| 205 | - <i class="{{dir.icon}}"></i> | |
| 206 | - <span class="title">{{dir.name}}</span> | |
| 207 | - <span class="arrow"></span> | |
| 208 | - </a> | |
| 209 | - <ul class="sub-menu"> | |
| 210 | - {{each dir.children as module s}} | |
| 211 | - <li class="nav-item "> | |
| 212 | - <a href="/pages/{{module.path}}" class="nav-link " data-pjax> | |
| 213 | - <span class="title">{{module.name}}</span> | |
| 214 | - </a> | |
| 215 | - </li> | |
| 216 | - {{/each}} | |
| 217 | - </ul> | |
| 218 | - </li> | |
| 219 | - {{/each}} | |
| 220 | -{{/each}} | |
| 221 | -</script> | |
| 222 | - <!--[if lt IE 9]> | |
| 223 | -<script src="assets/plugins/respond.min.js"></script> | |
| 224 | -<script src="assets/plugins/excanvas.min.js"></script> | |
| 225 | -<![endif]--> | |
| 226 | -<!-- jquery --> | |
| 227 | -<script src="metronic_v4.5.4/plugins/jquery.min.js" ></script> | |
| 228 | -<!-- bootstrap --> | |
| 229 | -<script src="metronic_v4.5.4/plugins/bootstrap/js/bootstrap.min.js" ></script> | |
| 230 | -<!-- metronic js --> | |
| 231 | -<script src="metronic_v4.5.4/scripts/app.min.js" ></script> | |
| 232 | -<script src="metronic_v4.5.4/layout4/scripts/layout.min.js" ></script> | |
| 233 | -<!-- 虚拟滚动条 --> | |
| 234 | -<script src="metronic_v4.5.4/plugins/jquery-slimscroll/jquery.slimscroll.min.js" ></script> | |
| 235 | -<!-- jsTree 树插件 --> | |
| 236 | -<script src="metronic_v4.5.4/plugins/jstree/dist/jstree.min.js" ></script> | |
| 237 | -<!-- bootstrap-hover-dropdown --> | |
| 238 | -<script src="metronic_v4.5.4/plugins/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js" ></script> | |
| 239 | -<!-- jquery.validate 表单验证 --> | |
| 240 | -<script src="metronic_v4.5.4/plugins/jquery-validation/js/jquery.validate.min.js"></script> | |
| 241 | -<script src="metronic_v4.5.4/plugins/jquery-validation/js/localization/messages_zh.js"></script> | |
| 242 | -<!-- 向导式插件 --> | |
| 243 | -<script src="metronic_v4.5.4//plugins/bootstrap-wizard/jquery.bootstrap.wizard.min.js"></script> | |
| 244 | -<!-- iCheck 单选框和复选框 --> | |
| 245 | -<script src="metronic_v4.5.4/plugins/icheck/icheck.min.js" type="text/javascript"></script> | |
| 246 | -<!-- select2 下拉框 --> | |
| 247 | -<script src="metronic_v4.5.4/plugins/select2/js/select2.full.min.js" type="text/javascript"></script> | |
| 248 | -<!-- multi-select 多选下拉框美化 --> | |
| 249 | -<script src="metronic_v4.5.4/plugins/jquery-multi-select/js/jquery.multi-select.js" type="text/javascript"></script> | |
| 250 | -<!-- pjax --> | |
| 251 | -<script src="assets/plugins/jquery.pjax.js"></script> | |
| 252 | -<!-- layer 弹层 --> | |
| 253 | -<script src="assets/plugins/layer-v2.2/layer/layer.js"></script> | |
| 254 | -<!-- jquery.purl url解析 --> | |
| 255 | -<script src="assets/plugins/purl.js"></script> | |
| 256 | -<!-- jquery.serializejson json序列化插件 --> | |
| 257 | -<script src="assets/plugins/jquery.serializejson.js"></script> | |
| 258 | -<!-- art-template 模版引擎 --> | |
| 259 | -<script src="assets/plugins/template.js"></script> | |
| 260 | -<!-- jquery.pageinator 分页 --> | |
| 261 | -<script src="assets/plugins/jqPaginator.min.js"></script> | |
| 262 | -<!-- moment.js 日期处理类库 --> | |
| 263 | -<script src="assets/plugins/moment-with-locales.js"></script> | |
| 264 | - | |
| 265 | -<script src="assets/plugins/pinyin.js"></script> | |
| 266 | - | |
| 267 | -<script src="assets/js/common.js"></script> | |
| 268 | -<script type="text/javascript"> | |
| 269 | - | |
| 270 | -var dir = '/pages/'; | |
| 271 | -var pjaxContainer = '#pjax-container'; | |
| 272 | - | |
| 273 | -$(function(){ | |
| 274 | - //带 data-pjax 的链接由pjax加载 | |
| 275 | - $(document).pjax('a[data-pjax]', pjaxContainer); | |
| 276 | - | |
| 277 | - //左菜单点击事件 | |
| 278 | - $(document).on('click','#leftMenuSidebar a[data-pjax]', function(){ | |
| 279 | - $('#leftMenuSidebar li.nav-item.active').removeClass('active'); | |
| 280 | - $(this).parent().addClass('active'); | |
| 281 | - }); | |
| 282 | - | |
| 283 | - //加载左菜单栏 | |
| 284 | - $get('/module/findByCurrentUser', null, | |
| 285 | - function(ms){ | |
| 286 | - var treeArray = createTreeData(ms); | |
| 287 | - treeArray.sort(function(a, b){ | |
| 288 | - return a.createDate - b.createDate; | |
| 289 | - }); | |
| 290 | - var menuHtml = template('menu_list_temp', {list: treeArray}); | |
| 291 | - $('#leftMenuSidebar').html(menuHtml); | |
| 292 | - | |
| 293 | - // 检查Hash值 | |
| 294 | - var h = location.hash; | |
| 295 | - if(h && h.indexOf(dir) != -1){ | |
| 296 | - var path = h.substring(1, h.length); | |
| 297 | - loadPage(path); | |
| 298 | - //选中对应菜单项 | |
| 299 | - $.each($('#leftMenuSidebar a'), function(i, item){ | |
| 300 | - if(urlPattern($(item).attr('href'), path)){ | |
| 301 | - $(item).parent('.nav-item').addClass('active').parent('.sub-menu').show().parent().addClass('open'); | |
| 302 | - } | |
| 303 | - }); | |
| 304 | - } | |
| 305 | - else{ | |
| 306 | - //加载主页 | |
| 307 | - loadPage('pages/home.html'); | |
| 308 | - } | |
| 309 | - }); | |
| 310 | -}); | |
| 311 | - | |
| 312 | - //modal关闭时销毁dom | |
| 313 | - $(document).on('hidden.bs.modal', '.modal', function(){ | |
| 314 | - $(this).remove(); | |
| 315 | - }); | |
| 316 | - | |
| 317 | - function loadPage(url){ | |
| 318 | - $.pjax({url: url, container: pjaxContainer}); | |
| 319 | - } | |
| 320 | - | |
| 321 | - function urlPattern(a , b){ | |
| 322 | - var r; | |
| 323 | - try { | |
| 324 | - r = a.substring(0, a.lastIndexOf('/')) == b.substring(0, b.lastIndexOf('/')); | |
| 325 | - } catch (e) { | |
| 326 | - r = false; | |
| 327 | - } | |
| 328 | - return r; | |
| 329 | - } | |
| 330 | -</script> | |
| 331 | -</body> | |
| 1 | +<!DOCTYPE html> | |
| 2 | +<html> | |
| 3 | +<head> | |
| 4 | +<meta charset="UTF-8"> | |
| 5 | +<title>调度系统</title> | |
| 6 | +<meta name=”renderer” content=”webkit”> | |
| 7 | +<meta http-equiv=”X-UA-Compatible” content=”IE=Edge,chrome=1″ > | |
| 8 | + | |
| 9 | +<!-- Font Awesome 图标字体 --> | |
| 10 | +<link href="metronic_v4.5.4/plugins/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css" /> | |
| 11 | +<!-- Bootstrap style --> | |
| 12 | +<link href="metronic_v4.5.4/plugins/bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css" /> | |
| 13 | +<!-- jsTree 数插件 --> | |
| 14 | +<link href="metronic_v4.5.4/plugins/jstree/dist/themes/default/style.min.css" rel="stylesheet" type="text/css" /> | |
| 15 | +<!-- multi-select 多选下拉框美化 --> | |
| 16 | +<link href="metronic_v4.5.4/plugins/jquery-multi-select/css/multi-select.css" rel="stylesheet" type="text/css" /> | |
| 17 | +<!-- metronic style --> | |
| 18 | +<link href="metronic_v4.5.4/layout4/css/themes/default.min.css" rel="stylesheet" type="text/css" id="style_color" /> | |
| 19 | +<link href="metronic_v4.5.4/css/components.css" rel="stylesheet" type="text/css" /> | |
| 20 | +<link href="metronic_v4.5.4/css/plugins.css" rel="stylesheet" type="text/css" /> | |
| 21 | +<link href="metronic_v4.5.4/layout4/css/layout.min.css" rel="stylesheet" type="text/css" /> | |
| 22 | +<link href="metronic_v4.5.4/layout4/css/custom.min.css" rel="stylesheet" type="text/css" /> | |
| 23 | +<!-- select2 下拉框插件 --> | |
| 24 | +<link href="metronic_v4.5.4/plugins/select2/css/select2.min.css" rel="stylesheet" type="text/css" /> | |
| 25 | +<link href="metronic_v4.5.4/plugins/select2/css/select2-bootstrap.min.css" rel="stylesheet" type="text/css" /> | |
| 26 | +<!-- layer 弹层 插件 --> | |
| 27 | +<link href="assets/plugins/layer-v2.2/layer/skin/layer.css" rel="stylesheet" type="text/css" /> | |
| 28 | +<!-- iCheck 单选框和复选框 --> | |
| 29 | +<link href="metronic_v4.5.4/plugins/icheck/skins/all.css" rel="stylesheet" type="text/css" /> | |
| 30 | +<!-- 日期控件 --> | |
| 31 | +<link href="metronic_v4.5.4/plugins/bootstrap-datetimepicker-2/css/bootstrap-datetimepicker.min.css" rel="stylesheet" type="text/css" /> | |
| 32 | +<style type="text/css"> | |
| 33 | +.searchForm{ | |
| 34 | +} | |
| 35 | +.searchForm .form-group .control-label{ | |
| 36 | + padding-right: 0px; | |
| 37 | + text-align: right; | |
| 38 | + margin-top: 7px; | |
| 39 | +} | |
| 40 | +.searchForm .form-group>div{ | |
| 41 | + padding-left: 10px; | |
| 42 | + padding-right: 0px; | |
| 43 | +} | |
| 44 | +.searchForm .row>div{ | |
| 45 | + padding-left: 0px; | |
| 46 | + padding-right: 0px; | |
| 47 | + padding: 5px 0 5px 0; | |
| 48 | + width: 270px; | |
| 49 | + display: inline-block; | |
| 50 | +} | |
| 51 | +.searchForm .form-actions{ | |
| 52 | + | |
| 53 | +} | |
| 54 | +tr.row-active td { | |
| 55 | + border-bottom: 1px solid blue!important; | |
| 56 | + color: blue; | |
| 57 | +} | |
| 58 | +.ms-container .ms-selectable li.ms-elem-selectable, .ms-container .ms-selection li.ms-elem-selection { | |
| 59 | + font-size: 14px; | |
| 60 | +} | |
| 61 | +.ms-container .ms-selectable li.ms-elem-selectable, .ms-container .ms-selection li.ms-elem-selection{ | |
| 62 | + padding: 6px 26px; | |
| 63 | +} | |
| 64 | +.ms-container .ms-list{ | |
| 65 | + height: 306px; | |
| 66 | +} | |
| 67 | +.ms-container .ms-selectable, .ms-container .ms-selection{ | |
| 68 | + width: 47%; | |
| 69 | +} | |
| 70 | +.ms-container { | |
| 71 | + width: 470px; | |
| 72 | + margin: auto; | |
| 73 | +} | |
| 74 | +.multi-custom-header-left{ | |
| 75 | + text-align: center; | |
| 76 | + padding: 7px; | |
| 77 | + color: #3B3F51; | |
| 78 | +} | |
| 79 | +.multi-custom-header-right{ | |
| 80 | + text-align: center; | |
| 81 | + padding: 7px; | |
| 82 | + font-weight: bold; | |
| 83 | + color: #36C6D3; | |
| 84 | +} | |
| 85 | +.mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content { | |
| 86 | + padding: 0 55px 0 0px; | |
| 87 | +} | |
| 88 | +.mt-element-list .list-simple.mt-list-container ul > .mt-list-item { | |
| 89 | + padding: 3.3px 0; | |
| 90 | +} | |
| 91 | +</style> | |
| 92 | +</head> | |
| 93 | +<body class="page-container-bg-solid page-header-fixed page-sidebar-closed-hide-logo page-sidebar-fixed"> | |
| 94 | + <div class="page-header navbar navbar-fixed-top"> | |
| 95 | + <div class="page-header-inner "> | |
| 96 | + <!-- LOGO --> | |
| 97 | + <div class="page-logo"> | |
| 98 | + <a href="index.html"> | |
| 99 | + <img src="" alt="logo" class="logo-default" /> </a> | |
| 100 | + <div class="menu-toggler sidebar-toggler"> | |
| 101 | + </div> | |
| 102 | + </div> | |
| 103 | + <!-- END LOGO --> | |
| 104 | + <a href="javascript:;" class="menu-toggler responsive-toggler" data-toggle="collapse" data-target=".navbar-collapse"> </a> | |
| 105 | + <div class="page-top"> | |
| 106 | + <form class="search-form" action="page_general_search_2.html" method="GET"> | |
| 107 | + <div class="input-group"> | |
| 108 | + <input type="text" class="form-control input-sm" placeholder="Search..." name="query"> | |
| 109 | + <span class="input-group-btn"> | |
| 110 | + <a href="javascript:;" class="btn submit"> | |
| 111 | + <i class="fa fa-search"></i> | |
| 112 | + </a> | |
| 113 | + </span> | |
| 114 | + </div> | |
| 115 | + </form> | |
| 116 | + <div class="top-menu"> | |
| 117 | + <ul class="nav navbar-nav pull-right"> | |
| 118 | + <!-- 信息通知区 --> | |
| 119 | + <li class="dropdown dropdown-extended dropdown-notification dropdown-dark" id="header_notification_bar"> | |
| 120 | + <a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true"> | |
| 121 | + <i class="fa fa-bell"></i> | |
| 122 | + <span class="badge badge-success"> 3 </span> | |
| 123 | + </a> | |
| 124 | + <ul class="dropdown-menu" style="max-width: 345px;width: 345px;"> | |
| 125 | + <li class="external"> | |
| 126 | + <h3>今日 <span class="bold">318 条</span> 通知</h3> | |
| 127 | + <a href="page_user_profile_1.html">查看全部</a> | |
| 128 | + </li> | |
| 129 | + <li> | |
| 130 | + <ul class="dropdown-menu-list scroller" style="height: 250px;" data-handle-color="#637283"> | |
| 131 | + <li> | |
| 132 | + <a href="javascript:;"> | |
| 133 | + <span class="time">现在</span> | |
| 134 | + <span class="details"> | |
| 135 | + <span class="label label-sm label-icon label-info"> </span> | |
| 136 | + W1B-020 成山路请求出场 | |
| 137 | + </span> | |
| 138 | + </a> | |
| 139 | + </li> | |
| 140 | + <li> | |
| 141 | + <a href="javascript:;"> | |
| 142 | + <span class="time">10分钟前</span> | |
| 143 | + <span class="details"> | |
| 144 | + <span class="label label-sm label-icon label-success"> </span> | |
| 145 | + W1B-375 速度正常,超速约10分钟 | |
| 146 | + </span> | |
| 147 | + </a> | |
| 148 | + </li> | |
| 149 | + <li> | |
| 150 | + <a href="javascript:;"> | |
| 151 | + <span class="time">20分钟前</span> | |
| 152 | + <span class="details"> | |
| 153 | + <span class="label label-sm label-icon label-danger"> </span> | |
| 154 | + W1B-375 超速警报 | |
| 155 | + </span> | |
| 156 | + </a> | |
| 157 | + </li> | |
| 158 | + </ul> | |
| 159 | + </li> | |
| 160 | + </ul> | |
| 161 | + </li> | |
| 162 | + <li class="dropdown dropdown-user dropdown-dark"> | |
| 163 | + <a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true"> | |
| 164 | + <span class="username username-hide-on-mobile" style="vertical-align: middle;">潘钊 <i class="fa fa-user"></i></span> | |
| 165 | + </a> | |
| 166 | + <ul class="dropdown-menu dropdown-menu-default"> | |
| 167 | + <li> | |
| 168 | + <a href="javascript:;"> | |
| 169 | + <i class="fa fa-user"></i> 我的信息 </a> | |
| 170 | + </li> | |
| 171 | + <li class="divider"> </li> | |
| 172 | + <li> | |
| 173 | + <a href="javascript:;"> | |
| 174 | + <i class="fa fa-lock"></i> 锁屏 </a> | |
| 175 | + </li> | |
| 176 | + <li> | |
| 177 | + <a href="/user/logout"> | |
| 178 | + <i class="fa fa-key"></i> 注销登陆 </a> | |
| 179 | + </li> | |
| 180 | + </ul> | |
| 181 | + </li> | |
| 182 | + </ul> | |
| 183 | + </div> | |
| 184 | + </div> | |
| 185 | + </div> | |
| 186 | + </div> | |
| 187 | + <div class="page-container"> | |
| 188 | + <div class="page-sidebar-wrapper"> | |
| 189 | + <div class="page-sidebar navbar-collapse collapse"> | |
| 190 | + <ul class="page-sidebar-menu page-sidebar-menu-fixed" data-keep-expanded="false" data-auto-scroll="true" data-slide-speed="200" id="leftMenuSidebar"> | |
| 191 | + </ul> | |
| 192 | + </div> | |
| 193 | + </div> | |
| 194 | + <div class="page-content-wrapper"> | |
| 195 | + <div class="page-content" id="pjax-container"></div> | |
| 196 | + </div> | |
| 197 | + </div> | |
| 198 | + | |
| 199 | +<script id="menu_list_temp" type="text/html"> | |
| 200 | +{{each list as group i}} | |
| 201 | + <li class="heading"> | |
| 202 | + <h3 class="uppercase">{{group.name}}</h3> | |
| 203 | + </li> | |
| 204 | + {{each group.children as dir j}} | |
| 205 | + <li class="nav-item"> | |
| 206 | + <a href="javascript:;" class="nav-link nav-toggle "> | |
| 207 | + <i class="{{dir.icon}}"></i> | |
| 208 | + <span class="title">{{dir.name}}</span> | |
| 209 | + <span class="arrow"></span> | |
| 210 | + </a> | |
| 211 | + <ul class="sub-menu"> | |
| 212 | + {{each dir.children as module s}} | |
| 213 | + <li class="nav-item "> | |
| 214 | + <a href="/pages/{{module.path}}" class="nav-link " data-pjax> | |
| 215 | + <span class="title">{{module.name}}</span> | |
| 216 | + </a> | |
| 217 | + </li> | |
| 218 | + {{/each}} | |
| 219 | + </ul> | |
| 220 | + </li> | |
| 221 | + {{/each}} | |
| 222 | +{{/each}} | |
| 223 | +</script> | |
| 224 | + <!--[if lt IE 9]> | |
| 225 | +<script src="assets/plugins/respond.min.js"></script> | |
| 226 | +<script src="assets/plugins/excanvas.min.js"></script> | |
| 227 | +<![endif]--> | |
| 228 | +<!-- jquery --> | |
| 229 | +<script src="metronic_v4.5.4/plugins/jquery.min.js" ></script> | |
| 230 | +<!-- bootstrap --> | |
| 231 | +<script src="metronic_v4.5.4/plugins/bootstrap/js/bootstrap.min.js" ></script> | |
| 232 | +<!-- metronic js --> | |
| 233 | +<script src="metronic_v4.5.4/scripts/app.min.js" ></script> | |
| 234 | +<script src="metronic_v4.5.4/layout4/scripts/layout.min.js" ></script> | |
| 235 | +<!-- 虚拟滚动条 --> | |
| 236 | +<script src="metronic_v4.5.4/plugins/jquery-slimscroll/jquery.slimscroll.min.js" ></script> | |
| 237 | +<!-- jsTree 树插件 --> | |
| 238 | +<script src="metronic_v4.5.4/plugins/jstree/dist/jstree.min.js" ></script> | |
| 239 | +<!-- bootstrap-hover-dropdown --> | |
| 240 | +<script src="metronic_v4.5.4/plugins/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js" ></script> | |
| 241 | +<!-- jquery.validate 表单验证 --> | |
| 242 | +<script src="metronic_v4.5.4/plugins/jquery-validation/js/jquery.validate.min.js"></script> | |
| 243 | +<script src="metronic_v4.5.4/plugins/jquery-validation/js/localization/messages_zh.js"></script> | |
| 244 | +<!-- 向导式插件 --> | |
| 245 | +<script src="metronic_v4.5.4//plugins/bootstrap-wizard/jquery.bootstrap.wizard.min.js"></script> | |
| 246 | +<!-- iCheck 单选框和复选框 --> | |
| 247 | +<script src="metronic_v4.5.4/plugins/icheck/icheck.min.js" type="text/javascript"></script> | |
| 248 | +<!-- select2 下拉框 --> | |
| 249 | +<script src="metronic_v4.5.4/plugins/select2/js/select2.full.min.js" type="text/javascript"></script> | |
| 250 | +<!-- multi-select 多选下拉框美化 --> | |
| 251 | +<script src="metronic_v4.5.4/plugins/jquery-multi-select/js/jquery.multi-select.js" type="text/javascript"></script> | |
| 252 | +<!-- pjax --> | |
| 253 | +<script src="assets/plugins/jquery.pjax.js"></script> | |
| 254 | +<!-- layer 弹层 --> | |
| 255 | +<script src="assets/plugins/layer-v2.2/layer/layer.js"></script> | |
| 256 | +<!-- jquery.purl url解析 --> | |
| 257 | +<script src="assets/plugins/purl.js"></script> | |
| 258 | +<!-- jquery.serializejson json序列化插件 --> | |
| 259 | +<script src="assets/plugins/jquery.serializejson.js"></script> | |
| 260 | +<!-- art-template 模版引擎 --> | |
| 261 | +<script src="assets/plugins/template.js"></script> | |
| 262 | +<!-- jquery.pageinator 分页 --> | |
| 263 | +<script src="assets/plugins/jqPaginator.min.js"></script> | |
| 264 | +<!-- moment.js 日期处理类库 --> | |
| 265 | +<script src="assets/plugins/moment-with-locales.js"></script> | |
| 266 | + | |
| 267 | +<script src="assets/plugins/pinyin.js"></script> | |
| 268 | +<!-- 日期控件 --> | |
| 269 | +<script src="metronic_v4.5.4/plugins/bootstrap-datetimepicker-2/js/bootstrap-datetimepicker.min.js" type="text/javascript"></script> | |
| 270 | +<script src="assets/js/common.js"></script> | |
| 271 | +<script type="text/javascript"> | |
| 272 | + | |
| 273 | +var dir = '/pages/'; | |
| 274 | +var pjaxContainer = '#pjax-container'; | |
| 275 | + | |
| 276 | +$(function(){ | |
| 277 | + //带 data-pjax 的链接由pjax加载 | |
| 278 | + $(document).pjax('a[data-pjax]', pjaxContainer); | |
| 279 | + | |
| 280 | + //左菜单点击事件 | |
| 281 | + $(document).on('click','#leftMenuSidebar a[data-pjax]', function(){ | |
| 282 | + $('#leftMenuSidebar li.nav-item.active').removeClass('active'); | |
| 283 | + $(this).parent().addClass('active'); | |
| 284 | + }); | |
| 285 | + | |
| 286 | + //加载左菜单栏 | |
| 287 | + $get('/module/findByCurrentUser', null, | |
| 288 | + function(ms){ | |
| 289 | + var treeArray = createTreeData(ms); | |
| 290 | + treeArray.sort(function(a, b){ | |
| 291 | + return a.createDate - b.createDate; | |
| 292 | + }); | |
| 293 | + var menuHtml = template('menu_list_temp', {list: treeArray}); | |
| 294 | + $('#leftMenuSidebar').html(menuHtml); | |
| 295 | + | |
| 296 | + // 检查Hash值 | |
| 297 | + var h = location.hash; | |
| 298 | + if(h && h.indexOf(dir) != -1){ | |
| 299 | + var path = h.substring(1, h.length); | |
| 300 | + loadPage(path); | |
| 301 | + //选中对应菜单项 | |
| 302 | + $.each($('#leftMenuSidebar a'), function(i, item){ | |
| 303 | + if(urlPattern($(item).attr('href'), path)){ | |
| 304 | + $(item).parent('.nav-item').addClass('active').parent('.sub-menu').show().parent().addClass('open'); | |
| 305 | + } | |
| 306 | + }); | |
| 307 | + } | |
| 308 | + else{ | |
| 309 | + //加载主页 | |
| 310 | + loadPage('pages/home.html'); | |
| 311 | + } | |
| 312 | + }); | |
| 313 | +}); | |
| 314 | + | |
| 315 | + //modal关闭时销毁dom | |
| 316 | + $(document).on('hidden.bs.modal', '.modal', function(){ | |
| 317 | + $(this).remove(); | |
| 318 | + }); | |
| 319 | + | |
| 320 | + function loadPage(url){ | |
| 321 | + $.pjax({url: url, container: pjaxContainer}); | |
| 322 | + } | |
| 323 | + | |
| 324 | + function urlPattern(a , b){ | |
| 325 | + var r; | |
| 326 | + try { | |
| 327 | + r = a.substring(0, a.lastIndexOf('/')) == b.substring(0, b.lastIndexOf('/')); | |
| 328 | + } catch (e) { | |
| 329 | + r = false; | |
| 330 | + } | |
| 331 | + return r; | |
| 332 | + } | |
| 333 | +</script> | |
| 334 | +</body> | |
| 332 | 335 | </html> |
| 333 | 336 | \ No newline at end of file | ... | ... |
src/main/resources/static/metronic_v4.5.4/plugins/bootstrap-datetimepicker-2/LICENSE
0 → 100644
| 1 | +The MIT License (MIT) | |
| 2 | + | |
| 3 | +Copyright (c) 2015 Jonathan Peterson (@Eonasdan) | |
| 4 | + | |
| 5 | +Permission is hereby granted, free of charge, to any person obtaining a copy | |
| 6 | +of this software and associated documentation files (the "Software"), to deal | |
| 7 | +in the Software without restriction, including without limitation the rights | |
| 8 | +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
| 9 | +copies of the Software, and to permit persons to whom the Software is | |
| 10 | +furnished to do so, subject to the following conditions: | |
| 11 | + | |
| 12 | +The above copyright notice and this permission notice shall be included in all | |
| 13 | +copies or substantial portions of the Software. | |
| 14 | + | |
| 15 | +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
| 16 | +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
| 17 | +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
| 18 | +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
| 19 | +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
| 20 | +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |
| 21 | +SOFTWARE. | ... | ... |
src/main/resources/static/metronic_v4.5.4/plugins/bootstrap-datetimepicker-2/README.md
0 → 100644
| 1 | +# Bootstrap 3 Date/Time Picker | |
| 2 | +  [](https://waffle.io/Eonasdan/bootstrap-datetimepicker) | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | +## [View the manual and demos](http://eonasdan.github.io/bootstrap-datetimepicker/) | |
| 7 | + | |
| 8 | +# v4.17.37 | |
| 9 | + | |
| 10 | +Is the current stable release. The latest and greatest changes are available from the [development branch](https://github.com/Eonasdan/bootstrap-datetimepicker/tree/development) | |
| 11 | + | |
| 12 | +# Version 5 | |
| 13 | + | |
| 14 | +IMPORANT! The Nuget packages will be depreciated in this release. Moving forward, Asp.Net/Nuget will **NOT** be delivering content packages like this one and you will need to use bower. See [this issue for more]( https://github.com/Eonasdan/bootstrap-datetimepicker/issues/1128) | |
| 15 | + | |
| 16 | +v5 is [in planning](https://github.com/Eonasdan/bootstrap-datetimepicker/issues/841). We welcome your suggestions. | |
| 17 | + | |
| 18 | +A major update is a great time to make be able to make breaking changes. | |
| 19 | + | |
| 20 | +## Submitting Issues | |
| 21 | +If you have issues, please check the following first: | |
| 22 | +* Have you read the docs? | |
| 23 | +* Do you have the latest version of momentjs? | |
| 24 | +* Do you have the latest version of jQuery? | |
| 25 | +* Please test and/or fork [this jsfiddle](http://jsfiddle.net/Eonasdan/0Ltv25o8/) with an example of your issue before you post an issue here. | |
| 26 | +* Please indicate which version of the picker you are using (this can be found at the top of any included file) | |
| 27 | + | |
| 28 | +## Where do you use this? | |
| 29 | +I'd love to know if your public site is using this plugin and list your logo on the documentation site. Please email me `me at eonasdan dot com`. | |
| 30 | + | |
| 31 | +##Priority support is available at an hourly rate. | |
| 32 | + | |
| 33 | +If you have an urgent request, bug or need installation help, please contact me at `me at eonasdan dot com` for a quote. | |
| 34 | + | |
| 35 | +## [Installation instructions](http://eonasdan.github.io/bootstrap-datetimepicker/Installing/) | |
| 36 | + | |
| 37 | +## [Change Log](http://eonasdan.github.io/bootstrap-datetimepicker/Changelog/) | ... | ... |
src/main/resources/static/metronic_v4.5.4/plugins/bootstrap-datetimepicker-2/css/bootstrap-datetimepicker-standalone.css
0 → 100644
| 1 | +/*! | |
| 2 | + * Datetimepicker for Bootstrap 3 | |
| 3 | + * version : 4.17.37 | |
| 4 | + * https://github.com/Eonasdan/bootstrap-datetimepicker/ | |
| 5 | + */ | |
| 6 | +@font-face { | |
| 7 | + font-family: 'Glyphicons Halflings'; | |
| 8 | + src: url('../fonts/glyphicons-halflings-regular.eot'); | |
| 9 | + src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); | |
| 10 | +} | |
| 11 | + | |
| 12 | +.glyphicon { | |
| 13 | + position: relative; | |
| 14 | + top: 1px; | |
| 15 | + display: inline-block; | |
| 16 | + font-family: 'Glyphicons Halflings'; | |
| 17 | + font-style: normal; | |
| 18 | + font-weight: normal; | |
| 19 | + line-height: 1; | |
| 20 | + -webkit-font-smoothing: antialiased; | |
| 21 | + -moz-osx-font-smoothing: grayscale; | |
| 22 | +} | |
| 23 | + | |
| 24 | +.glyphicon-time:before { | |
| 25 | + content: "\e023"; | |
| 26 | +} | |
| 27 | + | |
| 28 | +.glyphicon-chevron-left:before { | |
| 29 | + content: "\e079"; | |
| 30 | +} | |
| 31 | + | |
| 32 | +.glyphicon-chevron-right:before { | |
| 33 | + content: "\e080"; | |
| 34 | +} | |
| 35 | + | |
| 36 | +.glyphicon-chevron-up:before { | |
| 37 | + content: "\e113"; | |
| 38 | +} | |
| 39 | + | |
| 40 | +.glyphicon-chevron-down:before { | |
| 41 | + content: "\e114"; | |
| 42 | +} | |
| 43 | + | |
| 44 | +.glyphicon-calendar:before { | |
| 45 | + content: "\e109"; | |
| 46 | +} | |
| 47 | + | |
| 48 | +.btn { | |
| 49 | + display: inline-block; | |
| 50 | + padding: 6px 12px; | |
| 51 | + margin-bottom: 0; | |
| 52 | + font-size: 14px; | |
| 53 | + font-weight: normal; | |
| 54 | + line-height: 1.42857143; | |
| 55 | + text-align: center; | |
| 56 | + white-space: nowrap; | |
| 57 | + vertical-align: middle; | |
| 58 | + -ms-touch-action: manipulation; | |
| 59 | + touch-action: manipulation; | |
| 60 | + cursor: pointer; | |
| 61 | + -webkit-user-select: none; | |
| 62 | + -moz-user-select: none; | |
| 63 | + -ms-user-select: none; | |
| 64 | + user-select: none; | |
| 65 | + background-image: none; | |
| 66 | + border: 1px solid transparent; | |
| 67 | + border-radius: 4px; | |
| 68 | +} | |
| 69 | + | |
| 70 | +.collapse { | |
| 71 | + display: none; | |
| 72 | +} | |
| 73 | + | |
| 74 | + .collapse.in { | |
| 75 | + display: block; | |
| 76 | + } | |
| 77 | + | |
| 78 | +.dropdown-menu { | |
| 79 | + position: absolute; | |
| 80 | + left: 0; | |
| 81 | + z-index: 1000; | |
| 82 | + display: none; | |
| 83 | + float: left; | |
| 84 | + min-width: 160px; | |
| 85 | + padding: 5px 0; | |
| 86 | + margin: 2px 0 0; | |
| 87 | + font-size: 14px; | |
| 88 | + text-align: left; | |
| 89 | + list-style: none; | |
| 90 | + background-color: #fff; | |
| 91 | + -webkit-background-clip: padding-box; | |
| 92 | + background-clip: padding-box; | |
| 93 | + border: 1px solid #ccc; | |
| 94 | + border: 1px solid rgba(0, 0, 0, .15); | |
| 95 | + border-radius: 4px; | |
| 96 | + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); | |
| 97 | + box-shadow: 0 6px 12px rgba(0, 0, 0, .175); | |
| 98 | +} | |
| 99 | + | |
| 100 | +.list-unstyled { | |
| 101 | + padding-left: 0; | |
| 102 | + list-style: none; | |
| 103 | +} | |
| 0 | 104 | \ No newline at end of file | ... | ... |
src/main/resources/static/metronic_v4.5.4/plugins/bootstrap-datetimepicker-2/css/bootstrap-datetimepicker.css
0 → 100644
| 1 | +/*! | |
| 2 | + * Datetimepicker for Bootstrap 3 | |
| 3 | + * version : 4.17.37 | |
| 4 | + * https://github.com/Eonasdan/bootstrap-datetimepicker/ | |
| 5 | + */ | |
| 6 | +.bootstrap-datetimepicker-widget { | |
| 7 | + list-style: none; | |
| 8 | +} | |
| 9 | +.bootstrap-datetimepicker-widget.dropdown-menu { | |
| 10 | + margin: 2px 0; | |
| 11 | + padding: 4px; | |
| 12 | + width: 19em; | |
| 13 | +} | |
| 14 | +@media (min-width: 768px) { | |
| 15 | + .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs { | |
| 16 | + width: 38em; | |
| 17 | + } | |
| 18 | +} | |
| 19 | +@media (min-width: 992px) { | |
| 20 | + .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs { | |
| 21 | + width: 38em; | |
| 22 | + } | |
| 23 | +} | |
| 24 | +@media (min-width: 1200px) { | |
| 25 | + .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs { | |
| 26 | + width: 38em; | |
| 27 | + } | |
| 28 | +} | |
| 29 | +.bootstrap-datetimepicker-widget.dropdown-menu:before, | |
| 30 | +.bootstrap-datetimepicker-widget.dropdown-menu:after { | |
| 31 | + content: ''; | |
| 32 | + display: inline-block; | |
| 33 | + position: absolute; | |
| 34 | +} | |
| 35 | +.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before { | |
| 36 | + border-left: 7px solid transparent; | |
| 37 | + border-right: 7px solid transparent; | |
| 38 | + border-bottom: 7px solid #cccccc; | |
| 39 | + border-bottom-color: rgba(0, 0, 0, 0.2); | |
| 40 | + top: -7px; | |
| 41 | + left: 7px; | |
| 42 | +} | |
| 43 | +.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after { | |
| 44 | + border-left: 6px solid transparent; | |
| 45 | + border-right: 6px solid transparent; | |
| 46 | + border-bottom: 6px solid white; | |
| 47 | + top: -6px; | |
| 48 | + left: 8px; | |
| 49 | +} | |
| 50 | +.bootstrap-datetimepicker-widget.dropdown-menu.top:before { | |
| 51 | + border-left: 7px solid transparent; | |
| 52 | + border-right: 7px solid transparent; | |
| 53 | + border-top: 7px solid #cccccc; | |
| 54 | + border-top-color: rgba(0, 0, 0, 0.2); | |
| 55 | + bottom: -7px; | |
| 56 | + left: 6px; | |
| 57 | +} | |
| 58 | +.bootstrap-datetimepicker-widget.dropdown-menu.top:after { | |
| 59 | + border-left: 6px solid transparent; | |
| 60 | + border-right: 6px solid transparent; | |
| 61 | + border-top: 6px solid white; | |
| 62 | + bottom: -6px; | |
| 63 | + left: 7px; | |
| 64 | +} | |
| 65 | +.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before { | |
| 66 | + left: auto; | |
| 67 | + right: 6px; | |
| 68 | +} | |
| 69 | +.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after { | |
| 70 | + left: auto; | |
| 71 | + right: 7px; | |
| 72 | +} | |
| 73 | +.bootstrap-datetimepicker-widget .list-unstyled { | |
| 74 | + margin: 0; | |
| 75 | +} | |
| 76 | +.bootstrap-datetimepicker-widget a[data-action] { | |
| 77 | + padding: 6px 0; | |
| 78 | +} | |
| 79 | +.bootstrap-datetimepicker-widget a[data-action]:active { | |
| 80 | + box-shadow: none; | |
| 81 | +} | |
| 82 | +.bootstrap-datetimepicker-widget .timepicker-hour, | |
| 83 | +.bootstrap-datetimepicker-widget .timepicker-minute, | |
| 84 | +.bootstrap-datetimepicker-widget .timepicker-second { | |
| 85 | + width: 54px; | |
| 86 | + font-weight: bold; | |
| 87 | + font-size: 1.2em; | |
| 88 | + margin: 0; | |
| 89 | +} | |
| 90 | +.bootstrap-datetimepicker-widget button[data-action] { | |
| 91 | + padding: 6px; | |
| 92 | +} | |
| 93 | +.bootstrap-datetimepicker-widget .btn[data-action="incrementHours"]::after { | |
| 94 | + position: absolute; | |
| 95 | + width: 1px; | |
| 96 | + height: 1px; | |
| 97 | + margin: -1px; | |
| 98 | + padding: 0; | |
| 99 | + overflow: hidden; | |
| 100 | + clip: rect(0, 0, 0, 0); | |
| 101 | + border: 0; | |
| 102 | + content: "Increment Hours"; | |
| 103 | +} | |
| 104 | +.bootstrap-datetimepicker-widget .btn[data-action="incrementMinutes"]::after { | |
| 105 | + position: absolute; | |
| 106 | + width: 1px; | |
| 107 | + height: 1px; | |
| 108 | + margin: -1px; | |
| 109 | + padding: 0; | |
| 110 | + overflow: hidden; | |
| 111 | + clip: rect(0, 0, 0, 0); | |
| 112 | + border: 0; | |
| 113 | + content: "Increment Minutes"; | |
| 114 | +} | |
| 115 | +.bootstrap-datetimepicker-widget .btn[data-action="decrementHours"]::after { | |
| 116 | + position: absolute; | |
| 117 | + width: 1px; | |
| 118 | + height: 1px; | |
| 119 | + margin: -1px; | |
| 120 | + padding: 0; | |
| 121 | + overflow: hidden; | |
| 122 | + clip: rect(0, 0, 0, 0); | |
| 123 | + border: 0; | |
| 124 | + content: "Decrement Hours"; | |
| 125 | +} | |
| 126 | +.bootstrap-datetimepicker-widget .btn[data-action="decrementMinutes"]::after { | |
| 127 | + position: absolute; | |
| 128 | + width: 1px; | |
| 129 | + height: 1px; | |
| 130 | + margin: -1px; | |
| 131 | + padding: 0; | |
| 132 | + overflow: hidden; | |
| 133 | + clip: rect(0, 0, 0, 0); | |
| 134 | + border: 0; | |
| 135 | + content: "Decrement Minutes"; | |
| 136 | +} | |
| 137 | +.bootstrap-datetimepicker-widget .btn[data-action="showHours"]::after { | |
| 138 | + position: absolute; | |
| 139 | + width: 1px; | |
| 140 | + height: 1px; | |
| 141 | + margin: -1px; | |
| 142 | + padding: 0; | |
| 143 | + overflow: hidden; | |
| 144 | + clip: rect(0, 0, 0, 0); | |
| 145 | + border: 0; | |
| 146 | + content: "Show Hours"; | |
| 147 | +} | |
| 148 | +.bootstrap-datetimepicker-widget .btn[data-action="showMinutes"]::after { | |
| 149 | + position: absolute; | |
| 150 | + width: 1px; | |
| 151 | + height: 1px; | |
| 152 | + margin: -1px; | |
| 153 | + padding: 0; | |
| 154 | + overflow: hidden; | |
| 155 | + clip: rect(0, 0, 0, 0); | |
| 156 | + border: 0; | |
| 157 | + content: "Show Minutes"; | |
| 158 | +} | |
| 159 | +.bootstrap-datetimepicker-widget .btn[data-action="togglePeriod"]::after { | |
| 160 | + position: absolute; | |
| 161 | + width: 1px; | |
| 162 | + height: 1px; | |
| 163 | + margin: -1px; | |
| 164 | + padding: 0; | |
| 165 | + overflow: hidden; | |
| 166 | + clip: rect(0, 0, 0, 0); | |
| 167 | + border: 0; | |
| 168 | + content: "Toggle AM/PM"; | |
| 169 | +} | |
| 170 | +.bootstrap-datetimepicker-widget .btn[data-action="clear"]::after { | |
| 171 | + position: absolute; | |
| 172 | + width: 1px; | |
| 173 | + height: 1px; | |
| 174 | + margin: -1px; | |
| 175 | + padding: 0; | |
| 176 | + overflow: hidden; | |
| 177 | + clip: rect(0, 0, 0, 0); | |
| 178 | + border: 0; | |
| 179 | + content: "Clear the picker"; | |
| 180 | +} | |
| 181 | +.bootstrap-datetimepicker-widget .btn[data-action="today"]::after { | |
| 182 | + position: absolute; | |
| 183 | + width: 1px; | |
| 184 | + height: 1px; | |
| 185 | + margin: -1px; | |
| 186 | + padding: 0; | |
| 187 | + overflow: hidden; | |
| 188 | + clip: rect(0, 0, 0, 0); | |
| 189 | + border: 0; | |
| 190 | + content: "Set the date to today"; | |
| 191 | +} | |
| 192 | +.bootstrap-datetimepicker-widget .picker-switch { | |
| 193 | + text-align: center; | |
| 194 | +} | |
| 195 | +.bootstrap-datetimepicker-widget .picker-switch::after { | |
| 196 | + position: absolute; | |
| 197 | + width: 1px; | |
| 198 | + height: 1px; | |
| 199 | + margin: -1px; | |
| 200 | + padding: 0; | |
| 201 | + overflow: hidden; | |
| 202 | + clip: rect(0, 0, 0, 0); | |
| 203 | + border: 0; | |
| 204 | + content: "Toggle Date and Time Screens"; | |
| 205 | +} | |
| 206 | +.bootstrap-datetimepicker-widget .picker-switch td { | |
| 207 | + padding: 0; | |
| 208 | + margin: 0; | |
| 209 | + height: auto; | |
| 210 | + width: auto; | |
| 211 | + line-height: inherit; | |
| 212 | +} | |
| 213 | +.bootstrap-datetimepicker-widget .picker-switch td span { | |
| 214 | + line-height: 2.5; | |
| 215 | + height: 2.5em; | |
| 216 | + width: 100%; | |
| 217 | +} | |
| 218 | +.bootstrap-datetimepicker-widget table { | |
| 219 | + width: 100%; | |
| 220 | + margin: 0; | |
| 221 | +} | |
| 222 | +.bootstrap-datetimepicker-widget table td, | |
| 223 | +.bootstrap-datetimepicker-widget table th { | |
| 224 | + text-align: center; | |
| 225 | + border-radius: 4px; | |
| 226 | +} | |
| 227 | +.bootstrap-datetimepicker-widget table th { | |
| 228 | + height: 20px; | |
| 229 | + line-height: 20px; | |
| 230 | + width: 20px; | |
| 231 | +} | |
| 232 | +.bootstrap-datetimepicker-widget table th.picker-switch { | |
| 233 | + width: 145px; | |
| 234 | +} | |
| 235 | +.bootstrap-datetimepicker-widget table th.disabled, | |
| 236 | +.bootstrap-datetimepicker-widget table th.disabled:hover { | |
| 237 | + background: none; | |
| 238 | + color: #777777; | |
| 239 | + cursor: not-allowed; | |
| 240 | +} | |
| 241 | +.bootstrap-datetimepicker-widget table th.prev::after { | |
| 242 | + position: absolute; | |
| 243 | + width: 1px; | |
| 244 | + height: 1px; | |
| 245 | + margin: -1px; | |
| 246 | + padding: 0; | |
| 247 | + overflow: hidden; | |
| 248 | + clip: rect(0, 0, 0, 0); | |
| 249 | + border: 0; | |
| 250 | + content: "Previous Month"; | |
| 251 | +} | |
| 252 | +.bootstrap-datetimepicker-widget table th.next::after { | |
| 253 | + position: absolute; | |
| 254 | + width: 1px; | |
| 255 | + height: 1px; | |
| 256 | + margin: -1px; | |
| 257 | + padding: 0; | |
| 258 | + overflow: hidden; | |
| 259 | + clip: rect(0, 0, 0, 0); | |
| 260 | + border: 0; | |
| 261 | + content: "Next Month"; | |
| 262 | +} | |
| 263 | +.bootstrap-datetimepicker-widget table thead tr:first-child th { | |
| 264 | + cursor: pointer; | |
| 265 | +} | |
| 266 | +.bootstrap-datetimepicker-widget table thead tr:first-child th:hover { | |
| 267 | + background: #eeeeee; | |
| 268 | +} | |
| 269 | +.bootstrap-datetimepicker-widget table td { | |
| 270 | + height: 54px; | |
| 271 | + line-height: 54px; | |
| 272 | + width: 54px; | |
| 273 | +} | |
| 274 | +.bootstrap-datetimepicker-widget table td.cw { | |
| 275 | + font-size: .8em; | |
| 276 | + height: 20px; | |
| 277 | + line-height: 20px; | |
| 278 | + color: #777777; | |
| 279 | +} | |
| 280 | +.bootstrap-datetimepicker-widget table td.day { | |
| 281 | + height: 20px; | |
| 282 | + line-height: 20px; | |
| 283 | + width: 20px; | |
| 284 | +} | |
| 285 | +.bootstrap-datetimepicker-widget table td.day:hover, | |
| 286 | +.bootstrap-datetimepicker-widget table td.hour:hover, | |
| 287 | +.bootstrap-datetimepicker-widget table td.minute:hover, | |
| 288 | +.bootstrap-datetimepicker-widget table td.second:hover { | |
| 289 | + background: #eeeeee; | |
| 290 | + cursor: pointer; | |
| 291 | +} | |
| 292 | +.bootstrap-datetimepicker-widget table td.old, | |
| 293 | +.bootstrap-datetimepicker-widget table td.new { | |
| 294 | + color: #777777; | |
| 295 | +} | |
| 296 | +.bootstrap-datetimepicker-widget table td.today { | |
| 297 | + position: relative; | |
| 298 | +} | |
| 299 | +.bootstrap-datetimepicker-widget table td.today:before { | |
| 300 | + content: ''; | |
| 301 | + display: inline-block; | |
| 302 | + border: solid transparent; | |
| 303 | + border-width: 0 0 7px 7px; | |
| 304 | + border-bottom-color: #337ab7; | |
| 305 | + border-top-color: rgba(0, 0, 0, 0.2); | |
| 306 | + position: absolute; | |
| 307 | + bottom: 4px; | |
| 308 | + right: 4px; | |
| 309 | +} | |
| 310 | +.bootstrap-datetimepicker-widget table td.active, | |
| 311 | +.bootstrap-datetimepicker-widget table td.active:hover { | |
| 312 | + background-color: #337ab7; | |
| 313 | + color: #ffffff; | |
| 314 | + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); | |
| 315 | +} | |
| 316 | +.bootstrap-datetimepicker-widget table td.active.today:before { | |
| 317 | + border-bottom-color: #fff; | |
| 318 | +} | |
| 319 | +.bootstrap-datetimepicker-widget table td.disabled, | |
| 320 | +.bootstrap-datetimepicker-widget table td.disabled:hover { | |
| 321 | + background: none; | |
| 322 | + color: #777777; | |
| 323 | + cursor: not-allowed; | |
| 324 | +} | |
| 325 | +.bootstrap-datetimepicker-widget table td span { | |
| 326 | + display: inline-block; | |
| 327 | + width: 54px; | |
| 328 | + height: 54px; | |
| 329 | + line-height: 54px; | |
| 330 | + margin: 2px 1.5px; | |
| 331 | + cursor: pointer; | |
| 332 | + border-radius: 4px; | |
| 333 | +} | |
| 334 | +.bootstrap-datetimepicker-widget table td span:hover { | |
| 335 | + background: #eeeeee; | |
| 336 | +} | |
| 337 | +.bootstrap-datetimepicker-widget table td span.active { | |
| 338 | + background-color: #337ab7; | |
| 339 | + color: #ffffff; | |
| 340 | + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); | |
| 341 | +} | |
| 342 | +.bootstrap-datetimepicker-widget table td span.old { | |
| 343 | + color: #777777; | |
| 344 | +} | |
| 345 | +.bootstrap-datetimepicker-widget table td span.disabled, | |
| 346 | +.bootstrap-datetimepicker-widget table td span.disabled:hover { | |
| 347 | + background: none; | |
| 348 | + color: #777777; | |
| 349 | + cursor: not-allowed; | |
| 350 | +} | |
| 351 | +.bootstrap-datetimepicker-widget.usetwentyfour td.hour { | |
| 352 | + height: 27px; | |
| 353 | + line-height: 27px; | |
| 354 | +} | |
| 355 | +.bootstrap-datetimepicker-widget.wider { | |
| 356 | + width: 21em; | |
| 357 | +} | |
| 358 | +.bootstrap-datetimepicker-widget .datepicker-decades .decade { | |
| 359 | + line-height: 1.8em !important; | |
| 360 | +} | |
| 361 | +.input-group.date .input-group-addon { | |
| 362 | + cursor: pointer; | |
| 363 | +} | |
| 364 | +.sr-only { | |
| 365 | + position: absolute; | |
| 366 | + width: 1px; | |
| 367 | + height: 1px; | |
| 368 | + margin: -1px; | |
| 369 | + padding: 0; | |
| 370 | + overflow: hidden; | |
| 371 | + clip: rect(0, 0, 0, 0); | |
| 372 | + border: 0; | |
| 373 | +} | ... | ... |
src/main/resources/static/metronic_v4.5.4/plugins/bootstrap-datetimepicker-2/css/bootstrap-datetimepicker.min.css
0 → 100644
| 1 | +/*! | |
| 2 | + * Datetimepicker for Bootstrap 3 | |
| 3 | + * version : 4.17.37 | |
| 4 | + * https://github.com/Eonasdan/bootstrap-datetimepicker/ | |
| 5 | + */.bootstrap-datetimepicker-widget{list-style:none}.bootstrap-datetimepicker-widget.dropdown-menu{margin:2px 0;padding:4px;width:19em}@media (min-width:768px){.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs{width:38em}}@media (min-width:992px){.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs{width:38em}}@media (min-width:1200px){.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs{width:38em}}.bootstrap-datetimepicker-widget.dropdown-menu:before,.bootstrap-datetimepicker-widget.dropdown-menu:after{content:'';display:inline-block;position:absolute}.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,0.2);top:-7px;left:7px}.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after{border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid white;top:-6px;left:8px}.bootstrap-datetimepicker-widget.dropdown-menu.top:before{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #ccc;border-top-color:rgba(0,0,0,0.2);bottom:-7px;left:6px}.bootstrap-datetimepicker-widget.dropdown-menu.top:after{border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid white;bottom:-6px;left:7px}.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before{left:auto;right:6px}.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after{left:auto;right:7px}.bootstrap-datetimepicker-widget .list-unstyled{margin:0}.bootstrap-datetimepicker-widget a[data-action]{padding:6px 0}.bootstrap-datetimepicker-widget a[data-action]:active{box-shadow:none}.bootstrap-datetimepicker-widget .timepicker-hour,.bootstrap-datetimepicker-widget .timepicker-minute,.bootstrap-datetimepicker-widget .timepicker-second{width:54px;font-weight:bold;font-size:1.2em;margin:0}.bootstrap-datetimepicker-widget button[data-action]{padding:6px}.bootstrap-datetimepicker-widget .btn[data-action="incrementHours"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Increment Hours"}.bootstrap-datetimepicker-widget .btn[data-action="incrementMinutes"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Increment Minutes"}.bootstrap-datetimepicker-widget .btn[data-action="decrementHours"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Decrement Hours"}.bootstrap-datetimepicker-widget .btn[data-action="decrementMinutes"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Decrement Minutes"}.bootstrap-datetimepicker-widget .btn[data-action="showHours"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Show Hours"}.bootstrap-datetimepicker-widget .btn[data-action="showMinutes"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Show Minutes"}.bootstrap-datetimepicker-widget .btn[data-action="togglePeriod"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Toggle AM/PM"}.bootstrap-datetimepicker-widget .btn[data-action="clear"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Clear the picker"}.bootstrap-datetimepicker-widget .btn[data-action="today"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Set the date to today"}.bootstrap-datetimepicker-widget .picker-switch{text-align:center}.bootstrap-datetimepicker-widget .picker-switch::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Toggle Date and Time Screens"}.bootstrap-datetimepicker-widget .picker-switch td{padding:0;margin:0;height:auto;width:auto;line-height:inherit}.bootstrap-datetimepicker-widget .picker-switch td span{line-height:2.5;height:2.5em;width:100%}.bootstrap-datetimepicker-widget table{width:100%;margin:0}.bootstrap-datetimepicker-widget table td,.bootstrap-datetimepicker-widget table th{text-align:center;border-radius:4px}.bootstrap-datetimepicker-widget table th{height:20px;line-height:20px;width:20px}.bootstrap-datetimepicker-widget table th.picker-switch{width:145px}.bootstrap-datetimepicker-widget table th.disabled,.bootstrap-datetimepicker-widget table th.disabled:hover{background:none;color:#777;cursor:not-allowed}.bootstrap-datetimepicker-widget table th.prev::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Previous Month"}.bootstrap-datetimepicker-widget table th.next::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Next Month"}.bootstrap-datetimepicker-widget table thead tr:first-child th{cursor:pointer}.bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background:#eee}.bootstrap-datetimepicker-widget table td{height:54px;line-height:54px;width:54px}.bootstrap-datetimepicker-widget table td.cw{font-size:.8em;height:20px;line-height:20px;color:#777}.bootstrap-datetimepicker-widget table td.day{height:20px;line-height:20px;width:20px}.bootstrap-datetimepicker-widget table td.day:hover,.bootstrap-datetimepicker-widget table td.hour:hover,.bootstrap-datetimepicker-widget table td.minute:hover,.bootstrap-datetimepicker-widget table td.second:hover{background:#eee;cursor:pointer}.bootstrap-datetimepicker-widget table td.old,.bootstrap-datetimepicker-widget table td.new{color:#777}.bootstrap-datetimepicker-widget table td.today{position:relative}.bootstrap-datetimepicker-widget table td.today:before{content:'';display:inline-block;border:solid transparent;border-width:0 0 7px 7px;border-bottom-color:#337ab7;border-top-color:rgba(0,0,0,0.2);position:absolute;bottom:4px;right:4px}.bootstrap-datetimepicker-widget table td.active,.bootstrap-datetimepicker-widget table td.active:hover{background-color:#337ab7;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.bootstrap-datetimepicker-widget table td.active.today:before{border-bottom-color:#fff}.bootstrap-datetimepicker-widget table td.disabled,.bootstrap-datetimepicker-widget table td.disabled:hover{background:none;color:#777;cursor:not-allowed}.bootstrap-datetimepicker-widget table td span{display:inline-block;width:54px;height:54px;line-height:54px;margin:2px 1.5px;cursor:pointer;border-radius:4px}.bootstrap-datetimepicker-widget table td span:hover{background:#eee}.bootstrap-datetimepicker-widget table td span.active{background-color:#337ab7;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.bootstrap-datetimepicker-widget table td span.old{color:#777}.bootstrap-datetimepicker-widget table td span.disabled,.bootstrap-datetimepicker-widget table td span.disabled:hover{background:none;color:#777;cursor:not-allowed}.bootstrap-datetimepicker-widget.usetwentyfour td.hour{height:27px;line-height:27px}.bootstrap-datetimepicker-widget.wider{width:21em}.bootstrap-datetimepicker-widget .datepicker-decades .decade{line-height:1.8em !important}.input-group.date .input-group-addon{cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0} | |
| 0 | 6 | \ No newline at end of file | ... | ... |
src/main/resources/static/metronic_v4.5.4/plugins/bootstrap-datetimepicker-2/js/bootstrap-datetimepicker.min.js
0 → 100644
| 1 | +/*! version : 4.17.37 | |
| 2 | + ========================================================= | |
| 3 | + bootstrap-datetimejs | |
| 4 | + https://github.com/Eonasdan/bootstrap-datetimepicker | |
| 5 | + Copyright (c) 2015 Jonathan Peterson | |
| 6 | + ========================================================= | |
| 7 | + */ | |
| 8 | +!function(a){"use strict";if("function"==typeof define&&define.amd)define(["jquery","moment"],a);else if("object"==typeof exports)a(require("jquery"),require("moment"));else{if("undefined"==typeof jQuery)throw"bootstrap-datetimepicker requires jQuery to be loaded first";if("undefined"==typeof moment)throw"bootstrap-datetimepicker requires Moment.js to be loaded first";a(jQuery,moment)}}(function(a,b){"use strict";if(!b)throw new Error("bootstrap-datetimepicker requires Moment.js to be loaded first");var c=function(c,d){var e,f,g,h,i,j,k,l={},m=!0,n=!1,o=!1,p=0,q=[{clsName:"days",navFnc:"M",navStep:1},{clsName:"months",navFnc:"y",navStep:1},{clsName:"years",navFnc:"y",navStep:10},{clsName:"decades",navFnc:"y",navStep:100}],r=["days","months","years","decades"],s=["top","bottom","auto"],t=["left","right","auto"],u=["default","top","bottom"],v={up:38,38:"up",down:40,40:"down",left:37,37:"left",right:39,39:"right",tab:9,9:"tab",escape:27,27:"escape",enter:13,13:"enter",pageUp:33,33:"pageUp",pageDown:34,34:"pageDown",shift:16,16:"shift",control:17,17:"control",space:32,32:"space",t:84,84:"t","delete":46,46:"delete"},w={},x=function(a){var c,e,f,g,h,i=!1;return void 0!==b.tz&&void 0!==d.timeZone&&null!==d.timeZone&&""!==d.timeZone&&(i=!0),void 0===a||null===a?c=i?b().tz(d.timeZone).startOf("d"):b().startOf("d"):i?(e=b().tz(d.timeZone).utcOffset(),f=b(a,j,d.useStrict).utcOffset(),f!==e?(g=b().tz(d.timeZone).format("Z"),h=b(a,j,d.useStrict).format("YYYY-MM-DD[T]HH:mm:ss")+g,c=b(h,j,d.useStrict).tz(d.timeZone)):c=b(a,j,d.useStrict).tz(d.timeZone)):c=b(a,j,d.useStrict),c},y=function(a){if("string"!=typeof a||a.length>1)throw new TypeError("isEnabled expects a single character string parameter");switch(a){case"y":return-1!==i.indexOf("Y");case"M":return-1!==i.indexOf("M");case"d":return-1!==i.toLowerCase().indexOf("d");case"h":case"H":return-1!==i.toLowerCase().indexOf("h");case"m":return-1!==i.indexOf("m");case"s":return-1!==i.indexOf("s");default:return!1}},z=function(){return y("h")||y("m")||y("s")},A=function(){return y("y")||y("M")||y("d")},B=function(){var b=a("<thead>").append(a("<tr>").append(a("<th>").addClass("prev").attr("data-action","previous").append(a("<span>").addClass(d.icons.previous))).append(a("<th>").addClass("picker-switch").attr("data-action","pickerSwitch").attr("colspan",d.calendarWeeks?"6":"5")).append(a("<th>").addClass("next").attr("data-action","next").append(a("<span>").addClass(d.icons.next)))),c=a("<tbody>").append(a("<tr>").append(a("<td>").attr("colspan",d.calendarWeeks?"8":"7")));return[a("<div>").addClass("datepicker-days").append(a("<table>").addClass("table-condensed").append(b).append(a("<tbody>"))),a("<div>").addClass("datepicker-months").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone())),a("<div>").addClass("datepicker-years").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone())),a("<div>").addClass("datepicker-decades").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone()))]},C=function(){var b=a("<tr>"),c=a("<tr>"),e=a("<tr>");return y("h")&&(b.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementHour}).addClass("btn").attr("data-action","incrementHours").append(a("<span>").addClass(d.icons.up)))),c.append(a("<td>").append(a("<span>").addClass("timepicker-hour").attr({"data-time-component":"hours",title:d.tooltips.pickHour}).attr("data-action","showHours"))),e.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementHour}).addClass("btn").attr("data-action","decrementHours").append(a("<span>").addClass(d.icons.down))))),y("m")&&(y("h")&&(b.append(a("<td>").addClass("separator")),c.append(a("<td>").addClass("separator").html(":")),e.append(a("<td>").addClass("separator"))),b.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementMinute}).addClass("btn").attr("data-action","incrementMinutes").append(a("<span>").addClass(d.icons.up)))),c.append(a("<td>").append(a("<span>").addClass("timepicker-minute").attr({"data-time-component":"minutes",title:d.tooltips.pickMinute}).attr("data-action","showMinutes"))),e.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementMinute}).addClass("btn").attr("data-action","decrementMinutes").append(a("<span>").addClass(d.icons.down))))),y("s")&&(y("m")&&(b.append(a("<td>").addClass("separator")),c.append(a("<td>").addClass("separator").html(":")),e.append(a("<td>").addClass("separator"))),b.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementSecond}).addClass("btn").attr("data-action","incrementSeconds").append(a("<span>").addClass(d.icons.up)))),c.append(a("<td>").append(a("<span>").addClass("timepicker-second").attr({"data-time-component":"seconds",title:d.tooltips.pickSecond}).attr("data-action","showSeconds"))),e.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementSecond}).addClass("btn").attr("data-action","decrementSeconds").append(a("<span>").addClass(d.icons.down))))),h||(b.append(a("<td>").addClass("separator")),c.append(a("<td>").append(a("<button>").addClass("btn btn-primary").attr({"data-action":"togglePeriod",tabindex:"-1",title:d.tooltips.togglePeriod}))),e.append(a("<td>").addClass("separator"))),a("<div>").addClass("timepicker-picker").append(a("<table>").addClass("table-condensed").append([b,c,e]))},D=function(){var b=a("<div>").addClass("timepicker-hours").append(a("<table>").addClass("table-condensed")),c=a("<div>").addClass("timepicker-minutes").append(a("<table>").addClass("table-condensed")),d=a("<div>").addClass("timepicker-seconds").append(a("<table>").addClass("table-condensed")),e=[C()];return y("h")&&e.push(b),y("m")&&e.push(c),y("s")&&e.push(d),e},E=function(){var b=[];return d.showTodayButton&&b.push(a("<td>").append(a("<a>").attr({"data-action":"today",title:d.tooltips.today}).append(a("<span>").addClass(d.icons.today)))),!d.sideBySide&&A()&&z()&&b.push(a("<td>").append(a("<a>").attr({"data-action":"togglePicker",title:d.tooltips.selectTime}).append(a("<span>").addClass(d.icons.time)))),d.showClear&&b.push(a("<td>").append(a("<a>").attr({"data-action":"clear",title:d.tooltips.clear}).append(a("<span>").addClass(d.icons.clear)))),d.showClose&&b.push(a("<td>").append(a("<a>").attr({"data-action":"close",title:d.tooltips.close}).append(a("<span>").addClass(d.icons.close)))),a("<table>").addClass("table-condensed").append(a("<tbody>").append(a("<tr>").append(b)))},F=function(){var b=a("<div>").addClass("bootstrap-datetimepicker-widget dropdown-menu"),c=a("<div>").addClass("datepicker").append(B()),e=a("<div>").addClass("timepicker").append(D()),f=a("<ul>").addClass("list-unstyled"),g=a("<li>").addClass("picker-switch"+(d.collapse?" accordion-toggle":"")).append(E());return d.inline&&b.removeClass("dropdown-menu"),h&&b.addClass("usetwentyfour"),y("s")&&!h&&b.addClass("wider"),d.sideBySide&&A()&&z()?(b.addClass("timepicker-sbs"),"top"===d.toolbarPlacement&&b.append(g),b.append(a("<div>").addClass("row").append(c.addClass("col-md-6")).append(e.addClass("col-md-6"))),"bottom"===d.toolbarPlacement&&b.append(g),b):("top"===d.toolbarPlacement&&f.append(g),A()&&f.append(a("<li>").addClass(d.collapse&&z()?"collapse in":"").append(c)),"default"===d.toolbarPlacement&&f.append(g),z()&&f.append(a("<li>").addClass(d.collapse&&A()?"collapse":"").append(e)),"bottom"===d.toolbarPlacement&&f.append(g),b.append(f))},G=function(){var b,e={};return b=c.is("input")||d.inline?c.data():c.find("input").data(),b.dateOptions&&b.dateOptions instanceof Object&&(e=a.extend(!0,e,b.dateOptions)),a.each(d,function(a){var c="date"+a.charAt(0).toUpperCase()+a.slice(1);void 0!==b[c]&&(e[a]=b[c])}),e},H=function(){var b,e=(n||c).position(),f=(n||c).offset(),g=d.widgetPositioning.vertical,h=d.widgetPositioning.horizontal;if(d.widgetParent)b=d.widgetParent.append(o);else if(c.is("input"))b=c.after(o).parent();else{if(d.inline)return void(b=c.append(o));b=c,c.children().first().after(o)}if("auto"===g&&(g=f.top+1.5*o.height()>=a(window).height()+a(window).scrollTop()&&o.height()+c.outerHeight()<f.top?"top":"bottom"),"auto"===h&&(h=b.width()<f.left+o.outerWidth()/2&&f.left+o.outerWidth()>a(window).width()?"right":"left"),"top"===g?o.addClass("top").removeClass("bottom"):o.addClass("bottom").removeClass("top"),"right"===h?o.addClass("pull-right"):o.removeClass("pull-right"),"relative"!==b.css("position")&&(b=b.parents().filter(function(){return"relative"===a(this).css("position")}).first()),0===b.length)throw new Error("datetimepicker component should be placed within a relative positioned container");o.css({top:"top"===g?"auto":e.top+c.outerHeight(),bottom:"top"===g?e.top+c.outerHeight():"auto",left:"left"===h?b===c?0:e.left:"auto",right:"left"===h?"auto":b.outerWidth()-c.outerWidth()-(b===c?0:e.left)})},I=function(a){"dp.change"===a.type&&(a.date&&a.date.isSame(a.oldDate)||!a.date&&!a.oldDate)||c.trigger(a)},J=function(a){"y"===a&&(a="YYYY"),I({type:"dp.update",change:a,viewDate:f.clone()})},K=function(a){o&&(a&&(k=Math.max(p,Math.min(3,k+a))),o.find(".datepicker > div").hide().filter(".datepicker-"+q[k].clsName).show())},L=function(){var b=a("<tr>"),c=f.clone().startOf("w").startOf("d");for(d.calendarWeeks===!0&&b.append(a("<th>").addClass("cw").text("#"));c.isBefore(f.clone().endOf("w"));)b.append(a("<th>").addClass("dow").text(c.format("dd"))),c.add(1,"d");o.find(".datepicker-days thead").append(b)},M=function(a){return d.disabledDates[a.format("YYYY-MM-DD")]===!0},N=function(a){return d.enabledDates[a.format("YYYY-MM-DD")]===!0},O=function(a){return d.disabledHours[a.format("H")]===!0},P=function(a){return d.enabledHours[a.format("H")]===!0},Q=function(b,c){if(!b.isValid())return!1;if(d.disabledDates&&"d"===c&&M(b))return!1;if(d.enabledDates&&"d"===c&&!N(b))return!1;if(d.minDate&&b.isBefore(d.minDate,c))return!1;if(d.maxDate&&b.isAfter(d.maxDate,c))return!1;if(d.daysOfWeekDisabled&&"d"===c&&-1!==d.daysOfWeekDisabled.indexOf(b.day()))return!1;if(d.disabledHours&&("h"===c||"m"===c||"s"===c)&&O(b))return!1;if(d.enabledHours&&("h"===c||"m"===c||"s"===c)&&!P(b))return!1;if(d.disabledTimeIntervals&&("h"===c||"m"===c||"s"===c)){var e=!1;if(a.each(d.disabledTimeIntervals,function(){return b.isBetween(this[0],this[1])?(e=!0,!1):void 0}),e)return!1}return!0},R=function(){for(var b=[],c=f.clone().startOf("y").startOf("d");c.isSame(f,"y");)b.push(a("<span>").attr("data-action","selectMonth").addClass("month").text(c.format("MMM"))),c.add(1,"M");o.find(".datepicker-months td").empty().append(b)},S=function(){var b=o.find(".datepicker-months"),c=b.find("th"),g=b.find("tbody").find("span");c.eq(0).find("span").attr("title",d.tooltips.prevYear),c.eq(1).attr("title",d.tooltips.selectYear),c.eq(2).find("span").attr("title",d.tooltips.nextYear),b.find(".disabled").removeClass("disabled"),Q(f.clone().subtract(1,"y"),"y")||c.eq(0).addClass("disabled"),c.eq(1).text(f.year()),Q(f.clone().add(1,"y"),"y")||c.eq(2).addClass("disabled"),g.removeClass("active"),e.isSame(f,"y")&&!m&&g.eq(e.month()).addClass("active"),g.each(function(b){Q(f.clone().month(b),"M")||a(this).addClass("disabled")})},T=function(){var a=o.find(".datepicker-years"),b=a.find("th"),c=f.clone().subtract(5,"y"),g=f.clone().add(6,"y"),h="";for(b.eq(0).find("span").attr("title",d.tooltips.prevDecade),b.eq(1).attr("title",d.tooltips.selectDecade),b.eq(2).find("span").attr("title",d.tooltips.nextDecade),a.find(".disabled").removeClass("disabled"),d.minDate&&d.minDate.isAfter(c,"y")&&b.eq(0).addClass("disabled"),b.eq(1).text(c.year()+"-"+g.year()),d.maxDate&&d.maxDate.isBefore(g,"y")&&b.eq(2).addClass("disabled");!c.isAfter(g,"y");)h+='<span data-action="selectYear" class="year'+(c.isSame(e,"y")&&!m?" active":"")+(Q(c,"y")?"":" disabled")+'">'+c.year()+"</span>",c.add(1,"y");a.find("td").html(h)},U=function(){var a=o.find(".datepicker-decades"),c=a.find("th"),g=b({y:f.year()-f.year()%100-1}),h=g.clone().add(100,"y"),i=g.clone(),j="";for(c.eq(0).find("span").attr("title",d.tooltips.prevCentury),c.eq(2).find("span").attr("title",d.tooltips.nextCentury),a.find(".disabled").removeClass("disabled"),(g.isSame(b({y:1900}))||d.minDate&&d.minDate.isAfter(g,"y"))&&c.eq(0).addClass("disabled"),c.eq(1).text(g.year()+"-"+h.year()),(g.isSame(b({y:2e3}))||d.maxDate&&d.maxDate.isBefore(h,"y"))&&c.eq(2).addClass("disabled");!g.isAfter(h,"y");)j+='<span data-action="selectDecade" class="decade'+(g.isSame(e,"y")?" active":"")+(Q(g,"y")?"":" disabled")+'" data-selection="'+(g.year()+6)+'">'+(g.year()+1)+" - "+(g.year()+12)+"</span>",g.add(12,"y");j+="<span></span><span></span><span></span>",a.find("td").html(j),c.eq(1).text(i.year()+1+"-"+g.year())},V=function(){var b,c,g,h,i=o.find(".datepicker-days"),j=i.find("th"),k=[];if(A()){for(j.eq(0).find("span").attr("title",d.tooltips.prevMonth),j.eq(1).attr("title",d.tooltips.selectMonth),j.eq(2).find("span").attr("title",d.tooltips.nextMonth),i.find(".disabled").removeClass("disabled"),j.eq(1).text(f.format(d.dayViewHeaderFormat)),Q(f.clone().subtract(1,"M"),"M")||j.eq(0).addClass("disabled"),Q(f.clone().add(1,"M"),"M")||j.eq(2).addClass("disabled"),b=f.clone().startOf("M").startOf("w").startOf("d"),h=0;42>h;h++)0===b.weekday()&&(c=a("<tr>"),d.calendarWeeks&&c.append('<td class="cw">'+b.week()+"</td>"),k.push(c)),g="",b.isBefore(f,"M")&&(g+=" old"),b.isAfter(f,"M")&&(g+=" new"),b.isSame(e,"d")&&!m&&(g+=" active"),Q(b,"d")||(g+=" disabled"),b.isSame(x(),"d")&&(g+=" today"),(0===b.day()||6===b.day())&&(g+=" weekend"),c.append('<td data-action="selectDay" data-day="'+b.format("L")+'" class="day'+g+'">'+b.date()+"</td>"),b.add(1,"d");i.find("tbody").empty().append(k),S(),T(),U()}},W=function(){var b=o.find(".timepicker-hours table"),c=f.clone().startOf("d"),d=[],e=a("<tr>");for(f.hour()>11&&!h&&c.hour(12);c.isSame(f,"d")&&(h||f.hour()<12&&c.hour()<12||f.hour()>11);)c.hour()%4===0&&(e=a("<tr>"),d.push(e)),e.append('<td data-action="selectHour" class="hour'+(Q(c,"h")?"":" disabled")+'">'+c.format(h?"HH":"hh")+"</td>"),c.add(1,"h");b.empty().append(d)},X=function(){for(var b=o.find(".timepicker-minutes table"),c=f.clone().startOf("h"),e=[],g=a("<tr>"),h=1===d.stepping?5:d.stepping;f.isSame(c,"h");)c.minute()%(4*h)===0&&(g=a("<tr>"),e.push(g)),g.append('<td data-action="selectMinute" class="minute'+(Q(c,"m")?"":" disabled")+'">'+c.format("mm")+"</td>"),c.add(h,"m");b.empty().append(e)},Y=function(){for(var b=o.find(".timepicker-seconds table"),c=f.clone().startOf("m"),d=[],e=a("<tr>");f.isSame(c,"m");)c.second()%20===0&&(e=a("<tr>"),d.push(e)),e.append('<td data-action="selectSecond" class="second'+(Q(c,"s")?"":" disabled")+'">'+c.format("ss")+"</td>"),c.add(5,"s");b.empty().append(d)},Z=function(){var a,b,c=o.find(".timepicker span[data-time-component]");h||(a=o.find(".timepicker [data-action=togglePeriod]"),b=e.clone().add(e.hours()>=12?-12:12,"h"),a.text(e.format("A")),Q(b,"h")?a.removeClass("disabled"):a.addClass("disabled")),c.filter("[data-time-component=hours]").text(e.format(h?"HH":"hh")),c.filter("[data-time-component=minutes]").text(e.format("mm")),c.filter("[data-time-component=seconds]").text(e.format("ss")),W(),X(),Y()},$=function(){o&&(V(),Z())},_=function(a){var b=m?null:e;return a?(a=a.clone().locale(d.locale),1!==d.stepping&&a.minutes(Math.round(a.minutes()/d.stepping)*d.stepping%60).seconds(0),void(Q(a)?(e=a,f=e.clone(),g.val(e.format(i)),c.data("date",e.format(i)),m=!1,$(),I({type:"dp.change",date:e.clone(),oldDate:b})):(d.keepInvalid||g.val(m?"":e.format(i)),I({type:"dp.error",date:a})))):(m=!0,g.val(""),c.data("date",""),I({type:"dp.change",date:!1,oldDate:b}),void $())},aa=function(){var b=!1;return o?(o.find(".collapse").each(function(){var c=a(this).data("collapse");return c&&c.transitioning?(b=!0,!1):!0}),b?l:(n&&n.hasClass("btn")&&n.toggleClass("active"),o.hide(),a(window).off("resize",H),o.off("click","[data-action]"),o.off("mousedown",!1),o.remove(),o=!1,I({type:"dp.hide",date:e.clone()}),g.blur(),l)):l},ba=function(){_(null)},ca={next:function(){var a=q[k].navFnc;f.add(q[k].navStep,a),V(),J(a)},previous:function(){var a=q[k].navFnc;f.subtract(q[k].navStep,a),V(),J(a)},pickerSwitch:function(){K(1)},selectMonth:function(b){var c=a(b.target).closest("tbody").find("span").index(a(b.target));f.month(c),k===p?(_(e.clone().year(f.year()).month(f.month())),d.inline||aa()):(K(-1),V()),J("M")},selectYear:function(b){var c=parseInt(a(b.target).text(),10)||0;f.year(c),k===p?(_(e.clone().year(f.year())),d.inline||aa()):(K(-1),V()),J("YYYY")},selectDecade:function(b){var c=parseInt(a(b.target).data("selection"),10)||0;f.year(c),k===p?(_(e.clone().year(f.year())),d.inline||aa()):(K(-1),V()),J("YYYY")},selectDay:function(b){var c=f.clone();a(b.target).is(".old")&&c.subtract(1,"M"),a(b.target).is(".new")&&c.add(1,"M"),_(c.date(parseInt(a(b.target).text(),10))),z()||d.keepOpen||d.inline||aa()},incrementHours:function(){var a=e.clone().add(1,"h");Q(a,"h")&&_(a)},incrementMinutes:function(){var a=e.clone().add(d.stepping,"m");Q(a,"m")&&_(a)},incrementSeconds:function(){var a=e.clone().add(1,"s");Q(a,"s")&&_(a)},decrementHours:function(){var a=e.clone().subtract(1,"h");Q(a,"h")&&_(a)},decrementMinutes:function(){var a=e.clone().subtract(d.stepping,"m");Q(a,"m")&&_(a)},decrementSeconds:function(){var a=e.clone().subtract(1,"s");Q(a,"s")&&_(a)},togglePeriod:function(){_(e.clone().add(e.hours()>=12?-12:12,"h"))},togglePicker:function(b){var c,e=a(b.target),f=e.closest("ul"),g=f.find(".in"),h=f.find(".collapse:not(.in)");if(g&&g.length){if(c=g.data("collapse"),c&&c.transitioning)return;g.collapse?(g.collapse("hide"),h.collapse("show")):(g.removeClass("in"),h.addClass("in")),e.is("span")?e.toggleClass(d.icons.time+" "+d.icons.date):e.find("span").toggleClass(d.icons.time+" "+d.icons.date)}},showPicker:function(){o.find(".timepicker > div:not(.timepicker-picker)").hide(),o.find(".timepicker .timepicker-picker").show()},showHours:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-hours").show()},showMinutes:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-minutes").show()},showSeconds:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-seconds").show()},selectHour:function(b){var c=parseInt(a(b.target).text(),10);h||(e.hours()>=12?12!==c&&(c+=12):12===c&&(c=0)),_(e.clone().hours(c)),ca.showPicker.call(l)},selectMinute:function(b){_(e.clone().minutes(parseInt(a(b.target).text(),10))),ca.showPicker.call(l)},selectSecond:function(b){_(e.clone().seconds(parseInt(a(b.target).text(),10))),ca.showPicker.call(l)},clear:ba,today:function(){var a=x();Q(a,"d")&&_(a)},close:aa},da=function(b){return a(b.currentTarget).is(".disabled")?!1:(ca[a(b.currentTarget).data("action")].apply(l,arguments),!1)},ea=function(){var b,c={year:function(a){return a.month(0).date(1).hours(0).seconds(0).minutes(0)},month:function(a){return a.date(1).hours(0).seconds(0).minutes(0)},day:function(a){return a.hours(0).seconds(0).minutes(0)},hour:function(a){return a.seconds(0).minutes(0)},minute:function(a){return a.seconds(0)}};return g.prop("disabled")||!d.ignoreReadonly&&g.prop("readonly")||o?l:(void 0!==g.val()&&0!==g.val().trim().length?_(ga(g.val().trim())):d.useCurrent&&m&&(g.is("input")&&0===g.val().trim().length||d.inline)&&(b=x(),"string"==typeof d.useCurrent&&(b=c[d.useCurrent](b)),_(b)),o=F(),L(),R(),o.find(".timepicker-hours").hide(),o.find(".timepicker-minutes").hide(),o.find(".timepicker-seconds").hide(),$(),K(),a(window).on("resize",H),o.on("click","[data-action]",da),o.on("mousedown",!1),n&&n.hasClass("btn")&&n.toggleClass("active"),o.show(),H(),d.focusOnShow&&!g.is(":focus")&&g.focus(),I({type:"dp.show"}),l)},fa=function(){return o?aa():ea()},ga=function(a){return a=void 0===d.parseInputDate?b.isMoment(a)||a instanceof Date?b(a):x(a):d.parseInputDate(a),a.locale(d.locale),a},ha=function(a){var b,c,e,f,g=null,h=[],i={},j=a.which,k="p";w[j]=k;for(b in w)w.hasOwnProperty(b)&&w[b]===k&&(h.push(b),parseInt(b,10)!==j&&(i[b]=!0));for(b in d.keyBinds)if(d.keyBinds.hasOwnProperty(b)&&"function"==typeof d.keyBinds[b]&&(e=b.split(" "),e.length===h.length&&v[j]===e[e.length-1])){for(f=!0,c=e.length-2;c>=0;c--)if(!(v[e[c]]in i)){f=!1;break}if(f){g=d.keyBinds[b];break}}g&&(g.call(l,o),a.stopPropagation(),a.preventDefault())},ia=function(a){w[a.which]="r",a.stopPropagation(),a.preventDefault()},ja=function(b){var c=a(b.target).val().trim(),d=c?ga(c):null;return _(d),b.stopImmediatePropagation(),!1},ka=function(){g.on({change:ja,blur:d.debug?"":aa,keydown:ha,keyup:ia,focus:d.allowInputToggle?ea:""}),c.is("input")?g.on({focus:ea}):n&&(n.on("click",fa),n.on("mousedown",!1))},la=function(){g.off({change:ja,blur:blur,keydown:ha,keyup:ia,focus:d.allowInputToggle?aa:""}),c.is("input")?g.off({focus:ea}):n&&(n.off("click",fa),n.off("mousedown",!1))},ma=function(b){var c={};return a.each(b,function(){var a=ga(this);a.isValid()&&(c[a.format("YYYY-MM-DD")]=!0)}),Object.keys(c).length?c:!1},na=function(b){var c={};return a.each(b,function(){c[this]=!0}),Object.keys(c).length?c:!1},oa=function(){var a=d.format||"L LT";i=a.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,function(a){var b=e.localeData().longDateFormat(a)||a;return b.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,function(a){return e.localeData().longDateFormat(a)||a})}),j=d.extraFormats?d.extraFormats.slice():[],j.indexOf(a)<0&&j.indexOf(i)<0&&j.push(i),h=i.toLowerCase().indexOf("a")<1&&i.replace(/\[.*?\]/g,"").indexOf("h")<1,y("y")&&(p=2),y("M")&&(p=1),y("d")&&(p=0),k=Math.max(p,k),m||_(e)};if(l.destroy=function(){aa(),la(),c.removeData("DateTimePicker"),c.removeData("date")},l.toggle=fa,l.show=ea,l.hide=aa,l.disable=function(){return aa(),n&&n.hasClass("btn")&&n.addClass("disabled"),g.prop("disabled",!0),l},l.enable=function(){return n&&n.hasClass("btn")&&n.removeClass("disabled"),g.prop("disabled",!1),l},l.ignoreReadonly=function(a){if(0===arguments.length)return d.ignoreReadonly;if("boolean"!=typeof a)throw new TypeError("ignoreReadonly () expects a boolean parameter");return d.ignoreReadonly=a,l},l.options=function(b){if(0===arguments.length)return a.extend(!0,{},d);if(!(b instanceof Object))throw new TypeError("options() options parameter should be an object");return a.extend(!0,d,b),a.each(d,function(a,b){if(void 0===l[a])throw new TypeError("option "+a+" is not recognized!");l[a](b)}),l},l.date=function(a){if(0===arguments.length)return m?null:e.clone();if(!(null===a||"string"==typeof a||b.isMoment(a)||a instanceof Date))throw new TypeError("date() parameter must be one of [null, string, moment or Date]");return _(null===a?null:ga(a)),l},l.format=function(a){if(0===arguments.length)return d.format;if("string"!=typeof a&&("boolean"!=typeof a||a!==!1))throw new TypeError("format() expects a sting or boolean:false parameter "+a);return d.format=a,i&&oa(),l},l.timeZone=function(a){return 0===arguments.length?d.timeZone:(d.timeZone=a,l)},l.dayViewHeaderFormat=function(a){if(0===arguments.length)return d.dayViewHeaderFormat;if("string"!=typeof a)throw new TypeError("dayViewHeaderFormat() expects a string parameter");return d.dayViewHeaderFormat=a,l},l.extraFormats=function(a){if(0===arguments.length)return d.extraFormats;if(a!==!1&&!(a instanceof Array))throw new TypeError("extraFormats() expects an array or false parameter");return d.extraFormats=a,j&&oa(),l},l.disabledDates=function(b){if(0===arguments.length)return d.disabledDates?a.extend({},d.disabledDates):d.disabledDates;if(!b)return d.disabledDates=!1,$(),l;if(!(b instanceof Array))throw new TypeError("disabledDates() expects an array parameter");return d.disabledDates=ma(b),d.enabledDates=!1,$(),l},l.enabledDates=function(b){if(0===arguments.length)return d.enabledDates?a.extend({},d.enabledDates):d.enabledDates;if(!b)return d.enabledDates=!1,$(),l;if(!(b instanceof Array))throw new TypeError("enabledDates() expects an array parameter");return d.enabledDates=ma(b),d.disabledDates=!1,$(),l},l.daysOfWeekDisabled=function(a){if(0===arguments.length)return d.daysOfWeekDisabled.splice(0);if("boolean"==typeof a&&!a)return d.daysOfWeekDisabled=!1,$(),l;if(!(a instanceof Array))throw new TypeError("daysOfWeekDisabled() expects an array parameter");if(d.daysOfWeekDisabled=a.reduce(function(a,b){return b=parseInt(b,10),b>6||0>b||isNaN(b)?a:(-1===a.indexOf(b)&&a.push(b),a)},[]).sort(),d.useCurrent&&!d.keepInvalid){for(var b=0;!Q(e,"d");){if(e.add(1,"d"),7===b)throw"Tried 7 times to find a valid date";b++}_(e)}return $(),l},l.maxDate=function(a){if(0===arguments.length)return d.maxDate?d.maxDate.clone():d.maxDate;if("boolean"==typeof a&&a===!1)return d.maxDate=!1,$(),l;"string"==typeof a&&("now"===a||"moment"===a)&&(a=x());var b=ga(a);if(!b.isValid())throw new TypeError("maxDate() Could not parse date parameter: "+a);if(d.minDate&&b.isBefore(d.minDate))throw new TypeError("maxDate() date parameter is before options.minDate: "+b.format(i));return d.maxDate=b,d.useCurrent&&!d.keepInvalid&&e.isAfter(a)&&_(d.maxDate),f.isAfter(b)&&(f=b.clone().subtract(d.stepping,"m")),$(),l},l.minDate=function(a){if(0===arguments.length)return d.minDate?d.minDate.clone():d.minDate;if("boolean"==typeof a&&a===!1)return d.minDate=!1,$(),l;"string"==typeof a&&("now"===a||"moment"===a)&&(a=x());var b=ga(a);if(!b.isValid())throw new TypeError("minDate() Could not parse date parameter: "+a);if(d.maxDate&&b.isAfter(d.maxDate))throw new TypeError("minDate() date parameter is after options.maxDate: "+b.format(i));return d.minDate=b,d.useCurrent&&!d.keepInvalid&&e.isBefore(a)&&_(d.minDate),f.isBefore(b)&&(f=b.clone().add(d.stepping,"m")),$(),l},l.defaultDate=function(a){if(0===arguments.length)return d.defaultDate?d.defaultDate.clone():d.defaultDate;if(!a)return d.defaultDate=!1,l;"string"==typeof a&&("now"===a||"moment"===a)&&(a=x());var b=ga(a);if(!b.isValid())throw new TypeError("defaultDate() Could not parse date parameter: "+a);if(!Q(b))throw new TypeError("defaultDate() date passed is invalid according to component setup validations");return d.defaultDate=b,(d.defaultDate&&d.inline||""===g.val().trim())&&_(d.defaultDate),l},l.locale=function(a){if(0===arguments.length)return d.locale;if(!b.localeData(a))throw new TypeError("locale() locale "+a+" is not loaded from moment locales!");return d.locale=a,e.locale(d.locale),f.locale(d.locale),i&&oa(),o&&(aa(),ea()),l},l.stepping=function(a){return 0===arguments.length?d.stepping:(a=parseInt(a,10),(isNaN(a)||1>a)&&(a=1),d.stepping=a,l)},l.useCurrent=function(a){var b=["year","month","day","hour","minute"];if(0===arguments.length)return d.useCurrent;if("boolean"!=typeof a&&"string"!=typeof a)throw new TypeError("useCurrent() expects a boolean or string parameter");if("string"==typeof a&&-1===b.indexOf(a.toLowerCase()))throw new TypeError("useCurrent() expects a string parameter of "+b.join(", "));return d.useCurrent=a,l},l.collapse=function(a){if(0===arguments.length)return d.collapse;if("boolean"!=typeof a)throw new TypeError("collapse() expects a boolean parameter");return d.collapse===a?l:(d.collapse=a,o&&(aa(),ea()),l)},l.icons=function(b){if(0===arguments.length)return a.extend({},d.icons);if(!(b instanceof Object))throw new TypeError("icons() expects parameter to be an Object");return a.extend(d.icons,b),o&&(aa(),ea()),l},l.tooltips=function(b){if(0===arguments.length)return a.extend({},d.tooltips);if(!(b instanceof Object))throw new TypeError("tooltips() expects parameter to be an Object");return a.extend(d.tooltips,b),o&&(aa(),ea()),l},l.useStrict=function(a){if(0===arguments.length)return d.useStrict;if("boolean"!=typeof a)throw new TypeError("useStrict() expects a boolean parameter");return d.useStrict=a,l},l.sideBySide=function(a){if(0===arguments.length)return d.sideBySide;if("boolean"!=typeof a)throw new TypeError("sideBySide() expects a boolean parameter");return d.sideBySide=a,o&&(aa(),ea()),l},l.viewMode=function(a){if(0===arguments.length)return d.viewMode;if("string"!=typeof a)throw new TypeError("viewMode() expects a string parameter");if(-1===r.indexOf(a))throw new TypeError("viewMode() parameter must be one of ("+r.join(", ")+") value");return d.viewMode=a,k=Math.max(r.indexOf(a),p),K(),l},l.toolbarPlacement=function(a){if(0===arguments.length)return d.toolbarPlacement;if("string"!=typeof a)throw new TypeError("toolbarPlacement() expects a string parameter");if(-1===u.indexOf(a))throw new TypeError("toolbarPlacement() parameter must be one of ("+u.join(", ")+") value");return d.toolbarPlacement=a,o&&(aa(),ea()),l},l.widgetPositioning=function(b){if(0===arguments.length)return a.extend({},d.widgetPositioning);if("[object Object]"!=={}.toString.call(b))throw new TypeError("widgetPositioning() expects an object variable");if(b.horizontal){if("string"!=typeof b.horizontal)throw new TypeError("widgetPositioning() horizontal variable must be a string");if(b.horizontal=b.horizontal.toLowerCase(),-1===t.indexOf(b.horizontal))throw new TypeError("widgetPositioning() expects horizontal parameter to be one of ("+t.join(", ")+")");d.widgetPositioning.horizontal=b.horizontal}if(b.vertical){if("string"!=typeof b.vertical)throw new TypeError("widgetPositioning() vertical variable must be a string");if(b.vertical=b.vertical.toLowerCase(),-1===s.indexOf(b.vertical))throw new TypeError("widgetPositioning() expects vertical parameter to be one of ("+s.join(", ")+")");d.widgetPositioning.vertical=b.vertical}return $(),l},l.calendarWeeks=function(a){if(0===arguments.length)return d.calendarWeeks;if("boolean"!=typeof a)throw new TypeError("calendarWeeks() expects parameter to be a boolean value");return d.calendarWeeks=a,$(),l},l.showTodayButton=function(a){if(0===arguments.length)return d.showTodayButton;if("boolean"!=typeof a)throw new TypeError("showTodayButton() expects a boolean parameter");return d.showTodayButton=a,o&&(aa(),ea()),l},l.showClear=function(a){if(0===arguments.length)return d.showClear;if("boolean"!=typeof a)throw new TypeError("showClear() expects a boolean parameter");return d.showClear=a,o&&(aa(),ea()),l},l.widgetParent=function(b){if(0===arguments.length)return d.widgetParent;if("string"==typeof b&&(b=a(b)),null!==b&&"string"!=typeof b&&!(b instanceof a))throw new TypeError("widgetParent() expects a string or a jQuery object parameter");return d.widgetParent=b,o&&(aa(),ea()),l},l.keepOpen=function(a){if(0===arguments.length)return d.keepOpen;if("boolean"!=typeof a)throw new TypeError("keepOpen() expects a boolean parameter");return d.keepOpen=a,l},l.focusOnShow=function(a){if(0===arguments.length)return d.focusOnShow;if("boolean"!=typeof a)throw new TypeError("focusOnShow() expects a boolean parameter");return d.focusOnShow=a,l},l.inline=function(a){if(0===arguments.length)return d.inline;if("boolean"!=typeof a)throw new TypeError("inline() expects a boolean parameter");return d.inline=a,l},l.clear=function(){return ba(),l},l.keyBinds=function(a){return d.keyBinds=a,l},l.getMoment=function(a){return x(a)},l.debug=function(a){if("boolean"!=typeof a)throw new TypeError("debug() expects a boolean parameter");return d.debug=a,l},l.allowInputToggle=function(a){if(0===arguments.length)return d.allowInputToggle;if("boolean"!=typeof a)throw new TypeError("allowInputToggle() expects a boolean parameter");return d.allowInputToggle=a,l},l.showClose=function(a){if(0===arguments.length)return d.showClose;if("boolean"!=typeof a)throw new TypeError("showClose() expects a boolean parameter");return d.showClose=a,l},l.keepInvalid=function(a){if(0===arguments.length)return d.keepInvalid;if("boolean"!=typeof a)throw new TypeError("keepInvalid() expects a boolean parameter");return d.keepInvalid=a,l},l.datepickerInput=function(a){if(0===arguments.length)return d.datepickerInput;if("string"!=typeof a)throw new TypeError("datepickerInput() expects a string parameter");return d.datepickerInput=a,l},l.parseInputDate=function(a){if(0===arguments.length)return d.parseInputDate; | |
| 9 | +if("function"!=typeof a)throw new TypeError("parseInputDate() sholud be as function");return d.parseInputDate=a,l},l.disabledTimeIntervals=function(b){if(0===arguments.length)return d.disabledTimeIntervals?a.extend({},d.disabledTimeIntervals):d.disabledTimeIntervals;if(!b)return d.disabledTimeIntervals=!1,$(),l;if(!(b instanceof Array))throw new TypeError("disabledTimeIntervals() expects an array parameter");return d.disabledTimeIntervals=b,$(),l},l.disabledHours=function(b){if(0===arguments.length)return d.disabledHours?a.extend({},d.disabledHours):d.disabledHours;if(!b)return d.disabledHours=!1,$(),l;if(!(b instanceof Array))throw new TypeError("disabledHours() expects an array parameter");if(d.disabledHours=na(b),d.enabledHours=!1,d.useCurrent&&!d.keepInvalid){for(var c=0;!Q(e,"h");){if(e.add(1,"h"),24===c)throw"Tried 24 times to find a valid date";c++}_(e)}return $(),l},l.enabledHours=function(b){if(0===arguments.length)return d.enabledHours?a.extend({},d.enabledHours):d.enabledHours;if(!b)return d.enabledHours=!1,$(),l;if(!(b instanceof Array))throw new TypeError("enabledHours() expects an array parameter");if(d.enabledHours=na(b),d.disabledHours=!1,d.useCurrent&&!d.keepInvalid){for(var c=0;!Q(e,"h");){if(e.add(1,"h"),24===c)throw"Tried 24 times to find a valid date";c++}_(e)}return $(),l},l.viewDate=function(a){if(0===arguments.length)return f.clone();if(!a)return f=e.clone(),l;if(!("string"==typeof a||b.isMoment(a)||a instanceof Date))throw new TypeError("viewDate() parameter must be one of [string, moment or Date]");return f=ga(a),J(),l},c.is("input"))g=c;else if(g=c.find(d.datepickerInput),0===g.size())g=c.find("input");else if(!g.is("input"))throw new Error('CSS class "'+d.datepickerInput+'" cannot be applied to non input element');if(c.hasClass("input-group")&&(n=0===c.find(".datepickerbutton").size()?c.find(".input-group-addon"):c.find(".datepickerbutton")),!d.inline&&!g.is("input"))throw new Error("Could not initialize DateTimePicker without an input element");return e=x(),f=e.clone(),a.extend(!0,d,G()),l.options(d),oa(),ka(),g.prop("disabled")&&l.disable(),g.is("input")&&0!==g.val().trim().length?_(ga(g.val().trim())):d.defaultDate&&void 0===g.attr("placeholder")&&_(d.defaultDate),d.inline&&ea(),l};a.fn.datetimepicker=function(b){return this.each(function(){var d=a(this);d.data("DateTimePicker")||(b=a.extend(!0,{},a.fn.datetimepicker.defaults,b),d.data("DateTimePicker",c(d,b)))})},a.fn.datetimepicker.defaults={timeZone:"Etc/UTC",format:!1,dayViewHeaderFormat:"MMMM YYYY",extraFormats:!1,stepping:1,minDate:!1,maxDate:!1,useCurrent:!0,collapse:!0,locale:b.locale(),defaultDate:!1,disabledDates:!1,enabledDates:!1,icons:{time:"glyphicon glyphicon-time",date:"glyphicon glyphicon-calendar",up:"glyphicon glyphicon-chevron-up",down:"glyphicon glyphicon-chevron-down",previous:"glyphicon glyphicon-chevron-left",next:"glyphicon glyphicon-chevron-right",today:"glyphicon glyphicon-screenshot",clear:"glyphicon glyphicon-trash",close:"glyphicon glyphicon-remove"},tooltips:{today:"Go to today",clear:"Clear selection",close:"Close the picker",selectMonth:"Select Month",prevMonth:"Previous Month",nextMonth:"Next Month",selectYear:"Select Year",prevYear:"Previous Year",nextYear:"Next Year",selectDecade:"Select Decade",prevDecade:"Previous Decade",nextDecade:"Next Decade",prevCentury:"Previous Century",nextCentury:"Next Century",pickHour:"Pick Hour",incrementHour:"Increment Hour",decrementHour:"Decrement Hour",pickMinute:"Pick Minute",incrementMinute:"Increment Minute",decrementMinute:"Decrement Minute",pickSecond:"Pick Second",incrementSecond:"Increment Second",decrementSecond:"Decrement Second",togglePeriod:"Toggle Period",selectTime:"Select Time"},useStrict:!1,sideBySide:!1,daysOfWeekDisabled:!1,calendarWeeks:!1,viewMode:"days",toolbarPlacement:"default",showTodayButton:!1,showClear:!1,showClose:!1,widgetPositioning:{horizontal:"auto",vertical:"auto"},widgetParent:null,ignoreReadonly:!1,keepOpen:!1,focusOnShow:!0,inline:!1,keepInvalid:!1,datepickerInput:".datepickerinput",keyBinds:{up:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().subtract(7,"d")):this.date(b.clone().add(this.stepping(),"m"))}},down:function(a){if(!a)return void this.show();var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().add(7,"d")):this.date(b.clone().subtract(this.stepping(),"m"))},"control up":function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().subtract(1,"y")):this.date(b.clone().add(1,"h"))}},"control down":function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().add(1,"y")):this.date(b.clone().subtract(1,"h"))}},left:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().subtract(1,"d"))}},right:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().add(1,"d"))}},pageUp:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().subtract(1,"M"))}},pageDown:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().add(1,"M"))}},enter:function(){this.hide()},escape:function(){this.hide()},"control space":function(a){a.find(".timepicker").is(":visible")&&a.find('.btn[data-action="togglePeriod"]').click()},t:function(){this.date(this.getMoment())},"delete":function(){this.clear()}},debug:!1,allowInputToggle:!1,disabledTimeIntervals:!1,disabledHours:!1,enabledHours:!1,viewDate:!1}}); | |
| 0 | 10 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/home.html
src/main/resources/static/pages/permission/user/list.html
| 1 | -<div class="page-head"> | |
| 2 | - <div class="page-title"> | |
| 3 | - <h1>用户管理</h1> | |
| 4 | - </div> | |
| 5 | -</div> | |
| 6 | - | |
| 7 | -<ul class="page-breadcrumb breadcrumb"> | |
| 8 | - <li><a href="/pages/home.html" data-pjax>首页</a> <i class="fa fa-circle"></i></li> | |
| 9 | - <li><span class="active">权限管理</span> <i class="fa fa-circle"></i></li> | |
| 10 | - <li><span class="active">用户管理</span></li> | |
| 11 | -</ul> | |
| 12 | - | |
| 13 | -<div class="row"> | |
| 14 | - <div class="col-md-12"> | |
| 15 | - <!-- Begin: life time stats --> | |
| 16 | - <div class="portlet light portlet-fit portlet-datatable bordered"> | |
| 17 | - <div class="portlet-title"> | |
| 18 | - <div class="caption"> | |
| 19 | - <i class="fa fa-users font-dark"></i> <span | |
| 20 | - class="caption-subject font-dark sbold uppercase">用户数据表</span> | |
| 21 | - </div> | |
| 22 | - <div class="actions"> | |
| 23 | - <a class="btn btn-circle blue" href="add.html" data-pjax><i class="fa fa-plus"></i> 添加用户</a> | |
| 24 | - <!-- <button type="button" class="btn btn-circle red" disabled="disabled" id="removeButton"><i class="fa fa-trash"></i> 删除用户</button> --> | |
| 25 | - <div class="btn-group"> | |
| 26 | - <a class="btn red btn-outline btn-circle" href="javascript:;" | |
| 27 | - data-toggle="dropdown"> <i class="fa fa-share"></i> <span | |
| 28 | - class="hidden-xs"> 系统工具 </span> <i class="fa fa-angle-down"></i> | |
| 29 | - </a> | |
| 30 | - <ul class="dropdown-menu pull-right" id="datatable_ajax_tools"> | |
| 31 | - <li><a href="javascript:;" data-action="0" | |
| 32 | - class="tool-action"> <i class="fa fa-print"></i> 打印 | |
| 33 | - </a></li> | |
| 34 | - <li><a href="javascript:;" data-action="1" | |
| 35 | - class="tool-action"> <i class="fa fa-copy"></i> 复制 | |
| 36 | - </a></li> | |
| 37 | - <li><a href="javascript:;" data-action="3" | |
| 38 | - class="tool-action"> <i class="fa fa-file-excel-o"></i> | |
| 39 | - 导出Excel | |
| 40 | - </a></li> | |
| 41 | - <li class="divider"></li> | |
| 42 | - <li><a href="javascript:;" data-action="5" | |
| 43 | - class="tool-action"> <i class="fa fa-refresh"></i> 刷新数据 | |
| 44 | - </a></li> | |
| 45 | - </ul> | |
| 46 | - </div> | |
| 47 | - </div> | |
| 48 | - </div> | |
| 49 | - <div class="portlet-body"> | |
| 50 | - <div class="table-container" style="margin-top: 10px"> | |
| 51 | - <table | |
| 52 | - class="table table-striped table-bordered table-hover table-checkable" | |
| 53 | - id="datatable_user"> | |
| 54 | - <thead> | |
| 55 | - <tr role="row" class="heading"> | |
| 56 | - <th width="3%">#</th> | |
| 57 | - <th width="15%">登录名</th> | |
| 58 | - <th width="13%">姓名</th> | |
| 59 | - <th width="100">所属机构</th> | |
| 60 | - <th width="11%">角色</th> | |
| 61 | - <th width="10%">状态</th> | |
| 62 | - <th width="18%">最后登录时间</th> | |
| 63 | - <th width="18%">操作</th> | |
| 64 | - </tr> | |
| 65 | - <tr role="row" class="filter"> | |
| 66 | - <td></td> | |
| 67 | - <td> | |
| 68 | - <input type="text" class="form-control form-filter input-sm" name="userName_like"> | |
| 69 | - </td> | |
| 70 | - <td> | |
| 71 | - <input type="text" class="form-control form-filter input-sm" name="name_like"> | |
| 72 | - </td> | |
| 73 | - <td> | |
| 74 | - <input type="text" class="form-control form-filter input-sm" name="agencies_like"> | |
| 75 | - </td> | |
| 76 | - <td></td> | |
| 77 | - <td> | |
| 78 | - <select class="form-control form-filter " name="enable_eq"> | |
| 79 | - <option value="">请选择...</option> | |
| 80 | - <option value="1">可用</option> | |
| 81 | - <option value="0">禁用</option> | |
| 82 | - </select> | |
| 83 | - </td> | |
| 84 | - <td></td> | |
| 85 | - <td> | |
| 86 | - <button class="btn btn-sm green btn-outline filter-submit margin-bottom" > | |
| 87 | - <i class="fa fa-search"></i> 搜索</button> | |
| 88 | - | |
| 89 | - <button class="btn btn-sm red btn-outline filter-cancel"> | |
| 90 | - <i class="fa fa-times"></i> 重置</button> | |
| 91 | - </td> | |
| 92 | - </tr> | |
| 93 | - </thead> | |
| 94 | - <tbody></tbody> | |
| 95 | - </table> | |
| 96 | - <div style="text-align: right;"> | |
| 97 | - <ul id="pagination" class="pagination"></ul> | |
| 98 | - </div> | |
| 99 | - </div> | |
| 100 | - </div> | |
| 101 | - </div> | |
| 102 | - </div> | |
| 103 | -</div> | |
| 104 | - | |
| 105 | -<script id="user_list_temp" type="text/html"> | |
| 106 | -{{each list as obj i}} | |
| 107 | -<tr> | |
| 108 | - <td style="vertical-align: middle;"> | |
| 109 | - <input type="checkbox" class="group-checkable icheck" data-id="{{obj.id}}"> | |
| 110 | - </td> | |
| 111 | - <td> | |
| 112 | - {{obj.userName}} | |
| 113 | - </td> | |
| 114 | - <td> | |
| 115 | - {{obj.name}} | |
| 116 | - </td> | |
| 117 | - <td> | |
| 118 | - {{obj.agencies}} | |
| 119 | - </td> | |
| 120 | - <td> | |
| 121 | - {{each obj.roles as role j}} | |
| 122 | - {{role.roleName}}、 | |
| 123 | - {{/each}} | |
| 124 | - </td> | |
| 125 | - <td> | |
| 126 | - {{if obj.enabled}} | |
| 127 | - 可用 | |
| 128 | - {{else}} | |
| 129 | - 禁用 | |
| 130 | - {{/if}} | |
| 131 | - </td> | |
| 132 | - <td> | |
| 133 | - {{obj.lastLoginDate}} | |
| 134 | - </td> | |
| 135 | - <td><a href="edit.html?no={{obj.id}}" class="btn default blue-stripe btn-sm" data-pjax> 详细 </a></td> | |
| 136 | -</tr> | |
| 137 | -{{/each}} | |
| 138 | -{{if list.length == 0}} | |
| 139 | -<tr> | |
| 140 | - <td colspan=8><h6 class="muted">没有找到相关数据</h6></td> | |
| 141 | -</tr> | |
| 142 | -{{/if}} | |
| 143 | -</script> | |
| 144 | - | |
| 145 | -<script> | |
| 146 | -$(function(){ | |
| 147 | - var page = 0, initPagination; | |
| 148 | - var icheckOptions = { | |
| 149 | - checkboxClass: 'icheckbox_flat-blue', | |
| 150 | - increaseArea: '20%' | |
| 151 | - } | |
| 152 | - | |
| 153 | - jsDoQuery(null,true); | |
| 154 | - | |
| 155 | - //重置 | |
| 156 | - $('tr.filter .filter-cancel').on('click', function(){ | |
| 157 | - $('tr.filter input, select').val('').change(); | |
| 158 | - jsDoQuery(null, true); | |
| 159 | - }); | |
| 160 | - | |
| 161 | - //提交 | |
| 162 | - $('tr.filter .filter-submit').on('click', function(){ | |
| 163 | - var cells = $('tr.filter')[0].cells | |
| 164 | - ,params = {} | |
| 165 | - ,name; | |
| 166 | - $.each(cells, function(i, cell){ | |
| 167 | - var items = $('input,select', cell); | |
| 168 | - for(var j = 0, item; item = items[j++];){ | |
| 169 | - name = $(item).attr('name'); | |
| 170 | - if(name){ | |
| 171 | - params[name] = $(item).val(); | |
| 172 | - } | |
| 173 | - } | |
| 174 | - }); | |
| 175 | - page = 0; | |
| 176 | - jsDoQuery(params, true); | |
| 177 | - }); | |
| 178 | - | |
| 179 | - /* | |
| 180 | - * 获取数据 p: 要提交的参数, pagination: 是否重新分页 | |
| 181 | - */ | |
| 182 | - function jsDoQuery(p, pagination){ | |
| 183 | - var params = {}; | |
| 184 | - if(p) | |
| 185 | - params = p; | |
| 186 | - //更新时间排序 | |
| 187 | - params['order'] = 'lastLoginDate'; | |
| 188 | - params['page'] = page; | |
| 189 | - var i = layer.load(2); | |
| 190 | - $get('/user' ,params, function(data){ | |
| 191 | - var bodyHtm = template('user_list_temp', {list: data.content}); | |
| 192 | - | |
| 193 | - $('#datatable_user tbody').html(bodyHtm) | |
| 194 | - .find('.icheck').iCheck(icheckOptions) | |
| 195 | - .on('ifChanged', iCheckChange); | |
| 196 | - if(pagination && data.content.length > 0){ | |
| 197 | - //重新分页 | |
| 198 | - initPagination = true; | |
| 199 | - showPagination(data); | |
| 200 | - } | |
| 201 | - layer.close(i); | |
| 202 | - }); | |
| 203 | - } | |
| 204 | - | |
| 205 | - function iCheckChange(){ | |
| 206 | - var tr = $(this).parents('tr'); | |
| 207 | - if(this.checked) | |
| 208 | - tr.addClass('row-active'); | |
| 209 | - else | |
| 210 | - tr.removeClass('row-active'); | |
| 211 | - | |
| 212 | - if($('#datatable_resource input.icheck:checked').length == 1) | |
| 213 | - $('#removeButton').removeAttr('disabled'); | |
| 214 | - else | |
| 215 | - $('#removeButton').attr('disabled', 'disabled'); | |
| 216 | - } | |
| 217 | - | |
| 218 | - function showPagination(data){ | |
| 219 | - //分页 | |
| 220 | - $('#pagination').jqPaginator({ | |
| 221 | - totalPages: data.totalPages, | |
| 222 | - visiblePages: 6, | |
| 223 | - currentPage: page + 1, | |
| 224 | - first: '<li class="first"><a href="javascript:void(0);">首页<\/a><\/li>', | |
| 225 | - prev: '<li class="prev"><a href="javascript:void(0);">上一页<\/a><\/li>', | |
| 226 | - next: '<li class="next"><a href="javascript:void(0);">下一页<\/a><\/li>', | |
| 227 | - last: '<li class="last"><a href="javascript:void(0);">尾页<\/a><\/li>', | |
| 228 | - page: '<li class="page"><a href="javascript:void(0);">{{page}}<\/a><\/li>', | |
| 229 | - onPageChange: function (num, type) { | |
| 230 | - if(initPagination){ | |
| 231 | - initPagination = false; | |
| 232 | - return; | |
| 233 | - } | |
| 234 | - | |
| 235 | - | |
| 236 | - page = num - 1; | |
| 237 | - jsDoQuery(null, false); | |
| 238 | - } | |
| 239 | - }); | |
| 240 | - } | |
| 241 | - | |
| 242 | - | |
| 243 | - //删除 | |
| 244 | - $('#removeButton').on('click', function(){ | |
| 245 | - if($(this).attr('disabled')) | |
| 246 | - return; | |
| 247 | - | |
| 248 | - var id = $('#datatable_resource input.icheck:checked').data('id'); | |
| 249 | - | |
| 250 | - removeConfirm('确定要删除选中的数据?', '/resource/' + id ,function(){ | |
| 251 | - $('tr.filter .filter-submit').click(); | |
| 252 | - }); | |
| 253 | - }); | |
| 254 | -}); | |
| 1 | +<div class="page-head"> | |
| 2 | + <div class="page-title"> | |
| 3 | + <h1>用户管理</h1> | |
| 4 | + </div> | |
| 5 | +</div> | |
| 6 | + | |
| 7 | +<ul class="page-breadcrumb breadcrumb"> | |
| 8 | + <li><a href="/pages/home.html" data-pjax>首页</a> <i class="fa fa-circle"></i></li> | |
| 9 | + <li><span class="active">权限管理</span> <i class="fa fa-circle"></i></li> | |
| 10 | + <li><span class="active">用户管理</span></li> | |
| 11 | +</ul> | |
| 12 | + | |
| 13 | +<div class="row"> | |
| 14 | + <div class="col-md-12"> | |
| 15 | + <!-- Begin: life time stats --> | |
| 16 | + <div class="portlet light portlet-fit portlet-datatable bordered"> | |
| 17 | + <div class="portlet-title"> | |
| 18 | + <div class="caption"> | |
| 19 | + <i class="fa fa-users font-dark"></i> <span | |
| 20 | + class="caption-subject font-dark sbold uppercase">用户数据表</span> | |
| 21 | + </div> | |
| 22 | + <div class="actions"> | |
| 23 | + <a class="btn btn-circle blue" href="add.html" data-pjax><i class="fa fa-plus"></i> 添加用户</a> | |
| 24 | + <!-- <button type="button" class="btn btn-circle red" disabled="disabled" id="removeButton"><i class="fa fa-trash"></i> 删除用户</button> --> | |
| 25 | + <div class="btn-group"> | |
| 26 | + <a class="btn red btn-outline btn-circle" href="javascript:;" | |
| 27 | + data-toggle="dropdown"> <i class="fa fa-share"></i> <span | |
| 28 | + class="hidden-xs"> 系统工具 </span> <i class="fa fa-angle-down"></i> | |
| 29 | + </a> | |
| 30 | + <ul class="dropdown-menu pull-right" id="datatable_ajax_tools"> | |
| 31 | + <li><a href="javascript:;" data-action="0" | |
| 32 | + class="tool-action"> <i class="fa fa-print"></i> 打印 | |
| 33 | + </a></li> | |
| 34 | + <li><a href="javascript:;" data-action="1" | |
| 35 | + class="tool-action"> <i class="fa fa-copy"></i> 复制 | |
| 36 | + </a></li> | |
| 37 | + <li><a href="javascript:;" data-action="3" | |
| 38 | + class="tool-action"> <i class="fa fa-file-excel-o"></i> | |
| 39 | + 导出Excel | |
| 40 | + </a></li> | |
| 41 | + <li class="divider"></li> | |
| 42 | + <li><a href="javascript:;" data-action="5" | |
| 43 | + class="tool-action"> <i class="fa fa-refresh"></i> 刷新数据 | |
| 44 | + </a></li> | |
| 45 | + </ul> | |
| 46 | + </div> | |
| 47 | + </div> | |
| 48 | + </div> | |
| 49 | + <div class="portlet-body"> | |
| 50 | + <div class="table-container" style="margin-top: 10px"> | |
| 51 | + <table | |
| 52 | + class="table table-striped table-bordered table-hover table-checkable" | |
| 53 | + id="datatable_user"> | |
| 54 | + <thead> | |
| 55 | + <tr role="row" class="heading"> | |
| 56 | + <th width="3%">#</th> | |
| 57 | + <th width="15%">登录名</th> | |
| 58 | + <th width="13%">姓名</th> | |
| 59 | + <th width="100">所属机构</th> | |
| 60 | + <th width="11%">角色</th> | |
| 61 | + <th width="10%">状态</th> | |
| 62 | + <th width="18%">最后登录时间</th> | |
| 63 | + <th width="18%">操作</th> | |
| 64 | + </tr> | |
| 65 | + <tr role="row" class="filter"> | |
| 66 | + <td></td> | |
| 67 | + <td> | |
| 68 | + <input type="text" class="form-control form-filter input-sm" name="userName_like"> | |
| 69 | + </td> | |
| 70 | + <td> | |
| 71 | + <input type="text" class="form-control form-filter input-sm" name="name_like"> | |
| 72 | + </td> | |
| 73 | + <td> | |
| 74 | + <input type="text" class="form-control form-filter input-sm" name="agencies_like"> | |
| 75 | + </td> | |
| 76 | + <td></td> | |
| 77 | + <td> | |
| 78 | + <select class="form-control form-filter " name="enable_eq"> | |
| 79 | + <option value="">请选择...</option> | |
| 80 | + <option value="1">可用</option> | |
| 81 | + <option value="0">禁用</option> | |
| 82 | + </select> | |
| 83 | + </td> | |
| 84 | + <td></td> | |
| 85 | + <td> | |
| 86 | + <button class="btn btn-sm green btn-outline filter-submit margin-bottom" > | |
| 87 | + <i class="fa fa-search"></i> 搜索</button> | |
| 88 | + | |
| 89 | + <button class="btn btn-sm red btn-outline filter-cancel"> | |
| 90 | + <i class="fa fa-times"></i> 重置</button> | |
| 91 | + </td> | |
| 92 | + </tr> | |
| 93 | + </thead> | |
| 94 | + <tbody></tbody> | |
| 95 | + </table> | |
| 96 | + <div style="text-align: right;"> | |
| 97 | + <ul id="pagination" class="pagination"></ul> | |
| 98 | + </div> | |
| 99 | + </div> | |
| 100 | + </div> | |
| 101 | + </div> | |
| 102 | + </div> | |
| 103 | +</div> | |
| 104 | + | |
| 105 | +<script id="user_list_temp" type="text/html"> | |
| 106 | +{{each list as obj i}} | |
| 107 | +<tr> | |
| 108 | + <td style="vertical-align: middle;"> | |
| 109 | + <input type="checkbox" class="group-checkable icheck" data-id="{{obj.id}}"> | |
| 110 | + </td> | |
| 111 | + <td> | |
| 112 | + {{obj.userName}} | |
| 113 | + </td> | |
| 114 | + <td> | |
| 115 | + {{obj.name}} | |
| 116 | + </td> | |
| 117 | + <td> | |
| 118 | + {{obj.agencies}} | |
| 119 | + </td> | |
| 120 | + <td> | |
| 121 | + {{each obj.roles as role j}} | |
| 122 | + {{role.roleName}}、 | |
| 123 | + {{/each}} | |
| 124 | + </td> | |
| 125 | + <td> | |
| 126 | + {{if obj.enabled}} | |
| 127 | + 可用 | |
| 128 | + {{else}} | |
| 129 | + 禁用 | |
| 130 | + {{/if}} | |
| 131 | + </td> | |
| 132 | + <td> | |
| 133 | + {{obj.lastLoginDate}} | |
| 134 | + </td> | |
| 135 | + <td><a href="edit.html?no={{obj.id}}" class="btn default blue-stripe btn-sm" data-pjax> 详细 </a></td> | |
| 136 | +</tr> | |
| 137 | +{{/each}} | |
| 138 | +{{if list.length == 0}} | |
| 139 | +<tr> | |
| 140 | + <td colspan=8><h6 class="muted">没有找到相关数据</h6></td> | |
| 141 | +</tr> | |
| 142 | +{{/if}} | |
| 143 | +</script> | |
| 144 | + | |
| 145 | +<script> | |
| 146 | +$(function(){ | |
| 147 | + var page = 0, initPagination; | |
| 148 | + var icheckOptions = { | |
| 149 | + checkboxClass: 'icheckbox_flat-blue', | |
| 150 | + increaseArea: '20%' | |
| 151 | + } | |
| 152 | + | |
| 153 | + jsDoQuery(null,true); | |
| 154 | + | |
| 155 | + //重置 | |
| 156 | + $('tr.filter .filter-cancel').on('click', function(){ | |
| 157 | + $('tr.filter input, select').val('').change(); | |
| 158 | + jsDoQuery(null, true); | |
| 159 | + }); | |
| 160 | + | |
| 161 | + //提交 | |
| 162 | + $('tr.filter .filter-submit').on('click', function(){ | |
| 163 | + var cells = $('tr.filter')[0].cells | |
| 164 | + ,params = {} | |
| 165 | + ,name; | |
| 166 | + $.each(cells, function(i, cell){ | |
| 167 | + var items = $('input,select', cell); | |
| 168 | + for(var j = 0, item; item = items[j++];){ | |
| 169 | + name = $(item).attr('name'); | |
| 170 | + if(name){ | |
| 171 | + params[name] = $(item).val(); | |
| 172 | + } | |
| 173 | + } | |
| 174 | + }); | |
| 175 | + page = 0; | |
| 176 | + jsDoQuery(params, true); | |
| 177 | + }); | |
| 178 | + | |
| 179 | + /* | |
| 180 | + * 获取数据 p: 要提交的参数, pagination: 是否重新分页 | |
| 181 | + */ | |
| 182 | + function jsDoQuery(p, pagination){ | |
| 183 | + var params = {}; | |
| 184 | + if(p) | |
| 185 | + params = p; | |
| 186 | + //更新时间排序 | |
| 187 | + params['order'] = 'lastLoginDate'; | |
| 188 | + params['page'] = page; | |
| 189 | + var i = layer.load(2); | |
| 190 | + $get('/user' ,params, function(data){ | |
| 191 | + var bodyHtm = template('user_list_temp', {list: data.content}); | |
| 192 | + | |
| 193 | + $('#datatable_user tbody').html(bodyHtm) | |
| 194 | + .find('.icheck').iCheck(icheckOptions) | |
| 195 | + .on('ifChanged', iCheckChange); | |
| 196 | + if(pagination && data.content.length > 0){ | |
| 197 | + //重新分页 | |
| 198 | + initPagination = true; | |
| 199 | + showPagination(data); | |
| 200 | + } | |
| 201 | + layer.close(i); | |
| 202 | + }); | |
| 203 | + } | |
| 204 | + | |
| 205 | + function iCheckChange(){ | |
| 206 | + var tr = $(this).parents('tr'); | |
| 207 | + if(this.checked) | |
| 208 | + tr.addClass('row-active'); | |
| 209 | + else | |
| 210 | + tr.removeClass('row-active'); | |
| 211 | + | |
| 212 | + if($('#datatable_resource input.icheck:checked').length == 1) | |
| 213 | + $('#removeButton').removeAttr('disabled'); | |
| 214 | + else | |
| 215 | + $('#removeButton').attr('disabled', 'disabled'); | |
| 216 | + } | |
| 217 | + | |
| 218 | + function showPagination(data){ | |
| 219 | + //分页 | |
| 220 | + $('#pagination').jqPaginator({ | |
| 221 | + totalPages: data.totalPages, | |
| 222 | + visiblePages: 6, | |
| 223 | + currentPage: page + 1, | |
| 224 | + first: '<li class="first"><a href="javascript:void(0);">首页<\/a><\/li>', | |
| 225 | + prev: '<li class="prev"><a href="javascript:void(0);">上一页<\/a><\/li>', | |
| 226 | + next: '<li class="next"><a href="javascript:void(0);">下一页<\/a><\/li>', | |
| 227 | + last: '<li class="last"><a href="javascript:void(0);">尾页<\/a><\/li>', | |
| 228 | + page: '<li class="page"><a href="javascript:void(0);">{{page}}<\/a><\/li>', | |
| 229 | + onPageChange: function (num, type) { | |
| 230 | + if(initPagination){ | |
| 231 | + initPagination = false; | |
| 232 | + return; | |
| 233 | + } | |
| 234 | + | |
| 235 | + | |
| 236 | + page = num - 1; | |
| 237 | + jsDoQuery(null, false); | |
| 238 | + } | |
| 239 | + }); | |
| 240 | + } | |
| 241 | + | |
| 242 | + | |
| 243 | + //删除 | |
| 244 | + $('#removeButton').on('click', function(){ | |
| 245 | + if($(this).attr('disabled')) | |
| 246 | + return; | |
| 247 | + | |
| 248 | + var id = $('#datatable_resource input.icheck:checked').data('id'); | |
| 249 | + | |
| 250 | + removeConfirm('确定要删除选中的数据?', '/resource/' + id ,function(){ | |
| 251 | + $('tr.filter .filter-submit').click(); | |
| 252 | + }); | |
| 253 | + }); | |
| 254 | +}); | |
| 255 | 255 | </script> |
| 256 | 256 | \ No newline at end of file | ... | ... |