APIs

Show:
  1. /**
  2. * BlockQR block resides inside a scene or timeline
  3. * @class BlockQR
  4. * @extends Block
  5. * @constructor
  6. * @param {string} i_placement location where objects resides which can be scene or timeline
  7. * @param {string} i_campaign_timeline_chanel_player_id required and set as block id when block is inserted onto timeline_channel
  8. * @return {Object} Block instance
  9. */
  10. define(['jquery', 'backbone', 'Block'], function ($, Backbone, Block) {
  11.  
  12. var BlockQR = Block.extend({
  13.  
  14. /**
  15. Constructor
  16. @method initialize
  17. **/
  18. constructor: function (options) {
  19. var self = this;
  20. self.m_blockType = 3430;
  21. _.extend(options, {blockType: self.m_blockType})
  22. Block.prototype.constructor.call(this, options);
  23. self._initSubPanel(Elements.BLOCK_QR_COMMON_PROPERTIES);
  24. self._listenInputChange();
  25. },
  26.  
  27. /**
  28. When user changes a URL link for the feed, update the msdb
  29. @method _listenInputChange
  30. @return none
  31. **/
  32. _listenInputChange: function () {
  33. var self = this;
  34. self.m_inputChangeHandler = _.debounce(function (e) {
  35. if (!self.m_selected)
  36. return;
  37. var text = $(e.target).val();
  38. var domPlayerData = self._getBlockPlayerData();
  39. var xSnippet = $(domPlayerData).find('Text');
  40. $(xSnippet).text(text);
  41. self._setBlockPlayerData(domPlayerData, BB.CONSTS.NO_NOTIFICATION);
  42. // log(xSnippet[0].outerHTML);
  43. }, 150);
  44. $(Elements.QR_TEXT).on("input", self.m_inputChangeHandler);
  45. },
  46.  
  47. /**
  48. Load up property values in the common panel
  49. @method _populate
  50. @return none
  51. **/
  52. _populate: function () {
  53. var self = this;
  54. var domPlayerData = self._getBlockPlayerData();
  55. var xSnippet = $(domPlayerData).find('Text');
  56. $(Elements.QR_TEXT).val(xSnippet.text());
  57. },
  58.  
  59. /**
  60. Populate the common block properties panel, called from base class if exists
  61. @method _loadBlockSpecificProps
  62. @return none
  63. **/
  64. _loadBlockSpecificProps: function () {
  65. var self = this;
  66. self._populate();
  67. this._viewSubPanel(Elements.BLOCK_QR_COMMON_PROPERTIES);
  68. },
  69.  
  70. /**
  71. Delete this block
  72. @method deleteBlock
  73. @params {Boolean} i_memoryOnly if true only remove from existance but not from msdb
  74. **/
  75. deleteBlock: function (i_memoryOnly) {
  76. var self = this;
  77. $(Elements.QR_TEXT).off("input", self.m_inputChangeHandler);
  78. self._deleteBlock(i_memoryOnly);
  79. }
  80. });
  81.  
  82. return BlockQR;
  83. });