Author: solomax
Date: Tue Jun  4 10:24:23 2013
New Revision: 1489371

URL: http://svn.apache.org/r1489371
Log:
[OPENMEETINGS-615] Basic "new message" dialog is added (incomplete, broken)

Added:
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessageDialog.html
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessageDialog.java
Modified:
    openmeetings/trunk/singlewebapp/ivy.xml
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/DaoHelper.java
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java

Modified: openmeetings/trunk/singlewebapp/ivy.xml
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/ivy.xml?rev=1489371&r1=1489370&r2=1489371&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/ivy.xml (original)
+++ openmeetings/trunk/singlewebapp/ivy.xml Tue Jun  4 10:24:23 2013
@@ -256,16 +256,16 @@
                <dependency org="org.apache.wicket" 
name="wicket-native-websocket-tomcat" rev="0.9" conf="openmeetings->*" 
transitive="false">
                        <include type="jar" />
                </dependency>
-               <dependency org="com.googlecode.wicket-jquery-ui" 
name="wicket-jquery-ui-core" rev="6.8.0" conf="openmeetings->*" 
transitive="false">
+               <dependency org="com.googlecode.wicket-jquery-ui" 
name="wicket-jquery-ui-core" rev="6.8.1" conf="openmeetings->*" 
transitive="false">
                        <include type="jar" />
                </dependency>
-               <dependency org="com.googlecode.wicket-jquery-ui" 
name="wicket-jquery-ui" rev="6.8.0" conf="openmeetings->*" transitive="false">
+               <dependency org="com.googlecode.wicket-jquery-ui" 
name="wicket-jquery-ui" rev="6.8.1" conf="openmeetings->*" transitive="false">
             <include type="jar" />
         </dependency>
-               <dependency org="com.googlecode.wicket-jquery-ui" 
name="wicket-jquery-ui-calendar" rev="6.8.0" conf="openmeetings->*" 
transitive="false">
+               <dependency org="com.googlecode.wicket-jquery-ui" 
name="wicket-jquery-ui-calendar" rev="6.8.1" conf="openmeetings->*" 
transitive="false">
                        <include type="jar" />
                </dependency>
-               <dependency org="com.googlecode.wicket-jquery-ui" 
name="wicket-jquery-ui-plugins" rev="6.8.0" conf="openmeetings->*" 
transitive="false">
+               <dependency org="com.googlecode.wicket-jquery-ui" 
name="wicket-jquery-ui-plugins" rev="6.8.1" conf="openmeetings->*" 
transitive="false">
                        <include type="jar" />
                </dependency>
                <dependency org="ro.fortsoft.wicket.dashboard" 
name="wicket-dashboard-core" rev="0.8" conf="openmeetings->*" 
transitive="false">

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/DaoHelper.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/DaoHelper.java?rev=1489371&r1=1489370&r2=1489371&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/DaoHelper.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/DaoHelper.java
 Tue Jun  4 10:24:23 2013
@@ -25,6 +25,7 @@ public class DaoHelper {
        public static String getSearchQuery(String table, String alias, String 
search, boolean filterDeleted, boolean count, String sort, String... fields) {
                return getSearchQuery(table, alias, search, filterDeleted, 
count, null, sort, fields);
        }
+       
        public static String getSearchQuery(String table, String alias, String 
search, boolean filterDeleted, boolean count, String additionalWhere, String 
sort, String... fields) {
                StringBuilder sb = new StringBuilder("SELECT ");
                if (count) {

Added: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessageDialog.html
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessageDialog.html?rev=1489371&view=auto
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessageDialog.html
 (added)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessageDialog.html
 Tue Jun  4 10:24:23 2013
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org";>
+<wicket:panel>
+       <form wicket:id="form">
+               <table style="width: 100%;">
+                       <tr>
+                               <td><wicket:ommessage key="1210"/></td>
+                               <td><input type="text" wicket:id="to"/></td>
+                       </tr>
+                       <tr>
+                               <td><wicket:ommessage key="1211"/></td>
+                               <td><input type="text" 
wicket:id="subject"/></td>
+                       </tr>
+                       <tr>
+                               <td colspan="2"><textarea wicket:id="message" 
style="width: 100%; height: 300px;"></textarea></td>
+                       </tr>
+                       <tr>
+                               <td colspan="2"><input type="checkbox" 
wicket:id="room" /><label wicket:for="room"><wicket:ommessage 
key="1218"/></label></td>
+                       </tr>
+                       <tr wicket:id="roomParams">
+                               <td colspan="2">
+                                       <table style="width: 100%">
+                                               <tr>
+                                                       <td style="width: 
70px;">
+                                                               <table>
+                                                                       <tr>
+                                                                               
<td><wicket:ommessage key="194"/></td>
+                                                                               
<td><select wicket:id="roomType"></select></td>
+                                                                       </tr>
+                                                                       <tr>
+                                                                               
<td><wicket:ommessage key="570" /></td>
+                                                                               
<td><span wicket:id="start"></span></td>
+                                                                       </tr>
+                                                                       <tr>
+                                                                               
<td><wicket:ommessage key="571" /></td>
+                                                                               
<td><span wicket:id="end"></span></td>
+                                                                       </tr>
+                                                               </table>
+                                                       </td>
+                                                       <td><div 
class="info-icon"></div><span style="font-style: italic;"><wicket:ommessage 
key="1221" /></span></td>
+                                               </tr>
+                                       </table>
+                               </td>
+                       </tr>
+               </table>
+       </form>
+</wicket:panel>
+</html>
\ No newline at end of file

Added: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessageDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessageDialog.java?rev=1489371&view=auto
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessageDialog.java
 (added)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessageDialog.java
 Tue Jun  4 10:24:23 2013
@@ -0,0 +1,120 @@
+/*
+ * 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.apache.openmeetings.web.user.profile;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.openmeetings.data.user.dao.UsersDao;
+import org.apache.openmeetings.persistence.beans.user.PrivateMessage;
+import org.apache.openmeetings.persistence.beans.user.User;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.form.CheckBox;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.TextArea;
+import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+
+import com.googlecode.wicket.jquery.core.renderer.ITextRenderer;
+import com.googlecode.wicket.jquery.ui.form.autocomplete.AutoCompleteTextField;
+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+
+public class MessageDialog extends AbstractFormDialog<PrivateMessage> {
+       private static final long serialVersionUID = 1L;
+       private final Form<PrivateMessage> form;
+       private DialogButton send = new DialogButton(WebSession.getString(218));
+       private DialogButton cancel = new 
DialogButton(WebSession.getString(219));
+       private final WebMarkupContainer roomParams = new 
WebMarkupContainer("roomParams");
+
+       public MessageDialog(String id, IModel<PrivateMessage> model) {
+               super(id, WebSession.getString(1209), model);
+               form = new Form<PrivateMessage>("form", getModel());
+               
+               form.add(new AutoCompleteTextField<User>("to", new 
UserTextRenderer()) {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected List<User> getChoices(String input) {
+                               return getBean(UsersDao.class).get(input, 0, 
10, null);
+                       }
+               });
+               form.add(new TextField<String>("subject"));
+               form.add(new TextArea<String>("message"));
+               form.add(roomParams.setOutputMarkupId(true));
+               form.add(new CheckBox("room", 
Model.of(getModelObject().getRoom() != null)).add(new 
AjaxEventBehavior("click") {
+                       private static final long serialVersionUID = 1L;
+                       boolean val = false;
+                       
+                       @Override
+                       protected void onEvent(AjaxRequestTarget target) {
+                               target.add(roomParams.setVisible(val = !val));
+                       }
+               }));
+               roomParams.add(new WebMarkupContainer("roomType"));
+               roomParams.add(new WebMarkupContainer("start"));
+               roomParams.add(new WebMarkupContainer("end"));
+               add(form);
+       }
+
+       @Override
+       protected List<DialogButton> getButtons() {
+               return Arrays.asList(send, cancel);
+       }
+       
+       @Override
+       protected DialogButton getSubmitButton() {
+               return send;
+       }
+
+       @Override
+       public Form<PrivateMessage> getForm() {
+               return form;
+       }
+
+       @Override
+       protected void onError(AjaxRequestTarget target) {
+               // TODO Auto-generated method stub
+
+       }
+
+       @Override
+       protected void onSubmit(AjaxRequestTarget target) {
+               // TODO Auto-generated method stub
+
+       }
+
+       private static class UserTextRenderer implements ITextRenderer<User> {
+               private static final long serialVersionUID = 1L;
+
+               public String getText(User u) {
+                       return u == null ? "" : String.format("%s %s <%s>", 
u.getFirstname(), u.getLastname(), u.getAdresses().getEmail());
+               }
+               
+               public String getText(User u, String expression) {
+                       return getText(u);
+               }
+       }
+}

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html?rev=1489371&r1=1489370&r2=1489371&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
 Tue Jun  4 10:24:23 2013
@@ -69,5 +69,6 @@
                </tr>
        </table>
        <div wicket:id="addFolder"></div>
+       <div wicket:id="newMessage"></div>
 </wicket:panel>
 </html>

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java?rev=1489371&r1=1489370&r2=1489371&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
 Tue Jun  4 10:24:23 2013
@@ -69,6 +69,7 @@ public class MessagesContactsPanel exten
        private final WebMarkupContainer inbox = new 
WebMarkupContainer("inbox");
        private final WebMarkupContainer sent = new WebMarkupContainer("sent");
        private final WebMarkupContainer trash = new 
WebMarkupContainer("trash");
+       private final MessageDialog newMessage = new 
MessageDialog("newMessage", Model.of(new PrivateMessage()));
        
        private void setDefaultFolderClass() {
                inbox.add(AttributeAppender.replace("class", "email inbox 
clickable"));
@@ -126,6 +127,8 @@ public class MessagesContactsPanel exten
 
                        @Override
                        protected void onEvent(AjaxRequestTarget target) {
+                               newMessage.setModelObject(new PrivateMessage());
+                               newMessage.open(target);
                        }
                }).add(new JQueryBehavior(".email.new", "button")));
                folders.add(inbox.add(new AjaxEventBehavior("click") {
@@ -268,6 +271,6 @@ public class MessagesContactsPanel exten
                
                add(container.add(dv).setOutputMarkupId(true));
                container.add(new AjaxSelfUpdatingTimerBehavior(seconds(15)));
+               add(newMessage);
        }
-       
 }


Reply via email to