header.inc.php 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. <!DOCTYPE html>
  2. <html lang="<?= $_SESSION['mailcow_locale'] ?>">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <title>mailcow UI</title>
  8. <!--[if lt IE 9]>
  9. <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
  10. <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  11. <![endif]-->
  12. <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.0/jquery.min.js" integrity="sha384-XxcvoeNF5V0ZfksTnV+bejnCsJjOOIzN6UVwF85WBsAnU3zeYh5bloN+L4WLgeNE" crossorigin="anonymous"></script>
  13. <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css">
  14. <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootswatch/3.3.6/<?=strtolower(trim($DEFAULT_THEME));?>/bootstrap.min.css">
  15. <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.9.4/css/bootstrap-select.min.css">
  16. <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/7.0.2/css/bootstrap-slider.min.css">
  17. <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-switch/3.3.2/css/bootstrap3/bootstrap-switch.min.css">
  18. <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Source+Sans+Pro:400,600,700&subset=latin,latin-ext">
  19. <link rel="stylesheet" href="/inc/languages.min.css">
  20. <link rel="shortcut icon" href="/favicon.png" type="image/png">
  21. <link rel="icon" href="/favicon.png" type="image/png">
  22. <style>
  23. #maxmsgsize { min-width: 80px; }
  24. ul[id*="sortable"] { word-wrap: break-word; list-style-type: none; float: left; padding: 0 15px 0 0; width: 48%; cursor:move}
  25. ul[id$="sortable-active"] li {cursor:move; }
  26. ul[id$="sortable-inactive"] li {cursor:move }
  27. .list-heading { cursor:default !important}
  28. .ui-state-disabled { cursor:no-drop; color:#ccc; }
  29. .ui-state-highlight {background: #F5F5F5 !important; height: 41px !important; cursor:move }
  30. #slider1 .slider-selection {
  31. background: #FFD700;
  32. }
  33. #slider1 .slider-track-high {
  34. background: #FF4500;
  35. }
  36. #slider1 .slider-track-low {
  37. background: #66CD00;
  38. }
  39. table[data-sortable] {
  40. border-collapse: collapse;
  41. border-spacing: 0;
  42. }
  43. table[data-sortable] th {
  44. vertical-align: bottom;
  45. font-weight: bold;
  46. }
  47. table[data-sortable] th, table[data-sortable] td {
  48. text-align: left;
  49. padding: 10px;
  50. }
  51. table[data-sortable] th:not([data-sortable="false"]) {
  52. -webkit-user-select: none;
  53. -moz-user-select: none;
  54. -ms-user-select: none;
  55. -o-user-select: none;
  56. user-select: none;
  57. -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  58. -webkit-touch-callout: none;
  59. cursor: pointer;
  60. }
  61. table[data-sortable] th:after {
  62. content: "";
  63. visibility: hidden;
  64. display: inline-block;
  65. vertical-align: inherit;
  66. height: 0;
  67. width: 0;
  68. border-width: 5px;
  69. border-style: solid;
  70. border-color: transparent;
  71. margin-right: 1px;
  72. margin-left: 10px;
  73. float: right;
  74. }
  75. table[data-sortable] th[data-sortable="false"]:after {
  76. display: none;
  77. }
  78. table[data-sortable] th[data-sorted="true"]:after {
  79. visibility: visible;
  80. }
  81. table[data-sortable] th[data-sorted-direction="descending"]:after {
  82. border-top-color: inherit;
  83. margin-top: 8px;
  84. }
  85. table[data-sortable] th[data-sorted-direction="ascending"]:after {
  86. border-bottom-color: inherit;
  87. margin-top: 3px;
  88. }
  89. table[data-sortable].sortable-theme-bootstrap thead th {
  90. border-bottom: 2px solid #e0e0e0;
  91. }
  92. table[data-sortable].sortable-theme-bootstrap th[data-sorted="true"] {
  93. color: #3a87ad;
  94. background: #d9edf7;
  95. border-bottom-color: #bce8f1;
  96. }
  97. table[data-sortable].sortable-theme-bootstrap th[data-sorted="true"][data-sorted-direction="descending"]:after {
  98. border-top-color: #3a87ad;
  99. }
  100. table[data-sortable].sortable-theme-bootstrap th[data-sorted="true"][data-sorted-direction="ascending"]:after {
  101. border-bottom-color: #3a87ad;
  102. }
  103. table[data-sortable].sortable-theme-bootstrap.sortable-theme-bootstrap-striped tbody > tr:nth-child(odd) > td {
  104. background-color: #f9f9f9;
  105. }
  106. .btn {
  107. text-transform: none;
  108. }
  109. #data td, #no-data td {
  110. vertical-align: middle;
  111. }
  112. .sort-table:hover {
  113. border-bottom-color: #00B7DC !important;
  114. }
  115. .striped:nth-child(odd) {
  116. background-color: #fff;
  117. }
  118. .striped:nth-child(even) {
  119. background-color: #fafafa;
  120. border:1px solid white;
  121. }
  122. .glyphicon-spin {
  123. -webkit-animation: spin 1000ms infinite linear;
  124. animation: spin 1000ms infinite linear;
  125. }
  126. @-webkit-keyframes spin {
  127. 0% {
  128. -webkit-transform: rotate(0deg);
  129. transform: rotate(0deg);
  130. }
  131. 100% {
  132. -webkit-transform: rotate(359deg);
  133. transform: rotate(359deg);
  134. }
  135. }
  136. @keyframes spin {
  137. 0% {
  138. -webkit-transform: rotate(0deg);
  139. transform: rotate(0deg);
  140. }
  141. 100% {
  142. -webkit-transform: rotate(359deg);
  143. transform: rotate(359deg);
  144. }
  145. }
  146. </style>
  147. <?php
  148. if (preg_match("/mailbox.php/i", $_SERVER['REQUEST_URI'])):
  149. ?>
  150. <style>
  151. .panel-heading div {
  152. margin-top: -18px;
  153. font-size: 15px;
  154. }
  155. .panel-heading div span {
  156. margin-left:5px;
  157. }
  158. .panel-body {
  159. display: none;
  160. }
  161. .clickable {
  162. cursor: pointer;
  163. }
  164. .progress {
  165. margin-bottom: 0px;
  166. }
  167. </style>
  168. <?php
  169. endif;
  170. ?>
  171. </head>
  172. <body style="padding-top:70px">
  173. <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
  174. <div class="container-fluid">
  175. <div class="navbar-header">
  176. <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
  177. <span class="sr-only">Toggle navigation</span>
  178. <span class="icon-bar"></span>
  179. <span class="icon-bar"></span>
  180. <span class="icon-bar"></span>
  181. </button>
  182. <a class="navbar-brand" href="/"><img height="32" alt="mailcow-logo" style="margin-top:-5px;" src="/img/cow_mailcow.svg" /></a>
  183. </div>
  184. <div id="navbar" class="navbar-collapse collapse">
  185. <ul class="nav navbar-nav navbar-right">
  186. <?php
  187. if (isset($_SESSION['mailcow_locale'])) {
  188. ?>
  189. <li class="dropdown">
  190. <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><span class="lang-sm lang-lbl" lang="<?=$_SESSION['mailcow_locale'];?>"></span><span class="caret"></span></a>
  191. <ul class="dropdown-menu" role="menu">
  192. <li <?=($_SESSION['mailcow_locale'] == 'de') ? 'class="active"' : ''?>> <a href="?<?= http_build_query(array_merge($_GET, array("lang" => "de"))) ?>"><span class="lang-xs lang-lbl-full" lang="de"></span></a></li>
  193. <li <?=($_SESSION['mailcow_locale'] == 'en') ? 'class="active"' : ''?>> <a href="?<?= http_build_query(array_merge($_GET, array("lang" => "en"))) ?>"><span class="lang-xs lang-lbl-full" lang="en"></span></a></li>
  194. <li <?=($_SESSION['mailcow_locale'] == 'nl') ? 'class="active"' : ''?>> <a href="?<?= http_build_query(array_merge($_GET, array("lang" => "nl"))) ?>"><span class="lang-xs lang-lbl-full" lang="nl"></span></a></li>
  195. <li <?=($_SESSION['mailcow_locale'] == 'pt') ? 'class="active"' : ''?>> <a href="?<?= http_build_query(array_merge($_GET, array("lang" => "pt"))) ?>"><span class="lang-xs lang-lbl-full" lang="pt"></span></a></li>
  196. </ul>
  197. </li>
  198. <?php
  199. }
  200. if (isset($_SESSION['mailcow_cc_role'])) {
  201. ?>
  202. <li class="dropdown">
  203. <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><?=$lang['header']['mailcow_settings'];?><span class="caret"></span></a>
  204. <ul class="dropdown-menu" role="menu">
  205. <?php
  206. if (isset($_SESSION['mailcow_cc_role'])) {
  207. if ($_SESSION['mailcow_cc_role'] == "admin") {
  208. ?>
  209. <li <?=(preg_match("/admin/i", $_SERVER['REQUEST_URI'])) ? 'class="active"' : ''?>><a href="/admin.php"><?=$lang['header']['administration'];?></a></li>
  210. <?php
  211. }
  212. if ($_SESSION['mailcow_cc_role'] == "admin" || $_SESSION['mailcow_cc_role'] == "domainadmin") {
  213. ?>
  214. <li <?=(preg_match("/mailbox/i", $_SERVER['REQUEST_URI'])) ? 'class="active"' : ''?>><a href="/mailbox.php"><?=$lang['header']['mailboxes'];?></a></li>
  215. <?php
  216. }
  217. if ($_SESSION['mailcow_cc_role'] == "user") {
  218. ?>
  219. <li <?=(preg_match("/user/i", $_SERVER['REQUEST_URI'])) ? 'class="active"' : ''?>><a href="/user.php"><?=$lang['header']['user_settings'];?></a></li>
  220. <?php
  221. }
  222. }
  223. ?>
  224. </ul>
  225. </li>
  226. <?php
  227. if ($_SESSION['mailcow_cc_role'] == "admin"):
  228. ?>
  229. <li><a href data-toggle="modal" data-target="#RestartSOGo"><span style="font-size:12px" class="glyphicon glyphicon-refresh" aria-hidden="true"></span> <?=$lang['header']['restart_sogo'];?></a></li>
  230. <?php
  231. endif;
  232. ?>
  233. <?php
  234. }
  235. if (isset($_SESSION['mailcow_cc_username'])):
  236. ?>
  237. <li><a style="border-left:1px solid #E7E7E7" href="#" onclick="logout.submit()"><?=sprintf($lang['header']['logged_in_as_logout'], $_SESSION['mailcow_cc_username']);?></a></li>
  238. <?php
  239. endif;
  240. ?>
  241. </ul>
  242. </div><!--/.nav-collapse -->
  243. </div><!--/.container-fluid -->
  244. </nav>
  245. <form action="/" method="post" id="logout"><input type="hidden" name="logout"></form>