Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
 Sat Aug 20 02:52:45 2016
@@ -22,6 +22,7 @@ import static org.apache.openmeetings.we
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 
 import java.util.Date;
+import java.util.UUID;
 
 import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
 import org.apache.openmeetings.db.dao.record.RecordingDao;
@@ -35,43 +36,49 @@ import org.apache.openmeetings.web.commo
 import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.AjaxSelfUpdatingTimerBehavior;
+import org.apache.wicket.ajax.attributes.CallbackParameter;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.markup.repeater.RepeatingView;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
-import org.apache.wicket.util.time.Duration;
 
 import com.googlecode.wicket.jquery.core.JQueryBehavior;
 import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.core.ajax.IJQueryAjaxAware;
+import com.googlecode.wicket.jquery.core.ajax.JQueryAjaxBehavior;
 import com.googlecode.wicket.jquery.ui.interaction.droppable.Droppable;
+import com.googlecode.wicket.jquery.ui.interaction.droppable.DroppableBehavior;
 
 public abstract class FileTreePanel extends Panel {
        private static final long serialVersionUID = 1L;
        final WebMarkupContainer trees = new 
WebMarkupContainer("tree-container");
        private final WebMarkupContainer sizes = new 
WebMarkupContainer("sizes");
-       protected final IModel<FileItem> selectedFile = new 
CompoundPropertyModel<FileItem>((FileItem)null);
+       private final IModel<FileItem> selected = new 
CompoundPropertyModel<FileItem>((FileItem)null);
        protected final IModel<String> homeSize = Model.of((String)null);
        protected final IModel<String> publicSize = Model.of((String)null);
        final ConvertingErrorsDialog errorsDialog = new 
ConvertingErrorsDialog("errors", Model.of((Recording)null));
-       protected FileItemTree<? extends FileItem> selected;
-       protected RepeatingView treesView = new RepeatingView("tree");
+       final FileItemTree tree;
 
-       public FileTreePanel(String id) {
+       public FileTreePanel(String id, Long roomId) {
                super(id);
-               defineTrees();
-               selectedFile.getObject().setId(Long.MIN_VALUE);
+               OmTreeProvider tp = new OmTreeProvider(roomId);
+               setSelected(tp.getRoot(), null);
+               add(tree = new FileItemTree("tree", this, tp));
+       }
+       
+       @Override
+       protected void onInitialize() {
+               super.onInitialize();
                final AddFolderDialog addFolder = new 
AddFolderDialog("addFolder", Application.getString(712)) {
                        private static final long serialVersionUID = 1L;
 
                        @Override
                        protected void onSubmit(AjaxRequestTarget target) {
-                               createFolder(getModelObject());
-                               target.add(trees); //FIXME add correct refresh
+                               createFolder(target, getModelObject());
                        }
                };
                add(addFolder);
@@ -86,6 +93,37 @@ public abstract class FileTreePanel exte
                        }
                        
                        @Override
+                       public JQueryBehavior newWidgetBehavior(String 
selector) {
+                               return new DroppableBehavior(selector, this) {
+                                       private static final long 
serialVersionUID = 1L;
+
+                                       @Override
+                                       protected JQueryAjaxBehavior 
newOnDropAjaxBehavior(IJQueryAjaxAware source) {
+                                               return new 
OnDropAjaxBehavior(source) {
+                                                       private static final 
long serialVersionUID = 1L;
+
+                                                       @Override
+                                                       public CharSequence 
getCallbackFunctionBody(CallbackParameter... parameters) {
+                                                               String dialogId 
= UUID.randomUUID().toString();
+
+                                                               String 
statement = "var $drop = $(this);";
+                                                               statement += 
"$('body').append('<div id=" + dialogId + ">" + getString("713") + "</div>');";
+                                                               statement += 
"$( '#" + dialogId
+                                                                               
+ "' ).dialog({ title: '" + getString("80") + "', dialogClass: 'no-close', 
buttons: [";
+                                                               statement += "  
  { text: '" + getString("54") + "', click: function() { 
$drop.append(ui.draggable); $(this).dialog('close'); " + 
super.getCallbackFunctionBody(parameters) + " } },";
+                                                               statement += "  
  { text: '" + getString("25") + "', click: function() { $( this 
).dialog('close'); } } ";
+                                                               statement += 
"],";
+                                                               statement += 
"close: function(event, ui) { $(this).dialog('destroy').remove(); }";
+                                                               statement += 
"});";
+
+                                                               return 
statement;
+                                                       }
+                                               };
+                                       }
+                               };
+                       }
+                       
+                       @Override
                        public void onDrop(AjaxRequestTarget target, Component 
component) {
                                Object o = component.getDefaultModelObject();
                                if (o instanceof FileItem) {
@@ -94,6 +132,7 @@ public abstract class FileTreePanel exte
                        }
                };
                add(trashToolbar);
+               trashToolbar.add(getUpload("upload"));
                trashToolbar.add(new WebMarkupContainer("create").add(new 
AjaxEventBehavior("click") {
                        private static final long serialVersionUID = 1L;
 
@@ -107,33 +146,41 @@ public abstract class FileTreePanel exte
 
                        @Override
                        protected void onEvent(AjaxRequestTarget target) {
-                               target.add(trees); //FIXME add correct refresh
+                               update(target);
                        }
                }));
                trashToolbar.add(new ConfirmableAjaxBorder("trash", 
getString("80"), getString("713")) {
                        private static final long serialVersionUID = 1L;
 
                        @Override
+                       protected void onEvent(AjaxRequestTarget target) {
+                               FileItem f = selected.getObject();
+                               if (f != null && f.getId() != null) {
+                                       super.onEvent(target);
+                               }
+                       }
+                       
+                       @Override
                        protected void onSubmit(AjaxRequestTarget target, 
Form<?> form) {
-                               delete(selectedFile.getObject(), target);
+                               delete(selected.getObject(), target);
                        }
                });
                
-               add(trees.add(treesView).setOutputMarkupId(true));
+               add(trees.add(tree).setOutputMarkupId(true));
                updateSizes();
                add(sizes.add(new Label("homeSize", homeSize), new 
Label("publicSize", publicSize)).setOutputMarkupId(true));
-               sizes.add(new 
AjaxSelfUpdatingTimerBehavior(Duration.seconds(30)) {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       protected void onPostProcessTarget(AjaxRequestTarget 
target) {
-                               updateSizes();
-                       }
-               });
                add(errorsDialog);
        }
        
-       void delete(FileItem f, AjaxRequestTarget target) {
+       protected String getContainment() {
+               return ".file.item.drop.area";
+       }
+       
+       protected Component getUpload(String id) {
+               return new WebMarkupContainer(id).setVisible(false);
+       }
+       
+       void delete(FileItem f, IPartialPageRequestHandler handler) {
                long id = f.getId();
                if (id > 0) {
                        if (f instanceof Recording) {
@@ -142,36 +189,66 @@ public abstract class FileTreePanel exte
                                
getBean(FileExplorerItemDao.class).delete((FileExplorerItem)f);
                        }
                }
-               target.add(trees); //FIXME add correct refresh
+               update(handler);
        }
        
-       public void createRecordingFolder(String name) {
-               Recording f = new Recording();
+       protected abstract void update(AjaxRequestTarget target, FileItem f);
+
+       protected void createFolder(AjaxRequestTarget target, String name) {
+               FileItem p = selected.getObject();
+               boolean isRecording = p instanceof Recording;
+               if (Type.Folder != p.getType()) {
+                       
+               }
+               FileItem f = isRecording ? new Recording() : new 
FileExplorerItem();
                f.setName(name);
                f.setInsertedBy(getUserId());
                f.setInserted(new Date());
-               f.setType(Type.Folder);;
-               Recording p = (Recording)selectedFile.getObject();
-               long parentId = p.getId();
-               if (Type.Folder == p.getType()) {
-                       f.setParentId(parentId);
-               }
+               f.setType(Type.Folder);
                f.setOwnerId(p.getOwnerId());
-               f.setGroupId(p.getGroupId());
-               getBean(RecordingDao.class).update(f);
+               f.setParentId(Type.Folder == p.getType() ? p.getId() : null);
+               if (isRecording) {
+                       Recording r = (Recording)f;
+                       r.setGroupId(((Recording)p).getGroupId());
+                       getBean(RecordingDao.class).update(r);
+               } else {
+                       f.setRoomId(p.getRoomId());
+                       
getBean(FileExplorerItemDao.class).update((FileExplorerItem)f);
+               }
+               update(target);
        }
+
+       public abstract void updateSizes();
        
-       public abstract void defineTrees();
-       
-       public abstract void update(AjaxRequestTarget target, FileItem f);
+       public FileItem getSelected() {
+               return selected.getObject();
+       }
 
-       public abstract void createFolder(String name);
+       public void update(IPartialPageRequestHandler handler) {
+               updateSizes();
+               handler.add(sizes, trees);
+       }
 
-       public abstract void updateSizes();
+       void updateNode(AjaxRequestTarget target, FileItem fi) {
+               if (fi != null && target != null) {
+                       if (Type.Folder == fi.getType()) {
+                               tree.updateBranch(fi, target);
+                       } else {
+                               tree.updateNode(fi, target);
+                       }
+               }
+       }
+       
+       public void setSelected(FileItem fi, AjaxRequestTarget target) {
+               FileItem _prev = selected.getObject();
+               updateNode(target, _prev);
+               selected.setObject(fi);
+               updateNode(target, fi);
+       }
        
        @Override
        protected void onDetach() {
-               selectedFile.detach();
+               selected.detach();
                homeSize.detach();
                publicSize.detach();
                super.onDetach();

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
 Sat Aug 20 02:52:45 2016
@@ -66,12 +66,12 @@ public class FolderPanel extends Panel {
                                if (o instanceof FileItem) {
                                        FileItem p = 
(FileItem)drop.getDefaultModelObject();
                                        FileItem f = (FileItem)o;
-                                       long pid = p.getId();
+                                       Long pid = p.getId();
                                        //FIXME parent should not be moved to 
child !!!!!!!
-                                       if (pid == f.getId()) {
+                                       if (pid != null && 
pid.equals(f.getId())) {
                                                return;
                                        }
-                                       f.setParentId(pid > 0 ? pid : null);
+                                       f.setParentId(pid);
                                        f.setOwnerId(p.getOwnerId());
                                        f.setRoomId(p.getRoomId());
                                        if (f instanceof Recording) {
@@ -81,14 +81,16 @@ public class FolderPanel extends Panel {
                                        } else {
                                                
getBean(FileExplorerItemDao.class).update((FileExplorerItem)f);
                                        }
+                                       treePanel.updateNode(target, p);
+                                       treePanel.updateNode(target, f);
                                }
-                               target.add(treePanel.trees); //FIXME add 
correct refresh
+                               target.add(treePanel.trees);
                        }
                } : new WebMarkupContainer("drop");
-               if (r.getId() < 1) {
+               if (r.getId() == null) {
                        drag = new WebMarkupContainer("drag");
                } else {
-                       Draggable<? extends FileItem> d = new 
Draggable<FileItem>("drag", Model.of(r)) {
+                       drag = new Draggable<FileItem>("drag", Model.of(r)) {
                                private static final long serialVersionUID = 1L;
 
                                @Override
@@ -96,13 +98,12 @@ public class FolderPanel extends Panel {
                                        super.onConfigure(behavior);
                                        behavior.setOption("revert", 
"treeRevert");
                                        behavior.setOption("cursor", 
Options.asString("move"));
+                                       behavior.setOption("helper", "'clone'");
                                }
-                       };
-                       d.setContainment(".file.tree");
-                       d.add(AttributeAppender.append("class", r instanceof 
Recording ? "recorditem" : "fileitem"));
-                       drag = d;
+                       }.setContainment(treePanel.getContainment());
+                       drag.add(AttributeAppender.append("class", r instanceof 
Recording ? "recorditem" : "fileitem"));
                }
-               drag.add(r.getId() < 1 ? new Label("name", r.getName()) : new 
AjaxEditableLabel<String>("name", Model.of(model.getObject().getName())) {
+               drag.add(r.getId() == null ? new Label("name", r.getName()) : 
new AjaxEditableLabel<String>("name", Model.of(model.getObject().getName())) {
                        private static final long serialVersionUID = 1L;
                        
                        @Override

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.html
 Sat Aug 20 02:52:45 2016
@@ -38,7 +38,7 @@
                        Wicket.Event.subscribe('/ajax/call/complete', 
hideBusyIndicator);
                });
        </script>
-       <div id="topControls">
+       <div wicket:id="topControls" id="topControls">
                <div wicket:id="topLinks"><span 
                        id="contactsAndMessages"><a 
wicket:id="messages"><wicket:message key="1188"/></a></span><span 
                        id="profile"><a wicket:id="profile"><wicket:message 
key="5"/></a></span><span 
@@ -46,10 +46,10 @@
                        id="reportBug"><a target="_blank" 
href="https://issues.apache.org/jira/browse/OPENMEETINGS";><wicket:message 
key="284"/></a></span><span><a 
                        wicket:id="about"><wicket:message 
key="1549"/></a></span>
                </div>
-               <div wicket:id="dev" id="devMenu"/>
                <div id="busy_indicator" 
class="ui-widget-header"><span><wicket:message key="1554"/></span></div>
                <div wicket:id="menu"></div>
        </div>
+       <div wicket:id="dev" id="devMenu"/>
        <div wicket:id="contents"><div wicket:id="child"></div></div>
        <div wicket:id="chatPanel"></div>
        <div wicket:id="aboutDialog"></div>

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
 Sat Aug 20 02:52:45 2016
@@ -75,7 +75,6 @@ import org.apache.wicket.protocol.ws.api
 import org.apache.wicket.protocol.ws.api.message.ClosedMessage;
 import org.apache.wicket.protocol.ws.api.message.ConnectedMessage;
 import org.apache.wicket.request.IRequestParameters;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.time.Duration;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
@@ -89,7 +88,9 @@ public class MainPage extends BaseInited
        private static final long serialVersionUID = 1L;
        private static final Logger log = 
Red5LoggerFactory.getLogger(MainPage.class, webAppRootKey);
        private final static String PARAM_USER_ID = "userId";
+       private Client client;
        private final MenuPanel menu;
+       private final WebMarkupContainer topControls = new 
WebMarkupContainer("topControls");
        private final WebMarkupContainer topLinks = new 
WebMarkupContainer("topLinks");
        private final MarkupContainer contents;
        private final AbstractAjaxTimerBehavior areaBehavior;
@@ -99,13 +100,15 @@ public class MainPage extends BaseInited
        private final UserInfoDialog userInfo;
        private final InviteUserToRoomDialog inviteUser;
        
-       public MainPage(PageParameters pp) {
+       public MainPage() {
                super();
+               client = new Client();
                getHeader().setVisible(false);
+               
add(topControls.setOutputMarkupPlaceholderTag(true).setMarkupId("topControls"));
                menu = new MenuPanel("menu", getMainMenu());
                contents = new WebMarkupContainer("contents");
                add(contents.add(new 
WebMarkupContainer(CHILD_ID)).setOutputMarkupId(true).setMarkupId("contents"));
-               add(menu.setVisible(false), 
topLinks.setVisible(false).setOutputMarkupPlaceholderTag(true).setMarkupId("topLinks"));
+               topControls.add(menu.setVisible(false), 
topLinks.setVisible(false).setOutputMarkupPlaceholderTag(true).setMarkupId("topLinks"));
                topLinks.add(new AjaxLink<Void>("messages") {
                        private static final long serialVersionUID = 1L;
 
@@ -142,11 +145,11 @@ public class MainPage extends BaseInited
                });
                add(about);
                if 
(getApplication().getDebugSettings().isDevelopmentUtilitiesEnabled()) {
-                   add(dev = new DebugBar("dev"));
-                   dev.setOutputMarkupId(true);
+                       add(dev = new DebugBar("dev"));
+                       dev.setOutputMarkupId(true);
                } else {
                        dev = null;
-                   add(new EmptyPanel("dev").setVisible(false));
+                       add(new EmptyPanel("dev").setVisible(false));
                }               
                
                add(chat = new ChatPanel("chatPanel"));
@@ -321,6 +324,10 @@ public class MainPage extends BaseInited
                return topLinks;
        }
 
+       public WebMarkupContainer getTopControls() {
+               return topControls;
+       }
+
        public ChatPanel getChat() {
                return chat;
        }
@@ -329,4 +336,8 @@ public class MainPage extends BaseInited
        protected boolean isMainPage() {
                return true;
        }
+       
+       public Client getClient() {
+               return client;
+       }
 }

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
 Sat Aug 20 02:52:45 2016
@@ -33,32 +33,21 @@ public class KickMessageDialog extends A
 
        public KickMessageDialog(String id) {
                super(id, "");
-               add(new Label("message", Application.getString(606)));
        }
 
        @Override
        protected void onInitialize() {
                super.onInitialize();
-               add(new JQueryBehavior(JQueryWidget.getSelector(this), 
"dialog") {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-            protected String $()  {
-                return this.$(Options.asString("open"));
-            }
-        });
+               add(new Label("message", getString("606")));
        };
        
        @Override
        public void onConfigure(JQueryBehavior behavior) {
                super.onConfigure(behavior);
+               behavior.setOption("autoOpen", true);
                behavior.setOption("closeOnEscape", false);
-        behavior.setOption("dialogClass", Options.asString("no-close"));
-        behavior.setOption("resizable", false);
-       }
-
-       public String getOnClickJavaScript() {
-               return "$('#" + getButtons().get(0).getMarkupId() 
+"').click(function(e){$('#" + getMarkupId() +"').close(); })";
+               behavior.setOption("dialogClass", Options.asString("no-close"));
+               behavior.setOption("resizable", false);
        }
 
        @Override

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java
 Sat Aug 20 02:52:45 2016
@@ -58,7 +58,7 @@ public class ResetPasswordDialog extends
        public ResetPasswordDialog(String id, final User user) {
                super(id, Application.getString(325));
                this.user = user;
-               add(form = new Form<String>("form"){
+               add(form = new Form<String>("form") {
                        private static final long serialVersionUID = 1L;
                        private TextField<String> login;
                        private PasswordTextField confirmPassword;
@@ -76,14 +76,14 @@ public class ResetPasswordDialog extends
                                
confirmPassword.setLabel(Model.of(Application.getString(329)));
                                
confirmPassword.setRequired(true).add(minimumLength(getMinPasswdLength(cfgDao)));
 
-                               add(new AjaxButton("submit") { //FAKE button so 
"submit-on-enter" works as expected
+                               add(new AjaxButton("submit") { // FAKE button 
so "submit-on-enter" works as expected
                                        private static final long 
serialVersionUID = 1L;
 
                                        @Override
                                        protected void 
onSubmit(AjaxRequestTarget target, Form<?> form) {
                                                
ResetPasswordDialog.this.onSubmit(target);
                                        }
-                                       
+
                                        @Override
                                        protected void 
onError(AjaxRequestTarget target, Form<?> form) {
                                                
ResetPasswordDialog.this.onError(target);
@@ -99,18 +99,19 @@ public class ResetPasswordDialog extends
                                }
                                super.onValidate();
                        }
-                       
+
                });
-               confirmReset = new MessageDialog("confirmReset", 
Application.getString(325), Application.getString(332), DialogButtons.OK, 
DialogIcon.INFO){
+               confirmReset = new MessageDialog("confirmReset", 
Application.getString(325), Application.getString(332), 
+                               DialogButtons.OK, DialogIcon.INFO) {
                        private static final long serialVersionUID = 1L;
 
                        @Override
                        public void onConfigure(JQueryBehavior behavior) {
                                super.onConfigure(behavior);
-                       behavior.setOption("dialogClass", 
Options.asString("no-close"));
+                               behavior.setOption("dialogClass", 
Options.asString("no-close"));
                                behavior.setOption("closeOnEscape", false);
                        }
-                       
+
                        @Override
                        public void onClose(IPartialPageRequestHandler handler, 
DialogButton button) {
                                
setResponsePage(Application.get().getSignInPageClass());
@@ -118,11 +119,12 @@ public class ResetPasswordDialog extends
                };
                add(confirmReset);
        }
-       
+
        @Override
        public void onConfigure(JQueryBehavior behavior) {
                super.onConfigure(behavior);
-        behavior.setOption("dialogClass", Options.asString("no-close"));
+               behavior.setOption("autoOpen", true);
+               behavior.setOption("dialogClass", Options.asString("no-close"));
                behavior.setOption("closeOnEscape", false);
        }
 
@@ -130,7 +132,7 @@ public class ResetPasswordDialog extends
        protected List<DialogButton> getButtons() {
                return Arrays.asList(resetBtn);
        }
-       
+
        @Override
        public DialogButton getSubmitButton() {
                return resetBtn;
@@ -154,26 +156,13 @@ public class ResetPasswordDialog extends
                        error(e.getMessage());
                }
        }
-       
+
        @Override
        public void onClose(IPartialPageRequestHandler handler, DialogButton 
button) {
-               if (resetBtn.equals(button)){
+               if (resetBtn.equals(button)) {
                        confirmReset.open(handler);
                } else {
                        setResponsePage(Application.get().getSignInPageClass());
                }
        }
-       
-       @Override
-       protected void onInitialize() {
-               super.onInitialize();
-               add(new JQueryBehavior(JQueryWidget.getSelector(this), 
"dialog") {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       protected String $() {
-                               return this.$(Options.asString("open"));
-                       }
-               });
-       }
 }

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
 Sat Aug 20 02:52:45 2016
@@ -62,7 +62,6 @@ import org.apache.wicket.ajax.AjaxReques
 import org.apache.wicket.ajax.json.JSONException;
 import org.apache.wicket.ajax.json.JSONObject;
 import org.apache.wicket.markup.head.IHeaderResponse;
-import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
 import org.apache.wicket.request.IRequestParameters;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.flow.RedirectToUrlException;
@@ -150,7 +149,6 @@ public class SignInPage extends BaseInit
        @Override
        public void renderHead(IHeaderResponse response) {
                super.renderHead(response);
-               
response.render(OnDomReadyHeaderItem.forScript(m.getOnClickJavaScript()));
        }
        
        @Override

Copied: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/AviRecordingResourceReference.java
 (from r1756980, 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/AviRecordingResourceReference.java)
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/AviRecordingResourceReference.java?p2=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/AviRecordingResourceReference.java&p1=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/AviRecordingResourceReference.java&r1=1756980&r2=1756981&rev=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/AviRecordingResourceReference.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/AviRecordingResourceReference.java
 Sat Aug 20 02:52:45 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.util;
+package org.apache.openmeetings.web.user.record;
 
 import static org.apache.openmeetings.util.OmFileHelper.getRecording;
 
@@ -37,12 +37,12 @@ public class AviRecordingResourceReferen
        }
        
        @Override
-       String getFileName(Recording r) {
+       protected String getFileName(Recording r) {
                return r.getAlternateDownload();
        }
        
        @Override
-       File getFile(Recording r) {
+       protected File getFile(Recording r) {
                return getRecording(r.getAlternateDownload());
        }
 }

Copied: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/FlvRecordingResourceReference.java
 (from r1756980, 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/FlvRecordingResourceReference.java)
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/FlvRecordingResourceReference.java?p2=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/FlvRecordingResourceReference.java&p1=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/FlvRecordingResourceReference.java&r1=1756980&r2=1756981&rev=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/FlvRecordingResourceReference.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/FlvRecordingResourceReference.java
 Sat Aug 20 02:52:45 2016
@@ -16,8 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.util;
+package org.apache.openmeetings.web.user.record;
 
+import static org.apache.openmeetings.util.OmFileHelper.FLV_MIME_TYPE;
 import static org.apache.openmeetings.util.OmFileHelper.getRecording;
 
 import java.io.File;
@@ -33,16 +34,16 @@ public class FlvRecordingResourceReferen
        
        @Override
        public String getMimeType() {
-               return "video/flv";
+               return FLV_MIME_TYPE;
        }
        
        @Override
-       String getFileName(Recording r) {
+       protected String getFileName(Recording r) {
                return r.getHash();
        }
        
        @Override
-       File getFile(Recording r) {
+       protected File getFile(Recording r) {
                return getRecording(r.getHash());
        }
 }

Copied: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/JpgRecordingResourceReference.java
 (from r1756980, 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/JpgRecordingResourceReference.java)
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/JpgRecordingResourceReference.java?p2=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/JpgRecordingResourceReference.java&p1=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/JpgRecordingResourceReference.java&r1=1756980&r2=1756981&rev=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/JpgRecordingResourceReference.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/JpgRecordingResourceReference.java
 Sat Aug 20 02:52:45 2016
@@ -16,8 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.util;
+package org.apache.openmeetings.web.user.record;
 
+import static org.apache.openmeetings.util.OmFileHelper.JPG_MIME_TYPE;
 import static org.apache.openmeetings.util.OmFileHelper.getRecording;
 
 import java.io.File;
@@ -33,16 +34,16 @@ public class JpgRecordingResourceReferen
        
        @Override
        public String getMimeType() {
-               return "image/jpeg";
+               return JPG_MIME_TYPE;
        }
        
        @Override
-       String getFileName(Recording r) {
+       protected String getFileName(Recording r) {
                return r.getPreviewImage();
        }
        
        @Override
-       File getFile(Recording r) {
+       protected File getFile(Recording r) {
                return getRecording(r.getPreviewImage());
        }
 }

Copied: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/Mp4RecordingResourceReference.java
 (from r1756980, 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/Mp4RecordingResourceReference.java)
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/Mp4RecordingResourceReference.java?p2=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/Mp4RecordingResourceReference.java&p1=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/Mp4RecordingResourceReference.java&r1=1756980&r2=1756981&rev=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/Mp4RecordingResourceReference.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/Mp4RecordingResourceReference.java
 Sat Aug 20 02:52:45 2016
@@ -16,11 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.util;
+package org.apache.openmeetings.web.user.record;
 
-import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
 import static org.apache.openmeetings.util.OmFileHelper.MP4_MIME_TYPE;
-import static org.apache.openmeetings.util.OmFileHelper.getMp4Recording;
 
 import java.io.File;
 
@@ -39,12 +37,12 @@ public class Mp4RecordingResourceReferen
        }
        
        @Override
-       String getFileName(Recording r) {
-               return r.getHash() + MP4_EXTENSION;
+       protected String getFileName(Recording r) {
+               return r.getFile().getName();
        }
        
        @Override
-       File getFile(Recording r) {
-               return getMp4Recording(r.getHash());
+       protected File getFile(Recording r) {
+               return r.getFile();
        }
 }

Copied: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/OggRecordingResourceReference.java
 (from r1756980, 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OggRecordingResourceReference.java)
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/OggRecordingResourceReference.java?p2=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/OggRecordingResourceReference.java&p1=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OggRecordingResourceReference.java&r1=1756980&r2=1756981&rev=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OggRecordingResourceReference.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/OggRecordingResourceReference.java
 Sat Aug 20 02:52:45 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.util;
+package org.apache.openmeetings.web.user.record;
 
 import static org.apache.openmeetings.util.OmFileHelper.OGG_EXTENSION;
 import static org.apache.openmeetings.util.OmFileHelper.getOggRecording;
@@ -38,12 +38,12 @@ public class OggRecordingResourceReferen
        }
        
        @Override
-       String getFileName(Recording r) {
+       protected String getFileName(Recording r) {
                return r.getHash() + OGG_EXTENSION;
        }
        
        @Override
-       File getFile(Recording r) {
+       protected File getFile(Recording r) {
                return getOggRecording(r.getHash());
        }
 }

Copied: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java
 (from r1756980, 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java)
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java?p2=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java&p1=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java&r1=1756980&r2=1756981&rev=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/RecordingResourceReference.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java
 Sat Aug 20 02:52:45 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.util;
+package org.apache.openmeetings.web.user.record;
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static org.apache.openmeetings.web.app.Application.getBean;
@@ -25,11 +25,6 @@ import static org.apache.openmeetings.we
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import static org.red5.logging.Red5LoggerFactory.getLogger;
 
-import java.io.File;
-import java.io.IOException;
-
-import javax.servlet.http.HttpServletResponse;
-
 import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.db.dao.user.GroupUserDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
@@ -37,15 +32,13 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.record.Recording;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.util.FileItemResourceReference;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.request.resource.IResource;
 import org.apache.wicket.request.resource.IResource.Attributes;
-import org.apache.wicket.resource.FileSystemResource;
-import org.apache.wicket.resource.FileSystemResourceReference;
 import org.apache.wicket.util.string.StringValue;
 import org.slf4j.Logger;
 
-public abstract class RecordingResourceReference extends 
FileSystemResourceReference {
+public abstract class RecordingResourceReference extends 
FileItemResourceReference<Recording> {
        private static final long serialVersionUID = 1L;
        private static final Logger log = 
getLogger(RecordingResourceReference.class, webAppRootKey);
 
@@ -54,35 +47,33 @@ public abstract class RecordingResourceR
        }
 
        @Override
-       public IResource getResource() {
-               return new FileSystemResource() {
-                       private static final long serialVersionUID = 1L;
-                       private File file;
-                       
-                       @Override
-                       protected String getMimeType() throws IOException {
-                               return 
RecordingResourceReference.this.getMimeType();
-                       }
-                       
-                       @Override
-                       protected ResourceResponse 
newResourceResponse(Attributes attributes) {
-                               Recording r = getRecording(attributes);
-                               if (r != null) {
-                                       file = getFile(r);
-                                       return 
createResourceResponse(file.toPath());
-                               } else {
-                                       log.debug("No recording was found");
-                                       ResourceResponse rr = new 
ResourceResponse();
-                                       
rr.setError(HttpServletResponse.SC_NOT_FOUND);
-                                       return rr;
-                               }
-                       }
-               };
+       public String getMimeType(Recording r) {
+               return getMimeType();
        }
        
-       abstract String getMimeType();
-       abstract String getFileName(Recording r);
-       abstract File getFile(Recording r);
+       public abstract String getMimeType();
+       
+       @Override
+       protected Recording getFileItem(Attributes attributes) {
+               PageParameters params = attributes.getParameters();
+               StringValue _id = params.get("id");
+               Long id = null;
+               try {
+                       id = _id.toOptionalLong();
+               } catch (Exception e) {
+                       //no-op expected
+               }
+               WebSession ws = WebSession.get();
+               if (id != null && ws.isSignedIn()) {
+                       return getRecording(id);
+               } else {
+                       ws.invalidate();
+                       if (ws.signIn(_id.toString(), true)) {
+                               return getRecording(getRecordingId());
+                       }
+               }
+               return null;
+       }
        
        private static Recording getRecording(Long id) {
                log.debug("Recording with id {} is requested", id);
@@ -111,26 +102,5 @@ public abstract class RecordingResourceR
                        }
                }
                return null;
-       }
-       
-       private static Recording getRecording(Attributes attributes) {
-               PageParameters params = attributes.getParameters();
-               StringValue _id = params.get("id");
-               Long id = null;
-               try {
-                       id = _id.toOptionalLong();
-               } catch (Exception e) {
-                       //no-op expected
-               }
-               WebSession ws = WebSession.get();
-               if (id != null && ws.isSignedIn()) {
-                       return getRecording(id);
-               } else {
-                       ws.invalidate();
-                       if (ws.signIn(_id.toString(), true)) {
-                               return getRecording(getRecordingId());
-                       }
-               }
-               return null;
        }
 }

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
 Sat Aug 20 02:52:45 2016
@@ -23,17 +23,11 @@ import static org.apache.openmeetings.we
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 
 import org.apache.openmeetings.db.dao.record.RecordingDao;
-import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.dto.record.RecordingContainerData;
 import org.apache.openmeetings.db.entity.file.FileItem;
 import org.apache.openmeetings.db.entity.record.Recording;
-import org.apache.openmeetings.db.entity.user.Group;
-import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.apache.openmeetings.web.common.UserPanel;
-import org.apache.openmeetings.web.common.tree.FileItemTree;
 import org.apache.openmeetings.web.common.tree.FileTreePanel;
-import org.apache.openmeetings.web.common.tree.MyRecordingTreeProvider;
-import org.apache.openmeetings.web.common.tree.PublicRecordingTreeProvider;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 
 public class RecordingsPanel extends UserPanel {
@@ -43,21 +37,10 @@ public class RecordingsPanel extends Use
        
        public RecordingsPanel(String id) {
                super(id);
-               add(new FileTreePanel("tree") {
+               add(new FileTreePanel("tree", null) {
                        private static final long serialVersionUID = 1L;
 
                        @Override
-                       public void defineTrees() {
-                               selectedFile.setObject(new Recording());
-                               treesView.add(selected = new 
FileItemTree<Recording>(treesView.newChildId(), this, new 
MyRecordingTreeProvider()));
-                               treesView.add(new 
FileItemTree<Recording>(treesView.newChildId(), this, new 
PublicRecordingTreeProvider(null, null)));
-                               for (GroupUser ou : 
getBean(UserDao.class).get(getUserId()).getGroupUsers()) {
-                                       Group o = ou.getGroup();
-                                       treesView.add(new 
FileItemTree<Recording>(treesView.newChildId(), this, new 
PublicRecordingTreeProvider(o.getId(), o.getName())));
-                               }
-                       }
-                       
-                       @Override
                        public void updateSizes() {
                                RecordingContainerData sizeData = 
getBean(RecordingDao.class).getContainerData(getUserId());
                                if (sizeData != null) {
@@ -67,15 +50,10 @@ public class RecordingsPanel extends Use
                        }
                        
                        @Override
-                       public void update(AjaxRequestTarget target, FileItem 
f) {
+                       protected void update(AjaxRequestTarget target, 
FileItem f) {
                                video.update(target, (Recording)f);
                                info.update(target, (Recording)f);
                        }
-                       
-                       @Override
-                       public void createFolder(String name) {
-                               createRecordingFolder(name);
-                       }
                });
                add(video, info);
        }

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=1756981&r1=1756980&r2=1756981&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
 Sat Aug 20 02:52:45 2016
@@ -18,14 +18,14 @@
  */
 package org.apache.openmeetings.web.user.record;
 
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_AVI;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_FLV;
 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;
 import static org.apache.openmeetings.web.app.Application.getBean;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -144,7 +144,7 @@ public class VideoInfo extends Panel {
                        }
                }
                reConvert.setEnabled(reConvEnabled);
-               boolean exists = isRecordingExists(r.getAlternateDownload()) || 
isRecordingExists(r.getHash());
+               boolean exists = r.exists() || r.exists(EXTENSION_AVI);
                downloadBtn.setEnabled(exists);
                share.setEnabled(exists);
                if (target != null) {
@@ -177,14 +177,14 @@ public class VideoInfo extends Panel {
                        @Override
                        public boolean isEnabled() {
                                Recording r = rm.getObject();
-                               return r != null && 
isRecordingExists(r.getHash() + MP4_EXTENSION);
+                               return r != null && r.exists(EXTENSION_MP4);
                        }
                        
                        @Override
                        public void onClick(AjaxRequestTarget target) {
-                               String filename = rm.getObject().getHash() + 
MP4_EXTENSION;
-                               download.setFileName(filename);
-                               download.setResourceStream(new 
FileResourceStream(getRecording(filename)));
+                               File f = rm.getObject().getFile(EXTENSION_MP4);
+                               download.setFileName(f.getName());
+                               download.setResourceStream(new 
FileResourceStream(f));
                                download.initiate(target);
                        }
                });
@@ -195,14 +195,14 @@ public class VideoInfo extends Panel {
                        @Override
                        public boolean isEnabled() {
                                Recording r = rm.getObject();
-                               return r != null && 
isRecordingExists(r.getAlternateDownload());
+                               return r != null && r.exists(EXTENSION_AVI);
                        }
                        
                        @Override
                        public void onClick(AjaxRequestTarget target) {
-                               Recording r = rm.getObject();
-                               download.setFileName(r.getAlternateDownload());
-                               download.setResourceStream(new 
FileResourceStream(getRecording(r.getAlternateDownload())));
+                               File f = rm.getObject().getFile(EXTENSION_AVI);
+                               download.setFileName(f.getName());
+                               download.setResourceStream(new 
FileResourceStream(f));
                                download.initiate(target);
                        }
                });
@@ -212,15 +212,15 @@ public class VideoInfo extends Panel {
                        
                        @Override
                        public boolean isEnabled() {
-                               Recording r = rm.getObject();
-                               return r != null && 
isRecordingExists(r.getHash());
+                               Recording r = VideoInfo.this.rm.getObject();
+                               return r != null && r.exists(EXTENSION_FLV);
                        }
                        
                        @Override
                        public void onClick(AjaxRequestTarget target) {
-                               Recording r = rm.getObject();
-                               download.setFileName(r.getHash());
-                               download.setResourceStream(new 
FileResourceStream(getRecording(r.getHash())));
+                               File f = rm.getObject().getFile(EXTENSION_FLV);
+                               download.setFileName(f.getName());
+                               download.setResourceStream(new 
FileResourceStream(f));
                                download.initiate(target);
                        }
                });

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java
 Sat Aug 20 02:52:45 2016
@@ -18,12 +18,9 @@
  */
 package org.apache.openmeetings.web.user.record;
 
-import static org.apache.openmeetings.util.OmFileHelper.getMp4Recording;
 import static org.apache.openmeetings.util.OmFileHelper.MP4_MIME_TYPE;
 
 import org.apache.openmeetings.db.entity.record.Recording;
-import org.apache.openmeetings.web.util.Mp4RecordingResourceReference;
-import org.apache.openmeetings.web.util.OggRecordingResourceReference;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.media.Source;
@@ -61,7 +58,7 @@ public class VideoPlayer extends Panel {
        }
        
        public VideoPlayer update(AjaxRequestTarget target, Recording r) {
-               boolean videoExists = r != null && 
getMp4Recording(r.getHash()).exists();
+               boolean videoExists = r != null && r.exists();
                if (videoExists) {
                        PageParameters pp = new PageParameters().add("id", 
r.getId());
                        mp4.setPageParameters(pp);

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/BootstrapFileUploadBehavior.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/BootstrapFileUploadBehavior.java?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/BootstrapFileUploadBehavior.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/BootstrapFileUploadBehavior.java
 Sat Aug 20 02:52:45 2016
@@ -25,13 +25,14 @@ import org.apache.wicket.markup.head.IHe
 import org.apache.wicket.markup.head.JavaScriptHeaderItem;
 import org.apache.wicket.request.resource.CssResourceReference;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
+import org.apache.wicket.request.resource.ResourceReference;
 
 public class BootstrapFileUploadBehavior extends Behavior {
        private static final long serialVersionUID = 1L;
-       private final static JavaScriptResourceReference 
BOOTSTRAP_FILEUPLOAD_JS_REFERENCE
-                       = new 
JavaScriptResourceReference(BootstrapFileUploadBehavior.class, 
"bootstrap-fileupload.js");
-       private final static CssResourceReference 
BOOTSTRAP_FILEUPLOAD_CSS_REFERENCE
-                       = new 
CssResourceReference(BootstrapFileUploadBehavior.class, 
"bootstrap-fileupload.css");
+       private final static ResourceReference BOOTSTRAP_FILEINPUT_JS_REFERENCE
+                       = new 
JavaScriptResourceReference(BootstrapFileUploadBehavior.class, "fileinput.js");
+       private final static ResourceReference BOOTSTRAP_FILEINPUT_CSS_REFERENCE
+                       = new 
CssResourceReference(BootstrapFileUploadBehavior.class, "fileinput.css");
        public final static BootstrapFileUploadBehavior INSTANCE = new 
BootstrapFileUploadBehavior(); 
        
        private BootstrapFileUploadBehavior() {
@@ -40,7 +41,7 @@ public class BootstrapFileUploadBehavior
        @Override
        public void renderHead(Component component, IHeaderResponse response) {
                super.renderHead(component, response);
-        
response.render(JavaScriptHeaderItem.forReference(BOOTSTRAP_FILEUPLOAD_JS_REFERENCE));
-        
response.render(CssHeaderItem.forReference(BOOTSTRAP_FILEUPLOAD_CSS_REFERENCE));
+               
response.render(JavaScriptHeaderItem.forReference(BOOTSTRAP_FILEINPUT_JS_REFERENCE));
+               
response.render(CssHeaderItem.forReference(BOOTSTRAP_FILEINPUT_CSS_REFERENCE));
        }
 }

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CallbackFunctionHelper.java
 Sat Aug 20 02:52:45 2016
@@ -26,14 +26,13 @@ public class CallbackFunctionHelper {
                StringBuilder sb = new StringBuilder();
                sb.append("function ").append(name).append("(");
                boolean first = true;
-               for (CallbackParameter curExtraParameter : extraParameters)
-               {
-                       if (curExtraParameter.getFunctionParameterName() != 
null)
-                       {
-                               if (!first)
-                                       sb.append(',');
-                               else
+               for (CallbackParameter curExtraParameter : extraParameters) {
+                       if (curExtraParameter.getFunctionParameterName() != 
null) {
+                               if (first) {
                                        first = false;
+                               } else {
+                                       sb.append(',');
+                               }
                                
sb.append(curExtraParameter.getFunctionParameterName());
                        }
                }

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
 Sat Aug 20 02:52:45 2016
@@ -243,9 +243,7 @@
        <bean id="generatePDF" 
class="org.apache.openmeetings.core.documents.GeneratePDF" />
        <bean id="smsHandler" 
class="org.apache.openmeetings.core.mail.SMSHandler" />
        <bean id="importInitvalues" 
class="org.apache.openmeetings.installation.ImportInitvalues" />
-       <bean id="libraryWmlLoader" 
class="org.apache.openmeetings.core.documents.LibraryWmlLoader" />
        <bean id="generateSWF" 
class="org.apache.openmeetings.core.converter.GenerateSWF" />
-       <bean id="fileUtils" 
class="org.apache.openmeetings.core.data.file.FileUtils" />
        <bean id="ldapLoginManagement" 
class="org.apache.openmeetings.core.ldap.LdapLoginManagement" />
        <bean id="timezoneUtil" 
class="org.apache.openmeetings.db.util.TimezoneUtil" />
        <bean id="whiteboardManagement" 
class="org.apache.openmeetings.core.data.whiteboard.WhiteboardManager" />

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/activities.css
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/activities.css?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/activities.css
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/activities.css
 Sat Aug 20 02:52:45 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#activitiesPanel {
+#activities {
        position: fixed;
        z-index: 2000;
        bottom: 0px;
@@ -24,15 +24,24 @@
        width: 600px;
        height: 20px;
 }
-#activitiesPanel .control.block .ui-icon {
+#activities .control.block .ui-icon {
        text-align: center;
 }
-#activitiesPanel .control.block .label {
+#activities .control.block .label {
        display: inline-block;
        padding-left: 20px;
 }
-#activitiesPanel .area {
-       height: 310px;
+#activities .area {
+       height: 319px;
        overflow-y: auto;
+}
+.activity.item {
+       position: relative;
        padding: 5px;
-}
\ No newline at end of file
+       margin-bottom: 3px
+}
+.activity.item .ui-icon {
+       border-width: 1px;
+       border-style: solid;
+       margin-left: 2px;
+}

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/room.css
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/room.css?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/room.css
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/css/room.css
 Sat Aug 20 02:52:45 2016
@@ -19,11 +19,27 @@
 .room.container {
        width: 100%;
 }
-.room.menu.exit {
-       padding-left: 20px;
+.ui-icon.room.menu.exit {
        background-image: url(images/exit_button.png);
        background-repeat: no-repeat;
-       background-position: 5px 5px;
+       background-size: 16px 16px;
+       margin-left: 5px;
+}
+.ui-icon.status-user {
+       background-image: url(images/status-user.png);
+}
+.ui-icon.status-wb {
+       background-image: url(images/status-wb.png);
+}
+.ui-icon.status-mod {
+       background-image: url(images/status-mod.png);
+}
+.room.menu .ui-menu .ui-menu-item {
+       padding-left: 5px;
+       padding-right: 0;
+}
+.room.menu .top.room.menu.exit {
+       padding-left: 0;
 }
 .room.menu.right {
        position: absolute;
@@ -40,40 +56,67 @@
 .room.menu.right .room.name {
        font-weight: bold;
 }
-.room.menu.right .room.recording {
+.room.menu.right .room.name.screen {
        color: red;
 }
+.room.menu.right .room.demo {
+}
 .room.menu.right .icon {
        width: 30px;
        height: 30px;
        background-repeat: no-repeat;
        background-position: 5px 5px;
        float: right;
+       padding: 0;
 }
 .room.menu.right .icon.share {
        background-image: url(images/monitor_go.png);
 }
-.room.menu.right .icon.ask {
-       background-image: url(images/user_add.png);
-}
 .room.sidebar.left {
        min-width: 200px;
-       width: 20%;
+       width: 315px;
        float: left;
 }
 .room.wb.area {
-       width: 80%;
        float: left;
 }
+.room.wb.area.ui-state-hover {
+       border: 0;
+}
+.room.wb.area.ui-state-hover .wb {
+       visibility: hidden;
+       height: 1px !important;
+}
+.room.wb.area .wb-drop-area {
+       display: none;
+}
+.room.wb.area.ui-state-hover .wb-drop-area {
+       background-image: url(images/drop.png);
+       display: block;
+       background-repeat: no-repeat;
+       height: inherit;
+       background-position: center;
+}
+.room.sidebar.left .ui-tabs .ui-tabs-panel {
+       padding: 0;
+}
+.room.sidebar.left .user.header {
+       height: 45px;
+       padding-left: 5px;
+}
+.room.sidebar.left .user.header .ui-icon {
+       margin-top: 5px;
+       margin-left: 5px;
+       width: 32px;
+       height: 32px;
+}
 .room.sidebar.left .user.list {
-       border-right: 1px solid #dddddd;
-       height: 100%;
        overflow-y: auto;
 }
 .room.sidebar.left .user.list .user {
        height: 40px;
        padding-left: 5px;
-    padding-top: 5px;
+       padding-top: 5px;
 }
 .room.sidebar.left .user.list .user .user.name {
        line-height: 18px;
@@ -84,15 +127,100 @@
        position: relative;
        height: 18px;
        padding: 0;
+       visibility: hidden;
+}
+.room.sidebar.left .user.list .user:hover .user.actions {
+       visibility: visible;
+}
+.room.sidebar.left .user.list .user .user.actions .ui-icon {
+       margin-right: 2px;
+       margin-top: 0;
 }
-.private-chat.om-icon {
+.room.sidebar.left .user.list .user .ui-icon {
+       background-size: 16px;
+}
+.audio-activity.ui-icon {
+       opacity: 0.2;
+       background-image: url(images/speaking.png);
+}
+.typing-activity.ui-icon {
+       display: none;
+       width: 30px;
+       background-image: url(images/typing.gif);
+}
+.typing-activity.ui-icon.typing {
+       display: inline-block;
+}
+.private-chat.ui-icon {
        background-image: url(images/page_edit.png);
 }
+.audio-activity.ui-icon.speaking, .ui-icon.granted {
+       opacity: 1;
+}
+.right.moderator.ui-icon, .room.menu.right .icon.ask {
+       background-image: url(images/user_add.png);
+}
+.right.moderator.ui-icon.granted {
+       background-image: url(images/user_delete.png);
+}
+.right.ui-icon {
+       opacity: 0.2;
+}
+.right.wb.ui-icon {
+       background-image: url(images/pencil_add.png);
+}
+.right.wb.ui-icon.granted {
+       background-image: url(images/pencil_delete.png);
+}
+.right.screen-share.ui-icon {
+       background-image: url(images/monitor_add.png);
+}
+.right.screen-share.ui-icon.granted {
+       background-image: url(images/monitor_delete.png);
+}
+.right.remote-control.ui-icon {
+       background-image: url(images/mouse_add.png);
+}
+.right.remote-control.ui-icon.granted {
+       background-image: url(images/mouse_delete.png);
+}
+.right.audio.ui-icon {
+       opacity: 1;
+       background-image: url(images/microphone_add.png);
+}
+.right.audio.ui-icon.granted {
+       opacity: 0.2;
+       background-image: url(images/microphone_delete.png);
+}
+.right.camera.ui-icon {
+       opacity: 1;
+       background-image: url(images/webcam_add.png);
+}
+.right.camera.ui-icon.granted {
+       opacity: 0.2;
+       background-image: url(images/webcam_delete.png);
+}
+.global-mute.ui-icon {
+       opacity: 0.2;
+       background-image: url(images/sound.png);
+}
+.exclsv-audio.ui-icon {
+       opacity: 0.2;
+       background-image: url(images/microphone_exclusive.png);
+}
+.kick.ui-icon {
+       background-image: url(images/cancel_icon.png);
+       background-size: 16px;
+}
+.restart.ui-icon {
+       background-image: url(images/arrow_refresh_small.png);
+}
 .room.sidebar.left .tabs, .room.sidebar.left .tabs #utab, .room.sidebar.left 
.tabs #ftab {
        padding: 0;
 }
 .room.sidebar.left .user.list .user.current {
        font-weight: bold;
+       background: #00FF00;
 }
 .ui-dialog.video, .ui-dialog.video .ui-dialog-titlebar, .ui-dialog.video 
.video.ui-dialog-content {
        padding: 0;
@@ -102,10 +230,17 @@
        max-height: 100px;
        overflow-y: auto;
 }
-.activity.item {
-       position: relative;
-}
-.activity.item .ui-dialog-titlebar-close {
-       width: 20px;
-       height: 20px;
+.sip .button-row {
+       text-align: center;
+       margin: 5px;
+}
+.sip .button-row input.sip-number {
+       width: 130px;
+}
+.sip .button-row #sip-dialer-btn-erase {
+       margin-left: 5px;
+}
+.sip .button-row #sip-dialer-btn-erase .ui-button-text {
+       padding: .1em .7em;
+       font-weight: bolder;
 }

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=1756981&r1=1756980&r2=1756981&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
 Sat Aug 20 02:52:45 2016
@@ -335,18 +335,15 @@ html, body {
        background: url(images/folder_add.png);
 }
 .recording.om-icon {
-       padding-left: 18px;
        background-image: url(images/film.png);
 }
-.broken-recording.om-icon {
-       padding-left: 18px;
+.broken.recording.om-icon {
        background-image: url(images/film_error.png);
 }
-.processing-recording.om-icon {
-       padding-left: 18px;
+.processing.recording.om-icon {
        background-image: url(images/film_processing.png);
 }
-.file.om-icon {
+.file.om-icon, .recording.om-icon {
        padding-left: 18px;
 }
 .my.file.om-icon {
@@ -356,16 +353,28 @@ html, body {
        background-image: url(images/world_link.png);
 }
 .image.file.om-icon {
-       background-image: url(images/photo.png);
+       background-image: url(images/picture.png);
+}
+.broken.image.file.om-icon {
+       background-image: url(images/picture_error.png);
 }
 .chart.file.om-icon {
        background-image: url(images/chart_pie.png);
 }
+.broken.chart.file.om-icon {
+       background-image: url(images/chart_pie_error.png);
+}
 .wml.file.om-icon {
-       background-image: url(images/map.png);
+       background-image: url(images/layout.png);
+}
+.broken.wml.file.om-icon {
+       background-image: url(images/layout_error.png);
 }
 .doc.file.om-icon {
-       background-image: url(images/report.png);
+       background-image: url(images/page.png);
+}
+.broken.doc.file.om-icon {
+       background-image: url(images/page_error.png);
 }
 .invite.om-icon {
        background-image: url(images/connect.png);

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/js/openmeetings_functions.js
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/js/openmeetings_functions.js?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/js/openmeetings_functions.js
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/js/openmeetings_functions.js
 Sat Aug 20 02:52:45 2016
@@ -56,9 +56,9 @@ function getTimeZoneOffsetMinutes() {
                        break;
                }
        }
-    return std_time_offset;
+       return std_time_offset;
 }
 
 function getTimeZoneOffset() {
-    
document.getElementById("lzapp").getTimeZoneOffsetCallback(getTimeZoneOffsetMinutes()/60);
+       
document.getElementById("lzapp").getTimeZoneOffsetCallback(getTimeZoneOffsetMinutes()/60);
 }

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/library/TestFileParser.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/library/TestFileParser.java?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/library/TestFileParser.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/library/TestFileParser.java
 Sat Aug 20 02:52:45 2016
@@ -25,20 +25,16 @@ import org.apache.openmeetings.test.Abst
 import org.junit.Test;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
 
 public class TestFileParser extends AbstractJUnitDefaults {
        private static final Logger log = 
Red5LoggerFactory.getLogger(TestFileParser.class, webAppRootKey);
 
-       @Autowired
-       private LibraryWmlLoader libraryWmlLoader;
-       
        @Test
        public void testLoadWmlFile(){
                
                try {
                        
-                       libraryWmlLoader.loadWmlFile("filename1");
+                       LibraryWmlLoader.loadWmlFile("filename1");
                        
                } catch (Exception err) {
                        

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
 Sat Aug 20 02:52:45 2016
@@ -43,7 +43,6 @@ import javax.ws.rs.core.MediaType;
 import org.apache.cxf.feature.Features;
 import org.apache.cxf.jaxrs.ext.multipart.Multipart;
 import org.apache.openmeetings.core.data.file.FileProcessor;
-import org.apache.openmeetings.core.data.file.FileUtils;
 import org.apache.openmeetings.core.documents.LoadLibraryPresentation;
 import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
@@ -85,8 +84,6 @@ public class FileWebService {
        @Autowired
        private FileExplorerItemDao fileDao;
        @Autowired
-       private FileUtils fileUtils;
-       @Autowired
        private FileProcessor fileProcessor;
 
        /**
@@ -255,21 +252,12 @@ public class FileWebService {
                }
        }
 
-       private long getSize(List<FileExplorerItem> list) {
-               long size = 0;
-               for (FileExplorerItem f : list) {
-                       log.debug("FileExplorerItem fList " + f.getName());
-                       size += fileUtils.getSizeOfDirectoryAndSubs(f);
-               }
-               return size;
-       }
-       
        /**
         * Get a File Explorer Object by a given Room
         * 
         * @param sid
         *            The SID of the User. This SID must be marked as logged in
-        * @param id
+        * @param roomId
         *            Room Id
         * @return - File Explorer Object by a given Room
         * @throws ServiceException
@@ -291,11 +279,11 @@ public class FileWebService {
 
                                // Home File List
                                List<FileExplorerItem> fList = 
fileDao.getByOwner(userId);
-                               fileExplorerObject.setUser(fList, 
getSize(fList));
+                               fileExplorerObject.setUser(fList, 
fileDao.getSize(fList));
 
                                // Public File List
                                List<FileExplorerItem> rList = 
fileDao.getByRoom(roomId);
-                               fileExplorerObject.setRoom(rList, 
getSize(rList));
+                               fileExplorerObject.setRoom(rList, 
fileDao.getSize(rList));
 
                                return fileExplorerObject;
                        } else {

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
 Sat Aug 20 02:52:45 2016
@@ -304,13 +304,13 @@ public class Recording extends FileItem
                File f = null;
                if (getId() != null && !isDeleted()) {
                        if (ext == null || EXTENSION_MP4.equals(ext)) {
-                               f = getRecording(String.format("%s.%s.%s", 
recordingFileName, EXTENSION_FLV, EXTENSION_AVI));
+                               f = getRecording(String.format("%s%s.%s.%s", 
recordingFileName, id, EXTENSION_FLV, EXTENSION_MP4));
                        } else if (EXTENSION_FLV.equals(ext)) {
-                               f = getRecording(String.format("%s.%s", 
recordingFileName, EXTENSION_FLV));
+                               f = getRecording(String.format("%s%s.%s", 
recordingFileName, id, EXTENSION_FLV));
                        } else if (EXTENSION_AVI.equals(ext)) {
-                               f = getRecording(String.format("%s.%s", 
recordingFileName, EXTENSION_AVI));
+                               f = getRecording(String.format("%s%s.%s", 
recordingFileName, id, EXTENSION_AVI));
                        } else if (EXTENSION_OGG.equals(ext)) {
-                               f = getRecording(String.format("%s.%s.%s", 
recordingFileName, EXTENSION_FLV, EXTENSION_AVI));
+                               f = getRecording(String.format("%s%s.%s.%s", 
recordingFileName, id, EXTENSION_FLV, EXTENSION_OGG));
                        }
                }
                return f;

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/css/theme.css
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/css/theme.css?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/css/theme.css
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/css/theme.css
 Sat Aug 20 02:52:45 2016
@@ -643,6 +643,9 @@ form .input {
 .table .column {
        display: inline-block;
        margin-bottom: 5px;
+       min-height: initial;
+       float: none;
+       margin-right: 0;
 }
 .table .column.label {
        width: 20%;

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
 Sat Aug 20 02:52:45 2016
@@ -304,13 +304,13 @@ public class Recording extends FileItem
                File f = null;
                if (getId() != null && !isDeleted()) {
                        if (ext == null || EXTENSION_MP4.equals(ext)) {
-                               f = getRecording(String.format("%s.%s.%s", 
recordingFileName, EXTENSION_FLV, EXTENSION_AVI));
+                               f = getRecording(String.format("%s%s.%s.%s", 
recordingFileName, id, EXTENSION_FLV, EXTENSION_MP4));
                        } else if (EXTENSION_FLV.equals(ext)) {
-                               f = getRecording(String.format("%s.%s", 
recordingFileName, EXTENSION_FLV));
+                               f = getRecording(String.format("%s%s.%s", 
recordingFileName, id, EXTENSION_FLV));
                        } else if (EXTENSION_AVI.equals(ext)) {
-                               f = getRecording(String.format("%s.%s", 
recordingFileName, EXTENSION_AVI));
+                               f = getRecording(String.format("%s%s.%s", 
recordingFileName, id, EXTENSION_AVI));
                        } else if (EXTENSION_OGG.equals(ext)) {
-                               f = getRecording(String.format("%s.%s.%s", 
recordingFileName, EXTENSION_FLV, EXTENSION_AVI));
+                               f = getRecording(String.format("%s%s.%s.%s", 
recordingFileName, id, EXTENSION_FLV, EXTENSION_OGG));
                        }
                }
                return f;

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/theme.css
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/theme.css?rev=1756981&r1=1756980&r2=1756981&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/theme.css 
(original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/theme.css 
Sat Aug 20 02:52:45 2016
@@ -643,6 +643,9 @@ form .input {
 .table .column {
        display: inline-block;
        margin-bottom: 5px;
+       min-height: initial;
+       float: none;
+       margin-right: 0;
 }
 .table .column.label {
        width: 20%;


Reply via email to