浏览代码

Proces add Zasob add by zasob type (group, url, column)

Piotr Labudda 11 年之前
父节点
当前提交
77c9534ba0
共有 3 个文件被更改,包括 213 次插入50 次删除
  1. 1 1
      SE/VERSION
  2. 17 5
      SE/se-lib/TypespecialVariable.php
  3. 195 44
      SE/superedit-PROCES_ADD_ZASOB.php

+ 1 - 1
SE/VERSION

@@ -1 +1 @@
-3.10.1
+3.10.2

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

@@ -37,8 +37,8 @@ class TypespecialVariable extends TypespecialBase {
 	/**
 	 * @returns [{id:int, param_out:str, exports:[]}]
 	 */
-	public function getValuesWithExports($query) {
-		$items = $this->_getValues($query);
+	public function getValuesWithExports($query, $params = array()) {
+		$items = $this->_getValues($query, false, $params);
 		
 		return $items;
 	}
@@ -216,7 +216,7 @@ class TypespecialVariable extends TypespecialBase {
 	 * @params $strict - search only euqal value
 	 * @returns [{id:int, param_out:str, exports:[]}]
 	 */
-	private function _getValues($query, $strict = false) {
+	private function _getValues($query, $strict = false, $params = array()) {
 		$values = array();
 
 		switch ($this->fldName) {
@@ -470,17 +470,29 @@ class TypespecialVariable extends TypespecialBase {
 				$query = trim($query, ' %');
 				$query = $db->_($query);
 				$sqlLimit = 20;
-				$sql = "select z.`ID`, z.`DESC`, z.`TYPE`
+				$sqlSelectLabel = "concat(z.`TYPE`, ' ', z.`DESC`)";
+				$sqlWhere = "";
+				if (!empty($params['zasob_type_in'])) {
+					if (is_scalar($params['zasob_type_in'])) $params['zasob_type_in'] = array($params['zasob_type_in']);
+					$sqlWhere = " and z.`TYPE` IN('" . implode("','", $params['zasob_type_in']) . "') ";
+
+					if (in_array('KOMORKA', $params['zasob_type_in'])) {
+						$sqlSelectLabel = "concat(z.`TYPE`, ' ', z.`DESC` , ' (', (select zp.`DESC` from `CRM_LISTA_ZASOBOW` as zp where zp.`ID`=z.`PARENT_ID` limit 1), ')')";
+					}
+				}
+				$sql = "select z.`ID`
+						, {$sqlSelectLabel} as `LABEL`
 					from `CRM_LISTA_ZASOBOW` as z
 					where z.`A_STATUS` in('NORMAL', 'WAITING')
 						and (z.`DESC` like '%{$query}%' or z.`ID` like '%{$query}%')
+						{$sqlWhere}
 					-- group by z.`DESC`
 					limit {$sqlLimit}
 				";
 				if(V::get('DBG_TS', 0, $_GET) > 2){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">sql (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($sql);echo'</pre>';}
 				$res = $db->query($sql);
 				while ($r = $db->fetch($res)) {
-					$values[] = (object)array('id'=>$r->ID, 'param_out'=>$r->TYPE . ' ' . $r->DESC);
+					$values[] = (object)array('id'=>$r->ID, 'param_out'=>$r->LABEL);
 				}
 				if(V::get('DBG_TS', 0, $_GET) > 2){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">values (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($values);echo'</pre>';}
 				break;

+ 195 - 44
SE/superedit-PROCES_ADD_ZASOB.php

@@ -36,10 +36,18 @@ function PROCES_ADD_ZASOB() {
 			}
 			break;
 		}
+		case 'FRM_ADD_ZASOB_URL':
+		case 'FRM_ADD_ZASOB_GROUP':
+		case 'FRM_ADD_ZASOB_COLUMN':
 		case 'FRM_ADD_ZASOB': {
 			if(V::get('DBG_NG', '', $_GET)){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">post (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($_POST);echo'</pre>';}
 			$procesID = V::get('procesID', 0, $_GET, 'int');
-			$addZasobID = V::get('addZasobID', 0, $_POST, 'int');
+			switch ($task) {
+				case 'FRM_ADD_ZASOB_URL': $addZasobID = V::get('addZasobUrlID', 0, $_POST, 'int'); break;
+				case 'FRM_ADD_ZASOB_GROUP': $addZasobID = V::get('addZasobGroupID', 0, $_POST, 'int'); break;
+				case 'FRM_ADD_ZASOB_COLUMN': $addZasobID = V::get('addZasobColumnID', 0, $_POST, 'int'); break;
+				default: $addZasobID = V::get('addZasobID', 0, $_POST, 'int');
+			}
 			$addPrzypadekID = V::get('addPrzypadekID', 0, $_POST, 'int');
 			if ($procesID > 0 && $addZasobID > 0 && $addPrzypadekID > 0) {
 				$addComment = V::get('addComment', '', $_POST);
@@ -84,6 +92,9 @@ function PROCES_ADD_ZASOB() {
 			$fld = V::get('fld', '', $_GET);
 			switch ($fld) {
 				case 'editZasobID':
+				case 'addZasobUrlID':
+				case 'addZasobGroupID':
+				case 'addZasobColumnID':
 				case 'addZasobID': {
 					Lib::loadClass('TypespecialVariable');
 					$typeSpecialZasob = TypespecialVariable::getInstance(-1, '__ZASOB');
@@ -91,7 +102,18 @@ function PROCES_ADD_ZASOB() {
 					$query = V::get('q', '', $_REQUEST);
 					$rawRows = null;
 					$jsonData = array();
-					$rows = $typeSpecialZasob->getValuesWithExports($query);
+					// _zasob_type
+					$queryParams = array();
+					if ('addZasobUrlID' == $fld) {
+						$queryParams['zasob_type_in'] = 'URL';
+					}
+					else if ('addZasobGroupID' == $fld) {
+						$queryParams['zasob_type_in'] = array('STANOWISKO', 'PODMIOT');
+					}
+					else if ('addZasobColumnID' == $fld) {
+						$queryParams['zasob_type_in'] = 'KOMORKA';
+					}
+					$rows = $typeSpecialZasob->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();
@@ -316,6 +338,14 @@ function PROCES_ADD_ZASOB() {
 	Lib::loadClass('TypespecialVariable');
 	$typeSpecialZasob = TypespecialVariable::getInstance(-1, '__ZASOB');
 
+	$uprawnienia = array();
+	$db = DB::getDB();
+	$sql = "select p.* from `CRM_PRZYPADEK` as p ";
+	$res = $db->query($sql);
+	while ($r = $db->fetch($res)) {
+		$uprawnienia[$r->ID] = "{$r->FORM_TREAT}: {$r->OPIS}";// {$r->NAZWA} | {$r->PYTANIE} | 
+	}
+
 	?>
 	<style type="text/css">
 .conn_wsk {}
@@ -384,53 +414,174 @@ function PROCES_ADD_ZASOB() {
 			<?php endif; ?>
 		</ul>
 		<?php if ($typeSpecialZasob) : ?>
-			<h5>Dodaj zasób:</h5>
-			<form action="" method="POST" class="form-horizontal conn_wsk-frm">
-				<input type="hidden" name="_task" value="FRM_ADD_ZASOB">
-				<div class="control-group">
-					<label class="control-label" for="addZasobID">Zasób</label>
-					<div class="controls">
-						<?php
-							$fName = 'addZasobID';
-							$fldParams = array();
-							$fldParams['allowCreate'] = false;
-							$fldParams['ajaxDataUrlBase'] = "index.php?FUNCTION_INIT=" . __FUNCTION__ . "&HEADER_NOT_INIT=YES&_task=TYPESPECIAL&fld={$fName}";
-							//$fldParams['ajaxDataUrlBase'] .= "&DBG_TS=3";
-							echo $typeSpecialZasob->showFormItem($tblID = -1, $fName, $selValue = '', $fldParams);
-						?>
+			<br>
+			<div class="tabbable tabs-left">
+				<ul class="nav nav-tabs">
+					<li style="background:#ddd;"><b style="display:block;margin:0;padding:8px 13px;">Dodaj:</b></li>
+					<li><a href="#tab-add-stanowisko" data-toggle="tab">Stanowisko</a></li>
+					<li><a href="#tab-add-column" data-toggle="tab">Komórkę</a></li>
+					<li><a href="#tab-add-url" data-toggle="tab">Narzędzie</a></li>
+					<li class="active"><a href="#tab-add-zasob" data-toggle="tab">Inny zasób</a></li>
+				</ul>
+				<div class="tab-content">
+					<div class="tab-pane" id="tab-add-stanowisko">
+						<form action="" method="POST" class="form-horizontal conn_wsk-frm">
+							<input type="hidden" name="_task" value="FRM_ADD_ZASOB_GROUP">
+							<div class="control-group">
+								<label class="control-label" for="addZasobGroupID">Stanowisko</label>
+								<div class="controls">
+									<?php
+										$fName = 'addZasobGroupID';
+										$fldParams = array();
+										$fldParams['allowCreate'] = false;
+										$fldParams['ajaxDataUrlBase'] = "index.php?FUNCTION_INIT=" . __FUNCTION__ . "&HEADER_NOT_INIT=YES&_task=TYPESPECIAL&fld={$fName}";
+										//$fldParams['ajaxDataUrlBase'] .= "&DBG_TS=3";
+										echo $typeSpecialZasob->showFormItem($tblID = -1, $fName, $selValue = '', $fldParams);
+									?>
+								</div>
+							</div>
+							<div class="control-group">
+								<label class="control-label" for="addPrzypadekID">Uprawnienia</label>
+								<div class="controls">
+									<select name="addPrzypadekID" style="width:366px;" size="6">
+										<?php foreach($uprawnienia as $kId => $vPermLabel) : ?>
+											<option value="<?php echo $kId; ?>"><?php echo $vPermLabel; ?></option>
+										<?php endforeach; ?>
+									</select>
+								</div>
+							</div>
+							<div class="control-group">
+								<label class="control-label" for="addComment">Komentarz</label>
+								<div class="controls">
+									<textarea name="addComment" cols="80" rows="6" style="width:354px;"></textarea>
+								</div>
+							</div>
+							<div class="control-group">
+								<div class="controls">
+									<button type="submit" class="btn">dodaj</button>
+								</div>
+							</div>
+						</form>
 					</div>
-				</div>
-				<div class="control-group">
-					<label class="control-label" for="addPrzypadekID">Uprawnienia</label>
-					<div class="controls">
-						<?php
-							$uprawnienia = array();
-							$db = DB::getDB();
-							$sql = "select p.* from `CRM_PRZYPADEK` as p ";
-							$res = $db->query($sql);
-							while ($r = $db->fetch($res)) {
-								$uprawnienia[$r->ID] = "{$r->FORM_TREAT}: {$r->OPIS}";// {$r->NAZWA} | {$r->PYTANIE} | 
-							}
-						?>
-						<select name="addPrzypadekID" style="width:366px;" size="6">
-							<?php foreach($uprawnienia as $kId => $vPermLabel) : ?>
-								<option value="<?php echo $kId; ?>"><?php echo $vPermLabel; ?></option>
-							<?php endforeach; ?>
-						</select>
+					<div class="tab-pane" id="tab-add-column">
+						<form action="" method="POST" class="form-horizontal conn_wsk-frm">
+							<input type="hidden" name="_task" value="FRM_ADD_ZASOB_COLUMN">
+							<div class="control-group">
+								<label class="control-label" for="addZasobColumnID">Komórka</label>
+								<div class="controls">
+									<?php
+										$fName = 'addZasobColumnID';
+										$fldParams = array();
+										$fldParams['allowCreate'] = false;
+										$fldParams['ajaxDataUrlBase'] = "index.php?FUNCTION_INIT=" . __FUNCTION__ . "&HEADER_NOT_INIT=YES&_task=TYPESPECIAL&fld={$fName}";
+										//$fldParams['ajaxDataUrlBase'] .= "&DBG_TS=3";
+										echo $typeSpecialZasob->showFormItem($tblID = -1, $fName, $selValue = '', $fldParams);
+									?>
+								</div>
+							</div>
+							<div class="control-group">
+								<label class="control-label" for="addPrzypadekID">Uprawnienia</label>
+								<div class="controls">
+									<select name="addPrzypadekID" style="width:366px;" size="6">
+										<?php foreach($uprawnienia as $kId => $vPermLabel) : ?>
+											<option value="<?php echo $kId; ?>"><?php echo $vPermLabel; ?></option>
+										<?php endforeach; ?>
+									</select>
+								</div>
+							</div>
+							<div class="control-group">
+								<label class="control-label" for="addComment">Komentarz</label>
+								<div class="controls">
+									<textarea name="addComment" cols="80" rows="6" style="width:354px;"></textarea>
+								</div>
+							</div>
+							<div class="control-group">
+								<div class="controls">
+									<button type="submit" class="btn">dodaj</button>
+								</div>
+							</div>
+						</form>
 					</div>
-				</div>
-				<div class="control-group">
-					<label class="control-label" for="addComment">Komentarz</label>
-					<div class="controls">
-						<textarea name="addComment" cols="80" rows="6" style="width:354px;"></textarea>
+					<div class="tab-pane" id="tab-add-url">
+						<form action="" method="POST" class="form-horizontal conn_wsk-frm">
+							<input type="hidden" name="_task" value="FRM_ADD_ZASOB_URL">
+							<div class="control-group">
+								<label class="control-label" for="addZasobUrlID">Narzędzie</label>
+								<div class="controls">
+									<?php
+										$fName = 'addZasobUrlID';
+										$fldParams = array();
+										$fldParams['allowCreate'] = false;
+										$fldParams['ajaxDataUrlBase'] = "index.php?FUNCTION_INIT=" . __FUNCTION__ . "&HEADER_NOT_INIT=YES&_task=TYPESPECIAL&fld={$fName}";
+										//$fldParams['ajaxDataUrlBase'] .= "&DBG_TS=3";
+										echo $typeSpecialZasob->showFormItem($tblID = -1, $fName, $selValue = '', $fldParams);
+									?>
+								</div>
+							</div>
+							<div class="control-group">
+								<label class="control-label" for="addPrzypadekID">Uprawnienia</label>
+								<div class="controls">
+									<select name="addPrzypadekID" style="width:366px;" size="6">
+										<?php foreach($uprawnienia as $kId => $vPermLabel) : ?>
+											<option value="<?php echo $kId; ?>"><?php echo $vPermLabel; ?></option>
+										<?php endforeach; ?>
+									</select>
+								</div>
+							</div>
+							<div class="control-group">
+								<label class="control-label" for="addComment">Komentarz</label>
+								<div class="controls">
+									<textarea name="addComment" cols="80" rows="6" style="width:354px;"></textarea>
+								</div>
+							</div>
+							<div class="control-group">
+								<div class="controls">
+									<button type="submit" class="btn">dodaj</button>
+								</div>
+							</div>
+						</form>
 					</div>
-				</div>
-				<div class="control-group">
-					<div class="controls">
-						<button type="submit" class="btn">dodaj</button>
+					<div class="tab-pane active" id="tab-add-zasob">
+						<form action="" method="POST" class="form-horizontal conn_wsk-frm">
+							<input type="hidden" name="_task" value="FRM_ADD_ZASOB">
+							<div class="control-group">
+								<label class="control-label" for="addZasobID">Zasób</label>
+								<div class="controls">
+									<?php
+										$fName = 'addZasobID';
+										$fldParams = array();
+										$fldParams['allowCreate'] = false;
+										$fldParams['ajaxDataUrlBase'] = "index.php?FUNCTION_INIT=" . __FUNCTION__ . "&HEADER_NOT_INIT=YES&_task=TYPESPECIAL&fld={$fName}";
+										//$fldParams['ajaxDataUrlBase'] .= "&DBG_TS=3";
+										echo $typeSpecialZasob->showFormItem($tblID = -1, $fName, $selValue = '', $fldParams);
+									?>
+								</div>
+							</div>
+							<div class="control-group">
+								<label class="control-label" for="addPrzypadekID">Uprawnienia</label>
+								<div class="controls">
+									<select name="addPrzypadekID" style="width:366px;" size="6">
+										<?php foreach($uprawnienia as $kId => $vPermLabel) : ?>
+											<option value="<?php echo $kId; ?>"><?php echo $vPermLabel; ?></option>
+										<?php endforeach; ?>
+									</select>
+								</div>
+							</div>
+							<div class="control-group">
+								<label class="control-label" for="addComment">Komentarz</label>
+								<div class="controls">
+									<textarea name="addComment" cols="80" rows="6" style="width:354px;"></textarea>
+								</div>
+							</div>
+							<div class="control-group">
+								<div class="controls">
+									<button type="submit" class="btn">dodaj</button>
+								</div>
+							</div>
+						</form>
 					</div>
 				</div>
-			</form>
+			</div>
 		<?php endif; ?>
 	</div>