APIs

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