%PDF- %PDF-
Direktori : /var/www/tif-dev/wp-content/plugins/gravityforms/includes/webapi/js/ |
Current File : //var/www/tif-dev/wp-content/plugins/gravityforms/includes/webapi/js/gfwebapi_settings.js |
function gfapiCalculateSig(stringToSign, privateKey) { var hash = CryptoJS.HmacSHA1(stringToSign, privateKey); var base64 = hash.toString(CryptoJS.enc.Base64); return encodeURIComponent(base64); } jQuery(document).ready(function () { jQuery("#gfwebapi-qrbutton").click(function () { jQuery("#gfwebapi-qrcode-container").toggle(); var $img = jQuery('#gfwebapi-qrcode'); if ($img.length > 0) $img.attr('src', ajaxurl + '?action=gfwebapi_qrcode&rnd=' + Date.now()); return false; }); jQuery("#public_key, #private_key").on("keyup", function () { jQuery("#gfwebapi-qrcode-container").html("The keys have changes. Please save the changes and try again.") }); jQuery("#gfapi-url-builder-button").click(function (e) { e.preventDefault(); var publicKey, privateKey, expiration, method, route, stringToSign, url, sig; publicKey = jQuery("#public_key").val(); privateKey = jQuery("#private_key").val(); expiration = parseInt(jQuery("#gfapi-url-builder-expiration").val()); method = jQuery("#gfapi-url-builder-method").val(); route = jQuery("#gfapi-url-builder-route").val(); route = route.replace(/\/$/, ""); // remove trailing slash var d = new Date; var unixtime = parseInt(d.getTime() / 1000); var future_unixtime = unixtime + expiration; stringToSign = publicKey + ":" + method + ":" + route + ":" + future_unixtime; sig = gfapiCalculateSig(stringToSign, privateKey); url = gfapiBaseUrl + "/" + route + "/?api_key=" + publicKey + "&signature=" + sig + "&expires=" + future_unixtime; jQuery('#gfapi-url-builder-generated-url').val(url); return false; }); var gfapiTesterAjaxRequest; jQuery("#gfapi-url-tester-button").click(function (e) { var $button = jQuery(this); var $loading = jQuery("#gfapi-url-tester-loading"); var $results = jQuery("#gfapi-url-tester-results"); var url = jQuery('#gfapi-url-tester-url').val(); var method = jQuery('#gfapi-url-tester-method').val(); gfapiTesterAjaxRequest = jQuery.ajax({ url : url + "&test=1", type : method, dataType : 'json', data : {}, beforeSend: function (xhr, opts) { $button.attr('disabled', 'disabled'); $loading.show(); } }) .done(function (data, textStatus, xhr) { $button.removeAttr('disabled'); $loading.hide(); $results.html(xhr.status); $results.fadeTo("fast", 1); }) .fail(function (jqXHR) { $button.removeAttr('disabled'); $loading.hide(); $results.fadeTo("fast", 1); var msg; $loading.hide(); if (msg == "abort") { msg = "Request cancelled"; } else { msg = jqXHR.status + ": " + jqXHR.statusText; } $results.html(msg); }); return false; }); // Reload page when modal is closed. jQuery( 'body' ).on( 'thickbox:removed', function( e ) { if ( modalSubmitted ) { jQuery( '#gform-settings' ).submit(); } } ); }); var modalSubmitted = false; // Update key. function saveKey() { var requestData = { action: 'gfwebapi_edit_key', nonce: jQuery( '#gform-webapi-edit input[name="_wpnonce"]' ).val(), key_id: jQuery( '#gform-webapi-key' ).val(), description: jQuery( '#gform-webapi-description' ).val(), user_id: jQuery( '#gform-webapi-user' ).val(), permissions: jQuery( '#gform-webapi-permissions' ).val() }; // Attempt to save key, display response. jQuery.ajax( { url: ajaxurl, type: 'POST', dataType: 'json', data: requestData, success: function ( response ) { // Get alert class. var alertClass = response.success ? 'success' : 'error'; // Remove existing alert, add new alert. jQuery( '#gform-webapi-edit .alert', document ).remove(); jQuery( '#gform-webapi-edit' ).prepend( '<div class="alert ' + alertClass + '">' + response.data.message + '</div>' ); // Display consumer key, secret. if ( response.data.key ) { jQuery( '#gform-webapi-description, #gform-webapi-user, #gform-webapi-permissions, #gform-webapi-truncated-key, #gform-webapi-last-access' ).parent().hide(); jQuery( '#gform-webapi-consumer-key' ).val( response.data.key.consumer_key ).parent().show(); jQuery( '#gform-webapi-consumer-secret' ).val( response.data.key.consumer_secret ).parent().show(); jQuery( '#gform-webapi-edit button' ).hide(); } else { jQuery( '#gform-webapi-consumer-key' ).val( '' ).parent().hide(); jQuery( '#gform-webapi-consumer-secret' ).val( '' ).parent().hide(); } } } ); modalSubmitted = true; return false; } // Open edit key modal. function editKey( keyId ) { modalSubmitted = false; // Remove existing alert, hide consumer key/secret, show button. jQuery( '#gform-webapi-edit .alert', document ).remove(); jQuery( '#gform-webapi-consumer-key, #gform-webapi-consumer-secret' ).parent().hide(); jQuery( '#gform-webapi-edit button' ).show(); // If this is a new key, reset the form and open modal. if ( keyId == 0 ) { jQuery( '#gform-webapi-key' ).val( keyId ); jQuery( '#gform-webapi-description' ).val( '' ); jQuery( '#gform-webapi-user' ).val( jQuery( '#gform-webapi-user option:first-child' ).val() ); jQuery( '#gform-webapi-permissions' ).val( jQuery( '#gform-webapi-permissions option:first-child' ).val() ); jQuery( '#gform-webapi-edit button' ).html( jQuery( '#gform-webapi-edit button' ).data( 'add' ) ); jQuery( '#gform-webapi-key, #gform-webapi-description, #gform-webapi-user, #gform-webapi-permissions' ).parent().show(); jQuery( '#gform-webapi-truncated-key, #gform-webapi-last-access' ).parent().hide(); tb_show( 'Add New Key', '#TB_inline?width=375&height=330&inlineId=gform-webapi-edit-container' ); jQuery( '#gform-webapi-edit', document ).on( 'submit', saveKey ); return; } // Get key details, open modal. jQuery.ajax( { url: ajaxurl, type: 'GET', dataType: 'json', data: { action: 'gfwebapi_edit_key', key_id: keyId, nonce: jQuery( '#gform-webapi-edit input[name="_wpnonce"]' ).val(), }, success: function ( response ) { // If key could not be retrieve, display error. if ( ! response.success ) { alert( response.data.message ); return; } var key = response.data.key; jQuery( '#gform-webapi-key' ).val( key.key_id ); jQuery( '#gform-webapi-description' ).val( key.description ); jQuery( '#gform-webapi-user' ).val( key.user_id ); jQuery( '#gform-webapi-permissions' ).val( key.permissions ); jQuery( '#gform-webapi-truncated-key' ).html( key.consumer_key ).parent().show(); jQuery( '#gform-webapi-last-access' ).html( key.last_access ).parent().show(); jQuery( '#gform-webapi-edit button' ).html( jQuery( '#gform-webapi-edit button' ).data( 'edit' ) ); jQuery( '#gform-webapi-description, #gform-webapi-user, #gform-webapi-permissions, #gform-webapi-truncated-key, #gform-webapi-last-access' ).parent().show(); tb_show( 'Edit Key', '#TB_inline?width=375&height=445&inlineId=gform-webapi-edit-container' ); jQuery( '#gform-webapi-edit', document ).on( 'submit', saveKey ); } } ); }