Author: solomax
Date: Fri Sep 12 08:31:28 2014
New Revision: 1624477

URL: http://svn.apache.org/r1624477
Log:
[OPENMEETINGS-1018] generate URL is added

Modified:
    
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

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=1624477&r1=1624476&r2=1624477&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 12 08:31:28 2014
@@ -69,7 +69,7 @@
                                <td><select wicket:id="language"/></td>
                        </tr>
                        <tr>
-                               <td colspan="2"><input type="text" 
disabled="disabled" style="width: 100%;"/></td>
+                               <td colspan="2"><input wicket:id="url" 
type="text" disabled="disabled" style="width: 100%;"/></td>
                        </tr>
                </table>
                <span wicket:id="feedback"></span>

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=1624477&r1=1624476&r2=1624477&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 12 08:31:28 2014
@@ -20,6 +20,7 @@ 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.Application.getInvitationLink;
 import static org.apache.openmeetings.web.app.WebSession.AVAILABLE_TIMEZONES;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 
@@ -30,6 +31,7 @@ import java.util.Calendar;
 import java.util.Collection;
 import java.util.List;
 
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.label.FieldLanguageDao;
 import org.apache.openmeetings.db.dao.room.InvitationDao;
 import org.apache.openmeetings.db.dao.room.RoomDao;
@@ -61,6 +63,7 @@ import org.apache.wicket.model.CompoundP
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.util.CollectionModel;
+import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 
@@ -85,6 +88,7 @@ public class InvitationDialog extends Ab
        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>());
+       private final TextField<String> url = new TextField<String>("url", 
Model.of((String)null));
 
        public InvitationDialog(String id, long roomId) {
                super(id, WebSession.getString(214), new 
CompoundPropertyModel<Invitation>(new Invitation()));
@@ -119,6 +123,7 @@ public class InvitationDialog extends Ab
                modelTo.setObject(new ArrayList<User>());
                tzId.setObject(u.getTimeZoneId());
                
lang.setObject(getBean(FieldLanguageDao.class).get(u.getLanguage_id()));
+               url.setModelObject(null);
                form.setModelObject(i);
                send.setEnabled(false, target);
                generate.setEnabled(false, target);
@@ -155,34 +160,58 @@ public class InvitationDialog extends Ab
 
        @Override
        public void onClick(AjaxRequestTarget target, DialogButton button) {
-               // TODO Auto-generated method stub
-               super.onClick(target, button);
+               //TODO need to be reviewed
+               if (button.equals(cancel)) {
+                       super.onClick(target, button);
+               } else if (button.equals(generate)) {
+                       Invitation i = 
create(modelTo.getObject().iterator().next());
+                       form.setModelObject(i);
+                       
url.setModelObject(getInvitationLink(getBean(ConfigurationDao.class).getBaseUrl(),
 i));
+                       target.add(url);
+               } else if (button.equals(send)) {
+                       if (Strings.isEmpty(url.getModelObject())) {
+                               for (User u : modelTo.getObject()) {
+                                       Invitation i = create(u);
+                                       try {
+                                               
getBean(InvitationManager.class).sendInvitionLink(i, MessageType.Create, 
subject.getObject(), message.getObject(), false);
+                                       } catch (Exception e) {
+                                               log.error("error while sending 
invitation ", e);
+                                       }
+                               }
+                       } else {
+                               //FIXME To might be changed and it would'n be 
reflected, might lead to misunderstandings
+                               Invitation i = form.getModelObject();
+                               try {
+                                       
getBean(InvitationManager.class).sendInvitionLink(i, MessageType.Create, 
subject.getObject(), message.getObject(), false);
+                               } catch (Exception e) {
+                                       log.error("error while sending 
invitation ", e);
+                               }
+                       }
+                       super.onClick(target, button);
+               }
        }
        
-       @Override
-       protected void onSubmit(AjaxRequestTarget target) {
+       private Invitation create(User u) {
                Invitation i = form.getModelObject();
-               for (User u : modelTo.getObject()) {
-                       
i.setPassword(ManageCryptStyle.getInstanceOfCrypt().createPassPhrase(i.getPassword()));
 //FIXME should be hidden
-                       //FIXME another HACK
-                       Calendar d = Calendar.getInstance();
-                       d.setTime(i.getValidFrom());
-                       d.add(Calendar.MINUTE, -5);
-                       i.setValidFrom(d.getTime());
-                       
-                       i.setInvitee(u);
-                       if (Type.contact == u.getType()) {
-                               //TODO not sure it is right
-                               u.setLanguage_id(lang.getObject().getId());
-                       }
-                       getBean(InvitationDao.class).update(i);
-                       try {
-                               //FIXME getHash vs send
-                               
getBean(InvitationManager.class).sendInvitionLink(i, MessageType.Create, 
subject.getObject(), message.getObject(), false);
-                       } catch (Exception e) {
-                               log.error("error while processing ", e);
-                       }
+               
+               
i.setPassword(ManageCryptStyle.getInstanceOfCrypt().createPassPhrase(i.getPassword()));
 //FIXME should be hidden
+               //FIXME another HACK
+               Calendar d = Calendar.getInstance();
+               d.setTime(i.getValidFrom());
+               d.add(Calendar.MINUTE, -5);
+               i.setValidFrom(d.getTime());
+               
+               i.setInvitee(u);
+               if (Type.contact == u.getType()) {
+                       //TODO not sure it is right
+                       u.setLanguage_id(lang.getObject().getId());
                }
+               return getBean(InvitationDao.class).update(i);
+       }
+       
+       @Override
+       protected void onSubmit(AjaxRequestTarget target) {
+               //designed to be empty because of multiple submit buttons
        }
        
        private class InvitationForm extends Form<Invitation> {
@@ -261,6 +290,7 @@ public class InvitationDialog extends Ab
                                        }
                                });
                        add(new DropDownChoice<FieldLanguage>("language", lang, 
getBean(FieldLanguageDao.class).get(), new 
ChoiceRenderer<FieldLanguage>("name", "id")));
+                       add(url.setOutputMarkupId(true));
                        add(feedback);
                }
                


Reply via email to