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
+};