This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch csp
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/csp by this push:
new d5ef650 [OPENMEETINGS-2165] initial work on AppointmentDialog
d5ef650 is described below
commit d5ef650cd79af6c28dd5cd185fee48c555930012
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Fri Feb 14 16:54:42 2020 +0700
[OPENMEETINGS-2165] initial work on AppointmentDialog
---
.../web/user/calendar/AppointmentDialog.html | 159 +++++-----
.../web/user/calendar/AppointmentDialog.java | 351 ++++++++++-----------
.../web/user/calendar/CalendarPanel.html | 2 +-
.../web/user/calendar/CalendarPanel.java | 4 +-
4 files changed, 242 insertions(+), 274 deletions(-)
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.html
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.html
index 398647d..adf47c2 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.html
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.html
@@ -20,103 +20,104 @@
-->
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org">
-<wicket:panel>
+<wicket:extend>
<form wicket:id="appForm" class="appointmentPopUp">
<span wicket:id="feedback"></span>
<div class="tabs">
- <ul>
- <li><a href="#tab1"><wicket:message
key="appointment.tab.general"/></a></li>
- <li><a href="#tab2"><wicket:message
key="406"/></a></li>
- <li><a href="#tab3"><wicket:message
key="appointment.tab.advanced"/></a></li>
+ <ul class="nav nav-tabs" role="tablist">
+ <li class="nav-item"><a class="nav-link active"
id="tab1-tab" data-toggle="tab" role="tab" aria-controls="tab1"
href="#tab1"><wicket:message key="appointment.tab.general"/></a></li>
+ <li class="nav-item"><a class="nav-link"
id="tab2-tab" data-toggle="tab" role="tab" aria-controls="tab2"
href="#tab2"><wicket:message key="406"/></a></li>
+ <li class="nav-item"><a class="nav-link"
id="tab3-tab" data-toggle="tab" role="tab" aria-controls="tab3"
href="#tab3"><wicket:message key="appointment.tab.advanced"/></a></li>
</ul>
- <div id="tab1">
- <div class="table">
- <div>
- <div class="column
label"><wicket:message key="572" /></div>
- <div class="column data"><input
type="text" wicket:id="title" /></div>
- </div>
- <div>
- <div class="column
label"><wicket:message key="570" /></div>
- <div class="column data"><span
class="date time picker" wicket:id="start"></span></div>
- </div>
- <div>
- <div class="column
label"><wicket:message key="571" /></div>
- <div class="column data"><span
class="date time picker" wicket:id="end"></span></div>
- </div>
- <div wicket:id="owner-row">
- <div class="column
label"><wicket:message key="1156" /></div>
- <div class="column data"><span
wicket:id="aowner"></span></div>
- </div>
- <div wicket:id="inviteeType">
+ <div class="tab-content">
+ <div id="tab1" class="tab-pane fade show
active" role="tabpanel" aria-labelledby="tab1-tab">
+ <div class="table">
<div>
- <div class="column
label"><input type="radio" wicket:id="user"/><label
wicket:for="user"><wicket:message key="803" /></label></div>
- <div class="column data
om-select2" wicket:message="title:1588"><select class="appointment attendees
input" wicket:id="attendees"></select></div>
+ <div class="column
label"><wicket:message key="572" /></div>
+ <div class="column
data"><input type="text" wicket:id="title" /></div>
</div>
- <div wicket:id="groupContainer">
- <div class="column
label"><input type="radio" wicket:id="group"/><label
wicket:for="group"><wicket:message key="126" /></label></div>
- <div class="column data
om-select2"><select wicket:id="groups" class="input invitees"></select></div>
+ <div>
+ <div class="column
label"><wicket:message key="570" /></div>
+ <div class="column
data"><span class="date time picker" wicket:id="start"></span></div>
</div>
- </div>
- <div>
- <div class="column
label"><wicket:message key="569" /></div>
- <div class="column data"><input
type="text" wicket:id="location" /></div>
- </div>
- <div>
- <div class="column
label"><wicket:message key="196" /></div>
- <div class="column data">
- <div
wicket:id="toolbarContainer"></div>
- <div
wicket:id="description"></div>
+ <div>
+ <div class="column
label"><wicket:message key="571" /></div>
+ <div class="column
data"><span class="date time picker" wicket:id="end"></span></div>
+ </div>
+ <div wicket:id="owner-row">
+ <div class="column
label"><wicket:message key="1156" /></div>
+ <div class="column
data"><span wicket:id="aowner"></span></div>
+ </div>
+ <div wicket:id="inviteeType">
+ <div>
+ <div
class="column label"><input type="radio" wicket:id="user"/><label
wicket:for="user"><wicket:message key="803" /></label></div>
+ <div
class="column data om-select2" wicket:message="title:1588"><select
class="appointment attendees input" wicket:id="attendees"></select></div>
+ </div>
+ <div
wicket:id="groupContainer">
+ <div
class="column label"><input type="radio" wicket:id="group"/><label
wicket:for="group"><wicket:message key="126" /></label></div>
+ <div
class="column data om-select2"><select wicket:id="groups" class="input
invitees"></select></div>
+ </div>
</div>
- </div>
- </div>
- </div>
- <div id="tab2">
- <div class="table">
- <div wicket:enclosure="createRoom">
- <input type="checkbox"
wicket:id="createRoom" /><label wicket:for="createRoom"><wicket:message
key="1509" /></label>
- </div>
- <div wicket:id="create-room-block">
<div>
- <div class="column
label"><wicket:message key="619" /></div>
- <div class="column
data"><select wicket:id="type" ></select></div>
+ <div class="column
label"><wicket:message key="569" /></div>
+ <div class="column
data"><input type="text" wicket:id="location" /></div>
</div>
<div>
- <div class="column
label"><label wicket:for="moderated"><wicket:message key="640" /></label></div>
- <div class="column
data"><input type="checkbox" wicket:id="moderated" /></div>
+ <div class="column
label"><wicket:message key="196" /></div>
+ <div class="column
data">
+ <div
wicket:id="toolbarContainer"></div>
+ <div
wicket:id="description"></div>
+ </div>
</div>
</div>
- <div>
- <div class="column
label"><wicket:message key="406" /></div>
- <div class="column
data"><select wicket:id="groom" ></select></div>
- </div>
- <div wicket:id="sip-container">
- <div class="column
label"><wicket:message key="1003"/></div>
- <div class="column data"><span
wicket:id="room.confno"></span></div>
- </div>
</div>
- </div>
- <div id="tab3">
- <div class="table">
- <div>
- <div class="column
label"><wicket:message key="565" /></div>
- <div class="column
data"><select wicket:id="reminder" ></select></div>
- </div>
- <div>
- <input type="checkbox"
wicket:id="passwordProtected" /><label
wicket:for="passwordProtected"><wicket:message key="524" /></label>
- </div>
- <div>
- <div class="column
label"><wicket:message key="110" /></div>
- <div class="column data"><input
type="password" wicket:id="password" /></div>
+ <div id="tab2" class="tab-pane fade"
role="tabpanel" aria-labelledby="tab2-tab">
+ <div class="table">
+ <div
wicket:enclosure="createRoom">
+ <input type="checkbox"
wicket:id="createRoom" /><label wicket:for="createRoom"><wicket:message
key="1509" /></label>
+ </div>
+ <div
wicket:id="create-room-block">
+ <div>
+ <div
class="column label"><wicket:message key="619" /></div>
+ <div
class="column data"><select wicket:id="type" ></select></div>
+ </div>
+ <div>
+ <div
class="column label"><label wicket:for="moderated"><wicket:message key="640"
/></label></div>
+ <div
class="column data"><input type="checkbox" wicket:id="moderated" /></div>
+ </div>
+ </div>
+ <div>
+ <div class="column
label"><wicket:message key="406" /></div>
+ <div class="column
data"><select wicket:id="groom" ></select></div>
+ </div>
+ <div wicket:id="sip-container">
+ <div class="column
label"><wicket:message key="1003"/></div>
+ <div class="column
data"><span wicket:id="room.confno"></span></div>
+ </div>
</div>
- <div><wicket:message key="1445" /></div>
- <div>
- <div class="column
label"><wicket:message key="162" /></div>
- <div class="column
data"><select wicket:id="calendar"></select></div>
+ </div>
+ <div id="tab3" class="tab-pane fade"
role="tabpanel" aria-labelledby="tab3-tab">
+ <div class="table">
+ <div>
+ <div class="column
label"><wicket:message key="565" /></div>
+ <div class="column
data"><select wicket:id="reminder" ></select></div>
+ </div>
+ <div>
+ <input type="checkbox"
wicket:id="passwordProtected" /><label
wicket:for="passwordProtected"><wicket:message key="524" /></label>
+ </div>
+ <div>
+ <div class="column
label"><wicket:message key="110" /></div>
+ <div class="column
data"><input type="password" wicket:id="password" /></div>
+ </div>
+ <div><wicket:message key="1445"
/></div>
+ <div>
+ <div class="column
label"><wicket:message key="162" /></div>
+ <div class="column
data"><select wicket:id="calendar"></select></div>
+ </div>
</div>
</div>
</div>
</div>
</form>
- <div wicket:id="confirmDelete"></div>
-</wicket:panel>
+</wicket:extend>
</html>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
index d1459d2..2645272 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
@@ -21,6 +21,7 @@ package org.apache.openmeetings.web.user.calendar;
import static
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MYROOMS_ENABLED;
import static org.apache.openmeetings.web.app.WebSession.getRights;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static
org.apache.openmeetings.web.common.confirmation.ConfirmableAjaxBorder.newOkCancelDangerConfirm;
import static org.apache.openmeetings.web.util.CalendarWebHelper.getDate;
import static org.apache.openmeetings.web.util.CalendarWebHelper.getDateTime;
@@ -86,30 +87,25 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.wicketstuff.select2.Select2MultiChoice;
-import com.googlecode.wicket.jquery.core.JQueryBehavior;
-import com.googlecode.wicket.jquery.ui.JQueryUIBehavior;
import com.googlecode.wicket.jquery.ui.plugins.wysiwyg.WysiwygEditor;
-import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractDialog;
-import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButtons;
-import com.googlecode.wicket.jquery.ui.widget.dialog.DialogIcon;
-import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;
+import
de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxButton;
+import
de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxLink;
+import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
import
de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
+import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import
de.agilecoders.wicket.core.markup.html.bootstrap.dialog.ModalCloseButton;
-public class AppointmentDialog extends AbstractFormDialog<Appointment> {
+public class AppointmentDialog extends Modal<Appointment> {
private static final long serialVersionUID = 1L;
private static final Logger log =
LoggerFactory.getLogger(AppointmentDialog.class);
private AppointmentForm form;
- private DialogButton save;
- private DialogButton cancel;
- private DialogButton delete;
- private DialogButton enterRoom;
+ private BootstrapAjaxButton save;
+ private BootstrapAjaxLink<String> delete;
+ private BootstrapAjaxLink<String> enterRoom;
private final CalendarPanel calendarPanel;
private final NotificationPanel feedback = new
NotificationPanel("feedback");
- MessageDialog confirmDelete;
private final WebMarkupContainer sipContainer = new
WebMarkupContainer("sip-container");
private final RadioGroup<InviteeType> rdi = new
RadioGroup<>("inviteeType", Model.of(InviteeType.user));
private final Select2MultiChoice<Group> groups = new
Select2MultiChoice<>("groups"
@@ -134,44 +130,109 @@ public class AppointmentDialog extends
AbstractFormDialog<Appointment> {
private ConfigurationDao cfgDao;
public AppointmentDialog(String id, CalendarPanel calendarPanel,
CompoundPropertyModel<Appointment> model) {
- super(id, "", model, true);
+ super(id, model);
log.debug(" -- AppointmentDialog -- Current model {}",
getModel().getObject());
this.calendarPanel = calendarPanel;
setOutputMarkupId(true);
- form = new AppointmentForm("appForm", model);
- add(form);
}
@Override
protected void onInitialize() {
- getTitle().setObject(getString("815"));
- save = new DialogButton("save", getString("144"));
- cancel = new DialogButton("cancel", getString("lbl.cancel"));
- delete = new DialogButton("delete", getString("80"));
- enterRoom = new DialogButton("enterRoom", getString("1282"));
- confirmDelete = new MessageDialog("confirmDelete",
getString("80"), getString("833"), DialogButtons.OK_CANCEL, DialogIcon.WARN){
+ header(new ResourceModel("815"));
+ setBackdrop(Backdrop.STATIC);
+
+ add(form = new AppointmentForm("appForm", getModel()));
+ addButton(save = new BootstrapAjaxButton("button", new
ResourceModel("144"), form, Buttons.Type.Outline_Primary) {
private static final long serialVersionUID = 1L;
@Override
- public void onClose(IPartialPageRequestHandler handler,
DialogButton button) {
- if (button != null &&
button.match(AbstractDialog.OK)){
- deleteAppointment(handler);
+ protected void onSubmit(AjaxRequestTarget target) {
+ Appointment a = form.getModelObject();
+ a.setRoom(form.createRoom ? form.appRoom :
form.groom.getModelObject());
+ final List<MeetingMember> mms =
a.getMeetingMembers() == null ? new ArrayList<>() : a.getMeetingMembers();
+ Set<Long> currentIds = new HashSet<>();
+ List<User> users = new ArrayList<>();
+ if (InviteeType.group == rdi.getModelObject()) {
+ //lets iterate through all group users
+ for (Group g : groups.getModelObject())
{
+ for (GroupUser gu :
groupUserDao.get(g.getId(), 0, Integer.MAX_VALUE)) {
+ User u = gu.getUser();
+ if
(!currentIds.contains(u.getId())) {
+ users.add(u);
+
currentIds.add(u.getId());
+ }
+ }
+ }
+ } else {
+ users = new
ArrayList<>(attendees.getModelObject());
+ for (User u : users) {
+ if (u.getId() != null) {
+
currentIds.add(u.getId());
+ }
+ }
+ }
+
+ //remove users
+ for (Iterator<MeetingMember> i =
mms.iterator(); i.hasNext();) {
+ MeetingMember m = i.next();
+ if
(!currentIds.contains(m.getUser().getId())) {
+ i.remove();
+ }
+ }
+ Set<Long> originalIds = new HashSet<>();
+ for (MeetingMember m : mms) {
+ originalIds.add(m.getUser().getId());
+ }
+ //add users
+ for (User u : users) {
+ if (u.getId() == null ||
!originalIds.contains(u.getId())) {
+ MeetingMember mm = new
MeetingMember();
+ mm.setUser(u);
+ mm.setDeleted(false);
+ mm.setInserted(a.getInserted());
+ mm.setUpdated(a.getUpdated());
+ mm.setAppointment(a);
+ mms.add(mm);
+ }
+ }
+ a.setMeetingMembers(mms);
+
a.setStart(getDate(form.start.getModelObject()));
+ a.setEnd(getDate(form.end.getModelObject()));
+ a.setCalendar(form.cals.getModelObject());
+ if (a.getCalendar() != null) {
+ // Updates on the remote server and
sets the href. Should be before dao update
+
calendarPanel.updatedeleteAppointment(target,
CalendarDialog.DIALOG_TYPE.UPDATE_APPOINTMENT, a);
}
+ apptDao.update(a, getUserId());
+ target.add(feedback);
+ calendarPanel.refresh(target);
}
- };
- add(confirmDelete);
- super.onInitialize();
- }
- @Override
- public int getWidth() {
- return 650;
- }
+ @Override
+ protected void onError(AjaxRequestTarget target) {
+ target.add(feedback);
+ }
+ });
+ addButton(enterRoom = new BootstrapAjaxLink<>("button", null,
Buttons.Type.Outline_Success, new ResourceModel("1282")) {
+ private static final long serialVersionUID = 1L;
- @Override
- public void onConfigure(JQueryBehavior behavior) {
- super.onConfigure(behavior);
- behavior.setOption("classes", "{'ui-dialog': 'ui-corner-all
appointment'}");
+ @Override
+ public void onClick(AjaxRequestTarget handler) {
+
RoomEnterBehavior.roomEnter((MainPage)getPage(), handler,
AppointmentDialog.this.getModelObject().getRoom().getId());
+ }
+ });
+ delete = new BootstrapAjaxLink<>("button", null,
Buttons.Type.Outline_Danger, new ResourceModel("80")) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onClick(AjaxRequestTarget handler) {
+ deleteAppointment(handler);
+ }
+ };
+
delete.setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true);
+ addButton(delete.add(newOkCancelDangerConfirm(this,
getString("833"))));
+ addButton(new ModalCloseButton(new
ResourceModel("lbl.cancel")).type(Buttons.Type.Outline_Secondary));
+ super.onInitialize();
}
public void setModelObjectWithAjaxTarget(Appointment a,
AjaxRequestTarget target) {
@@ -181,16 +242,17 @@ public class AppointmentDialog extends
AbstractFormDialog<Appointment> {
form.setEnabled(isOwner(a));
log.debug(" -- setModelObjectWithAjaxTarget -- Current model
{}", a);
if (a.getId() != null) {
- delete.setVisible(isOwner(a), target);
- enterRoom.setVisible(a.getRoom() != null, target);
+ delete.setVisible(isOwner(a));
+ enterRoom.setVisible(a.getRoom() != null);
} else {
- delete.setVisible(false, target);
- enterRoom.setVisible(false, target);
+ delete.setVisible(false);
+ enterRoom.setVisible(false);
}
if (a.getRoom() != null) {
target.add(sipContainer.replace(new
Label("room.confno",
a.getRoom().getConfno())).setVisible(a.getRoom().isSipEnabled()));
}
- save.setVisible(isOwner(a), target);
+ save.setVisible(isOwner(a));
+ target.add(delete, enterRoom, save);
super.setModelObject(a);
}
@@ -203,103 +265,6 @@ public class AppointmentDialog extends
AbstractFormDialog<Appointment> {
}
}
- @Override
- protected List<DialogButton> getButtons() {
- return Arrays.asList(enterRoom, save, delete, cancel);
- }
-
- @Override
- public DialogButton getSubmitButton() {
- return save;
- }
-
- @Override
- public Form<?> getForm() {
- return form;
- }
-
- @Override
- protected void onOpen(IPartialPageRequestHandler handler) {
- handler.add(form.add(new JQueryUIBehavior(String.format("#%s
.tabs", getMarkupId()), "tabs")));
- }
-
- @Override
- public void onClose(IPartialPageRequestHandler handler, DialogButton
button) {
- if (delete.equals(button)) {
- confirmDelete.open(handler);
- } else if (enterRoom.equals(button)) {
- RoomEnterBehavior.roomEnter((MainPage)getPage(),
handler, getModelObject().getRoom().getId());
- }
- }
-
- @Override
- protected void onError(AjaxRequestTarget target, DialogButton btn) {
- target.add(feedback);
- }
-
- @Override
- protected void onSubmit(AjaxRequestTarget target, DialogButton btn) {
- Appointment a = form.getModelObject();
- a.setRoom(form.createRoom ? form.appRoom :
form.groom.getModelObject());
- final List<MeetingMember> mms = a.getMeetingMembers() == null ?
new ArrayList<>() : a.getMeetingMembers();
- Set<Long> currentIds = new HashSet<>();
- List<User> users = new ArrayList<>();
- if (InviteeType.group == rdi.getModelObject()) {
- //lets iterate through all group users
- for (Group g : groups.getModelObject()) {
- for (GroupUser gu : groupUserDao.get(g.getId(),
0, Integer.MAX_VALUE)) {
- User u = gu.getUser();
- if (!currentIds.contains(u.getId())) {
- users.add(u);
- currentIds.add(u.getId());
- }
- }
- }
- } else {
- users = new ArrayList<>(attendees.getModelObject());
- for (User u : users) {
- if (u.getId() != null) {
- currentIds.add(u.getId());
- }
- }
- }
-
- //remove users
- for (Iterator<MeetingMember> i = mms.iterator(); i.hasNext();) {
- MeetingMember m = i.next();
- if (!currentIds.contains(m.getUser().getId())) {
- i.remove();
- }
- }
- Set<Long> originalIds = new HashSet<>();
- for (MeetingMember m : mms) {
- originalIds.add(m.getUser().getId());
- }
- //add users
- for (User u : users) {
- if (u.getId() == null ||
!originalIds.contains(u.getId())) {
- MeetingMember mm = new MeetingMember();
- mm.setUser(u);
- mm.setDeleted(false);
- mm.setInserted(a.getInserted());
- mm.setUpdated(a.getUpdated());
- mm.setAppointment(a);
- mms.add(mm);
- }
- }
- a.setMeetingMembers(mms);
- a.setStart(getDate(form.start.getModelObject()));
- a.setEnd(getDate(form.end.getModelObject()));
- a.setCalendar(form.cals.getModelObject());
- if (a.getCalendar() != null) {
- // Updates on the remote server and sets the href.
Should be before dao update
- calendarPanel.updatedeleteAppointment(target,
CalendarDialog.DIALOG_TYPE.UPDATE_APPOINTMENT, a);
- }
- apptDao.update(a, getUserId());
- target.add(feedback);
- calendarPanel.refresh(target);
- }
-
public static boolean isOwner(Appointment object) {
return object.getOwner() != null &&
getUserId().equals(object.getOwner().getId());
}
@@ -339,12 +304,65 @@ public class AppointmentDialog extends
AbstractFormDialog<Appointment> {
);
private final WebMarkupContainer groupContainer = new
WebMarkupContainer("groupContainer");
- public AppointmentForm(String id,
CompoundPropertyModel<Appointment> model) {
+ public AppointmentForm(String id, IModel<Appointment> model) {
super(id, model);
setOutputMarkupId(true);
myRoomsAllowed = cfgDao.getBool(CONFIG_MYROOMS_ENABLED,
true);
createRoom = myRoomsAllowed;
+ }
+
+ @Override
+ protected void onModelChanged() {
+ super.onModelChanged();
+
+ Appointment a = getModelObject();
+ if (a.getReminder() == null) {
+ a.setReminder(Reminder.none);
+ }
+ if (a.getRoom() == null) {
+ a.setRoom(createAppRoom());
+ }
+ createRoom = myRoomsAllowed &&
a.getRoom().isAppointment();
+ if (createRoom) {
+ appRoom = a.getRoom();
+ } else {
+ groom.setModelObject(a.getRoom());
+ appRoom = createAppRoom();
+ }
+ createRoomBlock.setDefaultModelObject(appRoom);
+ createRoomBlock.setEnabled(createRoom);
+ groom.setEnabled(!createRoom);
+ if (a.getId() == null) {
+ java.util.Calendar from =
WebSession.getCalendar();
+ from.setTime(a.getStart());
+ java.util.Calendar to =
WebSession.getCalendar();
+ to.setTime(a.getEnd());
+
+ if (from.equals(to)) {
+ to.add(java.util.Calendar.HOUR_OF_DAY,
1);
+ a.setEnd(to.getTime());
+ }
+ cals.setEnabled(true);
+ } else {
+ cals.setEnabled(false);
+ }
+
+ rdi.setModelObject(InviteeType.user);
+ attendees.setModelObject(new ArrayList<>());
+ if (a.getMeetingMembers() != null) {
+ for (MeetingMember mm : a.getMeetingMembers()) {
+
attendees.getModelObject().add(mm.getUser());
+ }
+ }
+ pwd.setEnabled(a.isPasswordProtected());
+
owner.setDefaultModel(Model.of(FormatHelper.formatUser(a.getOwner())));
+ ownerPanel.setVisible(!isOwner(a));
+ }
+
+ @Override
+ protected void onInitialize() {
+
add(feedback.setOutputMarkupId(true));
//General
add(ownerPanel.add(owner));
@@ -445,58 +463,7 @@ public class AppointmentDialog extends
AbstractFormDialog<Appointment> {
pwd.setOutputMarkupId(true);
add(pwd);
add(cals.setNullValid(true).setLabel(Model.of("calendar")).setOutputMarkupId(true));
- }
-
- @Override
- protected void onModelChanged() {
- super.onModelChanged();
- Appointment a = getModelObject();
- if (a.getReminder() == null) {
- a.setReminder(Reminder.none);
- }
- if (a.getRoom() == null) {
- a.setRoom(createAppRoom());
- }
- createRoom = myRoomsAllowed &&
a.getRoom().isAppointment();
- if (createRoom) {
- appRoom = a.getRoom();
- } else {
- groom.setModelObject(a.getRoom());
- appRoom = createAppRoom();
- }
- createRoomBlock.setDefaultModelObject(appRoom);
- createRoomBlock.setEnabled(createRoom);
- groom.setEnabled(!createRoom);
- if (a.getId() == null) {
- java.util.Calendar from =
WebSession.getCalendar();
- from.setTime(a.getStart());
- java.util.Calendar to =
WebSession.getCalendar();
- to.setTime(a.getEnd());
-
- if (from.equals(to)) {
- to.add(java.util.Calendar.HOUR_OF_DAY,
1);
- a.setEnd(to.getTime());
- }
- cals.setEnabled(true);
- } else {
- cals.setEnabled(false);
- }
-
- rdi.setModelObject(InviteeType.user);
- attendees.setModelObject(new ArrayList<>());
- if (a.getMeetingMembers() != null) {
- for (MeetingMember mm : a.getMeetingMembers()) {
-
attendees.getModelObject().add(mm.getUser());
- }
- }
- pwd.setEnabled(a.isPasswordProtected());
-
owner.setDefaultModel(Model.of(FormatHelper.formatUser(a.getOwner())));
- ownerPanel.setVisible(!isOwner(a));
- }
-
- @Override
- protected void onInitialize() {
groups.setLabel(new ResourceModel("126"));
add(new RequiredTextField<String>("title").setLabel(new
ResourceModel("572")));
add(start.setLabel(new
ResourceModel("570")).setRequired(true)
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.html
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.html
index 4afd78d..3ea06f2 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.html
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.html
@@ -39,7 +39,7 @@
<!-- div wicket:id="feedback"></div -->
</form>
</div>
- <div wicket:id="appointment">[appointment]</div>
+ <div wicket:id="appointment" class="appointment">[appointment]</div>
<div wicket:id="calendarDialog"></div>
<!-- bottom section -->
</wicket:panel>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
index ad2473f..d11e79d 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
@@ -186,7 +186,7 @@ public class CalendarPanel extends UserBasePanel {
a.setEnd(getDate(e));
dialog.setModelObjectWithAjaxTarget(a, target);
- dialog.open(target);
+ dialog.show(target);
}
@Override
@@ -197,7 +197,7 @@ public class CalendarPanel extends UserBasePanel {
Appointment a =
apptDao.get(Long.valueOf(eventId));
dialog.setModelObjectWithAjaxTarget(a, target);
- dialog.open(target);
+ dialog.show(target);
}
@Override