menuMain.php 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571
  1. <nav id="SE-menu" class="navbar-nav navbar-inverse" style="width:100%">
  2. <div class="container-fluid">
  3. <div class="navbar-header">
  4. <a class="navbar-brand" href="index.php" style="height:30px; padding:3px">
  5. <img alt="Procesy5" src="./icon/logo-procesy--dark-bg.svg" style="height:30px">
  6. </a>
  7. </div>
  8. <div class="collapse navbar-collapse">
  9. <ul class="nav navbar-nav">
  10. <?php
  11. echo UI::h('li', [ 'class' => "dropdown" . ($active == 'menu' ? ' active' : '') ], [
  12. UI::h('a',
  13. ($userAcl__getPermsFiltrProcesId)
  14. ? [
  15. 'href' => "#",
  16. 'class' => "dropdown-toggle",
  17. 'data-toggle' => "dropdown",
  18. ]
  19. : [
  20. 'href' => "#",
  21. 'class' => "dropdown-toggle",
  22. 'onClick' => "return initP5MainMenuDropdown(this, 'SE-menu-tables');",
  23. ],
  24. "Menu ". '<b class="caret"></b>'
  25. ),
  26. UI::h('ul', [
  27. 'class' => "dropdown-menu",
  28. 'id' => "SE-menu-tables",
  29. ], array_map(function ($vName, $typeName) use ($typeNameToIdZasob) {
  30. $kZasobID = $typeNameToIdZasob[$typeName];
  31. return UI::h('li', [], [
  32. UI::h('a', ['href'=>"index.php?_route=ViewTableAjax&typeName={$typeName}"], [
  33. UI::h('i', ['class'=>"bookmark-item-add glyphicon glyphicon-star-empty", 'title'=>"Add to favorites", 'data-zasobid'=>$kZasobID]),
  34. UI::h('i', ['class'=>"bookmark-item-rem glyphicon glyphicon-star", 'style'=>"display:none", 'title'=>"Remove from favorites", 'data-zasobid'=>$kZasobID]),
  35. " " . $vName
  36. ])
  37. ]);
  38. }, array_values($outMenus), array_keys($outMenus))),
  39. ]);
  40. echo UI::h('li', [ 'class' => "dropdown"], [
  41. UI::h('a',
  42. ($userAcl__getPermsFiltrProcesId)
  43. ? [
  44. 'href' => "#",
  45. 'class' => "dropdown-toggle",
  46. 'data-toggle' => "dropdown",
  47. ]
  48. : [
  49. 'href' => "#",
  50. 'class' => "dropdown-toggle",
  51. 'onClick' => "return initP5UrlsMenuDropdown(this, 'SE-menu-urls');",
  52. ],
  53. "Narzędzia " . '<b class="caret"></b>'
  54. ),
  55. UI::h('ul', [
  56. 'class' => "dropdown-menu",
  57. 'id' => "SE-menu-urls"
  58. ], array_map(function ($label, $idZasob) {
  59. return UI::h('li', [], [
  60. UI::h('a', [ 'href' => "index.php?FUNCTION_INIT=URL_INIT&ZASOB_ID={$idZasob}", 'target' => "_blank", 'title' => $label ], [
  61. UI::h('i', [ 'class' => "bookmark-item-add glyphicon glyphicon-star-empty", 'title' => "Add to favorites", 'data-zasobid' => $idZasob ]),
  62. UI::h('i', [ 'class' => "bookmark-item-rem glyphicon glyphicon-star", 'style' => "display:none", 'title' => "Remove from favorites", 'data-zasobid' => $idZasob ]),
  63. UI::h('code', [ 'style' => "margin-left:6px; margin-right:6px" ], (string)$idZasob),
  64. (mb_strlen($label, 'utf-8') > 100)? mb_substr($label, 0, 100, 'utf-8') . '...' : $label,
  65. ]),
  66. ]);
  67. }, array_values($outUrls), array_keys($outUrls))),
  68. ]);
  69. ?>
  70. <li class="dropdown <?php if ($active == 'procesy') echo "active"; ?>">
  71. <a id="ProcesMenuProcesDropdownLink" href="#" class="dropdown-toggle" data-toggle="dropdown">Procesy <b class="caret"></b></a>
  72. <ul class="dropdown-menu">
  73. <?php if (!empty($lastProcesyFiltrIds)) : ?>
  74. <li>
  75. <p class="text-muted" style="padding:3px 20px;"><nobr>Wróć do ostatniego wyszukiwania:</nobr></p>
  76. <a href="procesy5.php?task=CRM_PROCES<?php echo "&filtr_id={$lastProcesyFiltrIds}&filtr_ids=%2B&filtr_ob=%2B&filtr_img=%2B"; ?>"><?php
  77. //echo $lastProcesyFiltrIdsLabels;
  78. if (!empty($lastProcesyFiltrIds)) {
  79. $lastProcesyFiltrIds = explode(',', $lastProcesyFiltrIds);
  80. $labels = array();
  81. $labelsLimit = 4;
  82. $labelsInd = 0;
  83. foreach ($lastProcesyFiltrIds as $lastFltr) {
  84. $labels[] = '<span class="label label-info">' . $lastFltr . '</span>';
  85. if (++$labelsInd >= $labelsLimit) {
  86. $labels[] = '...';
  87. break;
  88. }
  89. }
  90. $lastProcesyFiltrIdsLabels = implode(' ', $labels);
  91. }
  92. echo $lastProcesyFiltrIdsLabels;
  93. ?></a>
  94. </li>
  95. <li class="divider"></li>
  96. <?php endif; ?>
  97. <li>
  98. <a href="index.php?FUNCTION_INIT=PROCES_MENU&HEADER_NOT_INIT=YES&_task=PROCES_FOR_USER" title="Moje Procesy">Moje Procesy</a>
  99. </li>
  100. <?php if ($menuProcesViewedTblId > 0) : ?>
  101. <li>
  102. <a href="index.php?FUNCTION_INIT=PROCES_MENU&HEADER_NOT_INIT=YES&_task=PROCES_FOR_TABLE&tblId=<?php echo $menuProcesViewedTblId; ?>">Procesy dla aktualnie przeglądanej tabeli</a>
  103. </li>
  104. <?php endif; ?>
  105. <li>
  106. <a href="procesy5.php?task=CRM_PROCES&filtr_id=" title="Wyświetlenie drzewa procesów">Wszystkie Procesy</a>
  107. </li>
  108. <?php if (0 == User::get('ADM_ADMIN_LEVEL')) : ?>
  109. <li>
  110. <a href="index.php?_route=UrlAction_ProcesView" title="Wyświetlenie drzewa procesów w formie panelowej i w formie drzewa">Procesy - <i style="color:red">NOWE</i> <i><small>(wersja testowa)</small></i></a>
  111. </li>
  112. <?php endif; ?>
  113. <li class="divider"></li>
  114. <?php if (!$typeSpecialProces) : ?>
  115. <li>
  116. <div class="alert alert-danger">Brak typespecial __PROCES</div>
  117. </li>
  118. <?php else : ?>
  119. <li>
  120. <p class="text-muted" style="padding:3px 20px;"><nobr>Wyszukaj:</nobr></p>
  121. <form id="ProcesMenuProcesFrm" action="procesy5.php" method="GET" style="padding:0 20px">
  122. <input type="hidden" name="task" value="CRM_PROCES">
  123. <?php
  124. $fldName = 'ProcesMenu__Proces_filtr_id';
  125. $fldParams = array();
  126. $fldParams['allowCreate'] = false;
  127. $fldParams['ajaxDataUrlBase'] = "index.php?FUNCTION_INIT=PROCES_MENU&HEADER_NOT_INIT=YES&_task=TYPESPECIAL&fld={$fldName}";
  128. $fldParams['placeholder'] = 'Szukaj...';
  129. $fldParams['formFieldName'] = 'filtr_id';
  130. //$fldParams['ajaxDataUrlBase'] .= "&DBG_TS=3";
  131. echo $typeSpecialProces->showFormItem($tblID = -1, $fldName, $selValue = '', $fldParams);
  132. ?>
  133. <input class="btn btn-xs btn-primary" type="submit" value="Wybierz" />
  134. <input class="pull-right btn btn-xs btn-default" type="submit" id="ProcesMenuProcesFltrAdd" value="Dodaj do filtra" />
  135. <script>
  136. jQuery(document).ready(function() {
  137. if ('procesy5.php' === window.location.pathname.substr(-12)
  138. && window.location.search.search('task=CRM_PROCES') > 0
  139. && window.location.search.search('&filtr_id=') > 0
  140. ) {
  141. jQuery('#ProcesMenuProcesFltrAdd').on('click', function(e) {
  142. var frm = jQuery(this).get(0).form;
  143. var fldNode = frm['<?php echo $fldParams['formFieldName']; ?>'],
  144. fltrId = '';
  145. if (fldNode && '' != fldNode.value) {
  146. fltrId = fldNode.value;
  147. } else {
  148. return;
  149. }
  150. var pos = 0, fltrIds = '';
  151. if ('procesy5.php' === window.location.pathname.substr(-12)
  152. && window.location.search.search('task=CRM_PROCES') > 0
  153. && (pos = window.location.search.search('&filtr_id=')) > 0
  154. ) {
  155. pos += 10;
  156. fltrIds = window.location.search.substr(pos);
  157. if ((pos = fltrIds.search('&')) > 0) {
  158. fltrIds = fltrIds.substr(0, pos);
  159. }
  160. if (fltrIds) {
  161. fltrIds = decodeURIComponent(fltrIds);
  162. fltrIds += ',' + fltrId;
  163. if (fldNode.selectize) {
  164. fldNode.selectize.addOption({id: fltrIds, name: fltrIds});
  165. fldNode.selectize.setValue(fltrIds, true);
  166. }
  167. }
  168. }
  169. });
  170. } else {
  171. jQuery('#ProcesMenuProcesFltrAdd').hide();
  172. }
  173. jQuery('#ProcesMenuProcesFrm').on('submit', function(e) {
  174. var frm = jQuery(this).get(0),
  175. fldNode = frm['<?php echo $fldParams['formFieldName']; ?>'];
  176. if (fldNode && '' != fldNode.value) {
  177. return true;
  178. } else {
  179. return false;
  180. }
  181. });
  182. jQuery('#ProcesMenuProcesDropdownLink').on('click', function(e) {
  183. setTimeout(function(){
  184. jQuery('#ts-<?php echo $fldName; ?>')
  185. .next('.selectize-control')
  186. .find('input:first')
  187. .focus();
  188. }, 200);
  189. });
  190. });
  191. </script>
  192. </form>
  193. </li>
  194. <?php endif; ?>
  195. </ul>
  196. </li>
  197. <li class="dropdown <?php if ($active == 'zasoby') echo "active"; ?>">
  198. <a id="ProcesMenuZasobDropdownLink" href="#" class="dropdown-toggle" data-toggle="dropdown">Zasoby <b class="caret"></b></a>
  199. <ul class="dropdown-menu">
  200. <?php if (!empty($lastZasobyFiltrIds)) : ?>
  201. <li>
  202. <p class="text-muted" style="padding:3px 20px;"><nobr>Wróć do ostatniego wyszukiwania:</nobr></p>
  203. <a href="procesy5.php?task=CRM_LISTA_ZASOBOW<?php echo "&filtr_id={$lastZasobyFiltrIds}&filtr_ids=%2B&filtr_ob=%2B&filtr_img=%2B"; ?>"><?php
  204. //echo $lastZasobyFiltrIdsLabels;
  205. if (!empty($lastZasobyFiltrIds)) {
  206. $lastZasobyFiltrIds = explode(',', $lastZasobyFiltrIds);
  207. $labels = array();
  208. $labelsLimit = 4;
  209. $labelsInd = 0;
  210. foreach ($lastZasobyFiltrIds as $lastFltr) {
  211. $labels[] = '<span class="badge badge-inverse">' . $lastFltr . '</span>';
  212. if (++$labelsInd >= $labelsLimit) {
  213. $labels[] = '...';
  214. break;
  215. }
  216. }
  217. $lastZasobyFiltrIdsLabels = implode(' ', $labels);
  218. }
  219. echo $lastZasobyFiltrIdsLabels;
  220. ?></a>
  221. </li>
  222. <li class="divider"></li>
  223. <?php endif; ?>
  224. <?php if (!empty($userGroupIdsCSV)) : ?>
  225. <li>
  226. <a href="procesy5.php?task=CRM_LISTA_ZASOBOW<?php echo "&filtr_id={$userGroupIdsCSV}&filtr_ids=%2B&filtr_ob=%2B&filtr_img=%2B"; ?>" title="Moje Zasoby">Moje Zasoby</a>
  227. </li>
  228. <?php endif; ?>
  229. <?php if ($menuProcesViewedTblId > 0) : ?>
  230. <li>
  231. <a href="procesy5.php?task=CRM_LISTA_ZASOBOW&filtr_id=<?= $menuProcesViewedTblId; ?>&filtr_ids=%2B&filtr_ob=%2B">Struktura aktualnie przeglądanej tabeli</a>
  232. </li>
  233. <?php endif; ?>
  234. <?php if ($menuProcesViewedTblId > 0 && User::get('ADM_ADMIN_LEVEL') < 2 && $menuProcesViewedAclIsObject) : ?>
  235. <li>
  236. <a href="index.php?_route=Storage_AclStruct&namespace=<?= $namespace; ?>">Struktura aktualnie przeglądanego obiektu (Storage)</a>
  237. </li>
  238. <?php endif; ?>
  239. <li>
  240. <a href="procesy5.php?task=CRM_LISTA_ZASOBOW&filtr_id=" title="Wyświetlenie drzewa zasobów">Wszystkie Zasoby</a>
  241. </li>
  242. <li class="divider"></li>
  243. <?php if (!$typeSpecialZasob) : ?>
  244. <li>
  245. <div class="alert alert-danger">Brak typespecial __ZASOB</div>
  246. </li>
  247. <?php else : ?>
  248. <li>
  249. <p class="text-muted" style="padding:3px 20px;"><nobr>Wyszukaj:</nobr></p>
  250. <form id="ProcesMenuZasobFrm" action="procesy5.php" method="GET" style="padding:0 20px">
  251. <input type="hidden" name="task" value="CRM_LISTA_ZASOBOW">
  252. <?php
  253. $fldName = 'ProcesMenu__Zasob_filtr_id';
  254. $fldParams = array();
  255. $fldParams['allowCreate'] = false;
  256. $fldParams['ajaxDataUrlBase'] = "index.php?FUNCTION_INIT=PROCES_MENU&HEADER_NOT_INIT=YES&_task=TYPESPECIAL&fld={$fldName}";
  257. $fldParams['placeholder'] = 'Szukaj...';
  258. $fldParams['formFieldName'] = 'filtr_id';
  259. //$fldParams['ajaxDataUrlBase'] .= "&DBG_TS=3";
  260. echo $typeSpecialZasob->showFormItem($tblID = -1, $fldName, $selValue = '', $fldParams);
  261. ?>
  262. <input class="btn btn-xs btn-primary" type="submit" value="Wybierz" />
  263. <input class="pull-right btn btn-xs btn-default" type="submit" id="ProcesMenuZasobFltrAdd" value="Dodaj do filtra" />
  264. <script>
  265. jQuery(document).ready(function() {
  266. if ('procesy5.php' === window.location.pathname.substr(-12)
  267. && window.location.search.search('task=CRM_LISTA_ZASOBOW') > 0
  268. && window.location.search.search('&filtr_id=') > 0
  269. ) {
  270. jQuery('#ProcesMenuZasobFltrAdd').on('click', function(e) {
  271. var frm = jQuery(this).get(0).form;
  272. var fldNode = frm['<?php echo $fldParams['formFieldName']; ?>'],
  273. fltrId = '';
  274. if (fldNode && '' != fldNode.value) {
  275. fltrId = fldNode.value;
  276. } else {
  277. return;
  278. }
  279. var pos = 0, fltrIds = '';
  280. if ('procesy5.php' === window.location.pathname.substr(-12)
  281. && window.location.search.search('task=CRM_LISTA_ZASOBOW') > 0
  282. && (pos = window.location.search.search('&filtr_id=')) > 0
  283. ) {
  284. pos += 10;
  285. fltrIds = window.location.search.substr(pos);
  286. if ((pos = fltrIds.search('&')) > 0) {
  287. fltrIds = fltrIds.substr(0, pos);
  288. }
  289. if (fltrIds) {
  290. fltrIds = decodeURIComponent(fltrIds);
  291. fltrIds += ',' + fltrId;
  292. if (fldNode.selectize) {
  293. fldNode.selectize.addOption({id: fltrIds, name: fltrIds});
  294. fldNode.selectize.setValue(fltrIds, true);
  295. }
  296. }
  297. }
  298. });
  299. } else {
  300. jQuery('#ProcesMenuZasobFltrAdd').hide();
  301. }
  302. jQuery('#ProcesMenuZasobFrm').on('submit', function(e) {
  303. var frm = jQuery(this).get(0),
  304. fldNode = frm['<?php echo $fldParams['formFieldName']; ?>'];
  305. if (fldNode && '' != fldNode.value) {
  306. return true;
  307. } else {
  308. return false;
  309. }
  310. });
  311. jQuery('#ProcesMenuZasobDropdownLink').on('click', function(e) {
  312. setTimeout(function(){
  313. jQuery('#ts-<?php echo $fldName; ?>')
  314. .next('.selectize-control')
  315. .find('input:first')
  316. .focus();
  317. }, 200);
  318. });
  319. });
  320. </script>
  321. </form>
  322. </li>
  323. <?php endif; ?>
  324. </ul>
  325. </li>
  326. <li<?php if ($active == 'obowiazki') echo ' class="active"'; ?>><a href="procesy5.php?task=CRM_WYSWIETL_OBOWIAZKI" title="Wyswietlenie OBOWIAZKOW">Obowiązki</a></li>
  327. <li class="dropdown <?php if ($active == 'testy') echo "active"; ?>">
  328. <a href="#" class="dropdown-toggle" data-toggle="dropdown">Testy (<?php echo "{$testy_ok} z {$proces_cnt}: T {$testy_teoretyczne}, P {$testy_praktyczne}"; ?>) <b class="caret"></b></a>
  329. <ul class="dropdown-menu">
  330. <li>
  331. <a href="index.php?_route=UserTest" title="<?php echo $MojeTestyTitle; ?>">Moje (<?php echo "{$testy_ok} z {$proces_cnt}: T {$testy_teoretyczne}, P {$testy_praktyczne}"; ?>)</a>
  332. </li>
  333. <?php if (User::hasAccess('testy')) : ?>
  334. <li>
  335. <a href="procesy5.php?task=CRM_TESTY__LIST">Lista testów</a>
  336. </li>
  337. <li>
  338. <a href="procesy5.php?task=CRM_TESTY__ADD_TEST">Uruchom nowy test</a>
  339. </li>
  340. <?php endif; ?>
  341. <?php if (User::hasAccess('procesy') || User::get('ADM_ADMIN_LEVEL') <= 2) : ?>
  342. <li class="divider"></li>
  343. <?php endif; ?>
  344. <?php if (User::hasAccess('procesy')) : ?>
  345. <li>
  346. <a href="procesy5.php?task=CRM_TESTY__ADD_KANDYDAT">Dodaj Kandydata i zaloguj się do testów</a>
  347. </li>
  348. <?php endif; ?>
  349. <?php if (User::get('ADM_ADMIN_LEVEL') <= 2) : ?>
  350. <li>
  351. <a href="procesy5.php?task=CRM_TESTY_WYNIKI" title="Wyswietlenie wyników testów">Wyniki</a>
  352. </li>
  353. <?php endif; ?>
  354. </ul>
  355. </li>
  356. <li<?= ('kontakty' == $active) ? ' class="active"' : ''; ?>><a href="index.php?_route=ViewTableAjax&namespace=default_db/KONTAKTY_view" title="Kontakty">Kontakty</a></li>
  357. <li<?= ('przypomnij' == $active) ? ' class="active"' : ''; ?>><a href="index.php?_route=Przypomnij&KTO=<?php echo User::getLogin(); ?>" title="Przypomnij">Przypomnij</a></li>
  358. </ul>
  359. <form class="navbar-form navbar-left" style="margin:3px 0;" role="search" action="procesy5.php?task=CRM_SEARCH" method="post">
  360. <div class="input-group">
  361. <input type="text" class="form-control input-sm" placeholder="Szukaj..." name="q">
  362. <span class="input-group-btn">
  363. <button class="btn btn-default btn-sm" type="submit"><i class="glyphicon glyphicon-search"></i></button>
  364. </span>
  365. </div><!-- /input-group -->
  366. </form>
  367. <div class="navbar-form navbar-right">
  368. <div class="btn-group">
  369. <button type="button" class="btn btn-link" style="margin:0; padding:6px 8px 4px 8px;"><?php S::show_session_timer(); ?></button>
  370. <a href="index.php?_route=UserMsgs" class="btn btn-link" style="margin:0; padding:6px 8px 0 8px; font-size:20px; line-height:24px;"><i class="glyphicon glyphicon-envelope"></i></a>
  371. <div class="btn-group">
  372. <button id="ProcesMenuLoginDropdownLink" type="button" class="btn btn-link dropdown-toggle" data-toggle="dropdown" aria-expanded="false"><?php echo User::getName(); ?> <span class="caret"></span></button>
  373. <ul class="dropdown-menu" role="menu">
  374. <?php if (file_exists('/Library/Server/Web/Data/Sites/Default/')) : ?>
  375. <li><a href="/webcal" target="_blank"><i class="glyphicon glyphicon-calendar"></i> Kalendarz</a></li>
  376. <?php if (file_exists('/Library/Server/Web/Data/Sites/Default/webmail/loginFromSE.php')) : ?>
  377. <li>
  378. <a href="/webmail">
  379. <form action="https://<?php echo $_SERVER['SERVER_NAME']; ?>/webmail/loginFromSE.php" method="post" target="_blank">
  380. <input type="hidden" name="_timezone" value="Europe/Berlin">
  381. <input type="hidden" name="_token" value="">
  382. <input type="hidden" name="_action" value="login">
  383. <input type="hidden" name="_task" value="login">
  384. <input type="hidden" name="_url" value="">
  385. <input type="hidden" name="_user" value="<?php echo User::getName(); ?>">
  386. <input type="hidden" name="_pass" value="<?php echo User::get('ADM_PASS_HASH'); ?>">
  387. <input type="hidden" name="EMAIL_IMAP_IMPORT_USERNAME" value="<?php echo V::get('EMAIL_IMAP_IMPORT_USERNAME', '', $_SESSION); ?>">
  388. <input type="hidden" name="EMAIL_IMAP_IMPORT_HOST" value="<?php echo V::get('EMAIL_IMAP_IMPORT_HOST', '', $_SESSION); ?>">
  389. <input type="hidden" name="EMAIL_IMAP_IMPORT_PASSWD_HASH" value="<?php echo V::get('EMAIL_IMAP_IMPORT_PASSWD_HASH', '', $_SESSION); ?>">
  390. <input type="hidden" name="loginFromSE" value="1">
  391. <!-- <input type="submit" class="btn" value="P"> -->
  392. <button type="submit" class="btn btn-link" style="width:100%;padding:0;text-align:left;color:#333;"><i class="glyphicon glyphicon-envelope"></i> Poczta</button>
  393. </form>
  394. </a>
  395. </li>
  396. <?php elseif (file_exists('/Library/Server/Web/Data/Sites/Default/webmail')) : ?>
  397. <li><a href="/webmail" target="_blank"><i class="glyphicon glyphicon-envelope"></i> Poczta</a></li>
  398. <?php endif; ?>
  399. <li><a href="index.php?_route=ChangePassword"><i class="glyphicon glyphicon-lock"></i> Zmień hasło</a></li>
  400. <li><a href="/profilemanager" target="_blank"><i class="glyphicon glyphicon-user"></i> Apple Profile Manager</a></li>
  401. <li class="divider"></li>
  402. <?php else: ?>
  403. <li><a href="index.php?_route=ChangePassword">Zmień hasło</a></li>
  404. <?php endif; ?>
  405. <li><a href="procesy5.php?task=USER" title="<?php echo User::getName(); ?>"><i class="glyphicon glyphicon-user"></i> Profil</a></li>
  406. <li><a href="index.php?_route=UrlAction_Calendar"><i class="glyphicon glyphicon-calendar"></i> Grafik pracy</a></li>
  407. <li><a href="index.php?_route=UserMsgs" title="Wiadomości systemowe"><i class="glyphicon glyphicon-envelope"></i> Wiadomości</a></li>
  408. <li><a href="index.php?_route=Notify" title="Powiadomienia"><i class="glyphicon glyphicon-bell"></i> Powiadomienia</a></li>
  409. <li><a href="index.php?_route=Users&_task=reloadPerms" title="Przeładuj uprawnienia"><i class="glyphicon glyphicon-refresh"></i> Przeładuj uprawnienia</a></li>
  410. <li class="divider"></li>
  411. <?php if (User::isAdmin()) : ?>
  412. <li><a href="index.php?_route=Status" title="Status systemu"><i class="glyphicon glyphicon-cog"></i> Status systemu</a></li>
  413. <?php endif; ?>
  414. <?php if (User::isAdmin()) : ?>
  415. <?php if (!$typeSpecialUserId) : ?>
  416. <li>
  417. <div class="alert alert-danger">Brak typespecial __USERS_ID</div>
  418. </li>
  419. <?php else : ?>
  420. <li>
  421. <p class="text-muted" style="padding:3px 20px;"><nobr>Pokaż testy pracownika:</nobr></p>
  422. <form action="index.php" method="POST">
  423. <input type="hidden" name="FUNCTION_INIT" value="MENU_SELECT_PROCES">
  424. <input type="hidden" name="_action" value="showMyTests">
  425. <?php
  426. $fldName = '_user_id';
  427. $fldParams = array();
  428. $fldParams['allowCreate'] = false;
  429. $fldParams['ajaxDataUrlBase'] = "index.php?FUNCTION_INIT=PROCES_MENU&HEADER_NOT_INIT=YES&_task=TYPESPECIAL&fld={$fldName}";
  430. $fldParams['placeholder'] = 'Szukaj...';
  431. //$fldParams['ajaxDataUrlBase'] .= "&DBG_TS=3";
  432. echo $typeSpecialUserId->showFormItem($tblID = -1, $fldName, $selValue = '', $fldParams);
  433. ?>
  434. <input class="btn btn-xs btn-warning" type="submit" value="Wybierz" />
  435. <script>
  436. jQuery(document).ready(function() {
  437. jQuery('#ProcesMenuLoginDropdownLink')
  438. .next('.dropdown-menu')
  439. .find('.selectize-input')
  440. .on('click', function(e) {
  441. return false;
  442. });
  443. jQuery('#ProcesMenuLoginDropdownLink').on('click', function(e) {
  444. setTimeout(function(){
  445. jQuery('#ts-<?php echo $fldName; ?>')
  446. .next('.selectize-control')
  447. .find('input:first')
  448. .focus();
  449. }, 200);
  450. });
  451. });
  452. </script>
  453. </form>
  454. </li>
  455. <?php endif; ?>
  456. <li class="divider"></li>
  457. <?php endif; ?>
  458. <li><a href="index.php?LOGIN=LOGOUT"><i class="glyphicon glyphicon-off"></i> Wyloguj</a></li>
  459. </ul>
  460. </div>
  461. </div>
  462. </div>
  463. <!--
  464. <li<?php if ($active == 'search') echo ' class="active"'; ?>>
  465. <form action="procesy5.php?task=CRM_SEARCH" method="post" class="navbar-search">
  466. <input type="text" name="q" value="" class="q search-query span2">
  467. <input type="image" src="icon/search.png" class="s">
  468. </form>
  469. </li>
  470. -->
  471. </div><!-- /.navbar-collapse -->
  472. </nav>
  473. <?php
  474. if ($idFiltrProcesID > 0) {
  475. echo UI::h('div', [ 'id' => "SE-menu-sub", 'style' => "clear:both;" ], array_merge(
  476. [
  477. UI::hButtonPost("Wyłącz filtr uprawnień: {$idFiltrProcesID}", [
  478. 'class' => "btn btn-xs btn-danger",
  479. 'data' => [
  480. '_rootPostTask' => "SetPermsAll",
  481. ],
  482. ]),
  483. ],
  484. array_map(
  485. function ($label, $typeName) {
  486. return UI::h('a', [ 'class' => "btn btn-xs btn-default", 'href' => "index.php?_route=ViewTableAjax&typeName={$typeName}", 'title' => $label ], V::strShortUtf8($label, 20));
  487. }, array_values($outBtnsMenus), array_keys($outBtnsMenus)
  488. ),
  489. array_map(
  490. function ($label, $idZasob) {
  491. return UI::h('a', [ 'class' => "btn btn-xs btn-default", 'href' => "index.php?FUNCTION_INIT=URL_INIT&ZASOB_ID={$idZasob}", 'target' => "_blank", 'title' => $label ], V::strShortUtf8($label, 20));
  492. }, array_values($outUrls), array_keys($outUrls)
  493. )
  494. ));
  495. } else {
  496. echo UI::h('div', [ 'id' => "SE-menu-sub", 'style' => "clear:both" ]);
  497. UI::inlineJS(APP_PATH_WWW . '/static/p5UI/userBookmarks.js');
  498. // url: 'index-ajax.php?_cls=UserBookmarks',
  499. echo UI::h('script', [], "
  500. (function (global) {
  501. jQuery('#SE-menu-sub').UserBookmarks({
  502. url: 'index.php?_route=P5Menu',
  503. store: global.p5UI__MenuStore,
  504. debug: false
  505. });
  506. })(window);
  507. ");
  508. }
  509. echo '</div>';
  510. echo UI::h('script', [], "
  511. (function (global) {
  512. if (!global.p5UI__MenuStore) throw 'Missing global.p5UI__MenuStore'
  513. function _changeIconStarToLoading(node) {
  514. if (!node.classList.contains('glyphicon-star') && !node.classList.contains('glyphicon-star-empty')) return;
  515. node.classList.remove('glyphicon-star', 'glyphicon-star-empty')
  516. node.classList.add('glyphicon-refresh')
  517. }
  518. function p5BookmarksAdd(e, id) {
  519. e.preventDefault()
  520. e.stopPropagation()
  521. if (e.target.classList.contains('glyphicon-refresh')) return;
  522. _changeIconStarToLoading(e.target)
  523. global.p5UI__MenuStore.remoteUpdate({
  524. '_postTask': 'addBookmark',
  525. '_zasobID': id,
  526. })
  527. }
  528. function p5BookmarksRemove(e, id) {
  529. e.preventDefault()
  530. e.stopPropagation()
  531. if (e.target.classList.contains('glyphicon-refresh')) return;
  532. _changeIconStarToLoading(e.target)
  533. global.p5UI__MenuStore.remoteUpdate({
  534. '_postTask': 'removeBookmark',
  535. '_zasobID': id,
  536. })
  537. }
  538. global.p5BookmarksAdd = p5BookmarksAdd
  539. global.p5BookmarksRemove = p5BookmarksRemove
  540. })(window)
  541. ");
  542. UI::inlineCSS(APP_PATH_WWW . '/static/p5UI/initP5MainMenuDropdown.css');
  543. UI::inlineJS(APP_PATH_WWW . '/static/p5UI/initP5MainMenuDropdown.js', [ 'DBG' => 0 ]);
  544. UI::inlineJS(APP_PATH_WWW . '/static/p5UI/initP5UrlsMenuDropdown.js', [ 'DBG' => 0 ]);
  545. echo UI::h('script', [], "
  546. (function (global) {
  547. if (!global.p5UI__MenuStore) throw 'Missing global.p5UI__MenuStore'
  548. if (global.p5UI__MenuStore.hasData()) {
  549. global.p5UI__MenuStore.forceUpdate() // force update all subscribers
  550. } else {
  551. global.p5UI__MenuStore.remoteUpdate() // update from remote url
  552. }
  553. })(window)
  554. ");