More work on admin UI with Wicket

Jens Pelzetter 2020-08-31 21:07:30 +02:00
parent a6b20a34bf
commit 69c7bcd092
49 changed files with 1661 additions and 11 deletions

View File

@ -244,9 +244,13 @@
<configuration>
<skip>false</skip>
<propertiesFile>${project.basedir}/wildfly.properties</propertiesFile>
<env>
<wicket.configuration>development</wicket.configuration>
</env>
<java-opts>
<java-opt>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8787</java-opt>
</java-opts>
</configuration>
</plugin>

View File

@ -253,7 +253,10 @@
<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>
</dependency>
<!-- Export Import Libraries -->

View File

@ -24,8 +24,6 @@ import org.libreccm.security.PermissionChecker;
import org.libreccm.security.Shiro;
import java.io.IOException;
import java.net.URL;
import java.net.http.HttpRequest;
import javax.inject.Inject;
import javax.servlet.FilterChain;
@ -43,7 +41,7 @@ import javax.servlet.http.HttpServletResponse;
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@WebFilter(
value = "/@admin/",
value = "/@admin/*",
initParams = {
@WebInitParam(
name = "applicationClassName",

View File

@ -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);
}
}

View File

@ -19,6 +19,15 @@
package org.libreccm.ui.admin;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.repeater.RepeatingView;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import javax.enterprise.inject.Instance;
import javax.inject.Inject;
/**
*
@ -28,4 +37,31 @@ public class AdminPage extends WebPage {
private static final long serialVersionUID = 1L;
@Inject
private Instance<AdminPagesProvider> adminPages;
@SuppressWarnings("OverridableMethodCallInConstructor")
public AdminPage() {
super();
final List<AdminPageData> adminPagesData = adminPages
.stream()
.map(AdminPagesProvider::getAdminPagesData)
.flatMap(Collection::stream)
.sorted(
(page1, page2) -> Integer.compare(
page1.getPosition(), page2.getPosition()
)
)
.collect(Collectors.toList());
final RepeatingView adminPagesView = new RepeatingView("adminPages");
for (final AdminPageData adminPageData : adminPagesData) {
adminPagesView.add(
new Label(adminPagesView.newChildId(), adminPageData.getLabel())
);
}
add(adminPagesView);
}
}

View File

@ -0,0 +1,143 @@
/*
* 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 int position;
private final String label;
private final String description;
AdminPageData(
final String path,
final Class<? extends AdminPage> pageClass,
final int position,
final String label,
final String description
) {
this.path = path;
this.pageClass = pageClass;
this.position = position;
this.label = label;
this.description = description;
}
public String getPath() {
return path;
}
public Class<? extends AdminPage> getPageClass() {
return pageClass;
}
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 + 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 (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, "
+ "order = %d, "
+ "label = %s, "
+ "description = %s%s"
+ "}",
super.toString(),
path,
pageClass.getName(),
position,
label,
description,
data
);
}
}

View File

@ -0,0 +1,139 @@
/*
* 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.MissingPageDataException;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
public class AdminPageDataBuilder {
private String path;
private final Class<? extends AdminPage> pageClass;
private Integer position;
private ResourceBundle labelBundle;
private String labelKey;
private ResourceBundle descriptionBundle;
private String descriptionKey;
private AdminPageDataBuilder(final Class<? extends AdminPage> pageClass) {
this.pageClass = pageClass;
}
public AdminPageDataBuilder mountedTo(final String path) {
this.path = path;
return this;
}
public static AdminPageDataBuilder forPage(
final Class<? extends AdminPage> pageClass
) {
return new AdminPageDataBuilder(pageClass);
}
public AdminPageDataBuilder atPosition(final int position) {
this.position = position;
return this;
}
public AdminPageDataBuilder withLabel(
final ResourceBundle labelBundle, final String labelKey
) {
this.labelBundle = labelBundle;
this.labelKey = labelKey;
return this;
}
public AdminPageDataBuilder withDescription(
final ResourceBundle descriptionBundle, final String descriptionKey
) {
this.descriptionBundle = descriptionBundle;
this.descriptionKey = descriptionKey;
return this;
}
public AdminPageData build() {
if (path == null || path.isBlank()) {
throw new MissingPageDataException("Missing path for page.");
}
if (pageClass == null) {
throw new MissingPageDataException("Missing class for page.");
}
if (position == null) {
throw new MissingPageDataException("Missing position for page.");
}
if (labelBundle == null) {
throw new MissingPageDataException(
"Missing label bundle for page."
);
}
if (labelKey == null || labelKey.isBlank()) {
throw new MissingPageDataException("Missing label key for page.");
}
if (descriptionBundle == null) {
throw new MissingPageDataException(
"Missing description bundle for page."
);
}
if (descriptionKey == null || descriptionKey.isBlank()) {
throw new MissingPageDataException(
"Missing description key for page."
);
}
final String label = getLabelFromBundle();
final String description = getDescriptionFromBundle();
return new AdminPageData(path, pageClass, position, label, description);
}
private String getLabelFromBundle() {
try {
return labelBundle.getString(labelKey);
} catch(MissingResourceException ex) {
return labelKey;
}
}
private String getDescriptionFromBundle() {
try {
return descriptionBundle.getString(descriptionKey);
} catch(MissingResourceException ex) {
return descriptionKey;
}
}
}

View File

@ -0,0 +1,31 @@
/*
* 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.Set;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
public interface AdminPagesProvider {
Set<AdminPageData> getAdminPagesData();
}

View File

@ -0,0 +1,37 @@
/*
* 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>
*/
public class ApplicationsPage extends AdminPage {
private static final long serialVersionUID = 1L;
@SuppressWarnings("OverridableMethodCallInConstructor")
public ApplicationsPage() {
super();
add(new ApplicationsPanel("adminPanel"));
}
}

View File

@ -0,0 +1,37 @@
/*
* 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>
*/
public class CategoriesPage extends AdminPage {
private static final long serialVersionUID = 1L;
@SuppressWarnings("OverridableMethodCallInConstructor")
public CategoriesPage() {
super();
add(new CategoriesPanel("adminPanel"));
}
}

View File

@ -18,15 +18,26 @@
*/
package org.libreccm.ui.admin;
import org.apache.wicket.cdi.CdiConfiguration;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.protocol.http.WebApplication;
import java.util.Collection;
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 {
@Inject
private Instance<AdminPagesProvider> adminPages;
@Override
public Class<? extends WebPage> getHomePage() {
return DashboardPage.class;
@ -36,6 +47,30 @@ public class CcmAdmin extends WebApplication {
public void init() {
super.init();
// setConfigurationType(RuntimeConfigurationType.DEPLOYMENT);
final CdiConfiguration cdiConfiguration = new CdiConfiguration();
cdiConfiguration.configure(this);
final Set<AdminPageData> adminPagesData = adminPages
.stream()
.map(AdminPagesProvider::getAdminPagesData)
.flatMap(Collection::stream)
.collect(Collectors.toSet());
for (final AdminPageData adminPageData : adminPagesData) {
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);
}
}

View File

@ -0,0 +1,136 @@
/*
* 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.l10n.GlobalizationHelper;
import org.libreccm.ui.admin.usersgroupsroles.GroupsPage;
import org.libreccm.ui.admin.usersgroupsroles.RolesPage;
import org.libreccm.ui.admin.usersgroupsroles.UsersPage;
import java.util.ResourceBundle;
import java.util.Set;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@ApplicationScoped
public class CcmCoreAdminPages implements AdminPagesProvider {
@Inject
private GlobalizationHelper globalizationHelper;
@Override
public Set<AdminPageData> getAdminPagesData() {
final ResourceBundle adminBundle = ResourceBundle.getBundle(
"org.libreccm.ui.admin.AdminBundle",
globalizationHelper.getNegotiatedLocale()
);
return Set.of(
AdminPageDataBuilder
.forPage(ApplicationsPage.class)
.mountedTo("applications")
.atPosition(10)
.withLabel(adminBundle, "applications.label")
.withDescription(adminBundle, "applications.description")
.build(),
AdminPageDataBuilder
.forPage(CategoriesPage.class)
.mountedTo("categories")
.atPosition(20)
.withLabel(adminBundle, "categories.label")
.withDescription(adminBundle, "categories.description")
.build(),
AdminPageDataBuilder
.forPage(ConfigurationPage.class)
.mountedTo("configuration")
.atPosition(30)
.withLabel(adminBundle, "configuration.label")
.withDescription(adminBundle, "configuration.description")
.build(),
AdminPageDataBuilder
.forPage(ImExportPage.class)
.mountedTo("imexport")
.atPosition(40)
.withLabel(adminBundle, "imexport.label")
.withDescription(adminBundle, "imexport.description")
.build(),
AdminPageDataBuilder
.forPage(ConfigurationPage.class)
.mountedTo("pagemodels")
.atPosition(50)
.withLabel(adminBundle, "pagemodels.label")
.withDescription(adminBundle, "pagemodels.description")
.build(),
AdminPageDataBuilder
.forPage(SitesPage.class)
.mountedTo("sites")
.atPosition(60)
.withLabel(adminBundle, "sites.label")
.withDescription(adminBundle, "sites.description")
.build(),
AdminPageDataBuilder
.forPage(SystemInformationPage.class)
.mountedTo("systeminformation")
.atPosition(70)
.withLabel(adminBundle, "systeminformation.label")
.withDescription(adminBundle, "systeminformation.description")
.build(),
AdminPageDataBuilder
.forPage(UsersGroupsRolesPage.class)
.mountedTo("users-groups-roles")
.atPosition(80)
.withLabel(adminBundle, "usersGroupsRoles.label")
.withDescription(adminBundle, "usersGroupsRoles.description")
.build(),
AdminPageDataBuilder
.forPage(GroupsPage.class)
.mountedTo("users-groups-roles/groups")
.atPosition(90)
.withLabel(adminBundle, "usersGroupsRoles.groups.label")
.withDescription(
adminBundle, "usersGroupsRoles.groups.description"
)
.build(),
AdminPageDataBuilder
.forPage(RolesPage.class)
.mountedTo("users-groups-roles/roles")
.atPosition(100)
.withLabel(adminBundle, "usersGroupsRoles.roles.label")
.withDescription(
adminBundle, "usersGroupsRoles.roles.description"
)
.build(),
AdminPageDataBuilder
.forPage(UsersPage.class)
.mountedTo("users-groups-roles/users")
.atPosition(110)
.withLabel(adminBundle, "usersGroupsRoles.users.label")
.withDescription(
adminBundle, "usersGroupsRoles.users.description"
)
.build()
);
}
}

View File

@ -0,0 +1,37 @@
/*
* 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>
*/
public class ConfigurationPage extends AdminPage {
private static final long serialVersionUID = 1L;
@SuppressWarnings("OverridableMethodCallInConstructor")
public ConfigurationPage() {
super();
add(new ConfigurationPanel("adminPanel"));
}
}

View File

@ -18,6 +18,8 @@
*/
package org.libreccm.ui.admin;
import org.libreccm.ui.admin.dashboard.DashboardPanel;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
@ -28,8 +30,9 @@ public class DashboardPage extends AdminPage {
@SuppressWarnings("OverridableMethodCallInConstructor")
public DashboardPage() {
super();
// add(new Label("dashboardLabel", "CCM Admin Dashboard"));
add(new DashboardPanel("adminPanel"));
add(new DashboardPanel("adminPanel"));
}
}

View File

@ -0,0 +1,37 @@
/*
* 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>
*/
public class ImExportPage extends AdminPage {
private static final long serialVersionUID = 1L;
@SuppressWarnings("OverridableMethodCallInConstructor")
public ImExportPage() {
super();
add(new ImExportPanel("adminPanel"));
}
}

View File

@ -0,0 +1,37 @@
/*
* 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>
*/
public class PageModelsPage extends AdminPage {
private static final long serialVersionUID = 1L;
@SuppressWarnings("OverridableMethodCallInConstructor")
public PageModelsPage() {
super();
add(new PageModelsPanel("adminPanel"));
}
}

View File

@ -0,0 +1,37 @@
/*
* 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>
*/
public class SitesPage extends AdminPage {
private static final long serialVersionUID = 1L;
@SuppressWarnings("OverridableMethodCallInConstructor")
public SitesPage() {
super();
add(new SitesPanel("adminPanel"));
}
}

View File

@ -0,0 +1,37 @@
/*
* 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>
*/
public class SystemInformationPage extends AdminPage {
private static final long serialVersionUID = 1L;
@SuppressWarnings("OverridableMethodCallInConstructor")
public SystemInformationPage() {
super();
add(new SystemInformationPanel("adminPanel"));
}
}

View File

@ -0,0 +1,37 @@
/*
* 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>
*/
public class UsersGroupsRolesPage extends AdminPage {
private static final long serialVersionUID = 1L;
@SuppressWarnings("OverridableMethodCallInConstructor")
public UsersGroupsRolesPage() {
super();
add(new UsersGroupsRolesPanel("adminPanel"));
}
}

View File

@ -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"));
}
}

View File

@ -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"));
}
}

View File

@ -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"));
}
}

View File

@ -16,7 +16,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*/
package org.libreccm.ui.admin;
package org.libreccm.ui.admin.dashboard;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.panel.Panel;

View File

@ -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"));
}
}

View File

@ -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"));
}
}

View File

@ -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"));
}
}

View File

@ -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"));
}
}

View File

@ -0,0 +1,37 @@
/*
* 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.AdminPage;
import org.libreccm.ui.admin.usersgroupsroles.groups.GroupsPanel;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
public class GroupsPage extends AdminPage {
private static final long serialVersionUID = 1L;
@SuppressWarnings("OverridableMethodCallInConstructor")
public GroupsPage() {
add(new GroupsPanel("adminPanel"));
}
}

View File

@ -0,0 +1,37 @@
/*
* 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.AdminPage;
import org.libreccm.ui.admin.usersgroupsroles.roles.RolesPanel;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
public class RolesPage extends AdminPage {
private static final long serialVersionUID = 1L;
@SuppressWarnings("OverridableMethodCallInConstructor")
public RolesPage() {
add(new RolesPanel("adminPanel"));
}
}

View File

@ -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"));
}
}

View File

@ -0,0 +1,37 @@
/*
* 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.AdminPage;
import org.libreccm.ui.admin.usersgroupsroles.users.UsersPanel;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
public class UsersPage extends AdminPage {
private static final long serialVersionUID = 1L;
@SuppressWarnings("OverridableMethodCallInConstructor")
public UsersPage() {
add(new UsersPanel("adminPanel"));
}
}

View File

@ -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"));
}
}

View File

@ -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"));
}
}

View File

@ -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"));
}
}

View File

@ -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

View File

@ -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

View File

@ -5,6 +5,9 @@
<title>LibreCCM Admin</title>
</head>
<body>
<ul>
<li wicket:id="adminPages">[adminPageName]</li>
</ul>
<div wicket:id="adminPanel">[admin panel]</div>
</body>
</html>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>