diff --git a/js/quick-reply.js b/js/quick-reply.js index a3cf1404..1934c4c7 100644 --- a/js/quick-reply.js +++ b/js/quick-reply.js @@ -326,6 +326,7 @@ $postForm.find('th .close-btn').click(function() { $origPostForm.find('textarea[name="body"]').attr('id', 'body'); $postForm.remove(); + floating_link(); }); // Fix bug when table gets too big for form. Shouldn't exist, but crappy CSS etc. @@ -372,4 +373,48 @@ }); } }); + + var floating_link = function() { + if (!settings.get('floating_link', false)) + return; + $('Quick Reply') + .click(function() { + show_quick_reply(); + $(this).remove(); + }).prependTo($('body')); + + $(window).on('quick-reply', function() { + $('.quick-reply-btn').remove(); + }); + }; + + if (settings.get('floating_link', false)) { + $(window).ready(function() { + $('').appendTo($('head')); + + floating_link(); + + if (settings.get('hide_at_top', true)) { + $('.quick-reply-btn').hide(); + + $(window).scroll(function() { + if ($(this).width() <= 800) + return; + if ($(this).scrollTop() < $('form[name="post"]:first').offset().top + $('form[name="post"]:first').height() - 100) + $('.quick-reply-btn').fadeOut(100); + else + $('.quick-reply-btn').fadeIn(100); + }).scroll(); + } + }); + } })(); diff --git a/js/settings.js b/js/settings.js new file mode 100644 index 00000000..e98b35ae --- /dev/null +++ b/js/settings.js @@ -0,0 +1,40 @@ +/* +* settings.js +* https://github.com/savetheinternet/Tinyboard/blob/master/js/settings.js +* +* Optional settings. Used to customize some scripts without needing to tweak their code. +* Notes: +* - You must include this script first. +* - This file is just an example. +* - You should copy settings.js to something like instance.settings.js to prevent conflicts when upgrading. +* - This file should always be optional. +* +* Released under the MIT license +* Copyright (c) 2013 Michael Save +* +* Usage: +* $config['additional_javascript'][] = 'js/jquery.min.js'; +* $config['additional_javascript'][] = 'js/instance.settings.js'; +* // $config['additional_javascript'][] = 'js/quick-reply.js'; +* +* Usage in scripts: +* var settings = new script_settings('my-script'); +* var some_value = settings.get('option', 'default value'); +* +*/ + +var tb_settings = {}; + +// quick-reply.js +tb_settings['quick-reply'] = { + // Hide form when scrolled to top of page (where original form is visible) + hide_at_top: true, + // "Quick reply" button floating at the top right hand corner of the page at all times + floating_link: true +}; + +// ajax.js +tb_settings['ajax'] = { + // Always act as if "noko" was typed when posting replies with the ajax script + always_noko_replies: false +};