<a href="{link controller='User' object=$user}{/link}" title="{$user->username}">{@$user->getAvatar()->getImageTag(128)}</a>
<div class="userInformation">
- {include file='userInformation' disableUserInformationButtons=true}
+ {include file='userInformation'}
{if $user->canViewOnlineStatus() && $user->getLastActivityTime()}
<dl class="plain inlineDataList">
</dl>
{/hascontent}
</div>
+
+ {if $__wcf->getUser()->userID && $__wcf->getUser()->userID != $user->userID}
+ <script data-relocate="true">
+ //<![CDATA[
+ $(function() {
+ WCF.Language.addObject({
+ 'wcf.user.button.follow': '{lang}wcf.user.button.follow{/lang}',
+ 'wcf.user.button.ignore': '{lang}wcf.user.button.ignore{/lang}',
+ 'wcf.user.button.unfollow': '{lang}wcf.user.button.unfollow{/lang}',
+ 'wcf.user.button.unignore': '{lang}wcf.user.button.unignore{/lang}'
+ });
+
+ new WCF.User.Action.Follow($('.userInformation'));
+
+ {if !$user->getPermission('user.profile.cannotBeIgnored')}
+ new WCF.User.Action.Ignore($('.userInformation'));
+ {/if}
+ });
+ //]]>
+ </script>
+ {/if}
</div>
{/if}
var $notification = new WCF.System.Notification();
$notification.show();
-
- // force rebuilding of popover cache
- var self = this;
- WCF.System.ObjectStore.invoke('WCF.User.ProfilePreview', function(profilePreview) {
- profilePreview.purge(self._userID);
- });
}
});
*/
createFragmentFromHtml: function(html) {
var tmp = elCreate('div');
- tmp.innerHTML = html;
+ this.setInnerHtml(tmp, html);
var fragment = document.createDocumentFragment();
while (tmp.childNodes.length) {
}
}
+.userProfilePreview {
+ position: relative;
+
+ .userInformation {
+ padding-bottom: 16px;
+ }
+
+ .buttonGroupNavigation {
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ }
+}
+
/* using `dl` + `.inlineDataList` to prevent styles applied to the
data list provided by the `userInformation` template */
.userProfilePreview dl.inlineDataList {