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/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/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',
}
},
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);
}
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',
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();