[DE] Add font settings for lists
This commit is contained in:
		
							parent
							
								
									42340dbd8d
								
							
						
					
					
						commit
						2f38eefef0
					
				| 
						 | 
				
			
			@ -1412,11 +1412,25 @@ define([
 | 
			
		|||
                level = me.api.asc_GetCurrentNumberingLvl(),
 | 
			
		||||
                props = (listId !== null) ? me.api.asc_GetNumberingPr(listId) : null;
 | 
			
		||||
            if (props) {
 | 
			
		||||
                var me = this;
 | 
			
		||||
                if (_.isUndefined(me.fontstore)) {
 | 
			
		||||
                    me.fontstore = new Common.Collections.Fonts();
 | 
			
		||||
                    var fonts = me.toolbar.cmbFontName.store.toJSON();
 | 
			
		||||
                    var arr = [];
 | 
			
		||||
                    _.each(fonts, function(font, index){
 | 
			
		||||
                        if (!font.cloneid) {
 | 
			
		||||
                            arr.push(_.clone(font));
 | 
			
		||||
                        }
 | 
			
		||||
                    });
 | 
			
		||||
                    me.fontstore.add(arr);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                (new DE.Views.ListSettingsDialog({
 | 
			
		||||
                    api: me.api,
 | 
			
		||||
                    props: props,
 | 
			
		||||
                    level: level,
 | 
			
		||||
                    type: type,
 | 
			
		||||
                    fontStore: me.fontstore,
 | 
			
		||||
                    interfaceLang: me.mode.lang,
 | 
			
		||||
                    handler: function(result, value) {
 | 
			
		||||
                        if (result == 'ok') {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -85,12 +85,8 @@ define([
 | 
			
		|||
                                '<div id="id-dlg-bullet-align" class="input-group-nr" style="width: 100%;margin-bottom: 10px;"></div>',
 | 
			
		||||
                            '</td>',
 | 
			
		||||
                            '<td style="padding-left: 5px;padding-right: 5px;">',
 | 
			
		||||
                                '<label class="input-label">' + this.txtSize + '</label>',
 | 
			
		||||
                                '<div id="id-dlg-bullet-size" class="input-group-nr" style="width: 100%;margin-bottom: 10px;"></div>',
 | 
			
		||||
                            '</td>',
 | 
			
		||||
                            '<td style="padding-left: 5px;">',
 | 
			
		||||
                                '<label class="input-label">' + this.txtColor + '</label>',
 | 
			
		||||
                                '<div id="id-dlg-bullet-color" style="margin-bottom: 10px;"></div>',
 | 
			
		||||
                            '</td>',
 | 
			
		||||
                        '</tr>',
 | 
			
		||||
                        '<tr>',
 | 
			
		||||
| 
						 | 
				
			
			@ -107,6 +103,22 @@ define([
 | 
			
		|||
                                '<div id="id-dlg-numbering-spin-start" style="margin-bottom: 10px;"></div>',
 | 
			
		||||
                            '</td>',
 | 
			
		||||
                        '</tr>',
 | 
			
		||||
                        '<tr>',
 | 
			
		||||
                            '<td colspan="2" style="padding-right: 5px;">',
 | 
			
		||||
                                '<label class="input-label" style="display: block;">' + this.txtFontName + '</label>',
 | 
			
		||||
                                '<div id="id-dlg-numbering-font-name" style="display: inline-block;width: 200px;height:22px;margin-bottom: 10px;vertical-align: middle;"></div>',
 | 
			
		||||
                                '<div id="id-dlg-numbering-bold" style="display: inline-block;margin-left: 4px;margin-bottom: 10px;vertical-align: middle;"></div>',
 | 
			
		||||
                                '<div id="id-dlg-numbering-italic" style="display: inline-block;margin-left: 4px;margin-bottom: 10px;vertical-align: middle;"></div>',
 | 
			
		||||
                            '</td>',
 | 
			
		||||
                            '<td style="padding-left: 5px;padding-right: 5px;">',
 | 
			
		||||
                                '<label class="input-label">' + this.txtSize + '</label>',
 | 
			
		||||
                                '<div id="id-dlg-bullet-size" class="input-group-nr" style="width: 100%;margin-bottom: 10px;"></div>',
 | 
			
		||||
                            '</td>',
 | 
			
		||||
                            '<td style="padding-left: 5px;">',
 | 
			
		||||
                                '<label class="input-label">' + this.txtColor + '</label>',
 | 
			
		||||
                                '<div id="id-dlg-bullet-color" style="margin-bottom: 10px;"></div>',
 | 
			
		||||
                            '</td>',
 | 
			
		||||
                        '</tr>',
 | 
			
		||||
                    '</table>',
 | 
			
		||||
                '<% } else {%>',
 | 
			
		||||
                    '<table cols="2" style="width: 100%;">',
 | 
			
		||||
| 
						 | 
				
			
			@ -155,6 +167,8 @@ define([
 | 
			
		|||
            this.props = options.props;
 | 
			
		||||
            this.level = options.level || 0;
 | 
			
		||||
            this.api = options.api;
 | 
			
		||||
            this.fontStore = options.fontStore;
 | 
			
		||||
            this.fontName = 'Arial';
 | 
			
		||||
            this.options.tpl = _.template(this.template)(this.options);
 | 
			
		||||
            this.levels = [];
 | 
			
		||||
            this.formatString = {
 | 
			
		||||
| 
						 | 
				
			
			@ -327,6 +341,7 @@ define([
 | 
			
		|||
            this.cmbSize = new Common.UI.ComboBox({
 | 
			
		||||
                el          : $window.find('#id-dlg-bullet-size'),
 | 
			
		||||
                menuStyle   : 'min-width: 100%;max-height: 183px;',
 | 
			
		||||
                style       : this.type==2 ? "width: auto;" : "width: 129px;",
 | 
			
		||||
                editable    : false,
 | 
			
		||||
                cls         : 'input-group-nr',
 | 
			
		||||
                data        : [
 | 
			
		||||
| 
						 | 
				
			
			@ -353,8 +368,7 @@ define([
 | 
			
		|||
            });
 | 
			
		||||
            this.cmbSize.on('selected', _.bind(function (combo, record) {
 | 
			
		||||
                if (this._changedProps) {
 | 
			
		||||
                    if (!this._changedProps.get_TextPr()) this._changedProps.put_TextPr(new AscCommonWord.CTextPr());
 | 
			
		||||
                    this._changedProps.get_TextPr().put_FontSize((record.value>0) ? record.value : undefined);
 | 
			
		||||
                    this._changedProps.put_FontSize((record.value>0) ? record.value : undefined);
 | 
			
		||||
                }
 | 
			
		||||
                if (this.api) {
 | 
			
		||||
                    this.api.SetDrawImagePreviewBullet('bulleted-list-preview', this.props, this.level, this.type==2);
 | 
			
		||||
| 
						 | 
				
			
			@ -426,6 +440,36 @@ define([
 | 
			
		|||
                }
 | 
			
		||||
            }, this));
 | 
			
		||||
 | 
			
		||||
            this.cmbFonts = new Common.UI.ComboBoxFonts({
 | 
			
		||||
                el          : $window.find('#id-dlg-numbering-font-name'),
 | 
			
		||||
                cls         : 'input-group-nr',
 | 
			
		||||
                style       : 'width: 100%;',
 | 
			
		||||
                menuCls     : 'scrollable-menu',
 | 
			
		||||
                menuStyle   : 'min-width: 100%;max-height: 270px;',
 | 
			
		||||
                store       : new Common.Collections.Fonts(),
 | 
			
		||||
                recent      : 0,
 | 
			
		||||
                hint        : this.tipFontName,
 | 
			
		||||
                takeFocusOnClose: true
 | 
			
		||||
            }).on('selected', _.bind(this.onFontName, this));
 | 
			
		||||
 | 
			
		||||
            this.btnBold = new Common.UI.Button({
 | 
			
		||||
                parentEl: $window.find('#id-dlg-numbering-bold'),
 | 
			
		||||
                cls: 'btn-toolbar',
 | 
			
		||||
                iconCls: 'toolbar__icon btn-bold',
 | 
			
		||||
                enableToggle: true,
 | 
			
		||||
                hint: this.textBold
 | 
			
		||||
            });
 | 
			
		||||
            this.btnBold.on('click', _.bind(this.onBoldClick, this));
 | 
			
		||||
 | 
			
		||||
            this.btnItalic = new Common.UI.Button({
 | 
			
		||||
                parentEl: $window.find('#id-dlg-numbering-italic'),
 | 
			
		||||
                cls: 'btn-toolbar',
 | 
			
		||||
                iconCls: 'toolbar__icon btn-italic',
 | 
			
		||||
                enableToggle: true,
 | 
			
		||||
                hint: this.textItalic
 | 
			
		||||
            });
 | 
			
		||||
            this.btnItalic.on('click', _.bind(this.onItalicClick, this));
 | 
			
		||||
 | 
			
		||||
            this.on('animate:after', _.bind(this.onAnimateAfter, this));
 | 
			
		||||
 | 
			
		||||
            this.afterRender();
 | 
			
		||||
| 
						 | 
				
			
			@ -446,6 +490,9 @@ define([
 | 
			
		|||
        },
 | 
			
		||||
 | 
			
		||||
        afterRender: function() {
 | 
			
		||||
            this.cmbFonts.fillFonts(this.fontStore);
 | 
			
		||||
            this.cmbFonts.selectRecord(this.fontStore.findWhere({name: this.fontName}));
 | 
			
		||||
 | 
			
		||||
            this.updateThemeColors();
 | 
			
		||||
            this._setDefaults(this.props);
 | 
			
		||||
            var me = this;
 | 
			
		||||
| 
						 | 
				
			
			@ -468,10 +515,9 @@ define([
 | 
			
		|||
                this.btnColor.setColor(color);
 | 
			
		||||
                this.colors.clearSelection();
 | 
			
		||||
                if (this._changedProps) {
 | 
			
		||||
                    if (!this._changedProps.get_TextPr()) this._changedProps.put_TextPr(new AscCommonWord.CTextPr());
 | 
			
		||||
                    var color = new Asc.asc_CColor();
 | 
			
		||||
                    color.put_auto(true);
 | 
			
		||||
                    this._changedProps.get_TextPr().put_Color(color);
 | 
			
		||||
                    this._changedProps.put_Color(color);
 | 
			
		||||
                }
 | 
			
		||||
                if (this.api) {
 | 
			
		||||
                    this.api.SetDrawImagePreviewBullet('bulleted-list-preview', this.props, this.level, this.type==2);
 | 
			
		||||
| 
						 | 
				
			
			@ -485,8 +531,7 @@ define([
 | 
			
		|||
                this.btnColor.setColor(color);
 | 
			
		||||
                this.colors.clearSelection();
 | 
			
		||||
                if (this._changedProps) {
 | 
			
		||||
                    if (!this._changedProps.get_TextPr()) this._changedProps.put_TextPr(new AscCommonWord.CTextPr());
 | 
			
		||||
                    this._changedProps.get_TextPr().put_Color(undefined);
 | 
			
		||||
                    this._changedProps.put_Color(undefined);
 | 
			
		||||
                }
 | 
			
		||||
                if (this.api) {
 | 
			
		||||
                    this.api.SetDrawImagePreviewBullet('bulleted-list-preview', this.props, this.level, this.type==2);
 | 
			
		||||
| 
						 | 
				
			
			@ -496,8 +541,7 @@ define([
 | 
			
		|||
 | 
			
		||||
        onColorsSelect: function(btn, color) {
 | 
			
		||||
            if (this._changedProps) {
 | 
			
		||||
                if (!this._changedProps.get_TextPr()) this._changedProps.put_TextPr(new AscCommonWord.CTextPr());
 | 
			
		||||
                this._changedProps.get_TextPr().put_Color(Common.Utils.ThemeColor.getRgbColor(color));
 | 
			
		||||
                this._changedProps.put_Color(Common.Utils.ThemeColor.getRgbColor(color));
 | 
			
		||||
            }
 | 
			
		||||
            this.btnColor.menu.items[0].setChecked(false, true);
 | 
			
		||||
            this.btnColor.menu.items[1].setChecked(false, true);
 | 
			
		||||
| 
						 | 
				
			
			@ -616,33 +660,43 @@ define([
 | 
			
		|||
            if (text && format == Asc.c_oAscNumberingFormat.Bullet) {
 | 
			
		||||
                this.bulletProps.symbol = text[0].get_Value();
 | 
			
		||||
            }
 | 
			
		||||
            if (textPr) {
 | 
			
		||||
                this.cmbSize.setValue(textPr.get_FontSize() || -1);
 | 
			
		||||
                this.bulletProps.font = textPr.get_FontFamily();
 | 
			
		||||
 | 
			
		||||
                var color = textPr.get_Color();
 | 
			
		||||
                this.btnColor.menu.items[0].setChecked(color===undefined, true);
 | 
			
		||||
                this.btnColor.menu.items[1].setChecked(!!color && color.get_auto(), true);
 | 
			
		||||
                if (color && !color.get_auto()) {
 | 
			
		||||
                    if ( typeof(color) == 'object' ) {
 | 
			
		||||
                        var isselected = false;
 | 
			
		||||
                        for (var i=0; i<10; i++) {
 | 
			
		||||
                            if ( Common.Utils.ThemeColor.ThemeValues[i] == color.effectValue ) {
 | 
			
		||||
                                this.colors.select(color,true);
 | 
			
		||||
                                isselected = true;
 | 
			
		||||
                                break;
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        if (!isselected) this.colors.clearSelection();
 | 
			
		||||
                        color = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b());
 | 
			
		||||
                    } else
 | 
			
		||||
                        this.colors.select(color,true);
 | 
			
		||||
                } else {
 | 
			
		||||
                    this.colors.clearSelection();
 | 
			
		||||
                    color = '000000';
 | 
			
		||||
                }
 | 
			
		||||
                this.btnColor.setColor(color);
 | 
			
		||||
            this.cmbSize.setValue(levelProps.get_FontSize() || -1);
 | 
			
		||||
 | 
			
		||||
            var font = levelProps.get_FontFamily();
 | 
			
		||||
            if (font) {
 | 
			
		||||
                var rec = this.cmbFonts.store.findWhere({name: font});
 | 
			
		||||
                this.fontName = (rec) ? rec.get('name') : font;
 | 
			
		||||
                this.cmbFonts.setValue(this.fontName);
 | 
			
		||||
            }
 | 
			
		||||
            this.bulletProps.font = font;
 | 
			
		||||
 | 
			
		||||
            this.btnBold.toggle(levelProps.get_Bold() === true, true);
 | 
			
		||||
            this.btnItalic.toggle(levelProps.get_Italic() === true, true);
 | 
			
		||||
 | 
			
		||||
            var color = levelProps.get_Color();
 | 
			
		||||
            this.btnColor.menu.items[0].setChecked(color===undefined, true);
 | 
			
		||||
            this.btnColor.menu.items[1].setChecked(!!color && color.get_auto(), true);
 | 
			
		||||
            if (color && !color.get_auto()) {
 | 
			
		||||
                if ( typeof(color) == 'object' ) {
 | 
			
		||||
                    var isselected = false;
 | 
			
		||||
                    for (var i=0; i<10; i++) {
 | 
			
		||||
                        if ( Common.Utils.ThemeColor.ThemeValues[i] == color.effectValue ) {
 | 
			
		||||
                            this.colors.select(color,true);
 | 
			
		||||
                            isselected = true;
 | 
			
		||||
                            break;
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    if (!isselected) this.colors.clearSelection();
 | 
			
		||||
                    color = Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b());
 | 
			
		||||
                } else
 | 
			
		||||
                    this.colors.select(color,true);
 | 
			
		||||
            } else {
 | 
			
		||||
                this.colors.clearSelection();
 | 
			
		||||
                color = '000000';
 | 
			
		||||
            }
 | 
			
		||||
            this.btnColor.setColor(color);
 | 
			
		||||
 | 
			
		||||
            if (this.type>0) {
 | 
			
		||||
                if (format == Asc.c_oAscNumberingFormat.Bullet) {
 | 
			
		||||
                    if (!this.cmbFormat.store.findWhere({value: Asc.c_oAscNumberingFormat.Bullet, symbol: this.bulletProps.symbol, font: this.bulletProps.font}))
 | 
			
		||||
| 
						 | 
				
			
			@ -656,6 +710,11 @@ define([
 | 
			
		|||
 | 
			
		||||
            } else if (this.type===2) {
 | 
			
		||||
                this.txtNumFormat.setDisabled(format == Asc.c_oAscNumberingFormat.Bullet);
 | 
			
		||||
                this.spnStart.setDisabled(format == Asc.c_oAscNumberingFormat.Bullet);
 | 
			
		||||
                this.cmbFonts.setDisabled(format == Asc.c_oAscNumberingFormat.Bullet);
 | 
			
		||||
                this.btnBold.setDisabled(format == Asc.c_oAscNumberingFormat.Bullet);
 | 
			
		||||
                this.btnItalic.setDisabled(format == Asc.c_oAscNumberingFormat.Bullet);
 | 
			
		||||
 | 
			
		||||
                var arr = [];
 | 
			
		||||
                var me = this;
 | 
			
		||||
                for (var lvl=0; lvl<this.level; lvl++) {
 | 
			
		||||
| 
						 | 
				
			
			@ -842,6 +901,33 @@ define([
 | 
			
		|||
            this.formatString.selectionEnd = event.target.selectionEnd;
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
        onFontName: function(combo, record) {
 | 
			
		||||
            if (this._changedProps) {
 | 
			
		||||
                this._changedProps.put_FontFamily(record.name);
 | 
			
		||||
            }
 | 
			
		||||
            if (this.api) {
 | 
			
		||||
                this.api.SetDrawImagePreviewBullet('bulleted-list-preview', this.props, this.level, this.type==2);
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
        onBoldClick: function() {
 | 
			
		||||
            if (this._changedProps) {
 | 
			
		||||
                this._changedProps.put_Bold(this.btnBold.isActive());
 | 
			
		||||
            }
 | 
			
		||||
            if (this.api) {
 | 
			
		||||
                this.api.SetDrawImagePreviewBullet('bulleted-list-preview', this.props, this.level, this.type==2);
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
        onItalicClick: function() {
 | 
			
		||||
            if (this._changedProps) {
 | 
			
		||||
                this._changedProps.put_Italic(this.btnItalic.isActive());
 | 
			
		||||
            }
 | 
			
		||||
            if (this.api) {
 | 
			
		||||
                this.api.SetDrawImagePreviewBullet('bulleted-list-preview', this.props, this.level, this.type==2);
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
        txtTitle: 'List Settings',
 | 
			
		||||
        txtSize: 'Size',
 | 
			
		||||
        txtColor: 'Color',
 | 
			
		||||
| 
						 | 
				
			
			@ -861,6 +947,10 @@ define([
 | 
			
		|||
        txtSymbol: 'Symbol',
 | 
			
		||||
        txtNumFormatString: 'Number format',
 | 
			
		||||
        txtInclcudeLevel: 'Include level number',
 | 
			
		||||
        txtStart: 'Start at'
 | 
			
		||||
        txtStart: 'Start at',
 | 
			
		||||
        txtFontName: 'Font',
 | 
			
		||||
        textBold: 'Bold',
 | 
			
		||||
        textItalic: 'Italic'
 | 
			
		||||
 | 
			
		||||
    }, DE.Views.ListSettingsDialog || {}))
 | 
			
		||||
});
 | 
			
		||||
		Loading…
	
		Reference in a new issue