zasob.php 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878
  1. <?php
  2. function task_CRM_LISTA_ZASOBOW_test() {
  3. User_procesy5_check_access();
  4. $tbl = 'CRM_LISTA_ZASOBOW';
  5. //Column::init($tbl, true);// $tbl, force = true
  6. $tbl_conf = Column::getInstance($tbl);
  7. if (!$tbl_conf) {
  8. echo'<p class="red">'."Brak konfiguracji dla ".$tbl."!".'</p>';
  9. return;
  10. }
  11. $visible_cols = $tbl_conf->getVisibleFieldList();
  12. Lib::loadClass('Data_Source');
  13. Lib::loadClass('Table_View');
  14. $data_source = new Data_Source();// object cols, types, perms?; TODO: Data_Source, Data_Source_Proces, Data_Source_Zasob
  15. $data_source->set_table('CRM_LISTA_ZASOBOW');
  16. $data_source->set_cols($visible_cols);
  17. // set types and perms
  18. foreach ($visible_cols as $field_name) {
  19. $data_source->set_field_sql_type($field_name, $tbl_conf->type($field_name));
  20. $data_source->set_field_perm($field_name, $tbl_conf->perm($field_name));
  21. }
  22. //echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;">tbl_source: ';print_r($tbl_source);echo'</pre>';
  23. $tbl_view = new Table_View('tblView' . 'CRM_LISTA_ZASOBOW', $data_source);
  24. $tbl_view->set_base_url_params(array('task'=>App::get_task()));
  25. //echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;">tbl_view: ';print_r($tbl_view);echo'</pre>';
  26. $tbl_view->set_param('show_search', true);
  27. $tbl_view->set_param('url_param_source', $_GET);
  28. echo $tbl_view->to_html();
  29. }
  30. /**
  31. * @param $_GET['EDIT'] - ID rekordu do edycji (inline)
  32. * @param $_GET['EDIT_ID'] - ID rekordu do edycji (inline)
  33. */
  34. function task_CRM_LISTA_ZASOBOW() {
  35. User_procesy5_check_access();
  36. $_GET['ADM_AREA'] = V::get('ADM_AREA', "BN%", $_GET);
  37. $_GET['EDIT'] = V::get('EDIT', 0, $_GET, 'int');
  38. if (($edit_id = V::get('EDIT_ID', 0, $_GET, 'int')) > 0) {
  39. $_GET['EDIT'] = $edit_id;
  40. }
  41. $tbl = 'CRM_LISTA_ZASOBOW';
  42. //Column::init($tbl, true);// $tbl, force = true
  43. $tbl_conf = Column::getInstance($tbl);
  44. if (!$tbl_conf) {
  45. echo'<p class="red">'."Brak konfiguracji dla ".$tbl."!".'</p>';
  46. return;
  47. }
  48. $visible_cols = $tbl_conf->getVisibleFieldList();
  49. // form decorators:
  50. $tbl_search_params = array();
  51. $tbl_search_params['ID'] = 'ID';
  52. $tbl_search_params['PARENT_ID'] = 'P_ID';
  53. $tbl_search_params['PARENT_ID_ACCESS'] = 'P_ID2';
  54. $tbl_search_params['PARENT_ID_MAP'] = 'P_ID3';
  55. $tbl_search_params['ALIAS_ID'] = 'ALIAS_ID';
  56. $tbl_search_params['TYPE'] = 'TYPE';
  57. $tbl_search_params['DESC'] = 'DESC';
  58. $tbl_search_params['DESC_PL'] = 'DESC_PL';
  59. $tbl_search_params['OPIS'] = 'OPIS';
  60. $tbl_search_params['A_STATUS'] = 'A_STATUS';
  61. $tbl_search_params['L_APPOITMENT_USER'] = 'L_APPOITMENT_USER';
  62. $tbl_search_params['L_APPOITMENT_DATE'] = 'L_APPOITMENT_DATE';
  63. $tbl_search_params['L_APPOITMENT_INFO'] = 'L_APPOITMENT_INFO';
  64. $tbl_search_params['LOCALIZATION_INCLUDE'] = 'LOCALIZATION_INCLUDE';
  65. $tbl_search_params['A_RECORD_CREATE_AUTHOR'] = 'A_RECORD_CREATE_AUTHOR';
  66. $tbl_search_params['A_RECORD_CREATE_DATE'] = 'A_RECORD_CREATE_DATE';
  67. $tbl_search_params['A_RECORD_UPDATE_AUTHOR'] = 'A_RECORD_UPDATE_AUTHOR';
  68. $tbl_search_params['A_RECORD_UPDATE_DATE'] = 'A_RECORD_UPDATE_DATE';
  69. $tbl_search_params['EXPORT_PARAM'] = 'EXPORT_PARAM';
  70. Lib::loadClass('FilterLast');
  71. $filter_last = new FilterLast( $_REQUEST, $tbl, 'session');
  72. $filter_last->add_filter( 'last_id', array('filtr_id','filtr_search_id','ID','EDIT'), "Ostatnio uzywane ID", 'int' );
  73. $filter_last->_save_args();// save args from request
  74. {// TABLE - Filter
  75. $tbl = 'CRM_LISTA_ZASOBOW';
  76. $tbl_filter = new stdClass();
  77. $tbl_filter->key = 'tbl-'.$tbl;
  78. $tbl_filter->filters = array();
  79. // TODO: stronicowanie $tbl_filter->filters: _page_nr, _limit, _total (need sql - only after change params)
  80. // read args from session, or get dafault values
  81. foreach ($tbl_search_params as $k => $req_field_name) {
  82. $tbl_filter->filters[$req_field_name] = V::get($req_field_name, '%', $_SESSION[$tbl_filter->key]);
  83. }//end foreach
  84. // read args from $_GET if isset
  85. foreach ($tbl_search_params as $k => $req_field_name) {
  86. if (isset($_GET[$req_field_name])) {
  87. $tbl_filter->filters[$req_field_name] = $_GET[$req_field_name];
  88. }
  89. }//end foreach
  90. // save args in session and $_GET
  91. foreach ($tbl_filter->filters as $req_field_name => $v) {
  92. $_SESSION[$tbl_filter->key][$req_field_name] = $v;
  93. $_GET[$req_field_name] = $v;
  94. }//end foreach
  95. echo'<div style="border:1px solid red; display:none;">';
  96. foreach ($tbl_filter->filters as $req_field_name => $v) {
  97. echo'<br />arg['.$req_field_name.'] = '.$v;
  98. }//end foreach
  99. echo'</div>';
  100. }// TABLE - Filter
  101. {// TREE - Filter
  102. $tbl = 'CRM_LISTA_ZASOBOW';
  103. $tree_zasoby_filter = get_filter_for_table( $tbl );
  104. $tree_zasoby_filter->set_trash( 'filtr_id', -1 );
  105. {// zapisz stan - ajax function to save filters stan and opened tree nodes, etc.
  106. $filtr_ses_key = $tree_zasoby_filter->_key;
  107. $cookie_key = 'TREE_'.$tbl;
  108. $profile_key = 'Filtr_'.$filtr_ses_key;
  109. if (V::get('save_profile', '', $_REQUEST)) {
  110. $profile_val = array();
  111. $profile_val['filtr'] = $_SESSION[$filtr_ses_key];
  112. $profile_val['tree'] = $_COOKIE[$cookie_key];// cookie key from Tree class - 'TREE_'. $tbl @see __construct
  113. User::setProfile($profile_key, $profile_val);
  114. $ret = User::saveProfile();
  115. }
  116. else if (V::get('load_profile', '', $_REQUEST)) {
  117. //User::loadProfile();// proile is loaded in USERS_COLUMN_INIT after login
  118. $profile_val = User::getProfile($profile_key);
  119. $_COOKIE[$cookie_key] = $profile_val['tree'];
  120. echo'<script type="text/javascript">'."
  121. jQuery(document).ready(function(){
  122. jQuery.cookie('".$cookie_key."','" . $_COOKIE[$cookie_key] . "');
  123. });
  124. ".'</script>';
  125. $_SESSION[$filtr_ses_key] = $profile_val['filtr'];
  126. $tree_zasoby_filter->_read_args( true );// force load args from session
  127. }
  128. }// zapisz stan - ajax function to save filters stan and opened tree nodes, etc.
  129. $tree_zasoby_filter->_save_args();// force save_args (executet at the end of show_filters)
  130. echo'<div style="border:1px solid red; display:none;">';
  131. foreach ($tree_zasoby_filter->filters as $arg => $v) {
  132. echo'<br />arg['.$arg.'] = '.$tree_zasoby_filter->get_arg($arg);
  133. }//end foreach
  134. echo'</div>';
  135. }// TREE - Filter
  136. echo'<h1>';
  137. echo App::link("Zasoby", array('task'=>App::get_task(), 'filtr_id'=>''));
  138. if ($tree_zasoby_filter->is_trash()) {//$_GET['filtr_id'] == -1) {
  139. echo ' &raquo; '."Kosz";
  140. echo " " . App::link("czyść", array('task'=>App::get_task(), 'function_init'=>"fun_CRM_LISTA_ZASOBOW_clean_trash"), array('title'=>"Ustaw status rekord￳w w koszu na DELETED", 'class'=>'btn-p5', 'style'=>'font-size:13px;'));
  141. } else if ($tree_zasoby_filter->get_arg('filtr_id') > 0) {//$_GET['filtr_id'] > 0) {
  142. echo ' &raquo; '."Zasob [".$tree_zasoby_filter->get_arg('filtr_id')."]";
  143. }
  144. echo'</h1>';
  145. $userAcl = User::getAcl();
  146. $tblAcl = $userAcl->getTableAcl(ProcesHelper::getZasobTableID('CRM_LISTA_ZASOBOW'));
  147. if($tblAcl)
  148. if($tblAcl->hasFieldPerm($tblAcl->getFieldIdByName('ID'),'R')) {
  149. echo App::link("Pokaz Tabele", "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=".ProcesHelper::getZasobTableID('CRM_LISTA_ZASOBOW'));
  150. echo "<br>".App::link("Dodaj nowy rekord", "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=".ProcesHelper::getZasobTableID('CRM_LISTA_ZASOBOW')."#CREATE");
  151. } else {
  152. if (!$_SESSION['HIDE_ZASOBY']) {
  153. echo App::link("Ukryj Tabele", "?task=CRM_LISTA_ZASOBOW&HIDE_ZASOBY=1");
  154. } else {
  155. echo App::link("Pokaz Tabele", "?task=CRM_LISTA_ZASOBOW&UNHIDE_ZASOBY=1");
  156. }
  157. $table_view = array();
  158. $table_view['labels'] = array();
  159. $table_view['head'] = array();
  160. $table_view['find'] = array();
  161. $table_view['foot'] = array();
  162. $table_view['labels']['ID'] = "ID";
  163. $table_view['labels']['PARENT_ID'] = "P_ID";
  164. $table_view['labels']['PARENT_ID_ACCESS'] = "P_ID2";
  165. $table_view['labels']['PARENT_ID_MAP'] = "P_ID3";
  166. $table_view['labels']['ALIAS_ID'] = "ALIAS_ID";
  167. $table_view['labels']['TYPE'] = "TYPE";
  168. $table_view['labels']['DESC'] = "DESC";
  169. $table_view['labels']['DESC_PL'] = "DESC_PL";
  170. $table_view['labels']['OPIS'] = "OPIS";
  171. $table_view['labels']['SORT_PRIO'] = "Sort Prio";
  172. $table_view['labels']['A_STATUS'] = "A_STATUS";
  173. $table_view['labels']['L_APPOITMENT_USER'] = "L_APPOITMENT_USER";
  174. $table_view['labels']['L_APPOITMENT_DATE'] = "L_APPOITMENT_DATE";
  175. $table_view['labels']['L_APPOITMENT_INFO'] = "L_APPOITMENT_INFO";
  176. $table_view['labels']['EXPORT_PARAM'] = "EXPORT_PARAM";
  177. $table_view['head']['ID']= 'ID';
  178. $table_view['head']['PARENT_ID']= '<span class="P_ID">'."P_ID".'</span>';
  179. $table_view['head']['PARENT_ID_ACCESS']= '<nobr>';
  180. $table_view['head']['PARENT_ID_ACCESS'] .= '<span title="Elektryczne" class="P_ID_ACCESS">P_ID2</span>';
  181. if ($_SESSION['TREE_SHOW_P_ID2']) {
  182. $table_view['head']['PARENT_ID_ACCESS'] .= App::link("-", "?TREE_HIDE_P_ID2=1", array('title'=>"Ukryj na drzewie", 'class'=>"btn-p5 btn-small"));
  183. } else {
  184. $table_view['head']['PARENT_ID_ACCESS'] .= App::link("+", "?TREE_SHOW_P_ID2=1", array('title'=>"Pokaz na drzewie", 'class'=>"btn-p5 btn-small"));
  185. }
  186. $table_view['head']['PARENT_ID_ACCESS'] .= '</nobr>';
  187. $table_view['head']['PARENT_ID_MAP']= '<nobr>';
  188. $table_view['head']['PARENT_ID_MAP'] .= '<span title="Lokalizacyjne" class="P_ID_MAP">P_ID3 </span>';
  189. if ($_SESSION['TREE_SHOW_P_ID3']) {
  190. $table_view['head']['PARENT_ID_MAP'] .= App::link("-", "?TREE_HIDE_P_ID3=1", array('title'=>"Ukryj na drzewie", 'class'=>"btn-p5 btn-small"));
  191. } else {
  192. $table_view['head']['PARENT_ID_MAP'] .= App::link("+", "?TREE_SHOW_P_ID3=1", array('title'=>"Pokaz na drzewie", 'class'=>"btn-p5 btn-small"));
  193. }
  194. $table_view['head']['PARENT_ID_MAP'] .= '</nobr>';
  195. $table_view['head']['ALIAS_ID']= '<span title="ALIAS ID" class="'."ALIAS_ID".'">ALIAS</span>';
  196. $table_view['head']['TYPE']= 'TYPE';
  197. $table_view['head']['DESC']= 'DESC';
  198. $table_view['head']['DESC_PL']= 'DESC_PL';
  199. $table_view['head']['OPIS']= 'OPIS';
  200. $table_view['head']['A_STATUS'] = 'A_STATUS';
  201. $table_view['head']['L_APPOITMENT_USER'] = 'L_APP_USER';
  202. $table_view['head']['L_APPOITMENT_DATE'] = 'L_APP_DATE';
  203. $table_view['head']['L_APPOITMENT_INFO'] = 'L_APP_INFO';
  204. $table_view['head']['SORT_PRIO']= 'Sort Prio';
  205. $table_view['head']['EXPORT_PARAM']= 'Export?';
  206. $table_view['find']['ID']= App::field_search( 'ID', "varchar(255)", $_GET['ID'], array('class'=>'i', 'size'=>5) );
  207. $table_view['find']['PARENT_ID']= App::field_search( 'P_ID', "varchar(255)", $_GET['P_ID'], array('class'=>'i', 'size'=>5) );
  208. $table_view['find']['PARENT_ID_ACCESS']= App::field_search( 'P_ID2', "varchar(255)", $_GET['P_ID2'], array('class'=>'i', 'size'=>5) );
  209. $table_view['find']['PARENT_ID_MAP']= App::field_search( 'P_ID3', "varchar(255)", $_GET['P_ID3'], array('class'=>'i', 'size'=>5) );
  210. $table_view['find']['ALIAS_ID']= App::field_search( 'ALIAS_ID', "varchar(255)", $_GET['ALIAS_ID'], array('class'=>'i', 'size'=>5) );
  211. $table_view['find']['TYPE']= App::field_search( 'TYPE', $tbl_conf->type('TYPE'), $_GET['TYPE'], array('class'=>'i') );
  212. $table_view['find']['DESC']= App::field_search( 'DESC', "varchar(255)", $_GET['DESC'], array('class'=>'i', 'size'=>5) );
  213. $table_view['find']['DESC_PL']= App::field_search( 'DESC_PL', "varchar(255)", $_GET['DESC_PL'], array('class'=>'i', 'size'=>5) );
  214. $table_view['find']['OPIS']= App::field_search( 'OPIS', "varchar(255)", $_GET['OPIS'], array('class'=>'i', 'size'=>5) );
  215. $table_view['find']['SORT_PRIO']= '&nbsp;';
  216. $table_view['find']['A_STATUS'] = App::field_search( 'A_STATUS', $tbl_conf->type('A_STATUS'), $_GET['A_STATUS'], array('class'=>'i') );
  217. $table_view['find']['L_APPOITMENT_USER']= App::field_search( 'L_APPOITMENT_USER', $tbl_conf->type('L_APPOITMENT_USER'), $_GET['L_APPOITMENT_USER'], array('class'=>'i', 'size'=>5) );
  218. $table_view['find']['L_APPOITMENT_DATE']= App::field_search( 'L_APPOITMENT_DATE', $tbl_conf->type('L_APPOITMENT_DATE'), $_GET['L_APPOITMENT_DATE'], array('class'=>'i', 'size'=>5) );
  219. $table_view['find']['L_APPOITMENT_INFO'] = App::field_search( 'L_APPOITMENT_INFO', $tbl_conf->type('L_APPOITMENT_INFO'), $_GET['L_APPOITMENT_INFO'], array('class'=>'i', 'size'=>5) );
  220. $table_view['find']['LOCALIZATION_INCLUDE'] = App::field_search( 'LOCALIZATION_INCLUDE', $tbl_conf->type('LOCALIZATION_INCLUDE'), $_GET['LOCALIZATION_INCLUDE'], array('class'=>'i', 'size'=>5) );
  221. //$table_view['find']['A_ADM_COMPANY'] = App::field_search( 'A_ADM_COMPANY', $tbl_conf->type('A_ADM_COMPANY'), $_GET['A_ADM_COMPANY'], array('class'=>'i', 'size'=>5) );
  222. $table_view['find']['A_RECORD_CREATE_AUTHOR']= App::field_search( 'A_RECORD_CREATE_AUTHOR', $tbl_conf->type('A_RECORD_CREATE_AUTHOR'), $_GET['A_RECORD_CREATE_AUTHOR'], array('class'=>'i') );
  223. $table_view['find']['A_RECORD_CREATE_DATE']= App::field_search( 'A_RECORD_CREATE_DATE', $tbl_conf->type('A_RECORD_CREATE_DATE'), $_GET['A_RECORD_CREATE_DATE'], array('class'=>'i') );
  224. $table_view['find']['A_RECORD_UPDATE_AUTHOR']= App::field_search( 'A_RECORD_UPDATE_AUTHOR', $tbl_conf->type('A_RECORD_UPDATE_AUTHOR'), $_GET['A_RECORD_UPDATE_AUTHOR'], array('class'=>'i') );
  225. $table_view['find']['A_RECORD_UPDATE_DATE']= App::field_search( 'A_RECORD_UPDATE_DATE', $tbl_conf->type('A_RECORD_UPDATE_DATE'), $_GET['A_RECORD_UPDATE_DATE'], array('class'=>'i') );
  226. $table_view['find']['EXPORT_PARAM']= App::field_search( 'EXPORT_PARAM', $tbl_conf->type('EXPORT_PARAM'), $_GET['EXPORT_PARAM'], array('class'=>'i') );
  227. $table_view['foot']['PARENT_ID'] = App::field( 'ADD_'.'PARENT_ID', "varchar(255)", V::get('ADD_'.'PARENT_ID', '', $_POST), array('class'=>'i', 'size'=>4) );
  228. $table_view['foot']['PARENT_ID_ACCESS'] = App::field( 'ADD_'.'PARENT_ID_ACCESS', "varchar(255)", V::get('ADD_'.'PARENT_ID_ACCESS', '', $_POST), array('class'=>'i', 'size'=>4) );
  229. $table_view['foot']['PARENT_ID_MAP'] = App::field( 'ADD_'.'PARENT_ID_MAP', "varchar(255)", V::get('ADD_'.'PARENT_ID_MAP', '', $_POST), array('class'=>'i', 'size'=>4) );
  230. $table_view['foot']['ALIAS_ID'] = App::field( 'ADD_'.'ALIAS_ID', "varchar(255)", V::get('ADD_'.'ALIAS_ID', '', $_POST), array('class'=>'i', 'size'=>4) );
  231. $table_view['foot']['TYPE'] = App::field( 'ADD_'.'TYPE', $tbl_conf->type('TYPE'), V::get('ADD_'.'TYPE', '', $_POST), array('class'=>'i') );
  232. $table_view['foot']['DESC'] = App::field( 'ADD_'.'DESC', "varchar(255)", V::get('ADD_'.'DESC', '', $_POST), array('class'=>'i', 'size'=>14) );
  233. $table_view['foot']['DESC_PL'] = App::field( 'ADD_'.'DESC_PL', "varchar(255)", V::get('ADD_'.'DESC_PL', '', $_POST), array('class'=>'i', 'size'=>14) );
  234. $table_view['foot']['OPIS'] = App::field( 'ADD_'.'OPIS', "varchar(255)", V::get('ADD_'.'OPIS', '', $_POST), array('class'=>'i', 'size'=>20) );
  235. $table_view['foot']['EXPORT_PARAM'] = App::field( 'ADD_'.'EXPORT_PARAM', $tbl_conf->type('EXPORT_PARAM'), V::get('ADD_'.'EXPORT_PARAM', '', $_POST), array('class'=>'i', 'size'=>1) );
  236. //$table_view['foot']['SORT_PRIO'] = '<input type="text" name="ADD_SORT_PRIO" size=5 class="i" title="'."SORT PRIO".'" />';
  237. $ses_col_name = 'CRM_LISTA_ZASOBOW';
  238. echo'<table width="100%" border="1" cellspacing="0" cellpadding="0" class="tbl-view">';
  239. echo'<thead>';
  240. echo'<tr>'."\n";
  241. echo'<th>';
  242. echo App::link("C", array('function_init'=>"fun_USERS_COLUMN", 'arg'=>"edit"), array('title'=>"Ustawienia", 'ico'=>'excel.gif', 'ico_height'=>'12'));
  243. echo'</th>';
  244. foreach ($visible_cols as $field_id => $field_name) {
  245. $v = V::get($field_name, str_replace('_', ' ', $field_name), $table_view['head']);
  246. echo'<td>';
  247. echo $v;
  248. if ($field_name != 'ID') {
  249. echo ' ';
  250. echo App::link("X", array('function_init'=>"fun_USERS_COLUMN", 'arg'=>"hide", 'col_id'=>$field_id), array('title'=>"Ukryj kolumne", 'ico'=>'shutdown.gif', 'ico_height'=>11));
  251. }
  252. echo'</td>'."\n";
  253. }//end foreach
  254. echo'</tr>'."\n";
  255. echo'<tr class="find">'."\n";
  256. echo'<form action="" method="GET">';
  257. echo'<input type="hidden" name="task" value="'.App::get_task().'" />';
  258. echo'<th style="text-align:center;">';
  259. echo'<input type="image" value="'."Szukaj".'" src="'."icon/search.png".'" title="'."Szukaj".'" />';
  260. echo'</th>';
  261. foreach ($visible_cols as $field_id => $field_name) {
  262. $v = V::get($field_name, '', $table_view['find']);
  263. $cls = array();
  264. $v_label = V::get($field_name, '', $table_view['labels']);
  265. if ($v_label && isset($tbl_filter->filters[$v_label])) {
  266. if ($tbl_filter->filters[$v_label] != '%') {
  267. $cls []= 'selected';
  268. }
  269. }
  270. $cls = (!empty($cls))? ' class="'.implode(' ', $cls).'"' : '';
  271. echo'<td'.$cls.'>'.$v.'</td>'."\n";
  272. }//end foreach
  273. echo'</form>';
  274. echo'</tr>'."\n";
  275. echo'</thead>';
  276. echo'<tbody>';
  277. {// fetch data
  278. $sql_limit = 1500;// TODO: stronicowanie
  279. if ($_SESSION['HIDE_ZASOBY']) $sql_limit = "3";
  280. $sql_where = array();
  281. if ($_GET['EDIT']) {
  282. $sql_where []= "CP.`ID`='".$_GET['EDIT']."'";
  283. } else {
  284. foreach ($tbl_search_params as $k => $req_field_name) {
  285. // TODO: FILTER_SEARCH <, >, <=, >=, !
  286. $sql_where []= "CP.`".$k."` like '".$_GET[$req_field_name]."'";
  287. }
  288. }
  289. $sql_where = implode(" and ", $sql_where);
  290. $query = "SELECT
  291. CP.*
  292. FROM `CRM_LISTA_ZASOBOW` as CP
  293. where
  294. ".$sql_where."
  295. order by CP.`ID` desc, CP.`PARENT_ID`, CP.`TYPE`, CP.`DESC`
  296. limit ".$sql_limit."
  297. ";
  298. $res = DB::query( $query );
  299. }
  300. $t = 0;
  301. while ($r = DB::fetch( $res )) {
  302. if ($_GET['EDIT'] == $r->ID) {
  303. echo'<form action="'.App::build_http_query("?EDIT=".$r->ID."#".$r->ID).'" method="POST">';
  304. echo'<tr class="edit row-'.($t = 1 - $t).'">';
  305. echo'<th>';
  306. echo'<input type="image" src="'."icon/save.png".'" name="EDIT_SUBMIT" value="'."E ".$r->ID.'" title="'."Zapisz".'">';
  307. echo '<br />'.App::link("IMG", "?function_init=fun_IMAGE_ADD&tbl=".'CRM_LISTA_ZASOBOW'."&id=".$r->ID, array('target'=>'_blank', 'title'=>"Dodaj zdjecia"));
  308. echo'</th>';
  309. foreach ($visible_cols as $field_id => $field_name) {
  310. if ($field_name == 'ID') {
  311. echo'<td>';
  312. echo'<a id="'.$r->ID.'">'.$r->ID.'</a>';
  313. echo ' '.App::link("L", "#TREE".$r->PARENT_ID);
  314. echo ' '.App::link("OB", "?task=CRM_WYSWIETL_OBOWIAZKI&CLZ_ID=".$r->ID, array('target'=>'_blank', 'title'=>"Powiazania z procesami"));
  315. echo'<input type="hidden" name="function_init" value="'."fun_CRM_LISTA_ZASOBOW_EDIT".'">';
  316. echo'<input type="hidden" name="task" value="'.App::get_task().'">';
  317. echo'<input type="hidden" name="EDIT_ID" value="'.$r->ID.'">';
  318. echo '</td>';
  319. } else {
  320. echo'<td>';
  321. if ($tbl_conf->allowWrite($field_name)) {
  322. echo App::field( 'EDIT_' . $field_name, $tbl_conf->type($field_name), $r->$field_name, array('class'=>'i') );
  323. } else {
  324. echo $r->$field_name;
  325. }
  326. echo'</td>';
  327. }
  328. }
  329. echo'</tr>';
  330. echo'</form>';
  331. }
  332. else {// not EDIT
  333. echo "\n".'<tr class="edit row-'.($t = 1 - $t).'">';
  334. echo'<th>';
  335. if (User_is_admin()) {
  336. echo App::link("Edit", "?EDIT=".$r->ID, array('id'=>$r->ID, 'title'=>"Edytuj", 'ico'=>'edit.png'));
  337. }
  338. echo'</th>';
  339. foreach ($visible_cols as $field_id => $field_name) {
  340. if ($field_name == 'ID') {
  341. echo'<td>';
  342. if (User_is_admin()) {
  343. echo App::link($r->ID, "?EDIT=".$r->ID."#".$r->ID, array('id'=>$r->ID, 'title'=>'Edytuj'));
  344. } else {
  345. echo $r->ID;
  346. }
  347. echo '</td>';
  348. } else if ($field_name == 'PARENT_ID') {
  349. echo'<td>';
  350. if (User_is_admin()) {
  351. echo App::link(' '.$r->PARENT_ID, "?EDIT=".$r->PARENT_ID."#".$r->PARENT_ID, array('title'=>'Edytuj'));
  352. } else {
  353. echo $r->PARENT_ID;
  354. }
  355. echo'</td>';
  356. } else if ($field_name == 'PARENT_ID_ACCESS') {
  357. echo'<td>';
  358. $p_id2_links = array();
  359. $p_id2 = explode(',', $r->PARENT_ID_ACCESS);
  360. foreach ($p_id2 as $p_id) {
  361. $p_id2_links []= App::link($p_id, "?EDIT=".$p_id."#".$p_id);
  362. }//end foreach
  363. if (!empty($p_id2_links)) echo implode(', ', $p_id2_links);
  364. echo'</td>';
  365. } else if ($field_name == 'PARENT_ID_MAP') {
  366. echo'<td>';
  367. $p_id3_links = array();
  368. $p_id3 = explode(',', $r->PARENT_ID_MAP);
  369. foreach ($p_id3 as $p_id) {
  370. $p_id3_links []= App::link($p_id, "?EDIT=".$p_id."#".$p_id);
  371. }//end foreach
  372. if (!empty($p_id3_links)) echo implode(', ', $p_id3_links);
  373. echo'</td>';
  374. } else {
  375. echo'<td> '.$r->$field_name.'</td>';
  376. }
  377. }
  378. echo'</tr>';
  379. }
  380. }
  381. echo'</tbody>';
  382. if (User_is_admin()) {
  383. echo'<tfoot>';
  384. echo'<form action="" method="POST">';
  385. echo'<tr class="add">';
  386. echo'<th colspan=2>';
  387. echo'<input type="hidden" name="task" value="'.App::get_task().'" />';
  388. echo'<input type="hidden" name="function_init" value="'."fun_CRM_LISTA_ZASOBOW_ADD".'" />';
  389. echo'<input type="image" alt="'."Dodaj".'" src="'."icon/add.gif".'" title="'."Dodaj nowy".'">';
  390. echo'</th>';
  391. foreach ($visible_cols as $field_id => $field_name) {
  392. if ($field_name == 'ID') continue;
  393. $v = V::get($field_name, ' ', $table_view['foot']);
  394. echo'<td>'.$v.'</td>';
  395. }//end foreach
  396. echo'</tr>';
  397. echo'</form>';
  398. echo'</tfoot>';
  399. }
  400. echo'</table>';
  401. }
  402. echo'<br />';
  403. // test ajax load table content
  404. //TEST:// Lib::loadClass( 'AjaxReq' );
  405. // load content from ajax function on load
  406. //TEST:// $generate_uniq_ajax_req_id = AjaxReq::generate_id( 'CRM_LISTA_ZASOBOW', 'CRM_LISTA_ZASOBOW' );
  407. //TEST: lub // echo App::link_ajax_load_on_ready('flexigrid table zasoby', 'ajax_table', array('_ajax_req_id'=>$generate_uniq_ajax_req_id));
  408. //if (V::get('EDIT', '', $_GET) > 0) {
  409. // echo'edycja - hide tree...';
  410. // return;
  411. //}
  412. echo'<br />';
  413. echo'<div id="tree"></div>';
  414. //if (isset($_SESSION['USER_PARAMS']['ZASOBY_TREE_TYPE_HTML']) && $_SESSION['USER_PARAMS']['ZASOBY_TREE_TYPE_HTML']) {
  415. if ($tree_zasoby_filter->get_arg('filtr_view') == 'NOWY') {
  416. $filter_last->show_filters();
  417. echo'<div class="filters">';
  418. echo'<form action="'."".'" method="get" style="margin:0;padding:0;">';
  419. echo'<input type="hidden" name="task" value="'.App::get_task().'" />';
  420. $tree_zasoby_filter->show_filters();
  421. // TODO: another form ? function_init ?
  422. {// save profile - btn-p5
  423. echo'<nobr>';
  424. echo'<input type="submit" name="save_profile" value="'."Save".'" title="'."Save profile".'" />';
  425. echo'</nobr>';
  426. }
  427. {// load profile - btn-p5
  428. echo'<nobr>';
  429. echo'<input type="submit" name="load_profile" value="'."Load".'" title="'."Load profile".'" />';
  430. echo'</nobr>';
  431. }
  432. echo'</form>';
  433. echo'</div>';// .filters
  434. $filter_hist = (isset($_SESSION['TREE-PROCESY']['filter_hist']))? $_SESSION['TREE-PROCESY']['filter_hist'] : array();
  435. if (!empty($filter_hist)) {
  436. echo'<form style="display:inline" action="" method="GET">';
  437. echo'<input type="hidden" name="task" value="'.App::get_task().'">';
  438. echo'<select name="filter_hist_id">';
  439. foreach ($filter_hist as $k => $v) {
  440. echo'<option value="'.$k.'">'.$v.'</option>';
  441. }//end foreach
  442. echo'</select>';
  443. echo'</form>';
  444. }
  445. $tree = new Tree( $tbl );
  446. $clbk = 'tree_callback__show_item_from_'.$tbl;
  447. $tree->set_param('show_item_callback', $clbk);
  448. //TODO: add all filters from Filter - $tree_zasoby_filter
  449. $tree->set_param('rozwin', ($tree_zasoby_filter->get_arg('filtr_drzewo') == 'ROZWIN'));
  450. $tree->set_param('filtr_ob', ($tree_zasoby_filter->get_arg('filtr_ob') == '+'));
  451. $tree->set_param('filtr_img', ($tree_zasoby_filter->get_arg('filtr_img') == '+'));
  452. $tree->set_param('rozwin_opis', ($tree_zasoby_filter->get_arg('filtr_opis') == '+'));
  453. $tree->set_param('filtr_ids', ($tree_zasoby_filter->get_arg('filtr_ids') == '+'));
  454. $tree->set_param('search_id', $tree_zasoby_filter->get_arg('filtr_search_id'));
  455. //TODO: editable tylko dla userow ktorzy maja uprawnienia
  456. $tree->set_param('getZasobTableID', ProcesHelper::getZasobTableID('CRM_LISTA_ZASOBOW'));
  457. $tree->set_param('editable', ($tree_zasoby_filter->get_arg('filtr_edit') == 'TAK'));
  458. //wykrywamy czy ma dostepny proces do jakiejs komorki w tej tabeli
  459. $userAcl = User::getAcl();
  460. $tblAcl = $userAcl->getTableAcl(ProcesHelper::getZasobTableID('CRM_LISTA_ZASOBOW'));
  461. if($tblAcl)
  462. if($tblAcl->hasFieldPerm($tblAcl->getFieldIdByName('ID'),'R')) $tree->set_param('hasFieldPerm__ID', true);
  463. if ($tree_zasoby_filter->is_trash()) $tree->set_param('is_trash', true);
  464. if ($tree_zasoby_filter->get_arg('filtr_ajax') == 'TAK') {
  465. $tree->_limit = 300;
  466. $tree->_deep_limit = 2;
  467. }
  468. if ($tree_zasoby_filter->get_arg('filtr_id') != 0) {
  469. $tree->showSubTree( $tree_zasoby_filter->get_arg('filtr_id') );
  470. } else if ($tree_zasoby_filter->get_arg('filtr_search_id') > 0) {
  471. $tree->showSearchNode( $tree_zasoby_filter->get_arg('filtr_search_id') );
  472. } else {
  473. $tree->show();
  474. }
  475. }
  476. else {
  477. echo'<pre>';
  478. echo "DRZEWO ";
  479. if ($_SESSION['ZWIN_DRZEWO']) {
  480. echo App::link("ROZWIN", "?ROZWIN_DRZEWO=1#tree");
  481. } else {
  482. echo App::link("ZWIN", "?ZWIN_DRZEWO=1#tree");
  483. }
  484. echo " / ";
  485. if ($filter_show_sort_prio = V::get('TREE_ZASOBY_SORT_PRIO', '', $_REQUEST)) {
  486. if ($filter_show_sort_prio == 'SHOW') {
  487. $_SESSION['TREE-ZASOBY']['SORT_PRIO'] = 1;
  488. } else if ($filter_show_sort_prio == 'HIDE') {
  489. $_SESSION['TREE-ZASOBY']['SORT_PRIO'] = 0;
  490. }
  491. }
  492. echo "SORT PRIO ";
  493. if (V::get('SORT_PRIO', '', $_SESSION['TREE-ZASOBY'])) {
  494. echo App::link("UKRYJ", "?TREE_ZASOBY_SORT_PRIO=HIDE#tree");
  495. } else {
  496. echo App::link("POKAZ", "?TREE_ZASOBY_SORT_PRIO=SHOW#tree");
  497. }
  498. echo " / ";
  499. if ($filter_show_ids = V::get('TREE_ZASOBY_EXTERNAL_IDS', '', $_REQUEST)) {
  500. if ($filter_show_ids == 'SHOW') {
  501. $_SESSION['TREE-ZASOBY']['EXTERNAL_IDS'] = 1;
  502. } else if ($filter_show_ids == 'HIDE') {
  503. $_SESSION['TREE-ZASOBY']['EXTERNAL_IDS'] = 0;
  504. }
  505. }
  506. echo "IDS ";
  507. if (V::get('EXTERNAL_IDS', '', $_SESSION['TREE-ZASOBY'])) {
  508. echo App::link("UKRYJ", "?TREE_ZASOBY_EXTERNAL_IDS=HIDE#tree");
  509. } else {
  510. echo App::link("POKAZ", "?TREE_ZASOBY_EXTERNAL_IDS=SHOW#tree");
  511. }
  512. echo " / ";
  513. $show_filter_type = 0;
  514. if ($show_filter_type) {
  515. $selected_type = V::get('TREE_ZASOBY_FILTER_TYPE', V::get('FILTER_TYPE', '', $_SESSION['TREE-ZASOBY']), $_REQUEST);
  516. $_SESSION['TREE-ZASOBY']['FILTER_TYPE'] = $selected_type;
  517. $types = $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['TYPE'];
  518. $types = explode(',', str_replace(array("enum(",")","'"), '', $types));
  519. sort($types);
  520. array_unshift($types, '%');
  521. //echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;">';print_r($types);echo'</pre>';
  522. echo"TYP: ";
  523. echo'<form action="" method="GET" style="display:inline">';
  524. echo'<input type="hidden" name="task" value="CRM_LISTA_ZASOBOW" />';
  525. echo'<select name="TREE_ZASOBY_FILTER_TYPE" onchange="this.form.submit();">';
  526. foreach ($types as $v) {
  527. $sel = ($selected_type == $v)? ' selected=selected"' : '';
  528. echo'<option value="'.$v.'"'.$sel.'>'.$v.'</option>';
  529. }//end foreach
  530. echo'</select>';
  531. echo'</form>';
  532. echo " / ";
  533. }
  534. $js = "window.location.href='#TREE'+this.form.id.value;return false;";
  535. echo '<form style="display:inline" action="#" method="GET">';
  536. echo "Zasob ID: ";
  537. echo'<input type="text" name="id" value="" />';
  538. echo'<button onclick="'.$js.'">'."Wyszukaj ID".'</button>';
  539. echo'</form>';
  540. echo " / ";
  541. echo'Widok ';
  542. echo App::link("NOWY", "?filtr_view=NOWY");
  543. {
  544. echo " / ";
  545. echo'<form action="" method="GET" style="display:inline">';
  546. echo'<input type="hidden" name="'."task".'" value="'.App::get_task().'" />';
  547. echo'<nobr>';
  548. echo'<input type="submit" name="load_profile" value="'."Load".'" title="'."Load profile".'" />';
  549. echo'</nobr>';
  550. echo'</form>';
  551. }
  552. echo "\n";
  553. tree_listuj_zasoby(0,0,0);
  554. echo'</pre>';
  555. }
  556. }
  557. function fun_CRM_LISTA_ZASOBOW_ADD() {
  558. $redirect = "?task=".App::get_task();
  559. $msg = '';
  560. $sql_obj = new stdClass();
  561. $tbl_name = 'CRM_LISTA_ZASOBOW';
  562. Lib::loadClass('Column');
  563. $tbl_conf = Column::getInstance($tbl_name);
  564. if (!$tbl_conf) {
  565. return;
  566. }
  567. foreach ($tbl_conf->getFieldList() as $field_id => $field_name) {
  568. if ($tbl_conf->allowCreate($field_name)) {
  569. $post_arg_name = 'ADD_' . $field_name;
  570. if (isset($_POST[$post_arg_name])) {
  571. $sql_obj->$field_name = $_POST[$post_arg_name];
  572. }
  573. }
  574. }//end foreach
  575. // nowy na koniec listy
  576. $sql = "select max(t.`SORT_PRIO`) as MAX_SORT_PRIO
  577. from `CRM_LISTA_ZASOBOW` as t
  578. where
  579. t.`PARENT_ID`='".$sql_obj->PARENT_ID."'
  580. ";
  581. $res = DB::query( $sql );
  582. while ($r = DB::fetch( $res )) {
  583. $sql_obj->SORT_PRIO = $r->MAX_SORT_PRIO + 1;
  584. }
  585. //TODO: post verify
  586. $new_id = DB::ADD_NEW_OBJ('CRM_LISTA_ZASOBOW', $sql_obj);
  587. if (V::get('DEBUG', '', $_SESSION)) App::add_msg("PASSED(1) NEW RECORD ID($new_id)");
  588. if ($new_id > 0) {
  589. App::add_msg("Dodano nowy rekord (ID ".$new_id.")");
  590. $redirect .= "&EDIT=".$new_id;
  591. }
  592. else {
  593. App::add_error("Error przy dodawaniu rekordu!");
  594. }
  595. App::redirect($redirect, $msg);
  596. }
  597. /**
  598. * @param $_POST['EDIT_ID'] - ID rekordu
  599. * function_init - params in $_POST, ends with redirect to task
  600. */
  601. function fun_CRM_LISTA_ZASOBOW_EDIT() {
  602. $redirect = "?task=".App::get_task();
  603. $msg = '';
  604. $sql_obj = new stdClass();
  605. $tbl_name = 'CRM_LISTA_ZASOBOW';
  606. $sql_obj->ID = V::get('EDIT_ID', '', $_POST, 'int');
  607. // TODO: fields can be hidden
  608. Lib::loadClass('Column');
  609. $tbl_conf = Column::getInstance($tbl_name);
  610. if (!$tbl_conf) {
  611. return;
  612. }
  613. foreach ($tbl_conf->getFieldList() as $field_id => $field_name) {
  614. if ($tbl_conf->allowWrite($field_name)) {
  615. $post_arg_name = 'EDIT_' . $field_name;
  616. if (isset($_POST[$post_arg_name])) {
  617. // TODO: convert field types? EDIT_ALIAS_ID must be INT
  618. $sql_obj->$field_name = $_POST[$post_arg_name];
  619. }
  620. }
  621. }//end foreach
  622. $redirect .= "&EDIT=".$sql_obj->ID;
  623. //TODO: post verify
  624. $id = $sql_obj->ID;
  625. $affected = DB::UPDATE_OBJ( 'CRM_LISTA_ZASOBOW', $sql_obj );
  626. if (V::get('DEBUG', '', $_SESSION)) App::add_msg("PASSED($affected)");
  627. if ($affected == 2) {
  628. App::add_msg("Zmieniono rekord (ID ".$id.")");
  629. }
  630. else if ($affected == 1) {
  631. App::add_msg("Zmieniono rekord (ID ".$id.") (Error: nie zapisano hostorii)");
  632. }
  633. else if ($affected < 0) {
  634. App::add_error("Blad podczas edytowania rekordu - nic nie zmieniono");
  635. }
  636. App::redirect($redirect, $msg);
  637. }
  638. /**
  639. * @param $_GET['EDIT_ID'] - ID rekordu
  640. */
  641. function task_CRM_LISTA_ZASOBOW_EDIT() {
  642. User_procesy5_check_access();
  643. global $error;
  644. $id = V::get('EDIT_ID', '', $_GET, 'int');
  645. if ($id <= 0) {
  646. echo'<p class="err">'."Wrong ID".'</p>';
  647. return;
  648. }
  649. $r = DB::get_by_id( 'CRM_LISTA_ZASOBOW', $id );
  650. if (!$r) {
  651. echo'<p class="err">'."Wrong ID - not exists".'</p>';
  652. return;
  653. }
  654. //echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;">';print_r($r);echo'</pre>';
  655. echo'<h1>';
  656. echo App::link("LISTA ZASOBOW", "?task=CRM_LISTA_ZASOBOW");
  657. echo' - ';
  658. echo "Edycja zasobu [".$r->ID."]";
  659. echo'</h1>';
  660. echo App::link("IMG", "?function_init=fun_IMAGE_ADD&tbl=".'CRM_LISTA_ZASOBOW'."&id=".$r->ID, array('target'=>'_blank', 'title'=>"Dodaj zdjecia"));
  661. echo ' '.App::link("OB", "?task=CRM_WYSWIETL_OBOWIAZKI&CLZ_ID=".$r->ID, array('target'=>'_blank', 'title'=>"Powiazania z procesami"));
  662. echo '<br /><br />';
  663. echo'<form action="" method="POST">';
  664. echo'<input type="hidden" name="function_init" value="'."fun_CRM_LISTA_ZASOBOW_EDIT".'">';
  665. echo'<input type="hidden" name="task" value="'.App::get_task().'">';
  666. echo'<input type="hidden" name="EDIT_ID" value="'.$r->ID.'">';
  667. //echo ' '.App::link("L", "#TREE".$r->PARENT_ID);
  668. echo'<table width="100%" border="1" cellspacing="0" cellpadding="0" class="tbl-view">';
  669. echo'<tbody>';
  670. $t = 0;
  671. echo'<tr class="row-'.($t = 1 - $t).'">';
  672. echo'<th>'."P_ID".'</th>';
  673. echo'<td>';
  674. echo App::field( 'EDIT_PARENT_ID', $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['PARENT_ID'], $r->PARENT_ID, array('class'=>'i') );
  675. echo'</td>';
  676. echo'</tr>';
  677. echo'<tr class="row-'.($t = 1 - $t).'">';
  678. echo'<th>'."P_ID2".'</th>';
  679. echo'<td>';
  680. echo App::field( 'EDIT_PARENT_ID_ACCESS', $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['PARENT_ID_ACCESS'], $r->PARENT_ID_ACCESS, array('class'=>'i') );
  681. echo'</td>';
  682. echo'</tr>';
  683. echo'<tr class="row-'.($t = 1 - $t).'">';
  684. echo'<th>'."P_ID3".'</th>';
  685. echo'<td>';
  686. echo App::field( 'EDIT_PARENT_ID_MAP', $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['PARENT_ID_MAP'], $r->PARENT_ID_MAP, array('class'=>'i') );
  687. echo'</td>';
  688. echo'</tr>';
  689. echo'<tr class="row-'.($t = 1 - $t).'">';
  690. echo'<th>'."ALIAS_ID".'</th>';
  691. echo'<td>';
  692. echo App::field( 'EDIT_ALIAS_ID', $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['ALIAS_ID'], $r->ALIAS_ID, array('class'=>'i') );
  693. echo'</td>';
  694. echo'</tr>';
  695. echo'<tr class="row-'.($t = 1 - $t).'">';
  696. echo'<th>'."TYPE".'</th>';
  697. echo'<td>';
  698. echo App::field( 'EDIT_TYPE', $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['TYPE'], $r->TYPE, array('class'=>'i') );
  699. echo'</td>';
  700. echo'</tr>';
  701. echo'<tr class="row-'.($t = 1 - $t).'">';
  702. echo'<th>'."DESC".'</th>';
  703. echo'<td>';
  704. echo App::field( 'EDIT_DESC', $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['DESC'], $r->DESC, array('class'=>'i') );
  705. echo'</td>';
  706. echo'</tr>';
  707. echo'<tr class="row-'.($t = 1 - $t).'">';
  708. echo'<th>'."OPIS".'</th>';
  709. echo'<td>';
  710. echo App::field( 'EDIT_OPIS', $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['OPIS'], $r->OPIS, array('class'=>'i') );
  711. echo'</td>';
  712. echo'</tr>';
  713. echo'<tr class="row-'.($t = 1 - $t).'">';
  714. echo'<th>'."SORT_PRIO".'</th>';
  715. echo'<td>';
  716. echo App::field( 'EDIT_SORT_PRIO', $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['SORT_PRIO'], $r->SORT_PRIO, array('class'=>'i') );
  717. echo'</td>';
  718. echo'</tr>';
  719. echo'<tr class="row-'.($t = 1 - $t).'">';
  720. echo'<th>'."IP_ADDRESS".'</th>';
  721. echo'<td>';
  722. echo App::field( 'EDIT_IP_ADDRESS', $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['IP_ADDRESS'], $r->IP_ADDRESS, array('class'=>'i') );
  723. echo'</td>';
  724. echo'</tr>';
  725. echo'<tr class="row-'.($t = 1 - $t).'">';
  726. echo'<th>'."DNS_ADDRESS".'</th>';
  727. echo'<td>';
  728. echo App::field( 'EDIT_DNS_ADDRESS', $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['DNS_ADDRESS'], $r->DNS_ADDRESS, array('class'=>'i') );
  729. echo'</td>';
  730. echo'</tr>';
  731. echo'</tbody>';
  732. echo'</table>';
  733. echo'<input type="submit" name="EDIT_SUBMIT" value="'."Zapisz".'" title="'."Zapisz".'">';
  734. echo'</form>';
  735. }
  736. function fun_CRM_LISTA_ZASOBOW_clean_trash() {
  737. $db = DB::getDB();
  738. if (!$db) {
  739. echo '<p class="red">' . "No DB!" . '</p>';
  740. return;
  741. } else if ($db->has_errors()) {
  742. echo '<p>' . "Error DB: " . implode('<br />', $db->get_errors()) . '</p>';
  743. return;
  744. }
  745. $affected_total = 0;
  746. // remove all root trash items
  747. $sql = "update `CRM_LISTA_ZASOBOW` as z
  748. set z.`A_STATUS`='DELETED', z.`A_RECORD_UPDATE_AUTHOR`='TrashRemoveRec', z.`A_RECORD_UPDATE_DATE`=NOW()
  749. where z.`PARENT_ID`=-1 and z.`A_STATUS`!='DELETED'
  750. ";
  751. $db->query($sql);
  752. $affected = $db->affected_rows();
  753. if ($affected) {
  754. $affected_total += $affected;
  755. }
  756. // remove all child trash items - run X times
  757. $loop_limit = 50;
  758. do {
  759. $sql = "update `CRM_LISTA_ZASOBOW` as z, `CRM_LISTA_ZASOBOW` as zz
  760. set z.`A_STATUS`='DELETED', z.`A_RECORD_UPDATE_AUTHOR`='TrashRemoveRec', z.`A_RECORD_UPDATE_DATE`=NOW()
  761. where z.`PARENT_ID`=zz.`ID` and (zz.`PARENT_ID`=-1 or zz.`A_STATUS`='DELETED') and z.`A_STATUS`!='DELETED'
  762. ";
  763. $db->query($sql);
  764. $affected = $db->affected_rows();
  765. if ($affected) {
  766. $affected_total += $affected;
  767. }
  768. } while ($affected > 0 && --$loop_limit >= 0);
  769. echo '<p>' . "Usuni↑to " . $affected_total . " rekord￳w." . '</p>';
  770. }