Author: solomax
Date: Fri Sep  5 18:19:01 2014
New Revision: 1622752

URL: http://svn.apache.org/r1622752
Log:
[OPENMEETINGS-359] invitation dialog is implemented (without submit)

Modified:
    
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/FieldLanguageDao.java
    
openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/LanguageImport.java
    
openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangForm.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.html
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.html
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/admin.css
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/calendar.css
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/labels/FillLabels.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/labels/TestGetFieldValues.java

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/FieldLanguageDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/FieldLanguageDao.java?rev=1622752&r1=1622751&r2=1622752&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/FieldLanguageDao.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/FieldLanguageDao.java
 Fri Sep  5 18:19:01 2014
@@ -100,31 +100,19 @@ public class FieldLanguageDao implements
                }
        }
 
-       public FieldLanguage getFieldLanguageById(Long id) {
+       public FieldLanguage get(Long id) {
+               TypedQuery<FieldLanguage> query = 
em.createNamedQuery("getLanguageById", FieldLanguage.class);
+               query.setParameter("id", id);
+               FieldLanguage fl = null;
                try {
-                       TypedQuery<FieldLanguage> query = 
em.createNamedQuery("getLanguageById", FieldLanguage.class);
-                       query.setParameter("id", id);
-                       FieldLanguage fl = null;
-                       try {
-                               fl = query.getSingleResult();
-                       } catch (NoResultException ex) {
-                       }
-                       return fl;
-               } catch (Exception ex2) {
-                       log.error("[getLanguageById]: ", ex2);
+                       fl = query.getSingleResult();
+               } catch (NoResultException ex) {
                }
-               return null;
+               return fl;
        }
 
-       public List<FieldLanguage> getLanguages() {
-               try {
-                       TypedQuery<FieldLanguage> query = 
em.createNamedQuery("getLanguages", FieldLanguage.class);
-                       List<FieldLanguage> ll = query.getResultList();
-                       return ll;
-               } catch (Exception ex2) {
-                       log.error("[getLanguages]: ", ex2);
-               }
-               return null;
+       public List<FieldLanguage> get() {
+               TypedQuery<FieldLanguage> query = 
em.createNamedQuery("getLanguages", FieldLanguage.class);
+               return query.getResultList();
        }
-
 }

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/LanguageImport.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/LanguageImport.java?rev=1622752&r1=1622751&r2=1622752&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/LanguageImport.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/backup/LanguageImport.java
 Fri Sep  5 18:19:01 2014
@@ -49,7 +49,7 @@ public class LanguageImport {
                        throws Exception {
 
                // return null if no language availible
-               if (fieldLanguageDaoImpl.getFieldLanguageById(language_id) == 
null) {
+               if (fieldLanguageDaoImpl.get(language_id) == null) {
                        return null;
                }
 

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java?rev=1622752&r1=1622751&r2=1622752&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java
 Fri Sep  5 18:19:01 2014
@@ -230,7 +230,7 @@ public class InvitationManager implement
                User owner = i.getInvitedBy();
                
                String invitorName = owner.getFirstname() + " " + 
owner.getLastname();
-               boolean isCanceled = (type==MessageType.Cancel); 
+               boolean isCanceled = (type == MessageType.Cancel); 
                String template = 
InvitationTemplate.getEmail(i.getInvitee().getLanguage_id(), invitorName, 
message, invitation_link, isCanceled);
                String email = i.getInvitee().getAdresses().getEmail();
                String replyToEmail = owner.getAdresses().getEmail();
@@ -238,7 +238,7 @@ public class InvitationManager implement
                if (ical) {
                        String username = i.getInvitee().getLogin();
                        boolean isOwner = owner.getId() == 
i.getInvitee().getId();
-                       IcalHandler handler = new 
IcalHandler(MessageType.Cancel == type ? IcalHandler.ICAL_METHOD_CANCEL : 
IcalHandler.ICAL_METHOD_REQUEST);
+                       IcalHandler handler = new IcalHandler(isCanceled ? 
IcalHandler.ICAL_METHOD_CANCEL : IcalHandler.ICAL_METHOD_REQUEST);
 
                        HashMap<String, String> attendeeList = 
handler.getAttendeeData(email, username, isOwner);
 

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangForm.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangForm.java?rev=1622752&r1=1622751&r2=1622752&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangForm.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangForm.java
 Fri Sep  5 18:19:01 2014
@@ -51,7 +51,7 @@ public class LangForm extends Form<Void>
 
        public void updateLanguages(AjaxRequestTarget target) {
                FieldLanguageDao langDao = getBean(FieldLanguageDao.class);
-               languages.setChoices(langDao.getLanguages());
+               languages.setChoices(langDao.get());
                // add(languages);
                target.add(languages);
        }
@@ -72,7 +72,7 @@ public class LangForm extends Form<Void>
                
                languages = new DropDownChoice<FieldLanguage>("language"
                                , new PropertyModel<FieldLanguage>(langPanel, 
"language")
-                               , langDao.getLanguages()
+                               , langDao.get()
                                , new ChoiceRenderer<FieldLanguage>("name", 
"id"));
                                
                languages.add(new AjaxFormComponentUpdatingBehavior("onchange") 
{
@@ -104,7 +104,7 @@ public class LangForm extends Form<Void>
                                        // TODO add feedback message
                                        log.error("Error", e);
                                }
-                               languages.setChoices(langDao.getLanguages());
+                               languages.setChoices(langDao.get());
                                target.add(languages);
                                // FIXME need to force update list container
                                target.add(listContainer);

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java?rev=1622752&r1=1622751&r2=1622752&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
 Fri Sep  5 18:19:01 2014
@@ -95,7 +95,7 @@ public class LangPanel extends AdminPane
                // Create feedback panels
                add(importFeedback.setOutputMarkupId(true));
                FieldLanguageDao langDao = getBean(FieldLanguageDao.class);
-               language = langDao.getFieldLanguageById(1L);
+               language = langDao.get(1L);
 
                Fieldlanguagesvalues flv = new Fieldlanguagesvalues();
                flv.setLanguage_id(language.getId());
@@ -201,7 +201,7 @@ public class LangPanel extends AdminPane
 
                                final List<Fieldlanguagesvalues> flvList = 
getBean(FieldLanguagesValuesDao.class).getMixedFieldValuesList(language.getId());
 
-                               FieldLanguage fl = 
getBean(FieldLanguageDao.class).getFieldLanguageById(language.getId());
+                               FieldLanguage fl = 
getBean(FieldLanguageDao.class).get(language.getId());
                                if (fl != null && flvList != null) {
                                        download.setFileName(fl.getName() + 
".xml");
                                        download.setResourceStream(new 
AbstractResourceStream() {

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java?rev=1622752&r1=1622751&r2=1622752&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java
 Fri Sep  5 18:19:01 2014
@@ -102,7 +102,7 @@ public class GeneralUserForm extends For
 
                add(new DropDownChoice<FieldLanguage>("language"
                                , new PropertyModel<FieldLanguage>(this, "lang")
-                               , langDao.getLanguages()
+                               , langDao.get()
                                , new ChoiceRenderer<FieldLanguage>("name", 
"id"))
                        .add(new AjaxFormComponentUpdatingBehavior("onchange") {
                                private static final long serialVersionUID = 1L;
@@ -188,7 +188,7 @@ public class GeneralUserForm extends For
 
        public void updateModelObject(User u) {
                salutation = 
getBean(SalutationDao.class).get(u.getSalutations_id(), getLanguage());
-               lang = 
getBean(FieldLanguageDao.class).getFieldLanguageById(u.getLanguage_id());
+               lang = getBean(FieldLanguageDao.class).get(u.getLanguage_id());
        }
        
        @Override

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java?rev=1622752&r1=1622751&r2=1622752&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
 Fri Sep  5 18:19:01 2014
@@ -247,7 +247,7 @@ public class RegisterDialog extends Abst
                        
emailField.setLabel(Model.of(WebSession.getString(119)));
                        
emailField.add(RfcCompliantEmailAddressValidator.getInstance());
                        add(langField = new 
DropDownChoice<FieldLanguage>("lang", new PropertyModel<FieldLanguage>(
-                                       RegisterDialog.this, "lang"), 
getBean(FieldLanguageDao.class).getLanguages(),
+                                       RegisterDialog.this, "lang"), 
getBean(FieldLanguageDao.class).get(),
                                        new 
ChoiceRenderer<FieldLanguage>("name", "id")));
                        
langField.setRequired(true).setLabel(Model.of(WebSession.getString(111)));
                        
add(tzDropDown.setRequired(true).setLabel(Model.of(WebSession.getString(1143))));

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.html
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.html?rev=1622752&r1=1622751&r2=1622752&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.html
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.html
 Fri Sep  5 18:19:01 2014
@@ -21,46 +21,56 @@
 <html xmlns:wicket="http://wicket.apache.org";>
 <wicket:panel>
        <form wicket:id="form">
-               <span wicket:id="feedback"></span>
                <table>
-                       <tr><!-- <label wicket:for="email" -->
-                               <td><wicket:ommessage key="216" 
/></td><td><input type="text"/></td>
+                       <tr>
+                               <td><label 
wicket:for="recipients"><wicket:ommessage key="216" /></label></td>
+                               <td><input type="hidden" wicket:id="recipients" 
class="input"/></td>
                        </tr>
                        <tr>
-                               <td><wicket:ommessage key="215" 
/></td><td><input type="text"/></td>
+                               <td><label 
wicket:for="subject"><wicket:ommessage key="215" /></label></td>
+                               <td><input type="text" wicket:id="subject" 
class="input"/></td>
                        </tr>
                        <tr>
-                               <td><wicket:ommessage key="217" 
/></td><td><textarea></textarea></td>
+                               <td><label 
wicket:for="message"><wicket:ommessage key="217" /></label></td>
+                               <td><textarea wicket:id="message" style="width: 
280px; height: 70px;"></textarea></td>
                        </tr>
                        <tr>
-                               <td colspan="2"><input 
type="checkbox"/><wicket:ommessage key="524" /></td>
+                               <td colspan="2"><input 
wicket:id="passwordProtected" type="checkbox"/>&nbsp;<label 
+                                               
wicket:for="passwordProtected"><wicket:ommessage key="524" /></label></td>
                        </tr>
                        <tr>
-                               <td><wicket:ommessage key="525" 
/></td><td><input type="password"/></td>
+                               <td><label 
wicket:for="password"><wicket:ommessage key="525" /></label></td>
+                               <td><input wicket:id="password" 
type="password"/></td>
                        </tr>
                        <tr>
                                <td><wicket:ommessage key="526" /></td>
-                               <td><div><input type="radio"><wicket:ommessage 
key="527" /></input>
-                                       <input type="radio"><wicket:ommessage 
key="528" /></input>
-                                       <input type="radio"><wicket:ommessage 
key="529" /></input></div>
+                               <td>
+                                       <div wicket:id="valid">
+                                               <input type="radio" 
wicket:id="one"/><label wicket:for="one"><wicket:ommessage key="527" /></label>
+                                               <input type="radio" 
wicket:id="period"/><label wicket:for="period"><wicket:ommessage key="528" 
/></label>
+                                               <input type="radio" 
wicket:id="endless"/><label wicket:for="endless"><wicket:ommessage key="529" 
/></label>
+                                       </div>
                                </td>
                        </tr>
                        <tr>
-                               <td><wicket:ommessage key="530" /></td><td></td>
+                               <td><label 
wicket:for="validFrom"><wicket:ommessage key="530" /></label></td>
+                               <td><span class="date time picker" 
wicket:id="validFrom"></span></td>
                        </tr>
                        <tr>
-                               <td><wicket:ommessage key="531" /></td><td></td>
+                               <td><label 
wicket:for="validTo"><wicket:ommessage key="531" /></label></td>
+                               <td><span class="date time picker" 
wicket:id="validTo"></span></td>
                        </tr>
                        <tr>
-                               <td><wicket:ommessage key="1143" 
/></td><td><select/></td>
+                               <td><wicket:ommessage key="1143" 
/></td><td><select wicket:id="timeZoneId"/></td>
                        </tr>
                        <tr>
-                               <td><wicket:ommessage key="59" 
/></td><td><select/></td>
+                               <td><wicket:ommessage key="59" 
/></td><td><select wicket:id="language"/></td>
                        </tr>
                        <tr>
-                               <td colspan="2"><input type="text" 
disabled="disabled"/></td>
+                               <td colspan="2"><input type="text" 
disabled="disabled" style="width: 100%;"/></td>
                        </tr>
                </table>
+               <span wicket:id="feedback"></span>
        </form>
 </wicket:panel>
 </html>

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.java?rev=1622752&r1=1622751&r2=1622752&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.java
 Fri Sep  5 18:19:01 2014
@@ -18,39 +18,108 @@
  */
 package org.apache.openmeetings.web.room;
 
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.AVAILABLE_TIMEZONES;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Collection;
 import java.util.List;
 
+import org.apache.openmeetings.db.dao.label.FieldLanguageDao;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.label.FieldLanguage;
 import org.apache.openmeetings.db.entity.room.Invitation;
+import org.apache.openmeetings.db.entity.room.Invitation.Valid;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.util.crypt.MD5;
 import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.util.UserMultiChoice;
+import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
+import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;
+import org.apache.wicket.markup.html.form.ChoiceRenderer;
+import org.apache.wicket.markup.html.form.DropDownChoice;
 import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.PasswordTextField;
+import org.apache.wicket.markup.html.form.Radio;
+import org.apache.wicket.markup.html.form.RadioGroup;
+import org.apache.wicket.markup.html.form.TextArea;
+import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.util.CollectionModel;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
 
+import com.googlecode.wicket.jquery.core.Options;
 import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
 import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+import com.googlecode.wicket.kendo.ui.form.datetime.AjaxDateTimePicker;
+import com.googlecode.wicket.kendo.ui.form.datetime.DateTimePicker;
 import com.googlecode.wicket.kendo.ui.panel.KendoFeedbackPanel;
 
 public class InvitationDialog extends AbstractFormDialog<Invitation> {
        private static final long serialVersionUID = 1L;
-       private DialogButton generate = new 
DialogButton(WebSession.getString(1526));
-       private DialogButton send = new DialogButton(WebSession.getString(218));
-       private DialogButton cancel = new 
DialogButton(WebSession.getString(219));
-       private Form<Invitation> form;
-       private final KendoFeedbackPanel feedback = new 
KendoFeedbackPanel("feedback");
-
-       public InvitationDialog(String id) {
-               super(id, WebSession.getString(214));
-               add(form = new Form<Invitation>("form") {
-                       private static final long serialVersionUID = 1L;
-                       
-                       {
-                               add(feedback);
-                       }
-               });
+       private static final Logger log = 
Red5LoggerFactory.getLogger(InvitationDialog.class, webAppRootKey);
+       private final DialogButton generate = new 
DialogButton(WebSession.getString(1526));
+       private final DialogButton send = new 
DialogButton(WebSession.getString(218));
+       private final DialogButton cancel = new 
DialogButton(WebSession.getString(219));
+       private final InvitationForm form;
+       private final KendoFeedbackPanel feedback = new 
KendoFeedbackPanel("feedback", new Options("button", true));
+       private final long roomId;
+       private final IModel<String> subject = Model.of((String)null);
+       private final IModel<String> message = Model.of((String)null);
+       private final IModel<String> tzId = Model.of((String)null);
+       private final IModel<FieldLanguage> lang = 
Model.of((FieldLanguage)null);
+       private final IModel<Collection<User>> modelTo = new 
CollectionModel<User>(new ArrayList<User>());
+
+       public InvitationDialog(String id, long roomId) {
+               super(id, WebSession.getString(214), new 
CompoundPropertyModel<Invitation>(new Invitation()));
+               this.roomId = roomId;
+               add(form = new InvitationForm("form", getModel()));
        }
 
        @Override
-       public Form<Invitation> getForm() {
+       public int getWidth() {
+               return 500;
+       }
+
+       public void updateModel(AjaxRequestTarget target) {
+               Invitation i = new Invitation();
+               User u = getBean(UserDao.class).get(getUserId());
+               i.setInvitedBy(u);
+               i.setRoom(getBean(RoomDao.class).get(roomId));
+               Calendar d = Calendar.getInstance();
+               i.setValidFrom(d.getTime());
+               d.add(Calendar.DATE, 1);
+               i.setValidTo(d.getTime());
+               i.setPassword("ASDDF");
+               String hashRaw = "HASH" + (System.currentTimeMillis());
+               try {
+                       i.setHash(MD5.do_checksum(hashRaw));
+               } catch (NoSuchAlgorithmException e) {
+                       log.error("Unexpected error while creating invitation", 
e);
+                       throw new RuntimeException(e);
+               }
+               subject.setObject(null);
+               message.setObject(null);
+               modelTo.setObject(new ArrayList<User>());
+               tzId.setObject(u.getTimeZoneId());
+               
lang.setObject(getBean(FieldLanguageDao.class).get(u.getLanguage_id()));
+               form.setModelObject(i);
+               target.add(form);
+       }
+       
+       @Override
+       public InvitationForm getForm() {
                return form;
        }
 
@@ -66,9 +135,99 @@ public class InvitationDialog extends Ab
        
        @Override
        protected void onError(AjaxRequestTarget target) {
+               target.add(feedback);
        }
 
        @Override
        protected void onSubmit(AjaxRequestTarget target) {
+               //TODO implement this
+               for (User u : modelTo.getObject()) {
+                       //getBean(InvitationManager)
+               }
+       }
+       
+       private class InvitationForm extends Form<Invitation> {
+               private static final long serialVersionUID = 1L;
+               private final PasswordTextField passwd;
+               private final DateTimePicker from;
+               private final DateTimePicker to;
+               private final DropDownChoice<String> timeZoneId;
+               
+               public InvitationForm(String id, IModel<Invitation> model) {
+                       super(id, model);
+                       add(new UserMultiChoice("recipients", 
modelTo).setLabel(Model.of(WebSession.getString(216))).setRequired(true)
+                                       .add(new 
AjaxFormComponentUpdatingBehavior("change") {
+                                               private static final long 
serialVersionUID = 1L;
+               
+                                               @Override
+                                               protected void 
onUpdate(AjaxRequestTarget target) {
+                                                       
generate.setEnabled(modelTo.getObject().size() < 2, target);
+                                               }
+                                       }));
+                       add(new TextField<String>("subject", subject));
+                       add(new TextArea<String>("message", message));
+                       add(new AjaxCheckBox("passwordProtected") {
+                               private static final long serialVersionUID = 1L;
+
+                               @Override
+                               protected void onUpdate(AjaxRequestTarget 
target) {
+                                       
InvitationForm.this.getModelObject().setPasswordProtected(getConvertedInput());
+                                       passwd.setEnabled(getConvertedInput());
+                                       target.add(passwd);
+                               }
+                       });
+                       add(new RadioGroup<Valid>("valid").add(
+                                       new Radio<Valid>("one", 
Model.of(Valid.OneTime)).add(new AjaxEventBehavior("click") {
+                                               private static final long 
serialVersionUID = 1L;
+
+                                               @Override
+                                               protected void 
onEvent(AjaxRequestTarget target) {
+                                                       
target.add(from.setEnabled(false), to.setEnabled(false), 
timeZoneId.setEnabled(false));
+                                               }
+                                       })
+                                       , new Radio<Valid>("period", 
Model.of(Valid.Period)).add(new AjaxEventBehavior("click") {
+                                               private static final long 
serialVersionUID = 1L;
+
+                                               @Override
+                                               protected void 
onEvent(AjaxRequestTarget target) {
+                                                       
target.add(from.setEnabled(true), to.setEnabled(true), 
timeZoneId.setEnabled(true));
+                                               }
+                                       })
+                                       , new Radio<Valid>("endless", 
Model.of(Valid.Endless)).add(new AjaxEventBehavior("click") {
+                                               private static final long 
serialVersionUID = 1L;
+
+                                               @Override
+                                               protected void 
onEvent(AjaxRequestTarget target) {
+                                                       
target.add(from.setEnabled(false), to.setEnabled(false), 
timeZoneId.setEnabled(false));
+                                               }
+                                       })
+                                       ));
+                       add(passwd = new PasswordTextField("password"));
+                       Invitation i = getModelObject();
+                       
passwd.setLabel(Model.of(WebSession.getString(525))).setOutputMarkupId(true).setEnabled(i.isPasswordProtected());
+                       add(from = new AjaxDateTimePicker("validFrom", 
"yyyy/MM/dd", "HH:mm:ss")); //FIXME use user locale
+                       add(to = new AjaxDateTimePicker("validTo", 
"yyyy/MM/dd", "HH:mm:ss")); //FIXME use user locale
+                       add(timeZoneId = new 
DropDownChoice<String>("timeZoneId", tzId, AVAILABLE_TIMEZONES));
+                       from.setEnabled(i.getValid() == 
Valid.Period).setOutputMarkupId(true);
+                       to.setEnabled(i.getValid() == 
Valid.Period).setOutputMarkupId(true);
+                       timeZoneId.setEnabled(i.getValid() == 
Valid.Period).setOutputMarkupId(true)
+                               .add(new 
AjaxFormComponentUpdatingBehavior("change") {
+                                       private static final long 
serialVersionUID = 1L;
+       
+                                       @Override
+                                       protected void 
onUpdate(AjaxRequestTarget target) {
+                                               //no-op added to preserve 
selection
+                                       }
+                               });
+                       add(new DropDownChoice<FieldLanguage>("language", lang, 
getBean(FieldLanguageDao.class).get(), new 
ChoiceRenderer<FieldLanguage>("name", "id")));
+                       add(feedback);
+               }
+               
+               @Override
+               protected void onValidate() {
+                       if 
(from.getConvertedInput().after(to.getConvertedInput())) {
+                               error(WebSession.getString(1592));
+                       }
+               }
        }
 }

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1622752&r1=1622751&r2=1622752&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 Fri Sep  5 18:19:01 2014
@@ -115,7 +115,7 @@ public class RoomPanel extends BasePanel
                        
                }
        };
-       private InvitationDialog invite = new InvitationDialog("invite");
+       private final InvitationDialog invite;
        
        public RoomPanel(String id, long _roomId) {
                this(id, getBean(RoomDao.class).get(_roomId));
@@ -124,6 +124,7 @@ public class RoomPanel extends BasePanel
        public RoomPanel(String id, Room r) {
                super(id);
                this.roomId = r.getId();
+               invite = new InvitationDialog("invite", roomId);
                add(new MenuPanel("roomMenu", 
getMenu()).setVisible(!r.getHideTopBar()));
                WebMarkupContainer wb = new WebMarkupContainer("whiteboard");
                add(wb.setOutputMarkupId(true));
@@ -318,6 +319,7 @@ public class RoomPanel extends BasePanel
 
                        @Override
                        public void onClick(MainPage page, AjaxRequestTarget 
target) {
+                               invite.updateModel(target);
                                invite.open(target);
                        }
                });

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.html
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.html?rev=1622752&r1=1622751&r2=1622752&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.html
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.html
 Fri Sep  5 18:19:01 2014
@@ -29,11 +29,11 @@
                                </tr>
                                <tr>
                                        <td><wicket:ommessage key="570" /></td>
-                                       <td><span class="date" 
wicket:id="start"></span></td>
+                                       <td><span class="date time picker" 
wicket:id="start"></span></td>
                                </tr>
                                <tr>
                                        <td><wicket:ommessage key="571" /></td>
-                                       <td><span class="date" 
wicket:id="end"></span></td>
+                                       <td><span class="date time picker" 
wicket:id="end"></span></td>
                                </tr>
                                <tr>
                                        <td><wicket:ommessage key="565" /></td>

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java?rev=1622752&r1=1622751&r2=1622752&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
 Fri Sep  5 18:19:01 2014
@@ -97,7 +97,6 @@ public class AppointmentDialog extends A
                return 650;
        }
        
-       //@Override
        public void setModelObjectWithAjaxTarget(Appointment object, 
AjaxRequestTarget target) {
                form.setModelObject(object);
                form.setEnabled(object.getOwner() == null || getUserId() == 
object.getOwner().getId());
@@ -276,8 +275,8 @@ public class AppointmentDialog extends A
                        add(toolbar);
                        add(new WysiwygEditor("description", toolbar));
                        add(new TextField<String>("location"));
-                       add(start = new DateTimePicker("start", "yyyy MMM dd", 
"HH:mm:ss")); //FIXME use user locale
-                       add(end = new DateTimePicker("end", "yyyy MMM dd", 
"HH:mm:ss")); //FIXME use user locale
+                       add(start = new DateTimePicker("start", "yyyy/MM/dd", 
"HH:mm:ss")); //FIXME use user locale
+                       add(end = new DateTimePicker("end", "yyyy/MM/dd", 
"HH:mm:ss")); //FIXME use user locale
                        pwd.setEnabled(getModelObject().isPasswordProtected());
                        pwd.setOutputMarkupId(true);
                        add(pwd);

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/admin.css
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/admin.css?rev=1622752&r1=1622751&r2=1622752&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/admin.css 
(original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/admin.css 
Fri Sep  5 18:19:01 2014
@@ -274,14 +274,6 @@ table.adminListTable td div.four_column_
        height: 20px;
        margin: 2px 2px;
 }
-.adminForm .input {
-       display: block;
-       float: left;
-       font-size: 14px;
-       padding: 0px 0px;
-       width: 280px;
-       margin: 2px 2px;
-}
 .adminForm input[type=checkbox], .adminForm input[type=radio] {
        width: auto;
 }

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/calendar.css
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/calendar.css?rev=1622752&r1=1622751&r2=1622752&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/calendar.css
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/calendar.css
 Fri Sep  5 18:19:01 2014
@@ -56,9 +56,6 @@
 .appointmentPopUp td {
        vertical-align: middle;
 }
-.appointmentPopUp td .date {
-       font-size: 12px;
-}
 .appointmentPopUp .attendeeContainer {
        background-color: #FFFFFF;
        border: solid 1px #aacfe4;

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css?rev=1622752&r1=1622751&r2=1622752&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css 
(original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css 
Fri Sep  5 18:19:01 2014
@@ -604,3 +604,14 @@ select.messages.selector {
        bottom: 0;
        position: fixed;
 }
+form .input {
+       display: block;
+       float: left;
+       font-size: 14px;
+       padding: 0px 0px;
+       width: 280px;
+       margin: 2px 2px;
+}
+.date.time.picker {
+       font-size: 12px;
+}

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/labels/FillLabels.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/labels/FillLabels.java?rev=1622752&r1=1622751&r2=1622752&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/labels/FillLabels.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/labels/FillLabels.java
 Fri Sep  5 18:19:01 2014
@@ -87,7 +87,7 @@ public class FillLabels extends Abstract
        public void testCount() throws Exception {
                FieldLanguage prevLanguage = null;
                long prevCount = -1;
-               for (FieldLanguage l : fieldLanguageDao.getLanguages()) {
+               for (FieldLanguage l : fieldLanguageDao.get()) {
                        long count = fieldValueDao.count(l.getId(), null);
                        if (prevLanguage != null) {
                                assertEquals(String.format("Language: %s 
contains %d labels while %s contains %d labels"

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/labels/TestGetFieldValues.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/labels/TestGetFieldValues.java?rev=1622752&r1=1622751&r2=1622752&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/labels/TestGetFieldValues.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/labels/TestGetFieldValues.java
 Fri Sep  5 18:19:01 2014
@@ -45,7 +45,7 @@ public class TestGetFieldValues extends 
 
        @Test
        public void testCount() throws Exception {
-               int langCount = langDao.getLanguages().size();
+               int langCount = langDao.get().size();
                assertTrue("Languages should not be empty: " + langCount, 
langCount > 0);
                Fieldvalues fv = langValueDao.get(1L);
                assertNotNull("Fieldvalues should not be null", fv);


Reply via email to