Repository: openmeetings
Updated Branches:
  refs/heads/4.0.x 860319405 -> b8886a057


[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/b8886a05
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/b8886a05
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/b8886a05

Branch: refs/heads/4.0.x
Commit: b8886a05763f03f5948ee4f9bc7b8a138be269be
Parents: 8603194
Author: Maxim Solodovnik <[email protected]>
Authored: Thu Nov 2 16:14:40 2017 +0700
Committer: Maxim Solodovnik <[email protected]>
Committed: Thu Nov 2 16:14:40 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/b8886a05/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/b8886a05/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/b8886a05/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);");
        }
 }
-

Reply via email to