Added nonlimiting limits
This commit is contained in:
parent
f812889057
commit
9dce4e47ce
6 changed files with 101 additions and 48 deletions
|
|
@ -33,7 +33,6 @@ public interface ILimitsDAO extends IGenericDAO<Limits, Long> {
|
|||
|
||||
List<Limits> getAll();
|
||||
|
||||
Limits getUsersType();
|
||||
Limits getLimitsByType(String type);
|
||||
|
||||
Limits getResourcesType();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue