paloma_core.js

This commit is contained in:
kbparagua 2013-02-18 01:03:41 +08:00
parent eed39d9bd2
commit 271bf25b56
7 changed files with 34 additions and 7 deletions

View File

@ -31,10 +31,8 @@
// Run Callbacks
$(document).ready(function(){
for (var i = 0, len = callbacks.length; i < len; i++){
var callback = callbacks[i],
callbackFunction = Paloma.callbacks[callback.controller][callback.action];
if (callbackFunction != undefined){ callbackFunction(callback.params); }
var callback = callbacks[i];
Paloma.execute(callback.controller, callback.action, callback.params);
}
});
})();

View File

@ -32,3 +32,4 @@ require 'paloma/generators/setup_generator'
require 'paloma/action_controller_filters'
require 'paloma/action_controller_extension'
require 'paloma/rails/controller_generator'
require 'paloma/rails/engine'

View File

@ -0,0 +1,6 @@
module Paloma
module Rails
class Engine < ::Rails::Engine
end
end
end

View File

@ -1,3 +1,3 @@
//= require ./paloma
//= require paloma_core.js
//= require ./articles/_callbacks.js
//= require ./sample_namespace/_callbacks.js

View File

@ -1 +0,0 @@
window.Paloma = {callbacks:{}};

View File

@ -1 +0,0 @@
window.Paloma = {callbacks:{}};

View File

@ -0,0 +1,24 @@
window.Paloma = {callbacks:{}};
// Execute callback that corresponds to the controller and action passed.
Paloma.execute = function(controller, action, params){
// Stop execution if callback object for controller is not found.
var callback = Paloma.callbacks[controller];
if (callback === undefined || callback === null){ return false; }
// Stop execution if a callback for action is not found.
callback = callback[action];
if (callback === undefined || callback === null){ return false; }
// Parse parameters
params = params || {};
var controller_full_path = controller.split('/');
params['callback_controller'] = controller_full_path.pop();
params['callback_namespace'] = controller_full_path.join('/');
params['callback_controller_path'] = controller;
params['callback_action'] = action;
callback(params);
};