ProcesLogStepView.php 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. <?php
  2. Lib::loadClass('View');
  3. class ProcesLogStepView extends View {
  4. /**
  5. * @param proces_log - ProcesLogModel
  6. * @param proces_init - raw Proces object - main PROCES_INIT
  7. * @param proces_step - raw Proces object - current PROCES
  8. * @param wskazniki - array of raw objects from ProcesHelper::get_wskazniki
  9. * @param current_edit - TODO: class of current edit form view!
  10. * @param next_steps - array of next steps, if empty then END
  11. */
  12. function render() {
  13. $modelLog = $this->get('proces_log');
  14. $proces_init = $this->get('proces_init');
  15. $proces_step = $this->get('proces_step');
  16. $wskazniki = $this->get('wskazniki');
  17. $next_steps = $this->get('next_steps');
  18. $current_edit = $this->get('current_edit');
  19. $out = '';
  20. if ($title_out = $this->get('title')) {
  21. $out .= '<h1>' . $title_out . '</h1>' . "\n";
  22. }
  23. $current_edit_wsk_ids = array();
  24. if ($current_edit) {
  25. $current_edit_wsk_ids = $current_edit->get_wsk_ids();
  26. }
  27. $out = '';
  28. $out .= '<script type="text/javascript">' . "
  29. function showHideOpis(n) {
  30. var p=n.nextSibling;
  31. if (p.style.display == 'none') {
  32. p.style.display = '';
  33. n.innerHTML = '- ' + n.innerHTML;
  34. } else {
  35. p.style.display = 'none';
  36. if (n.innerHTML.substring(0, 2) == '- ') {
  37. n.innerHTML = n.innerHTML.substring(2);
  38. }
  39. }
  40. return false;
  41. }
  42. function showHideWskazniki(n) {
  43. var p=jQuery(n).parents('li:first')
  44. if (!p) return false;
  45. if (p.hasClass('hide-wskazniki')) {
  46. p.removeClass('hide-wskazniki');
  47. n.innerHTML = '- ' + n.innerHTML;
  48. } else {
  49. p.addClass('hide-wskazniki');
  50. if (n.innerHTML.substring(0, 2) == '- ') {
  51. n.innerHTML = n.innerHTML.substring(2);
  52. }
  53. }
  54. return false;
  55. }
  56. if (typeof(resetForm) === 'undefined') {
  57. function resetForm(n){
  58. for (i = 0; i < n.form.elements.length; i++) {
  59. switch (n.form.elements[i].type.toLowerCase()){
  60. case 'text':
  61. n.form.elements[i].value='%';
  62. break;
  63. case 'select-one':
  64. // n.form.elements[i].options[0].selected = true;
  65. // break;
  66. case 'select-multiple':
  67. for (z = 0; z < n.form.elements[i].options.length; z++) {
  68. n.form.elements[i].options[z].selected = false;
  69. if (n.form.elements[i].options[z].hasAttribute('selected')) {
  70. n.form.elements[i].options[z].removeAttribute('selected');
  71. }
  72. }
  73. // select first element
  74. n.form.elements[i].options[0].selected = true;
  75. n.form.elements[i].options[0].setAttribute('selected', 'selected');
  76. break;
  77. default:
  78. }
  79. }
  80. return false;
  81. }
  82. }
  83. " . '</script>' . "\n";
  84. $out .= '<style type="text/css">' . "
  85. .proces-info .selected p {background-color:#FFEFEF;}
  86. .proces-info .selected .btn-box {background-color:#CC7575;}
  87. .tbl-view .tbl-filters .i {width:90%;}
  88. .tbl-view .tbl-head th {font-size:x-small;}
  89. " . '</style>' . "\n";
  90. $out .= '<div class="proces-info">';
  91. $out .= '<div class="header">';
  92. $out .= App::link("Proces Log <em>(" . $modelLog->get('ID') . ")</em>", array('_log_id'=>$modelLog->get('ID'))) . ". PROCES_INIT: " . '<b style="padding:0 2px; background:#FF4646; color:#fff;">' . $modelLog->get('ID_PROCES_INIT') . '</b>';
  93. $out .= " " . '<span style="color:red">' . $proces_init->DESC . '</span>';
  94. if ($proces_init->OPIS != '') {
  95. $out .= ' <a href="#" onclick="' . "return showHideOpis(this)" . '">' . "opis" . '</a>';
  96. $out .= '<span class="a-hide" style="display:none;">' . '<br />' . $proces_init->OPIS . '</span>';
  97. }
  98. $out .= '</div>' . "\n";// .header
  99. $out .= '<div class="cnt">' . "\n";
  100. if ($modelLog->get('ID_STEP') > 0 && $modelLog->get('ID_STEP') != $modelLog->get('ID_PROCES_INIT')) {
  101. $out .= '<div class="tree-wrap">' . "\n";
  102. $out .= '<ul><li class="last hide-wskazniki"><dl class="has-no-children">';
  103. $out .= '<dt>';
  104. $out .= '<div class="has_wsk">';
  105. $out .= '<b class="item_id btn-box">' . $modelLog->get('ID_STEP') . '</b>';
  106. $out .= '<span class="desc">';
  107. $out .= '<b>' . $proces_step->DESC . '</b>';
  108. $out .= ' <a href="#" onclick="' . "return showHideWskazniki(this)" . '" class="btn btn-green">' . "wskazniki" . '</a>';
  109. if ($proces_step->OPIS != '') {
  110. $out .= ' <a href="#" onclick="' . "return showHideOpis(this)" . '" class="btn">' . "opis" . '</a>';
  111. $out .= '<span class="a-hide" style="display:none;background:#f9f9f9;">' . '<br />' . $proces_step->OPIS . '</span>';
  112. }
  113. $out .= '</span>';// .desc
  114. $out .= '</div>';// .has_wsk
  115. $out .= '</dt>';
  116. $out .= '<dd><ul>' . "\n";
  117. // wskazniki
  118. $last_key_id = end(array_keys($wskazniki));
  119. foreach ($wskazniki as $k_key_id => $v_wsk) {
  120. $cls = array();
  121. if ($k_key_id == $last_key_id) $cls []= 'last';
  122. if (in_array($k_key_id, $current_edit_wsk_ids)) $cls []= 'selected';
  123. $out .= '<li' . ((!empty($cls))? ' class="'.implode(' ', $cls).'"' : '') . '><p>';
  124. $out .= '<span class="btn-box btn-box-silver">' . $v_wsk->CW_ID . '</span>';
  125. $out .= '<span class="green">' . "[" . $v_wsk->ID . "]" . '</span>';
  126. $out .= '<i title="' . $v_wsk->CP_PYTANIE . '">' . $v_wsk->CP_FORM_TREAT . '</i>';
  127. $out .= " " . $v_wsk->TYPE . " ";
  128. $out .= '<b>' . $v_wsk->DESC . '</b>';
  129. $out .= " " . '<span class="green">' . $v_wsk->OPIS . '</span>';
  130. $out .= " " . '<span style="color:#000">' . $v_wsk->OPIS_ZASOB . '</span>';
  131. $out .= '</p></li>';
  132. }
  133. $out .= '</ul></dd>';
  134. $out .= '</dl></li></ul>';
  135. $out .= '</div>' . "\n";// .tree-wrap
  136. } else if (!empty($wskazniki)) {
  137. $out .= '<div class="tree-wrap">' . "\n";
  138. $out .= '<ul>' . "\n";
  139. // wskazniki
  140. $last_key_id = end(array_keys($wskazniki));
  141. foreach ($wskazniki as $k_key_id => $v_wsk) {
  142. $out .= '<li' . (($k_key_id == $last_key_id)? ' class="last"' : '') . '>';
  143. $out .= '<span class="btn-box btn-box-silver">' . $v_wsk->CW_ID . '</span>';
  144. $out .= '<span class="green">' . "[" . $v_wsk->ID . "]" . '</span>';
  145. $out .= '<i title="' . $v_wsk->CP_PYTANIE . '">' . $v_wsk->CP_FORM_TREAT . '</i>';
  146. $out .= " " . $v_wsk->TYPE . " ";
  147. $out .= '<b>' . $v_wsk->DESC . '</b>';
  148. $out .= " " . '<span class="green">' . $v_wsk->OPIS . '</span>';
  149. $out .= " " . '<span style="color:#000">' . $v_wsk->OPIS_ZASOB . '</span>';
  150. $out .= '</li>';
  151. }
  152. $out .= '</ul>';
  153. $out .= '</div>' . "\n";// .tree-wrap
  154. }
  155. $out .= '</div>' . "\n";// .cnt
  156. $out .= '</div>' . "\n";// .proces-info
  157. if ($modelLog->get('TYPE') == 'END') {
  158. $out .= '<div class="next-steps">';
  159. $out .= '<div class="header">' . "Proces zosta³ zakoñczony" . '</div>';
  160. $out .= '<div class="cnt">';
  161. $out .= '';// TODO: link?
  162. $out .= '</div>';// .cnt
  163. $out .= '</div>' . "\n";// .next-steps
  164. }
  165. else {
  166. // current edit form
  167. $out .= '<div class="current-edit">';
  168. if ($current_edit) {
  169. $current_edit->add_hidden_field("task", "PROCES_LOG");
  170. $current_edit->add_hidden_field("function_init", "fun_PROCES_STEP_SAVE");
  171. $out .= $current_edit->form();
  172. } else {
  173. $out .= '<p>' . "Brak zdefiniowanych akcji w tym kroku - mo¿na przej¶æ do nastêpnego." . '</p>';
  174. }
  175. $out .= '</div>' . "\n";// .current-edit
  176. // next steps
  177. $out .= '<div class="next-steps">';
  178. $out .= '<div class="header">' . "Przejd¼ do nastêpnego kroku:" . '</div>';
  179. $out .= '<div class="cnt">';
  180. $out .= '<ul>';
  181. foreach ($next_steps as $k => $v_next_step_link) {
  182. $out .= '<li>' . $v_next_step_link . '</li>';
  183. }
  184. $out .= '</ul>';
  185. $out .= '</div>';// .cnt
  186. $out .= '</div>' . "\n";// .next-steps
  187. }
  188. $out .= '<br /><br />';
  189. return $out;
  190. }
  191. }