Sfoglia il codice sorgente

Gui xml - add ogc filter like sql in to test_perms gui config

Piotr Labudda 10 anni fa
parent
commit
91426fdbcc

+ 138 - 13
SE/schema/gui/default_db/test_perms.gui.xml

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<ui_table xmlns="https://biuro.biall-net.pl/dev-pl/se-master/schema/gui/table.gui.xsd"
+<ui_table xmlns="https://biuro.biall-net.pl/SE/version-git/schema/gui/table.gui.xsd"
 					xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 					xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 					xmlns:ogc="http://www.opengis.net/ogc">
 					xmlns:ogc="http://www.opengis.net/ogc">
-	<!--
+<!-- from Data_Source
 sf_Problemy
 sf_Problemy
 		$fltrs['Problemy'] = new stdClass();
 		$fltrs['Problemy'] = new stdClass();
 		$fltrs['Problemy']->icon = 'glyphicon glyphicon-warning-sign';
 		$fltrs['Problemy']->icon = 'glyphicon glyphicon-warning-sign';
@@ -29,35 +29,160 @@ sf_Access
 		$fltrs['Access']->icon = 'glyphicon glyphicon-lock';
 		$fltrs['Access']->icon = 'glyphicon glyphicon-lock';
 		$fltrs['Access']->btns = array();
 		$fltrs['Access']->btns = array();
 		$fltrs['Access']->btns['Pokaż'] = (object)array('value'=>'SHOW');
 		$fltrs['Access']->btns['Pokaż'] = (object)array('value'=>'SHOW');
- 	-->
+-->
+<!-- from Data_Source
+sf_Problemy
+			case 'Problemy':
+				if (array_key_exists('A_PROBLEM', $this->_cols)) {
+					switch ($value) {
+						case 'PROBLEM':
+							$sqlFltr = " t.`A_PROBLEM`!='' ";
+							break;
+						case 'WARNING':
+							$sqlFltr = " t.`A_PROBLEM`='WARNING' ";
+							break;
+						case 'NORMAL':
+							$sqlFltr = " t.`A_PROBLEM`='' ";
+							break;
+					}
+				}
+				break;
+			case 'Status':
+				if (array_key_exists('A_STATUS', $this->_cols)) {
+					switch ($value) {
+						case 'WAITING':
+							$sqlFltr = " t.`A_STATUS`='WAITING' ";
+							break;
+						case 'AKTYWNI':
+							$sqlFltr = " t.`A_STATUS` in('NORMAL', 'WARNING') ";
+			// TODO: $_SESSION['USERS_FILTER_STATUS_SQL']="and (( $thiss->DETECT_TABLE_NAME.A_STATUS='NORMAL' or $thiss->DETECT_TABLE_NAME.A_STATUS='WARNING'  ) or ( $thiss->DETECT_TABLE_NAME.A_STATUS='OFF_SOFT' and $thiss->DETECT_TABLE_NAME.A_PROBLEM_DESC not like '%odla%fizy%' and $thiss->DETECT_TABLE_NAME.A_PROBLEM!='' ) or ( $thiss->DETECT_TABLE_NAME.A_STATUS='OFF_SOFT' and $thiss->DETECT_TABLE_NAME.A_PROBLEM='' )) ";
+			// if ($thiss->DETECT_TABLE_NAME == 'KSIEG_DOKUMENTY') $_SESSION['USERS_FILTER_STATUS_SQL']="and ( $thiss->DETECT_TABLE_NAME.A_STATUS='NORMAL' or $thiss->DETECT_TABLE_NAME.A_STATUS='WARNING'  )  ";
+							break;
+					}
+				}
+				break;
+			case 'Spotkania':
+				if (array_key_exists('L_APPOITMENT_DATE', $this->_cols)) {
+					switch ($value) {
+						case 'OLD':
+							$sqlFltr = " UNIX_TIMESTAMP(t.`L_APPOITMENT_DATE`)<UNIX_TIMESTAMP(now()) and t.`L_APPOITMENT_DATE`!='' ";
+							break;
+						case 'NOW':
+							$sqlFltr = " UNIX_TIMESTAMP(t.`L_APPOITMENT_DATE`)<UNIX_TIMESTAMP(now())+3600 and UNIX_TIMESTAMP(t.`L_APPOITMENT_DATE`)>UNIX_TIMESTAMP(now())-3600 ";
+							break;
+						case 'TODAY':
+							$start = mktime(0,0,0, date("m"), date("d"), date("Y"));
+							$end = mktime(0,0,0, date("m"), date("d") + 1, date("Y"));
+							$sqlFltr = " UNIX_TIMESTAMP(t.`L_APPOITMENT_DATE`)>'{$start}' and UNIX_TIMESTAMP(t.`L_APPOITMENT_DATE`)<'{$end}' ";
+							break;
+						case 'TOMORROW':
+							$start = mktime(0,0,0, date("m"), date("d") + 1, date("Y"));
+							$end = mktime(0,0,0, date("m"), date("d") + 2, date("Y"));
+							$sqlFltr = " UNIX_TIMESTAMP(t.`L_APPOITMENT_DATE`)>'{$start}' and UNIX_TIMESTAMP(t.`L_APPOITMENT_DATE`)<'{$end}' ";
+							break;
+						case 'YESTERDAY':
+							$start = mktime(0,0,0, date("m"), date("d") - 1, date("Y"));
+							$end = mktime(0,0,0, date("m"), date("d") - 2, date("Y"));
+							$sqlFltr = " UNIX_TIMESTAMP(t.`L_APPOITMENT_DATE`)>'{$start}' and UNIX_TIMESTAMP(t.`L_APPOITMENT_DATE`)<'{$end}' ";
+							break;
+						case 'BRAK':
+							$start = mktime(0,0,0, date("m"), date("d") - 1, date("Y"));
+							$end = mktime(0,0,0, date("m"), date("d") - 2, date("Y"));
+							$sqlFltr = " t.`L_APPOITMENT_DATE`='' ";
+							break;
+					}
+				}
+				break;
+			case 'Access':
+				if ('SHOW' != $value && $this->isAccessFltrAllowed()) {
+					$userLogin = User::getLogin();
+					$usrAclGroups = User::getLdapGroupsNames();
+					$usrAclGroups[] = '';// TODO: allow empty for everyone?
+					$sqlUsrAclGroups = "'" . implode("','", $usrAclGroups) . "'";
+					$sqlFltr = "
+						t.`{$this->_fieldGroupWrite}` in({$sqlUsrAclGroups})
+						and t.`{$this->_fieldGroupRead}` in({$sqlUsrAclGroups})
+					";
+					if (array_key_exists('L_APPOITMENT_USER', $this->_cols)) {
+						$sqlFltr = "
+							(
+								({$sqlFltr})
+								or t.`L_APPOITMENT_USER`='{$userLogin}'
+							)
+						";
+					}
+				}
+-->
 	<filters>
 	<filters>
 		<filter>
 		<filter>
 			<label>Status</label>
 			<label>Status</label>
 			<icon>question-sign</icon>
 			<icon>question-sign</icon>
 			<name>sf_Status</name>
 			<name>sf_Status</name>
-			<buttons>
-				<button>
+			<filter_buttons>
+				<filter_button>
 					<name>OCZEKUJACY</name>
 					<name>OCZEKUJACY</name>
 					<value>WAITING</value>
 					<value>WAITING</value>
+					<!-- $sqlFltr = " t.`A_STATUS`='WAITING' "; -->
 					<ogc:Filter>
 					<ogc:Filter>
 						<ogc:PropertyIsEqualTo>
 						<ogc:PropertyIsEqualTo>
 							<ogc:PropertyName>A_STATUS</ogc:PropertyName>
 							<ogc:PropertyName>A_STATUS</ogc:PropertyName>
 							<ogc:Literal>WAITING</ogc:Literal>
 							<ogc:Literal>WAITING</ogc:Literal>
 						</ogc:PropertyIsEqualTo>
 						</ogc:PropertyIsEqualTo>
 					</ogc:Filter>
 					</ogc:Filter>
-				</button>
-				<button>
+				</filter_button>
+				<filter_button>
 					<name>AKTYWNI</name>
 					<name>AKTYWNI</name>
 					<value>AKTYWNI</value>
 					<value>AKTYWNI</value>
+					<!-- $sqlFltr = " t.`A_STATUS` in('NORMAL', 'WARNING') "; -->
+					<!-- $sqlFltr = " (t.`A_STATUS`='NORMAL' or t.`A_STATUS`='WARNING') "; -->
 					<ogc:Filter>
 					<ogc:Filter>
-						<!-- TODO: in('NORMAL', 'WARNING') -->
+						<!-- in('NORMAL', 'WARNING') -->
+						<ogc:Or>
+							<ogc:PropertyIsEqualTo>
+								<ogc:PropertyName>A_STATUS</ogc:PropertyName>
+								<ogc:Literal>NORMAL</ogc:Literal>
+							</ogc:PropertyIsEqualTo>
+						</ogc:Or>
+						<ogc:Or>
+							<ogc:PropertyIsEqualTo>
+								<ogc:PropertyName>A_STATUS</ogc:PropertyName>
+								<ogc:Literal>WARNING</ogc:Literal>
+							</ogc:PropertyIsEqualTo>
+						</ogc:Or>
+					</ogc:Filter>
+<!-- ogc:Filter example:
+<ogc:Filter>
+		<ogc:And>
+				<ogc:Or>
 						<ogc:PropertyIsEqualTo>
 						<ogc:PropertyIsEqualTo>
-							<ogc:PropertyName>A_STATUS</ogc:PropertyName>
-							<ogc:Literal>NORMAL</ogc:Literal>
+								<ogc:PropertyName>ID</ogc:PropertyName>
+								<ogc:Literal>98400005701</ogc:Literal>
 						</ogc:PropertyIsEqualTo>
 						</ogc:PropertyIsEqualTo>
-					</ogc:Filter>
-				</button>
-			</buttons>
+						<ogc:PropertyIsEqualTo>
+								<ogc:PropertyName>ID</ogc:PropertyName>
+								<ogc:Literal>-1</ogc:Literal>
+						</ogc:PropertyIsEqualTo>
+				</ogc:Or>
+				<ogc:And>
+						<ogc:PropertyIsLessThanOrEqualTo>
+								<ogc:PropertyName>MH_DATUM_INGANG</ogc:PropertyName>
+								<ogc:Literal>2015-02-27T00:00:00Z</ogc:Literal>
+						</ogc:PropertyIsLessThanOrEqualTo>
+						<ogc:Or>
+								<ogc:PropertyIsGreaterThanOrEqualTo>
+										<ogc:PropertyName>MH_DATUM_EINDE</ogc:PropertyName>
+										<ogc:Literal>2015-02-27T00:00:00Z</ogc:Literal>
+								</ogc:PropertyIsGreaterThanOrEqualTo>
+								<ogc:PropertyIsNull>
+										<ogc:PropertyName>MH_DATUM_EINDE</ogc:PropertyName>
+								</ogc:PropertyIsNull>
+						</ogc:Or>
+				</ogc:And>
+		</ogc:And>
+</ogc:Filter>
+-->
+				</filter_button>
+			</filter_buttons>
 		</filter>
 		</filter>
 	</filters>
 	</filters>
 </ui_table>
 </ui_table>

+ 1 - 1
SE/schema/gui/default_db/test_perms/item.30.gui.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<ui_record xmlns="https://biuro.biall-net.pl/dev-pl/se-master/schema/gui/table.item.gui.xsd"
+<ui_record xmlns="https://biuro.biall-net.pl/SE/version-git/schema/gui/table.item.gui.xsd"
 					 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 					 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 	<functions>
 	<functions>
 		<function>
 		<function>

+ 4 - 4
SE/schema/gui/table.gui.xsd

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
 					 xmlns:ogc="http://www.opengis.net/ogc"
 					 xmlns:ogc="http://www.opengis.net/ogc"
-					 xmlns:ui_table="https://biuro.biall-net.pl/dev-pl/se-master/schema/gui/table.gui.xsd"
-					 targetNamespace="https://biuro.biall-net.pl/dev-pl/se-master/schema/gui/table.gui.xsd"
+					 xmlns:ui_table="https://biuro.biall-net.pl/SE/version-git/schema/gui/table.gui.xsd"
+					 targetNamespace="https://biuro.biall-net.pl/SE/version-git/schema/gui/table.gui.xsd"
 					 elementFormDefault="qualified">
 					 elementFormDefault="qualified">
 
 
 	<xs:import namespace="http://www.opengis.net/ogc" schemaLocation="http://schemas.opengis.net/filter/1.1.0/filter.xsd"/>
 	<xs:import namespace="http://www.opengis.net/ogc" schemaLocation="http://schemas.opengis.net/filter/1.1.0/filter.xsd"/>
@@ -41,10 +41,10 @@
 			<xs:element name="label" type="xs:string"/>
 			<xs:element name="label" type="xs:string"/>
 			<xs:element name="icon" type="xs:string"/>
 			<xs:element name="icon" type="xs:string"/>
 			<xs:element name="name" type="xs:string"/>
 			<xs:element name="name" type="xs:string"/>
-			<xs:element name="buttons">
+			<xs:element name="filter_buttons">
 				<xs:complexType>
 				<xs:complexType>
 					<xs:sequence>
 					<xs:sequence>
-						<xs:element name="button" maxOccurs="unbounded">
+						<xs:element name="filter_button" maxOccurs="unbounded">
 							<xs:complexType>
 							<xs:complexType>
 								<xs:sequence>
 								<xs:sequence>
 									<xs:element name="name" type="xs:string"/>
 									<xs:element name="name" type="xs:string"/>

+ 2 - 2
SE/schema/gui/table.item.gui.xsd

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
-					 xmlns:ui_record="https://biuro.biall-net.pl/dev-pl/se-master/schema/gui/table.item.gui.xsd"
-					 targetNamespace="https://biuro.biall-net.pl/dev-pl/se-master/schema/gui/table.item.gui.xsd"
+					 xmlns:ui_record="https://biuro.biall-net.pl/SE/version-git/schema/gui/table.item.gui.xsd"
+					 targetNamespace="https://biuro.biall-net.pl/SE/version-git/schema/gui/table.item.gui.xsd"
 					 elementFormDefault="qualified">
 					 elementFormDefault="qualified">
 
 
 	<xs:element name="ui_record">
 	<xs:element name="ui_record">