Author: solomax
Date: Wed Apr 24 14:44:45 2013
New Revision: 1471444
URL: http://svn.apache.org/r1471444
Log:
[OPENMEETINGS-612] Dashboard save/load is implemented
Added:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/UserDashboardPersister.java
Modified:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/OmFileHelper.java
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.java
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UserForm.java
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/WelcomeWidgetView.java
Modified:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/OmFileHelper.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/OmFileHelper.java?rev=1471444&r1=1471443&r2=1471444&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/OmFileHelper.java
(original)
+++
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/OmFileHelper.java
Wed Apr 24 14:44:45 2013
@@ -66,6 +66,7 @@ public class OmFileHelper {
public static final String chatImagePrefix = "_chat_";
public static final String bigImagePrefix = "_big_";
public static final String thumbImagePrefix = "_thumb_";
+ public static final String dashboardFile = "dashboard.xml";
public static void setOmHome(File omHome) {
OmFileHelper.OM_HOME = omHome;
@@ -124,6 +125,10 @@ public class OmFileHelper {
return img;
}
+ public static File getUserDashboard(Long userId) {
+ return new File(getUploadProfilesUserDir(userId),
dashboardFile);
+ }
+
public static File getUploadImportDir() {
return getDir(getUploadDir(), IMPORT_DIR);
}
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=1471444&r1=1471443&r2=1471444&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 Apr 24 14:44:45 2013
@@ -25,6 +25,7 @@ import org.apache.openmeetings.web.compo
import org.apache.openmeetings.web.pages.MainPage;
import org.apache.openmeetings.web.pages.NotInitedPage;
import org.apache.openmeetings.web.pages.auth.SignInPage;
+import org.apache.openmeetings.web.util.UserDashboardPersister;
import org.apache.wicket.Page;
import org.apache.wicket.RestartResponseException;
import
org.apache.wicket.authroles.authentication.AbstractAuthenticatedWebSession;
@@ -74,6 +75,7 @@ public class Application extends Authent
// register some widgets
dashboardContext = new DashboardContext();
+ dashboardContext.setDashboardPersiter(new
UserDashboardPersister());
WidgetRegistry widgetRegistry =
dashboardContext.getWidgetRegistry();
widgetRegistry.registerWidget(new
PrivateRoomsWidgetDescriptor());
widgetRegistry.registerWidget(new WelcomeWidgetDescriptor());
Modified:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java?rev=1471444&r1=1471443&r2=1471444&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java
(original)
+++
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java
Wed Apr 24 14:44:45 2013
@@ -177,10 +177,12 @@ public class WebSession extends Abstract
dashboard = dashboardContext.getDashboardPersiter().load();
if (dashboard == null) {
dashboard = new DefaultDashboard("default", "Default");
+
+ WidgetFactory widgetFactory =
dashboardContext.getWidgetFactory();
+ dashboard.addWidget(widgetFactory.createWidget(new
WelcomeWidgetDescriptor()));
+ dashboard.addWidget(widgetFactory.createWidget(new
StartWidgetDescriptor()));
+ dashboard.addWidget(widgetFactory.createWidget(new
PrivateRoomsWidgetDescriptor()));
+ dashboardContext.getDashboardPersiter().save(dashboard);
}
- WidgetFactory widgetFactory =
dashboardContext.getWidgetFactory();
- dashboard.addWidget(widgetFactory.createWidget(new
WelcomeWidgetDescriptor()));
- dashboard.addWidget(widgetFactory.createWidget(new
StartWidgetDescriptor()));
- dashboard.addWidget(widgetFactory.createWidget(new
PrivateRoomsWidgetDescriptor()));
}
}
Modified:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UserForm.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UserForm.java?rev=1471444&r1=1471443&r2=1471444&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UserForm.java
(original)
+++
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UserForm.java
Wed Apr 24 14:44:45 2013
@@ -78,8 +78,7 @@ public class UserForm extends AdminBaseF
private User user;
private final List<Salutation> saluationList = Application.getBean(
- SalutationDao.class).getUserSalutations(
- WebSession.getLanguage());
+
SalutationDao.class).getUserSalutations(WebSession.getLanguage());
private final List<FieldLanguage> languageList = Application.getBean(
FieldLanguageDao.class).getLanguages();
Modified:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/WelcomeWidgetView.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/WelcomeWidgetView.java?rev=1471444&r1=1471443&r2=1471444&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/WelcomeWidgetView.java
(original)
+++
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/dashboard/WelcomeWidgetView.java
Wed Apr 24 14:44:45 2013
@@ -38,7 +38,7 @@ public class WelcomeWidgetView extends W
super(id, model);
User u =
Application.getBean(UsersDao.class).get(WebSession.getUserId());
- add(new ProfileImagePanel("img",
WebSession.getUserId()));//FIXME
+ add(new ProfileImagePanel("img", WebSession.getUserId()));
//FIXME this need to be aligned according to Locale
add(new Label("firstname", Model.of(u.getFirstname())));
add(new Label("lastname", Model.of(u.getLastname())));
Added:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/UserDashboardPersister.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/UserDashboardPersister.java?rev=1471444&view=auto
==============================================================================
---
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/UserDashboardPersister.java
(added)
+++
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/UserDashboardPersister.java
Wed Apr 24 14:44:45 2013
@@ -0,0 +1,36 @@
+/*
+ * 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.util;
+
+import static org.apache.openmeetings.utils.OmFileHelper.getUserDashboard;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import ro.fortsoft.wicket.dashboard.Dashboard;
+import ro.fortsoft.wicket.dashboard.DashboardPersister;
+import ro.fortsoft.wicket.dashboard.XStreamDashboardPersister;
+
+public class UserDashboardPersister implements DashboardPersister {
+ public Dashboard load() {
+ return new
XStreamDashboardPersister(getUserDashboard(getUserId())).load();
+ }
+
+ public void save(Dashboard dashboard) {
+ new
XStreamDashboardPersister(getUserDashboard(getUserId())).save(dashboard);
+ }
+
+}