Преглед изворни кода

#35 zasoby menu search by typespecial __ZASOB

Piotr Labudda пре 11 година
родитељ
комит
4139b54d85
4 измењених фајлова са 100 додато и 32 уклоњено
  1. 36 0
      SE/procesy5.php
  2. 32 29
      SE/se-lib/ProcesMenu.php
  3. 5 3
      SE/se-lib/TypespecialVariable.php
  4. 27 0
      SE/superedit-PROCES_MENU.php

+ 36 - 0
SE/procesy5.php

@@ -193,6 +193,42 @@ jQuery(document).ready(function(){
 	});
 	});
 });
 });
 	</script>
 	</script>
+	<link rel="stylesheet" href="stuff/jquery.selectize/css/selectize.bootstrap2.css" type="text/css" />
+	<script src="stuff/jquery.selectize/js/standalone/selectize.min.js"></script>
+	<style type="text/css">
+.typepsecial .selectize-input { width:366px; padding:4px 6px; }
+.typepsecial .selectize-control::before {
+	-moz-transition: opacity 0.2s;
+	-webkit-transition: opacity 0.2s;
+	transition: opacity 0.2s;
+	content: ' ';
+	z-index: 2;
+	position: absolute;
+	display: block;
+	top: 12px;
+	right: 34px;
+	width: 16px;
+	height: 16px;
+	background: url(stuff/i/loading.gif);
+	background-size: 16px 16px;
+	opacity: 0;
+}
+.typepsecial .selectize-control.loading::before {
+	opacity: 0.4;
+}
+.typepsecial .selectize-control.single .selectize-input {
+	color: #333;
+	text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
+	background-color: #fff;
+	background-image: none;
+	background-repeat: none;
+	border-color: #ccc;
+	filter: none;
+	-webkit-box-shadow: none;
+	-moz-box-shadow: none;
+	box-shadow: none;
+}
+	</style>
 	<?php
 	<?php
 		lay_procesy_css();
 		lay_procesy_css();
 		App::show_head_css();
 		App::show_head_css();

+ 32 - 29
SE/se-lib/ProcesMenu.php

@@ -364,6 +364,7 @@ class ProcesMenu {
 		if (User::isAdmin()) {
 		if (User::isAdmin()) {
 			$typeSpecialUserId = TypespecialVariable::getInstance(-1, '__USER_ID');
 			$typeSpecialUserId = TypespecialVariable::getInstance(-1, '__USER_ID');
 		}
 		}
+		$typeSpecialZasob = TypespecialVariable::getInstance(-1, '__ZASOB');
 
 
 		?>
 		?>
 <div id="SE-menu" class="navbar navbar-inverse" style="position: static;">
 <div id="SE-menu" class="navbar navbar-inverse" style="position: static;">
@@ -415,41 +416,43 @@ class ProcesMenu {
 							<li>
 							<li>
 								<a href="procesy5.php?task=CRM_LISTA_ZASOBOW&filtr_id=" title="Wyświetlenie drzewa zasobów">Wszystkie Zasoby</a>
 								<a href="procesy5.php?task=CRM_LISTA_ZASOBOW&filtr_id=" title="Wyświetlenie drzewa zasobów">Wszystkie Zasoby</a>
 							</li>
 							</li>
-							<li>
-								<from id="ProcesMenuZasobSearchFrm" class="form-search" method="GET" action="procesy5.php">
-									<input type="hidden" name="task" value="CRM_LISTA_ZASOBOW">
-									<div class="input-append" style="padding:2px 6px">
-										<input id="ProcesMenuZasobSearchInput" type="text" name="filtr_id" class="span2 search-query" placeholder="Nr zasobu">
-										<input id="ProcesMenuZasobSearchSubmit" type="submit" class="btn" value="Szukaj" />
-									</div>
-								</from>
-								<script>
-function procesMenuZasobSearchGo() {
-	var id = jQuery('#ProcesMenuZasobSearchInput').val();
-	if ('' !== id) {
-		window.location.href = window.location.protocol + '//' + window.location.host + window.location.pathname.substr(0, window.location.pathname.lastIndexOf('/')) + '/procesy5.php?task=CRM_LISTA_ZASOBOW&filtr_id=' + id;
-	}
-}
+
+							<li class="divider"></li>
+							<li class="nav-header"><nobr>Wyszukaj:</nobr></li>
+								<?php if (!$typeSpecialZasob) : ?>
+									<li>
+										<div class="alert alert-error">Brak typespecial __ZASOB</div>
+									</li>
+								<?php else : ?>
+									<li>
+										<form id="ProcesMenuZasobFrm" action="procesy5.php" method="GET" style="padding:0 20px">
+											<input type="hidden" name="task" value="CRM_LISTA_ZASOBOW">
+											<?php
+												$fldName = 'ProcesMenu__filtr_id';
+												$fldParams = array();
+												$fldParams['allowCreate'] = false;
+												$fldParams['ajaxDataUrlBase'] = "index.php?FUNCTION_INIT=PROCES_MENU&HEADER_NOT_INIT=YES&_task=TYPESPECIAL&fld={$fldName}";
+												$fldParams['placeholder'] = 'Szukaj...';
+												$fldParams['formFieldName'] = 'filtr_id';
+												//$fldParams['ajaxDataUrlBase'] .= "&DBG_TS=3";
+												echo $typeSpecialZasob->showFormItem($tblID = -1, $fldName, $selValue = '', $fldParams);
+											?>
+											<input class="btn btn-mini btn-primary" type="submit" value="Wybierz" />
+											<script>
 jQuery(document).ready(function() {
 jQuery(document).ready(function() {
-	jQuery('#ProcesMenuZasobSearchInput').on('click', function(e) {
-		return false;
-	});
-	jQuery('#ProcesMenuZasobSearchInput').on('keypress', function(e) {
-		if (e.which == 13) {
-			procesMenuZasobSearchGo();
-		}
-	});
-	jQuery('#ProcesMenuZasobSearchSubmit').on('click', function(e) {
-		procesMenuZasobSearchGo();
-	});
 	jQuery('#ProcesMenuZasobDropdownLink').on('click', function(e) {
 	jQuery('#ProcesMenuZasobDropdownLink').on('click', function(e) {
 		setTimeout(function(){
 		setTimeout(function(){
-			jQuery('#ProcesMenuZasobSearchInput').focus();
+			jQuery('#ts-<?php echo $fldName; ?>')
+				.next('.selectize-control')
+				.find('input:first')
+				.focus();
 		}, 200);
 		}, 200);
 	});
 	});
 });
 });
-								</script>
+											</script>
+										</form>
 							</li>
 							</li>
+								<?php endif; ?>
 						</ul>
 						</ul>
 					</li>
 					</li>
 					<li<?php if ($active == 'obowiazki') echo ' class="active"'; ?>><a href="procesy5.php?task=CRM_WYSWIETL_OBOWIAZKI" title="Wyswietlenie OBOWIAZKOW">Obowiązki</a></li>
 					<li<?php if ($active == 'obowiazki') echo ' class="active"'; ?>><a href="procesy5.php?task=CRM_WYSWIETL_OBOWIAZKI" title="Wyswietlenie OBOWIAZKOW">Obowiązki</a></li>
@@ -508,7 +511,7 @@ jQuery(document).ready(function() {
 							<li><a href="index.php?LOGIN=PERMS_RELOAD" title="Przeładuj uprawnienia"><i class="icon-refresh"></i> Przeładuj uprawnienia</a></li>
 							<li><a href="index.php?LOGIN=PERMS_RELOAD" title="Przeładuj uprawnienia"><i class="icon-refresh"></i> Przeładuj uprawnienia</a></li>
 							<?php if (User::isAdmin()) : ?>
 							<?php if (User::isAdmin()) : ?>
 								<li class="divider"></li>
 								<li class="divider"></li>
-							<li class="nav-header"><nobr>Pokaż testy pracownika:</nobr></li>
+								<li class="nav-header"><nobr>Pokaż testy pracownika:</nobr></li>
 								<?php if (!$typeSpecialUserId) : ?>
 								<?php if (!$typeSpecialUserId) : ?>
 									<li>
 									<li>
 										<div class="alert alert-error">Brak typespecial __USERS_ID</div>
 										<div class="alert alert-error">Brak typespecial __USERS_ID</div>

+ 5 - 3
SE/se-lib/TypespecialVariable.php

@@ -113,8 +113,10 @@ class TypespecialVariable extends TypespecialBase {
 		$ajaxDataUrlBase = "index-ajax.php?_cls=TableAjax&_zasobID={$tblID}&_task=TYPESPECIAL&fldID={$this->fldID}";
 		$ajaxDataUrlBase = "index-ajax.php?_cls=TableAjax&_zasobID={$tblID}&_task=TYPESPECIAL&fldID={$this->fldID}";
 		$ajaxDataUrlBase = V::get('ajaxDataUrlBase', $ajaxDataUrlBase, $params);
 		$ajaxDataUrlBase = V::get('ajaxDataUrlBase', $ajaxDataUrlBase, $params);
 
 
+		$frmFldName = V::get('formFieldName', $fName, $params);
+
 		$out .= '<script>' . "
 		$out .= '<script>' . "
-(function(){
+jQuery(document).ready(function(){
 	var fldNode=jQuery('#{$fName}'), tsNode=jQuery('#ts-{$fName}');
 	var fldNode=jQuery('#{$fName}'), tsNode=jQuery('#ts-{$fName}');
 	if (!fldNode && !tsNode) {
 	if (!fldNode && !tsNode) {
 		return;
 		return;
@@ -125,7 +127,7 @@ class TypespecialVariable extends TypespecialBase {
 	if (fldNode.parent().hasClass('show-last-value')) {
 	if (fldNode.parent().hasClass('show-last-value')) {
 		fldNode.parent().hide();
 		fldNode.parent().hide();
 	}
 	}
-	tsNode.attr('name', '{$fName}');
+	tsNode.attr('name', '{$frmFldName}');
 	tsNode.attr('tabindex', fldNode.attr('tabindex'));
 	tsNode.attr('tabindex', fldNode.attr('tabindex'));
 	
 	
 
 
@@ -211,7 +213,7 @@ class TypespecialVariable extends TypespecialBase {
 		}
 		}
 	});
 	});
 
 
-})()
+});
 		" . '</script>';
 		" . '</script>';
 
 
 		return $out;
 		return $out;

+ 27 - 0
SE/superedit-PROCES_MENU.php

@@ -24,6 +24,33 @@ function PROCES_MENU() {
 						exit;
 						exit;
 					}
 					}
 
 
+					$query = V::get('q', '', $_REQUEST);
+					$rawRows = null;
+					$jsonData = array();
+					$queryParams = array();
+					$rows = $typeSpecialUserId->getValuesWithExports($query, $queryParams);
+					if($DBG){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">rows('.$query.') (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($rows);echo'</pre>';}
+					foreach ($rows as $kID => $vItem) {
+						$itemJson = new stdClass();
+						$itemJson->id = $vItem->id;
+						$itemJson->name = $vItem->param_out;
+						if (!empty($vItem->exports)) {
+							$itemJson->exports = $vItem->exports;
+						}
+						$jsonData[] = $itemJson;
+					}
+					echo json_encode($jsonData);
+					break;
+				}
+				case 'ProcesMenu__filtr_id': {
+					$typeSpecialUserId = TypespecialVariable::getInstance(-1, '__ZASOB');
+					if (!$typeSpecialUserId) {
+						$jsonData = new stdClass();
+						$jsonData->message = "TypeSpecial '__ZASOB' not exists";
+						echo json_encode($jsonData);
+						exit;
+					}
+
 					$query = V::get('q', '', $_REQUEST);
 					$query = V::get('q', '', $_REQUEST);
 					$rawRows = null;
 					$rawRows = null;
 					$jsonData = array();
 					$jsonData = array();