PublicPersonalProfile:
- Application-Klasse und zugehörige Klassen (Initializer, Loader, Servlet) in PublicPersonalProfiles umbenannt, um Namenskonflikte zu vermeiden. - Erste Ansätze für Navigation git-svn-id: https://svn.libreccm.org/ccm/trunk@1052 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
3809f03bc2
commit
ba5b005257
|
|
@ -11,11 +11,11 @@
|
|||
<table name="ct_public_personal_profiles"/>
|
||||
<table name="publicpersonalprofile"/>
|
||||
<initializer class="com.arsdigita.cms.contenttypes.PublicPersonalProfileInitializer"/>
|
||||
<initializer class="com.arsdigita.cms.publicpersonalprofile.PublicPersonalProfileInitializer"/>
|
||||
<initializer class="com.arsdigita.cms.publicpersonalprofile.PublicPersonalProfilesInitializer"/>
|
||||
</provides>
|
||||
<scripts>
|
||||
<schema directory="ccm-cms-publicpersonalprofile"/>
|
||||
<data class="com.arsdigita.cms.contenttypes.PublicPersonalProfileLoader"/>
|
||||
<data class="com.arsdigita.cms.publicpersonalprofile.PublicPersonalProfileLoader"/>
|
||||
<data class="com.arsdigita.cms.publicpersonalprofile.PublicPersonalProfilesLoader"/>
|
||||
</scripts>
|
||||
</load>
|
||||
|
|
@ -162,6 +162,7 @@ public class PublicPersonalProfileCreate extends PageCreate {
|
|||
PublicPersonalProfile profile = new PublicPersonalProfile(item.
|
||||
getOID());
|
||||
profile.setOwner(owner);
|
||||
profile.setProfileUrl(owner.getSurname().toLowerCase());
|
||||
profile.save();
|
||||
|
||||
m_parent.editItem(state, item);
|
||||
|
|
|
|||
|
|
@ -8,11 +8,16 @@ import com.arsdigita.bebop.PageState;
|
|||
import com.arsdigita.bebop.event.FormInitListener;
|
||||
import com.arsdigita.bebop.event.FormProcessListener;
|
||||
import com.arsdigita.bebop.event.FormSectionEvent;
|
||||
import com.arsdigita.bebop.event.FormValidationListener;
|
||||
import com.arsdigita.bebop.parameters.ParameterModel;
|
||||
import com.arsdigita.bebop.parameters.StringParameter;
|
||||
import com.arsdigita.cms.ContentItem;
|
||||
import com.arsdigita.cms.ItemSelectionModel;
|
||||
import com.arsdigita.cms.contenttypes.PublicPersonalProfile;
|
||||
import com.arsdigita.cms.ui.authoring.BasicPageForm;
|
||||
import com.arsdigita.domain.DomainObjectFactory;
|
||||
import com.arsdigita.persistence.DataCollection;
|
||||
import com.arsdigita.persistence.SessionManager;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -22,10 +27,12 @@ import com.arsdigita.cms.ui.authoring.BasicPageForm;
|
|||
public class PublicPersonalProfilePropertyForm
|
||||
extends BasicPageForm
|
||||
implements FormProcessListener,
|
||||
FormInitListener {
|
||||
FormInitListener,
|
||||
FormValidationListener {
|
||||
|
||||
private PublicPersonalProfilePropertiesStep step;
|
||||
public static final String ID = "PublicPersonalProfile_edit";
|
||||
private ItemSelectionModel itemModel;
|
||||
|
||||
public PublicPersonalProfilePropertyForm(ItemSelectionModel itemModel) {
|
||||
this(itemModel, null);
|
||||
|
|
@ -36,6 +43,8 @@ public class PublicPersonalProfilePropertyForm
|
|||
PublicPersonalProfilePropertiesStep step) {
|
||||
super(ID, itemModel);
|
||||
this.step = step;
|
||||
this.itemModel = itemModel;
|
||||
addValidationListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -55,7 +64,7 @@ public class PublicPersonalProfilePropertyForm
|
|||
final PageState state = fse.getPageState();
|
||||
final FormData data = fse.getFormData();
|
||||
final PublicPersonalProfile profile =
|
||||
(PublicPersonalProfile) super.
|
||||
(PublicPersonalProfile) super.
|
||||
initBasicWidgets(fse);
|
||||
|
||||
data.put(PublicPersonalProfile.PROFILE_URL, profile.getProfileUrl());
|
||||
|
|
@ -64,17 +73,43 @@ public class PublicPersonalProfilePropertyForm
|
|||
@Override
|
||||
public void process(FormSectionEvent fse) throws FormProcessException {
|
||||
final PublicPersonalProfile profile =
|
||||
(PublicPersonalProfile) processBasicWidgets(
|
||||
(PublicPersonalProfile) processBasicWidgets(
|
||||
fse);
|
||||
final FormData data = fse.getFormData();
|
||||
final PageState state = fse.getPageState();
|
||||
|
||||
if ((profile != null)
|
||||
&& getSaveCancelSection().getSaveButton().isSelected(state)) {
|
||||
profile.setProfileUrl((String) data.get(
|
||||
PublicPersonalProfile.PROFILE_URL));
|
||||
profile.setProfileUrl(((String) data.get(
|
||||
PublicPersonalProfile.PROFILE_URL)).toLowerCase());
|
||||
|
||||
profile.save();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validate(FormSectionEvent fse) throws FormProcessException {
|
||||
final PageState state = fse.getPageState();
|
||||
final FormData data = fse.getFormData();
|
||||
|
||||
|
||||
String profilesUrl = (String) data.get(PublicPersonalProfile.PROFILE_URL);
|
||||
if ((profilesUrl == null) || profilesUrl.isEmpty()) {
|
||||
data.addError(PublicPersonalProfileGlobalizationUtil.globalize("publicpersonalprofile.ui.profile_url.required"));
|
||||
}
|
||||
|
||||
DataCollection profiles = SessionManager.getSession().retrieve(PublicPersonalProfile.BASE_DATA_OBJECT_TYPE);
|
||||
profiles.addFilter(String.format("profileUrl = '%s'", ((String)data.get(PublicPersonalProfile.PROFILE_URL)).toLowerCase()));
|
||||
profiles.addFilter(String.format("version = '%s'", ContentItem.DRAFT));
|
||||
if (profiles.size() > 1) {
|
||||
data.addError(PublicPersonalProfileGlobalizationUtil.globalize("publicpersonalprofile.ui.profile_url.already_in_use"));
|
||||
} else if(profiles.size() == 1) {
|
||||
profiles.next();
|
||||
PublicPersonalProfile profile = (PublicPersonalProfile) DomainObjectFactory.newInstance(profiles.getDataObject());
|
||||
|
||||
if (!(profile.getID().equals(itemModel.getSelectedItem(state).getID()))) {
|
||||
data.addError(PublicPersonalProfileGlobalizationUtil.globalize("publicpersonalprofile.ui.profile_url.already_in_use"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,89 +0,0 @@
|
|||
package com.arsdigita.cms.publicpersonalprofile;
|
||||
|
||||
import com.arsdigita.bebop.Form;
|
||||
import com.arsdigita.bebop.Label;
|
||||
import com.arsdigita.bebop.Page;
|
||||
import com.arsdigita.bebop.PageFactory;
|
||||
import com.arsdigita.templating.PresentationManager;
|
||||
import com.arsdigita.templating.Templating;
|
||||
import com.arsdigita.web.Application;
|
||||
import com.arsdigita.web.BaseApplicationServlet;
|
||||
import com.arsdigita.xml.Document;
|
||||
import java.io.IOException;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class PublicPersonalProfileServlet extends BaseApplicationServlet {
|
||||
|
||||
private static final long serialVersionUID = -1495852395804455609L;
|
||||
private static final Logger logger =
|
||||
Logger.getLogger(
|
||||
PublicPersonalProfileServlet.class);
|
||||
|
||||
@Override
|
||||
protected void doService(final HttpServletRequest request,
|
||||
final HttpServletResponse response,
|
||||
final Application app) throws ServletException,
|
||||
IOException {
|
||||
String path = "";
|
||||
|
||||
logger.debug("PublicPersonalProfileServlet is starting...");
|
||||
logger.debug(String.format("pathInfo = '%s'", request.getPathInfo()));
|
||||
|
||||
logger.debug("Extracting path from pathInfo by removing leading and "
|
||||
+ "trailing slashes...");
|
||||
if (request.getPathInfo() != null) {
|
||||
if ("/".equals(request.getPathInfo())) {
|
||||
path = "";
|
||||
} else if (request.getPathInfo().startsWith("/")
|
||||
&& request.getPathInfo().endsWith("/")) {
|
||||
path = request.getPathInfo().substring(1, request.getPathInfo().
|
||||
length() - 1);
|
||||
} else if (request.getPathInfo().startsWith("/")) {
|
||||
path = request.getPathInfo().substring(1);
|
||||
} else if (request.getPathInfo().endsWith("/")) {
|
||||
path = request.getPathInfo().substring(0, request.getPathInfo().
|
||||
length() - 1);
|
||||
} else {
|
||||
path = request.getPathInfo();
|
||||
}
|
||||
}
|
||||
|
||||
logger.debug(String.format("path = %s", path));
|
||||
|
||||
//Displays a text/plain page with a message.
|
||||
if (path.isEmpty()) {
|
||||
logger.debug("pathInfo is null, responding with default...");
|
||||
|
||||
response.setContentType("text/plain");
|
||||
response.getWriter().append("Please choose an application.");
|
||||
} else {
|
||||
Page page;
|
||||
Form form;
|
||||
Label label;
|
||||
|
||||
page = PageFactory.buildPage("SciPublications",
|
||||
"Hello World from profiles");
|
||||
form = new Form("HelloWorld");
|
||||
label = new Label(String.format("Hello World! From profiles, path = %s", path));
|
||||
|
||||
form.add(label);
|
||||
page.add(form);
|
||||
|
||||
page.lock();
|
||||
|
||||
Document document = page.buildDocument(request, response);
|
||||
PresentationManager presentationManager = Templating.
|
||||
getPresentationManager();
|
||||
presentationManager.servePage(document, request, response);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -11,21 +11,21 @@ import java.math.BigDecimal;
|
|||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class PublicPersonalProfile extends Application {
|
||||
public class PublicPersonalProfiles extends Application {
|
||||
|
||||
public static final String BASE_DATA_OBJECT_TYPE =
|
||||
"com.arsdigita.cms.publicpersonalprofile.PublicPersonalProfile";
|
||||
|
||||
public PublicPersonalProfile(final DataObject dobj) {
|
||||
public PublicPersonalProfiles(final DataObject dobj) {
|
||||
super(dobj);
|
||||
}
|
||||
|
||||
public PublicPersonalProfile(final OID oid)
|
||||
public PublicPersonalProfiles(final OID oid)
|
||||
throws DataObjectNotFoundException {
|
||||
super(oid);
|
||||
}
|
||||
|
||||
public PublicPersonalProfile(final BigDecimal id)
|
||||
public PublicPersonalProfiles(final BigDecimal id)
|
||||
throws DataObjectNotFoundException {
|
||||
this(new OID(BASE_DATA_OBJECT_TYPE, id));
|
||||
}
|
||||
|
|
@ -17,9 +17,9 @@ import com.arsdigita.runtime.RuntimeConfig;
|
|||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class PublicPersonalProfileInitializer extends CompoundInitializer {
|
||||
public class PublicPersonalProfilesInitializer extends CompoundInitializer {
|
||||
|
||||
public PublicPersonalProfileInitializer() {
|
||||
public PublicPersonalProfilesInitializer() {
|
||||
final String jdbcUrl = RuntimeConfig.getConfig().getJDBCURL();
|
||||
final int database = DbHelper.getDatabaseFromURL(jdbcUrl);
|
||||
|
||||
|
|
@ -33,13 +33,13 @@ public class PublicPersonalProfileInitializer extends CompoundInitializer {
|
|||
super.init(event);
|
||||
|
||||
DomainObjectFactory.registerInstantiator(
|
||||
PublicPersonalProfile.BASE_DATA_OBJECT_TYPE,
|
||||
PublicPersonalProfiles.BASE_DATA_OBJECT_TYPE,
|
||||
new ACSObjectInstantiator() {
|
||||
|
||||
@Override
|
||||
public DomainObject doNewInstance(
|
||||
final DataObject dataObject) {
|
||||
return new PublicPersonalProfile(dataObject);
|
||||
return new PublicPersonalProfiles(dataObject);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -17,11 +17,11 @@ import org.apache.log4j.Logger;
|
|||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class PublicPersonalProfileLoader extends PackageLoader {
|
||||
public class PublicPersonalProfilesLoader extends PackageLoader {
|
||||
|
||||
private static final Logger logger =
|
||||
Logger.getLogger(
|
||||
PublicPersonalProfileLoader.class);
|
||||
PublicPersonalProfilesLoader.class);
|
||||
|
||||
@Override
|
||||
public void run(final ScriptContext ctx) {
|
||||
|
|
@ -35,9 +35,9 @@ public class PublicPersonalProfileLoader extends PackageLoader {
|
|||
/*ApplicationSetup setup = new ApplicationSetup(logger);
|
||||
|
||||
setup.setApplicationObjectType(
|
||||
PublicPersonalProfile.BASE_DATA_OBJECT_TYPE);
|
||||
PublicPersonalProfiles.BASE_DATA_OBJECT_TYPE);
|
||||
setup.setKey("profiles");
|
||||
setup.setTitle("PublicPersonalProfile");
|
||||
setup.setTitle("PublicPersonalProfiles");
|
||||
setup.setDescription("Display public personal profiles");
|
||||
|
||||
setup.setInstantiator(new ACSObjectInstantiator() {
|
||||
|
|
@ -45,7 +45,7 @@ public class PublicPersonalProfileLoader extends PackageLoader {
|
|||
@Override
|
||||
public DomainObject doNewInstance(
|
||||
final DataObject dataObject) {
|
||||
return new PublicPersonalProfile(dataObject);
|
||||
return new PublicPersonalProfiles(dataObject);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -53,7 +53,7 @@ public class PublicPersonalProfileLoader extends PackageLoader {
|
|||
type.save();
|
||||
|
||||
if (!Application.isInstalled(
|
||||
PublicPersonalProfile.BASE_DATA_OBJECT_TYPE,
|
||||
PublicPersonalProfiles.BASE_DATA_OBJECT_TYPE,
|
||||
"/profiles/")) {
|
||||
/*Application app = Application.createRootApplication(type,
|
||||
"profiles",
|
||||
|
|
@ -68,11 +68,11 @@ public class PublicPersonalProfileLoader extends PackageLoader {
|
|||
|
||||
ApplicationType type =
|
||||
new ApplicationType("PublicPersonalProfile",
|
||||
PublicPersonalProfile.BASE_DATA_OBJECT_TYPE);
|
||||
PublicPersonalProfiles.BASE_DATA_OBJECT_TYPE);
|
||||
type.setDescription("PublicPersonalProfile Viewer");
|
||||
|
||||
Application.createApplication(
|
||||
PublicPersonalProfile.BASE_DATA_OBJECT_TYPE,
|
||||
PublicPersonalProfiles.BASE_DATA_OBJECT_TYPE,
|
||||
"profiles",
|
||||
"PublicPersonalProfiles",
|
||||
null);
|
||||
|
|
@ -0,0 +1,205 @@
|
|||
package com.arsdigita.cms.publicpersonalprofile;
|
||||
|
||||
import com.arsdigita.bebop.Page;
|
||||
import com.arsdigita.bebop.PageFactory;
|
||||
import com.arsdigita.cms.ContentItem;
|
||||
import com.arsdigita.cms.contenttypes.GenericPerson;
|
||||
import com.arsdigita.cms.contenttypes.PublicPersonalProfile;
|
||||
import com.arsdigita.domain.DomainObjectFactory;
|
||||
import com.arsdigita.persistence.DataCollection;
|
||||
import com.arsdigita.persistence.Session;
|
||||
import com.arsdigita.persistence.SessionManager;
|
||||
import com.arsdigita.templating.PresentationManager;
|
||||
import com.arsdigita.templating.Templating;
|
||||
import com.arsdigita.web.Application;
|
||||
import com.arsdigita.web.BaseApplicationServlet;
|
||||
import com.arsdigita.xml.Document;
|
||||
import com.arsdigita.xml.Element;
|
||||
import java.io.IOException;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class PublicPersonalProfilesServlet extends BaseApplicationServlet {
|
||||
|
||||
private static final long serialVersionUID = -1495852395804455609L;
|
||||
private static final Logger logger =
|
||||
Logger.getLogger(
|
||||
PublicPersonalProfilesServlet.class);
|
||||
private static final String PREVIEW = "preview";
|
||||
|
||||
@Override
|
||||
protected void doService(final HttpServletRequest request,
|
||||
final HttpServletResponse response,
|
||||
final Application app) throws ServletException,
|
||||
IOException {
|
||||
String path = "";
|
||||
|
||||
logger.debug("PublicPersonalProfileServlet is starting...");
|
||||
logger.debug(String.format("pathInfo = '%s'", request.getPathInfo()));
|
||||
|
||||
logger.debug("Extracting path from pathInfo by removing leading and "
|
||||
+ "trailing slashes...");
|
||||
if (request.getPathInfo() != null) {
|
||||
if ("/".equals(request.getPathInfo())) {
|
||||
path = "";
|
||||
} else if (request.getPathInfo().startsWith("/")
|
||||
&& request.getPathInfo().endsWith("/")) {
|
||||
path = request.getPathInfo().substring(1, request.getPathInfo().
|
||||
length() - 1);
|
||||
} else if (request.getPathInfo().startsWith("/")) {
|
||||
path = request.getPathInfo().substring(1);
|
||||
} else if (request.getPathInfo().endsWith("/")) {
|
||||
path = request.getPathInfo().substring(0, request.getPathInfo().
|
||||
length() - 1);
|
||||
} else {
|
||||
path = request.getPathInfo();
|
||||
}
|
||||
}
|
||||
|
||||
logger.debug(String.format("path = %s", path));
|
||||
|
||||
//Displays a text/plain page with a message.
|
||||
if (path.isEmpty()) {
|
||||
logger.debug("pathInfo is null, responding with default...");
|
||||
|
||||
response.setContentType("text/plain");
|
||||
response.getWriter().append("Please choose an application.");
|
||||
} else {
|
||||
final String[] pathTokens = path.split("/");
|
||||
boolean preview = false;;
|
||||
String profileOwner = "";
|
||||
String navPath = null;
|
||||
|
||||
Page page;
|
||||
/*Form form;
|
||||
Label label;*/
|
||||
|
||||
page = PageFactory.buildPage("PublicPersonalProfile",
|
||||
"Hello World from profiles");
|
||||
/*form = new Form("HelloWorld");*/
|
||||
|
||||
if (pathTokens.length < 1) {
|
||||
//ToDo: Fehlerbehandlung?
|
||||
} else {
|
||||
if ((pathTokens.length > 1)
|
||||
&& PREVIEW.equals(pathTokens[0])) {
|
||||
preview = true;
|
||||
profileOwner = pathTokens[1];
|
||||
if (pathTokens.length > 2) {
|
||||
navPath = pathTokens[2];
|
||||
}
|
||||
} else {
|
||||
profileOwner = pathTokens[0];
|
||||
if (pathTokens.length > 1) {
|
||||
navPath = pathTokens[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*form.add(new Label(String.format("Member: %s", member)));
|
||||
|
||||
if (pathTokens.length > 1) {
|
||||
for(int i = 1; i < pathTokens.length; i++) {
|
||||
form.add(new Label(String.format("%d: %s", i, pathTokens[i])));
|
||||
}
|
||||
}
|
||||
|
||||
label = new Label(String.format(
|
||||
"Hello World! From profiles, path = %s", path));
|
||||
|
||||
form.add(label);
|
||||
page.add(form);*/
|
||||
|
||||
page.lock();
|
||||
|
||||
Document document = page.buildDocument(request, response);
|
||||
Element root = document.getRootElement();
|
||||
Element test = root.newChildElement("test");
|
||||
test.setText("test");
|
||||
|
||||
final Session session = SessionManager.getSession();
|
||||
|
||||
DataCollection profiles =
|
||||
session.retrieve(
|
||||
com.arsdigita.cms.contenttypes.PublicPersonalProfile.BASE_DATA_OBJECT_TYPE);
|
||||
profiles.addFilter(String.format("profileUrl = '%s'", profileOwner));
|
||||
if (preview) {
|
||||
profiles.addFilter(String.format("version = '%s'",
|
||||
ContentItem.DRAFT));
|
||||
} else {
|
||||
profiles.addFilter(String.format("version = '%s'",
|
||||
ContentItem.LIVE));
|
||||
}
|
||||
|
||||
if (profiles.size() == 0) {
|
||||
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
||||
return;
|
||||
} else if (profiles.size() > 1) {
|
||||
throw new IllegalStateException(
|
||||
"More than one matching members found...");
|
||||
} else {
|
||||
profiles.next();
|
||||
PublicPersonalProfile profile =
|
||||
(PublicPersonalProfile) DomainObjectFactory.
|
||||
newInstance(profiles.getDataObject());
|
||||
Element profileElem = root.newChildElement("profile");
|
||||
GenericPerson owner = profile.getOwner();
|
||||
if (owner == null) {
|
||||
throw new IllegalStateException(
|
||||
"Failed to get owner of profile.");
|
||||
}
|
||||
profileElem.setText(owner.getFullName());
|
||||
|
||||
createNavigation(profile, root);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
PresentationManager presentationManager = Templating.
|
||||
getPresentationManager();
|
||||
presentationManager.servePage(document, request, response);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void createNavigation(final PublicPersonalProfile profile,
|
||||
final Element root) {
|
||||
Element navRoot =
|
||||
root.newChildElement("nav:categoryMenu",
|
||||
"http://ccm.redhat.com/london/navigation");
|
||||
navRoot.addAttribute("id", "categoryMenu");
|
||||
|
||||
Element navList =
|
||||
navRoot.newChildElement("nav:category",
|
||||
"http://ccm.redhat.com/london/navigation");
|
||||
navList.addAttribute("AbstractTree", "AbstractTree");
|
||||
navList.addAttribute("description", "");
|
||||
navList.addAttribute("id", "");
|
||||
navList.addAttribute("isSelected", "true");
|
||||
navList.addAttribute("sortKey", "");
|
||||
navList.addAttribute("title", "publicPersonalProfileNavList");
|
||||
navList.addAttribute("url", String.format("/ccm/%s",
|
||||
profile.getProfileUrl()));
|
||||
|
||||
Element navHome =
|
||||
navList.newChildElement("nav:category",
|
||||
"http://ccm.redhat.com/london/navigation");
|
||||
navHome.addAttribute("AbstractTree", "AbstractTree");
|
||||
navHome.addAttribute("description", "");
|
||||
navHome.addAttribute("id", profile.getID().toString());
|
||||
navHome.addAttribute("isSelected", "true");
|
||||
navHome.addAttribute("sortKey", "");
|
||||
navHome.addAttribute("title", "Allgemein");
|
||||
navHome.addAttribute("url", String.format("/ccm/%s",
|
||||
profile.getProfileUrl()));
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue