superedit-PRZYPOMNIJ.php 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595
  1. <?php
  2. /**
  3. * 1. określić jakie rekordy pokazać jako taski
  4. * 2. filtrować wyniki
  5. *
  6. * -- koresp : 301
  7. SELECT
  8. kor.ID
  9. , kor.ID_PROJECT
  10. , kor.A_STATUS
  11. , kor.L_APPOITMENT_USER
  12. , kor.L_APPOITMENT_DATE
  13. , kor.L_APPOITMENT_INFO
  14. , kor.A_RECORD_CREATE_DATE
  15. -- ? echo '<td>'.$h['K_TYP_KORESP']." -".$h['K_TYP_RODZAJ']." (".$h['K_TYP_RODZAJ_OPIS'].")".'</td>';
  16. -- echo '<td>'.$h['K_OD_KOGO']."/".$h['OD_KOGO_ADRES']."/".$h['K_ZAWARTOS'].'</td>';
  17. , kor.K_OD_KOGO
  18. , kor.OD_KOGO_ADRES
  19. , kor.K_ZAWARTOS
  20. -- TODO: , proj.M_DIST_DESC
  21. , kor.K_LOKALIZACJA
  22. , kor.K_LOKALIZACJA_OPIS
  23. FROM `IN7_DZIENNIK_KORESP` as kor
  24. WHERE kor.`A_STATUS` NOT IN ('OFF_HARD','DELETED')
  25. * -- proj : 1155
  26. SELECT proj.ID
  27. , proj.A_STATUS
  28. , proj.M_DIST_DESC
  29. , proj.M_DIST_TYPE
  30. -- ? , proj.M_DIST_DATE, proj.M_DISTRIBUTOR
  31. -- ? echo '<td>'."Wpr: ".$h['A_RECORD_CREATE_AUTHOR']."/ akt : ".$h['A_RECORD_UPDATE_AUTHOR']."(".$h['A_RECORD_UPDATE_DATE'].")".'</td>';
  32. -- ? echo '<td>'." <b>".$h['A_PROBLEM']." ".$h['A_PROBLEM_DATE']."</b><font color=\"#444444\"><pre> ".$h['A_PROBLEM_DESC']."</pre></font>".
  33. FROM `IN7_MK_BAZA_DYSTRYBUCJI` as proj
  34. WHERE proj.`A_STATUS` NOT IN ('OFF_HARD','DELETED')
  35. * -- proces: musi być l_app i l_app_date
  36. select p.*
  37. from `CRM_PROCES` as p
  38. where p.`TYPE`='PROCES_INIT'
  39. and p.`A_STATUS` in('NORMAL', 'WAITING')
  40. and p.`L_APPOITMENT_DATE`!=''
  41. and p.`L_APPOITMENT_USER`!=''
  42. --------------------------------------------------------------------------
  43. koresp bez ID_PROJ, bez L_APP - pokazać się osobie z A_CREATE_AUTHOR
  44. koresp z L_APP - pokazać się osobie z L_APP
  45. koresp bez L_APP, z ID_PROJ i proj ma L_APP to pokazać się proj.L_APP
  46. koresp bez L_APP, z ID_PROJ i proj nie ma L_APP ale proj z p_ID ma l_app to pokazać się proj_parent.L_APP
  47. j/w 10 poziomów w górę
  48. proj bez L_APP, szukać w górę,
  49. *
  50. * Filtry:
  51. * Wszystkie/Moje/konkretny:
  52. * Data: PO_TERMINIE, DZISIAJ, W_CIAGU_7_DNI
  53. * Sortowanie: od najbliższej daty powrotu (l_app_date)
  54. *
  55. * Tabela tasków:
  56. * -- termin wykonania
  57. * -- czego dotyczy PROJEKT/KORESP/PROCES + link nr rekordu
  58. * -- type rekordu kor.K_TYP_KORESP itd.; proj.M_DIST_TYPE; proc.TYPE
  59. * -- opis co zrobić (Od kogo/temat/sprawa)
  60. * -- lokalizacja kor.
  61. *
  62. *
  63. */
  64. function PRZYPOMNIJ() {
  65. if (User::get('ADM_ADMIN_LEVEL') > 5) {
  66. SE_Layout::menu();
  67. ?>
  68. <div class="container">
  69. <div class="alert alert-danger">
  70. Brak dostępu!
  71. </div>
  72. </div>
  73. <?php
  74. SE_Layout::dol();
  75. die();
  76. }
  77. Lib::loadClass('ProcesHelper');
  78. $zasobProjID = ProcesHelper::getZasobTableID('IN7_MK_BAZA_DYSTRYBUCJI');
  79. $zasobKorespID = ProcesHelper::getZasobTableID('IN7_DZIENNIK_KORESP');
  80. Lib::loadClass('Przypomnij');
  81. $przypomnij = new Przypomnij();
  82. $przypomnij->setRecurseLimit(3);// TODO: 10
  83. $task = V::get('task', '', $_GET);
  84. if ($task == 'AJAX_EDIT_INLINE') {
  85. // ?FUNCTION_INIT=PRZYPOMNIJ&HEADER_NOT_INIT=YES&task=AJAX_EDIT_INLINE
  86. // $_GET [rowid] => 2286, [type] => proces
  87. $przypomnij->sendAjaxEditAppDateInline();
  88. exit;
  89. }
  90. else if ($task == 'AJAX_EDIT_INLINE_SAVE') {
  91. // ?FUNCTION_INIT=PRZYPOMNIJ&HEADER_NOT_INIT=YES&task=AJAX_EDIT_INLINE_SAVE
  92. // $_GET [rowid] => 2286, [type] => proces, [fldId] => date
  93. $przypomnij->sendAjaxEditAppDateInlineSave();
  94. exit;
  95. }
  96. SE_Layout::menu();
  97. $allowedUsers = $przypomnij->getAllowedUsersList();
  98. $selected_user = isset($_GET['KTO'])? $_GET['KTO'] : '';//$_SERVER['argv'][1];
  99. $selected_user_err = '';
  100. if (!empty($selected_user)) {
  101. if (!array_key_exists($selected_user, $allowedUsers)) {
  102. $selected_user = '';
  103. $selected_user_err = 'Brak danych - wybierz innego użytkownika';
  104. }
  105. }
  106. $hideFltrs = $przypomnij->getDateHideFltrTypes();
  107. ?>
  108. <style type="text/css">
  109. .frm-przypomnij { width:96%; margin:0 auto 10px auto; table-layout:fixed; }
  110. .tbl-przypomnij { width:96%; margin:0 auto 10px auto; table-layout:fixed; }
  111. .tbl-przypomnij td,
  112. .tbl-przypomnij th { overflow:hidden; }
  113. .tbl-przypomnij .l_app_date { white-space:nowrap; }
  114. .tbl-przypomnij .date-PO_TERMINIE .l_app_date { color:#FD4242; }
  115. .tbl-przypomnij .date-DZISIAJ .l_app_date { color:#34B934; }
  116. .tbl-przypomnij .date-W_CIAGU_7_DNI .l_app_date { color:#C58B1F; }
  117. .tbl-przypomnij .date-PO_7_DNIACH .l_app_date { color:#87847D; }
  118. .use-filtr_only_stare tr.l-app-stare{display:none;}
  119. .fltr-hide_PROJEKT tr.type-PROJEKT {display:none;}
  120. .fltr-hide_KORESP tr.type-KORESP {display:none;}
  121. .fltr-hide_PROCES tr.type-PROCES {display:none;}
  122. .fltr-hide_PO_TERMINIE tr.date-PO_TERMINIE {display:none;}
  123. .fltr-hide_DZISIAJ tr.date-DZISIAJ {display:none;}
  124. .fltr-hide_W_CIAGU_7_DNI tr.date-W_CIAGU_7_DNI {display:none;}
  125. .fltr-hide_PO_7_DNIACH tr.date-PO_7_DNIACH {display:none;}
  126. .fltr-hide_BRAK tr.date-BRAK {display:none;}
  127. .nobr {white-space:nowrap;}
  128. </style>
  129. <script type="text/javascript">
  130. function przypomnij_update_counters() {
  131. var taskTypeStatMap = {
  132. PROCES: 'przypomnij_stats-procesy'
  133. , KORESP: 'przypomnij_stats-pisma'
  134. , PROJEKT: 'przypomnij_stats-projekty'
  135. }
  136. , taskStats = {};
  137. for (var i in taskTypeStatMap) taskStats[i] = 0;
  138. jQuery('.tbl-przypomnij').find('tbody tr:visible').each(function(ind, task){
  139. task = jQuery(task);
  140. //console.log('node i:', ind, 'node:', task, 'isProces:', task.hasClass('type-PROCES'));
  141. for (var i in taskTypeStatMap) {
  142. if (task.hasClass('type-' + i)) {
  143. taskStats[i] += 1;
  144. }
  145. }
  146. });
  147. for (var i in taskTypeStatMap) {
  148. jQuery('#' + taskTypeStatMap[i]).text(taskStats[i]);
  149. }
  150. }
  151. jQuery(document).ready(function(){
  152. jQuery('#filtr_show_PROJEKT').click(function(e){
  153. var n=jQuery(this);
  154. var tbl=jQuery('table.tbl-przypomnij');
  155. if (n.is(':checked')) {
  156. tbl.removeClass('fltr-hide_PROJEKT');
  157. } else {
  158. tbl.addClass('fltr-hide_PROJEKT');
  159. }
  160. przypomnij_update_counters();
  161. });
  162. jQuery('#filtr_show_KORESP').click(function(e){
  163. var n=jQuery(this);
  164. var tbl=jQuery('table.tbl-przypomnij');
  165. if (n.is(':checked')) {
  166. tbl.removeClass('fltr-hide_KORESP');
  167. } else {
  168. tbl.addClass('fltr-hide_KORESP');
  169. }
  170. przypomnij_update_counters();
  171. });
  172. jQuery('#filtr_show_PROCES').click(function(e){
  173. var n=jQuery(this);
  174. var tbl=jQuery('table.tbl-przypomnij');
  175. if (n.is(':checked')) {
  176. tbl.removeClass('fltr-hide_PROCES');
  177. } else {
  178. tbl.addClass('fltr-hide_PROCES');
  179. }
  180. przypomnij_update_counters();
  181. });
  182. jQuery('#filtr_show_PO_TERMINIE').click(function(e){
  183. var n=jQuery(this);
  184. var tbl=jQuery('table.tbl-przypomnij');
  185. if (n.is(':checked')) {
  186. tbl.removeClass('fltr-hide_PO_TERMINIE');
  187. } else {
  188. tbl.addClass('fltr-hide_PO_TERMINIE');
  189. }
  190. przypomnij_update_counters();
  191. });
  192. jQuery('#filtr_show_DZISIAJ').click(function(e){
  193. var n=jQuery(this);
  194. var tbl=jQuery('table.tbl-przypomnij');
  195. if (n.is(':checked')) {
  196. tbl.removeClass('fltr-hide_DZISIAJ');
  197. } else {
  198. tbl.addClass('fltr-hide_DZISIAJ');
  199. }
  200. przypomnij_update_counters();
  201. });
  202. jQuery('#filtr_show_W_CIAGU_7_DNI').click(function(e){
  203. var n=jQuery(this);
  204. var tbl=jQuery('table.tbl-przypomnij');
  205. if (n.is(':checked')) {
  206. tbl.removeClass('fltr-hide_W_CIAGU_7_DNI');
  207. } else {
  208. tbl.addClass('fltr-hide_W_CIAGU_7_DNI');
  209. }
  210. przypomnij_update_counters();
  211. });
  212. jQuery('#filtr_show_PO_7_DNIACH').click(function(e){
  213. var n=jQuery(this);
  214. var tbl=jQuery('table.tbl-przypomnij');
  215. if (n.is(':checked')) {
  216. tbl.removeClass('fltr-hide_PO_7_DNIACH');
  217. } else {
  218. tbl.addClass('fltr-hide_PO_7_DNIACH');
  219. }
  220. przypomnij_update_counters();
  221. });
  222. jQuery('#filtr_show_BRAK').click(function(e){
  223. var n=jQuery(this);
  224. var tbl=jQuery('table.tbl-przypomnij');
  225. if (n.is(':checked')) {
  226. tbl.removeClass('fltr-hide_BRAK');
  227. } else {
  228. tbl.addClass('fltr-hide_BRAK');
  229. }
  230. przypomnij_update_counters();
  231. });
  232. });
  233. </script>
  234. <form action="" method="get" class="frm-przypomnij form-inline">
  235. <input type="hidden" name="MENU_INIT" value="<?php echo __FUNCTION__; ?>">
  236. <a href="index.php?MENU_INIT=<?php echo __FUNCTION__; ?>">Wszyscy</a>
  237. |
  238. <a href="index.php?MENU_INIT=<?php echo __FUNCTION__; ?>&KTO=<?php echo $_SESSION['AUTHORIZE_USER']; ?>" >Twoje (<?php echo $_SESSION['AUTHORIZE_USER']; ?>)</a>
  239. |
  240. <?php if (!empty($allowedUsers)) : ?>
  241. <select name="KTO">
  242. <option value=""> Wszyscy </option>
  243. <?php foreach ($allowedUsers as $kUserName => $vBool) : ?>
  244. <?php $sel = ($kUserName == $selected_user)? ' selected="selected"' : ''; ?>
  245. <option value="<?php echo $kUserName; ?>" <?php echo $sel; ?>><?php echo $kUserName; ?></option>
  246. <?php endforeach; ?>
  247. </select>
  248. <?php endif; ?>
  249. <input type="submit" value="Pokaż" class="btn btn-xs btn-default">
  250. <span style="padding:0 0 0 30px;">
  251. <label><strong>Pokaż: </strong></label>
  252. <label class="checkbox">
  253. <input type="checkbox" name="filtr_show_PROJEKT" checked="checked" value="1" id="filtr_show_PROJEKT" />
  254. projekt
  255. </label>
  256. <label class="checkbox">
  257. <input type="checkbox" name="filtr_show_KORESP" checked="checked" value="1" id="filtr_show_KORESP" />
  258. korespondencja
  259. </label>
  260. <label class="checkbox">
  261. <input type="checkbox" name="filtr_show_PROCES" checked="checked" value="1" id="filtr_show_PROCES" />
  262. procesy
  263. </label>
  264. </span>
  265. <span style="padding:0 0 0 30px;">
  266. <label><strong>Data: </strong></label>
  267. <label class="checkbox">
  268. <input type="checkbox" name="filtr_show_PO_TERMINIE" checked="checked" value="1" id="filtr_show_PO_TERMINIE" />
  269. po terminie
  270. </label>
  271. <label class="checkbox">
  272. <input type="checkbox" name="filtr_show_DZISIAJ" checked="checked" value="1" id="filtr_show_DZISIAJ" />
  273. dzisiaj
  274. </label>
  275. <label class="checkbox">
  276. <input type="checkbox" name="filtr_show_W_CIAGU_7_DNI" checked="checked" value="1" id="filtr_show_W_CIAGU_7_DNI" />
  277. w ciagu 7 dni
  278. </label>
  279. <label class="checkbox">
  280. <input type="checkbox" name="filtr_show_PO_7_DNIACH" value="1" id="filtr_show_PO_7_DNIACH" />
  281. po 7 dniach
  282. </label>
  283. <label class="checkbox">
  284. <input type="checkbox" name="filtr_show_BRAK" value="1" id="filtr_show_BRAK" />
  285. brak
  286. </label>
  287. </span>
  288. <?php
  289. if(V::get('DBG_P', '', $_GET)){echo'<input type="hidden" name="DBG_P" value="1">';}
  290. echo'</form>';
  291. if ($selected_user_err) {
  292. echo '<div class="alert alert-danger">' . $selected_user_err . '</div>';
  293. return;
  294. }
  295. $przypomnij->fetchData();
  296. $przypomnij->setFltrUser($selected_user);
  297. $data = $przypomnij->getRawData();
  298. if(V::get('DBG_P', '', $_GET)){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">$data (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($data);echo'</pre>';}
  299. $tasks = $przypomnij->getTasksByDate();
  300. if(V::get('DBG_P', '', $_GET)){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">$tasks (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($tasks);echo'</pre>';}
  301. $ILOSC_PISM = 0;
  302. $ILOSC_SPRAW = 0;
  303. $ILOSC_PROCES = 0;
  304. /*
  305. * Tabela tasków:
  306. * -- termin wykonania
  307. * -- czego dotyczy PROJEKT/KORESP/PROCES + link nr rekordu
  308. * -- typ rekordu kor.K_TYP_KORESP itd.; proj.M_DIST_TYPE; proc.TYPE
  309. * -- opis co zrobić (Od kogo/temat/sprawa)
  310. * -- lokalizacja kor.
  311. */
  312. $dateFltrTypes = $przypomnij->getDateFltrTypes();
  313. $usrGroupNames = User::getLdapGroupsNames();
  314. ?>
  315. <table class="tbl-przypomnij table table-bordered table-hover fltr-hide_PO_7_DNIACH fltr-hide_BRAK">
  316. <thead>
  317. <tr>
  318. <th style="width:100px">Termin wykonania</th>
  319. <th style="width:20%">Opis działań do wykonania</th>
  320. <th style="width:190px">Typ rekordu / ID</th>
  321. <th>Firma powiąz. / adres / opis-temat</th>
  322. <th style="width:100px">Lokalizacja</th>
  323. </tr>
  324. </thead>
  325. <tbody>
  326. <?php foreach ($tasks as $id => $task) : ?>
  327. <?php
  328. //@2015-05-17 - ograniczenie widzenia listy przypomnij dla obcych uzystkownikow,
  329. if (
  330. $task->A_CLASSIFIED != ''
  331. and !(in_array($task->A_CLASSIFIED, $usrGroupNames))
  332. and $task->A_ADM_COMPANY != ''
  333. and !(in_array($task->A_ADM_COMPANY, $usrGroupNames))
  334. // !($allowedUsers[$task->_l_app]) - to jest bez sensu - wystarczy widocznosc sprawy?
  335. ) {
  336. echo'<tr style="display:none"><td colspan="5">' . "Pominięty task '{$task->_task_type}'/{$task->ID} user({$task->_l_app})" . '</td></tr>';
  337. continue;
  338. }
  339. if (!$task->_show) continue;
  340. if ($task->_task_type == 'projekt') {
  341. $ILOSC_SPRAW += 1;
  342. } else if ($task->_task_type == 'koresp') {
  343. $ILOSC_PISM += 1;
  344. } else if ($task->_task_type == 'proces') {
  345. $ILOSC_PROCES += 1;
  346. }
  347. $clsData = $przypomnij->getTaskDateFltrType($task->_l_app_date);
  348. $task_zasobID = $przypomnij->getZasobIdByType($task->_task_type);
  349. ?>
  350. <tr id="<?php echo "row-{$task->_task_type}-{$task->ID}"; ?>" class="type-<?php echo strtoupper($task->_task_type) . ' ' . $clsData; ?>">
  351. <td class="l_app_date-edit_inline" data-type="<?php echo $task->_task_type; ?>" data-rowid="<?php echo $task->ID; ?>"><strong class="l_app_date"><?php echo $task->_l_app_date; ?></strong>
  352. <div class="l_app_user">
  353. <?php if (empty($task->_l_app)) : ?>
  354. <em class="label label-important">Nieprzypisany!</em>
  355. <?php else : ?>
  356. <em><?php echo $task->_l_app; ?></em>
  357. <?php endif; ?>
  358. </div>
  359. </td>
  360. <td class="l_app_info l_app_date-edit_inline" data-type="<?php echo $task->_task_type; ?>" data-rowid="<?php echo $task->ID; ?>"><?php echo $task->L_APPOITMENT_INFO; ?></td>
  361. <td>
  362. <h5>
  363. <a href="index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=<?php echo $task_zasobID; ?>#EDIT/<?php echo $task->ID; ?>" target="_blank" title="Edytuj rekord">
  364. <i class="glyphicon glyphicon-pencil"></i>
  365. <?php echo strtoupper($task->_task_type); ?>
  366. <?php echo $task->ID; ?>
  367. </a>
  368. <a href="index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=<?php echo $task_zasobID; ?>#FILES/<?php echo $task->ID; ?>" target="_blank" title="Pliki">
  369. <i class="glyphicon glyphicon-folder-open"></i>
  370. pliki
  371. </a>
  372. </h5>
  373. <span class="label label-A_STATUS-<?php echo $task->A_STATUS; ?>"><?php echo $task->A_STATUS; ?></span>
  374. <em><?php echo $task->_type; ?></em>
  375. </td>
  376. <td>
  377. <?php if ($task->_task_type == 'projekt' && !empty($task->M_DISTRIBUTOR)) : ?>
  378. <strong><?php echo $task->M_DISTRIBUTOR; ?></strong><br>
  379. <?php endif; ?>
  380. <?php echo $task->_title; ?>
  381. </td>
  382. <td>
  383. <?php if ($task->_task_type == 'koresp') : ?>
  384. <em><?php echo $task->K_LOKALIZACJA_OPIS; ?></em>
  385. <?php endif; ?>
  386. </td>
  387. </tr>
  388. <?php endforeach; ?>
  389. </tbody>
  390. </table>
  391. <div class="container">
  392. Ilość pism: <span id="przypomnij_stats-pisma"><?php echo $ILOSC_PISM; ?></span>,
  393. ilość spraw: <span id="przypomnij_stats-projekty"><?php echo $ILOSC_SPRAW; ?></span>,
  394. ilość procesów: <span id="przypomnij_stats-procesy"><?php echo $ILOSC_PROCES; ?></span>.
  395. </div>
  396. <div class="przypomnijInlineEditBox inlineEditBox modal fade" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  397. <div class="modal-dialog">
  398. <div class="modal-content">
  399. <form style="margin:0;padding:0;">
  400. <div class="modal-header">
  401. <button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="glyphicon glyphicon-remove"></i></button>
  402. <h3 id="myModalLabel">Edytuj</h3>
  403. </div>
  404. <div class="modal-body">
  405. <input type="hidden" name="rowid" value="">
  406. <input type="hidden" name="type" value="">
  407. <div class="inlineEditBox-cnt"></div>
  408. </div>
  409. <div class="modal-footer">
  410. <button class="btn" data-dismiss="modal" aria-hidden="true">Zamknij</button>
  411. <input type="submit" value="Zapisz" class="btn btn-primary btn-save">
  412. </div>
  413. </form>
  414. </div>
  415. </div>
  416. </div>
  417. <script>
  418. var _inlineEditBox;
  419. jQuery(document).ready(function(){
  420. _inlineEditBox = jQuery('.przypomnijInlineEditBox');
  421. var frmInlineEdit = _inlineEditBox.find('form');
  422. frmInlineEdit.on('submit', function() {
  423. var frmData = _inlineEditBox.find('form').serialize();
  424. var task_rowid = frmInlineEdit.find('input[name=rowid]').val();
  425. var task_type = frmInlineEdit.find('input[name=type]').val();
  426. _inlineEditBox.find('.btn-save').hide();
  427. _inlineEditBox.find('.inlineEditBox-cnt').html('<span class="loading-info"> loading ...</span>');
  428. jQuery.ajax({
  429. url: 'index.php?FUNCTION_INIT=PRZYPOMNIJ&HEADER_NOT_INIT=YES&task=AJAX_EDIT_INLINE_SAVE',
  430. type: 'POST',
  431. dataType: 'text',
  432. data: frmData,
  433. async: true,
  434. success: function (data) {
  435. //console.log('_inlineEditBox submit ajax data:', data);
  436. _inlineEditBox.find('.inlineEditBox-cnt').html(data);
  437. _inlineEditBox.find('.btn-save').hide();
  438. //TODO: reload page [or values]; publ.loadPage(_currPage);
  439. //console.log('_inlineEditBox submit ajax success');
  440. var upNode = _inlineEditBox.find('.inlineEditBox-cnt').find('.EditAppDateInlineSave');
  441. if (upNode) {
  442. var taskNode = jQuery('#row-'+task_type+'-'+task_rowid);
  443. if (upNode.find('.l_app_user').text().length > 0) {
  444. taskNode.find('.l_app_user').html('<em>'+upNode.find('.l_app_user').text()+'</em>');
  445. } else {
  446. taskNode.find('.l_app_user').html('<em class="label label-important">Nieprzypisany!</em>');
  447. }
  448. taskNode.find('.l_app_date').html(upNode.find('.l_app_date').text());
  449. taskNode.find('.l_app_info').html(upNode.find('.l_app_info').text());
  450. // .date_fltr_type
  451. var fltrTypes = <?php echo json_encode($dateFltrTypes); ?>
  452. , fltrTypeCur = ''
  453. , fltrTypeNew = upNode.find('.date_fltr_type').text();
  454. for (var i in fltrTypes) {
  455. if (taskNode.hasClass(fltrTypes[i])) {
  456. fltrTypeCur = fltrTypes[i];
  457. break;
  458. }
  459. }
  460. //console.log('fltrTypeNew', fltrTypeNew, ' fltrTypeCur', fltrTypeCur, ' fltrTypes', fltrTypes);
  461. if (fltrTypeCur == fltrTypeNew) {
  462. //console.log('fltrTypeCur == fltrTypeNew', fltrTypeCur, ' == ', fltrTypeNew);
  463. } else {
  464. //console.log('fltrTypeCur != fltrTypeNew', fltrTypeCur, ' != ', fltrTypeNew);
  465. taskNode.removeClass(fltrTypeCur);
  466. taskNode.addClass(fltrTypeNew);
  467. }
  468. }
  469. przypomnij_update_counters();
  470. },
  471. error: function (jhr, textStatus, errorThrown) {
  472. //console.log('_inlineEditBox submit ajax error');
  473. }
  474. });
  475. return false;
  476. });
  477. jQuery('.l_app_date-edit_inline').on('dblclick', function(e){
  478. var data = $(this).data();
  479. // rowid: 2266, type: "projekt"
  480. if (!data.type || !data.rowid) {
  481. return false;
  482. }
  483. _inlineEditBox.modal();
  484. _inlineEditBox.show();
  485. _inlineEditBox.find('input[name=rowid]').val(data.rowid);
  486. _inlineEditBox.find('input[name=type]').val(data.type);
  487. _inlineEditBox.find('.inlineEditBox-cnt').html('<span class="loading-info"> loading ...</span>');
  488. $.ajax({
  489. url: 'index.php?FUNCTION_INIT=PRZYPOMNIJ&HEADER_NOT_INIT=YES&task=AJAX_EDIT_INLINE',
  490. //index-ajax.php?_zasobID=_zasobID&_cls=__CLASS__&_hash=_htmlID&_task=EDIT_INLINE&ID=' + e.data.id + '&col=' + e.data.col,
  491. type: 'GET',
  492. dataType: 'text',
  493. data: data,
  494. async: true,
  495. success: function (data) {
  496. _inlineEditBox.find('.inlineEditBox-cnt').html(data);
  497. _inlineEditBox.find('.btn-save').show();
  498. _inlineEditBox.find('.se_type-date').datetimepicker({
  499. format: "yyyy-mm-dd"
  500. , language: 'pl'
  501. , todayBtn: "linked"
  502. });
  503. _inlineEditBox.find('.se_type-datetime').parent().datetimepicker({
  504. format: 'yyyy-MM-dd hh:mm'
  505. , language: 'pl'
  506. , weekStart: 1
  507. });
  508. _inlineEditBox.find('.se_type-time').parent().datetimepicker({
  509. format: 'hh:mm:ss'
  510. , language: 'pl'
  511. });
  512. _inlineEditBox.find('textarea').autosize();
  513. var fld = _inlineEditBox.find('input[id^="f"]');
  514. if (fld && !fld.hasClass('se_type-date')) {
  515. fld.focus();
  516. fld.keydown(function(event) {
  517. if (event.which == 13) {
  518. event.preventDefault();
  519. _inlineEditBox.find('form').submit();
  520. }
  521. });
  522. }
  523. },
  524. error: function (err) {
  525. console.log('err', err);
  526. }
  527. });
  528. });
  529. });
  530. </script>
  531. <?php
  532. }