Commit d0af9742 authored by JC Brand's avatar JC Brand

Chat boxes can now be minimized. Updates #71

parent d2358a6a
...@@ -653,7 +653,7 @@ form.search-xmpp-contact input { ...@@ -653,7 +653,7 @@ form.search-xmpp-contact input {
} }
a.configure-chatroom-button, a.configure-chatroom-button,
a.minimize-chatbox-button, a.toggle-chatbox-button,
a.close-chatbox-button { a.close-chatbox-button {
font-size: 10px; font-size: 10px;
padding: 3px 3px 2px 3px; padding: 3px 3px 2px 3px;
...@@ -677,7 +677,7 @@ a.close-chatbox-button { ...@@ -677,7 +677,7 @@ a.close-chatbox-button {
} }
a.configure-chatroom-button:active, a.configure-chatroom-button:active,
a.minimize-chatbox-button:active, a.toggle-chatbox-button:active,
a.close-chatbox-button:active { a.close-chatbox-button:active {
position:relative; position:relative;
top:1px; top:1px;
......
...@@ -729,6 +729,7 @@ ...@@ -729,6 +729,7 @@
events: { events: {
'click .close-chatbox-button': 'closeChat', 'click .close-chatbox-button': 'closeChat',
'click .toggle-chatbox-button': 'toggleChat',
'keypress textarea.chat-textarea': 'keyPressed', 'keypress textarea.chat-textarea': 'keyPressed',
'click .toggle-smiley': 'toggleEmoticonMenu', 'click .toggle-smiley': 'toggleEmoticonMenu',
'click .toggle-smiley ul li': 'insertEmoticon', 'click .toggle-smiley ul li': 'insertEmoticon',
...@@ -1116,6 +1117,32 @@ ...@@ -1116,6 +1117,32 @@
} }
}, },
saveToggleState: function () {
var flyout = this.$el.find('.box-flyout');
if (flyout.hasClass('minimized')) {
flyout.removeClass('minimized');
this.model.save({'minimized': false});
} else {
flyout.addClass('minimized');
this.model.save({'minimized': true});
}
},
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) {
this.saveToggleState();
this.$el.find('form.sendXMPPMessage').toggle();
this.$el.find('div.chat-content').slideToggle('fast');
this.swapToggleIcon($(ev.target));
},
updateVCard: function () { updateVCard: function () {
var jid = this.model.get('jid'), var jid = this.model.get('jid'),
rosteritem = converse.roster.get(jid); rosteritem = converse.roster.get(jid);
...@@ -1692,14 +1719,21 @@ ...@@ -1692,14 +1719,21 @@
tagName: 'div', tagName: 'div',
className: 'chatroom', className: 'chatroom',
events: { events: {
'click a.close-chatbox-button': 'closeChat', 'click .close-chatbox-button': 'closeChat',
'click a.configure-chatroom-button': 'configureChatRoom', 'click .toggle-chatbox-button': 'toggleChat',
'click .configure-chatroom-button': 'configureChatRoom',
'click .toggle-smiley': 'toggleEmoticonMenu', 'click .toggle-smiley': 'toggleEmoticonMenu',
'click .toggle-smiley ul li': 'insertEmoticon', 'click .toggle-smiley ul li': 'insertEmoticon',
'keypress textarea.chat-textarea': 'keyPressed' 'keypress textarea.chat-textarea': 'keyPressed'
}, },
is_chatroom: true, is_chatroom: true,
toggleChat: function (ev) {
this.saveToggleState();
this.$el.find('div.chat-body').slideToggle('fast');
this.swapToggleIcon($(ev.target));
},
sendChatRoomMessage: function (body) { sendChatRoomMessage: function (body) {
var match = body.replace(/^\s*/, "").match(/^\/(.*?)(?: (.*))?$/) || [false], var match = body.replace(/^\s*/, "").match(/^\/(.*?)(?: (.*))?$/) || [false],
$chat_content; $chat_content;
......
...@@ -244,7 +244,7 @@ ...@@ -244,7 +244,7 @@
<div class="dragresize dragresize-tm"></div> <div class="dragresize dragresize-tm"></div>
<div class="chat-head chat-head-chatbox"> <div class="chat-head chat-head-chatbox">
<a class="close-chatbox-button icon-close"></a> <a class="close-chatbox-button icon-close"></a>
<a class="minimize-chatbox-button icon-minus"></a> <a class="toggle-chatbox-button icon-minus"></a>
<a href="http://opkode.com" target="_blank" class="user"> <a href="http://opkode.com" target="_blank" class="user">
<canvas height="33px" width="33px" class="avatar" style="background-color: black"></canvas> <canvas height="33px" width="33px" class="avatar" style="background-color: black"></canvas>
...@@ -321,7 +321,7 @@ ...@@ -321,7 +321,7 @@
<div class="dragresize dragresize-tm"></div> <div class="dragresize dragresize-tm"></div>
<div class="chat-head chat-head-chatroom"> <div class="chat-head chat-head-chatroom">
<a class="close-chatbox-button icon-close"></a> <a class="close-chatbox-button icon-close"></a>
<a class="minimize-chatbox-button icon-minus"></a> <a class="toggle-chatbox-button icon-minus"></a>
<a class="configure-chatroom-button icon-wrench" style=""></a> <a class="configure-chatroom-button icon-wrench" style=""></a>
<div class="chat-title"> Chatroom </div> <div class="chat-title"> Chatroom </div>
...@@ -396,7 +396,7 @@ ...@@ -396,7 +396,7 @@
<div class="dragresize dragresize-tm"></div> <div class="dragresize dragresize-tm"></div>
<div class="chat-head chat-head-chatroom"> <div class="chat-head chat-head-chatroom">
<a class="close-chatbox-button icon-close"></a> <a class="close-chatbox-button icon-close"></a>
<a class="minimize-chatbox-button icon-minus"></a> <a class="toggle-chatbox-button icon-minus"></a>
<a class="configure-chatroom-button" style="display:none">&nbsp;</a> <a class="configure-chatroom-button" style="display:none">&nbsp;</a>
<div class="chat-title"> Restricted Chatroom</div> <div class="chat-title"> Restricted Chatroom</div>
<p class="chatroom-topic"></p> <p class="chatroom-topic"></p>
...@@ -477,11 +477,9 @@ $(document).ready(function () { ...@@ -477,11 +477,9 @@ $(document).ready(function () {
}); });
}); });
$('.minimize-chatbox-button').click(function(ev) { $('.toggle-chatbox-button').click(function(ev) {
var $grandparent = $(ev.target).parent().parent().parent(); var $grandparent = $(ev.target).parent().parent().parent();
if ($grandparent.attr('id') == 'controlbox') { if ($grandparent.attr('class') == 'chatroom') {
$grandparent.find('.controlbox-panes').slideToggle(300);
} else if ($grandparent.attr('class') == 'chatroom') {
$grandparent.find('.chat-body').slideToggle(300); $grandparent.find('.chat-body').slideToggle(300);
} else { } else {
$grandparent.find('div.chat-content').slideToggle(300); $grandparent.find('div.chat-content').slideToggle(300);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment