diff --git a/browser/components/loop/content/shared/css/conversation.css b/browser/components/loop/content/shared/css/conversation.css index c7e9a3b7821..2d50768e86d 100644 --- a/browser/components/loop/content/shared/css/conversation.css +++ b/browser/components/loop/content/shared/css/conversation.css @@ -725,3 +725,59 @@ html, .fx-embedded, #main, position: absolute; bottom: 10px; } + +/* Standalone rooms */ + +.standalone .room-conversation-wrapper { + position: relative; +} + +.standalone .room-inner-action-area { + position: absolute; + top: 35%; + z-index: 1000; + margin: 0 auto; + width: 50%; +} + +.standalone .room-inner-action-area button { + position: absolute; + border-radius: 3px; + font-size: 1.2em; + padding: .2em 1.2em; + cursor: pointer; +} + +.standalone .room-conversation h2.room-name { + position: absolute; + display: inline-block; + top: 0; + right: 0; + color: #fff; + z-index: 2000000; + font-size: 1.2em; + padding: .4em; +} + +.standalone .room-conversation .media { + background: #000; +} + +.standalone .room-conversation .video_wrapper.remote_wrapper { + background-color: #4e4e4e; + width: 75%; +} + +.standalone .room-conversation .local-stream { + width: 33%; + height: 26.5%; +} + +.standalone .room-conversation .conversation-toolbar { + background: #000; + border-top: none; +} + +.standalone .room-conversation .conversation-toolbar .btn-hangup-entry { + display: block; +} diff --git a/browser/components/loop/content/shared/js/views.js b/browser/components/loop/content/shared/js/views.js index ccc133887bb..31435433934 100644 --- a/browser/components/loop/content/shared/js/views.js +++ b/browser/components/loop/content/shared/js/views.js @@ -81,7 +81,8 @@ loop.shared.views = (function(_, OT, l10n) { getDefaultProps: function() { return { video: {enabled: true, visible: true}, - audio: {enabled: true, visible: true} + audio: {enabled: true, visible: true}, + enableHangup: true }; }, @@ -89,7 +90,9 @@ loop.shared.views = (function(_, OT, l10n) { video: React.PropTypes.object.isRequired, audio: React.PropTypes.object.isRequired, hangup: React.PropTypes.func.isRequired, - publishStream: React.PropTypes.func.isRequired + publishStream: React.PropTypes.func.isRequired, + hangupButtonLabel: React.PropTypes.string, + enableHangup: React.PropTypes.bool, }, handleClickHangup: function() { @@ -104,14 +107,19 @@ loop.shared.views = (function(_, OT, l10n) { this.props.publishStream("audio", !this.props.audio.enabled); }, + _getHangupButtonLabel: function() { + return this.props.hangupButtonLabel || l10n.get("hangup_button_caption2"); + }, + render: function() { var cx = React.addons.classSet; return ( React.DOM.ul({className: "conversation-toolbar"}, React.DOM.li({className: "conversation-toolbar-btn-box btn-hangup-entry"}, React.DOM.button({className: "btn btn-hangup", onClick: this.handleClickHangup, - title: l10n.get("hangup_button_title")}, - l10n.get("hangup_button_caption2") + title: l10n.get("hangup_button_title"), + disabled: !this.props.enableHangup}, + this._getHangupButtonLabel() ) ), React.DOM.li({className: "conversation-toolbar-btn-box"}, diff --git a/browser/components/loop/content/shared/js/views.jsx b/browser/components/loop/content/shared/js/views.jsx index 6f4530c114a..735acadc7d4 100644 --- a/browser/components/loop/content/shared/js/views.jsx +++ b/browser/components/loop/content/shared/js/views.jsx @@ -81,7 +81,8 @@ loop.shared.views = (function(_, OT, l10n) { getDefaultProps: function() { return { video: {enabled: true, visible: true}, - audio: {enabled: true, visible: true} + audio: {enabled: true, visible: true}, + enableHangup: true }; }, @@ -89,7 +90,9 @@ loop.shared.views = (function(_, OT, l10n) { video: React.PropTypes.object.isRequired, audio: React.PropTypes.object.isRequired, hangup: React.PropTypes.func.isRequired, - publishStream: React.PropTypes.func.isRequired + publishStream: React.PropTypes.func.isRequired, + hangupButtonLabel: React.PropTypes.string, + enableHangup: React.PropTypes.bool, }, handleClickHangup: function() { @@ -104,14 +107,19 @@ loop.shared.views = (function(_, OT, l10n) { this.props.publishStream("audio", !this.props.audio.enabled); }, + _getHangupButtonLabel: function() { + return this.props.hangupButtonLabel || l10n.get("hangup_button_caption2"); + }, + render: function() { var cx = React.addons.classSet; return (