index.js 3.5 KB

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