APIs

Show:
  1. /**
  2. Application router for FQ terminal applications
  3. well as management for sizing events
  4. @class FQTerminalController
  5. @constructor
  6. @return {Object} instantiated AppRouter
  7. **/
  8. define(['underscore', 'jquery', 'backbone', 'XDate', 'StackView', 'FQCustomerTerminal', 'FQRemoteStatus', 'LineModel'], function (_, $, Backbone, XDate, StackView, FQCustomerTerminal, FQRemoteStatus, LineModel) {
  9.  
  10. BB.SERVICES.FQ_TERMINAL_ROUTER = 'FQ_TERMINAL_ROUTER';
  11. BB.SERVICES.FQ_LINE_MODEL = 'FQ_LINE_MODEL';
  12.  
  13. var FQTerminalController = BB.Controller.extend({
  14.  
  15. /**
  16. Constructor
  17. @method initialize
  18. **/
  19. initialize: function () {
  20. var self = this;
  21. BB.comBroker.setService(BB.SERVICES.FQ_TERMINAL_ROUTER, self);
  22. BB.comBroker.setService('XDATE', new XDate());
  23. $(window).trigger('resize');
  24. self._initTerminal(self.options.app);
  25. },
  26.  
  27. /**
  28. Init user terminal view
  29. @method _initUserTerminal
  30. **/
  31.  
  32. _initTerminal: function (i_app) {
  33. var self = this;
  34. var data = $.base64.decode(self.options.param);
  35. data = JSON.parse(data);
  36. self.m_lineModel = new LineModel({
  37. call_type: data.call_type,
  38. business_id: data.business_id,
  39. line_id: data.line_id,
  40. email: data.email,
  41. service_id: data.service_id,
  42. verification: data.verification,
  43. date: data.date,
  44. line_name: data.line_name
  45. });
  46. BB.comBroker.setService(BB.SERVICES.FQ_LINE_MODEL, self.m_lineModel);
  47.  
  48. switch (i_app){
  49. case BB.CONSTS.APP_CUSTOMER_TERMINAL: {
  50. self._loadCustomerTerminalApp();
  51. break;
  52. }
  53. case BB.CONSTS.APP_REMOTE_STATUS: {
  54. self._getLine();
  55. break;
  56. }
  57. }
  58.  
  59. },
  60. /**
  61. Fetch Line model from server and instantiate Remote Status view on success
  62. @method _loadRemoteStatus server:getLine
  63. **/
  64. _getLine: function () {
  65. var self = this;
  66.  
  67. // fetch with extra parameters
  68. self.m_lineModel.fetch({
  69. data: {
  70. business_id: self.m_lineModel.get('business_id')
  71. },
  72. success: (function (model, data) {
  73. self.m_fqRemoteStatusView = new FQRemoteStatus({
  74. el: Elements.FQ_REMOTE_STATUS,
  75. model: self.m_lineModel
  76. });
  77. self.m_stackView = new StackView.Fader({duration: 333});
  78. self.m_stackView.addView(self.m_fqRemoteStatusView);
  79. self.m_stackView.selectView(self.m_fqRemoteStatusView);
  80. }),
  81. error: (function (e) {
  82. log('Service request failure: ' + e);
  83. }),
  84. complete: (function (e) {
  85. })
  86. });
  87. },
  88.  
  89. /**
  90. Fetch Line model from server and instantiate Terminal view on success
  91. @method _loadCustomerTerminalApp server:getLine
  92. **/
  93. _loadCustomerTerminalApp: function () {
  94. var self = this;
  95.  
  96. // fetch with extra parameters
  97. self.m_lineModel.fetch({
  98. data: {
  99. business_id: self.m_lineModel.get('business_id')
  100. },
  101. success: (function (model, data) {
  102. self.m_fasterQCustomerTerminalView = new FQCustomerTerminal({
  103. el: Elements.FQ_CUSTOMER_TERMINAL,
  104. model: self.m_lineModel
  105. });
  106. self.m_stackView = new StackView.Fader({duration: 333});
  107. self.m_stackView.addView(self.m_fasterQCustomerTerminalView);
  108. self.m_stackView.selectView(self.m_fasterQCustomerTerminalView);
  109. }),
  110. error: (function (e) {
  111. log('Service request failure: ' + e);
  112. }),
  113. complete: (function (e) {
  114. })
  115. });
  116. }
  117. });
  118.  
  119. return FQTerminalController;
  120. });