You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2014/06/27 10:50:51 UTC
svn commit: r1605992 [2/2] - in /openmeetings/trunk/singlewebapp: ./
openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/
openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/
openmeetings-core/src/main/java/org/apa...
Copied: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.java (from r1605283, openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingErrorsDialog.java)
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.java?p2=openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.java&p1=openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingErrorsDialog.java&r1=1605283&r2=1605992&rev=1605992&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingErrorsDialog.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.java Fri Jun 27 08:50:50 2014
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.openmeetings.web.user.record;
+package org.apache.openmeetings.web.common.tree;
import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
import static org.apache.openmeetings.util.OmFileHelper.isRecordingExists;
@@ -41,7 +41,7 @@ import org.apache.wicket.model.Model;
import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractDialog;
import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
-public class RecordingErrorsDialog extends AbstractDialog<FlvRecording> {
+public class ConvertingErrorsDialog extends AbstractDialog<FlvRecording> {
private static final long serialVersionUID = 1L;
private final WebMarkupContainer container = new WebMarkupContainer("container");
private final Label message = new Label("message", Model.of((String)null));
@@ -74,7 +74,7 @@ public class RecordingErrorsDialog exten
return true;
}
- public RecordingErrorsDialog(String id, IModel<FlvRecording> model) {
+ public ConvertingErrorsDialog(String id, IModel<FlvRecording> model) {
super(id, WebSession.getString(887), model);
add(container.add(message.setVisible(false), logView.setVisible(false)).setOutputMarkupId(true));
}
Copied: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.java (from r1605283, openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.java)
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.java?p2=openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.java&p1=openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.java&r1=1605283&r2=1605992&rev=1605992&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.java Fri Jun 27 08:50:50 2014
@@ -16,13 +16,14 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.openmeetings.web.user.record;
+package org.apache.openmeetings.web.common.tree;
import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
import static org.apache.openmeetings.util.OmFileHelper.isRecordingExists;
import static org.apache.openmeetings.web.app.Application.getBean;
import org.apache.openmeetings.db.dao.record.FlvRecordingLogDao;
+import org.apache.openmeetings.db.entity.file.FileItem;
import org.apache.openmeetings.db.entity.record.FlvRecording;
import org.apache.openmeetings.db.entity.record.FlvRecording.Status;
import org.apache.wicket.ajax.AjaxEventBehavior;
@@ -30,22 +31,24 @@ import org.apache.wicket.ajax.AjaxReques
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.model.IModel;
-public class RecordingItemPanel extends RecordingPanel {
+public class FileItemPanel extends FolderPanel {
private static final long serialVersionUID = 1L;
- public RecordingItemPanel(String id, final IModel<FlvRecording> model, final RecordingErrorsDialog errorsDialog) {
+ public FileItemPanel(String id, final IModel<? extends FileItem> model, final ConvertingErrorsDialog errorsDialog) {
super(id, model);
- FlvRecording r = model.getObject();
- long errorCount = getBean(FlvRecordingLogDao.class).countErrors(r.getId());
- boolean visible = errorCount != 0 || (Status.PROCESSING != r.getStatus() && !isRecordingExists(r.getFileHash() + MP4_EXTENSION));
- item.add(new WebMarkupContainer("errors").add(new AjaxEventBehavior("click") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- errorsDialog.setDefaultModel(model);
- errorsDialog.open(target);
- }
- }).setVisible(visible));
+ if (model.getObject() instanceof FlvRecording) {
+ FlvRecording r = (FlvRecording)model.getObject();
+ long errorCount = getBean(FlvRecordingLogDao.class).countErrors(r.getId());
+ boolean visible = errorCount != 0 || (Status.PROCESSING != r.getStatus() && !isRecordingExists(r.getFileHash() + MP4_EXTENSION));
+ item.add(new WebMarkupContainer("errors").add(new AjaxEventBehavior("click") {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onEvent(AjaxRequestTarget target) {
+ errorsDialog.setDefaultModel(model);
+ errorsDialog.open(target);
+ }
+ }).setVisible(visible));
+ }
}
}
Added: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java?rev=1605992&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java (added)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java Fri Jun 27 08:50:50 2014
@@ -0,0 +1,218 @@
+/*
+ * 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.tree;
+
+import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.isRecordingExists;
+import static org.apache.openmeetings.web.app.Application.getBean;
+
+import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
+import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.entity.file.FileExplorerItem;
+import org.apache.openmeetings.db.entity.file.FileItem;
+import org.apache.openmeetings.db.entity.file.FileItem.Type;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.db.entity.record.FlvRecording.Status;
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.extensions.markup.html.repeater.tree.DefaultNestedTree;
+import org.apache.wicket.extensions.markup.html.repeater.tree.ITreeProvider;
+import org.apache.wicket.extensions.markup.html.repeater.tree.content.Folder;
+import org.apache.wicket.markup.repeater.ReuseIfModelsEqualStrategy;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+
+import wicketdnd.DragSource;
+import wicketdnd.DropTarget;
+import wicketdnd.Location;
+import wicketdnd.Operation;
+import wicketdnd.Reject;
+import wicketdnd.Transfer;
+
+public class FileItemTree<T extends FileItem> extends DefaultNestedTree<T> {
+ private static final long serialVersionUID = 1L;
+ private final FileTreePanel treePanel;
+ private final IModel<T> selectedItem = Model.of((T)null);
+
+ public FileItemTree(String id, FileTreePanel treePanel, ITreeProvider<T> tp) {
+ super(id, tp);
+ this.treePanel = treePanel;
+ setItemReuseStrategy(new ReuseIfModelsEqualStrategy());
+ }
+
+ @Override
+ protected Component newContentComponent(String id, IModel<T> node) {
+ return new Folder<T>(id, this, node) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected Component newLabelComponent(String id, final IModel<T> lm) {
+ FileItem r = lm.getObject();
+ Component result = Type.Folder == r.getType() || r.getId() < 1 ? new FolderPanel(id, lm) : new FileItemPanel(id, lm, treePanel.errorsDialog);
+ if (r.getId() > 0) {
+ result.add(new DragSource(Operation.MOVE) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onBeforeDrop(Component drag, Transfer transfer) throws Reject {
+ transfer.setData(lm.getObject());
+ };
+
+ @Override
+ public void onAfterDrop(AjaxRequestTarget target, wicketdnd.Transfer transfer) {
+ transfer.setData(null);
+ }
+ }.drag("div"));
+ }
+ if (r.getId() < 0 || Type.Folder == r.getType()) {
+ result.add(new DropTarget(Operation.MOVE) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onDrop(AjaxRequestTarget target, Transfer transfer, Location location) throws Reject {
+ FileItem p = lm.getObject();
+ long pid = p.getId();
+ T f = transfer.getData();
+ f.setParentItemId(pid > 0 ? pid : null);
+ f.setOwnerId(p.getOwnerId());
+ f.setRoomId(p.getRoomId());
+ if (f instanceof FlvRecording) {
+ FlvRecording r = (FlvRecording)f;
+ r.setOrganization_id(((FlvRecording)p).getOrganization_id());
+ getBean(FlvRecordingDao.class).update(r);
+ } else {
+ getBean(FileExplorerItemDao.class).update((FileExplorerItem)f);
+ }
+ target.add(treePanel.trees); //FIXME add correct refresh
+ }
+ }.dropCenter("div"));
+ }
+ return result;
+ }
+
+ @Override
+ protected boolean isSelected() {
+ return getModelObject().getId() == treePanel.rm.getObject().getId();
+ }
+
+ @Override
+ protected boolean isClickable() {
+ return true;
+ }
+
+ @Override
+ protected void onClick(AjaxRequestTarget target) {
+ T r = getModelObject();
+ treePanel.selected.resetSelected(target);
+ selectedItem.setObject(r);
+ treePanel.rm.setObject(r);
+ treePanel.selected = FileItemTree.this;
+ if (Type.Folder == r.getType()) {
+ if (getState(r) == State.COLLAPSED) {
+ super.onClick(target);
+ }
+ updateBranch(r, target);
+ } else {
+ treePanel.update(target, r);
+ updateNode(r, target);
+ }
+ }
+
+ private String getItemStyle(T f, String def) {
+ String style;
+ if (f.getId() == 0) {
+ style = "my file om-icon";
+ } else if (f.getId() < 0) {
+ style = "public file om-icon";
+ } else {
+ switch(f.getType()) {
+ case Folder:
+ style = def;
+ break;
+ case Image:
+ style = "image file om-icon";
+ break;
+ case PollChart:
+ style = "chart file om-icon";
+ break;
+ case WmlFile:
+ style = "wml file om-icon";
+ break;
+ case Recording:
+ {
+ FlvRecording r = (FlvRecording)f;
+ if (isRecordingExists(r.getFileHash() + MP4_EXTENSION)) {
+ style = "recording om-icon";
+ } else if (Status.PROCESSING == r.getStatus()) {
+ style = "processing-recording om-icon";
+ } else {
+ style = "broken-recording om-icon";
+ }
+ }
+ break;
+ case Presentation:
+ style = "doc file om-icon";
+ break;
+ case Video:
+ default:
+ style = "recording om-icon";
+ break;
+ }
+ }
+ return style;
+ }
+
+ @Override
+ protected String getOtherStyleClass(T r) {
+ String style = getItemStyle(r, super.getOtherStyleClass(r));
+ if (isSelected()) {
+ style += " ui-state-active";
+ }
+ return style;
+ }
+
+ @Override
+ protected String getOpenStyleClass() {
+ return getItemStyle(getModelObject(), super.getOpenStyleClass());
+ }
+
+ @Override
+ protected String getClosedStyleClass() {
+ return getItemStyle(getModelObject(), super.getClosedStyleClass());
+ }
+
+ @Override
+ protected IModel<String> newLabelModel(IModel<T> model) {
+ return Model.of(model.getObject().getFileName());
+ }
+ };
+ }
+
+ private void resetSelected(AjaxRequestTarget target) {
+ T _prev = selectedItem.getObject();
+ if (_prev != null) {
+ if (Type.Folder == _prev.getType()) {
+ updateBranch(_prev, target);
+ } else {
+ updateNode(_prev, target);
+ }
+ selectedItem.setObject(null);
+ }
+ }
+}
Added: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html?rev=1605992&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html (added)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html Fri Jun 27 08:50:50 2014
@@ -0,0 +1,49 @@
+<?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="file tree">
+ <div class="icons clear">
+ <span wicket:id="create" class="folder-create om-icon align-left clickable" wicket:ommessage="title:703"></span>
+ <span wicket:id="refresh" class="refresh om-icon align-left clickable" wicket:ommessage="title:704"></span>
+ <span wicket:id="trash" class="trash om-icon align-right clickable" wicket:ommessage="title:705"><span style="display: block;" wicket:id="drop-center"> </span></span>
+ <div class="clear"></div>
+ </div>
+ <div wicket:id="tree-container" class="trees">
+ <div wicket:id="tree"></div>
+ </div>
+ <div class="sizes" wicket:id="sizes">
+ <table>
+ <tr>
+ <td><wicket:ommessage key="923"/></td>
+ <td><span wicket:id="homeSize"></span></td>
+ </tr>
+ <tr>
+ <td><wicket:ommessage key="924"/></td>
+ <td><span wicket:id="publicSize"></span></td>
+ </tr>
+ </table>
+ </div>
+ <div wicket:id="addFolder"></div>
+ <div wicket:id="errors"></div>
+ </div>
+</wicket:panel>
+</html>
\ No newline at end of file
Added: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java?rev=1605992&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java (added)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java Fri Jun 27 08:50:50 2014
@@ -0,0 +1,139 @@
+/*
+ * 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.tree;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+
+import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
+import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.entity.file.FileExplorerItem;
+import org.apache.openmeetings.db.entity.file.FileItem;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.common.AddFolderDialog;
+import org.apache.openmeetings.web.common.ConfirmableAjaxLink;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.AjaxSelfUpdatingTimerBehavior;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+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 wicketdnd.DropTarget;
+import wicketdnd.Location;
+import wicketdnd.Operation;
+import wicketdnd.Reject;
+import wicketdnd.Transfer;
+
+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> rm = 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((FlvRecording)null));
+ protected FileItemTree<? extends FileItem> selected;
+ protected RepeatingView treesView = new RepeatingView("tree");
+
+ public FileTreePanel(String id) {
+ super(id);
+ defineTrees();
+ rm.getObject().setId(Long.MIN_VALUE);
+ final AddFolderDialog addFolder = new AddFolderDialog("addFolder", WebSession.getString(712)) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onSubmit(AjaxRequestTarget target) {
+ createFolder(getModelObject());
+ target.add(trees); //FIXME add correct refresh
+ }
+ };
+ add(addFolder);
+ add(new WebMarkupContainer("create").add(new AjaxEventBehavior("onclick") {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onEvent(AjaxRequestTarget target) {
+ addFolder.open(target);
+ }
+ }));
+ add(new WebMarkupContainer("refresh").add(new AjaxEventBehavior("onclick") {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onEvent(AjaxRequestTarget target) {
+ target.add(trees); //FIXME add correct refresh
+ }
+ }));
+ ConfirmableAjaxLink trash = new ConfirmableAjaxLink("trash", 713) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onClick(AjaxRequestTarget target) {
+ FileItem f = rm.getObject();
+ long id = f.getId();
+ if (id > 0) {
+ if (f instanceof FlvRecording) {
+ getBean(FlvRecordingDao.class).delete((FlvRecording)f);
+ } else {
+ getBean(FileExplorerItemDao.class).delete((FileExplorerItem)f);
+ }
+ }
+ target.add(trees); //FIXME add correct refresh
+ }
+ };
+ trash.add(new WebMarkupContainer("drop-center").setOutputMarkupId(true)).add(new DropTarget(Operation.MOVE) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onDrop(AjaxRequestTarget target, Transfer transfer, Location location) throws Reject {
+ FlvRecording r = transfer.getData();
+ getBean(FlvRecordingDao.class).delete(r);
+ target.add(trees); //FIXME add correct refresh
+ }
+ }.dropCenter("span"));
+ add(trash/*.add(new WindowsTheme())*/); //TODO check theme here
+
+ add(trees.add(treesView).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;
+
+ protected void onPostProcessTarget(AjaxRequestTarget target) {
+ updateSizes();
+ }
+ });
+ add(errorsDialog);
+ }
+
+ public abstract void defineTrees();
+
+ public abstract void update(AjaxRequestTarget target, FileItem f);
+
+ public abstract void createFolder(String name);
+
+ public abstract void updateSizes();
+}
Copied: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.html (from r1605283, openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingPanel.html)
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.html?p2=openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.html&p1=openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingPanel.html&r1=1605283&r2=1605992&rev=1605992&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingPanel.html (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.html Fri Jun 27 08:50:50 2014
@@ -20,6 +20,6 @@
-->
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
- <div wicket:id="item" class="recording item"><span wicket:id="name" class="name"></span><wicket:child /></div>
+ <div wicket:id="item" class="file item"><wicket:child /><span wicket:id="name" class="name"></span></div>
</wicket:panel>
</html>
Copied: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java (from r1605283, openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingPanel.java)
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java?p2=openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java&p1=openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingPanel.java&r1=1605283&r2=1605992&rev=1605992&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingPanel.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java Fri Jun 27 08:50:50 2014
@@ -16,11 +16,15 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.openmeetings.web.user.record;
+package org.apache.openmeetings.web.common.tree;
import static org.apache.openmeetings.web.app.Application.getBean;
+import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.entity.file.FileExplorerItem;
+import org.apache.openmeetings.db.entity.file.FileItem;
+import org.apache.openmeetings.db.entity.file.FileItem.Type;
import org.apache.openmeetings.db.entity.record.FlvRecording;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.ajax.markup.html.AjaxEditableLabel;
@@ -32,15 +36,15 @@ import org.apache.wicket.model.Model;
import wicketdnd.theme.WindowsTheme;
-public class RecordingPanel extends Panel {
+public class FolderPanel extends Panel {
private static final long serialVersionUID = 1L;
protected final WebMarkupContainer item = new WebMarkupContainer("item");
- public RecordingPanel(String id, final IModel<FlvRecording> model) {
+ public FolderPanel(String id, final IModel<? extends FileItem> model) {
super(id, model);
- FlvRecording r = model.getObject();
+ FileItem r = model.getObject();
add(new WindowsTheme());
- item.add(r.isFolder() ? new AjaxEditableLabel<String>("name", Model.of(model.getObject().getFileName())) {
+ item.add(Type.Folder == r.getType() ? new AjaxEditableLabel<String>("name", Model.of(model.getObject().getFileName())) {
private static final long serialVersionUID = 1L;
@Override
@@ -51,9 +55,13 @@ public class RecordingPanel extends Pane
@Override
protected void onSubmit(AjaxRequestTarget target) {
super.onSubmit(target);
- FlvRecording r = model.getObject();
- r.setFileName(getEditor().getModelObject());
- getBean(FlvRecordingDao.class).update(r);
+ FileItem fi = model.getObject();
+ fi.setFileName(getEditor().getModelObject());
+ if (fi instanceof FlvRecording) {
+ getBean(FlvRecordingDao.class).update((FlvRecording)fi);
+ } else {
+ getBean(FileExplorerItemDao.class).update((FileExplorerItem)fi);
+ }
}
@Override
Added: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/MyRecordingTreeProvider.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/MyRecordingTreeProvider.java?rev=1605992&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/MyRecordingTreeProvider.java (added)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/MyRecordingTreeProvider.java Fri Jun 27 08:50:50 2014
@@ -0,0 +1,49 @@
+/*
+ * 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.tree;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import java.util.Arrays;
+import java.util.Iterator;
+
+import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.web.app.WebSession;
+
+public class MyRecordingTreeProvider extends RecordingTreeProvider {
+ private static final long serialVersionUID = 1L;
+
+ public Iterator<? extends FlvRecording> getRoots() {
+ FlvRecording r = new FlvRecording();
+ r.setId(0L);
+ r.setFileName(WebSession.getString(860));
+ r.setOwnerId(getUserId());
+ return Arrays.asList(r).iterator();
+ }
+
+ public Iterator<? extends FlvRecording> getChildren(FlvRecording node) {
+ if (node.getId() == 0) {
+ return getBean(FlvRecordingDao.class).getFlvRecordingRootByOwner(getUserId()).iterator();
+ } else {
+ return super.getChildren(node);
+ }
+ }
+}
Added: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/PublicRecordingTreeProvider.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/PublicRecordingTreeProvider.java?rev=1605992&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/PublicRecordingTreeProvider.java (added)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/PublicRecordingTreeProvider.java Fri Jun 27 08:50:50 2014
@@ -0,0 +1,57 @@
+/*
+ * 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.tree;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+
+import java.util.Arrays;
+import java.util.Iterator;
+
+import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.web.app.WebSession;
+
+public class PublicRecordingTreeProvider extends RecordingTreeProvider {
+ private static final long serialVersionUID = 1L;
+ private final Long orgId;
+ private final String name;
+
+ public PublicRecordingTreeProvider(Long orgId, String name) {
+ this.orgId = orgId;
+ this.name = name;
+ }
+
+ public Iterator<? extends FlvRecording> getRoots() {
+ FlvRecording r = new FlvRecording();
+ r.setId(orgId == null ? -1 : -orgId);
+ r.setOrganization_id(orgId);
+ r.setOwnerId(null);
+ String pub = WebSession.getString(861);
+ r.setFileName(orgId == null ? pub : String.format("%s (%s)", pub, name));
+ return Arrays.asList(r).iterator();
+ }
+
+ public Iterator<? extends FlvRecording> getChildren(FlvRecording node) {
+ if (node.getId() < 0) {
+ return getBean(FlvRecordingDao.class).getFlvRecordingRootByPublic(orgId).iterator();
+ } else {
+ return super.getChildren(node);
+ }
+ }
+}
Added: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/RecordingTreeProvider.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/RecordingTreeProvider.java?rev=1605992&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/RecordingTreeProvider.java (added)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/RecordingTreeProvider.java Fri Jun 27 08:50:50 2014
@@ -0,0 +1,52 @@
+/*
+ * 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.tree;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+
+import java.util.Iterator;
+
+import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.entity.file.FileItem.Type;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.wicket.extensions.markup.html.repeater.tree.ITreeProvider;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+
+public abstract class RecordingTreeProvider implements ITreeProvider<FlvRecording> {
+ private static final long serialVersionUID = 1L;
+
+ public void detach() {
+ // TODO LDM should be used
+ }
+
+ public boolean hasChildren(FlvRecording node) {
+ return node.getId() <= 0 || Type.Folder == node.getType();
+ }
+
+ public Iterator<? extends FlvRecording> getChildren(FlvRecording node) {
+ return getBean(FlvRecordingDao.class).getFlvRecordingByParent(node.getId()).iterator();
+ }
+
+ public IModel<FlvRecording> model(FlvRecording object) {
+ // TODO LDM should be used
+ return Model.of(object);
+ }
+
+}
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html?rev=1605992&r1=1605991&r2=1605992&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html Fri Jun 27 08:50:50 2014
@@ -22,7 +22,13 @@
<wicket:panel>
<div wicket:id="roomMenu"></div>
<div class="room sidebar left">
- <div class="user list">
+ <div class="tabs">
+ <ul>
+ <li><a href="#utab"><wicket:ommessage key="613"/></a></li>
+ <li><a wicket:id="flink" href="#ftab"><wicket:ommessage key="614"/></a></li>
+ </ul>
+ <div id="utab"><div class="user list"></div></div>
+ <div wicket:id="ftab" id="ftab"><div class="file list"></div></div>
</div>
</div>
<div class="room wb area">
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1605992&r1=1605991&r2=1605992&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java Fri Jun 27 08:50:50 2014
@@ -66,6 +66,9 @@ import org.red5.logging.Red5LoggerFactor
import org.slf4j.Logger;
import org.wicketstuff.whiteboard.WhiteboardBehavior;
+import com.googlecode.wicket.jquery.core.JQueryBehavior;
+import com.googlecode.wicket.jquery.core.Options;
+
@AuthorizeInstantiation("Room")
public class RoomPanel extends BasePanel {
private static final long serialVersionUID = 1L;
@@ -100,6 +103,17 @@ public class RoomPanel extends BasePanel
add(wb.setOutputMarkupId(true));
add(new WhiteboardBehavior("1", wb.getMarkupId(), null, null, null));
add(aab, AttributeAppender.append("style", "height: 100%;"));
+ boolean showFiles = !r.getHideFilesExplorer();
+ add(new WebMarkupContainer("flink").setVisible(showFiles));
+ add(new WebMarkupContainer("ftab").setVisible(showFiles));
+ add(new JQueryBehavior(".room.sidebar.left .tabs", "tabs", new Options("active", showFiles && r.isFilesOpened() ? "ftab" : "utab")) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void renderScript(JavaScriptHeaderItem script, IHeaderResponse response) {
+ response.render(new PriorityHeaderItem(script));
+ }
+ });
}
private JSONArray getStringLabels(long... ids) {
@@ -230,6 +244,7 @@ public class RoomPanel extends BasePanel
public void onMenuPanelLoad(AjaxRequestTarget target) {
target.add(getMainPage().getHeader().setVisible(false), getMainPage().getMenu().setVisible(false)
, getMainPage().getTopLinks().setVisible(false));
+ target.appendJavaScript("roomLoad();");
}
@Override
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js?rev=1605992&r1=1605991&r2=1605992&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js Fri Jun 27 08:50:50 2014
@@ -113,18 +113,35 @@ function initVideo(sid, roomid, audioOnl
.attr('allowscriptaccess', 'sameDomain').attr('type', 'application/x-shockwave-flash')
.attr('pluginspage', 'http://www.macromedia.com/go/getflashplayer')
*/
- r.dialog({ width: options.width, height: options.height, dialogClass: "video" });
+ r.dialog({width: options.width, height: options.height, dialogClass: "video"});
}
function setHeight() {
var h = $(window).height() - $('#roomMenu').height();
$(".room.sidebar.left").height(h);
+ var p = $(".room.sidebar.left .tabs");
+ p.height(h - 5); //FIXME hacks
+ $(".user.list", p).height(h - $("ul", p).height() - 15); //FIXME hacks
$(".room.wb.area").height(h);
$(".room.wb.area .wb").height(h);
}
$(document).ready(function() {
$(window).on('resize.openmeetings', function() {
+ roomWidth = $(window).width();
setHeight();
});
});
+
+var roomWidth = $(window).width();
+function roomLoad() {
+ $(".room.sidebar.left").resizable({
+ handles: "e"
+ , stop: function(event, ui) {
+ //TODO not really works, need to be investigated
+ var w = roomWidth - $(this).width() - 5;
+ $(".room.wb.area").width(w);
+ $(".room.wb.area .wb").width(w);
+ }
+ });
+}
\ No newline at end of file
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html?rev=1605992&r1=1605991&r2=1605992&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html Fri Jun 27 08:50:50 2014
@@ -22,28 +22,8 @@
<wicket:panel>
<table class="recording">
<tr>
- <td valign="top" class="files">
- <div class="icons clear">
- <span wicket:id="create" class="folder-create om-icon align-left clickable"></span>
- <span wicket:id="refresh" class="refresh om-icon align-left clickable"></span>
- <span wicket:id="trash" class="trash om-icon align-right clickable" wicket:ommessage="title:705"><span style="display: block;" wicket:id="drop-center"> </span></span>
- <div class="clear"></div>
- </div>
- <div wicket:id="tree-container" class="trees">
- <div wicket:id="tree"></div>
- </div>
- <div class="sizes" wicket:id="sizes">
- <table>
- <tr>
- <td><wicket:ommessage key="923"/></td>
- <td><span wicket:id="homeSize"></span></td>
- </tr>
- <tr>
- <td><wicket:ommessage key="924"/></td>
- <td><span wicket:id="publicSize"></span></td>
- </tr>
- </table>
- </div>
+ <td valign="top" class="file tree container">
+ <div wicket:id="tree"></div>
<div wicket:id="info"></div>
</td>
<td valign="top">
@@ -51,7 +31,5 @@
</td>
</tr>
</table>
- <div wicket:id="addFolder"></div>
- <div wicket:id="errors"></div>
</wicket:panel>
</html>
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java?rev=1605992&r1=1605991&r2=1605992&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java Fri Jun 27 08:50:50 2014
@@ -18,358 +18,81 @@
*/
package org.apache.openmeetings.web.user.record;
-import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
import static org.apache.openmeetings.util.OmFileHelper.getHumanSize;
-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.util.Arrays;
import java.util.Date;
-import java.util.Iterator;
import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.dto.file.RecordingContainerData;
+import org.apache.openmeetings.db.entity.file.FileItem;
+import org.apache.openmeetings.db.entity.file.FileItem.Type;
import org.apache.openmeetings.db.entity.record.FlvRecording;
-import org.apache.openmeetings.db.entity.record.FlvRecording.Status;
import org.apache.openmeetings.db.entity.user.Organisation;
import org.apache.openmeetings.db.entity.user.Organisation_Users;
-import org.apache.openmeetings.web.app.WebSession;
-import org.apache.openmeetings.web.common.AddFolderDialog;
-import org.apache.openmeetings.web.common.ConfirmableAjaxLink;
import org.apache.openmeetings.web.common.UserPanel;
-import org.apache.wicket.Component;
-import org.apache.wicket.ajax.AjaxEventBehavior;
+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;
-import org.apache.wicket.ajax.AjaxSelfUpdatingTimerBehavior;
-import org.apache.wicket.extensions.markup.html.repeater.tree.DefaultNestedTree;
-import org.apache.wicket.extensions.markup.html.repeater.tree.ITreeProvider;
-import org.apache.wicket.extensions.markup.html.repeater.tree.content.Folder;
-import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.repeater.RepeatingView;
-import org.apache.wicket.markup.repeater.ReuseIfModelsEqualStrategy;
-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 wicketdnd.DragSource;
-import wicketdnd.DropTarget;
-import wicketdnd.Location;
-import wicketdnd.Operation;
-import wicketdnd.Reject;
-import wicketdnd.Transfer;
public class RecordingsPanel extends UserPanel {
private static final long serialVersionUID = 1L;
- private final WebMarkupContainer trees = new WebMarkupContainer("tree-container");
- private final WebMarkupContainer sizes = new WebMarkupContainer("sizes");
private final VideoPlayer video = new VideoPlayer("video");
private final VideoInfo info = new VideoInfo("info");
- private final IModel<FlvRecording> rm = new CompoundPropertyModel<FlvRecording>(new FlvRecording());
- private final IModel<String> homeSize = Model.of((String)null);
- private final IModel<String> publicSize = Model.of((String)null);
- private final RecordingErrorsDialog errorsDialog = new RecordingErrorsDialog("errors", Model.of((FlvRecording)null));
- private RecordingTree selected;
public RecordingsPanel(String id) {
super(id);
- rm.getObject().setId(Long.MIN_VALUE);
- final AddFolderDialog addFolder = new AddFolderDialog("addFolder", WebSession.getString(712)) {
+ add(new FileTreePanel("tree") {
private static final long serialVersionUID = 1L;
@Override
- protected void onSubmit(AjaxRequestTarget target) {
- FlvRecording f = new FlvRecording();
- f.setFileName(getModelObject());
- f.setInsertedBy(getUserId());
- f.setInserted(new Date());
- f.setFolder(true);
- f.setIsImage(false);
- f.setIsPresentation(false);
- f.setIsRecording(true);
- FlvRecording p = rm.getObject();
- long parentId = p.getId();
- if (p.isFolder()) {
- f.setParentFileExplorerItemId(parentId);
+ public void defineTrees() {
+ rm.setObject(new FlvRecording());
+ treesView.add(selected = new FileItemTree<FlvRecording>(treesView.newChildId(), this, new MyRecordingTreeProvider()));
+ treesView.add(new FileItemTree<FlvRecording>(treesView.newChildId(), this, new PublicRecordingTreeProvider(null, null)));
+ for (Organisation_Users ou : getBean(UserDao.class).get(getUserId()).getOrganisation_users()) {
+ Organisation o = ou.getOrganisation();
+ treesView.add(new FileItemTree<FlvRecording>(treesView.newChildId(), this, new PublicRecordingTreeProvider(o.getId(), o.getName())));
}
- f.setOwnerId(p.getOwnerId());
- f.setOrganization_id(p.getOrganization_id());
- getBean(FlvRecordingDao.class).update(f);
- target.add(trees); //FIXME add correct refresh
- }
- };
- add(addFolder);
- add(new WebMarkupContainer("create").add(new AjaxEventBehavior("onclick") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- addFolder.open(target);
}
- }));
- add(new WebMarkupContainer("refresh").add(new AjaxEventBehavior("onclick") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- target.add(trees); //FIXME add correct refresh
- }
- }));
- ConfirmableAjaxLink trash = new ConfirmableAjaxLink("trash", 713) {
- private static final long serialVersionUID = 1L;
-
+
@Override
- public void onClick(AjaxRequestTarget target) {
- long id = rm.getObject().getId();
- if (id > 0) {
- getBean(FlvRecordingDao.class).delete(rm.getObject());
+ public void updateSizes() {
+ RecordingContainerData sizeData = getBean(FlvRecordingDao.class).getRecordingContainerData(getUserId());
+ if (sizeData != null) {
+ homeSize.setObject(getHumanSize(sizeData.getUserHomeSize()));
+ publicSize.setObject(getHumanSize(sizeData.getPublicFileSize()));
}
- target.add(trees); //FIXME add correct refresh
}
- };
- trash.add(new WebMarkupContainer("drop-center").setOutputMarkupId(true)).add(new DropTarget(Operation.MOVE) {
- private static final long serialVersionUID = 1L;
-
+
@Override
- public void onDrop(AjaxRequestTarget target, Transfer transfer, Location location) throws Reject {
- FlvRecording r = transfer.getData();
- getBean(FlvRecordingDao.class).delete(r);
- target.add(trees); //FIXME add correct refresh
- }
- }.dropCenter("span"));
- add(trash/*.add(new WindowsTheme())*/); //TODO check theme here
- RepeatingView treesView = new RepeatingView("tree");
- treesView.add(selected = new RecordingTree(treesView.newChildId(), new MyRecordingTreeProvider()));
- treesView.add(new RecordingTree(treesView.newChildId(), new PublicRecordingTreeProvider(null, null)));
- for (Organisation_Users ou : getBean(UserDao.class).get(getUserId()).getOrganisation_users()) {
- Organisation o = ou.getOrganisation();
- treesView.add(new RecordingTree(treesView.newChildId(), new PublicRecordingTreeProvider(o.getId(), o.getName())));
- }
- add(trees.add(treesView).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;
-
- protected void onPostProcessTarget(AjaxRequestTarget target) {
- updateSizes();
+ public void update(AjaxRequestTarget target, FileItem f) {
+ video.update(target, (FlvRecording)f);
+ info.update(target, (FlvRecording)f);
}
- });
- add(video, info, errorsDialog);
- }
-
- private void updateSizes() {
- RecordingContainerData sizeData = getBean(FlvRecordingDao.class).getRecordingContainerData(getUserId());
- if (sizeData != null) {
- homeSize.setObject(getHumanSize(sizeData.getUserHomeSize()));
- publicSize.setObject(getHumanSize(sizeData.getPublicFileSize()));
- }
- }
-
- //FIXME need to be generalized to use as Room files explorer
- class RecordingTree extends DefaultNestedTree<FlvRecording> {
- private static final long serialVersionUID = 1L;
-
- public RecordingTree(String id, ITreeProvider<FlvRecording> tp) {
- super(id, tp);
- setItemReuseStrategy(new ReuseIfModelsEqualStrategy());
- }
-
- @Override
- protected Component newContentComponent(String id, IModel<FlvRecording> node) {
- return new Folder<FlvRecording>(id, this, node) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected Component newLabelComponent(String id, final IModel<FlvRecording> lm) {
- FlvRecording r = lm.getObject();
- Component result = r.isFolder() || r.getId() < 1 ? new RecordingPanel(id, lm) : new RecordingItemPanel(id, lm, errorsDialog);
- if (r.getId() > 0) {
- result.add(new DragSource(Operation.MOVE) {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void onBeforeDrop(Component drag, Transfer transfer) throws Reject {
- transfer.setData(lm.getObject());
- };
-
- @Override
- public void onAfterDrop(AjaxRequestTarget target, wicketdnd.Transfer transfer) {
- transfer.setData(null);
- }
- }.drag("div"));
- }
- if (r.getId() < 0 || r.isFolder()) {
- result.add(new DropTarget(Operation.MOVE) {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void onDrop(AjaxRequestTarget target, Transfer transfer, Location location) throws Reject {
- FlvRecording p = lm.getObject();
- long pid = p.getId();
- FlvRecording r = transfer.getData();
- r.setParentFileExplorerItemId(pid > 0 ? pid : null);
- r.setOrganization_id(p.getOrganization_id());
- r.setOwnerId(p.getOwnerId());
- getBean(FlvRecordingDao.class).update(r);
- target.add(trees); //FIXME add correct refresh
- }
- }.dropCenter("div"));
- }
- return result;
- }
-
- @Override
- protected boolean isSelected() {
- return getModelObject().getId() == rm.getObject().getId();
- }
-
- @Override
- protected boolean isClickable() {
- return true;
- }
-
- @Override
- protected void onClick(AjaxRequestTarget target) {
- FlvRecording r = getModelObject();
- FlvRecording _prev = rm.getObject();
- rm.setObject(r);
- if (_prev != null) {
- if (_prev.isFolder()) {
- selected.updateBranch(_prev, target);
- } else {
- selected.updateNode(_prev, target);
- }
- }
- selected = RecordingTree.this;
- if (r.isFolder()) {
- if (getState(r) == State.COLLAPSED) {
- super.onClick(target);
- }
- updateBranch(r, target);
- } else {
- video.update(target, r);
- info.update(target, r);
- updateNode(r, target);
- }
- }
-
- private String getRecordingStyle(FlvRecording r, String def) {
- String style;
- if (r.getId() == 0) {
- style = "my-recordings om-icon";
- } else if (r.getId() < 0) {
- style = "public-recordings om-icon";
- } else if (r.isFolder()) {
- style = def;
- } else if (isRecordingExists(r.getFileHash() + MP4_EXTENSION)) {
- style = "recording om-icon";
- } else if (Status.PROCESSING == r.getStatus()) {
- style = "processing-recording om-icon";
- } else {
- style = "broken-recording om-icon";
- }
- return style;
- }
-
- @Override
- protected String getOtherStyleClass(FlvRecording r) {
- String style = getRecordingStyle(r, super.getOtherStyleClass(r));
- if (isSelected()) {
- style += " ui-state-active";
- }
- return style;
- }
-
- @Override
- protected String getOpenStyleClass() {
- return getRecordingStyle(getModelObject(), super.getOpenStyleClass());
- }
-
- @Override
- protected String getClosedStyleClass() {
- return getRecordingStyle(getModelObject(), super.getClosedStyleClass());
+
+ @Override
+ public void createFolder(String name) {
+ FlvRecording f = new FlvRecording();
+ f.setFileName(name);
+ f.setInsertedBy(getUserId());
+ f.setInserted(new Date());
+ f.setType(Type.Folder);;
+ FlvRecording p = (FlvRecording)rm.getObject();
+ long parentId = p.getId();
+ if (Type.Folder == p.getType()) {
+ f.setParentItemId(parentId);
}
+ f.setOwnerId(p.getOwnerId());
+ f.setOrganization_id(p.getOrganization_id());
+ getBean(FlvRecordingDao.class).update(f);
- @Override
- protected IModel<String> newLabelModel(IModel<FlvRecording> model) {
- return Model.of(model.getObject().getFileName());
- }
- };
- }
- }
-
- class MyRecordingTreeProvider extends RecordingTreeProvider {
- private static final long serialVersionUID = 1L;
-
- public Iterator<? extends FlvRecording> getRoots() {
- FlvRecording r = new FlvRecording();
- r.setId(0L);
- r.setFileName(WebSession.getString(860));
- r.setOwnerId(getUserId());
- return Arrays.asList(r).iterator();
- }
-
- public Iterator<? extends FlvRecording> getChildren(FlvRecording node) {
- if (node.getId() == 0) {
- return getBean(FlvRecordingDao.class).getFlvRecordingRootByOwner(getUserId()).iterator();
- } else {
- return super.getChildren(node);
}
- }
- }
-
- class PublicRecordingTreeProvider extends RecordingTreeProvider {
- private static final long serialVersionUID = 1L;
- private final Long orgId;
- private final String name;
-
- public PublicRecordingTreeProvider(Long orgId, String name) {
- this.orgId = orgId;
- this.name = name;
- }
-
- public Iterator<? extends FlvRecording> getRoots() {
- FlvRecording r = new FlvRecording();
- r.setId(orgId == null ? -1 : -orgId);
- r.setOrganization_id(orgId);
- r.setOwnerId(null);
- String pub = WebSession.getString(861);
- r.setFileName(orgId == null ? pub : String.format("%s (%s)", pub, name));
- return Arrays.asList(r).iterator();
- }
-
- public Iterator<? extends FlvRecording> getChildren(FlvRecording node) {
- if (node.getId() < 0) {
- return getBean(FlvRecordingDao.class).getFlvRecordingRootByPublic(orgId).iterator();
- } else {
- return super.getChildren(node);
- }
- }
- }
-
- abstract class RecordingTreeProvider implements ITreeProvider<FlvRecording> {
- private static final long serialVersionUID = 1L;
-
- public void detach() {
- // TODO LDM should be used
- }
-
- public boolean hasChildren(FlvRecording node) {
- return node.getId() <= 0 || node.isFolder();
- }
-
- public Iterator<? extends FlvRecording> getChildren(FlvRecording node) {
- return getBean(FlvRecordingDao.class).getFlvRecordingByParent(node.getId()).iterator();
- }
-
- public IModel<FlvRecording> model(FlvRecording object) {
- // TODO LDM should be used
- return Model.of(object);
- }
-
+ });
+ add(video, info);
}
}
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java?rev=1605992&r1=1605991&r2=1605992&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java Fri Jun 27 08:50:50 2014
@@ -84,7 +84,7 @@ public class VideoInfo extends Panel {
public VideoInfo update(AjaxRequestTarget target, FlvRecording r) {
rm.setObject(r == null ? new FlvRecording() : r);
try {
- Room room = getBean(RoomDao.class).get(r.getRoom_id());
+ Room room = getBean(RoomDao.class).get(r.getRoomId());
roomName.setObject(room.getName());
} catch (Exception e) {
//no-op
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml?rev=1605992&r1=1605991&r2=1605992&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml Fri Jun 27 08:50:50 2014
@@ -69,6 +69,7 @@
<class>org.apache.openmeetings.db.entity.user.UserContact</class>
<class>org.apache.openmeetings.db.entity.user.Userdata</class>
<class>org.apache.openmeetings.db.entity.user.User</class>
+ <class>org.apache.openmeetings.db.entity.file.FileItem</class>
<class>org.apache.openmeetings.db.entity.file.FileExplorerItem</class>
<class>org.apache.openmeetings.db.entity.user.AsteriskSipUser</class>
<class>org.apache.openmeetings.db.entity.server.OAuthServer</class>
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml?rev=1605992&r1=1605991&r2=1605992&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml Fri Jun 27 08:50:50 2014
@@ -69,6 +69,7 @@
<class>org.apache.openmeetings.db.entity.user.UserContact</class>
<class>org.apache.openmeetings.db.entity.user.Userdata</class>
<class>org.apache.openmeetings.db.entity.user.User</class>
+ <class>org.apache.openmeetings.db.entity.file.FileItem</class>
<class>org.apache.openmeetings.db.entity.file.FileExplorerItem</class>
<class>org.apache.openmeetings.db.entity.user.AsteriskSipUser</class>
<class>org.apache.openmeetings.db.entity.server.OAuthServer</class>
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml?rev=1605992&r1=1605991&r2=1605992&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml Fri Jun 27 08:50:50 2014
@@ -68,6 +68,7 @@
<class>org.apache.openmeetings.db.entity.user.UserContact</class>
<class>org.apache.openmeetings.db.entity.user.Userdata</class>
<class>org.apache.openmeetings.db.entity.user.User</class>
+ <class>org.apache.openmeetings.db.entity.file.FileItem</class>
<class>org.apache.openmeetings.db.entity.file.FileExplorerItem</class>
<class>org.apache.openmeetings.db.entity.user.AsteriskSipUser</class>
<class>org.apache.openmeetings.db.entity.server.OAuthServer</class>
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml?rev=1605992&r1=1605991&r2=1605992&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml Fri Jun 27 08:50:50 2014
@@ -69,6 +69,7 @@
<class>org.apache.openmeetings.db.entity.user.UserContact</class>
<class>org.apache.openmeetings.db.entity.user.Userdata</class>
<class>org.apache.openmeetings.db.entity.user.User</class>
+ <class>org.apache.openmeetings.db.entity.file.FileItem</class>
<class>org.apache.openmeetings.db.entity.file.FileExplorerItem</class>
<class>org.apache.openmeetings.db.entity.user.AsteriskSipUser</class>
<class>org.apache.openmeetings.db.entity.server.OAuthServer</class>
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml?rev=1605992&r1=1605991&r2=1605992&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml Fri Jun 27 08:50:50 2014
@@ -69,6 +69,7 @@
<class>org.apache.openmeetings.db.entity.user.UserContact</class>
<class>org.apache.openmeetings.db.entity.user.Userdata</class>
<class>org.apache.openmeetings.db.entity.user.User</class>
+ <class>org.apache.openmeetings.db.entity.file.FileItem</class>
<class>org.apache.openmeetings.db.entity.file.FileExplorerItem</class>
<class>org.apache.openmeetings.db.entity.user.AsteriskSipUser</class>
<class>org.apache.openmeetings.db.entity.server.OAuthServer</class>
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml?rev=1605992&r1=1605991&r2=1605992&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml Fri Jun 27 08:50:50 2014
@@ -69,6 +69,7 @@
<class>org.apache.openmeetings.db.entity.user.UserContact</class>
<class>org.apache.openmeetings.db.entity.user.Userdata</class>
<class>org.apache.openmeetings.db.entity.user.User</class>
+ <class>org.apache.openmeetings.db.entity.file.FileItem</class>
<class>org.apache.openmeetings.db.entity.file.FileExplorerItem</class>
<class>org.apache.openmeetings.db.entity.user.AsteriskSipUser</class>
<class>org.apache.openmeetings.db.entity.server.OAuthServer</class>
Added: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/images/chart_pie.png
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/images/chart_pie.png?rev=1605992&view=auto
==============================================================================
Binary file - no diff available.
Propchange: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/images/chart_pie.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/images/map.png
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/images/map.png?rev=1605992&view=auto
==============================================================================
Binary file - no diff available.
Propchange: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/images/map.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/images/photo.png
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/images/photo.png?rev=1605992&view=auto
==============================================================================
Binary file - no diff available.
Propchange: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/images/photo.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/images/report.png
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/images/report.png?rev=1605992&view=auto
==============================================================================
Binary file - no diff available.
Propchange: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/images/report.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/room.css
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/room.css?rev=1605992&r1=1605991&r2=1605992&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/room.css (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/room.css Fri Jun 27 08:50:50 2014
@@ -44,6 +44,9 @@
padding-left: 5px;
padding-top: 5px;
}
+.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;
}
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css?rev=1605992&r1=1605991&r2=1605992&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css Fri Jun 27 08:50:50 2014
@@ -283,24 +283,23 @@ html, body {
#feedcontainer {
overflow: auto;
}
-.recording {
+.file.tree.container {
+ border: 1px solid #ccc;
+}
+.file.tree {
width: 100%;
display: inline-block;
}
-.recording .files {
- width: 250px;
- border: 1px solid #ccc;
-}
-.recording .files .trees {
+.file.tree .trees {
min-height: 400px;
max-height: 600px;
overflow-x: hidden;
overflow-y: auto;
}
-.recording .files .sizes table, .recording .files .info table {
+.file.tree .files .sizes table, .file.tree .files .info table {
width: 100%;
}
-.recording .files .info input {
+.file.tree .files .info input {
width: 100%;
padding-right: 5px;
padding-left: 5px;
@@ -377,43 +376,53 @@ html, body {
background-image: url(images/film_processing.png);
background-repeat: no-repeat;
}
-.my-recordings.om-icon {
+.file.om-icon {
padding-left: 18px;
- background-image: url(images/house_link.png);
background-repeat: no-repeat;
}
-.public-recordings.om-icon {
- padding-left: 18px;
+.my.file.om-icon {
+ background-image: url(images/house_link.png);
+}
+.public.file.om-icon {
background-image: url(images/world_link.png);
- background-repeat: no-repeat;
}
-.selected .recording.item {
+.image.file.om-icon {
+ background-image: url(images/photo.png);
+}
+.chart.file.om-icon {
+ background-image: url(images/chart_pie.png);
+}
+.wml.file.om-icon {
+ background-image: url(images/map.png);
+}
+.doc.file.om-icon {
+ background-image: url(images/report.png);
+}
+.selected .file.item {
background-color: #0099FF;
}
-.recording.item {
+.file.item {
position: relative;
+ display: inline-block;
}
-.recording.item .name {
+.file.item .name {
color: black;
}
-.recording.item .errors {
- position: absolute;
- right: 0px;
+.file.item .errors {
background-image: url(images/script_error.png);
width: 16px;
height: 16px;
background-repeat: no-repeat;
- padding-right: 20px;
}
-.recording.dialog.errors {
+.file.tree .dialog.errors {
width: 600px;
height: 500px;
font-size: small;
}
-.recording.dialog.errors .alert {
+.file.tree .dialog.errors .alert {
color: red;
}
-.recording.dialog.errors .message {
+.file.tree .dialog.errors .message {
display: block;
unicode-bidi: embed;
font-family: monospace;
Modified: openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java?rev=1605992&r1=1605991&r2=1605992&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java Fri Jun 27 08:50:50 2014
@@ -148,8 +148,7 @@ public class FileWebService {
// httpServletResponse.getWriter().print(returnError);
hs.put("message", "library");
hs.put("action", "newFile");
- hs.put("fileExplorerItem", fileExplorerItemDao
- .getFileExplorerItemsById(returnError.getFileExplorerItemId()));
+ hs.put("fileExplorerItem", fileExplorerItemDao.get(returnError.getFileExplorerItemId()));
hs.put("error", returnError.getLogMessage());
hs.put("fileName", returnError.getCompleteName());
@@ -232,8 +231,7 @@ public class FileWebService {
// httpServletResponse.getWriter().print(returnError);
hs.put("message", "library");
hs.put("action", "newFile");
- hs.put("fileExplorerItem", fileExplorerItemDao
- .getFileExplorerItemsById(returnError.getFileExplorerItemId()));
+ hs.put("fileExplorerItem", fileExplorerItemDao.get(returnError.getFileExplorerItemId()));
hs.put("error", returnError);
hs.put("fileName", returnError.getCompleteName());
@@ -490,7 +488,7 @@ public class FileWebService {
if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(users_id))) {
- fileExplorerItemDao.deleteFileExplorerItem(fileExplorerItemId);
+ fileExplorerItemDao.delete(fileExplorerItemId);
}
@@ -521,7 +519,7 @@ public class FileWebService {
// TODO: Check if user has access or not to the file
- fileExplorerItemDao.deleteFileExplorerItem(fileExplorerItemId);
+ fileExplorerItemDao.delete(fileExplorerItemId);
}
@@ -944,8 +942,7 @@ public class FileWebService {
newParentFileExplorerItemId, room_id, isOwner,
owner_id);
- FileExplorerItem fileExplorerItem = fileExplorerItemDao
- .getFileExplorerItemsById(fileExplorerItemId);
+ FileExplorerItem fileExplorerItem = fileExplorerItemDao.get(fileExplorerItemId);
if (moveToHome) {
// set this file and all subfiles and folders the ownerId
@@ -1003,8 +1000,7 @@ public class FileWebService {
newParentFileExplorerItemId, room_id, isOwner,
users_id);
- FileExplorerItem fileExplorerItem = fileExplorerItemDao
- .getFileExplorerItemsById(fileExplorerItemId);
+ FileExplorerItem fileExplorerItem = fileExplorerItemDao.get(fileExplorerItemId);
if (moveToHome) {
// set this file and all subfiles and folders the ownerId
Modified: openmeetings/trunk/singlewebapp/pom.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/pom.xml?rev=1605992&r1=1605991&r2=1605992&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/pom.xml (original)
+++ openmeetings/trunk/singlewebapp/pom.xml Fri Jun 27 08:50:50 2014
@@ -566,7 +566,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
- <version>2.4</version>
+ <version>2.5</version>
<configuration>
<useDefaultManifestFile>true</useDefaultManifestFile>
<archive>