%PDF- %PDF-
Direktori : /var/www/tif-dev/wp-content/plugins/gravityforms/includes/locking/js/ |
Current File : //var/www/tif-dev/wp-content/plugins/gravityforms/includes/locking/js/locking.js |
(function (gflocking, $) { $(document).ready(function () { gflocking.init(); }); var objectID, objectType, strings, hasLock, lockUI, rejectionCountdown, rejectionRequestTimeout, lockRequestInProgress = false; gflocking.init = function () { hasLock = gflockingVars.hasLock; objectID = gflockingVars.objectID; objectType = gflockingVars.objectType; lockUI = gflockingVars.lockUI; strings = gflockingVars.strings; initHeartbeat(); initUI(); }; function lock_request_timedout() { $("#gform-lock-request-status").html(strings.noResponse); $("#gform-lock-request-button").attr("disabled", false).text(strings.requestAgain); lockRequestInProgress = false; rejectionRequestTimeout = true; rejectionCountdown = false; wp.heartbeat.interval( 30 ); } function initUI() { $("#gform-lock-request-button").click(function () { var $this = $(this), key; $this.text("Request sent"); $this.attr("disabled", true); $("#gform-lock-request-status").html(""); rejectionRequestTimeout = false; lockRequestInProgress = true; wp.heartbeat.interval( 5 ); rejectionCountdown = setTimeout(lock_request_timedout, 120000); $.getJSON(ajaxurl, { action: "gf_lock_request_" + objectType, object_id: objectID }) .done(function (json) { $("#gform-lock-request-status").html(json.html); }) .fail(function (jqxhr, textStatus, error) { var err = textStatus + ', ' + error; $("#gform-lock-request-status").html(strings.requestError + ": " + err); }); }); $("#gform-reject-lock-request-button").click(function () { $.getJSON(ajaxurl, { action: "gf_reject_lock_request_" + objectType, object_id: objectID, object_type: objectType }) .done(function (json) { $('#gform-lock-dialog').hide(); }) .fail(function (jqxhr, textStatus, error) { var err = textStatus + ', ' + error; $("#gform-lock-request-status").html(strings.requestError + ": " + err); $('#gform-lock-dialog').hide(); }); }); } function initHeartbeat() { wp.heartbeat.interval( 30 ); $( "#wpwrap" ).append( lockUI ); // todo: refresh nonces var refreshLockKey = 'gform-refresh-lock-' + objectType; var requestLockKey = 'gform-request-lock-' + objectType; $(document).on('heartbeat-send.' + refreshLockKey, function (e, data) { var send = {}; if (!objectID || !$('#gform-lock-dialog').length) return; if (hasLock == 0) return; send['objectID'] = objectID; data[refreshLockKey] = send; }); $(document).on('heartbeat-send.' + requestLockKey, function (e, data) { var send = {}; if (!lockRequestInProgress) return data; send['objectID'] = objectID; data[requestLockKey] = send; }); // update the lock or show the dialog if somebody has taken over editing $(document).on('heartbeat-tick.' + refreshLockKey, function (e, data) { var received, wrap, avatar, details; if (data[refreshLockKey]) { received = data[refreshLockKey]; if (received.lock_error || received.lock_request) { details = received.lock_error ? received.lock_error : received.lock_request; wrap = $('#gform-lock-dialog'); if (!wrap.length) return; if (!wrap.is(':visible')) { if (details.avatar_src) { avatar = $('<img class="avatar avatar-64 photo" width="64" height="64" />').attr('src', details.avatar_src.replace(/&/g, '&')); wrap.find('div.gform-locked-avatar').empty().append(avatar); } wrap.show().find('.currently-editing').text(details.text); if (received.lock_request) { $("#gform-reject-lock-request-button").show(); } else { $("#gform-reject-lock-request-button").hide(); } wrap.find('.wp-tab-first').focus(); } else { // dialog is already visible so the context is different if (received.lock_error) { if ($("#gform-reject-lock-request-button").is(":visible")) { if (received.lock_error.avatar_src) { avatar = $('<img class="avatar avatar-64 photo" width="64" height="64" />').attr('src', received.lock_error.avatar_src.replace(/&/g, '&')); wrap.find('div.gform-locked-avatar').empty().append(avatar); } $("#gform-reject-lock-request-button").hide(); wrap.show().find('.currently-editing').text(received.lock_error.text); } } else if (received.lock_request) { $("#gform-lock-request-status").html(received.lock_request.text); } } } } }); $(document).on('heartbeat-tick.' + requestLockKey, function (e, data) { var received, wrap, status; if (data[requestLockKey]) { received = data[requestLockKey]; if (received.status) { status = received.status; wrap = $('#gform-lock-dialog'); if (!wrap.length) return; if (status != 'pending') { clearTimeout(rejectionCountdown); rejectionCountdown = false; lockRequestInProgress = false } switch (status) { case "granted" : $("#gform-lock-request-status").html(strings.gainedControl); $("#gform-take-over-button").show(); $("#gform-lock-request-button").hide(); hasLock = true; break; case "deleted" : $("#gform-lock-request-button").text(strings.requestAgain).attr("disabled", false); $("#gform-lock-request-status").html(strings.rejected); break; case "pending" : $("#gform-lock-request-status").html(strings.pending); } } } }); } }(window.gflocking = window.gflocking || {}, jQuery));