Author: sebawagner
Date: Sun May 20 13:24:47 2012
New Revision: 1340711
URL: http://svn.apache.org/viewvc?rev=1340711&view=rev
Log:
OPENMEETINGS-281 Enhance Language Editor with search fields
Added:
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/test/labels/
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/test/labels/TestLabels.java
Modified:
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/admin/backup/backupContent.lzx
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/admin/languageseditor/languagesEditor.lzx
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/Fieldmanagment.java
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/lang/Fieldvalues.java
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/LanguageService.java
Modified:
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/admin/backup/backupContent.lzx
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/admin/backup/backupContent.lzx?rev=1340711&r1=1340710&r2=1340711&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/admin/backup/backupContent.lzx
(original)
+++
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/admin/backup/backupContent.lzx
Sun May 20 13:24:47 2012
@@ -30,7 +30,7 @@
<labelText fontsize="10" y="24"
x="30" width="600" labelid="1065" multiline="true" />
- <labelCheckbox x="10" y="100" fontsize="11"
+ <labelCheckbox x="10" y="180" fontsize="11"
name="_includeFileOption" text="Include uploaded files and recordings
in backup" >
<handler name="oninit">
this.setValue(true);
@@ -38,7 +38,7 @@
</labelCheckbox>
<!-- System Import -->
- <simpleLabelButton text="System Import" x="30" y="140" width="200">
+ <simpleLabelButton text="System Import" x="30" y="220" width="200">
<handler name="onclick">
<![CDATA[
new
lz.uploadWindowExplorer(canvas.main_content._content.inner,{
@@ -54,7 +54,7 @@
</simpleLabelButton>
<!-- System Backup -->
- <simpleLabelButton text="System Backup" x="232" y="140" width="200">
+ <simpleLabelButton text="System Backup" x="232" y="220" width="200">
<handler name="onclick">
<![CDATA[
var exporturl =
canvas.protocol+'://'+canvas.rtmphostlocal+':'+canvas.red5httpport
Modified:
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/admin/languageseditor/languagesEditor.lzx
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/admin/languageseditor/languagesEditor.lzx?rev=1340711&r1=1340710&r2=1340711&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/admin/languageseditor/languagesEditor.lzx
(original)
+++
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/admin/languageseditor/languagesEditor.lzx
Sun May 20 13:24:47 2012
@@ -118,10 +118,20 @@
});
</handler>
<labelTooltip multiline="true" labelid="389" />
- </simpleLabelButton>
+ </simpleLabelButton>
- <turnOverList name="_turnoverlist" width="460" height="${ canvas.height
- canvas.naviHeight-60 }" x="2" y="60"
- orderby="fieldvalues_id" step="25" asc="true">
+ <labelText x="2" y="64" labelid="714" />
+
+ <customEdittext name="_search" y="60" x="120" width="200" height="24"/>
+
+ <simpleLabelButton labelid="715" x="330" width="132" y="60">
+ <handler name="onclick">
+ parent._turnoverlist.getFieldsByLanguage.doCall();
+ </handler>
+ </simpleLabelButton>
+
+ <turnOverList name="_turnoverlist" width="460" height="${ canvas.height
- canvas.naviHeight-90 }" x="2" y="90"
+ orderby="c.fieldvalues_id" step="25" asc="true">
<attribute name="language_id" value="0" type="number" />
@@ -154,6 +164,7 @@
<netparam><method name="getValue"> return
parent.parent.orderby; </method></netparam>
<netparam><method name="getValue"> return
parent.parent.asc; </method></netparam>
<netparam><method name="getValue"> return
parent.parent.language_id; </method></netparam>
+ <netparam><method name="getValue"> return
parent.parent.parent._search.getText(); </method></netparam>
<handler name="ondata" args="value">
//if($debug) Debug.write("getFieldsByLanguage ",value);
//this.parent.destroy();
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/Fieldmanagment.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/Fieldmanagment.java?rev=1340711&r1=1340710&r2=1340711&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/Fieldmanagment.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/Fieldmanagment.java
Sun May 20 13:24:47 2012
@@ -30,10 +30,6 @@ import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
import org.openmeetings.app.OpenmeetingsVariables;
import org.openmeetings.app.data.beans.basic.SearchResult;
@@ -492,13 +488,13 @@ public class Fieldmanagment {
}
public SearchResult<Fieldvalues> getFieldsByLanguage(int start, int
max, String orderby,
- boolean asc, Long language_id) {
+ boolean asc, Long language_id, String search) {
try {
SearchResult<Fieldvalues> sresult = new
SearchResult<Fieldvalues>();
sresult.setObjectName(Fieldlanguagesvalues.class.getName());
- sresult.setRecords(this.selectMaxFromFieldsValues());
+
sresult.setRecords(this.selectMaxFromFieldsValues(search));
sresult.setResult(this.getMixedFieldValuesList(start,
max, orderby,
- asc, language_id));
+ asc, language_id, search));
return sresult;
} catch (Exception ex2) {
log.error("[getFieldsByLanguage]: ", ex2);
@@ -506,54 +502,67 @@ public class Fieldmanagment {
return null;
}
- private Long selectMaxFromFieldsValues() throws Exception {
+ private Long selectMaxFromFieldsValues(String search) throws Exception {
+ String queryLanguage = "select count(c.fieldvalues_id) from
Fieldvalues c where c.deleted = 'false'";
+ if (search.length()>0) {
+ queryLanguage += " AND (c.name LIKE :searchStr " +
+ "OR c.fieldvalues_id =
:fieldvalues_id)";
+ }
TypedQuery<Long> query = em
- .createQuery("select max(c.fieldvalues_id) from
Fieldvalues c where c.deleted = 'false'", Long.class);
- List<Long> ll = query.getResultList();
- // log.error((Long)ll.get(0));
- return ll.get(0);
+ .createQuery(queryLanguage, Long.class);
+ if (search.length()>0) {
+ query.setParameter("searchStr", "%"+search+"%");
+ long idNumber = 0;
+ try {
+ idNumber = Long.parseLong(search);
+ } catch (NumberFormatException nfe) {
+ }
+ query.setParameter("fieldvalues_id", idNumber);
+ }
+ return query.getResultList().get(0);
}
private List<Fieldvalues> getMixedFieldValuesList(int start, int max,
- String orderby, boolean asc, Long language_id) throws
Exception {
- List<Fieldvalues> ll = this.getFieldsValues(start, max,
orderby, asc);
- for (Iterator<Fieldvalues> iter = ll.iterator();
iter.hasNext();) {
- Fieldvalues fv = iter.next();
+ String orderby, boolean asc, Long language_id, String
search) throws Exception {
+ List<Fieldvalues> fvList = this.getFieldsValues(start, max,
orderby, asc, search);
+ for (Fieldvalues fv : fvList) {
fv.setFieldlanguagesvalue(this.getFieldByIdAndLanguage(
fv.getFieldvalues_id(), language_id));
}
- return ll;
+ return fvList;
}
private List<Fieldvalues> getFieldsValues() throws Exception {
- CriteriaBuilder cb = em.getCriteriaBuilder();
- CriteriaQuery<Fieldvalues> cq =
cb.createQuery(Fieldvalues.class);
- Root<Fieldvalues> c = cq.from(Fieldvalues.class);
- Predicate condition = cb.equal(c.get("deleted"), "false");
- cq.where(condition);
- TypedQuery<Fieldvalues> q = em.createQuery(cq);
- List<Fieldvalues> ll = q.getResultList();
- return ll;
+ return em.createNamedQuery("getFieldvaluesByLanguage",
Fieldvalues.class)
+ .getResultList();
}
private List<Fieldvalues> getFieldsValues(int start, int max,
- String orderby, boolean asc) throws Exception {
- CriteriaBuilder cb = em.getCriteriaBuilder();
- CriteriaQuery<Fieldvalues> cq =
cb.createQuery(Fieldvalues.class);
- Root<Fieldvalues> c = cq.from(Fieldvalues.class);
- Predicate condition = cb.equal(c.get("deleted"), "false");
- cq.where(condition);
- cq.distinct(asc);
+ String orderby, boolean asc, String search) throws
Exception {
+ String queryLanguage = "select c from Fieldvalues c where
c.deleted = 'false'";
+ if (search.length()>0) {
+ queryLanguage += " AND (c.name LIKE :searchStr " +
+ "OR c.fieldvalues_id =
:fieldvalues_id)";
+ }
if (asc) {
- cq.orderBy(cb.asc(c.get(orderby)));
+ queryLanguage += " ORDER BY "+orderby+ " ASC";
} else {
- cq.orderBy(cb.desc(c.get(orderby)));
+ queryLanguage += " ORDER BY "+orderby + "DESC";
+ }
+ TypedQuery<Fieldvalues> q = em
+ .createQuery(queryLanguage, Fieldvalues.class);
+ if (search.length()>0) {
+ q.setParameter("searchStr", "%"+search+"%");
+ long idNumber = 0;
+ try {
+ idNumber = Long.parseLong(search);
+ } catch (NumberFormatException nfe) {
+ }
+ q.setParameter("fieldvalues_id", idNumber);
}
- TypedQuery<Fieldvalues> q = em.createQuery(cq);
q.setFirstResult(start);
q.setMaxResults(max);
- List<Fieldvalues> ll = q.getResultList();
- return ll;
+ return q.getResultList();
}
public Fieldvalues getFieldvaluesById(Long fieldvalues_id) {
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/lang/Fieldvalues.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/lang/Fieldvalues.java?rev=1340711&r1=1340710&r2=1340711&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/lang/Fieldvalues.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/lang/Fieldvalues.java
Sun May 20 13:24:47 2012
@@ -29,13 +29,18 @@ import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Transient;
-
-
@Entity
+@NamedQueries({
+ @NamedQuery(name = "getFieldvaluesByLanguage", query = "SELECT
fv from Fieldvalues fv "
+ + "LEFT JOIN fv.fieldlanguagesvalues flv "
+ + "WHERE flv.deleted LIKE 'false' "
+ + "AND fv.deleted LIKE 'false' ")})
@Table(name = "fieldvalues")
public class Fieldvalues implements Serializable {
@@ -54,7 +59,7 @@ public class Fieldvalues implements Seri
@Column(name="deleted")
private String deleted;
- @OneToMany(fetch = FetchType.EAGER)
+ @OneToMany(fetch = FetchType.LAZY)
@JoinColumn(name="fieldvalues_id")
private Set<Fieldlanguagesvalues> fieldlanguagesvalues;
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/LanguageService.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/LanguageService.java?rev=1340711&r1=1340710&r2=1340711&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/LanguageService.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/LanguageService.java
Sun May 20 13:24:47 2012
@@ -163,12 +163,12 @@ public class LanguageService {
* @return
*/
public SearchResult<Fieldvalues> getFieldsByLanguage(String SID, int
start, int max,
- String orderby, boolean asc, Long language_id) {
+ String orderby, boolean asc, Long language_id, String
search) {
Long users_id = sessionManagement.checkSession(SID);
Long user_level = userManagement.getUserLevelByID(users_id);
if (authLevelManagement.checkAdminLevel(user_level)) {
return fieldmanagment.getFieldsByLanguage(start, max,
orderby, asc,
- language_id);
+ language_id, search);
}
return null;
}
Added:
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/test/labels/TestLabels.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/test/labels/TestLabels.java?rev=1340711&view=auto
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/test/labels/TestLabels.java
(added)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/test/labels/TestLabels.java
Sun May 20 13:24:47 2012
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.openmeetings.test.labels;
+
+import org.junit.Test;
+import org.openmeetings.app.data.basic.Fieldmanagment;
+import org.openmeetings.test.AbstractOpenmeetingsSpringTest;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestLabels extends AbstractOpenmeetingsSpringTest {
+
+ @Autowired
+ private Fieldmanagment fieldmanagment;
+
+ @Test
+ public void testGetNavi(){
+
+
fieldmanagment.getFieldsByLanguage(0,100,"c.fieldvalues_id",true,1L,"");
+
+ }
+
+}