Head Login as button with login logout popup

master
Markus Kreth 7 years ago
parent 51a30a69dc
commit afb71469d8
  1. 4
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/ClubhelperNavigation.java
  2. 49
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/HeadView.java
  3. 4
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainView.java
  4. 6
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainViewDesktop.java

@ -82,6 +82,10 @@ public class ClubhelperNavigation {
return this;
}
public void navigateTo(ClubhelperViews view) {
navigateTo(view.name());
}
@Override
public void navigateTo(String navigationState) {
ClubhelperViews byState = ClubhelperViews.byState(navigationState);

@ -58,7 +58,7 @@ public class HeadView extends HorizontalLayout {
private int monthItemId;
private Label personLabel;
private Button personLabel;
private final ClubNavigator navigator;
@ -76,13 +76,15 @@ public class HeadView extends HorizontalLayout {
monthName.setWidth(null);
Button popupButton = new Button(VaadinIcons.MENU);
popupButton.setId("calendar.menu");
popupButton.setId("head.menu");
popupButton.addClickListener(ev -> openPopupMenu(ev));
popupButton.setWidth(null);
personLabel = new Label();
personLabel.setStyleName("title_caption");
personLabel.addStyleName("bold-caption");
personLabel = new Button(VaadinIcons.USER);
personLabel.setId("head.user");
// personLabel.setStyleName("title_caption");
// personLabel.addStyleName("bold-caption");
personLabel.addClickListener(this::openPopupMenu);
this.addComponent(popupButton);
this.addComponent(monthName);
@ -118,21 +120,36 @@ public class HeadView extends HorizontalLayout {
Button button = ev.getButton();
ContextMenu contextMenu = new ContextMenu(button, true);
monthItemId = contextMenu.addItem("Export Monat", ev1 -> calendarExport(ev1)).getId();
contextMenu.addItem("Export Jahr", ev1 -> calendarExport(ev1));
if (securityVerifier.getLoggedinPerson() != null) {
if (securityVerifier.isPermitted(SecurityGroups.ADMIN, SecurityGroups.UEBUNGSLEITER)) {
switch (button.getId()) {
case "head.menu":
monthItemId = contextMenu.addItem("Export Monat", ev1 -> calendarExport(ev1)).getId();
contextMenu.addItem("Export Jahr", ev1 -> calendarExport(ev1));
if (securityVerifier.isLoggedin()
&& securityVerifier.isPermitted(SecurityGroups.ADMIN, SecurityGroups.UEBUNGSLEITER)) {
contextMenu.addItem("Personen verwalten",
ev1 -> navigator.navigateTo(ClubhelperViews.PersonEditView.name()));
}
contextMenu.addItem("Abmelden", ev1 -> {
securityVerifier.setLoggedinPerson(null);
navigator.navigateTo(ClubhelperViews.MainView.name());
});
} else {
contextMenu.addItem("Anmelden", ev1 -> navigator.navigateTo(ClubhelperViews.LoginUI.name()));
contextMenu.open(50, 50);
break;
case "head.user":
if (securityVerifier.getLoggedinPerson() != null) {
contextMenu.addItem("Abmelden", ev1 -> {
securityVerifier.setLoggedinPerson(null);
navigator.navigateTo(ClubhelperViews.MainView.name());
});
} else {
contextMenu.addItem("Anmelden", ev1 -> navigator.navigateTo(ClubhelperViews.LoginUI.name()));
}
int width = getUI().getPage().getBrowserWindowWidth();
contextMenu.open(width - 150, 50);
break;
default:
break;
}
contextMenu.open(50, 50);
}
private void calendarExport(MenuItem ev1) {

@ -53,7 +53,7 @@ public abstract class MainView extends VerticalLayout implements View {
if (securityVerifier.isLoggedin()) {
LOGGER.info("{} already initialized - opening Person View.", getClass().getName());
ClubEvent current = eventBusiness.getCurrent();
openPersonViewForEvent(current);
openDetailForEvent(current);
} else {
LOGGER.info("{} already initialized - but not loggedin.", getClass().getName());
detailClosed();
@ -88,7 +88,7 @@ public abstract class MainView extends VerticalLayout implements View {
eventView.setVisible(false);
}
public void openPersonViewForEvent(ClubEvent ev) {
public void openDetailForEvent(ClubEvent ev) {
LOGGER.debug("Opening detail view for {}", ev);
eventBusiness.setSelected(null);

@ -115,7 +115,7 @@ public class MainViewDesktop extends MainView {
ClubEvent ev = (ClubEvent) event.getCalendarItem();
if (securityVerifier.isLoggedin()) {
openPersonViewForEvent(ev);
openDetailForEvent(ev);
} else {
eventBusiness.setSelected(ev);
navigator.navigateTo(ClubhelperViews.LoginUI.name() + '/' + ev.getId());
@ -123,8 +123,8 @@ public class MainViewDesktop extends MainView {
}
@Override
public void openPersonViewForEvent(ClubEvent ev) {
super.openPersonViewForEvent(ev);
public void openDetailForEvent(ClubEvent ev) {
super.openDetailForEvent(ev);
mainLayout.addComponent(eastLayout);
mainLayout.setExpandRatio(eastLayout, 1f);

Loading…
Cancel
Save