Compare commits
4 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
28695756f0 | |
|
|
348a2c635b | |
|
|
37ad0cdaf4 | |
|
|
bad299d974 |
|
|
@ -4,6 +4,7 @@ node
|
||||||
node_modules
|
node_modules
|
||||||
runtime
|
runtime
|
||||||
target
|
target
|
||||||
|
.cache
|
||||||
.classpath
|
.classpath
|
||||||
.factorypath
|
.factorypath
|
||||||
.project
|
.project
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -84,8 +84,8 @@
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<source>1.8</source>
|
<source>11</source>
|
||||||
<target>1.8</target>
|
<target>11</target>
|
||||||
<optimize>true</optimize>
|
<optimize>true</optimize>
|
||||||
<debug>true</debug>
|
<debug>true</debug>
|
||||||
<encoding>${project.build.sourceEncoding}</encoding>
|
<encoding>${project.build.sourceEncoding}</encoding>
|
||||||
|
|
@ -107,7 +107,7 @@
|
||||||
<goal>install-node-and-npm</goal>
|
<goal>install-node-and-npm</goal>
|
||||||
</goals>
|
</goals>
|
||||||
<configuration>
|
<configuration>
|
||||||
<nodeVersion>v8.11.4</nodeVersion>
|
<nodeVersion>v12.18.3</nodeVersion>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
<!-- <execution>
|
<!-- <execution>
|
||||||
|
|
@ -244,6 +244,13 @@
|
||||||
<configuration>
|
<configuration>
|
||||||
<skip>false</skip>
|
<skip>false</skip>
|
||||||
<propertiesFile>${project.basedir}/wildfly.properties</propertiesFile>
|
<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>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -86,6 +86,11 @@
|
||||||
<Logger name="org.libreccm.ui.admin.usersgroupsroles.RolesController"
|
<Logger name="org.libreccm.ui.admin.usersgroupsroles.RolesController"
|
||||||
level="debug">
|
level="debug">
|
||||||
</Logger>
|
</Logger>
|
||||||
|
<Logger
|
||||||
|
name="org.libreccm.ui.admin.CcmAdmin"
|
||||||
|
level="debug"
|
||||||
|
>
|
||||||
|
</Logger>
|
||||||
<Logger name="org.librecms.contentsection.AssetRepository"
|
<Logger name="org.librecms.contentsection.AssetRepository"
|
||||||
level="debug">
|
level="debug">
|
||||||
</Logger>
|
</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>
|
<artifactId>Saxon-HE</artifactId>
|
||||||
</dependency>
|
</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 -->
|
<!-- Export Import Libraries -->
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
@ -292,6 +301,9 @@
|
||||||
<directory>src/main/resources</directory>
|
<directory>src/main/resources</directory>
|
||||||
<filtering>true</filtering>
|
<filtering>true</filtering>
|
||||||
</resource>
|
</resource>
|
||||||
|
<resource>
|
||||||
|
<directory>./target/generated-resources</directory>
|
||||||
|
</resource>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
||||||
<testResources>
|
<testResources>
|
||||||
|
|
@ -315,6 +327,40 @@
|
||||||
<encoding>${project.build.sourceEncoding}</encoding>
|
<encoding>${project.build.sourceEncoding}</encoding>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</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>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
|
|
@ -381,7 +427,7 @@
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
<reporting>
|
<reporting>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-javadoc-plugin</artifactId>
|
<artifactId>maven-javadoc-plugin</artifactId>
|
||||||
|
|
@ -416,6 +462,7 @@
|
||||||
<!--<additionalparam>-Xdoclint:none</additionalparam>-->
|
<!--<additionalparam>-Xdoclint:none</additionalparam>-->
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-jxr-plugin</artifactId>
|
<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>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<version>3.8.1</version>
|
<version>3.8.1</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<source>1.8</source>
|
<source>11</source>
|
||||||
<target>1.8</target>
|
<target>11</target>
|
||||||
<optimize>true</optimize>
|
<optimize>true</optimize>
|
||||||
<debug>true</debug>
|
<debug>true</debug>
|
||||||
<encoding>${project.build.sourceEncoding}</encoding>
|
<encoding>${project.build.sourceEncoding}</encoding>
|
||||||
|
|
@ -556,6 +556,17 @@
|
||||||
<version>0.11.2</version>
|
<version>0.11.2</version>
|
||||||
</dependency>
|
</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
|
Libraries used by CCM
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue