diff --git a/js/flag-preview.js b/js/flag-preview.js new file mode 100644 index 00000000..1a9d07fb --- /dev/null +++ b/js/flag-preview.js @@ -0,0 +1,45 @@ +/* + * flag-preview.js - Add preview of user flag. + * + * Usage: + * $config['additional_javascript'][] = 'js/jquery.min.js'; + * $config['additional_javascript'][] = 'js/flag-preview.js'; + * $config['flag_preview'] = true; + */ + +function getFlagUrl(value){ + // No flag or None flag + if(!value || value == "") { + return "/static/blank.gif" + } else { + return "/static/flags/"+value+".png" + } +} + +function updatePreviewWithSelected(img, select) { + img.attr("src", getFlagUrl(select.find(":selected").val())); +} + +$(document).ready(function(){ + var flagImg = $('#flag_preview'); + var flagSelect = $('#user_flag'); + updatePreviewWithSelected(flagImg,flagSelect); + + flagSelect.change(function() { + flagImg.attr("src", getFlagUrl($(this).find(":selected").val())); + }); +}); + +$(window).on('quick-reply', function() { + var flagImg = $('#flag_preview'); + var quickReplyFlagImg = $('form#quick-reply img[name="flag_preview"]') + updatePreviewWithSelected(quickReplyFlagImg,$('form#quick-reply select[name="user_flag"]')); + $('form#quick-reply select[name="user_flag"]').change(function() { + updatePreviewWithSelected(quickReplyFlagImg,$(this)); + updatePreviewWithSelected(flagImg,$(this)); + }); + $('#user_flag').change(function() { + updatePreviewWithSelected(quickReplyFlagImg,$(this)); + updatePreviewWithSelected(flagImg,$(this)); + }); +}); diff --git a/templates/post_form.html b/templates/post_form.html index 8322542a..1f391a69 100644 --- a/templates/post_form.html +++ b/templates/post_form.html @@ -118,12 +118,15 @@ {% trans %}Flag{% endtrans %} - {% for flag, text in config.user_flags %} {% endfor %} + {% if config.flag_preview %} + + {% endif %} {% endif %}