Browse Source

rewrite of options.js to get it more useful and faster, move localizeLabels() to theme_option.js of nin, introduce playSound(), clean up a bit trailing spaces

master
Simon Grim 10 years ago
parent
commit
ede178eb32
  1. 84
      js/interface_common.js
  2. 28
      js/interface_home.js
  3. 34
      js/interface_localization.js
  4. 68
      js/mobile_abstract.js
  5. 988
      js/options.js
  6. 20
      js/twister_actions.js
  7. 2
      js/twister_directmsg.js
  8. 8
      js/twister_formatpost.js
  9. 11
      js/twister_io.js
  10. 8
      js/twister_newmsgs.js
  11. 15
      js/twister_timeline.js
  12. 10
      options.html
  13. 11
      theme_nin/js/theme_option.js

84
js/interface_common.js

@ -208,8 +208,8 @@ function updateHashtagModal(postboard,hashtag,timeoutArgs) {
requestHashtag(postboard,hashtag,resource,timeoutArgs); requestHashtag(postboard,hashtag,resource,timeoutArgs);
if( _hashtagPendingPostsUpdated ) { if( _hashtagPendingPostsUpdated ) {
if (resource != 'mention' && $.Options.getShowDesktopNotifPostsModalOpt() === 'enable') { if (resource != 'mention' && $.Options.showDesktopNotifPostsModal.val === 'enable') {
$.MAL.showDesktopNotif(false, polyglot.t('You got')+' '+polyglot.t("new_posts", _hashtagPendingPostsUpdated)+' '+polyglot.t('in search result')+'.', false,'twister_notification_new_posts_modal', $.Options.getShowDesktopNotifPostsModalTimerOpt(), function() { $.MAL.showDesktopNotif(false, polyglot.t('You got')+' '+polyglot.t("new_posts", _hashtagPendingPostsUpdated)+' '+polyglot.t('in search result')+'.', false,'twister_notification_new_posts_modal', $.Options.showDesktopNotifPostsModalTimer.val, function() {
$(".postboard-news").hide(); $(".postboard-news").hide();
displayHashtagPending($(".hashtag-modal .postboard-posts")); displayHashtagPending($(".hashtag-modal .postboard-posts"));
}, false) }, false)
@ -231,10 +231,9 @@ function openMentionsModal(e)
e.preventDefault(); e.preventDefault();
} }
if(!defaultScreenName) if (!defaultScreenName) {
{ alert(polyglot.t("No one can mention you because you are not logged in."));
alert(polyglot.t("No one can mention you because you are not logged in.")); return;
return;
} }
var username; var username;
@ -370,7 +369,7 @@ function openWhoToFollowModal() {
function newConversationModal(username,resource) { function newConversationModal(username,resource) {
var hashtagModalContent = $( "#hashtag-modal-template" ).children().clone(true); var hashtagModalContent = $( "#hashtag-modal-template" ).children().clone(true);
requestPost(hashtagModalContent.find(".postboard-posts"),username,resource, requestPost(hashtagModalContent.find(".postboard-posts"),username,resource,
function(args){ function(args){
postLi=args.hashtagModalContent.find(".postboard-posts").children().first(); postLi=args.hashtagModalContent.find(".postboard-posts").children().first();
@ -406,7 +405,7 @@ function openConversationModal(username,resource)
{ {
var conversationModalClass = "conversation-modal"; var conversationModalClass = "conversation-modal";
openModal( conversationModalClass ); openModal( conversationModalClass );
var conversationModalContent = newConversationModal(username,resource); var conversationModalContent = newConversationModal(username,resource);
conversationModalContent.appendTo("." + conversationModalClass + " .modal-content"); conversationModalContent.appendTo("." + conversationModalClass + " .modal-content");
@ -419,21 +418,21 @@ function openConversationModal(username,resource)
function watchHashChange(e) function watchHashChange(e)
{ {
if(e!=null){ if(e!=null){
var prevurlsplit = e.oldURL.split('#'); var prevurlsplit = e.oldURL.split('#');
var prevhashstring=prevurlsplit[1]; var prevhashstring=prevurlsplit[1];
var notFirstModalView=(prevhashstring!=undefined && prevhashstring.length>0 ); var notFirstModalView=(prevhashstring!=undefined && prevhashstring.length>0 );
var notNavigatedBackToFirstModalView=(window.history.state==null || ( window.history.state!=null && window.history.state.showCloseButton!=false ) ) var notNavigatedBackToFirstModalView=(window.history.state==null || ( window.history.state!=null && window.history.state.showCloseButton!=false ) )
if(notFirstModalView && notNavigatedBackToFirstModalView ){ if(notFirstModalView && notNavigatedBackToFirstModalView ){
$('.modal-back').css('display','inline'); $('.modal-back').css('display','inline');
} else { } else {
window.history.pushState({showCloseButton:false},null,null); window.history.pushState({showCloseButton:false},null,null);
$('.modal-back').css('display','none'); $('.modal-back').css('display','none');
} }
} }
loadModalFromHash(); loadModalFromHash();
@ -461,7 +460,7 @@ function loadModalFromHash(){
}else if (hashdata[1] == 'following') { }else if (hashdata[1] == 'following') {
openFollowingModal(hashdata[2]); openFollowingModal(hashdata[2]);
}else if (hashdata[1] == 'conversation') { }else if (hashdata[1] == 'conversation') {
splithashdata2=hashdata[2].split(':') splithashdata2=hashdata[2].split(':')
//console.log('username='+splithashdata2[0]+' resource='+splithashdata2[1]); //console.log('username='+splithashdata2[0]+' resource='+splithashdata2[1]);
openConversationModal(splithashdata2[0],splithashdata2[1]); openConversationModal(splithashdata2[0],splithashdata2[1]);
} }
@ -479,11 +478,11 @@ function initHashWatching()
{ {
// Register custom protocol handler // Register custom protocol handler
already_registered = _getResourceFromStorage("twister_protocol_registered"); already_registered = _getResourceFromStorage("twister_protocol_registered");
if (window.navigator && window.navigator.registerProtocolHandler && !already_registered){ if (window.navigator && window.navigator.registerProtocolHandler && !already_registered){
var local_twister_url = window.location.protocol + '//' + window.location.host + '/home.html#%s'; var local_twister_url = window.location.protocol + '//' + window.location.host + '/home.html#%s';
window.navigator.registerProtocolHandler('web+twister', local_twister_url, 'Twister'); window.navigator.registerProtocolHandler('web+twister', local_twister_url, 'Twister');
_putResourceIntoStorage("twister_protocol_registered", true); _putResourceIntoStorage("twister_protocol_registered", true);
} }
// Register hash spy and launch it once // Register hash spy and launch it once
@ -500,9 +499,9 @@ var reTwistPopup = function( e )
{ {
if(!defaultScreenName) if(!defaultScreenName)
{ {
e.stopPropagation(); e.stopPropagation();
alert(polyglot.t("You have to log in to retransmit messages.")); alert(polyglot.t('You have to log in to retransmit messages.'));
return; return;
} }
var reTwistClass = "reTwist"; var reTwistClass = "reTwist";
@ -628,7 +627,7 @@ var postExpandFunction = function( e, postLi )
$postExpandedContent.slideDown( "fast" ); $postExpandedContent.slideDown( "fast" );
if ($.Options.getShowPreviewOpt() == 'enable'){ if ($.Options.showPreview.val === 'enable') {
var previewContainer=$postExpandedContent.find(".preview-container")[0]; var previewContainer=$postExpandedContent.find(".preview-container")[0];
/* was the preview added before... */ /* was the preview added before... */
if ($(previewContainer).children().length == 0) { if ($(previewContainer).children().length == 0) {
@ -676,9 +675,9 @@ var postReplyClick = function( e )
{ {
if(!defaultScreenName) if(!defaultScreenName)
{ {
e.stopPropagation(); e.stopPropagation();
alert(polyglot.t("You have to log in to post replies.")); alert(polyglot.t('You have to log in to post replies.'));
return; return;
} }
var post = $(this).closest(".post"); var post = $(this).closest(".post");
if( !post.hasClass( "original" ) ) { if( !post.hasClass( "original" ) ) {
@ -703,14 +702,13 @@ var composeNewPost = function( e, postAreaNew )
//se o usuário clicar fora é pra fechar //se o usuário clicar fora é pra fechar
postAreaNew.clickoutside( unfocusThis ); postAreaNew.clickoutside( unfocusThis );
if ($.Options.getSplitPostsOpt() === "enable") if ($.Options.splitPosts.val === 'enable')
usePostSpliting = true; usePostSpliting = true;
else if ($.Options.getSplitPostsOpt() === "only-new") { else if ($.Options.splitPosts.val === 'only-new') {
var $postOrig = postAreaNew.closest(".post-data"); var $postOrig = postAreaNew.closest(".post-data");
if (!$postOrig.length) { if (!$postOrig.length)
$postOrig = postAreaNew.closest(".modal-content").find(".post-data"); $postOrig = postAreaNew.closest(".modal-content").find(".post-data");
}
if ($postOrig.length) if ($postOrig.length)
usePostSpliting = false; usePostSpliting = false;
@ -749,7 +747,7 @@ function replyTextInput(e) {
var $this = $( this ); var $this = $( this );
var tweetForm = $this.parents("form"); var tweetForm = $this.parents("form");
if( tweetForm != undefined ) { if( tweetForm != undefined ) {
if ($.Options.getUnicodeConversionOpt() !== "disable") if ($.Options.unicodeConversion.val !== 'disable')
$this.val(convert2Unicodes($this.val(), $this)); $this.val(convert2Unicodes($this.val(), $this));
if (usePostSpliting && !$this.parents('.directMessages').length) { if (usePostSpliting && !$this.parents('.directMessages').length) {
@ -933,14 +931,14 @@ function replyTextKeySend(e) {
var tweetAction = tweetForm.find(".post-submit"); var tweetAction = tweetForm.find(".post-submit");
if( !tweetAction.length ) tweetAction = tweetForm.find(".dm-submit"); if( !tweetAction.length ) tweetAction = tweetForm.find(".dm-submit");
if( $.Options.keyEnterToSend() && $('.dropdown-menu').css('display') == 'none'){ if ($.Options.keysSend.val === 'enter' && $('.dropdown-menu').css('display') == 'none') {
if (e.keyCode === 13 && (!e.metaKey && !e.ctrlKey)) { if (e.keyCode === 13 && (!e.metaKey && !e.ctrlKey)) {
$this.val($this.val().trim()); $this.val($this.val().trim());
if( !tweetAction.hasClass("disabled")) { if( !tweetAction.hasClass("disabled")) {
tweetAction.click(); tweetAction.click();
} }
} }
} else if( !$.Options.keyEnterToSend() ){ } else if ($.Options.keysSend.val === 'ctrlenter') {
if (e.keyCode === 13 && (e.metaKey || e.ctrlKey)) { if (e.keyCode === 13 && (e.metaKey || e.ctrlKey)) {
$this.val($this.val().trim()); $this.val($this.val().trim());
if( !tweetAction.hasClass("disabled") ) { if( !tweetAction.hasClass("disabled") ) {
@ -1295,37 +1293,29 @@ function convert2Unicodes(s, ta)
ta.data("disabledUnicodeRules", []); ta.data("disabledUnicodeRules", []);
var ranges = getRangesForUnicodeConversion(s); var ranges = getRangesForUnicodeConversion(s);
var list; var list;
if ($.Options.getUnicodeConversionOpt() === "enable" || $.Options.getConvertPunctuationsOpt()) if ($.Options.unicodeConversion.val === 'enable' || $.Options.convertPunctuations.val) {
{
list = unicodeConversionList.punctuation; list = unicodeConversionList.punctuation;
s = getUnicodeReplacement(s, list, ranges, ta); s = getUnicodeReplacement(s, list, ranges, ta);
} }
if ($.Options.getUnicodeConversionOpt() === "enable"|| $.Options.getConvertEmotionsOpt()) if ($.Options.unicodeConversion.val === 'enable' || $.Options.convertEmotions.val) {
{
list = unicodeConversionList.emotions; list = unicodeConversionList.emotions;
s = getUnicodeReplacement(s, list, ranges, ta); s = getUnicodeReplacement(s, list, ranges, ta);
} }
if ($.Options.getUnicodeConversionOpt() === "enable"|| $.Options.getConvertSignsOpt()) if ($.Options.unicodeConversion.val === 'enable' || $.Options.convertSigns.val) {
{
list = unicodeConversionList.signs; list = unicodeConversionList.signs;
s = getUnicodeReplacement(s, list, ranges, ta); s = getUnicodeReplacement(s, list, ranges, ta);
} }
if ($.Options.getUnicodeConversionOpt() === "enable"|| $.Options.getConvertFractionsOpt()) if ($.Options.unicodeConversion.val === 'enable' || $.Options.convertFractions.val) {
{
list = unicodeConversionList.fractions; list = unicodeConversionList.fractions;
s = getUnicodeReplacement(s, list, ranges, ta); s = getUnicodeReplacement(s, list, ranges, ta);
} }
if (ta.data("unicodeConversionStack").length > 0) if (ta.data("unicodeConversionStack").length > 0) {
{
var ub = ta.closest(".post-area-new").find(".undo-unicode"); var ub = ta.closest(".post-area-new").find(".undo-unicode");
ub.text(polyglot.t("undo") + ": " + ta.data("unicodeConversionStack")[0].u); ub.text(polyglot.t("undo") + ": " + ta.data("unicodeConversionStack")[0].u);
$.MAL.enableButton(ub); $.MAL.enableButton(ub);
} } else
else
{
$.MAL.disableButton(ta.closest(".post-area-new").find(".undo-unicode")); $.MAL.disableButton(ta.closest(".post-area-new").find(".undo-unicode"));
}
return s; return s;
} }
@ -1446,7 +1436,7 @@ var postSubmit = function(e, oldLastPostId)
closeModal($this); closeModal($this);
} else if ($this.parents('.prompt-wrapper').length) { } else if ($this.parents('.prompt-wrapper').length) {
closePrompt(); closePrompt();
} }
if($this.closest('.post-area,.post-reply-content')){ if($this.closest('.post-area,.post-reply-content')){
$('.post-area-new').removeClass('open').find('textarea').blur(); $('.post-area-new').removeClass('open').find('textarea').blur();
@ -1471,7 +1461,7 @@ var retweetSubmit = function(e)
function changeStyle() { function changeStyle() {
var style, profile, menu; var style, profile, menu;
var theme = $.Options.getTheme(); var theme = $.Options.theme.val;
if(theme == 'nin') if(theme == 'nin')
{ {
@ -1582,7 +1572,7 @@ function initInterfaceCommon() {
$( ".modal-propagate").click( retweetSubmit ); $( ".modal-propagate").click( retweetSubmit );
$( ".expanded-content .show-more").bind('click', openConversationClick); $( ".expanded-content .show-more").bind('click', openConversationClick);
if ($.Options.getUnicodeConversionOpt() === "disable") if ($.Options.unicodeConversion.val === 'disable')
$( ".undo-unicode" ).click( undoLastUnicode ).css("display", "none"); $( ".undo-unicode" ).click( undoLastUnicode ).css("display", "none");
else else
$( ".undo-unicode" ).click( undoLastUnicode ); $( ".undo-unicode" ).click( undoLastUnicode );
@ -1601,7 +1591,7 @@ function initInterfaceCommon() {
replaceDashboards(); replaceDashboards();
$( window ).resize(replaceDashboards); $( window ).resize(replaceDashboards);
if ($.Options.getWhoToFollowOpt() === 'enable') if ($.Options.WhoToFollow.val === 'enable')
initWhoToFollow(); initWhoToFollow();
else else
killInterfaceModule('who-to-follow'); killInterfaceModule('who-to-follow');

28
js/interface_home.js

@ -6,8 +6,7 @@
//*********************************************** //***********************************************
//******************* DECLARATIONS ************** //******************* DECLARATIONS **************
//*********************************************** //***********************************************
var InterfaceFunctions = function() var InterfaceFunctions = function() {
{
//faço os binds no init //faço os binds no init
this.init = function() this.init = function()
{ {
@ -115,18 +114,17 @@ var InterfaceFunctions = function()
}); });
}); });
} }
if ($.Options.TopTrends.val === 'enable')
if ($.Options.getTopTrendsOpt() === 'enable')
initTopTrends(); initTopTrends();
else else
killInterfaceModule('toptrends'); killInterfaceModule('toptrends');
if ($.Options.getTwistdayReminderOpt() === 'enable') if ($.Options.TwistdayReminder.val === 'enable')
initTwistdayReminder(); initTwistdayReminder();
else else
killInterfaceModule('twistday-reminder'); killInterfaceModule('twistday-reminder');
} }
}; }
function initTopTrends() { function initTopTrends() {
var $tt = initInterfaceModule('toptrends'); var $tt = initInterfaceModule('toptrends');
@ -148,9 +146,9 @@ function updateTrendingHashtags() {
function(args, ret) { function(args, ret) {
//console.log('hashtags trends: '+ret); //console.log('hashtags trends: '+ret);
for( var i = 0; i < ret.length; i++ ) { for( var i = 0; i < ret.length; i++ ) {
if ($.Options.getFilterLangOpt() !== 'disable' && $.Options.getFilterLangForTopTrendsOpt()) if ($.Options.filterLang.val !== 'disable' && $.Options.filterLangForTopTrends.val)
var langFilterData = filterLang(ret[i]); var langFilterData = filterLang(ret[i]);
if (typeof(langFilterData) === 'undefined' || langFilterData['pass'] || $.Options.getFilterLangSimulateOpt()) { if (typeof(langFilterData) === 'undefined' || langFilterData['pass'] || $.Options.filterLangSimulate.val) {
var $li = $('<li>'); var $li = $('<li>');
var hashtagLinkTemplate = $('#hashtag-link-template').clone(true); var hashtagLinkTemplate = $('#hashtag-link-template').clone(true);
@ -159,7 +157,7 @@ function updateTrendingHashtags() {
hashtagLinkTemplate.text('#'+ret[i]); hashtagLinkTemplate.text('#'+ret[i]);
$li.append(hashtagLinkTemplate); $li.append(hashtagLinkTemplate);
if ($.Options.getFilterLangOpt() !== 'disable' && $.Options.getFilterLangSimulateOpt()) { if ($.Options.filterLang.val !== 'disable' && $.Options.filterLangSimulate.val) {
if (typeof(langFilterData) !== 'undefined') { if (typeof(langFilterData) !== 'undefined') {
$li.append(' <span class="langFilterSimData"><em>'+((langFilterData['pass']) ? polyglot.t('passed') : polyglot.t('blocked'))+'</em>: '+langFilterData['prob'][0].toString()+'</span>'); $li.append(' <span class="langFilterSimData"><em>'+((langFilterData['pass']) ? polyglot.t('passed') : polyglot.t('blocked'))+'</em>: '+langFilterData['prob'][0].toString()+'</span>');
} else { } else {
@ -180,10 +178,10 @@ function updateTrendingHashtags() {
console.log('Error with gettrendinghashtags. Older twister daemon?'); console.log('Error with gettrendinghashtags. Older twister daemon?');
}, {} }, {}
); );
if ($list.children().length && $.Options.getTopTrendsAutoUpdateOpt() === 'enable' && $.Options.getTopTrendsAutoUpdateTimerOpt() > 0) if ($list.children().length && $.Options.TopTrendsAutoUpdate.val === 'enable' && $.Options.TopTrendsAutoUpdateTimer.val > 0)
setTimeout(updateTrendingHashtags, $.Options.getTopTrendsAutoUpdateTimerOpt()*1000); setTimeout(updateTrendingHashtags, $.Options.TopTrendsAutoUpdateTimer.val * 1000);
} }
}; }
function initTwistdayReminder() { function initTwistdayReminder() {
var $module = initInterfaceModule('twistday-reminder'); var $module = initInterfaceModule('twistday-reminder');
@ -235,7 +233,7 @@ function refreshTwistdayReminder() {
list.find('[data-screen-name='+lucky+']').closest('li').remove(); list.find('[data-screen-name='+lucky+']').closest('li').remove();
} }
var showUpcomingTimer = ($.Options.getTwistdayReminderShowUpcomingOpt() === 'enable') ? $.Options.getTwistdayReminderShowUpcomingTimerOpt() *3600 : 0; var showUpcomingTimer = ($.Options.TwistdayReminderShowUpcoming.val === 'enable') ? $.Options.TwistdayReminderShowUpcomingTimer.val * 3600 : 0;
var listCurrent = $module.find('.current .list'); var listCurrent = $module.find('.current .list');
var listUpcoming = $module.find('.upcoming .list'); var listUpcoming = $module.find('.upcoming .list');
var d = new Date(); var d = new Date();
@ -283,8 +281,8 @@ function refreshTwistdayReminder() {
function(arg, ret) { console.log('ajax error:' + ret); }, null); function(arg, ret) { console.log('ajax error:' + ret); }, null);
} }
} }
if ($.Options.getTwistdayReminderAutoUpdateOpt() === 'enable' && $.Options.getTwistdayReminderAutoUpdateTimerOpt() > 0) if ($.Options.TwistdayReminderAutoUpdate.val === 'enable' && $.Options.TwistdayReminderAutoUpdateTimer.val > 0)
setTimeout(refreshTwistdayReminder, $.Options.getTwistdayReminderAutoUpdateTimerOpt()*1000); setTimeout(refreshTwistdayReminder, $.Options.TwistdayReminderAutoUpdateTimer.val * 1000);
} }
} }

34
js/interface_localization.js

@ -6,24 +6,22 @@
// translators: add your language code here such as "es" for Spanish, "ru" for Russian // translators: add your language code here such as "es" for Spanish, "ru" for Russian
var knownLanguages = ["en","es","nl","it","fr","ru","de","zh-CN","ja","pt-BR","tr","uk","cs"]; var knownLanguages = ["en","es","nl","it","fr","ru","de","zh-CN","ja","pt-BR","tr","uk","cs"];
if( $.Options.getOption('locLang','auto') == 'auto'){ if ($.Options.locLang.val === 'auto') {
// detect language with JavaScript // detect language with JavaScript
preferredLanguage = window.navigator.userLanguage || window.navigator.language || "en"; preferredLanguage = window.navigator.userLanguage || window.navigator.language || 'en';
if(knownLanguages.indexOf(preferredLanguage) > -1){ if (knownLanguages.indexOf(preferredLanguage) > -1) {
// en for en or similar // en for en or similar
preferredLanguage = preferredLanguage; preferredLanguage = preferredLanguage;
} } else if (knownLanguages.indexOf(preferredLanguage.split('-')[0]) > -1) {
else if(knownLanguages.indexOf(preferredLanguage.split("-")[0]) > -1){ // en for en-US or similar
// en for en-US or similar preferredLanguage = preferredLanguage.split('-')[0];
preferredLanguage = preferredLanguage.split("-")[0]; } else {
} // did not find match
else{ preferredLanguage = 'en';
// did not find match }
preferredLanguage = "en"; } else
} preferredLanguage = $.Options.locLang.val;
}else{
preferredLanguage = $.Options.getOption('locLang','en');
}
// set up Polyglot // set up Polyglot
polyglot = new Polyglot(); polyglot = new Polyglot();
var wordset = {}; var wordset = {};

68
js/mobile_abstract.js

@ -24,13 +24,13 @@ var MAL = function()
$.mobile.hidePageLoadingMsg(); $.mobile.hidePageLoadingMsg();
var curPage = $.mobile.activePage.attr("id"); var curPage = $.mobile.activePage.attr("id");
$( '#'+curPage+' .content ul.posts').listview('refresh'); $( '#'+curPage+' .content ul.posts').listview('refresh');
installPostboardClick(); installPostboardClick();
} else { } else {
$(".postboard-loading").hide(); $(".postboard-loading").hide();
} }
} }
this.dmThreadListLoaded = function() { this.dmThreadListLoaded = function() {
if( $.hasOwnProperty("mobile") ) { if( $.hasOwnProperty("mobile") ) {
$.mobile.hidePageLoadingMsg(); $.mobile.hidePageLoadingMsg();
@ -103,8 +103,8 @@ var MAL = function()
newTweetsBarMenu.text(String(newPosts)); newTweetsBarMenu.text(String(newPosts));
newTweetsBarMenu.addClass("show"); newTweetsBarMenu.addClass("show");
if ($.Options.getShowDesktopNotifPostsOpt() === 'enable') { if ($.Options.showDesktopNotifPosts.val === 'enable') {
this.showDesktopNotif(false, polyglot.t('You got')+' '+polyglot.t('new_posts', newPosts)+' '+polyglot.t('in postboard')+'.', false,'twister_notification_new_posts', $.Options.getShowDesktopNotifPostsTimerOpt(), (function() { this.showDesktopNotif(false, polyglot.t('You got')+' '+polyglot.t('new_posts', newPosts)+' '+polyglot.t('in postboard')+'.', false,'twister_notification_new_posts', $.Options.showDesktopNotifPostsTimer.val, (function() {
requestTimelineUpdate('pending',this,followingUsers,promotedPostsOnly); requestTimelineUpdate('pending',this,followingUsers,promotedPostsOnly);
}).bind(newPosts), false) }).bind(newPosts), false)
} }
@ -117,7 +117,7 @@ var MAL = function()
} }
} }
} }
this.getStreamPostsParent = function() { this.getStreamPostsParent = function() {
if( $.hasOwnProperty("mobile") ) { if( $.hasOwnProperty("mobile") ) {
return $( '.timeline ul'); return $( '.timeline ul');
@ -183,7 +183,7 @@ var MAL = function()
return "#hashtag?hashtag=" + h; return "#hashtag?hashtag=" + h;
} }
} }
this.dmchatUrl = function(username) { this.dmchatUrl = function(username) {
if( $.hasOwnProperty("mobile") ) { if( $.hasOwnProperty("mobile") ) {
return "#dmchat?user=" + username; return "#dmchat?user=" + username;
@ -199,7 +199,7 @@ var MAL = function()
return "#following?user=" + username; return "#following?user=" + username;
} }
} }
this.followUrl = function(username) { this.followUrl = function(username) {
if( $.hasOwnProperty("mobile") ) { if( $.hasOwnProperty("mobile") ) {
return "#following?follow=" + username; return "#following?follow=" + username;
@ -232,7 +232,7 @@ var MAL = function()
} }
} }
this.updateNewMentionsUI = function(newMentions) { this.updateNewMentionsUI = function(newMentions) {
if( $.hasOwnProperty("mobile") ) { if( $.hasOwnProperty("mobile") ) {
var $mentionsCounterBtnText = $(".mentions-count .ui-btn-text"); var $mentionsCounterBtnText = $(".mentions-count .ui-btn-text");
@ -398,20 +398,22 @@ var MAL = function()
window.location.href = "home.html"; window.location.href = "home.html";
} }
} }
this.soundNotifyMentions = function() { this.soundNotifyMentions = function() {
if( $.hasOwnProperty("mobile") ) { if ($.mobile) {
} else { } else {
$.Options.mensNotif(); if ($.Options.sndMention.val !== 'false')
} playSound('player', $.Options.sndMention.val);
} }
};
this.soundNotifyDM = function() { this.soundNotifyDM = function() {
if( $.hasOwnProperty("mobile") ) { if ($.mobile) {
} else { } else {
$.Options.DMsNotif(); if ($.Options.sndDM.val !== 'false')
} playSound('playerSec', $.Options.sndDM.val);
} }
};
this.showDesktopNotif = function(notifyTitle, notifyBody, notifyIcon, notifyTag, notifyTimer, actionOnClick, actionOnPermDenied) { this.showDesktopNotif = function(notifyTitle, notifyBody, notifyIcon, notifyTag, notifyTimer, actionOnClick, actionOnPermDenied) {
function doNotification() { function doNotification() {
@ -451,7 +453,7 @@ var MAL = function()
} else { } else {
doNotification(); doNotification();
} }
} };
this.reqRepAfterCB = function(postLi, postsFromJson) { this.reqRepAfterCB = function(postLi, postsFromJson) {
if ($.hasOwnProperty("mobile")) { if ($.hasOwnProperty("mobile")) {
@ -488,18 +490,38 @@ var MAL = function()
jQuery.MAL = new MAL; jQuery.MAL = new MAL;
function playSound(player, sound) {
if ($.mobile) {
} else {
var player = $('#'+player);
if (player.length) {
player[0].pause();
//player.empty();
if (player[0].canPlayType('audio/mpeg;'))
player.attr({type: 'audio/mpeg', src: 'sound/' + sound + '.mp3'});
else
player.attr({type: 'audio/ogg', src: 'sound/' + sound + '.ogg'});
player[0].volume = $.Options.playerVol.val;
player[0].play();
} else
console.warn('cannot find player to play sound, selector: #'+player);
}
}
function filterLang(string) { function filterLang(string) {
var langFilterMode = $.Options.getFilterLangOpt(); var langFilterMode = $.Options.filterLang.val;
if (langFilterMode !== 'disable') { if (langFilterMode !== 'disable') {
var langFilterSubj = ''; var langFilterSubj = '';
var langFilterProb = []; var langFilterProb = [];
var langFilterPass = true; var langFilterPass = true;
var langFilterReason = ''; var langFilterReason = '';
var langFilterList = $.Options.getFilterLangListOpt(); var langFilterList = $.Options.filterLangList.val;
if (langFilterList.length > 0) { if (langFilterList.length > 0) {
var langFilterAccuracy = $.Options.getFilterLangAccuracyOpt(); var langFilterAccuracy = $.Options.filterLangAccuracy.val;
langFilterPass = (langFilterMode === 'whitelist') ? false : true; langFilterPass = (langFilterMode === 'whitelist') ? false : true;
langFilterReason = polyglot.t('this doesnt contain that', {'this': polyglot.t(langFilterMode), 'that': polyglot.t('language of this')}); langFilterReason = polyglot.t('this doesnt contain that', {'this': polyglot.t(langFilterMode), 'that': polyglot.t('language of this')});

988
js/options.js

File diff suppressed because it is too large Load Diff

20
js/twister_actions.js

@ -162,12 +162,12 @@ function requestPost(containerToAppend,username,resource,cbFunc,cbArgs){
console.log(postFromJson); console.log(postFromJson);
appendPostToContainer(postFromJson,args.containerToAppend); appendPostToContainer(postFromJson,args.containerToAppend);
if(args.cbFunc!=undefined) args.cbFunc(args.cbArgs); if(args.cbFunc!=undefined) args.cbFunc(args.cbArgs);
} }
}, },
{containerToAppend:containerToAppend,cbFunc:cbFunc,cbArgs:cbArgs} {containerToAppend:containerToAppend,cbFunc:cbFunc,cbArgs:cbArgs}
); );
} }
@ -185,7 +185,7 @@ function requestPostRecursively(containerToAppend,username,resource,count,useGet
} }
profilePostsLoading = true; profilePostsLoading = true;
if( useGetposts ) { if( useGetposts ) {
req = {username: username} req = {username: username}
if( max_id != -1 ) { if( max_id != -1 ) {
@ -290,7 +290,7 @@ function updateProfileData(profileModalContent, username) {
getFollowers( username, profileModalContent.find(".followers-count") ); getFollowers( username, profileModalContent.find(".followers-count") );
getNumFollowing( username, profileModalContent.find(".following-count") ); getNumFollowing( username, profileModalContent.find(".following-count") );
getWhoFollows ( username, profileModalContent.find(".who-follow") ); getWhoFollows ( username, profileModalContent.find(".who-follow") );
profileModalContent.find(".following-count").parent().attr("href", $.MAL.followingUrl(username)); profileModalContent.find(".following-count").parent().attr("href", $.MAL.followingUrl(username));
var postsView = profileModalContent.find(".postboard-posts"); var postsView = profileModalContent.find(".postboard-posts");
@ -333,7 +333,7 @@ function requestHashtag(postboard,hashtag,resource, timeoutArgs) {
dhtget( hashtag, resource, "m", dhtget( hashtag, resource, "m",
function(args, data) { function(args, data) {
processHashtag(args.postboard, args.hashtag, data); processHashtag(args.postboard, args.hashtag, data);
}, {postboard:postboard,hashtag:hashtag}, }, {postboard:postboard,hashtag:hashtag},
timeoutArgs); timeoutArgs);
} }
@ -345,14 +345,14 @@ function processHashtag(postboard, hashtag, data) {
if( !(key in _hashtagProcessedMap) ) { if( !(key in _hashtagProcessedMap) ) {
_hashtagProcessedMap[key] = true; _hashtagProcessedMap[key] = true;
if ($.Options.getFilterLangOpt() !== 'disable' && $.Options.getFilterLangForSearchingOpt()) { if ($.Options.filterLang.val !== 'disable' && $.Options.filterLangForSearching.val) {
if (typeof(userpost['rt']) !== 'undefined') { if (typeof(userpost['rt']) !== 'undefined') {
var msg = userpost['rt']['msg']; var msg = userpost['rt']['msg'];
} else { } else {
var msg = userpost['msg']; var msg = userpost['msg'];
} }
langFilterData = filterLang(msg); langFilterData = filterLang(msg);
if ($.Options.getFilterLangSimulateOpt()) { if ($.Options.filterLangSimulate.val) {
data[i]['langFilter'] = langFilterData; data[i]['langFilter'] = langFilterData;
} else { } else {
if (!langFilterData['pass']) if (!langFilterData['pass'])

2
js/twister_directmsg.js

@ -121,7 +121,7 @@ function newDirectMsg(msg, dm_screenname) {
if( lastPostId != undefined ) { if( lastPostId != undefined ) {
var paramsOrig = [defaultScreenName, lastPostId + 1, dm_screenname, msg] var paramsOrig = [defaultScreenName, lastPostId + 1, dm_screenname, msg]
var paramsOpt = paramsOrig var paramsOpt = paramsOrig
var copySelf = ($.Options.getDMCopySelfOpt() === 'enable') var copySelf = ($.Options.dmCopySelf.val === 'enable')
if( copySelf && dm_screenname[0] !== '*' ) { if( copySelf && dm_screenname[0] !== '*' ) {
paramsOpt = paramsOrig.concat(true) paramsOpt = paramsOrig.concat(true)
} }

8
js/twister_formatpost.js

@ -122,7 +122,7 @@ function postToElem( post, kind, promoted ) {
if (typeof(promoted) !== 'undefined' && promoted) { if (typeof(promoted) !== 'undefined' && promoted) {
elem.find('.post-propagate').remove(); elem.find('.post-propagate').remove();
} else { } else {
if ($.Options.getFilterLangOpt() !== 'disable' && $.Options.getFilterLangSimulateOpt()) { if ($.Options.filterLang.val !== 'disable' && $.Options.filterLangSimulate.val) {
// FIXME it's must be stuff from template actually // FIXME it's must be stuff from template actually
if (typeof(post['langFilter']) !== 'undefined') { if (typeof(post['langFilter']) !== 'undefined') {
if (typeof(post['langFilter']['prob'][0]) !== 'undefined') if (typeof(post['langFilter']['prob'][0]) !== 'undefined')
@ -253,8 +253,8 @@ function htmlFormatMsg(msg, mentions) {
} }
function proxyURL(url) { function proxyURL(url) {
var proxyOpt = $.Options.getUseProxyOpt(); var proxyOpt = $.Options.useProxy.val;
if (proxyOpt !== 'disable' && !$.Options.getUseProxyForImgOnlyOpt()) { if (proxyOpt !== 'disable' && !$.Options.useProxyForImgOnly.val) {
// proxy alternatives may be added to options page // proxy alternatives may be added to options page
if (proxyOpt === 'ssl-proxy-my-addr') { if (proxyOpt === 'ssl-proxy-my-addr') {
url = ['https://ssl-proxy.my-addr.org/myaddrproxy.php/', url = ['https://ssl-proxy.my-addr.org/myaddrproxy.php/',
@ -270,7 +270,7 @@ function proxyURL(url) {
// TODO: add options for emotions; msg = $.emotions(msg); // TODO: add options for emotions; msg = $.emotions(msg);
// TODO: add at least basic markdown (optional) like *text* -> bold text and _text_ -> italic text // TODO: add at least basic markdown (optional) like *text* -> bold text and _text_ -> italic text
function _formatText(msg) { function _formatText(msg) {
if ($.Options.getLineFeedsOpt() === 'enable') if ($.Options.displayLineFeeds.val === 'enable')
msg = msg.replace(/\n/g, '<br />'); msg = msg.replace(/\n/g, '<br />');
return msg; return msg;

11
js/twister_io.js

@ -208,7 +208,7 @@ function getProfileResource( username, resource, item, cbFunc, cbArg ){
function getFullname( username, item ){ function getFullname( username, item ){
// Set the username first in case the profile has no fullname // Set the username first in case the profile has no fullname
item.text(username); item.text(username);
getProfileResource( username, "fullname", undefined, getProfileResource( username, "fullname", undefined,
function(args, value) { function(args, value) {
if( value ) { if( value ) {
value.replace(/^\s+|\s+$/g, ''); value.replace(/^\s+|\s+$/g, '');
@ -217,7 +217,7 @@ function getFullname( username, item ){
} }
}, {item: item} ); }, {item: item} );
if (typeof(twisterFollowingO) !== 'undefined' && if (typeof(twisterFollowingO) !== 'undefined' &&
($.Options.getIsFollowingMeOpt() === 'everywhere' || item.hasClass('profile-name'))) { ($.Options.isFollowingMe.val === 'everywhere' || item.hasClass('profile-name'))) {
if (twisterFollowingO.knownFollowers.indexOf(username) > -1) { if (twisterFollowingO.knownFollowers.indexOf(username) > -1) {
item.addClass('isFollowing'); item.addClass('isFollowing');
item.attr("title", polyglot.t("follows you")); item.attr("title", polyglot.t("follows you"));
@ -332,10 +332,9 @@ function _putResourceIntoStorage(locator, data) {
// get avatar and set it in img.attr("src") // get avatar and set it in img.attr("src")
function getAvatar( username, img ){ function getAvatar( username, img ){
var theme = $.Options.getTheme(); if (username === 'nobody') {
if( username == "nobody" ) { img.attr('src', ($.Options.theme.val === 'nin') ?
if(theme == 'nin') {img.attr('src', "theme_nin/img/tornado_avatar.png");} 'theme_nin/img/tornado_avatar.png' : 'img/tornado_avatar.png');
else {img.attr('src', "img/tornado_avatar.png");}
return; return;
} }

8
js/twister_newmsgs.js

@ -102,8 +102,8 @@ function requestMentionsCount() {
if ( _newMentions ) { if ( _newMentions ) {
$.MAL.soundNotifyMentions(); $.MAL.soundNotifyMentions();
if ($.Options.getShowDesktopNotifMentionsOpt() === 'enable') { if ($.Options.showDesktopNotifMentions.val === 'enable') {
$.MAL.showDesktopNotif(false, polyglot.t('You got')+' '+polyglot.t('new_mentions', _newMentions)+'.', false,'twister_notification_new_mentions', $.Options.getShowDesktopNotifMentionsTimerOpt(), function(){$.MAL.showMentions(defaultScreenName)}, false) $.MAL.showDesktopNotif(false, polyglot.t('You got')+' '+polyglot.t('new_mentions', _newMentions)+'.', false,'twister_notification_new_mentions', $.Options.showDesktopNotifMentionsTimer.val, function(){$.MAL.showMentions(defaultScreenName)}, false)
} }
} }
} }
@ -117,8 +117,8 @@ function requestMentionsCount() {
if ( newDMs ) { if ( newDMs ) {
$.MAL.soundNotifyDM(); $.MAL.soundNotifyDM();
if ($.Options.getShowDesktopNotifDMsOpt() === 'enable') { if ($.Options.showDesktopNotifDMs.val === 'enable') {
$.MAL.showDesktopNotif(false, polyglot.t('You got')+' '+polyglot.t('new_direct_messages', newDMs)+'.', false, 'twister_notification_new_DMs', $.Options.getShowDesktopNotifDMsTimerOpt(), function(){$.MAL.showDMchat()}, false) $.MAL.showDesktopNotif(false, polyglot.t('You got')+' '+polyglot.t('new_direct_messages', newDMs)+'.', false, 'twister_notification_new_DMs', $.Options.showDesktopNotifDMsTimer.val, function(){$.MAL.showDMchat()}, false)
} }
} }
} }

15
js/twister_timeline.js

@ -365,9 +365,9 @@ function willBeHidden(post){
if (post['userpost']['rt']['n'] === defaultScreenName) if (post['userpost']['rt']['n'] === defaultScreenName)
return false; return false;
if ($.Options.getHideCloseRTsOpt() != 'disable' && if ($.Options.hideCloseRTs.val !== 'disable' &&
followingUsers.indexOf(post['userpost']['rt']['n']) > -1 && followingUsers.indexOf(post['userpost']['rt']['n']) > -1 &&
parseInt(post['userpost']['time']) - parseInt(post['userpost']['rt']['time']) < $.Options.getHideCloseRTsHourOpt() * 3600) parseInt(post['userpost']['time']) - parseInt(post['userpost']['rt']['time']) < $.Options.hideCloseRTsHour.val * 3600)
{ {
return true; return true;
} }
@ -376,12 +376,11 @@ function willBeHidden(post){
} else { } else {
var msg = post['userpost']['msg']; var msg = post['userpost']['msg'];
if ($.Options.getHideRepliesOpt() !== 'disable' && if ($.Options.hideReplies.val !== 'disable' && /^\@/.test(msg) &&
/^\@/.test(msg) &&
!(new RegExp('@' + defaultScreenName + '( |,|;|\\.|:|\\/|\\?|\\!|\\\\|\'|"|\\n|\\t|$)').test(msg))) !(new RegExp('@' + defaultScreenName + '( |,|;|\\.|:|\\/|\\?|\\!|\\\\|\'|"|\\n|\\t|$)').test(msg)))
{ {
if ($.Options.getHideRepliesOpt() === 'only-me' || if ($.Options.hideReplies.val === 'only-me' ||
($.Options.getHideRepliesOpt() === 'following' && ($.Options.hideReplies.val === 'following' &&
followingUsers.indexOf(msg.substring(1, msg.search(/ |,|;|\.|:|\/|\?|\!|\\|'|"|\n|\t|$/))) === -1 )) followingUsers.indexOf(msg.substring(1, msg.search(/ |,|;|\.|:|\/|\?|\!|\\|'|"|\n|\t|$/))) === -1 ))
{ {
return true; return true;
@ -389,9 +388,9 @@ function willBeHidden(post){
} }
} }
if ($.Options.getFilterLangOpt() !== 'disable' && $.Options.getFilterLangForPostboardOpt()) { if ($.Options.filterLang.val !== 'disable' && $.Options.filterLangForPostboard.val) {
post['langFilter'] = filterLang(msg); post['langFilter'] = filterLang(msg);
if (!post['langFilter']['pass'] && !$.Options.getFilterLangSimulateOpt()) { if (!post['langFilter']['pass'] && !$.Options.filterLangSimulate.val) {
// TODO maybe we need a counter of posts blocked by language filter and even caching of them and button to show? // TODO maybe we need a counter of posts blocked by language filter and even caching of them and button to show?
//console.log('post by @'+post['userpost']['n']+' was hidden because it didn\'t passed by language filter:'); //console.log('post by @'+post['userpost']['n']+' was hidden because it didn\'t passed by language filter:');
return true; return true;

10
options.html

@ -21,10 +21,12 @@
<script src="js/polyglot.min.js"></script> <script src="js/polyglot.min.js"></script>
<script src="js/interface_localization.js"></script> <script src="js/interface_localization.js"></script>
<script>$(function(){ <script>
initInterfaceCommon(); $(function() {
$.Options.InitOptions();}) initInterfaceCommon();
changeStyle(); $.Options.initControls();
})
changeStyle();
</script> </script>
</head> </head>

11
theme_nin/js/theme_option.js

@ -46,5 +46,16 @@ $(function(){
$(this).text('').attr('title', polyglot.t('Unfollow')); $(this).text('').attr('title', polyglot.t('Unfollow'));
}); });
if (/\/options.html$/i.test(document.location))
$(document).ready(localizeLabels);
}); });
function localizeLabels() {
$("label[for=tab_language]").text(polyglot.t("Language"));
$("label[for=t-2]").text(polyglot.t("Theme"));
$("label[for=t-3]").text(polyglot.t("Notifications"));
$("label[for=t-4]").text(polyglot.t("Keys"));
$("label[for=t-5]").text(polyglot.t("Appearance"));
$("label[for=t-6]").text(polyglot.t("Users"));
}

Loading…
Cancel
Save