AbstractUnsecureBasePage.javaPackage: org.projectforge.web.wicket
Classes: AbstractUnsecureBasePage
Extends: WebPage
Methods (23): getObject, onComponentTag, createInvisibleDummyComponent, getJstemplate, renderHead, onBeforeRender, getAppVersion, getAppReleaseDate, getAppReleaseTimestamp, getUrl, getImageUrl, getUrl, redirectToUrl, getWindowTitle, onBodyTag, getWicketApplication, escapeHtml, getMySession, getUser, getUserId, getLocalizedMessage, initializeContextMenu, getUserGroupCache
Fields (3): serialVersionUID, jsTemplate, alreadySubmitted
Imports: 31 packages
package org.projectforge.web.wicket;
import org.apache.commons.text.StringEscapeUtils;
import org.apache.wicket.Session;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
import org.apache.wicket.markup.head.StringHeaderItem;
import org.apache.wicket.markup.html.TransparentWebMarkupContainer;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.image.ContextImage;
import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.wicket.markup.html.link.ExternalLink;
import org.apache.wicket.model.Model;
import org.apache.wicket.request.http.handler.RedirectRequestHandler;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.template.PackageTextTemplate;
import org.projectforge.Constants;
import org.projectforge.ProjectForgeVersion;
import org.projectforge.business.configuration.DomainService;
import org.projectforge.business.user.UserGroupCache;
import org.projectforge.framework.persistence.user.api.ThreadLocalUserContext;
import org.projectforge.framework.persistence.user.entities.PFUserDO;
import org.projectforge.rest.pub.LogoServiceRest;
import org.projectforge.web.WebConfiguration;
import org.projectforge.web.WicketSupport;
import org.projectforge.web.session.MySession;
import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Map;
/**
* Do only derive from this page, if no login is required!
*
* @author Kai Reinhard (k.reinhard@micromata.de)
*/
public abstract class AbstractUnsecureBasePage extends WebPage {
private static final long serialVersionUID = 7396310612549535899L;
private static PackageTextTemplate jsTemplate;
protected WebMarkupContainer body, html;
protected boolean alreadySubmitted = false;
/**
* Constructor that is invoked when page is invoked without a session.
*
* @param parameters Page parameters
*/
@SuppressWarnings("serial")
public AbstractUnsecureBasePage(final PageParameters parameters) {
super(parameters);
html = new TransparentWebMarkupContainer("html");
add(html);
add(new Label("windowTitle", new Model<String>() {
@Override
public String getObject() {
return getWindowTitle();
}
}));
body = new WebMarkupContainer("body") {
@Override
protected void onComponentTag(final ComponentTag tag) {
onBodyTag(tag);
}
};
if (WicketApplication.getTestsystemMode()) {
body.add(new AttributeAppender("style", "background:" + WicketApplication.getTestsystemColor() + " !important;"));
}
add(body);
final String logoFile = LogoServiceRest.getLogoUrl();
if (logoFile != null) {
body.add(new ContextImage("logoLeftImage", "/rsPublic/" + logoFile));
} else {
body.add(new Label("logoLeftImage", "[invisible]").setVisible(false));
}
final WebMarkupContainer developmentSystem = new WebMarkupContainer("developmentSystem");
developmentSystem.setOutputMarkupId(true);
developmentSystem.setMarkupId("pf_develHint");
body.add(developmentSystem);
if (WebConfiguration.isDevelopmentMode() == false && WicketApplication.getTestsystemMode() == false) {
developmentSystem.setVisible(false);
}
final PFUserDO user = ThreadLocalUserContext.getLoggedInUser();
AbstractLink link;
link = new ExternalLink("footerNewsLink", Constants.WEB_DOCS_NEWS_LINK);
body.add(link);
link.add(new Label("version", "Version " + ProjectForgeVersion.VERSION_NUMBER + ", " + ProjectForgeVersion.BUILD_DATE)
.setRenderBodyOnly(true));
link.setOutputMarkupId(true);
link.setMarkupId("pf_footerNewsLink");
}
/**
* Convenience method for creating a component which is in the mark-up file but should not be visible.
*
* @param wicketId
* @return
*/
public static Label createInvisibleDummyComponent(final String wicketId) {
final Label dummyLabel = new Label(wicketId);
dummyLabel.setVisible(false);
return dummyLabel;
}
/**
* @return the jstemplate
*/
// ... (truncated, total 269 lines)
868d6abb7 2025 -> 2026 63081666f Source file headers: 2024-> 2025. 67805f2fc ThreadLocalUserContext.user -> ThreadLocalUserContext.loggedInUser (renamed for avoiding mis-understandings in code). 4c04cfd65 MAJOR-CHANGE! Migration of integer id's to Long id's (including fk's etc.) 4efcbd0fb Migration stuff in progress...