use of org.apache.openmeetings.web.common.ConfirmableAjaxBorder in project openmeetings by apache.
the class RoomSidebar method onInitialize.
@Override
protected void onInitialize() {
super.onInitialize();
final NameDialog addFolder = new NameDialog("addFolder", getString("712")) {
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit(AjaxRequestTarget target) {
roomFiles.createFolder(target, getModelObject());
}
};
final Form<?> form = new Form<>("form");
ConfirmableBorderDialog confirmTrash = new ConfirmableBorderDialog("confirm-trash", getString("80"), getString("713"), form);
roomFiles = new RoomFilePanel("tree", room, addFolder, confirmTrash);
add(selfRights, userList.add(updateUsers()).setOutputMarkupId(true), fileTab.setVisible(!room.isInterview()), roomFiles.setVisible(!room.isInterview()));
add(addFolder, settings, userCount.setOutputMarkupId(true));
add(toggleRight, toggleActivity, roomAction, avSettings);
add(confirmKick = new ConfirmableAjaxBorder("confirm-kick", getString("603"), getString("605")) {
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit(AjaxRequestTarget target) {
kickUser(kickedClient);
}
});
add(form.add(confirmTrash), upload = new UploadDialog("upload", room, roomFiles));
updateShowFiles(null);
add(new JQueryUIBehavior("#room-sidebar-tabs", "tabs", new Options("activate", "function(event, ui) {Room.setSize();}")));
add(activities = new ActivitiesPanel("activities", room));
}
use of org.apache.openmeetings.web.common.ConfirmableAjaxBorder in project openmeetings by apache.
the class RoomForm method onInitialize.
@Override
protected void onInitialize() {
super.onInitialize();
RequiredTextField<String> name = new RequiredTextField<>("name");
name.setLabel(new Model<>(getString("165")));
add(name);
add(new //
DropDownChoice<>(//
"capacity", //
DROPDOWN_NUMBER_OF_PARTICIPANTS, new ChoiceRenderer<Long>() {
private static final long serialVersionUID = 1L;
@Override
public Object getDisplayValue(Long id) {
return id;
}
@Override
public String getIdValue(Long id, int index) {
return "" + id;
}
}));
add(new RoomTypeDropDown("type").setRequired(true).setLabel(Model.of(getString("45"))));
add(new TextArea<String>("comment"));
boolean isGroupAdmin = hasGroupAdminLevel(getRights());
add(new CheckBox("appointment").setEnabled(false));
add(new CheckBox("ispublic").setEnabled(!isGroupAdmin));
List<Group> orgList = isGroupAdmin ? groupDao.get(null, getUserId(), 0, Integer.MAX_VALUE, null) : groupDao.get(0, Integer.MAX_VALUE);
final List<RoomGroup> orgRooms = new ArrayList<>(orgList.size());
for (Group org : orgList) {
orgRooms.add(new RoomGroup(org, getModelObject()));
}
add(new Select2MultiChoice<>("groups", null, new RestrictiveChoiceProvider<RoomGroup>() {
private static final long serialVersionUID = 1L;
@Override
public String getDisplayValue(RoomGroup choice) {
String name = choice.getGroup().getName();
return name == null ? "" : name;
}
@Override
public String toId(RoomGroup choice) {
Long id = choice.getGroup().getId();
return id == null ? null : "" + id;
}
@Override
public void query(String term, int page, Response<RoomGroup> response) {
response.addAll(orgRooms.stream().filter(rg -> Strings.isEmpty(term) || rg.getGroup().getName().contains(term)).collect(Collectors.toList()));
}
@Override
public RoomGroup fromId(String _id) {
Long id = Long.valueOf(_id);
if (!orgList.stream().filter(g -> g.getId().equals(id)).findFirst().isPresent()) {
// seems to be hacked
return null;
}
Group g = groupDao.get(id);
return new RoomGroup(g, RoomForm.this.getModelObject());
}
}).setLabel(Model.of(getString("828"))).setRequired(isGroupAdmin));
add(new CheckBox("isDemoRoom"));
TextField<Integer> demoTime = new TextField<>("demoTime");
demoTime.setLabel(new Model<>(getString("637")));
add(demoTime);
add(new CheckBox("allowUserQuestions"));
add(new CheckBox("audioOnly"));
add(new CheckBox("closed"));
add(new TextField<String>("redirectURL"));
add(new CheckBox("waitForRecording"));
add(new CheckBox("allowRecording"));
add(new CheckBox("chatModerated"));
add(new Select2MultiChoice<>("hiddenElements", null, new ChoiceProvider<RoomElement>() {
private static final long serialVersionUID = 1L;
@Override
public String getDisplayValue(RoomElement choice) {
return choice.name();
}
@Override
public String getIdValue(RoomElement choice) {
return choice.name();
}
@Override
public void query(String term, int page, Response<RoomElement> response) {
for (RoomElement r : RoomElement.values()) {
if (Strings.isEmpty(term) || r.name().contains(term)) {
response.add(r);
}
}
}
@Override
public Collection<RoomElement> toChoices(Collection<String> ids) {
Collection<RoomElement> rights = new ArrayList<>(ids.size());
for (String id : ids) {
rights.add(RoomElement.valueOf(id));
}
return rights;
}
}));
add(new CheckBox("chatOpened"));
add(new CheckBox("filesOpened"));
add(new CheckBox("autoVideoSelect"));
// Moderators
final Select2Choice<User> moderatorChoice = new Select2Choice<>("moderator2add", moderator2add, new AdminUserChoiceProvider() {
private static final long serialVersionUID = 1L;
@Override
public void query(String term, int page, Response<User> response) {
response.addAll(userDao.get(term, false, page * PAGE_SIZE, PAGE_SIZE));
response.setHasMore(PAGE_SIZE == response.getResults().size());
}
@Override
public String getDisplayValue(User choice) {
Address a = choice.getAddress();
return String.format("\"%s %s\" <%s>", choice.getFirstname(), choice.getLastname(), a == null ? "" : a.getEmail());
}
});
moderatorChoice.getSettings().setCloseOnSelect(true);
add(moderatorChoice.add(new AjaxFormComponentUpdatingBehavior("change") {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
Room r = RoomForm.this.getModelObject();
User u = moderator2add.getObject();
boolean found = false;
if (u != null) {
if (r.getModerators() == null) {
r.setModerators(new ArrayList<RoomModerator>());
}
for (RoomModerator rm : r.getModerators()) {
if (rm.getUser().getId().equals(u.getId())) {
found = true;
break;
}
}
if (!found) {
RoomModerator rm = new RoomModerator();
rm.setRoomId(r.getId());
rm.setUser(u);
r.getModerators().add(0, rm);
moderator2add.setObject(null);
target.add(moderatorContainer, moderatorChoice);
}
}
}
}).setOutputMarkupId(true));
add(moderatorContainer.add(new ListView<RoomModerator>("moderators") {
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(final ListItem<RoomModerator> item) {
RoomModerator moderator = item.getModelObject();
Label name = new Label("uName", moderator.getUser().getFirstname() + " " + moderator.getUser().getLastname());
if (moderator.getId() == null) {
name.add(AttributeModifier.append(ATTR_CLASS, "newItem"));
}
item.add(new CheckBox("superModerator", new PropertyModel<Boolean>(moderator, "superModerator"))).add(new Label("userId", "" + moderator.getUser().getId())).add(name).add(new Label("email", moderator.getUser().getAddress().getEmail())).add(new ConfirmableAjaxBorder("delete", getString("80"), getString("833")) {
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit(AjaxRequestTarget target) {
RoomForm.this.getModelObject().getModerators().remove(item.getIndex());
target.add(moderatorContainer);
}
});
}
}).setOutputMarkupId(true));
add(new CheckBox("moderated"));
// Files
Form<Void> filesForm = new Form<>("filesForm");
add(filesForm.add(new Select2MultiChoice<>("files2add", files2add, new ChoiceProvider<BaseFileItem>() {
private static final long serialVersionUID = 1L;
@Override
public String getDisplayValue(BaseFileItem f) {
return f.getName();
}
@Override
public String getIdValue(BaseFileItem f) {
return "" + f.getId();
}
@Override
public void query(String term, int page, Response<BaseFileItem> response) {
response.addAll(fileDao.getAllRoomFiles(term, page * PAGE_SIZE, PAGE_SIZE, RoomForm.this.getModelObject().getId(), orgList));
response.setHasMore(PAGE_SIZE == response.getResults().size());
}
@Override
public Collection<BaseFileItem> toChoices(Collection<String> ids) {
return fileDao.get(ids);
}
}).setLabel(Model.of(getString("245")))).add(new TextField<Long>("wbidx", wbIdx) {
private static final long serialVersionUID = 1L;
@Override
protected String[] getInputTypes() {
return new String[] { "number" };
}
}).add(new AjaxButton("addFiles") {
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit(AjaxRequestTarget target) {
Room r = RoomForm.this.getModelObject();
if (r.getFiles() == null) {
r.setFiles(new ArrayList<>());
}
for (BaseFileItem f : files2add.getObject()) {
r.getFiles().add(new RoomFile(r.getId(), f, wbIdx.getObject()));
}
target.add(filesContainer, filesForm);
}
@Override
protected String getIcon() {
return JQueryIcon.PLUSTHICK;
}
}).setOutputMarkupId(true));
add(filesContainer.add(new ListView<RoomFile>("files") {
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(final ListItem<RoomFile> item) {
final RoomFile rf = item.getModelObject();
item.add(new Label("name", new PropertyModel<>(rf.getFile(), "name"))).add(new Label("wbIdx", new PropertyModel<>(rf, "wbIdx"))).add(new ConfirmableAjaxBorder("delete", getString("80"), getString("833")) {
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit(AjaxRequestTarget target) {
Room r = RoomForm.this.getModelObject();
for (Iterator<RoomFile> iter = r.getFiles().iterator(); iter.hasNext(); ) {
RoomFile _rf = iter.next();
if (_rf.getFile().getId().equals(rf.getFile().getId())) {
iter.remove();
break;
}
}
target.add(filesContainer);
}
});
}
}).setOutputMarkupId(true));
// Users in this Room
add(clientsContainer.add(clients.setOutputMarkupId(true)).setOutputMarkupId(true));
add(new TextField<String>("confno").setEnabled(false));
add(pin);
pin.setEnabled(getModelObject().isSipEnabled());
add(new TextField<String>("ownerId").setEnabled(false));
add(new AjaxCheckBox("sipEnabled") {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
updateView(target);
}
}.setOutputMarkupId(true));
// attach an ajax validation behavior to all form component's keydown
// event and throttle it down to once per second
add(new AjaxFormValidatingBehavior("keydown", Duration.ONE_SECOND));
}
use of org.apache.openmeetings.web.common.ConfirmableAjaxBorder in project openmeetings by apache.
the class LangPanel method onInitialize.
@Override
protected void onInitialize() {
// Create feedback panels
add(feedback.setOutputMarkupId(true));
language = new AbstractMap.SimpleEntry<>(1L, Locale.ENGLISH);
final LabelsForm form = new LabelsForm("form", this, new StringLabel(null, null));
form.showNewRecord();
add(form);
final SearchableDataView<StringLabel> dataView = new SearchableDataView<StringLabel>("langList", new SearchableDataProvider<StringLabel>(LabelDao.class) {
private static final long serialVersionUID = 1L;
@Override
public long size() {
return LabelDao.count(language.getValue(), search);
}
@Override
public Iterator<? extends StringLabel> iterator(long first, long count) {
return LabelDao.get(language.getValue(), search, (int) first, (int) count, getSort()).iterator();
}
}) {
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(final Item<StringLabel> item) {
final StringLabel fv = item.getModelObject();
item.add(new Label("key"));
item.add(new Label("value"));
item.add(new AjaxEventBehavior(EVT_CLICK) {
private static final long serialVersionUID = 1L;
@Override
protected void onEvent(AjaxRequestTarget target) {
form.setModelObject(fv);
form.hideNewRecord();
target.add(form, listContainer);
reinitJs(target);
}
});
item.add(AttributeModifier.append(ATTR_CLASS, getRowClass(fv.getId(), form.getModelObject().getId())));
}
};
add(listContainer.add(dataView).setOutputMarkupId(true));
PagedEntityListPanel navigator = new PagedEntityListPanel("navigator", dataView) {
private static final long serialVersionUID = 1L;
@Override
protected void onEvent(AjaxRequestTarget target) {
dataView.modelChanging();
target.add(listContainer);
}
};
DataViewContainer<StringLabel> container = new DataViewContainer<>(listContainer, dataView, navigator);
container.addLink(new OmOrderByBorder<>("orderByName", "key", container)).addLink(new OmOrderByBorder<>("orderByValue", "value", container));
add(container.getLinks());
add(navigator);
langForm = new LangForm("langForm", listContainer, this);
langForm.add(fileUploadField);
langForm.add(new UploadProgressBar("progress", langForm, fileUploadField));
fileUploadField.add(new AjaxFormSubmitBehavior(langForm, "change") {
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit(AjaxRequestTarget target) {
FileUpload download = fileUploadField.getFileUpload();
try {
if (download == null || download.getInputStream() == null) {
feedback.error("File is empty");
return;
}
LabelDao.upload(language.getValue(), download.getInputStream());
} catch (Exception e) {
log.error("Exception on panel language editor import ", e);
feedback.error(e);
}
// repaint the feedback panel so that it is hidden
target.add(listContainer, feedback);
}
});
// Add a component to download a file without page refresh
final AjaxDownloadBehavior download = new AjaxDownloadBehavior(new ResourceStreamResource() {
private static final long serialVersionUID = 1L;
{
setContentDisposition(ATTACHMENT);
setCacheDuration(NONE);
}
@Override
protected IResourceStream getResourceStream(Attributes attributes) {
final String name = LabelDao.getLabelFileName(language.getValue());
setFileName(name);
return new AbstractResourceStream() {
private static final long serialVersionUID = 1L;
private transient InputStream is;
@Override
public InputStream getInputStream() throws ResourceStreamNotFoundException {
try {
is = Application.class.getResourceAsStream(name);
return is;
} catch (Exception e) {
throw new ResourceStreamNotFoundException(e);
}
}
@Override
public void close() throws IOException {
if (is != null) {
is.close();
is = null;
}
}
};
}
});
langForm.add(download);
langForm.add(new AjaxButton("export") {
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit(AjaxRequestTarget target) {
download.initiate(target);
// repaint the feedback panel so that it is hidden
target.add(feedback);
}
@Override
protected void onError(AjaxRequestTarget target) {
// repaint the feedback panel so errors are shown
target.add(feedback);
}
});
add(langForm);
final AddLanguageDialog addLang = new AddLanguageDialog("addLang", this);
add(addLang, new AjaxLink<Void>("addLangBtn") {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
addLang.open(target);
}
});
add(BootstrapFileUploadBehavior.INSTANCE);
add(new ConfirmableAjaxBorder("deleteLangBtn", getString("80"), getString("833")) {
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit(AjaxRequestTarget target) {
LabelDao.delete(language.getValue());
List<Map.Entry<Long, Locale>> langs = LangForm.getLanguages();
language = langs.isEmpty() ? null : langs.get(0);
langForm.updateLanguages(target);
target.add(listContainer);
}
});
super.onInitialize();
}
use of org.apache.openmeetings.web.common.ConfirmableAjaxBorder in project openmeetings by apache.
the class AdminSavePanel method onInitialize.
@Override
protected void onInitialize() {
newRecord.setDefaultModelObject(getString("155"));
add(newRecord.setVisible(false).setOutputMarkupId(true));
final AjaxButton newBtn = new AjaxButton("ajax-new-button", form) {
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit(AjaxRequestTarget target) {
// repaint the feedback panel so that it is hidden
target.add(feedback);
newRecord.setVisible(true);
target.add(newRecord);
onNewSubmit(target, form);
}
@Override
protected void onError(AjaxRequestTarget target) {
// repaint the feedback panel so errors are shown
target.add(feedback);
onNewError(target, form);
}
};
// add a cancel button that can be used to submit the form via ajax
final Form<?> cForm = new Form<>("form");
cForm.setMultiPart(form.isMultiPart());
add(cForm);
final ConfirmableAjaxBorder delBtn = new ConfirmableAjaxBorder("ajax-cancel-button", getString("80"), getString("833"), cForm) {
private static final long serialVersionUID = 1L;
@Override
protected void onError(AjaxRequestTarget target) {
// repaint the feedback panel so errors are shown
target.add(feedback);
hideNewRecord();
onDeleteError(target, form);
}
@Override
protected void onSubmit(AjaxRequestTarget target) {
// repaint the feedback panel so that it is hidden
target.add(feedback);
hideNewRecord();
onDeleteSubmit(target, form);
}
};
add(newBtn.setVisible(isNewBtnVisible()), delBtn.setVisible(isDelBtnVisible()));
super.onInitialize();
}
use of org.apache.openmeetings.web.common.ConfirmableAjaxBorder in project openmeetings by apache.
the class ChatToolbar method onInitialize.
@Override
protected void onInitialize() {
super.onInitialize();
BasePage page = (BasePage) getPage();
add(toolbar.add(new WebMarkupContainer("hyperlink").add(AttributeModifier.append("class", page.isRtl() ? "dropdown-menu-left" : "dropdown-menu-right"))));
add(download);
delBtn = new ConfirmableAjaxBorder("delete", getString("80"), getString("832"), chatForm) {
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit(AjaxRequestTarget target) {
final String scope = chatForm.getScope();
final boolean admin = hasAdminLevel(getRights());
chatForm.process(() -> {
if (admin) {
chatDao.deleteGlobal();
clean(target, ID_ALL);
}
return true;
}, r -> {
if (admin || isModerator(cm, getUserId(), r.getId())) {
chatDao.deleteRoom(r.getId());
clean(target, scope);
}
return true;
}, u -> {
chatDao.deleteUser(u.getId());
clean(target, scope);
return true;
});
}
};
toolbar.add(delBtn.setVisible(hasAdminLevel(getRights())).setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true));
toolbar.add(save.setVisible(hasAdminLevel(getRights())).setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true).add(new AjaxEventBehavior(EVT_CLICK) {
private static final long serialVersionUID = 1L;
@Override
protected void onEvent(AjaxRequestTarget target) {
download.initiate(target);
}
}));
}
Aggregations