[Admin Tools | log4j2]: Allow curators with profile to be invisible in the Gateway | Dynamically align custom menu.
1. Curator.java & CuratorResponse.java: Added field private boolean visible = true; to allow curators have a profile but not be visible in the Gateway. 2. CuratorService.java: In method "getCurators()" called by /{pid}/curator, return curators that have a profile and the profile is visible. 3. MenuAlignment.java: Enum created for menu alignment options. 4. Menu.java & MenuFull.java: Added field public MenuAlignment featuredAlignment = MenuAlignment.CENTER; to allow dynamic alignment of the Gateway custom menu. 5. MenuController.java: Added api method "alignMenu()" (/community/{pid}/menu/align), to change alignment of the custom menu. 6. MenuService.java: Added method "alignMenu()" | Set featuredAlignment field (default to "CENTER").
This commit is contained in:
parent
22d010c096
commit
4f62befa74
|
@ -1,9 +1,6 @@
|
||||||
package eu.dnetlib.uoaadmintools.controllers;
|
package eu.dnetlib.uoaadmintools.controllers;
|
||||||
|
|
||||||
import eu.dnetlib.uoaadmintools.entities.menu.Menu;
|
import eu.dnetlib.uoaadmintools.entities.menu.*;
|
||||||
import eu.dnetlib.uoaadmintools.entities.menu.MenuFull;
|
|
||||||
import eu.dnetlib.uoaadmintools.entities.menu.MenuItem;
|
|
||||||
import eu.dnetlib.uoaadmintools.entities.menu.MenuItemFull;
|
|
||||||
import eu.dnetlib.uoaadmintools.services.MenuService;
|
import eu.dnetlib.uoaadmintools.services.MenuService;
|
||||||
import eu.dnetlib.uoaadmintoolslibrary.dao.PortalDAO;
|
import eu.dnetlib.uoaadmintoolslibrary.dao.PortalDAO;
|
||||||
import eu.dnetlib.uoaadmintoolslibrary.entities.Portal;
|
import eu.dnetlib.uoaadmintoolslibrary.entities.Portal;
|
||||||
|
@ -209,4 +206,13 @@ public class MenuController {
|
||||||
public Menu toggleMenu(@PathVariable(value = "pid") String pid, @RequestParam String status, @RequestParam(value="featured", required=false) String isFeatured) throws Exception {
|
public Menu toggleMenu(@PathVariable(value = "pid") String pid, @RequestParam String status, @RequestParam(value="featured", required=false) String isFeatured) throws Exception {
|
||||||
return menuService.toggleMenu(pid, status, isFeatured);
|
return menuService.toggleMenu(pid, status, isFeatured);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PreAuthorize("hasAnyAuthority(" +
|
||||||
|
"@AuthorizationService.PORTAL_ADMIN, " +
|
||||||
|
"@AuthorizationService.curator('community')," +
|
||||||
|
"@AuthorizationService.manager('community', #pid))")
|
||||||
|
@RequestMapping(value = {"/community/{pid}/menu/align"}, method = RequestMethod.POST)
|
||||||
|
public Menu alignMenu(@PathVariable(value = "pid") String pid, @RequestParam String alignment) throws Exception {
|
||||||
|
return menuService.alignMenu(pid, alignment);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ public class Curator {
|
||||||
private List<Affiliation> affiliations;
|
private List<Affiliation> affiliations;
|
||||||
private String photo;
|
private String photo;
|
||||||
private String bio;
|
private String bio;
|
||||||
|
private boolean visible = true;
|
||||||
|
|
||||||
public Curator() {}
|
public Curator() {}
|
||||||
|
|
||||||
|
@ -66,4 +67,12 @@ public class Curator {
|
||||||
public void setBio(String bio) {
|
public void setBio(String bio) {
|
||||||
this.bio = bio;
|
this.bio = bio;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isVisible() {
|
||||||
|
return visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVisible(boolean visible) {
|
||||||
|
this.visible = visible;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ public class CuratorResponse {
|
||||||
private List<Affiliation> affiliations;
|
private List<Affiliation> affiliations;
|
||||||
private String photo;
|
private String photo;
|
||||||
private String bio;
|
private String bio;
|
||||||
|
private boolean visible = true;
|
||||||
|
|
||||||
public CuratorResponse() {
|
public CuratorResponse() {
|
||||||
}
|
}
|
||||||
|
@ -52,4 +53,12 @@ public class CuratorResponse {
|
||||||
public void setBio(String bio) {
|
public void setBio(String bio) {
|
||||||
this.bio = bio;
|
this.bio = bio;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isVisible() {
|
||||||
|
return visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVisible(boolean visible) {
|
||||||
|
this.visible = visible;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ public class Menu {
|
||||||
public boolean isMenuEnabled;
|
public boolean isMenuEnabled;
|
||||||
public List<String> featuredMenuItems;
|
public List<String> featuredMenuItems;
|
||||||
public List<String> menuItems;
|
public List<String> menuItems;
|
||||||
|
public MenuAlignment featuredAlignment = MenuAlignment.CENTER;
|
||||||
|
|
||||||
public Menu(String portalPid) {
|
public Menu(String portalPid) {
|
||||||
this.setPortalPid(portalPid);
|
this.setPortalPid(portalPid);
|
||||||
|
@ -21,6 +22,7 @@ public class Menu {
|
||||||
this.setFeaturedMenuEnabled(true);
|
this.setFeaturedMenuEnabled(true);
|
||||||
this.setMenuItems(new ArrayList<>());
|
this.setMenuItems(new ArrayList<>());
|
||||||
this.setFeaturedMenuItems(new ArrayList<>());
|
this.setFeaturedMenuItems(new ArrayList<>());
|
||||||
|
this.setFeaturedAlignment(MenuAlignment.CENTER.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPortalPid() {
|
public String getPortalPid() {
|
||||||
|
@ -62,4 +64,20 @@ public class Menu {
|
||||||
public void setMenuItems(List<String> menuItems) {
|
public void setMenuItems(List<String> menuItems) {
|
||||||
this.menuItems = menuItems;
|
this.menuItems = menuItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getFeaturedAlignment() {
|
||||||
|
if(featuredAlignment == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return featuredAlignment.name();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFeaturedAlignment(String featuredAlignment) {
|
||||||
|
if(featuredAlignment == null) {
|
||||||
|
this.featuredAlignment = null;
|
||||||
|
} else {
|
||||||
|
MenuAlignment alignment = MenuAlignment.valueOf(featuredAlignment);
|
||||||
|
this.featuredAlignment = alignment;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
package eu.dnetlib.uoaadmintools.entities.menu;
|
||||||
|
|
||||||
|
public enum MenuAlignment {
|
||||||
|
LEFT, CENTER, RIGHT
|
||||||
|
}
|
|
@ -8,6 +8,7 @@ public class MenuFull {
|
||||||
public boolean isMenuEnabled;
|
public boolean isMenuEnabled;
|
||||||
public List<MenuItemFull> featuredMenuItems;
|
public List<MenuItemFull> featuredMenuItems;
|
||||||
public List<MenuItemFull> menuItems;
|
public List<MenuItemFull> menuItems;
|
||||||
|
public MenuAlignment featuredAlignment = MenuAlignment.CENTER;
|
||||||
|
|
||||||
public String getPortalPid() {
|
public String getPortalPid() {
|
||||||
return portalPid;
|
return portalPid;
|
||||||
|
@ -48,4 +49,20 @@ public class MenuFull {
|
||||||
public void setMenuItems(List<MenuItemFull> menuItems) {
|
public void setMenuItems(List<MenuItemFull> menuItems) {
|
||||||
this.menuItems = menuItems;
|
this.menuItems = menuItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getFeaturedAlignment() {
|
||||||
|
if(featuredAlignment == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return featuredAlignment.name();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFeaturedAlignment(String featuredAlignment) {
|
||||||
|
if(featuredAlignment == null) {
|
||||||
|
this.featuredAlignment = null;
|
||||||
|
} else {
|
||||||
|
MenuAlignment alignment = MenuAlignment.valueOf(featuredAlignment);
|
||||||
|
this.featuredAlignment = alignment;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,7 @@ public class CuratorService {
|
||||||
List<CuratorResponse> curators = new ArrayList<>();
|
List<CuratorResponse> curators = new ArrayList<>();
|
||||||
for (Manager manager : managerService.getManagers(pid, ManagerService.Type.ID)) {
|
for (Manager manager : managerService.getManagers(pid, ManagerService.Type.ID)) {
|
||||||
Curator curator = curatorDAO.findById(parseId(manager.getId()));
|
Curator curator = curatorDAO.findById(parseId(manager.getId()));
|
||||||
if (curator != null) {
|
if (curator != null && curator.isVisible()) {
|
||||||
curators.add(new CuratorResponse(curator));
|
curators.add(new CuratorResponse(curator));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,10 +2,7 @@ package eu.dnetlib.uoaadmintools.services;
|
||||||
|
|
||||||
import eu.dnetlib.uoaadmintools.dao.MenuDAO;
|
import eu.dnetlib.uoaadmintools.dao.MenuDAO;
|
||||||
import eu.dnetlib.uoaadmintools.dao.MenuItemDAO;
|
import eu.dnetlib.uoaadmintools.dao.MenuItemDAO;
|
||||||
import eu.dnetlib.uoaadmintools.entities.menu.Menu;
|
import eu.dnetlib.uoaadmintools.entities.menu.*;
|
||||||
import eu.dnetlib.uoaadmintools.entities.menu.MenuFull;
|
|
||||||
import eu.dnetlib.uoaadmintools.entities.menu.MenuItem;
|
|
||||||
import eu.dnetlib.uoaadmintools.entities.menu.MenuItemFull;
|
|
||||||
import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException;
|
import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException;
|
||||||
import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException;
|
import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
@ -86,6 +83,7 @@ public class MenuService {
|
||||||
if(menu == null) {
|
if(menu == null) {
|
||||||
menuFull.setFeaturedMenuEnabled(true);
|
menuFull.setFeaturedMenuEnabled(true);
|
||||||
menuFull.setMenuEnabled(true);
|
menuFull.setMenuEnabled(true);
|
||||||
|
menuFull.setFeaturedAlignment(MenuAlignment.CENTER.name());
|
||||||
} else {
|
} else {
|
||||||
for (String menuItemId : menu.getFeaturedMenuItems()) {
|
for (String menuItemId : menu.getFeaturedMenuItems()) {
|
||||||
featuredMenuItems.add(getFullRootMenuItemById(menuItemId, portalPid, true));
|
featuredMenuItems.add(getFullRootMenuItemById(menuItemId, portalPid, true));
|
||||||
|
@ -97,6 +95,7 @@ public class MenuService {
|
||||||
|
|
||||||
menuFull.setFeaturedMenuEnabled(menu.getIsFeaturedMenuEnabled());
|
menuFull.setFeaturedMenuEnabled(menu.getIsFeaturedMenuEnabled());
|
||||||
menuFull.setMenuEnabled(menu.getIsMenuEnabled());
|
menuFull.setMenuEnabled(menu.getIsMenuEnabled());
|
||||||
|
menuFull.setFeaturedAlignment(menu.getFeaturedAlignment());
|
||||||
}
|
}
|
||||||
|
|
||||||
menuFull.setPortalPid(portalPid);
|
menuFull.setPortalPid(portalPid);
|
||||||
|
@ -366,4 +365,11 @@ public class MenuService {
|
||||||
}
|
}
|
||||||
return menuDAO.save(menu);
|
return menuDAO.save(menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Menu alignMenu(String pid, String alignment) {
|
||||||
|
Menu menu = menuDAO.findByPortalPid(pid);
|
||||||
|
menu.setFeaturedAlignment(alignment);
|
||||||
|
|
||||||
|
return menuDAO.save(menu);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue