index.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. // Javascript
  2. import $ from 'jquery'
  3. import 'bootstrap';
  4. import 'bootstrap-select';
  5. import 'bootstrap-validator';
  6. import 'bootstrap-fileinput';
  7. // CSS
  8. import 'bootstrap/dist/css/bootstrap.css';
  9. import 'bootstrap-select/dist/css/bootstrap-select.css';
  10. import 'bootstrap-fileinput/css/fileinput.css';
  11. import '@fortawesome/fontawesome-free/css/all.css';
  12. import './style.css'
  13. $(function () {
  14. $("#myInput").on("keyup", function(eventObject) {
  15. var input, filter, ul, li, a, i;
  16. input = eventObject.currentTarget;
  17. filter = input.value.toUpperCase();
  18. ul = document.getElementById("myUL");
  19. li = ul.getElementsByTagName('a');
  20. // Loop through all list items, and hide those who don't match the search query
  21. for (i = 0; i < li.length; i++) {
  22. a = li[i]; //li[i].getElementsByTagName("a")[0];
  23. if (a.innerHTML.toUpperCase().indexOf(filter) > -1) {
  24. li[i].style.display = "";
  25. } else {
  26. li[i].style.display = "none";
  27. }
  28. }
  29. });
  30. function checkUsernameInputHandler(eventObject) {
  31. var input_el = $(eventObject.currentTarget);
  32. var data = JSON.stringify({"username": input_el.val()});
  33. var url = `/teachers/check_username/${input_el.val()}`
  34. $.post(
  35. url,
  36. data,
  37. function(result) {
  38. if (result.exists) {
  39. console.log("Username exists");
  40. }
  41. },
  42. "json"
  43. );
  44. }
  45. function usernameGenerator(eventObject, firstname, surname) {
  46. var input_el = $(eventObject.currentTarget);
  47. input_el.val(firstname+"."+surname);
  48. }
  49. function deleteRelationHandler(eventObject) {
  50. var url = this.dataset.url;
  51. var modalEl = $('#karmen-modal-remove');
  52. var el = $(this);
  53. modalEl.modal({backdrop: 'static'}).one('click', '#karmen-modal-btn-confirm', function() {
  54. $.ajax({
  55. url: url,
  56. type: 'DELETE',
  57. success: function(result) {
  58. el.closest(".list-group-item").remove();
  59. modalEl.modal('hide');
  60. }
  61. });
  62. });
  63. return false;
  64. };
  65. function deleteHandler(eventObject) {
  66. var url = this.dataset.url;
  67. var modalEl = $('#karmen-modal-remove');
  68. var el = $(this);
  69. modalEl.modal({backdrop: 'static'}).one('click', '#karmen-modal-btn-confirm', function() {
  70. $.ajax({
  71. url: url,
  72. type: 'DELETE',
  73. success: function(result) {
  74. modalEl.modal('hide');
  75. window.location.replace(result.redirect_url);
  76. }
  77. });
  78. });
  79. return false;
  80. };
  81. $(".ajax-post").on("click", function(eventObject) {
  82. var select_el = $("#"+this.dataset.select).first();
  83. var listgroup_el = $("#"+this.dataset.listgroup).first();
  84. var url = this.dataset.url;
  85. var data = JSON.stringify({"ids": select_el.val()});
  86. $.post(
  87. url,
  88. data,
  89. function(result) {
  90. var i;
  91. if (result.elements != null) {
  92. for (i = 0; i < result.elements.length; i++) {
  93. var newItem = `
  94. <a href="#" class="list-group-item clearfix">
  95. <span class="glyphicon glyphicon-book"></span>
  96. ${result.elements[i].Name}
  97. <span class="pull-right">
  98. <button data-url="/${result.name1}/${result.id1}/${result.name2}/${result.id2[i]}/delete" class="btn btn-xs btn-warning karmen-ajax-delete">
  99. <span class="glyphicon glyphicon-trash"></span>
  100. </button>
  101. </span>
  102. `;
  103. $(listgroup_el).append(newItem);
  104. $(".karmen-ajax-delete").on("click", deleteHandler);
  105. }
  106. }
  107. },
  108. "json"
  109. );
  110. select_el.val('default');
  111. select_el.selectpicker("refresh");
  112. return false;
  113. });
  114. $(".karmen-ajax-delete-relation").on("click", deleteRelationHandler);
  115. $(".karmen-ajax-delete").on("click", deleteHandler);
  116. });