APIs

Show:
/**
 Select a campaign name during new campaign creation wizard
 @class CampaignNameView
 @constructor
 @return {Object} instantiated CampaignNameView
 **/
define(['jquery', 'backbone', 'video'], function ($, Backbone, video) {

    BB.SERVICES.CAMPAIGN_NAME_SELECTOR_VIEW = 'CampaignNameSelectorView';

    var CampaignNameSelectorView = Backbone.View.extend({

        /**
         Constructor
         @method initialize
         **/
        initialize: function () {
            var self = this;
            self.m_campaignName = 'My campaign';

            $(this.el).find(Elements.NEXT).on('click', function () {
                self.options.stackView.slideToPage(self.options.to, 'right');
                return false;
            });
            $(this.el).find(Elements.PREVIOUS).on('click', function () {
                self.options.stackView.slideToPage(self.options.from, 'left');
                return false;
            });

            self._listenInputChange();
        },

        /**
         Listen to changes in user campaign name input
         @method _listenInputChange
         @return none
         **/
        _listenInputChange: function () {
            var self = this;
            var onChange = _.debounce(function (e) {
                if (e.keyCode == 13) {
                    self.options.stackView.slideToPage(self.options.to, 'right');
                    return false;
                }
                self.m_campaignName = $(e.target).val();
            }, 150, false);
            $(Elements.NEW_CAMPAIGN_NAME).keyup(onChange);
        },

        /**
         Returns the selected campaign name
         @method getCampaignName
         @return {String} campaign name
         **/
        getCampaignName: function () {
            var self = this;
            return self.m_campaignName;
        }
    });

    return CampaignNameSelectorView;

});