/** * ComboBorderSize.js * * Created by Julia Radzhabova on 2/10/14 * Copyright (c) 2014 Ascensio System SIA. All rights reserved. * */ /** * Using template * *
*
*
* * *
* */ if (Common === undefined) var Common = {}; define([ 'common/main/lib/component/ComboBox' ], function () { 'use strict'; Common.UI.BordersModel = Backbone.Model.extend({ defaults: function() { return { value: null, displayValue: null, pxValue: null, id: Common.UI.getId(), offsety: undefined } } }); Common.UI.BordersStore = Backbone.Collection.extend({ model: Common.UI.BordersModel }); Common.UI.ComboBorderSize = Common.UI.ComboBox.extend(_.extend({ template: _.template([ '
', '
', '
', '', '', '
' ].join('')), initialize : function(options) { Common.UI.ComboBox.prototype.initialize.call(this, _.extend({ editable: false, store: new Common.UI.BordersStore(), data: [ {displayValue: this.txtNoBorders, value: 0, pxValue: 0 }, {displayValue: '0.5 pt', value: 0.5, pxValue: 0.5, offsety: 0}, {displayValue: '1 pt', value: 1, pxValue: 1, offsety: 20}, {displayValue: '1.5 pt', value: 1.5, pxValue: 2, offsety: 40}, {displayValue: '2.25 pt', value: 2.25,pxValue: 3, offsety: 60}, {displayValue: '3 pt', value: 3, pxValue: 4, offsety: 80}, {displayValue: '4.5 pt', value: 4.5, pxValue: 5, offsety: 100}, {displayValue: '6 pt', value: 6, pxValue: 6, offsety: 120} ], menuStyle: 'min-width: 150px;' }, options)); }, render : function(parentEl) { Common.UI.ComboBox.prototype.render.call(this, parentEl); return this; }, itemClicked: function (e) { var el = $(e.currentTarget).parent(); this._selectedItem = this.store.findWhere({ id: el.attr('id') }); if (this._selectedItem) { $('.selected', $(this.el)).removeClass('selected'); el.addClass('selected'); this.updateFormControl(this._selectedItem); this.trigger('selected', this, _.extend({}, this._selectedItem.toJSON()), e); e.preventDefault(); } }, updateFormControl: function(record) { var formcontrol = $(this.el).find('.form-control'); if (record.get('value')>0) { formcontrol[0].innerHTML = ''; formcontrol.removeClass('text').addClass('image'); formcontrol.css('background-position', '0 -' + record.get('offsety') + 'px'); } else { formcontrol[0].innerHTML = this.txtNoBorders; formcontrol.removeClass('image').addClass('text'); } }, setValue: function(value) { this._selectedItem = (value===null || value===undefined) ? undefined : _.find(this.store.models, function(item) { if ( valueitem.attributes.value-0.01) { return true; } }); $('.selected', $(this.el)).removeClass('selected'); if (this._selectedItem) { this.updateFormControl(this._selectedItem); $('#' + this._selectedItem.get('id'), $(this.el)).addClass('selected'); } else { var formcontrol = $(this.el).find('.form-control'); formcontrol[0].innerHTML = ''; formcontrol.removeClass('image').addClass('text'); } }, txtNoBorders: 'No Borders' }, Common.UI.ComboBorderSize || {})); Common.UI.ComboBorderSizeEditable = Common.UI.ComboBox.extend(_.extend({ template: _.template([ '', '', '', '', '' ].join('')), initialize : function(options) { this.txtNoBorders = options.txtNoBorders || this.txtNoBorders; Common.UI.ComboBox.prototype.initialize.call(this, _.extend({ editable: true, store: new Common.UI.BordersStore(), data: [ {displayValue: this.txtNoBorders, value: 0, pxValue: 0 }, {displayValue: '0.5 pt', value: 0.5, pxValue: 0.5, offsety: 0}, {displayValue: '1 pt', value: 1, pxValue: 1, offsety: 20}, {displayValue: '1.5 pt', value: 1.5, pxValue: 2, offsety: 40}, {displayValue: '2.25 pt', value: 2.25,pxValue: 3, offsety: 60}, {displayValue: '3 pt', value: 3, pxValue: 4, offsety: 80}, {displayValue: '4.5 pt', value: 4.5, pxValue: 5, offsety: 100}, {displayValue: '6 pt', value: 6, pxValue: 6, offsety: 120} ], menuStyle: 'min-width: 150px;' }, options)); }, render : function(parentEl) { Common.UI.ComboBox.prototype.render.call(this, parentEl); return this; }, txtNoBorders: 'No Borders' }, Common.UI.ComboBorderSizeEditable || {})); });