'wcf.moderation.report.success': '{lang}wcf.moderation.report.success{/lang}'
});
- new {if $commentHandlerClass|isset}{@$commentHandlerClass}{else}WCF.Comment.Handler{/if}('{$commentContainerID}', '{@$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(32)}');
+ new {if $commentHandlerClass|isset}{@$commentHandlerClass}{else}WCF.Comment.Handler{/if}('{$commentContainerID}', '{@$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(48)}', '{@$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(32)}');
{if MODULE_LIKE && $commentList->getCommentManager()->supportsLike() && $__wcf->getSession()->getPermission('user.like.canViewLike')}
new WCF.Comment.Like({if $__wcf->getUser()->userID && $__wcf->getSession()->getPermission('user.like.canLike')}1{else}0{/if}, {@LIKE_ENABLE_DISLIKE}, false, {@LIKE_ALLOW_FOR_OWN_CONTENT});
new WCF.Comment.Response.Like({if $__wcf->getUser()->userID && $__wcf->getSession()->getPermission('user.like.canLike')}1{else}0{/if}, {@LIKE_ENABLE_DISLIKE}, false, {@LIKE_ALLOW_FOR_OWN_CONTENT});
</div>
{if $userProfile->userID}
- {include file='userInformationStatistics' user=$userProfile __userStatsClassname='dataList'}
+ <dl class="plain dataList">
+ {include file='userInformationStatistics'}
+ </dl>
{/if}
</div>
</div>
{if !$commentManager|isset}{assign var='commentManager' value=$commentList->getCommentManager()}{/if}
{foreach from=$commentList item=comment}
<li class="comment jsComment" data-comment-id="{@$comment->commentID}" data-object-type="com.woltlab.wcf.comment" data-like-liked="{if $likeData[comment][$comment->commentID]|isset}{@$likeData[comment][$comment->commentID]->liked}{/if}" data-like-likes="{if $likeData[comment][$comment->commentID]|isset}{@$likeData[comment][$comment->commentID]->likes}{else}0{/if}" data-like-dislikes="{if $likeData[comment][$comment->commentID]|isset}{@$likeData[comment][$comment->commentID]->dislikes}{else}0{/if}" data-like-users='{if $likeData[comment][$comment->commentID]|isset}{ {implode from=$likeData[comment][$comment->commentID]->getUsers() item=likeUser}"{@$likeUser->userID}": { "username": "{$likeUser->username|encodeJSON}" }{/implode} }{else}{ }{/if}' data-can-edit="{if $comment->isEditable()}true{else}false{/if}" data-can-delete="{if $comment->isDeletable()}true{else}false{/if}" data-responses="{@$comment->responses}" data-last-response-time="{@$comment->getLastResponseTime()}" data-user-id="{@$comment->userID}">
- <div class="box32">
+ <div class="box48">
{if $comment->userID}
- <a href="{link controller='User' object=$comment->getUserProfile()}{/link}" title="{$comment->getUserProfile()->username}" class="framed">
- {@$comment->getUserProfile()->getAvatar()->getImageTag(32)}
+ <a href="{link controller='User' object=$comment->getUserProfile()}{/link}" title="{$comment->getUserProfile()->username}">
+ {@$comment->getUserProfile()->getAvatar()->getImageTag(48)}
</a>
{else}
- <span class="framed">{@$comment->getUserProfile()->getAvatar()->getImageTag(32)}</span>
+ {@$comment->getUserProfile()->getAvatar()->getImageTag(48)}
{/if}
<div>
{$comment->username}
{/if}
- <small> - {@$comment->time|time}</small>
+ <small class="separatorLeft">{@$comment->time|time}</small>
</h3>
</div>
- <p class="userMessage">{@$comment->getFormattedMessage()}</p>
+ <div class="userMessage">{@$comment->getFormattedMessage()}</div>
<nav class="jsMobileNavigation buttonGroupNavigation">
- <ul class="commentOptions">
+ <ul class="buttonList iconList">
{if $commentManager->supportsReport() && $__wcf->session->getPermission('user.profile.canReportContent')}
<li class="jsReportCommentComment jsOnly" data-object-id="{@$comment->commentID}"><a href="#" title="{lang}wcf.moderation.report.reportContent{/lang}" class="jsTooltip"><span class="icon icon16 fa-exclamation-triangle"></span> <span class="invisible">{lang}wcf.moderation.report.reportContent{/lang}</span></a></li>
{/if}
</div>
{if $comment|count}
- <ul data-responses="{@$comment->responses}" class="commentResponseList">
+ <ul data-responses="{@$comment->responses}" class="containerList commentResponseList">
{include file='commentResponseList' responseList=$comment}
</ul>
{/if}
<li class="commentResponse jsCommentResponse" data-response-id="{@$response->responseID}" data-object-type="com.woltlab.wcf.comment.response" data-like-liked="{if $likeData[response][$response->responseID]|isset}{@$likeData[response][$response->responseID]->liked}{/if}" data-like-likes="{if $likeData[response][$response->responseID]|isset}{@$likeData[response][$response->responseID]->likes}{else}0{/if}" data-like-dislikes="{if $likeData[response][$response->responseID]|isset}{@$likeData[response][$response->responseID]->dislikes}{else}0{/if}" data-like-users='{if $likeData[response][$response->responseID]|isset}{ {implode from=$likeData[response][$response->responseID]->getUsers() item=likeUser}"{@$likeUser->userID}": { "username": "{$likeUser->username|encodeJSON}" }{/implode} }{else}{ }{/if}' data-can-edit="{if $response->isEditable()}true{else}false{/if}" data-can-delete="{if $response->isDeletable()}true{else}false{/if}" data-user-id="{@$response->userID}">
<div class="box32">
{if $response->userID}
- <a href="{link controller='User' object=$response->getUserProfile()}{/link}" title="{$response->getUserProfile()->username}" class="framed">
+ <a href="{link controller='User' object=$response->getUserProfile()}{/link}" title="{$response->getUserProfile()->username}">
{@$response->getUserProfile()->getAvatar()->getImageTag(32)}
</a>
{else}
- <span class="framed">{@$response->getUserProfile()->getAvatar()->getImageTag(32)}</span>
+ {@$response->getUserProfile()->getAvatar()->getImageTag(32)}
{/if}
<div class="commentContent commentResponseContent">
{$response->username}
{/if}
- <small> - {@$response->time|time}</small>
+ <small class="separatorLeft">{@$response->time|time}</small>
</h3>
</div>
- <p class="userMessage">{@$response->getFormattedMessage()}</p>
+ <div class="userMessage">{@$response->getFormattedMessage()}</div>
<nav class="jsMobileNavigation buttonGroupNavigation">
- <ul class="commentOptions">
+ <ul class="buttonList iconList">
{if $commentManager->supportsReport() && $__wcf->session->getPermission('user.profile.canReportContent')}
<li class="jsReportCommentResponse jsOnly" data-object-id="{@$response->responseID}"><a href="#" title="{lang}wcf.moderation.report.reportContent{/lang}" class="jsTooltip"><span class="icon icon16 fa-exclamation-triangle"></span> <span class="invisible">{lang}wcf.moderation.report.reportContent{/lang}</span></a></li>
{/if}
{/if}
</div>
- {include file='userInformationStatistics' user=$__wcf->user}
+ <dl class="plain dataList">
+ {include file='userInformationStatistics' user=$__wcf->user}
+ </dl>
</div>
</div>
</section>
\ No newline at end of file
{lang}wcf.user.guest{/lang}
{/if}
- <small> - {@$queue->time|time}</small>
+ <small class="separatorLeft">{@$queue->time|time}</small>
</h3>
</div>
<div>
<div class="containerHeadline">
- <h3><a href="{link controller='User' object=$event->getUserProfile()}{/link}" class="userLink" data-user-id="{@$event->getUserProfile()->userID}">{$event->getUserProfile()->username}</a><small> - {@$event->time|time}</small></h3>
- <p><strong>{@$event->getTitle()}</strong></p>
+ <h3>
+ <a href="{link controller='User' object=$event->getUserProfile()}{/link}" class="userLink" data-user-id="{@$event->getUserProfile()->userID}">{$event->getUserProfile()->username}</a>
+ <small class="separatorLeft">{@$event->time|time}</small>
+ </h3>
+ <p>{@$event->getTitle()}</p>
<small class="containerContentType">{lang}wcf.user.recentActivity.{@$event->getObjectTypeName()}{/lang}</small>
</div>
<h3><a href="{$message->getLink($query)}">{$message->getSubject()}</a></h3>
{if $message->getUserProfile() || $message->getTime() || $message->getContainerTitle()}
- <p>
+ <ul class="inlineList dotSeparated">
{if $message->getUserProfile()}
- {if $message->getUserProfile()->userID}
- <a href="{link controller='User' object=$message->getUserProfile()}{/link}" class="userLink" data-user-id="{@$message->getUserProfile()->userID}">{$message->getUserProfile()->username}</a>
- {else}
- {$message->getUserProfile()->username}
- {/if}
+ <li>
+ {if $message->getUserProfile()->userID}
+ <a href="{link controller='User' object=$message->getUserProfile()}{/link}" class="userLink" data-user-id="{@$message->getUserProfile()->userID}">{$message->getUserProfile()->username}</a>
+ {else}
+ {$message->getUserProfile()->username}
+ {/if}
+ </li>
{/if}
-
{if $message->getTime()}
- <small>{if $message->getUserProfile()}- {/if}{@$message->getTime()|time}</small>
+ <li><small>{@$message->getTime()|time}</small></li>
{/if}
-
{if $message->getContainerTitle()}
- <small>{if $message->getUserProfile() || $message->getTime()}- {/if}<a href="{$message->getContainerLink()}">{$message->getContainerTitle()}</a></small>
+ <li><small><a href="{$message->getContainerLink()}">{$message->getContainerTitle()}</a></small></li>
{/if}
- </p>
+ </ul>
{/if}
<small class="containerContentType">{lang}wcf.search.object.{@$message->getObjectTypeName()}{/lang}</small>
</div>
</div>
{foreach from=$objects->getTeams() item=team}
- <section>
- <div class="containerHeadline">
- <h3 id="group{@$team->groupID}">{$team->groupName|language} <span class="badge">{#$team->getMembers()|count}</span></h3>
- <p>{$team->groupDescription|language}</p>
- </div>
-
+ <section class="section sectionContainerList">
+ <header class="sectionHeader">
+ <h2 class="sectionTitle" id="group{@$team->groupID}">{$team->groupName|language} <span class="badge">{#$team->getMembers()|count}</span></h2>
+ <small class="sectionDescription">{$team->groupDescription|language}</small>
+ </header>
+
<ol class="containerList userList">
{foreach from=$team->getMembers() item=user}
{include file='userListItem'}
{include file='userInformationButtons'}
- {include file='userInformationStatistics'}
+ <dl class="plain inlineDataList">
+ {include file='userInformationStatistics'}
+ </dl>
</div>
</div>
</li>
{include file='userInformationButtons'}
-{include file='userInformationStatistics'}
+<dl class="plain inlineDataList small">
+ {include file='userInformationStatistics'}
+</dl>
-<a href="{link controller='User' object=$user}{/link}" class="username">{$user->username}</a>{if $user->banned} <span class="icon icon16 fa-lock jsTooltip jsUserBanned" title="{lang}wcf.user.banned{/lang}"></span>{/if}
-{if MODULE_USER_RANK}
- {if $user->getUserTitle()}
- <span class="badge userTitleBadge{if $user->getRank() && $user->getRank()->cssClassName} {@$user->getRank()->cssClassName}{/if}">{$user->getUserTitle()}</span>
- {/if}
- {if $user->getRank() && $user->getRank()->rankImage}
- <span class="userRankImage">{@$user->getRank()->getImage()}</span>
- {/if}
-{/if}
-<ul class="dataList userFacts">
+<div class="containerHeadline">
+ <h3><a href="{link controller='User' object=$user}{/link}" class="username">{$user->username}</a>{if $user->banned} <span class="icon icon16 fa-lock jsTooltip jsUserBanned" title="{lang}wcf.user.banned{/lang}"></span>{/if}
+ {if MODULE_USER_RANK}
+ {if $user->getUserTitle()}
+ <span class="badge userTitleBadge{if $user->getRank() && $user->getRank()->cssClassName} {@$user->getRank()->cssClassName}{/if}">{$user->getUserTitle()}</span>
+ {/if}
+ {if $user->getRank() && $user->getRank()->rankImage}
+ <span class="userRankImage">{@$user->getRank()->getImage()}</span>
+ {/if}
+ {/if}
+ </h3>
+</div>
+<ul class="inlineList commaSeparated">
{if $user->isAccessible('canViewProfile')}
{if $user->isVisibleOption('gender') && $user->gender}<li>{lang}wcf.user.gender.{if $user->gender == 1}male{else}female{/if}{/lang}</li>{/if}
{if $user->isVisibleOption('birthday') && $user->getAge()}<li>{@$user->getAge()}</li>{/if}
-<dl class="plain {if !$__userStatsClassname|empty}{@$__userStatsClassname}{else}inlineDataList{/if} userStats">
- {event name='statistics'}
-
- {if MODULE_LIKE && $user->likesReceived}
- <dt><a href="{link controller='User' object=$user}{/link}#likes" class="jsTooltip" title="{lang}wcf.like.showLikesReceived{/lang}">{lang}wcf.like.likesReceived{/lang}</a></dt>
- <dd>{#$user->likesReceived}</dd>
- {/if}
-
- {if $user->activityPoints}
- <dt><a href="#" class="activityPointsDisplay jsTooltip" title="{lang}wcf.user.activityPoint.showActivityPoints{/lang}" data-user-id="{@$user->userID}">{lang}wcf.user.activityPoint{/lang}</a></dt>
- <dd>{#$user->activityPoints}</dd>
- {/if}
-</dl>
\ No newline at end of file
+{event name='statistics'}
+
+{if MODULE_LIKE && $user->likesReceived}
+ <dt><a href="{link controller='User' object=$user}{/link}#likes" class="jsTooltip" title="{lang}wcf.like.showLikesReceived{/lang}">{lang}wcf.like.likesReceived{/lang}</a></dt>
+ <dd>{#$user->likesReceived}</dd>
+{/if}
+
+{if $user->activityPoints}
+ <dt><a href="#" class="activityPointsDisplay jsTooltip" title="{lang}wcf.user.activityPoint.showActivityPoints{/lang}" data-user-id="{@$user->userID}">{lang}wcf.user.activityPoint{/lang}</a></dt>
+ <dd>{#$user->activityPoints}</dd>
+{/if}
<div>
<div class="containerHeadline">
- <h3><a href="{link controller='User' object=$like->getUserProfile()}{/link}" class="userLink" data-user-id="{@$like->getUserProfile()->userID}">{$like->getUserProfile()->username}</a><small> - {@$like->time|time}</small></h3>
- <p><strong>{@$like->getTitle()}</strong></p>
+ <h3>
+ <a href="{link controller='User' object=$like->getUserProfile()}{/link}" class="userLink" data-user-id="{@$like->getUserProfile()->userID}">{$like->getUserProfile()->username}</a>
+ <small class="separatorLeft">{@$like->time|time}</small>
+ </h3>
+ <p>{@$like->getTitle()}</p>
<small class="containerContentType">{lang}wcf.like.objectType.{@$like->getObjectTypeName()}{/lang}</small>
</div>
{if !$user->isProtected()}
{if $followingCount}
- <section>
- <h1>{lang}wcf.user.profile.following{/lang} <span class="badge">{#$followingCount}</span></h1>
+ <section class="box">
+ <h2 class="boxTitle">{lang}wcf.user.profile.following{/lang} <span class="badge">{#$followingCount}</span></h2>
- <div>
- <ul class="framedIconList">
+ <div class="boxContent">
+ <ul class="userAvatarList">
{foreach from=$following item=followingUser}
<li><a href="{link controller='User' object=$followingUser}{/link}" title="{$followingUser->username}" class="framed jsTooltip">{@$followingUser->getAvatar()->getImageTag(48)}</a></li>
{/foreach}
{/if}
{if $followerCount}
- <section>
- <h1>{lang}wcf.user.profile.followers{/lang} <span class="badge">{#$followerCount}</span></h1>
+ <section class="box">
+ <h2 class="boxTitle">{lang}wcf.user.profile.followers{/lang} <span class="badge">{#$followerCount}</span></h2>
- <div>
- <ul class="framedIconList">
+ <div class="boxContent">
+ <ul class="userAvatarList">
{foreach from=$followers item=follower}
<li><a href="{link controller='User' object=$follower}{/link}" title="{$follower->username}" class="framed jsTooltip">{@$follower->getAvatar()->getImageTag(48)}</a></li>
{/foreach}
{/if}
{if $visitorCount}
- <section>
- <h1>{lang}wcf.user.profile.visitors{/lang} <span class="badge">{#$visitorCount}</span></h1>
+ <section class="box">
+ <h2 class="boxTitle">{lang}wcf.user.profile.visitors{/lang} <span class="badge">{#$visitorCount}</span></h2>
- <div>
- <ul class="framedIconList">
+ <div class="boxContent">
+ <ul class="userAvatarList">
{foreach from=$visitors item=visitor}
<li><a href="{link controller='User' object=$visitor}{/link}" title="{$visitor->username} ({@$visitor->time|plainTime})" class="framed jsTooltip">{@$visitor->getAvatar()->getImageTag(48)}</a></li>
{/foreach}
{foreach from=$objects item=user}
{capture assign=locationData}
<p>
- {if $user->getLocation()}{@$user->getLocation()}{else}{lang}wcf.user.usersOnline.location.unknown{/lang}{/if} <small>- {@$user->lastActivityTime|time}</small>
+ {if $user->getLocation()}{@$user->getLocation()}{else}{lang}wcf.user.usersOnline.location.unknown{/lang}{/if} <small class="separatorLeft">{@$user->lastActivityTime|time}</small>
</p>
{/capture}
{capture assign=sessionData}
{if $__wcf->session->getPermission('admin.user.canViewIpAddress')}
- <dl class="plain inlineDataList">
+ <dl class="plain inlineDataList small">
<dt>{lang}wcf.user.usersOnline.ipAddress{/lang}</dt>
<dd title="{$user->getFormattedIPAddress()}">{$user->getFormattedIPAddress()|truncate:30}</dd>
<a href="{link controller='User' object=$user}{/link}" title="{$user->username}" class="framed">{@$user->getAvatar()->getImageTag(48)}</a>
<div class="details userInformation">
- <a href="{link controller='User' object=$user}{/link}" class="username">{@$user->getFormattedUsername()}</a>
- {if MODULE_USER_RANK}
- {if $user->getUserTitle()}
- <span class="badge userTitleBadge{if $user->getRank() && $user->getRank()->cssClassName} {@$user->getRank()->cssClassName}{/if}">{$user->getUserTitle()}</span>
- {/if}
- {if $user->getRank() && $user->getRank()->rankImage}
- <span class="userRankImage">{@$user->getRank()->getImage()}</span>
- {/if}
- {/if}
-
- {@$locationData}
+ <div class="containerHeadline">
+ <h3><a href="{link controller='User' object=$user}{/link}" class="username">{@$user->getFormattedUsername()}</a>
+ {if MODULE_USER_RANK}
+ {if $user->getUserTitle()}
+ <span class="badge userTitleBadge{if $user->getRank() && $user->getRank()->cssClassName} {@$user->getRank()->cssClassName}{/if}">{$user->getUserTitle()}</span>
+ {/if}
+ {if $user->getRank() && $user->getRank()->rankImage}
+ <span class="userRankImage">{@$user->getRank()->getImage()}</span>
+ {/if}
+ {/if}
+ </h3>
+ {@$locationData}
+ </div>
{@$sessionData}
{capture append=robotsOnlineList}
<li>
<div class="box48">
- <p class="framed"><img src="{$__wcf->getPath()}images/avatars/avatar-spider-default.svg" alt="" class="icon48" /></p>
+ <div class="framed"><img src="{$__wcf->getPath()}images/avatars/avatar-spider-default.svg" alt="" class="icon48" /></div>
<div class="details userInformation">
<div class="containerHeadline">
{capture append=guestsOnlineList}
<li>
<div class="box48">
- <p class="framed"><img src="{$__wcf->getPath()}images/avatars/avatar-default.svg" alt="" class="icon48" /></p>
+ <div class="framed"><img src="{$__wcf->getPath()}images/avatars/avatar-default.svg" alt="" class="icon48" /></div>
<div class="details userInformation">
<div class="containerHeadline">
<ul class="userPanelItems">
{if $__wcf->user->userID}
<!-- user menu -->
- <li id="userMenu">
- {* TODO *}
- <a class="framed" href="{link controller='User' object=$__wcf->user}{/link}">{*@$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(32)*} <span>{lang}wcf.user.userNote{/lang}</span></a>
+ <li id="userMenu" class="dropdown">
+ <a class="dropdownToggle framed" data-toggle="userMenu">{if PACKAGE_ID}{@$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(32)} {/if}{lang}wcf.user.userNote{/lang}</a>
+ <ul class="dropdownMenu">
+ {if PACKAGE_ID > 1}
+ <li><a href="{link controller='User' object=$__wcf->user forceFrontend=true}{/link}" class="box32">
+ <div class="framed">{@$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(32)}</div>
+
+ <div class="containerHeadline">
+ <h3>{$__wcf->user->username}</h3>
+ <small>{lang}wcf.user.myProfile{/lang}</small>
+ </div>
+ </a></li>
+ {if $__wcf->getUserProfileHandler()->canEditOwnProfile()}<li><a href="{link controller='User' object=$__wcf->user forceFrontend=true}editOnInit=true#about{/link}">{lang}wcf.user.editProfile{/lang}</a></li>{/if}
+ <li><a href="{link controller='Settings' forceFrontend=true}{/link}">{lang}wcf.user.menu.settings{/lang}</a></li>
+
+ {event name='userMenuItems'}
+
+ <li class="dropdownDivider"></li>
+ {/if}
+ <li><a href="{link controller='Logout'}t={@SECURITY_TOKEN}{/link}" onclick="WCF.System.Confirmation.show('{lang}wcf.user.logout.sure{/lang}', $.proxy(function (action) { if (action == 'confirm') window.location.href = $(this).attr('href'); }, this)); return false;">{lang}wcf.user.logout{/lang}</a></li>
+ </ul>
</li>
- <li><a href="{link controller='Settings'}{/link}" class="noJsOnly" style="display: none"><span class="icon icon16 fa-cogs"></span> <span>{lang}wcf.user.menu.settings{/lang}</span></a></li>
-
{if PACKAGE_ID}
<li id="jumpToPage" class="dropdown">
- <a href="{link forceFrontend=true}{/link}" class="dropdownToggle" data-toggle="jumpToPage"><span class="icon icon16 fa-home"></span> <span>{lang}wcf.global.jumpToPage{/lang}</span></a>
+ <a href="{link forceFrontend=true}{/link}" class="dropdownToggle" data-toggle="jumpToPage"><span class="icon icon32 fa-home"></span> <span>{lang}wcf.global.jumpToPage{/lang}</span></a>
<ul class="dropdownMenu">
{foreach from=$__wcf->getPageMenu()->getMenuItems('header') item=_menuItem}
<li><a href="{$_menuItem->getProcessor()->getLink()}">{lang}{$_menuItem->menuItem}{/lang}</a></li>
{if $__wcf->session->getPermission('admin.system.package.canUpdatePackage') && $__wcf->getAvailableUpdates()}
<li>
- <a href="{link controller='PackageUpdate'}{/link}"><span class="icon icon16 fa-refresh"></span> <span>{lang}wcf.acp.package.updates{/lang}</span> <span class="badge badgeInverse">{#$__wcf->getAvailableUpdates()}</span></a>
+ <a href="{link controller='PackageUpdate'}{/link}"><span class="icon icon32 fa-refresh"></span> <span>{lang}wcf.acp.package.updates{/lang}</span> <span class="badge badgeInverse">{#$__wcf->getAvailableUpdates()}</span></a>
</li>
{/if}
{/if}
<li id="woltlab" class="dropdown">
- <a class="dropdownToggle" data-toggle="woltlab"><span class="icon icon16 fa-info"></span> <span>WoltLab®</span></a>
+ <a class="dropdownToggle" data-toggle="woltlab"><span class="icon icon32 fa-info"></span> <span>WoltLab®</span></a>
<ul class="dropdownMenu">
<li><a class="externalURL" href="{@$__wcf->getPath()}acp/dereferrer.php?url={"https://www.woltlab.com"|rawurlencode}"{if EXTERNAL_LINK_TARGET_BLANK} target="_blank"{/if}>{lang}wcf.acp.index.woltlab.website{/lang}</a></li>
{/if}
{event name='menuItems'}
-
- {if $__wcf->user->userID}
- <li><a href="{link controller='Logout'}t={@SECURITY_TOKEN}{/link}" class="noJsOnly" style="display: none"><span class="icon icon16 fa-sign-out"></span> <span>{lang}wcf.user.logout{/lang}</span></a></li>
- {/if}
</ul>
</nav>
\ No newline at end of file
_responses: { },
/**
- * user's avatar
+ * user's avatar (48px version)
* @var string
*/
_userAvatar: '',
+ /**
+ * user's avatar (32px version)
+ * @var string
+ */
+ _userAvatarSmall: '',
+
/**
* data of the comment the active guest user is about to create
* @var object
*
* @param string containerID
* @param string userAvatar
+ * @param string userAvatarSmall
*/
- init: function(containerID, userAvatar) {
+ init: function(containerID, userAvatar, userAvatarSmall) {
this._commentAdd = null;
this._commentButtonList = { };
this._comments = { };
this._loadNextResponses = { };
this._responses = { };
this._userAvatar = userAvatar;
+ this._userAvatarSmall = userAvatarSmall;
this._container = $('#' + $.wcfEscapeID(this._containerID));
if (!this._container.length) {
_handleLoadNextComments: function() {
if (this._displayedComments < this._container.data('comments')) {
if (this._loadNextComments === null) {
- this._loadNextComments = $('<li class="commentLoadNext"><button class="small">' + WCF.Language.get('wcf.comment.more') + '</button></li>').appendTo(this._container);
+ this._loadNextComments = $('<li class="commentLoadNext showMore"><button class="small">' + WCF.Language.get('wcf.comment.more') + '</button></li>').appendTo(this._container);
this._loadNextComments.children('button').click($.proxy(this._loadComments, this));
}
if (!$insertAfter.length) $insertAfter = $comment.find('.commentContent');
var $container = $('<div class="commentOptionContainer" />').hide().insertAfter($insertAfter);
- self._commentButtonList[$commentID] = $('<ul />').appendTo($container);
+ self._commentButtonList[$commentID] = $('<ul class="inlineList dotSeparated" />').appendTo($container);
self._handleLoadNextResponses($commentID);
self._initComment($commentID, $comment);
*/
_initAddComment: function() {
// create UI
- this._commentAdd = $('<li class="box32 jsCommentAdd"><span class="framed">' + this._userAvatar + '</span><div /></li>').prependTo(this._container);
+ this._commentAdd = $('<li class="box48 jsCommentAdd">' + this._userAvatar + '<div /></li>').prependTo(this._container);
var $inputContainer = this._commentAdd.children('div');
var $input = $('<textarea placeholder="' + WCF.Language.get('wcf.comment.add') + '" maxlength="65535" class="long" />').appendTo($inputContainer).flexible();
$('<button class="small">' + WCF.Language.get('wcf.global.button.submit') + '</button>').click($.proxy(this._save, this)).appendTo($inputContainer);
_initAddResponse: function(commentID, comment) {
var $placeholder = $('<li class="jsCommentShowAddResponse"><a>' + WCF.Language.get('wcf.comment.button.response.add') + '</a></li>').data('commentID', commentID).click($.proxy(this._showAddResponse, this)).appendTo(this._commentButtonList[commentID]);
- var $listItem = $('<div class="box32 commentResponseAdd jsCommentResponseAdd"><span class="framed">' + this._userAvatar + '</span><div /></div>').hide();
+ var $listItem = $('<div class="box32 commentResponseAdd jsCommentResponseAdd">' + this._userAvatarSmall + '<div /></div>').hide();
$listItem.appendTo(this._commentButtonList[commentID].parent().show());
var $inputContainer = $listItem.children('div');
}
&.inlineDataList {
- @extend .wcfFontSmall;
-
> dt {
display: inline-block;
/* adds a comma after each list item */
&.commaSeparated {
- @extend .wcfFontSmall;
-
> li {
&:not(:last-child):after {
content: ",";
}
}
}
+
+ /* adds a dot after each list item */
+ &.dotSeparated {
+ > li {
+ &:not(:last-child):after {
+ content: "\00b7";
+ margin-left: 5px;
+ }
+ }
+ }
}
/* restores the native styling for lists */
list-style-type: decimal;
}
-
-/*@todo*/
-.framedIconList {
- display: flex;
- flex-wrap: wrap;
- padding-top: 10px;
-
- > li {
- flex: 0 0 25%;
- text-align: center;
-
- > a {
- display: block;
- }
- }
-
- & + .more {
- float: right;
- margin-top: 10px;
- }
-}
-
-/*@todo*/
+/* tag cloud list */
.tagList {
@extend .inlineList;
align-items: baseline;
}
-/*@todo*/
+/* list of smileys */
.smileyList {
align-items: center;
}
.containerList > li {
- padding: 20px 0;
+ padding: 20px;
+ position: relative;
&:not(:last-child) {
border-bottom: 1px solid $wcfContentBorderInner;
border-bottom: 1px solid $wcfContentBorder;
}
+ &:hover {
+ background-color: $wcfTabularBoxBackgroundActive;
+ }
+
&.showMore {
text-align: center;
+
+ &:hover {
+ background-color: transparent;
+ }
}
.containerHeadline {
margin-top: 10px;
}
}
+
+ .buttonGroupNavigation {
+ opacity: 0;
+ position: absolute;
+ right: 20px;
+ top: 18px;
+
+ > ul {
+ background-color: $wcfContentBackground;
+ border: 1px solid rgba(0, 0, 0, .15);
+ border-radius: 6px;
+
+ > li {
+ margin-right: 0;
+
+ &:not(:last-child) {
+ border-right: 1px solid rgba(0, 0, 0, .15);
+ }
+
+ > a {
+ padding: 6px;
+
+ > .icon {
+ color: rgba(0, 0, 0, .5);
+ }
+ }
+
+ &:hover {
+ > a {
+ > .icon {
+ color: $wcfContentText;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ &:hover .buttonGroupNavigation {
+ opacity: 1;
+ }
}
.containerBoxList {
}
}
+/*
.userList .userInformation {
position: relative;
- &:hover > .buttonGroupNavigation {
- opacity: 1;
- }
- > .buttonGroupNavigation {
- opacity: 0;
- position: absolute;
- right: 0;
- top: 0;
- transition: opacity .2s linear;
- }
-}
\ No newline at end of file
+
+ >
+}
+*/
\ No newline at end of file
.section {
margin-top: 30px;
- > .sectionTitle {
- border-bottom: 1px solid $wcfContentBorderInner;
+ .sectionTitle {
color: $wcfContentHeadlineText; // todo: rename variable
- margin-bottom: 20px;
- padding-bottom: 10px;
@extend .wcfFontHeadline;
}
}
}
+
+ .sectionDescription {
+ color: $wcfContentDimmedText;
+ }
+
+ > .sectionHeader,
+ > .sectionTitle {
+ margin-bottom: 20px;
+ }
+
+ &:not(.sectionContainerList) {
+ > .sectionHeader,
+ > .sectionTitle {
+ border-bottom: 1px solid $wcfContentBorderInner;
+ padding-bottom: 10px;
+ }
+ }
}
/* fieldset styling (old sections / deprecated) */
&+ * {
clear: left;
}
+
+ + small {
+ color: $wcfContentDimmedText;
+ position: relative;
+ top: -12px;
+ }
}
}
}
/* boxes with an image */
@mixin box($imageSize, $margin: 0) {
- display: flex !important;
+ display: flex;
> :first-child:not(:last-child) {
- flex: 0 auto !important;
+ flex: 0 auto;
margin-right: $margin;
}
> :last-child {
- flex: 1 !important;
+ flex: 1;
}
}
.box16 { @include box(16px, 5px); }
.box24 { @include box(24px, 5px); }
.box32 { @include box(32px, 8px); }
-.box48 { @include box(48px, 8px); }
-.box64 { @include box(64px, 8px); }
+.box48 { @include box(48px, 10px); }
+.box64 { @include box(64px, 10px); }
.box96 { @include box(96px, 12px); }
.box128 { @include box(128px, 12px); }
.box256 { @include box(256px, 21px); }
line-height: $wcfFontLineHeight;
}
-small {
+small, .small {
@extend .wcfFontSmall;
}
list-style-type: decimal;
}
}
+
+.separatorLeft::before {
+ content: "\00b7";
+ margin-right: 5px;
+}
+
+.separatorRight::after {
+ content: "\00b7";
+ margin-left: 5px;
+}
\ No newline at end of file
.formSubmit:not(:first-child) {
margin-top: 20px;
}
+
+ .boxContainer {
+ > div,
+ > fieldset,
+ > section {
+ overflow: hidden;
+
+ .button.more {
+ float: right;
+ margin-top: 10px;
+ }
+ }
+ }
+
+ .boxTitle {
+ .badge {
+ float: right;
+ margin-top: 5px;
+ }
+ }
}
/*.sidebar {
-.commentContent {
- position: relative;
+.commentList {
+ > li {
+ > .box48 > div > .commentContent > .buttonGroupNavigation {
+ right: 40px;
+ }
+
+
+ &:hover {
+ background-color: transparent;
+
+ .buttonGroupNavigation {
+ opacity: 0;
+ }
+ }
+ }
- &:hover > .buttonGroupNavigation {
- opacity: 1;
+ .commentContent {
+ &:hover {
+ .buttonGroupNavigation {
+ opacity: 1;
+ }
+ }
+
+ + .commentOptionContainer {
+ .commentResponseAdd {
+ border-top: 1px solid $wcfContentBorderInner;
+ padding-top: 20px;
+ margin-top: 20px;
+ }
+ }
}
- > .buttonGroupNavigation {
- opacity: 0;
- position: absolute;
- top: 5px;
- transition: opacity .2s linear;
- right: 10px;
+ .commentResponseList {
+ &:not(:empty) {
+ margin-top: 20px;
+ }
+
+ > li {
+ &:first-child,
+ &:last-child {
+ border-color: $wcfContentBorderInner;
+ }
+ }
+ }
+
+ .commentOptionContainer {
+ margin-top: 10px;
}
+ .commentResponseAdd {
+ padding: 10px 20px 0 20px;
+ }
+}
+
+/*
+.commentContent {
> .containerHeadline {
margin-bottom: 5px;
}
// TODO: border-top: 1px solid $wcfContentBorder;
padding-top: 10px;
}
+*/
\ No newline at end of file
white-space: nowrap;
}
}
-
+ /*todo
.messageGroupInfo {
@extend .inlineList;
@extend .wcfFontSmall;
margin-left: 5px;
}
}
- }
+ }*/
// hover
.tabularListRow:hover,
.tabMenuContainer:not(:first-child) {
- margin-top: 30px;
+ //margin-top: 30px;
}
/* main tabs */
.tabMenu {
- margin-bottom: 20px;
+ //margin-bottom: 20px;
position: relative;
> ul {
display: none;
}
+.tabMenuContent {
+ // remove upper border if containerList is the first child
+ > .containerList:first-child > li:first-child {
+ border-top-width: 0;
+ }
+
+}
+
/* sub tabs */
.menu {
margin: -10px 0 40px 0;
.userProfile #profileContent {
> .tabMenu {
- margin-bottom: 30px;
+ //margin-bottom: 30px;
> ul > li {
&:not(:last-child) {
@extend .wcfFontHeadline;
}
}
-
- > span {
- border-width: 2px;
- bottom: -5px;
- }
}
}
}
}
}
-
+/*
.username {
@extend .wcfFontHeadline;
+}*/
+
+.userAvatarList {
+ display: flex;
+ flex-wrap: wrap;
+ margin-bottom: -10px;
+
+ > li {
+ flex: 0 0 25%;
+ margin-bottom: 10px;
+ text-align: center;
+
+ > a {
+ display: block;
+ }
+ }
+}
+
+.userList {
+ .box48 {
+ align-items: center;
+ }
+
+ li .containerHeadline + *:not(.buttonGroupNavigation) {
+ margin-top: 0;
+ }
}