Author: solomax
Date: Fri Aug 19 17:29:56 2016
New Revision: 1756948
URL: http://svn.apache.org/viewvc?rev=1756948&view=rev
Log:
[OPENMEETINGS-1138] initial commit on this issue
Added:
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.html
- copied, changed from r1756947,
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.html
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.java
- copied, changed from r1756947,
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.html
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomInvitationForm.html
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomInvitationForm.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.html
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.html
- copied, changed from r1756947,
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/InvitationDialog.html
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.java
- copied, changed from r1756947,
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/InvitationDialog.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.html
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.html
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.html
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.html
- copied, changed from r1756947,
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/InvitationDialog.html
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.java
- copied, changed from r1756947,
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/InvitationDialog.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.html
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.html
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.html
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.java
Removed:
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.html
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/InvitationDialog.html
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/InvitationDialog.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/InvitationDialog.html
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/InvitationDialog.java
Modified:
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.html
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/menu.css
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/theme.css
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.html
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/css/menu.css
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/css/theme.css
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.html
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/menu.css
openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/theme.css
Modified:
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml?rev=1756948&r1=1756947&r2=1756948&view=diff
==============================================================================
---
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
(original)
+++
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
Fri Aug 19 17:29:56 2016
@@ -1920,4 +1920,5 @@
<entry key="install.room.private.conference">Private Conference
Room</entry>
<entry key="appointment.tab.general">General</entry>
<entry key="appointment.tab.advanced">Advanced</entry>
+ <entry key="button.label.share">Share</entry>
</properties>
Copied:
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.html
(from r1756947,
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.html)
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.html?p2=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.html&p1=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.html&r1=1756947&r2=1756948&rev=1756948&view=diff
==============================================================================
---
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.html
(original)
+++
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.html
Fri Aug 19 17:29:56 2016
@@ -20,67 +20,6 @@
-->
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
- <form wicket:id="form">
- <table wicket:id="inviteeType">
- <tr>
- <td><input type="radio"
wicket:id="user"/><label wicket:for="recipients"><wicket:message key="216"
/></label></td>
- <td class="om-select2"><select
wicket:id="recipients" class="input invitees"></select></td>
- </tr>
- <tr wicket:id="groupContainer">
- <td><input type="radio"
wicket:id="group"/><label wicket:for="groups"><wicket:message key="126"
/></label></td>
- <td class="om-select2"><select
wicket:id="groups" class="input invitees"></select></td>
- </tr>
- <tr>
- <td><label wicket:for="subject"><wicket:message
key="215" /></label></td>
- <td><input type="text" wicket:id="subject"
class="input"/></td>
- </tr>
- <tr wicket:id="sip-container">
- <td><wicket:message key="1003"/></td>
- <td><span wicket:id="room.confno"></span></td>
- </tr>
- <tr>
- <td><label wicket:for="message"><wicket:message
key="217" /></label></td>
- <td><textarea wicket:id="message" style="width:
280px; height: 70px;"></textarea></td>
- </tr>
- <tr>
- <td colspan="2"><input
wicket:id="passwordProtected" type="checkbox"/> <label
-
wicket:for="passwordProtected"><wicket:message key="524" /></label></td>
- </tr>
- <tr>
- <td><label
wicket:for="password"><wicket:message key="525" /></label></td>
- <td><input wicket:id="password"
type="password"/></td>
- </tr>
- <tr>
- <td><wicket:message key="526" /></td>
- <td>
- <div wicket:id="valid">
- <input type="radio"
wicket:id="one"/><label wicket:for="one"><wicket:message key="529" /></label>
- <input type="radio"
wicket:id="period"/><label wicket:for="period"><wicket:message key="528"
/></label>
- <input type="radio"
wicket:id="endless"/><label wicket:for="endless"><wicket:message key="527"
/></label>
- </div>
- </td>
- </tr>
- <tr>
- <td><label
wicket:for="validFrom"><wicket:message key="530" /></label></td>
- <td><span class="date time picker"
wicket:id="validFrom"></span></td>
- </tr>
- <tr>
- <td><label wicket:for="validTo"><wicket:message
key="531" /></label></td>
- <td><span class="date time picker"
wicket:id="validTo"></span></td>
- </tr>
- <tr>
- <td><label
wicket:for="timeZoneId"><wicket:message key="1143" /></label></td>
- <td><select wicket:id="timeZoneId"/></td>
- </tr>
- <tr>
- <td><label
wicket:for="language"><wicket:message key="59" /></label></td>
- <td><select wicket:id="language"/></td>
- </tr>
- <tr>
- <td colspan="2"><input wicket:id="url"
type="text" readonly="readonly" style="width: 100%;"/></td>
- </tr>
- </table>
- <span wicket:id="feedback"></span>
- </form>
+ <form wicket:id="form"></form>
</wicket:panel>
</html>
Copied:
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.java
(from r1756947,
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.java)
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.java?p2=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.java&p1=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.java&r1=1756947&r2=1756948&rev=1756948&view=diff
==============================================================================
---
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/InvitationDialog.java
(original)
+++
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.java
Fri Aug 19 17:29:56 2016
@@ -16,144 +16,29 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.openmeetings.web.room;
+package org.apache.openmeetings.web.common;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
-import static org.apache.openmeetings.web.app.Application.getBean;
-import static org.apache.openmeetings.web.app.Application.getInvitationLink;
-import static org.apache.openmeetings.web.app.WebSession.AVAILABLE_TIMEZONES;
-import static org.apache.openmeetings.web.app.WebSession.getRights;
-import static org.apache.openmeetings.web.app.WebSession.getUserId;
-
-import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Collection;
import java.util.List;
-import java.util.UUID;
-import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
-import org.apache.openmeetings.db.dao.room.InvitationDao;
-import org.apache.openmeetings.db.dao.room.RoomDao;
-import org.apache.openmeetings.db.dao.user.GroupDao;
-import org.apache.openmeetings.db.dao.user.GroupUserDao;
-import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.room.Invitation;
-import org.apache.openmeetings.db.entity.room.Invitation.MessageType;
-import org.apache.openmeetings.db.entity.room.Invitation.Valid;
-import org.apache.openmeetings.db.entity.user.Group;
-import org.apache.openmeetings.db.entity.user.GroupUser;
-import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.db.entity.user.User.Type;
-import org.apache.openmeetings.db.util.AuthLevelUtil;
-import org.apache.openmeetings.service.room.InvitationManager;
-import org.apache.openmeetings.util.crypt.CryptProvider;
import org.apache.openmeetings.web.app.Application;
-import org.apache.openmeetings.web.app.WebSession;
-import org.apache.openmeetings.web.common.LanguageDropDown;
-import org.apache.openmeetings.web.util.UserMultiChoice;
import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior;
-import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
-import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;
-import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.DropDownChoice;
import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.form.PasswordTextField;
-import org.apache.wicket.markup.html.form.Radio;
-import org.apache.wicket.markup.html.form.RadioGroup;
-import org.apache.wicket.markup.html.form.TextArea;
-import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.model.CompoundPropertyModel;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
-import org.apache.wicket.model.PropertyModel;
-import org.apache.wicket.model.util.CollectionModel;
-import org.apache.wicket.util.string.Strings;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-import org.wicketstuff.select2.ChoiceProvider;
-import org.wicketstuff.select2.Response;
-import org.wicketstuff.select2.Select2MultiChoice;
-import com.googlecode.wicket.jquery.core.Options;
import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
-import com.googlecode.wicket.kendo.ui.form.datetime.AjaxDateTimePicker;
-import com.googlecode.wicket.kendo.ui.form.datetime.DateTimePicker;
-import com.googlecode.wicket.kendo.ui.panel.KendoFeedbackPanel;
public class InvitationDialog extends AbstractFormDialog<Invitation> {
private static final long serialVersionUID = 1L;
- private static final Logger log =
Red5LoggerFactory.getLogger(InvitationDialog.class, webAppRootKey);
- private final DialogButton generate = new DialogButton("generate",
Application.getString(1526));
- private final DialogButton send = new DialogButton("send",
Application.getString(218));
+ public final DialogButton generate = new DialogButton("generate",
Application.getString(1526));
+ public final DialogButton send = new DialogButton("send",
Application.getString(218));
private final DialogButton cancel = new DialogButton("cancel",
Application.getString(219));
private final InvitationForm form;
- private final KendoFeedbackPanel feedback = new
KendoFeedbackPanel("feedback", new Options("button", true));
- private final Long roomId;
- private final IModel<String> subject = Model.of((String)null);
- private final IModel<String> message = Model.of((String)null);
- private final IModel<String> tzId = Model.of((String)null);
- private final IModel<InviteeType> inviteeType =
Model.of(InviteeType.user);
- private long lang;
- private final TextField<String> url = new TextField<String>("url",
Model.of((String)null));
- enum InviteeType {
- user
- , group
- }
- private final UserMultiChoice recipients = new
UserMultiChoice("recipients", new CollectionModel<User>(new ArrayList<User>()));
- private final Select2MultiChoice<Group> groups = new
Select2MultiChoice<Group>("groups"
- , new CollectionModel<Group>(new ArrayList<Group>())
- , new ChoiceProvider<Group>() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void query(String term, int page,
Response<Group> response) {
- if
(WebSession.getRights().contains(User.Right.Admin)) {
- List<Group> groups =
getBean(GroupDao.class).get(0, Integer.MAX_VALUE);
- for (Group g : groups) {
- if
(Strings.isEmpty(term) ||
g.getName().toLowerCase().contains(term.toLowerCase())) {
- response.add(g);
- }
- }
- } else {
- User u =
getBean(UserDao.class).get(getUserId());
- for (GroupUser ou :
u.getGroupUsers()) {
- if
(Strings.isEmpty(term) ||
ou.getGroup().getName().toLowerCase().contains(term.toLowerCase())) {
-
response.add(ou.getGroup());
- }
- }
- }
- }
-
- @Override
- public Collection<Group>
toChoices(Collection<String> ids) {
- Collection<Group> c = new ArrayList<>();
- for (String id : ids) {
-
c.add(getBean(GroupDao.class).get(Long.valueOf(id)));
- }
- return c;
- }
-
- @Override
- public String getDisplayValue(Group choice) {
- return choice.getName();
- }
-
- @Override
- public String getIdValue(Group choice) {
- Long id = choice.getId();
- return id == null ? null : "" + id;
- }
- });
- private final WebMarkupContainer sipContainer = new
WebMarkupContainer("sip-container");
-
- public InvitationDialog(String id, Long roomId) {
- super(id, Application.getString(214), new
CompoundPropertyModel<Invitation>(new Invitation()));
- this.roomId = roomId;
- add(form = new InvitationForm("form", getModel()));
+
+ public InvitationDialog(String id, final InvitationForm _form) {
+ super(id, Application.getString(214),_form.getModel());
+ add(form = _form);
}
@Override
@@ -162,33 +47,9 @@ public class InvitationDialog extends Ab
}
public void updateModel(AjaxRequestTarget target) {
- Invitation i = new Invitation();
- User u = getBean(UserDao.class).get(getUserId());
- i.setInvitedBy(u);
- i.setRoom(getBean(RoomDao.class).get(roomId));
- if (i.getRoom() != null) {
- target.add(sipContainer.replace(new
Label("room.confno",
i.getRoom().getConfno())).setVisible(i.getRoom().isSipEnabled()));
- }
- Calendar d = Calendar.getInstance();
- i.setValidFrom(d.getTime());
- d.add(Calendar.DATE, 1);
- i.setValidTo(d.getTime());
- i.setPassword(null);
- i.setHash(null);
- subject.setObject(null);
- message.setObject(null);
- recipients.setModelObject(new ArrayList<User>());
- recipients.setEnabled(true);
- groups.setModelObject(new ArrayList<Group>());
- groups.setEnabled(false);
- tzId.setObject(u.getTimeZoneId());
- lang = u.getLanguageId();
- url.setModelObject(null);
- inviteeType.setObject(InviteeType.user);
- form.setModelObject(i);
+ form.updateModel(target);
send.setEnabled(false, target);
generate.setEnabled(false, target);
- target.add(form);
}
@Override
@@ -216,203 +77,18 @@ public class InvitationDialog extends Ab
@Override
protected void onError(AjaxRequestTarget target) {
- target.add(feedback);
+ form.onError(target);
}
@Override
public void onClick(AjaxRequestTarget target, DialogButton button) {
- //TODO need to be reviewed
- if (button.equals(cancel)) {
- super.onClick(target, button);
- } else if (button.equals(generate)) {
- Invitation i =
create(recipients.getModelObject().iterator().next());
- form.setModelObject(i);
-
url.setModelObject(getInvitationLink(getBean(ConfigurationDao.class).getBaseUrl(),
i));
- target.add(url);
- } else if (button.equals(send)) {
- if (Strings.isEmpty(url.getModelObject())) {
- if (inviteeType.getObject() ==
InviteeType.user) {
- for (User u :
recipients.getModelObject()) {
- Invitation i = create(u);
- try {
-
getBean(InvitationManager.class).sendInvitationLink(i, MessageType.Create,
subject.getObject(), message.getObject(), false);
- } catch (Exception e) {
- log.error("error while
sending invitation by User ", e);
- }
- }
- } else {
- for (Group g : groups.getModelObject())
{
- for (GroupUser ou :
getBean(GroupUserDao.class).get(g.getId(), 0, Integer.MAX_VALUE)) {
- Invitation i =
create(ou.getUser());
- try {
-
getBean(InvitationManager.class).sendInvitationLink(i, MessageType.Create,
subject.getObject(), message.getObject(), false);
- } catch (Exception e) {
-
log.error("error while sending invitation by Group ", e);
- }
- }
- }
- }
- } else {
- Invitation i = form.getModelObject();
- try {
-
getBean(InvitationManager.class).sendInvitationLink(i, MessageType.Create,
subject.getObject(), message.getObject(), false);
- } catch (Exception e) {
- log.error("error while sending
invitation by URL ", e);
- }
- }
+ if (!form.onSubmit(target, button.equals(generate),
button.equals(send))) {
super.onClick(target, button);
}
}
- private Invitation create(User u) {
- Invitation i = new Invitation(form.getModelObject());
- i.setId(null);
- i.setUpdated(null);
- i.setUsed(false);
-
- i.setPassword(CryptProvider.get().hash(i.getPassword()));
//FIXME should be hidden
- //FIXME another HACK
- Calendar d = Calendar.getInstance();
- d.setTime(i.getValidFrom());
- d.add(Calendar.MINUTE, -5);
- i.setValidFrom(d.getTime());
-
- i.setInvitee(u);
- i.setHash(UUID.randomUUID().toString());
- if (Type.contact == u.getType()) {
- //TODO not sure it is right
- u.setLanguageId(lang);
- }
- return getBean(InvitationDao.class).update(i);
- }
-
@Override
protected void onSubmit(AjaxRequestTarget target) {
//designed to be empty because of multiple submit buttons
}
-
- private class InvitationForm extends Form<Invitation> {
- private static final long serialVersionUID = 1L;
- private final PasswordTextField passwd;
- private final DateTimePicker from;
- private final DateTimePicker to;
- private final DropDownChoice<String> timeZoneId;
- private final WebMarkupContainer groupContainer = new
WebMarkupContainer("groupContainer");
-
- public InvitationForm(String id, IModel<Invitation> model) {
- super(id, model);
- boolean showGroups =
AuthLevelUtil.hasAdminLevel(getRights());
- RadioGroup<InviteeType> rdi = new
RadioGroup<>("inviteeType", inviteeType);
- add(rdi.add(new
AjaxFormChoiceComponentUpdatingBehavior() {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onUpdate(AjaxRequestTarget
target) {
- boolean groupsEnabled =
InviteeType.group == inviteeType.getObject();
- updateButtons(target);
-
target.add(groups.setEnabled(groupsEnabled),
recipients.setEnabled(!groupsEnabled));
- }
- }));
- //TODO list should be updated on open
-
rdi.add(recipients.setLabel(Model.of(Application.getString(216))).setRequired(true).add(new
AjaxFormComponentUpdatingBehavior("change") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onUpdate(AjaxRequestTarget
target) {
- url.setModelObject(null);
- updateButtons(target);
- }
- }).setOutputMarkupId(true));
- groupContainer.add(
-
groups.setLabel(Model.of(Application.getString(126))).setRequired(true).add(new
AjaxFormComponentUpdatingBehavior("change") {
- private static final long
serialVersionUID = 1L;
-
- @Override
- protected void
onUpdate(AjaxRequestTarget target) {
- url.setModelObject(null);
- updateButtons(target);
- }
- }).setOutputMarkupId(true)
- , new Radio<InviteeType>("group",
Model.of(InviteeType.group))
- );
- rdi.add(groupContainer.setVisible(showGroups));
- rdi.add(new Radio<InviteeType>("user",
Model.of(InviteeType.user)));
-
- rdi.add(new TextField<String>("subject", subject));
- rdi.add(new TextArea<String>("message", message));
- rdi.add(new AjaxCheckBox("passwordProtected") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onUpdate(AjaxRequestTarget
target) {
-
InvitationForm.this.getModelObject().setPasswordProtected(getConvertedInput());
- passwd.setEnabled(getConvertedInput());
- target.add(passwd);
- }
- });
- RadioGroup<Valid> valid = new
RadioGroup<Valid>("valid");
- valid.add(new AjaxFormChoiceComponentUpdatingBehavior()
{
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onUpdate(AjaxRequestTarget
target) {
- boolean dateEnabled =
InvitationForm.this.getModelObject().getValid() == Valid.Period;
-
target.add(from.setEnabled(dateEnabled), to.setEnabled(dateEnabled),
timeZoneId.setEnabled(dateEnabled));
- }
- });
- rdi.add(valid.add(new Radio<Valid>("one",
Model.of(Valid.OneTime))
- , new Radio<Valid>("period",
Model.of(Valid.Period))
- , new Radio<Valid>("endless",
Model.of(Valid.Endless))));
- rdi.add(passwd = new PasswordTextField("password"));
- Invitation i = getModelObject();
-
passwd.setLabel(Model.of(Application.getString(525))).setOutputMarkupId(true).setEnabled(i.isPasswordProtected());
- rdi.add(from = new AjaxDateTimePicker("validFrom",
"yyyy/MM/dd", "HH:mm:ss")); //FIXME use user locale
- rdi.add(to = new AjaxDateTimePicker("validTo",
"yyyy/MM/dd", "HH:mm:ss")); //FIXME use user locale
- rdi.add(timeZoneId = new
DropDownChoice<String>("timeZoneId", tzId, AVAILABLE_TIMEZONES));
- from.setEnabled(i.getValid() ==
Valid.Period).setOutputMarkupId(true);
- to.setEnabled(i.getValid() ==
Valid.Period).setOutputMarkupId(true);
- timeZoneId.setEnabled(i.getValid() ==
Valid.Period).setOutputMarkupId(true)
- .add(new
AjaxFormComponentUpdatingBehavior("change") {
- private static final long
serialVersionUID = 1L;
-
- @Override
- protected void
onUpdate(AjaxRequestTarget target) {
- //no-op added to preserve
selection
- }
- });
- rdi.add(new LanguageDropDown("language", new
PropertyModel<Long>(InvitationDialog.this, "lang")));
- rdi.add(url.setOutputMarkupId(true));
-
rdi.add(sipContainer.setOutputMarkupPlaceholderTag(true).setOutputMarkupId(true));
- sipContainer.add(new Label("room.confno",
"")).setVisible(false);
- add(feedback);
- }
-
- private void updateButtons(AjaxRequestTarget target) {
- if (inviteeType.getObject() == InviteeType.user) {
- Collection<User> to =
recipients.getModelObject();
- send.setEnabled(to.size() > 0, target);
- generate.setEnabled(to.size() == 1, target);
- } else {
- Collection<Group> to = groups.getModelObject();
- send.setEnabled(to.size() > 0, target);
- generate.setEnabled(false, target);
- }
- }
-
- @Override
- protected void onValidate() {
- if (from.getConvertedInput() != null &&
to.getConvertedInput() != null &&
from.getConvertedInput().after(to.getConvertedInput())) {
- error(Application.getString(1592));
- }
- }
- }
-
- @Override
- protected void onDetach() {
- subject.detach();
- message.detach();
- tzId.detach();
- inviteeType.detach();
- super.onDetach();
- }
}
Added:
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.html
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.html?rev=1756948&view=auto
==============================================================================
---
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.html
(added)
+++
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.html
Fri Aug 19 17:29:56 2016
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+ <div class="invitation table">
+ <div>
+ <div class="column label"><label
wicket:for="subject"><wicket:message key="215" /></label></div>
+ <div class="column data"><input type="text"
wicket:id="subject" class="input"/></div>
+ </div>
+ <wicket:child/>
+ <div>
+ <div class="column label"><label
wicket:for="message"><wicket:message key="217" /></label></div>
+ <div class="column data"><textarea wicket:id="message"
style="width: 280px; height: 70px;"></textarea></div>
+ </div>
+ <div>
+ <input wicket:id="passwordProtected"
type="checkbox"/> <label
+
wicket:for="passwordProtected"><wicket:message key="524" /></label>
+ </div>
+ <div>
+ <div class="column label"><label
wicket:for="password"><wicket:message key="525" /></label></div>
+ <div class="column data"><input wicket:id="password"
type="password"/></div>
+ </div>
+ <div>
+ <div class="column label"><wicket:message key="526"
/></div>
+ <div class="column data">
+ <div wicket:id="valid">
+ <input type="radio"
wicket:id="one"/><label wicket:for="one"><wicket:message key="529" /></label>
+ <input type="radio"
wicket:id="period"/><label wicket:for="period"><wicket:message key="528"
/></label>
+ <input type="radio"
wicket:id="endless"/><label wicket:for="endless"><wicket:message key="527"
/></label>
+ </div>
+ </div>
+ </div>
+ <div>
+ <div class="column label"><label
wicket:for="from"><wicket:message key="530" /></label></div>
+ <div class="column data"><span class="date time picker"
wicket:id="from"></span></div>
+ </div>
+ <div>
+ <div class="column label"><label
wicket:for="to"><wicket:message key="531" /></label></div>
+ <div class="column data"><span class="date time picker"
wicket:id="to"></span></div>
+ </div>
+ <div>
+ <div class="column label"><label
wicket:for="timeZoneId"><wicket:message key="1143" /></label></div>
+ <div class="column data"><select
wicket:id="timeZoneId"/></div>
+ </div>
+ <div>
+ <div class="column label"><label
wicket:for="language"><wicket:message key="59" /></label></div>
+ <div class="column data"><select
wicket:id="language"/></div>
+ </div>
+ <div>
+ <input wicket:id="url" type="text" readonly="readonly"
style="width: 100%;"/>
+ </div>
+ </div>
+ <span wicket:id="feedback"></span>
+</wicket:panel>
+</html>
Added:
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java?rev=1756948&view=auto
==============================================================================
---
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
(added)
+++
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
Fri Aug 19 17:29:56 2016
@@ -0,0 +1,174 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.common;
+
+import static org.apache.openmeetings.util.CalendarHelper.getDate;
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.AVAILABLE_TIMEZONES;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import java.util.UUID;
+
+import org.apache.openmeetings.db.dao.room.InvitationDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.room.Invitation;
+import org.apache.openmeetings.db.entity.room.Invitation.Valid;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Type;
+import org.apache.openmeetings.util.crypt.CryptProvider;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior;
+import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
+import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;
+import org.apache.wicket.markup.html.form.DropDownChoice;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.PasswordTextField;
+import org.apache.wicket.markup.html.form.Radio;
+import org.apache.wicket.markup.html.form.RadioGroup;
+import org.apache.wicket.markup.html.form.TextArea;
+import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.markup.html.panel.IMarkupSourcingStrategy;
+import org.apache.wicket.markup.html.panel.PanelMarkupSourcingStrategy;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.Model;
+import org.threeten.bp.LocalDateTime;
+
+import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.kendo.ui.panel.KendoFeedbackPanel;
+
+public abstract class InvitationForm extends Form<Invitation> {
+ private static final long serialVersionUID = 1L;
+ private final KendoFeedbackPanel feedback = new
KendoFeedbackPanel("feedback", new Options("button", true));
+ private final PasswordTextField passwd;
+ private final DropDownChoice<String> timeZoneId = new
DropDownChoice<String>("timeZoneId", Model.of((String)null),
AVAILABLE_TIMEZONES);
+ private final OmDateTimePicker from = new OmDateTimePicker("from",
Model.of(LocalDateTime.now()));
+ private final OmDateTimePicker to = new OmDateTimePicker("to",
Model.of(LocalDateTime.now()));
+ private final LanguageDropDown lang = new LanguageDropDown("language",
Model.of((Long)null));
+ protected final TextField<String> subject = new
TextField<String>("subject", Model.of((String)null));
+ protected final TextArea<String> message = new
TextArea<String>("message", Model.of((String)null));
+ protected final TextField<String> url = new TextField<String>("url",
Model.of((String)null));
+ protected InvitationDialog dialog;
+
+ public InvitationForm(String id) {
+ super(id, new CompoundPropertyModel<Invitation>(new
Invitation()));
+ setOutputMarkupId(true);
+
+ add(subject, message);
+ add(new AjaxCheckBox("passwordProtected") {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onUpdate(AjaxRequestTarget target) {
+
InvitationForm.this.getModelObject().setPasswordProtected(getConvertedInput());
+ passwd.setEnabled(getConvertedInput());
+ target.add(passwd);
+ }
+ });
+ RadioGroup<Valid> valid = new RadioGroup<Valid>("valid");
+ valid.add(new AjaxFormChoiceComponentUpdatingBehavior() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onUpdate(AjaxRequestTarget target) {
+ boolean dateEnabled =
InvitationForm.this.getModelObject().getValid() == Valid.Period;
+ target.add(from.setEnabled(dateEnabled),
to.setEnabled(dateEnabled), timeZoneId.setEnabled(dateEnabled));
+ }
+ });
+ add(valid.add(new Radio<Valid>("one", Model.of(Valid.OneTime))
+ , new Radio<Valid>("period",
Model.of(Valid.Period))
+ , new Radio<Valid>("endless",
Model.of(Valid.Endless))));
+ add(passwd = new PasswordTextField("password"));
+ Invitation i = getModelObject();
+
passwd.setLabel(Model.of(Application.getString(525))).setOutputMarkupId(true).setEnabled(i.isPasswordProtected());
+ add(from, to, timeZoneId);
+ from.setEnabled(i.getValid() ==
Valid.Period).setOutputMarkupId(true);
+ to.setEnabled(i.getValid() ==
Valid.Period).setOutputMarkupId(true);
+ timeZoneId.setEnabled(i.getValid() ==
Valid.Period).setOutputMarkupId(true)
+ .add(new AjaxFormComponentUpdatingBehavior("change") {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onUpdate(AjaxRequestTarget
target) {
+ //no-op added to preserve selection
+ }
+ });
+ add(url.setOutputMarkupId(true));
+ add(lang, feedback);
+ }
+
+ @Override
+ protected void onValidate() {
+ if (from.getConvertedInput() != null && to.getConvertedInput()
!= null && from.getConvertedInput().isAfter(to.getConvertedInput())) {
+ error(Application.getString(1592));
+ }
+ }
+
+ protected Invitation create(User u) {
+ Invitation i = new Invitation(getModelObject());
+ i.setId(null);
+ i.setUpdated(null);
+ i.setUsed(false);
+
+ i.setPassword(CryptProvider.get().hash(i.getPassword()));
//FIXME should be hidden
+ i.setValidFrom(getDate(from.getModelObject().minusMinutes(5),
timeZoneId.getModelObject()));
+ i.setValidTo(getDate(to.getModelObject(),
timeZoneId.getModelObject()));
+
+ i.setInvitee(u);
+ i.setHash(UUID.randomUUID().toString());
+ if (Type.contact == u.getType()) {
+ //TODO not sure it is right
+ u.setLanguageId(lang.getModelObject());
+ }
+ return getBean(InvitationDao.class).update(i);
+ }
+
+ @Override
+ protected IMarkupSourcingStrategy newMarkupSourcingStrategy() {
+ return new PanelMarkupSourcingStrategy(false);
+ }
+
+ public void onError(AjaxRequestTarget target) {
+ target.add(feedback);
+ }
+
+ public void updateModel(AjaxRequestTarget target) {
+ Invitation i = new Invitation();
+ User u = getBean(UserDao.class).get(getUserId());
+ i.setInvitedBy(u);
+ i.setRoom(null);
+ from.setModelObject(LocalDateTime.now());
+ to.setModelObject(LocalDateTime.now().plusDays(1));
+ i.setPassword(null);
+ i.setHash(null);
+ subject.setModelObject(null);
+ message.setModelObject(null);
+ timeZoneId.setModelObject(u.getTimeZoneId());
+ lang.setModelObject(u.getLanguageId());
+ url.setModelObject(null);
+ setModelObject(i);
+ target.add(this);
+ }
+
+ public void setDialog(InvitationDialog dialog) {
+ this.dialog = dialog;
+ }
+
+ public abstract boolean onSubmit(AjaxRequestTarget target, boolean
generate, boolean send);
+}
\ No newline at end of file
Added:
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomInvitationForm.html
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomInvitationForm.html?rev=1756948&view=auto
==============================================================================
---
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomInvitationForm.html
(added)
+++
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomInvitationForm.html
Fri Aug 19 17:29:56 2016
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:extend>
+ <div wicket:id="inviteeType">
+ <div>
+ <div class="column label"><input type="radio"
wicket:id="user"/><label wicket:for="recipients"><wicket:message key="216"
/></label></div>
+ <div class="column data om-select2"><select
wicket:id="recipients" class="input invitees"></select></div>
+ </div>
+ <div wicket:id="groupContainer">
+ <div class="column label"><input type="radio"
wicket:id="group"/><label wicket:for="groups"><wicket:message key="126"
/></label></div>
+ <div class="column data om-select2"><select
wicket:id="groups" class="input invitees"></select></div>
+ </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>
+</wicket:extend>
+</html>
Added:
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomInvitationForm.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomInvitationForm.java?rev=1756948&view=auto
==============================================================================
---
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomInvitationForm.java
(added)
+++
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomInvitationForm.java
Fri Aug 19 17:29:56 2016
@@ -0,0 +1,232 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.room;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.Application.getInvitationLink;
+import static org.apache.openmeetings.web.app.WebSession.getRights;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.user.GroupDao;
+import org.apache.openmeetings.db.dao.user.GroupUserDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.room.Invitation;
+import org.apache.openmeetings.db.entity.room.Invitation.MessageType;
+import org.apache.openmeetings.db.entity.user.Group;
+import org.apache.openmeetings.db.entity.user.GroupUser;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.util.AuthLevelUtil;
+import org.apache.openmeetings.service.room.InvitationManager;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.common.InvitationForm;
+import org.apache.openmeetings.web.util.UserMultiChoice;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior;
+import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.Radio;
+import org.apache.wicket.markup.html.form.RadioGroup;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.util.CollectionModel;
+import org.apache.wicket.util.string.Strings;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.wicketstuff.select2.ChoiceProvider;
+import org.wicketstuff.select2.Response;
+import org.wicketstuff.select2.Select2MultiChoice;
+
+public class RoomInvitationForm extends InvitationForm {
+ private static final long serialVersionUID = 1L;
+ private static final Logger log =
Red5LoggerFactory.getLogger(RoomInvitationForm.class, webAppRootKey);
+ private final RadioGroup<InviteeType> rdi = new
RadioGroup<>("inviteeType", Model.of(InviteeType.user));
+ private final Long roomId;
+ private final WebMarkupContainer groupContainer = new
WebMarkupContainer("groupContainer");
+ final UserMultiChoice recipients = new UserMultiChoice("recipients",
new CollectionModel<User>(new ArrayList<User>()));
+ final Select2MultiChoice<Group> groups = new
Select2MultiChoice<Group>("groups"
+ , new CollectionModel<Group>(new ArrayList<Group>())
+ , new ChoiceProvider<Group>() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void query(String term, int page,
Response<Group> response) {
+ if
(WebSession.getRights().contains(User.Right.Admin)) {
+ List<Group> groups =
getBean(GroupDao.class).get(0, Integer.MAX_VALUE);
+ for (Group g : groups) {
+ if
(Strings.isEmpty(term) ||
g.getName().toLowerCase().contains(term.toLowerCase())) {
+ response.add(g);
+ }
+ }
+ } else {
+ User u =
getBean(UserDao.class).get(getUserId());
+ for (GroupUser ou :
u.getGroupUsers()) {
+ if
(Strings.isEmpty(term) ||
ou.getGroup().getName().toLowerCase().contains(term.toLowerCase())) {
+
response.add(ou.getGroup());
+ }
+ }
+ }
+ }
+
+ @Override
+ public Collection<Group>
toChoices(Collection<String> ids) {
+ Collection<Group> c = new ArrayList<>();
+ for (String id : ids) {
+
c.add(getBean(GroupDao.class).get(Long.valueOf(id)));
+ }
+ return c;
+ }
+
+ @Override
+ public String getDisplayValue(Group choice) {
+ return choice.getName();
+ }
+
+ @Override
+ public String getIdValue(Group choice) {
+ Long id = choice.getId();
+ return id == null ? null : "" + id;
+ }
+ });
+ final WebMarkupContainer sipContainer = new
WebMarkupContainer("sip-container");
+
+ enum InviteeType {
+ user
+ , group
+ }
+
+ public RoomInvitationForm(String id, Long roomId) {
+ super(id);
+ this.roomId = roomId;
+ boolean showGroups = AuthLevelUtil.hasAdminLevel(getRights());
+ add(rdi.add(new AjaxFormChoiceComponentUpdatingBehavior() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onUpdate(AjaxRequestTarget target) {
+ boolean groupsEnabled = InviteeType.group ==
rdi.getModelObject();
+ updateButtons(target);
+ target.add(groups.setEnabled(groupsEnabled),
recipients.setEnabled(!groupsEnabled));
+ }
+ }));
+
rdi.add(recipients.setLabel(Model.of(Application.getString(216))).setRequired(true).add(new
AjaxFormComponentUpdatingBehavior("change") {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onUpdate(AjaxRequestTarget target) {
+ url.setModelObject(null);
+ updateButtons(target);
+ }
+ }).setOutputMarkupId(true));
+ groupContainer.add(
+
groups.setLabel(Model.of(Application.getString(126))).setRequired(true).add(new
AjaxFormComponentUpdatingBehavior("change") {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onUpdate(AjaxRequestTarget
target) {
+ url.setModelObject(null);
+ updateButtons(target);
+ }
+ }).setOutputMarkupId(true)
+ , new Radio<InviteeType>("group",
Model.of(InviteeType.group))
+ );
+ rdi.add(groupContainer.setVisible(showGroups));
+ rdi.add(new Radio<InviteeType>("user",
Model.of(InviteeType.user)));
+
add(sipContainer.setOutputMarkupPlaceholderTag(true).setOutputMarkupId(true));
+ sipContainer.add(new Label("room.confno",
"")).setVisible(false);
+ }
+
+ private void updateButtons(AjaxRequestTarget target) {
+ if (rdi.getModelObject() == InviteeType.user) {
+ Collection<User> to = recipients.getModelObject();
+ dialog.send.setEnabled(to.size() > 0, target);
+ dialog.generate.setEnabled(to.size() == 1, target);
+ } else {
+ Collection<Group> to = groups.getModelObject();
+ dialog.send.setEnabled(to.size() > 0, target);
+ dialog.generate.setEnabled(false, target);
+ }
+ }
+
+ @Override
+ public void updateModel(AjaxRequestTarget target) {
+ super.updateModel(target);
+ Invitation i = getModelObject();
+ i.setRoom(getBean(RoomDao.class).get(roomId));
+ if (i.getRoom() != null) {
+ target.add(sipContainer.replace(new
Label("room.confno",
i.getRoom().getConfno())).setVisible(i.getRoom().isSipEnabled()));
+ }
+ recipients.setModelObject(new ArrayList<User>());
+ recipients.setEnabled(true);
+ groups.setModelObject(new ArrayList<Group>());
+ groups.setEnabled(false);
+ rdi.setModelObject(InviteeType.user);
+ }
+
+ @Override
+ public boolean onSubmit(AjaxRequestTarget target, boolean generate,
boolean send) {
+ //TODO need to be reviewed
+ if (generate) {
+ Invitation i =
create(recipients.getModelObject().iterator().next());
+ setModelObject(i);
+
url.setModelObject(getInvitationLink(getBean(ConfigurationDao.class).getBaseUrl(),
i));
+ target.add(url);
+ return true;
+ } else if (send) {
+ if (Strings.isEmpty(url.getModelObject())) {
+ if (rdi.getModelObject() == InviteeType.user) {
+ for (User u :
recipients.getModelObject()) {
+ Invitation i = create(u);
+ try {
+
getBean(InvitationManager.class).sendInvitationLink(i, MessageType.Create,
subject.getModelObject(), message.getModelObject(), false);
+ } catch (Exception e) {
+ log.error("error while
sending invitation by User ", e);
+ }
+ }
+ } else {
+ for (Group g : groups.getModelObject())
{
+ for (GroupUser ou :
getBean(GroupUserDao.class).get(g.getId(), 0, Integer.MAX_VALUE)) {
+ Invitation i =
create(ou.getUser());
+ try {
+
getBean(InvitationManager.class).sendInvitationLink(i, MessageType.Create,
subject.getModelObject(), message.getModelObject(), false);
+ } catch (Exception e) {
+
log.error("error while sending invitation by Group ", e);
+ }
+ }
+ }
+ }
+ } else {
+ Invitation i = getModelObject();
+ try {
+
getBean(InvitationManager.class).sendInvitationLink(i, MessageType.Create,
subject.getModelObject(), message.getModelObject(), false);
+ } catch (Exception e) {
+ log.error("error while sending
invitation by URL ", e);
+ }
+ }
+ }
+ return false;
+ }
+}
Modified:
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1756948&r1=1756947&r2=1756948&view=diff
==============================================================================
---
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
(original)
+++
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
Fri Aug 19 17:29:56 2016
@@ -46,6 +46,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.common.BasePanel;
+import org.apache.openmeetings.web.common.InvitationDialog;
import org.apache.openmeetings.web.room.poll.CreatePollDialog;
import org.apache.openmeetings.web.room.poll.PollResultsDialog;
import org.apache.openmeetings.web.room.poll.VoteDialog;
@@ -163,7 +164,9 @@ public class RoomPanel extends BasePanel
getBean(SessiondataDao.class).check(WebSession.getSid()); //keep SID alive
}
});
- add(invite = new InvitationDialog("invite", roomId));
+ RoomInvitationForm rif = new RoomInvitationForm("form", roomId);
+ add(invite = new InvitationDialog("invite", rif));
+ rif.setDialog(invite);
add(createPoll = new CreatePollDialog("createPoll", roomId));
add(vote = new VoteDialog("vote", roomId));
add(pollResults = new PollResultsDialog("pollResults", roomId));
Added:
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.html
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.html?rev=1756948&view=auto
==============================================================================
---
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.html
(added)
+++
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.html
Fri Aug 19 17:29:56 2016
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:extend>
+ <div>
+ <div>
+ <div class="column label"><label
wicket:for="recipients"><wicket:message key="216" /></label></div>
+ <div class="column data om-select2"><select
wicket:id="recipients" class="input invitees"></select></div>
+ </div>
+ </div>
+</wicket:extend>
+</html>
Added:
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.java?rev=1756948&view=auto
==============================================================================
---
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.java
(added)
+++
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.java
Fri Aug 19 17:29:56 2016
@@ -0,0 +1,112 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.record;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.Application.getInvitationLink;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.entity.room.Invitation;
+import org.apache.openmeetings.db.entity.room.Invitation.MessageType;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.service.room.InvitationManager;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.common.InvitationForm;
+import org.apache.openmeetings.web.util.UserMultiChoice;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.util.CollectionModel;
+import org.apache.wicket.util.string.Strings;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class RecordingInvitationForm extends InvitationForm {
+ private static final long serialVersionUID = 1L;
+ private static final Logger log =
Red5LoggerFactory.getLogger(RecordingInvitationForm.class, webAppRootKey);
+ private Long recordingId;
+ final UserMultiChoice recipients = new UserMultiChoice("recipients",
new CollectionModel<User>(new ArrayList<User>()));
+
+ public RecordingInvitationForm(String id) {
+ super(id);
+
add(recipients.setLabel(Model.of(Application.getString(216))).setRequired(true).add(new
AjaxFormComponentUpdatingBehavior("change") {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onUpdate(AjaxRequestTarget target) {
+ url.setModelObject(null);
+ updateButtons(target);
+ }
+ }).setOutputMarkupId(true));
+ }
+
+ private void updateButtons(AjaxRequestTarget target) {
+ Collection<User> to = recipients.getModelObject();
+ dialog.send.setEnabled(to.size() > 0, target);
+ dialog.generate.setEnabled(to.size() == 1, target);
+ }
+
+ @Override
+ public void updateModel(AjaxRequestTarget target) {
+ super.updateModel(target);
+ //Invitation i = getModelObject();
+ //i.setReco
+ recipients.setModelObject(new ArrayList<User>());
+ recipients.setEnabled(true);
+ }
+
+ @Override
+ public boolean onSubmit(AjaxRequestTarget target, boolean generate,
boolean send) {
+ //TODO need to be reviewed
+ if (generate) {
+ Invitation i =
create(recipients.getModelObject().iterator().next());
+ setModelObject(i);
+
url.setModelObject(getInvitationLink(getBean(ConfigurationDao.class).getBaseUrl(),
i));
+ target.add(url);
+ return true;
+ } else if (send) {
+ if (Strings.isEmpty(url.getModelObject())) {
+ for (User u : recipients.getModelObject()) {
+ Invitation i = create(u);
+ try {
+
getBean(InvitationManager.class).sendInvitationLink(i, MessageType.Create,
subject.getModelObject(), message.getModelObject(), false);
+ } catch (Exception e) {
+ log.error("error while sending
invitation by User ", e);
+ }
+ }
+ } else {
+ Invitation i = getModelObject();
+ try {
+
getBean(InvitationManager.class).sendInvitationLink(i, MessageType.Create,
subject.getModelObject(), message.getModelObject(), false);
+ } catch (Exception e) {
+ log.error("error while sending
invitation by URL ", e);
+ }
+ }
+ }
+ return false;
+ }
+
+ public void setRecordingId(Long recordingId) {
+ this.recordingId = recordingId;
+ }
+}
Modified:
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.html
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.html?rev=1756948&r1=1756947&r2=1756948&view=diff
==============================================================================
---
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.html
(original)
+++
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.html
Fri Aug 19 17:29:56 2016
@@ -39,12 +39,10 @@
<td><span wicket:id="roomName"></span></td>
</tr>
</table>
- <table>
- <tr>
- <td><span wicket:id="downloadBtn"></span></td>
- <td><button
wicket:id="re-convert"><wicket:message key="1600"/></button></td>
- </tr>
- </table>
+ <span wicket:id="downloadBtn"></span>
+ <button wicket:id="re-convert"><wicket:message
key="1600"/></button>
+ <button wicket:id="share"><wicket:message
key="button.label.share"/></button>
</form>
+ <div wicket:id="invitation"></div>
</wicket:panel>
</html>
Modified:
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java?rev=1756948&r1=1756947&r2=1756948&view=diff
==============================================================================
---
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
(original)
+++
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
Fri Aug 19 17:29:56 2016
@@ -18,6 +18,8 @@
*/
package org.apache.openmeetings.web.user.record;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4;
+import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
import static org.apache.openmeetings.util.OmFileHelper.getRecording;
import static org.apache.openmeetings.util.OmFileHelper.getRecordingMetaData;
import static org.apache.openmeetings.util.OmFileHelper.isRecordingExists;
@@ -27,15 +29,16 @@ import static org.apache.openmeetings.we
import java.util.ArrayList;
import java.util.List;
+import org.apache.openmeetings.core.converter.IRecordingConverter;
import org.apache.openmeetings.core.converter.InterviewConverter;
import org.apache.openmeetings.core.converter.RecordingConverter;
-import org.apache.openmeetings.core.converter.IRecordingConverter;
import org.apache.openmeetings.db.dao.record.RecordingMetaDataDao;
import org.apache.openmeetings.db.dao.room.RoomDao;
import org.apache.openmeetings.db.entity.record.Recording;
import org.apache.openmeetings.db.entity.record.Recording.Status;
import org.apache.openmeetings.db.entity.record.RecordingMetaData;
import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.web.common.InvitationDialog;
import org.apache.openmeetings.web.util.AjaxDownload;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.basic.Label;
@@ -79,6 +82,17 @@ public class VideoInfo extends Panel {
private final IModel<Recording> rm = new
CompoundPropertyModel<Recording>(new Recording());
private final IModel<String> roomName = Model.of((String)null);
private boolean isInterview = false;
+ private final InvitationDialog invite;
+ RecordingInvitationForm rif = new RecordingInvitationForm("form");
+ private final AjaxButton share = new AjaxButton("share") {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onSubmit(AjaxRequestTarget target, Form<?> form)
{
+ rif.setRecordingId(rm.getObject().getId());
+ invite.open(target);
+ }
+ };
public VideoInfo(String id) {
this(id, null);
@@ -90,8 +104,11 @@ public class VideoInfo extends Panel {
setDefaultModel(rm);
form.add(new Label("name"), new Label("duration"), new
Label("recordEnd"), new Label("roomName", roomName),
- downloadBtn.setEnabled(false),
reConvert.setEnabled(false));
+ downloadBtn.setEnabled(false),
reConvert.setEnabled(false), share.setEnabled(false));
add(download);
+ add(invite = new InvitationDialog("invitation", rif));
+ rif.setDialog(invite);
+
update(null, r);
}
@@ -126,7 +143,9 @@ public class VideoInfo extends Panel {
}
}
reConvert.setEnabled(reConvEnabled);
-
downloadBtn.setEnabled(isRecordingExists(r.getAlternateDownload()) ||
isRecordingExists(r.getHash()));
+ boolean exists = isRecordingExists(r.getAlternateDownload()) ||
isRecordingExists(r.getHash());
+ downloadBtn.setEnabled(exists);
+ share.setEnabled(exists);
if (target != null) {
target.add(form);
}
@@ -150,20 +169,39 @@ public class VideoInfo extends Panel {
private List<IMenuItem> newDownloadMenuList() {
List<IMenuItem> list = new ArrayList<>();
+ //mp4
+ list.add(new MenuItem(EXTENSION_MP4,
JQueryIcon.ARROWTHICKSTOP_1_S) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public boolean isEnabled() {
+ Recording r = rm.getObject();
+ return r != null &&
isRecordingExists(r.getHash() + MP4_EXTENSION);
+ }
+
+ @Override
+ public void onClick(AjaxRequestTarget target) {
+ String filename = rm.getObject().getHash() +
MP4_EXTENSION;
+ download.setFileName(filename);
+ download.setResourceStream(new
FileResourceStream(getRecording(filename)));
+ download.initiate(target);
+ }
+ });
//avi
list.add(new MenuItem(getString("884"),
JQueryIcon.ARROWTHICKSTOP_1_S) {
private static final long serialVersionUID = 1L;
@Override
public boolean isEnabled() {
- Recording r = VideoInfo.this.rm.getObject();
+ Recording r = rm.getObject();
return r != null &&
isRecordingExists(r.getAlternateDownload());
}
@Override
public void onClick(AjaxRequestTarget target) {
-
download.setFileName(rm.getObject().getAlternateDownload());
- download.setResourceStream(new
FileResourceStream(getRecording(rm.getObject().getAlternateDownload())));
+ Recording r = rm.getObject();
+ download.setFileName(r.getAlternateDownload());
+ download.setResourceStream(new
FileResourceStream(getRecording(r.getAlternateDownload())));
download.initiate(target);
}
});
@@ -173,14 +211,15 @@ public class VideoInfo extends Panel {
@Override
public boolean isEnabled() {
- Recording r = VideoInfo.this.rm.getObject();
- return r != null &&
isRecordingExists(r.getAlternateDownload());
+ Recording r = rm.getObject();
+ return r != null &&
isRecordingExists(r.getHash());
}
@Override
public void onClick(AjaxRequestTarget target) {
- download.setFileName(rm.getObject().getHash());
- download.setResourceStream(new
FileResourceStream(getRecording(rm.getObject().getHash())));
+ Recording r = rm.getObject();
+ download.setFileName(r.getHash());
+ download.setResourceStream(new
FileResourceStream(getRecording(r.getHash())));
download.initiate(target);
}
});
Modified:
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/menu.css
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/menu.css?rev=1756948&r1=1756947&r2=1756948&view=diff
==============================================================================
---
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/menu.css
(original)
+++
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/menu.css
Fri Aug 19 17:29:56 2016
@@ -48,3 +48,6 @@
max-height: 30px;
min-height: 30px;
}
+.recording .ui-menu .ui-menu-item {
+ display: block;
+}
Modified:
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/theme.css
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/theme.css?rev=1756948&r1=1756947&r2=1756948&view=diff
==============================================================================
---
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/theme.css
(original)
+++
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/theme.css
Fri Aug 19 17:29:56 2016
@@ -627,3 +627,17 @@ form .input {
.no-close .ui-dialog-titlebar-close {
display: none;
}
+.table {
+ position: relative;
+}
+.table .column {
+ display: inline-block;
+ margin-bottom: 5px;
+}
+.table .column.label {
+ width: 20%;
+}
+.table .column.data {
+ width: 75%;
+ vertical-align: middle;
+}
Modified:
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml?rev=1756948&r1=1756947&r2=1756948&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
Fri Aug 19 17:29:56 2016
@@ -1920,4 +1920,5 @@
<entry key="install.room.private.conference">Private Conference
Room</entry>
<entry key="appointment.tab.general">General</entry>
<entry key="appointment.tab.advanced">Advanced</entry>
+ <entry key="button.label.share">Share</entry>
</properties>
Copied:
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.html
(from r1756947,
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/InvitationDialog.html)
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.html?p2=openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.html&p1=openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/InvitationDialog.html&r1=1756947&r2=1756948&rev=1756948&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/InvitationDialog.html
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationDialog.html
Fri Aug 19 17:29:56 2016
@@ -20,67 +20,6 @@
-->
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
- <form wicket:id="form">
- <table wicket:id="inviteeType">
- <tr>
- <td><input type="radio"
wicket:id="user"/><label wicket:for="recipients"><wicket:message key="216"
/></label></td>
- <td class="om-select2"><select
wicket:id="recipients" class="input invitees"></select></td>
- </tr>
- <tr wicket:id="groupContainer">
- <td><input type="radio"
wicket:id="group"/><label wicket:for="groups"><wicket:message key="126"
/></label></td>
- <td class="om-select2"><select
wicket:id="groups" class="input invitees"></select></td>
- </tr>
- <tr>
- <td><label wicket:for="subject"><wicket:message
key="215" /></label></td>
- <td><input type="text" wicket:id="subject"
class="input"/></td>
- </tr>
- <tr wicket:id="sip-container">
- <td><wicket:message key="1003"/></td>
- <td><span wicket:id="room.confno"></span></td>
- </tr>
- <tr>
- <td><label wicket:for="message"><wicket:message
key="217" /></label></td>
- <td><textarea wicket:id="message" style="width:
280px; height: 70px;"></textarea></td>
- </tr>
- <tr>
- <td colspan="2"><input
wicket:id="passwordProtected" type="checkbox"/> <label
-
wicket:for="passwordProtected"><wicket:message key="524" /></label></td>
- </tr>
- <tr>
- <td><label
wicket:for="password"><wicket:message key="525" /></label></td>
- <td><input wicket:id="password"
type="password"/></td>
- </tr>
- <tr>
- <td><wicket:message key="526" /></td>
- <td>
- <div wicket:id="valid">
- <input type="radio"
wicket:id="one"/><label wicket:for="one"><wicket:message key="529" /></label>
- <input type="radio"
wicket:id="period"/><label wicket:for="period"><wicket:message key="528"
/></label>
- <input type="radio"
wicket:id="endless"/><label wicket:for="endless"><wicket:message key="527"
/></label>
- </div>
- </td>
- </tr>
- <tr>
- <td><label
wicket:for="validFrom"><wicket:message key="530" /></label></td>
- <td><span class="date time picker"
wicket:id="validFrom"></span></td>
- </tr>
- <tr>
- <td><label wicket:for="validTo"><wicket:message
key="531" /></label></td>
- <td><span class="date time picker"
wicket:id="validTo"></span></td>
- </tr>
- <tr>
- <td><label
wicket:for="timeZoneId"><wicket:message key="1143" /></label></td>
- <td><select wicket:id="timeZoneId"/></td>
- </tr>
- <tr>
- <td><label
wicket:for="language"><wicket:message key="59" /></label></td>
- <td><select wicket:id="language"/></td>
- </tr>
- <tr>
- <td colspan="2"><input wicket:id="url"
type="text" readonly="readonly" style="width: 100%;"/></td>
- </tr>
- </table>
- <span wicket:id="feedback"></span>
- </form>
+ <form wicket:id="form"></form>
</wicket:panel>
</html>