eq2emu.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. var eq2 = {
  2. 'icons':{'items':[],'spells':[]}
  3. };
  4. /* ICOPICKER HANDLING & EVENTS */
  5. //Select icon.
  6. $(document).on('click', '.ico-picker-i', function() {
  7. var view = $('.edit-item-ico-ctn'),
  8. e = $('.item-edit-input[data-field="icon"]'),
  9. i = $(this).data('icon-id');
  10. $('.icon-picker-ctn').toggleClass('hidden');
  11. view.empty().append(''
  12. +'<img class="edit-item-ico vm" src="img/eq2/items/'+i+'.png"/>'
  13. +'<br>'
  14. +'<small><strong>Icon ID</strong>: '+i+'</small>');
  15. e.val(i);
  16. });
  17. //Toggle icon picker tools
  18. $(document).on('click', '.ico-picker-btn', function() {
  19. $('.icon-picker-ctn').toggleClass('hidden');
  20. });
  21. var icoLoader = [];
  22. $(document).on('click', '.icopicker-category, .ico-picker-page', function() {
  23. var c = $(this).data('category'),
  24. ctn = $('.ico-picker-list'),
  25. p = 1;
  26. if($(this).hasClass('ico-picker-page')) {
  27. p = $(this).data('page');
  28. $(this).empty().append('<i class="fad fa-spinner fa-spin fast-spin"></i>');
  29. $('.ico-picker-page.btn-success').switchClass('btn-success', 'btn-warning');
  30. } else {
  31. $(this).parent().find('.btn-success').switchClass('btn-success','btn-default');
  32. $(this).switchClass('btn-default', 'btn-success');
  33. }
  34. //ctn.empty().append('<h2 class="text-center">Fetching icons ...</h2>');
  35. if(icoLoader.length > 0) {
  36. $.each(icoLoader, function(k,v) {
  37. clearTimeout(icoLoader[k]);
  38. icoLoader.splice(k,1);
  39. });
  40. }
  41. $.post('autoload.php', {'get-item-icons': c, 'page':p}, function(data) {
  42. ctn.empty().append(data);
  43. var intv = 0;
  44. icoLoader = $.each($('.ico-unloaded'), function(k,v) {
  45. var iconid = $(this).data('icon-id');
  46. icoLoader[icoLoader.length+1] = setTimeout(function() {
  47. $('.ico-picker-i[data-icon-id="'+iconid+'"]').removeClass('ico-unloaded');
  48. $('.ico-picker-i[data-icon-id="'+iconid+'"]').empty().append('<img class="ico-picker-img animated zoomIn" src="img/eq2/items/'+iconid+'.png" />');
  49. },intv);
  50. intv = intv+5;
  51. });
  52. });
  53. });
  54. /* NAVIGATION HANDLING & EVENTS */
  55. $(document).on('click', '.eq-nav-link', function() {
  56. var m = $(this).data('module'),
  57. e = $(this),
  58. t = $(this).find('.nav-link-text').text();
  59. console.log(t);
  60. $(this).find('a').empty().append('<span class="inline animated fadeInLeft"><i class="fad fa-spinner-third fa-spin fast-spin"></i></span>&nbsp;&nbsp;<span class="nav-link-text">'+t+'</span>');
  61. $.post('autoload.php', {'set-navigation':m}, function(data) {
  62. location.reload();
  63. });
  64. });
  65. /* ITEM EDITOR FUNCTIONS & EVENTS */
  66. //Tier Range Slider Value Changes
  67. $(document).on('change', '.tier-range', function() {
  68. $('.tier-range-label').empty().append('Tier <strong class="text-success">'+$(this).val()+'</strong>');
  69. });
  70. //Item Editor Input Value Changes
  71. $(document).on('change', '.item-edit-input', function() {
  72. if(!$(this).hasClass('item-edit-changed')) {
  73. $(this).addClass('item-edit-changed');
  74. $(this).parent().find('.input-group-text').addClass('item-edit-changed-label');
  75. }
  76. });
  77. //Load Item Editor Pane
  78. $(document).on('click', '.quick-item-search-row', function() {
  79. var id = $(this).data('id'),
  80. l = $('#item-editor-header-label'),
  81. c = $('#item-editor-content');
  82. if(l.hasClass('hidden')) {
  83. l.removeClass('hidden').removeClass('animated').removeClass('fadeInRight');
  84. l.addClass('animated fadeInRight');
  85. l.empty().append('<i class="fad fa-caret-right"></i> Loading ...');
  86. }
  87. c.empty().append('<p class="text-center"><div class="spinner-grow spinner-grow-lg text-primary" role="status"><span class="sr-only">Loading...</span></div></p>');
  88. $.post('autoload.php', {'get-edit-item':id}, function(data) {
  89. setTimeout(function() {
  90. c.empty().append(data);
  91. },700);
  92. });
  93. });
  94. //Quick Search Handler
  95. var quicksearchtimer,
  96. quicksearchdata;
  97. $(document).on('keyup', '#item-quick-search', function() {
  98. var s = $(this).val(),
  99. i = $('#quick-item-search-icon'),
  100. l = $('#quick-item-list');
  101. console.log('Keyup Detected');
  102. if(quicksearchtimer) { clearTimeout(quicksearchtimer) } //Clear timeout between keystrokes
  103. i.empty().append('<i class="fad fa-circle-notch text-success fa-spin fast-spin fs-xl"></i>');
  104. l.empty().append('<div class="panel-content text-center"><div class="spinner-grow spinner-grow-sm" role="status"><span class="sr-only"></span></div>&nbsp;&nbsp;&nbsp;<div class="spinner-grow spinner-grow-sm" role="status"><span class="sr-only"></span></div>&nbsp;&nbsp;&nbsp;<div class="spinner-grow spinner-grow-sm" role="status"><span class="sr-only"></span></div></div>');
  105. quicksearchtimer = setTimeout(function() {
  106. $.post('autoload.php', {'quick-item-search':s}, function(data) {
  107. quicksearchdata = data;
  108. build_quicksearch_list(data);
  109. },'json');
  110. }, 800);
  111. });
  112. function build_quicksearch_list(d) {
  113. var i = $('#quick-item-search-icon'),
  114. l = $('#quick-item-list');
  115. i.empty().append('<span class="animated zoomIn inline"><i class="fad fa-search fa-info fs-xl"></i></span>')
  116. console.log(d);
  117. if(d.rows.length > 0) {
  118. l.empty().append('<p class="text-center"><small><span class="text-success">'+d.found+'</span> item(s) found - results limited to <span class="text-danger">'+d.count+'</span>.</small></p>');
  119. $.each(quicksearchdata.rows, function(k,v) {
  120. l.append(''
  121. +'<div class="row quick-item-search-row" data-id="'+v.id+'">'
  122. +' <div class="hidden-xs-down col-sm-3 col-md-3 col-xl-2 text-center"><img class="quick-search-item-ico vm" src="img/eq2/items/'+v.icon+'.png"/></div>'
  123. +' <div class="col-xs-12 col-sm-9 col-md-7 col-xl-8 text-left">'
  124. +' <a href="#" class="text-primary">'+v.name+'</a> '
  125. +' <small class="text-muted"><br><span class="badge badge-primary"><strong>ID</strong>: '+v.id+'</span> '+v.item_type+'</small>'
  126. +' </div>'
  127. +' <div class="hidden-sm-down col-md-1 col-xl-2 text-right text-primary" style="font-size:15pt;"><span class="vm"><i class="fad fa-angle-right vm"></i></span></div>'
  128. +'</div>');
  129. });
  130. } else {
  131. l.empty().append(''
  132. +'<div class="col-xs-12">'
  133. +' <h4 style="padding-top:50px;padding-bottom:50px;" class="text-center">'
  134. +' <span class="animated bounceInDown inline"><i class="fad fa-minus-hexagon text-danger"></i></span>'
  135. +' No items were found matching your search.'
  136. +' </h4>'
  137. +'</div>');
  138. }
  139. }