From fc96bf4e1a319af66a391cee2cd61850adce774e Mon Sep 17 00:00:00 2001 From: Konstantin Kireyev Date: Wed, 22 Oct 2025 22:05:29 +0500 Subject: [PATCH] fix bug 53723 and bug 75998 --- .gitignore | 1 + apps/common/main/lib/util/htmlutils.js | 18 +++++++--- apps/common/main/lib/util/themeinit.js | 4 +-- apps/common/main/lib/view/RecentFiles.js | 1 + .../main/resources/less/filemenu.less | 15 ++++++++ build/sprites/Gruntfile.js | 35 +++++++++++++++++++ 6 files changed, 68 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 4107f7aefa..a2c5eb1746 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ apps/spreadsheeteditor/embed/resources/less/node_modules apps/documenteditor/mobile/resources/sass/.sass-cache apps/spreadsheeteditor/mobile/resources/sass/.sass-cache apps/presentationeditor/mobile/resources/sass/.sass-cache +apps/common/main/resources/img/doc-formats/formats@2.5x.svg apps/**/main/resources/**/iconssmall*.png apps/**/main/resources/**/iconssmall*.svg apps/**/main/resources/**/iconssmall*.less diff --git a/apps/common/main/lib/util/htmlutils.js b/apps/common/main/lib/util/htmlutils.js index 2d237655c7..ab19936a77 100644 --- a/apps/common/main/lib/util/htmlutils.js +++ b/apps/common/main/lib/util/htmlutils.js @@ -101,8 +101,12 @@ function checkScaling() { } } -let svg_icons = window.uitheme.svg_icons || ['./resources/img/iconssmall@2.5x.svg', - './resources/img/iconsbig@2.5x.svg', './resources/img/iconshuge@2.5x.svg']; +let svg_icons = window.uitheme.svg_icons || [ + './resources/img/iconssmall@2.5x.svg', + './resources/img/iconsbig@2.5x.svg', + './resources/img/iconshuge@2.5x.svg', + '../../common/main/resources/img/doc-formats/formats@2.5x.svg' +]; window.Common = { Utils: { @@ -131,10 +135,14 @@ window.Common = { if (r.ok) return r.text(); else {/* error */} }).then(function (text) { - const type = /icons(\w+)(?:@2\.5x)\.svg$/.exec(url)[1]; + const btnMatch = /icons(\w+)(?:@2\.5x)\.svg$/.exec(url); + const formatMatch = /doc-formats\/(\w+)(?:@2\.5x)\.svg$/.exec(url); + const type = btnMatch ? btnMatch[1] : (formatMatch ? formatMatch[1] : null); + let el_id; if ( type ) { - const el = document.getElementById((el_id = 'idx-sprite-btns-' + type)); + const prefix = btnMatch ? 'idx-sprite-btns-' : 'idx-sprite-formats-'; + const el = document.getElementById((el_id = prefix + type)); if ( el ) { const idx = el.getAttribute('data-sprite-uid'); if ( idx != sprite_uid ) @@ -149,6 +157,8 @@ window.Common = { child.setAttribute('data-sprite-uid', sprite_uid); el.appendChild(child); + console.log(url, 'injected' ); + const i = svg_icons_array.findIndex(function (item) {return item == url}); if ( !(i < 0) ) svg_icons_array.splice(i, 1) }).catch(console.error.bind(console)) diff --git a/apps/common/main/lib/util/themeinit.js b/apps/common/main/lib/util/themeinit.js index 6d819148b4..92b6b5f20f 100644 --- a/apps/common/main/lib/util/themeinit.js +++ b/apps/common/main/lib/util/themeinit.js @@ -110,11 +110,11 @@ if ( base_url.lastIndexOf('../img/', 0) === 0 ) base_url = base_url.replace('..','./resources'); - const svg_icons_array = [base_url+'iconssmall@2.5x.svg', base_url + 'iconsbig@2.5x.svg', base_url + 'iconshuge@2.5x.svg']; + const svg_icons_array = [base_url + 'iconssmall@2.5x.svg', base_url + 'iconsbig@2.5x.svg', base_url + 'iconshuge@2.5x.svg', '../../common/main/resources/img/doc-formats/formats@2.5x.svg']; if ( window.Common && window.Common.Utils ) window.Common.Utils.injectSvgIcons(svg_icons_array, true); else { - window.uitheme.svg_icons = [base_url+'iconssmall@2.5x.svg', base_url + 'iconsbig@2.5x.svg', base_url + 'iconshuge@2.5x.svg']; + window.uitheme.svg_icons = svg_icons_array; } } diff --git a/apps/common/main/lib/view/RecentFiles.js b/apps/common/main/lib/view/RecentFiles.js index 8555d4882f..652a4f3c8e 100644 --- a/apps/common/main/lib/view/RecentFiles.js +++ b/apps/common/main/lib/view/RecentFiles.js @@ -81,6 +81,7 @@ define([ '
', '
', '
', + '', '
"img-format-<%=format %>"<% } else {%> "svg-file-recent"<%} %>>
', '
', '
', diff --git a/apps/documenteditor/main/resources/less/filemenu.less b/apps/documenteditor/main/resources/less/filemenu.less index 61e5a804e3..c0e0c3976a 100644 --- a/apps/documenteditor/main/resources/less/filemenu.less +++ b/apps/documenteditor/main/resources/less/filemenu.less @@ -521,6 +521,17 @@ div { width: 100%; height: 100%; + + svg { + display: none; + width: 24px; + height: 30px; + + .pixel-ratio__2_5 & { + display: block; + } + } + div{ background: ~"url(@{common-image-const-path}/doc-formats/formats.png)"; background-size: 1200px 30px; @@ -540,6 +551,10 @@ .pixel-ratio__2 & { background-image: ~"url(@{common-image-const-path}/doc-formats/formats@2x.png)"; } + + .pixel-ratio__2_5 & { + display: none; + } } } .format-from-index(@index) { diff --git a/build/sprites/Gruntfile.js b/build/sprites/Gruntfile.js index 6ded21037a..3cf76888cf 100644 --- a/build/sprites/Gruntfile.js +++ b/build/sprites/Gruntfile.js @@ -226,6 +226,41 @@ module.exports = function (grunt, rootpathprefix) { ...generate_svg_sprite_tasks('draw'), ...generate_svg_sprite_tasks('draw', true), + + docformats: { + src: [ + `${_prefix}apps/common/main/resources/img/doc-formats/*.svg`, + `!${_prefix}apps/common/main/resources/img/doc-formats/formats@2.5x.svg` + ], + dest: `${_prefix}apps/common/main/resources/img/doc-formats`, + options: { + svg: { + rootAttributes: { + xmlns:'http://www.w3.org/2000/svg', + }, + dimensionAttributes: false, + }, + mode: { + symbol: { + inline: false, + dest: './', + sprite: `formats@2.5x.svg`, + }, + }, + shape: { + id: { + separator: "" + }, + transform: [{ + svgo: { + plugins: [ + 'removeXMLNS', + ] + }, + }] + }, + } + }, }, });