common.macro.ftl 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. <#macro commonStyle>
  2. <#-- favicon -->
  3. <link rel="icon" href="${request.contextPath}/static/favicon.ico" />
  4. <meta charset="utf-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <!-- Tell the browser to be responsive to screen width -->
  7. <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
  8. <!-- Bootstrap -->
  9. <link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/bootstrap/css/bootstrap.min.css">
  10. <!-- Font Awesome -->
  11. <link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/font-awesome/css/font-awesome.min.css">
  12. <!-- Ionicons -->
  13. <link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/Ionicons/css/ionicons.min.css">
  14. <!-- Theme style -->
  15. <link rel="stylesheet" href="${request.contextPath}/static/adminlte/dist/css/AdminLTE.min.css">
  16. <!-- AdminLTE Skins. Choose a skin from the css/skins folder instead of downloading all of them to reduce the load. -->
  17. <link rel="stylesheet" href="${request.contextPath}/static/adminlte/dist/css/skins/_all-skins.min.css">
  18. <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
  19. <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  20. <!--[if lt IE 9]>
  21. <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  22. <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  23. <![endif]-->
  24. <!-- pace -->
  25. <link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/PACE/themes/blue/pace-theme-flash.css">
  26. <#-- i18n -->
  27. <#global I18n = I18nUtil.getMultString()?eval />
  28. </#macro>
  29. <#macro commonScript>
  30. <!-- jQuery -->
  31. <script src="${request.contextPath}/static/adminlte/bower_components/jquery/jquery.min.js"></script>
  32. <!-- Bootstrap -->
  33. <script src="${request.contextPath}/static/adminlte/bower_components/bootstrap/js/bootstrap.min.js"></script>
  34. <!-- FastClick -->
  35. <script src="${request.contextPath}/static/adminlte/bower_components/fastclick/fastclick.js"></script>
  36. <!-- AdminLTE App -->
  37. <script src="${request.contextPath}/static/adminlte/dist/js/adminlte.min.js"></script>
  38. <!-- jquery.slimscroll -->
  39. <script src="${request.contextPath}/static/adminlte/bower_components/jquery-slimscroll/jquery.slimscroll.min.js"></script>
  40. <!-- pace -->
  41. <script src="${request.contextPath}/static/adminlte/bower_components/PACE/pace.min.js"></script>
  42. <#-- jquery cookie -->
  43. <script src="${request.contextPath}/static/plugins/jquery/jquery.cookie.js"></script>
  44. <#-- jquery.validate -->
  45. <script src="${request.contextPath}/static/plugins/jquery/jquery.validate.min.js"></script>
  46. <#-- layer -->
  47. <script src="${request.contextPath}/static/plugins/layer/layer.js"></script>
  48. <#-- common -->
  49. <script src="${request.contextPath}/static/js/common.1.js"></script>
  50. <script>
  51. var base_url = '${request.contextPath}';
  52. var I18n = ${I18nUtil.getMultString()};
  53. </script>
  54. </#macro>
  55. <#macro commonHeader>
  56. <header class="main-header">
  57. <a href="${request.contextPath}/" class="logo">
  58. <span class="logo-mini"><b>XXL</b></span>
  59. <span class="logo-lg"><b>${I18n.admin_name}</b></span>
  60. </a>
  61. <nav class="navbar navbar-static-top" role="navigation">
  62. <a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button">
  63. <span class="sr-only">Toggle navigation</span>
  64. <span class="icon-bar"></span>
  65. <span class="icon-bar"></span>
  66. <span class="icon-bar"></span>
  67. </a>
  68. <div class="navbar-custom-menu">
  69. <ul class="nav navbar-nav">
  70. <#-- login user -->
  71. <li class="dropdown">
  72. <a href="javascript:" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
  73. ${I18n.system_welcome} ${XXL_JOB_LOGIN_IDENTITY.username}
  74. <span class="caret"></span>
  75. </a>
  76. <ul class="dropdown-menu" role="menu">
  77. <li id="updatePwd" ><a href="javascript:">${I18n.change_pwd}</a></li>
  78. <li id="logoutBtn" ><a href="javascript:">${I18n.logout_btn}</a></li>
  79. </ul>
  80. </li>
  81. </ul>
  82. </div>
  83. </nav>
  84. </header>
  85. <!-- 修改密码.模态框 -->
  86. <div class="modal fade" id="updatePwdModal" tabindex="-1" role="dialog" aria-hidden="true">
  87. <div class="modal-dialog ">
  88. <div class="modal-content">
  89. <div class="modal-header">
  90. <h4 class="modal-title" >${I18n.change_pwd}</h4>
  91. </div>
  92. <div class="modal-body">
  93. <form class="form-horizontal form" role="form" >
  94. <div class="form-group">
  95. <label for="lastname" class="col-sm-2 control-label">${I18n.change_pwd_field_oldpwd}<font color="red">*</font></label>
  96. <div class="col-sm-10"><input type="text" class="form-control" name="oldPassword" placeholder="${I18n.system_please_input} ${I18n.change_pwd_field_oldpwd}" maxlength="20" ></div>
  97. </div>
  98. <div class="form-group">
  99. <label for="lastname" class="col-sm-2 control-label">${I18n.change_pwd_field_newpwd}<font color="red">*</font></label>
  100. <div class="col-sm-10"><input type="text" class="form-control" name="password" placeholder="${I18n.system_please_input} ${I18n.change_pwd_field_newpwd}" maxlength="20" ></div>
  101. </div>
  102. <hr>
  103. <div class="form-group">
  104. <div class="col-sm-offset-3 col-sm-6">
  105. <button type="submit" class="btn btn-primary" >${I18n.system_save}</button>
  106. <button type="button" class="btn btn-default" data-dismiss="modal">${I18n.system_cancel}</button>
  107. </div>
  108. </div>
  109. </form>
  110. </div>
  111. </div>
  112. </div>
  113. </div>
  114. </#macro>
  115. <#macro commonLeft pageName >
  116. <!-- Left side column. contains the logo and sidebar -->
  117. <aside class="main-sidebar">
  118. <!-- sidebar: style can be found in sidebar.less -->
  119. <section class="sidebar">
  120. <!-- sidebar menu: : style can be found in sidebar.less -->
  121. <ul class="sidebar-menu">
  122. <li class="header">${I18n.system_nav}</li>
  123. <li class="nav-click <#if pageName == "index">active</#if>" ><a href="${request.contextPath}/"><i class="fa fa-circle-o text-aqua"></i><span>${I18n.job_dashboard_name}</span></a></li>
  124. <li class="nav-click <#if pageName == "jobinfo">active</#if>" ><a href="${request.contextPath}/jobinfo"><i class="fa fa-circle-o text-yellow"></i><span>${I18n.jobinfo_name}</span></a></li>
  125. <li class="nav-click <#if pageName == "joblog">active</#if>" ><a href="${request.contextPath}/joblog"><i class="fa fa-circle-o text-green"></i><span>${I18n.joblog_name}</span></a></li>
  126. <#if XXL_JOB_LOGIN_IDENTITY.role == 1>
  127. <li class="nav-click <#if pageName == "jobgroup">active</#if>" ><a href="${request.contextPath}/jobgroup"><i class="fa fa-circle-o text-red"></i><span>${I18n.jobgroup_name}</span></a></li>
  128. <li class="nav-click <#if pageName == "user">active</#if>" ><a href="${request.contextPath}/user"><i class="fa fa-circle-o text-purple"></i><span>${I18n.user_manage}</span></a></li>
  129. </#if>
  130. <li class="nav-click <#if pageName == "help">active</#if>" ><a href="${request.contextPath}/help"><i class="fa fa-circle-o text-gray"></i><span>${I18n.job_help}</span></a></li>
  131. </ul>
  132. </section>
  133. <!-- /.sidebar -->
  134. </aside>
  135. </#macro>
  136. <#macro commonControl >
  137. <!-- Control Sidebar -->
  138. <aside class="control-sidebar control-sidebar-dark">
  139. <!-- Create the tabs -->
  140. <ul class="nav nav-tabs nav-justified control-sidebar-tabs">
  141. <li class="active"><a href="#control-sidebar-home-tab" data-toggle="tab"><i class="fa fa-home"></i></a></li>
  142. <li><a href="#control-sidebar-settings-tab" data-toggle="tab"><i class="fa fa-gears"></i></a></li>
  143. </ul>
  144. <!-- Tab panes -->
  145. <div class="tab-content">
  146. <!-- Home tab content -->
  147. <div class="tab-pane active" id="control-sidebar-home-tab">
  148. <h3 class="control-sidebar-heading">近期活动</h3>
  149. <ul class="control-sidebar-menu">
  150. <li>
  151. <a href="javascript::;">
  152. <i class="menu-icon fa fa-birthday-cake bg-red"></i>
  153. <div class="menu-info">
  154. <h4 class="control-sidebar-subheading">张三今天过生日</h4>
  155. <p>2015-09-10</p>
  156. </div>
  157. </a>
  158. </li>
  159. <li>
  160. <a href="javascript::;">
  161. <i class="menu-icon fa fa-user bg-yellow"></i>
  162. <div class="menu-info">
  163. <h4 class="control-sidebar-subheading">Frodo 更新了资料</h4>
  164. <p>更新手机号码 +1(800)555-1234</p>
  165. </div>
  166. </a>
  167. </li>
  168. <li>
  169. <a href="javascript::;">
  170. <i class="menu-icon fa fa-envelope-o bg-light-blue"></i>
  171. <div class="menu-info">
  172. <h4 class="control-sidebar-subheading">Nora 加入邮件列表</h4>
  173. <p>nora@example.com</p>
  174. </div>
  175. </a>
  176. </li>
  177. <li>
  178. <a href="javascript::;">
  179. <i class="menu-icon fa fa-file-code-o bg-green"></i>
  180. <div class="menu-info">
  181. <h4 class="control-sidebar-subheading">001号定时作业调度</h4>
  182. <p>5秒前执行</p>
  183. </div>
  184. </a>
  185. </li>
  186. </ul>
  187. <!-- /.control-sidebar-menu -->
  188. </div>
  189. <!-- /.tab-pane -->
  190. <!-- Settings tab content -->
  191. <div class="tab-pane" id="control-sidebar-settings-tab">
  192. <form method="post">
  193. <h3 class="control-sidebar-heading">个人设置</h3>
  194. <div class="form-group">
  195. <label class="control-sidebar-subheading"> 左侧菜单自适应
  196. <input type="checkbox" class="pull-right" checked>
  197. </label>
  198. <p>左侧菜单栏样式自适应</p>
  199. </div>
  200. <!-- /.form-group -->
  201. </form>
  202. </div>
  203. <!-- /.tab-pane -->
  204. </div>
  205. </aside>
  206. <!-- /.control-sidebar -->
  207. <!-- Add the sidebar's background. This div must be placed immediately after the control sidebar -->
  208. <div class="control-sidebar-bg"></div>
  209. </#macro>
  210. <#macro commonFooter >
  211. <footer class="main-footer">
  212. Powered by <b>XXL-JOB</b> ${I18n.admin_version}
  213. <div class="pull-right hidden-xs">
  214. <strong>Copyright &copy; 2015-${.now?string('yyyy')} &nbsp;
  215. <a href="https://www.xuxueli.com/" target="_blank" >xuxueli</a>
  216. &nbsp;
  217. <a href="https://github.com/xuxueli/xxl-job" target="_blank" >github</a>
  218. </strong><!-- All rights reserved. -->
  219. </div>
  220. </footer>
  221. </#macro>