From 7ed9b8b84f3d850374b86100908fdb32721d7e13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20Deparis?= Date: Thu, 16 Oct 2014 10:47:08 +0200 Subject: [PATCH] First try around hashchange monitoring --- js/interface_common.js | 56 +++++++++++++++++++++++++++--------------- js/interface_home.js | 8 +++--- 2 files changed, 40 insertions(+), 24 deletions(-) diff --git a/js/interface_common.js b/js/interface_common.js index ba93950..dd7e725 100644 --- a/js/interface_common.js +++ b/js/interface_common.js @@ -30,7 +30,7 @@ function openModal( modalClass ) //fecha o modal removendo o conteúdo por detach function closeModal($this) -{ +{ var $body = $( "body" ); var $modalWindows = $( "body" ).children( ".modal-blackout" ); @@ -103,7 +103,12 @@ function openProfileModal(e) var $this = $( this ); var username = $.MAL.urlToUser( $this.attr("href") ); - + openProfileModalWithUsername(username); +} + + +function openProfileModalWithUsername(username) +{ if(!username) { alert(polyglot.t("You don't have any profile because you are not logged in.")); @@ -118,14 +123,14 @@ function openProfileModal(e) //título do modal $( "."+profileModalClass + " h3" ).text( polyglot.t("users_profile", { username: username }) ); - + //hed//add dinamic follow button in profile modal window if(followingUsers.indexOf(username) != -1){ $('.profile-card button.followButton').first().removeClass('follow').addClass('profileUnfollow').text(polyglot.t('Unfollow')).on('click', function(){ unfollow(username); }); }; - + $(".tox-ctc").attr("title", polyglot.t("Copy to clipboard")); $(".bitmessage-ctc").attr("title", polyglot.t("Copy to clipboard")); } @@ -354,6 +359,17 @@ function openConversationModal(e) $( "." + conversationModalClass + " h3" ).text( polyglot.t('conversation_title', {'username': postLi.find('.post-data').attr('data-screen-name')}) ); } + +function watchHashChange(e){ + if(/user=(.+)/.test(window.location.hash)) + { + var username = location.hash.match(/user=(.+)/); + if(username[1] != undefined) + openProfileModalWithUsername(username[1]); + } +} + + // // Post actions, submit, count characters // -------------------------------------- @@ -366,7 +382,7 @@ var reTwistPopup = function( e ) alert(polyglot.t("You have to log in to retransmit messages.")); return; } - + var reTwistClass = "reTwist"; openModal( reTwistClass ); @@ -439,7 +455,7 @@ var postExpandFunction = function( e, postLi ) var $postsRelated = postLi.find(".related"); var openClass = "open"; - + if( !postLi.hasClass( openClass ) ) { originalPost.detach(); postLi.empty(); @@ -451,7 +467,7 @@ var postExpandFunction = function( e, postLi ) originalLi.append(originalPost); $postExpandedContent.slideDown( "fast" ); - + if ($.Options.getShowPreviewOpt() == 'enable'){ var previewContainer=$postExpandedContent.find(".preview-container")[0]; /* was the preview added before... */ @@ -683,7 +699,7 @@ function replyTextKeypress(e) { } }else if( !$.Options.keyEnterToSend() ){ if (e.keyCode === 13 && (e.metaKey || e.ctrlKey)) { - + $this.val($this.val().trim()); if( !tweetAction.hasClass("disabled") ) { tweetAction.click(); @@ -960,15 +976,15 @@ var unicodeConversionList = { function getRangesForUnicodeConversion(msg) { if(!msg) return; - + var tempMsg = msg; var results = []; var regexHttpStart = /http[s]?:\/\//; var regexHttpEnd = /[ \n\t]/; var start=0, end, position, rep = true; - + position = tempMsg.search(regexHttpStart); - + while(position!=-1) { end = start + position; @@ -979,7 +995,7 @@ function getRangesForUnicodeConversion(msg) rep = !rep; start = end; tempMsg = tempMsg.substring(position, tempMsg.length); - + if(rep == true) position = tempMsg.search(regexHttpStart); else @@ -988,15 +1004,15 @@ function getRangesForUnicodeConversion(msg) end = msg.length; if(end > start) results.push({start: start, end: end, replace: rep}); - - return results; + + return results; } function getUnicodeReplacement(msg, list, ranges, ta) { if(!msg || !list || !ranges) return; if(ranges.length===0) return ""; - + var position, substrings = []; for (var j=0; j 0) { var ub = ta.closest(".post-area-new").find(".undo-unicode"); @@ -1083,7 +1099,7 @@ function undoLastUnicode(e) { var uc = $ta.data("unicodeConversionStack").shift(); var pt = $ta.val(); - + // If the text was shifted, and character is no longer at the saved position, this function // searches for it to the right. If it is not there, it searches in the oposite direction. // if it's not there either, it means it was deleted, so it is skipped. @@ -1282,7 +1298,7 @@ function replaceDashboards() { } function initInterfaceCommon() { - $( "body" ).on( "click", function(event) { + $( "body" ).on( "click", function(event) { if($(event.target).hasClass('cancel')) closeModal($(this)); }); $(".cancel").on('click', function(event){ diff --git a/js/interface_home.js b/js/interface_home.js index 5c930d6..5c2a2cb 100644 --- a/js/interface_home.js +++ b/js/interface_home.js @@ -31,7 +31,7 @@ var InterfaceFunctions = function() requestTimelineUpdate("latest",postsPerRefresh,followingUsers,promotedPostsOnly);}); // modified the way promoted posts are shown - $( ".promoted-posts-only").click(function() { + $( ".promoted-posts-only").click(function() { promotedPostsOnly = !promotedPostsOnly; //active promoted posts tab $(this).children('.promoted-posts').addClass(promotedPostsOnly ? "active" : "disabled"); @@ -163,15 +163,15 @@ var InterfaceFunctions = function() var interfaceFunctions = new InterfaceFunctions; $( document ).ready( interfaceFunctions.init ); $( window ).resize(replaceDashboards); +window.addEventListener('hashchange', watchHashChange, false); //função no window que fixa o header das postagens function fixDiv() { var $cache = $('.postboard h2'); - if ($(window).scrollTop() > 26) - $cache.addClass( "fixed" ); + if ($(window).scrollTop() > 26) + $cache.addClass( "fixed" ); else $cache.removeClass( "fixed" ); } $(window).scroll(fixDiv); -