knguyen 2004/09/02 11:58:40 CEST
Modified files:
core/src/java/org/jahia/data/containers
ContainerFilterBean.java
ContainerFilterByContainerDefinition.java
ContainerSorterBean.java
ContainerSorterByContainerDefinition.java
Log:
- back port changes
Revision Changes Path
1.8 +2 -2
jahia/core/src/java/org/jahia/data/containers/ContainerFilterBean.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/containers/ContainerFilterBean.java.diff?r1=1.7&r2=1.8&f=h
1.5 +40 -4
jahia/core/src/java/org/jahia/data/containers/ContainerFilterByContainerDefinition.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/containers/ContainerFilterByContainerDefinition.java.diff?r1=1.4&r2=1.5&f=h
1.8 +21 -2
jahia/core/src/java/org/jahia/data/containers/ContainerSorterBean.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/containers/ContainerSorterBean.java.diff?r1=1.7&r2=1.8&f=h
1.6 +20 -2
jahia/core/src/java/org/jahia/data/containers/ContainerSorterByContainerDefinition.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/containers/ContainerSorterByContainerDefinition.java.diff?r1=1.5&r2=1.6&f=h
Index: ContainerFilterBean.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/data/containers/ContainerFilterBean.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ContainerFilterBean.java 18 Aug 2004 13:24:52 -0000 1.7
+++ ContainerFilterBean.java 2 Sep 2004 09:58:40 -0000 1.8
@@ -1532,6 +1532,7 @@
result.set(I.intValue());
}
}
+ i++;
}
}
@@ -1626,12 +1627,11 @@
if ( siteId != -1 ){
buff.append(" AND jahiaid_jahia_ctn_entries=");
buff.append(siteId);
- buff.append(" AND ");
}
if ( containerDefinitionName != null &&
!"".equals(containerDefinitionName.trim()) ){
- buff.append(" ctndefid_jahia_ctn_entries = id_jahia_ctn_def ");
+ buff.append(" AND ctndefid_jahia_ctn_entries = id_jahia_ctn_def ");
buff.append(" AND name_jahia_ctn_def='");
buff.append(JahiaTools.quote(containerDefinitionName));
buff.append("'");
Index: ContainerFilterByContainerDefinition.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/data/containers/ContainerFilterByContainerDefinition.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ContainerFilterByContainerDefinition.java 18 Aug 2004 13:10:03 -0000 1.4
+++ ContainerFilterByContainerDefinition.java 2 Sep 2004 09:58:40 -0000 1.5
@@ -109,7 +109,7 @@
*/
private BitSet doFiltering (int ctnListID)
throws JahiaException {
- String fieldFilterQuery = getSelect(ctnListID);
+ String fieldFilterQuery = getSelect(ctnListID,true);
if (fieldFilterQuery == null && !fieldFilterQuery.trim().equals("")) {
return null;
}
@@ -157,19 +157,34 @@
}
//--------------------------------------------------------------------------
+
+ //--------------------------------------------------------------------------
/**
* Return the select statement, build with the clauses for all container list
of the site.
+ * Do not execute this query !! It's only used for comparison between query.
+ * It's not a valable sql query.
*
* @param int ctnListID, the container list id
* @return String , the sql statement. Null on error
*/
public String getSelect (int ctnListID) {
+ return getSelect (ctnListID, false);
+ }
+
+ /**
+ * Return the select statement, build with the clauses for all container list
of the site.
+ *
+ * @param int ctnListID, the container list id
+ * @param ignoreLang boolean, add language in query or not ( should not when
performing sql query, because containre table do not have lang column
+ * @return String , the sql statement. Null on error
+ */
+ protected String getSelect (int ctnListID, boolean ignoreLang) {
//JahiaConsole.println("ContainerFilterBean.getSelect","Started");
StringBuffer buff = new StringBuffer("SELECT DISTINCT
id_jahia_ctn_entries,workflow_state FROM jahia_ctn_entries WHERE
listid_jahia_ctn_entries=");
buff.append(ctnListID);
buff.append(" AND ");
- buff.append(getMultilangAndStagingFiltering(this.entryLoadRequest));
+
buff.append(getMultilangAndStagingFiltering(this.entryLoadRequest,ignoreLang));
buff.append(" ORDER BY id_jahia_ctn_entries, workflow_state");
return buff.toString();
@@ -370,7 +385,7 @@
int listId)
throws JahiaException {
String fieldFilterQuery = this.getSelectBySiteID(siteId,
- containerDefinitionName);
+ containerDefinitionName,true);
if (fieldFilterQuery == null && !fieldFilterQuery.trim().equals("")) {
return null;
}
@@ -428,14 +443,35 @@
* If the containerDefinitionName is null, return result from all containers
* no regards to it definition !
*
+ * Do not execute this query !! It's only used for comparison between query.
+ * It's not a valable sql query.
+ *
* @param siteId
* @param containerDefinitionName
+ * @param ignoreLang boolean, add language in query or not ( should not when
performing sql query, because containre table do not have lang column
* @return
*/
public String getSelectBySiteID (int siteId, String containerDefinitionName) {
+ return getSelectBySiteID (siteId, containerDefinitionName, false);
+ }
+
+ /**
+ * Return the select statement, build with the clauses for a given site.
+ * If siteId = -1 -> build query for all sites
+ *
+ * If the containerDefinitionName is null, return result from all containers
+ * no regards to it definition !
+ *
+ * @param siteId
+ * @param containerDefinitionName
+ * @param ignoreLang boolean, add language in query or not ( should not when
performing sql query, because containre table do not have lang column
+ * @return
+ */
+ public String getSelectBySiteID (int siteId, String containerDefinitionName,
+ boolean ignoreLang) {
StringBuffer buff = new StringBuffer("SELECT DISTINCT
id_jahia_ctn_entries,workflow_state FROM jahia_ctn_entries a, jahia_ctn_def b WHERE ");
- buff.append(getMultilangAndStagingFiltering(this.entryLoadRequest));
+
buff.append(getMultilangAndStagingFiltering(this.entryLoadRequest,ignoreLang));
if (siteId != -1) {
buff.append(" AND ");
Index: ContainerSorterBean.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/data/containers/ContainerSorterBean.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ContainerSorterBean.java 18 Aug 2004 13:10:03 -0000 1.7
+++ ContainerSorterBean.java 2 Sep 2004 09:58:40 -0000 1.8
@@ -19,6 +19,7 @@
package org.jahia.data.containers;
+import java.io.Serializable;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -35,14 +36,16 @@
import java.util.TimeZone;
import java.util.Vector;
+import org.jahia.bin.Jahia;
+import org.jahia.data.fields.ExpressionMarker;
import org.jahia.exceptions.JahiaException;
import org.jahia.params.ParamBean;
import org.jahia.registries.ServicesRegistry;
import org.jahia.resourcebundle.ResourceBundleMarker;
+import org.jahia.services.fields.ContentField;
import org.jahia.services.version.EntryLoadRequest;
import org.jahia.utils.JahiaTools;
-import java.io.Serializable;
-import org.jahia.services.fields.ContentField;
+
/**
* Jahia Standard Containers Sort Handler for a given container list.
@@ -522,6 +525,22 @@
workflowState = EntryLoadRequest.STAGING_WORKFLOW_STATE;
}
+ if (Jahia.getThreadParamBean() != null) {
+ // expression marker
+ ExpressionMarker exprMarker =
ExpressionMarker.parseMarkerValue(fieldValue, Jahia.getThreadParamBean());
+ if ( exprMarker != null ){
+ try {
+ String value = exprMarker.getValue();
+ if ( value != null && !"".equals(value) ){
+ fieldValue = value;
+ }
+ }
+ catch (Throwable t) {
+ logger.debug("Problem while evaluating
expression " + exprMarker.getExpr(), t);
+ }
+ }
+ }
+
// resbundle marker
ResourceBundleMarker resMarker =
ResourceBundleMarker.parseMarkerValue(fieldValue);
if ( resMarker != null ){
Index: ContainerSorterByContainerDefinition.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/data/containers/ContainerSorterByContainerDefinition.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ContainerSorterByContainerDefinition.java 18 Aug 2004 13:10:03 -0000 1.5
+++ ContainerSorterByContainerDefinition.java 2 Sep 2004 09:58:40 -0000 1.6
@@ -19,6 +19,7 @@
package org.jahia.data.containers;
+import java.io.Serializable;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -35,12 +36,13 @@
import java.util.TimeZone;
import java.util.Vector;
+import org.jahia.bin.Jahia;
+import org.jahia.data.fields.ExpressionMarker;
import org.jahia.exceptions.JahiaException;
import org.jahia.resourcebundle.ResourceBundleMarker;
+import org.jahia.services.fields.ContentField;
import org.jahia.services.version.EntryLoadRequest;
import org.jahia.utils.JahiaTools;
-import java.io.Serializable;
-import org.jahia.services.fields.ContentField;
/**
* Jahia Standard Containers Sort Handler for a containers on containers
@@ -376,6 +378,22 @@
workflowState = EntryLoadRequest.STAGING_WORKFLOW_STATE;
}
+ if (Jahia.getThreadParamBean() != null) {
+ // expression marker
+ ExpressionMarker exprMarker =
ExpressionMarker.parseMarkerValue(fieldValue, Jahia.getThreadParamBean());
+ if ( exprMarker != null ){
+ try {
+ String value = exprMarker.getValue();
+ if ( value != null && !"".equals(value) ){
+ fieldValue = value;
+ }
+ }
+ catch (Throwable t) {
+ logger.debug("Problem while evaluating
expression " + exprMarker.getExpr(), t);
+ }
+ }
+ }
+
// resbundle marker
ResourceBundleMarker resMarker =
ResourceBundleMarker.parseMarkerValue(fieldValue);
if ( resMarker != null ){