Ver Fonte

FixAcl update view for proces init map with goto lvl 2

Piotr Labudda há 10 anos atrás
pai
commit
0e790116e5
2 ficheiros alterados com 50 adições e 8 exclusões
  1. 36 7
      SE/se-lib/TableAjax.php
  2. 14 1
      SE/se-lib/UserAcl.php

+ 36 - 7
SE/se-lib/TableAjax.php

@@ -240,6 +240,7 @@ class TableAjax extends ViewAjax {
 			$procesIds = array_keys($pInitList);
 			$mapTree = $userAcl->getProcesInitMapTreeOnlyIds($procesIds);
 			DBG::_('DBG_MAP', '1', "mapTree", $mapTree, __CLASS__, __FUNCTION__, __LINE__);
+			DBG::_('DBG_MAP', '1', "pInitList", $pInitList, __CLASS__, __FUNCTION__, __LINE__);
 			$pInitListSelected = $this->getProcesInitSelected();
 		}
 		$hasGeomFlds = $this->hasGeomFields();
@@ -399,22 +400,32 @@ class TableAjax extends ViewAjax {
 							<span class="caret"></span>
 						</a>
 						<ul class="dropdown-menu pull-left">
+							<?php $liStyle = "white-space:nowrap; overflow:hidden; max-width:500px; /* text-overflow:ellipsis; */"; ?>
 							<?php foreach ($mapTree as $vInitId => $gotoIds) : ?>
 								<?php if ($pInitListSelected && $pInitListSelected == $vInitId) : ?>
-								<li class="disabled">
+								<li class="disabled" style="<?php echo $liStyle; ?>">
 								<?php else : ?>
-								<li>
+								<li style="<?php echo $liStyle; ?>">
 								<?php endif; ?>
 									<?php $this->_viewProcesInitListItem($vInitId, $gotoIds, $pInitList); ?>
 								</li>
-								<?php foreach ($gotoIds as $vGotoId => $vBool) : ?>
+								<?php foreach ($gotoIds as $vGotoId => $gotoLvl2Ids) : ?>
 									<?php if ($pInitListSelected && $pInitListSelected == $vGotoId) : ?>
-									<li class="disabled">
+									<li class="disabled" style="<?php echo $liStyle; ?>">
 									<?php else : ?>
-									<li>
+									<li style="<?php echo $liStyle; ?>">
 									<?php endif; ?>
 										<?php $this->_viewProcesGotoAndRetListItem($vGotoId, $pInitList); ?>
 									</li>
+									<?php foreach ($gotoLvl2Ids as $vGotoLvl2Id => $vBool) : ?>
+										<?php if ($pInitListSelected && $pInitListSelected == $vGotoLvl2Id) : ?>
+										<li class="disabled" style="<?php echo $liStyle; ?>">
+										<?php else : ?>
+										<li style="<?php echo $liStyle; ?>">
+										<?php endif; ?>
+											<?php $this->_viewProcesGotoAndRetLvl2ListItem($vGotoLvl2Id, $pInitList); ?>
+										</li>
+									<?php endforeach; ?>
 								<?php endforeach; ?>
 							<?php endforeach; ?>
 						</ul>
@@ -2957,7 +2968,7 @@ function hidePopover() {
 				 style="color:#aaa;"
 				 onmouseover="this.style.color='#337AB7'"
 				 onmouseout="this.style.color='#aaa'"></i>
-			<?php echo "{{$kId}} " . V::strShortUtf8($vLabel, 50); ?>
+			<?php echo "{{$kId}} {$vLabel}"; ?>
 		</a>
 <?php
 	}
@@ -2967,13 +2978,31 @@ function hidePopover() {
 		// TODO:?: prevent to execute procedure
 		?>
 		<a href="index.php?FUNCTION_INIT=MENU_SELECT_PROCES&_action=setPermsByProces&id_proces=<?php echo $kId; ?>&MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=<?php echo $this->_zasobID; ?>" title="<?php echo htmlspecialchars("{{$kId}} {$vLabel}"); ?>">
+			<span style="padding:10px;"></span>
 			<i class="glyphicon glyphicon-arrow-right" style="color:#aaa"></i>
 			<i class="glyphicon glyphicon-info-sign"
 				 onclick="window.open('procesy5.php?task=PROCES_VIEW_LIST&id_proces=<?php echo $kId; ?>&HIDE_PANEL=0&show_big_img=1&group_stanowiska=1');return false;"
 				 style="color:#aaa;"
 				 onmouseover="this.style.color='#337AB7'"
 				 onmouseout="this.style.color='#aaa'"></i>
-			<?php echo "{{$kId}} " . V::strShortUtf8($vLabel, 50); ?>
+			<?php echo "{{$kId}} {$vLabel}"; ?>
+		</a>
+<?php
+	}
+	public function _viewProcesGotoAndRetLvl2ListItem($vGotoLvl2Id, $pInitList) {
+		$vLabel = $pInitList[$vGotoLvl2Id];
+		$kId = $vGotoLvl2Id;
+		// TODO:?: prevent to execute procedure
+		?>
+		<a href="index.php?FUNCTION_INIT=MENU_SELECT_PROCES&_action=setPermsByProces&id_proces=<?php echo $kId; ?>&MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=<?php echo $this->_zasobID; ?>" title="<?php echo htmlspecialchars("{{$kId}} {$vLabel}"); ?>">
+			<span style="padding:20px;"></span>
+			<i class="glyphicon glyphicon-arrow-right" style="color:#aaa"></i>
+			<i class="glyphicon glyphicon-info-sign"
+				 onclick="window.open('procesy5.php?task=PROCES_VIEW_LIST&id_proces=<?php echo $kId; ?>&HIDE_PANEL=0&show_big_img=1&group_stanowiska=1');return false;"
+				 style="color:#aaa;"
+				 onmouseover="this.style.color='#337AB7'"
+				 onmouseout="this.style.color='#aaa'"></i>
+			<?php echo "{{$kId}} {$vLabel}"; ?>
 		</a>
 <?php
 	}

+ 14 - 1
SE/se-lib/UserAcl.php

@@ -626,7 +626,12 @@ SQL;
 		}
 		foreach ($map as $r) {
 			if ('GOTO_AND_RETURN' == $r->TYPE) {
-				$mapTree[$r->idx_MAIN_PROCES_INIT_ID][$r->ID_PROCES] = true;
+				$mapTree[$r->idx_MAIN_PROCES_INIT_ID][$r->ID_PROCES] = array();
+			}
+		}
+		foreach ($map as $r) {
+			if ('GOTO_AND_RETURN_LVL2' == $r->TYPE) {
+				$mapTree[$r->idx_MAIN_PROCES_INIT_ID][$r->idx_GOTO_LVL2_INIT_ID][$r->ID_PROCES] = true;
 			}
 		}
 		return $mapTree;
@@ -644,6 +649,13 @@ SQL;
 				, i.`idx_PROCES_INIT_ID`
 				, i.`idx_MAIN_PROCES_INIT_ID`
 				, i.`idx_PROCES_WITH_GROUPS_ID`
+				, IF(i.`TYPE`='GOTO_AND_RETURN_LVL2'
+					, (select ig.`idx_PROCES_INIT_ID`
+						from `CRM_PROCES_idx` ig
+						where ig.`ID_PROCES`=i.`PARENT_ID`
+						limit 1)
+					, 0
+				) as idx_GOTO_LVL2_INIT_ID
 			from `CRM_PROCES_idx` i
 			where i.`ID_PROCES` in({$sqlIds})
 				and i.`idx_MAIN_PROCES_INIT_ID` in({$sqlIds})
@@ -654,6 +666,7 @@ SQL;
 		while ($r = $db->fetch($res)) {
 			$map[] = $r;
 		}
+		//DBG::table("MAP", $map, __CLASS__, __FUNCTION__, __LINE__);
 		return $map;
 	}