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'], function ($) {
  9. /**
  10. Station polling time changes
  11. @event STATIONS_POLL_TIME_CHANGED
  12. @param {This} caller
  13. @param {Self} context caller
  14. @param {Event}
  15. @static
  16. @final
  17. **/
  18. //BB.EVENTS.STATIONS_POLL_TIME_CHANGED = 'STATIONS_POLL_TIME_CHANGED';
  19. /**
  20. Theme changed
  21. @event THEME_CHANGED
  22. @param {This} caller
  23. @param {Self} context caller
  24. @param {Event}
  25. @static
  26. @final
  27. **/
  28. //BB.EVENTS.THEME_CHANGED = 'THEME_CHANGED';
  29. /**
  30. Application global settings
  31. @class SettingView
  32. @constructor
  33. @return {Object} instantiated SettingView
  34. **/
  35. var SettingView = (function (_super) {
  36. __extends(SettingView, _super);
  37. function SettingView(options) {
  38. this.m_options = options;
  39. _super.call(this);
  40. }
  41. SettingView.prototype.initialize = function () {
  42. var self = this;
  43. this.id = self.m_options.el;
  44. this.$el = $(this.id);
  45. this.el = this.$el.get(0);
  46. BB.comBroker.setService(BB.SERVICES['SETTINGS_VIEW'], self);
  47. self.m_simpleStorage = undefined;
  48. self.listenTo(self.m_options.stackView, BB.EVENTS.SELECTED_STACK_VIEW, function (e) {
  49. if (e === self && !self.m_rendered) {
  50. self.m_rendered = true;
  51. self._render();
  52. }
  53. });
  54. };
  55. /**
  56. Draw UI settings (singleton event) including station poll slider and load corresponding modules
  57. @method _render
  58. **/
  59. SettingView.prototype._render = function () {
  60. var self = this;
  61. require(['nouislider', 'simplestorage'], function (nouislider, simpleStorage) {
  62. self.m_simpleStorage = simpleStorage;
  63. var pollStationsTime = self.m_simpleStorage.get('pollStationsTime');
  64. if (_.isUndefined(pollStationsTime)) {
  65. pollStationsTime = 120;
  66. self.m_simpleStorage.set('pollStationsTime', pollStationsTime);
  67. }
  68. BB.CONSTS['THEME'] = self.m_simpleStorage.get('theme');
  69. if (_.isUndefined(BB.CONSTS['THEME'])) {
  70. BB.CONSTS['THEME'] = 'light';
  71. }
  72. $(Elements.THEME_OPTION).selectpicker('val', BB.CONSTS['THEME']);
  73. var bannerMode = self.m_simpleStorage.get('bannerMode');
  74. if (_.isUndefined(bannerMode)) {
  75. bannerMode = 1;
  76. self.m_simpleStorage.set('bannerMode', bannerMode);
  77. }
  78. // $(Elements.PREVIEW_FULL_OPTION + ' option[value=' + bannerMode + ']').attr('selected', 'selected');
  79. $(Elements.PREVIEW_FULL_OPTION).selectpicker('val', bannerMode);
  80. var fqSwitchMode = self.m_simpleStorage.get('fqSwitchMode');
  81. if (_.isUndefined(fqSwitchMode)) {
  82. fqSwitchMode = 0;
  83. self.m_simpleStorage.set('fqSwitchMode', fqSwitchMode);
  84. }
  85. //$(Elements.FQ_SWITCH_OPTION + ' option[value=' + fqSwitchMode + ']').attr('selected', 'selected');
  86. $(Elements.FQ_SWITCH_OPTION).selectpicker('val', fqSwitchMode);
  87. var adStatsSwitchMode = self.m_simpleStorage.get('adStatsMode');
  88. if (_.isUndefined(adStatsSwitchMode)) {
  89. adStatsSwitchMode = 0;
  90. self.m_simpleStorage.set('adStatsMode', adStatsSwitchMode);
  91. }
  92. //$(Elements.AD_STATS_SWITCH_OPTION + ' option[value=' + adStatsSwitchMode + ']').attr('selected', 'selected');
  93. $(Elements.AD_STATS_SWITCH_OPTION).selectpicker('val', adStatsSwitchMode);
  94. self.m_stationsPollingSlider = $(Elements.STATION_POLL_SLIDER).noUiSlider({
  95. handles: 1,
  96. start: [pollStationsTime],
  97. step: 1,
  98. range: [60, 360],
  99. serialization: {
  100. to: [$(Elements.STATION_POLL_LABEL), 'text']
  101. }
  102. });
  103. self._listenStationsPollingSlider();
  104. self._listenBannerPreviewChange();
  105. self._listenFasterQueueSwitchChange();
  106. self._listenAdStatsSwitchChange();
  107. self._listenThemeChange();
  108. });
  109. };
  110. /**
  111. Listen to stations polling slider changes
  112. @method _listenStationsPollingSlider
  113. **/
  114. SettingView.prototype._listenStationsPollingSlider = function () {
  115. var self = this;
  116. $(self.m_stationsPollingSlider).change(function (e) {
  117. var pollStationsTime = $(Elements.STATION_POLL_LABEL).text();
  118. self.m_simpleStorage.set('pollStationsTime', pollStationsTime);
  119. BB.comBroker.fire(BB.EVENTS['STATIONS_POLL_TIME_CHANGED'], this, null, pollStationsTime);
  120. });
  121. };
  122. /**
  123. Listen changes in full screen preview settings options
  124. @method _listenBannerPreviewChange
  125. **/
  126. SettingView.prototype._listenBannerPreviewChange = function () {
  127. var self = this;
  128. $(Elements.PREVIEW_FULL_OPTION).on('change', function (e) {
  129. // var state = $(Elements.PREVIEW_FULL_OPTION + ' option:selected').val() == "on" ? 1 : 0;
  130. var state = $(Elements.PREVIEW_FULL_OPTION + ' option:selected').val();
  131. self.m_simpleStorage.set('bannerMode', state);
  132. });
  133. };
  134. /**
  135. Listen changes in FasterQueue settings options
  136. @method _listenFasterQueueSwitchChange
  137. **/
  138. SettingView.prototype._listenFasterQueueSwitchChange = function () {
  139. var self = this;
  140. $(Elements.FQ_SWITCH_OPTION).on('change', function (e) {
  141. var state = $(Elements.FQ_SWITCH_OPTION + ' option:selected').val();
  142. self.m_simpleStorage.set('fqSwitchMode', state);
  143. if (state === "1") {
  144. $(Elements.CLASS_FASTERQ_PANEL).fadeIn();
  145. }
  146. else {
  147. $(Elements.CLASS_FASTERQ_PANEL).fadeOut();
  148. }
  149. });
  150. };
  151. /**
  152. Listen changes in FasterQueue settings options
  153. @method _listenAdStatsSwitchChange
  154. **/
  155. SettingView.prototype._listenAdStatsSwitchChange = function () {
  156. var self = this;
  157. $(Elements.AD_STATS_SWITCH_OPTION).on('change', function (e) {
  158. var state = $(Elements.AD_STATS_SWITCH_OPTION + ' option:selected').val();
  159. self.m_simpleStorage.set('adStatsMode', state);
  160. if (state === '1') {
  161. $(Elements.CLASS_ADSTATS_PANEL).fadeIn();
  162. }
  163. else {
  164. $(Elements.CLASS_ADSTATS_PANEL).fadeOut();
  165. }
  166. });
  167. };
  168. /**
  169. Listen changes in theme style
  170. @method _listenThemeChange
  171. **/
  172. SettingView.prototype._listenThemeChange = function () {
  173. var self = this;
  174. $(Elements.THEME_OPTION).on('change', function (e) {
  175. BB.CONSTS['THEME'] = $(Elements.THEME_OPTION + ' option:selected').val();
  176. self.m_simpleStorage.set('theme', BB.CONSTS['THEME']);
  177. if (BB.CONSTS['THEME'] === 'light') {
  178. bootbox.alert($(Elements.MSG_BOOTBOX_RELOAD_THEME).text());
  179. }
  180. else {
  181. BB.lib.loadCss('style_' + BB.CONSTS['THEME'] + '.css');
  182. }
  183. BB.comBroker.fire(BB.EVENTS.THEME_CHANGED);
  184. });
  185. };
  186. return SettingView;
  187. })(Backbone.View);
  188. return SettingView;
  189. });
  190. //# sourceMappingURL=SettingView.js.map