diff --git a/css/style.css b/css/style.css index 97c69da..b1c131c 100644 --- a/css/style.css +++ b/css/style.css @@ -890,17 +890,20 @@ textarea.splited-post { color: #e34f42; } -.followers -{ +.followers, +.latest-activity { font-size: 12px; color: rgba( 0, 0, 0, .6 ); + margin-left: 58px; } -.followed-by -{ + +.followed-by, +.latest-activity .time { color: #e34f42; font-size: 13px; cursor: pointer; } + .twister-user-name, .twister-by-user-name { @@ -2343,7 +2346,7 @@ ol.toptrends-list { display: inline-block; text-align: initial; width: 320px; - height: 120px; + height: 130px; margin: 2px; padding: 2px; border: solid 1px rgba(69, 71, 77, .1); @@ -2386,6 +2389,13 @@ ol.toptrends-list { right: 32px; } +.following-own-modal .following-list .latest-activity { + position: absolute; + top: 110px; + right: 32px; + margin: 0; +} + /************************************* *********** AUTOCOMPLETING *********** **************************************/ diff --git a/home.html b/home.html index 88aa84e..bdbfd1b 100644 --- a/home.html +++ b/home.html @@ -302,6 +302,10 @@ × +
+ Last activity + +
@@ -776,6 +780,10 @@
+
+ Last activity + +
diff --git a/js/interface_common.js b/js/interface_common.js index 5aedcc5..8abbd24 100644 --- a/js/interface_common.js +++ b/js/interface_common.js @@ -389,6 +389,7 @@ function checkNetworkStatusAndAskRedirect(cbFunc, cbReq) { } function timeGmtToText(t) { + if (t == 0) return '-'; var d = new Date(0); d.setUTCSeconds(t); return d.toString().replace(/GMT.*/g, ''); @@ -710,6 +711,7 @@ function addPeerToFollowingList(list, peerAlias) { .on('mouseup', {route: $.MAL.mentionsUrl(peerAlias)}, routeOnClick); getAvatar(peerAlias, item.find('.mini-profile-photo')); getFullname(peerAlias, item.find('.mini-profile-name')); + getStatusTime(peerAlias, item.find('.latest-activity .time')); if (peerAlias === defaultScreenName) item.find('.following-config').hide(); @@ -750,6 +752,7 @@ function fillWhoToFollowModal(list, hlist, start) { getFullname(utf, item.find('.twister-user-full')); getBioToElem(utf, item.find('.bio')); getFullname(followingUsers[i], item.find('.followed-by').text(followingUsers[i])); + getStatusTime(utf, item.find('.latest-activity .time')); item.find('.twister-user-remove').remove(); @@ -872,14 +875,22 @@ function handleClickOpenProfileModal(event) { } function handleClickOpenConversation(event) { - event.preventDefault(); - event.stopPropagation(); + var elem = $(event.target).closest(event.data.feeder); + if (!elem.length) { + muteEvent(event, true); + return; + } - var elem = $(event.target); - var postData = elem.closest(event.data.feeder); + var post = { + writer: elem.attr('data-screen-name'), + id: elem.attr('data-id') + }; + if (!post.writer || !post.id) { + muteEvent(event, true); + return; + } - event.data.route = '#conversation?post=' + postData.attr('data-screen-name') - + ':post' + postData.attr('data-id'); + event.data.route = '#conversation?post=' + post.writer + ':post' + post.id; routeOnClick(event); } @@ -2620,6 +2631,9 @@ function initInterfaceCommon() { displayQueryPending($('.hashtag-modal .postboard-posts')); }); + getElem('.latest-activity', true).on('mouseup', + {feeder: '.latest-activity'}, handleClickOpenConversation); + replaceDashboards(); $(window).resize(replaceDashboards); diff --git a/js/interface_localization.js b/js/interface_localization.js index 6270935..bdae9d0 100644 --- a/js/interface_localization.js +++ b/js/interface_localization.js @@ -366,7 +366,8 @@ if(preferredLanguage == "en"){ "users_favs": "Favorites of @%{username}", "Favorites": "Favorites", "You have to log in to favorite messages.": "You have to log in to favorite messages.", - "fav_this": "Is it for you only?" + "fav_this": "Is it for you only?", + "Last activity": "Last activity" }; } if(preferredLanguage == "es"){ @@ -705,7 +706,8 @@ if(preferredLanguage == "es"){ "users_favs": "Favorites of @%{username}", "Favorites": "Favorites", "You have to log in to favorite messages.": "You have to log in to favorite messages.", - "fav_this": "Is it for you only?" + "fav_this": "Is it for you only?", + "Last activity": "Last activity" }; } @@ -1043,7 +1045,8 @@ if(preferredLanguage == "uk"){ "users_favs": "Favorites of @%{username}", "Favorites": "Favorites", "You have to log in to favorite messages.": "You have to log in to favorite messages.", - "fav_this": "Is it for you only?" + "fav_this": "Is it for you only?", + "Last activity": "Last activity" }; } @@ -1386,7 +1389,8 @@ if(preferredLanguage == "zh-CN"){ "users_favs": "Favorites of @%{username}", "Favorites": "Favorites", "You have to log in to favorite messages.": "You have to log in to favorite messages.", - "fav_this": "Is it for you only?" + "fav_this": "Is it for you only?", + "Last activity": "Last activity" }; } @@ -1726,7 +1730,8 @@ if(preferredLanguage == "nl"){ "users_favs": "Favorites of @%{username}", "Favorites": "Favorites", "You have to log in to favorite messages.": "You have to log in to favorite messages.", - "fav_this": "Is it for you only?" + "fav_this": "Is it for you only?", + "Last activity": "Last activity" }; } @@ -2064,7 +2069,8 @@ if(preferredLanguage == "it"){ "users_favs": "Favorites of @%{username}", "Favorites": "Favorites", "You have to log in to favorite messages.": "You have to log in to favorite messages.", - "fav_this": "Is it for you only?" + "fav_this": "Is it for you only?", + "Last activity": "Last activity" }; } @@ -2403,8 +2409,8 @@ if(preferredLanguage == "fr"){ "No favs here because you are not logged in." : "No favs here because you are not logged in.", "users_favs": "Favorites of @%{username}", "Favorites": "Favorites", - "You have to log in to favorite messages.": "You have to log in to favorite messages." - + "You have to log in to favorite messages.": "You have to log in to favorite messages.", + "Last activity": "Last activity" }; } @@ -2750,7 +2756,8 @@ if(preferredLanguage == "ru"){ "users_favs": "Favorites of @%{username}", "Favorites": "Favorites", "You have to log in to favorite messages.": "You have to log in to favorite messages.", - "fav_this": "Is it for you only?" + "fav_this": "Is it for you only?", + "Last activity": "Last activity" }; } @@ -3092,7 +3099,8 @@ if(preferredLanguage == "de"){ "users_favs": "Favorites of @%{username}", "Favorites": "Favorites", "You have to log in to favorite messages.": "You have to log in to favorite messages.", - "fav_this": "Is it for you only?" + "fav_this": "Is it for you only?", + "Last activity": "Last activity" }; } @@ -3429,7 +3437,8 @@ if(preferredLanguage == "ja"){ "users_favs": "Favorites of @%{username}", "Favorites": "Favorites", "You have to log in to favorite messages.": "You have to log in to favorite messages.", - "fav_this": "Is it for you only?" + "fav_this": "Is it for you only?", + "Last activity": "Last activity" }; } @@ -3772,7 +3781,8 @@ if(preferredLanguage == "pt-BR"){ "users_favs": "Favorites of @%{username}", "Favorites": "Favorites", "You have to log in to favorite messages.": "You have to log in to favorite messages.", - "fav_this": "Is it for you only?" + "fav_this": "Is it for you only?", + "Last activity": "Last activity" }; } @@ -4111,7 +4121,8 @@ if(preferredLanguage == "tr"){ "users_favs": "@%{username} kullanıcısının favorileri", "Favorites": "Favoriler", "You have to log in to favorite messages.": "İletileri favorine eklemek için giriş yapmalısın.", - "fav_this": "Sana özel mi?" + "fav_this": "Sana özel mi?", + "Last activity": "Son etkinlik" }; } @@ -4453,7 +4464,8 @@ if(preferredLanguage == "cs"){ "users_favs": "Favorites of @%{username}", "Favorites": "Favorites", "You have to log in to favorite messages.": "You have to log in to favorite messages.", - "fav_this": "Is it for you only?" + "fav_this": "Is it for you only?", + "Last activity": "Last activity" }; } diff --git a/js/twister_following.js b/js/twister_following.js index 3ea7ba9..c736b05 100644 --- a/js/twister_following.js +++ b/js/twister_following.js @@ -515,6 +515,7 @@ function processWhoToFollowSuggestion(suggestion, followedBy) { getAvatar(suggestion, item.find('.twister-user-photo')); getFullname(followedBy, item.find('.followed-by').text(followedBy)); + getStatusTime(suggestion, item.find('.latest-activity .time')); item.find('.twister-user-remove').on('click', function() { item.remove(); diff --git a/js/twister_io.js b/js/twister_io.js index 5b6a8d8..c9d1ab1 100644 --- a/js/twister_io.js +++ b/js/twister_io.js @@ -522,6 +522,22 @@ function getPostsCount(peerAlias, elem) { ); } +function getStatusTime(peerAlias, elem) { + dhtget(peerAlias, 'status', 's', + function (req, ret) { + if (!ret || !ret.userpost) + return; + + req.elem.text(timeGmtToText(ret.userpost.time)) + .closest('.latest-activity') + .attr('data-screen-name', req.peerAlias) + .attr('data-id', ret.userpost.k) + .attr('data-time', ret.userpost.time) + ; + }, {peerAlias: peerAlias, elem: elem} + ); +} + function getPostMaxAvailability(peerAlias, k, cbFunc, cbReq) { twisterRpc('getpiecemaxseen', [peerAlias, k], function(req, ret) { diff --git a/theme_calm/css/style.css b/theme_calm/css/style.css index 73b38a4..6a9bc02 100644 --- a/theme_calm/css/style.css +++ b/theme_calm/css/style.css @@ -1072,16 +1072,19 @@ textarea.splited-post { opacity: .8; } -.followers -{ +.followers, +.latest-activity { font-size: 12px; color: rgba( 0, 0, 0, .6 ); + margin-left: 58px; } -.followed-by -{ + +.followed-by, +.latest-activity .time { font-size: 13px; cursor: pointer; } + .twister-user-name, .twister-by-user-name { @@ -2767,7 +2770,7 @@ textarea.splited-post { display: inline-block; text-align: initial; width: 320px; - height: 120px; + height: 130px; margin: 2px; padding: 2px; border: solid 1px rgba(69, 71, 77, .1); @@ -2813,6 +2816,13 @@ textarea.splited-post { right: 32px; } +.following-own-modal .following-list .latest-activity { + position: absolute; + top: 110px; + right: 32px; + margin: 0; +} + .gifCheckBox { float: right; vertical-align: middle; diff --git a/theme_nin/css/style.css b/theme_nin/css/style.css index eef5b66..2caf94f 100644 --- a/theme_nin/css/style.css +++ b/theme_nin/css/style.css @@ -2209,7 +2209,8 @@ textarea.splited-post { } /* line 447, ../sass/style.sass */ -.followers { +.followers, +.latest-activity { font-size: 12px; color: #66686B; } @@ -2219,13 +2220,22 @@ textarea.splited-post { } /* line 453, ../sass/style.sass */ -.followed-by { +.followed-by, +.latest-activity { color: #aaa; font-size: 12px; cursor: pointer; display: block; } +.who-to-follow .latest-activity { + margin-bottom: 8px; +} + +.who-to-follow .latest-activity .label { + display: none; +} + /* line 459, ../sass/style.sass */ .twister-user-name, .twister-by-user-name { font-weight: bold; @@ -3356,7 +3366,7 @@ ol.toptrends-list a:hover { .following-own-modal .following-list > li { display: inline-block; width: 320px; - height: 160px; + height: 184px; margin: 2px; padding: 2px; border: solid 1px rgba(69, 71, 77, .1); @@ -3456,6 +3466,10 @@ ol.toptrends-list a:hover { display: block; } +.following-own-modal .following-list .latest-activity { + font-size: 11px; +} + /********** AUTOCOMPLETING *********/ /* line 1087, ../sass/style.sass */