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. BB.SERVICES.SCENES_CREATION_VIEW = 'ScenesCreationView';
  10. /**
  11. Wizard which allows user to select which scene to create, such as from a template, blank, with mimetype etc
  12. @class SceneCreatorView
  13. @constructor
  14. @return {Object} instantiated SceneCreatorView
  15. **/
  16. var SceneCreatorView = (function (_super) {
  17. __extends(SceneCreatorView, _super);
  18. function SceneCreatorView(options) {
  19. this.m_options = options;
  20. _super.call(this);
  21. }
  22. SceneCreatorView.prototype.initialize = function () {
  23. var self = this;
  24. self.id = self.m_options.el;
  25. self.$el = $(this.id);
  26. self.el = this.$el.get(0);
  27. self.m_sceneConfig = [];
  28. BB.comBroker.setService(BB.SERVICES.SCENES_CREATION_VIEW, self);
  29. self.m_sceneSelector = BB.comBroker.getService(BB.SERVICES.SCENES_CREATION_VIEW);
  30. //BB.comBroker.setService(BB.SERVICES['SETTINGS_VIEW'], self);
  31. self.listenTo(self.m_options.stackView, BB.EVENTS.SELECTED_STACK_VIEW, function (e) {
  32. if (e === self && !self.m_rendered) {
  33. self._render();
  34. self.m_rendered = true;
  35. }
  36. });
  37. $(self.el).find('#prev').on('click', function () {
  38. self._goBack();
  39. return false;
  40. });
  41. };
  42. /**
  43. Go back with slider
  44. @method _goBack
  45. **/
  46. SceneCreatorView.prototype._goBack = function () {
  47. var self = this;
  48. self.m_options.stackView.slideToPage(self.m_options.from, 'left');
  49. };
  50. SceneCreatorView.prototype._nameScene = function (i_cb) {
  51. var self = this;
  52. bootbox.prompt("Give your scene a name:", function (result) {
  53. if (result === null) {
  54. i_cb();
  55. }
  56. else {
  57. result = BB.lib.cleanChar(result);
  58. i_cb(result);
  59. }
  60. });
  61. };
  62. /**
  63. Listen to user selecting specific type of scene to create
  64. @method _listenSelectScene
  65. **/
  66. SceneCreatorView.prototype._listenSelectScene = function () {
  67. var self = this;
  68. $(self.el).on('click', function (e) {
  69. var mimeType = $(e.target).closest('.profileCard').data('mimetype');
  70. if (_.isUndefined(mimeType))
  71. return;
  72. switch (mimeType) {
  73. case 'blank':
  74. {
  75. self._nameScene(function (i_name) {
  76. if (_.isUndefined(i_name) || i_name.length == 0)
  77. return;
  78. BB.comBroker.fire(BB.EVENTS.NEW_SCENE_ADD, this, null, {
  79. name: i_name,
  80. mimeType: ''
  81. });
  82. BB.comBroker.fire(BB.EVENTS.SCENE_LIST_UPDATED, this, this, 'pushToTop');
  83. self._goBack();
  84. });
  85. break;
  86. }
  87. case 'template':
  88. {
  89. BB.comBroker.getService(BB.SERVICES.SCENE_CREATOR_TEMPLATE_VIEW).setSceneMimeType('all');
  90. self.m_options.stackView.slideToPage(self.m_options.to, 'right');
  91. break;
  92. }
  93. case 'Json.digg':
  94. {
  95. BB.comBroker.getService(BB.SERVICES.SCENE_CREATOR_TEMPLATE_VIEW).setSceneMimeType('Json.digg');
  96. self.m_options.stackView.slideToPage(self.m_options.to, 'right');
  97. break;
  98. }
  99. case 'Json.twitter':
  100. {
  101. BB.comBroker.getService(BB.SERVICES.SCENE_CREATOR_TEMPLATE_VIEW).setSceneMimeType('Json.twitter');
  102. self.m_options.stackView.slideToPage(self.m_options.to, 'right');
  103. break;
  104. }
  105. case 'Json.instagram.feed':
  106. {
  107. BB.comBroker.getService(BB.SERVICES.SCENE_CREATOR_TEMPLATE_VIEW).setSceneMimeType('Json.instagram');
  108. self.m_options.stackView.slideToPage(self.m_options.to, 'right');
  109. break;
  110. }
  111. case 'Json.calendar':
  112. {
  113. BB.comBroker.getService(BB.SERVICES.SCENE_CREATOR_TEMPLATE_VIEW).setSceneMimeType('Json.calendar');
  114. self.m_options.stackView.slideToPage(self.m_options.to, 'right');
  115. break;
  116. }
  117. case 'Json.weather':
  118. {
  119. BB.comBroker.getService(BB.SERVICES.SCENE_CREATOR_TEMPLATE_VIEW).setSceneMimeType('Json.weather');
  120. self.m_options.stackView.slideToPage(self.m_options.to, 'right');
  121. break;
  122. }
  123. case 'Json.spreadsheet':
  124. {
  125. BB.comBroker.getService(BB.SERVICES.SCENE_CREATOR_TEMPLATE_VIEW).setSceneMimeType('Json.spreadsheet');
  126. self.m_options.stackView.slideToPage(self.m_options.to, 'right');
  127. break;
  128. }
  129. }
  130. });
  131. };
  132. /**
  133. Render the view
  134. @method _render
  135. **/
  136. SceneCreatorView.prototype._render = function () {
  137. var self = this;
  138. if (self.m_rendered)
  139. return;
  140. self.m_sceneConfig = [
  141. {
  142. name: $(Elements.BOOTBOX_START_BLANK).text(),
  143. mimeType: 'blank',
  144. icon: 'fa-star',
  145. description: $(Elements.BOOTBOX_CREATE_DESIGN).text()
  146. },
  147. {
  148. name: $(Elements.BOOTBOX_FROM_TEMPLATE).text(),
  149. mimeType: 'template',
  150. icon: 'fa-paint-brush',
  151. description: $(Elements.BOOTBOX_PRE_MADE_SCENES).text()
  152. }
  153. ];
  154. var blocks = (BB.PepperHelper.getBlocks());
  155. _.forEach(blocks, function (block) {
  156. if (block.mimeType) {
  157. self.m_sceneConfig.push({
  158. name: block.description,
  159. mimeType: block.mimeType,
  160. icon: block.fontAwesome,
  161. description: block.jsonItemLongDescription
  162. });
  163. }
  164. });
  165. var snippet = '';
  166. _.forEach(self.m_sceneConfig, function (block) {
  167. snippet += "\n <div data-mimetype=\"" + block.mimeType + "\" class=\"col-xs-12 col-sm-6 col-md-6 col-lg-4 profileCard\">\n <div class=\"profileCard1\">\n <div class=\"pImg\">\n <span class=\"fa " + block.icon + " fa-4x\"></span>\n </div>\n <div class=\"pDes\">\n <h1 class=\"text-center\">" + block.name + "</h1>\n <p>" + block.description + "</p>\n <a class=\"btn btn-md\">\n <span class=\"fa fa-plus fa-2x\"></span>\n </a>\n </div>\n </div>\n </div>\n ";
  168. });
  169. $(Elements.SELECT_SCENE_TYPE_CREATE).append(snippet);
  170. self._listenSelectScene();
  171. };
  172. /**
  173. Select scene creation and give it a set name (instead of click operation we can do it manually)
  174. @method createScene
  175. @param {String} i_name
  176. **/
  177. SceneCreatorView.prototype.createBlankScene = function (i_name) {
  178. var self = this;
  179. i_name = BB.lib.cleanChar(i_name);
  180. BB.comBroker.fire(BB.EVENTS.NEW_SCENE_ADD, this, null, {
  181. name: i_name,
  182. mimeType: ''
  183. });
  184. BB.comBroker.fire(BB.EVENTS.SCENE_LIST_UPDATED, this, this, 'pushToTop');
  185. self._goBack();
  186. };
  187. return SceneCreatorView;
  188. }(Backbone.View));
  189. return SceneCreatorView;
  190. });
  191. //# sourceMappingURL=SceneCreatorView.js.map