CCM NG: SitesAdmin for Vaadin prototype
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@5102 8810af33-2d31-482b-a856-94f89814c4dfccm-docs
parent
4d36e31f65
commit
f75a207c97
|
|
@ -26,14 +26,18 @@ import com.vaadin.ui.CheckBox;
|
|||
import com.vaadin.ui.FormLayout;
|
||||
import com.vaadin.ui.HorizontalLayout;
|
||||
import com.vaadin.ui.NativeSelect;
|
||||
import com.vaadin.ui.Notification;
|
||||
import com.vaadin.ui.TextField;
|
||||
import com.vaadin.ui.UI;
|
||||
import com.vaadin.ui.VerticalLayout;
|
||||
import com.vaadin.ui.Window;
|
||||
import com.vaadin.ui.themes.ValoTheme;
|
||||
import org.libreccm.l10n.LocalizedTextsUtil;
|
||||
import org.libreccm.sites.Site;
|
||||
import org.libreccm.theming.ThemeInfo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
|
|
@ -47,12 +51,14 @@ class SiteEditor extends Window {
|
|||
private final Site site;
|
||||
private final AdminViewController controller;
|
||||
|
||||
private final boolean isNewSite;
|
||||
private boolean dataHasChanged = false;
|
||||
|
||||
public SiteEditor(final AdminViewController controller) {
|
||||
super();
|
||||
|
||||
this.site = null;
|
||||
this.site = new Site();
|
||||
isNewSite = true;
|
||||
this.controller = controller;
|
||||
|
||||
addWidgets();
|
||||
|
|
@ -63,6 +69,7 @@ class SiteEditor extends Window {
|
|||
super();
|
||||
|
||||
this.site = site;
|
||||
isNewSite = false;
|
||||
this.controller = controller;
|
||||
|
||||
addWidgets();
|
||||
|
|
@ -82,12 +89,14 @@ class SiteEditor extends Window {
|
|||
|
||||
final TextField domainOfSiteField = new TextField(
|
||||
adminTextsUtil.getText("ui.admin.sites.domain_of_site"));
|
||||
domainOfSiteField.setValue(site.getDomainOfSite());
|
||||
domainOfSiteField.addValueChangeListener(event -> {
|
||||
dataHasChanged = true;
|
||||
});
|
||||
|
||||
final CheckBox isDefaultSiteCheckBox = new CheckBox(
|
||||
adminTextsUtil.getText("ui.admin.sites.is_default_site"));
|
||||
isDefaultSiteCheckBox.setValue(site.isDefaultSite());
|
||||
isDefaultSiteCheckBox.addValueChangeListener(event -> {
|
||||
dataHasChanged = true;
|
||||
});
|
||||
|
|
@ -102,6 +111,7 @@ class SiteEditor extends Window {
|
|||
|
||||
final NativeSelect<String> defaultThemeSelect = new NativeSelect<>(
|
||||
adminTextsUtil.getText("ui.admin.sites.default_theme"), themes);
|
||||
defaultThemeSelect.setValue(site.getDefaultTheme());
|
||||
defaultThemeSelect.addValueChangeListener(event -> {
|
||||
dataHasChanged = true;
|
||||
});
|
||||
|
|
@ -114,6 +124,7 @@ class SiteEditor extends Window {
|
|||
saveButton.setCaption(adminTextsUtil.getText(
|
||||
"ui.admin.sites.buttons.save.changed"));
|
||||
}
|
||||
saveButton.addStyleName(ValoTheme.BUTTON_PRIMARY);
|
||||
saveButton.addClickListener(event -> {
|
||||
if (dataHasChanged) {
|
||||
|
||||
|
|
@ -128,7 +139,9 @@ class SiteEditor extends Window {
|
|||
return;
|
||||
}
|
||||
|
||||
if (!controller.getSitesController().isUnique(domainOfSite)) {
|
||||
if (!controller.getSitesController().isUnique(domainOfSite)
|
||||
&& (!Objects.equals(site.getDomainOfSite(),
|
||||
domainOfSiteField.getValue()))) {
|
||||
domainOfSiteField.setComponentError(new UserError(
|
||||
adminTextsUtil.getText(
|
||||
"ui.admin.sites.domain_of_site.error.not_unique")));
|
||||
|
|
@ -148,6 +161,17 @@ class SiteEditor extends Window {
|
|||
.getSitesTableDataProvider()
|
||||
.refreshAll();
|
||||
close();
|
||||
if (isNewSite) {
|
||||
Notification.show(adminTextsUtil
|
||||
.getText("ui.admin.sites.created_new_site",
|
||||
new Object[]{domainOfSite}),
|
||||
Notification.Type.TRAY_NOTIFICATION);
|
||||
} else {
|
||||
Notification.show(adminTextsUtil
|
||||
.getText("ui.admin.sites.save_changes",
|
||||
new Object[]{domainOfSite}),
|
||||
Notification.Type.TRAY_NOTIFICATION);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -27,11 +27,11 @@ import com.vaadin.ui.CustomComponent;
|
|||
import com.vaadin.ui.Grid;
|
||||
import com.vaadin.ui.HorizontalLayout;
|
||||
import com.vaadin.ui.Label;
|
||||
import com.vaadin.ui.Notification;
|
||||
import com.vaadin.ui.UI;
|
||||
import com.vaadin.ui.components.grid.HeaderCell;
|
||||
import com.vaadin.ui.components.grid.HeaderRow;
|
||||
import com.vaadin.ui.themes.ValoTheme;
|
||||
import org.libreccm.cdi.utils.CdiUtil;
|
||||
import org.libreccm.l10n.LocalizedTextsUtil;
|
||||
import org.libreccm.sites.Site;
|
||||
import org.libreccm.ui.ConfirmDialog;
|
||||
|
|
@ -115,9 +115,10 @@ class SitesTab extends CustomComponent {
|
|||
sitesGrid
|
||||
.addComponentColumn(row -> {
|
||||
if (row.isDeletable()) {
|
||||
final Button deleteButton = new Button(adminTextsUtil
|
||||
final Button deleteButton = new Button(
|
||||
adminTextsUtil
|
||||
.getText("ui.admin.sites.table.buttons.delete"),
|
||||
VaadinIcons.EDIT);
|
||||
VaadinIcons.MINUS_CIRCLE_O);
|
||||
deleteButton.addClickListener(event -> {
|
||||
|
||||
final ConfirmDialog dialog = new ConfirmDialog(() -> {
|
||||
|
|
@ -125,8 +126,18 @@ class SitesTab extends CustomComponent {
|
|||
.getSitesController()
|
||||
.delete(row.getSiteId());
|
||||
|
||||
Notification.show(adminTextsUtil
|
||||
.getText("ui.admin.sites.site_deleted",
|
||||
new Object[]{row.getDomainOfSite()}),
|
||||
Notification.Type.TRAY_NOTIFICATION);
|
||||
return null;
|
||||
});
|
||||
dialog.setMessage(adminTextsUtil
|
||||
.getText("ui.admin.sites.site_delete.confirm",
|
||||
new Object[]{row.getDomainOfSite()}));
|
||||
dialog.setModal(true);
|
||||
dialog.center();
|
||||
UI.getCurrent().addWindow(dialog);
|
||||
});
|
||||
deleteButton.addStyleNames(ValoTheme.BUTTON_TINY,
|
||||
ValoTheme.BUTTON_DANGER);
|
||||
|
|
|
|||
|
|
@ -47,7 +47,6 @@ public class ConfirmDialog extends Window {
|
|||
|
||||
this.confirmedAction = confirmedAction;
|
||||
this.cancelAction = () -> {
|
||||
close();
|
||||
return null;
|
||||
};
|
||||
addWidgets();
|
||||
|
|
@ -70,6 +69,7 @@ public class ConfirmDialog extends Window {
|
|||
confirmButton.addClickListener(event -> {
|
||||
try {
|
||||
confirmedAction.call();
|
||||
close();
|
||||
} catch (Exception ex) {
|
||||
throw new UnexpectedErrorException(ex);
|
||||
}
|
||||
|
|
@ -79,6 +79,7 @@ public class ConfirmDialog extends Window {
|
|||
cancelButton.addClickListener(event -> {
|
||||
try {
|
||||
cancelAction.call();
|
||||
close();
|
||||
} catch (Exception ex) {
|
||||
throw new UnexpectedErrorException(ex);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -633,3 +633,11 @@ ui.admin.sites.domain_of_site.error.not_unique=The domain of the Site is not uni
|
|||
ui.admin.sites.domain_of_site.error.empty=The domain of a Site can't be empty.
|
||||
ui.admin.sites.table.buttons.edit=Edit
|
||||
ui.admin.sites.table.buttons.delete=Delete
|
||||
ui.admin.sites.default_theme=Theme
|
||||
ui.admin.sites.buttons.save.create=Create Site
|
||||
ui.admin.sites.buttons.save.changed=Save
|
||||
ui.admin.sites.buttons.cancel=Cancel
|
||||
ui.admin.sites.created_new_site=Create new site "{0}"
|
||||
ui.admin.sites.saved_changes=Saved changes to site "{0}"
|
||||
ui.admin.sites.site_deleted=Site "{0}" deleted
|
||||
ui.admin.sites.site_delete.confirm=Are you sure to delete Site "{0}"?
|
||||
|
|
|
|||
|
|
@ -637,3 +637,11 @@ ui.admin.sites.domain_of_site.error.not_unique=Die Domain der Site ist nicht ein
|
|||
ui.admin.sites.domain_of_site.error.empty=The Domain einer Site darf nicht leer sein.
|
||||
ui.admin.sites.table.buttons.edit=Bearbeiten
|
||||
ui.admin.sites.table.buttons.delete=L\u00f6schen
|
||||
ui.admin.sites.default_theme=Theme
|
||||
ui.admin.sites.buttons.save.create=Site anlegen
|
||||
ui.admin.sites.buttons.save.changed=Speichern
|
||||
ui.admin.sites.buttons.cancel=Abbrechen
|
||||
ui.admin.sites.created_new_site=Neue Site "{0}" angelegt
|
||||
ui.admin.sites.saved_changes=\u00c4nderungen an Seite "{0}" gespeichert
|
||||
ui.admin.sites.site_deleted=Site "{0}" gel\u00f6scht
|
||||
ui.admin.sites.site_delete.confirm=Sind Sie sicher, dass Sie die Site "{0}" l\u00f6schen wollen?
|
||||
|
|
|
|||
|
|
@ -630,3 +630,11 @@ ui.admin.sites.domain_of_site.error.not_unique=The domain of the Site is not uni
|
|||
ui.admin.sites.domain_of_site.error.empty=The domain of a Site can't be empty.
|
||||
ui.admin.sites.table.buttons.edit=Edit
|
||||
ui.admin.sites.table.buttons.delete=Delete
|
||||
ui.admin.sites.default_theme=Theme\t
|
||||
ui.admin.sites.buttons.save.create=Create Site
|
||||
ui.admin.sites.buttons.save.changed=Save
|
||||
ui.admin.sites.buttons.cancel=Cancel
|
||||
ui.admin.sites.created_new_site=Create new site "{0}"
|
||||
ui.admin.sites.saved_changes=Saved changes to site "{0}"
|
||||
ui.admin.sites.site_deleted=Site "{0}" deleted
|
||||
ui.admin.sites.site_delete.confirm=Are you sure to delete Site "{0}"?
|
||||
|
|
|
|||
|
|
@ -621,3 +621,11 @@ ui.admin.sites.domain_of_site.error.not_unique=The domain of the Site is not uni
|
|||
ui.admin.sites.domain_of_site.error.empty=The domain of a Site can't be empty.
|
||||
ui.admin.sites.table.buttons.edit=Edit
|
||||
ui.admin.sites.table.buttons.delete=Delete
|
||||
ui.admin.sites.default_theme=Theme\t
|
||||
ui.admin.sites.buttons.save.create=Create Site
|
||||
ui.admin.sites.buttons.save.changed=Save
|
||||
ui.admin.sites.buttons.cancel=Cancel
|
||||
ui.admin.sites.created_new_site=Create new site "{0}"
|
||||
ui.admin.sites.saved_changes=Saved changes to site "{0}"
|
||||
ui.admin.sites.site_deleted=Site "{0}" deleted
|
||||
ui.admin.sites.site_delete.confirm=Are you sure to delete Site "{0}"?
|
||||
|
|
|
|||
Loading…
Reference in New Issue