use of org.apache.openmeetings.db.entity.file.BaseFileItem in project openmeetings by apache.
the class DownloadMenuItem method onClick.
@Override
public void onClick(AjaxRequestTarget target) {
BaseFileItem fi = tree.getLastSelected();
File f = ext == null && (Type.Image == fi.getType() || Type.Presentation == fi.getType()) ? fi.getOriginal() : fi.getFile(ext);
if (f != null && f.exists()) {
tree.dwnldFile = f;
tree.downloader.initiate(target);
}
}
use of org.apache.openmeetings.db.entity.file.BaseFileItem in project openmeetings by apache.
the class FileTreePanel method onInitialize.
@Override
protected void onInitialize() {
super.onInitialize();
download.setDefaultModelObject(newDownloadMenuList());
Droppable<BaseFileItem> trashToolbar = new Droppable<BaseFileItem>("trash-toolbar") {
private static final long serialVersionUID = 1L;
@Override
public void onConfigure(JQueryBehavior behavior) {
super.onConfigure(behavior);
behavior.setOption("hoverClass", Options.asString("ui-state-hover trash-toolbar-hover"));
behavior.setOption("accept", Options.asString(".recorditem, .fileitem"));
}
@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: '" + escapeEcmaScript(getString("80")) + "', classes: {'ui-dialog-titlebar': 'ui-corner-all no-close'}, buttons: [";
statement += " { text: '" + escapeEcmaScript(getString("54")) + "', click: function() { $drop.append(ui.draggable); $(this).dialog('close'); " + super.getCallbackFunctionBody(parameters) + " } },";
statement += " { text: '" + escapeEcmaScript(getString("lbl.cancel")) + "', 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 BaseFileItem) {
BaseFileItem f = (BaseFileItem) o;
if (isSelected(f)) {
deleteAll(target);
} else {
delete(f, target);
}
}
}
};
form.add(trashToolbar);
trashToolbar.add(getUpload());
trashToolbar.add(createDir);
trashToolbar.add(new WebMarkupContainer("refresh").add(new AjaxEventBehavior(EVT_CLICK) {
private static final long serialVersionUID = 1L;
@Override
protected void onEvent(AjaxRequestTarget target) {
update(target);
}
}));
trashToolbar.add(trashBorder = new ConfirmableAjaxBorder("trash", getString("80"), getString("713"), trashConfirm) {
private static final long serialVersionUID = 1L;
@Override
protected boolean isClickable() {
return !readOnly && !selected.isEmpty();
}
@Override
protected void onSubmit(AjaxRequestTarget target) {
deleteAll(target);
}
});
form.add(trees.add(tree).setOutputMarkupId(true));
updateSizes();
form.add(sizes.add(new Label("homeSize", homeSize), new Label("publicSize", publicSize)).setOutputMarkupId(true));
form.add(errorsDialog);
setReadOnly(false, null);
}
use of org.apache.openmeetings.db.entity.file.BaseFileItem in project openmeetings by apache.
the class OmTreeProvider method refreshRoots.
public void refreshRoots(boolean all) {
List<BaseFileItem> fRoot = new ArrayList<>(), rRoot = new ArrayList<>();
if (all && roomId != null) {
BaseFileItem r = createRoot(Application.getString("706"), FILES_MY, false);
r.setOwnerId(getUserId());
fRoot.add(r);
}
if (roomId != null) {
BaseFileItem r = createRoot(Application.getString("707"), FILES_ROOM, false);
r.setRoomId(roomId);
fRoot.add(r);
}
if (all) {
{
BaseFileItem r = createRoot(Application.getString("860"), RECORDINGS_MY, true);
r.setOwnerId(getUserId());
rRoot.add(r);
}
{
BaseFileItem r = createRoot(PUBLIC, RECORDINGS_PUBLIC, true);
rRoot.add(r);
}
}
for (GroupUser gu : userDao.get(getUserId()).getGroupUsers()) {
Group g = gu.getGroup();
boolean readOnly = g.isRestricted() && !hasAdminLevel(getRights()) && !gu.isModerator();
if (all) {
BaseFileItem r = createRoot(String.format("%s (%s)", GROUP_REC, g.getName()), String.format(RECORDINGS_GROUP, g.getId()), true);
r.setReadOnly(readOnly);
r.setGroupId(g.getId());
rRoot.add(r);
}
BaseFileItem r = createRoot(String.format("%s (%s)", GROUP_FILE, g.getName()), String.format(FILES_GROUP, g.getId()), false);
r.setGroupId(g.getId());
// group videos are read-only in recordings tree
r.setReadOnly(roomId == null || readOnly);
fRoot.add(r);
}
roots.clear();
if (roomId == null) {
roots.addAll(rRoot);
roots.addAll(fRoot);
} else {
roots.addAll(fRoot);
roots.addAll(rRoot);
}
}
Aggregations