APIs

Show:
  1. /**
  2. * BlockExtVideo block resides inside a scene or timeline
  3. * @class BlockExtVideo
  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 BlockExtVideo = Block.extend({
  13.  
  14. /**
  15. Constructor
  16. @method initialize
  17. **/
  18. constructor: function (options) {
  19. var self = this;
  20. self.m_blockType = 3150;
  21. _.extend(options, {blockType: self.m_blockType})
  22. Block.prototype.constructor.call(this, options);
  23. self._initSubPanel(Elements.BLOCK_EXT_VIDEO_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. if (!text.match('http://') && !text.match('https://'))
  39. text = 'http://' + text;
  40. var domPlayerData = self._getBlockPlayerData();
  41. var xSnippet = $(domPlayerData).find('LINK');
  42. xSnippet.attr('src', text);
  43. self._setBlockPlayerData(domPlayerData, BB.CONSTS.NO_NOTIFICATION);
  44. }, 150);
  45. $(Elements.EXT_VIDEO_TEXT).on("input", self.m_inputChangeHandler);
  46. },
  47.  
  48. /**
  49. Load up property values in the common panel
  50. @method _populate
  51. @return none
  52. **/
  53. _populate: function () {
  54. var self = this;
  55. var domPlayerData = self._getBlockPlayerData();
  56. var xSnippet = $(domPlayerData).find('LINK');
  57. var src = xSnippet.attr('src');
  58. $(Elements.EXT_VIDEO_TEXT).val(src);
  59. },
  60.  
  61. /**
  62. Populate the common block properties panel, called from base class if exists
  63. @method _loadBlockSpecificProps
  64. @return none
  65. **/
  66. _loadBlockSpecificProps: function () {
  67. var self = this;
  68. self._populate();
  69. this._viewSubPanel(Elements.BLOCK_EXT_VIDEO_COMMON_PROPERTIES);
  70. },
  71.  
  72. /**
  73. Delete this block
  74. @method deleteBlock
  75. @params {Boolean} i_memoryOnly if true only remove from existance but not from msdb
  76. **/
  77. deleteBlock: function (i_memoryOnly) {
  78. var self = this;
  79. $(Elements.EXT_VIDEO_TEXT).off("input", self.m_inputChangeHandler);
  80. self._deleteBlock(i_memoryOnly);
  81. }
  82. });
  83.  
  84. return BlockExtVideo;
  85. });