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 2016/04/05 06:04:40 UTC
svn commit: r1737761 - in /openmeetings/application:
branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/
branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/
branches/3.1.x/openmeetings-we...
Author: solomax
Date: Tue Apr 5 04:04:39 2016
New Revision: 1737761
URL: http://svn.apache.org/viewvc?rev=1737761&view=rev
Log:
[OPENMEETINGS-853] admin widget is added
Added:
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidget.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetDescriptor.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetView.html
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetView.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidget.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetDescriptor.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetView.html
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetView.java
Modified:
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserDashboard.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserDashboard.java
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1737761&r1=1737760&r2=1737761&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java Tue Apr 5 04:04:39 2016
@@ -61,6 +61,7 @@ import org.apache.openmeetings.web.pages
import org.apache.openmeetings.web.pages.SwfPage;
import org.apache.openmeetings.web.pages.auth.SignInPage;
import org.apache.openmeetings.web.pages.install.InstallWizardPage;
+import org.apache.openmeetings.web.user.dashboard.AdminWidgetDescriptor;
import org.apache.openmeetings.web.user.dashboard.MyRoomsWidgetDescriptor;
import org.apache.openmeetings.web.user.dashboard.RssWidgetDescriptor;
import org.apache.openmeetings.web.user.dashboard.StartWidgetDescriptor;
@@ -137,6 +138,7 @@ public class Application extends Authent
widgetRegistry.registerWidget(new WelcomeWidgetDescriptor());
widgetRegistry.registerWidget(new StartWidgetDescriptor());
widgetRegistry.registerWidget(new RssWidgetDescriptor());
+ widgetRegistry.registerWidget(new AdminWidgetDescriptor());
// add dashboard context injector
getComponentInstantiationListeners().add(new DashboardContextInjector(dashboardContext));
DashboardSettings dashboardSettings = DashboardSettings.get();
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml?rev=1737761&r1=1737760&r2=1737761&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml Tue Apr 5 04:04:39 2016
@@ -1890,4 +1890,6 @@
<entry key="admin.email.errorCount">Error Count</entry>
<entry key="admin.email.lastError">Last Error</entry>
<entry key="admin.email.reset.status">Reset Status</entry>
+ <entry key="dashboard.widget.admin.title">Admin functions</entry>
+ <entry key="dashboard.widget.admin.desc">General Admin functions</entry>
</properties>
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1737761&r1=1737760&r2=1737761&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java Tue Apr 5 04:04:39 2016
@@ -61,6 +61,8 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.util.TimezoneUtil;
import org.apache.openmeetings.util.OmException;
import org.apache.openmeetings.web.pages.SwfPage;
+import org.apache.openmeetings.web.user.dashboard.AdminWidget;
+import org.apache.openmeetings.web.user.dashboard.AdminWidgetDescriptor;
import org.apache.openmeetings.web.user.dashboard.MyRoomsWidget;
import org.apache.openmeetings.web.user.dashboard.MyRoomsWidgetDescriptor;
import org.apache.openmeetings.web.user.dashboard.RssWidget;
@@ -243,7 +245,7 @@ public class WebSession extends Abstract
externalType = u.getExternalType();
tz = getBean(TimezoneUtil.class).getTimeZone(u);
ISO8601FORMAT.setTimeZone(tz);
- setLocale(languageId == 3 ? Locale.GERMANY : LabelDao.languages.get(languageId)); //FIXME hack
+ setLocale(languageId == 3 ? Locale.GERMANY : LabelDao.languages.get(languageId));
//FIXMW locale need to be set by User language first
sdf = DateFormat.getDateTimeInstance(SHORT, SHORT, getLocale());
if (null == getId()) {
@@ -440,10 +442,11 @@ public class WebSession extends Abstract
private void initDashboard() {
DashboardContext dashboardContext = getDashboardContext();
dashboard = (UserDashboard)dashboardContext.getDashboardPersister().load();
- boolean existMyRoomWidget = false, existRssWidget = false;
+ boolean existMyRoomWidget = false, existRssWidget = false, existAdminWidget = false;
ConfigurationDao cfgDao = getBean(ConfigurationDao.class);
boolean showMyRoomConfValue = 1 == cfgDao.getConfValue(CONFIG_DASHBOARD_SHOW_MYROOMS_KEY, Integer.class, "0");
boolean showRssConfValue = 1 == cfgDao.getConfValue(CONFIG_DASHBOARD_SHOW_RSS_KEY, Integer.class, "0");
+ boolean showAdminWidget = getRights().contains(User.Right.Admin);
boolean save = false;
WidgetFactory widgetFactory = dashboardContext.getWidgetFactory();
@@ -459,6 +462,9 @@ public class WebSession extends Abstract
if (showRssConfValue) {
dashboard.addWidget(widgetFactory.createWidget(new RssWidgetDescriptor()));
}
+ if (showAdminWidget) {
+ dashboard.addWidget(widgetFactory.createWidget(new AdminWidgetDescriptor()));
+ }
save = true;
} else {
for (Iterator<Widget> iter = dashboard.getWidgets().iterator(); iter.hasNext();) {
@@ -475,6 +481,12 @@ public class WebSession extends Abstract
if (!showRssConfValue) {
iter.remove();
}
+ } else if ((w.getClass().equals(AdminWidget.class))) {
+ // AdminWidget is stored in the profile of user. check if user is admin.
+ existAdminWidget = true;
+ if (!showAdminWidget) {
+ iter.remove();
+ }
} else {
w.init();
}
@@ -489,6 +501,11 @@ public class WebSession extends Abstract
dashboard.addWidget(widgetFactory.createWidget(new RssWidgetDescriptor()));
save = true;
}
+ // user had no admin rights, now he/she has.
+ if (!existAdminWidget && showAdminWidget && !dashboard.isWidgetAdminDeleted()) {
+ dashboard.addWidget(widgetFactory.createWidget(new AdminWidgetDescriptor()));
+ save = true;
+ }
}
if (save) {
dashboardContext.getDashboardPersister().save(dashboard);
Added: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidget.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidget.java?rev=1737761&view=auto
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidget.java (added)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidget.java Tue Apr 5 04:04:39 2016
@@ -0,0 +1,50 @@
+/*
+ * 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.dashboard;
+
+import org.apache.openmeetings.web.app.Application;
+import org.apache.wicket.model.Model;
+
+import ro.fortsoft.wicket.dashboard.AbstractWidget;
+import ro.fortsoft.wicket.dashboard.Widget;
+import ro.fortsoft.wicket.dashboard.WidgetLocation;
+import ro.fortsoft.wicket.dashboard.web.WidgetView;
+
+public class AdminWidget extends AbstractWidget {
+ private static final long serialVersionUID = 1L;
+ public static final String WIDGET_ID_ADMIN = "AdminWidget";
+
+ public AdminWidget() {
+ super();
+ location = new WidgetLocation(0, 2);
+ init();
+ }
+
+ @Override
+ public void init() {
+ super.init();
+ title = Application.getString("dashboard.widget.admin.title");
+ id = WIDGET_ID_ADMIN;
+ }
+
+ @Override
+ public WidgetView createView(String viewId) {
+ return new AdminWidgetView(viewId, new Model<Widget>(this));
+ }
+}
Added: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetDescriptor.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetDescriptor.java?rev=1737761&view=auto
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetDescriptor.java (added)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetDescriptor.java Tue Apr 5 04:04:39 2016
@@ -0,0 +1,52 @@
+/*
+ * 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.dashboard;
+
+import org.apache.openmeetings.web.app.Application;
+
+import ro.fortsoft.wicket.dashboard.WidgetDescriptor;
+
+public class AdminWidgetDescriptor implements WidgetDescriptor {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public String getName() {
+ return Application.getString("dashboard.widget.admin.title");
+ }
+
+ @Override
+ public String getProvider() {
+ return "Apache Openmeetings";
+ }
+
+ @Override
+ public String getDescription() {
+ return Application.getString("dashboard.widget.admin.desc");
+ }
+
+ @Override
+ public String getWidgetClassName() {
+ return AdminWidget.class.getName();
+ }
+
+ @Override
+ public String getTypeName() {
+ return "om.widget.admin";
+ }
+}
Added: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetView.html
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetView.html?rev=1737761&view=auto
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetView.html (added)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetView.html Tue Apr 5 04:04:39 2016
@@ -0,0 +1,25 @@
+<?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>
+ <h3><wicket:message key="dashboard.widget.admin.title"/></h3>
+</wicket:panel>
+</html>
Added: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetView.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetView.java?rev=1737761&view=auto
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetView.java (added)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetView.java Tue Apr 5 04:04:39 2016
@@ -0,0 +1,32 @@
+/*
+ * 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.dashboard;
+
+import org.apache.wicket.model.Model;
+
+import ro.fortsoft.wicket.dashboard.Widget;
+import ro.fortsoft.wicket.dashboard.web.WidgetView;
+
+public class AdminWidgetView extends WidgetView {
+ private static final long serialVersionUID = 1L;
+
+ public AdminWidgetView(String id, Model<Widget> model) {
+ super(id, model);
+ }
+}
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserDashboard.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserDashboard.java?rev=1737761&r1=1737760&r2=1737761&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserDashboard.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserDashboard.java Tue Apr 5 04:04:39 2016
@@ -20,6 +20,7 @@ package org.apache.openmeetings.web.util
import static org.apache.openmeetings.web.user.dashboard.MyRoomsWidget.WIDGET_ID_MY_ROOMS;
import static org.apache.openmeetings.web.user.dashboard.RssWidget.WIDGET_ID_RSS;
+import static org.apache.openmeetings.web.user.dashboard.AdminWidget.WIDGET_ID_ADMIN;
import ro.fortsoft.wicket.dashboard.DefaultDashboard;
import ro.fortsoft.wicket.dashboard.Widget;
@@ -27,6 +28,7 @@ public class UserDashboard extends Defau
private static final long serialVersionUID = 1L;
private boolean widgetRssDeleted = false;
private boolean widgetMyRoomsDeleted = false;
+ private boolean widgetAdminDeleted = false;
public UserDashboard(String id, String title) {
super(id, title);
@@ -47,6 +49,14 @@ public class UserDashboard extends Defau
public void setWidgetMyRoomsDeleted(boolean widgetMyRoomsDeleted) {
this.widgetMyRoomsDeleted = widgetMyRoomsDeleted;
}
+
+ public boolean isWidgetAdminDeleted() {
+ return widgetAdminDeleted;
+ }
+
+ public void setWidgetAdminDeleted(boolean widgetAdminDeleted) {
+ this.widgetAdminDeleted = widgetAdminDeleted;
+ }
@Override
public void deleteWidget(String widgetId) {
@@ -57,6 +67,9 @@ public class UserDashboard extends Defau
case WIDGET_ID_MY_ROOMS:
widgetMyRoomsDeleted = true;
break;
+ case WIDGET_ID_ADMIN:
+ widgetAdminDeleted = true;
+ break;
default:
break;
}
@@ -72,6 +85,9 @@ public class UserDashboard extends Defau
case WIDGET_ID_MY_ROOMS:
widgetMyRoomsDeleted = false;
break;
+ case WIDGET_ID_ADMIN:
+ widgetAdminDeleted = false;
+ break;
default:
break;
}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1737761&r1=1737760&r2=1737761&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java Tue Apr 5 04:04:39 2016
@@ -61,6 +61,7 @@ import org.apache.openmeetings.web.pages
import org.apache.openmeetings.web.pages.SwfPage;
import org.apache.openmeetings.web.pages.auth.SignInPage;
import org.apache.openmeetings.web.pages.install.InstallWizardPage;
+import org.apache.openmeetings.web.user.dashboard.AdminWidgetDescriptor;
import org.apache.openmeetings.web.user.dashboard.MyRoomsWidgetDescriptor;
import org.apache.openmeetings.web.user.dashboard.RssWidgetDescriptor;
import org.apache.openmeetings.web.user.dashboard.StartWidgetDescriptor;
@@ -137,6 +138,7 @@ public class Application extends Authent
widgetRegistry.registerWidget(new WelcomeWidgetDescriptor());
widgetRegistry.registerWidget(new StartWidgetDescriptor());
widgetRegistry.registerWidget(new RssWidgetDescriptor());
+ widgetRegistry.registerWidget(new AdminWidgetDescriptor());
// add dashboard context injector
getComponentInstantiationListeners().add(new DashboardContextInjector(dashboardContext));
DashboardSettings dashboardSettings = DashboardSettings.get();
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml?rev=1737761&r1=1737760&r2=1737761&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml Tue Apr 5 04:04:39 2016
@@ -1890,4 +1890,6 @@
<entry key="admin.email.errorCount">Error Count</entry>
<entry key="admin.email.lastError">Last Error</entry>
<entry key="admin.email.reset.status">Reset Status</entry>
+ <entry key="dashboard.widget.admin.title">Admin functions</entry>
+ <entry key="dashboard.widget.admin.desc">General Admin functions</entry>
</properties>
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1737761&r1=1737760&r2=1737761&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java Tue Apr 5 04:04:39 2016
@@ -61,6 +61,8 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.util.TimezoneUtil;
import org.apache.openmeetings.util.OmException;
import org.apache.openmeetings.web.pages.SwfPage;
+import org.apache.openmeetings.web.user.dashboard.AdminWidget;
+import org.apache.openmeetings.web.user.dashboard.AdminWidgetDescriptor;
import org.apache.openmeetings.web.user.dashboard.MyRoomsWidget;
import org.apache.openmeetings.web.user.dashboard.MyRoomsWidgetDescriptor;
import org.apache.openmeetings.web.user.dashboard.RssWidget;
@@ -243,7 +245,7 @@ public class WebSession extends Abstract
externalType = u.getExternalType();
tz = getBean(TimezoneUtil.class).getTimeZone(u);
ISO8601FORMAT.setTimeZone(tz);
- setLocale(languageId == 3 ? Locale.GERMANY : LabelDao.languages.get(languageId)); //FIXME hack
+ setLocale(languageId == 3 ? Locale.GERMANY : LabelDao.languages.get(languageId));
//FIXMW locale need to be set by User language first
sdf = DateFormat.getDateTimeInstance(SHORT, SHORT, getLocale());
if (null == getId()) {
@@ -440,10 +442,11 @@ public class WebSession extends Abstract
private void initDashboard() {
DashboardContext dashboardContext = getDashboardContext();
dashboard = (UserDashboard)dashboardContext.getDashboardPersister().load();
- boolean existMyRoomWidget = false, existRssWidget = false;
+ boolean existMyRoomWidget = false, existRssWidget = false, existAdminWidget = false;
ConfigurationDao cfgDao = getBean(ConfigurationDao.class);
boolean showMyRoomConfValue = 1 == cfgDao.getConfValue(CONFIG_DASHBOARD_SHOW_MYROOMS_KEY, Integer.class, "0");
boolean showRssConfValue = 1 == cfgDao.getConfValue(CONFIG_DASHBOARD_SHOW_RSS_KEY, Integer.class, "0");
+ boolean showAdminWidget = getRights().contains(User.Right.Admin);
boolean save = false;
WidgetFactory widgetFactory = dashboardContext.getWidgetFactory();
@@ -459,6 +462,9 @@ public class WebSession extends Abstract
if (showRssConfValue) {
dashboard.addWidget(widgetFactory.createWidget(new RssWidgetDescriptor()));
}
+ if (showAdminWidget) {
+ dashboard.addWidget(widgetFactory.createWidget(new AdminWidgetDescriptor()));
+ }
save = true;
} else {
for (Iterator<Widget> iter = dashboard.getWidgets().iterator(); iter.hasNext();) {
@@ -475,6 +481,12 @@ public class WebSession extends Abstract
if (!showRssConfValue) {
iter.remove();
}
+ } else if ((w.getClass().equals(AdminWidget.class))) {
+ // AdminWidget is stored in the profile of user. check if user is admin.
+ existAdminWidget = true;
+ if (!showAdminWidget) {
+ iter.remove();
+ }
} else {
w.init();
}
@@ -489,6 +501,11 @@ public class WebSession extends Abstract
dashboard.addWidget(widgetFactory.createWidget(new RssWidgetDescriptor()));
save = true;
}
+ // user had no admin rights, now he/she has.
+ if (!existAdminWidget && showAdminWidget && !dashboard.isWidgetAdminDeleted()) {
+ dashboard.addWidget(widgetFactory.createWidget(new AdminWidgetDescriptor()));
+ save = true;
+ }
}
if (save) {
dashboardContext.getDashboardPersister().save(dashboard);
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidget.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidget.java?rev=1737761&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidget.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidget.java Tue Apr 5 04:04:39 2016
@@ -0,0 +1,50 @@
+/*
+ * 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.dashboard;
+
+import org.apache.openmeetings.web.app.Application;
+import org.apache.wicket.model.Model;
+
+import ro.fortsoft.wicket.dashboard.AbstractWidget;
+import ro.fortsoft.wicket.dashboard.Widget;
+import ro.fortsoft.wicket.dashboard.WidgetLocation;
+import ro.fortsoft.wicket.dashboard.web.WidgetView;
+
+public class AdminWidget extends AbstractWidget {
+ private static final long serialVersionUID = 1L;
+ public static final String WIDGET_ID_ADMIN = "AdminWidget";
+
+ public AdminWidget() {
+ super();
+ location = new WidgetLocation(0, 2);
+ init();
+ }
+
+ @Override
+ public void init() {
+ super.init();
+ title = Application.getString("dashboard.widget.admin.title");
+ id = WIDGET_ID_ADMIN;
+ }
+
+ @Override
+ public WidgetView createView(String viewId) {
+ return new AdminWidgetView(viewId, new Model<Widget>(this));
+ }
+}
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetDescriptor.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetDescriptor.java?rev=1737761&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetDescriptor.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetDescriptor.java Tue Apr 5 04:04:39 2016
@@ -0,0 +1,52 @@
+/*
+ * 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.dashboard;
+
+import org.apache.openmeetings.web.app.Application;
+
+import ro.fortsoft.wicket.dashboard.WidgetDescriptor;
+
+public class AdminWidgetDescriptor implements WidgetDescriptor {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public String getName() {
+ return Application.getString("dashboard.widget.admin.title");
+ }
+
+ @Override
+ public String getProvider() {
+ return "Apache Openmeetings";
+ }
+
+ @Override
+ public String getDescription() {
+ return Application.getString("dashboard.widget.admin.desc");
+ }
+
+ @Override
+ public String getWidgetClassName() {
+ return AdminWidget.class.getName();
+ }
+
+ @Override
+ public String getTypeName() {
+ return "om.widget.admin";
+ }
+}
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetView.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetView.html?rev=1737761&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetView.html (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetView.html Tue Apr 5 04:04:39 2016
@@ -0,0 +1,25 @@
+<?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>
+ <h3><wicket:message key="dashboard.widget.admin.title"/></h3>
+</wicket:panel>
+</html>
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetView.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetView.java?rev=1737761&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetView.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/AdminWidgetView.java Tue Apr 5 04:04:39 2016
@@ -0,0 +1,32 @@
+/*
+ * 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.dashboard;
+
+import org.apache.wicket.model.Model;
+
+import ro.fortsoft.wicket.dashboard.Widget;
+import ro.fortsoft.wicket.dashboard.web.WidgetView;
+
+public class AdminWidgetView extends WidgetView {
+ private static final long serialVersionUID = 1L;
+
+ public AdminWidgetView(String id, Model<Widget> model) {
+ super(id, model);
+ }
+}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserDashboard.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserDashboard.java?rev=1737761&r1=1737760&r2=1737761&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserDashboard.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserDashboard.java Tue Apr 5 04:04:39 2016
@@ -20,6 +20,7 @@ package org.apache.openmeetings.web.util
import static org.apache.openmeetings.web.user.dashboard.MyRoomsWidget.WIDGET_ID_MY_ROOMS;
import static org.apache.openmeetings.web.user.dashboard.RssWidget.WIDGET_ID_RSS;
+import static org.apache.openmeetings.web.user.dashboard.AdminWidget.WIDGET_ID_ADMIN;
import ro.fortsoft.wicket.dashboard.DefaultDashboard;
import ro.fortsoft.wicket.dashboard.Widget;
@@ -27,6 +28,7 @@ public class UserDashboard extends Defau
private static final long serialVersionUID = 1L;
private boolean widgetRssDeleted = false;
private boolean widgetMyRoomsDeleted = false;
+ private boolean widgetAdminDeleted = false;
public UserDashboard(String id, String title) {
super(id, title);
@@ -48,6 +50,14 @@ public class UserDashboard extends Defau
this.widgetMyRoomsDeleted = widgetMyRoomsDeleted;
}
+ public boolean isWidgetAdminDeleted() {
+ return widgetAdminDeleted;
+ }
+
+ public void setWidgetAdminDeleted(boolean widgetAdminDeleted) {
+ this.widgetAdminDeleted = widgetAdminDeleted;
+ }
+
@Override
public void deleteWidget(String widgetId) {
switch (widgetId) {
@@ -57,6 +67,9 @@ public class UserDashboard extends Defau
case WIDGET_ID_MY_ROOMS:
widgetMyRoomsDeleted = true;
break;
+ case WIDGET_ID_ADMIN:
+ widgetAdminDeleted = true;
+ break;
default:
break;
}
@@ -72,6 +85,9 @@ public class UserDashboard extends Defau
case WIDGET_ID_MY_ROOMS:
widgetMyRoomsDeleted = false;
break;
+ case WIDGET_ID_ADMIN:
+ widgetAdminDeleted = false;
+ break;
default:
break;
}