Author: vdegtyarev
Date: Wed May 29 10:27:09 2013
New Revision: 1487433

URL: http://svn.apache.org/r1487433
Log:
OPENMEETINGS-642 is fixed.

Modified:
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/ImportController.java
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/LangExport.java
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/labels/LangPanel.html
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/labels/LangPanel.java
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/xmlimport/LanguageImport.java

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/ImportController.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/ImportController.java?rev=1487433&r1=1487432&r2=1487433&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/ImportController.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/ImportController.java
 Wed May 29 10:27:09 2013
@@ -101,4 +101,15 @@ public class ImportController extends Ab
                }
        }
 
+    public void importLanguage(Long language_id, InputStream is) {
+       try {
+                       languageImport.addLanguageByDocument(
+                                       language_id, is);
+               
+               } catch (Exception er) {
+                       log.error("ERROR importing:", er);
+               }
+       
+    }
+
 }

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/LangExport.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/LangExport.java?rev=1487433&r1=1487432&r2=1487433&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/LangExport.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/LangExport.java
 Wed May 29 10:27:09 2013
@@ -176,7 +176,7 @@ public class LangExport extends BaseHttp
                return root;
        }
        
-       public Document createDocument(List<Fieldlanguagesvalues> flvList, 
List<Fieldlanguagesvalues> untranslatedList) throws Exception {
+       public static Document createDocument(List<Fieldlanguagesvalues> 
flvList, List<Fieldlanguagesvalues> untranslatedList) throws Exception {
                Document document = createDocument();
                Element root = createRoot(document);
 

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/labels/LangPanel.html
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/labels/LangPanel.html?rev=1487433&r1=1487432&r2=1487433&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/labels/LangPanel.html
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/labels/LangPanel.html
 Wed May 29 10:27:09 2013
@@ -20,6 +20,9 @@
 -->
 <html xmlns:wicket="http://wicket.apache.org";>
        <wicket:panel>
+                                       <div>
+                                       <span wicket:id="importFeedback"/>
+                                    </div>
                <script type="text/javascript">
                        function labelsInit() {
                                $('#addLanguage').dialog({
@@ -35,10 +38,29 @@
                <div class="adminPanel">
                        <div class="adminPanelColumnTable">
                                <form wicket:id="langForm" 
class="addLanguagePanel">
-                                       <div class="formNewButton" 
wicket:ommessage="title:362" 
-                                               onclick="$('#addLanguage 
:text').val(''); $('#addLanguage').dialog('open');"><input type="button" 
title=""/></div>
-                                       <div wicket:id="deleteLangBtn" 
class="formCancelButton" wicket:ommessage="title:363"><input type="button" 
title=""/></div>
-                                       <select wicket:id="language"></select>
+                                       <table>
+                                               <tr>
+                                                       <td>
+                                                               <div 
class="formNewButton" wicket:ommessage="title:362" 
+                                                                       
onclick="$('#addLanguage :text').val(''); 
$('#addLanguage').dialog('open');"><input type="button" title=""/></div>
+                                                       </td>
+                                                       <td>
+                                                               <div 
wicket:id="deleteLangBtn" class="formCancelButton" 
wicket:ommessage="title:363"><input type="button" title=""/></div>
+                                                       </td>
+                                                       <td>
+                                                               <select 
wicket:id="language"></select>
+                                                       </td>
+                                                       <td>
+                                                               <input 
wicket:id="export" type="button" wicket:ommessage="value:360"/>
+                                                       </td>
+                                                       <td class="profile">
+                                                               <div 
+                                                                       
class="uploadtext"><wicket:ommessage key="387"/></div><div 
class="upload"><input type="file"
+                                                                               
accept="text/xml" wicket:id="fileInput"/><span 
wicket:id="progress">[progressbar]</span>
+                                                               </div>
+                                                       </td>
+                                               </tr>
+                                       </table>
                                </form>
                                <span wicket:id="navigator">[dataview 
navigator]</span>
                                <table class="adminListTable">

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/labels/LangPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/labels/LangPanel.java?rev=1487433&r1=1487432&r2=1487433&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/labels/LangPanel.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/labels/LangPanel.java
 Wed May 29 10:27:09 2013
@@ -18,26 +18,50 @@
  */
 package org.apache.openmeetings.web.admin.labels;
 
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
 import java.util.Iterator;
+import java.util.List;
 
+import org.apache.openmeetings.OpenmeetingsVariables;
 import org.apache.openmeetings.data.basic.FieldLanguageDao;
+import org.apache.openmeetings.data.basic.FieldManager;
 import org.apache.openmeetings.data.basic.FieldValueDao;
 import org.apache.openmeetings.persistence.beans.lang.FieldLanguage;
 import org.apache.openmeetings.persistence.beans.lang.Fieldlanguagesvalues;
 import org.apache.openmeetings.persistence.beans.lang.Fieldvalues;
+import org.apache.openmeetings.servlet.outputhandler.ImportController;
+import org.apache.openmeetings.servlet.outputhandler.LangExport;
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
+import org.apache.openmeetings.web.admin.backup.BackupPanel;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OrderByBorder;
 import org.apache.openmeetings.web.data.SearchableDataProvider;
+import org.apache.openmeetings.web.util.AjaxDownload;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
+import 
org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadProgressBar;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.upload.FileUpload;
+import org.apache.wicket.markup.html.form.upload.FileUploadField;
+import org.apache.wicket.markup.html.panel.FeedbackPanel;
 import org.apache.wicket.markup.repeater.Item;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.util.resource.FileResourceStream;
+import org.dom4j.Document;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+import com.googlecode.wicket.jquery.ui.form.button.AjaxButton;
 
 /**
  * Language Editor, add/insert/update {@link Fieldlanguagesvalues} and
@@ -47,11 +71,17 @@ import org.apache.wicket.markup.repeater
  * 
  */
 public class LangPanel extends AdminPanel {
+       private static final Logger log = Red5LoggerFactory.getLogger(
+                       BackupPanel.class, OpenmeetingsVariables.webAppRootKey);
+       
        private static final long serialVersionUID = 5904180813198016592L;
 
        FieldLanguage language;
        final WebMarkupContainer listContainer;
        private LangForm langForm;
+       private FileUploadField fileUploadField;
+       // Create feedback panels
+       final FeedbackPanel importFeedback;
        
        @Override
        public void onMenuPanelLoad(AjaxRequestTarget target) {
@@ -61,6 +91,10 @@ public class LangPanel extends AdminPane
        @SuppressWarnings("unchecked")
        public LangPanel(String id) {
                super(id);
+               // Create feedback panels
+               importFeedback = new FeedbackPanel("importFeedback");
+               importFeedback.setOutputMarkupId(true);
+               add(importFeedback);
                FieldLanguageDao langDao = Application
                                .getBean(FieldLanguageDao.class);
                language = langDao.getFieldLanguageById(1L);
@@ -132,6 +166,98 @@ public class LangPanel extends AdminPane
                        }
                });
                langForm = new LangForm("langForm", listContainer, this);
+               fileUploadField = new FileUploadField("fileInput", new 
IModel<List<FileUpload>>() {
+                       /**
+                        * 
+                        */
+                       private static final long serialVersionUID = 
2862135442385825549L;
+
+                       public void detach() {
+                       }
+                       
+                       public void setObject(List<FileUpload> object) {
+                       }
+                       
+                       public List<FileUpload> getObject() {
+                               return null;
+                       }
+               });
+               langForm.add(fileUploadField);
+               langForm.add(new UploadProgressBar("progress", langForm, 
fileUploadField));
+               fileUploadField.add(new AjaxFormSubmitBehavior(langForm, 
"onchange") {
+                       private static final long serialVersionUID = 
2160216679027859231L;
+
+                       @Override
+                       protected void onSubmit(AjaxRequestTarget target) {
+                               FileUpload download = 
fileUploadField.getFileUpload();
+                               try {
+                                       if (download == null || 
download.getInputStream() == null) {
+                                               importFeedback.error("File is 
empty");
+                                               return;
+                                       }
+                                       
Application.getBean(ImportController.class).importLanguage(language.getLanguage_id(),
 download.getInputStream());
+                               } catch (IOException e) {
+                                       log.error("IOException on panel 
language editor import ", e);
+                                       importFeedback.error(e);
+                               } catch (Exception e) {
+                                       log.error("Exception on panel language 
editor import ", e);
+                                       importFeedback.error(e);
+                               }
+
+                               // repaint the feedback panel so that it is 
hidden
+                               target.add(importFeedback);
+                       }
+               });
+
+               // Add a component to download a file without page refresh
+               final AjaxDownload download = new AjaxDownload();
+               langForm.add(download);
+
+               langForm.add(new AjaxButton("export"){
+                       private static final long serialVersionUID = 
-2845639751469777460L;
+
+                       protected void onSubmit(AjaxRequestTarget target, 
Form<?> form) {
+
+                               try {
+                                       List<Fieldlanguagesvalues> flvList = 
Application.getBean(FieldManager.class).getMixedFieldValuesList(language.getLanguage_id());
+
+                                       FieldLanguage fl = 
Application.getBean(FieldLanguageDao.class)
+                                                       
.getFieldLanguageById(language.getLanguage_id());
+                                       if (fl != null && flvList != null) {
+                                               Document doc = 
LangExport.createDocument(flvList, 
Application.getBean(FieldManager.class).getUntranslatedFieldValuesList(language.getLanguage_id()));
+
+                                               String requestedFile = 
fl.getName() + ".xml";
+                                               OutputStream out = new 
FileOutputStream(requestedFile);
+
+                                               LangExport.serializetoXML(out, 
"UTF-8", doc);
+
+                                               out.flush();
+                                               out.close();
+                                               
+                                               
download.setFileName(requestedFile);
+                                               download.setResourceStream(new 
FileResourceStream(new File(requestedFile)));
+                                               download.initiate(target);
+                                       }
+                               } catch (IOException e) {
+                                       log.error("IOException on panel 
language editor import ", e);
+                                       importFeedback.error(e);
+                               } catch (Exception e) {
+                                       log.error("Exception on panel language 
editor import ", e);
+                                       importFeedback.error(e);
+                               }
+                               
+                               // repaint the feedback panel so that it is 
hidden
+                               target.add(importFeedback);
+                       }
+                       
+                       @Override
+                       protected void onError(AjaxRequestTarget target, 
Form<?> form) {
+                               // repaint the feedback panel so errors are 
shown
+                               target.add(importFeedback);
+                       }
+                       
+               });
+               
                add(langForm);
                add(new AddLanguageForm("addLangForm", this));
        }

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/xmlimport/LanguageImport.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/xmlimport/LanguageImport.java?rev=1487433&r1=1487432&r2=1487433&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/xmlimport/LanguageImport.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/xmlimport/LanguageImport.java
 Wed May 29 10:27:09 2013
@@ -62,7 +62,7 @@ public class LanguageImport {
                                        
itemObject.attribute("id").getText()).longValue();
                        String fieldName = 
itemObject.attribute("name").getText();
                        String value = itemObject.element("value").getText();
-                       log.error("CHECK " + language_id + "," + fieldvalues_id 
+ ","
+                       log.info("CHECK " + language_id + "," + fieldvalues_id 
+ ","
                                        + fieldName + "," + value);
                        this.addFieldValueById(language_id, fieldvalues_id, 
fieldName,
                                        value);


Reply via email to