- /**
- * BlockFasterQ block resides inside a scene or timeline
- * @class BlockFasterQ
- * @extends Block
- * @constructor
- * @param {string} i_placement location where objects resides which can be scene or timeline
- * @param {string} i_campaign_timeline_chanel_player_id required and set as block id when block is inserted onto timeline_channel
- * @return {Object} Block instance
- */
- define(['jquery', 'backbone', 'Block'], function ($, Backbone, Block) {
-
- var BlockFasterQ = Block.extend({
-
- /**
- Constructor
- @method initialize
- **/
- constructor: function (options) {
- var self = this;
- self.m_blockType = 6100;
- _.extend(options, {blockType: self.m_blockType});
- Block.prototype.constructor.call(this, options);
- self._initSubPanel(Elements.BLOCK_FASTERQ_COMMON_PROPERTIES);
- self._listenInputChanges();
- self._listenBackgroundColorChange();
- },
-
- /**
- Listen to changes in the line id selection
- @method _listenInputChanges
- **/
- _listenInputChanges: function () {
- var self = this;
- self.m_inputNameChangeHandler = _.debounce(function (e) {
- if (!self.m_selected)
- return;
- var $elem = $(Elements.CLASS_FASTERQ_LINE_NUMBER);
- var domPlayerData = self._getBlockPlayerData();
- var xWebKit = $(domPlayerData).find('Webkit');
- var xWebKitData = $(xWebKit).find('Data');
- $(xWebKitData).attr('lineID1',BB.lib.cleanChar($elem.eq(0).val()));
- $(xWebKitData).attr('lineID2',BB.lib.cleanChar($elem.eq(1).val()));
- $(xWebKitData).attr('lineID3',BB.lib.cleanChar($elem.eq(2).val()));
- $(xWebKitData).attr('lineID4',BB.lib.cleanChar($elem.eq(3).val()));
- $(xWebKitData).attr('lineID5',BB.lib.cleanChar($elem.eq(4).val()));
- self._setBlockPlayerData(domPlayerData, BB.CONSTS.NO_NOTIFICATION);
- }, 200);
- $(Elements.CLASS_FASTERQ_LINE_NUMBER).on("input", self.m_inputNameChangeHandler);
- },
-
- /**
- Load up property values in the common panel
- @method _populate
- @return none
- **/
- _populate: function () {
- var self = this;
- var domPlayerData = self._getBlockPlayerData();
- var xWebKit = $(domPlayerData).find('Webkit');
- var xWebKitData = $(xWebKit).find('Data');
- var $elem = $(Elements.CLASS_FASTERQ_LINE_NUMBER);
- $elem.eq(0).val($(xWebKitData).attr('lineID1'));
- $elem.eq(1).val($(xWebKitData).attr('lineID2'));
- $elem.eq(2).val($(xWebKitData).attr('lineID3'));
- $elem.eq(3).val($(xWebKitData).attr('lineID4'));
- $elem.eq(4).val($(xWebKitData).attr('lineID5'));
- var bgColor = BB.lib.colorToHex(BB.lib.decimalToHex($(xWebKitData).attr('bgColor')));
- $('.minicolors-swatch-color',Elements.BLOCK_FASTERQ_COMMON_PROPERTIES).css({'backgroundColor': bgColor});
- },
-
- /**
- Listen to changes in font UI background color from common Block property and take action on changes
- @method _listenBackgroundColorChange
- **/
- _listenBackgroundColorChange: function () {
- var self = this;
- BB.comBroker.listenWithNamespace(BB.EVENTS.FASTERQ_BG_COLOR_CHANGE, self, function (e) {
- if (!self.m_selected)
- return;
- var color = e.edata;
- var domPlayerData = self._getBlockPlayerData();
- var xWebKit = $(domPlayerData).find('Webkit');
- $(xWebKit).find('Data').attr('bgColor', BB.lib.colorToDecimal(color));
- self._setBlockPlayerData(domPlayerData);
- });
- },
-
- /**
- Populate the common block properties panel, called from base class if exists
- @method _loadBlockSpecificProps
- @return none
- **/
- _loadBlockSpecificProps: function () {
- var self = this;
- self._populate();
- this._viewSubPanel(Elements.BLOCK_FASTERQ_COMMON_PROPERTIES);
- },
-
- /**
- Delete this block
- @method deleteBlock
- @params {Boolean} i_memoryOnly if true only remove from existance but not from msdb
- **/
- deleteBlock: function (i_memoryOnly) {
- var self = this;
- $(Elements.CLASS_FASTERQ_LINE_NUMBER).off("input", self.m_inputNameChangeHandler);
- BB.comBroker.stopListenWithNamespace(BB.EVENTS.FASTERQ_BG_COLOR_CHANGE, self);
- self._deleteBlock(i_memoryOnly);
- }
- });
-
- return BlockFasterQ;
- });
-