From ab7a0ce706233b93e80399ba33e9c9c7d16876c3 Mon Sep 17 00:00:00 2001 From: yflory Date: Fri, 4 Jul 2025 18:12:16 +0200 Subject: [PATCH 1/4] Fix print permissions with OnlyOffice integration API --- www/common/onlyoffice/inner.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/common/onlyoffice/inner.js b/www/common/onlyoffice/inner.js index 73f984906..d91394fc4 100644 --- a/www/common/onlyoffice/inner.js +++ b/www/common/onlyoffice/inner.js @@ -2159,7 +2159,7 @@ define([ url: url, permissions: { download: dc?.permissions?.download || false, - print: dc?.permissions?.print || true, + print: dc?.permissions?.print !== false, protect: file.type === 'xlsx', } }, From d60680584b002dc784c2399c03f7344af5e689df Mon Sep 17 00:00:00 2001 From: yflory Date: Mon, 7 Jul 2025 16:01:08 +0200 Subject: [PATCH 2/4] Guard against TypeError in diagrams --- www/diagram/inner.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/www/diagram/inner.js b/www/diagram/inner.js index 76f25ac2c..40803d41d 100644 --- a/www/diagram/inner.js +++ b/www/diagram/inner.js @@ -63,9 +63,11 @@ define([ var onDrawioInit = function() { drawIoInitalized = true; - var readOnly = framework.isReadOnly() || framework.isLocked(); - var grid = readOnly ? 0 : 1; - lastContent.mxfile.diagram.mxGraphModel._grid = grid; + if (lastContent?.mxfile?.diagram?.mxGraphModel) { + let readOnly = framework.isReadOnly() || framework.isLocked(); + let grid = readOnly ? 0 : 1; + lastContent.mxfile.diagram.mxGraphModel._grid = grid; + } var xmlStr = DiagramUtil.jsonContentAsXML(lastContent); postMessageToDrawio({ action: 'load', From 027c365468c75033b53c7f17b16f5783d5435280 Mon Sep 17 00:00:00 2001 From: yflory Date: Mon, 7 Jul 2025 16:03:11 +0200 Subject: [PATCH 3/4] Fix issues with integration API --- www/common/cryptpad-common.js | 5 ++++- www/common/sframe-app-framework.js | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/www/common/cryptpad-common.js b/www/common/cryptpad-common.js index 1460046b9..af9b61f07 100644 --- a/www/common/cryptpad-common.js +++ b/www/common/cryptpad-common.js @@ -80,7 +80,9 @@ define([ var keys = []; nThen(function (waitFor) { // Not logged in? check for temp RPC keys - if (!LocalStore.isLoggedIn() && Env?.returned?.tempKeys) { + const anon = !LocalStore.isLoggedIn() + || common.neverDrive; + if (anon && Env?.returned?.tempKeys) { keys.push(Env.returned.tempKeys); return; } @@ -2672,6 +2674,7 @@ define([ Messages, AppConfig }; + common.neverDrive = rdyCfg.neverDrive; common.userHash = userHash || LocalStore.getUserHash(); // FIXME Backward compatibility diff --git a/www/common/sframe-app-framework.js b/www/common/sframe-app-framework.js index ea7733d4e..3dbfe6cfa 100644 --- a/www/common/sframe-app-framework.js +++ b/www/common/sframe-app-framework.js @@ -670,6 +670,10 @@ define([ UI.removeLoadingScreen(emitResize); + if (integrationChannel) { + integrationChannel.event('EV_INTEGRATION_READY'); + } + if (AppConfig.textAnalyzer && textContentGetter) { AppConfig.textAnalyzer(textContentGetter, privateDat.channel); } From 0ec58f11823d59514262910ec7ba60e10e3a8109 Mon Sep 17 00:00:00 2001 From: yflory Date: Wed, 9 Jul 2025 10:41:48 +0200 Subject: [PATCH 4/4] Fix calendar link issue --- www/calendar/app-calendar.less | 14 ++++++++++---- www/calendar/inner.js | 19 ++++++++++++++++++- www/settings/app-settings.less | 3 +++ 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/www/calendar/app-calendar.less b/www/calendar/app-calendar.less index e4b5b8ea2..50c129531 100644 --- a/www/calendar/app-calendar.less +++ b/www/calendar/app-calendar.less @@ -171,13 +171,17 @@ color: @cryptpad_text_col; border-radius: @variables_radius_L; font-weight: normal; - .tui-full-calendar-icon:not(.tui-full-calendar-calendar-dot):not(.tui-full-calendar-dropdown-arrow):not(.tui-full-calendar-ic-checkbox):not(.fa-map-marker):not(.fa-align-justify) { + .tui-full-calendar-icon:not(.tui-full-calendar-calendar-dot):not(.tui-full-calendar-dropdown-arrow):not(.tui-full-calendar-ic-checkbox):not(.fa-map-marker):not(.fa-align-left) { display: none; } .tui-full-calendar-icon { text-align:center; flex-shrink: 0; } + .tui-full-calendar-calendar-dot { + margin-right: 10px; + top: 0; + } .tui-full-calendar-popup-detail-item { display: flex; margin-bottom: 0.3rem; @@ -186,8 +190,8 @@ display: flex; align-items: center; } - .fa-align-justify { - margin-top: 3px; + .fa-align-left { + margin-top: 4px; } &.tui-full-calendar-popup-detail-item-separate { &>span { @@ -203,7 +207,6 @@ } } a { - margin:0.1rem; border-radius: @variables_radius; color: @cryptpad_color_link; text-decoration: underline; @@ -321,6 +324,9 @@ font-size: inherit; line-height: inherit; } + * { + box-sizing: content-box; + } } .CodeMirror-placeholder { color: @cp_forms-placeholder; diff --git a/www/calendar/inner.js b/www/calendar/inner.js index 74b5d6d92..32ab46360 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -415,7 +415,7 @@ define([ var str = schedule.body; delete APP.eventBody; - let description_icon = h('i.fa.fa-align-justify.tui-full-calendar-icon', { 'aria-hidden': true }, []); + let description_icon = h('i.fa.fa-align-left.tui-full-calendar-icon', { 'aria-hidden': true }, []); let description = diffMk.render(str, true); return `${description_icon.outerHTML}
${description}
`; }, @@ -2393,6 +2393,23 @@ APP.recurrenceRule = { }); } + var privateData = metadataMgr.getPrivateData(); + $el.find('.event-description').click(e => { + if (!e.target) { return; } + var $t = $(e.target); + if (!$t.is('a') && !$t.parents('a').length) { return; } + e.preventDefault(); + var $a = $t.is('a') ? $t : $t.parents('a').first(); + var href = $a.attr('href'); + if (/^#/.test(href)) { return; } + if (/^\/[^\/]/.test(href)) { + href = privateData.origin + href; + return void common.openURL(href); + } + common.openUnsafeURL(href); + }); + console.error($el.find('.event-description'), $el); + var $section = $el.find('.tui-full-calendar-section-button'); var ev = APP.editModalData; var data = ev.schedule || {}; diff --git a/www/settings/app-settings.less b/www/settings/app-settings.less index 4d856b454..ec2f0e421 100644 --- a/www/settings/app-settings.less +++ b/www/settings/app-settings.less @@ -333,6 +333,9 @@ font-size: inherit; line-height: inherit; } + * { + box-sizing: content-box; + } } .cp-markdown-toggle-button { .markdown-toolbar-button-style();