Skip to content

Commit

Permalink
guest mode browsing
Browse files Browse the repository at this point in the history
  • Loading branch information
digital-dreamer committed Mar 29, 2014
1 parent a55542d commit e4cad37
Show file tree
Hide file tree
Showing 10 changed files with 125 additions and 21 deletions.
6 changes: 3 additions & 3 deletions home.html
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
</div>
<a class="dropdown-menu-item" href="options.html">Options</a>
<a class="dropdown-menu-item" href="profile-edit.html">Setup account</a>
<a class="dropdown-menu-item" href="following.html">Following users</a>
<a class="dropdown-menu-item dropdown-menu-following" href="following.html">Following users</a>
<a class="dropdown-menu-item" href="network.html">Network config</a>
<a class="dropdown-menu-item" href="login.html">Change user</a>
<a class="dropdown-menu-item promoted-posts-only" href="#">Switch to Promoted posts</a>
Expand Down Expand Up @@ -118,8 +118,8 @@
</div>
<ul class="module profile-data">
<li><a href="#" class="open-profile-modal"><span class="posts-count">&nbsp;</span><span class="label">Posts</span></a></li>
<li><a href="following.html"><span class="following-count">&nbsp;</span><span class="label">Following</span></a></li>
<li><a href="#"><span class="followers-count">&nbsp;</span><span class="label">Followers</span> *</a></li>
<li><a href="following.html" class="open-following-page"><span class="following-count">&nbsp;</span><span class="label">Following</span></a></li>
<li><a href="#" class="open-followers"><span class="followers-count">&nbsp;</span><span class="label">Followers</span> *</a></li>
</ul>

<div class="post-area">
Expand Down
36 changes: 35 additions & 1 deletion js/interface_common.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
// Profile, mentions and hashtag modal
// Post actions: submit, count characters

var preventSlide = false;

//dispara o modal genérico
//o modalClass me permite fazer tratamentos específicos de CSS para cada modal
function openModal( modalClass )
Expand Down Expand Up @@ -103,6 +105,12 @@ function openProfileModal(e)

var $this = $( this );
var username = $.MAL.urlToUser( $this.attr("href") );

if(!username)
{
alert(polyglot.t("You don't have any profile because you are not logged in."));
return;
}

var profileModalClass = "profile-modal";
openModal( profileModalClass );
Expand Down Expand Up @@ -169,6 +177,11 @@ function openMentionsModal(e)
e.stopPropagation();
e.preventDefault();

if(!defaultScreenName)
{
alert(polyglot.t("No one can mention you because you are not logged in."));
return;
}
// reuse the same hashtag modal to show mentions
var hashtagModalClass = "hashtag-modal";
openModal( hashtagModalClass );
Expand Down Expand Up @@ -224,6 +237,13 @@ function openFollowingModal(e)
//dispara o modal de retweet
var reTwistPopup = function( e )
{
if(!defaultScreenName)
{
preventSlide=true;
alert(polyglot.t("You have to log in to retransmit messages."));
return;
}

var reTwistClass = "reTwist";
openModal( reTwistClass );

Expand Down Expand Up @@ -296,7 +316,15 @@ var postExpandFunction = function( e, postLi )
var $postsRelated = postLi.find(".related");

var openClass = "open";
if( !postLi.hasClass( openClass ) ) {

//This is used in "guest mode", when user gets an alert that he can't reply or retransmit
//when not logged in. Otherwise, this click would also be understood as a command to open/close
//the post, which would look weird.
if(preventSlide)
{
preventSlide=false;
}
else if( !postLi.hasClass( openClass ) ) {
originalPost.detach();
postLi.empty();
postLi.addClass( openClass );
Expand Down Expand Up @@ -347,6 +375,12 @@ var postExpandFunction = function( e, postLi )

var postReplyClick = function( e )
{
if(!defaultScreenName)
{
preventSlide=true;
alert(polyglot.t("You have to log in to post replies."));
return;
}
var post = $(this).closest(".post");
if( !post.hasClass( "original" ) ) {
replyInitPopup(e, post);
Expand Down
59 changes: 46 additions & 13 deletions js/interface_home.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,24 +31,56 @@ var InterfaceFunctions = function()
}

function initHome(cbFunc, cbArg) {
if( !defaultScreenName ) {
alert(polyglot.t("username_undefined"));
$.MAL.goLogin();
return;
}
checkNetworkStatusAndAskRedirect();

//$("span.screen-name").text('@' + user);
var $miniProfile = $(".mini-profile");
$miniProfile.find("a.mini-profile-name").attr("href",$.MAL.userUrl(defaultScreenName));
$miniProfile.find("a.open-profile-modal").attr("href",$.MAL.userUrl(defaultScreenName));
$miniProfile.find(".mini-profile-name").text(defaultScreenName);
getFullname( defaultScreenName, $miniProfile.find(".mini-profile-name") );
getAvatar( defaultScreenName, $miniProfile.find(".mini-profile-photo").find("img") );
getPostsCount( defaultScreenName, $miniProfile.find(".posts-count") );
getFollowers( defaultScreenName, $miniProfile.find(".followers-count") );
if(!defaultScreenName)
{
$(".userMenu-profile > a").text(polyglot.t("Login"));
$(".userMenu-profile > a").attr("href","login.html");
$(".post-area-new > textarea").attr("placeholder",polyglot.t("You have to log in to post messages."));
$(".post-area-new > textarea").attr("disabled","true");
$miniProfile.find(".mini-profile-name").text("guest");
$miniProfile.find(".posts-count").text("0");
$miniProfile.find(".following-count").text("0");
$miniProfile.find(".followers-count").text("0");
$miniProfile.find("a.open-following-page").attr("href","#");
$miniProfile.find("a.open-following-page").bind("click", function()
{ alert(polyglot.t("You are not following anyone because you are not logged in."))} );
$miniProfile.find("a.open-followers").bind("click", function()
{ alert(polyglot.t("You don't have any followers because you are not logged in."))} );
$(".dropdown-menu-following").attr("href","#");
$(".dropdown-menu-following").bind("click", function()
{ alert(polyglot.t("You are not following anyone because you are not logged in."))} );
twisterRpc("gettrendinghashtags", [10],
function(args, ret) {
for( var i = 0; i < ret.length; i++ ) {

var $li = $("<li>");
var hashtagLinkTemplate = $("#hashtag-link-template").clone(true);
hashtagLinkTemplate.removeAttr("id");
hashtagLinkTemplate.attr("href",$.MAL.hashtagUrl(ret[i]));
hashtagLinkTemplate.text("#"+ret[i]);
$li.append(hashtagLinkTemplate);
$(".toptrends-list").append($li);
}
}, {},
function(args, ret) {
console.log("Error with gettrendinghashtags. Older twister daemon?");
}, {});
}
else
{
$miniProfile.find("a.mini-profile-name").attr("href",$.MAL.userUrl(defaultScreenName));
$miniProfile.find("a.open-profile-modal").attr("href",$.MAL.userUrl(defaultScreenName));
$miniProfile.find(".mini-profile-name").text(defaultScreenName);
getFullname( defaultScreenName, $miniProfile.find(".mini-profile-name") );
getAvatar( defaultScreenName, $miniProfile.find(".mini-profile-photo").find("img") );
getPostsCount( defaultScreenName, $miniProfile.find(".posts-count") );
getFollowers( defaultScreenName, $miniProfile.find(".followers-count") );

loadFollowing( function(args) {
loadFollowing( function(args) {
$(".mini-profile .following-count").text(followingUsers.length-1);
requestLastHave();
setInterval("requestLastHave()", 1000);
Expand Down Expand Up @@ -89,6 +121,7 @@ var InterfaceFunctions = function()
if( args.cbFunc )
args.cbFunc(args.cbArg);
}, {cbFunc:cbFunc, cbArg:cbArg});
}
}
}

Expand Down
11 changes: 10 additions & 1 deletion js/interface_localization.js
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,16 @@ if(preferredLanguage == "en"){
"Terminate Daemon:": "Terminate Daemon:",
"Exit": "Exit",
"Save Changes": "Save Changes",
"Secret key:": "Secret key:"
"Secret key:": "Secret key:",
"You have to log in to post messages.": "You have to log in to post messages.",
"You have to log in to post replies.": "You have to log in to post replies.",
"You have to log in to retransmit messages.": "You have to log in to retransmit messages.",
"You have to log in to use direct messages.": "You have to log in to use direct messages.",
"You have to log in to follow users.": "You have to log in to follow users.",
"You are not following anyone because you are not logged in.": "You are not following anyone because you are not logged in.",
"You don't have any followers because you are not logged in.": "You don't have any followers because you are not logged in.",
"No one can mention you because you are not logged in.": "No one can mention you because you are not logged in.",
"You don't have any profile because you are not logged in.": "You don't have any profile because you are not logged in."
};
}
if(preferredLanguage == "es"){
Expand Down
2 changes: 1 addition & 1 deletion js/interface_profile-edit.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ function initProfileEdit() {

initUser( function() {
if( !defaultScreenName ) {
alert("Username undefined, login required.");
alert(polyglot.t("username_undefined"));
$.MAL.goLogin();
return;
}
Expand Down
10 changes: 10 additions & 0 deletions js/twister_directmsg.js
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,11 @@ function newDirectMsg(msg, dm_screenname) {
//dispara o modal de direct messages
function directMessagesPopup()
{
if(!defaultScreenName)
{
alert(polyglot.t("You have to log in to use direct messages."));
return;
}
var directMessagesClass = "directMessages";
openModal( directMessagesClass );

Expand Down Expand Up @@ -140,6 +145,11 @@ function hideDmSnippetShowDmThread()

function directMessagesWithUserPopup()
{
if(!defaultScreenName)
{
alert(polyglot.t("You have to log in to use direct messages."));
return;
}
var $userInfo = $(this).closest("[data-screen-name]");
var dm_screenname = $userInfo.attr("data-screen-name");
openDmWithUserModal( dm_screenname );
Expand Down
6 changes: 6 additions & 0 deletions js/twister_following.js
Original file line number Diff line number Diff line change
Expand Up @@ -437,6 +437,12 @@ function userClickFollow(e) {
var $this = $(this);
var $userInfo = $this.closest("[data-screen-name]");
var username = $userInfo.attr("data-screen-name");

if(!defaultScreenName)
{
alert(polyglot.t("You have to log in to follow users."));
return;
}

follow(username, true, function() {
// delay reload so dhtput may do it's job
Expand Down
9 changes: 8 additions & 1 deletion js/twister_formatpost.js
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,14 @@ function postToElem( post, kind ) {
replyTo += "@" + mentions[i] + " ";
}
}
elem.find(".post-area-new textarea").attr("placeholder", polyglot.t("reply_to", { fullname: replyTo })+ "...");
if(!defaultScreenName)
{
elem.find(".post-area-new textarea").attr("placeholder", polyglot.t("You have to log in to post replies."));
}
else
{
elem.find(".post-area-new textarea").attr("placeholder", polyglot.t("reply_to", { fullname: replyTo })+ "...");
}
elem.find(".post-area-new textarea").attr("data-reply-to",replyTo);
postData.attr("data-reply-to",replyTo);

Expand Down
5 changes: 5 additions & 0 deletions js/twister_network.js
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,11 @@ function initInterfaceNetwork() {
initDMsCount();
});
}
else
{
$(".userMenu-profile > a").text(polyglot.t("Login"));
$(".userMenu-profile > a").attr("href","login.html");
}
});
networkUpdate();
setInterval("networkUpdate()", 2000);
Expand Down
2 changes: 1 addition & 1 deletion js/twister_timeline.js
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ function processReceivedPosts(req, posts)
// request timeline update for a given list of users
function requestTimelineUpdate(mode, count, timelineUsers, getspam)
{
if( _refreshInProgress )
if( _refreshInProgress || !defaultScreenName)
return;
$.MAL.postboardLoading();
_refreshInProgress = true;
Expand Down

0 comments on commit e4cad37

Please sign in to comment.