user cog menu in user lists too
This commit is contained in:
parent
c3aed808ba
commit
049049d8bf
|
@ -1685,7 +1685,7 @@ body.rtl #history-container.menu-container a .chev-right {
|
|||
position: absolute;
|
||||
text-shadow: none;
|
||||
}
|
||||
.profile-card:not(.logged-in) .user-menu-cog {
|
||||
.user-menu-cog:not(.logged-in) {
|
||||
display:none !important;
|
||||
}
|
||||
#stream-menu-cog::before,
|
||||
|
@ -2042,8 +2042,8 @@ body.has-right-to-sandbox .profile-card .profile-header-inner.sandboxed span.san
|
|||
body.rtl .queet.rtl .expanded-content {
|
||||
direction:rtl;
|
||||
}
|
||||
.stream-item.expanded > div:first-child,
|
||||
.stream-item.expanded > div:first-child > .queet {
|
||||
.stream-item.expanded > div.first-visible,
|
||||
.stream-item.expanded > div.first-visible > .queet {
|
||||
border-top-left-radius:6px;
|
||||
border-top-right-radius:6px;
|
||||
}
|
||||
|
@ -2118,16 +2118,9 @@ body.rtl .queet.rtl .expanded-content {
|
|||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* only show activity notices if they are conversation starters
|
||||
we never need to see these, but sometimes someone replies to
|
||||
an activity notice, and then it can be good to know what the
|
||||
user is replying to... */
|
||||
#feed-body > .stream-item.activity {
|
||||
display:none;
|
||||
}
|
||||
.stream-item > .stream-item.activity:first-child {
|
||||
display:block;
|
||||
}
|
||||
|
||||
.quoted-notices,
|
||||
.oembed-data {
|
||||
|
|
|
@ -523,6 +523,7 @@ function APISandboxCreateOrDestroy(createOrDestroy,userId,actionOnSuccess) {
|
|||
data = iterateRecursiveReplaceHtmlSpecialChars(data);
|
||||
searchForUserDataToCache(data);
|
||||
updateUserDataInStream();
|
||||
rememberStreamStateInLocalStorage();
|
||||
actionOnSuccess(data);
|
||||
}
|
||||
});
|
||||
|
@ -552,6 +553,7 @@ function APISilenceCreateOrDestroy(createOrDestroy,userId,actionOnSuccess) {
|
|||
data = iterateRecursiveReplaceHtmlSpecialChars(data);
|
||||
searchForUserDataToCache(data);
|
||||
updateUserDataInStream();
|
||||
rememberStreamStateInLocalStorage();
|
||||
actionOnSuccess(data);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -438,7 +438,7 @@ function buildProfileCard(data) {
|
|||
<li class="groups-num"><a href="' + data.statusnet_profile_url + '/groups" class="groups-stats">' + window.sL.groups + '<strong>' + data.groups_count + '</strong></a></li>\
|
||||
</ul>\
|
||||
' + followButton + '\
|
||||
<div class="user-menu-cog" data-tooltip="' + window.sL.userOptions + '"></div>\
|
||||
<div class="user-menu-cog' + is_silenced + is_sandboxed + logged_in + '" data-tooltip="' + window.sL.userOptions + '" data-user-id="' + data.id + '" data-screen-name="' + data.screen_name + '"></div>\
|
||||
<div class="clearfix"></div>\
|
||||
</div>\
|
||||
</div>\
|
||||
|
@ -471,6 +471,18 @@ function buildExternalProfileCard(data) {
|
|||
var followButton = buildFollowBlockbutton(data.local);
|
||||
}
|
||||
|
||||
// me?
|
||||
var is_me = '';
|
||||
if(window.loggedIn !== false && window.loggedIn.id == data.local.id) {
|
||||
var is_me = ' is-me';
|
||||
}
|
||||
|
||||
// logged in?
|
||||
var logged_in = '';
|
||||
if(window.loggedIn !== false) {
|
||||
var logged_in = ' logged-in';
|
||||
}
|
||||
|
||||
// silenced?
|
||||
var is_silenced = '';
|
||||
if(data.local.is_silenced === true) {
|
||||
|
@ -483,8 +495,9 @@ function buildExternalProfileCard(data) {
|
|||
is_sandboxed = ' sandboxed';
|
||||
}
|
||||
|
||||
// local id
|
||||
// local id/screen_name
|
||||
var localUserId = data.local.id;
|
||||
var localUserScreenName = data.local.screen_name;
|
||||
|
||||
// empty strings and zeros instead of null
|
||||
data = cleanUpUserObject(data.external);
|
||||
|
@ -519,8 +532,8 @@ function buildExternalProfileCard(data) {
|
|||
data.screenNameWithServer = '@' + data.screen_name + '@' + serverUrl;
|
||||
|
||||
data.profileCardHtml = '\
|
||||
<div class="profile-card">\
|
||||
<div class="profile-header-inner' + is_silenced + is_sandboxed + '" style="background-image:url(\'' + cover_photo + '\')" data-user-id="' + localUserId + '">\
|
||||
<div class="profile-card' + is_me + logged_in + '">\
|
||||
<div class="profile-header-inner' + is_silenced + is_sandboxed + '" style="background-image:url(\'' + cover_photo + '\')" data-user-id="' + localUserId + '" data-screen-name="' + localUserScreenName + '">\
|
||||
<div class="profile-header-inner-overlay"></div>\
|
||||
<a class="profile-picture"><img src="' + data.profile_image_url_profile_size + '" /></a>\
|
||||
<div class="profile-card-inner">\
|
||||
|
@ -551,7 +564,7 @@ function buildExternalProfileCard(data) {
|
|||
<li class="follower-num"><a class="follower-stats" target="_blank" href="' + data.statusnet_profile_url + '/subscribers">' + window.sL.followers + '<strong>' + data.followers_count + '</strong></a></li>\
|
||||
</ul>\
|
||||
' + followButton + '\
|
||||
<div class="user-menu-cog" data-tooltip="' + window.sL.userOptions + '"></div>\
|
||||
<div class="user-menu-cog' + is_silenced + is_sandboxed + logged_in + '" data-tooltip="' + window.sL.userOptions + '" data-user-id="' + localUserId + '" data-screen-name="' + localUserScreenName + '"></div>\
|
||||
<div class="clearfix"></div>\
|
||||
</div>\
|
||||
</div>\
|
||||
|
@ -1599,7 +1612,7 @@ function showConversation(q, qid, data, offsetScroll) {
|
|||
|
||||
/* ·
|
||||
·
|
||||
· Add last visible class, since that's not possible to select in pure css
|
||||
· Add last&first visible class, since that's not possible to select in pure css
|
||||
·
|
||||
· · · · · · · · · · · · · */
|
||||
function findAndMarkLastVisibleInConversation(streamItem) {
|
||||
|
@ -1607,6 +1620,8 @@ function findAndMarkLastVisibleInConversation(streamItem) {
|
|||
streamItem.children().removeClass('first-visible-after-parent');
|
||||
streamItem.children().not('.hidden-conversation').not('.always-hidden').last().addClass('last-visible');
|
||||
streamItem.children('.queet').nextAll().not('.hidden-conversation').not('.always-hidden').first().addClass('first-visible-after-parent');
|
||||
streamItem.children().removeClass('first-visible');
|
||||
streamItem.children().not('.hidden-conversation').not('.always-hidden').first().addClass('first-visible');
|
||||
}
|
||||
|
||||
|
||||
|
@ -1995,6 +2010,11 @@ function buildUserStreamItemHtml(obj) {
|
|||
if(obj.is_sandboxed === true) {
|
||||
sandboxedClass = ' sandboxed';
|
||||
}
|
||||
// logged in?
|
||||
var loggedInClass = '';
|
||||
if(window.loggedIn !== false) {
|
||||
loggedInClass = ' logged-in';
|
||||
}
|
||||
|
||||
var followButton = '';
|
||||
if(typeof window.loggedIn.screen_name != 'undefined' // if logged in
|
||||
|
@ -2007,6 +2027,7 @@ function buildUserStreamItemHtml(obj) {
|
|||
return '<div id="stream-item-' + obj.id + '" class="stream-item user' + silencedClass + sandboxedClass + '" data-user-id="' + obj.id + '">\
|
||||
<div class="queet ' + rtlOrNot + '">\
|
||||
' + followButton + '\
|
||||
<div class="user-menu-cog' + silencedClass + sandboxedClass + loggedInClass + '" data-tooltip="' + window.sL.userOptions + '" data-user-id="' + obj.id + '" data-screen-name="' + obj.screen_name + '"></div>\
|
||||
<div class="queet-content">\
|
||||
<div class="stream-item-header">\
|
||||
<a class="account-group" href="' + obj.statusnet_profile_url + '" data-user-id="' + obj.id + '">\
|
||||
|
|
|
@ -404,9 +404,11 @@ function markUserAsUnblockedInDOM(userId, following) {
|
|||
}
|
||||
|
||||
// hide the user from lists of blocked users
|
||||
$.each($('.stream-item.user[data-user-id="' + userId + '"]'),function(){
|
||||
slideUpAndRemoveStreamItem($(this));
|
||||
});
|
||||
if(window.currentStreamObject.name == 'user blocks' && window.currentStreamObject.nickname == window.loggedIn.screen_name) {
|
||||
$.each($('.stream-item.user[data-user-id="' + userId + '"]'),function(){
|
||||
slideUpAndRemoveStreamItem($(this));
|
||||
});
|
||||
}
|
||||
|
||||
// unhide notices from the blocked user
|
||||
$.each($('.stream-item[data-quitter-id-in-stream][data-user-id="' + userId + '"]'),function(){
|
||||
|
@ -461,25 +463,11 @@ function markAllNoticesFromBlockedUsersAsBlockedInJQueryObject(obj) {
|
|||
function sandboxCreateOrDestroy(arg, callback) {
|
||||
|
||||
$('body').click(); // a click somewhere hides any open menus
|
||||
var userId = arg.userId;
|
||||
var createOrDestroy = arg.createOrDestroy;
|
||||
|
||||
display_spinner();
|
||||
APISandboxCreateOrDestroy(createOrDestroy, userId, function(data) {
|
||||
APISandboxCreateOrDestroy(arg.createOrDestroy, arg.userId, function(data) {
|
||||
remove_spinner();
|
||||
if(data) {
|
||||
// success, mark the user's notices and profile cards as sandboxed or unsandboxed
|
||||
if(data.is_sandboxed === true) {
|
||||
$('.stream-item[data-user-id="' + userId + '"]').addClass('sandboxed');
|
||||
$('.profile-card .profile-header-inner[data-user-id="' + userId + '"]').addClass('sandboxed');
|
||||
}
|
||||
else {
|
||||
$('.stream-item[data-user-id="' + userId + '"]').removeClass('sandboxed');
|
||||
$('.profile-card .profile-header-inner[data-user-id="' + userId + '"]').removeClass('sandboxed');
|
||||
}
|
||||
rememberStreamStateInLocalStorage();
|
||||
}
|
||||
else {
|
||||
if(!data) {
|
||||
// failed!
|
||||
showErrorMessage(window.sL.ERRORfailedSandboxingUser);
|
||||
}
|
||||
|
@ -495,25 +483,11 @@ function sandboxCreateOrDestroy(arg, callback) {
|
|||
function silenceCreateOrDestroy(arg, callback) {
|
||||
|
||||
$('body').click(); // a click somewhere hides any open menus
|
||||
var userId = arg.userId;
|
||||
var createOrDestroy = arg.createOrDestroy;
|
||||
|
||||
display_spinner();
|
||||
APISilenceCreateOrDestroy(createOrDestroy, userId, function(data) {
|
||||
APISilenceCreateOrDestroy(arg.createOrDestroy, arg.userId, function(data) {
|
||||
remove_spinner();
|
||||
if(data) {
|
||||
// success, mark the user's notices and profile cards as silenced or unsilenced
|
||||
if(data.is_silenced === true) {
|
||||
$('.stream-item[data-user-id="' + userId + '"]').addClass('silenced');
|
||||
$('.profile-card .profile-header-inner[data-user-id="' + userId + '"]').addClass('silenced');
|
||||
}
|
||||
else {
|
||||
$('.stream-item[data-user-id="' + userId + '"]').removeClass('silenced');
|
||||
$('.profile-card .profile-header-inner[data-user-id="' + userId + '"]').removeClass('silenced');
|
||||
}
|
||||
rememberStreamStateInLocalStorage();
|
||||
}
|
||||
else {
|
||||
if(!data) {
|
||||
// failed!
|
||||
showErrorMessage(window.sL.ERRORfailedSilencingUser);
|
||||
}
|
||||
|
@ -1065,10 +1039,12 @@ function updateUserDataInStream() {
|
|||
if(userArray.local.is_silenced === true) {
|
||||
$('.stream-item[data-user-id=' + userArray.local.id + ']').addClass('silenced');
|
||||
$('.profile-card .profile-header-inner[data-user-id=' + userArray.local.id + ']').addClass('silenced');
|
||||
$('.user-menu-cog[data-user-id=' + userArray.local.id + ']').addClass('silenced');
|
||||
}
|
||||
else {
|
||||
$('.stream-item[data-user-id=' + userArray.local.id + ']').removeClass('silenced')
|
||||
$('.profile-card .profile-header-inner[data-user-id=' + userArray.local.id + ']').removeClass('silenced');
|
||||
$('.user-menu-cog[data-user-id=' + userArray.local.id + ']').removeClass('silenced');
|
||||
}
|
||||
|
||||
|
||||
|
@ -1076,10 +1052,12 @@ function updateUserDataInStream() {
|
|||
if(userArray.local.is_sandboxed === true) {
|
||||
$('.stream-item[data-user-id=' + userArray.local.id + ']').addClass('sandboxed');
|
||||
$('.profile-card .profile-header-inner[data-user-id=' + userArray.local.id + ']').addClass('sandboxed');
|
||||
$('.user-menu-cog[data-user-id=' + userArray.local.id + ']').addClass('sandboxed');
|
||||
}
|
||||
else {
|
||||
$('.stream-item[data-user-id=' + userArray.local.id + ']').removeClass('sandboxed')
|
||||
$('.profile-card .profile-header-inner[data-user-id=' + userArray.local.id + ']').removeClass('sandboxed');
|
||||
$('.user-menu-cog[data-user-id=' + userArray.local.id + ']').removeClass('sandboxed');
|
||||
}
|
||||
|
||||
// profile size avatars (notices, users)
|
||||
|
|
|
@ -1197,12 +1197,10 @@ $('body').on('click','.user-menu-cog',function(e){
|
|||
|
||||
$(this).addClass('dropped');
|
||||
|
||||
var profileCard = $(this).closest('.profile-card');
|
||||
var profileHeaderInner = profileCard.children('.profile-header-inner');
|
||||
var userID = profileHeaderInner.attr('data-user-id');
|
||||
var userScreenName = profileHeaderInner.attr('data-screen-name');
|
||||
var silenced = profileHeaderInner.hasClass('silenced');
|
||||
var sandboxed = profileHeaderInner.hasClass('sandboxed');
|
||||
var userID = $(this).attr('data-user-id');
|
||||
var userScreenName = $(this).attr('data-screen-name');
|
||||
var silenced = $(this).hasClass('silenced');
|
||||
var sandboxed = $(this).hasClass('sandboxed');
|
||||
|
||||
// menu
|
||||
var menuArray = [];
|
||||
|
|
Loading…
Reference in New Issue
Block a user