From c54372fabf8514b480a2cfda24f67b49eee53b7f Mon Sep 17 00:00:00 2001
From: Jared Hancock <gravydish@gmail.com>
Date: Fri, 8 Feb 2019 21:10:55 -0600
Subject: [PATCH] queues: Fix compatibility issues with newer jQuery

---
 include/staff/footer.inc.php |  2 +-
 scp/js/scp.js                | 24 ++++++++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/include/staff/footer.inc.php b/include/staff/footer.inc.php
index 5bb01fe6c..3a117e88f 100644
--- a/include/staff/footer.inc.php
+++ b/include/staff/footer.inc.php
@@ -42,8 +42,8 @@ if(is_object($thisstaff) && $thisstaff->isStaff()) { ?>
 
 <script type="text/javascript" src="<?php echo ROOT_PATH; ?>js/jquery.pjax.js"></script>
 <script type="text/javascript" src="<?php echo ROOT_PATH; ?>scp/js/bootstrap-typeahead.js"></script>
-<script type="text/javascript" src="<?php echo ROOT_PATH; ?>scp/js/scp.js"></script>
 <script type="text/javascript" src="<?php echo ROOT_PATH; ?>js/jquery-ui-1.12.1.custom.min.js"></script>
+<script type="text/javascript" src="<?php echo ROOT_PATH; ?>scp/js/scp.js"></script>
 <script type="text/javascript" src="<?php echo ROOT_PATH; ?>js/filedrop.field.js"></script>
 <script type="text/javascript" src="<?php echo ROOT_PATH; ?>js/select2.min.js"></script>
 <script type="text/javascript" src="<?php echo ROOT_PATH; ?>scp/js/tips.js"></script>
diff --git a/scp/js/scp.js b/scp/js/scp.js
index b25402597..3bb89c504 100644
--- a/scp/js/scp.js
+++ b/scp/js/scp.js
@@ -1248,3 +1248,27 @@ window.relativeAdjust = setInterval(function() {
   });
 }, 20000);
 
+// Add 'afterShow' event to jQuery elements,
+// thanks http://stackoverflow.com/a/1225238/1025836
+jQuery(function($) {
+    var _oldShow = $.fn.show;
+
+    // This should work with jQuery 3 with or without jQuery UI
+    $.fn.show = function() {
+        var argsArray = Array.prototype.slice.call(arguments),
+            arg = argsArray[0],
+            options = {};
+        if (typeof(arg) === 'number')
+            options.duration = arg;
+        else
+            options.effect = arg;
+        return this.each(function () {
+            var obj = $(this);
+            _oldShow.call(obj, $.extend(options, {
+                complete: function() {
+                    obj.trigger('afterShow');
+                }
+            }));
+        });
+    }
+});
-- 
GitLab