Files
codeocean/app/assets/javascripts/base.js
2020-11-25 01:41:43 +01:00

43 lines
1.1 KiB
JavaScript

Array.prototype.includes = function(element) {
return this.indexOf(element) !== -1;
};
window.CodeOcean = {
refresh: function() {
Turbolinks.visit(window.location.pathname);
}
};
var ANIMATION_DURATION = 500;
$.isController = function(name) {
return $('div[data-controller="' + name + '"]').isPresent();
};
$.fn.isPresent = function() {
return this.length > 0;
};
$.fn.scrollTo = function(selector) {
$(this).animate({
scrollTop: $(selector).offset().top - $(this).offset().top + $(this).scrollTop()
}, ANIMATION_DURATION);
};
// Same as $.replaceWith, just returns the new element instead of the deleted one
$.fn.replaceWithAndReturnNewElement = function(a) {
const $a = $(a);
this.replaceWith($a);
return $a;
};
// Disable the use of web workers for JStree due to JS error
// See https://github.com/vakata/jstree/issues/1717 for details
$.jstree.defaults.core.worker = false;
// Update all CSRF tokens on the page to reduce InvalidAuthenticityToken errors
// See https://github.com/rails/jquery-ujs/issues/456 for details
$(document).on('turbolinks:load', function(){
$.rails.refreshCSRFTokens();
});