APIs

Show:
  1. /**
  2. Settings Backbone > View
  3. @class FQLinePropView
  4. @constructor
  5. @return {Object} instantiated FQLinePropView
  6. **/
  7. define(['jquery', 'backbone'], function ($, Backbone) {
  8.  
  9. var FQLinePropView = Backbone.View.extend({
  10.  
  11. /**
  12. Constructor
  13. @method initialize
  14. **/
  15. initialize: function () {
  16. var self = this;
  17. self.m_selectedLineID = undefined;
  18. self.m_property = BB.comBroker.getService(BB.SERVICES['PROPERTIES_VIEW']);
  19. self.m_property.initPanel('#' + self.el.id);
  20. self._listenOpenCustomerTerminal();
  21. self._listenInputNameChange();
  22. self._listenInputReminderChange();
  23. },
  24.  
  25. /**
  26. Listen to open customer terminal
  27. @method _listenOpenCustomerTerminal
  28. **/
  29. _listenOpenCustomerTerminal: function () {
  30. var self = this;
  31. $(Elements.OPEN_FASTERQ_CUSTOMER_TERMINAL).on('click', function (e) {
  32. var data = {
  33. call_type: 'CUSTOMER_TERMINAL',
  34. business_id: BB.Pepper.getUserData().businessID,
  35. line_id: self.m_selectedLineID,
  36. line_name: self.collection.get(self.m_selectedLineID).get('name')
  37. };
  38. data = $.base64.encode(JSON.stringify(data));
  39. var url = BB.CONSTS.BASE_URL + '?mode=customerTerminal&param=' + data;
  40. window.open(url, '_blank');
  41. });
  42. },
  43.  
  44. /**
  45. Listen to changes in Line item reminder minutes value
  46. @method _listenInputReminderChange server:updateLine
  47. @return none
  48. **/
  49. _listenInputReminderChange: function () {
  50. var self = this;
  51. var onChange = _.debounce(function (e) {
  52. var text = $(e.target).val();
  53. if (_.isUndefined(self.m_selectedLineID))
  54. return;
  55. var model = self.collection.get(self.m_selectedLineID);
  56. model.set('reminder', text);
  57. model.save({}, {
  58. success: function (model, response) {
  59. },
  60. error: function () {
  61. log('error delete failed');
  62. }
  63. });
  64.  
  65. }, 400);
  66. $(Elements.FQ_REMINDER_LINE).on("input", onChange);
  67. },
  68.  
  69. /**
  70. Listen to changes in Line item rename value
  71. @method _listenInputNameChange server:updateLine
  72. @return none
  73. **/
  74. _listenInputNameChange: function () {
  75. var self = this;
  76. var onChange = _.debounce(function (e) {
  77. var text = $(e.target).val();
  78. if (_.isUndefined(self.m_selectedLineID))
  79. return;
  80. var model = self.collection.get(self.m_selectedLineID);
  81. model.set('name', text);
  82. model.save({}, {
  83. success: function (model, response) {
  84. },
  85. error: function () {
  86. log('error delete failed');
  87. }
  88. });
  89.  
  90. }, 400);
  91. $(Elements.SELECTED_LINE_NAME).on("input", onChange);
  92. },
  93.  
  94. /**
  95. Populate the properties UI on line selected
  96. @method lineSelected
  97. @param {Number} i_lineID
  98. **/
  99. lineSelected: function (i_lineID) {
  100. var self = this;
  101. self.m_selectedLineID = i_lineID;
  102. self.m_property.viewPanel(Elements.FASTERQ_LINE_PROPERTIES);
  103. $(Elements.SELECTED_LINE_NAME).val(self.collection.get(self.m_selectedLineID).get('name'));
  104. $(Elements.FQ_REMINDER_LINE).val(self.collection.get(self.m_selectedLineID).get('reminder'));
  105. }
  106. });
  107.  
  108. return FQLinePropView;
  109. });
  110.  
  111.