The version of vichan running on lainchan.org
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

78 lignes
2.2KB

  1. /*
  2. * ajax-post-controls.js
  3. * https://github.com/savetheinternet/Tinyboard/blob/master/js/ajax-post-controls.js
  4. *
  5. * Released under the MIT license
  6. * Copyright (c) 2013 Michael Save <savetheinternet@tinyboard.org>
  7. *
  8. * Usage:
  9. * $config['additional_javascript'][] = 'js/jquery.min.js';
  10. * $config['additional_javascript'][] = 'js/ajax-post-controls.js';
  11. *
  12. */
  13. $(window).ready(function() {
  14. var do_not_ajax = false;
  15. var setup_form = function($form) {
  16. $form.find('input[type="submit"]').click(function() {
  17. $form.data('submit-btn', this);
  18. });;
  19. $form.submit(function(e) {
  20. if (!$(this).data('submit-btn'))
  21. return true;
  22. if (do_not_ajax)
  23. return true;
  24. if (window.FormData === undefined)
  25. return true;
  26. var form = this;
  27. var formData = new FormData(this);
  28. formData.append('json_response', '1');
  29. formData.append($($(form).data('submit-btn')).attr('name'), $($(form).data('submit-btn')).val());
  30. $.ajax({
  31. url: this.action,
  32. type: 'POST',
  33. success: function(post_response) {
  34. if (post_response.error) {
  35. alert(post_response.error);
  36. } else if (post_response.success) {
  37. if ($($(form).data('submit-btn')).attr('name') == 'report') {
  38. alert(_('Reported post(s).'));
  39. if ($(form).hasClass('post-actions')) {
  40. $(form).parents('div.post').find('input[type="checkbox"].delete').click();
  41. } else {
  42. $(form).find('input[name="reason"]').val('');
  43. }
  44. } else {
  45. window.location.reload();
  46. }
  47. } else {
  48. alert(_('An unknown error occured!'));
  49. }
  50. $($(form).data('submit-btn')).val($($(form).data('submit-btn')).data('orig-val')).removeAttr('disabled');
  51. },
  52. error: function(xhr, status, er) {
  53. // An error occured
  54. // TODO
  55. alert(_('Something went wrong... An unknown error occured!'));
  56. },
  57. data: formData,
  58. cache: false,
  59. contentType: false,
  60. processData: false
  61. }, 'json');
  62. $($(form).data('submit-btn')).attr('disabled', true).data('orig-val', $($(form).data('submit-btn')).val()).val(_('Working...'));
  63. return false;
  64. });
  65. };
  66. setup_form($('form[name="postcontrols"]'));
  67. $(window).on('quick-post-controls', function(e, form) {
  68. setup_form($(form));
  69. });
  70. });