- /**
- TutorialView used to play live tutorials of the different elements of StudioLite
- @class TutorialView
- @constructor
- @return {Object} instantiated TutorialViewView
- **/
-
- // debug : define(['jquery', 'backbone', 'enjoy'], function ($, Backbone, enjoy) {
- define(['jquery', 'backbone'], function ($, Backbone) {
-
- var TutorialViewView = Backbone.View.extend({
-
- /**
- Constructor
- @method initialize
- **/
- initialize: function () {
- var self = this;
- self.m_selectedView = undefined;
- self.m_appSectionFunction = undefined;
- self.m_delay = 0;
- self.m_ignoreResizeInStep = [1,36]; // don't close wizard even on resize at this step (download files minor browser size change)
- self.m_enjoyHint;
- self._listenViewStacks();
- self._listenTutorialSelected();
- self._listenAppSized();
- self._listenCampaignListLoaded();
- self._listenWizardError();
- },
-
- /**
- Listen to error in wizard and do clean exit
- @method _listenWizardError
- **/
- _listenWizardError: function () {
- var self = this;
- BB.comBroker.listen(BB.EVENTS.WIZARD_EXIT, function () {
- if (self.m_enjoyHint)
- self.m_enjoyHint.trigger('skip');
- });
- },
-
- /**
- Close enjoyhint wizard
- @method _closeWizard
- **/
- _closeWizard: function () {
- var self = this;
- log('closing scene');
- if (!self.m_enjoyHint)
- return;
- // restore all elements that were touch during enjoy wizard steps
- $('.primeComponent').closest('.addBlockListItems').show();
- $('#addResourcesBlockListContainer', '#sceneAddNewBlock').show();
- $('#addComponentsBlockListContainer', '#sceneAddNewBlock').show();
- $('#sceneSelectorList').children().show();
- try {
- if (self.m_enjoyHint) {
- $.each(self.m_enjoyHint, function (k) {
- self[k] = undefined;
- });
- }
- } catch (e) {
- }
- self.m_enjoyHint = undefined;
- },
-
- /**
- Animation campaign selector tutorial
- @method _tutorialCampaign
- **/
- _tutorialCampaignSelector: function () {
- var self = this;
-
- var enjoyhint_script_steps = [
-
- {
- "click #newCampaign": $(Elements.WSTEP0).html(),
- "skipButton": {text: "quit"},
- left: 10,
- right: 10,
- top: 6,
- bottom: 6,
- onBeforeStart: function () {
- log('STEP 1');
- }
- },
- {
- "key #newCampaignName": $(Elements.WSTEP1).html(),
- "skipButton": {text: "quit"},
- keyCode: 13,
- onBeforeStart: function () {
- log('STEP 2');
- }
- },
- {
- event: "click",
- selector: $('#orientationView').find('img').eq(0),
- "skipButton": {text: "quit"},
- description: $(Elements.WSTEP2).html(),
- timeout: 500,
- margin: 0,
- padding: 0,
- onBeforeStart: function () {
- log('STEP 3');
- }
- },
- {
- "click #resolutionList": $(Elements.WSTEP3).html(),
- "skipButton": {text: "quit"},
- timeout: 500,
- bottom: 250,
- margin: 0,
- right: 500,
- padding: 0,
- onBeforeStart: function () {
- log('STEP 4');
- }
- },
- {
- event: "click",
- "skipButton": {text: "quit"},
- selector: $('#screenLayoutList'),
- description: $(Elements.WSTEP4).html(),
- timeout: 500,
- bottom: 250,
- onBeforeStart: function () {
- log('STEP 5');
- }
- },
- {
- "next #screenSelectorContainer": $(Elements.WSTEP5).html(),
- timeout: 1500,
- "skipButton": {text: "quit"}
- },
- {
- "click #toggleStorylineCollapsible": $(Elements.WSTEP6).html(),
- "skipButton": {text: "quit"},
- onBeforeStart: function () {
- BB.comBroker.getService(BB.SERVICES.STORYLINE).collapseStoryLine();
- log('STEP 6');
- }
- },
- {
- "next #storylineContainerCollapse": $(Elements.WSTEP7).html(),
- "skipButton": {text: "quit"},
- onBeforeStart: function () {
- log('STEP 7');
- }
- },
- {
- "click #selectNextChannel": $(Elements.WSTEP8).html(),
- "skipButton": {text: "quit"},
- left: 6,
- right: 6,
- top: 6,
- bottom: 6,
- onBeforeStart: function () {
- log('STEP 8');
- }
- },
- {
- "click #addBlockButton": $(Elements.WSTEP9).html(),
- "skipButton": {text: "quit"},
- left: 6,
- right: 6,
- top: 6,
- bottom: 6,
- onBeforeStart: function () {
- log('STEP 9');
- }
- },
- {
- event: "click",
- "skipButton": {text: "quit"},
- selector: $('#addResourcesBlockListContainer a'),
- description: $(Elements.WSTEP10).html(),
- timeout: 400,
- padding: 15,
- margin: 15,
- onBeforeStart: function () {
- log('STEP 10');
- }
- },
- {
- event: "click",
- "skipButton": {text: "quit"},
- selector: $('#addResourceBlockList'),
- description: $(Elements.WSTEP11).html(),
- timeout: 1000,
- bottom: 400,
- top: 20,
- left: 25,
- right: 25,
- onBeforeStart: function () {
- log('STEP 11');
- }
- },
- {
- "click .channelListItems": $(Elements.WSTEP12).html(),
- "skipButton": {text: "quit"},
- onBeforeStart: function () {
- log('STEP 12');
- }
- },
- {
- "next #blockProperties": $(Elements.WSTEP13).html(),
- "skipButton": {text: "quit"},
- onBeforeStart: function () {
- log('STEP 13');
- }
- },
- {
- "next #channelBlockProps": $(Elements.WSTEP14).html(),
- "skipButton": {text: "quit"},
- onBeforeStart: function () {
- log('STEP 14');
- }
- },
- {
- "click #editScreenLayout": $(Elements.WSTEP15).html(),
- "skipButton": {text: "quit"},
- left: 6,
- right: 6,
- top: 6,
- bottom: 6,
- onBeforeStart: function () {
- log('STEP 15');
- }
- },
- {
- "click #layoutEditorAddNew": $(Elements.WSTEP16).html(),
- "skipButton": {text: "quit"},
- left: 8,
- right: 8,
- top: 6,
- bottom: 6,
- onBeforeStart: function () {
- log('STEP 16');
- }
- },
- {
- "next #screenLayoutEditorCanvasWrap": $(Elements.WSTEP17).html(),
- "skipButton": {text: "quit"},
- bottom: 200,
- right: 100,
- onBeforeStart: function () {
- log('STEP 17');
- }
- },
- {
- event: "click",
- selector: $('#prev', "#screenLayoutEditorView"),
- "skipButton": {text: "quit"},
- description: $(Elements.WSTEP18).html(),
- onBeforeStart: function () {
- log('STEP 18');
- }
- },
- {
- event: "click",
- selector: '#screenSelectorContainerCollapse',
- "skipButton": {text: "quit"},
- description: $(Elements.WSTEP19).html(),
- timeout: 500,
- bottom: 10,
- onBeforeStart: function () {
- log('STEP 19');
- }
- },
- {
- event: "click",
- selector: $('.scenesPanel', '#appNavigator'),
- "skipButton": {text: "quit"},
- description: $(Elements.WSTEP20).html(),
- right: 10,
- top: 6,
- bottom: 10,
- onBeforeStart: function () {
- log('STEP 20');
- }
- },
-
- {
- event: "click",
- selector: $('#newScene'),
- "skipButton": {text: "quit"},
- description: $(Elements.WSTEP21).html(),
- left: 8,
- right: 8,
- top: 5,
- bottom: 5,
- onBeforeStart: function () {
- log('STEP 21');
- }
- },
- {
- event: "click",
- selector: '#sceneSelectorList',
- "skipButton": {text: "quit"},
- description: $(Elements.WSTEP22).html(),
- bottom: 400,
- timeout: 300,
- onBeforeStart: function () {
- //$('#sceneSelectorList').children().:not(:last-child)')fadeOut();
- var sceneCreationService = BB.comBroker.getService(BB.SERVICES['SCENES_CREATION_VIEW']);
- sceneCreationService.createBlankScene('New Scene from Wizard');
- $('a:not(:last-child)', '#sceneSelectorList').slideUp();
- log('STEP 22');
- }
- },
- {
- event: "click",
- selector: '.sceneAddNew',
- "skipButton": {text: "quit"},
- description: $(Elements.WSTEP23).html(),
- right: 8,
- left: 8,
- top: 5,
- bottom: 5,
- timeout: 300,
- onBeforeStart: function () {
- log('STEP 23');
- }
- },
- {
- event: "click",
- selector: '#sceneAddNewBlock',
- "skipButton": {text: "quit"},
- description: $(Elements.WSTEP24).html(),
- timeout: 500,
- right: 300,
- left: 50,
- top: 175,
- onBeforeStart: function () {
- log('STEP 24');
- $('#sceneAddNewBlock').find('[data-toggle]').trigger('click');
- $('.primeComponent').closest('.addBlockListItems').hide();
- $('#addResourcesBlockListContainer', '#sceneAddNewBlock').hide();
- }
- },
- {
- "next #sceneCanvas": $(Elements.WSTEP25).html(),
- event: "next",
- timeout: 300,
- bottom: 200,
- "skipButton": {text: "quit"},
- onBeforeStart: function () {
- log('STEP 25');
- }
- },
- {
- event: "click",
- selector: '.sceneAddNew',
- "skipButton": {text: "quit"},
- description: $(Elements.WSTEP26).html(),
- right: 8,
- left: 8,
- top: 5,
- bottom: 5,
- timeout: 300,
- onBeforeStart: function () {
- log('STEP 26');
- }
- },
- {
- event: "click",
- selector: '#sceneAddNewBlock',
- "skipButton": {text: "quit"},
- description: $(Elements.WSTEP24).html(),
- timeout: 500,
- right: 300,
- left: 50,
- top: 175,
- onBeforeStart: function () {
- log('STEP 27');
- $('#sceneAddNewBlock').find('[data-toggle]').trigger('click');
- $('#addResourcesBlockListContainer', '#sceneAddNewBlock').show();
- $('#addComponentsBlockListContainer', '#sceneAddNewBlock').hide();
- $('.primeComponent').closest('.addBlockListItems').hide();
- }
- },
- {
- "next #sceneCanvas": $(Elements.WSTEP28).html(),
- event: "next",
- timeout: 300,
- bottom: 200,
- "skipButton": {text: "quit"},
- onBeforeStart: function () {
- log('STEP 28');
- }
- },
- {
- event: "click",
- selector: $('.campaignManagerView', '#appNavigator'),
- "skipButton": {text: "quit"},
- description: $(Elements.WSTEP29).html(),
- right: 10,
- left: 6,
- top: 10,
- bottom: 10,
- onBeforeStart: function () {
- log('STEP 29');
- }
- },
- {
- "click #toggleStorylineCollapsible": $(Elements.WSTEP30).html(),
- "skipButton": {text: "quit"},
- onBeforeStart: function () {
- BB.comBroker.getService(BB.SERVICES.STORYLINE).collapseStoryLine();
- log('STEP 30');
- }
- },
- {
- left: 10,
- right: 10,
- "click #selectNextChannel": $(Elements.WSTEP31).html(),
- "skipButton": {text: "quit"},
- onBeforeStart: function () {
- log('STEP 31');
- }
- },
- {
- "click #addBlockButton": $(Elements.WSTEP32).html(),
- left: 6,
- right: 6,
- top: 6,
- bottom: 6,
- "skipButton": {text: "quit"},
- onBeforeStart: function () {
- log('STEP 32');
- $('#addResourcesBlockListContainer').find('[data-toggle]').trigger('click');
- }
- },
- {
- event: "click",
- "skipButton": {text: "quit"},
- selector: $('#addSceneBlockListContainer a'),
- description: $(Elements.WSTEP33).html(),
- timeout: 400,
- padding: 15,
- margin: 15,
- onBeforeStart: function () {
- log('STEP 33');
- }
- },
- {
- event: "click",
- "skipButton": {text: "quit"},
- selector: $('#addSceneBlockList'),
- description: $(Elements.WSTEP34).html(),
- timeout: 700,
- left: 25,
- right: 25,
- bottom: 25,
- top: 25,
- onBeforeStart: function () {
- log('STEP 34');
- }
- },
- {
- event: "click",
- selector: $('.installPanel', '#appNavigator'),
- "skipButton": {text: "quit"},
- timeout: 600,
- description: $(Elements.WSTEP35).html(),
- right: 10,
- top: 10,
- bottom: 10,
- hideInEnterprise: true,
- onBeforeStart: function () {
- log('STEP 35');
- }
- },
- {
- "next #installPanel": $(Elements.WSTEP36).html(),
- hideInEnterprise: true,
- "skipButton": {text: "quit"},
- onBeforeStart: function () {
- log('STEP 36');
- }
- },
- {
- "next #installPanel": $(Elements.WSTEP37).html(),
- "skipButton": {text: "quit"},
- hideInEnterprise: true,
- onBeforeStart: function () {
- log('STEP 37');
- }
- },
- {
- event: "click",
- selector: $('.stationsPanel', '#appNavigator'),
- "skipButton": {text: "quit"},
- timeout: 600,
- top: 10,
- bottom: 10,
- description: $(Elements.WSTEP38).html(),
- right: 10,
- onBeforeStart: function () {
- log('STEP 38');
- }
- },
- {
- "next #stationsPanel": $(Elements.WSTEP39).html(),
- timeout: 600,
- "skipButton": {text: "quit"},
- bottom: 400,
- onBeforeStart: function () {
- log('STEP 39');
- }
- },
- {
- event: "click",
- selector: $('.helpPanel', '#appNavigator'),
- "skipButton": {text: "quit"},
- timeout: 600,
- description: $(Elements.WSTEP40).html(),
- right: 10,
- top: 10,
- bottom: 10,
- hideInEnterprise: true,
- onBeforeStart: function () {
- log('STEP 40');
- }
- },
- {
- "next #helpPanel": $(Elements.WSTEP41).html(),
- timeout: 200,
- hideInEnterprise: true,
- "skipButton": {text: "quit"},
- onBeforeStart: function () {
- log('STEP 41');
- }
- },
- {
- event: "next",
- timeout: 200,
- selector: $('#appEntry'),
- "skipButton": {text: "quit"},
- description: $(Elements.WSTEP42).html(),
- bottom: 600,
- onBeforeStart: function () {
- log('STEP 42');
- setTimeout(function () {
- $('#enjoyhint_arrpw_line').fadeOut();
- }, 1000);
- }
- }
- ];
-
- self.m_enjoyHint = new EnjoyHint({
- onStart: function () {
- },
- onEnd: function () {
- self._closeWizard();
- },
- onSkip: function () {
- self._closeWizard();
- }
- });
-
- // if enterprise mode, remove steps set to hideInEnterprise = true
- if (pepper.getUserData().resellerID != 1){
- _.forEach(enjoyhint_script_steps, function (item, index) {
- if (item.hideInEnterprise == true) {
- enjoyhint_script_steps = _.without(enjoyhint_script_steps,item);
- }
- });
- }
-
- log(enjoyhint_script_steps.length);
- self.m_enjoyHint.set(enjoyhint_script_steps);
- self.m_enjoyHint.run();
- },
-
- /**
- When campaign list loaded, if first time user, suggest wizard
- @method _listenCampaignListLoaded
- **/
- _listenCampaignListLoaded: function () {
- var self = this;
- BB.comBroker.listen(BB.EVENTS.CAMPAIGN_LIST_LOADING, function (e) {
- $(Elements.LIVE_TUTORIAL).trigger('click');
- });
- },
-
- /**
- Remove live tutorial on app resize
- @method _listenAppSized
- **/
- _listenAppSized: function () {
- var self = this;
- BB.comBroker.listen(BB.EVENTS.APP_SIZED, function () {
- if (!self.m_enjoyHint)
- return;
- var step = self.m_enjoyHint.getCurrentStep();
- var exists = _.contains(self.m_ignoreResizeInStep, step);
- if (exists)
- return;
- self.m_enjoyHint.trigger('skip');
- });
- },
-
- /**
- Close live tutorial
- @method _listenCloseTutorial
- **/
- _listenCloseTutorial: function () {
- var self = this;
- },
-
- /**
- Load up live tutorial
- @method _listenTutorialSelected
- **/
- _listenTutorialSelected: function () {
- var self = this;
- $(self.el).on('click', function () {
- self._loadTutorial();
- });
- },
-
- /**
- Animation campaign tutorial
- @method _tutorialCampaign
- **/
- _tutorialCampaign: function () {
- var self = this;
- BB.comBroker.fire(BB.EVENTS.CAMPAIGN_EXPANDED_VIEW, this);
- },
-
- /**
- Animation stations tutorial
- @method _tutorialStations
- **/
- _tutorialStations: function () {
- var self = this;
- },
-
- /**
- Animation resource tutorial
- @method _tutorialResourcePanel
- **/
- _tutorialResourcePanel: function () {
- var self = this;
- },
-
- /**
- Animation install tutorial
- @method _tutorialInstallPanel
- **/
- _tutorialInstallPanel: function () {
- var self = this;
- },
-
- /**
- Animation screen layout tutorial
- @method _tutorialScreenLayout
- **/
- _tutorialScreenLayout: function () {
- var self = this;
- },
-
- /**
- Animation scenes tutorial
- @method _tutorialScenes
- **/
- _tutorialScenes: function () {
- var self = this;
- },
-
- /**
- Animation scene selector tutorial
- @method _tutorialScenesSelector
- **/
- _tutorialScenesSelector: function () {
- var self = this;
- },
-
- /**
- Animation screen layout editor tutorial
- @method _tutorialScreenLayoutEditor
- **/
- _tutorialScreenLayoutEditor: function () {
- var self = this;
- },
-
- /**
- Animation help tutorial
- @method _tutorialHelp
- **/
- _tutorialHelp: function () {
- var self = this;
- },
-
- /**
- Animation add new block tutorial
- @method _tutorialAddBlock
- **/
- _tutorialAddBlock: function () {
- var self = this;
- },
-
- /**
- Animation tutorial when no specific exists
- @method _tutorialDefault
- **/
- _tutorialDefault: function () {
- var self = this;
- },
-
- /**
- Listen to changes in StackView selection so we can bind to appropriate tutorial per current StackView selection
- @method _listenViewStacks
- **/
- _listenViewStacks: function () {
- var self = this;
- BB.comBroker.listen(BB.EVENTS.SELECTED_STACK_VIEW, function (e) {
- self.m_selectedView = '#' + e.context.el.id;
- // log('view: ' + self.m_selectedView);
- switch (self.m_selectedView) {
- case Elements.CAMPAIGN_SELECTOR:
- {
- }
- case Elements.CAMPAIGN_MANAGER_VIEW:
- {
- if (!BB.SERVICES.CAMPAIGN_SELECTOR)
- return;
- if (_.isUndefined(BB.comBroker.getService(BB.SERVICES.CAMPAIGN_SELECTOR)))
- return;
- if (BB.comBroker.getService(BB.SERVICES.CAMPAIGN_SELECTOR).getSelectedCampaign() == -1) {
- self.m_appSectionFunction = self._tutorialCampaignSelector;
- } else {
- self.m_appSectionFunction = self._tutorialCampaign;
- }
- break;
- }
- case Elements.RESOURCES_PANEL:
- {
- self.m_appSectionFunction = self._tutorialResourcePanel;
- break;
- }
- case Elements.CAMPAIGN:
- {
- self.m_appSectionFunction = self._tutorialCampaign;
- break;
- }
- case Elements.SCREEN_LAYOUT_EDITOR_VIEW:
- {
- self.m_appSectionFunction = self._tutorialScreenLayoutEditor;
- break;
- }
- case Elements.STATIONS_PANEL:
- {
- self.m_appSectionFunction = self._tutorialStations;
- break;
- }
- case Elements.SCREEN_LAYOUT_SELECTOR:
- {
- self.m_appSectionFunction = self._tutorialScreenLayout;
- break;
- }
- case Elements.SCENE_SELECTOR:
- {
- self.m_appSectionFunction = self._tutorialScenesSelector;
- break;
- }
- case Elements.SCENE_SLIDER_ELEMENT_VIEW:
- {
- self.m_appSectionFunction = self._tutorialScenes;
- break;
- }
- case Elements.ADD_BLOCK_ELEM_VIEW:
- {
- }
- case Elements.SCENE_ADD_NEW_BLOCK:
- {
- self.m_appSectionFunction = self._tutorialAddBlock;
- break;
- }
- case Elements.HELP_PANEL:
- {
- self.m_appSectionFunction = self._tutorialHelp;
- break;
- }
- case Elements.INSTALL_PANEL:
- {
- self.m_appSectionFunction = self._tutorialInstallPanel;
- break;
- }
- case Elements.SETTINGS_PANEL:
- {
- }
- case Elements.LOGOUT_PANEL:
- {
- }
- case Elements.CAMPAIGN_NAME_SELECTOR_VIEW:
- {
- }
- case Elements.ORIENTATION_SELECTOR:
- {
- }
- case Elements.RESOLUTION_SELECTOR:
- {
- }
- case Elements.PRO_STUDIO_PANEL:
- {
- self.m_appSectionFunction = self._tutorialDefault;
- }
- }
- });
- },
-
- /**
- Load currently selected tutorial per StackView selection
- @method _loadTutorial
- **/
- _loadTutorial: function () {
- var self = this;
- if (!self.m_appSectionFunction)
- return;
- self.m_delay = 0;
-
- if (self.m_appSectionFunction == self._tutorialCampaignSelector){
- require(['enjoy'], function (enjoy) {
- self.m_appSectionFunction();
- self._listenCloseTutorial();
- });
- } else {
- bootbox.alert($(Elements.MSG_BOOTBOX_WIARD_SWITCH_CAMPAIGN_LIST).text());
- }
-
-
- //self.m_appSectionFunction();
-
-
- }
- });
-
- return TutorialViewView;
- });
-
- // TweenMax.to($(i_el), 2, {delay: self.m_delay, top: i_top, left: i_left, rotation: i_rotation, scale: i_scale, skewX: i_skewX, ease: 'Power4.easeOut'});
- // TweenMax.to($(i_el), 2, {delay: self.m_delay, top: i_top, left: i_left, rotation: i_rotation, scale: i_scale, skewX: i_skewX, ease: 'Power4.easeOut'});
- // TweenMax.to($(arrow), 2, {delay: 0.1, top: offset.top + 75, left: offset.left + 35, rotation: 20, scale: '2.0', skewX: 20, ease: 'Power4.easeOut'});
- // TweenMax.to($('#txt'), 2, {delay: 0.5, top: offset.top + 45, left: offset.left + -100, rotation: 3, skewX: 2, ease: 'Power4.easeOut'});
- // var tl = new TimelineMax({repeatDelay: 1, 'yoyo': true});
- // tl.from($('#arrow'),2,{left: '1500px', scale: '2.0', ease: 'Power4.easeOut'});
- // tl.play();
- // TweenMax.to($('#arrow'), 1, {left: "300px", opacity: 1, repeat: 1, yoyo: true, ease: 'Circ.easeIn'});
- // TweenMax.to($('#arrow'),1,{left: '800px', repeat:3, ease:'Circ.easeIn'});
-