From 5e7a6f50df9a27e29ff2a0e9fd3a38e7d1ae5fda Mon Sep 17 00:00:00 2001 From: Simon Grim Date: Thu, 4 Dec 2014 08:45:45 +0600 Subject: [PATCH 1/2] add following config method modal, fix some related --- css/style.css | 22 ++++++++++++ following.html | 16 +++++++++ home.html | 17 +++++++++ js/interface_localization.js | 4 +++ js/twister_following.js | 67 ++++++++++++++++++++++++++++++------ theme_calm/css/style.css | 22 ++++++++++++ theme_nin/css/style.css | 8 +++++ 7 files changed, 145 insertions(+), 11 deletions(-) diff --git a/css/style.css b/css/style.css index c185674..b741166 100644 --- a/css/style.css +++ b/css/style.css @@ -1313,6 +1313,28 @@ ol.toptrends-list { padding: 5px 20px; } /************************************* +*************** FOLLOWING-CONFIG MODAL +**************************************/ +.following-config-modal .modal-wrapper +{ + top: 43%; + left: 25%; + width: 50%; +} +.following-config-modal .modal-content +{ + padding: 10px; + text-align: center; +} +.following-config-modal .modal-buttons +{ + display: none; +} +.following-config-method-buttons +{ + padding: 10px; +} +/************************************* ****************** RETWIST POSTS MODAL **************************************/ .reTwist .modal-wrapper diff --git a/following.html b/following.html index a869b89..5c914d4 100644 --- a/following.html +++ b/following.html @@ -480,6 +480,22 @@ + +
+ + +
+

Which way do you want to follow @:

+ +
+ + +
+ +
+ +
+ diff --git a/home.html b/home.html index ecb3137..162f890 100644 --- a/home.html +++ b/home.html @@ -511,6 +511,23 @@ + +
+ + +
+

Which way do you want to follow @:

+ +
+ + +
+ +
+ +
+ + diff --git a/js/interface_localization.js b/js/interface_localization.js index 43df0b1..cbf74c6 100644 --- a/js/interface_localization.js +++ b/js/interface_localization.js @@ -68,6 +68,8 @@ if(preferredLanguage == "en"){ "Favorite": "Favorite", "File APIs not supported in this browser.": "File APIs not supported in this browser.", "Follow": "Follow", + "Following config": "Following config", + "Which way do you want to follow": "Which way do you want to follow", "Followed by": "Followed by", "followed_by": "Followed by %{username}", "Followers": "Followers", @@ -1659,6 +1661,8 @@ if(preferredLanguage == "ru"){ "Favorite": "Избранное", "File APIs not supported in this browser.": "Ваш браузер не поддерживает File APIs.", "Follow": "Подписаться", + "Following config": "Настройка подписки", + "Which way do you want to follow": "Выберите тип подписки на", "Followed by": "Подписчик у", "followed_by": "%{username} подписан", "Followers": "Читателей", diff --git a/js/twister_following.js b/js/twister_following.js index fdf2774..270017d 100644 --- a/js/twister_following.js +++ b/js/twister_following.js @@ -388,10 +388,13 @@ function isPublicFollowing(user) { if( followingUsers.indexOf(user) < 0 ) { return false; } - if( (user in _isFollowPublic) && _isFollowPublic[user] == true ) + if( (user in _isFollowPublic) && _isFollowPublic[user] == true ) { + //console.log("isPublicFollowing( " +user +" ) = "+true); return true; - else + } else { + //console.log("isPublicFollowing( " +user +" ) = "+false); return false; + } } // check if following list is empty @@ -521,7 +524,11 @@ function showFollowingUsers(){ resItem.find("a.open-profile-modal").attr("href",$.MAL.userUrl(followingUsers[i])); resItem.find("a.unfollow").attr("href",$.MAL.unfollowUrl(followingUsers[i])); resItem.find("a.direct-messages-with-user").attr("href", $.MAL.dmchatUrl(followingUsers[i])); - resItem.find(".public-following").prop("checked",isPublicFollowing(followingUsers[i])); + if (isPublicFollowing(followingUsers[i])) { + resItem.find(".public-following").text(polyglot.t("Public")); + } else { + resItem.find(".public-following").text(polyglot.t("Private")).addClass( "private" ); + } getAvatar(followingUsers[i],resItem.find(".mini-profile-photo")); getFullname(followingUsers[i],resItem.find(".mini-profile-name")); if( followingUsers[i] == defaultScreenName ) { @@ -658,6 +665,16 @@ function processDropdownUserResults(partialName, results){ _searchingPartialUsers = ""; } +function newFollowingConfigModal(username) { + var FollowingConfigContent = $("#following-config-modal-template").children().clone(true); + + FollowingConfigContent.closest(".following-config-modal-content").attr("data-screen-name", username) + FollowingConfigContent.find(".following-config-method-message").text(polyglot.t("Which way do you want to follow")) + FollowingConfigContent.find(".following-screen-name b").text(username); + + return FollowingConfigContent; +} + function userClickFollow(e) { e.stopPropagation(); e.preventDefault(); @@ -672,10 +689,14 @@ function userClickFollow(e) { return; } - follow(username, true, function() { - // delay reload so dhtput may do it's job - window.setTimeout("location.reload();",500); - }); + var FollowingConfigClass = "following-config-modal"; + openModal( FollowingConfigClass ); + + var FollowingConfigContent = newFollowingConfigModal(username); + FollowingConfigContent.appendTo("." +FollowingConfigClass +" .modal-content"); + + //título do modal + $("." +FollowingConfigClass +" h3").text(polyglot.t("Following config")); } function initUserSearch() { @@ -685,6 +706,11 @@ function initUserSearch() { $userSearchField.clickoutside( closeSearchDialog ); $("button.follow").bind( "click", userClickFollow ); + + $(".following-config-method-buttons .public-following").bind( "click", setFollowingMethod ); + $(".following-config-method-buttons .public-following").click( function() { + closeModal($(this)); + }); } function followingListUnfollow(e) { @@ -704,16 +730,35 @@ function followingListPublicCheckbox(e) { var $this = $(this); var username = $this.closest(".mini-profile-info").attr("data-screen-name"); - var public = false; + var method = false; $this.toggleClass( "private" ); if( $this.hasClass( "private" ) ) { $this.text( polyglot.t("Private") ); } else { $this.text( polyglot.t("Public") ); - public = true; + method = true; } - follow(username, public); + //console.log("set following method of @" +username +" for "+method); + follow(username, method); +} + +function setFollowingMethod(e) { + e.stopPropagation(); + + var $this = $(this); + var username = $this.closest(".following-config-modal-content").attr("data-screen-name"); + var method = false; + + if( !$this.hasClass("private") ) { + method = true; + } + + //console.log("start following @" +username +" by method "+method); + follow(username, method, function() { + // delay reload so dhtput may do it's job + window.setTimeout("location.reload();",500); + }); } @@ -764,7 +809,7 @@ function initInterfaceFollowing() { initInterfaceDirectMsg(); $("button.unfollow").bind( "click", followingListUnfollow ); - $(".public-following").bind( "click", followingListPublicCheckbox ); + $(".mini-profile-info .public-following").bind( "click", followingListPublicCheckbox ); $(".mentions-from-user").bind( "click", openMentionsModal ); diff --git a/theme_calm/css/style.css b/theme_calm/css/style.css index f20dc1f..cc7cb1f 100644 --- a/theme_calm/css/style.css +++ b/theme_calm/css/style.css @@ -1730,6 +1730,28 @@ textarea.splited-post { padding: 5px 20px; } /************************************* +*************** FOLLOWING-CONFIG MODAL +**************************************/ +.following-config-modal .modal-wrapper +{ + top: 43%; + left: 25%; + width: 50%; +} +.following-config-modal .modal-content +{ + padding: 10px; + text-align: center; +} +.following-config-modal .modal-buttons +{ + display: none; +} +.following-config-method-buttons +{ + padding: 10px; +} +/************************************* ****************** RETWIST POSTS MODAL **************************************/ .reTwist .modal-wrapper diff --git a/theme_nin/css/style.css b/theme_nin/css/style.css index ad4b628..5673298 100755 --- a/theme_nin/css/style.css +++ b/theme_nin/css/style.css @@ -593,6 +593,14 @@ ol.toptrends-list a:hover { background: white; color: #66686b; } .modal-buttons { padding: 10px; text-align: right; } +/******** FOLLOWING-CONFIG MODAL ********/ +.following-config-modal .modal-wrapper { top: 43%; left: 25%; width: 50%; } +.following-config-modal .modal-content { padding: 10px; text-align: center; background-color: white; } +.following-config-modal .modal-buttons { display: none; } +.following-config-method-buttons { padding: 10px; } +.following-config-method-buttons .public-following { background-color: #B4C669 } +.following-config-modal h2 { text-transform: none; } + /*********** RETWIST POSTS MODAL ********* */ .reTwist .modal-wrapper { width: 520px; top: 20%; margin: 0 0 0 -260px; } .reTwist .post-expand, .reTwist .post-interactions { display: none; } From d998de629966309df7479d7d852491473f511dca Mon Sep 17 00:00:00 2001 From: Simon Grim Date: Fri, 5 Dec 2014 01:13:45 +0600 Subject: [PATCH 2/2] fix follow button behavior --- following.html | 2 +- home.html | 2 +- js/interface_common.js | 7 ++++++- js/twister_following.js | 7 +++---- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/following.html b/following.html index 5c914d4..df6a66e 100644 --- a/following.html +++ b/following.html @@ -412,7 +412,7 @@
  •  Followers
  • - +
    diff --git a/home.html b/home.html index 162f890..86c9cb3 100644 --- a/home.html +++ b/home.html @@ -441,7 +441,7 @@
  •  Followers
  • - +