Added nonlimiting limits

This commit is contained in:
Paul Luchyn 2016-11-21 16:55:32 +02:00
parent f812889057
commit 9dce4e47ce
6 changed files with 101 additions and 48 deletions

View file

@ -33,7 +33,6 @@ public interface ILimitsDAO extends IGenericDAO<Limits, Long> {
List<Limits> getAll();
Limits getUsersType();
Limits getLimitsByType(String type);
Limits getResourcesType();
}

View file

@ -19,6 +19,7 @@
package org.libreplan.business.common.daos;
import org.hibernate.criterion.Restrictions;
import org.libreplan.business.common.entities.Limits;
import org.springframework.stereotype.Repository;
@ -38,25 +39,14 @@ public class LimitsDAO extends GenericDAOHibernate<Limits, Long> implements ILim
return list(Limits.class);
}
@Override
public Limits getUsersType() {
List<Limits> list = list(Limits.class);
for (Limits item : list) {
if ("users".equals(item.getType())) {
return item;
}
}
return null;
}
@Override
public Limits getResourcesType() {
List<Limits> list = list(Limits.class);
for (Limits item : list) {
if ("workers+machines".equals(item.getType())) {
return item;
}
}
return null;
public Limits getLimitsByType(String type) {
return (Limits) getSession()
.createCriteria(Limits.class)
.add(Restrictions.eq("type", type))
.uniqueResult();
}
}

View file

@ -20,6 +20,7 @@
package org.libreplan.web.common;
import org.libreplan.business.common.daos.ILimitsDAO;
import org.libreplan.business.common.daos.LimitsDAO;
import org.libreplan.business.common.entities.Limits;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.BeanDefinition;
@ -39,6 +40,10 @@ import java.util.List;
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
public class LimitsModel implements ILimitsModel {
public static final String USER_LIMITS_TYPE = "users";
public static final String RESOURCES_LIMITS_TYPE = "workers+machines";
@Autowired
private ILimitsDAO limitsDAO;
@ -51,12 +56,13 @@ public class LimitsModel implements ILimitsModel {
@Override
@Transactional(readOnly = true)
public Limits getUsersType() {
return limitsDAO.getUsersType();
return limitsDAO.getLimitsByType(USER_LIMITS_TYPE);
}
@Override
@Transactional(readOnly = true)
public Limits getResourcesType() {
return limitsDAO.getResourcesType();
return limitsDAO.getLimitsByType(RESOURCES_LIMITS_TYPE);
}
}

View file

@ -584,26 +584,43 @@ public class MachineCRUDController extends BaseCRUDController<Machine> {
return machineModel.getMachine();
}
public boolean isCreateButtonDisabled(){
/**
* Should be public!
* Used in _listMachines.zul
*/
public boolean isCreateButtonDisabled() {
Limits resourcesTypeLimit = limitsModel.getResourcesType();
Integer resourcesCount = resourceDAO.getRowCount().intValue();
if ( resourcesTypeLimit != null )
if ( resourcesCount >= resourcesTypeLimit.getValue() )
return true;
return false;
if (isNullOrZeroValue(resourcesTypeLimit)) {
return false;
} else {
Integer resources = resourceDAO.getRowCount().intValue();
return resources >= resourcesTypeLimit.getValue();
}
}
/**
* Should be public!
* Used in _listMachines.zul
*/
public String getShowCreateFormLabel(){
Limits resourcesTypeLimit = limitsModel.getResourcesType();
Integer resourcesCount = resourceDAO.getRowCount().intValue();
int resourcesLeft = resourcesTypeLimit.getValue() - resourcesCount;
if ( resourcesCount >= resourcesTypeLimit.getValue() )
return _("Machines limit reached");
if (isNullOrZeroValue(resourcesTypeLimit)) {
return _("Create");
}
return _("Create") + " ( " + resourcesLeft + " " + _("left") + " )";
Integer resources = resourceDAO.getRowCount().intValue();
int resourcesLeft = resourcesTypeLimit.getValue() - resources;
return resources >= resourcesTypeLimit.getValue()
? _("Machines limit reached")
: _("Create") + " ( " + resourcesLeft + " " + _("left") + " )";
}
private boolean isNullOrZeroValue (Limits resourcesTypeLimit) {
return resourcesTypeLimit == null ||
resourcesTypeLimit.getValue() == null ||
resourcesTypeLimit.getValue().equals(0);
}
}

View file

@ -1114,22 +1114,43 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor
: "";
}
/**
* Should be public!
* Used in resources/worker/_list.zul
*/
public boolean isCreateButtonDisabled() {
Limits resourcesTypeLimit = limitsModel.getResourcesType();
Integer resourcesCount = resourceDAO.getRowCount().intValue();
return resourcesTypeLimit != null && resourcesCount >= resourcesTypeLimit.getValue();
if (isNullOrZeroValue(resourcesTypeLimit)) {
return false;
} else {
Integer resources = resourceDAO.getRowCount().intValue();
return resources >= resourcesTypeLimit.getValue();
}
}
/**
* Should be public!
* Used in resources/worker/_list.zul
*/
public String getShowCreateFormLabel() {
Limits resourcesTypeLimit = limitsModel.getResourcesType();
Integer resourcesCount = resourceDAO.getRowCount().intValue();
int resourcesLeft = resourcesTypeLimit.getValue() - resourcesCount;
if (resourcesCount >= resourcesTypeLimit.getValue())
return _("Workers limit reached");
if (isNullOrZeroValue(resourcesTypeLimit)) {
return _("Create");
}
return _("Create") + " ( " + resourcesLeft + " " + _("left") + " )";
Integer resources = resourceDAO.getRowCount().intValue();
int resourcesLeft = resourcesTypeLimit.getValue() - resources;
return resources >= resourcesTypeLimit.getValue()
? _("Workers limit reached")
: _("Create") + " ( " + resourcesLeft + " " + _("left") + " )";
}
private boolean isNullOrZeroValue (Limits resourcesTypeLimit) {
return resourcesTypeLimit == null ||
resourcesTypeLimit.getValue() == null ||
resourcesTypeLimit.getValue().equals(0);
}
}

View file

@ -440,10 +440,18 @@ public class UserCRUDController extends BaseCRUDController<User> implements IUse
}
}
/**
* Should be public!
* Used in _listUsers.zul
*/
public boolean isCreateButtonDisabled() {
Limits usersTypeLimit = limitsModel.getUsersType();
Integer usersCount = userModel.getRowCount().intValue();
return usersTypeLimit != null && usersCount >= usersTypeLimit.getValue();
if (isNullOrZeroValue(usersTypeLimit)) {
return false;
} else {
Integer users = userModel.getRowCount().intValue();
return users >= usersTypeLimit.getValue();
}
}
/**
@ -452,11 +460,23 @@ public class UserCRUDController extends BaseCRUDController<User> implements IUse
*/
public String getShowCreateFormLabel() {
Limits usersTypeLimit = limitsModel.getUsersType();
Integer usersCount = userModel.getRowCount().intValue();
int usersLeft = usersTypeLimit.getValue() - usersCount;
return usersCount >= usersTypeLimit.getValue()
if (isNullOrZeroValue(usersTypeLimit)) {
return _("Create");
}
Integer users = userModel.getRowCount().intValue();
int usersLeft = usersTypeLimit.getValue() - users;
return users >= usersTypeLimit.getValue()
? _("User limit reached")
: _("Create") + " ( " + usersLeft + " " + _("left") + " )";
}
private boolean isNullOrZeroValue (Limits usersTypeLimit) {
return usersTypeLimit == null ||
usersTypeLimit.getValue() == null ||
usersTypeLimit.getValue().equals(0);
}
}