diff options
Diffstat (limited to 'web/js/moderate.js')
-rw-r--r-- | web/js/moderate.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/web/js/moderate.js b/web/js/moderate.js new file mode 100644 index 000000000..075766d0b --- /dev/null +++ b/web/js/moderate.js @@ -0,0 +1,42 @@ +$(function () { + setup_moderation( $('.problem-header'), 'problem' ); + setup_moderation( $('.issue-list .issue'), 'update' ); +}); + +function setup_moderation (elem, word) { + + elem.each( function () { + var $elem = $(this) + $elem.find('.moderate').click( function () { + $elem.find('.moderate-display').hide(); + $elem.find('.moderate-edit').show(); + }); + + $elem.find('.revert-title').change( function () { + $elem.find('input[name=problem_title]').prop('disabled', $(this).prop('checked')); + }); + $elem.find('.revert-textarea').change( function () { + $elem.find('textarea').prop('disabled', $(this).prop('checked')); + }); + + var hide_document = $elem.find('.hide-document'); + hide_document.change( function () { + $elem.find('input[name=problem_title]').prop('disabled', $(this).prop('checked')); + $elem.find('textarea').prop('disabled', $(this).prop('checked')); + $elem.find('input[type=checkbox]').prop('disabled', $(this).prop('checked')); + $(this).prop('disabled', false); // in case disabled above + }); + + $elem.find('.cancel').click( function () { + $elem.find('.moderate-display').show(); + $elem.find('.moderate-edit').hide(); + }); + + $elem.find('form').submit( function () { + if (hide_document.prop('checked')) { + return confirm('This will hide the ' + word + ' completely! (You will not be able to undo this without contacting support.)'); + } + return true; + }); + }); +} |