From 6a80ab6e373d3bb6a980417f8f0d622fc3a2b399 Mon Sep 17 00:00:00 2001 From: Gert Date: Mon, 20 Apr 2015 20:39:53 +0200 Subject: [PATCH] move grav ajax handler to separate file --- themes/grav/js/admin-all.js | 23 +++---------------- themes/grav/js/ajax.js | 20 ++++++++++++++++ themes/grav/templates/partials/base.html.twig | 1 + 3 files changed, 24 insertions(+), 20 deletions(-) create mode 100644 themes/grav/js/ajax.js diff --git a/themes/grav/js/admin-all.js b/themes/grav/js/admin-all.js index 80e9449d..5deeadd4 100644 --- a/themes/grav/js/admin-all.js +++ b/themes/grav/js/admin-all.js @@ -49,30 +49,13 @@ $(function () { }); } - var ajaxRequest = function (url, settings) { - settings = typeof settings === 'undefined' ? typeof url === 'string' ? {} : url : settings; - settings.url = typeof settings.url === 'undefined' && typeof url === 'string' ? url : settings.url; - - var successHandler = typeof settings.success !== 'undefined' ? typeof settings.success === 'function' ? [ settings.success ] : settings.success : []; - successHandler.unshift(ajaxRequest.logoutHandler); - settings.success = successHandler; - - return $.ajax(settings); - }; - ajaxRequest.logoutHandler = function (response, status, xhr) { - if (response.status && (response.status === "unauthorized" || response.status === "forbidden")) { - document.location.href = GravAdmin.config.base_url_relative; - throw "Logged out"; - } - }; - // Cache Clear $('[data-clear-cache]').on('click', function(e) { $(this).attr('disabled','disabled').find('> .fa').removeClass('fa-trash').addClass('fa-refresh fa-spin'); var url = $(this).data('clearCache'); - ajaxRequest({ + GravAjax({ dataType: "json", url: url, success: function(result, status) { @@ -93,7 +76,7 @@ $(function () { $(this).attr('disabled','disabled').find('> .fa').removeClass('fa-cloud-download').addClass('fa-refresh fa-spin'); var url = $(this).data('maintenanceUpdate'); - ajaxRequest({ + GravAjax({ dataType: "json", url: url, success: function(result, status) { @@ -110,7 +93,7 @@ $(function () { }); var GPMRefresh = function () { - ajaxRequest({ + GravAjax({ dataType: "JSON", url: window.location.href, method: "POST", diff --git a/themes/grav/js/ajax.js b/themes/grav/js/ajax.js new file mode 100644 index 00000000..9be07406 --- /dev/null +++ b/themes/grav/js/ajax.js @@ -0,0 +1,20 @@ +$(function(){ + var root = window || {}; + + root.GravAjax = function (url, settings) { + settings = typeof settings === 'undefined' ? typeof url === 'string' ? {} : url : settings; + settings.url = typeof settings.url === 'undefined' && typeof url === 'string' ? url : settings.url; + + var successHandler = typeof settings.success !== 'undefined' ? typeof settings.success === 'function' ? [ settings.success ] : settings.success : []; + successHandler.unshift(root.GravAjax.logoutHandler); + settings.success = successHandler; + + return $.ajax(settings); + }; + root.GravAjax.logoutHandler = function (response, status, xhr) { + if (response.status && (response.status === "unauthorized" || response.status === "forbidden")) { + document.location.href = GravAdmin.config.base_url_relative; + throw "Logged out"; + } + }; +}); diff --git a/themes/grav/templates/partials/base.html.twig b/themes/grav/templates/partials/base.html.twig index f730f585..c2f06a06 100644 --- a/themes/grav/templates/partials/base.html.twig +++ b/themes/grav/templates/partials/base.html.twig @@ -37,6 +37,7 @@ {% do assets.addJs(theme_url~'/js/selectize.min.js') %} {% do assets.addJs(theme_url~'/js/toastr.min.js') %} {% do assets.addJs(theme_url~'/js/jquery.remodal.min.js') %} + {% do assets.addJs(theme_url~'/js/ajax.js') %} {% do assets.addJs(theme_url~'/js/admin-all.js') %} {{ assets.js() }} {% endblock %}