You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2013/05/29 09:03:00 UTC

svn commit: r1487344 - in /openmeetings/trunk/singlewebapp: WebContent/WEB-INF/ src/org/apache/openmeetings/web/app/ src/org/apache/openmeetings/web/common/ src/org/apache/openmeetings/web/user/profile/ src/org/apache/openmeetings/web/user/record/

Author: solomax
Date: Wed May 29 07:03:00 2013
New Revision: 1487344

URL: http://svn.apache.org/r1487344
Log:
[OPENMEETINGS-615] add folder functionality is added;
	static resources are added to wicket "ignore list";

Added:
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/common/AddFolderDialog.html
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/common/AddFolderDialog.java
Modified:
    openmeetings/trunk/singlewebapp/WebContent/WEB-INF/web.xml
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.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
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/record/RecordingsPanel.html
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/record/RecordingsPanel.java

Modified: openmeetings/trunk/singlewebapp/WebContent/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/web.xml?rev=1487344&r1=1487343&r2=1487344&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/WebContent/WEB-INF/web.xml (original)
+++ openmeetings/trunk/singlewebapp/WebContent/WEB-INF/web.xml Wed May 29 07:03:00 2013
@@ -55,6 +55,10 @@
 			<param-name>configuration</param-name>
 			<param-value>@wicket.mode@</param-value>
 		</init-param>
+		<init-param>
+			<param-name>ignorePaths</param-name>
+			<param-value>conf,css,default,docs,images,js,persistence,public,screensharing,streams,upload,uploadtemp</param-value>
+		</init-param>
 	</filter>
 	<filter-mapping>
 		<filter-name>OpenmeetingsApplication</filter-name>

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.java?rev=1487344&r1=1487343&r2=1487344&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.java Wed May 29 07:03:00 2013
@@ -40,7 +40,7 @@ import org.apache.wicket.RestartResponse
 import org.apache.wicket.authroles.authentication.AbstractAuthenticatedWebSession;
 import org.apache.wicket.authroles.authentication.AuthenticatedWebApplication;
 import org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler;
-import org.apache.wicket.core.request.mapper.HomePageMapper;
+import org.apache.wicket.core.request.mapper.MountedMapper;
 import org.apache.wicket.markup.MarkupFactory;
 import org.apache.wicket.markup.MarkupParser;
 import org.apache.wicket.markup.MarkupResourceStream;
@@ -48,7 +48,9 @@ import org.apache.wicket.markup.html.Web
 import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.Url;
+import org.apache.wicket.request.component.IRequestablePage;
 import org.apache.wicket.request.mapper.info.PageComponentInfo;
+import org.apache.wicket.request.mapper.parameter.PageParametersEncoder;
 import org.apache.wicket.settings.IPageSettings;
 
 import ro.fortsoft.wicket.dashboard.WidgetRegistry;
@@ -100,25 +102,35 @@ public class Application extends Authent
 		mountPage("swf", SwfPage.class);
 		mountPage("install", InstallWizardPage.class);
 		mountPage("signin", getSignInPageClass());
-		mountPage("notinited", NotInitedPage.class);
 		mountResource("/recordings/mp4/${id}", new Mp4RecordingResourceReference());
 		mountResource("/recordings/ogg/${id}", new OggRecordingResourceReference());
 
-		getRootRequestMapperAsCompound().add(new HomePageMapper(getHomePage()) {
-			@Override
-			protected void encodePageComponentInfo(Url url, PageComponentInfo info) {
-				//Does nothing
-			}
-			
-			@Override
-			public Url mapHandler(IRequestHandler requestHandler) {
-				if (requestHandler instanceof ListenerInterfaceRequestHandler) {
-					return null;
-				} else {
-					return super.mapHandler(requestHandler);
-				}
+		getRootRequestMapperAsCompound().add(new NoVersionMapper(getHomePage()));
+		getRootRequestMapperAsCompound().add(new NoVersionMapper("notinited", NotInitedPage.class));
+	}
+	
+	private static class NoVersionMapper extends MountedMapper {
+		public NoVersionMapper(final Class<? extends IRequestablePage> pageClass) {
+			this("/", pageClass);
+		}
+		
+		public NoVersionMapper(String mountPath, final Class<? extends IRequestablePage> pageClass) {
+			super(mountPath, pageClass, new PageParametersEncoder());
+		}
+
+		@Override
+		protected void encodePageComponentInfo(Url url, PageComponentInfo info) {
+			//Does nothing
+		}
+		
+		@Override
+		public Url mapHandler(IRequestHandler requestHandler) {
+			if (requestHandler instanceof ListenerInterfaceRequestHandler) {
+				return null;
+			} else {
+				return super.mapHandler(requestHandler);
 			}
-		});
+		}
 	}
 	
 	public static OmAuthenticationStrategy getAuthenticationStrategy() {

Added: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/common/AddFolderDialog.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/common/AddFolderDialog.html?rev=1487344&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/common/AddFolderDialog.html (added)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/common/AddFolderDialog.html Wed May 29 07:03:00 2013
@@ -0,0 +1,28 @@
+<?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">
+		<span style="padding-left: 20px; padding-right: 20px;"><wicket:ommessage key="572"/></span><input type="text" wicket:id="title"/>
+		<div wicket:id="feedback"></div>
+	</form>
+</wicket:panel>
+</html>

Added: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/common/AddFolderDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/common/AddFolderDialog.java?rev=1487344&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/common/AddFolderDialog.java (added)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/common/AddFolderDialog.java Wed May 29 07:03:00 2013
@@ -0,0 +1,86 @@
+/*
+ * 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.common;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.RequiredTextField;
+import org.apache.wicket.markup.html.panel.FeedbackPanel;
+import org.apache.wicket.model.Model;
+
+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+
+public abstract class AddFolderDialog extends AbstractFormDialog<String> {
+	private static final long serialVersionUID = 1L;
+	private static final DialogButton add = new DialogButton(WebSession.getString(1261));
+	private static final DialogButton cancel = new DialogButton(WebSession.getString(219));
+	private final Form<String> form;
+	private final FeedbackPanel feedback = new FeedbackPanel("feedback");
+	private final String name;
+
+	public AddFolderDialog(String id) {
+		this(id, null);
+	}
+	
+	public AddFolderDialog(String id, String name) {
+		super(id, WebSession.getString(1260), Model.of(name));
+		this.name = name;
+		form = new Form<String>("form", getModel()) {
+			private static final long serialVersionUID = 1L;
+			{
+				add(new RequiredTextField<String>("title", getModel()));
+				add(feedback.setOutputMarkupId(true));
+			}
+		};
+		add(form);
+	}
+
+	@Override
+	protected void onOpen(AjaxRequestTarget target) {
+		super.onOpen(target);
+		
+		setModelObject(name);
+		getFeedbackMessages().clear();
+	}
+	
+	@Override
+	protected List<DialogButton> getButtons() {
+		return Arrays.asList(add, cancel);
+	}
+	
+	@Override
+	protected DialogButton getSubmitButton() {
+		return add;
+	}
+
+	@Override
+	public Form<String> getForm() {
+		return form;
+	}
+
+	@Override
+	protected void onError(AjaxRequestTarget target) {
+		target.add(feedback);
+	}
+}

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=1487344&r1=1487343&r2=1487344&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 Wed May 29 07:03:00 2013
@@ -29,7 +29,7 @@
 				<div class="email sent clickable" wicket:id="sent"><wicket:ommessage key="1223"/></div>
 				<div class="email trash clickable" wicket:id="trash"><wicket:ommessage key="1224"/></div>
 				<div class="email newdir clickable ui-widget-header ui-corner-all" wicket:id="newdir" wicket:ommessage="title:1259"><wicket:ommessage key="1258"/></div>
-				<div>
+				<div wicket:id="folders">
 					<div wicket:id="folder"><div wicket:id="name"></div><div wicket:id="delete"></div></div>
 				</div>
 			</td>
@@ -65,5 +65,6 @@
 			</td>
 		</tr>
 	</table>
+	<div wicket:id="addFolder"></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=1487344&r1=1487343&r2=1487344&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 Wed May 29 07:03:00 2013
@@ -23,12 +23,14 @@ import static org.apache.openmeetings.we
 import static org.apache.wicket.util.time.Duration.seconds;
 
 import java.util.Iterator;
+import java.util.List;
 
 import org.apache.openmeetings.data.user.dao.PrivateMessageFolderDao;
 import org.apache.openmeetings.data.user.dao.PrivateMessagesDao;
 import org.apache.openmeetings.persistence.beans.user.PrivateMessage;
 import org.apache.openmeetings.persistence.beans.user.PrivateMessageFolder;
 import org.apache.openmeetings.web.admin.SearchableDataView;
+import org.apache.openmeetings.web.common.AddFolderDialog;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.common.UserPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
@@ -48,16 +50,31 @@ import org.apache.wicket.model.Model;
 public class MessagesContactsPanel extends UserPanel {
 	private static final long serialVersionUID = 8098087441571734957L;
 	private final WebMarkupContainer container = new WebMarkupContainer("container");
+	private final WebMarkupContainer folders = new WebMarkupContainer("folders");
 	private final IModel<Long> unreadModel = Model.of(0L);
 	private final static long INBOX_FOLDER_ID = -1;
 	private final static long SENT_FOLDER_ID = -2;
 	private final static long TRASH_FOLDER_ID = -3;
 	private final IModel<Long> selectedModel = Model.of(INBOX_FOLDER_ID);
+	private final IModel<List<? extends PrivateMessageFolder>> foldersModel;
 	
 	@SuppressWarnings("unchecked")
 	public MessagesContactsPanel(String id) {
 		super(id);
+		foldersModel = Model.ofList(getBean(PrivateMessageFolderDao.class).get(0, Integer.MAX_VALUE));
 		
+		final AddFolderDialog addFolder = new AddFolderDialog("addFolder") {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onSubmit(AjaxRequestTarget target) {
+				PrivateMessageFolderDao fDao = getBean(PrivateMessageFolderDao.class);
+				fDao.addPrivateMessageFolder(getModelObject(), getUserId());
+				foldersModel.setObject(fDao.get(0, Integer.MAX_VALUE));
+				target.add(folders);
+			}
+		};
+		add(addFolder);
 		add(new WebMarkupContainer("new").add(new AjaxEventBehavior("click") {
 			private static final long serialVersionUID = 1L;
 
@@ -97,9 +114,10 @@ public class MessagesContactsPanel exten
 
 			@Override
 			protected void onEvent(AjaxRequestTarget target) {
+				addFolder.open(target);
 			}
 		}));
-		add(new ListView<PrivateMessageFolder>("folder", getBean(PrivateMessageFolderDao.class).get(0, Integer.MAX_VALUE)) {
+		add(folders.add(new ListView<PrivateMessageFolder>("folder", foldersModel) {
 			private static final long serialVersionUID = 1L;
 
 			@Override
@@ -107,7 +125,7 @@ public class MessagesContactsPanel exten
 				item.add(new Label("name", item.getModelObject().getFolderName()));
 				item.add(new WebMarkupContainer("delete"));
 			}
-		});
+		}).setOutputMarkupId(true));
 		unreadModel.setObject(getBean(PrivateMessagesDao.class).count(getUserId(), null, false, false));
 		
 		SearchableDataProvider<PrivateMessage> sdp = new SearchableDataProvider<PrivateMessage>(PrivateMessagesDao.class) {

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/record/RecordingsPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/record/RecordingsPanel.html?rev=1487344&r1=1487343&r2=1487344&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/record/RecordingsPanel.html (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/record/RecordingsPanel.html Wed May 29 07:03:00 2013
@@ -84,5 +84,6 @@
 			</td>
 		</tr>
 	</table>
+	<div wicket:id="addFolder"></div>
 </wicket:panel>
 </html>

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/record/RecordingsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/record/RecordingsPanel.java?rev=1487344&r1=1487343&r2=1487344&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/record/RecordingsPanel.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/record/RecordingsPanel.java Wed May 29 07:03:00 2013
@@ -34,6 +34,7 @@ import org.apache.openmeetings.data.user
 import org.apache.openmeetings.persistence.beans.domain.Organisation_Users;
 import org.apache.openmeetings.persistence.beans.flvrecord.FlvRecording;
 import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.common.AddFolderDialog;
 import org.apache.openmeetings.web.common.ConfirmableAjaxLink;
 import org.apache.openmeetings.web.common.UserPanel;
 import org.apache.openmeetings.web.util.AjaxDownload;
@@ -80,13 +81,13 @@ public class RecordingsPanel extends Use
 		super(id);
 		rm.getObject().setFlvRecordingId(-3);
 		rm.getObject().setOwnerId(getUserId());
-		add(new WebMarkupContainer("create").add(new AjaxEventBehavior("onclick") {
-			private static final long serialVersionUID = -110084769805785972L;
+		final AddFolderDialog addFolder = new AddFolderDialog("addFolder", WebSession.getString(712)) {
+			private static final long serialVersionUID = 1L;
 
 			@Override
-			protected void onEvent(AjaxRequestTarget target) {
+			protected void onSubmit(AjaxRequestTarget target) {
 				FlvRecording f = new FlvRecording();
-				f.setFileName(WebSession.getString(712));
+				f.setFileName(getModelObject());
 				f.setInsertedBy(getUserId());
 				f.setInserted(new Date());
 				f.setIsFolder(true);
@@ -99,6 +100,15 @@ public class RecordingsPanel extends Use
 				getBean(FlvRecordingDao.class).updateFlvRecording(f);
 				target.add(trees);
 			}
+		};
+		add(addFolder);
+		add(new WebMarkupContainer("create").add(new AjaxEventBehavior("onclick") {
+			private static final long serialVersionUID = -110084769805785972L;
+
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				addFolder.open(target);
+			}
 		}));
 		add(new WebMarkupContainer("refresh").add(new AjaxEventBehavior("onclick") {
 			private static final long serialVersionUID = -110084769805785972L;