From 04dbc2b42f64693362923352329c078803a7048b Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Thu, 17 Jun 2021 19:42:52 +0300 Subject: [PATCH 01/77] [DE] Add autofit, multiline, fixed size settings for forms --- .../main/app/template/FormSettings.template | 12 +++- .../main/app/view/FormSettings.js | 69 ++++++++++++++++--- apps/documenteditor/main/locale/en.json | 2 + 3 files changed, 73 insertions(+), 10 deletions(-) diff --git a/apps/documenteditor/main/app/template/FormSettings.template b/apps/documenteditor/main/app/template/FormSettings.template index 529b095719..f064b6eeac 100644 --- a/apps/documenteditor/main/app/template/FormSettings.template +++ b/apps/documenteditor/main/app/template/FormSettings.template @@ -34,7 +34,7 @@
- +
@@ -62,6 +62,16 @@
+ + +
+ + + + +
+ +
diff --git a/apps/documenteditor/main/app/view/FormSettings.js b/apps/documenteditor/main/app/view/FormSettings.js index 177dc9ffb8..8875b7f1ae 100644 --- a/apps/documenteditor/main/app/view/FormSettings.js +++ b/apps/documenteditor/main/app/view/FormSettings.js @@ -98,6 +98,7 @@ define([ this.ListOnlySettings = el.find('.form-list'); this.ImageOnlySettings = el.find('.form-image'); this.ConnectedSettings = el.find('.form-connected'); + this.NotImageSettings = el.find('.form-not-image'); }, createDelayedElements: function() { @@ -189,6 +190,20 @@ define([ this.spnWidth.on('change', this.onWidthChange.bind(this)); this.spnWidth.on('inputleave', function(){ me.fireEvent('editcomplete', me);}); + this.chAutofit = new Common.UI.CheckBox({ + el: $markup.findById('#form-chb-autofit'), + labelText: this.textAutofit + }); + this.chAutofit.on('change', this.onChAutofit.bind(this)); + this.lockedControls.push(this.chAutofit); + + this.chMulti = new Common.UI.CheckBox({ + el: $markup.findById('#form-chb-multiline'), + labelText: this.textMulti + }); + this.chMulti.on('change', this.onChMulti.bind(this)); + this.lockedControls.push(this.chMulti); + this.chRequired = new Common.UI.CheckBox({ el: $markup.findById('#form-chb-required'), labelText: this.textRequired @@ -459,18 +474,37 @@ define([ } }, - onChFixed: function(field, newValue, oldValue, eOpts){ + onChAutofit: function(field, newValue, oldValue, eOpts){ var checked = (field.getValue()=='checked'); if (this.api && !this._noApply) { var props = this._originalProps || new AscCommon.CContentControlPr(); var formTextPr = this._originalTextFormProps || new AscCommon.CSdtTextFormPr(); - formTextPr.put_FixedSize(checked); + formTextPr.put_AutoFit(checked); props.put_TextFormPr(formTextPr); this.api.asc_SetContentControlProperties(props, this.internalId); this.fireEvent('editcomplete', this); } }, + onChMulti: function(field, newValue, oldValue, eOpts){ + var checked = (field.getValue()=='checked'); + if (this.api && !this._noApply) { + var props = this._originalProps || new AscCommon.CContentControlPr(); + var formTextPr = this._originalTextFormProps || new AscCommon.CSdtTextFormPr(); + formTextPr.put_MultiLine(checked); + props.put_TextFormPr(formTextPr); + this.api.asc_SetContentControlProperties(props, this.internalId); + this.fireEvent('editcomplete', this); + } + }, + + onChFixed: function(field, newValue, oldValue, eOpts){ + if (this.api && !this._noApply) { + this.api.asc_SetFixedForm(this.internalId, field.getValue()=='checked'); + this.fireEvent('editcomplete', this); + } + }, + onGroupKeyChanged: function(combo, record) { if (this.api && !this._noApply) { var props = this._originalProps || new AscCommon.CContentControlPr(); @@ -746,6 +780,14 @@ define([ this.labelFormName.text(ischeckbox ? this.textCheckbox : this.textRadiobox); } + + if (type !== Asc.c_oAscContentControlSpecificType.Picture) { + val = formPr.get_Fixed(); + if ( this._state.Fixed!==val ) { + this.chFixed.setValue(!!val, true); + this._state.Fixed=val; + } + } } var formTextPr = props.get_TextFormPr(); @@ -758,12 +800,18 @@ define([ this.chComb.setValue(!!val, true); this._state.Comb=val; } - // - // val = formTextPr.get_FixedSize(); - // if ( this._state.Fixed!==val ) { - // this.chFixed.setValue(!!val, true); - // this._state.Fixed=val; - // } + + val = formTextPr.get_MultiLine(); + if ( this._state.Multi!==val ) { + this.chMulti.setValue(!!val, true); + this._state.Multi=val; + } + + val = formTextPr.get_AutoFit(); + if ( this._state.AutoFit!==val ) { + this.chAutofit.setValue(!!val, true); + this._state.AutoFit=val; + } this.btnColor.setDisabled(!val); @@ -917,6 +965,7 @@ define([ var value = (checkboxOnly || radioboxOnly); this.PlaceholderSettings.toggleClass('hidden', value); this.CheckOnlySettings.toggleClass('hidden', !value); + this.NotImageSettings.toggleClass('hidden', imageOnly); }, onSelectItem: function(listView, itemView, record) { @@ -968,7 +1017,9 @@ define([ textDisconnect: 'Disconnect', textNoBorder: 'No border', textFixed: 'Fixed size field', - textRequired: 'Required' + textRequired: 'Required', + textAutofit: 'AutoFit', + textMulti: 'Multiline field' }, DE.Views.FormSettings || {})); }); \ No newline at end of file diff --git a/apps/documenteditor/main/locale/en.json b/apps/documenteditor/main/locale/en.json index d6a5bcb788..10b25300bd 100644 --- a/apps/documenteditor/main/locale/en.json +++ b/apps/documenteditor/main/locale/en.json @@ -1768,6 +1768,8 @@ "DE.Views.FormSettings.textUnlock": "Unlock", "DE.Views.FormSettings.textValue": "Value Options", "DE.Views.FormSettings.textWidth": "Cell width", + "DE.Views.FormSettings.textAutofit": "AutoFit", + "DE.Views.FormSettings.textMulti": "Multiline field", "DE.Views.FormsTab.capBtnCheckBox": "Checkbox", "DE.Views.FormsTab.capBtnComboBox": "Combo Box", "DE.Views.FormsTab.capBtnDropDown": "Dropdown", From 0c3b0b6ac8a96cd87663adaa7f4357bd2871250d Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Thu, 17 Jun 2021 20:58:02 +0300 Subject: [PATCH 02/77] [DE] Fix layout --- apps/documenteditor/main/app/template/FormSettings.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/documenteditor/main/app/template/FormSettings.template b/apps/documenteditor/main/app/template/FormSettings.template index f064b6eeac..d8edb97e02 100644 --- a/apps/documenteditor/main/app/template/FormSettings.template +++ b/apps/documenteditor/main/app/template/FormSettings.template @@ -78,7 +78,7 @@ - +
+ + + + + + diff --git a/apps/spreadsheeteditor/main/app/view/FormatRulesManagerDlg.js b/apps/spreadsheeteditor/main/app/view/FormatRulesManagerDlg.js index 2eeabea6e1..821b0f3fce 100644 --- a/apps/spreadsheeteditor/main/app/view/FormatRulesManagerDlg.js +++ b/apps/spreadsheeteditor/main/app/view/FormatRulesManagerDlg.js @@ -152,7 +152,7 @@ define([ 'text!spreadsheeteditor/main/app/template/FormatRulesManagerDlg.templa '
', '
<%= name %>
', '
', - '
', + '
', '<% if (lock) { %>', '
<%=lockuser%>
', '<% } %>', From 5f2b4ad4a1c19c4bf53fa8d99488b0332a2e20cf Mon Sep 17 00:00:00 2001 From: JuliaSvinareva Date: Tue, 13 Jul 2021 15:50:55 +0300 Subject: [PATCH 65/77] [mobile] Fix bug 51268 --- .../common/mobile/lib/controller/collaboration/Comments.jsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/common/mobile/lib/controller/collaboration/Comments.jsx b/apps/common/mobile/lib/controller/collaboration/Comments.jsx index 93fc3eede6..1a43a08250 100644 --- a/apps/common/mobile/lib/controller/collaboration/Comments.jsx +++ b/apps/common/mobile/lib/controller/collaboration/Comments.jsx @@ -457,7 +457,11 @@ class ViewCommentsController extends Component { }); } closeViewCurComments () { - f7.sheet.close('#view-comment-sheet'); + if (Device.phone) { + f7.sheet.close('#view-comment-sheet'); + } else { + f7.popover.close('#view-comment-popover'); + } this.setState({isOpenViewCurComments: false}); } onResolveComment (comment) { From ad2926db4324306eb82168e68e771bdc1541e05a Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 13 Jul 2021 22:08:32 +0300 Subject: [PATCH 66/77] [SSE] Add "no icon" to format rule. Fix Bug 51270 --- .../app/template/FormatRulesEditDlg.template | 30 ++++---- .../main/app/view/FormatRulesEditDlg.js | 74 +++++++++++++------ apps/spreadsheeteditor/main/locale/en.json | 1 + 3 files changed, 67 insertions(+), 38 deletions(-) diff --git a/apps/spreadsheeteditor/main/app/template/FormatRulesEditDlg.template b/apps/spreadsheeteditor/main/app/template/FormatRulesEditDlg.template index 5b818504ba..4cdebbce44 100644 --- a/apps/spreadsheeteditor/main/app/template/FormatRulesEditDlg.template +++ b/apps/spreadsheeteditor/main/app/template/FormatRulesEditDlg.template @@ -162,45 +162,45 @@
diff --git a/apps/spreadsheeteditor/main/app/view/FormatRulesEditDlg.js b/apps/spreadsheeteditor/main/app/view/FormatRulesEditDlg.js index a5bc7b4b9c..595b61f68d 100644 --- a/apps/spreadsheeteditor/main/app/view/FormatRulesEditDlg.js +++ b/apps/spreadsheeteditor/main/app/view/FormatRulesEditDlg.js @@ -662,7 +662,9 @@ define([ 'text!spreadsheeteditor/main/app/template/FormatRulesEditDlg.template', type : i, template: _.template([ '' @@ -673,6 +675,7 @@ define([ 'text!spreadsheeteditor/main/app/template/FormatRulesEditDlg.template', style: 'min-width: 105px;', additionalAlign: this.menuAddAlign, items: [ + { caption: this.txtNoCellIcon, checkable: true, allowDepress: false, toggleGroup: 'no-cell-icons-' + (i+1) }, { template: _.template('
') } ] })).render($('#format-rules-combo-icon-' + (i+1))); @@ -684,10 +687,12 @@ define([ 'text!spreadsheeteditor/main/app/template/FormatRulesEditDlg.template', itemTemplate: _.template(''), type : i }); - picker.on('item:click', _.bind(this.onSelectIcon, this, combo)); + picker.on('item:click', _.bind(this.onSelectIcon, this, combo, menu.items[0])); + menu.items[0].on('toggle', _.bind(this.onSelectNoIcon, this, combo, picker)); this.iconsControls[i].cmbIcons = combo; this.iconsControls[i].pickerIcons = picker; + this.iconsControls[i].itemNoIcons = menu.items[0]; combo = new Common.UI.ComboBox({ el : $('#format-rules-edit-combo-op-' + (i+1)), @@ -1429,19 +1434,26 @@ define([ 'text!spreadsheeteditor/main/app/template/FormatRulesEditDlg.template', value.asc_setGte(controls.cmbOperator.getValue()); values.push(value); if (icons) { - var icon = controls.pickerIcons.getSelectedRec().get('value')+1; - for (var k=0; k0) { this.cmbIconsPresets.setValue(this.textCustom); _.each(icons, function(item) { - iconsIndexes.push(me.collectionPresets.at(item.asc_getIconSet()).get('icons')[item.asc_getIconId()]); + if (item.asc_getIconSet()==Asc.EIconSetType.NoIcons) { + iconsIndexes.push(-1); + } else + iconsIndexes.push(me.collectionPresets.at(item.asc_getIconSet()).get('icons')[item.asc_getIconId()]); }); } else { this.cmbIconsPresets.setValue(iconSet); @@ -1870,8 +1885,9 @@ define([ 'text!spreadsheeteditor/main/app/template/FormatRulesEditDlg.template', var len = iconsIndexes.length; for (var i=0; i div'); formcontrol.css('background-image', record ? 'url(' + record.get('imgUrl') + ')' : ''); + formcontrol.text(record ? '' : this.txtNoCellIcon); }, isRangeValid: function() { @@ -2191,7 +2218,8 @@ define([ 'text!spreadsheeteditor/main/app/template/FormatRulesEditDlg.template', textInvalid: 'Invalid data range.', textClear: 'Clear', textItem: 'Item', - textPresets: 'Presets' + textPresets: 'Presets', + txtNoCellIcon: 'No Icon' }, SSE.Views.FormatRulesEditDlg || {})); }); \ No newline at end of file diff --git a/apps/spreadsheeteditor/main/locale/en.json b/apps/spreadsheeteditor/main/locale/en.json index 43ce5002ca..59f3f63726 100644 --- a/apps/spreadsheeteditor/main/locale/en.json +++ b/apps/spreadsheeteditor/main/locale/en.json @@ -2188,6 +2188,7 @@ "SSE.Views.FormatRulesEditDlg.txtTime": "Time", "SSE.Views.FormatRulesEditDlg.txtTitleEdit": "Edit Formatting Rule", "SSE.Views.FormatRulesEditDlg.txtTitleNew": "New Formatting Rule", + "SSE.Views.FormatRulesEditDlg.txtNoCellIcon": "No Icon", "SSE.Views.FormatRulesManagerDlg.guestText": "Guest", "SSE.Views.FormatRulesManagerDlg.text1Above": "1 std dev above average", "SSE.Views.FormatRulesManagerDlg.text1Below": "1 std dev below average", From ef6b13059b904aff182302e9f56dca2cfc3b6e60 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 13 Jul 2021 22:30:34 +0300 Subject: [PATCH 67/77] [SSE] Refactoring --- .../app/template/FormatRulesEditDlg.template | 20 +++++++++---------- .../main/app/view/FormatRulesEditDlg.js | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/apps/spreadsheeteditor/main/app/template/FormatRulesEditDlg.template b/apps/spreadsheeteditor/main/app/template/FormatRulesEditDlg.template index 4cdebbce44..f5a40a45a0 100644 --- a/apps/spreadsheeteditor/main/app/template/FormatRulesEditDlg.template +++ b/apps/spreadsheeteditor/main/app/template/FormatRulesEditDlg.template @@ -161,8 +161,8 @@
From d5e1aa57e9d7471ad0ade9c01f3815c13a0899a2 Mon Sep 17 00:00:00 2001 From: SergeyEzhin Date: Thu, 24 Jun 2021 00:07:16 +0300 Subject: [PATCH 03/77] [SSE mobile] Correct store in application settings --- .../spreadsheeteditor/mobile/src/store/applicationSettings.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/spreadsheeteditor/mobile/src/store/applicationSettings.js b/apps/spreadsheeteditor/mobile/src/store/applicationSettings.js index d18e04d2e3..558d872301 100644 --- a/apps/spreadsheeteditor/mobile/src/store/applicationSettings.js +++ b/apps/spreadsheeteditor/mobile/src/store/applicationSettings.js @@ -28,13 +28,13 @@ export class storeApplicationSettings { unitMeasurement = Common.Utils.Metric.getCurrentMetric(); macrosMode = 0; - formulaLang = LocalStorage.getItem('sse-settings-func-lang') || dataLang[0].value; + formulaLang = LocalStorage.getItem('sse-settings-func-lang') || this.getFormulaLanguages()[0].value; regCode = undefined; regExample = ''; regData = []; isRefStyle = false; isComments = true; - isResolvedComments = true; + isResolvedComments = true; getFormulaLanguages() { const dataLang = [ From 9bdd5c9d2fe92ef6c6a7d314af4126a4f7dfaf3d Mon Sep 17 00:00:00 2001 From: ShimaginAndrey Date: Thu, 24 Jun 2021 11:19:36 +0300 Subject: [PATCH 04/77] Fix Bug 50794 --- .../mobile/src/controller/settings/Download.jsx | 2 +- apps/presentationeditor/mobile/src/controller/Main.jsx | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/apps/documenteditor/mobile/src/controller/settings/Download.jsx b/apps/documenteditor/mobile/src/controller/settings/Download.jsx index 81cfa0dfe7..d23411208e 100644 --- a/apps/documenteditor/mobile/src/controller/settings/Download.jsx +++ b/apps/documenteditor/mobile/src/controller/settings/Download.jsx @@ -33,7 +33,7 @@ class DownloadController extends Component { () => { if (format == Asc.c_oAscFileType.TXT) { const isDocReady = this.props.storeAppOptions.isDocReady; - onAdvancedOptions(Asc.c_oAscAdvancedOptionsID.TXT, api.asc_getAdvancedOptions(), 2, new Asc.asc_CDownloadOptions(format), _t, isDocReady, isDRM); + onAdvancedOptions(Asc.c_oAscAdvancedOptionsID.TXT, api.asc_getAdvancedOptions(), 2, new Asc.asc_CDownloadOptions(format), _t, isDocReady); } else { setTimeout(() => { diff --git a/apps/presentationeditor/mobile/src/controller/Main.jsx b/apps/presentationeditor/mobile/src/controller/Main.jsx index 720a355394..386ed5b504 100644 --- a/apps/presentationeditor/mobile/src/controller/Main.jsx +++ b/apps/presentationeditor/mobile/src/controller/Main.jsx @@ -300,6 +300,7 @@ class MainController extends Component { this.api.asc_registerCallback('asc_onDocumentContentReady', this.onDocumentContentReady.bind(this)); this.api.asc_registerCallback('asc_onDocumentUpdateVersion', this.onUpdateVersion.bind(this)); this.api.asc_registerCallback('asc_onServerVersion', this.onServerVersion.bind(this)); + this.api.asc_registerCallback('asc_onAdvancedOptions', this.onAdvancedOptions.bind(this)); this.api.asc_registerCallback('asc_onDocumentName', this.onDocumentName.bind(this)); this.api.asc_registerCallback('asc_onPrintUrl', this.onPrintUrl.bind(this)); this.api.asc_registerCallback('asc_onPrint', this.onPrint.bind(this)); @@ -309,10 +310,6 @@ class MainController extends Component { const storePresentationSettings = this.props.storePresentationSettings; - this.api.asc_registerCallback('asc_onAdvancedOptions', (type, advOptions) => { - this.onAdvancedOptions(type, advOptions); - }); - this.api.asc_registerCallback('asc_onPresentationSize', (width, height) => { storePresentationSettings.changeSizeIndex(width, height); }); From 21b385dcd15e9e28f88f6ce33284695bf15f51c0 Mon Sep 17 00:00:00 2001 From: ShimaginAndrey Date: Thu, 24 Jun 2021 18:18:38 +0300 Subject: [PATCH 05/77] Changing the sorting buttons --- apps/spreadsheeteditor/mobile/locale/en.json | 2 ++ .../mobile/src/controller/FilterOptions.jsx | 8 +++++-- .../mobile/src/view/FilterOptions.jsx | 22 +++++++++++-------- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/apps/spreadsheeteditor/mobile/locale/en.json b/apps/spreadsheeteditor/mobile/locale/en.json index 02681d4f8a..bc32045061 100644 --- a/apps/spreadsheeteditor/mobile/locale/en.json +++ b/apps/spreadsheeteditor/mobile/locale/en.json @@ -412,6 +412,8 @@ "textInvalidRange": "Invalid cells range", "txtNotUrl": "This field should be a URL in the format \"http://www.example.com\"", "textFilterOptions": "Filter Options", + "txtSortLow2High": "Sort Lowest to Highest", + "txtSortHigh2Low": "Sort Highest to Lowest", "textClearFilter": "Clear Filter", "textDeleteFilter": "Delete Filter", "textSelectAll": "Select All", diff --git a/apps/spreadsheeteditor/mobile/src/controller/FilterOptions.jsx b/apps/spreadsheeteditor/mobile/src/controller/FilterOptions.jsx index 6e8b153e88..79b2e36a14 100644 --- a/apps/spreadsheeteditor/mobile/src/controller/FilterOptions.jsx +++ b/apps/spreadsheeteditor/mobile/src/controller/FilterOptions.jsx @@ -10,7 +10,8 @@ const FilterOptionsController = () => { const [configFilter, setConfig] = useState(null); const [listVal, setListValue] = useState([]); - const [isValid, setIsValid] = useState(null) + const [isValid, setIsValid] = useState(null); + const [checkSort, setCheckSort] = useState(null); useEffect(() => { function onDocumentReady() { @@ -36,6 +37,9 @@ const FilterOptionsController = () => { setConfig(config); setClearDisable(config); + const sort = config.asc_getSortState(); + sort == Asc.c_oAscSortOptions.Ascending ? setCheckSort(true) : setCheckSort(false); + if (Device.phone) { f7.sheet.open('.picker__sheet'); } else { @@ -128,7 +132,7 @@ const FilterOptionsController = () => { }; return ( - ) }; diff --git a/apps/spreadsheeteditor/mobile/src/view/FilterOptions.jsx b/apps/spreadsheeteditor/mobile/src/view/FilterOptions.jsx index e5d3073799..ffdf7ba1f0 100644 --- a/apps/spreadsheeteditor/mobile/src/view/FilterOptions.jsx +++ b/apps/spreadsheeteditor/mobile/src/view/FilterOptions.jsx @@ -6,6 +6,7 @@ import { Device } from '../../../../common/mobile/utils/device'; const FilterOptions = (props) => { const { t } = useTranslation(); const _t = t('View.Edit', {returnObjects: true}); + const isAndroid = Device.android; useEffect(() => { const is_all_checked = props.listVal.every(item => item.check); @@ -33,15 +34,18 @@ const FilterOptions = (props) => { } - - - props.onSort('sortdown')}> - - - props.onSort('sortup')}> - - - + props.onSort('sortdown')} + after={isAndroid ? : null}> + {!isAndroid ? + : null + } + + + props.onSort('sortup')} + after={isAndroid ? : null}> + {!isAndroid ? + : null + } From 36f718d161f1715b19172886d8aa73d6a5d56a9c Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Fri, 25 Jun 2021 11:46:08 +0300 Subject: [PATCH 06/77] Update translation --- apps/documenteditor/embed/locale/ca.json | 13 ++++++-- apps/documenteditor/embed/locale/tr.json | 9 ++++++ apps/documenteditor/main/locale/tr.json | 8 +++++ apps/presentationeditor/embed/locale/ca.json | 3 +- apps/presentationeditor/embed/locale/tr.json | 2 ++ apps/presentationeditor/main/locale/de.json | 2 +- apps/spreadsheeteditor/embed/locale/ca.json | 13 ++++---- apps/spreadsheeteditor/embed/locale/tr.json | 2 ++ apps/spreadsheeteditor/main/locale/de.json | 6 ++-- apps/spreadsheeteditor/main/locale/ro.json | 2 ++ apps/spreadsheeteditor/main/locale/sv.json | 33 +++++++++++++++++++- 11 files changed, 79 insertions(+), 14 deletions(-) diff --git a/apps/documenteditor/embed/locale/ca.json b/apps/documenteditor/embed/locale/ca.json index fc54c1acec..b91723786a 100644 --- a/apps/documenteditor/embed/locale/ca.json +++ b/apps/documenteditor/embed/locale/ca.json @@ -10,21 +10,30 @@ "DE.ApplicationController.downloadErrorText": "Descàrrega fallida.", "DE.ApplicationController.downloadTextText": "Descarregant document...", "DE.ApplicationController.errorAccessDeny": "Intenteu realitzar una acció per la qual no teniu drets.
Poseu-vos en contacte amb l'administrador del servidor de documents.", - "DE.ApplicationController.errorDefaultMessage": "Error codi:%1 ", + "DE.ApplicationController.errorDefaultMessage": "Codi d'error:%1", + "DE.ApplicationController.errorEditingDownloadas": "S'ha produït un error durant el treball amb el document.
Utilitzeu l'opció \"Desar com a ...\" per desar la còpia de seguretat del fitxer al disc dur del vostre ordinador.", "DE.ApplicationController.errorFilePassProtect": "El fitxer està protegit amb contrasenya i no es pot obrir.", "DE.ApplicationController.errorFileSizeExceed": "La mida del fitxer excedeix la limitació establerta per al vostre servidor. Podeu contactar amb l'administrador del Document Server per obtenir més detalls.", + "DE.ApplicationController.errorSubmit": "Error en enviar", "DE.ApplicationController.errorUpdateVersionOnDisconnect": "La connexió a Internet s'ha restaurat i la versió del fitxer s'ha canviat.
Abans de continuar treballant, heu de descarregar el fitxer o copiar-ne el contingut per assegurar-vos que no es perdi res i, després, tornar a carregar aquesta pàgina.", "DE.ApplicationController.errorUserDrop": "Ara no es pot accedir al fitxer.", "DE.ApplicationController.notcriticalErrorTitle": "Avis", "DE.ApplicationController.scriptLoadError": "La connexió és massa lenta, alguns dels components no s’han pogut carregar. Torneu a carregar la pàgina.", + "DE.ApplicationController.textClear": "Esborrar tots els camps", "DE.ApplicationController.textLoadingDocument": "Carregant document", + "DE.ApplicationController.textNext": "Següent camp", "DE.ApplicationController.textOf": "de", + "DE.ApplicationController.textSubmit": "Enviar", + "DE.ApplicationController.textSubmited": "Formulari enviat amb èxit
Faci clic per a tancar el consell", "DE.ApplicationController.txtClose": "Tancar", "DE.ApplicationController.unknownErrorText": "Error Desconegut.", "DE.ApplicationController.unsupportedBrowserErrorText": "El vostre navegador no és compatible.", "DE.ApplicationController.waitText": "Si us plau, esperi...", - "DE.ApplicationView.txtDownload": "Descàrrega", + "DE.ApplicationView.txtDownload": "\nDescarregar", + "DE.ApplicationView.txtDownloadDocx": "Desar com a .docx", + "DE.ApplicationView.txtDownloadPdf": "Desar com a pdf", "DE.ApplicationView.txtEmbed": "Incrustar", + "DE.ApplicationView.txtFileLocation": "Obrir ubicació del fitxer", "DE.ApplicationView.txtFullScreen": "Pantalla Completa", "DE.ApplicationView.txtPrint": "Imprimir", "DE.ApplicationView.txtShare": "Compartir" diff --git a/apps/documenteditor/embed/locale/tr.json b/apps/documenteditor/embed/locale/tr.json index 709222c293..2895da6450 100644 --- a/apps/documenteditor/embed/locale/tr.json +++ b/apps/documenteditor/embed/locale/tr.json @@ -12,17 +12,26 @@ "DE.ApplicationController.errorAccessDeny": "Hakkınız olmayan bir eylem gerçekleştirmeye çalışıyorsunuz.
Lütfen Belge Sunucu yöneticinize başvurun.", "DE.ApplicationController.errorDefaultMessage": "Hata kodu: %1", "DE.ApplicationController.errorFilePassProtect": "Döküman şifre korumalı ve açılamadı", + "DE.ApplicationController.errorSubmit": "Kaydetme başarısız oldu.", + "DE.ApplicationController.errorUpdateVersionOnDisconnect": "İnternet bağlantısı tekrar sağlandı, ve dosya versiyon değişti.
Çalışmanıza devam etmeden önce, veri kaybını önlemeniz için dosyasının bir kopyasını indirmeniz ya da dosya içeriğini kopyalamanız ve sonrasında sayfayı yenilemeniz gerekmektedir.", "DE.ApplicationController.errorUserDrop": "Belgeye şu an erişilemiyor.", "DE.ApplicationController.notcriticalErrorTitle": "Uyarı", "DE.ApplicationController.scriptLoadError": "Bağlantı çok yavaş, bileşenlerin bazıları yüklenemedi. Lütfen sayfayı yenileyin.", + "DE.ApplicationController.textClear": "Tüm alanları temizle", "DE.ApplicationController.textLoadingDocument": "Döküman yükleniyor", + "DE.ApplicationController.textNext": "Sonraki alan", "DE.ApplicationController.textOf": "'in", + "DE.ApplicationController.textSubmit": "Kaydet", "DE.ApplicationController.txtClose": "Kapat", "DE.ApplicationController.unknownErrorText": "Bilinmeyen hata.", "DE.ApplicationController.unsupportedBrowserErrorText": "Tarayıcınız desteklenmiyor.", "DE.ApplicationController.waitText": "Lütfen bekleyin...", "DE.ApplicationView.txtDownload": "İndir", + "DE.ApplicationView.txtDownloadDocx": "docx olarak indir", + "DE.ApplicationView.txtDownloadPdf": "Pdf olarak indir", "DE.ApplicationView.txtEmbed": "Gömülü", + "DE.ApplicationView.txtFileLocation": "Dosya konumunu aç", "DE.ApplicationView.txtFullScreen": "Tam Ekran", + "DE.ApplicationView.txtPrint": "Yazdır", "DE.ApplicationView.txtShare": "Paylaş" } \ No newline at end of file diff --git a/apps/documenteditor/main/locale/tr.json b/apps/documenteditor/main/locale/tr.json index 0b6eae6c47..6151929fda 100644 --- a/apps/documenteditor/main/locale/tr.json +++ b/apps/documenteditor/main/locale/tr.json @@ -118,6 +118,7 @@ "Common.Views.About.txtPoweredBy": "Powered by", "Common.Views.About.txtTel": "tel:", "Common.Views.About.txtVersion": "Versiyon", + "Common.Views.AutoCorrectDialog.textAdd": "ekle", "Common.Views.Chat.textSend": "Gönder", "Common.Views.Comments.textAdd": "Ekle", "Common.Views.Comments.textAddComment": "Yorum Ekle", @@ -198,6 +199,9 @@ "Common.Views.Plugins.textLoading": "Yükleniyor", "Common.Views.Plugins.textStart": "Başlat", "Common.Views.Plugins.textStop": "Bitir", + "Common.Views.Protection.hintPwd": "Şifreyi değiştir veya sil", + "Common.Views.Protection.txtChangePwd": "Şifre Değiştir", + "Common.Views.Protection.txtInvisibleSignature": "Dijital imza ekle", "Common.Views.RenameDialog.textName": "Dosya adı", "Common.Views.RenameDialog.txtInvalidName": "Dosya adı aşağıdaki karakterlerden herhangi birini içeremez:", "Common.Views.ReviewChanges.hintNext": "Sonraki değişikliğe", @@ -844,6 +848,7 @@ "DE.Views.ChartSettings.txtTight": "Sıkı", "DE.Views.ChartSettings.txtTitle": "Grafik", "DE.Views.ChartSettings.txtTopAndBottom": "Üst ve alt", + "DE.Views.ControlSettingsDialog.textAdd": "ekle", "DE.Views.ControlSettingsDialog.textColor": "Renk", "DE.Views.ControlSettingsDialog.textDate": "Tarih formatı", "DE.Views.ControlSettingsDialog.textFormat": "Tarihi böyle göster", @@ -966,6 +971,7 @@ "DE.Views.DocumentHolder.textUpdateTOC": "İçindekiler tablosunu yenile", "DE.Views.DocumentHolder.textWrap": "Kaydırma Stili", "DE.Views.DocumentHolder.tipIsLocked": "Bu element şu an başka bir kullanıcı tarafından düzenleniyor.", + "DE.Views.DocumentHolder.toDictionaryText": "Sözlüğe ekle", "DE.Views.DocumentHolder.txtAddBottom": "Add bottom border", "DE.Views.DocumentHolder.txtAddFractionBar": "Add fraction bar", "DE.Views.DocumentHolder.txtAddHor": "Add horizontal line", @@ -1341,6 +1347,7 @@ "DE.Views.Links.tipContentsUpdate": "İçindekiler tablosunu yenile", "DE.Views.Links.tipInsertHyperlink": "Köprü ekle", "DE.Views.Links.tipNotes": "Dipnot ekle veya düzenle", + "DE.Views.ListSettingsDialog.textCenter": "Ortala", "DE.Views.ListSettingsDialog.txtAlign": "Hizalama", "DE.Views.ListSettingsDialog.txtFont": "Font ve Simge", "DE.Views.ListSettingsDialog.txtSymbol": "Simge", @@ -1445,6 +1452,7 @@ "DE.Views.ParagraphSettingsAdvanced.strDoubleStrike": "Üstü çift çizili", "DE.Views.ParagraphSettingsAdvanced.strIndentsLeftText": "Sol", "DE.Views.ParagraphSettingsAdvanced.strIndentsRightText": "Sağ", + "DE.Views.ParagraphSettingsAdvanced.strIndentsSpacingAfter": "sonra", "DE.Views.ParagraphSettingsAdvanced.strKeepLines": "Satırları birlikte tut", "DE.Views.ParagraphSettingsAdvanced.strKeepNext": "Sonrakiyle tut", "DE.Views.ParagraphSettingsAdvanced.strMargins": "Dolgu maddeleri", diff --git a/apps/presentationeditor/embed/locale/ca.json b/apps/presentationeditor/embed/locale/ca.json index afdefb4f22..e085173116 100644 --- a/apps/presentationeditor/embed/locale/ca.json +++ b/apps/presentationeditor/embed/locale/ca.json @@ -15,7 +15,7 @@ "PE.ApplicationController.errorFileSizeExceed": "La mida del fitxer excedeix la limitació establerta per al vostre servidor. Podeu contactar amb l'administrador del Document Server per obtenir més detalls.", "PE.ApplicationController.errorUpdateVersionOnDisconnect": "La connexió a Internet s'ha restaurat i la versió del fitxer s'ha canviat.
Abans de continuar treballant, heu de descarregar el fitxer o copiar-ne el contingut per assegurar-vos que no es perdi res i, després, tornar a carregar aquesta pàgina.", "PE.ApplicationController.errorUserDrop": "Ara no es pot accedir al fitxer.", - "PE.ApplicationController.notcriticalErrorTitle": "Avis", + "PE.ApplicationController.notcriticalErrorTitle": "Advertiment", "PE.ApplicationController.scriptLoadError": "La connexió és massa lenta, alguns dels components no s’han pogut carregar. Torneu a carregar la pàgina.", "PE.ApplicationController.textLoadingDocument": "Carregant presentació", "PE.ApplicationController.textOf": "de", @@ -25,6 +25,7 @@ "PE.ApplicationController.waitText": "Si us plau, esperi...", "PE.ApplicationView.txtDownload": "Descàrrega", "PE.ApplicationView.txtEmbed": "Incrustar", + "PE.ApplicationView.txtFileLocation": "Obrir ubicació del fitxer", "PE.ApplicationView.txtFullScreen": "Pantalla Completa", "PE.ApplicationView.txtPrint": "Imprimir", "PE.ApplicationView.txtShare": "Compartir" diff --git a/apps/presentationeditor/embed/locale/tr.json b/apps/presentationeditor/embed/locale/tr.json index 98287a3fff..e2e8519373 100644 --- a/apps/presentationeditor/embed/locale/tr.json +++ b/apps/presentationeditor/embed/locale/tr.json @@ -12,6 +12,7 @@ "PE.ApplicationController.errorAccessDeny": "Hakkınız olmayan bir eylem gerçekleştirmeye çalışıyorsunuz.
Lütfen Belge Sunucu yöneticinize başvurun.", "PE.ApplicationController.errorDefaultMessage": "Hata kodu: %1", "PE.ApplicationController.errorFilePassProtect": "Döküman şifre korumalı ve açılamadı", + "PE.ApplicationController.errorUpdateVersionOnDisconnect": "İnternet bağlantısı tekrar sağlandı, ve dosya versiyon değişti.
Çalışmanıza devam etmeden önce, veri kaybını önlemeniz için dosyasının bir kopyasını indirmeniz ya da dosya içeriğini kopyalamanız ve sonrasında sayfayı yenilemeniz gerekmektedir.", "PE.ApplicationController.errorUserDrop": "Belgeye şu an erişilemiyor.", "PE.ApplicationController.notcriticalErrorTitle": "Uyarı", "PE.ApplicationController.scriptLoadError": "Bağlantı çok yavaş, bileşenlerin bazıları yüklenemedi. Lütfen sayfayı yenileyin.", @@ -24,5 +25,6 @@ "PE.ApplicationView.txtDownload": "İndir", "PE.ApplicationView.txtEmbed": "Gömülü", "PE.ApplicationView.txtFullScreen": "Tam Ekran", + "PE.ApplicationView.txtPrint": "Yazdır", "PE.ApplicationView.txtShare": "Paylaş" } \ No newline at end of file diff --git a/apps/presentationeditor/main/locale/de.json b/apps/presentationeditor/main/locale/de.json index 8728d69f59..2b2e31d2da 100644 --- a/apps/presentationeditor/main/locale/de.json +++ b/apps/presentationeditor/main/locale/de.json @@ -1509,7 +1509,7 @@ "PE.Views.ParagraphSettingsAdvanced.txtAutoText": "Auto", "PE.Views.RightMenu.txtChartSettings": "Diagramm-Einstellungen", "PE.Views.RightMenu.txtImageSettings": "Bild-Einstellungen", - "PE.Views.RightMenu.txtParagraphSettings": "Texte-Einstellungen", + "PE.Views.RightMenu.txtParagraphSettings": "Text-Einstellungen", "PE.Views.RightMenu.txtShapeSettings": "Form-Einstellungen", "PE.Views.RightMenu.txtSignatureSettings": "Signatureinstellungen", "PE.Views.RightMenu.txtSlideSettings": "Folien-Einstellungen", diff --git a/apps/spreadsheeteditor/embed/locale/ca.json b/apps/spreadsheeteditor/embed/locale/ca.json index 5ebe05d785..c32ab28f83 100644 --- a/apps/spreadsheeteditor/embed/locale/ca.json +++ b/apps/spreadsheeteditor/embed/locale/ca.json @@ -2,29 +2,30 @@ "common.view.modals.txtCopy": "Copiat al porta-retalls", "common.view.modals.txtEmbed": "Incrustar", "common.view.modals.txtHeight": "Alçada", - "common.view.modals.txtShare": "Compartir Enllaç", + "common.view.modals.txtShare": "Compartir enllaç", "common.view.modals.txtWidth": "Amplada", "SSE.ApplicationController.convertationErrorText": "Conversió Fallida", "SSE.ApplicationController.convertationTimeoutText": "Conversió fora de temps", "SSE.ApplicationController.criticalErrorTitle": "Error", "SSE.ApplicationController.downloadErrorText": "Descàrrega Fallida", - "SSE.ApplicationController.downloadTextText": "Descarregar Full de Càlcul", - "SSE.ApplicationController.errorAccessDeny": "Intenteu realitzar una acció per la qual no teniu drets.
Poseu-vos en contacte amb l'administrador del servidor de documents.", - "SSE.ApplicationController.errorDefaultMessage": "Codi Error:%1", + "SSE.ApplicationController.downloadTextText": "Descarregar full de càlcul", + "SSE.ApplicationController.errorAccessDeny": "No teniu permisos per realitzar aquesta acció.
Poseu-vos en contacte amb l'administrador del servidor de documents.", + "SSE.ApplicationController.errorDefaultMessage": "Codi d'error:%1", "SSE.ApplicationController.errorFilePassProtect": "El fitxer està protegit amb contrasenya i no es pot obrir.", "SSE.ApplicationController.errorFileSizeExceed": "La mida del fitxer excedeix la limitació establerta per al vostre servidor. Podeu contactar amb l'administrador del Document Server per obtenir més detalls.", "SSE.ApplicationController.errorUpdateVersionOnDisconnect": "La connexió a Internet s'ha restaurat i la versió del fitxer s'ha canviat.
Abans de continuar treballant, heu de descarregar el fitxer o copiar-ne el contingut per assegurar-vos que no es perdi res i, després, tornar a carregar aquesta pàgina.", "SSE.ApplicationController.errorUserDrop": "Ara no es pot accedir al fitxer.", - "SSE.ApplicationController.notcriticalErrorTitle": "Avis", + "SSE.ApplicationController.notcriticalErrorTitle": "Advertiment", "SSE.ApplicationController.scriptLoadError": "La connexió és massa lenta, alguns dels components no s’han pogut carregar. Torneu a carregar la pàgina.", "SSE.ApplicationController.textLoadingDocument": "Carregant full de càlcul", "SSE.ApplicationController.textOf": "de", "SSE.ApplicationController.txtClose": "Tancar", - "SSE.ApplicationController.unknownErrorText": "Error Desconegut.", + "SSE.ApplicationController.unknownErrorText": "Error desconegut.", "SSE.ApplicationController.unsupportedBrowserErrorText": "El vostre navegador no és compatible.", "SSE.ApplicationController.waitText": "Si us plau, esperi...", "SSE.ApplicationView.txtDownload": "Descàrrega", "SSE.ApplicationView.txtEmbed": "Incrustar", + "SSE.ApplicationView.txtFileLocation": "Obrir ubicació de l'arxiu", "SSE.ApplicationView.txtFullScreen": "Pantalla Completa", "SSE.ApplicationView.txtPrint": "Imprimir", "SSE.ApplicationView.txtShare": "Compartir" diff --git a/apps/spreadsheeteditor/embed/locale/tr.json b/apps/spreadsheeteditor/embed/locale/tr.json index e48cbdeab9..55a6ebedb5 100644 --- a/apps/spreadsheeteditor/embed/locale/tr.json +++ b/apps/spreadsheeteditor/embed/locale/tr.json @@ -12,6 +12,7 @@ "SSE.ApplicationController.errorAccessDeny": "Hakkınız olmayan bir eylem gerçekleştirmeye çalışıyorsunuz.
Lütfen Belge Sunucu yöneticinize başvurun.", "SSE.ApplicationController.errorDefaultMessage": "Hata kodu: %1", "SSE.ApplicationController.errorFilePassProtect": "Döküman şifre korumalı ve açılamadı", + "SSE.ApplicationController.errorUpdateVersionOnDisconnect": "İnternet bağlantısı tekrar sağlandı, ve dosya versiyon değişti.
Çalışmanıza devam etmeden önce, veri kaybını önlemeniz için dosyasının bir kopyasını indirmeniz ya da dosya içeriğini kopyalamanız ve sonrasında sayfayı yenilemeniz gerekmektedir.", "SSE.ApplicationController.errorUserDrop": "Belgeye şu an erişilemiyor.", "SSE.ApplicationController.notcriticalErrorTitle": "Uyarı", "SSE.ApplicationController.scriptLoadError": "Bağlantı çok yavaş, bileşenlerin bazıları yüklenemedi. Lütfen sayfayı yenileyin.", @@ -23,6 +24,7 @@ "SSE.ApplicationController.waitText": "Lütfen bekleyin...", "SSE.ApplicationView.txtDownload": "İndir", "SSE.ApplicationView.txtEmbed": "Gömülü", + "SSE.ApplicationView.txtFileLocation": "Dosya konumunu aç", "SSE.ApplicationView.txtFullScreen": "Tam Ekran", "SSE.ApplicationView.txtShare": "Paylaş" } \ No newline at end of file diff --git a/apps/spreadsheeteditor/main/locale/de.json b/apps/spreadsheeteditor/main/locale/de.json index 7da8df2e53..b682b4c15c 100644 --- a/apps/spreadsheeteditor/main/locale/de.json +++ b/apps/spreadsheeteditor/main/locale/de.json @@ -1914,7 +1914,7 @@ "SSE.Views.DocumentHolder.txtSortFontColor": "Ausgewählte Schriftfarbe nach oben", "SSE.Views.DocumentHolder.txtSparklines": "Sparklines", "SSE.Views.DocumentHolder.txtText": "Text", - "SSE.Views.DocumentHolder.txtTextAdvanced": "Erweiterte Text-Einstellungen", + "SSE.Views.DocumentHolder.txtTextAdvanced": "Erweiterte Paragraf-Einstellungen", "SSE.Views.DocumentHolder.txtTime": "Zeit", "SSE.Views.DocumentHolder.txtUngroup": "Gruppierung aufheben", "SSE.Views.DocumentHolder.txtWidth": "Breite", @@ -2019,7 +2019,7 @@ "SSE.Views.FileMenuPanels.MainSettingsGeneral.textAutoRecover": "Autowiederherstellen", "SSE.Views.FileMenuPanels.MainSettingsGeneral.textAutoSave": "Automatisch speichern", "SSE.Views.FileMenuPanels.MainSettingsGeneral.textDisabled": "Deaktiviert", - "SSE.Views.FileMenuPanels.MainSettingsGeneral.textForceSave": "Auf dem Server speichern", + "SSE.Views.FileMenuPanels.MainSettingsGeneral.textForceSave": "Speichern von Zwischenversionen", "SSE.Views.FileMenuPanels.MainSettingsGeneral.textMinute": "Jede Minute", "SSE.Views.FileMenuPanels.MainSettingsGeneral.textRefStyle": "Referenzstil", "SSE.Views.FileMenuPanels.MainSettingsGeneral.txtBe": "Belarussisch", @@ -2679,7 +2679,7 @@ "SSE.Views.RightMenu.txtCellSettings": "Zelleneinstellungen", "SSE.Views.RightMenu.txtChartSettings": "Diagrammeinstellungen", "SSE.Views.RightMenu.txtImageSettings": "Bild-Einstellungen", - "SSE.Views.RightMenu.txtParagraphSettings": "Texte-Einstellungen", + "SSE.Views.RightMenu.txtParagraphSettings": "Paragraf-Einstellungen", "SSE.Views.RightMenu.txtPivotSettings": "Einstellungen der Pivot-Tabelle", "SSE.Views.RightMenu.txtSettings": "Allgemeine Einstellungen", "SSE.Views.RightMenu.txtShapeSettings": "Form-Einstellungen", diff --git a/apps/spreadsheeteditor/main/locale/ro.json b/apps/spreadsheeteditor/main/locale/ro.json index d046ea7240..1cd00ac47e 100644 --- a/apps/spreadsheeteditor/main/locale/ro.json +++ b/apps/spreadsheeteditor/main/locale/ro.json @@ -78,6 +78,7 @@ "Common.define.conditionalData.textGreaterEq": "Mai mare sau egal", "Common.define.conditionalData.textIconSets": "Ansamble de icoane", "Common.define.conditionalData.textLast7days": "În ultimele 7 zile", + "Common.define.conditionalData.textLessEq": "Mai mic sau egal", "Common.define.conditionalData.textNotBlanks": "Nu conțime celule goale", "Common.define.conditionalData.textNotContains": "Nu conține", "Common.define.conditionalData.textNotErrors": "Nu conține erori", @@ -2064,6 +2065,7 @@ "SSE.Views.FormatRulesEditDlg.textIconStyle": "Stil icoană", "SSE.Views.FormatRulesEditDlg.textInsideBorders": "Borduri în interiorul ", "SSE.Views.FormatRulesEditDlg.textInvalidRange": "EROARE! Zonă de celule nu este validă", + "SSE.Views.FormatRulesEditDlg.textItem": "Element", "SSE.Views.FormatRulesEditDlg.textMiddleBorders": "Bordurile orizontale în interiorul ", "SSE.Views.FormatRulesEditDlg.textNewColor": "Adăugarea unei culori particularizate noi", "SSE.Views.FormatRulesEditDlg.tipBorders": "Borduri", diff --git a/apps/spreadsheeteditor/main/locale/sv.json b/apps/spreadsheeteditor/main/locale/sv.json index fd4f9860d4..9c5a27ee44 100644 --- a/apps/spreadsheeteditor/main/locale/sv.json +++ b/apps/spreadsheeteditor/main/locale/sv.json @@ -12,6 +12,7 @@ "Common.define.chartData.textPie": "Paj", "Common.define.chartData.textSurface": "Yta", "Common.define.chartData.textWinLossSpark": "Vinst / förlust", + "Common.define.conditionalData.textDuplicate": "Duplicera", "Common.Translation.warnFileLocked": "Dokumentet används av ett annat program. Du kan fortsätta redigera och spara den som en kopia.", "Common.UI.ColorButton.textNewColor": "Lägg till ny egen färg", "Common.UI.ComboBorderSize.txtNoBorders": "Inga ramar", @@ -55,6 +56,7 @@ "Common.Views.About.txtPoweredBy": "Powered by", "Common.Views.About.txtTel": "tel.:", "Common.Views.AutoCorrectDialog.textAdd": "Lägg till", + "Common.Views.AutoCorrectDialog.textDelete": "Radera", "Common.Views.Chat.textSend": "Skicka", "Common.Views.Comments.textAdd": "Lägg till", "Common.Views.Comments.textAddComment": "Lägg till kommentar", @@ -791,6 +793,7 @@ "SSE.Controllers.Toolbar.txtBracket_UppLim": "Parenteser", "SSE.Controllers.Toolbar.txtBracket_UppLim_NoneOpen": "Enkel parentes", "SSE.Controllers.Toolbar.txtBracket_UppLim_OpenNone": "Enkel parentes", + "SSE.Controllers.Toolbar.txtDeleteCells": "Radera celler", "SSE.Controllers.Toolbar.txtExpand": "Expandera och sortera", "SSE.Controllers.Toolbar.txtExpandSort": "Data bredvid markeringen kommer inte att sorteras. Vill du utöka markeringen så att den inkluderar intilliggande data eller fortsätta att sortera de markerade cellerna?", "SSE.Controllers.Toolbar.txtFractionDifferential_1": "Differentiell", @@ -1248,6 +1251,7 @@ "SSE.Views.DocumentHolder.textShapeAlignRight": "Högerjustera", "SSE.Views.DocumentHolder.textShapeAlignTop": "Justera till toppen", "SSE.Views.DocumentHolder.textUndo": "Ångra", + "SSE.Views.DocumentHolder.textUnFreezePanes": "Lås upp paneler", "SSE.Views.DocumentHolder.topCellText": "Justera till toppen", "SSE.Views.DocumentHolder.txtAccounting": "Redovisning", "SSE.Views.DocumentHolder.txtAddComment": "Lägg till kommentar", @@ -1415,6 +1419,8 @@ "SSE.Views.FileMenuPanels.Settings.txtGeneral": "Generell", "SSE.Views.FileMenuPanels.Settings.txtPageSettings": "Sidinställningar", "SSE.Views.FileMenuPanels.Settings.txtSpellChecking": "Stavningskontroll", + "SSE.Views.FormatRulesManagerDlg.textDelete": "Radera", + "SSE.Views.FormatRulesManagerDlg.textNew": "Ny", "SSE.Views.FormatSettingsDialog.textCategory": "Kategori", "SSE.Views.FormatSettingsDialog.textDecimal": "Decimal", "SSE.Views.FormatSettingsDialog.textFormat": "Format", @@ -2139,6 +2145,7 @@ "SSE.Views.Toolbar.textTabInsert": "Infoga", "SSE.Views.Toolbar.textTabLayout": "Layout", "SSE.Views.Toolbar.textTabProtect": "Skydd", + "SSE.Views.Toolbar.textTabView": "Visa", "SSE.Views.Toolbar.textTopBorders": "Ram över", "SSE.Views.Toolbar.textUnderline": "Understrykning", "SSE.Views.Toolbar.textWidth": "Bredd", @@ -2283,5 +2290,29 @@ "SSE.Views.ValueFieldSettingsDialog.txtPercentOfTotal": "Procent av rad", "SSE.Views.ValueFieldSettingsDialog.txtShowAs": "Visa värden som", "SSE.Views.ValueFieldSettingsDialog.txtSourceName": "Källnamn:", - "SSE.Views.ValueFieldSettingsDialog.txtSum": "Summa" + "SSE.Views.ValueFieldSettingsDialog.txtSum": "Summa", + "SSE.Views.ViewManagerDlg.closeButtonText": "Stäng", + "SSE.Views.ViewManagerDlg.textDelete": "Radera", + "SSE.Views.ViewManagerDlg.textDuplicate": "Duplicera", + "SSE.Views.ViewManagerDlg.textEmpty": "Inga vyer har skapats än.", + "SSE.Views.ViewManagerDlg.textGoTo": "Gå till vy", + "SSE.Views.ViewManagerDlg.textNew": "Ny", + "SSE.Views.ViewManagerDlg.textRename": "Döp om", + "SSE.Views.ViewManagerDlg.textRenameLabel": "Döp om vy", + "SSE.Views.ViewManagerDlg.textViews": "Arkvyer", + "SSE.Views.ViewManagerDlg.txtTitle": "Vyhanterare", + "SSE.Views.ViewTab.capBtnFreeze": "Lås paneler", + "SSE.Views.ViewTab.capBtnSheetView": "Arkvy", + "SSE.Views.ViewTab.textClose": "Stäng", + "SSE.Views.ViewTab.textCreate": "Ny", + "SSE.Views.ViewTab.textDefault": "Standard", + "SSE.Views.ViewTab.textFormula": "Formelfält", + "SSE.Views.ViewTab.textGridlines": "Stödlinjer", + "SSE.Views.ViewTab.textHeadings": "Rubriker", + "SSE.Views.ViewTab.textManager": "Vyhanterare", + "SSE.Views.ViewTab.textZoom": "Zooma", + "SSE.Views.ViewTab.tipClose": "Stäng arkvy", + "SSE.Views.ViewTab.tipCreate": "Skapa arkvy", + "SSE.Views.ViewTab.tipFreeze": "Lås paneler", + "SSE.Views.ViewTab.tipSheetView": "Arkvy" } \ No newline at end of file From daa60bdd880ecee47ddb44d7fc6e2c1a40a1f249 Mon Sep 17 00:00:00 2001 From: SergeyEzhin Date: Fri, 25 Jun 2021 18:14:24 +0300 Subject: [PATCH 07/77] [SSE mobile] Fix Bug 47962 --- apps/spreadsheeteditor/mobile/src/store/appOptions.js | 3 ++- apps/spreadsheeteditor/mobile/src/view/CellEditor.jsx | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/spreadsheeteditor/mobile/src/store/appOptions.js b/apps/spreadsheeteditor/mobile/src/store/appOptions.js index b426047ca2..ce4a99ec8f 100644 --- a/apps/spreadsheeteditor/mobile/src/store/appOptions.js +++ b/apps/spreadsheeteditor/mobile/src/store/appOptions.js @@ -71,7 +71,8 @@ export class storeAppOptions { } setPermissionOptions (document, licType, params, permissions, isSupportEditFeature) { - permissions.edit = params.asc_getRights() !== Asc.c_oRights.Edit ? false : true; + if (params.asc_getRights() !== Asc.c_oRights.Edit) + permissions.edit = false; this.canAutosave = true; this.canAnalytics = params.asc_getIsAnalyticsEnable(); this.canLicense = (licType === Asc.c_oLicenseResult.Success || licType === Asc.c_oLicenseResult.SuccessLimit); diff --git a/apps/spreadsheeteditor/mobile/src/view/CellEditor.jsx b/apps/spreadsheeteditor/mobile/src/view/CellEditor.jsx index c1439de246..9367e06a93 100644 --- a/apps/spreadsheeteditor/mobile/src/view/CellEditor.jsx +++ b/apps/spreadsheeteditor/mobile/src/view/CellEditor.jsx @@ -1,6 +1,7 @@ import React, { useState } from 'react'; import { Input, View, Button, Link } from 'framework7-react'; +import {observer, inject} from "mobx-react"; const viewStyle = { height: 30 @@ -12,6 +13,8 @@ const contentStyle = { const CellEditorView = props => { const [expanded, setExpanded] = useState(false); + const storeAppOptions = props.storeAppOptions; + const isEdit = storeAppOptions.isEdit; const expandClick = e => { setExpanded(!expanded); @@ -20,7 +23,7 @@ const CellEditorView = props => { return @@ -33,4 +36,4 @@ const CellEditorView = props => { ; }; -export default CellEditorView; +export default inject("storeAppOptions")(observer(CellEditorView)); From 08713dbe99fb6a3f4cc0fdc4de3e5e47d63b24ea Mon Sep 17 00:00:00 2001 From: SergeyEzhin Date: Fri, 25 Jun 2021 20:36:28 +0300 Subject: [PATCH 08/77] [DE PE mobile] Correct app options --- apps/documenteditor/mobile/src/store/appOptions.js | 2 ++ apps/presentationeditor/mobile/src/store/appOptions.js | 2 ++ 2 files changed, 4 insertions(+) diff --git a/apps/documenteditor/mobile/src/store/appOptions.js b/apps/documenteditor/mobile/src/store/appOptions.js index b79cefe336..82c7c6afcd 100644 --- a/apps/documenteditor/mobile/src/store/appOptions.js +++ b/apps/documenteditor/mobile/src/store/appOptions.js @@ -86,6 +86,8 @@ export class storeAppOptions { this.canPlugins = false; } setPermissionOptions (document, licType, params, permissions, isSupportEditFeature) { + if (params.asc_getRights() !== Asc.c_oRights.Edit) + permissions.edit = permissions.review = false; this.review = (permissions.review === undefined) ? (permissions.edit !== false) : permissions.review; this.canAnalytics = params.asc_getIsAnalyticsEnable(); this.canLicense = (licType === Asc.c_oLicenseResult.Success || licType === Asc.c_oLicenseResult.SuccessLimit); diff --git a/apps/presentationeditor/mobile/src/store/appOptions.js b/apps/presentationeditor/mobile/src/store/appOptions.js index c2c95246fa..9fca4e84b2 100644 --- a/apps/presentationeditor/mobile/src/store/appOptions.js +++ b/apps/presentationeditor/mobile/src/store/appOptions.js @@ -64,6 +64,8 @@ export class storeAppOptions { } setPermissionOptions (document, licType, params, permissions, isSupportEditFeature) { + if (params.asc_getRights() !== Asc.c_oRights.Edit) + permissions.edit = false; this.review = (permissions.review === undefined) ? (permissions.edit !== false) : permissions.review; this.canAnalytics = params.asc_getIsAnalyticsEnable(); this.canLicense = (licType === Asc.c_oLicenseResult.Success || licType === Asc.c_oLicenseResult.SuccessLimit); From b8cbd5cfb71137123e7cd3069c03fa6b0aed4334 Mon Sep 17 00:00:00 2001 From: ShimaginAndrey Date: Mon, 28 Jun 2021 11:11:29 +0300 Subject: [PATCH 09/77] [SSE] Fix Bug 47151 --- .../mobile/src/controller/FilterOptions.jsx | 4 ++-- .../mobile/src/less/icons-ios.less | 4 ++-- .../mobile/src/less/icons-material.less | 4 ++-- .../mobile/src/view/FilterOptions.jsx | 24 +++++++++---------- 4 files changed, 17 insertions(+), 19 deletions(-) diff --git a/apps/spreadsheeteditor/mobile/src/controller/FilterOptions.jsx b/apps/spreadsheeteditor/mobile/src/controller/FilterOptions.jsx index 79b2e36a14..d1c950bb6a 100644 --- a/apps/spreadsheeteditor/mobile/src/controller/FilterOptions.jsx +++ b/apps/spreadsheeteditor/mobile/src/controller/FilterOptions.jsx @@ -37,8 +37,8 @@ const FilterOptionsController = () => { setConfig(config); setClearDisable(config); - const sort = config.asc_getSortState(); - sort == Asc.c_oAscSortOptions.Ascending ? setCheckSort(true) : setCheckSort(false); + setCheckSort((config.asc_getSortState() === Asc.c_oAscSortOptions.Ascending ? 'down' : '') || + (config.asc_getSortState() === Asc.c_oAscSortOptions.Descending ? 'up' : '')); if (Device.phone) { f7.sheet.open('.picker__sheet'); diff --git a/apps/spreadsheeteditor/mobile/src/less/icons-ios.less b/apps/spreadsheeteditor/mobile/src/less/icons-ios.less index 1a908bcff5..719610da71 100644 --- a/apps/spreadsheeteditor/mobile/src/less/icons-ios.less +++ b/apps/spreadsheeteditor/mobile/src/less/icons-ios.less @@ -299,12 +299,12 @@ &.sortdown { width: 22px; height: 22px; - .encoded-svg-background(''); + .encoded-svg-mask(''); } &.sortup { width: 22px; height: 22px; - .encoded-svg-background(''); + .encoded-svg-mask(''); } // Formats diff --git a/apps/spreadsheeteditor/mobile/src/less/icons-material.less b/apps/spreadsheeteditor/mobile/src/less/icons-material.less index 8c80a42f05..74821ae318 100644 --- a/apps/spreadsheeteditor/mobile/src/less/icons-material.less +++ b/apps/spreadsheeteditor/mobile/src/less/icons-material.less @@ -278,12 +278,12 @@ &.sortdown { width: 22px; height: 22px; - .encoded-svg-background(''); + .encoded-svg-mask(''); } &.sortup { width: 22px; height: 22px; - .encoded-svg-background(''); + .encoded-svg-mask(''); } // Formats diff --git a/apps/spreadsheeteditor/mobile/src/view/FilterOptions.jsx b/apps/spreadsheeteditor/mobile/src/view/FilterOptions.jsx index ffdf7ba1f0..621b5afb92 100644 --- a/apps/spreadsheeteditor/mobile/src/view/FilterOptions.jsx +++ b/apps/spreadsheeteditor/mobile/src/view/FilterOptions.jsx @@ -6,7 +6,6 @@ import { Device } from '../../../../common/mobile/utils/device'; const FilterOptions = (props) => { const { t } = useTranslation(); const _t = t('View.Edit', {returnObjects: true}); - const isAndroid = Device.android; useEffect(() => { const is_all_checked = props.listVal.every(item => item.check); @@ -33,21 +32,20 @@ const FilterOptions = (props) => { } + - props.onSort('sortdown')} - after={isAndroid ? : null}> - {!isAndroid ? - : null - } - - - props.onSort('sortup')} - after={isAndroid ? : null}> - {!isAndroid ? - : null - } + + + props.onSort('sortdown')}> + + + props.onSort('sortup')}> + + + + {_t.textClearFilter} props.onDeleteFilter()} id="btn-delete-filter">{_t.textDeleteFilter} From 742af60274d34efada0d61be377a719011a5799c Mon Sep 17 00:00:00 2001 From: ShimaginAndrey Date: Mon, 28 Jun 2021 14:16:41 +0300 Subject: [PATCH 10/77] Correct icon android --- apps/common/mobile/resources/less/common-material.less | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/common/mobile/resources/less/common-material.less b/apps/common/mobile/resources/less/common-material.less index b2b44f5a94..604e5bcbfb 100644 --- a/apps/common/mobile/resources/less/common-material.less +++ b/apps/common/mobile/resources/less/common-material.less @@ -258,6 +258,9 @@ flex: 1; font-size: 17px; margin-left: 5px; + display: flex; + align-items: center; + justify-content: center; &:first-child { margin-left: 0; } From 175a2a0d441adc3a9c5c31ff9127c27b0e0ff8c3 Mon Sep 17 00:00:00 2001 From: JuliaSvinareva Date: Mon, 28 Jun 2021 14:39:33 +0300 Subject: [PATCH 11/77] [SSE mobile] Bug 48387 --- apps/spreadsheeteditor/mobile/locale/en.json | 34 ++++++++++++++++++- .../mobile/src/controller/Main.jsx | 34 ++++++++++++++++++- 2 files changed, 66 insertions(+), 2 deletions(-) diff --git a/apps/spreadsheeteditor/mobile/locale/en.json b/apps/spreadsheeteditor/mobile/locale/en.json index 02681d4f8a..a5fe600134 100644 --- a/apps/spreadsheeteditor/mobile/locale/en.json +++ b/apps/spreadsheeteditor/mobile/locale/en.json @@ -28,7 +28,39 @@ "txtXAxis": "X Axis", "txtYAxis": "Y Axis", "txtArt": "Your text here", - "txtAccent": "Accent" + "txtAccent": "Accent", + "txtTable": "Table", + "txtPrintArea": "Print_Area", + "txtConfidential": "Confidential", + "txtPreparedBy": "Prepared by", + "txtPage": "Page", + "txtPageOf": "Page %1 of %2", + "txtPages": "Pages", + "txtDate": "Date", + "txtTime": "Time", + "txtTab": "Tab", + "txtFile": "File", + "txtColumn": "Column", + "txtRow": "Row", + "txtByField": "%1 of %2", + "txtAll": "(All)", + "txtValues": "Values", + "txtGrandTotal": "Grand Total", + "txtRowLbls": "Row Labels", + "txtColLbls": "Column Labels", + "txtMultiSelect": "Multi-Select (Alt+S)", + "txtClearFilter": "Clear Filter (Alt+C)", + "txtBlank": "(blank)", + "txtGroup": "Group", + "txtSeconds": "Seconds", + "txtMinutes": "Minutes", + "txtHours": "Hours", + "txtDays": "Days", + "txtMonths": "Months", + "txtQuarters": "Quarters", + "txtYears": "Years", + "txtOr": "%1 or %2", + "txtQuarter": "Qtr" }, "textGuest": "Guest", "textAnonymous": "Anonymous", diff --git a/apps/spreadsheeteditor/mobile/src/controller/Main.jsx b/apps/spreadsheeteditor/mobile/src/controller/Main.jsx index a021ed9e24..34d72d1af9 100644 --- a/apps/spreadsheeteditor/mobile/src/controller/Main.jsx +++ b/apps/spreadsheeteditor/mobile/src/controller/Main.jsx @@ -221,7 +221,39 @@ class MainController extends Component { 'Diagram Title': _t.txtDiagramTitle, 'X Axis': _t.txtXAxis, 'Y Axis': _t.txtYAxis, - 'Your text here': _t.txtArt + 'Your text here': _t.txtArt, + 'Table': _t.txtTable, + 'Print_Area': _t.txtPrintArea, + 'Confidential': _t.txtConfidential, + 'Prepared by ': _t.txtPreparedBy + ' ', + 'Page': _t.txtPage, + 'Page %1 of %2': _t.txtPageOf, + 'Pages': _t.txtPages, + 'Date': _t.txtDate, + 'Time': _t.txtTime, + 'Tab': _t.txtTab, + 'File': _t.txtFile, + 'Column': _t.txtColumn, + 'Row': _t.txtRow, + '%1 of %2': _t.txtByField, + '(All)': _t.txtAll, + 'Values': _t.txtValues, + 'Grand Total': _t.txtGrandTotal, + 'Row Labels': _t.txtRowLbls, + 'Column Labels': _t.txtColLbls, + 'Multi-Select (Alt+S)': _t.txtMultiSelect, + 'Clear Filter (Alt+C)': _t.txtClearFilter, + '(blank)': _t.txtBlank, + 'Group': _t.txtGroup, + 'Seconds': _t.txtSeconds, + 'Minutes': _t.txtMinutes, + 'Hours': _t.txtHours, + 'Days': _t.txtDays, + 'Months': _t.txtMonths, + 'Quarters': _t.txtQuarters, + 'Years': _t.txtYears, + '%1 or %2': _t.txtOr, + 'Qtr': _t.txtQuarter }; styleNames.forEach(function(item){ translate[item] = _t['txtStyle_' + item.replace(/ /g, '_')] || item; From 7117a546c00e61dd6c6c0b3449ea999a86113081 Mon Sep 17 00:00:00 2001 From: SergeyEzhin Date: Mon, 28 Jun 2021 14:40:46 +0300 Subject: [PATCH 12/77] [DE SSE mobile] Fix Bug 47858 --- .../common/mobile/lib/controller/collaboration/Comments.jsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/common/mobile/lib/controller/collaboration/Comments.jsx b/apps/common/mobile/lib/controller/collaboration/Comments.jsx index 86855daed4..43cf13dfe7 100644 --- a/apps/common/mobile/lib/controller/collaboration/Comments.jsx +++ b/apps/common/mobile/lib/controller/collaboration/Comments.jsx @@ -480,6 +480,10 @@ class ViewCommentsController extends Component { } const api = Common.EditorApi.get(); api.asc_changeComment(comment.uid, ascComment); + + if(!this.props.storeApplicationSettings.isResolvedComments) { + this.closeViewCurComments(); + } } } deleteComment (comment) { @@ -591,7 +595,7 @@ class ViewCommentsController extends Component { const _CommentsController = inject('storeAppOptions', 'storeComments', 'users', "storeApplicationSettings")(observer(CommentsController)); const _AddCommentController = inject('storeAppOptions', 'storeComments', 'users')(observer(AddCommentController)); const _EditCommentController = inject('storeComments', 'users')(observer(EditCommentController)); -const _ViewCommentsController = inject('storeComments', 'users')(observer(withTranslation()(ViewCommentsController))); +const _ViewCommentsController = inject('storeComments', 'users', "storeApplicationSettings")(observer(withTranslation()(ViewCommentsController))); export { _CommentsController as CommentsController, From 1fb891a772c7ce80783588ac5477f19ad78edf24 Mon Sep 17 00:00:00 2001 From: JuliaSvinareva Date: Mon, 28 Jun 2021 14:42:17 +0300 Subject: [PATCH 13/77] [DE mobile] Fix bug 50954 --- apps/documenteditor/mobile/src/controller/edit/EditText.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/documenteditor/mobile/src/controller/edit/EditText.jsx b/apps/documenteditor/mobile/src/controller/edit/EditText.jsx index 922458b4b1..b71bd38c51 100644 --- a/apps/documenteditor/mobile/src/controller/edit/EditText.jsx +++ b/apps/documenteditor/mobile/src/controller/edit/EditText.jsx @@ -18,7 +18,7 @@ class EditTextController extends Component { if (isDecrement) { typeof size === 'undefined' ? api.FontSizeOut() : size = Math.max(1, --size); } else { - typeof size === 'undefined' ? api.FontSizeIn : size = Math.min(300, ++size); + typeof size === 'undefined' ? api.FontSizeIn() : size = Math.min(300, ++size); } if (typeof size !== 'undefined') { api.put_TextPrFontSize(size); From 63eb843170379dc90aea3d4c362ecbc73f51b877 Mon Sep 17 00:00:00 2001 From: SergeyEzhin Date: Mon, 28 Jun 2021 15:25:27 +0300 Subject: [PATCH 14/77] [SSE mobile] Fix Bug 49377 --- apps/spreadsheeteditor/mobile/src/view/add/AddFunction.jsx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/apps/spreadsheeteditor/mobile/src/view/add/AddFunction.jsx b/apps/spreadsheeteditor/mobile/src/view/add/AddFunction.jsx index cd5c2db48c..82cc52a230 100644 --- a/apps/spreadsheeteditor/mobile/src/view/add/AddFunction.jsx +++ b/apps/spreadsheeteditor/mobile/src/view/add/AddFunction.jsx @@ -26,6 +26,11 @@ const PageGroup = ({name, type, functions, onInsertFunction, f7router}) => { if (functions[k].group == type) items.push(functions[k]); } + + items.sort(function(a, b) { + return (a.caption.toLowerCase() > b.caption.toLowerCase()) ? 1 : -1; + }); + return ( @@ -88,6 +93,7 @@ const AddFunction = props => { name: name }) } + return ( From cc850adfcc77d0eb6f5d5fbaaf1ea35cde76e483 Mon Sep 17 00:00:00 2001 From: JuliaSvinareva Date: Mon, 28 Jun 2021 15:52:28 +0300 Subject: [PATCH 15/77] [DE PE mobile] Fix bug 50773 --- .../mobile/src/controller/add/AddTable.jsx | 44 ++++++++++--------- .../mobile/src/controller/add/AddOther.jsx | 44 ++++++++++--------- 2 files changed, 46 insertions(+), 42 deletions(-) diff --git a/apps/documenteditor/mobile/src/controller/add/AddTable.jsx b/apps/documenteditor/mobile/src/controller/add/AddTable.jsx index 4a0a4bfd54..7916390a1d 100644 --- a/apps/documenteditor/mobile/src/controller/add/AddTable.jsx +++ b/apps/documenteditor/mobile/src/controller/add/AddTable.jsx @@ -56,28 +56,30 @@ class AddTableController extends Component { api.put_Table(parseInt(size[0]), parseInt(size[1]), type.toString()); } } - ] + ], + on: { + open: () => { + picker = f7.picker.create({ + containerEl: document.getElementById('picker-table-size'), + cols: [ + { + textAlign: 'center', + width: '100%', + values: [1,2,3,4,5,6,7,8,9,10] + }, + { + textAlign: 'center', + width: '100%', + values: [1,2,3,4,5,6,7,8,9,10] + } + ], + toolbar: false, + rotateEffect: true, + value: [3, 3] + }); + } + } }).open(); - dialog.on('opened', () => { - picker = f7.picker.create({ - containerEl: document.getElementById('picker-table-size'), - cols: [ - { - textAlign: 'center', - width: '100%', - values: [1,2,3,4,5,6,7,8,9,10] - }, - { - textAlign: 'center', - width: '100%', - values: [1,2,3,4,5,6,7,8,9,10] - } - ], - toolbar: false, - rotateEffect: true, - value: [3, 3] - }); - }); } render () { diff --git a/apps/presentationeditor/mobile/src/controller/add/AddOther.jsx b/apps/presentationeditor/mobile/src/controller/add/AddOther.jsx index 4ac82cca49..f10cbe1f57 100644 --- a/apps/presentationeditor/mobile/src/controller/add/AddOther.jsx +++ b/apps/presentationeditor/mobile/src/controller/add/AddOther.jsx @@ -64,28 +64,30 @@ class AddOtherController extends Component { api.put_Table(parseInt(size[0]), parseInt(size[1]), undefined, type.toString()); } } - ] + ], + on: { + open: () => { + picker = f7.picker.create({ + containerEl: document.getElementById('picker-table-size'), + cols: [ + { + textAlign: 'center', + width: '100%', + values: [1,2,3,4,5,6,7,8,9,10] + }, + { + textAlign: 'center', + width: '100%', + values: [1,2,3,4,5,6,7,8,9,10] + } + ], + toolbar: false, + rotateEffect: true, + value: [3, 3] + }); + } + } }).open(); - dialog.on('opened', () => { - picker = f7.picker.create({ - containerEl: document.getElementById('picker-table-size'), - cols: [ - { - textAlign: 'center', - width: '100%', - values: [1,2,3,4,5,6,7,8,9,10] - }, - { - textAlign: 'center', - width: '100%', - values: [1,2,3,4,5,6,7,8,9,10] - } - ], - toolbar: false, - rotateEffect: true, - value: [3, 3] - }); - }); } hideAddComment () { From f63dab08274fc5d9d41447039758fa0b3e7f28eb Mon Sep 17 00:00:00 2001 From: Maxim Kadushkin Date: Mon, 28 Jun 2021 17:26:13 +0300 Subject: [PATCH 16/77] [DE] fix skeleton theme colors --- apps/common/main/lib/controller/Themes.js | 3 ++- apps/documenteditor/main/index.html | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/common/main/lib/controller/Themes.js b/apps/common/main/lib/controller/Themes.js index 32373d23b6..64330b04aa 100644 --- a/apps/common/main/lib/controller/Themes.js +++ b/apps/common/main/lib/controller/Themes.js @@ -255,7 +255,8 @@ define([ }, currentThemeId: function () { - return get_ui_theme_name(Common.localStorage.getItem('ui-theme')) || id_default_light_theme; + var t = Common.localStorage.getItem('ui-theme') || Common.localStorage.getItem('ui-theme-id'); + return get_ui_theme_name(t) || id_default_light_theme; }, defaultThemeId: function (type) { diff --git a/apps/documenteditor/main/index.html b/apps/documenteditor/main/index.html index 0f0757a294..71bc2810b0 100644 --- a/apps/documenteditor/main/index.html +++ b/apps/documenteditor/main/index.html @@ -14,7 +14,7 @@ --toolbar-header-document: #2a2a2a; --background-toolbar: #404040; --border-toolbar: #2a2a2a; - --highlight-button-hover: #e0e0e0; + --highlight-button-hover: #555; --highlight-header-button-hover: rgba(255,255,255,.05); --canvas-background: #666666; /*--canvas-content-background: #fff;*/ From b441e301e3c693084a6126044f8bff57547da93b Mon Sep 17 00:00:00 2001 From: Maxim Kadushkin Date: Mon, 28 Jun 2021 17:43:46 +0300 Subject: [PATCH 17/77] [all] locked zoom attribute correction --- apps/common/main/lib/util/htmlutils.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/common/main/lib/util/htmlutils.js b/apps/common/main/lib/util/htmlutils.js index 9277da26ff..36a91080a5 100644 --- a/apps/common/main/lib/util/htmlutils.js +++ b/apps/common/main/lib/util/htmlutils.js @@ -11,8 +11,8 @@ function checkScaling() { "screen and (-webkit-device-pixel-ratio: 2)").matches ) { // don't add zoom for mobile devices - if (!(/android|avantgo|playbook|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent || navigator.vendor || window.opera))) - document.getElementsByTagName('html')[0].setAttribute('style', 'zoom: ' + (1 / window.devicePixelRatio) + ';'); + // if (!(/android|avantgo|playbook|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent || navigator.vendor || window.opera))) + // document.getElementsByTagName('html')[0].setAttribute('style', 'zoom: ' + (1 / window.devicePixelRatio) + ';'); } } From dbf70c662a4a62ea60ac7596ae078b03a2d1d60a Mon Sep 17 00:00:00 2001 From: JuliaSvinareva Date: Mon, 28 Jun 2021 17:45:02 +0300 Subject: [PATCH 18/77] [mobile] Bug 47107 --- apps/documenteditor/mobile/locale/en.json | 22 ++++++++++++++++++- .../src/view/settings/DocumentSettings.jsx | 10 ++++++++- apps/presentationeditor/mobile/locale/en.json | 22 ++++++++++++++++++- .../view/settings/PresentationSettings.jsx | 10 ++++++++- apps/spreadsheeteditor/mobile/locale/en.json | 22 ++++++++++++++++++- .../src/view/settings/SpreadsheetSettings.jsx | 10 ++++++++- 6 files changed, 90 insertions(+), 6 deletions(-) diff --git a/apps/documenteditor/mobile/locale/en.json b/apps/documenteditor/mobile/locale/en.json index 0492ef13d5..4d0ad3a705 100644 --- a/apps/documenteditor/mobile/locale/en.json +++ b/apps/documenteditor/mobile/locale/en.json @@ -340,7 +340,27 @@ "textMarginsW": "Left and right margins are too high for a given page width", "textMarginsH": "Top and bottom margins are too high for a given page height", "textCollaboration": "Collaboration", - "textFindAndReplaceAll": "Find and Replace All" + "textFindAndReplaceAll": "Find and Replace All", + "txtScheme1": "Office", + "txtScheme2": "Grayscale", + "txtScheme3": "Apex", + "txtScheme4": "Aspect", + "txtScheme5": "Civic", + "txtScheme6": "Concourse", + "txtScheme7": "Equity", + "txtScheme8": "Flow", + "txtScheme9": "Foundry", + "txtScheme10": "Median", + "txtScheme11": "Metro", + "txtScheme12": "Module", + "txtScheme13": "Opulent", + "txtScheme14": "Oriel", + "txtScheme15": "Origin", + "txtScheme16": "Paper", + "txtScheme17": "Solstice", + "txtScheme18": "Technic", + "txtScheme19": "Trek", + "txtScheme22": "New Office" }, "Edit": { "textClose": "Close", diff --git a/apps/documenteditor/mobile/src/view/settings/DocumentSettings.jsx b/apps/documenteditor/mobile/src/view/settings/DocumentSettings.jsx index b20ad6c110..89111190b5 100644 --- a/apps/documenteditor/mobile/src/view/settings/DocumentSettings.jsx +++ b/apps/documenteditor/mobile/src/view/settings/DocumentSettings.jsx @@ -162,6 +162,13 @@ const PageDocumentColorSchemes = props => { const _t = t('Settings', {returnObjects: true}); const storeSettings = props.storeDocumentSettings; const allSchemes = storeSettings.allSchemes; + const SchemeNames = [ + _t.txtScheme1, _t.txtScheme2, _t.txtScheme3, _t.txtScheme4, _t.txtScheme5, + _t.txtScheme6, _t.txtScheme7, _t.txtScheme8, _t.txtScheme9, _t.txtScheme10, + _t.txtScheme11, _t.txtScheme12, _t.txtScheme13, _t.txtScheme14, _t.txtScheme15, + _t.txtScheme16, _t.txtScheme17, _t.txtScheme18, _t.txtScheme19, _t.txtScheme20, + _t.txtScheme21, _t.txtScheme22 + ]; return ( @@ -169,8 +176,9 @@ const PageDocumentColorSchemes = props => { { allSchemes ? allSchemes.map((scheme, index) => { + const name = scheme.get_name(); return ( - { if(index !== curScheme) { setScheme(index); diff --git a/apps/presentationeditor/mobile/locale/en.json b/apps/presentationeditor/mobile/locale/en.json index 381d210e97..8b114090e2 100644 --- a/apps/presentationeditor/mobile/locale/en.json +++ b/apps/presentationeditor/mobile/locale/en.json @@ -209,7 +209,27 @@ "textHighlight": "Highlight Results", "textReplace": "Replace", "textNoTextFound": "Text not Found", - "textCollaboration": "Collaboration" + "textCollaboration": "Collaboration", + "txtScheme1": "Office", + "txtScheme2": "Grayscale", + "txtScheme3": "Apex", + "txtScheme4": "Aspect", + "txtScheme5": "Civic", + "txtScheme6": "Concourse", + "txtScheme7": "Equity", + "txtScheme8": "Flow", + "txtScheme9": "Foundry", + "txtScheme10": "Median", + "txtScheme11": "Metro", + "txtScheme12": "Module", + "txtScheme13": "Opulent", + "txtScheme14": "Oriel", + "txtScheme15": "Origin", + "txtScheme16": "Paper", + "txtScheme17": "Solstice", + "txtScheme18": "Technic", + "txtScheme19": "Trek", + "txtScheme22": "New Office" }, "Add": { "textSlide": "Slide", diff --git a/apps/presentationeditor/mobile/src/view/settings/PresentationSettings.jsx b/apps/presentationeditor/mobile/src/view/settings/PresentationSettings.jsx index c8b3455051..b04053ca84 100644 --- a/apps/presentationeditor/mobile/src/view/settings/PresentationSettings.jsx +++ b/apps/presentationeditor/mobile/src/view/settings/PresentationSettings.jsx @@ -38,6 +38,13 @@ const PagePresentationColorSchemes = props => { const _t = t('View.Settings', {returnObjects: true}); const storePresentationSettings = props.storePresentationSettings; const allSchemes = storePresentationSettings.allSchemes; + const SchemeNames = [ + _t.txtScheme1, _t.txtScheme2, _t.txtScheme3, _t.txtScheme4, _t.txtScheme5, + _t.txtScheme6, _t.txtScheme7, _t.txtScheme8, _t.txtScheme9, _t.txtScheme10, + _t.txtScheme11, _t.txtScheme12, _t.txtScheme13, _t.txtScheme14, _t.txtScheme15, + _t.txtScheme16, _t.txtScheme17, _t.txtScheme18, _t.txtScheme19, _t.txtScheme20, + _t.txtScheme21, _t.txtScheme22 + ]; return ( @@ -45,8 +52,9 @@ const PagePresentationColorSchemes = props => { { allSchemes ? allSchemes.map((scheme, index) => { + const name = scheme.get_name(); return ( - { if(index !== curScheme) { setScheme(index); diff --git a/apps/spreadsheeteditor/mobile/locale/en.json b/apps/spreadsheeteditor/mobile/locale/en.json index a5fe600134..ce0f9d7ef7 100644 --- a/apps/spreadsheeteditor/mobile/locale/en.json +++ b/apps/spreadsheeteditor/mobile/locale/en.json @@ -545,7 +545,27 @@ "textValues": "Values", "textNoTextFound": "Text not found", "textReplaceAll": "Replace All", - "textCollaboration": "Collaboration" + "textCollaboration": "Collaboration", + "txtScheme1": "Office", + "txtScheme2": "Grayscale", + "txtScheme3": "Apex", + "txtScheme4": "Aspect", + "txtScheme5": "Civic", + "txtScheme6": "Concourse", + "txtScheme7": "Equity", + "txtScheme8": "Flow", + "txtScheme9": "Foundry", + "txtScheme10": "Median", + "txtScheme11": "Metro", + "txtScheme12": "Module", + "txtScheme13": "Opulent", + "txtScheme14": "Oriel", + "txtScheme15": "Origin", + "txtScheme16": "Paper", + "txtScheme17": "Solstice", + "txtScheme18": "Technic", + "txtScheme19": "Trek", + "txtScheme22": "New Office" } }, "Statusbar": { diff --git a/apps/spreadsheeteditor/mobile/src/view/settings/SpreadsheetSettings.jsx b/apps/spreadsheeteditor/mobile/src/view/settings/SpreadsheetSettings.jsx index 47705562d6..78feb66f40 100644 --- a/apps/spreadsheeteditor/mobile/src/view/settings/SpreadsheetSettings.jsx +++ b/apps/spreadsheeteditor/mobile/src/view/settings/SpreadsheetSettings.jsx @@ -11,6 +11,13 @@ const PageSpreadsheetColorSchemes = props => { const _t = t('View.Settings', {returnObjects: true}); const storeSpreadsheetSettings = props.storeSpreadsheetSettings; const allSchemes = storeSpreadsheetSettings.allSchemes; + const SchemeNames = [ + _t.txtScheme1, _t.txtScheme2, _t.txtScheme3, _t.txtScheme4, _t.txtScheme5, + _t.txtScheme6, _t.txtScheme7, _t.txtScheme8, _t.txtScheme9, _t.txtScheme10, + _t.txtScheme11, _t.txtScheme12, _t.txtScheme13, _t.txtScheme14, _t.txtScheme15, + _t.txtScheme16, _t.txtScheme17, _t.txtScheme18, _t.txtScheme19, _t.txtScheme20, + _t.txtScheme21, _t.txtScheme22 + ]; return ( @@ -18,8 +25,9 @@ const PageSpreadsheetColorSchemes = props => { { allSchemes ? allSchemes.map((scheme, index) => { + const name = scheme.get_name(); return ( - { if(index !== curScheme) { setScheme(index); From ee1ca73fb2df48320aaa059a2c5122a72bdaa90d Mon Sep 17 00:00:00 2001 From: Maxim Kadushkin Date: Mon, 28 Jun 2021 21:01:08 +0300 Subject: [PATCH 19/77] [scaling] correct scaling root selectors --- apps/common/main/lib/util/htmlutils.js | 18 ++++++++--- apps/common/main/lib/util/utils.js | 43 +++++++++++++++++++++----- 2 files changed, 49 insertions(+), 12 deletions(-) diff --git a/apps/common/main/lib/util/htmlutils.js b/apps/common/main/lib/util/htmlutils.js index 36a91080a5..ab885cfaf1 100644 --- a/apps/common/main/lib/util/htmlutils.js +++ b/apps/common/main/lib/util/htmlutils.js @@ -1,9 +1,19 @@ function checkScaling() { - var str_mq_150 = "screen and (-webkit-min-device-pixel-ratio: 1.5) and (-webkit-max-device-pixel-ratio: 1.9), " + - "screen and (min-resolution: 1.5dppx) and (max-resolution: 1.9dppx)"; - if ( window.matchMedia(str_mq_150).matches ) { - document.body.classList.add('pixel-ratio__1_5'); + var matches = { + 'pixel-ratio__1_25': "screen and (-webkit-min-device-pixel-ratio: 1.25) and (-webkit-max-device-pixel-ratio: 1.49), " + + "screen and (min-resolution: 1.25dppx) and (max-resolution: 1.49dppx)", + 'pixel-ratio__1_5': "screen and (-webkit-min-device-pixel-ratio: 1.5) and (-webkit-max-device-pixel-ratio: 1.74), " + + "screen and (min-resolution: 1.5dppx) and (max-resolution: 1.74dppx)", + 'pixel-ratio__1_75': "screen and (-webkit-min-device-pixel-ratio: 1.75) and (-webkit-max-device-pixel-ratio: 1.99), " + + "screen and (min-resolution: 1.75dppx) and (max-resolution: 1.99dppx)", + }; + + for (var c in matches) { + if ( window.matchMedia(matches[c]).matches ) { + document.body.classList.add(c); + break; + } } if ( !window.matchMedia("screen and (-webkit-device-pixel-ratio: 1.5)," + diff --git a/apps/common/main/lib/util/utils.js b/apps/common/main/lib/util/utils.js index ec6f0c9756..bedc085708 100644 --- a/apps/common/main/lib/util/utils.js +++ b/apps/common/main/lib/util/utils.js @@ -136,29 +136,56 @@ var utils = new(function() { scale = window.AscCommon.checkDeviceScale(); AscCommon.correctApplicationScale(scale); } else { - var str_mq_150 = "screen and (-webkit-min-device-pixel-ratio: 1.5) and (-webkit-max-device-pixel-ratio: 1.9), " + - "screen and (min-resolution: 1.5dppx) and (max-resolution: 1.9dppx)"; + var str_mq_125 = "screen and (-webkit-min-device-pixel-ratio: 1.25) and (-webkit-max-device-pixel-ratio: 1.49), " + + "screen and (min-resolution: 1.25dppx) and (max-resolution: 1.49dppx)"; + var str_mq_150 = "screen and (-webkit-min-device-pixel-ratio: 1.5) and (-webkit-max-device-pixel-ratio: 1.74), " + + "screen and (min-resolution: 1.5dppx) and (max-resolution: 1.74dppx)"; + var str_mq_175 = "screen and (-webkit-min-device-pixel-ratio: 1.75) and (-webkit-max-device-pixel-ratio: 1.99), " + + "screen and (min-resolution: 1.75dppx) and (max-resolution: 1.99dppx)"; var str_mq_200 = "screen and (-webkit-min-device-pixel-ratio: 2), " + "screen and (min-resolution: 2dppx), screen and (min-resolution: 192dpi)"; + if ( window.matchMedia(str_mq_125).matches ) { + scale.devicePixelRatio = 1.5; + } else if ( window.matchMedia(str_mq_150).matches ) { scale.devicePixelRatio = 1.5; } else + if ( window.matchMedia(str_mq_175).matches ) { + scale.devicePixelRatio = 1.75; + } else if ( window.matchMedia(str_mq_200).matches ) scale.devicePixelRatio = 2; else scale.devicePixelRatio = 1; } var $root = $(document.body); - if ( scale.devicePixelRatio < 1.5 ) { - $root.removeClass('pixel-ratio__1_5 pixel-ratio__2'); + var classes = document.body.className; + var clear_list = classes.replace(/pixel-ratio__[\w-]+/gi,'').trim(); + if ( scale.devicePixelRatio < 1.25 ) { + if ( /pixel-ratio__/.test(classes) ) { + document.body.className = clear_list; + } } else - if ( !(scale.devicePixelRatio < 1.5) && scale.devicePixelRatio < 2 ) { - $root.removeClass('pixel-ratio__2'); - $root.addClass('pixel-ratio__1_5'); + if ( scale.devicePixelRatio < 1.5 ) { + if ( !/pixel-ratio__1_25/.test(classes) ) { + document.body.className = clear_list + ' pixel-ratio__1_25'; + } + } else + if ( scale.devicePixelRatio < 1.75 ) { + if ( !/pixel-ratio__1_5/.test(classes) ) { + document.body.className = clear_list + ' pixel-ratio__1_5'; + } + } else + if ( !(scale.devicePixelRatio < 1.75) && scale.devicePixelRatio < 2 ) { + if ( !/pixel-ratio__1_75/.test(classes) ) { + document.body.className = clear_list + ' pixel-ratio__1_75'; + } } else { $root.addClass('pixel-ratio__2'); - $root.removeClass('pixel-ratio__1_5'); + if ( !/pixel-ratio__2/.test(classes) ) { + document.body.className = clear_list + ' pixel-ratio__2'; + } } me.zoom = scale.correct ? scale.zoom : 1; From e6c18fb05cfed2ba8096c0ed5b0e31ecb17be0ab Mon Sep 17 00:00:00 2001 From: evgenykatyshev Date: Tue, 29 Jun 2021 13:08:27 +0300 Subject: [PATCH 20/77] Update scroll colors and canvas background --- apps/common/main/resources/less/colors-table-dark.less | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/common/main/resources/less/colors-table-dark.less b/apps/common/main/resources/less/colors-table-dark.less index 7ebf68cad2..2be210f128 100644 --- a/apps/common/main/resources/less/colors-table-dark.less +++ b/apps/common/main/resources/less/colors-table-dark.less @@ -56,7 +56,7 @@ // Canvas - --canvas-background: #666; + --canvas-background: #555; --canvas-content-background: #fff; --canvas-page-border: #555; @@ -87,8 +87,8 @@ --canvas-scroll-thumb-hover: #999; --canvas-scroll-thumb-pressed: #adadad; --canvas-scroll-thumb-border: #2a2a2a; - --canvas-scroll-thumb-border-hover: #2a2a2a; - --canvas-scroll-thumb-border-pressed: #2a2a2a; + --canvas-scroll-thumb-border-hover: #999; + --canvas-scroll-thumb-border-pressed: #adadad; --canvas-scroll-arrow: #999; --canvas-scroll-arrow-hover: #404040; --canvas-scroll-arrow-pressed: #404040; From 5a0cc476d600067f7368183099cfcb382be551da Mon Sep 17 00:00:00 2001 From: ShimaginAndrey Date: Tue, 29 Jun 2021 16:02:49 +0300 Subject: [PATCH 21/77] [SSE] Add dialog Sorting --- apps/spreadsheeteditor/mobile/locale/en.json | 5 +++ .../mobile/src/controller/add/AddFilter.jsx | 37 ++++++++++++++++++- .../mobile/src/less/app.less | 12 ++++++ 3 files changed, 52 insertions(+), 2 deletions(-) diff --git a/apps/spreadsheeteditor/mobile/locale/en.json b/apps/spreadsheeteditor/mobile/locale/en.json index eee0461b75..e4fd86005f 100644 --- a/apps/spreadsheeteditor/mobile/locale/en.json +++ b/apps/spreadsheeteditor/mobile/locale/en.json @@ -272,6 +272,11 @@ "textInvalidRange": "ERROR! Invalid cells range", "textSortAndFilter": "Sort and Filter", "textFilter": "Filter", + "txtSorting": "Sorting", + "txtExpandSort": "The data next to the selection will not be sorted. Do you want to expand the selection to include the adjacent data or continue with sorting the currently selected cells only?", + "txtExpand": "Expand and sort", + "txtSortSelected": "Sort selected", + "textCancel": "Cancel", "textComment": "Comment" }, "Edit" : { diff --git a/apps/spreadsheeteditor/mobile/src/controller/add/AddFilter.jsx b/apps/spreadsheeteditor/mobile/src/controller/add/AddFilter.jsx index ef9a13408a..917e46388e 100644 --- a/apps/spreadsheeteditor/mobile/src/controller/add/AddFilter.jsx +++ b/apps/spreadsheeteditor/mobile/src/controller/add/AddFilter.jsx @@ -1,4 +1,6 @@ import React, {Component} from 'react'; +import { f7 } from 'framework7-react'; +import { withTranslation } from 'react-i18next'; import AddSortAndFilter from '../../view/add/AddFilter'; @@ -7,6 +9,7 @@ class AddFilterController extends Component { super(props); this.onInsertFilter = this.onInsertFilter.bind(this); this.uncheckedFilter = this.uncheckedFilter.bind(this); + this.onInsertSort = this.onInsertSort.bind(this); const api = Common.EditorApi.get(); @@ -38,7 +41,37 @@ class AddFilterController extends Component { onInsertSort (type) { const api = Common.EditorApi.get(); - api.asc_sortColFilter(type == 'down' ? Asc.c_oAscSortOptions.Ascending : Asc.c_oAscSortOptions.Descending, '', undefined, undefined, true); + const { t } = this.props; + const _t = t('View.Add', {returnObjects: true}); + + let typeCheck = type == 'down' ? Asc.c_oAscSortOptions.Ascending : Asc.c_oAscSortOptions.Descending; + if( api.asc_sortCellsRangeExpand()) { + f7.dialog.create({ + title: _t.txtSorting, + text: _t.txtExpandSort, + buttons: [ + { + text: _t.txtExpand, + onClick: () => { + api.asc_sortColFilter(typeCheck, '', undefined, undefined, true); + f7.popup.close('.add-popup'); + } + }, + { + text: _t.txtSortSelected, + onClick: () => { + api.asc_sortColFilter(typeCheck, '', undefined, undefined); + f7.popup.close('.add-popup'); + } + }, + { + text: _t.textCancel + } + ], + cssClass: 'type-sort' + }).open(); + } else + api.asc_sortColFilter(typeCheck, '', undefined, undefined, api.asc_sortCellsRangeExpand() !== null); } onInsertFilter (checked) { @@ -64,4 +97,4 @@ class AddFilterController extends Component { } } -export default AddFilterController; \ No newline at end of file +export default withTranslation()(AddFilterController); \ No newline at end of file diff --git a/apps/spreadsheeteditor/mobile/src/less/app.less b/apps/spreadsheeteditor/mobile/src/less/app.less index 5338e8a1ff..281be641d9 100644 --- a/apps/spreadsheeteditor/mobile/src/less/app.less +++ b/apps/spreadsheeteditor/mobile/src/less/app.less @@ -83,4 +83,16 @@ width: 25px; } } +} + +.type-sort{ + + .dialog-inner{ + text-align: center; + } + .dialog-buttons{ + height: 130px; + flex-direction: column; + justify-content: space-between; + } } \ No newline at end of file From cf2ff32462c0e9a3f6b8abad99c68a0cf151e016 Mon Sep 17 00:00:00 2001 From: ShimaginAndrey Date: Tue, 29 Jun 2021 18:38:04 +0300 Subject: [PATCH 22/77] Correct dialog window --- .../mobile/src/controller/add/AddFilter.jsx | 9 ++++++--- apps/spreadsheeteditor/mobile/src/less/app.less | 12 ------------ 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/apps/spreadsheeteditor/mobile/src/controller/add/AddFilter.jsx b/apps/spreadsheeteditor/mobile/src/controller/add/AddFilter.jsx index 917e46388e..634b8d32df 100644 --- a/apps/spreadsheeteditor/mobile/src/controller/add/AddFilter.jsx +++ b/apps/spreadsheeteditor/mobile/src/controller/add/AddFilter.jsx @@ -44,6 +44,9 @@ class AddFilterController extends Component { const { t } = this.props; const _t = t('View.Add', {returnObjects: true}); + f7.popup.close('.add-popup'); + f7.popover.close('#add-popover'); + let typeCheck = type == 'down' ? Asc.c_oAscSortOptions.Ascending : Asc.c_oAscSortOptions.Descending; if( api.asc_sortCellsRangeExpand()) { f7.dialog.create({ @@ -52,23 +55,23 @@ class AddFilterController extends Component { buttons: [ { text: _t.txtExpand, + bold: true, onClick: () => { api.asc_sortColFilter(typeCheck, '', undefined, undefined, true); - f7.popup.close('.add-popup'); } }, { text: _t.txtSortSelected, + bold: true, onClick: () => { api.asc_sortColFilter(typeCheck, '', undefined, undefined); - f7.popup.close('.add-popup'); } }, { text: _t.textCancel } ], - cssClass: 'type-sort' + verticalButtons: true, }).open(); } else api.asc_sortColFilter(typeCheck, '', undefined, undefined, api.asc_sortCellsRangeExpand() !== null); diff --git a/apps/spreadsheeteditor/mobile/src/less/app.less b/apps/spreadsheeteditor/mobile/src/less/app.less index 281be641d9..a3bcb96d93 100644 --- a/apps/spreadsheeteditor/mobile/src/less/app.less +++ b/apps/spreadsheeteditor/mobile/src/less/app.less @@ -84,15 +84,3 @@ } } } - -.type-sort{ - - .dialog-inner{ - text-align: center; - } - .dialog-buttons{ - height: 130px; - flex-direction: column; - justify-content: space-between; - } -} \ No newline at end of file From 2887aa1b06e7147bf820b7ce92e2501e67fdae43 Mon Sep 17 00:00:00 2001 From: JuliaSvinareva Date: Tue, 29 Jun 2021 22:03:37 +0300 Subject: [PATCH 23/77] [mobile] Fix bug 47933, fix context menu in comment mode --- .../mobile/src/controller/ContextMenu.jsx | 40 +++++++++++++++---- .../mobile/src/controller/ContextMenu.jsx | 15 ++++++- .../mobile/src/controller/ContextMenu.jsx | 22 ++++++---- 3 files changed, 60 insertions(+), 17 deletions(-) diff --git a/apps/documenteditor/mobile/src/controller/ContextMenu.jsx b/apps/documenteditor/mobile/src/controller/ContextMenu.jsx index 54d0b7c63d..d53bec6bb5 100644 --- a/apps/documenteditor/mobile/src/controller/ContextMenu.jsx +++ b/apps/documenteditor/mobile/src/controller/ContextMenu.jsx @@ -11,7 +11,9 @@ import EditorUIController from '../lib/patch'; @inject ( stores => ({ isEdit: stores.storeAppOptions.isEdit, + canComments: stores.storeAppOptions.canComments, canViewComments: stores.storeAppOptions.canViewComments, + canCoAuthoring: stores.storeAppOptions.canCoAuthoring, canReview: stores.storeAppOptions.canReview, users: stores.users, isDisconnected: stores.users.isDisconnected @@ -216,12 +218,35 @@ class ContextMenu extends ContextMenuController { } else { const { t } = this.props; const _t = t("ContextMenu", {returnObjects: true}); - const { canViewComments } = this.props; + const { canViewComments, canCoAuthoring, canComments } = this.props; const api = Common.EditorApi.get(); const stack = api.getSelectedElements(); const canCopy = api.can_CopyCut(); + let isText = false, + isObject = false, + isLink = false, + locked = false; + + stack.forEach(item => { + const objectType = item.get_ObjectType(), + objectValue = item.get_ObjectValue(); + if ( objectType == Asc.c_oAscTypeSelectElement.Header ) { + locked = objectValue.get_Locked(); + } else + if ( objectType == Asc.c_oAscTypeSelectElement.Paragraph ) { + locked = objectValue.get_Locked(); + isText = true; + } else + if ( objectType == Asc.c_oAscTypeSelectElement.Image || objectType == Asc.c_oAscTypeSelectElement.Table) { + locked = objectValue.get_Locked(); + isObject = true; + } else if ( objectType == Asc.c_oAscTypeSelectElement.Hyperlink ) { + isLink = true; + } + }); + let itemsIcon = [], itemsText = []; @@ -239,13 +264,12 @@ class ContextMenu extends ContextMenuController { }); } - let isLink = false; - stack.forEach(item => { - const objectType = item.get_ObjectType(); - if ( objectType === Asc.c_oAscTypeSelectElement.Hyperlink ) { - isLink = true; - } - }); + if (api.can_AddQuotedComment() !== false && canCoAuthoring && canComments && !locked && !(!isText && isObject)) { + itemsText.push({ + caption: _t.menuAddComment, + event: 'addcomment' + }); + } if ( isLink ) { itemsText.push({ diff --git a/apps/presentationeditor/mobile/src/controller/ContextMenu.jsx b/apps/presentationeditor/mobile/src/controller/ContextMenu.jsx index 99ed87b06b..b24854c41a 100644 --- a/apps/presentationeditor/mobile/src/controller/ContextMenu.jsx +++ b/apps/presentationeditor/mobile/src/controller/ContextMenu.jsx @@ -11,7 +11,9 @@ import EditorUIController from '../lib/patch'; @inject ( stores => ({ isEdit: stores.storeAppOptions.isEdit, + canComments: stores.storeAppOptions.canComments, canViewComments: stores.storeAppOptions.canViewComments, + canCoAuthoring: stores.storeAppOptions.canCoAuthoring, users: stores.users, isDisconnected: stores.users.isDisconnected })) @@ -198,7 +200,7 @@ class ContextMenu extends ContextMenuController { const { t } = this.props; const _t = t("ContextMenu", { returnObjects: true }); - const { canViewComments, isDisconnected } = this.props; + const { canViewComments, canCoAuthoring, canComments } = this.props; const api = Common.EditorApi.get(); const stack = api.getSelectedElements(); @@ -214,11 +216,13 @@ class ContextMenu extends ContextMenuController { isShape = false, isLink = false, isSlide = false, - isObject = false; + isObject, + locked = false; stack.forEach(item => { const objectType = item.get_ObjectType(), objectValue = item.get_ObjectValue(); + locked = typeof objectValue.get_Locked === 'function' ? objectValue.get_Locked() : false; if (objectType == Asc.c_oAscTypeSelectElement.Paragraph) { isText = true; @@ -252,6 +256,13 @@ class ContextMenu extends ContextMenuController { }); } + if (!isChart && api.can_AddQuotedComment() !== false && canCoAuthoring && canComments && !locked) { + itemsText.push({ + caption: _t.menuAddComment, + event: 'addcomment' + }); + } + if (isLink) { itemsText.push({ caption: _t.menuOpenLink, diff --git a/apps/spreadsheeteditor/mobile/src/controller/ContextMenu.jsx b/apps/spreadsheeteditor/mobile/src/controller/ContextMenu.jsx index 15462d90b0..436ccdd7c5 100644 --- a/apps/spreadsheeteditor/mobile/src/controller/ContextMenu.jsx +++ b/apps/spreadsheeteditor/mobile/src/controller/ContextMenu.jsx @@ -11,7 +11,9 @@ import EditorUIController from '../lib/patch'; @inject ( stores => ({ isEdit: stores.storeAppOptions.isEdit, + canComments: stores.storeAppOptions.canComments, canViewComments: stores.storeAppOptions.canViewComments, + canCoAuthoring: stores.storeAppOptions.canCoAuthoring, users: stores.users, isDisconnected: stores.users.isDisconnected, storeSheets: stores.sheets @@ -175,7 +177,7 @@ class ContextMenu extends ContextMenuController { if (isEdit && EditorUIController.ContextMenu) { return EditorUIController.ContextMenu.mapMenuItems(this); } else { - const {canViewComments } = this.props; + const {canViewComments, canCoAuthoring, canComments } = this.props; const api = Common.EditorApi.get(); const cellinfo = api.asc_getCellInfo(); @@ -199,12 +201,11 @@ class ContextMenu extends ContextMenuController { case Asc.c_oAscSelectionType.RangeShapeText: istextshapemenu = true; break; } - if (iscellmenu || istextchartmenu || istextshapemenu) { - itemsIcon.push({ - event: 'copy', - icon: 'icon-copy' - }); - } + itemsIcon.push({ + event: 'copy', + icon: 'icon-copy' + }); + if (iscellmenu && cellinfo.asc_getHyperlink()) { itemsText.push({ caption: _t.menuOpenLink, @@ -218,6 +219,13 @@ class ContextMenu extends ContextMenuController { }); } + if (iscellmenu && !api.isCellEdited && canCoAuthoring && canComments && !isComments) { + itemsText.push({ + caption: _t.menuAddComment, + event: 'addcomment' + }); + } + return itemsIcon.concat(itemsText); } } From 52d179153b6726b0148bedfc6b4a7c102ba5731c Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Wed, 30 Jun 2021 21:04:25 +0300 Subject: [PATCH 24/77] Always use user info parser --- apps/documenteditor/main/app/controller/Main.js | 2 +- apps/presentationeditor/main/app/controller/Main.js | 2 +- apps/spreadsheeteditor/main/app/controller/Main.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/documenteditor/main/app/controller/Main.js b/apps/documenteditor/main/app/controller/Main.js index 1a3e619b75..307d0a51f8 100644 --- a/apps/documenteditor/main/app/controller/Main.js +++ b/apps/documenteditor/main/app/controller/Main.js @@ -1349,7 +1349,7 @@ define([ this.appOptions.canUseReviewPermissions = this.appOptions.canLicense && (!!this.permissions.reviewGroups || this.editorConfig.customization && this.editorConfig.customization.reviewPermissions && (typeof (this.editorConfig.customization.reviewPermissions) == 'object')); this.appOptions.canUseCommentPermissions = this.appOptions.canLicense && !!this.permissions.commentGroups; - AscCommon.UserInfoParser.setParser(this.appOptions.canUseReviewPermissions || this.appOptions.canUseCommentPermissions); + AscCommon.UserInfoParser.setParser(true); AscCommon.UserInfoParser.setCurrentName(this.appOptions.user.fullname); this.appOptions.canUseReviewPermissions && AscCommon.UserInfoParser.setReviewPermissions(this.permissions.reviewGroups, this.editorConfig.customization.reviewPermissions); this.appOptions.canUseCommentPermissions && AscCommon.UserInfoParser.setCommentPermissions(this.permissions.commentGroups); diff --git a/apps/presentationeditor/main/app/controller/Main.js b/apps/presentationeditor/main/app/controller/Main.js index 2cbff6ff15..8b1de3e594 100644 --- a/apps/presentationeditor/main/app/controller/Main.js +++ b/apps/presentationeditor/main/app/controller/Main.js @@ -1060,7 +1060,7 @@ define([ this.appOptions.canUseReviewPermissions = this.appOptions.canLicense && (!!this.permissions.reviewGroups || this.appOptions.canLicense && this.editorConfig.customization && this.editorConfig.customization.reviewPermissions && (typeof (this.editorConfig.customization.reviewPermissions) == 'object')); this.appOptions.canUseCommentPermissions = this.appOptions.canLicense && !!this.permissions.commentGroups; - AscCommon.UserInfoParser.setParser(this.appOptions.canUseReviewPermissions || this.appOptions.canUseCommentPermissions); + AscCommon.UserInfoParser.setParser(true); AscCommon.UserInfoParser.setCurrentName(this.appOptions.user.fullname); this.appOptions.canUseReviewPermissions && AscCommon.UserInfoParser.setReviewPermissions(this.permissions.reviewGroups, this.editorConfig.customization.reviewPermissions); this.appOptions.canUseCommentPermissions && AscCommon.UserInfoParser.setCommentPermissions(this.permissions.commentGroups); diff --git a/apps/spreadsheeteditor/main/app/controller/Main.js b/apps/spreadsheeteditor/main/app/controller/Main.js index 6ee4976a2b..d6cea0b00a 100644 --- a/apps/spreadsheeteditor/main/app/controller/Main.js +++ b/apps/spreadsheeteditor/main/app/controller/Main.js @@ -1098,7 +1098,7 @@ define([ this.appOptions.canUseReviewPermissions = this.appOptions.canLicense && (!!this.permissions.reviewGroups || this.appOptions.canLicense && this.editorConfig.customization && this.editorConfig.customization.reviewPermissions && (typeof (this.editorConfig.customization.reviewPermissions) == 'object')); this.appOptions.canUseCommentPermissions = this.appOptions.canLicense && !!this.permissions.commentGroups; - AscCommon.UserInfoParser.setParser(this.appOptions.canUseReviewPermissions || this.appOptions.canUseCommentPermissions); + AscCommon.UserInfoParser.setParser(true); AscCommon.UserInfoParser.setCurrentName(this.appOptions.user.fullname); this.appOptions.canUseReviewPermissions && AscCommon.UserInfoParser.setReviewPermissions(this.permissions.reviewGroups, this.editorConfig.customization.reviewPermissions); this.appOptions.canUseCommentPermissions && AscCommon.UserInfoParser.setCommentPermissions(this.permissions.commentGroups); From a2172f924d2a24ac34f1d81ae3202bf773a43e64 Mon Sep 17 00:00:00 2001 From: ShimaginAndrey Date: Thu, 1 Jul 2021 12:52:01 +0300 Subject: [PATCH 25/77] Common.Utils.UserInfoParser -> AscCommon.UserInfoParser --- apps/common/mobile/lib/controller/collaboration/Review.jsx | 6 +++--- apps/documenteditor/mobile/src/controller/ContextMenu.jsx | 2 +- .../mobile/src/controller/settings/DocumentInfo.jsx | 2 +- .../mobile/src/controller/ContextMenu.jsx | 2 +- .../mobile/src/controller/settings/PresentationInfo.jsx | 2 +- .../spreadsheeteditor/mobile/src/controller/ContextMenu.jsx | 2 +- .../mobile/src/controller/settings/SpreadsheetInfo.jsx | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/apps/common/mobile/lib/controller/collaboration/Review.jsx b/apps/common/mobile/lib/controller/collaboration/Review.jsx index 6f212ef940..a8769709cd 100644 --- a/apps/common/mobile/lib/controller/collaboration/Review.jsx +++ b/apps/common/mobile/lib/controller/collaboration/Review.jsx @@ -139,7 +139,7 @@ class ReviewChange extends Component { if (this.appConfig && this.appConfig.canUseReviewPermissions) { const permissions = this.appConfig.customization.reviewPermissions; let arr = []; - const groups = Common.Utils.UserInfoParser.getParsedGroups(Common.Utils.UserInfoParser.getCurrentName()); + const groups = AscCommon.UserInfoParser.canEditReview(AscCommon.UserInfoParser.getCurrentName()); groups && groups.forEach(function(group) { const item = permissions[group.trim()]; item && (arr = arr.concat(item)); @@ -159,7 +159,7 @@ class ReviewChange extends Component { return arr; } checkUserGroups (username) { - const groups = Common.Utils.UserInfoParser.getParsedGroups(username); + const groups = AscCommon.UserInfoParser.canEditReview(username); return this.currentUserGroups && groups && (this.intersection(this.currentUserGroups, (groups.length>0) ? groups : [""]).length>0); } dateToLocaleTimeString (date) { @@ -496,7 +496,7 @@ class ReviewChange extends Component { change = { date: arrChangeReview[0].date, user: arrChangeReview[0].user, - userName: Common.Utils.String.htmlEncode(Common.Utils.UserInfoParser.getParsedName(arrChangeReview[0].user)), + userName: Common.Utils.String.htmlEncode(AscCommon.UserInfoParser.getParsedName(arrChangeReview[0].user)), color: arrChangeReview[0].userColor.get_hex(), text: arrChangeReview[0].changeText, initials: this.props.users.getInitials(arrChangeReview[0].user), diff --git a/apps/documenteditor/mobile/src/controller/ContextMenu.jsx b/apps/documenteditor/mobile/src/controller/ContextMenu.jsx index d53bec6bb5..c205270ce6 100644 --- a/apps/documenteditor/mobile/src/controller/ContextMenu.jsx +++ b/apps/documenteditor/mobile/src/controller/ContextMenu.jsx @@ -36,7 +36,7 @@ class ContextMenu extends ContextMenuController { getUserName(id) { const user = this.props.users.searchUserByCurrentId(id); - return Common.Utils.UserInfoParser.getParsedName(user.asc_getUserName()); + return AscCommon.UserInfoParser.getParsedName(user.asc_getUserName()); } componentWillUnmount() { diff --git a/apps/documenteditor/mobile/src/controller/settings/DocumentInfo.jsx b/apps/documenteditor/mobile/src/controller/settings/DocumentInfo.jsx index 53ceb4ab3a..32fd55220f 100644 --- a/apps/documenteditor/mobile/src/controller/settings/DocumentInfo.jsx +++ b/apps/documenteditor/mobile/src/controller/settings/DocumentInfo.jsx @@ -54,7 +54,7 @@ class DocumentInfoController extends Component { let valueModifiedBy = this.docProps.asc_getLastModifiedBy(); if (valueModifiedBy) { - return Common.Utils.UserInfoParser.getParsedName(valueModifiedBy); + return AscCommon.UserInfoParser.getParsedName(valueModifiedBy); } } diff --git a/apps/presentationeditor/mobile/src/controller/ContextMenu.jsx b/apps/presentationeditor/mobile/src/controller/ContextMenu.jsx index b24854c41a..3fbdd65668 100644 --- a/apps/presentationeditor/mobile/src/controller/ContextMenu.jsx +++ b/apps/presentationeditor/mobile/src/controller/ContextMenu.jsx @@ -33,7 +33,7 @@ class ContextMenu extends ContextMenuController { getUserName(id) { const user = this.props.users.searchUserByCurrentId(id); - return Common.Utils.UserInfoParser.getParsedName(user.asc_getUserName()); + return AscCommon.UserInfoParser.getParsedName(user.asc_getUserName()); } componentWillUnmount() { diff --git a/apps/presentationeditor/mobile/src/controller/settings/PresentationInfo.jsx b/apps/presentationeditor/mobile/src/controller/settings/PresentationInfo.jsx index eea17514a0..688c762714 100644 --- a/apps/presentationeditor/mobile/src/controller/settings/PresentationInfo.jsx +++ b/apps/presentationeditor/mobile/src/controller/settings/PresentationInfo.jsx @@ -49,7 +49,7 @@ class PresentationInfoController extends Component { let valueModifiedBy = this.docProps.asc_getLastModifiedBy(); if (valueModifiedBy) { - return Common.Utils.UserInfoParser.getParsedName(valueModifiedBy); + return AscCommon.UserInfoParser.getParsedName(valueModifiedBy); } } diff --git a/apps/spreadsheeteditor/mobile/src/controller/ContextMenu.jsx b/apps/spreadsheeteditor/mobile/src/controller/ContextMenu.jsx index 436ccdd7c5..4af867c16e 100644 --- a/apps/spreadsheeteditor/mobile/src/controller/ContextMenu.jsx +++ b/apps/spreadsheeteditor/mobile/src/controller/ContextMenu.jsx @@ -34,7 +34,7 @@ class ContextMenu extends ContextMenuController { getUserName(id) { const user = this.props.users.searchUserByCurrentId(id); - return Common.Utils.UserInfoParser.getParsedName(user.asc_getUserName()); + return AscCommon.UserInfoParser.getParsedName(user.asc_getUserName()); } componentWillUnmount() { diff --git a/apps/spreadsheeteditor/mobile/src/controller/settings/SpreadsheetInfo.jsx b/apps/spreadsheeteditor/mobile/src/controller/settings/SpreadsheetInfo.jsx index a3325b3074..37c38b3b0b 100644 --- a/apps/spreadsheeteditor/mobile/src/controller/settings/SpreadsheetInfo.jsx +++ b/apps/spreadsheeteditor/mobile/src/controller/settings/SpreadsheetInfo.jsx @@ -57,7 +57,7 @@ class SpreadsheetInfoController extends Component { getModifiedBy() { let valueModifiedBy = this.docProps.asc_getLastModifiedBy(); if (valueModifiedBy) { - return Common.Utils.UserInfoParser.getParsedName(valueModifiedBy); + return AscCommon.UserInfoParser.getParsedName(valueModifiedBy); } return null; } From 39b365a370eb5aeed16b87e19be2b8467e387e9c Mon Sep 17 00:00:00 2001 From: Maxim Kadushkin Date: Thu, 1 Jul 2021 16:58:57 +0300 Subject: [PATCH 26/77] [all] changed scroller theme colors --- .../resources/less/colors-table-ie-fix.less | 3 +++ .../main/resources/less/colors-table.less | 2 ++ apps/common/main/resources/less/scroller.less | 24 +++++++++---------- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/apps/common/main/resources/less/colors-table-ie-fix.less b/apps/common/main/resources/less/colors-table-ie-fix.less index eaf133158b..68bde0badf 100644 --- a/apps/common/main/resources/less/colors-table-ie-fix.less +++ b/apps/common/main/resources/less/colors-table-ie-fix.less @@ -49,6 +49,9 @@ @icon-contrast-popover-ie: #fff; @icon-success-ie: #5b9f27; +@canvas-scroll-thumb-hover-ie: #c0c0c0; +@canvas-scroll-thumb-border-hover-ie: #cbcbcb; + @button-header-normal-icon-offset-x-ie: -20px; @button-header-active-icon-offset-x-ie: -20px; @scaled-one-px-value-ie: 1px; diff --git a/apps/common/main/resources/less/colors-table.less b/apps/common/main/resources/less/colors-table.less index 83727731c6..475dbeffb5 100644 --- a/apps/common/main/resources/less/colors-table.less +++ b/apps/common/main/resources/less/colors-table.less @@ -232,3 +232,5 @@ @canvas-background: var(--canvas-background); @canvas-content-background: var(--canvas-content-background); @canvas-page-border: var(--canvas-page-border); +@canvas-scroll-thumb-hover: var(--canvas-scroll-thumb-hover); +@canvas-scroll-thumb-border-hover: var(--canvas-scroll-thumb-border-hover); diff --git a/apps/common/main/resources/less/scroller.less b/apps/common/main/resources/less/scroller.less index 328b0082fb..8a8b768695 100644 --- a/apps/common/main/resources/less/scroller.less +++ b/apps/common/main/resources/less/scroller.less @@ -46,8 +46,8 @@ .hover { .ps-scrollbar-x { &.always-visible-x { - background-color: @border-regular-control-ie; - background-color: @border-regular-control; + background-color: @canvas-scroll-thumb-hover-ie; + background-color: @canvas-scroll-thumb-hover; background-position: center -7px; } } @@ -56,10 +56,10 @@ &.in-scrolling { .ps-scrollbar-x { &.always-visible-x { - background-color: @border-regular-control-ie; - background-color: @border-regular-control; - border-color: @border-regular-control-ie; - border-color: @border-regular-control; + background-color: @canvas-scroll-thumb-hover-ie; + background-color: @canvas-scroll-thumb-hover; + border-color: @canvas-scroll-thumb-border-hover-ie; + border-color: @canvas-scroll-thumb-border-hover; background-position: center -7px; } } @@ -115,8 +115,8 @@ .ps-scrollbar-y { &.always-visible-y { - background-color: @border-regular-control-ie; - background-color: @border-regular-control; + background-color: @canvas-scroll-thumb-hover-ie; + background-color: @canvas-scroll-thumb-hover; background-position: -7px center; } } @@ -128,10 +128,10 @@ .ps-scrollbar-y { &.always-visible-y { - background-color: @border-regular-control-ie; - background-color: @border-regular-control; - border-color: @border-regular-control-ie; - border-color: @border-regular-control; + background-color: @canvas-scroll-thumb-hover-ie; + background-color: @canvas-scroll-thumb-hover; + border-color: @canvas-scroll-thumb-border-hover-ie; + border-color: @canvas-scroll-thumb-border-hover; background-position: -7px center; } } From c1c73e74a1697f83b0e901ef70fcb4f351e3cd79 Mon Sep 17 00:00:00 2001 From: ShimaginAndrey Date: Thu, 1 Jul 2021 18:51:03 +0300 Subject: [PATCH 27/77] Refactoring code --- .../mobile/lib/controller/collaboration/Review.jsx | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/apps/common/mobile/lib/controller/collaboration/Review.jsx b/apps/common/mobile/lib/controller/collaboration/Review.jsx index a8769709cd..98cc0a844d 100644 --- a/apps/common/mobile/lib/controller/collaboration/Review.jsx +++ b/apps/common/mobile/lib/controller/collaboration/Review.jsx @@ -147,20 +147,8 @@ class ReviewChange extends Component { this.currentUserGroups = arr; } } - intersection (arr1, arr2) { //Computes the list of values that are the intersection of all the arrays. - const arr = []; - arr1.forEach((item1) => { - arr2.forEach((item2) => { - if (item1 === item2) { - arr.push(item2); - } - }); - }); - return arr; - } checkUserGroups (username) { - const groups = AscCommon.UserInfoParser.canEditReview(username); - return this.currentUserGroups && groups && (this.intersection(this.currentUserGroups, (groups.length>0) ? groups : [""]).length>0); + return this.currentUserGroups && AscCommon.UserInfoParser.canEditReview(username); } dateToLocaleTimeString (date) { const format = (date) => { From af2d105790257ae2a718d60348f5a7dab76e5817 Mon Sep 17 00:00:00 2001 From: ShimaginAndrey Date: Thu, 1 Jul 2021 19:06:03 +0300 Subject: [PATCH 28/77] Refactoring code v2 --- .../lib/controller/collaboration/Review.jsx | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/apps/common/mobile/lib/controller/collaboration/Review.jsx b/apps/common/mobile/lib/controller/collaboration/Review.jsx index 98cc0a844d..d8a42eaf7c 100644 --- a/apps/common/mobile/lib/controller/collaboration/Review.jsx +++ b/apps/common/mobile/lib/controller/collaboration/Review.jsx @@ -135,21 +135,8 @@ class ReviewChange extends Component { this.onDeleteChange = this.onDeleteChange.bind(this); this.appConfig = props.storeAppOptions; - - if (this.appConfig && this.appConfig.canUseReviewPermissions) { - const permissions = this.appConfig.customization.reviewPermissions; - let arr = []; - const groups = AscCommon.UserInfoParser.canEditReview(AscCommon.UserInfoParser.getCurrentName()); - groups && groups.forEach(function(group) { - const item = permissions[group.trim()]; - item && (arr = arr.concat(item)); - }); - this.currentUserGroups = arr; - } - } - checkUserGroups (username) { - return this.currentUserGroups && AscCommon.UserInfoParser.canEditReview(username); } + dateToLocaleTimeString (date) { const format = (date) => { let strTime, @@ -433,7 +420,7 @@ class ReviewChange extends Component { const userColor = item.get_UserColor(); const goto = (item.get_MoveType() == Asc.c_oAscRevisionsMove.MoveTo || item.get_MoveType() == Asc.c_oAscRevisionsMove.MoveFrom); date = this.dateToLocaleTimeString(date); - const editable = this.appConfig.isReviewOnly && (item.get_UserId() == this.appConfig.user.id) || !this.appConfig.isReviewOnly && (!this.appConfig.canUseReviewPermissions || this.checkUserGroups(item.get_UserName())); + const editable = this.appConfig.isReviewOnly && (item.get_UserId() == this.appConfig.user.id) || !this.appConfig.isReviewOnly && (!this.appConfig.canUseReviewPermissions || AscCommon.UserInfoParser.canEditReview(item.get_UserName())); arr.push({date: date, user: user, userColor: userColor, changeText: changeText, goto: goto, editable: editable}); }); return arr; From 496f5b89f6f5760334cde190773e2df27880a87e Mon Sep 17 00:00:00 2001 From: ShimaginAndrey Date: Thu, 1 Jul 2021 19:21:10 +0300 Subject: [PATCH 29/77] Correct users store --- apps/common/mobile/lib/store/users.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/common/mobile/lib/store/users.js b/apps/common/mobile/lib/store/users.js index 6ca3c140dd..776c6e408f 100644 --- a/apps/common/mobile/lib/store/users.js +++ b/apps/common/mobile/lib/store/users.js @@ -52,7 +52,7 @@ export class storeUsers { } getInitials (name) { - const fio = Common.Utils.UserInfoParser.getParsedName(name).split(' '); + const fio = AscCommon.UserInfoParser.getParsedName(name).split(' '); let initials = fio[0].substring(0, 1).toUpperCase(); for (let i = fio.length-1; i>0; i--) { if (fio[i][0]!=='(' && fio[i][0]!==')') { From 9396f7612570f1e0a04ef001b291794499d3804f Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Fri, 2 Jul 2021 02:06:34 +0300 Subject: [PATCH 30/77] [Mobile] Always use user info parser --- apps/documenteditor/mobile/src/store/appOptions.js | 3 +++ apps/presentationeditor/mobile/src/store/appOptions.js | 3 +++ apps/spreadsheeteditor/mobile/src/store/appOptions.js | 3 +++ 3 files changed, 9 insertions(+) diff --git a/apps/documenteditor/mobile/src/store/appOptions.js b/apps/documenteditor/mobile/src/store/appOptions.js index 82c7c6afcd..ccba86f656 100644 --- a/apps/documenteditor/mobile/src/store/appOptions.js +++ b/apps/documenteditor/mobile/src/store/appOptions.js @@ -84,6 +84,9 @@ export class storeAppOptions { && (!!(config.customization.goback.url) || config.customization.goback.requestClose && this.canRequestClose); this.canBack = this.canBackToFolder === true; this.canPlugins = false; + + AscCommon.UserInfoParser.setParser(true); + AscCommon.UserInfoParser.setCurrentName(this.user.fullname); } setPermissionOptions (document, licType, params, permissions, isSupportEditFeature) { if (params.asc_getRights() !== Asc.c_oRights.Edit) diff --git a/apps/presentationeditor/mobile/src/store/appOptions.js b/apps/presentationeditor/mobile/src/store/appOptions.js index 9fca4e84b2..5678eb8ec8 100644 --- a/apps/presentationeditor/mobile/src/store/appOptions.js +++ b/apps/presentationeditor/mobile/src/store/appOptions.js @@ -61,6 +61,9 @@ export class storeAppOptions { && (!!(config.customization.goback.url) || config.customization.goback.requestClose && this.canRequestClose); this.canBack = this.canBackToFolder === true; this.canPlugins = false; + + AscCommon.UserInfoParser.setParser(true); + AscCommon.UserInfoParser.setCurrentName(this.user.fullname); } setPermissionOptions (document, licType, params, permissions, isSupportEditFeature) { diff --git a/apps/spreadsheeteditor/mobile/src/store/appOptions.js b/apps/spreadsheeteditor/mobile/src/store/appOptions.js index ce4a99ec8f..1d6f303103 100644 --- a/apps/spreadsheeteditor/mobile/src/store/appOptions.js +++ b/apps/spreadsheeteditor/mobile/src/store/appOptions.js @@ -68,6 +68,9 @@ export class storeAppOptions { && (!!(config.customization.goback.url) || config.customization.goback.requestClose && this.canRequestClose); this.canBack = this.canBackToFolder === true; this.canPlugins = false; + + AscCommon.UserInfoParser.setParser(true); + AscCommon.UserInfoParser.setCurrentName(this.user.fullname); } setPermissionOptions (document, licType, params, permissions, isSupportEditFeature) { From 64b8e12ff680460da585f714e39bf2a9968e73c1 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Fri, 2 Jul 2021 14:27:16 +0300 Subject: [PATCH 31/77] [Mobile] Fix user name in comments --- .../lib/view/collaboration/Comments.jsx | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/apps/common/mobile/lib/view/collaboration/Comments.jsx b/apps/common/mobile/lib/view/collaboration/Comments.jsx index d403f8cbb6..23be9fae5b 100644 --- a/apps/common/mobile/lib/view/collaboration/Comments.jsx +++ b/apps/common/mobile/lib/view/collaboration/Comments.jsx @@ -56,7 +56,7 @@ const AddCommentPopup = inject("storeComments")(observer(props => { {Device.android &&
{userInfo.initials}
} -
{userInfo.name}
+
{GetUserName(userInfo.name)}
{setText(event.target.value);}}> @@ -91,7 +91,7 @@ const AddCommentDialog = inject("storeComments")(observer(props => {
${Device.android ? templateInitials : ''} -
${userInfo.name}
+
${GetUserName(userInfo.name)}
@@ -223,7 +223,7 @@ const EditCommentPopup = inject("storeComments")(observer(({storeComments, comme
{comment.userInitials}
}
-
{comment.userName}
+
{GetUserName(comment.userName)}
{comment.date}
@@ -260,7 +260,7 @@ const EditCommentDialog = inject("storeComments")(observer(({storeComments, comm
${Device.android ? templateInitials : ''}
-
${comment.userName}
+
${GetUserName(comment.userName)}
${comment.date}
@@ -352,7 +352,7 @@ const AddReplyPopup = inject("storeComments")(observer(({storeComments, userInfo {Device.android &&
{userInfo.initials}
} -
{userInfo.name}
+
{GetUserName(userInfo.name)}
{setText(event.target.value);}}> @@ -386,7 +386,7 @@ const AddReplyDialog = inject("storeComments")(observer(({storeComments, userInf
${Device.android ? templateInitials : ''} -
${userInfo.name}
+
${GetUserName(userInfo.name)}
@@ -479,7 +479,7 @@ const EditReplyPopup = inject("storeComments")(observer(({storeComments, comment
{reply.userInitials}
}
-
{reply.userName}
+
{GetUserName(reply.userName)}
{reply.date}
@@ -516,7 +516,7 @@ const EditReplyDialog = inject("storeComments")(observer(({storeComments, commen
${Device.android ? templateInitials : ''}
-
${reply.userName}
+
${GetUserName(reply.userName)}
${reply.date}
@@ -663,7 +663,7 @@ const ViewComments = ({storeComments, storeAppOptions, onCommentMenuClick, onRes
{isAndroid &&
{comment.userInitials}
}
-
{comment.userName}
+
{GetUserName(comment.userName)}
{comment.date}
@@ -693,7 +693,7 @@ const ViewComments = ({storeComments, storeAppOptions, onCommentMenuClick, onRes
{isAndroid &&
{reply.userInitials}
}
-
{reply.userName}
+
{GetUserName(reply.userName)}
{reply.date}
@@ -792,7 +792,7 @@ const CommentList = inject("storeComments", "storeAppOptions")(observer(({storeC
{isAndroid &&
{comment.userInitials}
}
-
{comment.userName}
+
{GetUserName(comment.userName)}
{comment.date}
@@ -822,7 +822,7 @@ const CommentList = inject("storeComments", "storeAppOptions")(observer(({storeC
{isAndroid &&
{reply.userInitials}
}
-
{reply.userName}
+
{GetUserName(reply.userName)}
{reply.date}
@@ -929,6 +929,12 @@ const ViewCurrentComments = props => { ) }; +const GetUserName = name => { + return ( + Common.Utils.String.htmlEncode(AscCommon.UserInfoParser.getParsedName(name)) + ) +}; + export { AddComment, EditComment, From 12c0492c90d42af31897f81568e8bee47acb97f4 Mon Sep 17 00:00:00 2001 From: JuliaSvinareva Date: Fri, 2 Jul 2021 15:48:50 +0300 Subject: [PATCH 32/77] [mobile] Fix user name in comments --- .../lib/controller/collaboration/Comments.jsx | 25 ++++++++++++---- apps/common/mobile/lib/store/comments.js | 1 + .../lib/view/collaboration/Comments.jsx | 30 ++++++++----------- 3 files changed, 32 insertions(+), 24 deletions(-) diff --git a/apps/common/mobile/lib/controller/collaboration/Comments.jsx b/apps/common/mobile/lib/controller/collaboration/Comments.jsx index 43cf13dfe7..b9f9d9d5d5 100644 --- a/apps/common/mobile/lib/controller/collaboration/Comments.jsx +++ b/apps/common/mobile/lib/controller/collaboration/Comments.jsx @@ -43,6 +43,11 @@ const dateToLocaleTimeString = (date) => { // MM/dd/yyyy hh:mm AM return (date.getMonth() + 1) + '/' + (date.getDate()) + '/' + date.getFullYear() + ' ' + format(date); }; +const parseUserName = name => { + return ( + Common.Utils.String.htmlEncode(AscCommon.UserInfoParser.getParsedName(name)) + ) +}; //end utils class CommentsController extends Component { @@ -123,10 +128,12 @@ class CommentsController extends Component { ((data.asc_getTime() === '') ? new Date() : new Date(stringUtcToLocalDate(data.asc_getTime()))); let user = this.usersStore.searchUserById(data.asc_getUserId()); + const name = data.asc_getUserName(); changeComment.comment = data.asc_getText(); changeComment.userId = data.asc_getUserId(); - changeComment.userName = data.asc_getUserName(); + changeComment.userName = name; + changeComment.parsedName = parseUserName(name); changeComment.userColor = (user) ? user.asc_getColor() : null; changeComment.resolved = data.asc_getSolved(); changeComment.quote = data.asc_getQuoteText(); @@ -146,15 +153,17 @@ class CommentsController extends Component { user = this.usersStore.searchUserById(data.asc_getReply(i).asc_getUserId()); const userName = data.asc_getReply(i).asc_getUserName(); + const parsedName = parseUserName(userName); replies.push({ ind: i, userId: data.asc_getReply(i).asc_getUserId(), userName: userName, + parsedName: parsedName, userColor: (user) ? user.asc_getColor() : null, date: dateToLocaleTimeString(dateReply), reply: data.asc_getReply(i).asc_getText(), time: dateReply.getTime(), - userInitials: this.usersStore.getInitials(userName), + userInitials: this.usersStore.getInitials(parsedName), editable: this.appOptions.canEditComments || (data.asc_getReply(i).asc_getUserId() === this.curUserId), removable: this.appOptions.canDeleteComments || (data.asc_getReply(i).asc_getUserId() === this.curUserId) }); @@ -172,10 +181,12 @@ class CommentsController extends Component { const user = this.usersStore.searchUserById(data.asc_getUserId()); const groupName = id.substr(0, id.lastIndexOf('_')+1).match(/^(doc|sheet[0-9_]+)_/); const userName = data.asc_getUserName(); + const parsedName = parseUserName(userName); const comment = { uid : id, userId : data.asc_getUserId(), userName : userName, + parsedName : parsedName, userColor : (user) ? user.asc_getColor() : null, date : dateToLocaleTimeString(date), quote : data.asc_getQuoteText(), @@ -185,7 +196,7 @@ class CommentsController extends Component { time : date.getTime(), replies : [], groupName : (groupName && groupName.length>1) ? groupName[1] : null, - userInitials : this.usersStore.getInitials(userName), + userInitials : this.usersStore.getInitials(parsedName), editable : this.appOptions.canEditComments || (data.asc_getUserId() === this.curUserId), removable : this.appOptions.canDeleteComments || (data.asc_getUserId() === this.curUserId) }; @@ -208,15 +219,17 @@ class CommentsController extends Component { ((data.asc_getReply(i).asc_getTime() === '') ? new Date() : new Date(stringUtcToLocalDate(data.asc_getReply(i).asc_getTime()))); const user = this.usersStore.searchUserById(data.asc_getReply(i).asc_getUserId()); const userName = data.asc_getReply(i).asc_getUserName(); + const parsedName = parseUserName(userName); replies.push({ ind : i, userId : data.asc_getReply(i).asc_getUserId(), userName : userName, + parsedName : parsedName, userColor : (user) ? user.asc_getColor() : null, date : dateToLocaleTimeString(date), reply : data.asc_getReply(i).asc_getText(), time : date.getTime(), - userInitials : this.usersStore.getInitials(userName), + userInitials : this.usersStore.getInitials(parsedName), editable : this.appOptions.canEditComments || (data.asc_getReply(i).asc_getUserId() === this.curUserId), removable : this.appOptions.canDeleteComments || (data.asc_getReply(i).asc_getUserId() === this.curUserId) }); @@ -252,7 +265,7 @@ class AddCommentController extends Component { if (!this.currentUser) { this.currentUser = this.props.users.setCurrentUser(this.props.storeAppOptions.user.id); } - const name = this.currentUser.asc_getUserName(); + const name = parseUserName(this.currentUser.asc_getUserName()); return { name: name, initials: this.props.users.getInitials(name), @@ -296,7 +309,7 @@ class EditCommentController extends Component { } getUserInfo () { this.currentUser = this.props.users.currentUser; - const name = this.currentUser.asc_getUserName(); + const name = parseUserName(this.currentUser.asc_getUserName()); return { name: name, initials: this.props.users.getInitials(name), diff --git a/apps/common/mobile/lib/store/comments.js b/apps/common/mobile/lib/store/comments.js index 6d5fc05cc7..5fea1e0574 100644 --- a/apps/common/mobile/lib/store/comments.js +++ b/apps/common/mobile/lib/store/comments.js @@ -70,6 +70,7 @@ export class storeComments { comment.comment = changeComment.comment; comment.userId = changeComment.userId; comment.userName = changeComment.userName; + comment.parsedName = changeComment.parsedName; comment.userColor = changeComment.userColor; comment.resolved = changeComment.resolved; comment.quote = changeComment.quote; diff --git a/apps/common/mobile/lib/view/collaboration/Comments.jsx b/apps/common/mobile/lib/view/collaboration/Comments.jsx index 23be9fae5b..de88658f7e 100644 --- a/apps/common/mobile/lib/view/collaboration/Comments.jsx +++ b/apps/common/mobile/lib/view/collaboration/Comments.jsx @@ -56,7 +56,7 @@ const AddCommentPopup = inject("storeComments")(observer(props => { {Device.android &&
{userInfo.initials}
} -
{GetUserName(userInfo.name)}
+
{userInfo.name}
{setText(event.target.value);}}> @@ -91,7 +91,7 @@ const AddCommentDialog = inject("storeComments")(observer(props => {
${Device.android ? templateInitials : ''} -
${GetUserName(userInfo.name)}
+
${userInfo.name}
@@ -223,7 +223,7 @@ const EditCommentPopup = inject("storeComments")(observer(({storeComments, comme
{comment.userInitials}
}
-
{GetUserName(comment.userName)}
+
{comment.parsedName}
{comment.date}
@@ -260,7 +260,7 @@ const EditCommentDialog = inject("storeComments")(observer(({storeComments, comm
${Device.android ? templateInitials : ''}
-
${GetUserName(comment.userName)}
+
${comment.parsedName}
${comment.date}
@@ -352,7 +352,7 @@ const AddReplyPopup = inject("storeComments")(observer(({storeComments, userInfo {Device.android &&
{userInfo.initials}
} -
{GetUserName(userInfo.name)}
+
{userInfo.name}
{setText(event.target.value);}}> @@ -386,7 +386,7 @@ const AddReplyDialog = inject("storeComments")(observer(({storeComments, userInf
${Device.android ? templateInitials : ''} -
${GetUserName(userInfo.name)}
+
${userInfo.name}
@@ -479,7 +479,7 @@ const EditReplyPopup = inject("storeComments")(observer(({storeComments, comment
{reply.userInitials}
}
-
{GetUserName(reply.userName)}
+
{reply.parsedName}
{reply.date}
@@ -516,7 +516,7 @@ const EditReplyDialog = inject("storeComments")(observer(({storeComments, commen
${Device.android ? templateInitials : ''}
-
${GetUserName(reply.userName)}
+
${reply.parsedName}
${reply.date}
@@ -663,7 +663,7 @@ const ViewComments = ({storeComments, storeAppOptions, onCommentMenuClick, onRes
{isAndroid &&
{comment.userInitials}
}
-
{GetUserName(comment.userName)}
+
{comment.parsedName}
{comment.date}
@@ -693,7 +693,7 @@ const ViewComments = ({storeComments, storeAppOptions, onCommentMenuClick, onRes
{isAndroid &&
{reply.userInitials}
}
-
{GetUserName(reply.userName)}
+
{reply.parsedName}
{reply.date}
@@ -792,7 +792,7 @@ const CommentList = inject("storeComments", "storeAppOptions")(observer(({storeC
{isAndroid &&
{comment.userInitials}
}
-
{GetUserName(comment.userName)}
+
{comment.parsedName}
{comment.date}
@@ -822,7 +822,7 @@ const CommentList = inject("storeComments", "storeAppOptions")(observer(({storeC
{isAndroid &&
{reply.userInitials}
}
-
{GetUserName(reply.userName)}
+
{reply.parsedName}
{reply.date}
@@ -929,12 +929,6 @@ const ViewCurrentComments = props => { ) }; -const GetUserName = name => { - return ( - Common.Utils.String.htmlEncode(AscCommon.UserInfoParser.getParsedName(name)) - ) -}; - export { AddComment, EditComment, From fce5caf86dda0267bbfd69692782dc8274d1331d Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Fri, 2 Jul 2021 15:51:33 +0300 Subject: [PATCH 33/77] [DE] Fix form settings --- apps/documenteditor/main/app/view/FormSettings.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/documenteditor/main/app/view/FormSettings.js b/apps/documenteditor/main/app/view/FormSettings.js index 8875b7f1ae..ce66de1799 100644 --- a/apps/documenteditor/main/app/view/FormSettings.js +++ b/apps/documenteditor/main/app/view/FormSettings.js @@ -813,9 +813,9 @@ define([ this._state.AutoFit=val; } - this.btnColor.setDisabled(!val); + this.btnColor.setDisabled(!this._state.Comb); - this.spnWidth.setDisabled(!val); + this.spnWidth.setDisabled(!this._state.Comb); val = formTextPr.get_Width(); if ( (val===undefined || this._state.Width===undefined)&&(this._state.Width!==val) || Math.abs(this._state.Width-val)>0.1) { this.spnWidth.setValue(val!==0 && val!==undefined ? Common.Utils.Metric.fnRecalcFromMM(val * 25.4 / 20 / 72.0) : -1, true); From ed793a976e93fb094ebbb7507681062f97683570 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Fri, 2 Jul 2021 16:00:29 +0300 Subject: [PATCH 34/77] [DE] Fix form settings --- apps/documenteditor/main/app/view/FormSettings.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/documenteditor/main/app/view/FormSettings.js b/apps/documenteditor/main/app/view/FormSettings.js index ce66de1799..85e7d9343e 100644 --- a/apps/documenteditor/main/app/view/FormSettings.js +++ b/apps/documenteditor/main/app/view/FormSettings.js @@ -806,12 +806,14 @@ define([ this.chMulti.setValue(!!val, true); this._state.Multi=val; } + this.chMulti.setDisabled(!this._state.Fixed); val = formTextPr.get_AutoFit(); if ( this._state.AutoFit!==val ) { this.chAutofit.setValue(!!val, true); this._state.AutoFit=val; } + this.chAutofit.setDisabled(!this._state.Fixed); this.btnColor.setDisabled(!this._state.Comb); From b154777f5a37ef91f9dafba991ba50ee5f1cbd12 Mon Sep 17 00:00:00 2001 From: JuliaSvinareva Date: Fri, 2 Jul 2021 17:49:53 +0300 Subject: [PATCH 35/77] [mobile] Fix user name in comments (2) --- .../lib/controller/collaboration/Comments.jsx | 18 +++++++++--------- .../lib/controller/collaboration/Review.jsx | 5 +++-- apps/common/mobile/lib/store/comments.js | 1 + apps/common/mobile/lib/store/users.js | 2 +- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/apps/common/mobile/lib/controller/collaboration/Comments.jsx b/apps/common/mobile/lib/controller/collaboration/Comments.jsx index b9f9d9d5d5..db68b4ff1e 100644 --- a/apps/common/mobile/lib/controller/collaboration/Comments.jsx +++ b/apps/common/mobile/lib/controller/collaboration/Comments.jsx @@ -44,9 +44,7 @@ const dateToLocaleTimeString = (date) => { return (date.getMonth() + 1) + '/' + (date.getDate()) + '/' + date.getFullYear() + ' ' + format(date); }; const parseUserName = name => { - return ( - Common.Utils.String.htmlEncode(AscCommon.UserInfoParser.getParsedName(name)) - ) + return AscCommon.UserInfoParser.getParsedName(name); }; //end utils @@ -129,11 +127,13 @@ class CommentsController extends Component { let user = this.usersStore.searchUserById(data.asc_getUserId()); const name = data.asc_getUserName(); + const parsedName = parseUserName(name); changeComment.comment = data.asc_getText(); changeComment.userId = data.asc_getUserId(); changeComment.userName = name; - changeComment.parsedName = parseUserName(name); + changeComment.parsedName = Common.Utils.String.htmlEncode(parsedName); + changeComment.userInitials = this.usersStore.getInitials(parsedName); changeComment.userColor = (user) ? user.asc_getColor() : null; changeComment.resolved = data.asc_getSolved(); changeComment.quote = data.asc_getQuoteText(); @@ -158,7 +158,7 @@ class CommentsController extends Component { ind: i, userId: data.asc_getReply(i).asc_getUserId(), userName: userName, - parsedName: parsedName, + parsedName: Common.Utils.String.htmlEncode(parsedName), userColor: (user) ? user.asc_getColor() : null, date: dateToLocaleTimeString(dateReply), reply: data.asc_getReply(i).asc_getText(), @@ -186,7 +186,7 @@ class CommentsController extends Component { uid : id, userId : data.asc_getUserId(), userName : userName, - parsedName : parsedName, + parsedName : Common.Utils.String.htmlEncode(parsedName), userColor : (user) ? user.asc_getColor() : null, date : dateToLocaleTimeString(date), quote : data.asc_getQuoteText(), @@ -224,7 +224,7 @@ class CommentsController extends Component { ind : i, userId : data.asc_getReply(i).asc_getUserId(), userName : userName, - parsedName : parsedName, + parsedName : Common.Utils.String.htmlEncode(parsedName), userColor : (user) ? user.asc_getColor() : null, date : dateToLocaleTimeString(date), reply : data.asc_getReply(i).asc_getText(), @@ -267,7 +267,7 @@ class AddCommentController extends Component { } const name = parseUserName(this.currentUser.asc_getUserName()); return { - name: name, + name: Common.Utils.String.htmlEncode(name), initials: this.props.users.getInitials(name), color: this.currentUser.asc_getColor() }; @@ -311,7 +311,7 @@ class EditCommentController extends Component { this.currentUser = this.props.users.currentUser; const name = parseUserName(this.currentUser.asc_getUserName()); return { - name: name, + name: Common.Utils.String.htmlEncode(name), initials: this.props.users.getInitials(name), color: this.currentUser.asc_getColor() }; diff --git a/apps/common/mobile/lib/controller/collaboration/Review.jsx b/apps/common/mobile/lib/controller/collaboration/Review.jsx index d8a42eaf7c..830ab10dee 100644 --- a/apps/common/mobile/lib/controller/collaboration/Review.jsx +++ b/apps/common/mobile/lib/controller/collaboration/Review.jsx @@ -468,13 +468,14 @@ class ReviewChange extends Component { let change; let goto = false; if (arrChangeReview.length > 0) { + const name = AscCommon.UserInfoParser.getParsedName(arrChangeReview[0].user); change = { date: arrChangeReview[0].date, user: arrChangeReview[0].user, - userName: Common.Utils.String.htmlEncode(AscCommon.UserInfoParser.getParsedName(arrChangeReview[0].user)), + userName: Common.Utils.String.htmlEncode(name), color: arrChangeReview[0].userColor.get_hex(), text: arrChangeReview[0].changeText, - initials: this.props.users.getInitials(arrChangeReview[0].user), + initials: this.props.users.getInitials(name), editable: arrChangeReview[0].editable }; goto = arrChangeReview[0].goto; diff --git a/apps/common/mobile/lib/store/comments.js b/apps/common/mobile/lib/store/comments.js index 5fea1e0574..8163b1917f 100644 --- a/apps/common/mobile/lib/store/comments.js +++ b/apps/common/mobile/lib/store/comments.js @@ -71,6 +71,7 @@ export class storeComments { comment.userId = changeComment.userId; comment.userName = changeComment.userName; comment.parsedName = changeComment.parsedName; + comment.userInitials = changeComment.userInitials; comment.userColor = changeComment.userColor; comment.resolved = changeComment.resolved; comment.quote = changeComment.quote; diff --git a/apps/common/mobile/lib/store/users.js b/apps/common/mobile/lib/store/users.js index 776c6e408f..b13152b944 100644 --- a/apps/common/mobile/lib/store/users.js +++ b/apps/common/mobile/lib/store/users.js @@ -52,7 +52,7 @@ export class storeUsers { } getInitials (name) { - const fio = AscCommon.UserInfoParser.getParsedName(name).split(' '); + const fio = name.split(' '); let initials = fio[0].substring(0, 1).toUpperCase(); for (let i = fio.length-1; i>0; i--) { if (fio[i][0]!=='(' && fio[i][0]!==')') { From 871f8af3528f048e6f73491782d1ed535d580dd1 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Fri, 2 Jul 2021 18:46:09 +0300 Subject: [PATCH 36/77] [DE] Add options for picture forms --- .../main/app/template/FormSettings.template | 11 +++ .../main/app/view/FormSettings.js | 69 ++++++++++++++++++- 2 files changed, 79 insertions(+), 1 deletion(-) diff --git a/apps/documenteditor/main/app/template/FormSettings.template b/apps/documenteditor/main/app/template/FormSettings.template index d8edb97e02..e43b4b60ee 100644 --- a/apps/documenteditor/main/app/template/FormSettings.template +++ b/apps/documenteditor/main/app/template/FormSettings.template @@ -72,6 +72,17 @@
+ +
+
+
+
diff --git a/apps/documenteditor/main/app/view/FormSettings.js b/apps/documenteditor/main/app/view/FormSettings.js index 85e7d9343e..1e7f0a893b 100644 --- a/apps/documenteditor/main/app/view/FormSettings.js +++ b/apps/documenteditor/main/app/view/FormSettings.js @@ -343,6 +343,29 @@ define([ } }, this)); + this.chAspect = new Common.UI.CheckBox({ + el: $markup.findById('#form-chb-aspect'), + labelText: this.textAspect + }); + this.chAspect.on('change', this.onChAspect.bind(this)); + this.lockedControls.push(this.chAspect); + + this.cmbScale = new Common.UI.ComboBox({ + el: $markup.findById('#form-combo-scale'), + cls: 'input-group-nr', + menuStyle: 'min-width: 100%;', + editable: false, + data: [{ displayValue: this.textAlways, value: Asc.c_oAscPictureFormScaleFlag.Always }, + { displayValue: this.textNever, value: Asc.c_oAscPictureFormScaleFlag.Never }, + { displayValue: this.textTooBig, value: Asc.c_oAscPictureFormScaleFlag.Bigger }, + { displayValue: this.textTooSmall, value: Asc.c_oAscPictureFormScaleFlag.Smaller }] + }); + this.cmbScale.setValue(Asc.c_oAscPictureFormScaleFlag.Always); + this.lockedControls.push(this.cmbScale); + this.cmbScale.on('selected', this.onScaleChanged.bind(this)); + this.cmbScale.on('changed:after', this.onScaleChanged.bind(this)); + this.cmbScale.on('hide:after', this.onHideMenus.bind(this)); + this.updateMetricUnit(); this.UpdateThemeColors(); }, @@ -505,6 +528,28 @@ define([ } }, + onChAspect: function(field, newValue, oldValue, eOpts){ + if (this.api && !this._noApply) { + var props = this._originalProps || new AscCommon.CContentControlPr(); + var pictPr = this._originalPictProps || new AscCommon.CSdtPictureFormPr(); + pictPr.put_ConstantProportions(field.getValue()=='checked'); + props.put_PictureFormPr(pictPr); + this.api.asc_SetContentControlProperties(props, this.internalId); + this.fireEvent('editcomplete', this); + } + }, + + onScaleChanged: function(combo, record) { + if (this.api && !this._noApply) { + var props = this._originalProps || new AscCommon.CContentControlPr(); + var pictPr = this._originalPictProps || new AscCommon.CSdtPictureFormPr(); + pictPr.put_ScaleFlag(record.value); + props.put_PictureFormPr(pictPr); + this.api.asc_SetContentControlProperties(props, this.internalId); + this.fireEvent('editcomplete', this); + } + }, + onGroupKeyChanged: function(combo, record) { if (this.api && !this._noApply) { var props = this._originalProps || new AscCommon.CContentControlPr(); @@ -790,6 +835,22 @@ define([ } } + var pictPr = props.get_PictureFormPr(); + if (pictPr) { + this._originalPictProps = pictPr; + val = pictPr.get_ConstantProportions(); + if ( this._state.Aspect!==val ) { + this.chAspect.setValue(!!val, true); + this._state.Aspect=val; + } + + val = pictPr.get_ScaleFlag(); + if (this._state.scaleFlag!==val) { + this.cmbScale.setValue(val); + this._state.scaleFlag=val; + } + } + var formTextPr = props.get_TextFormPr(); if (formTextPr) { this._originalTextFormProps = formTextPr; @@ -1021,7 +1082,13 @@ define([ textFixed: 'Fixed size field', textRequired: 'Required', textAutofit: 'AutoFit', - textMulti: 'Multiline field' + textMulti: 'Multiline field', + textAspect: 'Lock aspect ratio', + textAlways: 'Always', + textNever: 'Never', + textTooBig: 'Image is Too Big', + textTooSmall: 'Image is Too Small', + textScale: 'When to scale' }, DE.Views.FormSettings || {})); }); \ No newline at end of file From 6e475b9e90325872d74982683e4c37296f1718aa Mon Sep 17 00:00:00 2001 From: JuliaSvinareva Date: Fri, 2 Jul 2021 19:20:59 +0300 Subject: [PATCH 37/77] [mobile] Fix context menu --- apps/common/mobile/lib/controller/ContextMenu.jsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/apps/common/mobile/lib/controller/ContextMenu.jsx b/apps/common/mobile/lib/controller/ContextMenu.jsx index ef6f5f8970..c5b580e22d 100644 --- a/apps/common/mobile/lib/controller/ContextMenu.jsx +++ b/apps/common/mobile/lib/controller/ContextMenu.jsx @@ -18,6 +18,7 @@ class ContextMenuController extends Component { extraItems: [] }; + this.fastCoAuthTips = []; this.onMenuItemClick = this.onMenuItemClick.bind(this); this.onMenuClosed = this.onMenuClosed.bind(this); this.onActionClosed = this.onActionClosed.bind(this); @@ -161,9 +162,6 @@ class ContextMenuController extends Component { /** coauthoring begin **/ const tipHeight = 20; - if (!this.fastCoAuthTips) { - this.fastCoAuthTips = []; - } let src; for (let i=0; i Date: Fri, 2 Jul 2021 19:21:25 +0300 Subject: [PATCH 38/77] [DE] Add translation --- apps/documenteditor/main/locale/en.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/apps/documenteditor/main/locale/en.json b/apps/documenteditor/main/locale/en.json index 2b63f76eb9..9aa7528bf4 100644 --- a/apps/documenteditor/main/locale/en.json +++ b/apps/documenteditor/main/locale/en.json @@ -1770,6 +1770,12 @@ "DE.Views.FormSettings.textWidth": "Cell width", "DE.Views.FormSettings.textAutofit": "AutoFit", "DE.Views.FormSettings.textMulti": "Multiline field", + "DE.Views.FormSettings.textAspect": "Lock aspect ratio", + "DE.Views.FormSettings.textAlways": "Always", + "DE.Views.FormSettings.textNever": "Never", + "DE.Views.FormSettings.textTooBig": "Image is Too Big", + "DE.Views.FormSettings.textTooSmall": "Image is Too Small", + "DE.Views.FormSettings.textScale": "When to scale", "DE.Views.FormsTab.capBtnCheckBox": "Checkbox", "DE.Views.FormsTab.capBtnComboBox": "Combo Box", "DE.Views.FormsTab.capBtnDropDown": "Dropdown", From c738f330551dff8f7889363c93ff76ddc0cf3d36 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Sun, 4 Jul 2021 15:40:17 +0300 Subject: [PATCH 39/77] [DE] FIx Bug 51065 --- apps/common/main/resources/less/toolbar.less | 6 ++++++ .../main/app/controller/Toolbar.js | 17 ++++++++++++++--- apps/documenteditor/main/app/view/FormsTab.js | 4 ++-- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/apps/common/main/resources/less/toolbar.less b/apps/common/main/resources/less/toolbar.less index 1efe127593..f7571b7131 100644 --- a/apps/common/main/resources/less/toolbar.less +++ b/apps/common/main/resources/less/toolbar.less @@ -224,6 +224,12 @@ margin-left: 10px; } } + + &.no-group-mask { + .elset { + position: relative; + } + } } .elset { diff --git a/apps/documenteditor/main/app/controller/Toolbar.js b/apps/documenteditor/main/app/controller/Toolbar.js index a48fe02ada..efa107fc5f 100644 --- a/apps/documenteditor/main/app/controller/Toolbar.js +++ b/apps/documenteditor/main/app/controller/Toolbar.js @@ -3051,9 +3051,11 @@ define([ var toolbar = this.toolbar; if(disable) { if (reviewmode) { - mask = $("
").appendTo(toolbar.$el.find('.toolbar section.panel .group:not(.no-mask):not(.no-group-mask.review)')); + mask = $("
").appendTo(toolbar.$el.find('.toolbar section.panel .group:not(.no-mask):not(.no-group-mask.review):not(.no-group-mask.inner-elset)')); + mask = $("
").appendTo(toolbar.$el.find('.toolbar section.panel .group.no-group-mask.inner-elset .elset')); } else if (fillformmode) { - mask = $("
").appendTo(toolbar.$el.find('.toolbar section.panel .group:not(.no-mask):not(.no-group-mask.form-view)')); + mask = $("
").appendTo(toolbar.$el.find('.toolbar section.panel .group:not(.no-mask):not(.no-group-mask.form-view):not(.no-group-mask.inner-elset)')); + mask = $("
").appendTo(toolbar.$el.find('.toolbar section.panel .group.no-group-mask.inner-elset .elset:not(.no-group-mask.form-view)')); } else mask = $("
").appendTo(toolbar.$el.find('.toolbar')); } else { @@ -3061,10 +3063,19 @@ define([ } $('.no-group-mask').each(function(index, item){ var $el = $(item); - if ($el.find('.toolbar-group-mask').length>0) + if ($el.find('> .toolbar-group-mask').length>0) $el.css('opacity', 0.4); else { $el.css('opacity', reviewmode || fillformmode || !disable ? 1 : 0.4); + $el.find('.elset').each(function(index, elitem){ + var $elset = $(elitem); + if ($elset.find('> .toolbar-group-mask').length>0) { + $elset.css('opacity', 0.4); + } else { + $elset.css('opacity', reviewmode || fillformmode || !disable ? 1 : 0.4); + } + $el.css('opacity', 1); + }); } }); diff --git a/apps/documenteditor/main/app/view/FormsTab.js b/apps/documenteditor/main/app/view/FormsTab.js index 2437a1451d..ffe9c70a3a 100644 --- a/apps/documenteditor/main/app/view/FormsTab.js +++ b/apps/documenteditor/main/app/view/FormsTab.js @@ -58,8 +58,8 @@ define([ '' + '
' + '' + - '
-
+
-
@@ -170,8 +170,8 @@
-
@@ -179,8 +179,8 @@
-
@@ -188,8 +188,8 @@
-
@@ -197,8 +197,8 @@
-
diff --git a/apps/spreadsheeteditor/main/app/view/FormatRulesEditDlg.js b/apps/spreadsheeteditor/main/app/view/FormatRulesEditDlg.js index 595b61f68d..07fc6fbe3a 100644 --- a/apps/spreadsheeteditor/main/app/view/FormatRulesEditDlg.js +++ b/apps/spreadsheeteditor/main/app/view/FormatRulesEditDlg.js @@ -662,8 +662,8 @@ define([ 'text!spreadsheeteditor/main/app/template/FormatRulesEditDlg.template', type : i, template: _.template([ '