APIs

Show:
  1. ///<reference path="../../typings/lite/app_references.d.ts" />
  2. var __extends = (this && this.__extends) || function (d, b) {
  3. for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
  4. function __() { this.constructor = d; }
  5. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  6. };
  7. //GULP_ABSTRACT_END
  8. define(['jquery', 'BlockJsonBase', 'validator'], function ($, BlockJsonBase, validator) {
  9. TSLiteModules.BlockJsonBase = BlockJsonBase;
  10. /**
  11. BlockTwitterV3 is based on JSON base class component
  12. @class BlockTwitterV3
  13. @constructor
  14. @return {Object} instantiated BlockTwitterV3
  15. 6e2919a1-47f0-4a4f-bd94-de7ecfbe604d
  16. **/
  17. var BlockTwitterV3 = (function (_super) {
  18. __extends(BlockTwitterV3, _super);
  19. function BlockTwitterV3(options) {
  20. this.m_options = options;
  21. this.m_blockType = 6230;
  22. _.extend(this.m_options, { blockType: this.m_blockType });
  23. _super.call(this);
  24. }
  25. /**
  26. Init sub class and super on base
  27. @method initialize
  28. **/
  29. BlockTwitterV3.prototype.initialize = function () {
  30. var self = this;
  31. _super.prototype.initialize.call(this, this.m_options);
  32. self.m_mimeType = 'Json.twitter';
  33. self.m_minTokenLength = 15;
  34. self._initSettingsPanel();
  35. self._listenFilterScreenNameChange();
  36. self._listenTokenChanged();
  37. self._listenGetNewToken();
  38. };
  39. /**
  40. Listen to request to generate a new token
  41. @method _listenGetNewToken
  42. **/
  43. /**
  44. Listen to input screen name changes
  45. @method _listenFilterScreenNameChange
  46. **/
  47. BlockTwitterV3.prototype._listenGetNewToken = function () {
  48. var self = this;
  49. self.m_tokenRequest = function (e) {
  50. if (!self.m_selected)
  51. return;
  52. var win = window.open('http://twitter.signage.me', '_blank');
  53. if (win) {
  54. win.focus();
  55. }
  56. else {
  57. bootbox.alert($(Elements.MSG_BOOTBOX_POPUP_BLOCKED).text());
  58. }
  59. return false;
  60. };
  61. $(Elements.CLASS_GEN_TOKEN, self.el).on('click', self.m_tokenRequest);
  62. };
  63. /**
  64. Listen token updated
  65. @method _listenTokenChanged
  66. **/
  67. BlockTwitterV3.prototype._listenTokenChanged = function () {
  68. var self = this;
  69. self.m_tokenChangedHandler = function (e) {
  70. if (!self.m_selected)
  71. return;
  72. var token = $(e.target).val();
  73. if (token.length < self.m_minTokenLength) {
  74. bootbox.alert($(Elements.MSG_BOOTBOX_TOKEN_TOO_SHORT).text());
  75. return;
  76. }
  77. var domPlayerData = self._getBlockPlayerData();
  78. var item = $(domPlayerData).find('Json').find('Data');
  79. $(item).attr('token', token);
  80. self._setBlockPlayerData(domPlayerData, BB.CONSTS.NO_NOTIFICATION);
  81. };
  82. $(Elements.CLASS_ACCESS_TOKEN, self.el).on('change', self.m_tokenChangedHandler);
  83. };
  84. /**
  85. Listen to input screen name changes
  86. @method _listenFilterScreenNameChange
  87. **/
  88. BlockTwitterV3.prototype._listenFilterScreenNameChange = function () {
  89. var self = this;
  90. self.m_filterScreenNameChangedHandler = function (e) {
  91. if (!self.m_selected)
  92. return;
  93. var screenName = $(e.target).val();
  94. var domPlayerData = self._getBlockPlayerData();
  95. var item = $(domPlayerData).find('Json').find('Data');
  96. $(item).attr('screenName', screenName);
  97. self._setBlockPlayerData(domPlayerData, BB.CONSTS.NO_NOTIFICATION);
  98. };
  99. $(Elements.TWITTER_FILTER_SCREEN_NAME, self.el).on('change', self.m_filterScreenNameChangedHandler);
  100. };
  101. /**
  102. Init the settings panel that's used by Block common props for JSON based components
  103. @method _initSettingsPanel
  104. **/
  105. BlockTwitterV3.prototype._initSettingsPanel = function () {
  106. var self = this;
  107. self.m_blockProperty.initSettingsPanel(Elements.BLOCK_COMMON_SETTINGS_TWITTERV3);
  108. };
  109. /**
  110. Load block specific properties
  111. @override
  112. @method _loadBlockSpecificProps
  113. **/
  114. BlockTwitterV3.prototype._loadBlockSpecificProps = function () {
  115. var self = this;
  116. self.m_blockProperty.viewSettingsPanel(Elements.BLOCK_COMMON_SETTINGS_TWITTERV3);
  117. _super.prototype._loadBlockSpecificProps.call(this);
  118. };
  119. /**
  120. Populate UI
  121. @method _populate
  122. **/
  123. BlockTwitterV3.prototype._populate = function () {
  124. var self = this;
  125. _super.prototype._populate.call(this);
  126. var domPlayerData = self._getBlockPlayerData();
  127. var $data = $(domPlayerData).find('Json').find('Data');
  128. var token = $data.attr('token');
  129. var screenName = $data.attr('screenName');
  130. $(Elements.CLASS_ACCESS_TOKEN, self.el).val(token);
  131. $(Elements.TWITTER_FILTER_SCREEN_NAME, self.el).val(screenName);
  132. };
  133. /**
  134. Delete this block
  135. @method deleteBlock
  136. @params {Boolean} i_memoryOnly if true only remove from existence but not from msdb
  137. **/
  138. BlockTwitterV3.prototype.deleteBlock = function (i_memoryOnly) {
  139. var self = this;
  140. $(Elements.CLASS_ACCESS_TOKEN, self.el).off('change', self.m_tokenChangedHandler);
  141. $(Elements.CLASS_GEN_TOKEN, self.el).off('click', self.m_tokenRequest);
  142. $(Elements.TWITTER_FILTER_SCREEN_NAME, self.el).off('change', self.m_filterScreenNameChangedHandler);
  143. _super.prototype.deleteBlock.call(this, i_memoryOnly);
  144. };
  145. return BlockTwitterV3;
  146. })(TSLiteModules.BlockJsonBase);
  147. return BlockTwitterV3;
  148. });
  149. //# sourceMappingURL=BlockTwitterV3.js.map