Skip to content

Commit 1e0cc82

Browse files
committed
Merge branch hotfix/v7.4.1 into master
2 parents 1af3eba + 6fd85e5 commit 1e0cc82

File tree

1,642 files changed

+18714
-11884
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,642 files changed

+18714
-11884
lines changed

apps/common/main/lib/component/Button.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,9 @@ define([
340340
me.style = me.options.style;
341341
me.rendered = false;
342342

343+
// if ( /(?<!-)svg-icon(?!-)/.test(me.options.iconCls) )
344+
// me.options.scaling = false;
345+
343346
if ( me.options.scaling === false && me.options.iconCls) {
344347
me.iconCls = me.options.iconCls + ' scaling-off';
345348
}

apps/common/main/lib/component/ComboBox.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ define([
101101
'</button>',
102102
'<ul class="dropdown-menu <%= menuCls %>" style="<%= menuStyle %>" role="menu">',
103103
'<% _.each(items, function(item) { %>',
104-
'<li id="<%= item.id %>" data-value="<%= item.value %>"><a tabindex="-1" type="menuitem"><%= scope.getDisplayValue(item) %></a></li>',
104+
'<li id="<%= item.id %>" data-value="<%- item.value %>"><a tabindex="-1" type="menuitem"><%= scope.getDisplayValue(item) %></a></li>',
105105
'<% }); %>',
106106
'</ul>',
107107
'</span>'

apps/common/main/lib/controller/Desktop.js

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -169,20 +169,6 @@ define([
169169
webapp.getController('Main').api.asc_DownloadAs();
170170
}
171171
};
172-
173-
window.on_native_message('editor:config', 'request');
174-
if ( !!window.native_message_cmd ) {
175-
for ( var c in window.native_message_cmd ) {
176-
window.on_native_message(c, window.native_message_cmd[c]);
177-
}
178-
}
179-
180-
native.execCommand('webapps:features', JSON.stringify(features));
181-
182-
// hide mask for modal window
183-
var style = document.createElement('style');
184-
style.appendChild(document.createTextNode('.modals-mask{opacity:0 !important;}'));
185-
document.getElementsByTagName('head')[0].appendChild(style);
186172
}
187173

188174
var _serializeHeaderButton = function(action, config) {
@@ -376,7 +362,7 @@ define([
376362
cls: 'btn-header',
377363
iconCls: 'toolbar__icon icon--inverse btn-home',
378364
visible: false,
379-
hint: 'Show Main window',
365+
hint: Common.Locale.get('hintBtnHome', {name:"Common.Controllers.Desktop", default: 'Show Main window'}),
380366
dataHint:'0',
381367
dataHintDirection: 'right',
382368
dataHintOffset: '10, -18',
@@ -530,7 +516,8 @@ define([
530516
return !!native;
531517
},
532518
isOffline: function () {
533-
// return webapp.getController('Main').api.asc_isOffline();
519+
if ( config.isFillFormApp )
520+
return webapp.getController('ApplicationController').appOptions.isOffline;
534521
return webapp.getController('Main').appOptions.isOffline;
535522
},
536523
isFeatureAvailable: function (feature) {
@@ -568,9 +555,27 @@ define([
568555
systemThemeSupported: function () {
569556
return nativevars.theme && nativevars.theme.system !== 'disabled';
570557
},
558+
finalConstruct : function() {
559+
if (!!native) {
560+
window.on_native_message('editor:config', 'request');
561+
if ( !!window.native_message_cmd ) {
562+
for ( var c in window.native_message_cmd ) {
563+
window.on_native_message(c, window.native_message_cmd[c]);
564+
}
565+
}
566+
567+
native.execCommand('webapps:features', JSON.stringify(features));
568+
569+
// hide mask for modal window
570+
var style = document.createElement('style');
571+
style.appendChild(document.createTextNode('.modals-mask{opacity:0 !important;}'));
572+
document.getElementsByTagName('head')[0].appendChild(style);
573+
}
574+
}
571575
};
572576
};
573577

574578
!Common.Controllers && (Common.Controllers = {});
575579
Common.Controllers.Desktop = new Desktop();
580+
Common.Controllers.Desktop.finalConstruct();
576581
});

apps/common/main/lib/controller/HintManager.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -603,7 +603,7 @@ Common.UI.HintManager = new(function() {
603603
}
604604
}
605605
if (curr.prop('id') === 'btn-go-back' || curr.closest('.btn-slot').prop('id') === 'slot-btn-options' ||
606-
curr.closest('.btn-slot').prop('id') === 'slot-btn-mode' || curr.prop('id') === 'btn-favorite' || curr.parent().prop('id') === 'tlb-box-users' ||
606+
curr.closest('.btn-slot').prop('id') === 'slot-btn-mode' || curr.prop('id') === 'id-btn-favorite' || curr.parent().prop('id') === 'tlb-box-users' ||
607607
curr.prop('id') === 'left-btn-thumbs' || curr.hasClass('scroll') || curr.prop('id') === 'left-btn-about' ||
608608
curr.prop('id') === 'left-btn-support' || curr.closest('.btn-slot').prop('id') === 'slot-btn-search') {
609609
_resetToDefault();

apps/common/main/lib/util/htmlutils.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ window.Common = {
104104
else {/* error */}
105105
}).then(function (text) {
106106
const el = document.querySelector('div.inlined-svg')
107-
el.append(htmlToElements(text));
107+
el.appendChild(htmlToElements(text));
108108

109109
const i = svg_icons.findIndex(function (item) {return item == url});
110110
if ( !(i < 0) ) svg_icons.splice(i, 1)

apps/common/main/lib/view/Header.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,7 @@ define([
273273
me.btnFavorite.on('click', function (e) {
274274
// wait for setFavorite method
275275
// me.options.favorite = !me.options.favorite;
276+
// me.btnFavorite.changeIcon(me.options.favorite ? {next: 'btn-in-favorite', curr: 'btn-favorite'} : {next: 'btn-favorite', curr: 'btn-in-favorite'});
276277
// me.btnFavorite.changeIcon(me.options.favorite ? {next: 'btn-in-favorite'} : {curr: 'btn-in-favorite'});
277278
// me.btnFavorite.updateHint(!me.options.favorite ? me.textAddFavorite : me.textRemoveFavorite);
278279
Common.NotificationCenter.trigger('markfavorite', !me.options.favorite);
@@ -491,7 +492,7 @@ define([
491492
});
492493

493494
me.btnFavorite = new Common.UI.Button({
494-
id: 'btn-favorite',
495+
id: 'id-btn-favorite',
495496
cls: 'btn-header',
496497
iconCls: 'toolbar__icon icon--inverse btn-favorite',
497498
dataHint: '0',
@@ -567,7 +568,7 @@ define([
567568

568569
if ( this.options.favorite !== undefined && this.options.favorite!==null) {
569570
me.btnFavorite.render($html.find('#slot-btn-favorite'));
570-
me.btnFavorite.changeIcon(!!me.options.favorite ? {next: 'btn-in-favorite'} : {curr: 'btn-in-favorite'});
571+
me.btnFavorite.changeIcon(!!me.options.favorite ? {next: 'btn-in-favorite', curr: 'btn-favorite'} : {next: 'btn-favorite', curr: 'btn-in-favorite'});
571572
me.btnFavorite.updateHint(!me.options.favorite ? me.textAddFavorite : me.textRemoveFavorite);
572573
} else {
573574
$html.find('#slot-btn-favorite').hide();
@@ -744,7 +745,7 @@ define([
744745
setFavorite: function (value) {
745746
this.options.favorite = value;
746747
this.btnFavorite[value!==undefined && value!==null ? 'show' : 'hide']();
747-
this.btnFavorite.changeIcon(!!value ? {next: 'btn-in-favorite'} : {curr: 'btn-in-favorite'});
748+
this.btnFavorite.changeIcon(!!value ? {next: 'btn-in-favorite', curr: 'btn-favorite'} : {next: 'btn-favorite', curr: 'btn-in-favorite'});
748749
this.btnFavorite.updateHint(!value ? this.textAddFavorite : this.textRemoveFavorite);
749750
updateDocNamePosition(appConfig);
750751
return this;
Lines changed: 1 addition & 3 deletions

apps/common/main/resources/less/bigscaling.less

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@
3131

3232
.btn-toolbar,
3333
.btn-header,
34-
.btn-category
34+
.btn-category,
35+
.btn-options
3536
{
3637
svg.icon:not(.uni-scale):not(.pixel-ratio__2_5 *) {
3738
display: none;

apps/common/main/resources/less/listview.less

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
border-bottom: @scaled-one-px-value solid @border-regular-control;
100100
padding: 3px 6px;
101101
position: absolute;
102+
margin: 1px;
102103
margin: @scaled-one-px-value;
103104
width: calc(100% - 2 * @scaled-one-px-value);
104105
display: flex;

apps/common/mobile/lib/controller/collaboration/Review.jsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,17 @@ class InitReview extends Component {
1717
Common.Notifications.on('document:ready', () => {
1818
const api = Common.EditorApi.get();
1919
const appOptions = props.storeAppOptions;
20+
const isProtected = appOptions.isProtected;
2021

2122
let trackChanges = appOptions.customization && appOptions.customization.review ? appOptions.customization.review.trackChanges : undefined;
2223
(trackChanges===undefined) && (trackChanges = appOptions.customization ? appOptions.customization.trackChanges : undefined);
2324
trackChanges = appOptions.isReviewOnly || trackChanges === true || trackChanges !== false
2425
&& LocalStorage.getBool("de-mobile-track-changes-" + (appOptions.fileKey || ''));
2526

26-
api.asc_SetTrackRevisions(trackChanges);
27+
if(!isProtected) {
28+
api.asc_SetTrackRevisions(trackChanges);
29+
}
30+
2731
// Init display mode
2832

2933
const canViewReview = appOptions.canReview || appOptions.isEdit || api.asc_HaveRevisionsChanges(true);
@@ -121,9 +125,11 @@ class Review extends Component {
121125
render() {
122126
const displayMode = this.props.storeReview.displayMode;
123127
const isReviewOnly = this.appConfig.isReviewOnly;
128+
const isProtected = this.appConfig.isProtected;
124129
const canReview = this.appConfig.canReview;
125130
const canUseReviewPermissions = this.appConfig.canUseReviewPermissions;
126131
const isRestrictedEdit = this.appConfig.isRestrictedEdit;
132+
127133
return (
128134
<PageReview isReviewOnly={isReviewOnly}
129135
canReview={canReview}
@@ -136,6 +142,7 @@ class Review extends Component {
136142
onRejectAll={this.onRejectAll}
137143
onDisplayMode={this.onDisplayMode}
138144
noBack={this.props.noBack}
145+
isProtected={isProtected}
139146
/>
140147
)
141148
}

apps/common/mobile/lib/view/collaboration/Review.jsx

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {Device} from "../../../utils/device";
88
const PageReview = props => {
99
const { t } = useTranslation();
1010
const _t = t('Common.Collaboration', {returnObjects: true});
11-
11+
const isProtected = props.isProtected;
1212
const isDisableAllSettings = props.isReviewOnly || props.displayMode === "final" || props.displayMode === "original";
1313
const canReview = !!props.canReview;
1414

@@ -25,8 +25,8 @@ const PageReview = props => {
2525
</Navbar>
2626
<List>
2727
{canReview &&
28-
<ListItem title={_t.textTrackChanges} className={isDisableAllSettings ? 'disabled' : ''}>
29-
<Toggle checked={props.trackChanges} onToggleChange={() => props.onTrackChanges(!props.trackChanges)}/>
28+
<ListItem title={_t.textTrackChanges} className={isDisableAllSettings ? 'disabled' : ''} disabled={isProtected}>
29+
<Toggle checked={props.trackChanges} onToggleChange={() => props.onTrackChanges(!props.trackChanges)} />
3030
</ListItem>
3131
}
3232
{!props.isRestrictedEdit &&
@@ -39,13 +39,13 @@ const PageReview = props => {
3939
<ListItem title={_t.textReviewChange} link={'/review-change/'}>
4040
<Icon slot="media" icon="icon-review-changes"></Icon>
4141
</ListItem>
42-
{canReview && !props.canUseReviewPermissions &&
42+
{canReview && !props.canUseReviewPermissions && !isProtected &&
4343
<ListItem title={_t.textAcceptAllChanges} link='#'
4444
className={'no-indicator' + (isDisableAllSettings ? ' disabled' : '')} onClick={() => {props.onAcceptAll();}}>
4545
<Icon slot="media" icon="icon-accept-changes"></Icon>
4646
</ListItem>
4747
}
48-
{canReview && !props.canUseReviewPermissions &&
48+
{canReview && !props.canUseReviewPermissions && !isProtected &&
4949
<ListItem title={_t.textRejectAllChanges} link='#'
5050
className={'no-indicator' + (isDisableAllSettings ? ' disabled' : '')} onClick={() => {props.onRejectAll();}}>
5151
<Icon slot="media" icon="icon-reject-changes"></Icon>
@@ -101,14 +101,17 @@ const DisplayMode = props => {
101101
)
102102
};
103103

104-
const PageReviewChange = props => {
104+
const PageReviewChange = inject("storeAppOptions")(observer(props => {
105105
const isAndroid = Device.android;
106106
const { t } = useTranslation();
107107
const _t = t('Common.Collaboration', {returnObjects: true});
108108
const change = props.change;
109109
const displayMode = props.displayMode;
110110
const isLockAcceptReject = (!change || (change && !change.editable) || (displayMode === "final" || displayMode === "original") || !props.canReview);
111111
const isLockPrevNext = (displayMode === "final" || displayMode === "original");
112+
const appOptions = props.storeAppOptions;
113+
const isProtected = appOptions.isProtected;
114+
112115
return (
113116
<Page className='page-review'>
114117
<Navbar title={_t.textReviewChange} backLink={!props.noBack && _t.textBack}>
@@ -126,12 +129,12 @@ const PageReviewChange = props => {
126129
<span className='accept-reject row'>
127130
<Link id='btn-accept-change'
128131
href='#'
129-
className={isLockAcceptReject && 'disabled'}
132+
className={(isLockAcceptReject || isProtected) && 'disabled'}
130133
onClick={() => {props.onAcceptCurrentChange()}}
131134
>{_t.textAccept}</Link>
132135
<Link id='btn-reject-change'
133136
href='#'
134-
className={isLockAcceptReject && 'disabled'}
137+
className={(isLockAcceptReject || isProtected) && 'disabled'}
135138
onClick={() => {props.onRejectCurrentChange()}}
136139
>{_t.textReject}</Link>
137140
</span>
@@ -173,7 +176,7 @@ const PageReviewChange = props => {
173176
}
174177
</Page>
175178
)
176-
};
179+
}));
177180

178181
const PageDisplayMode = inject("storeReview")(observer(DisplayMode));
179182

apps/documenteditor/embed/locale/pt-pt.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"DE.ApplicationController.downloadTextText": "A descarregar documento…",
1313
"DE.ApplicationController.errorAccessDeny": "Está a tentar executar uma ação para a qual não tem permissão.<br>Contacte o administrador do servidor de documentos.",
1414
"DE.ApplicationController.errorDefaultMessage": "Código de erro: %1",
15-
"DE.ApplicationController.errorEditingDownloadas": "Ocorreu um erro ao trabalhar o documento.<br>Utilize a opção 'Descarregar como...' para guardar uma cópia do ficheiro no computador.",
15+
"DE.ApplicationController.errorEditingDownloadas": "Ocorreu um erro ao trabalhar no documento.<br>Utilize a opção 'Descarregar como...' para guardar uma cópia do ficheiro no computador.",
1616
"DE.ApplicationController.errorFilePassProtect": "O documento está protegido por palavra-passe e não pode ser aberto.",
1717
"DE.ApplicationController.errorFileSizeExceed": "O tamanho do documento excede o limite permitido pelo servidor.<br>Contacte o administrador do servidor de documentos para mais informações.",
1818
"DE.ApplicationController.errorForceSave": "Ocorreu um erro ao guardar o ficheiro. Utilize a opção 'Descarregar como' para guardar o ficheiro no computador ou tente mais tarde.",
@@ -23,8 +23,8 @@
2323
"DE.ApplicationController.errorInconsistentExtXlsx": "Ocorreu um erro ao abrir o ficheiro.<br>O conteúdo do ficheiro corresponde a uma folha de cálculo (xls, xlsx...), mas a extensão de ficheiro não é consistente: %1",
2424
"DE.ApplicationController.errorLoadingFont": "Tipos de letra não carregados.<br>Por favor contacte o administrador do servidor de documentos.",
2525
"DE.ApplicationController.errorSubmit": "Falha ao submeter.",
26-
"DE.ApplicationController.errorTokenExpire": "O 'token' de segurança do documento expirou.<br>Entre em contacto com o administrador do servidor de documentos.",
27-
"DE.ApplicationController.errorUpdateVersionOnDisconnect": "A ligação foi restaurada e a versão do ficheiro foi alterada.<br>Antes de poder continuar a trabalhar, é necessário descarregar o ficheiro ou copiar o seu conteúdo para garantir que nada se perde e depois voltar a carregar esta página.",
26+
"DE.ApplicationController.errorTokenExpire": "O 'token' de segurança do documento expirou.<br>Contacte o administrador do servidor de documentos.",
27+
"DE.ApplicationController.errorUpdateVersionOnDisconnect": "A ligação foi restaurada e a versão do ficheiro alterada.<br>Antes de poder trabalhar, tem que descarregar o ficheiro ou copiar o seu conteúdo para garantir que nada se perde e, depois, recarregue esta página.",
2828
"DE.ApplicationController.errorUserDrop": "De momento, não é possível aceder ao ficheiro.",
2929
"DE.ApplicationController.notcriticalErrorTitle": "Aviso",
3030
"DE.ApplicationController.openErrorText": "Ocorreu um erro ao abrir o ficheiro.",
@@ -37,7 +37,7 @@
3737
"DE.ApplicationController.textLoadingDocument": "A carregar documento",
3838
"DE.ApplicationController.textNext": "Campo seguinte",
3939
"DE.ApplicationController.textOf": "de",
40-
"DE.ApplicationController.textRequired": "Preencha todos os campos obrigatório para submeter o formulário.",
40+
"DE.ApplicationController.textRequired": "Preencha todos os campos obrigatório para enviar o formulário.",
4141
"DE.ApplicationController.textSubmit": "Submeter",
4242
"DE.ApplicationController.textSubmited": "<b>Formulário submetido com sucesso</b><br>Clique para fechar a dica",
4343
"DE.ApplicationController.txtClose": "Fechar",

0 commit comments

Comments
 (0)