1
0
mirror of https://github.com/wbbaddons/Tims-Chat.git synced 2024-12-22 21:40:08 +00:00

Merge branch 'master' of github.com:wbbaddons/Tims-Chat

This commit is contained in:
Tim Düsterhus 2012-08-06 21:37:35 +02:00
commit 79588bd16d
4 changed files with 114 additions and 40 deletions

View File

@ -113,7 +113,7 @@ window.console ?=
, @ , @
# Insert a smiley # Insert a smiley
$('.jsSmiley').click $.proxy (event) -> $('#smilies').on 'click', 'img', $.proxy (event) ->
@insertText ' ' + $(event.target).attr('alt') + ' ' @insertText ' ' + $(event.target).attr('alt') + ' '
, @ , @

View File

@ -65,7 +65,15 @@ class ChatPage extends AbstractPage {
* @var array<\wcf\data\smiley\Smiley> * @var array<\wcf\data\smiley\Smiley>
* @see \wcf\data\smiley\SmileyCache * @see \wcf\data\smiley\SmileyCache
*/ */
public $smilies = array(); public $defaultSmilies = array();
/**
* List of all smiley categories.
*
* @var array<\wcf\data\smiley\SmileyCategory>
* @see \wcf\data\smiley\SmileyCache
*/
public $smileyCategories = array();
/** /**
* Values read from the UserStorage of the current user. * Values read from the UserStorage of the current user.
@ -79,14 +87,15 @@ class ChatPage extends AbstractPage {
*/ */
public function assignVariables() { public function assignVariables() {
parent::assignVariables(); parent::assignVariables();
WCF::getTPL()->assign(array( WCF::getTPL()->assign(array(
'chatVersion' => $this->chatVersion, 'chatVersion' => $this->chatVersion,
'newestMessages' => $this->newestMessages, 'newestMessages' => $this->newestMessages,
'room' => $this->room, 'room' => $this->room,
'roomID' => $this->roomID, 'roomID' => $this->roomID,
'rooms' => $this->rooms, 'rooms' => $this->rooms,
'smilies' => $this->smilies 'defaultSmilies' => $this->defaultSmilies,
'smileyCategories' => $this->smileyCategories
)); ));
} }
@ -146,7 +155,13 @@ public function readData() {
\wcf\util\ChatUtil::writeUserData(array('lastSeen' => 0)); \wcf\util\ChatUtil::writeUserData(array('lastSeen' => 0));
} }
$this->smilies = \wcf\data\smiley\SmileyCache::getInstance()->getCategorySmilies(); $smileyCategories = \wcf\data\smiley\SmileyCache::getInstance()->getCategories();
foreach($smileyCategories as $category) {
if(!$category->disabled) $this->smileyCategories[] = $category;
}
$this->defaultSmilies = \wcf\data\smiley\SmileyCache::getInstance()->getCategorySmilies();
$this->readChatVersion(); $this->readChatVersion();
} }

View File

@ -36,7 +36,7 @@ .sidebar {
} }
} }
#timsChatTopic, #smileyList { #timsChatTopic {
padding: 5px; padding: 5px;
} }
@ -47,11 +47,21 @@ .timsChatMessageContainer {
padding-left: 7px !important; padding-left: 7px !important;
} }
#smileyList .smilies { #smilies {
li { padding: 14px 21px 7px;
display: inline; border-bottom-right-radius: 0px;
margin: 5px 5px 0 0;
} > div {
li {
display: inline;
margin: 5px 5px 0 0;
.icon24 {
//width: 16px;
//height: 16px;
}
}
}
} }
#timsChatForm { #timsChatForm {
@ -72,9 +82,10 @@ #timsChatControls {
} }
#timsChatOptions { #timsChatOptions {
bottom: -29px; top: -1px;
right: 1px;
margin-left: 0; margin-left: 0;
position: absolute; position: relative;
width: 100%; width: 100%;
> ul { > ul {
@ -111,16 +122,22 @@ #timsChatOptions {
#timsChatUserList { #timsChatUserList {
.timsChatUserMenu { .timsChatUserMenu {
display: none; display: none;
li { background-color: rgba(0, 0, 0, 0.1);
a { margin-bottom: -5px;
margin-left: 30px !important; padding: 1px 0 6px;
} box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.1) inset;
} border-bottom: 1px solid #FFFFFF;
color: rgba(0, 0, 0, 0.4);
text-shadow: none;
> li { > li {
a { a {
margin-left: 20px; background-color: rgba(255, 255, 255, 0.22);
} border-radius: 5px 0 0 5px;
margin-left: 35px;
padding: 1px 0 1px 15px;
color: #555;
}
} }
} }
.timsChatAway { .timsChatAway {
@ -160,9 +177,10 @@ .ajaxLoad {
} }
.timsChatSidebarTabs { .timsChatSidebarTabs {
height: 32px; height: 34px;
z-index: 101; z-index: 131;
position: relative; position: relative;
box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1);
.left & { .left & {
margin-right: 1px; margin-right: 1px;
@ -174,14 +192,13 @@ .timsChatSidebarTabs {
ul { ul {
background-color: rgba(0, 0, 0, 0.2); background-color: rgba(0, 0, 0, 0.2);
border-bottom: 1px solid #FFFFFF; height: 33px;
height: 31px;
li { li {
width: 50%; width: 50%;
float: left; float: left;
text-align: center; text-align: center;
a { a {
color: rgba(0, 0, 0, 0.4); color: rgba(0, 0, 0, 0.4);
text-shadow: none; text-shadow: none;
@ -190,9 +207,10 @@ .timsChatSidebarTabs {
-moz-transition-property: border-radius, background-color, font-size; -moz-transition-duration: .2s; -moz-transition-property: border-radius, background-color, font-size; -moz-transition-duration: .2s;
-webkit-transition-property: border-radius, background-color, font-size; -webkit-transition-duration: .2s; -webkit-transition-property: border-radius, background-color, font-size; -webkit-transition-duration: .2s;
.collapsed & {
border: none !important; .collapsed & {
} border: none !important;
}
} }
&.active a { &.active a {
@ -225,6 +243,11 @@ .timsChatSidebarTabs {
} }
} }
& .badge {
position: relative;
top: -1px;
}
&.active .badge { &.active .badge {
font-size: 65% !important; font-size: 65% !important;
color: #fff; color: #fff;
@ -242,12 +265,19 @@ .timsChatSidebarTabs {
#timsChatRoomList { #timsChatRoomList {
margin-top: 5px; margin-top: 5px;
> div > div {
margin-top: 10px;
}
} }
#sidebarContainer { #sidebarContainer {
overflow-y: auto; overflow-y: auto;
height: 420px; height: 420px;
width: 100%; width: 100%;
border-top: 1px solid #B8D3ED;
z-index: 131;
position: relative;
} }
#sidebarContainer a { #sidebarContainer a {
@ -268,11 +298,21 @@ .sidebarContent {
margin-top: 5px; margin-top: 5px;
background-color: transparent !important; background-color: transparent !important;
box-shadow: none !important; box-shadow: none !important;
> a {
background-color: rgba(255, 255, 255, 0.3);
-moz-transition-property: background-color; -moz-transition-duration: .2s;
-webkit-transition-property: background-color; -webkit-transition-duration: .2s;
}
> a:hover {
background-color: rgb(255, 255, 255);
}
} }
> li.activeMenuItem { > li.activeMenuItem {
> a { > a {
background-color: #FFFFFF; background-color: #FFFFFF !important;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
} }
} }

View File

@ -72,16 +72,33 @@
<input type="text" id="timsChatInput" class="inputText long" name="text" autocomplete="off" maxlength="{@CHAT_MAX_LENGTH}" disabled="disabled" required="required" placeholder="{lang}wcf.chat.submit.default{/lang}" /> <input type="text" id="timsChatInput" class="inputText long" name="text" autocomplete="off" maxlength="{@CHAT_MAX_LENGTH}" disabled="disabled" required="required" placeholder="{lang}wcf.chat.submit.default{/lang}" />
</form> </form>
<div id="timsChatControls" class="marginTop container"> <div id="timsChatControls" class="marginTop">
{if MODULE_SMILEY} {if MODULE_SMILEY}
<div id="smileyList"> {capture assign=__defaultSmilies}
<ul class="smilies"> {include file='__messageFormSmilies' smilies=$defaultSmilies}
{foreach from=$smilies item='smiley'} {/capture}
<li>
<img src="{$smiley->getURL()}" alt="{$smiley->smileyCode}" title="{$smiley->smileyTitle}" class="jsSmiley jsTooltip" /> <div id="smilies" class="smiliesContent tabMenuContent container {if $smileyCategories|count} tabMenuContainer{/if} data-store="activeTabMenuItem" data-active="smilies-default">
</li> {if $smileyCategories|count}
{/foreach} <nav class="menu">
</ul> <ul>
<li><a href="#smilies-default">{lang}wcf.smilies.default{/lang}</a></li>
{foreach from=$smileyCategories item=smileyCategory}
<li><a href="#smilies-{@$smileyCategory->smileyCategoryID}" data-smiley-category-id="{@$smileyCategory->smileyCategoryID}">{$smileyCategory->title|language}</a></li>
{/foreach}
</ul>
</nav>
<div id="smilies-default" class="hidden">
{@$__defaultSmilies}
</div>
{foreach from=$smileyCategories item='smileyCategory'}
<div id="smilies-{$smileyCategory->smileyCategoryID}" class="hidden"></div>
{/foreach}
{else}
{@$__defaultSmilies}
{/if}
</div> </div>
{/if} {/if}
<nav id="timsChatOptions"> <nav id="timsChatOptions">
@ -151,6 +168,8 @@
}); });
{event name='shouldInit'} {event name='shouldInit'}
// Boot the chat // Boot the chat
WCF.TabMenu.init();
new WCF.Message.Smilies();
be.bastelstu.WCF.Chat.init(); be.bastelstu.WCF.Chat.init();
{event name='didInit'} {event name='didInit'}