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

OO-5308: allow to generate invitee url for BigBLueButton in wizard

parent dbfc08af
No related branches found
No related tags found
No related merge requests found
Showing
with 95 additions and 13 deletions
...@@ -242,7 +242,8 @@ public class AppointmentEditController extends FormBasicController { ...@@ -242,7 +242,8 @@ public class AppointmentEditController extends FormBasicController {
openCalLink = uifactory.addFormLink("calendar.open", formLayout); openCalLink = uifactory.addFormLink("calendar.open", formLayout);
openCalLink.setIconLeftCSS("o_icon o_icon-fw o_icon_calendar"); openCalLink.setIconLeftCSS("o_icon o_icon-fw o_icon_calendar");
BigBlueButtonUIHelper.updateTemplateInformations(templateEl, externalLinkEl, null, null, null, recordEl, templates); BigBlueButtonUIHelper.updateTemplateInformations(templateEl, externalLinkEl, null, null, null, recordEl,
templates, meeting != null && meeting.getKey() != null);
String leadtime = meeting == null ? null : Long.toString(meeting.getLeadTime()); String leadtime = meeting == null ? null : Long.toString(meeting.getLeadTime());
leadTimeEl = uifactory.addTextElement("meeting.leadTime", 8, leadtime, formLayout); leadTimeEl = uifactory.addTextElement("meeting.leadTime", 8, leadtime, formLayout);
...@@ -305,7 +306,8 @@ public class AppointmentEditController extends FormBasicController { ...@@ -305,7 +306,8 @@ public class AppointmentEditController extends FormBasicController {
} else if (source == bbbRoomEl) { } else if (source == bbbRoomEl) {
updateUI(); updateUI();
} else if (templateEl == source) { } else if (templateEl == source) {
BigBlueButtonUIHelper.updateTemplateInformations(templateEl, externalLinkEl, null, null, null, recordEl, templates); BigBlueButtonUIHelper.updateTemplateInformations(templateEl, externalLinkEl, null, null, null, recordEl,
templates, meeting != null && meeting.getKey() != null);
boolean webcamAvailable = isWebcamLayoutAvailable(getSelectedTemplate(templateEl, templates)); boolean webcamAvailable = isWebcamLayoutAvailable(getSelectedTemplate(templateEl, templates));
BigBlueButtonUIHelper.updateLayoutSelection(layoutEl, getTranslator(), webcamAvailable); BigBlueButtonUIHelper.updateLayoutSelection(layoutEl, getTranslator(), webcamAvailable);
} else if (openCalLink == source) { } else if (openCalLink == source) {
......
...@@ -180,7 +180,7 @@ public class RecurringAppointmentsController extends FormBasicController { ...@@ -180,7 +180,7 @@ public class RecurringAppointmentsController extends FormBasicController {
openCalLink = uifactory.addFormLink("calendar.open", formLayout); openCalLink = uifactory.addFormLink("calendar.open", formLayout);
openCalLink.setIconLeftCSS("o_icon o_icon-fw o_icon_calendar"); openCalLink.setIconLeftCSS("o_icon o_icon-fw o_icon_calendar");
BigBlueButtonUIHelper.updateTemplateInformations(templateEl, externalLinkEl, null, null, null, recordEl, templates); BigBlueButtonUIHelper.updateTemplateInformations(templateEl, externalLinkEl, null, null, null, recordEl, templates, false);
leadTimeEl = uifactory.addTextElement("meeting.leadTime", 8, null, formLayout); leadTimeEl = uifactory.addTextElement("meeting.leadTime", 8, null, formLayout);
leadTimeEl.setExampleKey("meeting.leadTime.explain", null); leadTimeEl.setExampleKey("meeting.leadTime.explain", null);
...@@ -235,7 +235,7 @@ public class RecurringAppointmentsController extends FormBasicController { ...@@ -235,7 +235,7 @@ public class RecurringAppointmentsController extends FormBasicController {
if (source == bbbRoomEl) { if (source == bbbRoomEl) {
updateUI(); updateUI();
} else if (templateEl == source) { } else if (templateEl == source) {
BigBlueButtonUIHelper.updateTemplateInformations(templateEl, externalLinkEl, null, null, null, recordEl, templates); BigBlueButtonUIHelper.updateTemplateInformations(templateEl, externalLinkEl, null, null, null, recordEl, templates, false);
boolean webcamAvailable = isWebcamLayoutAvailable(getSelectedTemplate(templateEl, templates)); boolean webcamAvailable = isWebcamLayoutAvailable(getSelectedTemplate(templateEl, templates));
BigBlueButtonUIHelper.updateLayoutSelection(layoutEl, getTranslator(), webcamAvailable); BigBlueButtonUIHelper.updateLayoutSelection(layoutEl, getTranslator(), webcamAvailable);
} else if (openCalLink == source) { } else if (openCalLink == source) {
......
...@@ -274,7 +274,7 @@ public class TopicCreateController extends FormBasicController { ...@@ -274,7 +274,7 @@ public class TopicCreateController extends FormBasicController {
openCalLink = uifactory.addFormLink("calendar.open", formLayout); openCalLink = uifactory.addFormLink("calendar.open", formLayout);
openCalLink.setIconLeftCSS("o_icon o_icon-fw o_icon_calendar"); openCalLink.setIconLeftCSS("o_icon o_icon-fw o_icon_calendar");
BigBlueButtonUIHelper.updateTemplateInformations(templateEl, externalLinkEl, null, null, null, recordEl, templates); BigBlueButtonUIHelper.updateTemplateInformations(templateEl, externalLinkEl, null, null, null, recordEl, templates, false);
leadTimeEl = uifactory.addTextElement("meeting.leadTime", 8, null, formLayout); leadTimeEl = uifactory.addTextElement("meeting.leadTime", 8, null, formLayout);
leadTimeEl.setExampleKey("meeting.leadTime.explain", null); leadTimeEl.setExampleKey("meeting.leadTime.explain", null);
...@@ -356,7 +356,7 @@ public class TopicCreateController extends FormBasicController { ...@@ -356,7 +356,7 @@ public class TopicCreateController extends FormBasicController {
} else if (source == bbbRoomEl) { } else if (source == bbbRoomEl) {
updateUI(); updateUI();
} else if (templateEl == source) { } else if (templateEl == source) {
BigBlueButtonUIHelper.updateTemplateInformations(templateEl, externalLinkEl, null, null, null, recordEl, templates); BigBlueButtonUIHelper.updateTemplateInformations(templateEl, externalLinkEl, null, null, null, recordEl, templates, false);
boolean webcamAvailable = isWebcamLayoutAvailable(getSelectedTemplate(templateEl, templates)); boolean webcamAvailable = isWebcamLayoutAvailable(getSelectedTemplate(templateEl, templates));
BigBlueButtonUIHelper.updateLayoutSelection(layoutEl, getTranslator(), webcamAvailable); BigBlueButtonUIHelper.updateLayoutSelection(layoutEl, getTranslator(), webcamAvailable);
} else if (openCalLink == source) { } else if (openCalLink == source) {
......
...@@ -50,6 +50,7 @@ import org.olat.core.gui.control.generic.modal.DialogBoxController; ...@@ -50,6 +50,7 @@ import org.olat.core.gui.control.generic.modal.DialogBoxController;
import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory; import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory;
import org.olat.core.gui.control.generic.wizard.StepRunnerCallback; import org.olat.core.gui.control.generic.wizard.StepRunnerCallback;
import org.olat.core.gui.control.generic.wizard.StepsMainRunController; import org.olat.core.gui.control.generic.wizard.StepsMainRunController;
import org.olat.core.util.CodeHelper;
import org.olat.core.util.StringHelper; import org.olat.core.util.StringHelper;
import org.olat.group.BusinessGroup; import org.olat.group.BusinessGroup;
import org.olat.modules.bigbluebutton.BigBlueButtonManager; import org.olat.modules.bigbluebutton.BigBlueButtonManager;
...@@ -343,6 +344,9 @@ public class BigBlueButtonEditMeetingsController extends FormBasicController { ...@@ -343,6 +344,9 @@ public class BigBlueButtonEditMeetingsController extends FormBasicController {
} }
private void addRecurringMeetings(RecurringMeetingsContext context) { private void addRecurringMeetings(RecurringMeetingsContext context) {
boolean generateUrl = context.getTemplate() != null && context.getTemplate().isExternalUsersAllowed() && context.isGenerateUrl();
boolean setPassword = generateUrl && StringHelper.containsNonWhitespace(context.getPassword());
for(RecurringMeeting meeting:context.getMeetings()) { for(RecurringMeeting meeting:context.getMeetings()) {
if(meeting.isDeleted() || !meeting.isSlotAvailable()) { if(meeting.isDeleted() || !meeting.isSlotAvailable()) {
continue; continue;
...@@ -359,6 +363,14 @@ public class BigBlueButtonEditMeetingsController extends FormBasicController { ...@@ -359,6 +363,14 @@ public class BigBlueButtonEditMeetingsController extends FormBasicController {
bMeeting.setEndDate(meeting.getEndDate()); bMeeting.setEndDate(meeting.getEndDate());
bMeeting.setLeadTime(context.getLeadTime()); bMeeting.setLeadTime(context.getLeadTime());
bMeeting.setFollowupTime(context.getFollowupTime()); bMeeting.setFollowupTime(context.getFollowupTime());
if(generateUrl) {
String externalLink = String.valueOf(CodeHelper.getForeverUniqueID());
bMeeting.setReadableIdentifier(externalLink);
if(setPassword) {
bMeeting.setPassword(context.getPassword());
}
}
bigBlueButtonManager.updateMeeting(bMeeting); bigBlueButtonManager.updateMeeting(bMeeting);
} }
} }
......
...@@ -50,7 +50,7 @@ public class BigBlueButtonUIHelper { ...@@ -50,7 +50,7 @@ public class BigBlueButtonUIHelper {
public static void updateTemplateInformations(SingleSelection templateEl, TextElement externalLinkEl, public static void updateTemplateInformations(SingleSelection templateEl, TextElement externalLinkEl,
MultipleSelectionElement passwordEnableEl, TextElement passwordEl, MultipleSelectionElement passwordEnableEl, TextElement passwordEl,
SingleSelection publishingEl, SingleSelection recordEl, List<BigBlueButtonMeetingTemplate> templates) { SingleSelection publishingEl, SingleSelection recordEl, List<BigBlueButtonMeetingTemplate> templates, boolean meetingExists) {
templateEl.setExampleKey(null, null); templateEl.setExampleKey(null, null);
if(templateEl.isOneSelected()) { if(templateEl.isOneSelected()) {
BigBlueButtonMeetingTemplate template = getSelectedTemplate(templateEl, templates); BigBlueButtonMeetingTemplate template = getSelectedTemplate(templateEl, templates);
...@@ -66,8 +66,14 @@ public class BigBlueButtonUIHelper { ...@@ -66,8 +66,14 @@ public class BigBlueButtonUIHelper {
} }
boolean visible = template != null && template.isExternalUsersAllowed(); boolean visible = template != null && template.isExternalUsersAllowed();
externalLinkEl.setVisible(visible); externalLinkEl.setVisible(visible);
if(visible && !StringHelper.containsNonWhitespace(externalLinkEl.getValue())) { if(visible && !meetingExists && !StringHelper.containsNonWhitespace(externalLinkEl.getValue())) {
externalLinkEl.setValue(Long.toString(CodeHelper.getForeverUniqueID())); String externalLink = Long.toString(CodeHelper.getForeverUniqueID());
externalLinkEl.setValue(externalLink);
if (externalLink != null) {
String url = BigBlueButtonDispatcher.getMeetingUrl(externalLink);
externalLinkEl.setExampleKey("noTransOnlyParam", new String[] { url });
externalLinkEl.showExample(true);
}
} }
if(passwordEnableEl != null) { if(passwordEnableEl != null) {
......
...@@ -349,7 +349,7 @@ public class EditBigBlueButtonMeetingController extends FormBasicController { ...@@ -349,7 +349,7 @@ public class EditBigBlueButtonMeetingController extends FormBasicController {
externalLinkEl.setHelpTextKey("meeting.external.users.help", null); externalLinkEl.setHelpTextKey("meeting.external.users.help", null);
externalLinkEl.addActionListener(FormEvent.ONCHANGE); externalLinkEl.addActionListener(FormEvent.ONCHANGE);
if (externalLink != null) { if (externalLink != null) {
externalLinkEl.setExampleKey("noTransOnlyParam", new String[] {BigBlueButtonDispatcher.getMeetingUrl(externalLink)}); externalLinkEl.setExampleKey("noTransOnlyParam", new String[] {BigBlueButtonDispatcher.getMeetingUrl(externalLink)});
} }
String password = meeting == null ? null : meeting.getPassword(); String password = meeting == null ? null : meeting.getPassword();
...@@ -362,7 +362,8 @@ public class EditBigBlueButtonMeetingController extends FormBasicController { ...@@ -362,7 +362,8 @@ public class EditBigBlueButtonMeetingController extends FormBasicController {
openCalLink = uifactory.addFormLink("calendar.open", formLayout); openCalLink = uifactory.addFormLink("calendar.open", formLayout);
openCalLink.setIconLeftCSS("o_icon o_icon-fw o_icon_calendar"); openCalLink.setIconLeftCSS("o_icon o_icon-fw o_icon_calendar");
BigBlueButtonUIHelper.updateTemplateInformations(templateEl, externalLinkEl, passwordEnableEl, passwordEl, publishingEl, recordEl, templates); BigBlueButtonUIHelper.updateTemplateInformations(templateEl, externalLinkEl, passwordEnableEl, passwordEl, publishingEl, recordEl,
templates, meeting != null && meeting.getKey() != null);
if(mode == Mode.dates) { if(mode == Mode.dates) {
Date startDate = meeting == null ? new Date() : meeting.getStartDate(); Date startDate = meeting == null ? new Date() : meeting.getStartDate();
...@@ -610,11 +611,13 @@ public class EditBigBlueButtonMeetingController extends FormBasicController { ...@@ -610,11 +611,13 @@ public class EditBigBlueButtonMeetingController extends FormBasicController {
@Override @Override
protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
if(templateEl == source) { if(templateEl == source) {
BigBlueButtonUIHelper.updateTemplateInformations(templateEl, externalLinkEl, passwordEnableEl, passwordEl, publishingEl, recordEl, templates); BigBlueButtonUIHelper.updateTemplateInformations(templateEl, externalLinkEl, passwordEnableEl, passwordEl, publishingEl, recordEl,
templates, meeting != null && meeting.getKey() != null);
boolean webcamAvailable = isWebcamLayoutAvailable(getSelectedTemplate(templateEl, templates)); boolean webcamAvailable = isWebcamLayoutAvailable(getSelectedTemplate(templateEl, templates));
BigBlueButtonUIHelper.updateLayoutSelection(layoutEl, getTranslator(), webcamAvailable); BigBlueButtonUIHelper.updateLayoutSelection(layoutEl, getTranslator(), webcamAvailable);
} else if(recordEl == source || passwordEnableEl == source) { } else if(recordEl == source || passwordEnableEl == source) {
BigBlueButtonUIHelper.updateTemplateInformations(templateEl, externalLinkEl, passwordEnableEl, passwordEl, publishingEl, recordEl, templates); BigBlueButtonUIHelper.updateTemplateInformations(templateEl, externalLinkEl, passwordEnableEl, passwordEl, publishingEl, recordEl,
templates, meeting != null && meeting.getKey() != null);
} else if (openCalLink == source) { } else if (openCalLink == source) {
doOpenCalendar(ureq); doOpenCalendar(ureq);
} else if (externalLinkEl == source) { } else if (externalLinkEl == source) {
......
...@@ -42,6 +42,7 @@ connection.successful=BigBlueButton API Login erfolgreich\! ...@@ -42,6 +42,7 @@ connection.successful=BigBlueButton API Login erfolgreich\!
edit.server=Server "{0}" bearbeiten edit.server=Server "{0}" bearbeiten
edit.template=Raumvorlage "{0}" bearbeiten edit.template=Raumvorlage "{0}" bearbeiten
enable.adhoc.meeting=Adhoc Online-Termin enable.adhoc.meeting=Adhoc Online-Termin
enable.generate.url=URL generieren
enable.permanent.meeting=Online-Termine ohne Datum enable.permanent.meeting=Online-Termine ohne Datum
error.capacity.factory=Ein Nummer zwischen 1.0 und 100.0 error.capacity.factory=Ein Nummer zwischen 1.0 und 100.0
error.connectionValidationFailed=Die Verbindungspr\u00fcfung ist fehlgeschlagen\: <pre>{0}</pre> error.connectionValidationFailed=Die Verbindungspr\u00fcfung ist fehlgeschlagen\: <pre>{0}</pre>
......
...@@ -42,6 +42,7 @@ connection.successful=BigBlueButton API login successful\! ...@@ -42,6 +42,7 @@ connection.successful=BigBlueButton API login successful\!
edit.server=Edit server "{0}" edit.server=Edit server "{0}"
edit.template=Edit room-template "{0}" edit.template=Edit room-template "{0}"
enable.adhoc.meeting=Adhoc online-meeting enable.adhoc.meeting=Adhoc online-meeting
enable.generate.url=generate URL
enable.permanent.meeting=Online-Meetings without date enable.permanent.meeting=Online-Meetings without date
error.capacity.factory=A number between 1.0 and 100.0 error.capacity.factory=A number between 1.0 and 100.0
error.connectionValidationFailed=The connection validation failed\: <pre>{0}</pre> error.connectionValidationFailed=The connection validation failed\: <pre>{0}</pre>
......
...@@ -27,6 +27,7 @@ import org.olat.core.gui.UserRequest; ...@@ -27,6 +27,7 @@ import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.form.flexible.FormItem; import org.olat.core.gui.components.form.flexible.FormItem;
import org.olat.core.gui.components.form.flexible.FormItemContainer; import org.olat.core.gui.components.form.flexible.FormItemContainer;
import org.olat.core.gui.components.form.flexible.elements.DateChooser; import org.olat.core.gui.components.form.flexible.elements.DateChooser;
import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement;
import org.olat.core.gui.components.form.flexible.elements.SingleSelection; import org.olat.core.gui.components.form.flexible.elements.SingleSelection;
import org.olat.core.gui.components.form.flexible.elements.TextElement; import org.olat.core.gui.components.form.flexible.elements.TextElement;
import org.olat.core.gui.components.form.flexible.impl.Form; import org.olat.core.gui.components.form.flexible.impl.Form;
...@@ -51,6 +52,8 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -51,6 +52,8 @@ import org.springframework.beans.factory.annotation.Autowired;
* *
*/ */
public class BigBlugButtonMeetingConfigurationController extends StepFormBasicController { public class BigBlugButtonMeetingConfigurationController extends StepFormBasicController {
private static final String[] onKeys = new String[] { "on" };
private TextElement nameEl; private TextElement nameEl;
private TextElement descriptionEl; private TextElement descriptionEl;
...@@ -58,6 +61,9 @@ public class BigBlugButtonMeetingConfigurationController extends StepFormBasicCo ...@@ -58,6 +61,9 @@ public class BigBlugButtonMeetingConfigurationController extends StepFormBasicCo
private TextElement welcomeEl; private TextElement welcomeEl;
private TextElement leadTimeEl; private TextElement leadTimeEl;
private TextElement followupTimeEl; private TextElement followupTimeEl;
private MultipleSelectionElement externalLinkEl;
private MultipleSelectionElement passwordEnableEl;
private TextElement passwordEl;
private DateChooser startTimeEl; private DateChooser startTimeEl;
private DateChooser endTimeEl; private DateChooser endTimeEl;
private DateChooser endRecurringDateEl; private DateChooser endRecurringDateEl;
...@@ -126,6 +132,17 @@ public class BigBlugButtonMeetingConfigurationController extends StepFormBasicCo ...@@ -126,6 +132,17 @@ public class BigBlugButtonMeetingConfigurationController extends StepFormBasicCo
if(!templateSelected && templatesKeys.length > 0) { if(!templateSelected && templatesKeys.length > 0) {
templateEl.select(templatesKeys[0], true); templateEl.select(templatesKeys[0], true);
} }
String[] externalLinkValues = new String[] { translate("enable.generate.url") };
externalLinkEl = uifactory.addCheckboxesHorizontal("meeting.external.users", formLayout, onKeys, externalLinkValues);
externalLinkEl.addActionListener(FormEvent.ONCHANGE);
String[] enableValues = new String[] { translate("meeting.password.enable.on") };
passwordEnableEl = uifactory.addCheckboxesHorizontal("meeting.password.enable", "meeting.password.enable", formLayout, onKeys, enableValues);
passwordEnableEl.addActionListener(FormEvent.ONCHANGE);
passwordEl = uifactory.addTextElement("meeting.password", 64, "", formLayout);
updateTemplateInformations(); updateTemplateInformations();
startRecurringDateEl = uifactory.addDateChooser("meeting.recurring.start", "meeting.recurring.start", null, formLayout); startRecurringDateEl = uifactory.addDateChooser("meeting.recurring.start", "meeting.recurring.start", null, formLayout);
...@@ -172,10 +189,20 @@ public class BigBlugButtonMeetingConfigurationController extends StepFormBasicCo ...@@ -172,10 +189,20 @@ public class BigBlugButtonMeetingConfigurationController extends StepFormBasicCo
} else { } else {
templateEl.setExampleKey("template.explain.max.participants", args); templateEl.setExampleKey("template.explain.max.participants", args);
} }
externalLinkEl.setVisible(template.isExternalUsersAllowed());
passwordEnableEl.setVisible(template.isExternalUsersAllowed() && externalLinkEl.isAtLeastSelected(1));
passwordEl.setVisible(template.isExternalUsersAllowed() && passwordEnableEl.isAtLeastSelected(1));
} }
} }
} }
private void updatePasswordElement() {
boolean externalInkenabled = externalLinkEl.isVisible() && externalLinkEl.isAtLeastSelected(1);
passwordEnableEl.setVisible(externalInkenabled);
passwordEl.setVisible(externalInkenabled && passwordEnableEl.isAtLeastSelected(1));
}
@Override @Override
protected void doDispose() { protected void doDispose() {
// //
...@@ -328,6 +355,8 @@ public class BigBlugButtonMeetingConfigurationController extends StepFormBasicCo ...@@ -328,6 +355,8 @@ public class BigBlugButtonMeetingConfigurationController extends StepFormBasicCo
protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
if(templateEl == source) { if(templateEl == source) {
updateTemplateInformations(); updateTemplateInformations();
} else if(externalLinkEl == source || passwordEnableEl == source) {
updatePasswordElement();
} }
super.formInnerEvent(ureq, source, event); super.formInnerEvent(ureq, source, event);
} }
...@@ -350,6 +379,16 @@ public class BigBlugButtonMeetingConfigurationController extends StepFormBasicCo ...@@ -350,6 +379,16 @@ public class BigBlugButtonMeetingConfigurationController extends StepFormBasicCo
long followupTime = getFollowupTime(); long followupTime = getFollowupTime();
meetingsContext.setFollowupTime(followupTime); meetingsContext.setFollowupTime(followupTime);
if(externalLinkEl.isVisible() && externalLinkEl.isAtLeastSelected(1)) {
meetingsContext.setGenerateUrl(true);
if(passwordEnableEl.isAtLeastSelected(1)) {
meetingsContext.setPassword(passwordEl.getValue());
}
} else {
meetingsContext.setGenerateUrl(false);
meetingsContext.setPassword(null);
}
meetingsContext.setStartRecurringDate(startRecurringDateEl.getDate()); meetingsContext.setStartRecurringDate(startRecurringDateEl.getDate());
meetingsContext.setEndRecurringDate(endRecurringDateEl.getDate()); meetingsContext.setEndRecurringDate(endRecurringDateEl.getDate());
......
...@@ -48,6 +48,8 @@ public class RecurringMeetingsContext { ...@@ -48,6 +48,8 @@ public class RecurringMeetingsContext {
private long followupTime; private long followupTime;
private Date startRecurringDate; private Date startRecurringDate;
private Date endRecurringDate; private Date endRecurringDate;
private String password;
private boolean generateUrl;
private BigBlueButtonMeetingTemplate template; private BigBlueButtonMeetingTemplate template;
private List<RecurringMeeting> meetings = new ArrayList<>(); private List<RecurringMeeting> meetings = new ArrayList<>();
...@@ -119,6 +121,22 @@ public class RecurringMeetingsContext { ...@@ -119,6 +121,22 @@ public class RecurringMeetingsContext {
this.mainPresenter = mainPresenter; this.mainPresenter = mainPresenter;
} }
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public boolean isGenerateUrl() {
return generateUrl;
}
public void setGenerateUrl(boolean generateUrl) {
this.generateUrl = generateUrl;
}
public Date getStartTime() { public Date getStartTime() {
return startTime; return startTime;
} }
......
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