core.js 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. //
  2. // CORE
  3. //
  4. App.Core.listen = function()
  5. {
  6. fb.log('start listening');
  7. $(document).bind('click', function(evt) {
  8. App.Helpers.handleItemsRegisteredInBackground(evt);
  9. var elm = $(evt.target);
  10. var action = $(elm).attr('class');
  11. if (!action) {
  12. return fb.log('No action passed');
  13. }
  14. action = action.split('do_action_');
  15. if (action.length < 2) {
  16. if (elm.hasClass('check-this')) {
  17. var ref = $(elm).parents('.row');
  18. if (ref.hasClass('checked-row')) {
  19. ref.removeClass('checked-row');
  20. App.Tmp[App.Env.world + '_selected_records'] -= 1;
  21. }
  22. else {
  23. ref.addClass('checked-row');
  24. App.Tmp[App.Env.world + '_selected_records'] += 1;
  25. }
  26. if (App.Tmp[App.Env.world + '_selected_records'] <= 0) {
  27. App.Tmp[App.Env.world + '_selected_records'] = 0; // if number is negative
  28. $('#batch-processor .selector-title').html('NONE');
  29. $('.styled.do_action_toggle_batch_selector.style-applied').attr('checked', false);
  30. $('.checkbox.do_action_toggle_batch_selector').css('background-position', '0 0');
  31. }
  32. else {
  33. $('#batch-processor .selector-title').html(App.Tmp[App.Env.world + '_selected_records'] + ' SELECTED');
  34. $('.styled.do_action_toggle_batch_selector.style-applied').attr('checked', true);
  35. $('.checkbox.do_action_toggle_batch_selector').css('background-position', '0 -50px');
  36. }
  37. }
  38. return; // no action found attached to the dom object
  39. }
  40. try {
  41. action_with_params = action[1].split(' ');// retrieve the action itself
  42. action = action_with_params[0];
  43. App.Core.__CALL__(evt, action);// Call the action
  44. }
  45. catch(e) {
  46. fb.error(e);
  47. }
  48. });
  49. $(document).bind('keyup', function(evt) {
  50. fb.log(evt.keyCode);
  51. if ('undefined' != typeof App.Constants.KEY.CODED_NAME[evt.keyCode]) {
  52. var method_name = 'keyboard_' + App.Constants.KEY.CODED_NAME[evt.keyCode];
  53. App.Helpers[method_name] && App.Helpers[method_name](evt);
  54. }
  55. });
  56. }
  57. /**
  58. * Action caller
  59. * if no action registered, execution will stop
  60. */
  61. App.Core.__CALL__ = function(evt, action)
  62. {
  63. if ('undefined' == typeof App.Actions[action]) {
  64. return alert('No action registered for: "'+action+'". Stop propagation');
  65. }
  66. else{
  67. return App.Actions[action](evt);
  68. }
  69. }
  70. App.Core.initMenu = function()
  71. {
  72. $('.section').bind('click', function(evt) {
  73. var elm = $(evt.target);
  74. !elm.hasClass('section') ? elm = elm.parents('.section') : -1;
  75. if (App.Env.world != elm.attr('id')) {
  76. App.Env.world = elm.attr('id');
  77. App.Pages.init();
  78. fb.warn('Switch page to: ' + App.Env.world);
  79. }
  80. });
  81. }