让session保持,防止长时间编辑时session丢失

redis_cache
guange 10 years ago
parent 31c78d295e
commit 05428213a2

@ -44,6 +44,10 @@ class AccountController < ApplicationController
# display the logout form
end
def heartbeat
render :json => session[:user_id]
end
# Lets user choose a new password
def lost_password
(redirect_to(home_url); return) unless Setting.lost_password?

@ -227,6 +227,8 @@ RedmineApp::Application.routes.draw do
match '/projects/search', :via => [:get, :post]
match '/users/search', :via => [:get, :post]
#end
match 'account/heartbeat', to: 'account#heartbeat', :via => :get
match 'login', :to => 'account#login', :as => 'signin', :via => [:get, :post]
match 'logout', :to => 'account#logout', :as => 'signout', :via => [:get, :post]
match 'account/register', :via => [:get, :post], :as => 'register'

@ -571,10 +571,16 @@ function warnLeavingUnsaved(message) {
};
}
function setupAjaxIndicator() {
function setupHeartBeat(){
var time = 60*1000*30; // 30 mins
setInterval(function(){$.getJSON('/account/heartbeat');},time);
}
function setupAjaxIndicator() {
$('#ajax-indicator').bind('ajaxSend', function(event, xhr, settings) {
if(settings && settings.url && settings.url.endsWith('account/heartbeat')){
return;
}
if ($('.ajax-loading').length === 0 && settings.contentType != 'application/octet-stream') {
$('#ajax-indicator').show();
}
@ -622,6 +628,7 @@ function transpotUrl (scope) {
}
$(document).ready(setupAjaxIndicator);
$(document).ready(setupHeartBeat);
$(document).ready(hideOnLoad);
$(document).ready(addFormObserversForDoubleSubmit);

Loading…
Cancel
Save