crowi-admin.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. /* global Switchery */
  2. /* eslint-disable no-restricted-globals */
  3. require('./thirdparty-js/jQuery.style.switcher');
  4. // see https://github.com/abpetkov/switchery/issues/120
  5. // see https://github.com/abpetkov/switchery/issues/120#issuecomment-286337221
  6. require('./thirdparty-js/switchery/switchery');
  7. require('./thirdparty-js/switchery/switchery.css');
  8. $(() => {
  9. $('#slackNotificationForm').on('submit', function(e) {
  10. $.post('/_api/admin/notification.add', $(this).serialize(), (res) => {
  11. if (res.ok) {
  12. // TODO Fix
  13. location.reload();
  14. }
  15. });
  16. return false;
  17. });
  18. $('form.admin-remove-updatepost').on('submit', function(e) {
  19. $.post('/_api/admin/notification.remove', $(this).serialize(), (res) => {
  20. if (res.ok) {
  21. // TODO Fix
  22. location.reload();
  23. }
  24. });
  25. return false;
  26. });
  27. $('#createdUserModal').modal('show');
  28. $('#admin-password-reset-modal').on('show.bs.modal', (button) => {
  29. const data = $(button.relatedTarget);
  30. const userId = data.data('user-id');
  31. const email = data.data('user-email');
  32. $('#admin-password-reset-user').text(email);
  33. $('#admin-users-reset-password input[name=user_id]').val(userId);
  34. });
  35. $('form#admin-users-reset-password').on('submit', function(e) {
  36. $.post('/_api/admin/users.resetPassword', $(this).serialize(), (res) => {
  37. if (res.ok) {
  38. // TODO Fix
  39. // location.reload();
  40. $('#admin-password-reset-modal').modal('hide');
  41. $('#admin-password-reset-modal-done').modal('show');
  42. $('#admin-password-reset-done-user').text(res.user.email);
  43. $('#admin-password-reset-done-password').text(res.newPassword);
  44. return;
  45. }
  46. // fixme
  47. alert('Failed to reset password');
  48. });
  49. return false;
  50. });
  51. $('#admin-delete-user-group-modal').on('show.bs.modal', (button) => {
  52. const data = $(button.relatedTarget);
  53. const userGroupId = data.data('user-group-id');
  54. const userGroupName = data.data('user-group-name');
  55. $('#admin-delete-user-group-name').text(userGroupName);
  56. $('#admin-user-groups-delete input[name=user_group_id]').val(userGroupId);
  57. });
  58. $('form#user-group-relation-create').on('submit', function(e) {
  59. $.post('/admin/user-group-relation/create', $(this).serialize(), (res) => {
  60. $('#admin-add-user-group-relation-modal').modal('hide');
  61. return;
  62. });
  63. });
  64. $('#pictureUploadForm input[name=userGroupPicture]').on('change', function() {
  65. const $form = $('#pictureUploadForm');
  66. const fd = new FormData($form[0]);
  67. if ($(this).val() !== '') {
  68. return false;
  69. }
  70. $('#pictureUploadFormProgress').html('<img src="/images/loading_s.gif"> アップロード中...');
  71. $.ajax($form.attr('action'), {
  72. type: 'post',
  73. processData: false,
  74. contentType: false,
  75. data: fd,
  76. dataType: 'json',
  77. success(data) {
  78. if (data.status) {
  79. $('#settingUserPicture').attr('src', `${data.url}?time=${new Date()}`);
  80. $('#pictureUploadFormMessage')
  81. .addClass('alert alert-success')
  82. .html('変更しました');
  83. }
  84. else {
  85. $('#pictureUploadFormMessage')
  86. .addClass('alert alert-danger')
  87. .html('変更中にエラーが発生しました。');
  88. }
  89. $('#pictureUploadFormProgress').html('');
  90. },
  91. });
  92. return false;
  93. });
  94. // style switcher
  95. $('#styleOptions').styleSwitcher();
  96. // switchery
  97. const elems = Array.prototype.slice.call(document.querySelectorAll('.js-switch'));
  98. elems.forEach((elem) => {
  99. const color = elem.dataset.color;
  100. const size = elem.dataset.size;
  101. // eslint-disable-next-line no-new
  102. new Switchery(elem, { color, size });
  103. });
  104. });