APIs

Show:
  1. /**
  2. Live preview in StackView views
  3. @class LivePreView
  4. @constructor
  5. @return {Object} instantiated WaitView
  6. **/
  7. define(['jquery', 'backbone', 'flashdetect'], function ($, Backbone, flashdetect) {
  8.  
  9. /**
  10. Custom event fired when exiting preview mode
  11. @event PREVIEW_EXIT
  12. @param {This} caller
  13. @param {Self} context caller
  14. @param {Event} rss link
  15. @static
  16. @final
  17. **/
  18. BB.EVENTS.PREVIEW_EXIT= 'PREVIEW_EXIT';
  19.  
  20. BB.SERVICES.LIVEPREVIEW = 'LivePreView';
  21.  
  22. var LivePreView = Backbone.View.extend({
  23.  
  24. /**
  25. Constructor
  26. @method initialize
  27. **/
  28. initialize: function () {
  29. var self = this;
  30. BB.comBroker.setService(BB.SERVICES['LIVEPREVIEW'], self);
  31. self.m_lastLaunce = undefined;
  32. self.m_sceneID = undefined;
  33. self.m_campaignID = undefined;
  34. self.m_campaignTimelineID = undefined;
  35. self._listenReplay();
  36. self._listenStop();
  37. self._listenExit();
  38. },
  39.  
  40. /**
  41. Listen to live preview replay
  42. @method _listenReplay
  43. **/
  44. _listenReplay: function () {
  45. var self = this;
  46. $(Elements.PLAYER_PREVIEW_REPLAY, self.$el).on('click', function () {
  47. self.m_lastLaunce();
  48. });
  49. },
  50.  
  51. /**
  52. Listen to live preview stop
  53. @method _listenStop
  54. **/
  55. _listenStop: function () {
  56. var self = this;
  57. $(Elements.PLAYER_PREVIEW_STOP, self.$el).on('click', function () {
  58. $(Elements.IFRAME_EMBEDDED).attr('src', '');
  59. });
  60. },
  61.  
  62. /**
  63. Listen to live preview exit
  64. @method _listenExit
  65. **/
  66. _listenExit: function () {
  67. var self = this;
  68. $(Elements.PLAYER_PREVIEW_EXIT, self.$el).on('click', function () {
  69. $(Elements.IFRAME_EMBEDDED).attr('src', '');
  70. var appEntryFaderView = BB.comBroker.getService(BB.SERVICES['APP_ENTRY_FADER_VIEW']);
  71. appEntryFaderView.selectView(Elements.APP_CONTENT);
  72. BB.comBroker.fire(BB.EVENTS.PREVIEW_EXIT);
  73. });
  74. },
  75.  
  76. /**
  77. Check that flash is installed
  78. @method _checkFlash
  79. @param {Number} i_playerData
  80. @return {Number} Unique clientId.
  81. **/
  82. _checkFlash: function () {
  83. if (!FlashDetect.installed || !FlashDetect.versionAtLeast(13)) {
  84. bootbox.alert({
  85. message: $(Elements.MSG_BOOTBOX_NO_FLASH).text()
  86. });
  87. return false;
  88. } else {
  89. return true;
  90. }
  91. },
  92.  
  93. /**
  94. Listen to live preview launch
  95. @method launch
  96. **/
  97. launchScene: function (i_sceneID) {
  98. var self = this;
  99. if (_.isUndefined(i_sceneID) && _.isUndefined(self.m_sceneID))
  100. return;
  101. if (self._checkFlash() == false)
  102. return;
  103. self.m_sceneID = i_sceneID != undefined ? i_sceneID : self.m_sceneID;
  104. self.m_lastLaunce = self.launchScene;
  105. var navigationView = BB.comBroker.getService(BB.SERVICES['NAVIGATION_VIEW']);
  106. navigationView.save(function () {
  107. require(['simplestorage'], function (simpleStorage) {
  108. var bannerMode = simpleStorage.get('bannerMode');
  109. if (_.isUndefined(bannerMode))
  110. bannerMode = 1;
  111. var url = pepper.livePreviewScene(self.m_sceneID, bannerMode);
  112. var appEntryFaderView = BB.comBroker.getService(BB.SERVICES['APP_ENTRY_FADER_VIEW']);
  113. appEntryFaderView.selectView(Elements.LIVE_PREVIEW);
  114. $(Elements.IFRAME_EMBEDDED).attr('src', url);
  115. });
  116. });
  117. },
  118.  
  119. /**
  120. Listen to live preview launch
  121. @method launch i_campaignTimelineNativeID
  122. **/
  123. launchTimeline: function (i_campaignID, i_campaignTimelineID) {
  124. var self = this;
  125. if (_.isUndefined(i_campaignTimelineID) && _.isUndefined(self.m_campaignTimelineID))
  126. return;
  127. if (self._checkFlash() == false)
  128. return;
  129. self.m_campaignTimelineID = i_campaignTimelineID != undefined ? i_campaignTimelineID : self.m_campaignTimelineID;
  130. self.m_campaignID = i_campaignID != undefined ? i_campaignID : self.m_campaignID;
  131. self.m_lastLaunce = self.launchTimeline;
  132.  
  133. var navigationView = BB.comBroker.getService(BB.SERVICES['NAVIGATION_VIEW']);
  134. navigationView.save(function () {
  135. require(['simplestorage'], function (simpleStorage) {
  136. var bannerMode = simpleStorage.get('bannerMode');
  137. if (_.isUndefined(bannerMode))
  138. bannerMode = 1;
  139. var url = pepper.livePreviewTimeline(self.m_campaignID, self.m_campaignTimelineID, bannerMode);
  140. var appEntryFaderView = BB.comBroker.getService(BB.SERVICES['APP_ENTRY_FADER_VIEW']);
  141. appEntryFaderView.selectView(Elements.LIVE_PREVIEW);
  142. $(Elements.IFRAME_EMBEDDED).attr('src', url);
  143. });
  144. });
  145. },
  146.  
  147. /**
  148. Listen to live view launch
  149. @method launch
  150. **/
  151. launchCampaign: function (i_campaignID) {
  152. var self = this;
  153. if (_.isUndefined(i_campaignID) && _.isUndefined(self.m_campaignID))
  154. return;
  155. if (self._checkFlash() == false)
  156. return;
  157. self.m_campaignID = i_campaignID != undefined ? i_campaignID : self.m_campaignID;
  158. self.m_lastLaunce = self.launchCampaign;
  159.  
  160. var navigationView = BB.comBroker.getService(BB.SERVICES['NAVIGATION_VIEW']);
  161. navigationView.save(function () {
  162. require(['simplestorage'], function (simpleStorage) {
  163. var bannerMode = simpleStorage.get('bannerMode');
  164. if (_.isUndefined(bannerMode))
  165. bannerMode = 1;
  166. var url = pepper.livePreviewCampaign(self.m_campaignID, bannerMode);
  167. //console.log('Opening url ' + url)
  168. var appEntryFaderView = BB.comBroker.getService(BB.SERVICES['APP_ENTRY_FADER_VIEW']);
  169. appEntryFaderView.selectView(Elements.LIVE_PREVIEW);
  170. $(Elements.IFRAME_EMBEDDED).attr('src', url);
  171. });
  172. });
  173. }
  174. });
  175.  
  176. return LivePreView;
  177.  
  178. });
  179.  
  180.