- ///<reference path="../../typings/lite/app_references.d.ts" />
- var __extends = (this && this.__extends) || function (d, b) {
- for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
- //GULP_ABSTRACT_END
- define(['jquery', 'SceneTemplates'], function ($, SceneTemplates) {
- BB.SERVICES.SCENE_CREATOR_TEMPLATE_VIEW = 'SceneCreatorTemplateView';
- /**
- Wizard which allows user to select which scene to create, such as from a template, blank, with mimetype etc
- @class SceneCreatorTemplateView
- @constructor
- @return {Object} instantiated SceneCreatorTemplateView
- **/
- var SceneCreatorTemplateView = (function (_super) {
- __extends(SceneCreatorTemplateView, _super);
- function SceneCreatorTemplateView(options) {
- this.m_options = options;
- _super.call(this);
- }
- SceneCreatorTemplateView.prototype.initialize = function () {
- var self = this;
- self.id = self.m_options.el;
- self.$el = $(this.id);
- self.el = this.$el.get(0);
- self.m_counter = 1;
- //self.m_count_set = 100;
- self.m_sceneTemplates = new SceneTemplates();
- self.m_counter_max = _.size(this.m_sceneTemplates.m_scenes);
- BB.comBroker.setService(BB.SERVICES.SCENE_CREATOR_TEMPLATE_VIEW, this);
- self._listenSceneImportSelection();
- self.listenTo(self.m_options.stackView, BB.EVENTS.SELECTED_STACK_VIEW, function (e) {
- if (e === self)
- self._render();
- });
- $(self.el).find('#prev').on('click', function () {
- self._goBack();
- return false;
- });
- };
- SceneCreatorTemplateView.prototype._listenSceneImportSelection = function () {
- var self = this;
- $('#sceneCreatorTemplate').on('click', function (e) {
- if ($(e.target).hasClass('sceneImportThumb')) {
- var businessID = $(e.target).data('businessid');
- var nativeID = $(e.target).data('native');
- var sceneName = $(e.target).data('scenename');
- var largePreview = "http://s3.signage.me/business1000/resources/scenes_snaps/" + sceneName + ".png";
- bootbox.dialog({
- title: "" + sceneName,
- message: "<center>\n <img src=\"" + largePreview + "\" width=\"512\" height=\"286\"/>\n </center>\n ",
- buttons: {
- success: {
- label: "Download it now",
- className: "btn-success",
- callback: function () {
- BB.Pepper.m_loaderManager.importScene(businessID, nativeID, function (i_SceneId) {
- BB.Pepper.injectPseudoScenePlayersIDs(i_SceneId);
- var navigationView = BB.comBroker.getService(BB.SERVICES.NAVIGATION_VIEW);
- navigationView.save(function () {
- BB.comBroker.fire(BB.EVENTS.SCENE_LIST_UPDATED, this, this, 'pushToTop');
- self._goBack();
- });
- });
- }
- }
- }
- });
- }
- });
- };
- /**
- Open modal dialog for scene import and render all images via imageLoaded
- @method _listenImportSceneModal
- **/
- SceneCreatorTemplateView.prototype._loadSceneTemplates = function () {
- var self = this;
- $(Elements.SCENE_IMPORT_MODAL).modal('now');
- if (self.m_counter > self.m_counter_max)
- return;
- var $progress, $status;
- var supportsProgress;
- var loadedImageCount, imageCount;
- $('#image-container').empty();
- var $demo = $('#selectSceneTypeCreateTemplate');
- var $container = $demo.find('#image-container');
- $status = $demo.find('#status');
- $progress = $demo.find('progress');
- supportsProgress = $progress[0] &&
- // IE does not support progress
- $progress[0].toString().indexOf('Unknown') === -1;
- function populateScenes() {
- // add new images
- var items = getItems();
- //console.log(items);
- $container.prepend($(items));
- // use ImagesLoaded
- $container.imagesLoaded()
- .progress(onProgress)
- .always(function () {
- onAlways();
- //setTimeout(function () {
- // if (self.m_counter > self.m_counter_max) {
- // $(Elements.IMPORT_SCENEL_DIALOG_CONTAINER).find('button').fadeIn();
- // return;
- // }
- // //populateScenes();
- //}, 500);
- })
- .fail(function (e) {
- //console.log('some fail ' + e)
- })
- .done(function () {
- //console.log('completed...')
- });
- // reset progress counter
- imageCount = $container.find('img').length;
- resetProgress();
- updateProgress(0);
- }
- // reset container
- $('#reset').click(function () {
- $container.empty();
- self.m_counter = 0;
- });
- function getItems() {
- var items = '';
- for (var sceneName in self.m_sceneTemplates.m_scenes) {
- var sceneConfig = self.m_sceneTemplates.m_scenes[sceneName];
- switch (self.m_selectedSceneMime) {
- case 'Json.digg':
- {
- if (sceneName.indexOf('Digg') == -1)
- continue;
- break;
- }
- case 'Json.twitter':
- {
- if (sceneName.indexOf('Twitter') == -1)
- continue;
- break;
- }
- case 'Json.instagram':
- {
- if (sceneName.indexOf('Instagram') == -1)
- continue;
- break;
- }
- case 'Json.calendar':
- {
- if (sceneName.indexOf('Calendar') == -1)
- continue;
- break;
- }
- case 'Json.spreadsheet':
- {
- if (sceneName.indexOf('Sheet') == -1)
- continue;
- break;
- }
- case 'Json.weather':
- {
- if (sceneName.indexOf('Weather') == -1)
- continue;
- break;
- }
- default:
- {
- }
- }
- var item = "<li class=\"is-loading\">\n <img class=\"sceneImportThumb\" data-native=\"" + sceneConfig[2] + "\" data-scenename=\"" + sceneName + "\" data-businessid=\"" + sceneConfig[0] + "\" src=\"_assets/scenes/" + sceneName + ".jpg\"/>\n </li>";
- items = items + item;
- }
- return items;
- }
- // return an <li> with a <img> in it
- function getImageItem(index) {
- var item = '<li class="is-loading">';
- item += '<img style="width: 139px; height: 78px" src="_assets/scenes/Template' + index + '.jpg"/></li>';
- return item;
- }
- function resetProgress() {
- $status.css({ opacity: 1 });
- loadedImageCount = 0;
- if (supportsProgress) {
- $progress.attr('max', imageCount);
- }
- }
- function updateProgress(value) {
- if (supportsProgress) {
- $progress.attr('value', value);
- }
- else {
- // if you don't support progress elem
- $status.text(value + ' / ' + imageCount);
- }
- }
- // triggered after each item is loaded
- function onProgress(imgLoad, image) {
- // change class if the image is loaded or broken
- var $item = $(image.img).parent();
- $item.removeClass('is-loading');
- if (!image.isLoaded) {
- $item.addClass('is-broken');
- }
- // update progress element
- loadedImageCount++;
- updateProgress(loadedImageCount);
- }
- // hide status when done
- function onAlways() {
- $status.css({ opacity: 0 });
- }
- populateScenes();
- };
- SceneCreatorTemplateView.prototype._goBack = function () {
- var self = this;
- self.m_options.stackView.slideToPage(self.m_options.from, 'left');
- };
- /**
- Render the view
- @method _render
- **/
- SceneCreatorTemplateView.prototype._render = function () {
- var self = this;
- setTimeout(function (e) { return self._loadSceneTemplates(); }, 500);
- };
- /**
- Returns this model's attributes as...
- @method setSceneMimeType
- @param {Number} i_playerData
- @return {Number} Unique clientId.
- **/
- SceneCreatorTemplateView.prototype.setSceneMimeType = function (i_selectedSceneMime) {
- var self = this;
- self.m_selectedSceneMime = i_selectedSceneMime;
- //self._render();
- };
- return SceneCreatorTemplateView;
- }(Backbone.View));
- return SceneCreatorTemplateView;
- });
- //# sourceMappingURL=SceneCreatorTemplateView.js.map
-