Skip to content
Snippets Groups Projects
Commit fc304a84 authored by srosse's avatar srosse
Browse files

OO-4621: count permanent meeting as infinite meeting for quota

parent 8288a25a
No related branches found
No related tags found
No related merge requests found
...@@ -174,6 +174,8 @@ public class BigBlueButtonMeetingDAO { ...@@ -174,6 +174,8 @@ public class BigBlueButtonMeetingDAO {
.append(" (meeting.startDate>=:startDate and meeting.endDate<=:endDate)") .append(" (meeting.startDate>=:startDate and meeting.endDate<=:endDate)")
.append(" or") .append(" or")
.append(" (meeting.startDate<=:startDate and meeting.endDate>=:endDate)") .append(" (meeting.startDate<=:startDate and meeting.endDate>=:endDate)")
.append(" or")
.append(" meeting.permanent=true")
.append(")"); .append(")");
return dbInstance.getCurrentEntityManager() return dbInstance.getCurrentEntityManager()
.createQuery(sb.toString(), Long.class) .createQuery(sb.toString(), Long.class)
......
...@@ -199,6 +199,7 @@ public class EditBigBlueButtonMeetingController extends FormBasicController { ...@@ -199,6 +199,7 @@ public class EditBigBlueButtonMeetingController extends FormBasicController {
private void updateUI() { private void updateUI() {
boolean permanent = permanentEl.isAtLeastSelected(1); boolean permanent = permanentEl.isAtLeastSelected(1);
permanentEl.clearError();
startDateEl.setVisible(!permanent); startDateEl.setVisible(!permanent);
leadTimeEl.setVisible(!permanent); leadTimeEl.setVisible(!permanent);
endDateEl.setVisible(!permanent); endDateEl.setVisible(!permanent);
...@@ -288,9 +289,14 @@ public class EditBigBlueButtonMeetingController extends FormBasicController { ...@@ -288,9 +289,14 @@ public class EditBigBlueButtonMeetingController extends FormBasicController {
} }
// dates ok // dates ok
if(allOk && (!permanentEl.isVisible() || !permanentEl.isAtLeastSelected(1))) { permanentEl.clearError();
allOk &= validateDuration(); if(allOk) {
allOk &= validateSlot(); if(permanentEl.isVisible() && permanentEl.isAtLeastSelected(1)) {
allOk &= validatePermanentSlot();
} else {
allOk &= validateDuration();
allOk &= validateSlot();
}
} }
nameEl.clearError(); nameEl.clearError();
...@@ -353,6 +359,24 @@ public class EditBigBlueButtonMeetingController extends FormBasicController { ...@@ -353,6 +359,24 @@ public class EditBigBlueButtonMeetingController extends FormBasicController {
return allOk; return allOk;
} }
private boolean validatePermanentSlot() {
boolean allOk = true;
Calendar cal = Calendar.getInstance();
cal.add(Calendar.YEAR, 12);
Date endDate = cal.getTime();
BigBlueButtonMeetingTemplate template = getSelectedTemplate();
boolean slotFree = bigBlueButtonManager.isSlotAvailable(meeting, template,
new Date(), 0, endDate, 0);
if(!slotFree) {
permanentEl.setErrorKey("server.overloaded", null);
allOk &= false;
}
return allOk;
}
private BigBlueButtonMeetingTemplate getSelectedTemplate() { private BigBlueButtonMeetingTemplate getSelectedTemplate() {
String selectedTemplateId = templateEl.getSelectedKey(); String selectedTemplateId = templateEl.getSelectedKey();
return templates.stream() return templates.stream()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment