CCM NG: Site Admin UI
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@5097 8810af33-2d31-482b-a856-94f89814c4df
parent
47ee7c1817
commit
fd7cda38ef
|
|
@ -65,7 +65,7 @@ class SitesController implements Serializable {
|
||||||
@Transactional(Transactional.TxType.REQUIRED)
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
protected boolean isUnique(final String domainOfSite) {
|
protected boolean isUnique(final String domainOfSite) {
|
||||||
|
|
||||||
return sitesRepo.findByDomain(domainOfSite).isPresent();
|
return !sitesRepo.findByDomain(domainOfSite).isPresent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(Transactional.TxType.REQUIRED)
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
|
|
||||||
|
|
@ -100,16 +100,14 @@ public class SitesForm extends Form {
|
||||||
domainOfSiteField.setLabel(new GlobalizedMessage(
|
domainOfSiteField.setLabel(new GlobalizedMessage(
|
||||||
"ui.admin.sites.domain_of_site",
|
"ui.admin.sites.domain_of_site",
|
||||||
ADMIN_BUNDLE));
|
ADMIN_BUNDLE));
|
||||||
domainOfSiteField
|
|
||||||
.addValidationListener(new NotEmptyValidationListener());
|
|
||||||
super.add(domainOfSiteField);
|
super.add(domainOfSiteField);
|
||||||
|
|
||||||
defaultSiteCheckbox = new CheckboxGroup(DEFAULT_SITE);
|
defaultSiteCheckbox = new CheckboxGroup(DEFAULT_SITE);
|
||||||
defaultSiteCheckbox.addOption(new Option("isDefault",
|
defaultSiteCheckbox
|
||||||
new Label(
|
.addOption(new Option("isDefault",
|
||||||
new GlobalizedMessage(
|
new Label(new GlobalizedMessage(
|
||||||
"ui.admin.sites.is_default_site",
|
"ui.admin.sites.is_default_site",
|
||||||
ADMIN_BUNDLE))));
|
ADMIN_BUNDLE))));
|
||||||
super.add(defaultSiteCheckbox);
|
super.add(defaultSiteCheckbox);
|
||||||
|
|
||||||
defaultThemeSelect = new SingleSelect(THEME_SELECT);
|
defaultThemeSelect = new SingleSelect(THEME_SELECT);
|
||||||
|
|
@ -157,6 +155,17 @@ public class SitesForm extends Form {
|
||||||
|
|
||||||
final String domainOfSite = data.getString(DOMAIN_OF_SITE);
|
final String domainOfSite = data.getString(DOMAIN_OF_SITE);
|
||||||
|
|
||||||
|
if (domainOfSite == null
|
||||||
|
|| domainOfSite.isEmpty()
|
||||||
|
|| domainOfSite.matches("\\s*")) {
|
||||||
|
|
||||||
|
data.addError(
|
||||||
|
DOMAIN_OF_SITE,
|
||||||
|
new GlobalizedMessage(
|
||||||
|
"ui.admin.sites.domain_of_site.error.empty",
|
||||||
|
ADMIN_BUNDLE));
|
||||||
|
}
|
||||||
|
|
||||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
final SitesController controller = cdiUtil
|
final SitesController controller = cdiUtil
|
||||||
.findBean(SitesController.class);
|
.findBean(SitesController.class);
|
||||||
|
|
@ -164,7 +173,7 @@ public class SitesForm extends Form {
|
||||||
data.addError(
|
data.addError(
|
||||||
DOMAIN_OF_SITE,
|
DOMAIN_OF_SITE,
|
||||||
new GlobalizedMessage(
|
new GlobalizedMessage(
|
||||||
"ui.admin.sites.domain_of_site.error.not:unique",
|
"ui.admin.sites.domain_of_site.error.not_unique",
|
||||||
ADMIN_BUNDLE));
|
ADMIN_BUNDLE));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -232,7 +241,11 @@ public class SitesForm extends Form {
|
||||||
if (selectedSiteIdStr == null || selectedSiteIdStr.isEmpty()) {
|
if (selectedSiteIdStr == null || selectedSiteIdStr.isEmpty()) {
|
||||||
site = new Site();
|
site = new Site();
|
||||||
site.setDomainOfSite(domainOfSite);
|
site.setDomainOfSite(domainOfSite);
|
||||||
site.setDefaultSite(defaultSite[0]);
|
if (defaultSite == null || defaultSite.length == 0) {
|
||||||
|
site.setDefaultSite(false);
|
||||||
|
} else {
|
||||||
|
site.setDefaultSite(defaultSite[0]);
|
||||||
|
}
|
||||||
site.setDefaultTheme(defaultTheme);
|
site.setDefaultTheme(defaultTheme);
|
||||||
} else {
|
} else {
|
||||||
site = siteRepo
|
site = siteRepo
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ import static com.arsdigita.ui.admin.AdminUiConstants.*;
|
||||||
public class SitesTab extends LayoutPanel {
|
public class SitesTab extends LayoutPanel {
|
||||||
|
|
||||||
private final ParameterSingleSelectionModel<String> selectedSiteId;
|
private final ParameterSingleSelectionModel<String> selectedSiteId;
|
||||||
|
private final ActionLink addNewSite;
|
||||||
private final SitesTable sitesTable;
|
private final SitesTable sitesTable;
|
||||||
private final SitesForm sitesForm;
|
private final SitesForm sitesForm;
|
||||||
|
|
||||||
|
|
@ -52,7 +53,7 @@ public class SitesTab extends LayoutPanel {
|
||||||
sitesTable = new SitesTable(this, selectedSiteId);
|
sitesTable = new SitesTable(this, selectedSiteId);
|
||||||
sitesForm = new SitesForm(this, selectedSiteId);
|
sitesForm = new SitesForm(this, selectedSiteId);
|
||||||
|
|
||||||
final ActionLink addNewSite = new ActionLink(new GlobalizedMessage(
|
addNewSite = new ActionLink(new GlobalizedMessage(
|
||||||
"ui.admin.sites.add_new_site_link",
|
"ui.admin.sites.add_new_site_link",
|
||||||
ADMIN_BUNDLE));
|
ADMIN_BUNDLE));
|
||||||
addNewSite
|
addNewSite
|
||||||
|
|
@ -76,16 +77,19 @@ public class SitesTab extends LayoutPanel {
|
||||||
|
|
||||||
page.addGlobalStateParam(selectedSiteId.getStateParameter());
|
page.addGlobalStateParam(selectedSiteId.getStateParameter());
|
||||||
|
|
||||||
|
page.setVisibleDefault(addNewSite, true);
|
||||||
page.setVisibleDefault(sitesTable, true);
|
page.setVisibleDefault(sitesTable, true);
|
||||||
page.setVisibleDefault(sitesForm, false);
|
page.setVisibleDefault(sitesForm, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void showSiteForm(final PageState state) {
|
protected void showSiteForm(final PageState state) {
|
||||||
|
addNewSite.setVisible(state, false);
|
||||||
sitesTable.setVisible(state, false);
|
sitesTable.setVisible(state, false);
|
||||||
sitesForm.setVisible(state, true);
|
sitesForm.setVisible(state, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void hideSiteForm(final PageState state) {
|
protected void hideSiteForm(final PageState state) {
|
||||||
|
addNewSite.setVisible(state, true);
|
||||||
sitesTable.setVisible(state, true);
|
sitesTable.setVisible(state, true);
|
||||||
sitesForm.setVisible(state, false);
|
sitesForm.setVisible(state, false);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -211,7 +211,7 @@ public class SitesTable extends Table {
|
||||||
|
|
||||||
switch (columnIndex) {
|
switch (columnIndex) {
|
||||||
case COL_SITE_DOMAIN:
|
case COL_SITE_DOMAIN:
|
||||||
return currentRow.getSiteId();
|
return currentRow.getDomainOfSite();
|
||||||
case COL_IS_DEFAULT_SITE:
|
case COL_IS_DEFAULT_SITE:
|
||||||
return currentRow.isDefaultSite();
|
return currentRow.isDefaultSite();
|
||||||
case COL_DEFAULT_THEME:
|
case COL_DEFAULT_THEME:
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ import org.libreccm.core.CoreConstants;
|
||||||
import org.libreccm.security.RequiresPrivilege;
|
import org.libreccm.security.RequiresPrivilege;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
import javax.enterprise.context.RequestScoped;
|
import javax.enterprise.context.RequestScoped;
|
||||||
import javax.persistence.NoResultException;
|
import javax.persistence.NoResultException;
|
||||||
|
|
@ -75,6 +76,7 @@ public class SiteRepository extends AbstractEntityRepository<Long, Site> {
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN)
|
@RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN)
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
@Override
|
@Override
|
||||||
public void save(final Site site) {
|
public void save(final Site site) {
|
||||||
super.save(site);
|
super.save(site);
|
||||||
|
|
@ -96,4 +98,9 @@ public class SiteRepository extends AbstractEntityRepository<Long, Site> {
|
||||||
return site.getObjectId() == 0;
|
return site.getObjectId() == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initNewEntity(final Site site) {
|
||||||
|
site.setUuid(UUID.randomUUID().toString());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -625,3 +625,9 @@ ui.admin.sites.table.columns.applications.header=Applications
|
||||||
ui.admin.sites.table.columns.delete.header=Delete
|
ui.admin.sites.table.columns.delete.header=Delete
|
||||||
ui.admin.sites.delete.confirm=Are you sure to delete this site?
|
ui.admin.sites.delete.confirm=Are you sure to delete this site?
|
||||||
ui.admin.sites.table.columns.remove.label=Delete
|
ui.admin.sites.table.columns.remove.label=Delete
|
||||||
|
ui.admin.sites.create_new=Create new site
|
||||||
|
ui.admin.sites.edit=Edit Site
|
||||||
|
ui.admin.sites.domain_of_site=Domain of Site
|
||||||
|
ui.admin.sites.is_default_site=Is default site?
|
||||||
|
ui.admin.sites.domain_of_site.error.not_unique=The domain of the Site is not unique.
|
||||||
|
ui.admin.sites.domain_of_site.error.empty=The domain of a Site can't be empty.
|
||||||
|
|
|
||||||
|
|
@ -629,3 +629,9 @@ ui.admin.sites.table.columns.applications.header=Applications
|
||||||
ui.admin.sites.table.columns.delete.header=L\u00f6schen
|
ui.admin.sites.table.columns.delete.header=L\u00f6schen
|
||||||
ui.admin.sites.delete.confirm=Sind Sie sicher, dass Sie diese Site l\u00f6schen wollen?
|
ui.admin.sites.delete.confirm=Sind Sie sicher, dass Sie diese Site l\u00f6schen wollen?
|
||||||
ui.admin.sites.table.columns.remove.label=L\u00f6schen
|
ui.admin.sites.table.columns.remove.label=L\u00f6schen
|
||||||
|
ui.admin.sites.create_new=Neue Site anlegen
|
||||||
|
ui.admin.sites.edit=Seite bearbeiten
|
||||||
|
ui.admin.sites.domain_of_site=Domain der Site
|
||||||
|
ui.admin.sites.is_default_site=Ist Standard Site?
|
||||||
|
ui.admin.sites.domain_of_site.error.not_unique=Die Domain der Site ist nicht eindeutig.
|
||||||
|
ui.admin.sites.domain_of_site.error.empty=The Domain einer Site darf nicht leer sein.
|
||||||
|
|
|
||||||
|
|
@ -622,3 +622,9 @@ ui.admin.sites.table.columns.applications.header=Applications
|
||||||
ui.admin.sites.table.columns.delete.header=Delete
|
ui.admin.sites.table.columns.delete.header=Delete
|
||||||
ui.admin.sites.delete.confirm=Are you sure to delete this site?
|
ui.admin.sites.delete.confirm=Are you sure to delete this site?
|
||||||
ui.admin.sites.table.columns.remove.label=Delete
|
ui.admin.sites.table.columns.remove.label=Delete
|
||||||
|
ui.admin.sites.create_new=Create new site
|
||||||
|
ui.admin.sites.edit=Edit Site
|
||||||
|
ui.admin.sites.domain_of_site=Domain of Site
|
||||||
|
ui.admin.sites.is_default_site=Is default site?
|
||||||
|
ui.admin.sites.domain_of_site.error.not_unique=The domain of the Site is not unique.
|
||||||
|
ui.admin.sites.domain_of_site.error.empty=The domain of a Site can't be empty.
|
||||||
|
|
|
||||||
|
|
@ -613,3 +613,9 @@ ui.admin.sites.table.columns.applications.header=Applications
|
||||||
ui.admin.sites.table.columns.delete.header=Delete
|
ui.admin.sites.table.columns.delete.header=Delete
|
||||||
ui.admin.sites.delete.confirm=Are you sure to delete this site?
|
ui.admin.sites.delete.confirm=Are you sure to delete this site?
|
||||||
ui.admin.sites.table.columns.remove.label=Delete
|
ui.admin.sites.table.columns.remove.label=Delete
|
||||||
|
ui.admin.sites.create_new=Create new site
|
||||||
|
ui.admin.sites.edit=Edit Site
|
||||||
|
ui.admin.sites.domain_of_site=Domain of Site
|
||||||
|
ui.admin.sites.is_default_site=Is default site?
|
||||||
|
ui.admin.sites.domain_of_site.error.not_unique=The domain of the Site is not unique.
|
||||||
|
ui.admin.sites.domain_of_site.error.empty=The domain of a Site can't be empty.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue