|
|
|
$(function() {
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
var _desktopNotificationTimeout = 40; // it should be an option
|
|
|
|
|
|
|
|
var TwisterOptions = function()
|
|
|
|
{
|
|
|
|
this.getOption = function(optionName, defaultValue) {
|
|
|
|
var keyName = "options:" + optionName;
|
|
|
|
if( $.localStorage.isSet(keyName) )
|
|
|
|
return $.localStorage.get(keyName);
|
|
|
|
else
|
|
|
|
return defaultValue;
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setOption = function(optionName, value) {
|
|
|
|
var keyName = "options:" + optionName;
|
|
|
|
$.localStorage.set(keyName, value);
|
|
|
|
}
|
|
|
|
|
|
|
|
this.soundNotifOptions = function() {
|
|
|
|
$('#notifyForm select').each(function(){
|
|
|
|
this.value = $.Options.getOption(this.id, "false");
|
|
|
|
});
|
|
|
|
|
|
|
|
var player = $('#player');
|
|
|
|
player[0].pause();
|
|
|
|
$('#player').empty();
|
|
|
|
|
|
|
|
$('form#notifyForm').on('change','select',function(){
|
|
|
|
$.Options.setOption(this.id, this.value);
|
|
|
|
|
|
|
|
if(this.value == false) {player[0].pause(); return;}
|
|
|
|
if (player[0].canPlayType('audio/mpeg;')) {
|
|
|
|
player.attr('type', 'audio/mpeg');
|
|
|
|
player.attr('src', 'sound/'+this.value+'.mp3');
|
|
|
|
} else {
|
|
|
|
player.attr('type', 'audio/ogg');
|
|
|
|
player.attr('src', 'sound/'+this.value+'.ogg');
|
|
|
|
}
|
|
|
|
|
|
|
|
player[0].play();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
this.volumeControl = function() {
|
|
|
|
var playerVol = $('#playerVol');
|
|
|
|
playerVol[0].value = $.Options.getOption(playerVol[0].id, 1);
|
|
|
|
$('.volValue').text((playerVol[0].value * 100).toFixed());
|
|
|
|
|
|
|
|
playerVol.on('change',function(){
|
|
|
|
$.Options.setOption(this.id, this.value);
|
|
|
|
$('#player')[0].volume = (this.value);
|
|
|
|
$('.volValue').text((this.value * 100).toFixed());
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
this.DMsNotif = function() {
|
|
|
|
var sndDM = $.Options.getOption('sndDM', "false");
|
|
|
|
if( sndDM == "false") return;
|
|
|
|
var player = $('#player');
|
|
|
|
$('#player').empty();
|
|
|
|
|
|
|
|
if (player[0].canPlayType('audio/mpeg;')) {
|
|
|
|
player.attr('type', 'audio/mpeg');
|
|
|
|
player.attr('src', 'sound/'+sndDM+'.mp3');
|
|
|
|
} else {
|
|
|
|
player.attr('type', 'audio/ogg');
|
|
|
|
player.attr('src', 'sound/'+sndDM+'.ogg');
|
|
|
|
}
|
|
|
|
player[0].volume = $.Options.getOption('playerVol',1);
|
|
|
|
player[0].play();
|
|
|
|
}
|
|
|
|
|
|
|
|
this.mensNotif = function() {
|
|
|
|
var sndMention = $.Options.getOption('sndMention', "false");
|
|
|
|
if(sndMention == "false") return;
|
|
|
|
var player = $('#playerSec');
|
|
|
|
$('#playerSec').empty();
|
|
|
|
|
|
|
|
if (player[0].canPlayType('audio/mpeg;')) {
|
|
|
|
player.attr('type', 'audio/mpeg');
|
|
|
|
player.attr('src', 'sound/'+sndMention+'.mp3');
|
|
|
|
} else {
|
|
|
|
player.attr('type', 'audio/ogg');
|
|
|
|
player.attr('src', 'sound/'+sndMention+'.ogg');
|
|
|
|
}
|
|
|
|
player[0].volume = $.Options.getOption('playerVol',1);
|
|
|
|
player[0].play();
|
|
|
|
}
|
|
|
|
|
|
|
|
this.notificationDesktopTest = function() {
|
|
|
|
$('#notifications-desktop-test').on('click', function(){
|
|
|
|
var desktopNotification = new Notify(polyglot.t('notify_desktop_title'), {
|
|
|
|
body: polyglot.t('notify_desktop_test'),
|
|
|
|
icon: '../img/twister_mini.png',
|
|
|
|
tag: 'twister_notification_test',
|
|
|
|
timeout: _desktopNotificationTimeout,
|
|
|
|
notifyError: function() { alert(polyglot.t('notify_desktop_error')); }
|
|
|
|
});
|
|
|
|
if (Notify.permissionLevel === 'denied') {
|
|
|
|
alert(polyglot.t('notify_desktop_perm_denied'));
|
|
|
|
} else {
|
|
|
|
desktopNotification.show();
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
this.keysSendDefault = "ctrlenter";
|
|
|
|
this.keysSend = function() {
|
|
|
|
$('#keysOpt select')[0].value = $.Options.getOption('keysSend',this.keysSendDefault);
|
|
|
|
|
|
|
|
$('#keysOpt select').on('change', function(){
|
|
|
|
$.Options.setOption(this.id, this.value);
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
this.keyEnterToSend = function() {
|
|
|
|
return $.Options.getOption('keysSend',this.keysSendDefault) == "enter";
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setLang = function() {
|
|
|
|
$('#language').val($.Options.getOption('locLang','auto'))
|
|
|
|
$('#language').on('change', function(){
|
|
|
|
$.Options.setOption('locLang', $(this).val());
|
|
|
|
location.reload();
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
this.getTheme = function() {
|
|
|
|
return $.Options.getOption('theme','original');
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setTheme = function() {
|
|
|
|
$('#theme').val(this.getTheme())
|
|
|
|
$('#theme').on('change', function(){
|
|
|
|
$.Options.setOption('theme', $(this).val());
|
|
|
|
location.reload();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
this.getLineFeedsOpt = function() {
|
|
|
|
return $.Options.getOption('displayLineFeeds',"disable");
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setLineFeedsOpt = function() {
|
|
|
|
$('#lineFeedsOpt select')[0].value = this.getLineFeedsOpt();
|
|
|
|
|
|
|
|
$('#lineFeedsOpt select').on('change', function(){
|
|
|
|
$.Options.setOption(this.id, this.value);
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
this.getShowPreviewOpt = function() {
|
|
|
|
return $.Options.getOption('displayPreview',"disable");
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setShowPreviewOpt = function () {
|
|
|
|
$('#showPreviewOpt select')[0].value = this.getShowPreviewOpt();
|
|
|
|
|
|
|
|
$('#showPreviewOpt select').on('change', function(){
|
|
|
|
$.Options.setOption(this.id, this.value);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
this.getUnicodeConversionOpt = function () {
|
|
|
|
return $.Options.getOption('unicodeConversion', "disable");
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setUnicodeConversionOpt = function () {
|
|
|
|
$("#unicodeConversion")[0].value = this.getUnicodeConversionOpt();
|
|
|
|
|
|
|
|
if (this.getUnicodeConversionOpt() === "custom")
|
|
|
|
$("#unicodeConversionOpt .suboptions")[0].style.height = "230px";
|
|
|
|
|
|
|
|
$("#unicodeConversion").on('change', function () {
|
|
|
|
$.Options.setOption(this.id, this.value);
|
|
|
|
if (this.value === "custom")
|
|
|
|
$("#unicodeConversionOpt .suboptions")[0].style.height = "230px";
|
|
|
|
else
|
|
|
|
$("#unicodeConversionOpt .suboptions")[0].style.height = "0px";
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
this.getConvertPunctuationsOpt = function() {
|
|
|
|
return $.Options.getOption('convertPunctuationsOpt', false);
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setConvertPunctuationsOpt = function () {
|
|
|
|
$('#convertPunctuationsOpt')[0].checked = this.getConvertPunctuationsOpt();
|
|
|
|
|
|
|
|
$('#convertPunctuationsOpt').on('change', function(){
|
|
|
|
$.Options.setOption(this.id, this.checked);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
this.getConvertEmotionsOpt = function() {
|
|
|
|
return $.Options.getOption('convertEmotionsOpt', false);
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setConvertEmotionsOpt = function () {
|
|
|
|
$('#convertEmotionsOpt')[0].checked = this.getConvertEmotionsOpt();
|
|
|
|
|
|
|
|
$('#convertEmotionsOpt').on('change', function(){
|
|
|
|
$.Options.setOption(this.id, this.checked);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
this.getConvertSignsOpt = function() {
|
|
|
|
return $.Options.getOption('convertSignsOpt', false);
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setConvertSignsOpt = function () {
|
|
|
|
$('#convertSignsOpt')[0].checked = this.getConvertSignsOpt();
|
|
|
|
|
|
|
|
$('#convertSignsOpt').on('change', function(){
|
|
|
|
$.Options.setOption(this.id, this.checked);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
this.getConvertFractionsOpt = function() {
|
|
|
|
return $.Options.getOption('convertFractionsOpt', false);
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setConvertFractionsOpt = function () {
|
|
|
|
$('#convertFractionsOpt')[0].checked = this.getConvertFractionsOpt();
|
|
|
|
|
|
|
|
$('#convertFractionsOpt').on('change', function(){
|
|
|
|
$.Options.setOption(this.id, this.checked);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
this.getUseProxyOpt = function () {
|
|
|
|
return $.Options.getOption('useProxy', 'disable');
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setUseProxyOpt = function () {
|
|
|
|
$('#useProxy')[0].value = this.getUseProxyOpt();
|
|
|
|
|
|
|
|
if (this.getUseProxyOpt() === 'disable')
|
|
|
|
$('#useProxyForImgOnly').attr('disabled','disabled');
|
|
|
|
|
|
|
|
$('#useProxy').on('change', function () {
|
|
|
|
$.Options.setOption(this.id, this.value);
|
|
|
|
|
|
|
|
if (this.value === 'disable')
|
|
|
|
$('#useProxyForImgOnly').attr('disabled','disabled');
|
|
|
|
else
|
|
|
|
$('#useProxyForImgOnly').removeAttr('disabled');
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
this.getUseProxyForImgOnlyOpt = function () {
|
|
|
|
return $.Options.getOption('useProxyForImgOnly', false);
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setUseProxyForImgOnlyOpt = function () {
|
|
|
|
$('#useProxyForImgOnly')[0].checked = this.getUseProxyForImgOnlyOpt();
|
|
|
|
|
|
|
|
$('#useProxyForImgOnly').on('change', function () {
|
|
|
|
$.Options.setOption(this.id, this.checked);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
this.getSplitPostsOpt = function (){
|
|
|
|
return $.Options.getOption('splitPosts', 'disable');
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setSplitPostsOpt = function () {
|
|
|
|
$('#splitPosts')[0].value = this.getSplitPostsOpt();
|
|
|
|
|
|
|
|
$('#splitPosts').on('change', function () {
|
|
|
|
$.Options.setOption(this.id, this.value);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
this.getHideRepliesOpt = function () {
|
|
|
|
return $.Options.getOption('hideReplies', 'following');
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setHideRepliesOpt = function () {
|
|
|
|
$('#hideReplies')[0].value = this.getHideRepliesOpt();
|
|
|
|
|
|
|
|
$('#hideReplies').on('change', function () {
|
|
|
|
$.Options.setOption(this.id, this.value);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
this.getHideCloseRTsOpt = function () {
|
|
|
|
return $.Options.getOption('hideCloseRTs', 'disable');
|
|
|
|
};
|
|
|
|
|
|
|
|
this.setHideCloseRTsOpt = function () {
|
|
|
|
$('#hideCloseRTs')[0].value = this.getHideCloseRTsOpt();
|
|
|
|
|
|
|
|
if (this.getHideCloseRTsOpt() === 'disable') {
|
|
|
|
$('#hideCloseRTsDesc')[0].style.display = 'none';
|
|
|
|
} else {
|
|
|
|
$('#hideCloseRTsDesc')[0].style.display = 'inline';
|
|
|
|
}
|
|
|
|
|
|
|
|
$('#hideCloseRTs').on('change', function () {
|
|
|
|
$.Options.setOption(this.id, this.value);
|
|
|
|
|
|
|
|
if (this.value === 'disable') {
|
|
|
|
$('#hideCloseRTsDesc')[0].style.display = 'none';
|
|
|
|
} else {
|
|
|
|
$('#hideCloseRTsDesc')[0].style.display = 'inline';
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
this.getHideCloseRTsHourOpt = function () {
|
|
|
|
return parseInt($.Options.getOption('hideCloseRtsHour', '1'));
|
|
|
|
};
|
|
|
|
|
|
|
|
this.setHideCloseRTsHourOpt = function () {
|
|
|
|
$('#hideCloseRtsHour')[0].value = this.getHideCloseRTsHourOpt().toString();
|
|
|
|
|
|
|
|
$('#hideCloseRtsHour').on('keyup', function () {
|
|
|
|
if (/^\d+$/.test(this.value)) {
|
|
|
|
this.style.backgroundColor = '';
|
|
|
|
$.Options.setOption(this.id, this.value);
|
|
|
|
$(this).next('span').text(polyglot.t('hour(s)'));
|
|
|
|
} else {
|
|
|
|
this.style.backgroundColor = '#f00';
|
|
|
|
$(this).next('span').text(polyglot.t('only numbers are allowed!'));
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
this.getIsFollowingMeOpt = function () {
|
|
|
|
return $.Options.getOption('isFollowingMe');
|
|
|
|
};
|
|
|
|
|
|
|
|
this.setIsFollowingMeOpt = function () {
|
|
|
|
$('#isFollowingMe')[0].value = this.getIsFollowingMeOpt();
|
|
|
|
|
|
|
|
$('#isFollowingMe').on('change', function () {
|
|
|
|
$.Options.setOption(this.id, this.value);
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
this.getDMCopySelfOpt = function() {
|
|
|
|
return $.Options.getOption('dmCopySelf',"enable");
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setDMCopySelfOpt = function () {
|
|
|
|
$('#dmCopySelfOpt select')[0].value = this.getDMCopySelfOpt();
|
|
|
|
|
|
|
|
$('#dmCopySelfOpt select').on('change', function(){
|
|
|
|
$.Options.setOption(this.id, this.value);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
this.InitOptions = function() {
|
|
|
|
this.soundNotifOptions();
|
|
|
|
this.volumeControl();
|
|
|
|
this.notificationDesktopTest();
|
|
|
|
this.keysSend();
|
|
|
|
this.setLang();
|
|
|
|
this.setTheme();
|
|
|
|
this.setLineFeedsOpt();
|
|
|
|
this.setShowPreviewOpt();
|
|
|
|
this.setUnicodeConversionOpt();
|
|
|
|
this.setConvertPunctuationsOpt();
|
|
|
|
this.setConvertEmotionsOpt();
|
|
|
|
this.setConvertSignsOpt();
|
|
|
|
this.setConvertFractionsOpt();
|
|
|
|
this.setUseProxyOpt();
|
|
|
|
this.setUseProxyForImgOnlyOpt();
|
|
|
|
this.setSplitPostsOpt();
|
|
|
|
this.setHideRepliesOpt();
|
|
|
|
this.setHideCloseRTsHourOpt();
|
|
|
|
this.setHideCloseRTsOpt();
|
|
|
|
this.setIsFollowingMeOpt();
|
|
|
|
this.setDMCopySelfOpt();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
jQuery.Options = new TwisterOptions;
|
|
|
|
|
|
|
|
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("Postboard"));
|
|
|
|
$("label[for=t-6]").text(polyglot.t("Users"));
|
|
|
|
}
|
|
|
|
|
|
|
|
$(document).ready(localizeLabels);
|