eq2emu.js 5.2 KB

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