Explorar el Código

fixed procesy wskazniki order, removed unused code

Piotr Labudda hace 9 años
padre
commit
0fd6f6b8ac
Se han modificado 4 ficheros con 106 adiciones y 739 borrados
  1. 8 109
      SE/procesy/proces.php
  2. 17 501
      SE/procesy/zasob.php
  3. 80 127
      SE/procesy5.php
  4. 1 2
      SE/se-lib/TableAjax.php

+ 8 - 109
SE/procesy/proces.php

@@ -24,14 +24,6 @@ function task_CRM_PROCES() {
 	if ($DBG_TIME) $dbgExecTime->activate();
 	$dbgExecTime->log('start');
 
-	$tbl_conf = Column::getInstance($tbl);
-	if (!$tbl_conf) {
-		echo'<p class="red">'."Brak konfiguracji dla ".$tbl."!".'</p>';
-		return;
-	}
-	$dbgExecTime->log('Column::getInstance');
-	$visible_cols = $tbl_conf->getVisibleFieldList();
-
 	// form decorators:
 
 	$tbl_search_params = array();
@@ -145,11 +137,14 @@ jQuery(document).ready(function(){
 		echo '<span class="pull-right">'.App::link("Mapa procesów", array('task'=>'VIEW_PROCES_MAP')).'</span>';
 	echo'</h1>';
 
-	$procesZasobId = ProcesHelper::getZasobTableID('CRM_PROCES');
-	echo App::link("Pokaz Tabele", "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID={$procesZasobId}");
-	echo "<br>".App::link("Dodaj nowy rekord", "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID={$procesZasobId}#CREATE");
-
-echo'<br />';
+	UI::startTag('ul', ['class' => "breadcrumb"]);
+		UI::startTag('li');
+			UI::tag('a', ['href'=>"index.php?_route=ViewTableAjax&namespace=default_db/CRM_PROCES"], "Tabela Procesy <i style=\"color:silver\">(CRM_PROCES)</i>");
+		UI::endTag('li');
+		UI::startTag('li');
+			UI::tag('a', ['href'=>"index.php?_route=ViewTableAjax&namespace=default_db/CRM_PROCES#CREATE"], "<span class=\"glyphicon glyphicon-plus\"></span> Dodaj nowy rekord");
+		UI::endTag('li');
+	UI::endTag('ul');
 
 $TREE = array();
 echo'<div id="tree"></div>';
@@ -334,102 +329,6 @@ echo'<div id="tree"></div>';
 }
 
 
-function fun_CRM_PROCES_ADD() {
-	$redirect = "?task=".App::get_task();
-	$msg = '';
-	$sql_obj = new stdClass();
-	$tbl_name = 'CRM_PROCES';
-
-	Lib::loadClass('Column');
-	$tbl_conf = Column::getInstance($tbl_name);
-	if (!$tbl_conf) {
-		return;
-	}
-
-	foreach ($tbl_conf->getFieldList() as $field_id => $field_name) {
-		if ($tbl_conf->allowCreate($field_name)) {
-			$post_arg_name = 'ADD_' . $field_name;
-			if (isset($_POST[$post_arg_name])) {
-				$sql_obj->$field_name = $_POST[$post_arg_name];
-			}
-		}
-	}
-
-	// nowy na koniec listy
-	$sql = "select max(t.`SORT_PRIO`) as MAX_SORT_PRIO
-		from `CRM_PROCES` as t
-		where
-			t.`PARENT_ID`='".$sql_obj->PARENT_ID."'
-	";
-	$res = DB::query( $sql );
-	while ($r = DB::fetch( $res )) {
-		$sql_obj->SORT_PRIO = $r->MAX_SORT_PRIO + 1;
-	}
-
-	//TODO: post verify
-
-	$new_id = DB::ADD_NEW_OBJ('CRM_PROCES', $sql_obj);
-
-	if (V::get('DEBUG', '', $_SESSION)) App::add_msg("PASSED(1) NEW RECORD ID($new_id)");
-	if ($new_id > 0) {
-		App::add_msg("Dodano nowy rekord (ID ".$new_id.")");
-		$redirect .= "&EDIT=".$new_id;
-	}
-	else {
-		App::add_error("Error przy dodawaniu rekordu!");
-	}
-	App::redirect($redirect, $msg);
-}
-
-
-/**
- * @param $_POST['EDIT'] - ID rekordu
- */
-function fun_CRM_PROCES_EDIT() {
-	$redirect = "?task=".App::get_task();
-	$msg = '';
-	$sql_obj = new stdClass();
-	$tbl_name = 'CRM_PROCES';
-
-	$sql_obj->ID = V::get('EDIT_ID', '', $_POST, 'int');
-	// TODO: fields can be hidden
-	Lib::loadClass('Column');
-	$tbl_conf = Column::getInstance($tbl_name);
-	if (!$tbl_conf) {
-		return;
-	}
-
-	foreach ($tbl_conf->getFieldList() as $field_id => $field_name) {
-		if ($tbl_conf->allowWrite($field_name)) {
-			$post_arg_name = 'EDIT_' . $field_name;
-			if (isset($_POST[$post_arg_name])) {
-				// TODO: convert field types?
-				$sql_obj->$field_name = $_POST[$post_arg_name];
-			}
-		}
-	}
-
-	$redirect .= "&EDIT=".$sql_obj->ID;
-
-	//TODO: post verify
-
-	$id = $sql_obj->ID;
-	$affected = DB::UPDATE_OBJ( 'CRM_PROCES', $sql_obj );
-	if (V::get('DEBUG', '', $_SESSION)) App::add_msg("PASSED($affected)");
-	if ($affected == 2) {
-		App::add_msg("Zmieniono rekord (ID ".$id.")");
-	}
-	else if ($affected == 1) {
-		App::add_msg("Zmieniono rekord (ID ".$id.") (Error: nie zapisano hostorii)");
-	}
-	else if ($affected < 0) {
-		App::add_error("Blad podczas edytowania rekordu - nic nie zmieniono");
-	}
-
-	App::redirect($redirect, $msg);
-}
-
-
 function fun_CRM_PROCES_clean_trash() {
 	$db = DB::getDB();
 	if (!$db) {

+ 17 - 501
SE/procesy/zasob.php

@@ -22,16 +22,6 @@ function task_CRM_LISTA_ZASOBOW() {
 	if ($DBG_TIME) $dbgExecTime->activate();
 	$dbgExecTime->log('start');
 
-	//Column::init($tbl, true);// $tbl, force = true
-
-	$tbl_conf = Column::getInstance($tbl);
-	if (!$tbl_conf) {
-		echo'<p class="red">'."Brak konfiguracji dla {$tbl}!".'</p>';
-		return;
-	}
-	$dbgExecTime->log('Column::getInstance');
-	$visible_cols = $tbl_conf->getVisibleFieldList();
-
 	// form decorators:
 
 	$tbl_search_params = array();
@@ -116,9 +106,9 @@ function task_CRM_LISTA_ZASOBOW() {
 				$profile_val = User::getProfile($profile_key);
 				$_COOKIE[$cookie_key] = $profile_val['tree'];
 				echo'<script type="text/javascript">'."
-jQuery(document).ready(function(){
-	jQuery.cookie('".$cookie_key."','" . $_COOKIE[$cookie_key] . "');
-});
+					jQuery(document).ready(function(){
+						jQuery.cookie('".$cookie_key."','" . $_COOKIE[$cookie_key] . "');
+					});
 				".'</script>';
 				$_SESSION[$filtr_ses_key] = $profile_val['filtr'];
 				$tree_zasoby_filter->_read_args( true );// force load args from session
@@ -143,284 +133,19 @@ jQuery(document).ready(function(){
 			echo ' &raquo; '."Zasob [".$tree_zasoby_filter->get_arg('filtr_id')."]";
 		}
 	echo'</h1>';
-		$userAcl = User::getAcl();
-		$tblAcl = $userAcl->getTableAcl(ProcesHelper::getZasobTableID('CRM_LISTA_ZASOBOW'));
-		if($tblAcl)
-	if($tblAcl->hasFieldPerm($tblAcl->getFieldIdByName('ID'),'R')) {
-		echo App::link("Pokaz Tabele", "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=".ProcesHelper::getZasobTableID('CRM_LISTA_ZASOBOW'));
-		echo "<br>".App::link("Dodaj nowy rekord", "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=".ProcesHelper::getZasobTableID('CRM_LISTA_ZASOBOW')."#CREATE");
-
-
-	} else {
-
-
-
-			if (!$_SESSION['HIDE_ZASOBY']) {
-				echo App::link("Ukryj Tabele", "?task=CRM_LISTA_ZASOBOW&HIDE_ZASOBY=1");
-			} else {
-				echo App::link("Pokaz Tabele", "?task=CRM_LISTA_ZASOBOW&UNHIDE_ZASOBY=1");
-			}
 
-		$table_view = array();
-		$table_view['labels'] = array();
-		$table_view['head'] = array();
-		$table_view['find'] = array();
-		$table_view['foot'] = array();
-
-		$table_view['labels']['ID'] = "ID";
-		$table_view['labels']['PARENT_ID'] = "P_ID";
-		$table_view['labels']['PARENT_ID_ACCESS'] = "P_ID2";
-		$table_view['labels']['PARENT_ID_MAP'] = "P_ID3";
-		$table_view['labels']['ALIAS_ID'] = "ALIAS_ID";
-		$table_view['labels']['TYPE'] = "TYPE";
-		$table_view['labels']['DESC'] = "DESC";
-		$table_view['labels']['DESC_PL'] = "DESC_PL";
-		$table_view['labels']['OPIS'] = "OPIS";
-		$table_view['labels']['SORT_PRIO'] = "Sort Prio";
-		$table_view['labels']['A_STATUS'] = "A_STATUS";
-		$table_view['labels']['L_APPOITMENT_USER'] = "L_APPOITMENT_USER";
-		$table_view['labels']['L_APPOITMENT_DATE'] = "L_APPOITMENT_DATE";
-		$table_view['labels']['L_APPOITMENT_INFO'] = "L_APPOITMENT_INFO";
-		$table_view['labels']['EXPORT_PARAM'] = "EXPORT_PARAM";
-
-		$table_view['head']['ID']= 'ID';
-		$table_view['head']['PARENT_ID']= '<span class="P_ID">'."P_ID".'</span>';
-		$table_view['head']['PARENT_ID_ACCESS']= '<nobr>';
-		$table_view['head']['PARENT_ID_ACCESS'] .= '<span title="Elektryczne" class="P_ID_ACCESS">P_ID2</span>';
-		if ($_SESSION['TREE_SHOW_P_ID2']) {
-			$table_view['head']['PARENT_ID_ACCESS'] .= App::link("-", "?TREE_HIDE_P_ID2=1", array('title'=>"Ukryj na drzewie", 'class'=>"btn-p5 btn-sm"));
-		} else {
-			$table_view['head']['PARENT_ID_ACCESS'] .= App::link("+", "?TREE_SHOW_P_ID2=1", array('title'=>"Pokaz na drzewie", 'class'=>"btn-p5 btn-sm"));
-		}
-		$table_view['head']['PARENT_ID_ACCESS'] .= '</nobr>';
-		$table_view['head']['PARENT_ID_MAP']= '<nobr>';
-		$table_view['head']['PARENT_ID_MAP'] .= '<span title="Lokalizacyjne" class="P_ID_MAP">P_ID3 </span>';
-		if ($_SESSION['TREE_SHOW_P_ID3']) {
-			$table_view['head']['PARENT_ID_MAP'] .= App::link("-", "?TREE_HIDE_P_ID3=1", array('title'=>"Ukryj na drzewie", 'class'=>"btn-p5 btn-sm"));
-		} else {
-			$table_view['head']['PARENT_ID_MAP'] .= App::link("+", "?TREE_SHOW_P_ID3=1", array('title'=>"Pokaz na drzewie", 'class'=>"btn-p5 btn-sm"));
-		}
-		$table_view['head']['PARENT_ID_MAP'] .= '</nobr>';
-		$table_view['head']['ALIAS_ID']= '<span title="ALIAS ID" class="'."ALIAS_ID".'">ALIAS</span>';
-		$table_view['head']['TYPE']= 'TYPE';
-		$table_view['head']['DESC']= 'DESC';
-		$table_view['head']['DESC_PL']= 'DESC_PL';
-		$table_view['head']['OPIS']= 'OPIS';
-		$table_view['head']['A_STATUS'] = 'A_STATUS';
-		$table_view['head']['L_APPOITMENT_USER'] = 'L_APP_USER';
-		$table_view['head']['L_APPOITMENT_DATE'] = 'L_APP_DATE';
-		$table_view['head']['L_APPOITMENT_INFO'] = 'L_APP_INFO';
-		$table_view['head']['SORT_PRIO']= 'Sort Prio';
-		$table_view['head']['EXPORT_PARAM']= 'Export?';
-
-		$table_view['find']['ID']= App::field_search( 'ID', "varchar(255)", $_GET['ID'], array('class'=>'i', 'size'=>5) );
-		$table_view['find']['PARENT_ID']= App::field_search( 'P_ID', "varchar(255)", $_GET['P_ID'], array('class'=>'i', 'size'=>5) );
-		$table_view['find']['PARENT_ID_ACCESS']= App::field_search( 'P_ID2', "varchar(255)", $_GET['P_ID2'], array('class'=>'i', 'size'=>5) );
-		$table_view['find']['PARENT_ID_MAP']= App::field_search( 'P_ID3', "varchar(255)", $_GET['P_ID3'], array('class'=>'i', 'size'=>5) );
-		$table_view['find']['ALIAS_ID']= App::field_search( 'ALIAS_ID', "varchar(255)", $_GET['ALIAS_ID'], array('class'=>'i', 'size'=>5) );
-		$table_view['find']['TYPE']= App::field_search( 'TYPE', $tbl_conf->type('TYPE'), $_GET['TYPE'], array('class'=>'i') );
-		$table_view['find']['DESC']= App::field_search( 'DESC', "varchar(255)", $_GET['DESC'], array('class'=>'i', 'size'=>5) );
-		$table_view['find']['DESC_PL']= App::field_search( 'DESC_PL', "varchar(255)", $_GET['DESC_PL'], array('class'=>'i', 'size'=>5) );
-		$table_view['find']['OPIS']= App::field_search( 'OPIS', "varchar(255)", $_GET['OPIS'], array('class'=>'i', 'size'=>5) );
-		$table_view['find']['SORT_PRIO']= '&nbsp;';
-		$table_view['find']['A_STATUS'] =  App::field_search( 'A_STATUS', $tbl_conf->type('A_STATUS'), $_GET['A_STATUS'], array('class'=>'i') );
-		$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) );
-		$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) );
-		$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) );
-		$table_view['find']['LOCALIZATION_INCLUDE'] = App::field_search( 'LOCALIZATION_INCLUDE', $tbl_conf->type('LOCALIZATION_INCLUDE'), $_GET['LOCALIZATION_INCLUDE'], array('class'=>'i', 'size'=>5) );
-		//$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) );
-		$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') );
-		$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') );
-		$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') );
-		$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') );
-		$table_view['find']['EXPORT_PARAM']= App::field_search( 'EXPORT_PARAM', $tbl_conf->type('EXPORT_PARAM'), $_GET['EXPORT_PARAM'], array('class'=>'i') );
-
-		$table_view['foot']['PARENT_ID'] = App::field( 'ADD_'.'PARENT_ID', "varchar(255)", V::get('ADD_'.'PARENT_ID', '', $_POST), array('class'=>'i', 'size'=>4) );
-		$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) );
-		$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) );
-		$table_view['foot']['ALIAS_ID'] = App::field( 'ADD_'.'ALIAS_ID', "varchar(255)", V::get('ADD_'.'ALIAS_ID', '', $_POST), array('class'=>'i', 'size'=>4) );
-		$table_view['foot']['TYPE'] = App::field( 'ADD_'.'TYPE', $tbl_conf->type('TYPE'), V::get('ADD_'.'TYPE', '', $_POST), array('class'=>'i') );
-		$table_view['foot']['DESC'] = App::field( 'ADD_'.'DESC', "varchar(255)", V::get('ADD_'.'DESC', '', $_POST), array('class'=>'i', 'size'=>14) );
-		$table_view['foot']['DESC_PL'] = App::field( 'ADD_'.'DESC_PL', "varchar(255)", V::get('ADD_'.'DESC_PL', '', $_POST), array('class'=>'i', 'size'=>14) );
-		$table_view['foot']['OPIS'] = App::field( 'ADD_'.'OPIS', "varchar(255)", V::get('ADD_'.'OPIS', '', $_POST), array('class'=>'i', 'size'=>20) );
-		$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) );
-		//$table_view['foot']['SORT_PRIO'] = '<input type="text" name="ADD_SORT_PRIO" size=5 class="i" title="'."SORT PRIO".'" />';
-
-		$ses_col_name = 'CRM_LISTA_ZASOBOW';
-
-		echo'<table width="100%" border="1" cellspacing="0" cellpadding="0" class="tbl-view">';
-		echo'<thead>';
-		echo'<tr>'."\n";
-			echo'<th>';
-				echo App::link("C", array('function_init'=>"fun_USERS_COLUMN", 'arg'=>"edit"), array('title'=>"Ustawienia", 'ico'=>'excel.gif', 'ico_height'=>'12'));
-			echo'</th>';
-			foreach ($visible_cols as $field_id => $field_name) {
-				$v = V::get($field_name, str_replace('_', ' ', $field_name), $table_view['head']);
-				echo'<td>';
-					echo $v;
-					if ($field_name != 'ID') {
-						echo ' ';
-						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));
-					}
-				echo'</td>'."\n";
-			}
-		echo'</tr>'."\n";
-		echo'<tr class="find">'."\n";
-			echo'<form action="" method="GET">';
-			echo'<input type="hidden" name="task" value="'.App::get_task().'" />';
-			echo'<th style="text-align:center;">';
-				echo'<input type="image" value="'."Szukaj".'" src="'."icon/search.png".'" title="'."Szukaj".'" />';
-			echo'</th>';
-			foreach ($visible_cols as $field_id => $field_name) {
-				$v = V::get($field_name, '', $table_view['find']);
-				$cls = array();
-				$v_label = V::get($field_name, '', $table_view['labels']);
-				if ($v_label && isset($tbl_filter->filters[$v_label])) {
-					if ($tbl_filter->filters[$v_label] != '%') {
-						$cls[] = 'selected';
-					}
-				}
-				$cls = (!empty($cls))? ' class="'.implode(' ', $cls).'"' : '';
-				echo'<td'.$cls.'>'.$v.'</td>'."\n";
-			}
-			echo'</form>';
-		echo'</tr>'."\n";
-		echo'</thead>';
-		echo'<tbody>';
-
-
-		{// fetch data
-			$sql_limit = 1500;// TODO: stronicowanie
-			if ($_SESSION['HIDE_ZASOBY']) $sql_limit = "3";
-
-			$sql_where = array();
-			if ($_GET['EDIT']) {
-				$sql_where[] = "CP.`ID`='".$_GET['EDIT']."'";
-			} else {
-				foreach ($tbl_search_params as $k => $req_field_name) {
-					// TODO: FILTER_SEARCH <, >, <=, >=, !
-					$sql_where[] = "CP.`".$k."` like '".$_GET[$req_field_name]."'";
-				}
-			}
-			$sql_where = implode(" and ", $sql_where);
-
-			$query = "SELECT
-					CP.*
-				FROM `CRM_LISTA_ZASOBOW` as CP
-				where
-					".$sql_where."
-				order by CP.`ID` desc, CP.`PARENT_ID`, CP.`TYPE`, CP.`DESC`
-				limit ".$sql_limit."
-			";
-			$res = DB::query( $query );
-		}
-
-
-		$t = 0;
-		while ($r = DB::fetch( $res )) {
-			if ($_GET['EDIT'] == $r->ID) {
-				echo'<form action="'.App::build_http_query("?EDIT=".$r->ID."#".$r->ID).'" method="POST">';
-				echo'<tr class="edit row-'.($t = 1 - $t).'">';
-				echo'<th>';
-					echo'<input type="image" src="'."icon/save.png".'" name="EDIT_SUBMIT" value="'."E ".$r->ID.'" title="'."Zapisz".'">';
-					echo '<br />'.App::link("IMG", "?function_init=fun_IMAGE_ADD&tbl=".'CRM_LISTA_ZASOBOW'."&id=".$r->ID, array('target'=>'_blank', 'title'=>"Dodaj zdjecia"));
-				echo'</th>';
-				foreach ($visible_cols as $field_id => $field_name) {
-					if ($field_name == 'ID') {
-						echo'<td>';
-							echo'<a id="'.$r->ID.'">'.$r->ID.'</a>';
-							echo ' '.App::link("L", "#TREE".$r->PARENT_ID);
-							echo ' '.App::link("OB", "?task=CRM_WYSWIETL_OBOWIAZKI&CLZ_ID=".$r->ID, array('target'=>'_blank', 'title'=>"Powiazania z procesami"));
-							echo'<input type="hidden" name="function_init" value="'."fun_CRM_LISTA_ZASOBOW_EDIT".'">';
-							echo'<input type="hidden" name="task" value="'.App::get_task().'">';
-							echo'<input type="hidden" name="EDIT_ID" value="'.$r->ID.'">';
-						echo '</td>';
-					} else {
-						echo'<td>';
-							if ($tbl_conf->allowWrite($field_name)) {
-								echo App::field( 'EDIT_' . $field_name, $tbl_conf->type($field_name), $r->$field_name, array('class'=>'i') );
-							} else {
-								echo $r->$field_name;
-							}
-						echo'</td>';
-					}
-				}
-				echo'</tr>';
-				echo'</form>';
-			}
-			else {// not EDIT
-				echo "\n".'<tr class="edit row-'.($t = 1 - $t).'">';
-				echo'<th>';
-					if (User_is_admin()) {
-						echo App::link("Edit", "?EDIT=".$r->ID, array('id'=>$r->ID, 'title'=>"Edytuj", 'ico'=>'edit.png'));
-					}
-				echo'</th>';
-				foreach ($visible_cols as $field_id => $field_name) {
-					if ($field_name == 'ID') {
-						echo'<td>';
-						if (User_is_admin()) {
-							echo App::link($r->ID, "?EDIT=".$r->ID."#".$r->ID, array('id'=>$r->ID, 'title'=>'Edytuj'));
-						} else {
-							echo $r->ID;
-						}
-						echo '</td>';
-					} else if ($field_name == 'PARENT_ID') {
-						echo'<td>';
-							if (User_is_admin()) {
-								echo App::link(' '.$r->PARENT_ID, "?EDIT=".$r->PARENT_ID."#".$r->PARENT_ID, array('title'=>'Edytuj'));
-							} else {
-								echo $r->PARENT_ID;
-							}
-						echo'</td>';
-					} else if ($field_name == 'PARENT_ID_ACCESS') {
-						echo'<td>';
-							$p_id2_links = array();
-							$p_id2 = explode(',', $r->PARENT_ID_ACCESS);
-							foreach ($p_id2 as $p_id) {
-								$p_id2_links[] = App::link($p_id, "?EDIT=".$p_id."#".$p_id);
-							}
-							if (!empty($p_id2_links)) echo implode(', ', $p_id2_links);
-						echo'</td>';
-					} else if ($field_name == 'PARENT_ID_MAP') {
-						echo'<td>';
-							$p_id3_links = array();
-							$p_id3 = explode(',', $r->PARENT_ID_MAP);
-							foreach ($p_id3 as $p_id) {
-								$p_id3_links[] = App::link($p_id, "?EDIT=".$p_id."#".$p_id);
-							}
-							if (!empty($p_id3_links)) echo implode(', ', $p_id3_links);
-						echo'</td>';
-					} else {
-						echo'<td> '.$r->$field_name.'</td>';
-					}
-				}
-				echo'</tr>';
-			}
-		}
-		echo'</tbody>';
-		if (User_is_admin()) {
-			echo'<tfoot>';
-			echo'<form action="" method="POST">';
-			echo'<tr class="add">';
-				echo'<th colspan=2>';
-					echo'<input type="hidden" name="task" value="'.App::get_task().'" />';
-					echo'<input type="hidden" name="function_init" value="'."fun_CRM_LISTA_ZASOBOW_ADD".'" />';
-					echo'<input type="image" alt="'."Dodaj".'" src="'."icon/add.gif".'" title="'."Dodaj nowy".'">';
-				echo'</th>';
-				foreach ($visible_cols as $field_id => $field_name) {
-					if ($field_name == 'ID') continue;
-
-					$v = V::get($field_name, ' ', $table_view['foot']);
-					echo'<td>'.$v.'</td>';
-				}
-			echo'</tr>';
-			echo'</form>';
-			echo'</tfoot>';
-		}
-		echo'</table>';
-}
-
-echo'<br />';
+	$userAcl = User::getAcl();
+	$tblAcl = $userAcl->getTableAcl(ProcesHelper::getZasobTableID('CRM_LISTA_ZASOBOW'));
+	if ($tblAcl && $tblAcl->hasFieldPerm($tblAcl->getFieldIdByName('ID'),'R')) {
+		UI::startTag('ul', ['class' => "breadcrumb"]);
+			UI::startTag('li');
+				UI::tag('a', ['href'=>"index.php?_route=ViewTableAjax&namespace=default_db/CRM_LISTA_ZASOBOW"], "Tabela Zasoby <i style=\"color:silver\">(CRM_LISTA_ZASOBOW)</i>");
+			UI::endTag('li');
+			UI::startTag('li');
+				UI::tag('a', ['href'=>"index.php?_route=ViewTableAjax&namespace=default_db/CRM_LISTA_ZASOBOW#CREATE"], "<span class=\"glyphicon glyphicon-plus\"></span> Dodaj nowy rekord");
+			UI::endTag('li');
+		UI::endTag('ul');
+	}
 
 	echo'<div id="tree"></div>';
 
@@ -479,8 +204,7 @@ echo'<br />';
 		//wykrywamy czy ma dostepny proces do jakiejs komorki w tej tabeli
 		$userAcl = User::getAcl();
 		$tblAcl = $userAcl->getTableAcl(ProcesHelper::getZasobTableID('CRM_LISTA_ZASOBOW'));
-		if($tblAcl)
-		if($tblAcl->hasFieldPerm($tblAcl->getFieldIdByName('ID'),'R')) $tree->set_param('hasFieldPerm__ID', true);
+		if ($tblAcl && $tblAcl->hasFieldPerm($tblAcl->getFieldIdByName('ID'),'R')) $tree->set_param('hasFieldPerm__ID', true);
 
 		if ($tree_zasoby_filter->is_trash()) $tree->set_param('is_trash', true);
 		if ($tree_zasoby_filter->get_arg('filtr_ajax') == 'TAK') {
@@ -597,214 +321,6 @@ echo'</pre>';
 }
 
 
-function fun_CRM_LISTA_ZASOBOW_ADD() {
-	$redirect = "?task=".App::get_task();
-	$msg = '';
-	$sql_obj = new stdClass();
-	$tbl_name = 'CRM_LISTA_ZASOBOW';
-
-	Lib::loadClass('Column');
-	$tbl_conf = Column::getInstance($tbl_name);
-	if (!$tbl_conf) {
-		return;
-	}
-
-	foreach ($tbl_conf->getFieldList() as $field_id => $field_name) {
-		if ($tbl_conf->allowCreate($field_name)) {
-			$post_arg_name = 'ADD_' . $field_name;
-			if (isset($_POST[$post_arg_name])) {
-				$sql_obj->$field_name = $_POST[$post_arg_name];
-			}
-		}
-	}
-
-	// nowy na koniec listy
-	$sql = "select max(t.`SORT_PRIO`) as MAX_SORT_PRIO
-		from `CRM_LISTA_ZASOBOW` as t
-		where
-			t.`PARENT_ID`='".$sql_obj->PARENT_ID."'
-	";
-	$res = DB::query( $sql );
-	while ($r = DB::fetch( $res )) {
-		$sql_obj->SORT_PRIO = $r->MAX_SORT_PRIO + 1;
-	}
-
-	//TODO: post verify
-
-	$new_id = DB::ADD_NEW_OBJ('CRM_LISTA_ZASOBOW', $sql_obj);
-
-	if (V::get('DEBUG', '', $_SESSION)) App::add_msg("PASSED(1) NEW RECORD ID($new_id)");
-	if ($new_id > 0) {
-		App::add_msg("Dodano nowy rekord (ID ".$new_id.")");
-		$redirect .= "&EDIT=".$new_id;
-	}
-	else {
-		App::add_error("Error przy dodawaniu rekordu!");
-	}
-
-	App::redirect($redirect, $msg);
-}
-
-
-/**
- * @param $_POST['EDIT_ID'] - ID rekordu
- * function_init - params in $_POST, ends with redirect to task
- */
-function fun_CRM_LISTA_ZASOBOW_EDIT() {
-	$redirect = "?task=".App::get_task();
-	$msg = '';
-	$sql_obj = new stdClass();
-	$tbl_name = 'CRM_LISTA_ZASOBOW';
-
-	$sql_obj->ID = V::get('EDIT_ID', '', $_POST, 'int');
-	// TODO: fields can be hidden
-	Lib::loadClass('Column');
-	$tbl_conf = Column::getInstance($tbl_name);
-	if (!$tbl_conf) {
-		return;
-	}
-
-	foreach ($tbl_conf->getFieldList() as $field_id => $field_name) {
-		if ($tbl_conf->allowWrite($field_name)) {
-			$post_arg_name = 'EDIT_' . $field_name;
-			if (isset($_POST[$post_arg_name])) {
-				// TODO: convert field types? EDIT_ALIAS_ID must be INT
-				$sql_obj->$field_name = $_POST[$post_arg_name];
-			}
-		}
-	}
-
-	$redirect .= "&EDIT=".$sql_obj->ID;
-
-	//TODO: post verify
-
-	$id = $sql_obj->ID;
-	$affected = DB::UPDATE_OBJ( 'CRM_LISTA_ZASOBOW', $sql_obj );
-	if (V::get('DEBUG', '', $_SESSION)) App::add_msg("PASSED($affected)");
-	if ($affected == 2) {
-		App::add_msg("Zmieniono rekord (ID ".$id.")");
-	}
-	else if ($affected == 1) {
-		App::add_msg("Zmieniono rekord (ID ".$id.") (Error: nie zapisano hostorii)");
-	}
-	else if ($affected < 0) {
-		App::add_error("Blad podczas edytowania rekordu - nic nie zmieniono");
-	}
-
-	App::redirect($redirect, $msg);
-}
-
-
-/**
- * @param $_GET['EDIT_ID'] - ID rekordu
- */
-function task_CRM_LISTA_ZASOBOW_EDIT() {
-	User_procesy5_check_access();
-
-	global $error;
-
-	$id = V::get('EDIT_ID', '', $_GET, 'int');
-	if ($id <= 0) {
-		echo'<p class="err">'."Wrong ID".'</p>';
-		return;
-	}
-
-	$r = DB::get_by_id( 'CRM_LISTA_ZASOBOW', $id );
-	if (!$r) {
-		echo'<p class="err">'."Wrong ID - not exists".'</p>';
-		return;
-	}
-
-//echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;">';print_r($r);echo'</pre>';
-
-	echo'<h1>';
-		echo App::link("LISTA ZASOBOW", "?task=CRM_LISTA_ZASOBOW");
-		echo' - ';
-		echo "Edycja zasobu [".$r->ID."]";
-	echo'</h1>';
-
-	echo App::link("IMG", "?function_init=fun_IMAGE_ADD&tbl=".'CRM_LISTA_ZASOBOW'."&id=".$r->ID, array('target'=>'_blank', 'title'=>"Dodaj zdjecia"));
-	echo ' '.App::link("OB", "?task=CRM_WYSWIETL_OBOWIAZKI&CLZ_ID=".$r->ID, array('target'=>'_blank', 'title'=>"Powiazania z procesami"));
-	echo '<br /><br />';
-
-	echo'<form action="" method="POST">';
-		echo'<input type="hidden" name="function_init" value="'."fun_CRM_LISTA_ZASOBOW_EDIT".'">';
-		echo'<input type="hidden" name="task" value="'.App::get_task().'">';
-		echo'<input type="hidden" name="EDIT_ID" value="'.$r->ID.'">';
-		//echo ' '.App::link("L", "#TREE".$r->PARENT_ID);
-	echo'<table width="100%" border="1" cellspacing="0" cellpadding="0" class="tbl-view">';
-	echo'<tbody>';
-	$t = 0;
-	echo'<tr class="row-'.($t = 1 - $t).'">';
-		echo'<th>'."P_ID".'</th>';
-		echo'<td>';
-			echo App::field( 'EDIT_PARENT_ID', $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['PARENT_ID'], $r->PARENT_ID, array('class'=>'i') );
-		echo'</td>';
-	echo'</tr>';
-	echo'<tr class="row-'.($t = 1 - $t).'">';
-		echo'<th>'."P_ID2".'</th>';
-		echo'<td>';
-			echo App::field( 'EDIT_PARENT_ID_ACCESS', $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['PARENT_ID_ACCESS'], $r->PARENT_ID_ACCESS, array('class'=>'i') );
-		echo'</td>';
-	echo'</tr>';
-	echo'<tr class="row-'.($t = 1 - $t).'">';
-		echo'<th>'."P_ID3".'</th>';
-		echo'<td>';
-			echo App::field( 'EDIT_PARENT_ID_MAP', $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['PARENT_ID_MAP'], $r->PARENT_ID_MAP, array('class'=>'i') );
-		echo'</td>';
-	echo'</tr>';
-	echo'<tr class="row-'.($t = 1 - $t).'">';
-		echo'<th>'."ALIAS_ID".'</th>';
-		echo'<td>';
-			echo App::field( 'EDIT_ALIAS_ID', $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['ALIAS_ID'], $r->ALIAS_ID, array('class'=>'i') );
-		echo'</td>';
-	echo'</tr>';
-	echo'<tr class="row-'.($t = 1 - $t).'">';
-		echo'<th>'."TYPE".'</th>';
-		echo'<td>';
-			echo App::field( 'EDIT_TYPE', $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['TYPE'], $r->TYPE, array('class'=>'i') );
-		echo'</td>';
-	echo'</tr>';
-	echo'<tr class="row-'.($t = 1 - $t).'">';
-		echo'<th>'."DESC".'</th>';
-		echo'<td>';
-			echo App::field( 'EDIT_DESC', $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['DESC'], $r->DESC, array('class'=>'i') );
-		echo'</td>';
-	echo'</tr>';
-	echo'<tr class="row-'.($t = 1 - $t).'">';
-		echo'<th>'."OPIS".'</th>';
-		echo'<td>';
-			echo App::field( 'EDIT_OPIS', $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['OPIS'], $r->OPIS, array('class'=>'i') );
-		echo'</td>';
-	echo'</tr>';
-	echo'<tr class="row-'.($t = 1 - $t).'">';
-		echo'<th>'."SORT_PRIO".'</th>';
-		echo'<td>';
-			echo App::field( 'EDIT_SORT_PRIO', $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['SORT_PRIO'], $r->SORT_PRIO, array('class'=>'i') );
-		echo'</td>';
-	echo'</tr>';
-	echo'<tr class="row-'.($t = 1 - $t).'">';
-		echo'<th>'."IP_ADDRESS".'</th>';
-		echo'<td>';
-			echo App::field( 'EDIT_IP_ADDRESS', $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['IP_ADDRESS'], $r->IP_ADDRESS, array('class'=>'i') );
-		echo'</td>';
-	echo'</tr>';
-	echo'<tr class="row-'.($t = 1 - $t).'">';
-		echo'<th>'."DNS_ADDRESS".'</th>';
-		echo'<td>';
-			echo App::field( 'EDIT_DNS_ADDRESS', $_SESSION['CRM_LISTA_ZASOBOW_COLUMN']['TYPE']['DNS_ADDRESS'], $r->DNS_ADDRESS, array('class'=>'i') );
-		echo'</td>';
-	echo'</tr>';
-	echo'</tbody>';
-	echo'</table>';
-
-	echo'<input type="submit" name="EDIT_SUBMIT" value="'."Zapisz".'" title="'."Zapisz".'">';
-
-	echo'</form>';
-
-}
-
-
 function fun_CRM_LISTA_ZASOBOW_clean_trash() {
 	$db = DB::getDB();
 	if (!$db) {
@@ -840,5 +356,5 @@ function fun_CRM_LISTA_ZASOBOW_clean_trash() {
 		}
 	} while ($affected > 0 && --$loop_limit >= 0);
 
-	echo '<p>' . "Usuni↑to " . $affected_total . " rekord￳w." . '</p>';
+	echo '<p>' . "Usunięto " . $affected_total . " rekord￳ów." . '</p>';
 }

+ 80 - 127
SE/procesy5.php

@@ -622,106 +622,6 @@ function task_CRM_DEL_CRM_WSKAZNIK() {
 	echo'</p>';// .box
 }
 
-function fun_USERS_COLUMN() {
-	$arg = V::get('arg', '', $_GET);
-	$col_id = V::get('col_id', '', $_GET);
-	$ret = V::get('ret', '', $_GET);
-	$task = App::get_task();
-
-	Lib::loadClass('Column');
-
-	// TODO: function task to table - like DETECT_TABLE_COLUMNS
-	$allowed_task = array();// task => table
-	$allowed_task ['CRM_PROCES']= 'CRM_PROCES';
-	$allowed_task ['CRM_LISTA_ZASOBOW']= 'CRM_LISTA_ZASOBOW';
-
-	if (!array_key_exists($task, $allowed_task)) {
-		echo'<p class="err">'."Task not allowed".'</p>';
-		return;
-	}
-
-	$ses_col_name = $allowed_task[$task];
-
-	$tbl_conf = Column::getInstance($allowed_task[$task]);
-	$user_tbl_profile = User::getProfile($allowed_task[$task]);
-	if (!$user_tbl_profile) $user_tbl_profile = array();
-
-	if (empty($tbl_conf)) {
-		echo'<p class="err">'."Error: brak configu".'</p>';
-		return;
-	}
-
-	$field_list = $tbl_conf->getFieldList();
-
-	// router - $arg: hide, unhide
-	$break = false;
-	switch ($arg) {
-		case 'hide':
-			if (!empty($col_id) && array_key_exists($col_id, $field_list)) {
-				User::setProfileColumn($ses_col_name, $col_id, 'HIDE');
-				$break = true;
-			}
-			break;
-		case 'unhide':
-			if (!empty($col_id) && array_key_exists($col_id, $field_list)) {
-				User::removeProfileColumn($ses_col_name, $col_id);
-				$break = true;
-			}
-			break;
-		default:
-			;
-	}
-
-	if ($break) {
-		if ($ret == __FUNCTION__) {
-		} else {
-			return;
-		}
-	}
-
-	$out_tbl = array();
-	foreach ($field_list as $field_id => $field_name) {
-		$out_tr = array();
-		$out_tr['hide'] = false;
-		$out_tr['col_id'] = $field_id;
-		//if(strstr($_SESSION[$thiss->DETECT_TABLE_COLUMN]['PERMEDIT'][ $_SESSION[$thiss->DETECT_TABLE_COLUMN]['DESC'][$field_id] ], 'R')) {
-		// $_SESSION[$thiss->DETECT_TABLE_COLUMN]['HIDE'][$field_id] - HIDE in config (user profile at exec USERS_COLUMN_INIT2)
-		//if (V::get($field_id, '', $tbl_conf['HIDE']) == 'HIDE') {
-		if (User::getProfileColumn($ses_col_name, $field_id) == 'HIDE') {
-			$out_tr['hide'] = true;
-		}
-		$out_tr['field_name'] = $field_name;
-		$out_tr['field_desc'] = $tbl_conf->desc($field_name);
-		//if($_SESSION[$thiss->DETECT_TABLE_COLUMN]['DESC_TO_LANG'][$_SESSION[$thiss->DETECT_TABLE_COLUMN]['DESC']["$value"]]) {
-		// echo $_SESSION[$thiss->DETECT_TABLE_COLUMN]['DESC_TO_LANG'][$_SESSION[$thiss->DETECT_TABLE_COLUMN]['DESC']["$value"]] . "<br>";
-		//}
-		$out_tbl[] = $out_tr;
-	}
-
-	echo'<table border="1" cellspacing="0" cellpadding="0" class="tbl-view" style="margin:30px;">';
-	foreach ($out_tbl as $out_tr) {
-		$st = '';
-		if ($out_tr['hide'] == true) $st = ' style="color:#666;"';
-		echo'<tr'.$st.'>';
-			echo'<td>';
-				if ($out_tr['hide'] == true) {
-					echo App::link("Pokaz", array('function_init'=>"fun_USERS_COLUMN", 'arg'=>"unhide", 'col_id'=>$out_tr['col_id'], 'ret'=>"fun_USERS_COLUMN"), array('title'=>"Pokaz kolumne"));
-				} else {
-					echo App::link("X", array('function_init'=>"fun_USERS_COLUMN", 'arg'=>"hide", 'col_id'=>$out_tr['col_id'], 'ret'=>"fun_USERS_COLUMN"), array('title'=>"Ukryj kolumne", 'ico'=>'shutdown.gif', 'ico_height'=>11));
-				}
-			echo'</td>';
-			echo'<td>';
-				if (!empty($out_tr['field_desc'])) echo $out_tr['field_desc'].' ';
-				echo'<code>'.$out_tr['field_name'].'</code>';
-			echo'</td>';
-		echo'</tr>';
-	}
-	echo'</table>';
-
-	echo "Wroc do ".App::link(" ".App::get_task(), array('task'=>App::get_task()));
-	App::quit();
-}
-
 
 /**
  * @param $tree_callback - tree item show function callback
@@ -1913,6 +1813,43 @@ function tree_callback__show_item_from_CRM_PROCES( &$r, &$tree ) {
 		$tree->log('show item -> get_wskazniki', array('get_wskazniki'));
 	}
 
+	foreach ($wsk as $idx => $w) $wsk[$idx]->ACL_TYPE = in_array($w->TYPE, ['STANOWISKO', 'DZIAL', 'PODMIOT']) ? 'GROUP' : '';
+
+	// UI::table([ 'rows' => array_map(function ($w) {
+	// 	unset($w->path);
+	// 	unset($w->OPIS);
+	// 	return (array)$w;
+	// }, $wsk) ]);
+	$fixedWskList = array();
+	foreach ($wsk as $w) {
+		if ('GROUP' == $w->ACL_TYPE) $fixedWskList[] = $w;
+	}
+	if ('PROCES_INIT' == $r->TYPE) {// fetch INHERIT acl groups
+		$idGroups = array_reduce($wsk, function ($carry, $w) {
+			if ('GROUP' != $w->ACL_TYPE) return $carry;
+			return (!empty($carry)) ? "{$carry},{$w->ID}" : $w->ID;
+		}, "");
+		$sqlFilterIdGroups = (!empty($idGroups)) ? " and gp.ID_GROUP not in({$idGroups})" : "";
+		foreach (DB::getPDO()->fetchAll("select z.ID
+				, z.PARENT_ID
+				, z.`TYPE`
+				, z.`DESC`
+				, 'INHERIT' as ACL_TYPE
+			from CRM_PROCES_idx_GROUP_to_PROCES gp
+				join CRM_LISTA_ZASOBOW z on(z.ID = gp.ID_GROUP)
+			where gp.ID_PROCES = {$r->ID}
+				{$sqlFilterIdGroups}
+		") as $aclW) {
+			$fixedWskList[] = (object)$aclW;
+		}
+	}
+	foreach ($wsk as $w) {
+		if ('GROUP' != $w->ACL_TYPE) $fixedWskList[] = $w;
+	}
+	$wsk = $fixedWskList;
+	$tree->log('show item -> get_wskazniki inherit', array('get_wskazniki'));
+
+
 	$pytania = array();
 	$tblPytaniaId = $tree->get_param('PytaniaTblId');
 	if ($tree->get_param('editable') && $tree->get_param('HasAclPytaniaTbl')) {
@@ -1989,11 +1926,11 @@ function tree_callback__show_item_from_CRM_PROCES( &$r, &$tree ) {
 		echo' ';
 
 		if ($tree->get_param('ProcesTblId') > 0) {
-			// rem@2016-08 sqix link do nowy edytor: 
+			// rem@2016-08 sqix link do nowy edytor:
 			if($r->TYPE == 'PROCES_INIT') {
 				echo App::link("E", "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=".$tree->get_param('ProcesTblId')."#EDIT/".$r->ID, array('title'=>'Edytuj', 'class'=>'btn-p5'));
 				echo App::link("e", "index.php?_route=UrlAction_ProcesEditor&id=".$r->ID, array('title'=>'Edytuj', 'class'=>'btn-p5'));
-			} else { 
+			} else {
 				echo App::link("E", "index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=".$tree->get_param('ProcesTblId')."#EDIT/".$r->ID, array('title'=>'Edytuj', 'class'=>'btn-p5'));
 			}
 
@@ -2042,13 +1979,14 @@ function tree_callback__show_item_from_CRM_PROCES( &$r, &$tree ) {
 			}
 		}
 	}
-		$bold=false;
-		if ((!empty($_GET['arg1']) && $_GET['arg1'] == $r->ID)
-			|| (!empty($_GET['EDIT']) && $_GET['EDIT']==$r->ID)
-		) {
-			$bold = true;
-		}
-		//if ($bold) echo "***";
+
+	$bold = false;
+	if ((!empty($_GET['arg1']) && $_GET['arg1'] == $r->ID)
+		|| (!empty($_GET['EDIT']) && $_GET['EDIT'] == $r->ID)
+	) {
+		$bold = true;
+	}
+	//if ($bold) echo "***";
 
 	if ($r->IF_TRUE_GOTO > 0) {
 		$tree->log('show item -> fetch-proces_flag - start');
@@ -2056,15 +1994,15 @@ function tree_callback__show_item_from_CRM_PROCES( &$r, &$tree ) {
 		$tree->log('show item -> fetch-proces_flag', array('fetch-proces_flag'));
 		echo App::link($link_out, "#TREE".$r->IF_TRUE_GOTO, array('onclick'=>"return scrollToProces('".$r->IF_TRUE_GOTO."');", 'title'=>$r->IF_TRUE_GOTO_FLAG." ".$r->IF_TRUE_GOTO, 'class'=>'btn-p5'));
 		echo "<a href=procesy5.php?task=PROCES_VIEW&id_proces=".$r->IF_TRUE_GOTO.">&gt;&gt;</a>";
-		if(empty($r->DESC)) {
-					$sql="select `DESC`,`OPIS` from CRM_PROCES where ID='".$r->IF_TRUE_GOTO."' limit 1";
-					$rs=DB::query($sql);
-					while($h=DB::fetch($rs)) {
-						echo "<font color=grey><b>".$h->DESC."</b>";
-						if ($tree->get_param('rozwin_opis') && $h->OPIS) echo ' '.$h->OPIS;
-						echo "</font>";
-					}
-			 }
+		if (empty($r->DESC)) {
+			$sql = "select `DESC`,`OPIS` from CRM_PROCES where ID='".$r->IF_TRUE_GOTO."' limit 1";
+			$rs = DB::query($sql);
+			while ($h = DB::fetch($rs)) {
+				echo "<font color=grey><b>".$h->DESC."</b>";
+				if ($tree->get_param('rozwin_opis') && $h->OPIS) echo ' '.$h->OPIS;
+				echo "</font>";
+			}
+		}
 	}
 
 	if ($r->has_childrens) {
@@ -2085,13 +2023,11 @@ function tree_callback__show_item_from_CRM_PROCES( &$r, &$tree ) {
 				echo "<a href=?task=PROCES_VIEW&id_proces=".$r->ID."&HIDE_PANEL=0&show_big_img=1&group_stanowiska=1>P</a>";
 				echo "<a href=?task=PROCES_VIEW_LIST&id_proces=".$r->ID."&HIDE_PANEL=0&show_big_img=1&group_stanowiska=1>L</a>";
 				echo "<a href=index.php?FUNCTION_INIT=GRAPH_VIEW_PROCES&id_proces={$r->ID} target=blank>M</a>";
-
 			} else {
 				if ( strstr($r->TYPE,'PROCES_GROUP')) {
 					echo "&nbsp;<a href=?task=PROCES_VIEW_LIST&id_proces=".$r->ID."&HIDE_PANEL=0&show_big_img=1&group_stanowiska=1>L</a>";
 					echo " <a href=index.php?FUNCTION_INIT=GRAPH_VIEW_PROCES&id_proces={$r->ID}&PROCES_INIT_SCAN=1 target=blank>M</a>";
-					}
-
+				}
 			}
 		}
 		//if ($bold) echo "***";
@@ -2176,7 +2112,7 @@ function tree_callback__show_item_from_CRM_PROCES( &$r, &$tree ) {
 
 		$wsk_cnt = count( $wsk );
 		foreach ($wsk as $w) {
-			if (is_array($w)) {
+			if (is_array($w)) {// if $_GET['group_stanowiska']
 				$stanowiska = array();
 				foreach ($w as $vStanowisko) {
 					$stanowiska[] = "[{$vStanowisko->ID}] {$vStanowisko->DESC}";
@@ -2202,12 +2138,30 @@ function tree_callback__show_item_from_CRM_PROCES( &$r, &$tree ) {
 					$w_title_parents_out[] = ''.$w_p->ID.' '.$w_p->TYPE.' '.$w_p->DESC.'';
 				}
 				$w_parents_out = ' <span class="wsk_parents">'.implode(' / ', $w_parents_out).'</span>';
-				$w_title_parents_out = (!empty($w_title_parents_out))? ' title="'.implode(' / ', $w_title_parents_out).'"' : '';
+				$w_title_parents_out = (!empty($w_title_parents_out))? implode(' / ', $w_title_parents_out) : '';
 			}
 
 			echo'<li'.((--$wsk_cnt)? '' : ' class="tree-last"').'>';
+			if ('INHERIT' == $w->ACL_TYPE) {
+				UI::startTag('p', ['style' => "color:#aaa", 'title' => "Stanowiska dziedziczone z procesu/ów wywołujących (GOTO)"]);
+					UI::tag('span', ['title' => $w_title_parents_out], "[{$w->ID}]");
+					echo " {$w->TYPE} ";
+					UI::tag('span', [], $w->DESC);
+				UI::endTag('p');
+				continue;
+			} else {
+
+			}
+
 			echo'<p>';
-			echo ' <span class="btn-box btn-box-silver">'.$w->CW_ID.'</span>';
+			// echo ' <span class="btn-box btn-box-silver">'.$w->CW_ID.'</span>';
+			('GROUP' == $w->ACL_TYPE)
+				? UI::startTag('p', ['style' => "color:#daa520"])
+				: UI::startTag('p', []);
+			('GROUP' == $w->ACL_TYPE)
+				? UI::tag('span', ['style' => "color:#daa520", 'title' => $w_title_parents_out], "[{$w->ID}]")
+				: UI::tag('span', ['class' => "green", 'title' => $w_title_parents_out], "[{$w->ID}]");
+
 			if ($tree->get_param('editable')) {
 				echo App::link("<b>^</b>", array('function_init'=>'SORT_PRIO_WSKAZNIK', 'arg1'=>$w->CW_ID, 'arg1_val'=>'upup','_hash'=>rand(0,9999),'#'=>'TREE'.$r->ID), array('class'=>"btn-clean", 'title'=>"w gore o 5 pol"));
 				echo App::link("^", array('function_init'=>'SORT_PRIO_WSKAZNIK', 'arg1'=>$w->CW_ID, 'arg1_val'=>'up','_hash'=>rand(0,9999),'#'=>'TREE'.$r->ID), array('class'=>"btn-clean", 'title'=>"w gore"));
@@ -2256,9 +2210,8 @@ function tree_callback__show_item_from_CRM_PROCES( &$r, &$tree ) {
 				}
 			}
 
-			echo'<span class="green"'.$w_title_parents_out.'>['.$w->ID.']</span>';
-			echo' <i title="'.$w->CP_PYTANIE.' '.$w->CP_OPIS.'">'.$w->CP_FORM_TREAT.'</i>';
-			echo'';
+			if (!empty($w->CP_FORM_TREAT)) echo' <span title="'.$w->CP_PYTANIE.' '.$w->CP_OPIS.'" style="color:#999">'.str_replace(',', '', $w->CP_FORM_TREAT).'</span>';
+
 			echo ' '.$w->TYPE.'';
 			echo ' <b>'.$w->DESC.'</b> ';
 			if ($tree->get_param('editable')) {

+ 1 - 2
SE/se-lib/TableAjax.php

@@ -4664,13 +4664,12 @@ jQuery(document).ready(function(){
 			}
 			else {
 				$response->type = 'error';
-				$response->msg = "Nie udało się utworzyć nowego rekordu!";
+				$response->msg = "Nie udało się utworzyć nowego rekordu!";
 			}
 
 		}
 		catch (Exception $e) {
 			$response->type = 'error';
-			$response->msg = "Wystąpiły błędy!";
 			$response->msg = $e->getMessage();
 		}
 		return $response;