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,"");
+               
+       }
+
+}


Reply via email to