Repository: openmeetings Updated Branches: refs/heads/master f5d753d01 -> c2a860b97
[OPENMEETINGS-1735] TabbedPanel is replaced with JQueryUIBehavior Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/c2a860b9 Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/c2a860b9 Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/c2a860b9 Branch: refs/heads/master Commit: c2a860b97a30568ba213603140c37017b12deaa5 Parents: f5d753d Author: Maxim Solodovnik <[email protected]> Authored: Thu Nov 2 16:14:40 2017 +0700 Committer: Maxim Solodovnik <[email protected]> Committed: Thu Nov 2 16:15:02 2017 +0700 ---------------------------------------------------------------------- .../org/apache/openmeetings/web/room/room.js | 1 - .../web/room/sidebar/RoomSidebar.html | 37 +++-- .../web/room/sidebar/RoomSidebar.java | 136 +++---------------- 3 files changed, 41 insertions(+), 133 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c2a860b9/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js index b4839d0..4b11e9e 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js @@ -723,7 +723,6 @@ function sipKeyUp(evt) { $('#sip-dialer-btn-' + k).removeClass('ui-state-active'); } } - /***** functions required by SWF ******/ function typingActivity(uid, active) { const u = $('#user' + uid + ' .typing-activity.ui-icon'); http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c2a860b9/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html index c284073..a0767c6 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.html @@ -20,21 +20,32 @@ <html xmlns:wicket="http://wicket.apache.org"> <wicket:panel> <div id="busy-indicator"></div> - <div class="tabs" wicket:id="tabs"></div> - - <wicket:fragment wicket:id="user-panel"> - <div wicket:id="icons" class="user header"></div> - <div class="user list clear"> - <div wicket:id="user" class="user entry ui-corner-all ui-widget-content"> - <div wicket:id="user"></div> + <div class="tabs" id="room-sidebar-tabs"> + <ul> + <li> + <a href="#room-sidebar-tab-users" class="om-icon big tab user" wicket:message="title:398"> + <wicket:message key="398"/> + </a> + </li> + <li wicket:enclosure="file-tab"> + <a href="#room-sidebar-tab-files" class="om-icon big tab file" wicket:message="title:245" wicket:id="file-tab"> + <wicket:message key="245"/> + </a> + </li> + </ul> + <div id="room-sidebar-tab-users"> + <div wicket:id="icons" class="user header"></div> + <div class="user list clear" wicket:id="user-list"> + <div wicket:id="user" class="user entry ui-corner-all ui-widget-content"> + <div wicket:id="user"></div> + </div> </div> + <script>Room.setSize();</script> </div> - <script>Room.setSize();</script> - </wicket:fragment> - - <wicket:fragment wicket:id="file-panel"> - <div class="file list" wicket:id="tree"></div> - </wicket:fragment> + <div id="room-sidebar-tab-files" wicket:enclosure="tree"> + <div class="file list" wicket:id="tree"></div> + </div> + </div> <div wicket:id="addFolder"></div> <form wicket:id="form"><div wicket:id="confirm-trash"></div></form> <div wicket:id="upload"></div> http://git-wip-us.apache.org/repos/asf/openmeetings/blob/c2a860b9/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java index 193a13d..49beb77 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java @@ -18,8 +18,6 @@ */ package org.apache.openmeetings.web.room.sidebar; -import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS; -import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_TITLE; import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey; import static org.apache.openmeetings.web.app.Application.getOnlineClient; import static org.apache.openmeetings.web.app.Application.getRoomClients; @@ -29,7 +27,6 @@ import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFu import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit; import java.util.ArrayList; -import java.util.List; import org.apache.openmeetings.core.util.WebSocketHelper; import org.apache.openmeetings.db.entity.basic.Client; @@ -49,30 +46,23 @@ import org.apache.openmeetings.web.room.RoomPanel; import org.apache.openmeetings.web.room.RoomPanel.Action; import org.apache.openmeetings.web.room.VideoSettings; import org.apache.openmeetings.web.util.ExtendedClientProperties; -import org.apache.wicket.AttributeModifier; -import org.apache.wicket.Component; import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.core.request.handler.IPartialPageRequestHandler; -import org.apache.wicket.extensions.markup.html.tabs.ITab; import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.head.PriorityHeaderItem; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.list.ListView; -import org.apache.wicket.markup.html.panel.Fragment; import org.apache.wicket.markup.html.panel.Panel; -import org.apache.wicket.model.IModel; -import org.apache.wicket.model.Model; import org.apache.wicket.util.string.StringValue; import org.apache.wicket.util.string.Strings; import org.red5.logging.Red5LoggerFactory; import org.slf4j.Logger; import com.github.openjson.JSONObject; -import com.googlecode.wicket.jquery.ui.widget.tabs.TabbedPanel; -import com.googlecode.wicket.kendo.ui.widget.tabs.TabListModel; +import com.googlecode.wicket.jquery.ui.JQueryUIBehavior; public class RoomSidebar extends Panel { private static final long serialVersionUID = 1L; @@ -88,15 +78,14 @@ public class RoomSidebar extends Panel { public static final String PARAM_POD = "pod"; public static final String PARAM_SETTINGS = "s"; private final RoomPanel room; - private final TabbedPanel tabs; - private final ITab userTab, fileTab; private UploadDialog upload; private RoomFilePanel roomFiles; + private final WebMarkupContainer userList = new WebMarkupContainer("user-list"); + private final WebMarkupContainer fileTab = new WebMarkupContainer("file-tab"); private final SelfIconsPanel selfRights; private ConfirmableAjaxBorder confirmKick; private boolean showFiles; private boolean avInited = false; - private int selectedIdx = 0; private Client kickedClient; private VideoSettings settings = new VideoSettings("settings"); private final ListView<Client> users = new ListView<Client>("user", new ArrayList<Client>()) { @@ -248,88 +237,18 @@ public class RoomSidebar extends Panel { public RoomSidebar(String id, final RoomPanel room) { super(id); this.room = room; - - userTab = new OmTab() { - private static final long serialVersionUID = 1L; - - @Override - public boolean isVisible() { - return true; - } - - @Override - public String getCssClass() { - return "om-icon big tab user"; - } - - @Override - public IModel<String> getTitle() { - return Model.of(getString("398")); - } - - @Override - public WebMarkupContainer getPanel(String containerId) { - WebMarkupContainer p = new Fragment(containerId, "user-panel", RoomSidebar.this); - p.add(selfRights, updateUsers()); - return p; - } - }; - fileTab = new OmTab() { - private static final long serialVersionUID = 1L; - - @Override - public boolean isVisible() { - return Room.Type.interview != room.getRoom().getType(); - } - - @Override - public String getCssClass() { - return "om-icon big tab file"; - } - - @Override - public IModel<String> getTitle() { - return Model.of(getString("245")); - } - - @Override - public WebMarkupContainer getPanel(String containerId) { - WebMarkupContainer p = new Fragment(containerId, "file-panel", RoomSidebar.this); - p.add(roomFiles); - return p; - } - }; - add((tabs = new TabbedPanel("tabs", newTabModel()) { - private static final long serialVersionUID = 1L; - - @Override - protected void onConfigure() { - super.onConfigure(); - setActiveTab(selectedIdx); - } - - @Override - public void onActivate(AjaxRequestTarget target, int index, ITab tab) { - selectedIdx = index; - } - - @Override - protected WebMarkupContainer newTabContainer(String id, String tabId, ITab tab, int index) { - WebMarkupContainer t = super.newTabContainer(id, tabId, tab, index); - Component link = newTitleLabel("link", tab.getTitle()); - link.add(AttributeModifier.replace("href", "#" + tabId)); - link.add(AttributeModifier.append(ATTR_CLASS, ((OmTab)tab).getCssClass())); - link.add(AttributeModifier.append(ATTR_TITLE, tab.getTitle())); - t.replace(link); - return t; - } - }).setOutputMarkupId(true)); selfRights = new SelfIconsPanel("icons", room.getUid(), room, true); } @Override protected void onInitialize() { super.onInitialize(); + 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); add(toggleRight, toggleActivity, roomAction, avSettings); add(confirmKick = new ConfirmableAjaxBorder("confirm-kick", getString("603"), getString("605")) { @@ -340,25 +259,9 @@ public class RoomSidebar extends Panel { room.kickUser(kickedClient); } }); - 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(form.add(confirmTrash), upload = new UploadDialog("upload", room, roomFiles)); updateShowFiles(null); - } - - private TabListModel newTabModel() { - return new TabListModel() { - private static final long serialVersionUID = 1L; - - @Override - protected List<ITab> load() { - List<ITab> l = new ArrayList<>(); - l.add(userTab); - l.add(fileTab); - return l; - } - }; + add(new JQueryUIBehavior("#room-sidebar-tabs", "tabs")); } @Override @@ -387,9 +290,12 @@ public class RoomSidebar extends Panel { public void update(IPartialPageRequestHandler handler) { updateShowFiles(handler); updateUsers(); - selfRights.setVisible(room.getRoom().isAllowUserQuestions() || room.getClient().hasRight(Right.moderator)); - selfRights.update(handler); - tabs.reload(handler); + final boolean rightsVisible = room.getRoom().isAllowUserQuestions() || room.getClient().hasRight(Right.moderator); + selfRights.setVisible(rightsVisible); + if (rightsVisible) { + selfRights.update(handler); + } + handler.add(selfRights, userList); } public void updateFiles(IPartialPageRequestHandler handler) { @@ -461,14 +367,6 @@ public class RoomSidebar extends Panel { } public void setFilesActive(IPartialPageRequestHandler handler) { - selectedIdx = 1; - tabs.reload(handler); - } - - private abstract static class OmTab implements ITab { - private static final long serialVersionUID = 1L; - - public abstract String getCssClass(); + handler.appendJavaScript("$('#room-sidebar-tabs').tabs('option', 'active', 1);"); } } -
