Various changes, see below:

- disable drag resizing when chatboxes are minimized.
- refactored chat box and chat room markup so that they are more similar.
- don't make the chat box title clickable if no vcard URL is available
- make only the title text clickable, not the whitespace
- fixed toggling of resized chats
This commit is contained in:
JC Brand 2014-01-27 02:15:04 +02:00
parent 62f6997a25
commit 12fc286ca6
5 changed files with 129 additions and 120 deletions

View File

@ -386,16 +386,25 @@ span.spinner.hor_centered {
background-color: #2D617A;
}
.chatroom .chat-body {
height: -moz-calc(100% - 38px);
height: -o-calc(100% - 38px);
height: calc(100% - 38px);
.chat-body {
background-color: white;
border-bottom-right-radius: 4px;
border-bottom-left-radius: 4px;
border-top: 0;
}
.chatbox .chat-body {
height: -moz-calc(100% - 38px);
height: -o-calc(100% - 38px);
height: calc(100% - 38px);
}
.chatroom .chat-body {
height: -moz-calc(100% - 38px);
height: -o-calc(100% - 38px);
height: calc(100% - 38px);
}
.chatroom .chat-area {
float: left;
width: 200px;
@ -450,16 +459,10 @@ ul.participant-list li.moderator {
-moz-box-sizing: border-box;
}
.chatbox .chat-content {
height: -moz-calc(100% - 114px);
height: -o-calc(100% - 114px);
height: calc(100% - 114px);
}
.chatroom .chat-content {
height: -moz-calc(100% - 75px);
height: -o-calc(100% - 75px);
height: calc(100% - 75px);
.chat-content {
height: -moz-calc(100% - 76px);
height: -o-calc(100% - 76px);
height: calc(100% - 76px);
}
.chat-info {
@ -558,6 +561,10 @@ div.chat-title {
height: 1em;
}
div.chat-title a {
color: white;
}
.chat-head-chatbox,
.chat-head-chatroom {
background: linear-gradient(top, rgba(206,220,231,1) 0%,rgba(79,106,114,1) 100%);
@ -576,6 +583,9 @@ p.chatroom-topic {
margin: 0;
}
div.chat-head-chatbox a.user-custom-message {
color: white;
}
.activated{
display: block !important;
}

View File

@ -1149,19 +1149,21 @@
}
},
swapToggleIcon: function ($el) {
if ($el.hasClass('icon-minus')) {
$el.removeClass('icon-minus').addClass('icon-plus');
} else {
$el.removeClass('icon-plus').addClass('icon-minus');
}
},
toggleChat: function (ev) {
// FIXME: Restore chat box to original resized height.
// Requires that we save the custom height.
this.$el.children('.box-flyout').attr('style', '');
this.saveToggleState();
this.$el.find('form.sendXMPPMessage').toggle();
this.$el.find('div.chat-content').slideToggle('fast');
this.swapToggleIcon($(ev.target));
this.$el.find('div.chat-body').slideToggle('fast');
var $target = $(ev.target);
if ($target.hasClass('icon-minus')) {
$target.removeClass('icon-minus').addClass('icon-plus');
} else {
$target.removeClass('icon-plus').addClass('icon-minus');
}
// Toggle drag resize ability
this.$el.find('.dragresize-tm').toggle();
},
updateVCard: function () {
@ -1746,12 +1748,6 @@
},
is_chatroom: true,
toggleChat: function (ev) {
this.saveToggleState();
this.$el.find('div.chat-body').slideToggle('fast');
this.swapToggleIcon($(ev.target));
},
sendChatRoomMessage: function (body) {
var match = body.replace(/^\s*/, "").match(/^\/(.*?)(?: (.*))?$/) || [false],
$chat_content;

View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" id="facebook">
<html lang="en">
<head>
<title id="pageTitle">Converse: Mockup</title>
<meta charset="utf-8">
@ -9,7 +9,7 @@
<link type="text/css" rel="stylesheet" href="stylesheets/stylesheet.css">
<link type="text/css" rel="stylesheet" href="converse.css">
<script src="components/jquery/jquery.min.js"></script>
<script type="text/javascript" src="dragresize/dragresize_commented.js"></script>
<script type="text/javascript" src="src/dragresize.js"></script>
<script type="text/javascript">
$(document).ready(function () {
//<![CDATA[
@ -245,14 +245,15 @@
<div class="chat-head chat-head-chatbox">
<a class="close-chatbox-button icon-close"></a>
<a class="toggle-chatbox-button icon-minus"></a>
<a href="http://opkode.com" target="_blank" class="user">
<canvas height="33px" width="33px" class="avatar" style="background-color: black"></canvas>
<div class="chat-title"> JC Brand </div>
<div class="chat-title">
<a href="http://opkode.com" target="_blank" class="user">
JC Brand
</a>
<p class="user-custom-message" title="10000ft in the air">10000ft in the air</p>
<p></p>
</div>
<p class="user-custom-message" title="10000ft in the air">10000ft in the air</p>
</div>
<div class="chat-body">
<div class="chat-content">
<div class="chat-info"><strong>/help</strong>:This is an info message</div>
<div class="chat-error">This is an error message</div>
@ -315,6 +316,7 @@
</form>
</div>
</div>
</div>
<div class="chatroom" id="4a77380f1cd9d392627b0e1469688f9ca44e9392">
<div class="box-flyout">
@ -325,8 +327,7 @@
<a class="configure-chatroom-button icon-wrench" style=""></a>
<div class="chat-title"> Chatroom </div>
<p class="chatroom-topic"></p>
<p></p>
<p class="chatroom-topic">May the force be with you</p>
</div>
<div class="chat-body">
<div class="chat-area">
@ -479,19 +480,13 @@ $(document).ready(function () {
$('.toggle-chatbox-button').click(function(ev) {
var $grandparent = $(ev.target).parent().parent().parent();
if ($grandparent.attr('class') == 'chatroom') {
$grandparent.find('.chat-body').slideToggle(300);
} else {
$grandparent.find('div.chat-content').slideToggle(300);
}
var flyout = $grandparent.find('.box-flyout');
if (flyout.hasClass('minimized')) {
flyout.removeClass('minimized');
} else {
flyout.addClass('minimized');
}
$(ev.target).parent().parent().find('form.sendXMPPMessage').toggle();
});
// Clickable Dropdown

View File

@ -14,7 +14,7 @@ Simplified and modified for Converse.js by JC Brand https://opkode.com
if (typeof define === 'function' && define.amd) {
define("dragresize", [], function() { return factory(); });
} else {
root.dragresize = factory();
root.DragResize = factory();
}
}(this, function () {

View File

@ -3,11 +3,18 @@
<div class="chat-head chat-head-chatbox">
<a class="close-chatbox-button icon-close"></a>
<a class="toggle-chatbox-button icon-minus"></a>
<div class="chat-title">
{[ if (url) { ]}
<a href="{{url}}" target="_blank" class="user">
<div class="chat-title"> {{ fullname }} </div>
{[ } ]}
{{ fullname }}
{[ if (url) { ]}
</a>
{[ } ]}
</div>
<p class="user-custom-message"><p/>
</div>
<div class="chat-body">
<div class="chat-content"></div>
<form class="sendXMPPMessage" action="" method="post">
{[ if (show_toolbar) { ]}
@ -19,3 +26,4 @@
placeholder="{{label_personal_message}}"/>
</form>
</div>
</div>