[OPENMEETINGS-551] initial work on minimizing (broken)

Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/ac232ec4
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/ac232ec4
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/ac232ec4

Branch: refs/heads/master
Commit: ac232ec46e9e2fb68289fbcca68ba15d1d09c957
Parents: 1123594
Author: Maxim Solodovnik <[email protected]>
Authored: Wed Apr 19 03:26:57 2017 +0000
Committer: Maxim Solodovnik <[email protected]>
Committed: Wed Apr 19 03:26:57 2017 +0000

----------------------------------------------------------------------
 .../apache/openmeetings/web/room/RoomPanel.java |  12 +-
 .../web/room/jquery.dialogextend.js             | 329 +++++++++++++++++++
 .../web/room/jquery.dialogextend.min.js         |   3 +
 .../org/apache/openmeetings/web/room/room.js    |  45 ++-
 4 files changed, 366 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ac232ec4/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
index 8c2497f..9990345 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
@@ -78,7 +78,6 @@ import org.apache.wicket.markup.head.PriorityHeaderItem;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.protocol.ws.api.event.WebSocketPushPayload;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
-import org.apache.wicket.request.resource.ResourceReference;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 
@@ -170,11 +169,9 @@ public class RoomPanel extends BasePanel {
                                        .put("height", c.getHeight());
                                
target.appendJavaScript(String.format("VideoManager.play(%s);", json));
                        }
-                       
                }
-               
        }
-       
+
        @Override
        protected void onInitialize() {
                super.onInitialize();
@@ -542,14 +539,11 @@ public class RoomPanel extends BasePanel {
                getMainPanel().getChat().roomExit(r, handler);
        }
 
-       private static ResourceReference newResourceReference() {
-               return new JavaScriptResourceReference(RoomPanel.class, 
"room.js");
-       }
-
        @Override
        public void renderHead(IHeaderResponse response) {
                super.renderHead(response);
-               response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forReference(newResourceReference())));
+               response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forReference(new 
JavaScriptResourceReference(RoomPanel.class, "jquery.dialogextend.js"))));
+               response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forReference(new 
JavaScriptResourceReference(RoomPanel.class, "room.js"))));
                WebSession ws = WebSession.get();
                if (!Strings.isEmpty(r.getRedirectURL()) && (ws.getSoapLogin() 
!= null || ws.getInvitation() != null)) {
                        response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forScript(

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ac232ec4/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/jquery.dialogextend.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/jquery.dialogextend.js
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/jquery.dialogextend.js
new file mode 100644
index 0000000..7a605e9
--- /dev/null
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/jquery.dialogextend.js
@@ -0,0 +1,329 @@
+/*
+ * Licensed MIT 
https://github.com/ROMB/jquery-dialogextend/blob/master/LICENSE.md
+ */
+(function() {
+  var $;
+
+  $ = jQuery;
+
+  $.widget("ui.dialogExtend", {
+    version: "2.0.4",
+    modes: {},
+    options: {
+      "closable": true,
+      "dblclick": false,
+      "titlebar": false,
+      "icons": {
+        "close": "ui-icon-closethick",
+        "restore": "ui-icon-newwin"
+      },
+      "load": null,
+      "beforeRestore": null,
+      "restore": null
+    },
+    _create: function() {
+      this._state = "normal";
+      if (!$(this.element[0]).data("ui-dialog")) {
+        $.error("jQuery.dialogExtend Error : Only jQuery UI Dialog element is 
accepted");
+      }
+      this._verifyOptions();
+      this._initStyles();
+      this._initButtons();
+      this._initTitleBar();
+      this._setState("normal");
+      this._on("load", function(e) {
+        return console.log("test", e);
+      });
+      return this._trigger("load");
+    },
+    _setState: function(state) {
+      $(this.element[0]).removeClass("ui-dialog-" + 
this._state).addClass("ui-dialog-" + state);
+      return this._state = state;
+    },
+    _verifyOptions: function() {
+      var name, _ref, _results;
+
+      if (this.options.dblclick && !(this.options.dblclick in this.modes)) {
+        $.error("jQuery.dialogExtend Error : Invalid <dblclick> value '" + 
this.options.dblclick + "'");
+        this.options.dblclick = false;
+      }
+      if (this.options.titlebar && ((_ref = this.options.titlebar) !== "none" 
&& _ref !== "transparent")) {
+        $.error("jQuery.dialogExtend Error : Invalid <titlebar> value '" + 
this.options.titlebar + "'");
+        this.options.titlebar = false;
+      }
+      _results = [];
+      for (name in this.modes) {
+        if (this["_verifyOptions_" + name]) {
+          _results.push(this["_verifyOptions_" + name]());
+        } else {
+          _results.push(void 0);
+        }
+      }
+      return _results;
+    },
+    _initStyles: function() {
+      var name, style, _results;
+
+      if (!$(".dialog-extend-css").length) {
+        style = '';
+        style += '<style class="dialog-extend-css" type="text/css">';
+        style += '.ui-dialog .ui-dialog-titlebar-buttonpane>a { float: right; 
}';
+        style += '.ui-dialog .ui-dialog-titlebar-restore { width: 19px; 
height: 18px; }';
+        style += '.ui-dialog .ui-dialog-titlebar-restore span { display: 
block; margin: 1px; }';
+        style += '.ui-dialog .ui-dialog-titlebar-restore:hover,';
+        style += '.ui-dialog .ui-dialog-titlebar-restore:focus { padding: 0; 
}';
+        style += '.ui-dialog .ui-dialog-titlebar ::selection { 
background-color: transparent; }';
+        style += '</style>';
+        $(style).appendTo("body");
+      }
+      _results = [];
+      for (name in this.modes) {
+        _results.push(this["_initStyles_" + name]());
+      }
+      return _results;
+    },
+    _initButtons: function() {
+      var buttonPane, mode, name, titlebar, _ref,
+        _this = this;
+
+      titlebar = 
$(this.element[0]).dialog("widget").find(".ui-dialog-titlebar");
+      buttonPane = $('<div 
class="ui-dialog-titlebar-buttonpane"></div>').appendTo(titlebar);
+      buttonPane.css({
+        "position": "absolute",
+        "top": "50%",
+        "right": "0.3em",
+        "margin-top": "-10px",
+        "height": "18px"
+      });
+      titlebar.find(".ui-dialog-titlebar-close").css({
+        "position": "relative",
+        "float": "right",
+        "top": "auto",
+        "right": "auto",
+        "margin": 0
+      
}).find(".ui-icon").removeClass("ui-icon-closethick").addClass(this.options.icons.close).end().appendTo(buttonPane).end();
+      buttonPane.append('<a class="ui-dialog-titlebar-restore ui-corner-all 
ui-state-default" href="#"><span class="ui-icon ' + this.options.icons.restore 
+ '" 
title="restore">restore</span></a>').find('.ui-dialog-titlebar-restore').attr("role",
 "button").mouseover(function() {
+        return $(this).addClass("ui-state-hover");
+      }).mouseout(function() {
+        return $(this).removeClass("ui-state-hover");
+      }).focus(function() {
+        return $(this).addClass("ui-state-focus");
+      }).blur(function() {
+        return $(this).removeClass("ui-state-focus");
+      
}).end().find(".ui-dialog-titlebar-close").toggle(this.options.closable).end().find(".ui-dialog-titlebar-restore").hide().click(function(e)
 {
+        e.preventDefault();
+        return _this.restore();
+      }).end();
+      _ref = this.modes;
+      for (name in _ref) {
+        mode = _ref[name];
+        this._initModuleButton(name, mode);
+      }
+      return titlebar.dblclick(function(evt) {
+        if (_this.options.dblclick) {
+          if (_this._state !== "normal") {
+            return _this.restore();
+          } else {
+            return _this[_this.options.dblclick]();
+          }
+        }
+      }).select(function() {
+        return false;
+      });
+    },
+    _initModuleButton: function(name, mode) {
+      var buttonPane,
+        _this = this;
+
+      buttonPane = 
$(this.element[0]).dialog("widget").find('.ui-dialog-titlebar-buttonpane');
+      return buttonPane.append('<a class="ui-dialog-titlebar-' + name + ' 
ui-corner-all ui-state-default" href="#" title="' + name + '"><span 
class="ui-icon ' + this.options.icons[name] + '">' + name + 
'</span></a>').find(".ui-dialog-titlebar-" + name).attr("role", 
"button").mouseover(function() {
+        return $(this).addClass("ui-state-hover");
+      }).mouseout(function() {
+        return $(this).removeClass("ui-state-hover");
+      }).focus(function() {
+        return $(this).addClass("ui-state-focus");
+      }).blur(function() {
+        return $(this).removeClass("ui-state-focus");
+      }).end().find(".ui-dialog-titlebar-" + 
name).toggle(this.options[mode.option]).click(function(e) {
+        e.preventDefault();
+        return _this[name]();
+      }).end();
+    },
+    _initTitleBar: function() {
+      var handle;
+
+      switch (this.options.titlebar) {
+        case false:
+          return 0;
+        case "none":
+          if ($(this.element[0]).dialog("option", "draggable")) {
+            handle = $("<div 
/>").addClass("ui-dialog-draggable-handle").css("cursor", "move").height(5);
+            
$(this.element[0]).dialog("widget").prepend(handle).draggable("option", 
"handle", handle);
+          }
+          return 
$(this.element[0]).dialog("widget").find(".ui-dialog-titlebar").find(".ui-dialog-title").html("&nbsp;").end().css({
+            "background-color": "transparent",
+            "background-image": "none",
+            "border": 0,
+            "position": "absolute",
+            "right": 0,
+            "top": 0,
+            "z-index": 9999
+          }).end();
+        case "transparent":
+          return 
$(this.element[0]).dialog("widget").find(".ui-dialog-titlebar").css({
+            "background-color": "transparent",
+            "background-image": "none",
+            "border": 0
+          });
+        default:
+          return $.error("jQuery.dialogExtend Error : Invalid <titlebar> value 
'" + this.options.titlebar + "'");
+      }
+    },
+    state: function() {
+      return this._state;
+    },
+    restore: function() {
+      this._trigger("beforeRestore");
+      this._restore();
+      this._toggleButtons();
+      return this._trigger("restore");
+    },
+    _restore: function() {
+      if (this._state !== "normal") {
+        this["_restore_" + this._state]();
+        this._setState("normal");
+        return $(this.element[0]).dialog("widget").focus();
+      }
+    },
+    _saveSnapshot: function() {
+      if (this._state === "normal") {
+        this.original_config_resizable = $(this.element[0]).dialog("option", 
"resizable");
+        this.original_config_draggable = $(this.element[0]).dialog("option", 
"draggable");
+        this.original_size_height = 
$(this.element[0]).dialog("widget").outerHeight();
+        this.original_size_width = $(this.element[0]).dialog("option", 
"width");
+        this.original_size_maxHeight = $(this.element[0]).dialog("option", 
"maxHeight");
+        this.original_position_mode = 
$(this.element[0]).dialog("widget").css("position");
+        this.original_position_left = 
$(this.element[0]).dialog("widget").offset().left - $('body').scrollLeft();
+        this.original_position_top = 
$(this.element[0]).dialog("widget").offset().top - $('body').scrollTop();
+        return this.original_titlebar_wrap = 
$(this.element[0]).dialog("widget").find(".ui-dialog-titlebar").css("white-space");
+      }
+    },
+    _loadSnapshot: function() {
+      return {
+        "config": {
+          "resizable": this.original_config_resizable,
+          "draggable": this.original_config_draggable
+        },
+        "size": {
+          "height": this.original_size_height,
+          "width": this.original_size_width,
+          "maxHeight": this.original_size_maxHeight
+        },
+        "position": {
+          "mode": this.original_position_mode,
+          "left": this.original_position_left,
+          "top": this.original_position_top
+        },
+        "titlebar": {
+          "wrap": this.original_titlebar_wrap
+        }
+      };
+    },
+    _toggleButtons: function(newstate) {
+      var mode, name, state, _ref, _ref1, _results;
+
+      state = newstate || this._state;
+      
$(this.element[0]).dialog("widget").find(".ui-dialog-titlebar-restore").toggle(state
 !== "normal").css({
+        "right": "1.4em"
+      }).end();
+      _ref = this.modes;
+      for (name in _ref) {
+        mode = _ref[name];
+        $(this.element[0]).dialog("widget").find(".ui-dialog-titlebar-" + 
name).toggle(state !== mode.state && this.options[mode.option]);
+      }
+      _ref1 = this.modes;
+      _results = [];
+      for (name in _ref1) {
+        mode = _ref1[name];
+        if (mode.state === state) {
+          
_results.push($(this.element[0]).dialog("widget").find(".ui-dialog-titlebar-restore").insertAfter($(this.element[0]).dialog("widget").find(".ui-dialog-titlebar-"
 + name)).end());
+        } else {
+          _results.push(void 0);
+        }
+      }
+      return _results;
+    }
+  });
+
+}).call(this);
+
+(function() {
+  var $;
+
+  $ = jQuery;
+
+  $.extend(true, $.ui.dialogExtend.prototype, {
+    modes: {
+      "collapse": {
+        option: "collapsable",
+        state: "collapsed"
+      }
+    },
+    options: {
+      "collapsable": false,
+      "icons": {
+        "collapse": "ui-icon-triangle-1-s"
+      },
+      "beforeCollapse": null,
+      "collapse": null
+    },
+    collapse: function() {
+      var newHeight, pos;
+
+      newHeight = 
$(this.element[0]).dialog("widget").find(".ui-dialog-titlebar").height() + 15;
+      this._trigger("beforeCollapse");
+      if (this._state !== "normal") {
+        this._restore();
+      }
+      this._saveSnapshot();
+      pos = $(this.element[0]).dialog("widget").position();
+      $(this.element[0]).dialog("option", {
+        "resizable": false,
+        "height": newHeight,
+        "maxHeight": newHeight,
+        "position": [pos.left - $(document).scrollLeft(), pos.top - 
$(document).scrollTop()]
+      }).on('dialogclose', 
this._collapse_restore).hide().dialog("widget").find(".ui-dialog-buttonpane:visible").hide().end().find(".ui-dialog-titlebar").css("white-space",
 "nowrap").end().find(".ui-dialog-content");
+      this._setState("collapsed");
+      this._toggleButtons();
+      return this._trigger("collapse");
+    },
+    _restore_collapsed: function() {
+      var original;
+
+      original = this._loadSnapshot();
+      return 
$(this.element[0]).show().dialog("widget").find(".ui-dialog-buttonpane:hidden").show().end().find(".ui-dialog-titlebar").css("white-space",
 original.titlebar.wrap).end().find(".ui-dialog-content").dialog("option", {
+        "resizable": original.config.resizable,
+        "height": original.size.height,
+        "maxHeight": original.size.maxHeight
+      }).off('dialogclose', this._collapse_restore);
+    },
+    _initStyles_collapse: function() {
+      var style;
+
+      if (!$(".dialog-extend-collapse-css").length) {
+        style = '';
+        style += '<style class="dialog-extend-collapse-css" type="text/css">';
+        style += '.ui-dialog .ui-dialog-titlebar-collapse { width: 19px; 
height: 18px; }';
+        style += '.ui-dialog .ui-dialog-titlebar-collapse span { display: 
block; margin: 1px; }';
+        style += '.ui-dialog .ui-dialog-titlebar-collapse:hover,';
+        style += '.ui-dialog .ui-dialog-titlebar-collapse:focus { padding: 0; 
}';
+        style += '</style>';
+        return $(style).appendTo("body");
+      }
+    },
+    _collapse_restore: function() {
+      return $(this).dialogExtend("restore");
+    }
+  });
+
+}).call(this);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ac232ec4/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/jquery.dialogextend.min.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/jquery.dialogextend.min.js
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/jquery.dialogextend.min.js
new file mode 100644
index 0000000..7aaae95
--- /dev/null
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/jquery.dialogextend.min.js
@@ -0,0 +1,3 @@
+/* Licensed MIT */
+/*! jquery-dialogextend 2.0.4 2014-07-08 */
+(function(){var 
i;i=jQuery,i.widget("ui.dialogExtend",{version:"2.0.4",modes:{},options:{closable:!0,dblclick:!1,titlebar:!1,icons:{close:"ui-icon-closethick",restore:"ui-icon-newwin"},load:null,beforeRestore:null,restore:null},_create:function(){return
 
this._state="normal",i(this.element[0]).data("ui-dialog")||i.error("jQuery.dialogExtend
 Error : Only jQuery UI Dialog element is 
accepted"),this._verifyOptions(),this._initStyles(),this._initButtons(),this._initTitleBar(),this._setState("normal"),this._on("load",function(i){return
 console.log("test",i)}),this._trigger("load")},_setState:function(t){return 
i(this.element[0]).removeClass("ui-dialog-"+this._state).addClass("ui-dialog-"+t),this._state=t},_verifyOptions:function(){var
 t,e,o;!this.options.dblclick||this.options.dblclick in 
this.modes||(i.error("jQuery.dialogExtend Error : Invalid <dblclick> value 
'"+this.options.dblclick+"'"),this.options.dblclick=!1),this.options.titlebar&&"none"!==(e=this.options.titlebar)&&"transparent"
 !==e&&(i.error("jQuery.dialogExtend Error : Invalid <titlebar> value 
'"+this.options.titlebar+"'"),this.options.titlebar=!1),o=[];for(t in 
this.modes)this["_verifyOptions_"+t]?o.push(this["_verifyOptions_"+t]()):o.push(void
 0);return o},_initStyles:function(){var 
t,e,o;i(".dialog-extend-css").length||(e="",e+='<style 
class="dialog-extend-css" type="text/css">',e+=".ui-dialog 
.ui-dialog-titlebar-buttonpane>a { float: right; }",e+=".ui-dialog 
.ui-dialog-titlebar-restore { width: 19px; height: 18px; }",e+=".ui-dialog 
.ui-dialog-titlebar-restore span { display: block; margin: 1px; 
}",e+=".ui-dialog .ui-dialog-titlebar-restore:hover,",e+=".ui-dialog 
.ui-dialog-titlebar-restore:focus { padding: 0; }",e+=".ui-dialog 
.ui-dialog-titlebar ::selection { background-color: transparent; 
}",e+="</style>",i(e).appendTo("body")),o=[];for(t in 
this.modes)o.push(this["_initStyles_"+t]());return 
o},_initButtons:function(){var 
t,e,o,n,a,l=this;n=i(this.element[0]).dialog("widget").find(".ui-dialog-title
 bar"),t=i('<div 
class="ui-dialog-titlebar-buttonpane"></div>').appendTo(n),t.css({position:"absolute",top:"50%",right:"0.3em","margin-top":"-10px",height:"18px"}),n.find(".ui-dialog-titlebar-close").css({position:"relative","float":"right",top:"auto",right:"auto",margin:0}).find(".ui-icon").removeClass("ui-icon-closethick").addClass(this.options.icons.close).end().appendTo(t).end(),t.append('<a
 class="ui-dialog-titlebar-restore ui-corner-all ui-state-default" 
href="#"><span class="ui-icon '+this.options.icons.restore+'" 
title="restore">restore</span></a>').find(".ui-dialog-titlebar-restore").attr("role","button").mouseover(function(){return
 i(this).addClass("ui-state-hover")}).mouseout(function(){return 
i(this).removeClass("ui-state-hover")}).focus(function(){return 
i(this).addClass("ui-state-focus")}).blur(function(){return 
i(this).removeClass("ui-state-focus")}).end().find(".ui-dialog-titlebar-close").toggle(this.options.closable).end().find(".ui-dialog-titlebar-restore").hide().c
 lick(function(i){return 
i.preventDefault(),l.restore()}).end(),a=this.modes;for(o in 
a)e=a[o],this._initModuleButton(o,e);return n.dblclick(function(){return 
l.options.dblclick?"normal"!==l._state?l.restore():l[l.options.dblclick]():void 
0}).select(function(){return!1})},_initModuleButton:function(t,e){var 
o,n=this;return 
o=i(this.element[0]).dialog("widget").find(".ui-dialog-titlebar-buttonpane"),o.append('<a
 class="ui-dialog-titlebar-'+t+' ui-corner-all ui-state-default" href="#" 
title="'+t+'"><span class="ui-icon 
'+this.options.icons[t]+'">'+t+"</span></a>").find(".ui-dialog-titlebar-"+t).attr("role","button").mouseover(function(){return
 i(this).addClass("ui-state-hover")}).mouseout(function(){return 
i(this).removeClass("ui-state-hover")}).focus(function(){return 
i(this).addClass("ui-state-focus")}).blur(function(){return 
i(this).removeClass("ui-state-focus")}).end().find(".ui-dialog-titlebar-"+t).toggle(this.options[e.option]).click(function(i){return
 i.preventDefault(),n[t]()})
 .end()},_initTitleBar:function(){var 
t;switch(this.options.titlebar){case!1:return 0;case"none":return 
i(this.element[0]).dialog("option","draggable")&&(t=i("<div 
/>").addClass("ui-dialog-draggable-handle").css("cursor","move").height(5),i(this.element[0]).dialog("widget").prepend(t).draggable("option","handle",t)),i(this.element[0]).dialog("widget").find(".ui-dialog-titlebar").find(".ui-dialog-title").html("&nbsp;").end().css({"background-color":"transparent","background-image":"none",border:0,position:"absolute",right:0,top:0,"z-index":9999}).end();case"transparent":return
 
i(this.element[0]).dialog("widget").find(".ui-dialog-titlebar").css({"background-color":"transparent","background-image":"none",border:0});default:return
 i.error("jQuery.dialogExtend Error : Invalid <titlebar> value 
'"+this.options.titlebar+"'")}},state:function(){return 
this._state},restore:function(){return 
this._trigger("beforeRestore"),this._restore(),this._toggleButtons(),this._trigger("restore")},_restore:
 
function(){return"normal"!==this._state?(this["_restore_"+this._state](),this._setState("normal"),i(this.element[0]).dialog("widget").focus()):void
 
0},_saveSnapshot:function(){return"normal"===this._state?(this.original_config_resizable=i(this.element[0]).dialog("option","resizable"),this.original_config_draggable=i(this.element[0]).dialog("option","draggable"),this.original_size_height=i(this.element[0]).dialog("widget").outerHeight(),this.original_size_width=i(this.element[0]).dialog("option","width"),this.original_size_maxHeight=i(this.element[0]).dialog("option","maxHeight"),this.original_position_mode=i(this.element[0]).dialog("widget").css("position"),this.original_position_left=i(this.element[0]).dialog("widget").offset().left-i("body").scrollLeft(),this.original_position_top=i(this.element[0]).dialog("widget").offset().top-i("body").scrollTop(),this.original_titlebar_wrap=i(this.element[0]).dialog("widget").find(".ui-dialog-titlebar").css("white-space")):void
 0},_loadSnapsho
 
t:function(){return{config:{resizable:this.original_config_resizable,draggable:this.original_config_draggable},size:{height:this.original_size_height,width:this.original_size_width,maxHeight:this.original_size_maxHeight},position:{mode:this.original_position_mode,left:this.original_position_left,top:this.original_position_top},titlebar:{wrap:this.original_titlebar_wrap}}},_toggleButtons:function(t){var
 
e,o,n,a,l,s;n=t||this._state,i(this.element[0]).dialog("widget").find(".ui-dialog-titlebar-restore").toggle("normal"!==n).css({right:"1.4em"}).end(),a=this.modes;for(o
 in 
a)e=a[o],i(this.element[0]).dialog("widget").find(".ui-dialog-titlebar-"+o).toggle(n!==e.state&&this.options[e.option]);l=this.modes,s=[];for(o
 in 
l)e=l[o],e.state===n?s.push(i(this.element[0]).dialog("widget").find(".ui-dialog-titlebar-restore").insertAfter(i(this.element[0]).dialog("widget").find(".ui-dialog-titlebar-"+o)).end()):s.push(void
 0);return s}})}).call(this),function(){var i;i=jQuery,i.extend(!0,i.ui.dia
 
logExtend.prototype,{modes:{collapse:{option:"collapsable",state:"collapsed"}},options:{collapsable:!1,icons:{collapse:"ui-icon-triangle-1-s"},beforeCollapse:null,collapse:null},collapse:function(){var
 t,e;return 
t=i(this.element[0]).dialog("widget").find(".ui-dialog-titlebar").height()+15,this._trigger("beforeCollapse"),"normal"!==this._state&&this._restore(),this._saveSnapshot(),e=i(this.element[0]).dialog("widget").position(),i(this.element[0]).dialog("option",{resizable:!1,height:t,maxHeight:t,position:[e.left-i(document).scrollLeft(),e.top-i(document).scrollTop()]}).on("dialogclose",this._collapse_restore).hide().dialog("widget").find(".ui-dialog-buttonpane:visible").hide().end().find(".ui-dialog-titlebar").css("white-space","nowrap").end().find(".ui-dialog-content"),this._setState("collapsed"),this._toggleButtons(),this._trigger("collapse")},_restore_collapsed:function(){var
 t;return 
t=this._loadSnapshot(),i(this.element[0]).show().dialog("widget").find(".ui-dialog-buttonpane:
 
hidden").show().end().find(".ui-dialog-titlebar").css("white-space",t.titlebar.wrap).end().find(".ui-dialog-content").dialog("option",{resizable:t.config.resizable,height:t.size.height,maxHeight:t.size.maxHeight}).off("dialogclose",this._collapse_restore)},_initStyles_collapse:function(){var
 t;return i(".dialog-extend-collapse-css").length?void 0:(t="",t+='<style 
class="dialog-extend-collapse-css" type="text/css">',t+=".ui-dialog 
.ui-dialog-titlebar-collapse { width: 19px; height: 18px; }",t+=".ui-dialog 
.ui-dialog-titlebar-collapse span { display: block; margin: 1px; 
}",t+=".ui-dialog .ui-dialog-titlebar-collapse:hover,",t+=".ui-dialog 
.ui-dialog-titlebar-collapse:focus { padding: 0; 
}",t+="</style>",i(t).appendTo("body"))},_collapse_restore:function(){return 
i(this).dialogExtend("restore")}})}.call(this);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ac232ec4/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 2b9e9e4..c85190e 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
@@ -17,39 +17,57 @@
  * under the License.
  */
 var Video = (function() {
-       var self = {}, c, box, v, vc, t, swf;
+       var self = {}, c, box, v, vc, t, swf, size;
 
        function _getName() {
                return c.user.firstName + ' ' + c.user.lastName;
        }
-       function _resetSize() {
-               v.dialog("option", "width", c.width).dialog("option", "height", 
t.height() + c.height + 2);
-               vc.width(c.width).height(c.height);
-               swf.attr('width', c.width).attr('height', c.height);
+       function _resetSize(_w, _h) {
+               var w = _w || size.width, h = _h || size.height;
+               _setSize(w, h);
+       }
+       function _setSize(w, h) {
+               v.dialog("option", "width", w).dialog("option", "height", 
t.height() + h + 2);
+               vc.width(w).height(h);
+               swf.attr('width', w).attr('height', h);
        }
        function _init(_box, _c) {
                c = _c;
                box = _box;
+               size = {width: c.width, height: c.height};
                var _id = "video" + c.uid, name = _getName()
-                       , w = c.self ? Math.max(300, c.width) : c.width
-                       , h = c.self ? Math.max(200, c.height) : c.height;
+                       , _w = c.self ? Math.max(300, c.width) : c.width
+                       , _h = c.self ? Math.max(200, c.height) : c.height;
                box.append($('#user-video').clone().attr('id', 
_id).attr('title', name).data(self));
                v = $('#' + _id);
                v.dialog({
                        classes: {
                                'ui-dialog': 'ui-corner-all video user-video'
-                               , 'ui-dialog-titlebar': 'ui-corner-all no-close'
                        }
-                       , width: w
+                       , width: _w
                        , minWidth: 40
                        , minHeight: 50
                        , autoOpen: true
                        , modal: false
-                       //resizeStop
+                       , resizeStop: function(event, ui) {
+                               var i = 0;
+                       }
+               }).dialogExtend({
+                       icons: {
+                               'collapse': 'ui-icon-minus'
+                       }
+                       , closable: false
+                       , collapsable: true
+                       , dblclick: "collapse"
+                       , restore : function(evt, dlg) {
+                               var w = c.self ? Math.max(300, size.width) : 
size.width
+                                       , h = c.self ? Math.max(200, 
size.height) : size.height;
+                               _setSize(w, h);
+                       }
                });
                t = v.parent().find('.ui-dialog-titlebar').attr('title', name);
                vc = v.find('.video');
-               vc.width(w).height(h);
+               vc.width(_w).height(_h);
                //broadcast
                var o = VideoManager.getOptions();
                if (c.self) {
@@ -65,7 +83,7 @@ var Video = (function() {
                o.sid = c.sid;
                o.broadcastId = c.broadcastId;
                swf = initVideo(vc, _id + '-swf', o);
-               swf.attr('width', w).attr('height', h);
+               swf.attr('width', _w).attr('height', _h);
        }
        function _update(_c) {
                // TODO check, update video
@@ -106,8 +124,7 @@ var VideoManager = (function() {
                Video().init(box, c);
        }
        function _close(uid) {
-               var _id = _getVid(uid)
-                       , v = $('#' + _id);
+               var _id = _getVid(uid), v = $('#' + _id);
                if (v.length == 1) {
                        v.remove();
                }

Reply via email to