Compare commits
4 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
28695756f0 | |
|
|
348a2c635b | |
|
|
37ad0cdaf4 | |
|
|
bad299d974 |
|
|
@ -4,6 +4,7 @@ node
|
|||
node_modules
|
||||
runtime
|
||||
target
|
||||
.cache
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -84,8 +84,8 @@
|
|||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<configuration>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
<source>11</source>
|
||||
<target>11</target>
|
||||
<optimize>true</optimize>
|
||||
<debug>true</debug>
|
||||
<encoding>${project.build.sourceEncoding}</encoding>
|
||||
|
|
@ -107,7 +107,7 @@
|
|||
<goal>install-node-and-npm</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<nodeVersion>v8.11.4</nodeVersion>
|
||||
<nodeVersion>v12.18.3</nodeVersion>
|
||||
</configuration>
|
||||
</execution>
|
||||
<!-- <execution>
|
||||
|
|
@ -244,6 +244,13 @@
|
|||
<configuration>
|
||||
<skip>false</skip>
|
||||
<propertiesFile>${project.basedir}/wildfly.properties</propertiesFile>
|
||||
|
||||
<env>
|
||||
<wicket.configuration>development</wicket.configuration>
|
||||
</env>
|
||||
<java-opts>
|
||||
<java-opt>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8787</java-opt>
|
||||
</java-opts>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
|
|
|
|||
|
|
@ -86,6 +86,11 @@
|
|||
<Logger name="org.libreccm.ui.admin.usersgroupsroles.RolesController"
|
||||
level="debug">
|
||||
</Logger>
|
||||
<Logger
|
||||
name="org.libreccm.ui.admin.CcmAdmin"
|
||||
level="debug"
|
||||
>
|
||||
</Logger>
|
||||
<Logger name="org.librecms.contentsection.AssetRepository"
|
||||
level="debug">
|
||||
</Logger>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"name": "ccm-core",
|
||||
"version": "7.0.0",
|
||||
"description": "JavaScript stuff for ccm-core",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"build": "npm-run-all build:*:*",
|
||||
"build:ccm-admin:js": "parcel build --out-dir target/generated-resources/org/libreccm/ui/admin src/main/typescript/ccm-admin/ccm-admin.ts",
|
||||
"build:ccm-admin:css": "sass src/main/scss/ccm-admin/ccm-admin.scss target/generated-resources/org/libreccm/ui/admin/ccm-admin.css"
|
||||
},
|
||||
"author": "Jens Pelzetter",
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"devDependencies": {
|
||||
"npm-run-all": "^4.1.5",
|
||||
"parcel-bundler": "^1.12.4",
|
||||
"sass": "^1.26.10",
|
||||
"typescript": "^4.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"bootstrap": "^4.5.2",
|
||||
"jquery": "^3.5.1",
|
||||
"popper.js": "^1.16.1"
|
||||
}
|
||||
}
|
||||
|
|
@ -250,6 +250,15 @@
|
|||
<artifactId>Saxon-HE</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.wicket</groupId>
|
||||
<artifactId>wicket-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.wicket</groupId>
|
||||
<artifactId>wicket-cdi</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Export Import Libraries -->
|
||||
|
||||
<dependency>
|
||||
|
|
@ -292,6 +301,9 @@
|
|||
<directory>src/main/resources</directory>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>./target/generated-resources</directory>
|
||||
</resource>
|
||||
</resources>
|
||||
|
||||
<testResources>
|
||||
|
|
@ -315,6 +327,40 @@
|
|||
<encoding>${project.build.sourceEncoding}</encoding>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>com.github.eirslett</groupId>
|
||||
<artifactId>frontend-maven-plugin</artifactId>
|
||||
<configuration>
|
||||
<installDirectory>../node</installDirectory>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>Install node.js and NPM</id>
|
||||
<goals>
|
||||
<goal>install-node-and-npm</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<nodeVersion>v12.18.3</nodeVersion>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>npm install</id>
|
||||
<goals>
|
||||
<goal>npm</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>build</id>
|
||||
<goals>
|
||||
<goal>npm</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<arguments>run build</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
|
|
@ -416,6 +462,7 @@
|
|||
<!--<additionalparam>-Xdoclint:none</additionalparam>-->
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jxr-plugin</artifactId>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,97 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui;
|
||||
|
||||
import org.apache.wicket.protocol.http.WicketFilter;
|
||||
import org.libreccm.core.CoreConstants;
|
||||
import org.libreccm.security.PermissionChecker;
|
||||
import org.libreccm.security.Shiro;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.servlet.FilterChain;
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.ServletRequest;
|
||||
import javax.servlet.ServletResponse;
|
||||
import javax.servlet.annotation.WebFilter;
|
||||
import javax.servlet.annotation.WebInitParam;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
@WebFilter(
|
||||
value = "/@admin/*",
|
||||
initParams = {
|
||||
@WebInitParam(
|
||||
name = "applicationClassName",
|
||||
value = "org.libreccm.ui.admin.CcmAdmin"
|
||||
),
|
||||
@WebInitParam(name = "filterMappingUrlPattern", value = "/@admin/*")
|
||||
}
|
||||
)
|
||||
public class CcmAdminFilter extends WicketFilter {
|
||||
|
||||
@Inject
|
||||
private Shiro shiro;
|
||||
|
||||
@Inject
|
||||
private PermissionChecker permissionChecker;
|
||||
|
||||
@Inject
|
||||
private ServletContext servletContext;
|
||||
|
||||
@Override
|
||||
public void doFilter(
|
||||
final ServletRequest request,
|
||||
final ServletResponse response,
|
||||
final FilterChain chain
|
||||
) throws IOException, ServletException {
|
||||
if (permissionChecker.isPermitted(CoreConstants.PRIVILEGE_ADMIN)) {
|
||||
super.doFilter(request, response, chain);
|
||||
} else if (shiro.getSubject().isAuthenticated()) {
|
||||
final HttpServletResponse httpResponse
|
||||
= (HttpServletResponse) response;
|
||||
httpResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
} else {
|
||||
final HttpServletRequest httpRequest = (HttpServletRequest) request;
|
||||
final HttpServletResponse httpResponse
|
||||
= (HttpServletResponse) response;
|
||||
|
||||
final String returnUrl = String.format(
|
||||
"%s%s",
|
||||
httpRequest.getContextPath(),
|
||||
httpRequest.getServletPath()
|
||||
);
|
||||
|
||||
httpResponse.sendRedirect(
|
||||
String.format(
|
||||
"%s/ccm/register?return_url=%s",
|
||||
servletContext.getContextPath(),
|
||||
returnUrl
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
package org.libreccm.ui;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
public class MissingPageDataException extends RuntimeException {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* Creates a new instance of <code>MissingPageDataException</code> without detail message.
|
||||
*/
|
||||
public MissingPageDataException() {
|
||||
super();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Constructs an instance of <code>MissingPageDataException</code> with the specified detail message.
|
||||
*
|
||||
* @param msg The detail message.
|
||||
*/
|
||||
public MissingPageDataException(final String msg) {
|
||||
super(msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs an instance of <code>MissingPageDataException</code> which wraps the
|
||||
* specified exception.
|
||||
*
|
||||
* @param exception The exception to wrap.
|
||||
*/
|
||||
public MissingPageDataException(final Exception exception) {
|
||||
super(exception);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs an instance of <code>MissingPageDataException</code> with the specified message which also wraps the
|
||||
* specified exception.
|
||||
*
|
||||
* @param msg The detail message.
|
||||
* @param exception The exception to wrap.
|
||||
*/
|
||||
public MissingPageDataException(final String msg, final Exception exception) {
|
||||
super(msg, exception);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
public class AdminConstants {
|
||||
|
||||
private AdminConstants() {
|
||||
// Nothing
|
||||
}
|
||||
|
||||
public static final String ADMIN_BUNDLE = "org.libreccm.ui.admin.AdminBundle";
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin;
|
||||
|
||||
import org.apache.wicket.markup.head.CssHeaderItem;
|
||||
import org.apache.wicket.markup.head.IHeaderResponse;
|
||||
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
|
||||
import org.apache.wicket.markup.head.filter.HeaderResponseContainer;
|
||||
import org.apache.wicket.markup.html.WebPage;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.repeater.RepeatingView;
|
||||
import org.apache.wicket.request.resource.PackageResourceReference;
|
||||
import org.libreccm.ui.bootstrap.NavItem;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.enterprise.inject.Instance;
|
||||
import javax.inject.Inject;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
public class AdminPage extends WebPage {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Inject
|
||||
private Instance<AdminPagesProvider> adminPages;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public AdminPage() {
|
||||
super();
|
||||
|
||||
add(
|
||||
new HeaderResponseContainer(
|
||||
"scripts-container", "scripts-container"
|
||||
)
|
||||
);
|
||||
|
||||
final List<AdminPageData> adminPagesData = adminPages
|
||||
.stream()
|
||||
.map(AdminPagesProvider::getAdminPagesData)
|
||||
.flatMap(Collection::stream)
|
||||
.filter(page -> page.getGroup().equals(""))
|
||||
.sorted(
|
||||
(page1, page2) -> Integer.compare(
|
||||
page1.getPosition(), page2.getPosition()
|
||||
)
|
||||
)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
final RepeatingView adminPagesView = new RepeatingView("admin-pages");
|
||||
for (final AdminPageData adminPageData : adminPagesData) {
|
||||
final NavItem navItem = new NavItem(
|
||||
adminPagesView.newChildId(),
|
||||
adminPageData.getLabel(),
|
||||
adminPageData.getPageClass()
|
||||
);
|
||||
navItem.setRenderBodyOnly(true);
|
||||
adminPagesView.add(navItem);
|
||||
}
|
||||
add(adminPagesView);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderHead(final IHeaderResponse response) {
|
||||
response.render(
|
||||
CssHeaderItem.forReference(
|
||||
new PackageResourceReference(AdminPage.class, "ccm-admin.css")
|
||||
)
|
||||
);
|
||||
response.render(
|
||||
JavaScriptHeaderItem.forReference(
|
||||
new PackageResourceReference(AdminPage.class, "ccm-admin.js")
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,156 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
public class AdminPageData {
|
||||
|
||||
private final String path;
|
||||
|
||||
private final Class<? extends AdminPage> pageClass;
|
||||
|
||||
private final String group;
|
||||
|
||||
private final int position;
|
||||
|
||||
private final String label;
|
||||
|
||||
private final String description;
|
||||
|
||||
AdminPageData(
|
||||
final String path,
|
||||
final Class<? extends AdminPage> pageClass,
|
||||
final String group,
|
||||
final int position,
|
||||
final String label,
|
||||
final String description
|
||||
) {
|
||||
this.path = path;
|
||||
this.pageClass = pageClass;
|
||||
this.group = group;
|
||||
this.position = position;
|
||||
this.label = label;
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public String getPath() {
|
||||
return path;
|
||||
}
|
||||
|
||||
public Class<? extends AdminPage> getPageClass() {
|
||||
return pageClass;
|
||||
}
|
||||
|
||||
public String getGroup() {
|
||||
return group;
|
||||
}
|
||||
|
||||
public int getPosition() {
|
||||
return position;
|
||||
}
|
||||
|
||||
public String getLabel() {
|
||||
return label;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int hash = 3;
|
||||
hash = 59 * hash + Objects.hashCode(path);
|
||||
hash = 59 * hash + Objects.hashCode(pageClass);
|
||||
hash = 59 * hash + Objects.hashCode(group);
|
||||
hash = 59 * hash + position;
|
||||
hash = 59 * hash + Objects.hashCode(label);
|
||||
hash = 59 * hash + Objects.hashCode(description);
|
||||
return hash;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(final Object obj) {
|
||||
if (this == obj) {
|
||||
return true;
|
||||
}
|
||||
if (obj == null) {
|
||||
return false;
|
||||
}
|
||||
if ((obj instanceof AdminPageData)) {
|
||||
return false;
|
||||
}
|
||||
final AdminPageData other = (AdminPageData) obj;
|
||||
if (other.canEqual(this)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(path, other.getPath())) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(pageClass, other.getPageClass())) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(group, other.getGroup())) {
|
||||
return false;
|
||||
}
|
||||
if (position != other.getPosition()) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(label, other.getLabel())) {
|
||||
return false;
|
||||
}
|
||||
return Objects.equals(description, other.getDescription());
|
||||
}
|
||||
|
||||
public boolean canEqual(final Object obj) {
|
||||
return obj instanceof AdminPageData;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String toString() {
|
||||
return toString("");
|
||||
}
|
||||
|
||||
public String toString(final String data) {
|
||||
return String.format(
|
||||
"%s{"
|
||||
+ "path = %s, "
|
||||
+ "pageClass = %s, "
|
||||
+ "group = %s, "
|
||||
+ "order = %d, "
|
||||
+ "label = %s, "
|
||||
+ "description = %s%s"
|
||||
+ "}",
|
||||
super.toString(),
|
||||
path,
|
||||
pageClass.getName(),
|
||||
group,
|
||||
position,
|
||||
label,
|
||||
description,
|
||||
data
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface AdminPageDescriptor {
|
||||
|
||||
String path();
|
||||
|
||||
int position();
|
||||
|
||||
Class<? extends AdminPage> subPageOf() default AdminPage.class;
|
||||
|
||||
String labelBundle();
|
||||
|
||||
String labelKey();
|
||||
|
||||
String descriptionBundle();
|
||||
|
||||
String descriptionKey();
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,144 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin;
|
||||
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.libreccm.l10n.GlobalizationHelper;
|
||||
|
||||
import java.util.MissingResourceException;
|
||||
import java.util.ResourceBundle;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
public abstract class AdminPagesProvider {
|
||||
|
||||
private static final Logger LOGGER = LogManager.getLogger(
|
||||
AdminPagesProvider.class
|
||||
);
|
||||
|
||||
@Inject
|
||||
private GlobalizationHelper globalizationHelper;
|
||||
|
||||
public abstract Set<Class<? extends AdminPage>> getClasses();
|
||||
|
||||
protected Set<AdminPageData> getAdminPagesData() {
|
||||
return getClasses()
|
||||
.stream()
|
||||
.map(this::buildAdminPageData)
|
||||
.collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
private AdminPageData buildAdminPageData(
|
||||
final Class<? extends AdminPage> clazz
|
||||
) {
|
||||
final AdminPageDescriptor descriptor = clazz.getAnnotation(
|
||||
AdminPageDescriptor.class
|
||||
);
|
||||
final String path = buildPath(descriptor);
|
||||
final int position = descriptor.position();
|
||||
final String labelBundle = descriptor.labelBundle();
|
||||
final String labelKey = descriptor.labelKey();
|
||||
final String descriptionBundle = descriptor.descriptionBundle();
|
||||
final String descriptionKey = descriptor.descriptionKey();
|
||||
final String group;
|
||||
if (descriptor.subPageOf().equals(AdminPage.class)) {
|
||||
group = "";
|
||||
} else {
|
||||
final AdminPageDescriptor parentDescriptor = descriptor
|
||||
.subPageOf()
|
||||
.getAnnotation(AdminPageDescriptor.class);
|
||||
if (parentDescriptor == null) {
|
||||
throw new IllegalArgumentException(
|
||||
String.format(
|
||||
"Parent page class %s of page class %s has no "
|
||||
+ "AdminPageDescriptor annotation.",
|
||||
descriptor.subPageOf().getName(),
|
||||
clazz.getName())
|
||||
);
|
||||
}
|
||||
group = parentDescriptor.path();
|
||||
}
|
||||
|
||||
final AdminPageData data = new AdminPageData(
|
||||
path,
|
||||
clazz,
|
||||
group,
|
||||
position,
|
||||
findString(labelBundle, labelKey),
|
||||
findString(descriptionBundle, descriptionKey)
|
||||
);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
private String findString(final String bundleName, final String key) {
|
||||
final ResourceBundle bundle;
|
||||
try {
|
||||
bundle = ResourceBundle.getBundle(
|
||||
bundleName, globalizationHelper.getNegotiatedLocale()
|
||||
);
|
||||
} catch (MissingResourceException ex) {
|
||||
LOGGER.warn("Resource Bundle {} not found.", bundleName);
|
||||
LOGGER.warn(ex);
|
||||
return key;
|
||||
}
|
||||
|
||||
try {
|
||||
return bundle.getString(key);
|
||||
} catch (MissingResourceException ex) {
|
||||
LOGGER.warn("Key {} not found.", key);
|
||||
return key;
|
||||
}
|
||||
}
|
||||
|
||||
private String buildPath(final AdminPageDescriptor descriptor) {
|
||||
if (descriptor.subPageOf().equals(AdminPage.class)) {
|
||||
return descriptor.path();
|
||||
} else {
|
||||
final Class<? extends AdminPage> parent = descriptor.subPageOf();
|
||||
final AdminPageDescriptor parentDescriptor = parent.getAnnotation(
|
||||
AdminPageDescriptor.class
|
||||
);
|
||||
if (parentDescriptor == null) {
|
||||
throw new IllegalArgumentException(
|
||||
String.format(
|
||||
"Parent page class %s of page class %s has no "
|
||||
+ "AdminPageDescriptor annotation.",
|
||||
descriptor.subPageOf().getName(),
|
||||
parent.getName())
|
||||
);
|
||||
}
|
||||
|
||||
return String.join(
|
||||
"/",
|
||||
buildPath(parentDescriptor),
|
||||
descriptor.path()
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin;
|
||||
|
||||
import org.libreccm.ui.admin.applications.ApplicationsPanel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
@AdminPageDescriptor(
|
||||
path = "applications",
|
||||
position = 10,
|
||||
labelBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
labelKey = "applications.label",
|
||||
descriptionBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
descriptionKey = "applications.description"
|
||||
)
|
||||
public class ApplicationsPage extends AdminPage {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public ApplicationsPage() {
|
||||
super();
|
||||
add(new ApplicationsPanel("adminPanel"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin;
|
||||
|
||||
import org.libreccm.ui.admin.categories.CategoriesPanel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
@AdminPageDescriptor(
|
||||
path = "categories",
|
||||
position = 20,
|
||||
labelBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
labelKey = "categories.label",
|
||||
descriptionBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
descriptionKey = "categories.description"
|
||||
)
|
||||
public class CategoriesPage extends AdminPage {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public CategoriesPage() {
|
||||
super();
|
||||
add(new CategoriesPanel("adminPanel"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin;
|
||||
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.apache.wicket.cdi.CdiConfiguration;
|
||||
import org.apache.wicket.markup.head.filter.JavaScriptFilteredIntoFooterHeaderResponse;
|
||||
import org.apache.wicket.markup.html.WebPage;
|
||||
import org.apache.wicket.protocol.http.WebApplication;
|
||||
import org.libreccm.l10n.GlobalizationHelper;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.MissingResourceException;
|
||||
import java.util.ResourceBundle;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.enterprise.inject.Instance;
|
||||
import javax.inject.Inject;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
public class CcmAdmin extends WebApplication {
|
||||
|
||||
private static final Logger LOGGER = LogManager.getLogger(CcmAdmin.class);
|
||||
|
||||
@Inject
|
||||
private Instance<AdminPagesProvider> adminPages;
|
||||
|
||||
@Override
|
||||
public Class<? extends WebPage> getHomePage() {
|
||||
return DashboardPage.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init() {
|
||||
super.init();
|
||||
// setConfigurationType(RuntimeConfigurationType.DEPLOYMENT);
|
||||
|
||||
final CdiConfiguration cdiConfiguration = new CdiConfiguration();
|
||||
cdiConfiguration.configure(this);
|
||||
|
||||
getCspSettings().blocking().disabled();
|
||||
getMarkupSettings().setStripWicketTags(true);
|
||||
|
||||
getHeaderResponseDecorators().add(
|
||||
response -> new JavaScriptFilteredIntoFooterHeaderResponse(
|
||||
response, "scripts-container"
|
||||
));
|
||||
|
||||
final Set<AdminPageData> adminPagesData = adminPages
|
||||
.stream()
|
||||
.map(AdminPagesProvider::getAdminPagesData)
|
||||
.flatMap(Collection::stream)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
for (final AdminPageData adminPageData : adminPagesData) {
|
||||
LOGGER.debug(
|
||||
"Mounting page {} to path {}",
|
||||
adminPageData.getPageClass().getName(),
|
||||
adminPageData.getPath()
|
||||
);
|
||||
mountPage(adminPageData.getPath(), adminPageData.getPageClass());
|
||||
}
|
||||
|
||||
// mountPage("applications", ApplicationsPage.class);
|
||||
// mountPage("categories", CategoriesPage.class);
|
||||
// mountPage("configuration", ConfigurationPage.class);
|
||||
// mountPage("imexport", ImExportPage.class);
|
||||
// mountPage("pagemodels", PageModelsPage.class);
|
||||
// mountPage("sites", SitesPage.class);
|
||||
// mountPage("systeminformation", SystemInformationPage.class);
|
||||
// mountPage("users-groups-roles/groups", GroupsPage.class);
|
||||
// mountPage("users-groups-roles/roles", RolesPage.class);
|
||||
// mountPage("users-groups-roles/users", UsersPage.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin;
|
||||
|
||||
import org.libreccm.ui.admin.usersgroupsroles.GroupsPage;
|
||||
import org.libreccm.ui.admin.usersgroupsroles.RolesPage;
|
||||
import org.libreccm.ui.admin.usersgroupsroles.UsersPage;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import javax.enterprise.context.ApplicationScoped;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
@ApplicationScoped
|
||||
public class CcmCoreAdminPages extends AdminPagesProvider {
|
||||
|
||||
@Override
|
||||
public Set<Class<? extends AdminPage>> getClasses() {
|
||||
return Set.of(
|
||||
ApplicationsPage.class,
|
||||
CategoriesPage.class,
|
||||
ConfigurationPage.class,
|
||||
ImExportPage.class,
|
||||
PageModelsPage.class,
|
||||
SitesPage.class,
|
||||
SystemInformationPage.class,
|
||||
UsersGroupsRolesPage.class,
|
||||
GroupsPage.class,
|
||||
RolesPage.class,
|
||||
UsersPage.class
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin;
|
||||
|
||||
import org.libreccm.ui.admin.configuration.ConfigurationPanel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
@AdminPageDescriptor(
|
||||
path = "configuration",
|
||||
position = 30,
|
||||
labelBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
labelKey = "configuration.label",
|
||||
descriptionBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
descriptionKey = "configuration.description"
|
||||
)
|
||||
public class ConfigurationPage extends AdminPage {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public ConfigurationPage() {
|
||||
super();
|
||||
add(new ConfigurationPanel("adminPanel"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin;
|
||||
|
||||
import org.libreccm.ui.admin.dashboard.DashboardPanel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
public class DashboardPage extends AdminPage {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public DashboardPage() {
|
||||
super();
|
||||
// add(new Label("dashboardLabel", "CCM Admin Dashboard"));
|
||||
add(new DashboardPanel("adminPanel"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin;
|
||||
|
||||
import org.libreccm.ui.admin.imexport.ImExportPanel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
@AdminPageDescriptor(
|
||||
path = "imexport",
|
||||
position = 40,
|
||||
labelBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
labelKey = "imexport.label",
|
||||
descriptionBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
descriptionKey = "imexport.description"
|
||||
)
|
||||
public class ImExportPage extends AdminPage {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public ImExportPage() {
|
||||
super();
|
||||
add(new ImExportPanel("adminPanel"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin;
|
||||
|
||||
import org.libreccm.ui.admin.pagemodels.PageModelsPanel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
@AdminPageDescriptor(
|
||||
path = "pagemodels",
|
||||
position = 50,
|
||||
labelBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
labelKey = "pagemodels.label",
|
||||
descriptionBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
descriptionKey = "pagemodels.description"
|
||||
)
|
||||
public class PageModelsPage extends AdminPage {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public PageModelsPage() {
|
||||
super();
|
||||
add(new PageModelsPanel("adminPanel"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin;
|
||||
|
||||
import org.libreccm.ui.admin.sites.SitesPanel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
@AdminPageDescriptor(
|
||||
path = "sites",
|
||||
position = 60,
|
||||
labelBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
labelKey = "sites.label",
|
||||
descriptionBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
descriptionKey = "sites.description"
|
||||
)
|
||||
public class SitesPage extends AdminPage {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public SitesPage() {
|
||||
super();
|
||||
add(new SitesPanel("adminPanel"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin;
|
||||
|
||||
import org.libreccm.ui.admin.systeminformation.SystemInformationPanel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
@AdminPageDescriptor(
|
||||
path = "systeminformation",
|
||||
position = 70,
|
||||
labelBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
labelKey = "systeminformation.label",
|
||||
descriptionBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
descriptionKey = "systeminformation.description"
|
||||
)
|
||||
public class SystemInformationPage extends AdminPage {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public SystemInformationPage() {
|
||||
super();
|
||||
add(new SystemInformationPanel("adminPanel"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin;
|
||||
|
||||
import org.libreccm.ui.admin.usersgroupsroles.UsersGroupsRolesPanel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
@AdminPageDescriptor(
|
||||
path = "users-groups-roles",
|
||||
position = 80,
|
||||
labelBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
labelKey = "usersGroupsRoles.label",
|
||||
descriptionBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
descriptionKey = "usersGroupsRoles.description"
|
||||
)
|
||||
public class UsersGroupsRolesPage extends AdminPage {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public UsersGroupsRolesPage() {
|
||||
super();
|
||||
add(new UsersGroupsRolesPanel("adminPanel"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin.applications;
|
||||
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
public class ApplicationsPanel extends Panel {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public ApplicationsPanel(final String id) {
|
||||
super(id);
|
||||
add(new Label("applicationsLabel", "Applications Placeholder"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin.categories;
|
||||
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
public class CategoriesPanel extends Panel {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public CategoriesPanel(final String id) {
|
||||
super(id);
|
||||
add(new Label("categoriesLabel", "Categories Placeholder"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin.configuration;
|
||||
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
public class ConfigurationPanel extends Panel {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public ConfigurationPanel(final String id) {
|
||||
super(id);
|
||||
add(new Label("configurationLabel", "Configuration Placeholder"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin.dashboard;
|
||||
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
public class DashboardPanel extends Panel {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public DashboardPanel(String id) {
|
||||
super(id);
|
||||
add(new Label("dashboardLabel", "CCM Admin Dashboard"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin.imexport;
|
||||
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
public class ImExportPanel extends Panel {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public ImExportPanel(final String id) {
|
||||
super(id);
|
||||
add(new Label("imexportLabel", "Import/Export Placeholder"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin.pagemodels;
|
||||
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
public class PageModelsPanel extends Panel {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public PageModelsPanel(final String id) {
|
||||
super(id);
|
||||
add(new Label("pageModelsLabel", "PageModel Placeholder"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin.sites;
|
||||
|
||||
import org.libreccm.ui.admin.configuration.*;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
public class SitesPanel extends Panel {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public SitesPanel(final String id) {
|
||||
super(id);
|
||||
add(new Label("sitesLabel", "Sites Placeholder"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin.systeminformation;
|
||||
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
public class SystemInformationPanel extends Panel {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public SystemInformationPanel(final String id) {
|
||||
super(id);
|
||||
add(new Label("systemInformationLabel", "Systeminformation Placeholder"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin.usersgroupsroles;
|
||||
|
||||
import org.libreccm.ui.admin.AdminConstants;
|
||||
import org.libreccm.ui.admin.AdminPage;
|
||||
import org.libreccm.ui.admin.AdminPageDescriptor;
|
||||
import org.libreccm.ui.admin.UsersGroupsRolesPage;
|
||||
import org.libreccm.ui.admin.usersgroupsroles.groups.GroupsPanel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
@AdminPageDescriptor(
|
||||
path = "groups",
|
||||
position = 20,
|
||||
subPageOf = UsersGroupsRolesPage.class,
|
||||
labelBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
labelKey = "usersGroupsRoles.groups.label",
|
||||
descriptionBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
descriptionKey = "usersGroupsRoles.groups.description"
|
||||
)
|
||||
public class GroupsPage extends AdminPage {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public GroupsPage() {
|
||||
add(new GroupsPanel("adminPanel"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin.usersgroupsroles;
|
||||
|
||||
import org.libreccm.ui.admin.AdminConstants;
|
||||
import org.libreccm.ui.admin.AdminPage;
|
||||
import org.libreccm.ui.admin.AdminPageDescriptor;
|
||||
import org.libreccm.ui.admin.UsersGroupsRolesPage;
|
||||
import org.libreccm.ui.admin.usersgroupsroles.roles.RolesPanel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
@AdminPageDescriptor(
|
||||
path = "roles",
|
||||
position = 30,
|
||||
subPageOf = UsersGroupsRolesPage.class,
|
||||
labelBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
labelKey = "usersGroupsRoles.roles.label",
|
||||
descriptionBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
descriptionKey = "usersGroupsRoles.roles.description"
|
||||
)
|
||||
|
||||
public class RolesPage extends AdminPage {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public RolesPage() {
|
||||
add(new RolesPanel("adminPanel"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin.usersgroupsroles;
|
||||
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
public class UsersGroupsRolesPanel extends Panel {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public UsersGroupsRolesPanel(final String id) {
|
||||
super(id);
|
||||
add(new Label("usersGroupsRolesLabel", "Users/Groups/Roles Placeholder"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin.usersgroupsroles;
|
||||
|
||||
import org.libreccm.ui.admin.AdminConstants;
|
||||
import org.libreccm.ui.admin.AdminPage;
|
||||
import org.libreccm.ui.admin.AdminPageDescriptor;
|
||||
import org.libreccm.ui.admin.UsersGroupsRolesPage;
|
||||
import org.libreccm.ui.admin.usersgroupsroles.users.UsersPanel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
@AdminPageDescriptor(
|
||||
path = "users",
|
||||
position = 10,
|
||||
subPageOf = UsersGroupsRolesPage.class,
|
||||
labelBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
labelKey = "usersGroupsRoles.users.label",
|
||||
descriptionBundle = AdminConstants.ADMIN_BUNDLE,
|
||||
descriptionKey = "usersGroupsRoles.users.description"
|
||||
)
|
||||
|
||||
public class UsersPage extends AdminPage {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public UsersPage() {
|
||||
add(new UsersPanel("adminPanel"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin.usersgroupsroles.groups;
|
||||
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
public class GroupsPanel extends Panel {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public GroupsPanel(final String id) {
|
||||
super(id);
|
||||
add(new Label("groupsLabel", "Groups Placeholder"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin.usersgroupsroles.roles;
|
||||
|
||||
import org.libreccm.ui.admin.configuration.*;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
public class RolesPanel extends Panel {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public RolesPanel(final String id) {
|
||||
super(id);
|
||||
add(new Label("rolesLabel", "Roles Placeholder"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.admin.usersgroupsroles.users;
|
||||
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
public class UsersPanel extends Panel {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public UsersPanel(final String id) {
|
||||
super(id);
|
||||
add(new Label("usersLabel", "Users Placeholder"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
/*
|
||||
* Copyright (C) 2020 LibreCCM Foundation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*/
|
||||
package org.libreccm.ui.bootstrap;
|
||||
|
||||
import org.apache.wicket.markup.html.WebPage;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.link.Link;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
public class NavItem extends Panel {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SuppressWarnings("OverridableMethodCallInConstructor")
|
||||
public NavItem(
|
||||
final String id,
|
||||
final String label,
|
||||
final Class<? extends WebPage> targetPage
|
||||
) {
|
||||
super(id);
|
||||
|
||||
final Link<Void> link = new Link<Void>("link") {
|
||||
|
||||
@Override
|
||||
public void onClick() {
|
||||
setResponsePage(targetPage);
|
||||
}
|
||||
|
||||
};
|
||||
link.add(new Label("link-label", label));
|
||||
add(link);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
# Copyright (C) 2020 LibreCCM Foundation.
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2.1 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
# MA 02110-1301 USA
|
||||
|
||||
applications.label=Applications
|
||||
applications.description=Manage application instances
|
||||
categories.label=Categories
|
||||
categories.description=Manage categories
|
||||
configuration.label=Configuration
|
||||
configuration.description=Manage settings
|
||||
dashboard.label=Dashboard
|
||||
dashboard.description=Provides an overview of all available admin pages
|
||||
imexport.label=Export/Import
|
||||
imexport.description=Export and import entities
|
||||
pagemodels.label=Page Models
|
||||
pagemodels.description=Manage page models
|
||||
sites.label=Sites
|
||||
sites.description=Manage sites
|
||||
usersGroupsRoles.label=Users/Groups/Roles
|
||||
usersGroupsRoles.description=Manage users, groups and roles
|
||||
usersGroupsRoles.groups.label=Groups
|
||||
usersGroupsRoles.groups.description=Manage groups
|
||||
usersGroupsRoles.roles.label=Roles
|
||||
usersGroupsRoles.roles.description=Manage roles
|
||||
usersGroupsRoles.users.label=Users
|
||||
usersGroupsRoles.users.description=Manage users
|
||||
systeminformation.label=System Information
|
||||
systeminformation.description=Shows several informations about this CCM instance and its environment
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
# Copyright (C) 2020 LibreCCM Foundation.
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2.1 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
# MA 02110-1301 USA
|
||||
|
||||
applications.label=Applikationen
|
||||
applications.description=Verwalten der Instanzen der Applikationen
|
||||
categories.label=Kategorien
|
||||
categories.description=Verwaltung der Kategorien
|
||||
configuration.label=Konfiguration
|
||||
configuration.description=Konfiguration bearbeiten
|
||||
dashboard.label=Dashboard
|
||||
dashboard.description=\u00dcberblick \u00fcber alle Administrations-Seiten
|
||||
imexport.label=Export/Import
|
||||
imexport.description=Daten exportieren und importieren
|
||||
pagemodels.label=Page Models
|
||||
pagemodels.description=Verwalten der Page Models
|
||||
sites.label=Sites
|
||||
sites.description=Verwalten der Sites
|
||||
usersGroupsRoles.label=Benutzer*innen/Gruppen/Rollen
|
||||
usersGroupsRoles.description=Benutzer*innen, Gruppen und Rollen verwalten
|
||||
usersGroupsRoles.groups.label=Gruppen
|
||||
usersGroupsRoles.groups.description=Gruppen verwalten
|
||||
usersGroupsRoles.roles.label=Rollen
|
||||
usersGroupsRoles.roles.description=Rollen verwalten
|
||||
usersGroupsRoles.users.label=Benutzer*innen
|
||||
usersGroupsRoles.users.description=Benutzer*innen verwalten
|
||||
systeminformation.label=System Information
|
||||
systeminformation.description=Zeigt verschiedene Informationen \u00fcber diese CCM Instanz und ihre Umgebung
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>LibreCCM Admin</title>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-primary">
|
||||
<a class="navbar-brand" href="#">Navbar</a>
|
||||
<button
|
||||
class="navbar-toggler"
|
||||
type="button"
|
||||
data-toggle="collapse"
|
||||
data-target="#navbarSupportedContent"
|
||||
aria-controls="navbarSupportedContent"
|
||||
aria-expanded="false"
|
||||
aria-label="Toggle navigation"
|
||||
>
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
|
||||
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li class="nav-item" wicket:id="admin-pages"></li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="container">
|
||||
<div wicket:id="adminPanel">[admin panel]</div>
|
||||
</div>
|
||||
<wicket:container wicket:id="scripts-container"></wicket:container>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Dashboard - LibreCCM Admin</title>
|
||||
</head>
|
||||
<body>
|
||||
<div wicket:id="dashboardLabel">
|
||||
[Label's message goes here]
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<div wicket:id="applicationsLabel">
|
||||
[Label's message goes here]
|
||||
</div>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<div wicket:id="categoriesLabel">
|
||||
[Label's message goes here]
|
||||
</div>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<div wicket:id="configurationLabel">
|
||||
[Label's message goes here]
|
||||
</div>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<div wicket:id="dashboardLabel">
|
||||
[Label's message goes here]
|
||||
</div>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<div wicket:id="imexportLabel">
|
||||
[Label's message goes here]
|
||||
</div>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<div wicket:id="pageModelsLabel">
|
||||
[Label's message goes here]
|
||||
</div>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<div wicket:id="sitesLabel">
|
||||
[Label's message goes here]
|
||||
</div>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<div wicket:id="systemInformationLabel">
|
||||
[Label's message goes here]
|
||||
</div>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<div wicket:id="usersGroupsRolesLabel">
|
||||
[Label's message goes here]
|
||||
</div>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<div wicket:id="groupsLabel">
|
||||
[Label's message goes here]
|
||||
</div>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<div wicket:id="rolesLabel">
|
||||
[Label's message goes here]
|
||||
</div>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<div wicket:id="usersLabel">
|
||||
[Label's message goes here]
|
||||
</div>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<li class="nav-item">
|
||||
<a
|
||||
class="nav-link"
|
||||
href="[targetpage]"
|
||||
wicket:id="link"
|
||||
>
|
||||
<span wicket:id="link-label">[Link Label]</span>
|
||||
</a>
|
||||
</li>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
@import "../../../../node_modules/bootstrap/scss/bootstrap";
|
||||
|
|
@ -0,0 +1 @@
|
|||
import "bootstrap";
|
||||
15
pom.xml
15
pom.xml
|
|
@ -164,8 +164,8 @@
|
|||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.1</version>
|
||||
<configuration>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
<source>11</source>
|
||||
<target>11</target>
|
||||
<optimize>true</optimize>
|
||||
<debug>true</debug>
|
||||
<encoding>${project.build.sourceEncoding}</encoding>
|
||||
|
|
@ -556,6 +556,17 @@
|
|||
<version>0.11.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.wicket</groupId>
|
||||
<artifactId>wicket-core</artifactId>
|
||||
<version>9.0.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.wicket</groupId>
|
||||
<artifactId>wicket-cdi</artifactId>
|
||||
<version>9.0.0</version>
|
||||
</dependency>
|
||||
|
||||
<!--
|
||||
*********************
|
||||
Libraries used by CCM
|
||||
|
|
|
|||
Loading…
Reference in New Issue