superedit-PROCES_ADD_ZASOB.php 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702
  1. <?php
  2. /**
  3. * @param $_GET['procesID'] - id procesu
  4. *
  5. * example:
  6. * index.php?MENU_INIT=PROCES_ADD_ZASOB&procesID=3885
  7. */
  8. function PROCES_ADD_ZASOB() {
  9. $taskMsgs = array();
  10. $taskErrors = array();
  11. $task = V::get('_task', '', $_REQUEST);
  12. switch ($task) {
  13. case 'FRM_RM_ZASOB': {
  14. $procesID = V::get('procesID', 0, $_GET, 'int');
  15. $rmWskID = V::get('rmWskID', 0, $_POST, 'int');
  16. if (!$procesID || !$rmWskID) {
  17. $taskErrors[] = "Wrong param proces id or remove wskaźnik id!";
  18. }
  19. else {
  20. $db = DB::getDB();
  21. $sql_obj = new stdClass();
  22. $sql_obj->ID = $rmWskID;
  23. $sql_obj->A_STATUS = 'DELETED';
  24. $affected = $db->UPDATE_OBJ('CRM_WSKAZNIK', $sql_obj);
  25. if ($affected == 2) {
  26. $taskMsgs[] = "Usunieto wskaznik";
  27. } else if ($affected == 1) {
  28. $taskMsgs[] = "Usunieto wskaznik (nie zapisano historii)";
  29. } else if ($affected < 0) {
  30. $taskErrors[] = "Nie udało się usunąć zasobu - nic nie zmieniono";
  31. }
  32. }
  33. break;
  34. }
  35. case 'FRM_ADD_ZASOB_URL':
  36. case 'FRM_ADD_ZASOB_GROUP':
  37. case 'FRM_ADD_ZASOB_COLUMN':
  38. case 'FRM_ADD_ZASOB': {
  39. if(V::get('DBG_NG', '', $_GET)){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">post (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($_POST);echo'</pre>';}
  40. $procesID = V::get('procesID', 0, $_GET, 'int');
  41. switch ($task) {
  42. case 'FRM_ADD_ZASOB_URL': $addZasobID = V::get('addZasobUrlID', 0, $_POST, 'int'); break;
  43. case 'FRM_ADD_ZASOB_GROUP': $addZasobID = V::get('addZasobGroupID', 0, $_POST, 'int'); break;
  44. case 'FRM_ADD_ZASOB_COLUMN': $addZasobID = V::get('addZasobColumnID', 0, $_POST, 'int'); break;
  45. default: $addZasobID = V::get('addZasobID', 0, $_POST, 'int');
  46. }
  47. $addPrzypadekID = V::get('addPrzypadekID', 0, $_POST, 'int');
  48. if ($procesID > 0 && $addZasobID > 0 && $addPrzypadekID > 0) {
  49. $addComment = V::get('addComment', '', $_POST);
  50. $db = DB::getDB();
  51. $sql_obj = new stdClass();
  52. $sql_obj->ID_PROCES = $procesID;
  53. $sql_obj->ID_ZASOB = $addZasobID;
  54. $sql_obj->ID_PRZYPADEK = $addPrzypadekID;
  55. $sql_obj->OPIS_ZASOB = $db->_($addComment);
  56. $sql_obj->SORT_PRIO = 0;
  57. // nowy wskaznik na koniec listy pod procesem
  58. $sql = "select max(cw.`SORT_PRIO`) as MAX_SORT_PRIO
  59. from `CRM_WSKAZNIK` as cw
  60. where
  61. cw.`ID_PROCES`='{$sql_obj->ID_PROCES}'
  62. ";
  63. $res = $db->query($sql);
  64. while ($r = $db->fetch($res)) {
  65. $sql_obj->SORT_PRIO = $r->MAX_SORT_PRIO + 1;
  66. }
  67. $new_id = $db->ADD_NEW_OBJ('CRM_WSKAZNIK', $sql_obj);
  68. if ($new_id > 0) {
  69. $taskMsgs[] = "Dodano zasób [{$addZasobID}] do procesu [{$procesID}]";
  70. } else {
  71. $taskErrors[] = "Nie udało się dodać zasobu";
  72. }
  73. }
  74. else if (!$addPrzypadekID) {
  75. $taskErrors[] = "Brak okreśłonego uprawnienia";
  76. }
  77. else if (!$addZasobID) {
  78. $taskErrors[] = "Brak numeru zasobu";
  79. }
  80. break;
  81. }
  82. case 'TYPESPECIAL': {
  83. $DBG = ('1' == V::get('DBG', '', $_REQUEST));
  84. header("Content-type: application/json");
  85. $fld = V::get('fld', '', $_GET);
  86. switch ($fld) {
  87. case 'editZasobID':
  88. case 'addZasobUrlID':
  89. case 'addZasobGroupID':
  90. case 'addZasobColumnID':
  91. case 'addZasobID': {
  92. Lib::loadClass('TypespecialVariable');
  93. $typeSpecialZasob = TypespecialVariable::getInstance(-1, '__ZASOB');
  94. $query = V::get('q', '', $_REQUEST);
  95. $rawRows = null;
  96. $jsonData = array();
  97. // _zasob_type
  98. $queryParams = array();
  99. if ('addZasobUrlID' == $fld) {
  100. $queryParams['zasob_type_in'] = 'URL';
  101. }
  102. else if ('addZasobGroupID' == $fld) {
  103. $queryParams['zasob_type_in'] = array('STANOWISKO', 'PODMIOT');
  104. }
  105. else if ('addZasobColumnID' == $fld) {
  106. $queryParams['zasob_type_in'] = 'KOMORKA';
  107. }
  108. $rows = $typeSpecialZasob->getValuesWithExports($query, $queryParams);
  109. if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">rows('.$query.') (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($rows);echo'</pre>';}
  110. foreach ($rows as $kID => $vItem) {
  111. $itemJson = new stdClass();
  112. $itemJson->id = $vItem->id;
  113. $itemJson->name = $vItem->param_out;
  114. if (!empty($vItem->exports)) {
  115. $itemJson->exports = $vItem->exports;
  116. }
  117. $jsonData[] = $itemJson;
  118. }
  119. echo json_encode($jsonData);
  120. break;
  121. }
  122. }
  123. exit;
  124. }
  125. case 'EDIT_WSKAZNIK_SAVE': {
  126. $procesID = V::get('procesID', 0, $_GET, 'int');
  127. $cw_id = V::get('cw_id', 0, $_GET, 'int');
  128. $editZasobID = V::get('editZasobID', 0, $_POST, 'int');
  129. $editPrzypadekID = V::get('editPrzypadekID', 0, $_POST, 'int');
  130. $editComment = V::get('editComment', '', $_POST);
  131. if (!$procesID || !$cw_id || !$editZasobID) {
  132. header('HTTP/1.0 406 Not Acceptable');
  133. echo "Wrong param proces ID or Wskaznik ID or Zasob ID!";
  134. exit;
  135. }
  136. $db = DB::getDB();
  137. if (!$db) {
  138. header('HTTP/1.0 406 Not Acceptable');
  139. echo "No DB!";
  140. exit;
  141. }
  142. $proces = $db->get_by_id('CRM_PROCES', $procesID);
  143. if (!$proces) {
  144. header('HTTP/1.0 406 Not Acceptable');
  145. echo "Proces not exists!";
  146. exit;
  147. }
  148. Lib::loadClass('ProcesHelper');
  149. $proces->_zasoby = ProcesHelper::get_wskazniki($proces->ID);
  150. if (!isset($proces->_zasoby[$cw_id])) {
  151. header('HTTP/1.0 406 Not Acceptable');
  152. echo "Wskaznik not exists!";
  153. exit;
  154. }
  155. $wskaznik = $proces->_zasoby[$cw_id];
  156. $sqlObj = new stdClass();
  157. $sqlObj->ID = $wskaznik->CW_ID;
  158. $toChange = false;
  159. if ($wskaznik->ID != $editZasobID) {
  160. $sqlObj->ID_ZASOB = $editZasobID;
  161. $toChange = true;
  162. }
  163. if ($wskaznik->ID_PRZYPADEK != $editPrzypadekID) {
  164. $sqlObj->ID_PRZYPADEK = $editPrzypadekID;
  165. $toChange = true;
  166. }
  167. if ($wskaznik->OPIS_ZASOB != $editComment) {
  168. $sqlObj->OPIS_ZASOB = $editComment;
  169. $toChange = true;
  170. }
  171. if (!$toChange) {
  172. echo 'Nie wprowadzono żadnych zmian.';
  173. }
  174. else {
  175. $ret = $db->UPDATE_OBJ('CRM_WSKAZNIK', $sqlObj);
  176. if ($ret < 0) {
  177. header('HTTP/1.0 406 Not Acceptable');
  178. echo "Wystąpiły błędy podczas zapisu zmian w bazie danych!";
  179. exit;
  180. }
  181. else if ($ret > 0) {
  182. //echo 'OK';
  183. }
  184. else {
  185. //echo 'Nie wprowadzono żadnych zmian.';
  186. }
  187. }
  188. // TODO: return json object wskaznik to fix layout without page reload
  189. header("Content-type: application/json");
  190. $data = new stdClass();
  191. $data->msg = "Zmiany wprowadzono pomyślnie";
  192. $data->wskaznik = $db->get_by_id('CRM_WSKAZNIK', $cw_id);
  193. if ($data->wskaznik->ID_ZASOB > 0) {
  194. $data->wskaznik->_zasob = $db->get_by_id('CRM_LISTA_ZASOBOW', $data->wskaznik->ID_ZASOB);
  195. }
  196. if ($data->wskaznik->ID_PRZYPADEK > 0) {
  197. $data->wskaznik->_przypadek = $db->get_by_id('CRM_PRZYPADEK', $data->wskaznik->ID_PRZYPADEK);
  198. }
  199. echo json_encode($data);
  200. exit;
  201. }
  202. case 'EDIT_WSKAZNIK': {
  203. $procesID = V::get('procesID', 0, $_GET, 'int');
  204. $cw_id = V::get('cw_id', 0, $_GET, 'int');
  205. if (!$procesID || !$cw_id) {
  206. header('HTTP/1.0 406 Not Acceptable');
  207. echo "Wrong param proces ID or Wskaznik ID!";
  208. exit;
  209. }
  210. $db = DB::getDB();
  211. if (!$db) {
  212. header('HTTP/1.0 406 Not Acceptable');
  213. echo "No DB!";
  214. exit;
  215. }
  216. $proces = $db->get_by_id('CRM_PROCES', $procesID);
  217. if (!$proces) {
  218. header('HTTP/1.0 406 Not Acceptable');
  219. echo "Proces not exists!";
  220. exit;
  221. }
  222. Lib::loadClass('ProcesHelper');
  223. $proces->_zasoby = ProcesHelper::get_wskazniki($proces->ID);
  224. if (!isset($proces->_zasoby[$cw_id])) {
  225. header('HTTP/1.0 406 Not Acceptable');
  226. echo "Wskaznik not exists!";
  227. exit;
  228. }
  229. $wskaznik = $proces->_zasoby[$cw_id];
  230. Lib::loadClass('TypespecialVariable');
  231. $typeSpecialZasob = TypespecialVariable::getInstance(-1, '__ZASOB');
  232. if (!$typeSpecialZasob) {
  233. header('HTTP/1.0 406 Not Acceptable');
  234. echo "TypeSpecial Zasob not exists!";
  235. exit;
  236. }
  237. ?>
  238. <form action="" method="POST" class="form conn_wsk-frm">
  239. <div class="control-group">
  240. <label class="control-label" for="editZasobID">Zasób</label>
  241. <div class="controls">
  242. <?php
  243. $fName = 'editZasobID';
  244. $fldParams = array();
  245. $fldParams['allowCreate'] = false;
  246. $fldParams['ajaxDataUrlBase'] = "index.php?FUNCTION_INIT=" . __FUNCTION__ . "&HEADER_NOT_INIT=YES&_task=TYPESPECIAL&fld={$fName}";
  247. //$fldParams['ajaxDataUrlBase'] .= "&DBG_TS=3";
  248. $tsValues = $typeSpecialZasob->getEditSelectedValuesByIds($tblId = null, $id = null, $fieldName = '', $fieldValue = $wskaznik->ID);
  249. $fldParams['typespecialValue'] = (!empty($tsValues))? reset($tsValues) : '';
  250. echo $typeSpecialZasob->showFormItem($tblID = -1, $fName, $selValue = $wskaznik->ID, $fldParams);
  251. ?>
  252. </div>
  253. </div>
  254. <div class="control-group">
  255. <label class="control-label" for="editPrzypadekID">Uprawnienia</label>
  256. <div class="controls">
  257. <?php
  258. $uprawnienia = array();
  259. $db = DB::getDB();
  260. $sql = "select p.* from `CRM_PRZYPADEK` as p ";
  261. $res = $db->query($sql);
  262. while ($r = $db->fetch($res)) {
  263. $uprawnienia[$r->ID] = "{$r->FORM_TREAT}: {$r->OPIS}";// {$r->NAZWA} | {$r->PYTANIE} |
  264. }
  265. ?>
  266. <select name="editPrzypadekID" style="width:366px;" size="6">
  267. <?php foreach($uprawnienia as $kId => $vPermLabel) : ?>
  268. <?php $sel = ($wskaznik->CW_ID_PRZYPADEK == $kId)? ' selected="selected"' : ''; ?>
  269. <option value="<?php echo $kId; ?>"<?php echo $sel; ?>><?php echo $vPermLabel; ?></option>
  270. <?php endforeach; ?>
  271. </select>
  272. </div>
  273. </div>
  274. <div class="control-group">
  275. <label class="control-label" for="editComment">Komentarz</label>
  276. <div class="controls">
  277. <textarea name="editComment" cols="80" rows="6" style="width:354px;"><?php echo $wskaznik->OPIS_ZASOB; ?></textarea>
  278. </div>
  279. </div>
  280. <div class="control-group">
  281. <div class="controls">
  282. <button type="submit" class="btn btn-primary">Zapisz</button>
  283. </div>
  284. </div>
  285. </form>
  286. <?php
  287. exit;
  288. }
  289. }
  290. SE_Layout::menu();
  291. Lib::loadClass('UserActivity');
  292. Lib::loadClass('ProcesHelper');
  293. /* TODO: permy do pokazania tej funkcji
  294. $zasobID = ProcesHelper::getZasobTableID('CRM_WSKAZNIK');
  295. if ($zasobID <= 0) {
  296. echo UserActivity::showListInContainer();
  297. return;
  298. }
  299. $zasobObj = ProcesHelper::getZasobTableInfo($zasobID);
  300. if (!$zasobObj) {
  301. echo '<div class="alert alert-error">' . "Zasob TABELA ID={$zasobID} nie istnieje" . '</div>';
  302. echo UserActivity::showSimpleList();
  303. return;
  304. }
  305. */
  306. $procesID = V::get('procesID', '', $_GET);
  307. if (!$procesID) {
  308. echo '<div class="alert alert-error">' . "Wrong param proces ID!" . '</div>';
  309. return;
  310. }
  311. $db = DB::getDB();
  312. $proces = $db->get_by_id('CRM_PROCES', $procesID);
  313. Lib::loadClass('ProcesHelper');
  314. $proces->_zasoby = ProcesHelper::get_wskazniki($proces->ID);
  315. Lib::loadClass('TypespecialVariable');
  316. $typeSpecialZasob = TypespecialVariable::getInstance(-1, '__ZASOB');
  317. $uprawnienia = array();
  318. $db = DB::getDB();
  319. $sql = "select p.* from `CRM_PRZYPADEK` as p ";
  320. $res = $db->query($sql);
  321. while ($r = $db->fetch($res)) {
  322. $uprawnienia[$r->ID] = "{$r->FORM_TREAT}: {$r->OPIS}";// {$r->NAZWA} | {$r->PYTANIE} |
  323. }
  324. ?>
  325. <style type="text/css">
  326. .conn_wsk {}
  327. .conn_wsk .conn_wsk-list {}
  328. .conn_wsk .conn_wsk-list .conn_wsk-list_item { line-height:22px; }
  329. .conn_wsk .conn_wsk-list .conn_wsk-list_item form { display:inline; margin:0; }
  330. .conn_wsk .conn_wsk-list_item-rmBtn,
  331. .conn_wsk .conn_wsk-list_item-editBtn { /*display:none;*/ opacity:0.3; margin:0; padding:0; border:none; }
  332. .conn_wsk .conn_wsk-list_item-rmBtn { margin:0 0 0 10px; }
  333. .conn_wsk .conn_wsk-list_item-editBtn { margin:0 0 0 10px; }
  334. .conn_wsk .conn_wsk-list_item:hover .conn_wsk-list_item-rmBtn,
  335. .conn_wsk .conn_wsk-list_item:hover .conn_wsk-list_item-editBtn { /*display:inline;*/ opacity:0.6; }
  336. .conn_wsk .conn_wsk-list_item .conn_wsk-list_item-rmBtn:hover,
  337. .conn_wsk .conn_wsk-list_item .conn_wsk-list_item-editBtn:hover { /*display:inline;*/ opacity:1; }
  338. .conn_wsk-frm {}
  339. .conn_wsk .conn_wsk-opisyShowBtn { padding:0 0 0 10px; font-size:12px; font-weight:normal; color:#08C; cursor:pointer; }
  340. .conn_wsk-list_item-desc,
  341. .conn_wsk-list_item-longDesc { display:none; }
  342. .opisyShow .conn_wsk-list_item-desc,
  343. .opisyShow .conn_wsk-list_item-longDesc { display:block; }
  344. .editWskModal-loading .modal-body { padding-left:40px; background:url(./icon/loading.gif) no-repeat left top; background-position:20px 20px; }
  345. </style>
  346. <div class="container conn_wsk">
  347. <h3>Edycja procesu</h3>
  348. <blockquote>
  349. <b>Proces [<?php echo $proces->ID; ?>]</b>: <?php echo $proces->TYPE; ?> <?php echo $proces->DESC; ?>
  350. <p><?php echo $proces->OPIS; ?></p>
  351. </blockquote>
  352. <?php if (!empty($taskErrors)) : ?>
  353. <div class="alert alert-error">
  354. <button type="button" class="close" data-dismiss="alert">×</button>
  355. <?php echo implode('<br>', $taskErrors); ?>
  356. </div>
  357. <?php endif; ?>
  358. <?php if (!empty($taskMsgs)) : ?>
  359. <div class="alert alert-success">
  360. <button type="button" class="close" data-dismiss="alert">×</button>
  361. <?php echo implode('<br>', $taskMsgs); ?>
  362. </div>
  363. <?php endif; ?>
  364. <h5>Przypisane zasoby <em>(<?php echo (!empty($proces->_zasoby))? count($proces->_zasoby) : 0; ?>)</em>: <span class="conn_wsk-opisyShowBtn" onclick="jQuery(this).parent().parent().toggleClass('opisyShow')">+/- opisy</span></h5>
  365. <ul class="conn_wsk-list">
  366. <?php if (!empty($proces->_zasoby)) : ?>
  367. <?php foreach ($proces->_zasoby as $vZasob) : ?>
  368. <li class="conn_wsk-list_item conn_wsk-list_item-<?php echo $vZasob->CW_ID; ?>">
  369. <span class="conn_wsk-list_item-title"><?php echo $vZasob->CP_FORM_TREAT; ?> [<?php echo $vZasob->ID; ?>] <?php echo $vZasob->TYPE; ?> <b><?php echo $vZasob->DESC; ?></b></span>
  370. <form action="" method="POST" class="form-inline conn_wsk-list_item-frm-rm">
  371. <input type="hidden" name="_task" value="FRM_RM_ZASOB">
  372. <button name="rmWskID" value="<?php echo $vZasob->CW_ID; ?>" class="btn-link btn-small conn_wsk-list_item-rmBtn" title="usuń zasób"><i class="icon icon-remove"></i></button>
  373. </form>
  374. <p class="conn_wsk-list_item-desc">
  375. <?php if (!empty($vZasob->OPIS)) : ?>
  376. <?php echo $vZasob->OPIS; ?>
  377. <?php endif; ?>
  378. </p>
  379. <p class="conn_wsk-list_item-longDesc">
  380. <?php if (!empty($vZasob->OPIS_ZASOB)) : ?>
  381. <?php echo $vZasob->OPIS_ZASOB; ?>
  382. <?php endif; ?>
  383. </p>
  384. </li>
  385. <?php endforeach; ?>
  386. <?php endif; ?>
  387. </ul>
  388. <?php if ($typeSpecialZasob) : ?>
  389. <br>
  390. <div class="tabbable tabs-left">
  391. <ul class="nav nav-tabs">
  392. <li style="background:#ddd;"><b style="display:block;margin:0;padding:8px 13px;">Dodaj:</b></li>
  393. <li><a href="#tab-add-stanowisko" data-toggle="tab">Stanowisko</a></li>
  394. <li><a href="#tab-add-column" data-toggle="tab">Komórkę</a></li>
  395. <li><a href="#tab-add-url" data-toggle="tab">Narzędzie</a></li>
  396. <li class="active"><a href="#tab-add-zasob" data-toggle="tab">Inny zasób</a></li>
  397. </ul>
  398. <div class="tab-content">
  399. <div class="tab-pane" id="tab-add-stanowisko">
  400. <form action="" method="POST" class="form-horizontal conn_wsk-frm">
  401. <input type="hidden" name="_task" value="FRM_ADD_ZASOB_GROUP">
  402. <div class="control-group">
  403. <label class="control-label" for="addZasobGroupID">Stanowisko</label>
  404. <div class="controls">
  405. <?php
  406. $fName = 'addZasobGroupID';
  407. $fldParams = array();
  408. $fldParams['allowCreate'] = false;
  409. $fldParams['ajaxDataUrlBase'] = "index.php?FUNCTION_INIT=" . __FUNCTION__ . "&HEADER_NOT_INIT=YES&_task=TYPESPECIAL&fld={$fName}";
  410. //$fldParams['ajaxDataUrlBase'] .= "&DBG_TS=3";
  411. echo $typeSpecialZasob->showFormItem($tblID = -1, $fName, $selValue = '', $fldParams);
  412. ?>
  413. </div>
  414. </div>
  415. <div class="control-group">
  416. <label class="control-label" for="addPrzypadekID">Uprawnienia</label>
  417. <div class="controls">
  418. <select name="addPrzypadekID" style="width:366px;" size="6">
  419. <?php foreach($uprawnienia as $kId => $vPermLabel) : ?>
  420. <option value="<?php echo $kId; ?>"><?php echo $vPermLabel; ?></option>
  421. <?php endforeach; ?>
  422. </select>
  423. </div>
  424. </div>
  425. <div class="control-group">
  426. <label class="control-label" for="addComment">Komentarz</label>
  427. <div class="controls">
  428. <textarea name="addComment" cols="80" rows="6" style="width:354px;"></textarea>
  429. </div>
  430. </div>
  431. <div class="control-group">
  432. <div class="controls">
  433. <button type="submit" class="btn">dodaj</button>
  434. </div>
  435. </div>
  436. </form>
  437. </div>
  438. <div class="tab-pane" id="tab-add-column">
  439. <form action="" method="POST" class="form-horizontal conn_wsk-frm">
  440. <input type="hidden" name="_task" value="FRM_ADD_ZASOB_COLUMN">
  441. <div class="control-group">
  442. <label class="control-label" for="addZasobColumnID">Komórka</label>
  443. <div class="controls">
  444. <?php
  445. $fName = 'addZasobColumnID';
  446. $fldParams = array();
  447. $fldParams['allowCreate'] = false;
  448. $fldParams['ajaxDataUrlBase'] = "index.php?FUNCTION_INIT=" . __FUNCTION__ . "&HEADER_NOT_INIT=YES&_task=TYPESPECIAL&fld={$fName}";
  449. //$fldParams['ajaxDataUrlBase'] .= "&DBG_TS=3";
  450. echo $typeSpecialZasob->showFormItem($tblID = -1, $fName, $selValue = '', $fldParams);
  451. ?>
  452. </div>
  453. </div>
  454. <div class="control-group">
  455. <label class="control-label" for="addPrzypadekID">Uprawnienia</label>
  456. <div class="controls">
  457. <select name="addPrzypadekID" style="width:366px;" size="6">
  458. <?php foreach($uprawnienia as $kId => $vPermLabel) : ?>
  459. <option value="<?php echo $kId; ?>"><?php echo $vPermLabel; ?></option>
  460. <?php endforeach; ?>
  461. </select>
  462. </div>
  463. </div>
  464. <div class="control-group">
  465. <label class="control-label" for="addComment">Komentarz</label>
  466. <div class="controls">
  467. <textarea name="addComment" cols="80" rows="6" style="width:354px;"></textarea>
  468. </div>
  469. </div>
  470. <div class="control-group">
  471. <div class="controls">
  472. <button type="submit" class="btn">dodaj</button>
  473. </div>
  474. </div>
  475. </form>
  476. </div>
  477. <div class="tab-pane" id="tab-add-url">
  478. <form action="" method="POST" class="form-horizontal conn_wsk-frm">
  479. <input type="hidden" name="_task" value="FRM_ADD_ZASOB_URL">
  480. <div class="control-group">
  481. <label class="control-label" for="addZasobUrlID">Narzędzie</label>
  482. <div class="controls">
  483. <?php
  484. $fName = 'addZasobUrlID';
  485. $fldParams = array();
  486. $fldParams['allowCreate'] = false;
  487. $fldParams['ajaxDataUrlBase'] = "index.php?FUNCTION_INIT=" . __FUNCTION__ . "&HEADER_NOT_INIT=YES&_task=TYPESPECIAL&fld={$fName}";
  488. //$fldParams['ajaxDataUrlBase'] .= "&DBG_TS=3";
  489. echo $typeSpecialZasob->showFormItem($tblID = -1, $fName, $selValue = '', $fldParams);
  490. ?>
  491. </div>
  492. </div>
  493. <div class="control-group">
  494. <label class="control-label" for="addPrzypadekID">Uprawnienia</label>
  495. <div class="controls">
  496. <select name="addPrzypadekID" style="width:366px;" size="6">
  497. <?php foreach($uprawnienia as $kId => $vPermLabel) : ?>
  498. <option value="<?php echo $kId; ?>"><?php echo $vPermLabel; ?></option>
  499. <?php endforeach; ?>
  500. </select>
  501. </div>
  502. </div>
  503. <div class="control-group">
  504. <label class="control-label" for="addComment">Komentarz</label>
  505. <div class="controls">
  506. <textarea name="addComment" cols="80" rows="6" style="width:354px;"></textarea>
  507. </div>
  508. </div>
  509. <div class="control-group">
  510. <div class="controls">
  511. <button type="submit" class="btn">dodaj</button>
  512. </div>
  513. </div>
  514. </form>
  515. </div>
  516. <div class="tab-pane active" id="tab-add-zasob">
  517. <form action="" method="POST" class="form-horizontal conn_wsk-frm">
  518. <input type="hidden" name="_task" value="FRM_ADD_ZASOB">
  519. <div class="control-group">
  520. <label class="control-label" for="addZasobID">Zasób</label>
  521. <div class="controls">
  522. <?php
  523. $fName = 'addZasobID';
  524. $fldParams = array();
  525. $fldParams['allowCreate'] = false;
  526. $fldParams['ajaxDataUrlBase'] = "index.php?FUNCTION_INIT=" . __FUNCTION__ . "&HEADER_NOT_INIT=YES&_task=TYPESPECIAL&fld={$fName}";
  527. //$fldParams['ajaxDataUrlBase'] .= "&DBG_TS=3";
  528. echo $typeSpecialZasob->showFormItem($tblID = -1, $fName, $selValue = '', $fldParams);
  529. ?>
  530. </div>
  531. </div>
  532. <div class="control-group">
  533. <label class="control-label" for="addPrzypadekID">Uprawnienia</label>
  534. <div class="controls">
  535. <select name="addPrzypadekID" style="width:366px;" size="6">
  536. <?php foreach($uprawnienia as $kId => $vPermLabel) : ?>
  537. <option value="<?php echo $kId; ?>"><?php echo $vPermLabel; ?></option>
  538. <?php endforeach; ?>
  539. </select>
  540. </div>
  541. </div>
  542. <div class="control-group">
  543. <label class="control-label" for="addComment">Komentarz</label>
  544. <div class="controls">
  545. <textarea name="addComment" cols="80" rows="6" style="width:354px;"></textarea>
  546. </div>
  547. </div>
  548. <div class="control-group">
  549. <div class="controls">
  550. <button type="submit" class="btn">dodaj</button>
  551. </div>
  552. </div>
  553. </form>
  554. </div>
  555. </div>
  556. </div>
  557. <?php endif; ?>
  558. </div>
  559. <!-- Modal -->
  560. <div id="editWskModal" class="modal hide fade editWskModal-loading" tabindex="-1" role="dialog" aria-labelledby="editWskModalLabel" aria-hidden="true">
  561. <div class="modal-header">
  562. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
  563. <h3 id="editWskModalLabel">Edycja wskaźnika</h3>
  564. </div>
  565. <div class="modal-body">
  566. <p>One fine body...</p>
  567. </div>
  568. <!--
  569. <div class="modal-footer">
  570. <button class="btn" data-dismiss="modal" aria-hidden="true">Anuluj</button>
  571. <button class="btn btn-primary">Zapisz</button>
  572. </div>
  573. -->
  574. </div>
  575. <script>
  576. jQuery(document).ready(function() {
  577. jQuery('.conn_wsk-list_item-rmBtn').each(function(ind, n) {
  578. jQuery(n).click(function(){
  579. if (!confirm('Czy na pewno chcesz usunąć ten wskaźnik?')) {
  580. return false;
  581. }
  582. });
  583. var btn = jQuery('<button class="btn-link btn-small conn_wsk-list_item-editBtn" title="edytuj wskaźnik"><i class="icon icon-edit"></i></button>');
  584. btn.data('cw_id', n.value);
  585. btn.on('click', function(e) {
  586. e.preventDefault();
  587. e.stopPropagation();
  588. var trg = jQuery(event.currentTarget),
  589. cw_id = trg.data('cw_id');
  590. if (cw_id > 0) {
  591. var modal = jQuery('#editWskModal');
  592. modal.addClass('editWskModal-loading');
  593. modal.modal();
  594. jQuery.ajax({
  595. data: null,
  596. type: "GET",
  597. url: 'index.php?FUNCTION_INIT=<?php echo __FUNCTION__; ?>&HEADER_NOT_INIT=YES&_task=EDIT_WSKAZNIK&procesID=<?php echo $proces->ID; ?>&cw_id=' + cw_id,
  598. })
  599. .done(function(data, textStatus, jqXHR){
  600. modal.find('.modal-body').html(data);
  601. modal.find('.modal-body').find('form').on('submit', function() {
  602. var frm = jQuery(this);
  603. jQuery.ajax({
  604. data: frm.serialize(),
  605. type: "POST",
  606. dataType: 'json',
  607. url: 'index.php?FUNCTION_INIT=<?php echo __FUNCTION__; ?>&HEADER_NOT_INIT=YES&_task=EDIT_WSKAZNIK_SAVE&procesID=<?php echo $proces->ID; ?>&cw_id=' + cw_id
  608. })
  609. .done(function(data, textStatus, jqXHR){
  610. if (data.msg) {
  611. modal.find('.modal-body').html('<div class="alert alert-success">' + data.msg + '</div>');
  612. } else {
  613. modal.find('.modal-body').html(data);
  614. }
  615. if (data.wskaznik) {
  616. var trgWrap = jQuery('.conn_wsk-list_item-' + cw_id),
  617. trgTitle = trgWrap.find('.conn_wsk-list_item-title'),
  618. trgDesc = trgWrap.find('.conn_wsk-list_item-desc'),
  619. trgZasobDesc = trgWrap.find('.conn_wsk-list_item-longDesc')
  620. ;
  621. if (trgTitle && trgTitle.length > 0) {
  622. var outTrgTitle = '';
  623. if (undefined !== data.wskaznik._przypadek) {
  624. if (undefined !== data.wskaznik._przypadek.FORM_TREAT) {
  625. outTrgTitle += data.wskaznik._przypadek.FORM_TREAT + ' ';
  626. }
  627. }
  628. if (undefined !== data.wskaznik._zasob) {
  629. if (undefined !== data.wskaznik._zasob.ID) outTrgTitle += '[' + data.wskaznik._zasob.ID + '] ';
  630. if (undefined !== data.wskaznik._zasob.TYPE) outTrgTitle += data.wskaznik._zasob.TYPE + ' ';
  631. if (undefined !== data.wskaznik._zasob.DESC) outTrgTitle += '<b>' + data.wskaznik._zasob.DESC + '</b>';
  632. }
  633. trgTitle.html(outTrgTitle);
  634. }
  635. if (trgDesc && trgDesc.length > 0) {
  636. if (undefined !== data.wskaznik._zasob) {
  637. if (undefined !== data.wskaznik._zasob.OPIS) {
  638. trgDesc.html(data.wskaznik._zasob.OPIS);
  639. }
  640. }
  641. }
  642. if (trgZasobDesc && trgZasobDesc.length > 0) {
  643. if (undefined !== data.wskaznik.OPIS_ZASOB) {
  644. trgZasobDesc.html(data.wskaznik.OPIS_ZASOB);
  645. }
  646. }
  647. }
  648. })
  649. .fail(function(jqXHR){// jqXHR.fail(function( jqXHR, textStatus, errorThrown ) {});
  650. var txt = jqXHR.responseText || 'Error';
  651. modal.find('.modal-body').html('<div class="alert alert-error">' + txt + '</div>');
  652. })
  653. return false;
  654. });
  655. })
  656. .fail(function(jqXHR){// jqXHR.fail(function( jqXHR, textStatus, errorThrown ) {});
  657. var txt = jqXHR.responseText || 'Error';
  658. modal.find('.modal-body').html('<div class="alert alert-error">' + txt + '</div>');
  659. })
  660. .always(function(data, textStatus, jqXHR) {
  661. modal.removeClass('editWskModal-loading');
  662. });
  663. }
  664. });
  665. btn.insertBefore(n);
  666. });
  667. });
  668. </script>
  669. <?php
  670. }