protected void onInitialize()

in openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java [114:239]


	protected void onInitialize() {
		header(new ResourceModel("1209"));
		setUseCloseHandler(true);
		size(Modal.Size.Large);

		addButton(new BootstrapAjaxButton(BUTTON_MARKUP_ID, new ResourceModel("218"), form, Buttons.Type.Outline_Primary) {
			private static final long serialVersionUID = 1L;

			@Override
			protected void onError(AjaxRequestTarget target) {
				target.add(feedback);
			}

			@Override
			protected void onSubmit(AjaxRequestTarget target) {
				PrivateMessage m = MessageDialog.this.getModelObject();
				m.setInserted(new Date());
				User owner = userDao.get(getUserId());
				if (m.isBookedRoom()) {
					Room r = m.getRoom();
					r.setName(m.getSubject());
					r.setComment("");
					r.setCapacity(100L);
					r.setAppointment(true);
					r.setAllowUserQuestions(true);
					r = roomDao.update(r, getUserId());
					Appointment a = new Appointment();
					a.setTitle(m.getSubject());
					a.setDescription(m.getMessage());
					a.setRoom(r);
					a.setStart(CalendarWebHelper.getDate(start.getModelObject()));
					a.setEnd(CalendarWebHelper.getDate(end.getModelObject()));
					List<MeetingMember> attendees = new ArrayList<>();
					for (User to : modelTo.getObject()) {
						MeetingMember mm = new MeetingMember();
						mm.setUser(to);
						mm.setDeleted(false);
						mm.setAppointment(a);
						attendees.add(mm);
					}
					a.setOwner(owner);
					a.setMeetingMembers(attendees);
					apptDao.update(a, getUserId(), false);
					m.setRoom(r);
				} else {
					m.setRoom(null);
				}
				for (User to : modelTo.getObject()) {
					if (to.getId() == null) {
						userDao.update(to, getUserId());
					}
					//to send
					PrivateMessage p = new PrivateMessage(m);
					p.setTo(to);
					p.setFolderId(SENT_FOLDER_ID);
					msgDao.update(p, getUserId());
					//to inbox
					p = new PrivateMessage(m);
					p.setOwner(to);
					p.setFolderId(INBOX_FOLDER_ID);
					msgDao.update(p, getUserId());
					if (to.getAddress() != null) {
						String aLinkHTML = 	(isPrivate && to.getType() == Type.USER) ? "<br/><br/>" + "<a href='" + getContactsLink() + "'>"
									+ Application.getString("1302", to.getLanguageId()) + "</a><br/>" : "";
						String invitationLink = "";
						if (p.isBookedRoom()) {
							Invitation i = inviteManager.getInvitation(to, p.getRoom(),
									false, null, Valid.PERIOD, owner, to.getLanguageId()
									, CalendarHelper.getDate(start.getModelObject(), to.getTimeZoneId())
									, CalendarHelper.getDate(end.getModelObject(), to.getTimeZoneId()), null);

							invitationLink = getInvitationLink(i, WebSession.get().getExtendedProperties().getBaseUrl());

							if (invitationLink == null) {
								invitationLink = "";
							} else {
								invitationLink = "<br/>" //
										+ Application.getString("template.room.invitation.text", to.getLanguageId())
										+ "<br/><a href='" + invitationLink
										+ "'>"
										+ Application.getString("504", to.getLanguageId()) + "</a><br/>";
							}
						}

						String subj = p.getSubject() == null ? "" : p.getSubject();
						handler.send(to.getAddress().getEmail(),
								Application.getString("1301", to.getLanguageId()) + subj,
								(p.getMessage() == null ? "" : p.getMessage().replaceAll("\\<[^>]*+>", "")) + aLinkHTML + invitationLink);
					}
				}
				MessageDialog.this.close(target);
				onSend(target);
			}
		}); // send
		addButton(OmModalCloseButton.of());

		form.add(feedback.setOutputMarkupId(true));
		final UserMultiChoice recepients = new UserMultiChoice("to", modelTo);
		recepients.getSettings().setDropdownParent(MessageDialog.this.getMarkupId());
		form.add(recepients.setRequired(true));
		form.add(new TextField<String>("subject"));
		OmWysiwygToolbar toolbar = new OmWysiwygToolbar("toolbarContainer");
		form.add(toolbar);
		form.add(new WysiwygEditor("message", toolbar));
		form.add(roomParamsBlock.setOutputMarkupId(true));
		final CheckBox bookedRoom = new CheckBox("bookedRoom");
		form.add(bookedRoom.setOutputMarkupId(true).add(new AjaxEventBehavior(EVT_CLICK) {
			private static final long serialVersionUID = 1L;

			@Override
			protected void onEvent(AjaxRequestTarget target) {
				PrivateMessage p = MessageDialog.this.getModelObject();
				p.setBookedRoom(!p.isBookedRoom());
				roomParams.setVisible(p.isBookedRoom());
				target.add(bookedRoom, roomParamsBlock);
			}
		}));
		bookedRoom.setVisible(isMyRoomsEnabled());
		roomParamsBlock.add(roomParams);
		roomParams.add(new RoomTypeDropDown("room.type"));
		roomParams.add(start);
		roomParams.add(end);
		add(form.setOutputMarkupId(true));

		super.onInitialize();
	}