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 2012/08/29 20:41:44 UTC
svn commit: r1378676 [4/4] - in /incubator/openmeetings/trunk/singlewebapp:
./ WebContent/WEB-INF/ WebContent/openmeetings/css/
WebContent/openmeetings/css/images/ WebContent/openmeetings/js/
src/org/openmeetings/web/ src/org/openmeetings/web/app/ src/...
Added: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/Application.java?rev=1378676&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/Application.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/Application.java Wed Aug 29 18:41:42 2012
@@ -0,0 +1,76 @@
+/*
+ * 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.openmeetings.web.app;
+
+import org.apache.wicket.Page;
+import org.apache.wicket.authroles.authentication.AbstractAuthenticatedWebSession;
+import org.apache.wicket.authroles.authentication.AuthenticatedWebApplication;
+import org.apache.wicket.markup.MarkupFactory;
+import org.apache.wicket.markup.MarkupParser;
+import org.apache.wicket.markup.MarkupResourceStream;
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.protocol.http.WebApplication;
+import org.apache.wicket.settings.IPageSettings;
+import org.openmeetings.web.pages.MenuPage;
+import org.openmeetings.web.pages.auth.SignInPage;
+import org.springframework.context.ApplicationContext;
+import org.springframework.web.context.support.WebApplicationContextUtils;
+
+public class Application extends AuthenticatedWebApplication {
+ @Override
+ protected void init() {
+ IPageSettings pageSettings = getPageSettings();
+ pageSettings.addComponentResolver(new MessageResolver());
+ pageSettings.addComponentResolver(new MessageTagHandler());
+ getMarkupSettings().setMarkupFactory(new MarkupFactory(){
+ @Override
+ public MarkupParser newMarkupParser(MarkupResourceStream resource) {
+ MarkupParser mp = super.newMarkupParser(resource);
+ mp.add(new MessageTagHandler());
+ return mp;
+ }
+ });
+ super.init();
+ mountPage("signin", getSignInPageClass());
+ }
+
+ @Override
+ public Class<? extends Page> getHomePage() {
+ return MenuPage.class;
+ }
+
+ @Override
+ protected Class<? extends AbstractAuthenticatedWebSession> getWebSessionClass() {
+ return WebSession.class;
+ }
+
+ @Override
+ protected Class<? extends WebPage> getSignInPageClass() {
+ return SignInPage.class;
+ }
+
+ public static Application get() {
+ return (Application) WebApplication.get();
+ }
+
+ public static <T> T getBean(Class<T> clazz) {
+ ApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(get().getServletContext());
+ return context.getBean(clazz);
+ }
+}
Added: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/MessageResolver.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/MessageResolver.java?rev=1378676&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/MessageResolver.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/MessageResolver.java Wed Aug 29 18:41:42 2012
@@ -0,0 +1,58 @@
+/*
+ * 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.openmeetings.web.app;
+
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.markup.ComponentTag;
+import org.apache.wicket.markup.MarkupStream;
+import org.apache.wicket.markup.WicketTag;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.parser.filter.WicketTagIdentifier;
+import org.apache.wicket.markup.resolver.WicketMessageResolver;
+
+public class MessageResolver extends WicketMessageResolver {
+ private static final long serialVersionUID = -5755259669383826988L;
+ private final static String TAG_NAME = "ommessage";
+
+ static {
+ // register "wicket:ommessage"
+ WicketTagIdentifier.registerWellKnownTagName(TAG_NAME);
+ }
+
+ @Override
+ public Component resolve(MarkupContainer container, MarkupStream markupStream, ComponentTag tag) {
+ if (tag instanceof WicketTag) {
+ WicketTag wtag = (WicketTag)tag;
+ if (TAG_NAME.equals(wtag.getName())) {
+ Long messageKey = wtag.getAttributes().getAsLong("key");
+ if (messageKey != null) {
+ final String id = "_message_" + container.getPage().getAutoIndex();
+ Label label = new Label(id, WebSession.getString(messageKey));
+ label.setRenderBodyOnly(container.getApplication()
+ .getMarkupSettings()
+ .getStripWicketTags());
+
+ return label;
+ }
+ }
+ }
+ return super.resolve(container, markupStream, tag);
+ }
+}
Added: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/MessageTagHandler.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/MessageTagHandler.java?rev=1378676&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/MessageTagHandler.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/MessageTagHandler.java Wed Aug 29 18:41:42 2012
@@ -0,0 +1,161 @@
+/*
+ * 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.openmeetings.web.app;
+
+import java.text.ParseException;
+
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.WicketRuntimeException;
+import org.apache.wicket.behavior.Behavior;
+import org.apache.wicket.markup.ComponentTag;
+import org.apache.wicket.markup.MarkupElement;
+import org.apache.wicket.markup.MarkupResourceStream;
+import org.apache.wicket.markup.MarkupStream;
+import org.apache.wicket.markup.html.TransparentWebMarkupContainer;
+import org.apache.wicket.markup.html.WebComponent;
+import org.apache.wicket.markup.parser.AbstractMarkupFilter;
+import org.apache.wicket.markup.parser.filter.WicketMessageTagHandler;
+import org.apache.wicket.markup.resolver.IComponentResolver;
+import org.apache.wicket.util.string.Strings;
+
+public class MessageTagHandler extends AbstractMarkupFilter implements
+ IComponentResolver {
+ /** */
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * The id automatically assigned to tags with wicket:message attribute but
+ * without id
+ */
+ public final static String WICKET_MESSAGE_CONTAINER_ID = "_message_attr_";
+
+ /**
+ * Constructor for the IComponentResolver role.
+ */
+ public MessageTagHandler() {
+ this(null);
+ }
+
+ /**
+ * Constructor for the IMarkupFilter role.
+ */
+ public MessageTagHandler(final MarkupResourceStream markupResourceStream) {
+ super(markupResourceStream);
+ }
+
+ @Override
+ protected final MarkupElement onComponentTag(ComponentTag tag)
+ throws ParseException {
+ if (tag.isClose()) {
+ return tag;
+ }
+
+ final String wicketMessageAttribute = tag.getAttributes().getString(
+ getWicketMessageAttrName());
+
+ if (Strings.isEmpty(wicketMessageAttribute) == false) {
+ // check if this tag is raw markup
+ if (tag.getId() == null) {
+ // if this is a raw tag we need to set the id to something so
+ // that wicket will not merge this as raw markup and instead
+ // pass it on to a resolver
+ tag.setId(getWicketMessageIdPrefix());
+ tag.setAutoComponentTag(true);
+ tag.setModified(true);
+ }
+ tag.addBehavior(new AttributeLocalizer(getWicketMessageAttrName()));
+ }
+
+ return tag;
+ }
+
+ /**
+ * Attribute localizing behavior. See the javadoc of
+ * {@link WicketMessageTagHandler} for details.
+ *
+ * @author Igor Vaynberg (ivaynberg)
+ */
+ public static class AttributeLocalizer extends Behavior {
+ private static final long serialVersionUID = 1L;
+
+ private final String wicketMessageAttrName;
+
+ public AttributeLocalizer(String wicketMessageAttrName) {
+ this.wicketMessageAttrName = wicketMessageAttrName;
+ }
+
+ @Override
+ public void onComponentTag(final Component component,
+ final ComponentTag tag) {
+ String expr = tag.getAttributes().getString(wicketMessageAttrName);
+ if (!Strings.isEmpty(expr)) {
+ expr = expr.trim();
+
+ String[] attrsAndKeys = Strings.split(expr, ',');
+
+ for (String attrAndKey : attrsAndKeys) {
+ int colon = attrAndKey.lastIndexOf(":");
+ // make sure the attribute-key pair is valid
+ if (attrAndKey.length() < 3 || colon < 1
+ || colon > attrAndKey.length() - 2) {
+ throw new WicketRuntimeException(
+ "wicket:message attribute contains an invalid value [["
+ + expr
+ + "]], must be of form (attr:key)+");
+ }
+
+ String attr = attrAndKey.substring(0, colon);
+ String key = attrAndKey.substring(colon + 1);
+ final String value = WebSession.getString(Long.parseLong(key));
+ tag.put(attr, value);
+ }
+ }
+ }
+ }
+
+ public Component resolve(final MarkupContainer container, final MarkupStream markupStream,
+ final ComponentTag tag) {
+ // localize any raw markup that has wicket:message attrs
+ if ((tag != null)
+ && (tag.getId().startsWith(getWicketMessageIdPrefix()))) {
+ Component wc;
+ int autoIndex = container.getPage().getAutoIndex();
+ String id = getWicketMessageIdPrefix() + autoIndex;
+
+ if (tag.isOpenClose()) {
+ wc = new WebComponent(id);
+ } else {
+ wc = new TransparentWebMarkupContainer(id);
+ }
+
+ return wc;
+ }
+ return null;
+ }
+
+ private String getWicketMessageAttrName() {
+ String wicketNamespace = getWicketNamespace();
+ return wicketNamespace + ':' + "ommessage";
+ }
+
+ private String getWicketMessageIdPrefix() {
+ return getWicketNamespace() + WICKET_MESSAGE_CONTAINER_ID;
+ }
+}
Added: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/WebSession.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/WebSession.java?rev=1378676&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/WebSession.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/WebSession.java Wed Aug 29 18:41:42 2012
@@ -0,0 +1,107 @@
+/*
+ * 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.openmeetings.web.app;
+
+import org.apache.wicket.authroles.authentication.AbstractAuthenticatedWebSession;
+import org.apache.wicket.authroles.authorization.strategies.role.Roles;
+import org.apache.wicket.request.Request;
+import org.openmeetings.app.data.basic.AuthLevelmanagement;
+import org.openmeetings.app.data.basic.Configurationmanagement;
+import org.openmeetings.app.data.basic.Fieldmanagment;
+import org.openmeetings.app.data.basic.Sessionmanagement;
+import org.openmeetings.app.data.user.Usermanagement;
+import org.openmeetings.app.data.user.dao.UsersDaoImpl;
+import org.openmeetings.app.persistence.beans.basic.Sessiondata;
+import org.openmeetings.app.persistence.beans.user.Users;
+
+public class WebSession extends AbstractAuthenticatedWebSession {
+ private static final long serialVersionUID = 1123393236459095315L;
+ private long userId = -1;
+ private long userLevel = -1;
+ private String SID = null;
+
+ public WebSession(Request request) {
+ super(request);
+ }
+
+ @Override
+ public Roles getRoles() {
+ Roles r = null;
+ if (isSignedIn()) {
+ userLevel = Application.getBean(Usermanagement.class).getUserLevelByID(userId);
+ AuthLevelmanagement authLevel = Application.getBean(AuthLevelmanagement.class);
+ r = new Roles(Roles.USER);
+ if (authLevel.checkUserLevel(userLevel)) {
+ r.add(Roles.USER);
+ }
+ if (authLevel.checkAdminLevel(userLevel)) {
+ r.add(Roles.ADMIN);
+ }
+ }
+ return r;
+ }
+
+ @Override
+ public boolean isSignedIn() {
+ return (userId > -1);
+ }
+
+ public boolean signIn(String login, String password) {
+ Sessiondata sessData = Application.getBean(Sessionmanagement.class).startsession();
+ SID = sessData.getSession_id();
+ Object u = Application.getBean(Usermanagement.class).loginUser(SID, login, password,
+ null, false);
+
+ if (u instanceof Users) {
+ userId = ((Users)u).getUser_id();
+ return true;
+ }
+ return false;
+ }
+
+ public static WebSession get() {
+ return (WebSession)AbstractAuthenticatedWebSession.get();
+ }
+
+ public static String getString(long id) {
+ Fieldmanagment fieldManagment = Application.getBean(Fieldmanagment.class);
+ return fieldManagment.getString(id, getLanguage());
+ }
+
+ public static long getLanguage() {
+ WebSession session = get();
+ if (session.isSignedIn()) {
+ return Application.getBean(UsersDaoImpl.class).getUser(session.userId).getLanguage_id();
+ } else {
+ return Application.getBean(Configurationmanagement.class).getConfValue("default_lang_id", Long.class, "1");
+ }
+ }
+
+ public static String getSid() {
+ return get().SID;
+ }
+
+ public static long getUserId() {
+ return get().userId;
+ }
+
+ public static long getUserLevel() {
+ return get().userLevel;
+ }
+}
Added: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.html
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.html?rev=1378676&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.html (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.html Wed Aug 29 18:41:42 2012
@@ -0,0 +1,32 @@
+<?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="http://www.w3.org/1999/xhtml"
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.5-strict.dtd" lang="en">
+ <head>
+ <title><span wicket:id="pageTitle">[login]</span></title>
+ </head>
+ <body>
+ <div id="header">
+ <span id="logo"></span><span id="appName" wicket:id="appName"></span>
+ </div>
+ <wicket:child />
+ </body>
+</html>
\ No newline at end of file
Added: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.java?rev=1378676&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.java Wed Aug 29 18:41:42 2012
@@ -0,0 +1,34 @@
+/*
+ * 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.openmeetings.web.pages;
+
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.basic.Label;
+import org.openmeetings.app.data.basic.Configurationmanagement;
+import org.openmeetings.web.app.Application;
+
+public abstract class BasePage extends WebPage {
+ private static final long serialVersionUID = -6237917782433412496L;
+
+ public BasePage() {
+ String appName = Application.getBean(Configurationmanagement.class).getAppName();
+ add(new Label("pageTitle", appName).setRenderBodyOnly(true));
+ add(new Label("appName", appName));
+ }
+}
Added: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.html
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.html?rev=1378676&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.html (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.html Wed Aug 29 18:41:42 2012
@@ -0,0 +1,72 @@
+<?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="http://www.w3.org/1999/xhtml"
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.5-strict.dtd" lang="en">
+ <wicket:head>
+ <link media="screen" type="text/css" rel="stylesheet" href="css/jMenu.jquery.css"/>
+ <link media="screen" type="text/css" rel="stylesheet" href="css/theme.css"/>
+
+ <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
+ <script type="text/javascript" src="js/jquery-ui-1.8.23.custom.min.js"></script>
+ <script type="text/javascript" src="js/jMenu.jquery.min.js"></script>
+ <link media="screen" type="text/css" rel="stylesheet" href="css/jquery-ui-1.8.23.custom.css"/>
+ <script type="text/javascript">
+ $(function() {
+ $("#jMenu").jMenu({
+ openClick : false
+ , ulWidth : 'auto'
+ , effects : {
+ effectSpeedOpen : 300
+ , effectSpeedClose : 300
+ , effectTypeOpen : 'slide'
+ , effectTypeClose : 'slide'
+ , effectOpen : 'linear'
+ , effectClose : 'linear'
+ }
+ , TimeBeforeOpening : 100
+ , TimeBeforeClosing : 400
+ , animatedText : false
+ , paddingLeft: 1
+ });
+ });
+ </script>
+ </wicket:head>
+ <wicket:extend>
+ <div id="topLinks"><wicket:ommessage key="1188"/>|<wicket:ommessage key="5"/>|<wicket:ommessage key="310"/>|<wicket:ommessage key="284"/></div>
+ <div id="menu">
+ <ul id="jMenu">
+ <li wicket:id="mainItem">
+ <a class="fNiv" href="#"><span wicket:id="label"></span></a>
+ <ul wicket:enclosure="childItem">
+ <li class="arrow" style="width: 97px; "></li>
+ <li wicket:id="childItem">
+ <a wicket:id="link" href="#">
+ <span wicket:id="name"></span><br />
+ <span wicket:id="description"></span>
+ </a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <wicket:child />
+ </wicket:extend>
+</html>
\ No newline at end of file
Added: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.java?rev=1378676&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.java Wed Aug 29 18:41:42 2012
@@ -0,0 +1,118 @@
+/*
+ * 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.openmeetings.web.pages;
+
+import java.util.List;
+
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;
+import org.apache.wicket.markup.html.link.Link;
+import org.apache.wicket.markup.html.list.AbstractItem;
+import org.apache.wicket.markup.repeater.RepeatingView;
+import org.openmeetings.app.data.basic.Navimanagement;
+import org.openmeetings.app.persistence.beans.basic.Naviglobal;
+import org.openmeetings.app.persistence.beans.basic.Navimain;
+import org.openmeetings.web.app.Application;
+import org.openmeetings.web.app.WebSession;
+import org.openmeetings.web.pages.admin.UsersPage;
+
+public class MenuPage extends UserPage {
+ private static final long serialVersionUID = 6421960759218157999L;
+ private enum MenuActions {
+ dashboardModuleStartScreen
+ , dashboardModuleCalendar
+ , recordModule
+ , conferenceModuleRoomList
+ , eventModuleRoomList
+ , moderatorModuleUser
+ , moderatorModuleRoom
+ , adminModuleUser
+ , adminModuleConnections
+ , adminModuleOrg
+ , adminModuleRoom
+ , adminModuleConfiguration
+ , adminModuleLanguages
+ , adminModuleLDAP
+ , adminModuleBackup
+ , adminModuleServers
+ }
+
+ public MenuPage() {
+ //FIXME all this need to be refactored
+ List<Naviglobal> menu = Application.getBean(Navimanagement.class)
+ .getMainMenu(WebSession.getUserLevel(), WebSession.getUserId(), WebSession.getLanguage());
+
+ RepeatingView repeater = new RepeatingView("mainItem");
+ add(repeater);
+ for (Naviglobal global : menu) {
+ AbstractItem item = new AbstractItem(repeater.newChildId());
+ repeater.add(item);
+ item.add(new Label("label", global.getLabel().getValue()).setRenderBodyOnly(true));
+
+ RepeatingView subRepeater = new RepeatingView("childItem");
+ item.add(subRepeater);
+ for (Navimain subMenu : global.getMainnavi()) {
+ AbstractItem subItem = new AbstractItem(subRepeater.newChildId());
+ subRepeater.add(subItem);
+
+
+ Link<Void> link = new BookmarkablePageLink<Void>("link", MenuPage.class);
+ switch(MenuActions.valueOf(subMenu.getAction())) {
+ case dashboardModuleStartScreen:
+ break;
+ case dashboardModuleCalendar:
+ break;
+ case recordModule:
+ break;
+ case conferenceModuleRoomList:
+ //requires params
+ break;
+ case eventModuleRoomList:
+ break;
+ case moderatorModuleUser:
+ break;
+ case moderatorModuleRoom:
+ break;
+ case adminModuleUser:
+ link = new BookmarkablePageLink<Void>("link", UsersPage.class);
+ break;
+ case adminModuleConnections:
+ break;
+ case adminModuleOrg:
+ break;
+ case adminModuleRoom:
+ break;
+ case adminModuleConfiguration:
+ break;
+ case adminModuleLanguages:
+ break;
+ case adminModuleLDAP:
+ break;
+ case adminModuleBackup:
+ break;
+ case adminModuleServers:
+ break;
+ }
+ subItem.add(link);
+ link.add(new Label("name", subMenu.getLabel().getValue()).setRenderBodyOnly(true));
+ link.add(new Label("description", subMenu.getTooltip().getValue()).setRenderBodyOnly(true));
+ }
+ }
+ }
+}
Added: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/UserPage.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/UserPage.java?rev=1378676&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/UserPage.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/UserPage.java Wed Aug 29 18:41:42 2012
@@ -0,0 +1,26 @@
+/*
+ * 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.openmeetings.web.pages;
+
+import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
+
+@AuthorizeInstantiation("USER")
+public abstract class UserPage extends BasePage {
+ private static final long serialVersionUID = -6237917782433412496L;
+}
Added: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/AdminPage.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/AdminPage.java?rev=1378676&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/AdminPage.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/AdminPage.java Wed Aug 29 18:41:42 2012
@@ -0,0 +1,28 @@
+/*
+ * 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.openmeetings.web.pages.admin;
+
+import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
+import org.openmeetings.web.pages.MenuPage;
+
+@AuthorizeInstantiation("ADMIN")
+public class AdminPage extends MenuPage {
+ private static final long serialVersionUID = -3717834731100198593L;
+
+}
Added: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.html
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.html?rev=1378676&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.html (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.html Wed Aug 29 18:41:42 2012
@@ -0,0 +1,26 @@
+<?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="http://www.w3.org/1999/xhtml"
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.5-strict.dtd" lang="en">
+ <wicket:extend>
+ Users will goes here
+ </wicket:extend>
+</html>
Added: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.java?rev=1378676&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.java Wed Aug 29 18:41:42 2012
@@ -0,0 +1,26 @@
+/*
+ * 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.openmeetings.web.pages.admin;
+
+public class UsersPage extends AdminPage {
+ private static final long serialVersionUID = -4463107742579790120L;
+
+ public UsersPage() {
+ }
+}
Added: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/auth/SignInPage.html
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/auth/SignInPage.html?rev=1378676&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/auth/SignInPage.html (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/auth/SignInPage.html Wed Aug 29 18:41:42 2012
@@ -0,0 +1,63 @@
+<?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="http://www.w3.org/1999/xhtml"
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.5-strict.dtd" lang="en">
+ <wicket:head>
+ <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
+ <script type="text/javascript" src="js/jquery-ui-1.8.23.custom.min.js"></script>
+ <link media="screen" type="text/css" rel="stylesheet" href="css/jquery-ui-1.8.23.custom.css"/>
+ <style>
+ #login .ui-dialog .ui-dialog-titlebar-close {
+ display: none;
+ }
+ </style>
+ <script type="text/javascript">
+ $(function(){
+ $('#login').dialog({
+ closeOnEscape: false
+ , resizable: false
+ , open: function(event, ui) {
+ $(".ui-dialog-titlebar-close").hide();
+ }
+ });
+ });
+ </script>
+ </wicket:head>
+ <wicket:extend>
+ <div id="login" wicket:ommessage="title:108">
+ <form wicket:id="signin">
+ <table>
+ <tr>
+ <td><wicket:ommessage key="109" /></td>
+ <td><input wicket:id="login" type="text" value="" /></td>
+ </tr>
+ <tr>
+ <td><wicket:ommessage key="110" /></td>
+ <td><input wicket:id="pass" type="password" value="" /></td>
+ </tr>
+ <tr>
+ <td align="right" colspan="2"><input type="submit" wicket:ommessage="value:112"/></td>
+ </tr>
+ </table>
+ <span wicket:id="feedback"></span>
+ </form>
+ </div>
+ </wicket:extend>
+</html>
\ No newline at end of file
Added: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/auth/SignInPage.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/auth/SignInPage.java?rev=1378676&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/auth/SignInPage.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/auth/SignInPage.java Wed Aug 29 18:41:42 2012
@@ -0,0 +1,95 @@
+/*
+ * 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.openmeetings.web.pages.auth;
+
+import org.apache.wicket.markup.html.form.PasswordTextField;
+import org.apache.wicket.markup.html.form.RequiredTextField;
+import org.apache.wicket.markup.html.form.StatelessForm;
+import org.apache.wicket.markup.html.panel.FeedbackPanel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.openmeetings.web.app.Application;
+import org.openmeetings.web.app.WebSession;
+import org.openmeetings.web.pages.BasePage;
+
+public class SignInPage extends BasePage {
+ private static final long serialVersionUID = -3843571657066167592L;
+
+ public SignInPage(PageParameters p) {
+ this();
+ }
+
+ public SignInPage() {
+ add(new SignInForm("signin"));
+ }
+
+ class SignInForm extends StatelessForm<Void> {
+ private static final long serialVersionUID = 4079939497154278822L;
+ private String password;
+ private String login;
+
+ public SignInForm(String id) {
+ super(id);
+
+ add(new FeedbackPanel("feedback"));
+ add(new RequiredTextField<String>("login", new Model<String>(){
+ private static final long serialVersionUID = -1335578251793516071L;
+
+ @Override
+ public String getObject() {
+ return SignInForm.this.login;
+ }
+
+ @Override
+ public void setObject(String object) {
+ SignInForm.this.login = object;
+ }
+ }));
+ add(new PasswordTextField("pass", new Model<String>(){
+ private static final long serialVersionUID = 4751494320421393717L;
+
+ @Override
+ public String getObject() {
+ return SignInForm.this.password;
+ }
+
+ @Override
+ public void setObject(String object) {
+ SignInForm.this.password = object;
+ }
+ }).setResetPassword(true));
+ }
+
+ @Override
+ protected void onSubmit() {
+ if (WebSession.get().signIn(login, password)) {
+ continueToOriginalDestination();
+ // if we reach this line there was no intercept page, so go to home page
+ setResponsePage(Application.get().getHomePage());
+ }
+ }
+ }
+/*
+ @Override
+ protected void configureResponse(WebResponse response) {
+ super.configureResponse(response);
+ response.setHeader("Cache-Control", "no-cache, max-age=0, must-revalidate, no-store");
+ }
+*/
+}