diff --git a/apps/documenteditor/main/app/controller/Toolbar.js b/apps/documenteditor/main/app/controller/Toolbar.js index 2fdede3bac..d087835998 100644 --- a/apps/documenteditor/main/app/controller/Toolbar.js +++ b/apps/documenteditor/main/app/controller/Toolbar.js @@ -53,7 +53,8 @@ define([ 'documenteditor/main/app/view/MailMergeRecepients', 'documenteditor/main/app/view/StyleTitleDialog', 'documenteditor/main/app/view/PageMarginsDialog', - 'documenteditor/main/app/view/PageSizeDialog' + 'documenteditor/main/app/view/PageSizeDialog', + 'documenteditor/main/app/view/NoteSettingsDialog' ], function () { 'use strict'; @@ -264,6 +265,9 @@ define([ toolbar.mnuZoomIn.on('click', _.bind(this.onZoomInClick, this)); toolbar.mnuZoomOut.on('click', _.bind(this.onZoomOutClick, this)); toolbar.btnInsertEquation.on('click', _.bind(this.onInsertEquationClick, this)); + toolbar.btnNotes.menu.on('item:click', _.bind(this.onNotesClick, this)); + toolbar.mnuGotoFootPrev.on('click', _.bind(this.onFootnotePrevClick, this)); + toolbar.mnuGotoFootNext.on('click', _.bind(this.onFootnoteNextClick, this)); $('#id-save-style-plus, #id-save-style-link', toolbar.$el).on('click', this.onMenuSaveStyle.bind(this)); @@ -1987,6 +1991,50 @@ define([ Common.NotificationCenter.trigger('edit:complete', this.toolbar); }, + onNotesClick: function(menu, item) { + if (this.api) { + if (item.value == 'ins_footnote') + this.api.asc_AddFootnote(); + else if (item.value == 'delele') + this.api.deleteFootnotes(); + else if (item.value == 'settings') { + var me = this; + (new DE.Views.NoteSettingsDialog({ + api: me.api, + handler: function(result, settings) { + if (settings) { + if (result == 'insert') { + me.api.asc_SetFootnoteProps(settings); + me.api.asc_AddFootnote(); + } else if (result == 'apply') { + me.api.asc_SetFootnoteProps(settings); + } + } + Common.NotificationCenter.trigger('edit:complete', me.toolbar); + }, + props : me.api.asc_GetFootnoteProps() + })).show(); + } else + return; + + Common.NotificationCenter.trigger('edit:complete', this.toolbar); + } + }, + + onFootnotePrevClick: function(btn) { + if (this.api) + this.api.GotoFootnotePrev(); + + Common.NotificationCenter.trigger('edit:complete', this.toolbar); + }, + + onFootnoteNextClick: function(btn) { + if (this.api) + this.api.GotoFootnoteNext(); + + Common.NotificationCenter.trigger('edit:complete', this.toolbar); + }, + _clearBullets: function() { this.toolbar.btnMarkers.toggle(false, true); this.toolbar.btnNumbers.toggle(false, true); diff --git a/apps/documenteditor/main/app/template/NoteSettingsDialog.template b/apps/documenteditor/main/app/template/NoteSettingsDialog.template new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/documenteditor/main/app/template/Toolbar.template b/apps/documenteditor/main/app/template/Toolbar.template index c6d15c8652..3b6e4cbcd6 100644 --- a/apps/documenteditor/main/app/template/Toolbar.template +++ b/apps/documenteditor/main/app/template/Toolbar.template @@ -191,6 +191,12 @@ +
+
+
+ +
+
diff --git a/apps/documenteditor/main/app/view/FootnoteTip.js b/apps/documenteditor/main/app/view/FootnoteTip.js new file mode 100644 index 0000000000..ca07deb048 --- /dev/null +++ b/apps/documenteditor/main/app/view/FootnoteTip.js @@ -0,0 +1,134 @@ +/* + * + * (c) Copyright Ascensio System Limited 2010-2016 + * + * This program is freeware. You can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) version 3 as published by the Free Software Foundation (https://www.gnu.org/copyleft/gpl.html). + * In accordance with Section 7(a) of the GNU GPL its Section 15 shall be amended to the effect that + * Ascensio System SIA expressly excludes the warranty of non-infringement of any third-party rights. + * + * THIS PROGRAM IS DISTRIBUTED WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR + * FITNESS FOR A PARTICULAR PURPOSE. For more details, see GNU GPL at https://www.gnu.org/copyleft/gpl.html + * + * You can contact Ascensio System SIA by email at sales@onlyoffice.com + * + * The interactive user interfaces in modified source and object code versions of ONLYOFFICE must display + * Appropriate Legal Notices, as required under Section 5 of the GNU GPL version 3. + * + * Pursuant to Section 7  3(b) of the GNU GPL you must retain the original ONLYOFFICE logo which contains + * relevant author attributions when distributing the software. If the display of the logo in its graphic + * form is not reasonably feasible for technical reasons, you must include the words "Powered by ONLYOFFICE" + * in every copy of the program you distribute. + * Pursuant to Section 7  3(e) we decline to grant you any rights under trademark law for use of our trademarks. + * +*/ + +define([ + 'common/main/lib/component/BaseView' +], function () { + 'use strict'; + + DE.Views.FootnoteTip = Common.UI.BaseView.extend(_.extend((function() { + var tipEl; + + return { + options : { + name : '', + text : '', + target : null, + placement: 'bottom' + }, + + template: _.template([ + '
', + '
', + '
', + '
', + '', + '', + '
', + '', + '', + '
', + '
', + '', + '
', + '
' + ].join('')), + + initialize : function(options) { + Common.UI.BaseView.prototype.initialize.call(this, options); + this.text = this.options.text; + this.name = this.options.name; + this.target = this.options.target; + this.placement = this.options.placement; + }, + + render: function() { + tipEl = $(this.template({ scope: this })); + + this.btnPrev = new Common.UI.Button({ + el: $('#footnote-btn-prev',tipEl) + }); + + this.btnNext = new Common.UI.Button({ + el: $('#footnote-btn-next',tipEl) + }); + + tipEl.find('.show-link label').on('click', _.bind(function() { this.trigger('settingsclick');}, this)); + this.btnPrev.on('click', _.bind(function(btn) { + this.trigger('prevclick'); + }, this)); + this.btnNext.on('click', _.bind(function(btn) { + this.trigger('nextclick'); + }, this)); + + this.lblName = tipEl.find('.tip-name'); + this.lblText = tipEl.find('.tip-text'); + + $(document.body).append(tipEl); + this.applyPlacement(this.target); + + return this; + }, + + show: function(name, text, target){ + if (tipEl) { + this.lblName.text(name); + this.lblText.text(text); + this.applyPlacement(target); + tipEl.show() + } else + this.render(); + }, + + hide: function() { + if (tipEl) tipEl.hide(); + }, + + applyPlacement: function (target) { + if (!target) + target = {top: 0, left: 0, width: 1, height: 1}; + var docHeight = Common.Utils.innerHeight(), + elHeight = tipEl.height(), + elWidth = tipEl.width(), + placement = this.placement; + + if (this.placement == 'bottom') { + if (target.top + target.height + elHeight > docHeight) + placement = 'top'; + } else if (this.placement == 'top') { + if (target.top - elHeight < 0) + placement = 'bottom'; + } + tipEl.removeClass(placement == 'top' ? 'bottom' : 'top'); + tipEl.addClass(placement); + (placement == 'top') ? tipEl.css({top: 'auto', bottom : docHeight - target.top + 'px', left: target.left + target.width/2 - elWidth/2 + 'px'}) + : tipEl.css({top : target.top + target.height + 'px', bottom: 'auto', left: target.left + target.width/2 - elWidth/2 + 'px'}); + }, + + textSettings: 'Note Settings' + } + })(), DE.Views.FootnoteTip || {})); +}); + diff --git a/apps/documenteditor/main/app/view/NoteSettingsDialog.js b/apps/documenteditor/main/app/view/NoteSettingsDialog.js new file mode 100644 index 0000000000..5c666be1e3 --- /dev/null +++ b/apps/documenteditor/main/app/view/NoteSettingsDialog.js @@ -0,0 +1,379 @@ +/* + * + * (c) Copyright Ascensio System Limited 2010-2016 + * + * This program is a free software product. You can redistribute it and/or + * modify it under the terms of the GNU Affero General Public License (AGPL) + * version 3 as published by the Free Software Foundation. In accordance with + * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect + * that Ascensio System SIA expressly excludes the warranty of non-infringement + * of any third-party rights. + * + * This program is distributed WITHOUT ANY WARRANTY; without even the implied + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For + * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html + * + * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, + * EU, LV-1021. + * + * The interactive user interfaces in modified source and object code versions + * of the Program must display Appropriate Legal Notices, as required under + * Section 5 of the GNU AGPL version 3. + * + * Pursuant to Section 7(b) of the License you must retain the original Product + * logo when distributing the program. Pursuant to Section 7(e) we decline to + * grant you any rights under trademark law for use of our trademarks. + * + * All the Product's GUI elements, including illustrations and icon sets, as + * well as technical writing content are licensed under the terms of the + * Creative Commons Attribution-ShareAlike 4.0 International. See the License + * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode + * + */ + +/** + * NoteSettingsDialog.js.js + * + * Created by Julia Radzhabova on 18.12.2016 + * Copyright (c) 2016 Ascensio System SIA. All rights reserved. + * + */ + +define([ + 'common/main/lib/util/utils', + 'common/main/lib/component/MetricSpinner', + 'common/main/lib/component/ComboBox', + 'common/main/lib/component/InputField', + 'common/main/lib/view/AdvancedSettingsWindow' +], function () { 'use strict'; + + DE.Views.NoteSettingsDialog = Common.Views.AdvancedSettingsWindow.extend(_.extend({ + options: { + contentWidth: 300, + height: 335 + }, + + initialize : function(options) { + var me = this; + + _.extend(this.options, { + title: this.textTitle, + template: [ + '
', + '
', + '
', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '
', + '', + '
', + '', + // '
', + '
', + '
', + '
', + '
', + '
', + '', + '
', + '', + '
', + '
', + '', + '
', + // '
', + '
', + '', + '
', + '
', + '
', + '
', + '', + '
', + '', + '', + '
', + '
', + '
', + '
', + '
', + '' + ].join('') + }, options); + + this.api = options.api; + this.handler = options.handler; + this.props = options.props; + + Common.Views.AdvancedSettingsWindow.prototype.initialize.call(this, this.options); + + this.FormatType = 1; + this.StartValue = 1; + }, + + render: function() { + Common.Views.AdvancedSettingsWindow.prototype.render.call(this); + var me = this; + + this.cmbFootnote = new Common.UI.ComboBox({ + el: $('#note-settings-combo-footnote'), + cls: 'input-group-nr', + menuStyle: 'min-width: 140px;', + editable: false, + data: [ + { displayValue: this.textPageBottom, value: Asc.section_footnote_PosPageBottom }, + { displayValue: this.textTextBottom, value: Asc.section_footnote_PosBeneathText } + ] + }); + this.cmbFootnote.setValue(Asc.section_footnote_PosPageBottom); + + this.cmbFormat = new Common.UI.ComboBox({ + el: $('#note-settings-combo-format'), + cls: 'input-group-nr', + menuStyle: 'min-width: 100px;', + editable: false, + data: [ + { displayValue: '1, 2, 3,...', value: 1, maskExp: /[0-9]/, defValue: 1 }, + { displayValue: 'a, b, c,...', value: 5, maskExp: /[a-z]/, defValue: 'a' }, + { displayValue: 'A, B, C,...', value: 4, maskExp: /[A-Z]/, defValue: 'A' }, + { displayValue: 'i, ii, iii,...', value: 7, maskExp: /[ivxlcdm]/, defValue: 'i' }, + { displayValue: 'I, II, III,...', value: 3, maskExp: /[IVXLCDM]/, defValue: 'I' } + ] + }); + this.cmbFormat.setValue(this.FormatType); + this.cmbFormat.on('selected', _.bind(this.onFormatSelect, this)); + + this.spnStart = new Common.UI.MetricSpinner({ + el: $('#note-settings-spin-start'), + step: 1, + width: 100, + defaultUnit : "", + value: '1', + maxValue: 16383, + minValue: 1 + }); +/* + this.txtStart = new Common.UI.InputField({ + el : $('#note-settings-txt-start'), + allowBlank : true, + validateOnChange: false, + style : 'width: 100px; vertical-align: middle;', + cls : 'masked-field', + maskExp : /[a-z]/, + value : 'a', + visible: false, + validation : function(value) { + if (this.options.maskExp.test(value)) { + } else + me.txtFieldNum.setValue(''); + + return true; + } + }); +*/ + this.cmbNumbering = new Common.UI.ComboBox({ + el: $('#note-settings-combo-numbering'), + cls: 'input-group-nr', + menuStyle: 'min-width: 140px;', + editable: false, + data: [ + { displayValue: this.textContinue, value: Asc.section_footnote_RestartContinuous }, + { displayValue: this.textEachSection, value: Asc.section_footnote_RestartEachSect }, + { displayValue: this.textEachPage, value: Asc.section_footnote_RestartEachPage } + ] + }); + this.cmbNumbering.setValue(Asc.section_footnote_RestartContinuous); + + this.cmbApply = new Common.UI.ComboBox({ + el: $('#note-settings-combo-apply'), + cls: 'input-group-nr', + menuStyle: 'min-width: 140px;', + editable: false, + data: [ + { displayValue: this.textDocument, value: Asc.section_footnote_RestartContinuous }, + { displayValue: this.textSection, value: Asc.section_footnote_RestartEachSect } + ] + }); + this.cmbApply.setValue(Asc.section_footnote_RestartContinuous); + + this.afterRender(); + }, + + afterRender: function() { + this._setDefaults(this.props); + }, + + show: function() { + Common.Views.AdvancedSettingsWindow.prototype.show.apply(this, arguments); + }, + + _setDefaults: function (props) { + if (props) { + var val = props.get_Pos(); + this.cmbFootnote.setValue(val); + + val = props.get_NumFormat(); + this.cmbFormat.setValue(val); + // this.spnStart.setVisible(val==1); + // this.txtStart.setVisible(val!=1); + + val = props.get_NumStart(); + this.spnStart.setValue(val); + // this.txtStart.setValue(val); + + val = props.get_NumRestart(); + this.cmbNumbering.setValue(val); + + /* + val = props.get_ApplyTo(); + this.cmbApply.setValue(val); + */ + } + }, + + getSettings: function () { + var props = new Asc.CAscFootnotePr(); + + props.put_Pos(this.cmbFootnote.getValue()); + props.put_NumRestart(this.cmbNumbering.getValue()); + + var val = this.cmbFormat.getValue(); + + props.put_NumFormat(val); + // if (val==1) + props.put_NumStart(this.spnStart.getNumberValue()); + // else + // props.put_NumStart(this.txtStart.getValue()); + + // props.put_ApplyTo(this.cmbApply.getValue()); + + return props; + }, + + onDlgBtnClick: function(event) { + var me = this; + var state = (typeof(event) == 'object') ? event.currentTarget.attributes['result'].value : event; + if (state == 'insert' || state == 'apply') { + this.handler && this.handler.call(this, state, (state == 'insert' || state == 'apply') ? this.getSettings() : undefined); + } + + this.close(); + }, + + onPrimary: function() { + return true; + }, + + onFormatSelect: function(combo, record) { + return; + + this.spnStart.setVisible(record.value == 1); + this.txtStart.setVisible(record.value != 1); + + if (record.value !== 1) + this.txtStart.setMask(record.maskExp); + + var value = 0; + if (this.FormatType == 1) { // from 1,2,3, + this.StartValue = value = this.spnStart.getNumberValue(); + + if (record.value == 4 || record.value == 5) { + value = this._10toA(value); + this.txtStart.setValue((record.value == 5) ? value.toLocaleLowerCase() : value); + } else if (this.FormatType !== record.value) + this.txtStart.setValue(record.defValue); + } else if (this.FormatType == 4 || this.FormatType == 5) { + if (this.FormatType == 4 && record.value == 5) + this.txtStart.setValue(this.txtStart.getValue().toLocaleLowerCase()); + else if (this.FormatType == 5 && record.value == 4) + this.txtStart.setValue(this.txtStart.getValue().toLocaleUpperCase()); + else if (record.value == 1) { + value = this._Ato10((record.value == 5) ? this.txtStart.getValue().toLocaleLowerCase() : this.txtStart.getValue()); + this.spnStart.setValue(value); + } else if (this.FormatType !== record.value) + this.txtStart.setValue(record.defValue); + } else if (this.FormatType !== record.value){ + if (record.value==1) + this.spnStart.setValue(this.StartValue); + else + this.txtStart.setValue(record.defValue); + } + + this.FormatType = record.value; + }, + + _10toA: function(value) { + var n = Math.ceil(value / 26), + code = String.fromCharCode((value-1) % 26 + "A".charCodeAt(0)) , + result = ''; + + for (var i=0; i', + 'data-stopPropagation="true"', + '<% } %>', '>', + '', + '', + '', + '
' + ].join('')), + stopPropagation: true + }), + { caption: '--' }, + { caption: this.mniNoteSettings, value: 'settings' } + ] + }) + ); + + this.mnuGotoFootPrev = new Common.UI.Button({ + el : $('#id-menu-goto-footnote-prev'), + cls : 'btn-toolbar' + }); + this.mnuGotoFootNext = new Common.UI.Button({ + el : $('#id-menu-goto-footnote-next'), + cls : 'btn-toolbar' + }); + // set dataviews var _conf = this.mnuMarkersPicker.conf; @@ -1517,6 +1561,7 @@ define([ this.cmbFontName.setDisabled(true); this.cmbFontSize.setDisabled(true); this.listStyles.setDisabled(true); + this.btnNotes.setDisabled(true); if (mode.disableDownload) this.btnPrint.setDisabled(true); } @@ -1911,7 +1956,12 @@ define([ textPortrait: 'Portrait', textLandscape: 'Landscape', textInsertPageCount: 'Insert number of pages', - textCharts: 'Charts' - + textCharts: 'Charts', + tipNotes: 'Footnotes', + mniInsFootnote: 'Insert Footnote', + mniDelFootnote: 'Delete All Footnotes', + mniNoteSettings: 'Notes Settings', + textGotoFootnote: 'Go to Footnotes' + }, DE.Views.Toolbar || {})); }); diff --git a/apps/documenteditor/main/locale/en.json b/apps/documenteditor/main/locale/en.json index b5f7d1d36d..44f996cd95 100644 --- a/apps/documenteditor/main/locale/en.json +++ b/apps/documenteditor/main/locale/en.json @@ -1115,6 +1115,24 @@ "DE.Views.MailMergeSettings.txtPrev": "To previous record", "DE.Views.MailMergeSettings.txtUntitled": "Untitled", "DE.Views.MailMergeSettings.warnProcessMailMerge": "Starting merge failed", + "DE.Views.NoteSettingsDialog.textTitle": "Notes Settings", + "DE.Views.NoteSettingsDialog.textLocation": "Location", + "DE.Views.NoteSettingsDialog.textFootnote": "Footnote", + "DE.Views.NoteSettingsDialog.textPageBottom": "Bottom of page", + "DE.Views.NoteSettingsDialog.textTextBottom": "Below text", + "DE.Views.NoteSettingsDialog.textFormat": "Format", + "DE.Views.NoteSettingsDialog.textNumFormat": "Number Format", + "DE.Views.NoteSettingsDialog.textStart": "Start at", + "DE.Views.NoteSettingsDialog.textNumbering": "Numbering", + "DE.Views.NoteSettingsDialog.textContinue": "Continuous", + "DE.Views.NoteSettingsDialog.textEachPage": "Restart each page", + "DE.Views.NoteSettingsDialog.textEachSection": "Restart each section", + "DE.Views.NoteSettingsDialog.textApplyTo": "Apply changes to", + "DE.Views.NoteSettingsDialog.textDocument": "Whole document", + "DE.Views.NoteSettingsDialog.textSection": "Current section", + "DE.Views.NoteSettingsDialog.textApply": "Apply", + "DE.Views.NoteSettingsDialog.textInsert": "Insert", + "DE.Views.NoteSettingsDialog.textCancel": "Cancel", "DE.Views.PageMarginsDialog.cancelButtonText": "Cancel", "DE.Views.PageMarginsDialog.notcriticalErrorTitle": "Warning", "DE.Views.PageMarginsDialog.okButtonText": "Ok", @@ -1566,5 +1584,11 @@ "DE.Views.Toolbar.txtScheme6": "Concourse", "DE.Views.Toolbar.txtScheme7": "Equity", "DE.Views.Toolbar.txtScheme8": "Flow", - "DE.Views.Toolbar.txtScheme9": "Foundry" + "DE.Views.Toolbar.txtScheme9": "Foundry", + "DE.Views.Toolbar.tipNotes": "Footnotes", + "DE.Views.Toolbar.mniInsFootnote": "Insert Footnote", + "DE.Views.Toolbar.mniDelFootnote": "Delete All Footnotes", + "DE.Views.Toolbar.mniNoteSettings": "Notes Settings", + "DE.Views.Toolbar.textGotoFootnote": "Go to Footnotes" + } \ No newline at end of file diff --git a/apps/documenteditor/main/resources/less/footnote.less b/apps/documenteditor/main/resources/less/footnote.less new file mode 100644 index 0000000000..d50272e281 --- /dev/null +++ b/apps/documenteditor/main/resources/less/footnote.less @@ -0,0 +1,124 @@ +.footnote-tip-root { + position: absolute; + z-index: @zindex-tooltip + 5; + width: 250px; + + .tip-arrow { + position: absolute; + overflow: hidden; + } + + &.bottom { + margin: 15px 0 0 0; + + .tip-arrow { + left: 50%; + top: -15px; + width: 26px; + height: 15px; + margin-left: -13px; + &:after { + top: 8px; + left: 5px; + .box-shadow(0 0 8px -1px rgba(0, 0, 0, 0.2)); + } + } + } + + &.top { + margin: 0 0px 15px 0; + + .tip-arrow { + left: 50%; + bottom: -15px; + width: 26px; + height: 15px; + margin-left: -13px; + &:after { + top: -8px; + left: 5px; + } + } + } +} + +.asc-footnotetip { + padding: 15px 8px 10px 15px; + border-radius: 5px; + background-color: #fff; + overflow: visible; + + .box-shadow(0 4px 15px -2px rgba(0, 0, 0, 0.5)); + font-size: 11px; +} + +.asc-footnotetip .tip-arrow:after { + content: ''; + position: absolute; + top: 5px; + left: 8px; + background-color: #fff; + width: 15px; + height: 15px; + + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); + + .box-shadow(0 4px 8px -1px rgba(0, 0, 0, 0.2)); +} + +.asc-footnotetip .show-link { + margin-top: 15px; + + label { + border-bottom: 1px dotted #445799; + color: #445799; + cursor: pointer; + } +} + +.asc-footnotetip .move-ct { + position: absolute; + right: 0; + bottom: 0; + height: 16px; + margin: 8px; + + .prev, .next { + width: 16px; + height: 16px; + display: inline-block; + cursor: pointer; + } + + .prev { + background-position: @search-dlg-offset-x @search-dlg-offset-y; + } + + .next { + background-position: @search-dlg-offset-x @search-dlg-offset-y - 16px; + } + + .btn { + &:hover, + .over, + &:active, + &.active { + background-color: transparent !important; + } + + &.disabled{ + cursor: default; + .prev { + background-position: @search-dlg-offset-x - 32px @search-dlg-offset-y; + } + + .next{ + background-position: @search-dlg-offset-x - 32px @search-dlg-offset-y - 16px; + } + } + } +} diff --git a/apps/documenteditor/main/resources/less/toolbar.less b/apps/documenteditor/main/resources/less/toolbar.less index d7d71fe4df..55a28fad9a 100644 --- a/apps/documenteditor/main/resources/less/toolbar.less +++ b/apps/documenteditor/main/resources/less/toolbar.less @@ -149,7 +149,7 @@ .title { padding: 5px 0 5px 20px; float: left; - max-width: 95px; + //max-width: 95px; overflow: hidden; text-overflow: ellipsis; } @@ -333,6 +333,7 @@ .button-normal-icon(btn-zoomout, 58, @toolbar-icon-size); .button-normal-icon(btn-columns, 82, @toolbar-icon-size); .button-normal-icon(btn-pagemargins, 83, @toolbar-icon-size); +.button-normal-icon(btn-notes, 83, @toolbar-icon-size); .button-normal-icon(mmerge-next, 71, @toolbar-icon-size); .button-normal-icon(mmerge-last, 72, @toolbar-icon-size);