Compare commits

...

92 commits

Author SHA1 Message Date
Lea 4eebaab5e6
Enable mobile editing 2023-01-12 14:28:17 +01:00
papacarlo ddec589b37 Merge branch hotfix/v7.2.2 into master 2022-12-20 08:00:10 +00:00
Maxim Kadushkin 7b03f08adc [desktop] for bug 60014 2022-12-07 16:54:48 +03:00
Maxim Kadushkin 3208a4bdf2 [desktop] hide panel before "print" command 2022-12-07 16:48:55 +03:00
Maxim Kadushkin 9e608f168d [desktop] for bug 60014 2022-12-06 21:43:43 +03:00
Maxim Kadushkin f91bc6e50e [desktop] for bug 60025 2022-12-06 20:24:15 +03:00
maxkadushkin b5c282872d
Merge pull request #2105 from ONLYOFFICE/fix/bug-59971
For Bug 59971
2022-12-04 22:50:14 +03:00
Julia Radzhabova 37b37425af For Bug 59971 2022-12-04 16:56:12 +03:00
Maxim Kadushkin f7eccb611f [DE] fix bug 59971 2022-12-03 23:27:22 +03:00
Julia Radzhabova f453f92a32
Merge pull request #2102 from ONLYOFFICE/fix/translation
Update translation. Fix Bug 59947
2022-12-02 14:24:26 +03:00
Julia Radzhabova b6d7e60624 Update translation. Fix Bug 59947 2022-12-02 14:18:13 +03:00
Maxim Kadushkin 6b269291ae [all] hide "quick print" button for macos 2022-12-02 00:14:31 +03:00
Julia Radzhabova 9e80367822
Merge pull request #2098 from ONLYOFFICE/fix/bugfix
Fix Bug 59959
2022-11-30 22:00:24 +03:00
Julia Radzhabova 2bcb91c15c Fix Bug 59959 2022-11-30 21:53:27 +03:00
Maxim Kadushkin 215f2bf28d [desktop] debug 2022-11-30 21:18:32 +03:00
Maxim Kadushkin 6543e5bb49 [SSE PE] fix bug 59951 2022-11-30 15:36:56 +03:00
Julia Radzhabova 9940b59d38
Merge pull request #2095 from ONLYOFFICE/fix/bugfix
[SSE] Try printing in internal spreadsheet editor
2022-11-30 01:37:54 +03:00
Julia Radzhabova 2c48d5c8cb [SSE] Try printing in internal spreadsheet editor 2022-11-30 01:31:59 +03:00
Julia Radzhabova 1ef412c1ee
Merge pull request #2091 from ONLYOFFICE/fix/bugfix
[DE][PE] Fix Bug 59911
2022-11-28 14:13:07 +03:00
Julia Radzhabova 70d6ecb6dc [DE][PE] Fix Bug 59911 2022-11-28 14:06:48 +03:00
Julia Radzhabova 43617a9729
Merge pull request #2087 from ONLYOFFICE/fix/translation
Update translation. Fix Bug 59887
2022-11-25 17:37:42 +03:00
Julia Radzhabova 30d35b42eb Update translation. Fix Bug 59887 2022-11-25 17:31:35 +03:00
Maxim Kadushkin 7e7f519caf [desktop] refactoring 2022-11-22 19:28:54 +03:00
Julia Radzhabova 62d74b444c
Merge pull request #2077 from ONLYOFFICE/fix/quick-preview-warning
Show warning before first click on Quick print button
2022-11-22 01:15:13 +03:00
Julia Radzhabova 7d0ac791aa Show warning before first click on Quick print button 2022-11-22 00:56:54 +03:00
Maxim Kadushkin 8e25f9c027 [desktop] event on show 'quick print' button 2022-11-22 00:28:55 +03:00
Maxim Kadushkin 4fa78dad3a [desktop] 'file locked' message didn't open 2022-11-21 13:04:25 +03:00
Julia Radzhabova 58203c0989
Merge pull request #2071 from ONLYOFFICE/fix/quick-print
Change button's order
2022-11-18 19:17:19 +03:00
Julia Radzhabova aec1b4464d Change button's order 2022-11-18 19:09:50 +03:00
Julia Radzhabova c7f4687a2f
Merge pull request #2067 from ONLYOFFICE/fix/print-preview
Fix/print preview
2022-11-18 15:11:10 +03:00
Julia Radzhabova 7455c536ac Add translation 2022-11-18 15:03:47 +03:00
Julia Radzhabova 033c44d473 [DE][PE] Show error when printing several pages 2022-11-18 14:47:58 +03:00
Julia Radzhabova 81fcfb05f0
Merge pull request #2065 from ONLYOFFICE/fix/print-preview
[DE][PE] Send paper size preset
2022-11-17 22:52:56 +03:00
Julia Radzhabova 8eb8226da2 [DE][PE] Send paper size preset 2022-11-17 22:47:18 +03:00
Julia Radzhabova 6f59e5771b
Merge pull request #2063 from ONLYOFFICE/fix/print-preview
[PE] Send paper size for print preview
2022-11-17 12:55:47 +03:00
Julia Radzhabova 640edd8a79 [PE] Send paper size for print preview 2022-11-17 12:49:11 +03:00
Maxim Kadushkin b825310d30 [desktop] changed "read only" file opening 2022-11-16 19:04:46 +03:00
Julia Radzhabova 4c4da4113f
Merge pull request #2059 from ONLYOFFICE/fix/print-preview
[DE] Send settings for first printing page
2022-11-16 15:45:52 +03:00
Julia Radzhabova db925cd1e8 [DE] Send settings for first printing page 2022-11-16 15:38:00 +03:00
Julia Radzhabova d535175dc1
Merge pull request #2058 from ONLYOFFICE/fix/quick-print
Fix/quick print
2022-11-16 14:52:39 +03:00
Julia Radzhabova 1401b51648 Merge branch 'hotfix/v7.2.2' into fix/quick-print 2022-11-16 14:46:00 +03:00
Julia Radzhabova 629af711e2 [PE][SSE] Add quick print button 2022-11-16 14:28:07 +03:00
Julia Radzhabova d4de267db2 Add icons for quick print/print preview 2022-11-16 14:25:12 +03:00
Julia Radzhabova 1ba9ddf351 [DE] Quick print 2022-11-16 12:46:49 +03:00
Maxim Kadushkin 2d2958e07b Merge branch 'hotfix/v7.2.2' of https://github.com/ONLYOFFICE/web-apps into hotfix/v7.2.2 2022-11-16 00:08:44 +03:00
Maxim Kadushkin 72fd49401f [desktop] get def printer name 2022-11-16 00:08:16 +03:00
Julia Radzhabova d2a87abfb5
Merge pull request #2055 from ONLYOFFICE/fix/print-preview
Fix/print preview
2022-11-15 23:40:14 +03:00
Julia Radzhabova 2a128bc539 [DE] Add quick print button 2022-11-15 21:45:25 +03:00
Julia Radzhabova c4536c0807 [PE] Add paper size. Send print settings to sdk. Enable print preview only for desktop. 2022-11-15 17:54:09 +03:00
Julia Radzhabova 53298b4aab [DE] Fix translation 2022-11-15 17:47:41 +03:00
Julia Radzhabova 24830cb70b [DE] Send print settings to sdk. Enable print preview only for desktop. 2022-11-15 16:45:28 +03:00
maxkadushkin 50bf470a63
Merge pull request #2051 from ONLYOFFICE/fix/refactoringLocks
Refactoring locks
2022-11-14 18:07:03 +03:00
Oleg Korshul a715c720ca Refactoring locks 2022-11-14 18:00:11 +03:00
Julia Radzhabova 6656f45b04
Merge pull request #2038 from ONLYOFFICE/fix/bugfix
[SSE] Fix bug 59466
2022-11-08 16:59:43 +03:00
JuliaSvinareva c0493d45ab [SSE] Fix bug 59466 2022-11-08 16:53:16 +03:00
Julia Radzhabova d499edb1f3
Merge pull request #2036 from ONLYOFFICE/feature/print-preview
Feature/print preview
2022-11-07 23:17:04 +03:00
Julia Radzhabova fcaeb143ba
Merge pull request #2032 from ONLYOFFICE/fix/bugfix
Fix Bug 59592
2022-11-01 16:29:54 +03:00
Julia Radzhabova 1ac0d04f2e Fix Bug 59592 2022-11-01 16:13:30 +03:00
Julia Radzhabova 42b75058c5 [PE] Show print preview 2022-10-27 15:40:52 +03:00
Julia Radzhabova d4aed51fdf [DE] Print preview refactoring 2022-10-27 15:29:06 +03:00
Julia Radzhabova 591cf88d5e [DE] Disable page settings in print preview 2022-10-26 22:13:10 +03:00
Julia Radzhabova 3dffb8a7ba [DE] Fix print preview 2022-10-26 00:22:23 +03:00
Julia Radzhabova e0c8c84c72 [DE] Refactoring custom margins 2022-10-25 23:56:46 +03:00
Julia Radzhabova 0020e55ea0 [DE] Fix pages numbers for printing 2022-10-25 21:40:16 +03:00
Julia Radzhabova d8600b8a2a [DE] Refactoring print preview, hide preview for mac os 2022-10-24 19:02:05 +03:00
Julia Radzhabova 229e55811e [DE] Init preview div 2022-10-24 14:16:34 +03:00
Julia Radzhabova c0fea1c230 [DE] Add print preview panel 2022-10-21 23:22:16 +03:00
papacarlo 645ff855aa Merge branch hotfix/v7.2.1 into master 2022-10-20 13:12:05 +00:00
Oleg Korshul 36e8f4214c
Merge pull request #2014 from ONLYOFFICE/fix/bugfix
[DE][PE] Remove hieroglyphs settings
2022-10-17 11:05:11 +03:00
Julia Radzhabova a0b6f03c71 [DE][PE] Remove hieroglyphs settings 2022-10-17 11:00:51 +03:00
Julia Radzhabova 8a5e21bc46 [DE] Fix forms dicsonnect 2022-10-14 18:24:03 +03:00
Julia Radzhabova 30a620c94a [DE] Use new type for complex field 2022-10-14 18:24:03 +03:00
Julia Radzhabova 447e203174 For Bug 59377 2022-10-14 18:24:03 +03:00
Julia Radzhabova ebaf3f2b1a Update help 2022-10-14 17:43:03 +03:00
Oleg Korshul 0621ebf4fd
Merge pull request #2009 from ONLYOFFICE/fix/bug-52732
Fix/bug 52732
2022-10-14 14:46:12 +03:00
Oleg Korshul 8a98c718fa Refactoring 2022-10-14 14:31:55 +03:00
Julia Radzhabova 207bdece2a For Bug 52732 2022-10-14 13:36:10 +03:00
Julia Radzhabova 5f7bd9d805
Merge pull request #2007 from ONLYOFFICE/fix/de-formKey
[DE] Fix apply empty key (back to old value)
2022-10-13 19:59:41 +03:00
Julia Radzhabova 1a61da2ae2 [DE] Fix apply empty key (back to old value) 2022-10-13 19:40:33 +03:00
Maxim Kadushkin 567cfdcd5d [desktop] for bug 59316 2022-10-12 23:02:44 +03:00
Julia Radzhabova 677b629c66
Merge pull request #2004 from ONLYOFFICE/fix/fix-search
[SSE] Fix search
2022-10-12 18:44:23 +03:00
JuliaSvinareva f83b4e55b1 [SSE] Fix search 2022-10-12 18:38:21 +03:00
Maxim Kadushkin 659e7cec50 [desktop] for bug 59316 2022-10-11 22:12:02 +03:00
Julia Radzhabova eae06bd4c9
Merge pull request #2001 from ONLYOFFICE/fix/maxChangesSize
Fix/max changes size
2022-10-11 17:48:03 +03:00
Julia Radzhabova 8ac5578200
Merge pull request #1998 from ONLYOFFICE/fix/inputBug
Refactoring. Fix bug with preventing composition input.
2022-10-10 23:57:03 +03:00
Julia Radzhabova 01b47592b8
Merge pull request #1997 from ONLYOFFICE/fix/bug-59278
Fix Bug 59278
2022-10-10 23:10:27 +03:00
Oleg Korshul 20fa8d11c1 Fix typo 2022-10-10 22:34:05 +03:00
Oleg Korshul 6109598791 Refactoring. Fix bug with preventing composition input. 2022-10-10 22:26:42 +03:00
Julia Radzhabova 30d8937204 Fix Bug 59278 2022-10-10 19:17:57 +03:00
Julia Radzhabova 144ef4639a [PE] Fix register events 2022-10-06 19:28:56 +03:00
Julia Radzhabova f9153dbc2d [Mobile] Add asc_onConfirmAction event 2022-10-06 16:43:26 +03:00
Julia Radzhabova c5ae22a932 Add asc_onConfirmAction event 2022-10-04 21:53:31 +03:00
225 changed files with 3605 additions and 723 deletions

View file

@ -218,6 +218,7 @@
hideRulers: false // hide or show rulers on first loading (presentation or document editor) hideRulers: false // hide or show rulers on first loading (presentation or document editor)
hideNotes: false // hide or show notes panel on first loading (presentation editor) hideNotes: false // hide or show notes panel on first loading (presentation editor)
uiTheme: 'theme-dark' // set interface theme: id or default-dark/default-light uiTheme: 'theme-dark' // set interface theme: id or default-dark/default-light
integrationMode: "embed" // turn off scroll to frame
}, },
coEditing: { coEditing: {
mode: 'fast', // <coauthoring mode>, 'fast' or 'strict'. if 'fast' and 'customization.autosave'=false -> set 'customization.autosave'=true. 'fast' - default for editor mode: 'fast', // <coauthoring mode>, 'fast' or 'strict'. if 'fast' and 'customization.autosave'=false -> set 'customization.autosave'=true. 'fast' - default for editor
@ -490,6 +491,9 @@
if (target && _checkConfigParams()) { if (target && _checkConfigParams()) {
iframe = createIframe(_config); iframe = createIframe(_config);
if (_config.editorConfig.customization && _config.editorConfig.customization.integrationMode==='embed')
window.AscEmbed && window.AscEmbed.initWorker(iframe);
if (iframe.src) { if (iframe.src) {
var pathArray = iframe.src.split('/'); var pathArray = iframe.src.split('/');
this.frameOrigin = pathArray[0] + '//' + pathArray[2]; this.frameOrigin = pathArray[0] + '//' + pathArray[2];

View file

@ -45,7 +45,8 @@ define([
version: '{{PRODUCT_VERSION}}', version: '{{PRODUCT_VERSION}}',
eventloading: true, eventloading: true,
titlebuttons: true, titlebuttons: true,
uithemes: true uithemes: true,
quickprint: true,
}; };
var native = window.desktop || window.AscDesktopEditor; var native = window.desktop || window.AscDesktopEditor;
@ -166,7 +167,8 @@ define([
action: action, action: action,
icon: config.icon || undefined, icon: config.icon || undefined,
hint: config.btn.options.hint, hint: config.btn.options.hint,
disabled: config.btn.isDisabled() disabled: config.btn.isDisabled(),
visible: config.visible,
}; };
}; };
@ -201,6 +203,7 @@ define([
if ( !!titlebuttons ) { if ( !!titlebuttons ) {
info.hints = {}; info.hints = {};
!!titlebuttons['print'] && (info.hints['print'] = titlebuttons['print'].btn.btnEl.attr('data-hint-title')); !!titlebuttons['print'] && (info.hints['print'] = titlebuttons['print'].btn.btnEl.attr('data-hint-title'));
!!titlebuttons['quickprint'] && (info.hints['quickprint'] = titlebuttons['quickprint'].btn.btnEl.attr('data-hint-title'));
!!titlebuttons['undo'] && (info.hints['undo'] = titlebuttons['undo'].btn.btnEl.attr('data-hint-title')); !!titlebuttons['undo'] && (info.hints['undo'] = titlebuttons['undo'].btn.btnEl.attr('data-hint-title'));
!!titlebuttons['redo'] && (info.hints['redo'] = titlebuttons['redo'].btn.btnEl.attr('data-hint-title')); !!titlebuttons['redo'] && (info.hints['redo'] = titlebuttons['redo'].btn.btnEl.attr('data-hint-title'));
!!titlebuttons['save'] && (info.hints['save'] = titlebuttons['save'].btn.btnEl.attr('data-hint-title')); !!titlebuttons['save'] && (info.hints['save'] = titlebuttons['save'].btn.btnEl.attr('data-hint-title'));
@ -216,6 +219,24 @@ define([
} }
} }
const _onApplySettings = function (menu) {
if ( !!titlebuttons.quickprint ) {
const var_name = window.SSE ? 'sse-settings-quick-print-button' :
window.PE ? 'pe-settings-quick-print-button' : 'de-settings-quick-print-button';
const is_btn_visible = Common.localStorage.getBool(var_name, false);
if ( titlebuttons.quickprint.visible != is_btn_visible ) {
titlebuttons.quickprint.visible = is_btn_visible;
const obj = {
visible: {
quickprint: is_btn_visible,
}
};
native.execCommand('title:button', JSON.stringify(obj));
}
}
}
return { return {
init: function (opts) { init: function (opts) {
_.extend(config, opts); _.extend(config, opts);
@ -233,9 +254,45 @@ define([
Common.NotificationCenter.on('document:ready', function () { Common.NotificationCenter.on('document:ready', function () {
if ( config.isEdit ) { if ( config.isEdit ) {
var maincontroller = webapp.getController('Main'); function get_locked_message (t) {
if (maincontroller.api.asc_isReadOnly && maincontroller.api.asc_isReadOnly()) { switch (t) {
maincontroller.warningDocumentIsLocked(); // case Asc.c_oAscLocalRestrictionType.Nosafe:
case Asc.c_oAscLocalRestrictionType.ReadOnly:
return Common.Locale.get("tipFileReadOnly",{name:"Common.Translation", default: "Document is read only. You can make changes and save its local copy later."});
default: return Common.Locale.get("tipFileLocked",{name:"Common.Translation", default: "Document is locked for editing. You can make changes and save its local copy later."});
}
}
const header = webapp.getController('Viewport').getView('Common.Views.Header');
const api = webapp.getController('Main').api;
const locktype = api.asc_getLocalRestrictions ? api.asc_getLocalRestrictions() : Asc.c_oAscLocalRestrictionType.None;
if ( Asc.c_oAscLocalRestrictionType.None !== locktype ) {
features.readonly = true;
header.setDocumentReadOnly(true);
api.asc_setLocalRestrictions(Asc.c_oAscLocalRestrictionType.None);
(new Common.UI.SynchronizeTip({
extCls: 'no-arrow',
placement: 'bottom',
target: $('.toolbar'),
text: get_locked_message(locktype),
showLink: false,
})).on('closeclick', function () {
this.close();
}).show();
native.execCommand('webapps:features', JSON.stringify(features));
api.asc_registerCallback('asc_onDocumentName', function () {
if ( features.readonly ) {
if ( api.asc_getLocalRestrictions() == Asc.c_oAscLocalRestrictionType.None ) {
features.readonly = false;
header.setDocumentReadOnly(false);
native.execCommand('webapps:features', JSON.stringify(features));
}
}
});
} }
} }
}); });
@ -247,7 +304,7 @@ define([
titlebuttons = {}; titlebuttons = {};
if ( mode.isEdit ) { if ( mode.isEdit ) {
var header = webapp.getController('Viewport').getView('Common.Views.Header'); const header = webapp.getController('Viewport').getView('Common.Views.Header');
if (!!header.btnSave) { if (!!header.btnSave) {
titlebuttons['save'] = {btn: header.btnSave}; titlebuttons['save'] = {btn: header.btnSave};
@ -258,6 +315,13 @@ define([
if (!!header.btnPrint) if (!!header.btnPrint)
titlebuttons['print'] = {btn: header.btnPrint}; titlebuttons['print'] = {btn: header.btnPrint};
if (!!header.btnPrintQuick) {
titlebuttons['quickprint'] = {
btn: header.btnPrintQuick,
visible: header.btnPrintQuick.isVisible(),
};
}
if (!!header.btnUndo) if (!!header.btnUndo)
titlebuttons['undo'] = {btn: header.btnUndo}; titlebuttons['undo'] = {btn: header.btnUndo};
@ -288,6 +352,7 @@ define([
Common.NotificationCenter.on({ Common.NotificationCenter.on({
'modal:show': _onModalDialog.bind(this, 'open'), 'modal:show': _onModalDialog.bind(this, 'open'),
'modal:close': _onModalDialog.bind(this, 'close'), 'modal:close': _onModalDialog.bind(this, 'close'),
'modal:hide': _onModalDialog.bind(this, 'hide'),
'uitheme:changed' : function (name) { 'uitheme:changed' : function (name) {
if (Common.localStorage.getBool('ui-theme-use-system', false)) { if (Common.localStorage.getBool('ui-theme-use-system', false)) {
native.execCommand("uitheme:changed", JSON.stringify({name:'theme-system'})); native.execCommand("uitheme:changed", JSON.stringify({name:'theme-system'}));
@ -312,6 +377,7 @@ define([
menu.hide(); menu.hide();
} }
}, },
'settings:apply': _onApplySettings.bind(this),
}, },
}, {id: 'desktop'}); }, {id: 'desktop'});
@ -369,7 +435,10 @@ define([
} }
return undefined; return undefined;
} },
getDefaultPrinterName: function () {
return nativevars ? nativevars.defaultPrinterName : '';
},
}; };
}; };

View file

@ -979,7 +979,7 @@ Common.Utils.warningDocumentIsLocked = function (opts) {
callback: function(btn){ callback: function(btn){
if (btn == 'edit') { if (btn == 'edit') {
if ( opts.disablefunc ) opts.disablefunc(false); if ( opts.disablefunc ) opts.disablefunc(false);
app.getController('Main').api.asc_setIsReadOnly(false); app.getController('Main').api.asc_setLocalRestrictions(Asc.c_oAscLocalRestrictionType.None);
} }
} }
}); });

View file

@ -81,6 +81,7 @@ define([
'<div class="hedset">' + '<div class="hedset">' +
'<div class="btn-slot" id="slot-hbtn-edit"></div>' + '<div class="btn-slot" id="slot-hbtn-edit"></div>' +
'<div class="btn-slot" id="slot-hbtn-print"></div>' + '<div class="btn-slot" id="slot-hbtn-print"></div>' +
'<div class="btn-slot" id="slot-hbtn-print-quick"></div>' +
'<div class="btn-slot" id="slot-hbtn-download"></div>' + '<div class="btn-slot" id="slot-hbtn-download"></div>' +
'</div>' + '</div>' +
'<div class="hedset" data-layout-name="header-users">' + '<div class="hedset" data-layout-name="header-users">' +
@ -128,6 +129,7 @@ define([
'<div class="hedset">' + '<div class="hedset">' +
'<div class="btn-slot" id="slot-btn-dt-save" data-layout-name="header-save"></div>' + '<div class="btn-slot" id="slot-btn-dt-save" data-layout-name="header-save"></div>' +
'<div class="btn-slot" id="slot-btn-dt-print"></div>' + '<div class="btn-slot" id="slot-btn-dt-print"></div>' +
'<div class="btn-slot" id="slot-btn-dt-print-quick"></div>' +
'<div class="btn-slot" id="slot-btn-dt-undo"></div>' + '<div class="btn-slot" id="slot-btn-dt-undo"></div>' +
'<div class="btn-slot" id="slot-btn-dt-redo"></div>' + '<div class="btn-slot" id="slot-btn-dt-redo"></div>' +
'</div>' + '</div>' +
@ -332,6 +334,13 @@ define([
}); });
} }
if ( me.btnPrintQuick ) {
me.btnPrintQuick.updateHint(me.tipPrintQuick);
me.btnPrintQuick.on('click', function (e) {
me.fireEvent('print-quick', me);
});
}
if ( me.btnSave ) { if ( me.btnSave ) {
me.btnSave.updateHint(me.tipSave + Common.Utils.String.platformKey('Ctrl+S')); me.btnSave.updateHint(me.tipSave + Common.Utils.String.platformKey('Ctrl+S'));
me.btnSave.on('click', function (e) { me.btnSave.on('click', function (e) {
@ -572,6 +581,9 @@ define([
if ( config.canPrint ) if ( config.canPrint )
this.btnPrint = createTitleButton('toolbar__icon icon--inverse btn-print', $html.findById('#slot-hbtn-print'), undefined, 'bottom', 'big', 'P'); this.btnPrint = createTitleButton('toolbar__icon icon--inverse btn-print', $html.findById('#slot-hbtn-print'), undefined, 'bottom', 'big', 'P');
if ( config.canQuickPrint )
this.btnPrintQuick = createTitleButton('toolbar__icon icon--inverse btn-quick-print', $html.findById('#slot-hbtn-print-quick'), undefined, 'bottom', 'big', 'Q');
if ( config.canEdit && config.canRequestEditRights ) if ( config.canEdit && config.canRequestEditRights )
this.btnEdit = createTitleButton('toolbar__icon icon--inverse btn-edit', $html.findById('#slot-hbtn-edit'), undefined, 'bottom', 'big'); this.btnEdit = createTitleButton('toolbar__icon icon--inverse btn-edit', $html.findById('#slot-hbtn-edit'), undefined, 'bottom', 'big');
} }
@ -646,6 +658,8 @@ define([
if ( config.canPrint && config.isEdit ) { if ( config.canPrint && config.isEdit ) {
me.btnPrint = createTitleButton('toolbar__icon icon--inverse btn-print', $html.findById('#slot-btn-dt-print'), true, undefined, undefined, 'P'); me.btnPrint = createTitleButton('toolbar__icon icon--inverse btn-print', $html.findById('#slot-btn-dt-print'), true, undefined, undefined, 'P');
} }
if ( config.canQuickPrint && config.isEdit )
me.btnPrintQuick = createTitleButton('toolbar__icon icon--inverse btn-quick-print', $html.findById('#slot-btn-dt-print-quick'), true, undefined, undefined, 'Q');
me.btnSave = createTitleButton('toolbar__icon icon--inverse btn-save', $html.findById('#slot-btn-dt-save'), true, undefined, undefined, 'S'); me.btnSave = createTitleButton('toolbar__icon icon--inverse btn-save', $html.findById('#slot-btn-dt-save'), true, undefined, undefined, 'S');
me.btnUndo = createTitleButton('toolbar__icon icon--inverse btn-undo', $html.findById('#slot-btn-dt-undo'), true, undefined, undefined, 'Z'); me.btnUndo = createTitleButton('toolbar__icon icon--inverse btn-undo', $html.findById('#slot-btn-dt-undo'), true, undefined, undefined, 'Z');
@ -695,6 +709,7 @@ define([
if (idx>0) if (idx>0)
this.fileExtention = this.documentCaption.substring(idx); this.fileExtention = this.documentCaption.substring(idx);
this.isModified && (value += '*'); this.isModified && (value += '*');
this.readOnly && (value += ' (' + this.textReadOnly + ')');
if ( $labelDocName ) { if ( $labelDocName ) {
this.setDocTitle( value ); this.setDocTitle( value );
} }
@ -887,6 +902,11 @@ define([
return initials; return initials;
}, },
setDocumentReadOnly: function (readonly) {
this.readOnly = readonly;
this.setDocumentCaption(this.documentCaption);
},
textBack: 'Go to Documents', textBack: 'Go to Documents',
txtRename: 'Rename', txtRename: 'Rename',
txtAccessRights: 'Change access rights', txtAccessRights: 'Change access rights',
@ -910,7 +930,9 @@ define([
textAddFavorite: 'Mark as favorite', textAddFavorite: 'Mark as favorite',
textHideNotes: 'Hide Notes', textHideNotes: 'Hide Notes',
tipSearch: 'Search', tipSearch: 'Search',
textShare: 'Share' textShare: 'Share',
tipPrintQuick: 'Quick print',
textReadOnly: 'Read only'
} }
}(), Common.Views.Header || {})) }(), Common.Views.Header || {}))
}); });

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 525 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 436 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 754 B

View file

@ -364,8 +364,10 @@ define([
}, },
onCountPages: function(count) { onCountPages: function(count) {
maxPages = count; if (maxPages !== count) {
$('#pages').text(this.textOf + " " + count); maxPages = count;
$('#pages').text(this.textOf + " " + count);
}
}, },
onCurrentPage: function(number) { onCurrentPage: function(number) {

View file

@ -157,6 +157,7 @@ require([
'Main', 'Main',
'ViewTab', 'ViewTab',
'Search', 'Search',
'Print',
'Common.Controllers.Fonts', 'Common.Controllers.Fonts',
'Common.Controllers.History' 'Common.Controllers.History'
/** coauthoring begin **/ /** coauthoring begin **/
@ -191,6 +192,7 @@ require([
'documenteditor/main/app/controller/Main', 'documenteditor/main/app/controller/Main',
'documenteditor/main/app/controller/ViewTab', 'documenteditor/main/app/controller/ViewTab',
'documenteditor/main/app/controller/Search', 'documenteditor/main/app/controller/Search',
'documenteditor/main/app/controller/Print',
'documenteditor/main/app/view/FileMenuPanels', 'documenteditor/main/app/view/FileMenuPanels',
'documenteditor/main/app/view/ParagraphSettings', 'documenteditor/main/app/view/ParagraphSettings',
'documenteditor/main/app/view/HeaderFooterSettings', 'documenteditor/main/app/view/HeaderFooterSettings',

View file

@ -1249,15 +1249,11 @@ define([
handler: function(dlg, result) { handler: function(dlg, result) {
if (result == 'ok') { if (result == 'ok') {
var props = dlg.getSettings(); var props = dlg.getSettings();
var mnu = DE.getController('Toolbar').toolbar.btnPageMargins.menu.items[0];
mnu.setVisible(true);
mnu.setChecked(true);
mnu.options.value = mnu.value = [props.get_TopMargin(), props.get_LeftMargin(), props.get_BottomMargin(), props.get_RightMargin()];
$(mnu.el).html(mnu.template({id: Common.UI.getId(), caption : mnu.caption, options : mnu.options}));
Common.localStorage.setItem("de-pgmargins-top", props.get_TopMargin()); Common.localStorage.setItem("de-pgmargins-top", props.get_TopMargin());
Common.localStorage.setItem("de-pgmargins-left", props.get_LeftMargin()); Common.localStorage.setItem("de-pgmargins-left", props.get_LeftMargin());
Common.localStorage.setItem("de-pgmargins-bottom", props.get_BottomMargin()); Common.localStorage.setItem("de-pgmargins-bottom", props.get_BottomMargin());
Common.localStorage.setItem("de-pgmargins-right", props.get_RightMargin()); Common.localStorage.setItem("de-pgmargins-right", props.get_RightMargin());
Common.NotificationCenter.trigger('margins:update', props);
me.api.asc_SetSectionProps(props); me.api.asc_SetSectionProps(props);
me.editComplete(); me.editComplete();
@ -2230,7 +2226,7 @@ define([
}, },
onRefreshField: function(item, e){ onRefreshField: function(item, e){
this.api && this.api.asc_UpdateComplexField(item.options.fieldProps); this.api && this.api.asc_UpdateFields(true);
this.editComplete(); this.editComplete();
}, },

View file

@ -113,6 +113,7 @@ define([
if ( !this.leftMenu.panelHistory.isVisible() ) if ( !this.leftMenu.panelHistory.isVisible() )
this.clickMenuFileItem(null, 'history'); this.clickMenuFileItem(null, 'history');
}, this)); }, this));
Common.NotificationCenter.on('file:print', _.bind(this.clickToolbarPrint, this));
}, },
onLaunch: function() { onLaunch: function() {
@ -435,10 +436,6 @@ define([
applySettings: function(menu) { applySettings: function(menu) {
var value; var value;
value = Common.localStorage.getBool("de-settings-inputmode");
Common.Utils.InternalSettings.set("de-settings-inputmode", value);
this.api.SetTextBoxInputMode(value);
var fast_coauth = Common.Utils.InternalSettings.get("de-settings-coauthmode"); var fast_coauth = Common.Utils.InternalSettings.get("de-settings-coauthmode");
/** coauthoring begin **/ /** coauthoring begin **/
if (this.mode.isEdit && !this.mode.isOffline && this.mode.canCoAuthoring ) { if (this.mode.isEdit && !this.mode.isOffline && this.mode.canCoAuthoring ) {
@ -553,6 +550,13 @@ define([
this.leftMenu.menuFile.hide(); this.leftMenu.menuFile.hide();
}, },
clickToolbarPrint: function () {
if (this.mode.canPreviewPrint)
this.leftMenu.showMenu('file:printpreview');
else if (this.mode.canPrint)
this.clickMenuFileItem(null, 'print');
},
changeToolbarSaveState: function (state) { changeToolbarSaveState: function (state) {
var btnSave = this.leftMenu.menuFile.getButton('save'); var btnSave = this.leftMenu.menuFile.getButton('save');
btnSave && btnSave.setDisabled(state); btnSave && btnSave.setDisabled(state);

View file

@ -1219,14 +1219,11 @@ define([
me.api.asc_registerCallback('asc_onEndAction', _.bind(me.onLongActionEnd, me)); me.api.asc_registerCallback('asc_onEndAction', _.bind(me.onLongActionEnd, me));
me.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(me.onCoAuthoringDisconnect, me)); me.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(me.onCoAuthoringDisconnect, me));
me.api.asc_registerCallback('asc_onPrint', _.bind(me.onPrint, me)); me.api.asc_registerCallback('asc_onPrint', _.bind(me.onPrint, me));
me.api.asc_registerCallback('asc_onConfirmAction', _.bind(me.onConfirmAction, me));
appHeader.setDocumentCaption(me.api.asc_getDocumentName()); appHeader.setDocumentCaption(me.api.asc_getDocumentName());
me.updateWindowTitle(true); me.updateWindowTitle(true);
value = Common.localStorage.getBool("de-settings-inputmode");
Common.Utils.InternalSettings.set("de-settings-inputmode", value);
me.api.SetTextBoxInputMode(value);
value = Common.localStorage.getBool("de-settings-show-alt-hints", Common.Utils.isMac ? false : true); value = Common.localStorage.getBool("de-settings-show-alt-hints", Common.Utils.isMac ? false : true);
Common.Utils.InternalSettings.set("de-settings-show-alt-hints", value); Common.Utils.InternalSettings.set("de-settings-show-alt-hints", value);
@ -1497,6 +1494,9 @@ define([
} }
this.appOptions.canEditStyles = this.appOptions.canLicense && this.appOptions.canEdit; this.appOptions.canEditStyles = this.appOptions.canLicense && this.appOptions.canEdit;
this.appOptions.canPrint = (this.permissions.print !== false); this.appOptions.canPrint = (this.permissions.print !== false);
this.appOptions.canPreviewPrint = this.appOptions.canPrint && !Common.Utils.isMac && this.appOptions.isDesktopApp;
this.appOptions.canQuickPrint = this.appOptions.canPrint && !Common.Utils.isMac && this.appOptions.isDesktopApp &&
!(this.editorConfig.customization && this.editorConfig.customization.compactHeader);
this.appOptions.canRename = this.editorConfig.canRename; this.appOptions.canRename = this.editorConfig.canRename;
this.appOptions.buildVersion = params.asc_getBuildVersion(); this.appOptions.buildVersion = params.asc_getBuildVersion();
this.appOptions.canForcesave = this.appOptions.isEdit && !this.appOptions.isOffline && (typeof (this.editorConfig.customization) == 'object' && !!this.editorConfig.customization.forcesave); this.appOptions.canForcesave = this.appOptions.isEdit && !this.appOptions.isOffline && (typeof (this.editorConfig.customization) == 'object' && !!this.editorConfig.customization.forcesave);
@ -1666,6 +1666,9 @@ define([
toolbarController.setMode(this.appOptions); toolbarController.setMode(this.appOptions);
documentHolder.setMode(this.appOptions); documentHolder.setMode(this.appOptions);
var printController = app.getController('Print');
printController && this.api && printController.setApi(this.api).setMode(this.appOptions);
this.api.asc_registerCallback('asc_onSendThemeColors', _.bind(this.onSendThemeColors, this)); this.api.asc_registerCallback('asc_onSendThemeColors', _.bind(this.onSendThemeColors, this));
this.api.asc_registerCallback('asc_onDownloadUrl', _.bind(this.onDownloadUrl, this)); this.api.asc_registerCallback('asc_onDownloadUrl', _.bind(this.onDownloadUrl, this));
this.api.asc_registerCallback('asc_onAuthParticipantsChanged', _.bind(this.onAuthParticipantsChanged, this)); this.api.asc_registerCallback('asc_onAuthParticipantsChanged', _.bind(this.onAuthParticipantsChanged, this));
@ -2463,6 +2466,7 @@ define([
this.api.asc_SetDocumentUnits((value==Common.Utils.Metric.c_MetricUnits.inch) ? Asc.c_oAscDocumentUnits.Inch : ((value==Common.Utils.Metric.c_MetricUnits.pt) ? Asc.c_oAscDocumentUnits.Point : Asc.c_oAscDocumentUnits.Millimeter)); this.api.asc_SetDocumentUnits((value==Common.Utils.Metric.c_MetricUnits.inch) ? Asc.c_oAscDocumentUnits.Inch : ((value==Common.Utils.Metric.c_MetricUnits.pt) ? Asc.c_oAscDocumentUnits.Point : Asc.c_oAscDocumentUnits.Millimeter));
this.getApplication().getController('RightMenu').updateMetricUnit(); this.getApplication().getController('RightMenu').updateMetricUnit();
this.getApplication().getController('Toolbar').getView().updateMetricUnit(); this.getApplication().getController('Toolbar').getView().updateMetricUnit();
this.appOptions.canPreviewPrint && this.getApplication().getController('Print').getView('PrintWithPreview').updateMetricUnit();
}, },
onAdvancedOptions: function(type, advOptions, mode, formatOptions) { onAdvancedOptions: function(type, advOptions, mode, formatOptions) {
@ -2617,9 +2621,7 @@ define([
onPrint: function() { onPrint: function() {
if (!this.appOptions.canPrint || Common.Utils.ModalWindow.isVisible()) return; if (!this.appOptions.canPrint || Common.Utils.ModalWindow.isVisible()) return;
Common.NotificationCenter.trigger('file:print');
if (this.api)
this.api.asc_Print(new Asc.asc_CDownloadOptions(null, Common.Utils.isChrome || Common.Utils.isOpera || Common.Utils.isGecko && Common.Utils.firefoxVersion>86)); // if isChrome or isOpera == true use asc_onPrintUrl event
Common.component.Analytics.trackEvent('Print'); Common.component.Analytics.trackEvent('Print');
}, },
@ -2652,6 +2654,39 @@ define([
if (url) this.iframePrint.src = url; if (url) this.iframePrint.src = url;
}, },
onPrintQuick: function() {
if (!this.appOptions.canQuickPrint) return;
var value = Common.localStorage.getBool("de-hide-quick-print-warning"),
me = this,
handler = function () {
var printopt = new Asc.asc_CAdjustPrint();
printopt.asc_setNativeOptions({quickPrint: true});
var opts = new Asc.asc_CDownloadOptions();
opts.asc_setAdvancedOptions(printopt);
me.api.asc_Print(opts);
Common.component.Analytics.trackEvent('Print');
};
if (value) {
handler.call(this);
} else {
Common.UI.warning({
msg: this.textTryQuickPrint,
buttons: ['yes', 'no'],
primary: 'yes',
dontshow: true,
maxwidth: 500,
callback: function(btn, dontshow){
dontshow && Common.localStorage.setBool("de-hide-quick-print-warning", true);
if (btn === 'yes') {
setTimeout(handler, 1);
}
}
});
}
},
onClearDummyComment: function() { onClearDummyComment: function() {
this.dontCloseDummyComment = false; this.dontCloseDummyComment = false;
}, },
@ -2879,6 +2914,24 @@ define([
return true; return true;
}, },
onConfirmAction: function(id, apiCallback, data) {
var me = this;
if (id == Asc.c_oAscConfirm.ConfirmMaxChangesSize) {
Common.UI.warning({
title: this.notcriticalErrorTitle,
msg: this.confirmMaxChangesSize,
buttons: [{value: 'ok', caption: this.textUndo, primary: true}, {value: 'cancel', caption: this.textContinue}],
maxwidth: 600,
callback: _.bind(function(btn) {
if (apiCallback) {
apiCallback(btn === 'ok');
}
me.onEditComplete();
}, this)
});
}
},
leavePageText: 'You have unsaved changes in this document. Click \'Stay on this Page\' then \'Save\' to save them. Click \'Leave this Page\' to discard all the unsaved changes.', leavePageText: 'You have unsaved changes in this document. Click \'Stay on this Page\' then \'Save\' to save them. Click \'Leave this Page\' to discard all the unsaved changes.',
criticalErrorTitle: 'Error', criticalErrorTitle: 'Error',
notcriticalErrorTitle: 'Warning', notcriticalErrorTitle: 'Warning',
@ -3257,7 +3310,11 @@ define([
errorNoTOC: 'There\'s no table of contents to update. You can insert one from the References tab.', errorNoTOC: 'There\'s no table of contents to update. You can insert one from the References tab.',
textRequestMacros: 'A macro makes a request to URL. Do you want to allow the request to the %1?', textRequestMacros: 'A macro makes a request to URL. Do you want to allow the request to the %1?',
textRememberMacros: 'Remember my choice for all macros', textRememberMacros: 'Remember my choice for all macros',
errorTextFormWrongFormat: 'The value entered does not match the format of the field.' errorTextFormWrongFormat: 'The value entered does not match the format of the field.',
confirmMaxChangesSize: 'The size of actions exceeds the limitation set for your server.<br>Press "Undo" to cancel your last action or press "Continue" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).',
textUndo: 'Undo',
textContinue: 'Continue',
textTryQuickPrint: 'You have selected Quick print: the entire document will be printed on the last selected or default printer.<br>Do you want to continue?'
} }
})(), DE.Controllers.Main || {})) })(), DE.Controllers.Main || {}))
}); });

View file

@ -0,0 +1,574 @@
/*
*
* (c) Copyright Ascensio System SIA 2010-2022
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
define([
'core',
'documenteditor/main/app/view/FileMenuPanels'
], function () {
'use strict';
DE.Controllers.Print = Backbone.Controller.extend(_.extend({
views: [
'PrintWithPreview'
],
initialize: function() {
this.adjPrintParams = new Asc.asc_CAdjustPrint();
this._state = {
lock_doc: false,
firstPrintPage: 0
};
this._navigationPreview = {
pageCount: false,
currentPage: 0,
currentPreviewPage: 0
};
this._isPreviewVisible = false;
this.addListeners({
'PrintWithPreview': {
'show': _.bind(this.onShowMainSettingsPrint, this),
'render:after': _.bind(this.onAfterRender, this)
}
});
},
onLaunch: function() {
this.printSettings = this.createView('PrintWithPreview');
},
onAfterRender: function(view) {
var me = this;
this.printSettings.menu.on('menu:hide', _.bind(this.onHidePrintMenu, this));
this.printSettings.btnPrint.on('click', _.bind(this.onBtnPrint, this, true));
this.printSettings.btnPrintPdf.on('click', _.bind(this.onBtnPrint, this, false));
this.printSettings.btnPrevPage.on('click', _.bind(this.onChangePreviewPage, this, false));
this.printSettings.btnNextPage.on('click', _.bind(this.onChangePreviewPage, this, true));
this.printSettings.txtNumberPage.on({
'keypress:after': _.bind(this.onKeypressPageNumber, this),
'keyup:after': _.bind(this.onKeyupPageNumber, this)
});
this.printSettings.txtNumberPage.cmpEl.find('input').on('blur', _.bind(this.onBlurPageNumber, this));
this.printSettings.cmbPaperSize.on('selected', _.bind(this.onPaperSizeSelect, this));
this.printSettings.cmbPaperOrientation.on('selected', _.bind(this.onPaperOrientSelect, this));
this.printSettings.cmbPaperMargins.on('selected', _.bind(this.onPaperMarginsSelect, this));
this.printSettings.cmbRange.on('selected', _.bind(this.comboRangeChange, this));
this.printSettings.inputPages.on('changing', _.bind(this.inputPagesChanging, this));
this.printSettings.inputPages.validation = function(value) {
if (!_.isEmpty(value) && /[0-9,\-]/.test(value)) {
var res = [],
arr = value.split(',');
if (me._isPrint && arr.length>1)
return me.txtPrintRangeSingleRange;
for (var i=0; i<arr.length; i++) {
var item = arr[i];
if (!item) // empty
return me.txtPrintRangeInvalid;
var str = item.match(/\-/g);
if (str && str.length>1) // more than 1 symbol '-'
return me.txtPrintRangeInvalid;
if (!str) {// one number
var num = parseInt(item)-1;
(num>=0) && res.push(num);
} else { // range
var pages = item.split('-'),
start = (pages[0] ? parseInt(pages[0])-1 : 0),
end = (pages[1] ? parseInt(pages[1])-1 : me._navigationPreview.pageCount-1);
if (start>end) {
var num = start;
start = end;
end = num;
}
for (var j=start; j<=end; j++) {
(j>=0) && res.push(j);
}
}
}
if (res.length>0) {
me._state.firstPrintPage = res[0];
return true;
}
}
return me.txtPrintRangeInvalid;
};
Common.NotificationCenter.on('window:resize', _.bind(function () {
if (this._isPreviewVisible) {
this.api.asc_drawPrintPreview(this._navigationPreview.currentPreviewPage);
}
}, this));
Common.NotificationCenter.on('margins:update', _.bind(this.onUpdateLastCustomMargins, this));
var eventname = (/Firefox/i.test(navigator.userAgent))? 'DOMMouseScroll' : 'mousewheel';
this.printSettings.$previewBox.on(eventname, _.bind(this.onPreviewWheel, this));
},
setMode: function (mode) {
this.mode = mode;
this.printSettings && this.printSettings.setMode(mode);
},
setApi: function(o) {
this.api = o;
this.api.asc_registerCallback('asc_onDocSize', _.bind(this.onApiPageSize, this));
this.api.asc_registerCallback('asc_onPageOrient', _.bind(this.onApiPageOrient, this));
this.api.asc_registerCallback('asc_onSectionProps', _.bind(this.onSectionProps, this));
this.api.asc_registerCallback('asc_onCountPages', _.bind(this.onCountPages, this));
this.api.asc_registerCallback('asc_onCurrentPage', _.bind(this.onCurrentPage, this));
this.api.asc_registerCallback('asc_onLockDocumentProps', _.bind(this.onApiLockDocumentProps, this));
this.api.asc_registerCallback('asc_onUnLockDocumentProps', _.bind(this.onApiUnLockDocumentProps, this));
return this;
},
findPagePreset: function(w, h) {
var width = (w<h) ? w : h,
height = (w<h) ? h : w;
var panel = this.printSettings;
var store = panel.cmbPaperSize.store,
item = null;
for (var i=0; i<store.length-1; i++) {
var rec = store.at(i),
size = rec.get('size'),
pagewidth = size[0],
pageheight = size[1];
if (Math.abs(pagewidth - width) < 0.1 && Math.abs(pageheight - height) < 0.1) {
item = rec;
break;
}
}
return item ? item.get('caption') : undefined;
},
onApiPageSize: function(w, h) {
this._state.pgsize = [w, h];
if (this.printSettings.isVisible()) {
var width = this._state.pgorient ? w : h,
height = this._state.pgorient ? h : w;
var panel = this.printSettings;
var store = panel.cmbPaperSize.store,
item = null;
for (var i=0; i<store.length-1; i++) {
var rec = store.at(i),
size = rec.get('size'),
pagewidth = size[0],
pageheight = size[1];
if (Math.abs(pagewidth - width) < 0.1 && Math.abs(pageheight - height) < 0.1) {
item = rec;
break;
}
}
if (item)
panel.cmbPaperSize.setValue(item.get('value'));
else
panel.cmbPaperSize.setValue(this.txtCustom + ' (' + parseFloat(Common.Utils.Metric.fnRecalcFromMM(width).toFixed(2)) + Common.Utils.Metric.getCurrentMetricName() + ' x ' +
parseFloat(Common.Utils.Metric.fnRecalcFromMM(height).toFixed(2)) + Common.Utils.Metric.getCurrentMetricName() + ')');
} else {
this.isFillProps = false;
}
},
onApiPageOrient: function(isportrait) {
this._state.pgorient = !!isportrait;
if (this.printSettings.isVisible()) {
var item = this.printSettings.cmbPaperOrientation.store.findWhere({value: this._state.pgorient ? Asc.c_oAscPageOrientation.PagePortrait : Asc.c_oAscPageOrientation.PageLandscape});
if (item) this.printSettings.cmbPaperOrientation.setValue(item.get('value'));
}
},
onSectionProps: function(props) {
if (!props) return;
this._state.sectionprops = props;
if (this.printSettings.isVisible()) {
var left = props.get_LeftMargin(),
top = props.get_TopMargin(),
right = props.get_RightMargin(),
bottom = props.get_BottomMargin();
this._state.pgmargins = [top, left, bottom, right];
var store = this.printSettings.cmbPaperMargins.store,
item = null;
for (var i=0; i<store.length-1; i++) {
var rec = store.at(i),
size = rec.get('size');
if (typeof(size) == 'object' &&
Math.abs(size[0] - top) < 0.1 && Math.abs(size[1] - left) < 0.1 &&
Math.abs(size[2] - bottom) < 0.1 && Math.abs(size[3] - right) < 0.1) {
item = rec;
break;
}
}
if (item)
this.printSettings.cmbPaperMargins.setValue(item.get('value'));
else
this.printSettings.cmbPaperMargins.setValue(this.txtCustom);
}
},
comboRangeChange: function(combo, record) {
if (record.value === -1) {
var me = this;
setTimeout(function(){
me.printSettings.inputPages.focus();
}, 50);
} else {
this.printSettings.inputPages.setValue('');
}
this.printSettings.inputPages.showError();
},
onCountPages: function(count) {
this._navigationPreview.pageCount = count;
if (this._navigationPreview.currentPreviewPage > count - 1) {
this._navigationPreview.currentPreviewPage = Math.max(0, count - 1);
if (this.printSettings.isVisible()) {
this.api.asc_drawPrintPreview(this._navigationPreview.currentPreviewPage);
this.updateNavigationButtons(this._navigationPreview.currentPreviewPage, count);
}
}
},
onCurrentPage: function(number) {
this._navigationPreview.currentPreviewPage = number;
if (this.printSettings.isVisible()) {
this.api.asc_drawPrintPreview(this._navigationPreview.currentPreviewPage);
this.updateNavigationButtons(this._navigationPreview.currentPreviewPage, this._navigationPreview.pageCount);
}
},
onShowMainSettingsPrint: function() {
var me = this;
this.printSettings.$previewBox.removeClass('hidden');
this.onUpdateLastCustomMargins(this._state.lastmargins);
this._state.pgsize && this.onApiPageSize(this._state.pgsize[0], this._state.pgsize[1]);
this.onApiPageOrient(this._state.pgorient);
this._state.sectionprops && this.onSectionProps(this._state.sectionprops);
var opts = new Asc.asc_CDownloadOptions(null, Common.Utils.isChrome || Common.Utils.isOpera || Common.Utils.isGecko && Common.Utils.firefoxVersion>86);
opts.asc_setAdvancedOptions(this.adjPrintParams);
this.api.asc_initPrintPreview('print-preview', opts);
this._navigationPreview.currentPreviewPage = this._navigationPreview.currentPage = this.api.getCurrentPage();
this.api.asc_drawPrintPreview(this._navigationPreview.currentPreviewPage);
this.updateNavigationButtons(this._navigationPreview.currentPreviewPage, this._navigationPreview.pageCount);
this.SetDisabled();
this._isPreviewVisible = true;
},
onPaperSizeSelect: function(combo, record) {
this._state.pgsize = [0, 0];
if (record.value !== -1) {
if (this.checkPageSize(record.size[0], record.size[1])) {
var section = this.api.asc_GetSectionProps();
this.onApiPageSize(section.get_W(), section.get_H());
return;
} else
this.api.change_DocSize(record.size[0], record.size[1]);
} else {
var win, props,
me = this;
win = new DE.Views.PageSizeDialog({
checkPageSize: _.bind(this.checkPageSize, this),
handler: function(dlg, result) {
if (result == 'ok') {
props = dlg.getSettings();
me.api.change_DocSize(props[0], props[1]);
Common.NotificationCenter.trigger('edit:complete');
}
}
});
win.show();
win.setSettings(me.api.asc_GetSectionProps());
}
Common.NotificationCenter.trigger('edit:complete');
},
onPaperMarginsSelect: function(combo, record) {
this._state.pgmargins = undefined;
if (record.value !== -1) {
if (this.checkPageSize(undefined, undefined, record.size[1], record.size[3], record.size[0], record.size[2])) {
this.onSectionProps(this.api.asc_GetSectionProps());
return;
} else {
var props = new Asc.CDocumentSectionProps();
props.put_TopMargin(record.size[0]);
props.put_LeftMargin(record.size[1]);
props.put_BottomMargin(record.size[2]);
props.put_RightMargin(record.size[3]);
this.api.asc_SetSectionProps(props);
}
} else {
var win, props,
me = this;
win = new DE.Views.PageMarginsDialog({
api: me.api,
handler: function(dlg, result) {
if (result == 'ok') {
props = dlg.getSettings();
Common.localStorage.setItem("de-pgmargins-top", props.get_TopMargin());
Common.localStorage.setItem("de-pgmargins-left", props.get_LeftMargin());
Common.localStorage.setItem("de-pgmargins-bottom", props.get_BottomMargin());
Common.localStorage.setItem("de-pgmargins-right", props.get_RightMargin());
Common.NotificationCenter.trigger('margins:update', props);
me.api.asc_SetSectionProps(props);
Common.NotificationCenter.trigger('edit:complete');
}
}
});
win.show();
win.setSettings(me.api.asc_GetSectionProps());
}
Common.NotificationCenter.trigger('edit:complete');
},
onUpdateLastCustomMargins: function(props) {
this._state.lastmargins = props;
if (this.printSettings.isVisible()) {
var top = props ? props.get_TopMargin() : Common.localStorage.getItem("de-pgmargins-top"),
left = props ? props.get_LeftMargin() : Common.localStorage.getItem("de-pgmargins-left"),
bottom = props ? props.get_BottomMargin() : Common.localStorage.getItem("de-pgmargins-bottom"),
right = props ? props.get_RightMargin() : Common.localStorage.getItem("de-pgmargins-right");
if ( top!==null && left!==null && bottom!==null && right!==null ) {
var rec = this.printSettings.cmbPaperMargins.store.at(0);
if (rec.get('value')===-2)
rec.set('size', [parseFloat(top), parseFloat(left), parseFloat(bottom), parseFloat(right)]);
else
this.printSettings.cmbPaperMargins.store.unshift({ value: -2, displayValue: this.textMarginsLast, size: [parseFloat(top), parseFloat(left), parseFloat(bottom), parseFloat(right)]});
this.printSettings.cmbPaperMargins.onResetItems();
}
}
},
onPaperOrientSelect: function(combo, record) {
this._state.pgorient = undefined;
if (this.api) {
this.api.change_PageOrient(record.value === Asc.c_oAscPageOrientation.PagePortrait);
}
Common.NotificationCenter.trigger('edit:complete');
},
checkPageSize: function(width, height, left, right, top, bottom) {
var section = this.api.asc_GetSectionProps();
(width===undefined) && (width = parseFloat(section.get_W().toFixed(4)));
(height===undefined) && (height = parseFloat(section.get_H().toFixed(4)));
(left===undefined) && (left = parseFloat(section.get_LeftMargin().toFixed(4)));
(right===undefined) && (right = parseFloat(section.get_RightMargin().toFixed(4)));
(top===undefined) && (top = parseFloat(section.get_TopMargin().toFixed(4)));
(bottom===undefined) && (bottom = parseFloat(section.get_BottomMargin().toFixed(4)));
var gutterLeft = section.get_GutterAtTop() ? 0 : parseFloat(section.get_Gutter().toFixed(4)),
gutterTop = section.get_GutterAtTop() ? parseFloat(section.get_Gutter().toFixed(4)) : 0;
var errmsg = null;
if (left + right + gutterLeft > width-12.7 )
errmsg = this.txtMarginsW;
else if (top + bottom + gutterTop > height-2.6 )
errmsg = this.txtMarginsH;
if (errmsg) {
Common.UI.warning({
title: this.notcriticalErrorTitle,
msg : errmsg,
callback: function() {
Common.NotificationCenter.trigger('edit:complete');
}
});
return true;
}
},
getPrintParams: function() {
return this.adjPrintParams;
},
onHidePrintMenu: function () {
if (this._isPreviewVisible) {
this.api.asc_closePrintPreview && this.api.asc_closePrintPreview();
this._isPreviewVisible = false;
}
},
onChangePreviewPage: function (next) {
var index = this._navigationPreview.currentPreviewPage;
if (next) {
index++;
index = Math.min(index, this._navigationPreview.pageCount - 1);
} else {
index--;
index = Math.max(index, 0);
}
this.api.goToPage(index);
},
onKeypressPageNumber: function (input, e) {
if (e.keyCode === Common.UI.Keys.RETURN) {
var box = this.printSettings.$el.find('#print-number-page'),
edit = box.find('input[type=text]'), page = parseInt(edit.val());
if (!page || page > this._navigationPreview.pageCount || page < 0) {
edit.select();
this.printSettings.txtNumberPage.setValue(this._navigationPreview.currentPreviewPage + 1);
this.printSettings.txtNumberPage.checkValidate();
return false;
}
box.focus(); // for IE
this.api.goToPage(page-1);
this.api.asc_enableKeyEvents(true);
return false;
}
},
onKeyupPageNumber: function (input, e) {
if (e.keyCode === Common.UI.Keys.ESC) {
var box = this.printSettings.$el.find('#print-number-page');
box.focus(); // for IE
this.api.asc_enableKeyEvents(true);
return false;
}
},
onBlurPageNumber: function () {
if (this.printSettings.txtNumberPage.getValue() != this._navigationPreview.currentPreviewPage + 1) {
this.printSettings.txtNumberPage.setValue(this._navigationPreview.currentPreviewPage + 1);
this.printSettings.txtNumberPage.checkValidate();
}
},
onPreviewWheel: function (e) {
if (e.ctrlKey) {
e.preventDefault();
e.stopImmediatePropagation();
}
var forward = (e.deltaY || (e.detail && -e.detail) || e.wheelDelta) < 0;
this.onChangePreviewPage(forward);
},
updateNavigationButtons: function (page, count) {
this._navigationPreview.currentPage = page;
this.printSettings.updateCurrentPage(page);
this._navigationPreview.pageCount = count;
this.printSettings.updateCountOfPages(count);
this.disableNavButtons();
},
disableNavButtons: function (force) {
if (force) {
this.printSettings.btnPrevPage.setDisabled(true);
this.printSettings.btnNextPage.setDisabled(true);
return;
}
var curPage = this._navigationPreview.currentPage,
pageCount = this._navigationPreview.pageCount;
this.printSettings.btnPrevPage.setDisabled(curPage < 1);
this.printSettings.btnNextPage.setDisabled(curPage > pageCount - 2);
},
onBtnPrint: function(print) {
this._isPrint = print;
if (this.printSettings.cmbRange.getValue()===-1 && this.printSettings.inputPages.checkValidate() !== true) {
this.printSettings.inputPages.focus();
this.isInputFirstChange = true;
return;
}
if (this.printSettings.cmbRange.getValue()==='all')
this._state.firstPrintPage = 0;
else if (this.printSettings.cmbRange.getValue()==='current')
this._state.firstPrintPage = this._navigationPreview.currentPage;
var size = this.api.asc_getPageSize(this._state.firstPrintPage);
this.adjPrintParams.asc_setNativeOptions({
pages: this.printSettings.cmbRange.getValue()===-1 ? this.printSettings.inputPages.getValue() : this.printSettings.cmbRange.getValue(),
paperSize: {
w: size ? size['W'] : undefined,
h: size ? size['H'] : undefined,
preset: size ? this.findPagePreset(size['W'], size['H']) : undefined
},
paperOrientation: size ? (size['H'] > size['W'] ? 'portrait' : 'landscape') : null
});
this.printSettings.menu.hide();
if ( print ) {
var opts = new Asc.asc_CDownloadOptions(null, Common.Utils.isChrome || Common.Utils.isOpera || Common.Utils.isGecko && Common.Utils.firefoxVersion>86);
opts.asc_setAdvancedOptions(this.adjPrintParams);
this.api.asc_Print(opts);
} else {
var opts = new Asc.asc_CDownloadOptions(Asc.c_oAscFileType.PDF);
opts.asc_setAdvancedOptions(this.adjPrintParams);
this.api.asc_DownloadAs(opts);
}
},
inputPagesChanging: function (input, value) {
this.isInputFirstChange && this.printSettings.inputPages.showError();
this.isInputFirstChange = false;
if (value.length<1)
this.printSettings.cmbRange.setValue('all');
else if (this.printSettings.cmbRange.getValue()!==-1)
this.printSettings.cmbRange.setValue(-1);
},
onApiLockDocumentProps: function() {
this._state.lock_doc = true;
this.SetDisabled();
},
onApiUnLockDocumentProps: function() {
this._state.lock_doc = false;
this.SetDisabled();
},
SetDisabled: function() {
if (this.printSettings.isVisible()) {
var disable = !this.mode.isEdit || this._state.lock_doc;
this.printSettings.cmbPaperSize.setDisabled(disable);
this.printSettings.cmbPaperMargins.setDisabled(disable);
this.printSettings.cmbPaperOrientation.setDisabled(disable);
}
},
txtCustom: 'Custom',
txtPrintRangeInvalid: 'Invalid print range',
textMarginsLast: 'Last Custom',
txtPrintRangeSingleRange: 'Enter either a single page number or a single page range (for example, 5-12). Or you can Print to PDF.'
}, DE.Controllers.Print || {}));
});

View file

@ -206,7 +206,7 @@ define([
if (control_props && control_props.get_FormPr() && this.rightmenu.formSettings) { if (control_props && control_props.get_FormPr() && this.rightmenu.formSettings) {
var spectype = control_props.get_SpecificType(); var spectype = control_props.get_SpecificType();
if (spectype==Asc.c_oAscContentControlSpecificType.CheckBox || spectype==Asc.c_oAscContentControlSpecificType.Picture || if (spectype==Asc.c_oAscContentControlSpecificType.CheckBox || spectype==Asc.c_oAscContentControlSpecificType.Picture || spectype==Asc.c_oAscContentControlSpecificType.Complex ||
spectype==Asc.c_oAscContentControlSpecificType.ComboBox || spectype==Asc.c_oAscContentControlSpecificType.DropDownList || spectype==Asc.c_oAscContentControlSpecificType.None) { spectype==Asc.c_oAscContentControlSpecificType.ComboBox || spectype==Asc.c_oAscContentControlSpecificType.DropDownList || spectype==Asc.c_oAscContentControlSpecificType.None) {
settingsType = Common.Utils.documentSettingsType.Form; settingsType = Common.Utils.documentSettingsType.Form;
this._settings[settingsType].props = control_props; this._settings[settingsType].props = control_props;

View file

@ -129,6 +129,10 @@ define([
var _main = this.getApplication().getController('Main'); var _main = this.getApplication().getController('Main');
_main.onPrint(); _main.onPrint();
}, },
'print-quick': function (opts) {
var _main = this.getApplication().getController('Main');
_main.onPrintQuick();
},
'save': function (opts) { 'save': function (opts) {
this.api.asc_Save(); this.api.asc_Save();
}, },
@ -1057,9 +1061,7 @@ define([
}, },
onPrint: function(e) { onPrint: function(e) {
if (this.api) Common.NotificationCenter.trigger('file:print', this.toolbar);
this.api.asc_Print(new Asc.asc_CDownloadOptions(null, Common.Utils.isChrome || Common.Utils.isOpera || Common.Utils.isGecko && Common.Utils.firefoxVersion>86)); // if isChrome or isOpera == true use asc_onPrintUrl event
Common.NotificationCenter.trigger('edit:complete', this.toolbar); Common.NotificationCenter.trigger('edit:complete', this.toolbar);
Common.component.Analytics.trackEvent('Print'); Common.component.Analytics.trackEvent('Print');
@ -1748,15 +1750,11 @@ define([
handler: function(dlg, result) { handler: function(dlg, result) {
if (result == 'ok') { if (result == 'ok') {
props = dlg.getSettings(); props = dlg.getSettings();
var mnu = me.toolbar.btnPageMargins.menu.items[0];
mnu.setVisible(true);
mnu.setChecked(true);
mnu.options.value = mnu.value = [props.get_TopMargin(), props.get_LeftMargin(), props.get_BottomMargin(), props.get_RightMargin()];
$(mnu.el).html(mnu.template({id: Common.UI.getId(), caption : mnu.caption, options : mnu.options}));
Common.localStorage.setItem("de-pgmargins-top", props.get_TopMargin()); Common.localStorage.setItem("de-pgmargins-top", props.get_TopMargin());
Common.localStorage.setItem("de-pgmargins-left", props.get_LeftMargin()); Common.localStorage.setItem("de-pgmargins-left", props.get_LeftMargin());
Common.localStorage.setItem("de-pgmargins-bottom", props.get_BottomMargin()); Common.localStorage.setItem("de-pgmargins-bottom", props.get_BottomMargin());
Common.localStorage.setItem("de-pgmargins-right", props.get_RightMargin()); Common.localStorage.setItem("de-pgmargins-right", props.get_RightMargin());
Common.NotificationCenter.trigger('margins:update', props);
me.api.asc_SetSectionProps(props); me.api.asc_SetSectionProps(props);
Common.NotificationCenter.trigger('edit:complete', me.toolbar); Common.NotificationCenter.trigger('edit:complete', me.toolbar);

View file

@ -71,7 +71,8 @@ define([
this.addListeners({ this.addListeners({
'FileMenu': { 'FileMenu': {
'menu:hide': me.onFileMenu.bind(me, 'hide'), 'menu:hide': me.onFileMenu.bind(me, 'hide'),
'menu:show': me.onFileMenu.bind(me, 'show') 'menu:show': me.onFileMenu.bind(me, 'show'),
'settings:apply': me.applySettings.bind(me)
}, },
'Toolbar': { 'Toolbar': {
'render:before' : function (toolbar) { 'render:before' : function (toolbar) {
@ -79,6 +80,11 @@ define([
toolbar.setExtra('right', me.header.getPanel('right', config)); toolbar.setExtra('right', me.header.getPanel('right', config));
if (!config.isEdit || config.customization && !!config.customization.compactHeader) if (!config.isEdit || config.customization && !!config.customization.compactHeader)
toolbar.setExtra('left', me.header.getPanel('left', config)); toolbar.setExtra('left', me.header.getPanel('left', config));
var value = Common.localStorage.getBool("de-settings-quick-print-button", true);
Common.Utils.InternalSettings.set("de-settings-quick-print-button", value);
if (me.header && me.header.btnPrintQuick)
me.header.btnPrintQuick[value ? 'show' : 'hide']();
}, },
'view:compact' : function (toolbar, state) { 'view:compact' : function (toolbar, state) {
me.viewport.vlayout.getItem('toolbar').height = state ? me.viewport.vlayout.getItem('toolbar').height = state ?
@ -100,6 +106,8 @@ define([
'print:disabled' : function (state) { 'print:disabled' : function (state) {
if ( me.header.btnPrint ) if ( me.header.btnPrint )
me.header.btnPrint.setDisabled(state); me.header.btnPrint.setDisabled(state);
if ( me.header.btnPrintQuick )
me.header.btnPrintQuick.setDisabled(state);
}, },
'save:disabled' : function (state) { 'save:disabled' : function (state) {
if ( me.header.btnSave ) if ( me.header.btnSave )
@ -255,12 +263,21 @@ define([
me.header.lockHeaderBtns( 'users', _need_disable ); me.header.lockHeaderBtns( 'users', _need_disable );
}, },
applySettings: function () {
var value = Common.localStorage.getBool("de-settings-quick-print-button", true);
Common.Utils.InternalSettings.set("de-settings-quick-print-button", value);
if (this.header && this.header.btnPrintQuick)
this.header.btnPrintQuick[value ? 'show' : 'hide']();
},
onApiCoAuthoringDisconnect: function(enableDownload) { onApiCoAuthoringDisconnect: function(enableDownload) {
if (this.header) { if (this.header) {
if (this.header.btnDownload && !enableDownload) if (this.header.btnDownload && !enableDownload)
this.header.btnDownload.hide(); this.header.btnDownload.hide();
if (this.header.btnPrint && !enableDownload) if (this.header.btnPrint && !enableDownload)
this.header.btnPrint.hide(); this.header.btnPrint.hide();
if (this.header.btnPrintQuick && !enableDownload)
this.header.btnPrintQuick.hide();
if (this.header.btnEdit) if (this.header.btnEdit)
this.header.btnEdit.hide(); this.header.btnEdit.hide();
this.header.lockHeaderBtns( 'rename-user', true); this.header.lockHeaderBtns( 'rename-user', true);

View file

@ -8,6 +8,7 @@
<li id="fm-btn-save-copy" class="fm-btn"></li> <li id="fm-btn-save-copy" class="fm-btn"></li>
<li id="fm-btn-save-desktop" class="fm-btn"></li> <li id="fm-btn-save-desktop" class="fm-btn"></li>
<li id="fm-btn-print" class="fm-btn"></li> <li id="fm-btn-print" class="fm-btn"></li>
<li id="fm-btn-print-with-preview" class="fm-btn"></li>
<li id="fm-btn-rename" class="fm-btn"></li> <li id="fm-btn-rename" class="fm-btn"></li>
<li id="fm-btn-protect" class="fm-btn"></li> <li id="fm-btn-protect" class="fm-btn"></li>
<li class="devider"></li> <li class="devider"></li>
@ -34,4 +35,5 @@
<div id="panel-settings" class="content-box"></div> <div id="panel-settings" class="content-box"></div>
<div id="panel-help" class="content-box"></div> <div id="panel-help" class="content-box"></div>
<div id="panel-protect" class="content-box"></div> <div id="panel-protect" class="content-box"></div>
<div id="panel-print" class="content-box"></div>
</div> </div>

View file

@ -165,7 +165,7 @@ define([
canComment = canComment && !(spectype==Asc.c_oAscContentControlSpecificType.CheckBox || spectype==Asc.c_oAscContentControlSpecificType.Picture || canComment = canComment && !(spectype==Asc.c_oAscContentControlSpecificType.CheckBox || spectype==Asc.c_oAscContentControlSpecificType.Picture ||
spectype==Asc.c_oAscContentControlSpecificType.ComboBox || spectype==Asc.c_oAscContentControlSpecificType.DropDownList || spectype==Asc.c_oAscContentControlSpecificType.DateTime); spectype==Asc.c_oAscContentControlSpecificType.ComboBox || spectype==Asc.c_oAscContentControlSpecificType.DropDownList || spectype==Asc.c_oAscContentControlSpecificType.DateTime);
canEditControl = spectype !== undefined && (spectype === Asc.c_oAscContentControlSpecificType.None || spectype === Asc.c_oAscContentControlSpecificType.ComboBox) && !control_lock; canEditControl = spectype !== undefined && (spectype === Asc.c_oAscContentControlSpecificType.None || spectype === Asc.c_oAscContentControlSpecificType.ComboBox || spectype === Asc.c_oAscContentControlSpecificType.Complex) && !control_lock;
} }
me.menuViewUndo.setVisible(me.mode.canCoAuthoring && me.mode.canComments && !me._isDisabled); me.menuViewUndo.setVisible(me.mode.canCoAuthoring && me.mode.canComments && !me._isDisabled);
@ -732,9 +732,9 @@ define([
me.menuImgPrint.setDisabled(!cancopy); me.menuImgPrint.setDisabled(!cancopy);
var lockreview = Common.Utils.InternalSettings.get("de-accept-reject-lock"); var lockreview = Common.Utils.InternalSettings.get("de-accept-reject-lock");
me.menuImgAccept.setVisible(!lockreview); me.menuImgAccept.setVisible(me.mode.canReview && !me.mode.isReviewOnly && !lockreview);
me.menuImgReject.setVisible(!lockreview); me.menuImgReject.setVisible(me.mode.canReview && !me.mode.isReviewOnly && !lockreview);
menuImgReviewSeparator.setVisible(!lockreview); menuImgReviewSeparator.setVisible(me.mode.canReview && !me.mode.isReviewOnly && !lockreview);
var signGuid = (value.imgProps && value.imgProps.value && me.mode.isSignatureSupport) ? value.imgProps.value.asc_getSignatureId() : undefined, var signGuid = (value.imgProps && value.imgProps.value && me.mode.isSignatureSupport) ? value.imgProps.value.asc_getSignatureId() : undefined,
isInSign = !!signGuid; isInSign = !!signGuid;
@ -1302,9 +1302,9 @@ define([
me.menuTablePrint.setDisabled(!cancopy); me.menuTablePrint.setDisabled(!cancopy);
var lockreview = Common.Utils.InternalSettings.get("de-accept-reject-lock"); var lockreview = Common.Utils.InternalSettings.get("de-accept-reject-lock");
me.menuTableAccept.setVisible(!lockreview); me.menuTableAccept.setVisible(me.mode.canReview && !me.mode.isReviewOnly && !lockreview);
me.menuTableReject.setVisible(!lockreview); me.menuTableReject.setVisible(me.mode.canReview && !me.mode.isReviewOnly && !lockreview);
menuTableReviewSeparator.setVisible(!lockreview); menuTableReviewSeparator.setVisible(me.mode.canReview && !me.mode.isReviewOnly && !lockreview);
// bullets & numbering // bullets & numbering
var listId = me.api.asc_GetCurrentNumberingId(), var listId = me.api.asc_GetCurrentNumberingId(),
@ -1420,13 +1420,10 @@ define([
me.menuAddCommentTable.setDisabled(value.paraProps!==undefined && value.paraProps.locked===true); me.menuAddCommentTable.setDisabled(value.paraProps!==undefined && value.paraProps.locked===true);
/** coauthoring end **/ /** coauthoring end **/
var in_field = me.api.asc_GetCurrentComplexField(); var in_field = me.api.asc_HaveFields(true);
me.menuTableRefreshField.setVisible(!!in_field); me.menuTableRefreshField.setVisible(!!in_field);
me.menuTableRefreshField.setDisabled(disabled); me.menuTableRefreshField.setDisabled(disabled);
menuTableFieldSeparator.setVisible(!!in_field); menuTableFieldSeparator.setVisible(!!in_field);
if (in_field) {
me.menuTableRefreshField.options.fieldProps = in_field;
}
}, },
items: [ items: [
me.menuSpellCheckTable, me.menuSpellCheckTable,
@ -1917,9 +1914,9 @@ define([
me.menuParaPrint.setDisabled(!cancopy); me.menuParaPrint.setDisabled(!cancopy);
var lockreview = Common.Utils.InternalSettings.get("de-accept-reject-lock"); var lockreview = Common.Utils.InternalSettings.get("de-accept-reject-lock");
me.menuParaAccept.setVisible(!lockreview); me.menuParaAccept.setVisible(me.mode.canReview && !me.mode.isReviewOnly && !lockreview);
me.menuParaReject.setVisible(!lockreview); me.menuParaReject.setVisible(me.mode.canReview && !me.mode.isReviewOnly && !lockreview);
menuParaReviewSeparator.setVisible(!lockreview); menuParaReviewSeparator.setVisible(me.mode.canReview && !me.mode.isReviewOnly && !lockreview);
// spellCheck // spellCheck
var spell = (value.spellProps!==undefined && value.spellProps.value.get_Checked()===false); var spell = (value.spellProps!==undefined && value.spellProps.value.get_Checked()===false);
@ -1996,13 +1993,10 @@ define([
me.menuAddCommentPara.setDisabled(value.paraProps && value.paraProps.locked === true); me.menuAddCommentPara.setDisabled(value.paraProps && value.paraProps.locked === true);
/** coauthoring end **/ /** coauthoring end **/
var in_field = me.api.asc_GetCurrentComplexField(); var in_field = me.api.asc_HaveFields(true);
me.menuParaRefreshField.setVisible(!!in_field); me.menuParaRefreshField.setVisible(!!in_field);
me.menuParaRefreshField.setDisabled(disabled); me.menuParaRefreshField.setDisabled(disabled);
menuParaFieldSeparator.setVisible(!!in_field); menuParaFieldSeparator.setVisible(!!in_field);
if (in_field) {
me.menuParaRefreshField.options.fieldProps = in_field;
}
var listId = me.api.asc_GetCurrentNumberingId(), var listId = me.api.asc_GetCurrentNumberingId(),
in_list = (listId !== null); in_list = (listId !== null);

View file

@ -67,7 +67,7 @@ define([
if (item) { if (item) {
var panel = this.panels[item.options.action]; var panel = this.panels[item.options.action];
if (item.options.action === 'help') { if (item.options.action === 'help') {
if ( panel.usedHelpCenter === true && navigator.onLine ) { if ( panel.noHelpContents === true && navigator.onLine ) {
this.fireEvent('item:click', [this, 'external-help', true]); this.fireEvent('item:click', [this, 'external-help', true]);
window.open(panel.urlHelpCenter, '_blank'); window.open(panel.urlHelpCenter, '_blank');
return; return;
@ -158,6 +158,17 @@ define([
dataHintOffset: [2, 14] dataHintOffset: [2, 14]
}); });
this.miPrintWithPreview = new Common.UI.MenuItem({
el : $markup.elementById('#fm-btn-print-with-preview'),
action : 'printpreview',
caption : this.btnPrintCaption,
canFocused: false,
dataHint: 1,
dataHintDirection: 'left-top',
dataHintOffset: [2, 14],
dataHintTitle: 'P'
});
this.miPrint = new Common.UI.MenuItem({ this.miPrint = new Common.UI.MenuItem({
el : $markup.elementById('#fm-btn-print'), el : $markup.elementById('#fm-btn-print'),
action : 'print', action : 'print',
@ -292,6 +303,7 @@ define([
this.miSaveCopyAs, this.miSaveCopyAs,
this.miSaveAs, this.miSaveAs,
this.miPrint, this.miPrint,
this.miPrintWithPreview,
this.miRename, this.miRename,
this.miProtect, this.miProtect,
this.miRecent, this.miRecent,
@ -381,7 +393,8 @@ define([
this.miSaveAs[((this.mode.canDownload || this.mode.canDownloadOrigin) && this.mode.isDesktopApp && this.mode.isOffline)?'show':'hide'](); this.miSaveAs[((this.mode.canDownload || this.mode.canDownloadOrigin) && this.mode.isDesktopApp && this.mode.isOffline)?'show':'hide']();
this.miSave[this.mode.isEdit && Common.UI.LayoutManager.isElementVisible('toolbar-file-save') ?'show':'hide'](); this.miSave[this.mode.isEdit && Common.UI.LayoutManager.isElementVisible('toolbar-file-save') ?'show':'hide']();
this.miEdit[!this.mode.isEdit && this.mode.canEdit && this.mode.canRequestEditRights ?'show':'hide'](); this.miEdit[!this.mode.isEdit && this.mode.canEdit && this.mode.canRequestEditRights ?'show':'hide']();
this.miPrint[this.mode.canPrint?'show':'hide'](); this.miPrint[this.mode.canPrint && !this.mode.canPreviewPrint ?'show':'hide']();
this.miPrintWithPreview[this.mode.canPreviewPrint?'show':'hide']();
this.miRename[(this.mode.canRename && !this.mode.isDesktopApp) ?'show':'hide'](); this.miRename[(this.mode.canRename && !this.mode.isDesktopApp) ?'show':'hide']();
this.miProtect[this.mode.canProtect ?'show':'hide'](); this.miProtect[this.mode.canProtect ?'show':'hide']();
separatorVisible = (this.mode.canDownload || this.mode.canDownloadOrigin || this.mode.isEdit && Common.UI.LayoutManager.isElementVisible('toolbar-file-save') || this.mode.canPrint || this.mode.canProtect || separatorVisible = (this.mode.canDownload || this.mode.canDownloadOrigin || this.mode.isEdit && Common.UI.LayoutManager.isElementVisible('toolbar-file-save') || this.mode.canPrint || this.mode.canProtect ||
@ -463,6 +476,12 @@ define([
this.panels['help'].setLangConfig(this.mode.lang); this.panels['help'].setLangConfig(this.mode.lang);
} }
if (this.mode.canPreviewPrint) {
var printPanel = DE.getController('Print').getView('PrintWithPreview');
printPanel.menu = this;
!this.panels['printpreview'] && (this.panels['printpreview'] = printPanel.render(this.$el.find('#panel-print')));
}
if ( Common.Controllers.Desktop.isActive() ) { if ( Common.Controllers.Desktop.isActive() ) {
$('<li id="fm-btn-local-open" class="fm-btn"/>').insertAfter($('#fm-btn-recent', this.$el)); $('<li id="fm-btn-local-open" class="fm-btn"/>').insertAfter($('#fm-btn-recent', this.$el));
this.items.push( this.items.push(

View file

@ -338,12 +338,15 @@ define([
'<tr class="edit">', '<tr class="edit">',
'<td colspan="2"><span id="fms-chb-align-guides"></span></td>', '<td colspan="2"><span id="fms-chb-align-guides"></span></td>',
'</tr>', '</tr>',
'<tr class="edit">',
'<td colspan="2"><div id="fms-chb-input-mode"></div></td>',
'</tr>',
'<tr>', '<tr>',
'<td colspan="2"><div id="fms-chb-use-alt-key"></div></td>', '<td colspan="2"><div id="fms-chb-use-alt-key"></div></td>',
'</tr>', '</tr>',
'<tr class="quick-print">',
'<td colspan="2"><div style="display: flex;"><div id="fms-chb-quick-print"></div>',
'<span style ="display: flex; flex-direction: column;"><label><%= scope.txtQuickPrint %></label>',
'<label class="comment-text"><%= scope.txtQuickPrintTip %></label></span></div>',
'</td>',
'</tr>',
'<tr class="themes">', '<tr class="themes">',
'<td><label><%= scope.strTheme %></label></td>', '<td><label><%= scope.strTheme %></label></td>',
'<td>', '<td>',
@ -395,14 +398,6 @@ define([
var me = this; var me = this;
var $markup = $(this.template({scope: this})); var $markup = $(this.template({scope: this}));
this.chInputMode = new Common.UI.CheckBox({
el: $markup.findById('#fms-chb-input-mode'),
labelText: this.txtHieroglyphs,
dataHint: '2',
dataHintDirection: 'left',
dataHintOffset: 'small'
});
this.chUseAltKey = new Common.UI.CheckBox({ this.chUseAltKey = new Common.UI.CheckBox({
el: $markup.findById('#fms-chb-use-alt-key'), el: $markup.findById('#fms-chb-use-alt-key'),
labelText: Common.Utils.isMac ? this.txtUseOptionKey : this.txtUseAltKey, labelText: Common.Utils.isMac ? this.txtUseOptionKey : this.txtUseAltKey,
@ -709,6 +704,17 @@ define([
})).on('click', _.bind(me.applySettings, me)); })).on('click', _.bind(me.applySettings, me));
}); });
this.chQuickPrint = new Common.UI.CheckBox({
el: $markup.findById('#fms-chb-quick-print'),
labelText: '',
dataHint: '2',
dataHintDirection: 'left',
dataHintOffset: 'small'
});
this.chQuickPrint.$el.parent().on('click', function (){
me.chQuickPrint.setValue(!me.chQuickPrint.isChecked());
});
this.pnlSettings = $markup.find('.flex-settings').addBack().filter('.flex-settings'); this.pnlSettings = $markup.find('.flex-settings').addBack().filter('.flex-settings');
this.pnlApply = $markup.find('.fms-flex-apply').addBack().filter('.fms-flex-apply'); this.pnlApply = $markup.find('.fms-flex-apply').addBack().filter('.fms-flex-apply');
this.pnlTable = this.pnlSettings.find('table'); this.pnlTable = this.pnlSettings.find('table');
@ -773,9 +779,9 @@ define([
$('tr.view-review', this.el)[mode.canViewReview ? 'show' : 'hide'](); $('tr.view-review', this.el)[mode.canViewReview ? 'show' : 'hide']();
$('tr.spellcheck', this.el)[mode.isEdit && Common.UI.FeaturesManager.canChange('spellcheck') ? 'show' : 'hide'](); $('tr.spellcheck', this.el)[mode.isEdit && Common.UI.FeaturesManager.canChange('spellcheck') ? 'show' : 'hide']();
$('tr.comments', this.el)[mode.canCoAuthoring ? 'show' : 'hide'](); $('tr.comments', this.el)[mode.canCoAuthoring ? 'show' : 'hide']();
/** coauthoring end **/ /** coauthoring end **/
$('tr.quick-print', this.el)[mode.canQuickPrint ? 'show' : 'hide']();
$('tr.macros', this.el)[(mode.customization && mode.customization.macros===false) ? 'hide' : 'show'](); $('tr.macros', this.el)[(mode.customization && mode.customization.macros===false) ? 'hide' : 'show']();
if ( !Common.UI.Themes.available() ) { if ( !Common.UI.Themes.available() ) {
$('tr.themes, tr.themes + tr.divider', this.el).hide(); $('tr.themes, tr.themes + tr.divider', this.el).hide();
@ -788,8 +794,6 @@ define([
}, },
updateSettings: function() { updateSettings: function() {
this.chInputMode.setValue(Common.Utils.InternalSettings.get("de-settings-inputmode"));
this.chUseAltKey.setValue(Common.Utils.InternalSettings.get("de-settings-show-alt-hints")); this.chUseAltKey.setValue(Common.Utils.InternalSettings.get("de-settings-show-alt-hints"));
var value = Common.Utils.InternalSettings.get("de-settings-zoom"); var value = Common.Utils.InternalSettings.get("de-settings-zoom");
@ -848,6 +852,7 @@ define([
this.cmbMacros.setValue(item ? item.get('value') : 0); this.cmbMacros.setValue(item ? item.get('value') : 0);
this.chPaste.setValue(Common.Utils.InternalSettings.get("de-settings-paste-button")); this.chPaste.setValue(Common.Utils.InternalSettings.get("de-settings-paste-button"));
this.chQuickPrint.setValue(Common.Utils.InternalSettings.get("de-settings-quick-print-button"));
var data = []; var data = [];
for (var t in Common.UI.Themes.map()) { for (var t in Common.UI.Themes.map()) {
@ -873,7 +878,6 @@ define([
Common.UI.Themes.setTheme(this.cmbTheme.getValue()); Common.UI.Themes.setTheme(this.cmbTheme.getValue());
if (!this.chDarkMode.isDisabled() && (this.chDarkMode.isChecked() !== Common.UI.Themes.isContentThemeDark())) if (!this.chDarkMode.isDisabled() && (this.chDarkMode.isChecked() !== Common.UI.Themes.isContentThemeDark()))
Common.UI.Themes.toggleContentTheme(); Common.UI.Themes.toggleContentTheme();
Common.localStorage.setItem("de-settings-inputmode", this.chInputMode.isChecked() ? 1 : 0);
Common.localStorage.setItem("de-settings-show-alt-hints", this.chUseAltKey.isChecked() ? 1 : 0); Common.localStorage.setItem("de-settings-show-alt-hints", this.chUseAltKey.isChecked() ? 1 : 0);
Common.Utils.InternalSettings.set("de-settings-show-alt-hints", Common.localStorage.getBool("de-settings-show-alt-hints")); Common.Utils.InternalSettings.set("de-settings-show-alt-hints", Common.localStorage.getBool("de-settings-show-alt-hints"));
Common.localStorage.setItem("de-settings-zoom", this.cmbZoom.getValue()); Common.localStorage.setItem("de-settings-zoom", this.cmbZoom.getValue());
@ -918,6 +922,7 @@ define([
} }
Common.localStorage.setItem("de-settings-paste-button", this.chPaste.isChecked() ? 1 : 0); Common.localStorage.setItem("de-settings-paste-button", this.chPaste.isChecked() ? 1 : 0);
Common.localStorage.setBool("de-settings-quick-print-button", this.chQuickPrint.isChecked());
Common.localStorage.save(); Common.localStorage.save();
@ -1015,7 +1020,9 @@ define([
txtStrictTip: 'Use the \'Save\' button to sync the changes you and others make', txtStrictTip: 'Use the \'Save\' button to sync the changes you and others make',
strIgnoreWordsInUPPERCASE: 'Ignore words in UPPERCASE', strIgnoreWordsInUPPERCASE: 'Ignore words in UPPERCASE',
strIgnoreWordsWithNumbers: 'Ignore words with numbers', strIgnoreWordsWithNumbers: 'Ignore words with numbers',
strShowOthersChanges: 'Show changes from other users' strShowOthersChanges: 'Show changes from other users',
txtQuickPrint: 'Show the Quick Print button in the editor header',
txtQuickPrintTip: 'The document will be printed on the last selected or default printer'
}, DE.Views.FileMenuPanels.Settings || {})); }, DE.Views.FileMenuPanels.Settings || {}));
DE.Views.FileMenuPanels.RecentFiles = Common.UI.BaseView.extend({ DE.Views.FileMenuPanels.RecentFiles = Common.UI.BaseView.extend({
@ -1989,7 +1996,7 @@ define([
this.menu = options.menu; this.menu = options.menu;
this.urlPref = 'resources/help/{{DEFAULT_LANG}}/'; this.urlPref = 'resources/help/{{DEFAULT_LANG}}/';
this.openUrl = null; this.openUrl = null;
this.urlHelpCenter = '{{HELP_CENTER_WEB_EDITORS}}'; this.urlHelpCenter = '{{HELP_CENTER_WEB_DE}}';
this.en_data = [ this.en_data = [
{"src": "ProgramInterface/ProgramInterface.htm", "name": "Introducing Document Editor user interface", "headername": "Program Interface"}, {"src": "ProgramInterface/ProgramInterface.htm", "name": "Introducing Document Editor user interface", "headername": "Program Interface"},
@ -2113,7 +2120,7 @@ define([
} else { } else {
if ( Common.Controllers.Desktop.isActive() ) { if ( Common.Controllers.Desktop.isActive() ) {
if ( store.contentLang === '{{DEFAULT_LANG}}' || !Common.Controllers.Desktop.helpUrl() ) { if ( store.contentLang === '{{DEFAULT_LANG}}' || !Common.Controllers.Desktop.helpUrl() ) {
me.usedHelpCenter = true; me.noHelpContents = true;
me.iFrame.src = '../../common/main/resources/help/download.html'; me.iFrame.src = '../../common/main/resources/help/download.html';
} else { } else {
store.contentLang = store.contentLang === lang ? '{{DEFAULT_LANG}}' : lang; store.contentLang = store.contentLang === lang ? '{{DEFAULT_LANG}}' : lang;
@ -2343,4 +2350,340 @@ define([
}, DE.Views.FileMenuPanels.ProtectDoc || {})); }, DE.Views.FileMenuPanels.ProtectDoc || {}));
DE.Views.PrintWithPreview = Common.UI.BaseView.extend(_.extend({
el: '#panel-print',
menu: undefined,
template: _.template([
'<div style="width:100%; height:100%; position: relative;">',
'<div id="id-print-settings" class="no-padding">',
'<div class="print-settings">',
'<div class="flex-settings ps-container oo settings-container">',
'<table style="width: 100%;">',
'<tbody>',
'<tr><td><label class="header"><%= scope.txtPrintRange %></label></td></tr>',
'<tr><td class="padding-small"><div id="print-combo-range" style="width: 248px;"></div></td></tr>',
'<tr><td class="padding-large">',
'<table style="width: 100%;"><tbody><tr>',
'<td><%= scope.txtPages %></td><td><div id="print-txt-pages" style="width: 100%;padding-left: 5px;"></div></td>',
'</tr></tbody></table>',
'</td></tr>',
'<tr><td><label class="header"><%= scope.txtPageSize %></label></td></tr>',
'<tr><td class="padding-large"><div id="print-combo-pages" style="width: 248px;"></div></td></tr>',
'<tr><td><label class="header"><%= scope.txtPageOrientation %></label></td></tr>',
'<tr><td class="padding-large"><div id="print-combo-orient" style="width: 150px;"></div></td></tr>',
'<tr><td><label class="header"><%= scope.txtMargins %></label></td></tr>',
'<tr><td class="padding-large"><div id="print-combo-margins" style="width: 248px;"></div></td></tr>',
'<tr class="fms-btn-apply"><td>',
'<div class="footer justify">',
'<button id="print-btn-print" class="btn normal dlg-btn primary" result="print" style="width: 96px;" data-hint="2" data-hint-direction="bottom" data-hint-offset="big"><%= scope.txtPrint %></button>',
'<button id="print-btn-print-pdf" class="btn normal dlg-btn" result="pdf" style="width: 96px;" data-hint="2" data-hint-direction="bottom" data-hint-offset="big"><%= scope.txtPrintPdf %></button>',
'</div>',
'</td></tr>',
'</tbody>',
'</table>',
'</div>',
'</div>',
'</div>',
'<div id="print-preview-box" style="position: absolute; left: 280px; top: 0; right: 0; bottom: 0;" class="no-padding">',
'<div id="print-preview"></div>',
'<div id="print-navigation">',
'<div id="print-prev-page" style="display: inline-block; margin-right: 4px;"></div>',
'<div id="print-next-page" style="display: inline-block;"></div>',
'<div class="page-number">',
'<label><%= scope.txtPage %></label>',
'<div id="print-number-page"></div>',
'<label id="print-count-page"><%= scope.txtOf %></label>',
'</div>',
'</div>',
'</div>',
'</div>'
].join('')),
initialize: function(options) {
Common.UI.BaseView.prototype.initialize.call(this,arguments);
this.menu = options.menu;
this._initSettings = true;
},
render: function(node) {
var me = this;
var $markup = $(this.template({scope: this}));
this.cmbRange = new Common.UI.ComboBox({
el: $markup.findById('#print-combo-range'),
menuStyle: 'min-width: 248px;max-height: 280px;',
editable: false,
takeFocusOnClose: true,
cls: 'input-group-nr',
data: [
{ value: 'all', displayValue: this.txtAllPages },
{ value: 'current', displayValue: this.txtCurrentPage },
{ value: -1, displayValue: this.txtCustomPages }
],
dataHint: '2',
dataHintDirection: 'bottom',
dataHintOffset: 'big'
});
this.cmbRange.setValue('all');
this.inputPages = new Common.UI.InputField({
el: $markup.findById('#print-txt-pages'),
allowBlank: true,
validateOnChange: true,
validateOnBlur: false,
maskExp: /[0-9,\-]/,
dataHint: '2',
dataHintDirection: 'left',
dataHintOffset: 'small'
});
this.cmbPaperSize = new Common.UI.ComboBox({
el: $markup.findById('#print-combo-pages'),
menuStyle: 'max-height: 280px; min-width: 248px;',
editable: false,
takeFocusOnClose: true,
cls: 'input-group-nr',
data: [
{ value: 0, displayValue:'US Letter (21,59cm x 27,94cm)', caption: 'US Letter', size: [215.9, 279.4]},
{ value: 1, displayValue:'US Legal (21,59cm x 35,56cm)', caption: 'US Legal', size: [215.9, 355.6]},
{ value: 2, displayValue:'A4 (21cm x 29,7cm)', caption: 'A4', size: [210, 297]},
{ value: 3, displayValue:'A5 (14,8cm x 21cm)', caption: 'A5', size: [148, 210]},
{ value: 4, displayValue:'B5 (17,6cm x 25cm)', caption: 'B5', size: [176, 250]},
{ value: 5, displayValue:'Envelope #10 (10,48cm x 24,13cm)', caption: 'Envelope #10', size: [104.8, 241.3]},
{ value: 6, displayValue:'Envelope DL (11cm x 22cm)', caption: 'Envelope DL', size: [110, 220]},
{ value: 7, displayValue:'Tabloid (27,94cm x 43,18cm)', caption: 'Tabloid', size: [279.4, 431.8]},
{ value: 8, displayValue:'A3 (29,7cm x 42cm)', caption: 'A3', size: [297, 420]},
{ value: 9, displayValue:'Tabloid Oversize (30,48cm x 45,71cm)', caption: 'Tabloid Oversize', size: [304.8, 457.1]},
{ value: 10, displayValue:'ROC 16K (19,68cm x 27,3cm)', caption: 'ROC 16K', size: [196.8, 273]},
{ value: 11, displayValue:'Envelope Choukei 3 (11,99cm x 23,49cm)', caption: 'Envelope Choukei 3', size: [119.9, 234.9]},
{ value: 12, displayValue:'Super B/A3 (33,02cm x 48,25cm)', caption: 'Super B/A3', size: [330.2, 482.5]},
{ value: 13, displayValue:'A4 (84,1cm x 118,9cm)', caption: 'A0', size: [841, 1189]},
{ value: 14, displayValue:'A4 (59,4cm x 84,1cm)', caption: 'A1', size: [594, 841]},
{ value: 16, displayValue:'A4 (42cm x 59,4cm)', caption: 'A2', size: [420, 594]},
{ value: 17, displayValue:'A4 (10,5cm x 14,8cm)', caption: 'A6', size: [105, 148]},
{ value: -1, displayValue: this.txtCustom, caption: this.txtCustom, size: []}
],
dataHint: '2',
dataHintDirection: 'bottom',
dataHintOffset: 'big'
});
this.cmbPaperOrientation = new Common.UI.ComboBox({
el : $markup.findById('#print-combo-orient'),
menuStyle : 'min-width: 150px;',
editable : false,
takeFocusOnClose: true,
cls : 'input-group-nr',
data : [
{ value: Asc.c_oAscPageOrientation.PagePortrait, displayValue: this.txtPortrait },
{ value: Asc.c_oAscPageOrientation.PageLandscape, displayValue: this.txtLandscape }
],
dataHint: '2',
dataHintDirection: 'bottom',
dataHintOffset: 'big'
});
this.cmbPaperMargins = new Common.UI.ComboBox({
el: $markup.findById('#print-combo-margins'),
menuStyle: 'max-height: 280px; min-width: 248px;',
editable: false,
takeFocusOnClose: true,
cls: 'input-group-nr',
data: [
{ value: 0, displayValue: this.textMarginsNormal, size: [20, 30, 20, 15]},
{ value: 1, displayValue: this.textMarginsUsNormal, size: [25.4, 25.4, 25.4, 25.4]},
{ value: 2, displayValue: this.textMarginsNarrow, size: [12.7, 12.7, 12.7, 12.7]},
{ value: 3, displayValue: this.textMarginsModerate, size: [25.4, 19.1, 25.4, 19.1]},
{ value: 4, displayValue: this.textMarginsWide, size: [25.4, 50.8, 25.4, 50.8]},
{ value: -1, displayValue: this.txtCustom, size: null}
],
itemsTemplate: _.template([
'<% _.each(items, function(item) { %>',
'<li id="<%= item.id %>" data-value="<%- item.value %>"><a tabindex="-1" type="menuitem">',
'<div><b><%= scope.getDisplayValue(item) %></b></div>',
'<% if (item.size !== null) { %><div style="display: inline-block;margin-right: 20px;min-width: 80px;">' +
'<label style="display: block;">' + this.txtTop + ': <%= parseFloat(Common.Utils.Metric.fnRecalcFromMM(item.size[0]).toFixed(2)) %> <%= Common.Utils.Metric.getCurrentMetricName() %></label>' +
'<label style="display: block;">' + this.txtLeft + ': <%= parseFloat(Common.Utils.Metric.fnRecalcFromMM(item.size[1]).toFixed(2)) %> <%= Common.Utils.Metric.getCurrentMetricName() %></label></div><div style="display: inline-block;">' +
'<label style="display: block;">' + this.txtBottom + ': <%= parseFloat(Common.Utils.Metric.fnRecalcFromMM(item.size[2]).toFixed(2)) %> <%= Common.Utils.Metric.getCurrentMetricName() %></label>' +
'<label style="display: block;">' + this.txtRight + ': <%= parseFloat(Common.Utils.Metric.fnRecalcFromMM(item.size[3]).toFixed(2)) %> <%= Common.Utils.Metric.getCurrentMetricName() %></label></div>' +
'<% } %>',
'<% }); %>'
].join('')),
dataHint: '2',
dataHintDirection: 'bottom',
dataHintOffset: 'big'
});
this.pnlSettings = $markup.find('.flex-settings').addBack().filter('.flex-settings');
this.pnlTable = $(this.pnlSettings.find('table')[0]);
this.trApply = $markup.find('.fms-btn-apply');
this.btnPrint = new Common.UI.Button({
el: $markup.findById('#print-btn-print')
});
this.btnPrintPdf = new Common.UI.Button({
el: $markup.findById('#print-btn-print-pdf')
});
this.btnPrevPage = new Common.UI.Button({
parentEl: $markup.findById('#print-prev-page'),
cls: 'btn-prev-page',
iconCls: 'arrow',
dataHint: '2',
dataHintDirection: 'top'
});
this.btnNextPage = new Common.UI.Button({
parentEl: $markup.findById('#print-next-page'),
cls: 'btn-next-page',
iconCls: 'arrow',
dataHint: '2',
dataHintDirection: 'top'
});
this.countOfPages = $markup.findById('#print-count-page');
this.txtNumberPage = new Common.UI.InputField({
el: $markup.findById('#print-number-page'),
allowBlank: true,
validateOnChange: true,
style: 'width: 50px;',
maskExp: /[0-9]/,
validation: function(value) {
if (/(^[0-9]+$)/.test(value)) {
value = parseInt(value);
if (undefined !== value && value > 0 && value <= me.pageCount)
return true;
}
return me.txtPageNumInvalid;
},
dataHint: '2',
dataHintDirection: 'left',
dataHintOffset: 'small'
});
this.$el = $(node).html($markup);
this.$previewBox = $('#print-preview-box');
if (_.isUndefined(this.scroller)) {
this.scroller = new Common.UI.Scroller({
el: this.pnlSettings,
suppressScrollX: true,
alwaysVisibleY: true
});
}
Common.NotificationCenter.on({
'window:resize': function() {
me.isVisible() && me.updateScroller();
}
});
this.updateMetricUnit();
this.fireEvent('render:after', this);
return this;
},
show: function() {
Common.UI.BaseView.prototype.show.call(this,arguments);
if (this._initSettings) {
this.updateMetricUnit();
this._initSettings = false;
}
this.updateScroller();
this.fireEvent('show', this);
},
updateScroller: function() {
if (this.scroller) {
Common.UI.Menu.Manager.hideAll();
var scrolled = this.$el.height()< this.pnlTable.height();
this.pnlSettings.css('overflow', scrolled ? 'hidden' : 'visible');
this.scroller.update();
}
},
setMode: function(mode) {
this.mode = mode;
},
setApi: function(api) {
},
updateMetricUnit: function() {
if (!this.cmbPaperSize) return;
var store = this.cmbPaperSize.store;
for (var i=0; i<store.length-1; i++) {
var item = store.at(i),
size = item.get('size'),
pagewidth = size[0],
pageheight = size[1];
item.set('displayValue', item.get('caption') + ' (' + parseFloat(Common.Utils.Metric.fnRecalcFromMM(pagewidth).toFixed(2)) + Common.Utils.Metric.getCurrentMetricName() + ' x ' +
parseFloat(Common.Utils.Metric.fnRecalcFromMM(pageheight).toFixed(2)) + Common.Utils.Metric.getCurrentMetricName() + ')');
}
this.cmbPaperSize.onResetItems();
this.cmbPaperMargins.onResetItems();
},
isVisible: function() {
return (this.$el || $(this.el)).is(":visible");
},
setRange: function(value) {
this.cmbRange.setValue(value);
},
getRange: function() {
return this.cmbRange.getValue();
},
updateCountOfPages: function (count) {
this.countOfPages.text(
Common.Utils.String.format(this.txtOf, count)
);
this.pageCount = count;
},
updateCurrentPage: function (index) {
this.txtNumberPage.setValue(index + 1);
},
txtPrint: 'Print',
txtPrintPdf: 'Print to PDF',
txtPrintRange: 'Print range',
txtCurrentPage: 'Current page',
txtAllPages: 'All pages',
txtSelection: 'Selection',
txtCustomPages: 'Custom print',
txtPageSize: 'Page size',
txtPageOrientation: 'Page orientation',
txtPortrait: 'Portrait',
txtLandscape: 'Landscape',
txtCustom: 'Custom',
txtMargins: 'Margins',
txtTop: 'Top',
txtBottom: 'Bottom',
txtLeft: 'Left',
txtRight: 'Right',
txtPage: 'Page',
txtOf: 'of {0}',
txtPageNumInvalid: 'Page number invalid',
txtPages: 'Pages',
textMarginsLast: 'Last Custom',
textMarginsNormal: 'Normal',
textMarginsUsNormal: 'US Normal',
textMarginsNarrow: 'Narrow',
textMarginsModerate: 'Moderate',
textMarginsWide: 'Wide'
}, DE.Views.PrintWithPreview || {}));
}); });

View file

@ -576,6 +576,7 @@ define([
onKeyChanged: function(combo, record) { onKeyChanged: function(combo, record) {
if (this.api && !this._noApply) { if (this.api && !this._noApply) {
this._state.Key = undefined;
var props = this._originalProps || new AscCommon.CContentControlPr(); var props = this._originalProps || new AscCommon.CContentControlPr();
var formPr = this._originalFormProps || new AscCommon.CSdtFormPr(); var formPr = this._originalFormProps || new AscCommon.CSdtFormPr();
formPr.put_Key(record.value); formPr.put_Key(record.value);
@ -1068,14 +1069,10 @@ define([
if (formPr) { if (formPr) {
this._originalFormProps = formPr; this._originalFormProps = formPr;
var data = []; if (type == Asc.c_oAscContentControlSpecificType.Picture)
if (type == Asc.c_oAscContentControlSpecificType.CheckBox)
data = this.api.asc_GetCheckBoxFormKeys();
else if (type == Asc.c_oAscContentControlSpecificType.Picture) {
data = this.api.asc_GetPictureFormKeys();
this.labelFormName.text(this.textImage); this.labelFormName.text(this.textImage);
} else
data = this.api.asc_GetTextFormKeys(); var data = this.api.asc_GetFormKeysByType(type);
if (!this._state.arrKey || this._state.arrKey.length!==data.length || _.difference(this._state.arrKey, data).length>0) { if (!this._state.arrKey || this._state.arrKey.length!==data.length || _.difference(this._state.arrKey, data).length>0) {
var arr = []; var arr = [];
data.forEach(function(item) { data.forEach(function(item) {
@ -1446,7 +1443,7 @@ define([
} }
} else if (type == Asc.c_oAscContentControlSpecificType.Picture) { } else if (type == Asc.c_oAscContentControlSpecificType.Picture) {
imageOnly = true; imageOnly = true;
} else if (type == Asc.c_oAscContentControlSpecificType.None) { } else if (type == Asc.c_oAscContentControlSpecificType.None || type == Asc.c_oAscContentControlSpecificType.Complex) {
textOnly = !!textProps; textOnly = !!textProps;
} }
this.TextOnlySettings.toggleClass('hidden', !textOnly); this.TextOnlySettings.toggleClass('hidden', !textOnly);
@ -1472,7 +1469,7 @@ define([
}, },
onDisconnect: function() { onDisconnect: function() {
this.onKeyChanged(this.cmbKey, {value: ""}); this.onKeyChanged(this.cmbKey, {value: (this._originalProps || new AscCommon.CContentControlPr()).get_NewKey()});
}, },
disableListButtons: function() { disableListButtons: function() {

View file

@ -1400,7 +1400,7 @@ define([ 'text!documenteditor/main/app/template/ImageSettingsAdvanced.templat
var spectype = control_props.get_SpecificType(); var spectype = control_props.get_SpecificType();
fixed_size = (spectype==Asc.c_oAscContentControlSpecificType.CheckBox || spectype==Asc.c_oAscContentControlSpecificType.ComboBox || fixed_size = (spectype==Asc.c_oAscContentControlSpecificType.CheckBox || spectype==Asc.c_oAscContentControlSpecificType.ComboBox ||
spectype==Asc.c_oAscContentControlSpecificType.DropDownList || spectype==Asc.c_oAscContentControlSpecificType.None || spectype==Asc.c_oAscContentControlSpecificType.DropDownList || spectype==Asc.c_oAscContentControlSpecificType.None ||
spectype==Asc.c_oAscContentControlSpecificType.Picture) && spectype==Asc.c_oAscContentControlSpecificType.Picture || spectype==Asc.c_oAscContentControlSpecificType.Complex) &&
control_props.get_FormPr() && control_props.get_FormPr().get_Fixed(); control_props.get_FormPr() && control_props.get_FormPr().get_Fixed();
} }

View file

@ -810,7 +810,7 @@ define([
var spectype = control_props.get_SpecificType(); var spectype = control_props.get_SpecificType();
control_props = (spectype==Asc.c_oAscContentControlSpecificType.CheckBox || spectype==Asc.c_oAscContentControlSpecificType.ComboBox || control_props = (spectype==Asc.c_oAscContentControlSpecificType.CheckBox || spectype==Asc.c_oAscContentControlSpecificType.ComboBox ||
spectype==Asc.c_oAscContentControlSpecificType.DropDownList || spectype==Asc.c_oAscContentControlSpecificType.None || spectype==Asc.c_oAscContentControlSpecificType.DropDownList || spectype==Asc.c_oAscContentControlSpecificType.None ||
spectype==Asc.c_oAscContentControlSpecificType.Picture) && spectype==Asc.c_oAscContentControlSpecificType.Picture || spectype==Asc.c_oAscContentControlSpecificType.Complex) &&
control_props.get_FormPr() && control_props.get_FormPr().get_Fixed(); control_props.get_FormPr() && control_props.get_FormPr().get_Fixed();
} else } else
control_props = false; control_props = false;

View file

@ -1628,17 +1628,8 @@ define([
me.setTab('home'); me.setTab('home');
var top = Common.localStorage.getItem("de-pgmargins-top"), me.onUpdateLastCustomMargins();
left = Common.localStorage.getItem("de-pgmargins-left"), Common.NotificationCenter.on('margins:update', _.bind(me.onUpdateLastCustomMargins, me));
bottom = Common.localStorage.getItem("de-pgmargins-bottom"),
right = Common.localStorage.getItem("de-pgmargins-right");
if ( top!==null && left!==null && bottom!==null && right!==null ) {
var mnu = this.btnPageMargins.menu.items[0];
mnu.options.value = mnu.value = [parseFloat(top), parseFloat(left), parseFloat(bottom), parseFloat(right)];
mnu.setVisible(true);
$(mnu.el).html(mnu.template({id: Common.UI.getId(), caption : mnu.caption, options : mnu.options}));
} else
this.btnPageMargins.menu.items[0].setVisible(false);
} }
if ( me.isCompactView ) if ( me.isCompactView )
@ -2643,6 +2634,22 @@ define([
this.api.asc_RemoveAllCustomStyles(); this.api.asc_RemoveAllCustomStyles();
}, },
onUpdateLastCustomMargins: function(props) {
if (!this.btnPageMargins) return;
var top = props ? props.get_TopMargin() : Common.localStorage.getItem("de-pgmargins-top"),
left = props ? props.get_LeftMargin() : Common.localStorage.getItem("de-pgmargins-left"),
bottom = props ? props.get_BottomMargin() : Common.localStorage.getItem("de-pgmargins-bottom"),
right = props ? props.get_RightMargin() : Common.localStorage.getItem("de-pgmargins-right");
if ( top!==null && left!==null && bottom!==null && right!==null ) {
var mnu = this.btnPageMargins.menu.items[0];
mnu.options.value = mnu.value = [parseFloat(top), parseFloat(left), parseFloat(bottom), parseFloat(right)];
mnu.setVisible(true);
$(mnu.el).html(mnu.template({id: Common.UI.getId(), caption : mnu.caption, options : mnu.options}));
} else
this.btnPageMargins.menu.items[0].setVisible(false);
},
lockToolbar: function (causes, lock, opts) { lockToolbar: function (causes, lock, opts) {
Common.Utils.lockControls(causes, lock, opts, this.lockControls); Common.Utils.lockControls(causes, lock, opts, this.lockControls);
}, },

View file

@ -147,6 +147,7 @@ require([
'Main', 'Main',
'ViewTab', 'ViewTab',
'Search', 'Search',
'Print',
'Common.Controllers.Fonts', 'Common.Controllers.Fonts',
'Common.Controllers.History' 'Common.Controllers.History'
/** coauthoring begin **/ /** coauthoring begin **/
@ -181,6 +182,7 @@ require([
'documenteditor/main/app/controller/Main', 'documenteditor/main/app/controller/Main',
'documenteditor/main/app/controller/ViewTab', 'documenteditor/main/app/controller/ViewTab',
'documenteditor/main/app/controller/Search', 'documenteditor/main/app/controller/Search',
'documenteditor/main/app/controller/Print',
'documenteditor/main/app/view/FileMenuPanels', 'documenteditor/main/app/view/FileMenuPanels',
'documenteditor/main/app/view/ParagraphSettings', 'documenteditor/main/app/view/ParagraphSettings',
'documenteditor/main/app/view/HeaderFooterSettings', 'documenteditor/main/app/view/HeaderFooterSettings',

View file

@ -126,6 +126,8 @@
"Common.define.chartData.textStock": "Stock", "Common.define.chartData.textStock": "Stock",
"Common.define.chartData.textSurface": "Surface", "Common.define.chartData.textSurface": "Surface",
"Common.Translation.textMoreButton": "More", "Common.Translation.textMoreButton": "More",
"Common.Translation.tipFileLocked": "Document is locked for editing. You can make changes and save it as local copy later.",
"Common.Translation.tipFileReadOnly": "The file is read-only. To keep your changes, save the file with a new name or in a different location.",
"Common.Translation.warnFileLocked": "You can't edit this file because it's being edited in another app.", "Common.Translation.warnFileLocked": "You can't edit this file because it's being edited in another app.",
"Common.Translation.warnFileLockedBtnEdit": "Create a copy", "Common.Translation.warnFileLockedBtnEdit": "Create a copy",
"Common.Translation.warnFileLockedBtnView": "Open for viewing", "Common.Translation.warnFileLockedBtnView": "Open for viewing",
@ -319,6 +321,8 @@
"Common.Views.Header.tipViewUsers": "View users and manage document access rights", "Common.Views.Header.tipViewUsers": "View users and manage document access rights",
"Common.Views.Header.txtAccessRights": "Change access rights", "Common.Views.Header.txtAccessRights": "Change access rights",
"Common.Views.Header.txtRename": "Rename", "Common.Views.Header.txtRename": "Rename",
"Common.Views.Header.tipPrintQuick": "Quick print",
"Common.Views.Header.textReadOnly": "Read only",
"Common.Views.History.textCloseHistory": "Close History", "Common.Views.History.textCloseHistory": "Close History",
"Common.Views.History.textHide": "Collapse", "Common.Views.History.textHide": "Collapse",
"Common.Views.History.textHideAll": "Hide detailed changes", "Common.Views.History.textHideAll": "Hide detailed changes",
@ -935,6 +939,10 @@
"DE.Controllers.Main.warnNoLicense": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.<br>Contact %1 sales team for personal upgrade terms.", "DE.Controllers.Main.warnNoLicense": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.<br>Contact %1 sales team for personal upgrade terms.",
"DE.Controllers.Main.warnNoLicenseUsers": "You've reached the user limit for %1 editors. Contact %1 sales team for personal upgrade terms.", "DE.Controllers.Main.warnNoLicenseUsers": "You've reached the user limit for %1 editors. Contact %1 sales team for personal upgrade terms.",
"DE.Controllers.Main.warnProcessRightsChange": "You have been denied the right to edit the file.", "DE.Controllers.Main.warnProcessRightsChange": "You have been denied the right to edit the file.",
"DE.Controllers.Main.confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"DE.Controllers.Main.textUndo": "Undo",
"DE.Controllers.Main.textContinue": "Continue",
"DE.Controllers.Main.textTryQuickPrint": "You have selected Quick print: the entire document will be printed on the last selected or default printer.<br>Do you want to continue?",
"DE.Controllers.Navigation.txtBeginning": "Beginning of document", "DE.Controllers.Navigation.txtBeginning": "Beginning of document",
"DE.Controllers.Navigation.txtGotoBeginning": "Go to the beginning of the document", "DE.Controllers.Navigation.txtGotoBeginning": "Go to the beginning of the document",
"DE.Controllers.Search.notcriticalErrorTitle": "Warning", "DE.Controllers.Search.notcriticalErrorTitle": "Warning",
@ -948,6 +956,10 @@
"DE.Controllers.Statusbar.textTrackChanges": "The document is opened with the Track Changes mode enabled", "DE.Controllers.Statusbar.textTrackChanges": "The document is opened with the Track Changes mode enabled",
"DE.Controllers.Statusbar.tipReview": "Track changes", "DE.Controllers.Statusbar.tipReview": "Track changes",
"DE.Controllers.Statusbar.zoomText": "Zoom {0}%", "DE.Controllers.Statusbar.zoomText": "Zoom {0}%",
"DE.Controllers.Print.txtCustom": "Custom",
"DE.Controllers.Print.txtPrintRangeInvalid": "Invalid print range",
"DE.Controllers.Print.textMarginsLast": "Last Custom",
"DE.Controllers.Print.txtPrintRangeSingleRange": "Enter either a single page number or a single page range (for example, 5-12). Or you can Print to PDF.",
"DE.Controllers.Toolbar.confirmAddFontName": "The font you are going to save is not available on the current device.<br>The text style will be displayed using one of the system fonts, the saved font will be used when it is available.<br>Do you want to continue?", "DE.Controllers.Toolbar.confirmAddFontName": "The font you are going to save is not available on the current device.<br>The text style will be displayed using one of the system fonts, the saved font will be used when it is available.<br>Do you want to continue?",
"DE.Controllers.Toolbar.dataUrl": "Paste a data URL", "DE.Controllers.Toolbar.dataUrl": "Paste a data URL",
"DE.Controllers.Toolbar.notcriticalErrorTitle": "Warning", "DE.Controllers.Toolbar.notcriticalErrorTitle": "Warning",
@ -1837,6 +1849,8 @@
"DE.Views.FileMenuPanels.Settings.txtWarnMacrosDesc": "Disable all macros with a notification", "DE.Views.FileMenuPanels.Settings.txtWarnMacrosDesc": "Disable all macros with a notification",
"DE.Views.FileMenuPanels.Settings.txtWin": "as Windows", "DE.Views.FileMenuPanels.Settings.txtWin": "as Windows",
"DE.Views.FileMenuPanels.Settings.txtWorkspace": "Workspace", "DE.Views.FileMenuPanels.Settings.txtWorkspace": "Workspace",
"DE.Views.FileMenuPanels.Settings.txtQuickPrint": "Show the Quick Print button in the editor header",
"DE.Views.FileMenuPanels.Settings.txtQuickPrintTip": "The document will be printed on the last selected or default printer",
"DE.Views.FormSettings.textAlways": "Always", "DE.Views.FormSettings.textAlways": "Always",
"DE.Views.FormSettings.textAspect": "Lock aspect ratio", "DE.Views.FormSettings.textAspect": "Lock aspect ratio",
"DE.Views.FormSettings.textAtLeast": "At least", "DE.Views.FormSettings.textAtLeast": "At least",
@ -2381,6 +2395,33 @@
"DE.Views.ParagraphSettingsAdvanced.tipTop": "Set top border only", "DE.Views.ParagraphSettingsAdvanced.tipTop": "Set top border only",
"DE.Views.ParagraphSettingsAdvanced.txtAutoText": "Auto", "DE.Views.ParagraphSettingsAdvanced.txtAutoText": "Auto",
"DE.Views.ParagraphSettingsAdvanced.txtNoBorders": "No borders", "DE.Views.ParagraphSettingsAdvanced.txtNoBorders": "No borders",
"DE.Views.PrintWithPreview.txtPrint": "Print",
"DE.Views.PrintWithPreview.txtPrintPdf": "Print to PDF",
"DE.Views.PrintWithPreview.txtPrintRange": "Print range",
"DE.Views.PrintWithPreview.txtCurrentPage": "Current page",
"DE.Views.PrintWithPreview.txtAllPages": "All pages",
"DE.Views.PrintWithPreview.txtSelection": "Selection",
"DE.Views.PrintWithPreview.txtCustomPages": "Custom print",
"DE.Views.PrintWithPreview.txtPageSize": "Page size",
"DE.Views.PrintWithPreview.txtPageOrientation": "Page orientation",
"DE.Views.PrintWithPreview.txtPortrait": "Portrait",
"DE.Views.PrintWithPreview.txtLandscape": "Landscape",
"DE.Views.PrintWithPreview.txtCustom": "Custom",
"DE.Views.PrintWithPreview.txtMargins": "Margins",
"DE.Views.PrintWithPreview.txtTop": "Top",
"DE.Views.PrintWithPreview.txtBottom": "Bottom",
"DE.Views.PrintWithPreview.txtLeft": "Left",
"DE.Views.PrintWithPreview.txtRight": "Right",
"DE.Views.PrintWithPreview.txtPage": "Page",
"DE.Views.PrintWithPreview.txtOf": "of {0}",
"DE.Views.PrintWithPreview.txtPageNumInvalid": "Page number invalid",
"DE.Views.PrintWithPreview.txtPages": "Pages",
"DE.Views.PrintWithPreview.textMarginsLast": "Last Custom",
"DE.Views.PrintWithPreview.textMarginsNormal": "Normal",
"DE.Views.PrintWithPreview.textMarginsUsNormal": "US Normal",
"DE.Views.PrintWithPreview.textMarginsNarrow": "Narrow",
"DE.Views.PrintWithPreview.textMarginsModerate": "Moderate",
"DE.Views.PrintWithPreview.textMarginsWide": "Wide",
"DE.Views.RightMenu.txtChartSettings": "Chart settings", "DE.Views.RightMenu.txtChartSettings": "Chart settings",
"DE.Views.RightMenu.txtFormSettings": "Form Settings", "DE.Views.RightMenu.txtFormSettings": "Form Settings",
"DE.Views.RightMenu.txtHeaderFooterSettings": "Header and footer settings", "DE.Views.RightMenu.txtHeaderFooterSettings": "Header and footer settings",

View file

@ -126,6 +126,8 @@
"Common.define.chartData.textStock": "Биржевая", "Common.define.chartData.textStock": "Биржевая",
"Common.define.chartData.textSurface": "Поверхность", "Common.define.chartData.textSurface": "Поверхность",
"Common.Translation.textMoreButton": "Ещё", "Common.Translation.textMoreButton": "Ещё",
"Common.Translation.tipFileLocked": "Документ заблокирован на редактирование. Вы можете внести изменения и сохранить его как локальную копию позже.",
"Common.Translation.tipFileReadOnly": "Файл доступен только для чтения. Чтобы сохранить изменения, сохраните файл с новым названием или в другом месте.",
"Common.Translation.warnFileLocked": "Вы не можете редактировать этот файл, потому что он уже редактируется в другом приложении.", "Common.Translation.warnFileLocked": "Вы не можете редактировать этот файл, потому что он уже редактируется в другом приложении.",
"Common.Translation.warnFileLockedBtnEdit": "Создать копию", "Common.Translation.warnFileLockedBtnEdit": "Создать копию",
"Common.Translation.warnFileLockedBtnView": "Открыть на просмотр", "Common.Translation.warnFileLockedBtnView": "Открыть на просмотр",
@ -303,6 +305,7 @@
"Common.Views.Header.textCompactView": "Скрыть панель инструментов", "Common.Views.Header.textCompactView": "Скрыть панель инструментов",
"Common.Views.Header.textHideLines": "Скрыть линейки", "Common.Views.Header.textHideLines": "Скрыть линейки",
"Common.Views.Header.textHideStatusBar": "Скрыть строку состояния", "Common.Views.Header.textHideStatusBar": "Скрыть строку состояния",
"Common.Views.Header.textReadOnly": "Только чтение",
"Common.Views.Header.textRemoveFavorite": "Удалить из избранного", "Common.Views.Header.textRemoveFavorite": "Удалить из избранного",
"Common.Views.Header.textShare": "Доступ", "Common.Views.Header.textShare": "Доступ",
"Common.Views.Header.textZoom": "Масштаб", "Common.Views.Header.textZoom": "Масштаб",
@ -310,6 +313,7 @@
"Common.Views.Header.tipDownload": "Скачать файл", "Common.Views.Header.tipDownload": "Скачать файл",
"Common.Views.Header.tipGoEdit": "Редактировать текущий файл", "Common.Views.Header.tipGoEdit": "Редактировать текущий файл",
"Common.Views.Header.tipPrint": "Напечатать файл", "Common.Views.Header.tipPrint": "Напечатать файл",
"Common.Views.Header.tipPrintQuick": "Быстрая печать",
"Common.Views.Header.tipRedo": "Повторить", "Common.Views.Header.tipRedo": "Повторить",
"Common.Views.Header.tipSave": "Сохранить", "Common.Views.Header.tipSave": "Сохранить",
"Common.Views.Header.tipSearch": "Поиск", "Common.Views.Header.tipSearch": "Поиск",
@ -647,6 +651,7 @@
"DE.Controllers.Main.textClose": "Закрыть", "DE.Controllers.Main.textClose": "Закрыть",
"DE.Controllers.Main.textCloseTip": "Щелкните, чтобы закрыть эту подсказку", "DE.Controllers.Main.textCloseTip": "Щелкните, чтобы закрыть эту подсказку",
"DE.Controllers.Main.textContactUs": "Связаться с отделом продаж", "DE.Controllers.Main.textContactUs": "Связаться с отделом продаж",
"DE.Controllers.Main.textContinue": "Продолжить",
"DE.Controllers.Main.textConvertEquation": "Это уравнение создано в старой версии редактора уравнений, которая больше не поддерживается. Чтобы изменить это уравнение, его необходимо преобразовать в формат Office Math ML.<br>Преобразовать сейчас?", "DE.Controllers.Main.textConvertEquation": "Это уравнение создано в старой версии редактора уравнений, которая больше не поддерживается. Чтобы изменить это уравнение, его необходимо преобразовать в формат Office Math ML.<br>Преобразовать сейчас?",
"DE.Controllers.Main.textCustomLoader": "Обратите внимание, что по условиям лицензии у вас нет прав изменять экран, отображаемый при загрузке.<br>Пожалуйста, обратитесь в наш отдел продаж, чтобы сделать запрос.", "DE.Controllers.Main.textCustomLoader": "Обратите внимание, что по условиям лицензии у вас нет прав изменять экран, отображаемый при загрузке.<br>Пожалуйста, обратитесь в наш отдел продаж, чтобы сделать запрос.",
"DE.Controllers.Main.textDisconnect": "Соединение потеряно", "DE.Controllers.Main.textDisconnect": "Соединение потеряно",
@ -665,8 +670,10 @@
"DE.Controllers.Main.textRequestMacros": "Макрос делает запрос на URL. Вы хотите разрешить запрос на %1?", "DE.Controllers.Main.textRequestMacros": "Макрос делает запрос на URL. Вы хотите разрешить запрос на %1?",
"DE.Controllers.Main.textShape": "Фигура", "DE.Controllers.Main.textShape": "Фигура",
"DE.Controllers.Main.textStrict": "Строгий режим", "DE.Controllers.Main.textStrict": "Строгий режим",
"DE.Controllers.Main.textTryQuickPrint": "Вы выбрали быструю печать: весь документ будет напечатан на последнем выбранном принтере или на принтере по умолчанию.<br>Вы хотите продолжить?",
"DE.Controllers.Main.textTryUndoRedo": "Функции отмены и повтора действий отключены в Быстром режиме совместного редактирования.<br>Нажмите на кнопку 'Строгий режим' для переключения в Строгий режим совместного редактирования, чтобы редактировать файл без вмешательства других пользователей и отправлять изменения только после того, как вы их сохраните. Переключаться между режимами совместного редактирования можно с помощью Дополнительных параметров редактора.", "DE.Controllers.Main.textTryUndoRedo": "Функции отмены и повтора действий отключены в Быстром режиме совместного редактирования.<br>Нажмите на кнопку 'Строгий режим' для переключения в Строгий режим совместного редактирования, чтобы редактировать файл без вмешательства других пользователей и отправлять изменения только после того, как вы их сохраните. Переключаться между режимами совместного редактирования можно с помощью Дополнительных параметров редактора.",
"DE.Controllers.Main.textTryUndoRedoWarn": "Функции отмены и повтора действий отключены в Быстром режиме совместного редактирования.", "DE.Controllers.Main.textTryUndoRedoWarn": "Функции отмены и повтора действий отключены в Быстром режиме совместного редактирования.",
"DE.Controllers.Main.textUndo": "Отменить",
"DE.Controllers.Main.titleLicenseExp": "Истек срок действия лицензии", "DE.Controllers.Main.titleLicenseExp": "Истек срок действия лицензии",
"DE.Controllers.Main.titleServerVersion": "Редактор обновлен", "DE.Controllers.Main.titleServerVersion": "Редактор обновлен",
"DE.Controllers.Main.titleUpdateVersion": "Версия изменилась", "DE.Controllers.Main.titleUpdateVersion": "Версия изменилась",
@ -937,6 +944,10 @@
"DE.Controllers.Main.warnProcessRightsChange": "Вам было отказано в праве на редактирование этого файла.", "DE.Controllers.Main.warnProcessRightsChange": "Вам было отказано в праве на редактирование этого файла.",
"DE.Controllers.Navigation.txtBeginning": "Начало документа", "DE.Controllers.Navigation.txtBeginning": "Начало документа",
"DE.Controllers.Navigation.txtGotoBeginning": "Перейти в начало документа", "DE.Controllers.Navigation.txtGotoBeginning": "Перейти в начало документа",
"DE.Controllers.Print.textMarginsLast": "Последние настраиваемые",
"DE.Controllers.Print.txtCustom": "Пользовательское",
"DE.Controllers.Print.txtPrintRangeInvalid": "Неправильный диапазон печати",
"DE.Controllers.Print.txtPrintRangeSingleRange": "Введите или один номер страницы, или один диапазон страниц (например, 5-12). Или вы можете выбрать печать в PDF.",
"DE.Controllers.Search.notcriticalErrorTitle": "Внимание", "DE.Controllers.Search.notcriticalErrorTitle": "Внимание",
"DE.Controllers.Search.textNoTextFound": "Искомые данные не найдены. Пожалуйста, измените параметры поиска.", "DE.Controllers.Search.textNoTextFound": "Искомые данные не найдены. Пожалуйста, измените параметры поиска.",
"DE.Controllers.Search.textReplaceSkipped": "Замена выполнена. Пропущено вхождений - {0}.", "DE.Controllers.Search.textReplaceSkipped": "Замена выполнена. Пропущено вхождений - {0}.",
@ -1824,6 +1835,8 @@
"DE.Views.FileMenuPanels.Settings.txtNone": "Никакие", "DE.Views.FileMenuPanels.Settings.txtNone": "Никакие",
"DE.Views.FileMenuPanels.Settings.txtProofing": "Правописание", "DE.Views.FileMenuPanels.Settings.txtProofing": "Правописание",
"DE.Views.FileMenuPanels.Settings.txtPt": "Пункт", "DE.Views.FileMenuPanels.Settings.txtPt": "Пункт",
"DE.Views.FileMenuPanels.Settings.txtQuickPrint": "Показывать кнопку Быстрая печать в шапке редактора",
"DE.Views.FileMenuPanels.Settings.txtQuickPrintTip": "Документ будет напечатан на последнем выбранном принтере или на принтере по умолчанию",
"DE.Views.FileMenuPanels.Settings.txtRunMacros": "Включить все", "DE.Views.FileMenuPanels.Settings.txtRunMacros": "Включить все",
"DE.Views.FileMenuPanels.Settings.txtRunMacrosDesc": "Включить все макросы без уведомления", "DE.Views.FileMenuPanels.Settings.txtRunMacrosDesc": "Включить все макросы без уведомления",
"DE.Views.FileMenuPanels.Settings.txtShowTrackChanges": "Показывать изменения при рецензировании", "DE.Views.FileMenuPanels.Settings.txtShowTrackChanges": "Показывать изменения при рецензировании",
@ -2073,6 +2086,7 @@
"DE.Views.LeftMenu.tipComments": "Комментарии", "DE.Views.LeftMenu.tipComments": "Комментарии",
"DE.Views.LeftMenu.tipNavigation": "Навигация", "DE.Views.LeftMenu.tipNavigation": "Навигация",
"DE.Views.LeftMenu.tipOutline": "Заголовки", "DE.Views.LeftMenu.tipOutline": "Заголовки",
"DE.Views.LeftMenu.tipPageThumbnails": "Эскизы страниц",
"DE.Views.LeftMenu.tipPlugins": "Плагины", "DE.Views.LeftMenu.tipPlugins": "Плагины",
"DE.Views.LeftMenu.tipSearch": "Поиск", "DE.Views.LeftMenu.tipSearch": "Поиск",
"DE.Views.LeftMenu.tipSupport": "Обратная связь и поддержка", "DE.Views.LeftMenu.tipSupport": "Обратная связь и поддержка",
@ -2380,6 +2394,33 @@
"DE.Views.ParagraphSettingsAdvanced.tipTop": "Задать только верхнюю границу", "DE.Views.ParagraphSettingsAdvanced.tipTop": "Задать только верхнюю границу",
"DE.Views.ParagraphSettingsAdvanced.txtAutoText": "Авто", "DE.Views.ParagraphSettingsAdvanced.txtAutoText": "Авто",
"DE.Views.ParagraphSettingsAdvanced.txtNoBorders": "Без границ", "DE.Views.ParagraphSettingsAdvanced.txtNoBorders": "Без границ",
"DE.Views.PrintWithPreview.textMarginsLast": "Последние настраиваемые",
"DE.Views.PrintWithPreview.textMarginsModerate": "Средние",
"DE.Views.PrintWithPreview.textMarginsNarrow": "Узкие",
"DE.Views.PrintWithPreview.textMarginsNormal": "Обычные",
"DE.Views.PrintWithPreview.textMarginsUsNormal": "Обычные (американский стандарт)",
"DE.Views.PrintWithPreview.textMarginsWide": "Широкие",
"DE.Views.PrintWithPreview.txtAllPages": "Все страницы",
"DE.Views.PrintWithPreview.txtBottom": "Нижнее",
"DE.Views.PrintWithPreview.txtCurrentPage": "Текущая страница",
"DE.Views.PrintWithPreview.txtCustom": "Пользовательское",
"DE.Views.PrintWithPreview.txtCustomPages": "Настраиваемая печать",
"DE.Views.PrintWithPreview.txtLandscape": "Альбомная",
"DE.Views.PrintWithPreview.txtLeft": "Левое",
"DE.Views.PrintWithPreview.txtMargins": "Поля",
"DE.Views.PrintWithPreview.txtOf": "из {0}",
"DE.Views.PrintWithPreview.txtPage": "Страница",
"DE.Views.PrintWithPreview.txtPageNumInvalid": "Неправильный номер страницы",
"DE.Views.PrintWithPreview.txtPageOrientation": "Ориентация страницы",
"DE.Views.PrintWithPreview.txtPages": "Страницы",
"DE.Views.PrintWithPreview.txtPageSize": "Размер страницы",
"DE.Views.PrintWithPreview.txtPortrait": "Книжная",
"DE.Views.PrintWithPreview.txtPrint": "Печать",
"DE.Views.PrintWithPreview.txtPrintPdf": "Печать в PDF",
"DE.Views.PrintWithPreview.txtPrintRange": "Диапазон печати",
"DE.Views.PrintWithPreview.txtRight": "Правое",
"DE.Views.PrintWithPreview.txtSelection": "Выделенный фрагмент",
"DE.Views.PrintWithPreview.txtTop": "Верхнее",
"DE.Views.RightMenu.txtChartSettings": "Параметры диаграммы", "DE.Views.RightMenu.txtChartSettings": "Параметры диаграммы",
"DE.Views.RightMenu.txtFormSettings": "Параметры формы", "DE.Views.RightMenu.txtFormSettings": "Параметры формы",
"DE.Views.RightMenu.txtHeaderFooterSettings": "Параметры верхнего и нижнего колонтитулов", "DE.Views.RightMenu.txtHeaderFooterSettings": "Параметры верхнего и нижнего колонтитулов",

View file

@ -73,12 +73,12 @@
<p>Um alle Änderungen abzulehnen, klicken Sie den Abwärtspfeil unter der Schaltfläche <span class = "icon icon-review_rejecttoptoolbar"></span> <b>Ablehnen</b> an und wählen Sie die Option <b>Alle Änderungen ablehnen</b> aus.</p> <p>Um alle Änderungen abzulehnen, klicken Sie den Abwärtspfeil unter der Schaltfläche <span class = "icon icon-review_rejecttoptoolbar"></span> <b>Ablehnen</b> an und wählen Sie die Option <b>Alle Änderungen ablehnen</b> aus.</p>
<h3 id="comparisonnotes">Zusatzinformation für die Vergleich-Funktion</h3> <h3 id="comparisonnotes">Zusatzinformation für die Vergleich-Funktion</h3>
<h5>Die Vergleichsmethode</h5> <h4>Die Vergleichsmethode</h4>
<p>Dokumente werden <b>wortweise</b> verglichen. Wenn ein Wort eine Änderung von mindestens einem Zeichen enthält (z. B. wenn ein Zeichen entfernt oder ersetzt wurde), wird die Differenz im Ergebnis als Änderung des gesamten Wortes und nicht des Zeichens angezeigt.</p> <p>Dokumente werden <b>wortweise</b> verglichen. Wenn ein Wort eine Änderung von mindestens einem Zeichen enthält (z. B. wenn ein Zeichen entfernt oder ersetzt wurde), wird die Differenz im Ergebnis als Änderung des gesamten Wortes und nicht des Zeichens angezeigt.</p>
<p>Das folgende Bild zeigt den Fall, dass die Originaldatei das Wort „Symbole“ und das Vergleichsdokument das Wort „Symbol“ enthält.</p> <p>Das folgende Bild zeigt den Fall, dass die Originaldatei das Wort „Symbole“ und das Vergleichsdokument das Wort „Symbol“ enthält.</p>
<p><img alt="Compare documents - method" src="../images/compare_method.png" /></p> <p><img alt="Compare documents - method" src="../images/compare_method.png" /></p>
<h5>Urheberschaft des Dokuments</h5> <h4>Urheberschaft des Dokuments</h4>
<p>Wenn der Vergleichsprozess gestartet wird, wird das zweite Dokument zum Vergleichen hochgeladen und mit dem aktuellen verglichen.</p> <p>Wenn der Vergleichsprozess gestartet wird, wird das zweite Dokument zum Vergleichen hochgeladen und mit dem aktuellen verglichen.</p>
<ul> <ul>
<li>Wenn das geladene Dokument einige Daten enthält, die nicht im Originaldokument enthalten sind, werden die Daten als von einem Überprüfer hinzugefügt markiert.</li> <li>Wenn das geladene Dokument einige Daten enthält, die nicht im Originaldokument enthalten sind, werden die Daten als von einem Überprüfer hinzugefügt markiert.</li>
@ -87,7 +87,7 @@
<p>Wenn die Autoren des Originaldokuments und des geladenen Dokuments dieselbe Person sind, ist der Überprüfer derselbe Benutzer. Sein/ihr Name wird in der Änderungssprechblase angezeigt.</p> <p>Wenn die Autoren des Originaldokuments und des geladenen Dokuments dieselbe Person sind, ist der Überprüfer derselbe Benutzer. Sein/ihr Name wird in der Änderungssprechblase angezeigt.</p>
<p>Wenn die Autoren zweier Dateien unterschiedliche Benutzer sind, dann ist der Autor der zweiten zum Vergleich geladenen Datei der Autor der hinzugefügten/entfernten Änderungen.</p> <p>Wenn die Autoren zweier Dateien unterschiedliche Benutzer sind, dann ist der Autor der zweiten zum Vergleich geladenen Datei der Autor der hinzugefügten/entfernten Änderungen.</p>
<h5>Die nachverfolgten Änderungen im verglichenen Dokument</h5> <h4>Die nachverfolgten Änderungen im verglichenen Dokument</h4>
<p>Wenn das Originaldokument einige Änderungen enthält, die im Modus "Review" vorgenommen wurden, werden diese im Vergleichsprozess übernommen. Wenn Sie das zweite Dokument zum Vergleich auswählen, wird die entsprechende Warnmeldung angezeigt.</p> <p>Wenn das Originaldokument einige Änderungen enthält, die im Modus "Review" vorgenommen wurden, werden diese im Vergleichsprozess übernommen. Wenn Sie das zweite Dokument zum Vergleich auswählen, wird die entsprechende Warnmeldung angezeigt.</p>
<p>In diesem Fall enthält das Dokument im <b>Originalanzeigemodus</b> keine Änderungen.</p> <p>In diesem Fall enthält das Dokument im <b>Originalanzeigemodus</b> keine Änderungen.</p>
</div> </div>

View file

@ -80,8 +80,7 @@
<li><b>Nur Seitenzahlen aktualisieren</b> - um Seitenzahlen zu aktualisieren, ohne Änderungen an den Überschriften vorzunehmen.</li> <li><b>Nur Seitenzahlen aktualisieren</b> - um Seitenzahlen zu aktualisieren, ohne Änderungen an den Überschriften vorzunehmen.</li>
<li><b>Gesamtes Verzeichnis aktualisieren</b> - um alle geänderten Überschriften und Seitenzahlen zu aktualisieren.</li> <li><b>Gesamtes Verzeichnis aktualisieren</b> - um alle geänderten Überschriften und Seitenzahlen zu aktualisieren.</li>
</ul> </ul>
<p>Klicken Sie auf <b>OK</b></p> <p>Klicken Sie auf <b>OK</b> oder</p>
<p>oder</p>
<p>Klicken Sie mit der rechten Maustaste auf das <b>Abbildungsverzeichnis</b> in Ihrem Dokument, um das Kontextmenü zu öffnen, und wählen Sie die Option <b>Feld aktualisieren</b>, um das <b>Abbildungsverzeichnis</b> zu aktualisieren.</p> <p>Klicken Sie mit der rechten Maustaste auf das <b>Abbildungsverzeichnis</b> in Ihrem Dokument, um das Kontextmenü zu öffnen, und wählen Sie die Option <b>Feld aktualisieren</b>, um das <b>Abbildungsverzeichnis</b> zu aktualisieren.</p>
</div> </div>
</body> </body>

View file

@ -28,7 +28,7 @@
</ul> </ul>
</li> </li>
</ol> </ol>
<p>Die Ausrichtungparameter sind im <b>Absatz - Erweiterte Einstellungen</b> verfügbar.</p> <p>Die Ausrichtungparameter sind im <b>Absatz - Erweiterte Einstellungen</b> verfügbar:</p>
<ol> <ol>
<li>Drücken Sie die rechte Maustaste und wählen Sie die Option <b>Absatz - Erweiterte Einstellungen</b> von dem Rechts-Klick Menu oder benutzen Sie die Option <b>Erweiterte Einstellungen anzeigen</b> von der rechten Seitenleiste.</li> <li>Drücken Sie die rechte Maustaste und wählen Sie die Option <b>Absatz - Erweiterte Einstellungen</b> von dem Rechts-Klick Menu oder benutzen Sie die Option <b>Erweiterte Einstellungen anzeigen</b> von der rechten Seitenleiste.</li>
<li>Im Abschnitt <b>Absatz - Erweiterte Einstellungen</b> wechseln Sie zur Registerkarte <b>Einzüg und Abstände</b>.</li> <li>Im Abschnitt <b>Absatz - Erweiterte Einstellungen</b> wechseln Sie zur Registerkarte <b>Einzüg und Abstände</b>.</li>

View file

@ -97,8 +97,8 @@
<li>Benutzerdefinierte Kombination</li> <li>Benutzerdefinierte Kombination</li>
</ul> </ul>
</details> </details>
</li> <p class="note"><b>ONLYOFFICE Dokumenteneditor</b> unterstützt die folgenden Arten von Diagrammen, die mit Editoren von Drittanbietern erstellt wurden: <b>Pyramide</b>, <b>Balken (Pyramide)</b>, <b>horizontale/vertikale Zylinder</b>, <b>horizontale/vertikale Kegel</b>. Sie können die Datei, die ein solches Diagramm enthält, öffnen und sie mit den verfügbaren Diagrammbearbeitungswerkzeugen ändern.</p>
<p class="note"><b>ONLYOFFICE Dokumenteneditor</b> unterstützt die folgenden Arten von Diagrammen, die mit Editoren von Drittanbietern erstellt wurden: <b>Pyramide</b>, <b>Balken (Pyramide)</b>, <b>horizontale/vertikale Zylinder</b>, <b>horizontale/vertikale Kegel</b>. Sie können die Datei, die ein solches Diagramm enthält, öffnen und sie mit den verfügbaren Diagrammbearbeitungswerkzeugen ändern.</p> </li>
<li> <li>
Danach erscheint das Fenster <b>Diagrammeditor</b>, in dem Sie die erforderlichen Daten mit den folgenden Steuerelementen in die Zellen eingeben können: Danach erscheint das Fenster <b>Diagrammeditor</b>, in dem Sie die erforderlichen Daten mit den folgenden Steuerelementen in die Zellen eingeben können:
<ul> <ul>

View file

@ -73,12 +73,12 @@
<p>To quickly reject all the changes, click the downward arrow below the <span class = "icon icon-review_rejecttoptoolbar"></span> <b>Reject</b> button and select the <b>Reject All Changes</b> option.</p> <p>To quickly reject all the changes, click the downward arrow below the <span class = "icon icon-review_rejecttoptoolbar"></span> <b>Reject</b> button and select the <b>Reject All Changes</b> option.</p>
<h3 id="comparisonnotes">Additional info on the comparison feature</h3> <h3 id="comparisonnotes">Additional info on the comparison feature</h3>
<h5>Method of comparison</h5> <h4>Method of comparison</h4>
<p>Documents are compared <b>by words</b>. If a word contains a change of at least one character (e.g. if a character was removed or replaced), in the result, the difference will be displayed as the change of the entire word, not the character.</p> <p>Documents are compared <b>by words</b>. If a word contains a change of at least one character (e.g. if a character was removed or replaced), in the result, the difference will be displayed as the change of the entire word, not the character.</p>
<p>The image below illustrates the case when the original file contains the word 'Characters' and the document for comparison contains the word 'Character'.</p> <p>The image below illustrates the case when the original file contains the word 'Characters' and the document for comparison contains the word 'Character'.</p>
<p><img alt="Compare documents - method" src="../images/compare_method.png" /></p> <p><img alt="Compare documents - method" src="../images/compare_method.png" /></p>
<h5>Authorship of the document</h5> <h4>Authorship of the document</h4>
<p>When the comparison process is launched, the second document for comparison is being loaded and compared to the current one.</p> <p>When the comparison process is launched, the second document for comparison is being loaded and compared to the current one.</p>
<ul> <ul>
<li>If the loaded document contains some data which is not represented in the original document, the data will be marked as added by a reviewer.</li> <li>If the loaded document contains some data which is not represented in the original document, the data will be marked as added by a reviewer.</li>
@ -87,7 +87,7 @@
<p>If the authors of the original and loaded documents are the same person, the reviewer is the same user. His/her name is displayed in the change balloon.</p> <p>If the authors of the original and loaded documents are the same person, the reviewer is the same user. His/her name is displayed in the change balloon.</p>
<p>If the authors of two files are different users, then the author of the second file loaded for comparison is the author of the added/removed changes.</p> <p>If the authors of two files are different users, then the author of the second file loaded for comparison is the author of the added/removed changes.</p>
<h5>Presence of the tracked changes in the compared document</h5> <h4>Presence of the tracked changes in the compared document</h4>
<p>If the original document contains some changes made in the review mode, they will be accepted in the comparison process. When you choose the second file for comparison, you'll see the corresponding warning message.</p> <p>If the original document contains some changes made in the review mode, they will be accepted in the comparison process. When you choose the second file for comparison, you'll see the corresponding warning message.</p>
<p>In this case, when you choose the <b>Original</b> display mode, the document will not contain any changes.</p> <p>In this case, when you choose the <b>Original</b> display mode, the document will not contain any changes.</p>
</div> </div>

View file

@ -21,7 +21,7 @@
<p><img alt="Layout tab" src="../images/interface/layouttab.png" /></p> <p><img alt="Layout tab" src="../images/interface/layouttab.png" /></p>
</div> </div>
<div class="desktopDocumentFeatures"> <div class="desktopDocumentFeatures">
<p> corresponding window of the Desktop Document Editor:</p> <p>The corresponding window of the Desktop Document Editor:</p>
<p><img alt="Layout tab" src="../images/interface/desktop_layouttab.png" /></p> <p><img alt="Layout tab" src="../images/interface/desktop_layouttab.png" /></p>
</div> </div>
<p>Using this tab, you can:</p> <p>Using this tab, you can:</p>

View file

@ -80,8 +80,7 @@
<li><b>Refresh page numbers only</b> - to update page numbers without applying changes to the headings.</li> <li><b>Refresh page numbers only</b> - to update page numbers without applying changes to the headings.</li>
<li><b>Refresh entire table</b> - to update all the headings that have been modified and page numbers.</li> <li><b>Refresh entire table</b> - to update all the headings that have been modified and page numbers.</li>
</ul> </ul>
<p>Click <b>OK</b> to confirm your choice, </p> <p>Click <b>OK</b> to confirm your choice or</p>
<p>or</p>
<p>Right-click the <b>Table of Figures</b> in your document to open the contextual menu, then choose the <b>Refresh field</b> to update the <b>Table of Figures</b>.</p> <p>Right-click the <b>Table of Figures</b> in your document to open the contextual menu, then choose the <b>Refresh field</b> to update the <b>Table of Figures</b>.</p>
</div> </div>
</body> </body>

View file

@ -28,7 +28,7 @@
</ul> </ul>
</li> </li>
</ol> </ol>
<p>The alignment parameters are also available in the <b>Paragraph - Advanced Settings</b> window.</p> <p>The alignment parameters are also available in the <b>Paragraph - Advanced Settings</b> window:</p>
<ol> <ol>
<li>right-click the text and choose the <b>Paragraph - Advanced Settings</b> option from the contextual menu or use the <b>Show advanced settings</b> option on the right sidebar,</li> <li>right-click the text and choose the <b>Paragraph - Advanced Settings</b> option from the contextual menu or use the <b>Show advanced settings</b> option on the right sidebar,</li>
<li>open the <b>Paragraph - Advanced Settings</b> window, switch to the <b>Indents &amp; Spacing</b> tab,</li> <li>open the <b>Paragraph - Advanced Settings</b> window, switch to the <b>Indents &amp; Spacing</b> tab,</li>

View file

@ -18,11 +18,11 @@
<h3>Insert a chart</h3> <h3>Insert a chart</h3>
<p>To insert a chart in the <a href="https://www.onlyoffice.com/document-editor.aspx" target="_blank" onclick="onhyperlinkclick(this)"><b>Document Editor</b></a>,</p> <p>To insert a chart in the <a href="https://www.onlyoffice.com/document-editor.aspx" target="_blank" onclick="onhyperlinkclick(this)"><b>Document Editor</b></a>,</p>
<ol> <ol>
<li>place the cursor where the chart should be added,</li> <li>Place the cursor where the chart should be added.</li>
<li>switch to the <b>Insert</b> tab of the top toolbar,</li> <li>Switch to the <b>Insert</b> tab of the top toolbar.</li>
<li>click the <div class = "icon icon-insertchart"></div> <b>Chart</b> icon on the top toolbar,</li> <li>Click the <div class = "icon icon-insertchart"></div> <b>Chart</b> icon on the top toolbar.</li>
<li> <li>
select the needed chart type from the available ones: Select the needed chart type from the available ones:
<details class="details-example"> <details class="details-example">
<summary>Column Charts</summary> <summary>Column Charts</summary>
<ul> <ul>
@ -97,10 +97,10 @@
<li>Custom combination</li> <li>Custom combination</li>
</ul> </ul>
</details> </details>
</li> <p class="note"><b>Note</b>: <b>ONLYOFFICE Document Editor</b> supports the following types of charts that were created with third-party editors: <b>Pyramid</b>, <b>Bar (Pyramid)</b>, <b>Horizontal/Vertical Cylinders</b>, <b>Horizontal/Vertical Cones</b>. You can open the file containing such a chart and modify it using the available chart editing tools.</p>
<p class="note"><b>Note</b>: <b>ONLYOFFICE Document Editor</b> supports the following types of charts that were created with third-party editors: <b>Pyramid</b>, <b>Bar (Pyramid)</b>, <b>Horizontal/Vertical Cylinders</b>, <b>Horizontal/Vertical Cones</b>. You can open the file containing such a chart and modify it using the available chart editing tools.</p> </li>
<li> <li>
after that the <b>Chart Editor</b> window will appear where you can enter the necessary data into the cells using the following controls: After that the <b>Chart Editor</b> window will appear where you can enter the necessary data into the cells using the following controls:
<ul> <ul>
<li><div class = "icon icon-copy"></div> and <div class = "icon icon-paste"></div> for copying and pasting the copied data</li> <li><div class = "icon icon-copy"></div> and <div class = "icon icon-paste"></div> for copying and pasting the copied data</li>
<li><div class = "icon icon-undo1"></div> and <div class = "icon icon-redo1"></div> for undoing and redoing actions</li> <li><div class = "icon icon-undo1"></div> and <div class = "icon icon-redo1"></div> for undoing and redoing actions</li>
@ -160,7 +160,7 @@
<p><img alt="Chart Type Combo" src="../../../../../../common/main/resources/help/en/images/charttype_combo.png" /></p> <p><img alt="Chart Type Combo" src="../../../../../../common/main/resources/help/en/images/charttype_combo.png" /></p>
</li> </li>
<li> <li>
change the chart settings by clicking the <b>Edit Chart</b> button situated in the <b>Chart Editor</b> window. The <b>Chart - Advanced Settings</b> window will open. Change the chart settings by clicking the <b>Edit Chart</b> button situated in the <b>Chart Editor</b> window. The <b>Chart - Advanced Settings</b> window will open.
<p><img alt="Chart - Advanced Settings window" src="../../../../../../common/main/resources/help/en/images/chartsettings_layout.png" /></p> <p><img alt="Chart - Advanced Settings window" src="../../../../../../common/main/resources/help/en/images/chartsettings_layout.png" /></p>
<p>The <b>Layout</b> tab allows you to change the layout of chart elements.</p> <p>The <b>Layout</b> tab allows you to change the layout of chart elements.</p>
<ul> <ul>
@ -188,7 +188,7 @@
Specify the <b>Data Labels</b> (i.e. text labels that represent exact values of data points) parameters:<br /> Specify the <b>Data Labels</b> (i.e. text labels that represent exact values of data points) parameters:<br />
<ul> <ul>
<li> <li>
specify the <b>Data Labels</b> position relative to the data points selecting the necessary option from the drop-down list. The available options vary depending on the selected chart type. Specify the <b>Data Labels</b> position relative to the data points selecting the necessary option from the drop-down list. The available options vary depending on the selected chart type.
<ul> <ul>
<li>For <b>Column/Bar</b> charts, you can choose the following options: <b>None</b>, <b>Center</b>, <b>Inner Bottom</b>, <b>Inner Top</b>, <b>Outer Top</b>.</li> <li>For <b>Column/Bar</b> charts, you can choose the following options: <b>None</b>, <b>Center</b>, <b>Inner Bottom</b>, <b>Inner Top</b>, <b>Outer Top</b>.</li>
<li>For <b>Line/XY (Scatter)/Stock</b> charts, you can choose the following options: <b>None</b>, <b>Center</b>, <b>Left</b>, <b>Right</b>, <b>Top</b>, <b>Bottom</b>.</li> <li>For <b>Line/XY (Scatter)/Stock</b> charts, you can choose the following options: <b>None</b>, <b>Center</b>, <b>Left</b>, <b>Right</b>, <b>Top</b>, <b>Bottom</b>.</li>
@ -196,8 +196,8 @@
<li>For <b>Area</b> charts as well as for <b>3D</b> <b>Column</b>, <b>Line</b>, <b>Bar</b> and <b>Combo</b> charts, you can choose the following options: <b>None</b>, <b>Center</b>.</li> <li>For <b>Area</b> charts as well as for <b>3D</b> <b>Column</b>, <b>Line</b>, <b>Bar</b> and <b>Combo</b> charts, you can choose the following options: <b>None</b>, <b>Center</b>.</li>
</ul> </ul>
</li> </li>
<li>select the data you wish to include into your labels checking the corresponding boxes: <b>Series Name</b>, <b>Category Name</b>, <b>Value</b>,</li> <li>Select the data you wish to include into your labels checking the corresponding boxes: <b>Series Name</b>, <b>Category Name</b>, <b>Value</b>,</li>
<li>enter a character (comma, semicolon etc.) you wish to use for separating several labels into the <b>Data Labels Separator</b> entry field.</li> <li>Enter a character (comma, semicolon etc.) you wish to use for separating several labels into the <b>Data Labels Separator</b> entry field.</li>
</ul> </ul>
</li> </li>
<li><b>Lines</b> - is used to choose a line style for <b>Line/XY (Scatter) charts</b>. You can choose one of the following options: <b>Straight</b> to use straight lines between data points, <b>Smooth</b> to use smooth curves between data points, or <b>None</b> to not display lines.</li> <li><b>Lines</b> - is used to choose a line style for <b>Line/XY (Scatter) charts</b>. You can choose one of the following options: <b>Straight</b> to use straight lines between data points, <b>Smooth</b> to use smooth curves between data points, or <b>None</b> to not display lines.</li>
@ -210,9 +210,9 @@
<p>The <b>Vertical Axis</b> tab allows you to change the parameters of the vertical axis also referred to as the values axis or y-axis which displays numeric values. Note that the vertical axis will be the category axis which displays text labels for the <b>Bar charts</b>, therefore in this case the <b>Vertical Axis</b> tab options will correspond to the ones described in the next section. For the <b>XY (Scatter) charts</b>, both axes are value axes.</p> <p>The <b>Vertical Axis</b> tab allows you to change the parameters of the vertical axis also referred to as the values axis or y-axis which displays numeric values. Note that the vertical axis will be the category axis which displays text labels for the <b>Bar charts</b>, therefore in this case the <b>Vertical Axis</b> tab options will correspond to the ones described in the next section. For the <b>XY (Scatter) charts</b>, both axes are value axes.</p>
<p class="note"><b>Note</b>: the <b>Axis Settings</b> and <b>Gridlines</b> sections will be disabled for <b>Pie charts</b> since charts of this type have no axes and gridlines.</p> <p class="note"><b>Note</b>: the <b>Axis Settings</b> and <b>Gridlines</b> sections will be disabled for <b>Pie charts</b> since charts of this type have no axes and gridlines.</p>
<ul> <ul>
<li>select <b>Hide</b> to hide vertical axis in the chart, leave it unchecked to have vertical axis displayed.</li> <li>Select <b>Hide</b> to hide vertical axis in the chart, leave it unchecked to have vertical axis displayed.</li>
<li> <li>
specify <b>Title</b> orientation by selecting the necessary option from the drop-down list: Specify <b>Title</b> orientation by selecting the necessary option from the drop-down list:
<ul> <ul>
<li><b>None</b> to not display a vertical axis title</li> <li><b>None</b> to not display a vertical axis title</li>
<li><b>Rotated</b> to display the title from bottom to top to the left of the vertical axis,</li> <li><b>Rotated</b> to display the title from bottom to top to the left of the vertical axis,</li>
@ -271,9 +271,9 @@
<p><img alt="Chart - Advanced Settings window" src="../../../../../../common/main/resources/help/en/images/chartsettings_horizontalaxis.png" /></p> <p><img alt="Chart - Advanced Settings window" src="../../../../../../common/main/resources/help/en/images/chartsettings_horizontalaxis.png" /></p>
<p>The <b>Horizontal Axis</b> tab allows you to change the parameters of the horizontal axis also referred to as the categories axis or x-axis which displays text labels. Note that the horizontal axis will be the value axis which displays numeric values for the <b>Bar charts</b>, therefore in this case the <b>Horizontal Axis</b> tab options will correspond to the ones described in the previous section. For the <b>XY (Scatter) charts</b>, both axes are value axes.</p> <p>The <b>Horizontal Axis</b> tab allows you to change the parameters of the horizontal axis also referred to as the categories axis or x-axis which displays text labels. Note that the horizontal axis will be the value axis which displays numeric values for the <b>Bar charts</b>, therefore in this case the <b>Horizontal Axis</b> tab options will correspond to the ones described in the previous section. For the <b>XY (Scatter) charts</b>, both axes are value axes.</p>
<ul> <ul>
<li>select <b>Hide</b> to hide horizontal axis in the chart, leave it unchecked to have horizontal axis displayed.</li> <li>Select <b>Hide</b> to hide horizontal axis in the chart, leave it unchecked to have horizontal axis displayed.</li>
<li> <li>
specify <b>Title</b> orientation by selecting the necessary option from the drop-down list: Specify <b>Title</b> orientation by selecting the necessary option from the drop-down list:
<ul> <ul>
<li><b>None</b> when you dont want to display a horizontal axis title,</li> <li><b>None</b> when you dont want to display a horizontal axis title,</li>
<li><b>No Overlay</b>  to display the title below the horizontal axis,</li> <li><b>No Overlay</b>  to display the title below the horizontal axis,</li>

View file

@ -73,12 +73,12 @@
<p>Pour rejeter rapidement toutes les modifications, cliquez sur la flèche vers le bas au-dessous du bouton <b>Rejeter </b><span class = "icon icon-review_rejecttoptoolbar"></span> et sélectionnez l'option <b>Rejeter toutes les modifications</b>.</p> <p>Pour rejeter rapidement toutes les modifications, cliquez sur la flèche vers le bas au-dessous du bouton <b>Rejeter </b><span class = "icon icon-review_rejecttoptoolbar"></span> et sélectionnez l'option <b>Rejeter toutes les modifications</b>.</p>
<h3 id="comparisonnotes">Informations supplémentaires sur la fonction de comparaison</h3> <h3 id="comparisonnotes">Informations supplémentaires sur la fonction de comparaison</h3>
<h5>Méthode de comparaison</h5> <h4>Méthode de comparaison</h4>
<p>Les documents sont comparés <b>par des mots</b>. Si au moins un caractère dans un mot est modifié (par exemple, si un caractère a été supprimé ou remplacé), à la suite la différence sera affichée comme le changement du mot entier, pas du caractère.</p> <p>Les documents sont comparés <b>par des mots</b>. Si au moins un caractère dans un mot est modifié (par exemple, si un caractère a été supprimé ou remplacé), à la suite la différence sera affichée comme le changement du mot entier, pas du caractère.</p>
<p>L'image ci-dessous illustre le cas où le fichier d'origine contient le mot « caractères » et le document de comparaison contient le mot « Caractères ».</p> <p>L'image ci-dessous illustre le cas où le fichier d'origine contient le mot « caractères » et le document de comparaison contient le mot « Caractères ».</p>
<p><img alt="Comparer documents - méthode " src="../images/compare_method.png" /></p> <p><img alt="Comparer documents - méthode " src="../images/compare_method.png" /></p>
<h5>Auteur du document</h5> <h4>Auteur du document</h4>
<p>Lors du lancement de la comparaison, le deuxième document de comparaison est chargé et comparé au document actuel.</p> <p>Lors du lancement de la comparaison, le deuxième document de comparaison est chargé et comparé au document actuel.</p>
<ul> <ul>
<li>Si le document chargé contient des données qui ne sont pas représentées dans le document d'origine, les données seront marquées comme ajoutées par un réviseur.</li> <li>Si le document chargé contient des données qui ne sont pas représentées dans le document d'origine, les données seront marquées comme ajoutées par un réviseur.</li>
@ -87,7 +87,7 @@
<p>Si le document original et le document chargé sont du même auteur, le réviseur est le même utilisateur. Son nom s'affiche dans la bulle de modification.</p> <p>Si le document original et le document chargé sont du même auteur, le réviseur est le même utilisateur. Son nom s'affiche dans la bulle de modification.</p>
<p>Si les deux fichiers sont des auteurs différents, l'auteur du deuxième fichier chargé à des fins de comparaison est l'auteur des modifications ajoutées/supprimées.</p> <p>Si les deux fichiers sont des auteurs différents, l'auteur du deuxième fichier chargé à des fins de comparaison est l'auteur des modifications ajoutées/supprimées.</p>
<h5>Présence des modifications suivies dans le document comparé</h5> <h4>Présence des modifications suivies dans le document comparé</h4>
<p>Si le document d'origine contient des modifications apportées en mode révision, elles seront acceptées pendant la comparaison. Lorsque vous choisissez le deuxième fichier à comparer, vous verrez le message d'avertissement correspondant.</p> <p>Si le document d'origine contient des modifications apportées en mode révision, elles seront acceptées pendant la comparaison. Lorsque vous choisissez le deuxième fichier à comparer, vous verrez le message d'avertissement correspondant.</p>
<p>Dans ce cas, lorsque vous choisissez le mode d'affichage <b>Original</b>, il n'y aura aucune modification dans le document.</p> <p>Dans ce cas, lorsque vous choisissez le mode d'affichage <b>Original</b>, il n'y aura aucune modification dans le document.</p>
</div> </div>

View file

@ -80,8 +80,7 @@
<li><b>Actualiser les numéros de page uniquement</b> permet d'actualiser les numéros de page sans modifier les changements de titres.</li> <li><b>Actualiser les numéros de page uniquement</b> permet d'actualiser les numéros de page sans modifier les changements de titres.</li>
<li><b>Actualiser le tableau entier</b> permet de mettre en place toutes les modifications des titres et des numéros de pages.</li> <li><b>Actualiser le tableau entier</b> permet de mettre en place toutes les modifications des titres et des numéros de pages.</li>
</ul> </ul>
<p>Cliquez sur <b>OK</b> pour confirmer votre choix. </p> <p>Cliquez sur <b>OK</b> pour confirmer votre choix ou</p>
<p>ou</p>
<p>Ouvrez le menu contextuel en cliquant avec le bouton droit de la souris sur le <b>Tableaux des figures</b> dans votre document, ensuite cliquez sur <b>Actualiser</b> dans le menu pour le mettre à jour.</p> <p>Ouvrez le menu contextuel en cliquant avec le bouton droit de la souris sur le <b>Tableaux des figures</b> dans votre document, ensuite cliquez sur <b>Actualiser</b> dans le menu pour le mettre à jour.</p>
</div> </div>
</body> </body>

View file

@ -27,7 +27,7 @@
</ul> </ul>
</li> </li>
</ol> </ol>
<p>Configuration des paramètres d'alignement est aussi disponible dans la fenêtre <b>Paragraphe - Paramètres avancés</b>.</p> <p>Configuration des paramètres d'alignement est aussi disponible dans la fenêtre <b>Paragraphe - Paramètres avancés</b>:</p>
<ol> <ol>
<li>faites un clic droit sur le texte et sélectionnez <b>Paragraphe - Paramètres avancés</b> du menu contextuel ou utilisez l'option <b>Afficher le paramètres avancée</b> sur la barre d'outils à droite,</li> <li>faites un clic droit sur le texte et sélectionnez <b>Paragraphe - Paramètres avancés</b> du menu contextuel ou utilisez l'option <b>Afficher le paramètres avancée</b> sur la barre d'outils à droite,</li>
<li>ouvrez la fenêtre <b>Paragraphe - Paramètres avancés</b>, passez à l'onglet <b>Retraits et espacement</b>,</li> <li>ouvrez la fenêtre <b>Paragraphe - Paramètres avancés</b>, passez à l'onglet <b>Retraits et espacement</b>,</li>

View file

@ -3,7 +3,7 @@
<head> <head>
<title>Créer des formulaires à remplir</title> <title>Créer des formulaires à remplir</title>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="description" content="Create fillable forms for advanced form interaction experience" /> <meta name="description" content="Créer des formulaires à remplir pour améliorer l'expérience de travail avec des formulaires interactifs" />
<link type = "text/css" rel = "stylesheet" href = "../../images/sprite.css" /> <link type = "text/css" rel = "stylesheet" href = "../../images/sprite.css" />
<link type="text/css" rel="stylesheet" href="../editor.css" /> <link type="text/css" rel="stylesheet" href="../editor.css" />
<script type="text/javascript" src="../callback.js"></script> <script type="text/javascript" src="../callback.js"></script>
@ -37,9 +37,9 @@
</li> </li>
</ol> </ol>
<p><img alt="champ de texte ajouté" src="../images/text_field_inserted.png" /></p> <p><img alt="champ de texte ajouté" src="../images/text_field_inserted.png" /></p>
<p>Un champ du formulaire apparaîtra à la point d'insertion de la ligne de texte existante. Le menu <b>Paramètres du formulaire</b> s'affiche à droite.</p> <p>Un champ du formulaire apparaîtra au point d'insertion de la ligne de texte existante. Le menu <b>Paramètres du formulaire</b> s'affiche à droite.</p>
<div id="text_field_settings"> <div id="text_field_settings">
<img alt="paramètres champ de texte" src="../images/text_field_settings.png" /> <img alt="Paramètres du champ de texte" src="../images/text_field_settings.png" />
<ul> <ul>
<li><b>Clé</b> : une clé à grouper les champs afin de les remplir simultanément. Pour créer une nouvelle clé, saisissez le nom de celle-là et appuyez sur <b>Entrée</b>, ensuite attribuez cette clé à chaque champ texte en choisissant de la liste déroulante. Message <em>Champs connectés</em> :<em> 2/3/...</em> s'affiche. Pour déconnecter les champs, cliquez sur <b>Déconnexion</b>.</li> <li><b>Clé</b> : une clé à grouper les champs afin de les remplir simultanément. Pour créer une nouvelle clé, saisissez le nom de celle-là et appuyez sur <b>Entrée</b>, ensuite attribuez cette clé à chaque champ texte en choisissant de la liste déroulante. Message <em>Champs connectés</em> :<em> 2/3/...</em> s'affiche. Pour déconnecter les champs, cliquez sur <b>Déconnexion</b>.</li>
<li><b>Espace réservé</b> : saisissez le texte à afficher dans le champ de saisie. Le texte par défaut est <em>Votre texte ici</em>.</li> <li><b>Espace réservé</b> : saisissez le texte à afficher dans le champ de saisie. Le texte par défaut est <em>Votre texte ici</em>.</li>
@ -49,20 +49,26 @@
<br /> <img alt="Conseil ajouté" src="../images/text_field_tip.png" /> <br /> <img alt="Conseil ajouté" src="../images/text_field_tip.png" />
</li> </li>
<li> <li>
<b>Taille de champ fixe</b> : activez cette option pour fixer la taille du champ. Lors de l'activation de cette option, les options <b>Ajustement automatique</b> et <b>Champ de saisie à plusieurs lignes</b> deviennent aussi disponibles.<br /> <b>Format</b> : choisissez le format de contenu du champ texte, c'est-à-dire que seul le format de caractère choisi sera autorisé : <em>Aucun</em>, <em>Chiffres</em>, <em>Lettres</em>, <em>Masque arbitraire</em> (le texte doit correspondre au masque personnalisé, par exemple (999) 999 99 99), <em>Expression régulière</em> (le texte doit correspondre à l'expression personnalisée).
Un champ de taille fixe ressemble à une forme automatique. Vous pouvez définir le style d'habillage et ajuster son position. <p>Lorsque vous choisissez le format <em>Masque arbitraire</em> ou <em>Expression régulière</em>, un champ supplémentaire sous le champ <b>Format</b> apparaît.</p>
</li> </li>
<li><b>Symboles autorisés</b> : saisissez les symboles autorisés dans le champ texte.</li>
<li>
<b>Taille de champ fixe</b> : activez cette option pour fixer la taille du champ. Lors de l'activation de cette option, les options <b>Ajustement automatique</b> et <b>Champ de saisie à plusieurs lignes</b> deviennent aussi disponibles.<br />
Un champ de taille fixe ressemble à une forme automatique. Vous pouvez définir le style d'habillage et ajuster sa position.
</li>
<li><b>Ajustement automatique</b> : il est possible d'activer cette option lors l'activation de l'option <b>Taille de champ fixe</b>, cochez cette case pour ajuster automatiquement la police en fonction de la taille du champ.</li>
<li><b>Champ de saisie à plusieurs lignes</b> : il est possible d'activer cette option lors l'activation de l'option <b>Taille de champ fixe</b>, cochez cette case pour créer un champ à plusieurs lignes, sinon le champ va contenir une seule ligne de texte.</li>
<li><b>Limite de caractères</b> : le nombre de caractères n'est pas limité par défaut. Activez cette option pour indiquer le nombre maximum de caractères dans le champ à droite.</li> <li><b>Limite de caractères</b> : le nombre de caractères n'est pas limité par défaut. Activez cette option pour indiquer le nombre maximum de caractères dans le champ à droite.</li>
<li> <li>
<b>Peigne de caractères</b> : configurer l'aspect général pour une présentation claire et équilibré. Laissez cette case décoché pour garder les paramètres par défaut ou cochez-là et configurez les paramètres suivants : <b>Peigne de caractères</b> : configurer l'aspect général pour une présentation claire et équilibrée. Laissez cette case décochée pour garder les paramètres par défaut ou cochez-là et configurez les paramètres suivants :
<ul> <ul>
<li><b>Largeur de cellule</b> : choisissez si la valeur de largeur doit être <em>Auto</em> (la largeur est calculée automatiquement), <em>Au moins</em> (la largeur n'est pas inférieure à la valeur indiquée manuellement), ou <em>Exactement</em> (la largeur correspond à la valeur indiquée manuellement). Le texte sera justifié selon les paramètres.</li> <li><b>Largeur de cellule</b> : choisissez si la valeur de largeur doit être <em>Auto</em> (la largeur est calculée automatiquement), <em>Au moins</em> (la largeur n'est pas inférieure à la valeur indiquée manuellement), ou <em>Exactement</em> (la largeur correspond à la valeur indiquée manuellement). Le texte sera justifié selon les paramètres.</li>
</ul> </ul>
</li> </li>
<li><b>Couleur de bordure</b> : cliquez sur l'icône <div class = "icon icon-nofill"></div> pour définir la couleur de bordure du champ texte. Sélectionnez la couleur appropriée des bordures dans la palette. Le cas échéant, vous pouvez <b>ajouter une couleur personnalisée</b>.</li> <li><b>Couleur de bordure</b> : cliquez sur l'icône <div class = "icon icon-nofill"></div> pour définir la couleur de bordure du champ texte. Sélectionnez la couleur appropriée des bordures dans la palette. Le cas échéant, vous pouvez <b>ajouter une couleur personnalisée</b>.</li>
<li><b>Couleur d'arrière-plan</b> : cliquez sur l'icône <div class = "icon icon-nofill"></div> pour ajouter la couleur d'arrière-plan au champ de texte. Sélectionnez la couleur appropriée de la palette <b>Couleurs du thème</b>, <b>Couleurs standard</b> ou <b>ajoutez une nouvelle couleur personnalisée</b>, le cas échéant.</li> <li><b>Couleur d'arrière-plan</b> : cliquez sur l'icône <div class = "icon icon-nofill"></div> pour ajouter la couleur d'arrière-plan au champ de texte. Sélectionnez la couleur appropriée de la palette <b>Couleurs du thème</b>, <b>Couleurs standard</b> ou <b>ajoutez une nouvelle couleur personnalisée</b>, le cas échéant.</li>
<li><b>Ajustement automatique</b> : il est possible d'activer cette option lors l'activation de l'option <b>Taille de champ fixe</b>, cochez cette case pour ajuster automatiquement la police en fonction de la taille du champ.</li> <li><b>Requis</b> : cochez cette case pour rendre le champ texte obligatoire à remplir.</li>
<li><b>Champ de saisie à plusieurs lignes</b> : il est possible d'activer cette option lors l'activation de l'option <b>Taille de champ fixe</b>, cochez cette case pour créer un champ à plusieurs lignes, sinon le champ va contenir une seule ligne de texte.</li>
</ul> </ul>
</div> </div>
<p><img alt="Peigne de caractères" src="../images/comb_of_characters.png" /></p> <p><img alt="Peigne de caractères" src="../images/comb_of_characters.png" /></p>
@ -72,7 +78,7 @@
<h2 id="combobox">Créer une zone de liste déroulante</h2> <h2 id="combobox">Créer une zone de liste déroulante</h2>
<p>Zone de liste déroulante comporte une liste déroulante avec un ensemble de choix modifiable.</p> <p><em>Zone de liste déroulante</em> comporte une liste déroulante avec un ensemble de choix modifiable.</p>
<div class="forms"> <div class="forms">
<details class="details-example"> <details class="details-example">
<summary>Pour ajouter une zone de liste déroulante,</summary> <summary>Pour ajouter une zone de liste déroulante,</summary>
@ -84,27 +90,28 @@
</li> </li>
</ol> </ol>
<p><img alt="Zone de liste déroulante ajoutée" src="../images/combo_box_inserted.png" /></p> <p><img alt="Zone de liste déroulante ajoutée" src="../images/combo_box_inserted.png" /></p>
<p>Le champ de formulaire apparaîtra à la point d'insertion de la ligne de texte existante. Le menu <b>Paramètres du formulaire</b> s'affiche à droite.</p> <p>Le champ de formulaire apparaîtra au point d'insertion de la ligne de texte existante. Le menu <b>Paramètres du formulaire</b> s'affiche à droite.</p>
<div id="combo_box_settings"> <div id="combo_box_settings">
<img alt="Paramètres de la zone de liste déroulante" src="../images/combo_box_settings.png" /> <img alt="Paramètres de la zone de liste déroulante" src="../images/combo_box_settings.png" />
<ul> <ul>
<li><b>Clé</b> : une clé à grouper les zones de liste déroulante afin de les remplir simultanément. Pour créer une nouvelle clé, saisissez le nom de celle-là et appuyez sur <b>Entrée</b>, ensuite attribuez cette clé à chaque zone de liste déroulante. Choisissez la clé de la liste déroulante. Message <em>Champs connectés</em>:<em> 2/3/...</em> s'affiche. Pour déconnecter les champs, cliquez sur <b>Déconnexion</b>.</li> <li><b>Clé</b> : une clé à grouper les zones de liste déroulante afin de les remplir simultanément. Pour créer une nouvelle clé, saisissez le nom de celle-là et appuyez sur <b>Entrée</b>, ensuite attribuez cette clé à chaque zone de liste déroulante. Choisissez la clé de la liste déroulante. Message <em>Champs connectés</em>:<em> 2/3/...</em> s'affiche. Pour déconnecter les champs, cliquez sur <b>Déconnexion</b>.</li>
<li><b>Espace réservé</b> : saisissez le texte à afficher dans zone de liste déroulante. Le texte par défaut est <em>Choisir un élément</em>.</li> <li><b>Espace réservé</b> : saisissez le texte à afficher dans la zone de liste déroulante. Le texte par défaut est <em>Choisir un élément</em>.</li>
<li><b>Tag</b> : saisissez le texte à utiliser en tant que tag pour usage interne, c'est-à-dire à afficher aux coéditeurs uniquement.</li> <li><b>Tag</b> : saisissez le texte à utiliser en tant que tag pour usage interne, c'est-à-dire à afficher aux coéditeurs uniquement.</li>
<li> <li>
<b>Conseil</b> : saisissez le texte à afficher quand l'utilisateur fait passer la souris sur le champ du formulaire. <b>Conseil</b> : saisissez le texte à afficher quand l'utilisateur fait passer la souris sur le champ du formulaire.
<br /> <img alt="Conseil ajouté" src="../images/combo_box_tip.png" /> <br /> <img alt="Conseil ajouté" src="../images/combo_box_tip.png" />
</li> </li>
<li><b>Options de valeur</b> : ajouter <div class="icon icon-combo_add_values"></div> de nouvelles valeurs, supprimez-les <div class="icon icon-combo_delete_values"></div> , ou déplacez-les vers le haut <div class="icon icon-combo_values_up"></div> et <div class="icon icon-combo_values_down"></div> vers le bas de la liste.</li> <li><b>Options de valeur</b> : ajouter <div class="icon icon-combo_add_values"></div> de nouvelles valeurs, supprimez-les <div class="icon icon-combo_delete_values"></div> ou déplacez-les vers le haut <div class="icon icon-combo_values_up"></div> et <div class="icon icon-combo_values_down"></div> vers le bas de la liste.</li>
<li> <li>
<b>Taille de champ fixe</b> : activez cette option pour fixer la taille du champ.<br /> <b>Taille de champ fixe</b> : activez cette option pour fixer la taille du champ.<br />
Un champ de taille fixe ressemble à une forme automatique. Vous pouvez définir le style d'habillage et ajuster son position. Un champ de taille fixe ressemble à une forme automatique. Vous pouvez définir le style d'habillage et ajuster sa position.
</li> </li>
<li><b>Couleur de bordure</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour définir la couleur de bordure de la zone de liste déroulante. Sélectionnez la couleur appropriée des bordures dans la palette. Le cas échéant, vous pouvez <b>ajouter une couleur personnalisée</b>.</li> <li><b>Couleur de bordure</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour définir la couleur de bordure de la zone de liste déroulante. Sélectionnez la couleur appropriée des bordures dans la palette. Le cas échéant, vous pouvez <b>ajouter une couleur personnalisée</b>.</li>
<li><b>Couleur d'arrière-plan</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour ajouter la couleur d'arrière-plan à la zone de liste déroulante. Sélectionnez la couleur appropriée de la palette <b>Couleurs du thème</b>, <b>Couleurs standard</b> ou <b>ajoutez une nouvelle couleur personnalisée</b>, le cas échéant.</li> <li><b>Couleur d'arrière-plan</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour ajouter la couleur d'arrière-plan à la zone de liste déroulante. Sélectionnez la couleur appropriée de la palette <b>Couleurs du thème</b>, <b>Couleurs standard</b> ou <b>ajoutez une nouvelle couleur personnalisée</b>, le cas échéant.</li>
<li><b>Requis</b> : cochez cette case pour rendre le champ de zone de liste déroulante obligatoire à remplir.</li>
</ul> </ul>
</div> </div>
<p>Cliquez sur la flèche dans la partie droite de la <b>Zone de liste déroulante</b> ajoutée pour accéder à la liste d'éléments disponibles et choisir un élément approprié. Lorsque vous avez choisi un élément, vous pouvez modifier le texte affiché partiellement ou entièrement ou le remplacer du texte.</p> <p>Cliquez sur la flèche dans la partie droite de la <b>Zone de liste déroulante</b> ajoutée pour accéder à la liste d'éléments disponibles et choisir un élément approprié. Lorsque vous avez choisi un élément, vous pouvez modifier le texte affiché partiellement ou entièrement ou le remplacer du texte.</p>
<p><img alt="La zone de liste déroulante ouverte" src="../images/combo_box_opened.png" /></p> <p><img alt="La zone de liste déroulante ouverte" src="../images/combo_box_opened.png" /></p>
<p>Vous pouvez changer le style, la couleur et la taille de la police. Cliquez sur la zone de liste déroulante et suivez les <a href="../UsageInstructions/FontTypeSizeColor.htm">instructions</a>. La mise en forme sera appliquée à l'ensemble du texte dans le champ.</p> <p>Vous pouvez changer le style, la couleur et la taille de la police. Cliquez sur la zone de liste déroulante et suivez les <a href="../UsageInstructions/FontTypeSizeColor.htm">instructions</a>. La mise en forme sera appliquée à l'ensemble du texte dans le champ.</p>
</details> </details>
@ -124,9 +131,9 @@
</li> </li>
</ol> </ol>
<p><img alt="Liste déroulante ajoutée" src="../images/combo_box_inserted.png" /></p> <p><img alt="Liste déroulante ajoutée" src="../images/combo_box_inserted.png" /></p>
<p>Le champ de formulaire apparaîtra à la point d'insertion de la ligne de texte existante. Le menu <b>Paramètres du formulaire</b> s'affiche à droite.</p> <p>Le champ de formulaire apparaîtra au point d'insertion de la ligne de texte existante. Le menu <b>Paramètres du formulaire</b> s'affiche à droite.</p>
<div id="dropdown_list_settings"> <div id="dropdown_list_settings">
<img alt="Paramètres de la liste déroulante" src="../images/dropdown_list_settings.png" /> <img alt="Paramètres de la liste déroulante" src="../images/dropdown_list_settings.png" />
<ul> <ul>
<li><b>Clé</b> : une clé à grouper les listes déroulantes afin de les remplir simultanément. Pour créer une nouvelle clé, saisissez le titre de celle-là et appuyez sur <b>Entrée</b>, ensuite attribuez cette clé aux champs du formulaire en choisissant de la liste déroulante. Message <em>Champs connectés</em>:<em> 2/3/...</em> s'affiche. Pour déconnecter les champs, cliquez sur <b>Déconnexion</b>.</li> <li><b>Clé</b> : une clé à grouper les listes déroulantes afin de les remplir simultanément. Pour créer une nouvelle clé, saisissez le titre de celle-là et appuyez sur <b>Entrée</b>, ensuite attribuez cette clé aux champs du formulaire en choisissant de la liste déroulante. Message <em>Champs connectés</em>:<em> 2/3/...</em> s'affiche. Pour déconnecter les champs, cliquez sur <b>Déconnexion</b>.</li>
<li><b>Espace réservé</b> : saisissez le texte à afficher dans la liste déroulante. Le texte par défaut est <em>Choisir un élément</em>.</li> <li><b>Espace réservé</b> : saisissez le texte à afficher dans la liste déroulante. Le texte par défaut est <em>Choisir un élément</em>.</li>
@ -135,13 +142,14 @@
<b>Conseil</b> : saisissez le texte à afficher quand l'utilisateur fait passer la souris sur le champ du formulaire. <b>Conseil</b> : saisissez le texte à afficher quand l'utilisateur fait passer la souris sur le champ du formulaire.
<br /> <img alt="Conseil ajouté" src="../images/combo_box_tip.png" /> <br /> <img alt="Conseil ajouté" src="../images/combo_box_tip.png" />
</li> </li>
<li><b>Options de valeur</b> : ajouter <div class="icon icon-combo_add_values"></div> de nouvelles valeurs, supprimez-les <div class="icon icon-combo_delete_values"></div> , ou déplacez-les vers le haut <div class="icon icon-combo_values_up"></div> et <div class="icon icon-combo_values_down"></div> vers le bas de la liste.</li> <li><b>Options de valeur</b> : ajouter <div class="icon icon-combo_add_values"></div> de nouvelles valeurs, supprimez-les <div class="icon icon-combo_delete_values"></div> ou déplacez-les vers le haut <div class="icon icon-combo_values_up"></div> et <div class="icon icon-combo_values_down"></div> vers le bas de la liste.</li>
<li> <li>
<b>Taille de champ fixe</b> : activez cette option pour fixer la taille du champ.<br /> <b>Taille de champ fixe</b> : activez cette option pour fixer la taille du champ.<br />
Un champ de taille fixe ressemble à une forme automatique. Vous pouvez définir le style d'habillage et ajuster son position. Un champ de taille fixe ressemble à une forme automatique. Vous pouvez définir le style d'habillage et ajuster sa position.
</li> </li>
<li><b>Couleur de bordure</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour définir la couleur de bordure de la liste déroulante. Sélectionnez la couleur appropriée des bordures dans la palette. Le cas échéant, vous pouvez <b>ajouter une couleur personnalisée</b>.</li> <li><b>Couleur de bordure</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour définir la couleur de bordure de la liste déroulante. Sélectionnez la couleur appropriée des bordures dans la palette. Le cas échéant, vous pouvez <b>ajouter une couleur personnalisée</b>.</li>
<li><b>Couleur d'arrière-plan</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour ajouter la couleur d'arrière-plan à la liste déroulante. Sélectionnez la couleur appropriée de la palette <b>Couleurs du thème</b>, <b>Couleurs standard</b> ou <b>ajoutez une nouvelle couleur personnalisée</b>, le cas échéant.</li> <li><b>Couleur d'arrière-plan</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour ajouter la couleur d'arrière-plan à la liste déroulante. Sélectionnez la couleur appropriée de la palette <b>Couleurs du thème</b>, <b>Couleurs standard</b> ou <b>ajoutez une nouvelle couleur personnalisée</b>, le cas échéant.</li>
<li><b>Requis</b> : cochez cette case pour rendre le champ de liste déroulante obligatoire à remplir.</li>
</ul> </ul>
</div> </div>
<p>Cliquez sur la flèche dans la partie droite de la <b>Liste déroulante</b> ajoutée pour accéder à la liste d'éléments disponibles et choisir un élément approprié.</p> <p>Cliquez sur la flèche dans la partie droite de la <b>Liste déroulante</b> ajoutée pour accéder à la liste d'éléments disponibles et choisir un élément approprié.</p>
@ -151,7 +159,7 @@
<h2 id="checkbox">Créer une case à cocher</h2> <h2 id="checkbox">Créer une case à cocher</h2>
<p><em>Case à cocher</em> fournit plusieurs options permettant à l'utilisateur de sélectionner autant de cases à cocher que nécessaire. Cases à cocher sont utilisées indépendamment, alors chaque case peut être coché et ou décoché.</p> <p><em>Case à cocher</em> fournit plusieurs options permettant à l'utilisateur de sélectionner autant de cases à cocher que nécessaire. Cases à cocher sont utilisées indépendamment, alors chaque case peut être cochée et ou décochée.</p>
<div class="forms"> <div class="forms">
<details class="details-example"> <details class="details-example">
<summary>Pour insérer une case à cocher,</summary> <summary>Pour insérer une case à cocher,</summary>
@ -163,9 +171,9 @@
</li> </li>
</ol> </ol>
<p><span class = "big big-checkbox_inserted"></span></p> <p><span class = "big big-checkbox_inserted"></span></p>
<p>Le champ du formulaire apparaîtra à la point d'insertion de la ligne de texte existante. Le menu <b>Paramètres du formulaire</b> s'affiche à droite.</p> <p>Le champ du formulaire apparaîtra au point d'insertion de la ligne de texte existante. Le menu <b>Paramètres du formulaire</b> s'affiche à droite.</p>
<div id="checkbox_settings"> <div id="checkbox_settings">
<img alt="Paramètres de case à cocher" src="../images/checkbox_settings.png" /> <img alt="Paramètres de la case à cocher" src="../images/checkbox_settings.png" />
<ul> <ul>
<li><b>Clé</b> : une clé à grouper les cases à cocher afin de les remplir simultanément. Pour créer une nouvelle clé, saisissez le titre de celle-là et appuyez sur <b>Entrée</b>, ensuite attribuez cette clé aux champs du formulaire en choisissant de la liste déroulante. Message <em>Champs connectés</em> :<em> 2/3/...</em> s'affiche. Pour déconnecter les champs, cliquez sur <b>Déconnexion</b>.</li> <li><b>Clé</b> : une clé à grouper les cases à cocher afin de les remplir simultanément. Pour créer une nouvelle clé, saisissez le titre de celle-là et appuyez sur <b>Entrée</b>, ensuite attribuez cette clé aux champs du formulaire en choisissant de la liste déroulante. Message <em>Champs connectés</em> :<em> 2/3/...</em> s'affiche. Pour déconnecter les champs, cliquez sur <b>Déconnexion</b>.</li>
<li><b>Tag</b> : saisissez un texte à utiliser en tant que tag à usage interne, c'est-à-dire affiché uniquement pour les coéditeurs.</li> <li><b>Tag</b> : saisissez un texte à utiliser en tant que tag à usage interne, c'est-à-dire affiché uniquement pour les coéditeurs.</li>
@ -175,10 +183,11 @@
</li> </li>
<li> <li>
<b>Taille de champ fixe</b> : activez cette option pour fixer la taille du champ.<br /> <b>Taille de champ fixe</b> : activez cette option pour fixer la taille du champ.<br />
Un champ de taille fixe ressemble à une forme automatique. Vous pouvez définir le style d'habillage et ajuster son position. Un champ de taille fixe ressemble à une forme automatique. Vous pouvez définir le style d'habillage et ajuster sa position.
</li> </li>
<li><b>Couleur de bordure</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour définir la couleur de bordure de la case à cocher. Sélectionnez la couleur appropriée des bordures dans la palette. Le cas échéant, vous pouvez <b>ajouter une couleur personnalisée</b>.</li> <li><b>Couleur de bordure</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour définir la couleur de bordure de la case à cocher. Sélectionnez la couleur appropriée des bordures dans la palette. Le cas échéant, vous pouvez <b>ajouter une couleur personnalisée</b>.</li>
<li><b>Couleur d'arrière-plan</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour ajouter la couleur d'arrière-plan à la case à cocher. Sélectionnez la couleur appropriée de la palette <b>Couleurs du thème</b>, <b>Couleurs standard</b> ou <b>ajoutez une nouvelle couleur personnalisée</b>, le cas échéant.</li> <li><b>Couleur d'arrière-plan</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour ajouter la couleur d'arrière-plan à la case à cocher. Sélectionnez la couleur appropriée de la palette <b>Couleurs du thème</b>, <b>Couleurs standard</b> ou <b>ajoutez une nouvelle couleur personnalisée</b>, le cas échéant.</li>
<li><b>Requis</b> : cochez cette case pour rendre le champ de case à cocher obligatoire à remplir.</li>
</ul> </ul>
</div> </div>
<p>Cliquez sur la case pour la cocher.</p> <p>Cliquez sur la case pour la cocher.</p>
@ -188,7 +197,7 @@
<h2 id="radiobutton">Créer un bouton radio</h2> <h2 id="radiobutton">Créer un bouton radio</h2>
<p><em>Bouton radio</em> fournit plusieurs options permettant à l'utilisateur de choisir une seule option parmi plusieurs possibles. Boutons radio sont utilisés en groupe, alors on ne peut pat choisir plusieurs boutons de la même groupe.</p> <p><em>Bouton radio</em> fournit plusieurs options permettant à l'utilisateur de choisir une seule option parmi plusieurs possibles. Boutons radio sont utilisés en groupe, alors on ne peut pas choisir plusieurs boutons du même groupe.</p>
<div class="forms"> <div class="forms">
<details class="details-example"> <details class="details-example">
<summary>Pour ajouter un bouton radio,</summary> <summary>Pour ajouter un bouton radio,</summary>
@ -200,9 +209,9 @@
</li> </li>
</ol> </ol>
<p><span class = "big big-radio_button_inserted"></span></p> <p><span class = "big big-radio_button_inserted"></span></p>
<p>Le champ du formulaire apparaîtra à la point d'insertion de la ligne de texte existante. Le menu <b>Paramètres du formulaire</b> s'affiche à droite.</p> <p>Le champ du formulaire apparaîtra au point d'insertion de la ligne de texte existante. Le menu <b>Paramètres du formulaire</b> s'affiche à droite.</p>
<div id="radio_button_settings"> <div id="radio_button_settings">
<img alt="Paramètres su bouton radio" src="../images/radio_button_settings.png" /> <img alt="Paramètres du bouton radio" src="../images/radio_button_settings.png" />
<ul> <ul>
<li><b>Clé de groupe</b> : pour créer un nouveau groupe de boutons radio, saisissez le nom du groupe et appuyez sur <b>Entrée</b>, ensuite attribuez le groupe approprié à chaque bouton radio.</li> <li><b>Clé de groupe</b> : pour créer un nouveau groupe de boutons radio, saisissez le nom du groupe et appuyez sur <b>Entrée</b>, ensuite attribuez le groupe approprié à chaque bouton radio.</li>
<li><b>Tag</b> : saisissez un texte à utiliser en tant que tag à usage interne, c'est-à-dire affiché uniquement pour les coéditeurs.</li> <li><b>Tag</b> : saisissez un texte à utiliser en tant que tag à usage interne, c'est-à-dire affiché uniquement pour les coéditeurs.</li>
@ -212,10 +221,11 @@
</li> </li>
<li> <li>
<b>Taille de champ fixe</b> : activez cette option pour fixer la taille du champ.<br /> <b>Taille de champ fixe</b> : activez cette option pour fixer la taille du champ.<br />
Un champ de taille fixe ressemble à une forme automatique. Vous pouvez définir le style d'habillage et ajuster son position. Un champ de taille fixe ressemble à une forme automatique. Vous pouvez définir le style d'habillage et ajuster sa position.
</li> </li>
<li><b>Couleur de bordure</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour définir la couleur de bordure du bouton radio. Sélectionnez la couleur appropriée des bordures dans la palette. Le cas échéant, vous pouvez <b>ajouter une couleur personnalisée</b>.</li> <li><b>Couleur de bordure</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour définir la couleur de bordure du bouton radio. Sélectionnez la couleur appropriée des bordures dans la palette. Le cas échéant, vous pouvez <b>ajouter une couleur personnalisée</b>.</li>
<li><b>Couleur d'arrière-plan</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour ajouter la couleur d'arrière-plan au bouton radio. Sélectionnez la couleur appropriée de la palette <b>Couleurs du thème</b>, <b>Couleurs standard</b> ou <b>ajoutez une nouvelle couleur personnalisée</b>, le cas échéant.</li> <li><b>Couleur d'arrière-plan</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour ajouter la couleur d'arrière-plan au bouton radio. Sélectionnez la couleur appropriée de la palette <b>Couleurs du thème</b>, <b>Couleurs standard</b> ou <b>ajoutez une nouvelle couleur personnalisée</b>, le cas échéant.</li>
<li><b>Requis</b> : cochez cette case pour rendre le champ bouton radio obligatoire à remplir.</li>
</ul> </ul>
</div> </div>
<p>Cliquez sur le bouton radio pour le choisir.</p> <p>Cliquez sur le bouton radio pour le choisir.</p>
@ -225,10 +235,10 @@
<h2 id="image">Créer un champ image</h2> <h2 id="image">Créer un champ image</h2>
<p>Images sont les champs du formulaire permettant d'insérer une image selon des limites définies, c-à-d, la position et la taille de l'image.</p> <p>Images sont les champs du formulaire permettant d'insérer une image selon des limites définies, c'est-à-dire, la position et la taille de l'image.</p>
<div class="forms"> <div class="forms">
<details class="details-example"> <details class="details-example">
<summary>Pour ajouter un champ d'image,</summary> <summary>Pour ajouter un champ image,</summary>
<ol> <ol>
<li>positionnez le point d'insertion à la ligne du texte où vous souhaitez ajouter un champ,</li> <li>positionnez le point d'insertion à la ligne du texte où vous souhaitez ajouter un champ,</li>
<li>passez à l'onglet <b>Formulaires</b> de la barre d'outils supérieure,</li> <li>passez à l'onglet <b>Formulaires</b> de la barre d'outils supérieure,</li>
@ -237,21 +247,22 @@
</li> </li>
</ol> </ol>
<p><span class = "big big-image_form_inserted"></span></p> <p><span class = "big big-image_form_inserted"></span></p>
<p>Le champ du formulaire apparaîtra à la point d'insertion de la ligne de texte existante. Le menu <b>Paramètres du formulaire</b> s'affiche à droite.</p> <p>Le champ du formulaire apparaîtra au point d'insertion de la ligne de texte existante. Le menu <b>Paramètres du formulaire</b> s'affiche à droite.</p>
<div id="image_form_settings"> <div id="image_form_settings">
<img alt="Paramètres du champ image" src="../images/image_form_settings.png" /> <img alt="Paramètres du champ image" src="../images/image_form_settings.png" />
<ul> <ul>
<li><b>Clé</b> : une clé à grouper les images afin de les remplir simultanément. Pour créer une nouvelle clé, saisissez le titre de celle-là et appuyez sur <b>Entrée</b>, ensuite attribuez cette clé aux champs du formulaire en choisissant de la liste déroulante. Message <em>Champs connectés</em> :<em> 2/3/...</em> s'affiche. Pour déconnecter les champs, cliquez sur <b>Déconnexion</b>.</li> <li><b>Clé</b> : une clé à grouper les images afin de les remplir simultanément. Pour créer une nouvelle clé, saisissez le titre de celle-là et appuyez sur <b>Entrée</b>, ensuite attribuez cette clé aux champs du formulaire en choisissant de la liste déroulante. Message <em>Champs connectés</em> :<em> 2/3/...</em> s'affiche. Pour déconnecter les champs, cliquez sur <b>Déconnexion</b>.</li>
<li><b>Espace réservé</b> : saisissez le texte à afficher dans le champ d'image. Le texte par défaut est <em>Cliquer pour télécharger l'image</em>.</li> <li><b>Espace réservé</b> : saisissez le texte à afficher dans le champ image. Le texte par défaut est <em>Cliquer pour télécharger l'image</em>.</li>
<li><b>Tag</b> : saisissez un texte à utiliser en tant que tag à usage interne, c'est-à-dire affiché uniquement pour les coéditeurs.</li> <li><b>Tag</b> : saisissez un texte à utiliser en tant que tag à usage interne, c'est-à-dire affiché uniquement pour les coéditeurs.</li>
<li> <li>
<b>Conseil</b> : saisissez le texte à afficher quand l'utilisateur fait passer la souris sur la bordure inférieure de l'image. <b>Conseil</b> : saisissez le texte à afficher quand l'utilisateur fait passer la souris sur la bordure inférieure de l'image.
</li> </li>
<li><b>Mise à l'échelle</b> : cliquez sur la liste déroulante et sélectionnez l'option de dimensionnement de l'image appropriée : <b>Toujours</b>, <b>Jamais</b>, lorsque <b>L'image semble trop grande</b> ou <b>L'image semble trop petite</b>. L'image sélectionnée sera redimensionnée dans le champ en fonction de l'option choisie.</li> <li><b>Mise à l'échelle</b> : cliquez sur la liste déroulante et sélectionnez l'option de dimensionnement de l'image appropriée : <b>Toujours</b>, <b>Jamais</b>, lorsque <b>L'image semble trop grande</b> ou <b>L'image semble trop petite</b>. L'image sélectionnée sera redimensionnée dans le champ en fonction de l'option choisie.</li>
<li><b>Verrouiller les proportions</b> : cochez cette case pour maintenir le rapport d'aspect de l'image sans la déformer. Lors l'activation de cette option, faites glisser le curseur vertical ou horizontal pour positionner l'image à l'intérieur du champ ajouté. Si la case n'est pas cochée, les curseurs de positionnement ne sont pas activés.</li> <li><b>Verrouiller les proportions</b> : cochez cette case pour maintenir le rapport d'aspect de l'image sans la déformer. Lors l'activation de cette option, faites glisser le curseur vertical ou horizontal pour positionner l'image à l'intérieur du champ ajouté. Si la case n'est pas cochée, les curseurs de positionnement ne sont pas activés.</li>
<li><b>Sélectionnez une image</b> : cliquez sur ce bouton pour télécharger une image <b>Depuis un fichier</b>, <b>D'une URL</b> ou <b>A partir de l'espace de stockage</b>.</li> <li><b>Sélectionnez une image</b> : cliquez sur ce bouton pour télécharger une image <b>Depuis un fichier</b>, <b>D'une URL</b> ou <b>A partir de l'espace de stockage</b>.</li>
<li><b>Couleur de bordure</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour définir la couleur de bordure du champ avec l'image. Sélectionnez la couleur appropriée des bordures dans la palette. Le cas échéant, vous pouvez <b>ajouter une couleur personnalisée</b>.</li> <li><b>Couleur de bordure</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour définir la couleur de bordure du champ avec l'image. Sélectionnez la couleur appropriée des bordures dans la palette. Le cas échéant, vous pouvez <b>ajouter une couleur personnalisée</b>.</li>
<li><b>Couleur d'arrière-plan</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour ajouter la couleur d'arrière-plan au champ avec l'image. Sélectionnez la couleur appropriée de la palette <b>Couleurs du thème</b>, <b>Couleurs standard</b> ou <b>ajoutez une nouvelle couleur personnalisée</b>, le cas échéant.</li> <li><b>Couleur d'arrière-plan</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour ajouter la couleur d'arrière-plan au champ avec l'image. Sélectionnez la couleur appropriée de la palette <b>Couleurs du thème</b>, <b>Couleurs standard</b> ou <b>ajoutez une nouvelle couleur personnalisée</b>, le cas échéant.</li>
<li><b>Requis</b> : cochez cette case pour rendre le champ image obligatoire à remplir.</li>
</ul> </ul>
</div> </div>
<p>Pour remplacer une image, cliquez sur l'icône d'image <span class = "icon icon-image"></span> au-dessus de la bordure de champ image et sélectionnez une autre image.</p> <p>Pour remplacer une image, cliquez sur l'icône d'image <span class = "icon icon-image"></span> au-dessus de la bordure de champ image et sélectionnez une autre image.</p>
@ -259,6 +270,138 @@
</details> </details>
</div> </div>
<h2 id="emailaddress">Créer un champ adresse email</h2>
<p>Le champ <em>Adresse email</em> est utilisé pour saisir une adresse email correspondante à une expression régulière \S+@\S+\.\S+.</p>
<div class="forms">
<details class="details-example">
<summary>Pour insérer un champ adresse email,</summary>
<ol>
<li>positionnez le point d'insertion dans une ligne du texte à l'endroit où vous souhaitez ajouter le champ,</li>
<li>passez à l'onglet <b>Formulaires</b> sur la barre supérieure,</li>
<li>
cliquez sur l'icône <div class="icon icon-email_address_icon"></div> <b>Adresse email</b>.
</li>
</ol>
<p><span class="big big-email_address_inserted"></span></p>
<p>Le champ de formulaire apparaîtra au point d'insertion dans la ligne de texte existante. Le menu <b>Paramètres du formulaire</b> s'ouvre à droite.</p>
<div id="email_address_settings">
<img alt="Paramètres de l'adresse e-mail" src="../images/email_address_settings.png" />
<ul>
<li><b>Clé</b> : pour créer un nouveau groupe d'adresses email, saisissez le nom du groupe et appuyez sur <b>Entrée</b>, ensuite attribuez le groupe approprié à chaque champ adresse email.</li>
<li><b>Espace réservé</b> : saisissez le texte à afficher dans le champ adresse email ; Le texte par défaut est <em>“user_name@email.com”</em>.</li>
<li><b>Tag</b> : saisissez un texte à utiliser en tant que tag à usage interne, c'est-à-dire affiché uniquement pour les coéditeurs.</li>
<li>
<b>Conseil</b> : saisissez le texte à afficher quand l'utilisateur fait passer la souris sur le champ adresse email.
<br /> <img alt="conseil inséré" src="../images/email_address_tip.png" />
</li>
<li><b>Format</b> : choisissez le format de contenu du champ, c'est-à-dire <em>Aucun</em>, <em>Chiffres</em>, <em>Lettres</em>, <em>Masque arbitraire</em> ou <em>Expression régulière</em>. Le champ est défini sur <em>Expression régulière</em> par défaut afin de conserver le format de l'adresse email <code>\S+@\S+\.\S+</code>.</li>
<li><b>Symboles autorisés</b> : saisissez les symboles autorisés dans le champ adresse email.</li>
<li>
<b>Taille de champ fixe</b> : activez cette option pour fixer la taille du champ. Lorsque cette option est activée, vous pouvez utiliser les paramètres <b>Ajustement automatique</b> et/ou <b>Champ de saisie à plusieurs lignes</b>.<br />
Un champ de taille fixe ressemble à une forme automatique. Vous pouvez définir le style d'habillage et ajuster sa position.
</li>
<li><b>Ajustement automatique</b> : il est possible d'activer cette option lors l'activation de l'option <b>Taille de champ fixe</b>, cochez cette case pour ajuster automatiquement la taille de la police en fonction de la taille du champ.</li>
<li><b>Champ de saisie à plusieurs lignes</b> : il est possible d'activer cette option lors l'activation de l'option <b>Taille de champ fixe</b>, cochez cette case pour créer un champ à plusieurs lignes, sinon le champ va contenir une seule ligne de texte.</li>
<li><b>Limite de caractères</b> : le nombre de caractères n'est pas limité par défaut. Activez cette option pour indiquer le nombre maximum de caractères dans le champ à droite.</li>
<li>
<b>Peigne de caractères</b> : répartissez le texte uniformément dans le champ adresse e-mail et configurez son aspect général. Laissez cette case décochée pour garder les paramètres par défaut ou cochez-là et configurez les paramètres suivants :
<ul>
<li><b>Largeur de cellule</b> : choisissez si la valeur de largeur doit être <em>Auto</em> (la largeur est calculée automatiquement), <em>Au moins</em> (la largeur n'est pas inférieure à la valeur indiquée manuellement), ou <em>Exactement</em> (la largeur correspond à la valeur indiquée manuellement). Le texte sera justifié selon les paramètres.</li>
</ul>
</li>
<li><b>Couleur de bordure</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour définir la couleur de bordure du champ adresse email inséré. Sélectionnez la couleur appropriée des bordures dans la palette. Le cas échéant, vous pouvez <b>ajouter une couleur personnalisée</b>.</li>
<li><b>Couleur d'arrière-plan</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour ajouter la couleur d'arrière-plan au champ adresse email. Sélectionnez la couleur appropriée de la palette <b>Couleurs du thème</b>, <b>Couleurs standard</b> ou <b>ajoutez une nouvelle couleur personnalisée</b>, le cas échéant.</li>
<li><b>Requis</b> : cochez cette case pour rendre le champ adresse email obligatoire à remplir.</li>
</ul>
</div>
</details>
</div>
<h2 id="phonenumber">Créer un champ numéro de téléphone</h2>
<p>Champ <em>Numéro de téléphone</em> permet de saisir un numéro de téléphone correspondant à un masque arbitraire fourni par le créateur du formulaire. Le texte par défaut est <code>(999)999-9999</code>.</p>
<div class="forms">
<details class="details-example">
<summary>Pour insérer un champ numéro de téléphone,</summary>
<ol>
<li>positionnez le point d'insertion dans une ligne du texte à l'endroit où vous souhaitez ajouter le champ,</li>
<li>passez à l'onglet <b>Formulaires</b> dans la barre d'outils supérieure,</li>
<li>
cliquez sur l'icône <div class="icon icon-phone_number_icon"></div> <b>numéro de téléphone</b>.
</li>
</ol>
<p><span class="big big-phone_number_inserted"></span></p>
<p>Le champ de formulaire apparaîtra au point d'insertion dans la ligne de texte existante. Le menu <b>Paramètres du formulaire</b> s'ouvre à droite.</p>
<div id="phone_number_settings">
<img alt="Paramètres du numéro de téléphone" src="../images/phone_number_settings.png" />
<ul>
<li><b>Clé</b> : pour créer un nouveau groupe de numéros de téléphone, saisissez le nom du groupe et appuyez sur <b>Entrée</b>, ensuite attribuez le groupe approprié à chaque numéro de téléphone.</li>
<li><b>Espace réservé</b> : saisissez le texte à afficher dans le champ numéro de téléphone ; Le texte par défaut est <em>“(999)999-9999”</em>.</li>
<li><b>Tag</b> : saisissez un texte à utiliser en tant que tag à usage interne, c'est-à-dire affiché uniquement pour les coéditeurs.</li>
<li>
<b>Conseil</b> : saisissez le texte à afficher quand l'utilisateur fait passer la souris sur le champ numéro de téléphone.
<br /> <img alt="conseil inséré" src="../images/phone_number_tip.png" />
</li>
<li><b>Format</b> : choisissez le format de contenu du champ, c'est-à-dire <em>Aucun</em>, <em>Chiffres</em>, <em>Lettres</em>, <em>Masque arbitraire</em> ou <em>Expression régulière</em>. Le format du champ par défaut est <em>Masque arbitraire</em>. Pour le changer, saisissez le masque requis dans le champ ci-dessous.</li>
<li><b>Symboles autorisés</b> : saisissez les symboles autorisés dans le champ numéro de téléphone.</li>
<li>
<b>Taille de champ fixe</b> : activez cette option pour fixer la taille du champ. Lorsque cette option est activée, vous pouvez utiliser les paramètres <b>Ajustement automatique</b> et/ou <b>Champ de saisie à plusieurs lignes</b>.<br />
Un champ de taille fixe ressemble à une forme automatique. Vous pouvez définir le style d'habillage et ajuster sa position.
</li>
<li><b>Ajustement automatique</b> : il est possible d'activer cette option lors l'activation de l'option <b>Taille de champ fixe</b>, cochez cette case pour ajuster automatiquement la taille de la police en fonction de la taille du champ.</li>
<li><b>Champ de saisie à plusieurs lignes</b> : il est possible d'activer cette option lors l'activation de l'option <b>Taille de champ fixe</b>, cochez cette case pour créer un champ à plusieurs lignes, sinon le champ va contenir une seule ligne de texte.</li>
<li><b>Limite de caractères</b> : le nombre de caractères n'est pas limité par défaut. Activez cette option pour indiquer le nombre maximum de caractères dans le champ à droite.</li>
<li>
<b>Peigne de caractères</b> : répartissez le texte uniformément dans le champ numéro de téléphone et configurez son aspect général. Laissez cette case décochée pour conserver les paramètres par défaut ou cochez-là et configurez les paramètres suivants :
<ul>
<li><b>Largeur de cellule</b> : choisissez si la valeur de largeur doit être <em>Auto</em> (la largeur est calculée automatiquement), <em>Au moins</em> (la largeur n'est pas inférieure à la valeur indiquée manuellement), ou <em>Exactement</em> (la largeur correspond à la valeur indiquée manuellement). Le texte sera justifié selon les paramètres.</li>
</ul>
</li>
<li><b>Couleur de bordure</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour définir la couleur de bordure du champ numéro de téléphone. Sélectionnez la couleur appropriée des bordures dans la palette. Le cas échéant, vous pouvez <b>ajouter une couleur personnalisée</b>.</li>
<li><b>Couleur d'arrière-plan</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour ajouter la couleur d'arrière-plan au champ numéro de téléphone. Sélectionnez la couleur appropriée de la palette <b>Couleurs du thème</b>, <b>Couleurs standard</b> ou <b>ajoutez une nouvelle couleur personnalisée</b>, le cas échéant.</li>
<li><b>Requis</b> : cochez cette case pour rendre le champ numéro de téléphone obligatoire à remplir.</li>
</ul>
</div>
</details>
</div>
<h2 id="complexfield">Créer un champ complexe</h2>
<p><em>Champ complexe</em> réunit plusieurs types de champs, par exemple, un champ texte et une liste déroulante. Vous pouvez combiner les champs en fonction de vos besoins.</p>
<div class="forms">
<details class="details-example">
<summary>Pour insérer un champ complexe,</summary>
<ol>
<li>positionnez le point d'insertion dans une ligne du texte à l'endroit où vous souhaitez ajouter le champ,</li>
<li>passez à l'onglet <b>Formulaires</b> dans la barre d'outils supérieure,</li>
<li>
cliquez sur l'icône <div class="icon icon-complex_field_icon"></div> <b>Champ complexe</b>.
</li>
</ol>
<p><img alt="champ complexe inséré" src="../images/complex_field_inserted.png"></p>
<p>Le champ de formulaire apparaîtra au point d'insertion dans la ligne de texte existante. Le menu <b>Paramètres du formulaire</b> s'ouvre à droite.</p>
<div id="complex_field_settings">
<img alt="Paramètres du champ complexe" src="../images/complex_field_settings.png" />
<ul>
<li><b>Clé</b> : pour créer un nouveau groupe de champs complexes, saisissez le nom du groupe et appuyez sur <b>Entrée</b>, ensuite attribuez le groupe approprié à chaque champ complexe.</li>
<li><b>Espace réservé</b> : saisissez le texte à afficher dans le champ complexe; Le texte par défaut est <em>“Votre texte ici”</em>.</li>
<li><b>Tag</b> : saisissez un texte à utiliser en tant que tag à usage interne, c'est-à-dire affiché uniquement pour les coéditeurs.</li>
<li>
<b>Conseil</b> : saisissez le texte à afficher quand l'utilisateur fait passer la souris sur le champ complexe.
<br /> <img alt="conseil insérté" src="../images/complex_field_tip.png" />
</li>
<li>
<b>Taille de champ fixe</b> : activez cette option pour fixer la taille du champ.<br />
Un champ de taille fixe ressemble à une forme automatique. Vous pouvez définir le style d'habillage et ajuster sa position.
</li>
<li><b>Couleur de bordure</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour définir la couleur de bordure du champ complexe. Sélectionnez la couleur appropriée des bordures dans la palette. Le cas échéant, vous pouvez <b>ajouter une couleur personnalisée</b>.</li>
<li><b>Couleur d'arrière-plan</b> : cliquez sur l'icône <div class="icon icon-nofill"></div> pour ajouter la couleur d'arrière-plan au champ complexe. Sélectionnez la couleur appropriée de la palette <b>Couleurs du thème</b>, <b>Couleurs standard</b> ou <b>ajoutez une nouvelle couleur personnalisée</b>, le cas échéant.</li>
<li><b>Requis</b> : cochez cette case pour rendre le champ complexe obligatoire à remplir.</li>
</ul>
<p>Pour insérer de divers champs de formulaire dans un champ complexe, cliquez dessus et choisissez le champ requis dans la barre d'outils supérieure de l'onglet <b>Formulaires</b>, puis configurez-le. Pour en savoir plus sur chaque type de champ, consultez la section appropriée ci-dessus.</p>
<p class="note">Veuillez noter qu'il est impossible d'utiliser le champ de formulaire <em>Image</em> dans les champs complexes.</p>
</div>
</details>
</div>
<h2>Mettre le formulaire en surbrillance</h2> <h2>Mettre le formulaire en surbrillance</h2>
<p>Vous pouvez mettre en surbrillance les champs du formulaire ajoutés avec une certaine couleur.</p> <p>Vous pouvez mettre en surbrillance les champs du formulaire ajoutés avec une certaine couleur.</p>
@ -268,15 +411,13 @@
<div id="highlight_settings"> <div id="highlight_settings">
<img alt="Paramètres de surbrillance" src="../images/highlight_settings.png" /> <img alt="Paramètres de surbrillance" src="../images/highlight_settings.png" />
<ul> <ul>
<li>accéder aux Paramètres de surbrillance sous l'onglet <b>Formulaire</b> de la barre d'outils supérieure,</li> <li>accédez aux <b>Paramètres de surbrillance</b> sous l'onglet <b>Formulaire</b> de la barre d'outils supérieure,</li>
<li>choisissez une couleur de la palette de <b>Couleurs standard</b>. Le cas échéant, vous pouvez <b>ajouter une couleur personnalisée</b>,</li> <li>choisissez une couleur de la palette de <b>Couleurs standard</b>. Le cas échéant, vous pouvez <b>ajouter une couleur personnalisée</b>,</li>
<li>pour supprimer la mise en surbrillance actuelle, utilisez l'option <b>Pas de surbrillance</b>.</li> <li>pour supprimer la mise en surbrillance actuelle, utilisez l'option <b>Pas de surbrillance</b>.</li>
</ul> </ul>
</div> </div>
<p>Les options de surbrillance activées seront appliquées à tous les champs du formulaire actuel.</p> <p>Les options de surbrillance activées seront appliquées à tous les champs du formulaire actuel.</p>
<p class="note"> <p class="note">La bordure du champ du formulaire n'est pas visible lorsque vous sélectionnez ce champ. Ces bordures sont non imprimables.</p>
<b>Remarque</b> : La bordure du champ du formulaire n'est pas visible lorsque vous sélectionnez ce champ. Ces bordures sont non imprimables.
</p>
</details> </details>
</div> </div>
@ -286,7 +427,7 @@
</p> </p>
<p>Cliquez sur le bouton <b>Voir le formulaire</b> <span class = "icon icon-view_form_icon"></span> sous l'onglet <b>Formulaire</b> de la barre d'outils supérieure, pour afficher un aperçu du formulaire sur un document.</p> <p>Cliquez sur le bouton <b>Voir le formulaire</b> <span class = "icon icon-view_form_icon"></span> sous l'onglet <b>Formulaire</b> de la barre d'outils supérieure, pour afficher un aperçu du formulaire sur un document.</p>
<p><img alt="Voir le formulaire actif" src="../images/view_form_active2.png" /></p> <p><img alt="Voir le formulaire actif" src="../images/view_form_active2.png" /></p>
<p>Pour quitter le mode d'aperçu, cliquer sur la même icône encore une fois.</p> <p>Pour quitter le mode d'aperçu, cliquez sur la même icône encore une fois.</p>
<h2>Déplacer les champs du formulaire</h2> <h2>Déplacer les champs du formulaire</h2>
<p>Il est possible de déplacer les champs du formulaire vers un autre emplacement du document : cliquez sur le bouton à gauche de la bordure de contrôle et faites la glisser vers un autre emplacement sans relâcher le bouton de la souris.</p> <p>Il est possible de déplacer les champs du formulaire vers un autre emplacement du document : cliquez sur le bouton à gauche de la bordure de contrôle et faites la glisser vers un autre emplacement sans relâcher le bouton de la souris.</p>
@ -311,7 +452,7 @@
<p>When you are finished, click the <div class = "icon icon-submit_form_icon"></div> <b>Submit</b> button at the top toolbar to send the form for further processing. Please note that this action cannot be undone.</p> <p>When you are finished, click the <div class = "icon icon-submit_form_icon"></div> <b>Submit</b> button at the top toolbar to send the form for further processing. Please note that this action cannot be undone.</p>
<p class="note">If you are using the server version of ONLYOFFICE Docs, the presence of the <b>Submit</b> button depends on the configuration. Read <a href="https://api.onlyoffice.com/editors/config/editor/customization">this article</a> to learn more.</p>--> <p class="note">If you are using the server version of ONLYOFFICE Docs, the presence of the <b>Submit</b> button depends on the configuration. Read <a href="https://api.onlyoffice.com/editors/config/editor/customization">this article</a> to learn more.</p>-->
<h2>Supprimer les champs du formulaire</h2> <h2>Supprimer les champs du formulaire</h2>
<p>Pour supprimer un champ du formulaire et garder tous son contenu, sélectionnez-le et cliquez sur l'icône <b>Supprimer</b> <span class = "icon icon-combo_delete_values"></span> (assurez-vous que le champ n'est pas verrouillé) ou appuyez sur la touche <b>Supprimer</b> du clavier.</p> <p>Pour supprimer un champ du formulaire et garder tout son contenu, sélectionnez-le et cliquez sur l'icône <b>Supprimer</b> <span class = "icon icon-combo_delete_values"></span> (assurez-vous que le champ n'est pas verrouillé) ou appuyez sur la touche <b>Supprimer</b> du clavier.</p>
</div> </div>
</body> </body>
</html> </html>

View file

@ -18,9 +18,9 @@
<h3>Insérer un graphique</h3> <h3>Insérer un graphique</h3>
<p>Pour insérer un graphique dans l'<a href="https://www.onlyoffice.com/fr/document-editor.aspx" target="_blank" onclick="onhyperlinkclick(this)"><b>Éditeur de Documents</b></a>,</p> <p>Pour insérer un graphique dans l'<a href="https://www.onlyoffice.com/fr/document-editor.aspx" target="_blank" onclick="onhyperlinkclick(this)"><b>Éditeur de Documents</b></a>,</p>
<ol> <ol>
<li>placez le curseur à l'endroit où vous voulez insérer un graphique,</li> <li>Placez le curseur à l'endroit où vous voulez insérer un graphique.</li>
<li>passez à l'onglet <b>Insertion</b> de la barre d'outils supérieure,</li> <li>Passez à l'onglet <b>Insertion</b> de la barre d'outils supérieure.</li>
<li>cliquez sur l'icône <b>Graphique</b> <div class = "icon icon-insertchart"></div> de la barre d'outils supérieure,</li> <li>Cliquez sur l'icône <b>Graphique</b> <div class = "icon icon-insertchart"></div> de la barre d'outils supérieure.</li>
<li> <li>
choisissez le type de graphique approprié : choisissez le type de graphique approprié :
<details class="details-example"> <details class="details-example">
@ -100,7 +100,7 @@
<p class="note"> <b>Remarque</b> : <b>Éditeur de Documents ONLYOFFICE</b> prend en charge des graphiques <b>en pyramides</b>, <b>à barres (pyramides)</b>, <b>horizontal/vertical à cylindre</b>, <b>horizontal/vertical à cônes</b> qui étaient créés avec dautres applications. Vous pouvez ouvrir le fichier comportant un tel graphique et le modifier.</p> <p class="note"> <b>Remarque</b> : <b>Éditeur de Documents ONLYOFFICE</b> prend en charge des graphiques <b>en pyramides</b>, <b>à barres (pyramides)</b>, <b>horizontal/vertical à cylindre</b>, <b>horizontal/vertical à cônes</b> qui étaient créés avec dautres applications. Vous pouvez ouvrir le fichier comportant un tel graphique et le modifier.</p>
</li> </li>
<li> <li>
lorsque la fenêtre <b>Éditeur du graphique</b> s'affiche, vous pouvez saisir les données à en utilisant des boutons suivants : Lorsque la fenêtre <b>Éditeur du graphique</b> s'affiche, vous pouvez saisir les données à en utilisant des boutons suivants :
<ul> <ul>
<li><div class = "icon icon-copy"></div> et <div class = "icon icon-paste"></div> pour copier et coller des données</li> <li><div class = "icon icon-copy"></div> et <div class = "icon icon-paste"></div> pour copier et coller des données</li>
<li><div class = "icon icon-undo1"></div> et <div class = "icon icon-redo1"></div> pour annuler et rétablir une action</li> <li><div class = "icon icon-undo1"></div> et <div class = "icon icon-redo1"></div> pour annuler et rétablir une action</li>
@ -160,7 +160,7 @@
<p><img alt="La fenêtre Type de graphique Combo" src="../../../../../../common/main/resources/help/fr/images/charttype_combo.png" /></p> <p><img alt="La fenêtre Type de graphique Combo" src="../../../../../../common/main/resources/help/fr/images/charttype_combo.png" /></p>
</li> </li>
<li> <li>
paramétrer le graphique en cliquant sur <b>Modifier le graphique</b> dans la fenêtre <b>Éditeur du graphique.</b> La fenêtre <b>Graphique - Paramètres avancés</b> s'affiche. Paramétrer le graphique en cliquant sur <b>Modifier le graphique</b> dans la fenêtre <b>Éditeur du graphique.</b> La fenêtre <b>Graphique - Paramètres avancés</b> s'affiche.
<p><img alt="La fenêtre Graphique - Paramètres avancés" src="../../../../../../common/main/resources/help/fr/images/chartsettings_layout.png" /></p> <p><img alt="La fenêtre Graphique - Paramètres avancés" src="../../../../../../common/main/resources/help/fr/images/chartsettings_layout.png" /></p>
<p>L'onglet <b>Disposition</b> vous permet de modifier la disposition des éléments de graphique.</p> <p>L'onglet <b>Disposition</b> vous permet de modifier la disposition des éléments de graphique.</p>
<ul> <ul>
@ -188,7 +188,7 @@
Spécifiez les paramètres des <b>Étiquettes de données</b> (c'est-à-dire les étiquettes de texte représentant les valeurs exactes des points de données) :<br /> Spécifiez les paramètres des <b>Étiquettes de données</b> (c'est-à-dire les étiquettes de texte représentant les valeurs exactes des points de données) :<br />
<ul> <ul>
<li> <li>
spécifiez la position des <b>Étiquettes de données</b> par rapport aux points de données en sélectionnant l'option nécessaire dans la liste déroulante. Les options disponibles varient en fonction du type de graphique sélectionné. Spécifiez la position des <b>Étiquettes de données</b> par rapport aux points de données en sélectionnant l'option nécessaire dans la liste déroulante. Les options disponibles varient en fonction du type de graphique sélectionné.
<ul> <ul>
<li>Pour les graphiques en <b>Colonnes/Barres</b>, vous pouvez choisir les options suivantes : <b>Rien</b>, <b>Au</b> <b>centre</b>, <b>En haut</b> <b>à</b> <b>l'intérieur</b>, <b>En haut à</b> <b>l'intérieur</b>, <b>En haut à l'extérieur</b>.</li> <li>Pour les graphiques en <b>Colonnes/Barres</b>, vous pouvez choisir les options suivantes : <b>Rien</b>, <b>Au</b> <b>centre</b>, <b>En haut</b> <b>à</b> <b>l'intérieur</b>, <b>En haut à</b> <b>l'intérieur</b>, <b>En haut à l'extérieur</b>.</li>
<li>Pour les graphiques en <b>Ligne/ Nuage de points (XY)/Boursier</b>, vous pouvez choisir les options suivantes : <b>Rien</b>, <b>Au</b> <b>centre</b>, <b><b>À</b> gauche, À</b> <b>droite</b>, <b>En haut</b>, <b>En bas</b>.</li> <li>Pour les graphiques en <b>Ligne/ Nuage de points (XY)/Boursier</b>, vous pouvez choisir les options suivantes : <b>Rien</b>, <b>Au</b> <b>centre</b>, <b><b>À</b> gauche, À</b> <b>droite</b>, <b>En haut</b>, <b>En bas</b>.</li>
@ -196,8 +196,8 @@
<li>Pour les graphiques en <b>Aire</b> ainsi que pour les graphiques <b>3D en Colonnes</b>, <b>Ligne</b>, <b>Barres</b> et <b>Combo</b> vous pouvez choisir les options suivantes : <b>Rien</b>, <b>Au centre</b>.</li> <li>Pour les graphiques en <b>Aire</b> ainsi que pour les graphiques <b>3D en Colonnes</b>, <b>Ligne</b>, <b>Barres</b> et <b>Combo</b> vous pouvez choisir les options suivantes : <b>Rien</b>, <b>Au centre</b>.</li>
</ul> </ul>
</li> </li>
<li>sélectionnez les données que vous souhaitez inclure dans vos étiquettes en cochant les cases correspondantes : <b>Nom de la série</b>, <b>Nom de la catégorie</b>, <b>Valeur</b>,</li> <li>Sélectionnez les données que vous souhaitez inclure dans vos étiquettes en cochant les cases correspondantes : <b>Nom de la série</b>, <b>Nom de la catégorie</b>, <b>Valeur</b>,</li>
<li>entrez un caractère (virgule, point-virgule, etc.) que vous souhaitez utiliser pour séparer plusieurs étiquettes dans le champ de saisie <b>Séparateur d'étiquettes de données</b>.</li> <li>Entrez un caractère (virgule, point-virgule, etc.) que vous souhaitez utiliser pour séparer plusieurs étiquettes dans le champ de saisie <b>Séparateur d'étiquettes de données</b>.</li>
</ul> </ul>
</li> </li>
<li><b>Lignes</b> - permet de choisir un style de ligne pour les graphiques en<b> Ligne/Nuage de points (XY</b>). Vous pouvez choisir parmi les options suivantes : <b>Droit</b> pour utiliser des lignes droites entre les points de données, <b>Lisse</b> pour utiliser des courbes lisses entre les points de données, ou<b> Rien</b> pour ne pas afficher les lignes.</li> <li><b>Lignes</b> - permet de choisir un style de ligne pour les graphiques en<b> Ligne/Nuage de points (XY</b>). Vous pouvez choisir parmi les options suivantes : <b>Droit</b> pour utiliser des lignes droites entre les points de données, <b>Lisse</b> pour utiliser des courbes lisses entre les points de données, ou<b> Rien</b> pour ne pas afficher les lignes.</li>
@ -210,9 +210,9 @@
<p>L'onglet <b>Axe vertical</b> vous permet de modifier les paramètres de l'axe vertical, également appelés axe des valeurs ou axe y, qui affiche des valeurs numériques. Notez que l'axe vertical sera l'axe des catégories qui affiche des étiquettes de texte pour les <b>Graphiques à barres</b>. Dans ce cas, les options de l'onglet <b>Axe vertical</b> correspondront à celles décrites dans la section suivante. Pour les Graphiques <b>Nuage de points (XY</b>), les deux axes sont des axes de valeur.</p> <p>L'onglet <b>Axe vertical</b> vous permet de modifier les paramètres de l'axe vertical, également appelés axe des valeurs ou axe y, qui affiche des valeurs numériques. Notez que l'axe vertical sera l'axe des catégories qui affiche des étiquettes de texte pour les <b>Graphiques à barres</b>. Dans ce cas, les options de l'onglet <b>Axe vertical</b> correspondront à celles décrites dans la section suivante. Pour les Graphiques <b>Nuage de points (XY</b>), les deux axes sont des axes de valeur.</p>
<p class="note"><b>Remarque</b> : les sections <b>Paramètres des axes</b> et <b>Quadrillage</b> seront désactivées pour les <b>Graphiques à secteurs</b>, car les graphiques de ce type n'ont ni axes ni lignes de quadrillage.</p> <p class="note"><b>Remarque</b> : les sections <b>Paramètres des axes</b> et <b>Quadrillage</b> seront désactivées pour les <b>Graphiques à secteurs</b>, car les graphiques de ce type n'ont ni axes ni lignes de quadrillage.</p>
<ul> <ul>
<li> sélectionnez <b>Masquer l'axe</b> pour masquer l'axe vertical du graphique, laissez cette option décochée pour afficher l'axe.</li> <li>Sélectionnez <b>Masquer l'axe</b> pour masquer l'axe vertical du graphique, laissez cette option décochée pour afficher l'axe.</li>
<li> <li>
définissez l'orientation du Titre en choisissant l'option appropriée de la liste déroulante : Définissez l'orientation du Titre en choisissant l'option appropriée de la liste déroulante :
<ul> <ul>
<li><b>Rien</b> pour ne pas afficher le titre de l'axe vertical</li> <li><b>Rien</b> pour ne pas afficher le titre de l'axe vertical</li>
<li><b>Incliné</b> pour afficher le titre de bas en haut à gauche de l'axe vertical,</li> <li><b>Incliné</b> pour afficher le titre de bas en haut à gauche de l'axe vertical,</li>
@ -271,9 +271,9 @@
<p><img alt="La fenêtre Graphique - Paramètres avancés" src="../../../../../../common/main/resources/help/fr/images/chartsettings_horizontalaxis.png" /></p> <p><img alt="La fenêtre Graphique - Paramètres avancés" src="../../../../../../common/main/resources/help/fr/images/chartsettings_horizontalaxis.png" /></p>
<p>L'onglet <b>Axe horizontal</b> vous permet de modifier les paramètres de l'axe horizontal, également appelés axe des catégories ou axe x, qui affiche des étiquettes textuels. Notez que l'axe horizontal sera l'axe des valeurs qui affiche des valeurs numériques pour les <b>Graphiques à barres</b>. Dans ce cas, les options de l'onglet <b>Axe horizontal</b> correspondent à celles décrites dans la section précédente. Pour les Graphiques <b>Nuage de points (XY</b>), les deux axes sont des axes de valeur.</p> <p>L'onglet <b>Axe horizontal</b> vous permet de modifier les paramètres de l'axe horizontal, également appelés axe des catégories ou axe x, qui affiche des étiquettes textuels. Notez que l'axe horizontal sera l'axe des valeurs qui affiche des valeurs numériques pour les <b>Graphiques à barres</b>. Dans ce cas, les options de l'onglet <b>Axe horizontal</b> correspondent à celles décrites dans la section précédente. Pour les Graphiques <b>Nuage de points (XY</b>), les deux axes sont des axes de valeur.</p>
<ul> <ul>
<li> sélectionnez <b>Masquer l'axe</b> pour masquer l'axe horizontal du graphique, laissez cette option décochée pour afficher l'axe.</li> <li>Sélectionnez <b>Masquer l'axe</b> pour masquer l'axe horizontal du graphique, laissez cette option décochée pour afficher l'axe.</li>
<li> <li>
définissez l'orientation du <b>Titre</b> en choisissant l'option appropriée de la liste déroulante : Définissez l'orientation du <b>Titre</b> en choisissant l'option appropriée de la liste déroulante :
<ul> <ul>
<li><b>Rien</b> pour ne pas afficher le titre de l'axe horizontal.</li> <li><b>Rien</b> pour ne pas afficher le titre de l'axe horizontal.</li>
<li><b>Sans superposition</b> pour afficher le titre en-dessous de l'axe horizontal.</li> <li><b>Sans superposition</b> pour afficher le titre en-dessous de l'axe horizontal.</li>

View file

@ -73,12 +73,12 @@
<p>To quickly reject all the changes, click the downward arrow below the <span class = "icon icon-review_rejecttoptoolbar"></span> <b>Reject</b> button and select the <b>Reject All Changes</b> option.</p> <p>To quickly reject all the changes, click the downward arrow below the <span class = "icon icon-review_rejecttoptoolbar"></span> <b>Reject</b> button and select the <b>Reject All Changes</b> option.</p>
<h3 id="comparisonnotes">Additional info on the comparison feature</h3> <h3 id="comparisonnotes">Additional info on the comparison feature</h3>
<h5>Method of the comparison</h5> <h4>Method of the comparison</h4>
<p>Documents are compared <b>by words</b>. If a word contains a change of at least one character (e.g. if a character was removed or replaced), in the result, the difference will be displayed as the change of the entire word, not the character.</p> <p>Documents are compared <b>by words</b>. If a word contains a change of at least one character (e.g. if a character was removed or replaced), in the result, the difference will be displayed as the change of the entire word, not the character.</p>
<p>The image below illustrates the case when the original file contains the word 'Characters' and the document for comparison contains the word 'Character'.</p> <p>The image below illustrates the case when the original file contains the word 'Characters' and the document for comparison contains the word 'Character'.</p>
<p><img alt="Compare documents - method" src="../images/compare_method.png" /></p> <p><img alt="Compare documents - method" src="../images/compare_method.png" /></p>
<h5>Authorship of the document</h5> <h4>Authorship of the document</h4>
<p>When the comparison process is launched, the second document for comparison is being loaded and compared to the current one.</p> <p>When the comparison process is launched, the second document for comparison is being loaded and compared to the current one.</p>
<ul> <ul>
<li>If the loaded document contains some data which is not represented in the original document, the data will be marked as added by a reviewer.</li> <li>If the loaded document contains some data which is not represented in the original document, the data will be marked as added by a reviewer.</li>
@ -87,7 +87,7 @@
<p>If the authors of the original and loaded documents are the same person, the reviewer is the same user. His/her name is displayed in the change balloon.</p> <p>If the authors of the original and loaded documents are the same person, the reviewer is the same user. His/her name is displayed in the change balloon.</p>
<p>If the authors of two files are different users, then the author of the second file loaded for comparison is the author of the added/removed changes.</p> <p>If the authors of two files are different users, then the author of the second file loaded for comparison is the author of the added/removed changes.</p>
<h5>Presence of the tracked changes in the compared document</h5> <h4>Presence of the tracked changes in the compared document</h4>
<p>If the original document contains some changes made in the review mode, they will be accepted in the comparison process. When you choose the second file for comparison, you'll see the corresponding warning message.</p> <p>If the original document contains some changes made in the review mode, they will be accepted in the comparison process. When you choose the second file for comparison, you'll see the corresponding warning message.</p>
<p>In this case, when you choose the <b>Original</b> display mode, the document will not contain any changes.</p> <p>In this case, when you choose the <b>Original</b> display mode, the document will not contain any changes.</p>
</div> </div>

View file

@ -28,7 +28,7 @@
</ul> </ul>
</li> </li>
</ol> </ol>
<p>I parametri di allineamento sono disponibili anche nella finestra <b>Paragrafo - Impostazioni avanzate.</b></p> <p>I parametri di allineamento sono disponibili anche nella finestra <b>Paragrafo - Impostazioni avanzate:</b></p>
<ol> <ol>
<li>fare clic con il pulsante destro del mouse sul testo e scegliere l'opzione <b>Impostazioni avanzate del paragrafo</b> dal menu contestuale o utilizzare l'opzione <b>Mostra impostazioni avanzate</b> nella barra laterale destra,</li> <li>fare clic con il pulsante destro del mouse sul testo e scegliere l'opzione <b>Impostazioni avanzate del paragrafo</b> dal menu contestuale o utilizzare l'opzione <b>Mostra impostazioni avanzate</b> nella barra laterale destra,</li>
<li>aprire la finestra <b>Paragrafo - Impostazioni avanzate</b>, passare alla scheda <b>Rientri e spaziatura</b></li> <li>aprire la finestra <b>Paragrafo - Impostazioni avanzate</b>, passare alla scheda <b>Rientri e spaziatura</b></li>

View file

@ -73,12 +73,12 @@
<p>Чтобы быстро отклонить все изменения, нажмите направленную вниз стрелку под кнопкой <span class = "icon icon-review_rejecttoptoolbar"></span> <b>Отклонить</b> и выберите опцию <b>Отклонить все изменения</b>.</p> <p>Чтобы быстро отклонить все изменения, нажмите направленную вниз стрелку под кнопкой <span class = "icon icon-review_rejecttoptoolbar"></span> <b>Отклонить</b> и выберите опцию <b>Отклонить все изменения</b>.</p>
<h3 id="comparisonnotes">Дополнительные сведения о функции сравнения</h3> <h3 id="comparisonnotes">Дополнительные сведения о функции сравнения</h3>
<h5>Принцип сравнения</h5> <h4>Принцип сравнения</h4>
<p>Сравнение документов ведется <b>по словам</b>. Если слово содержит изменение хотя бы на один символ (например, если символ был удален или заменен), в результате отличие будет отображено как изменение всего слова целиком, а не символа.</p> <p>Сравнение документов ведется <b>по словам</b>. Если слово содержит изменение хотя бы на один символ (например, если символ был удален или заменен), в результате отличие будет отображено как изменение всего слова целиком, а не символа.</p>
<p>Приведенное ниже изображение иллюстрирует случай, когда исходный файл содержит слово 'Символы', а документ для сравнения содержит слово 'Символ'.</p> <p>Приведенное ниже изображение иллюстрирует случай, когда исходный файл содержит слово 'Символы', а документ для сравнения содержит слово 'Символ'.</p>
<p><img alt="Сравнение документов - принцип" src="../images/compare_method.png" /></p> <p><img alt="Сравнение документов - принцип" src="../images/compare_method.png" /></p>
<h5>Авторство документа</h5> <h4>Авторство документа</h4>
<p>При запуске процесса сравнения документов второй документ для сравнения загружается и сравнивается с текущим.</p> <p>При запуске процесса сравнения документов второй документ для сравнения загружается и сравнивается с текущим.</p>
<ul> <ul>
<li>Если загруженный документ содержит данные, которые отсутствуют в исходном документе, они будут помечены как добавленные рецензентом.</li> <li>Если загруженный документ содержит данные, которые отсутствуют в исходном документе, они будут помечены как добавленные рецензентом.</li>
@ -87,7 +87,7 @@
<p>Если авторы исходного и загруженного документа совпадают, то рецензентом будет тот же пользователь. Его имя отображается во всплывающем окне с изменением.</p> <p>Если авторы исходного и загруженного документа совпадают, то рецензентом будет тот же пользователь. Его имя отображается во всплывающем окне с изменением.</p>
<p>Если авторы двух файлов - разные пользователи, то автор второго файла, загруженного для сравнения, будет автором добавленных или удаленных изменений.</p> <p>Если авторы двух файлов - разные пользователи, то автор второго файла, загруженного для сравнения, будет автором добавленных или удаленных изменений.</p>
<h5>Наличие рецензирования в сравниваемом документе</h5> <h4>Наличие рецензирования в сравниваемом документе</h4>
<p>Если исходный документ содержит изменения, внесенные в режиме рецензирования, то в результате сравнения документа они будут приняты. При выборе второго файла для сравнения вы увидите соответствующее предупреждение.</p> <p>Если исходный документ содержит изменения, внесенные в режиме рецензирования, то в результате сравнения документа они будут приняты. При выборе второго файла для сравнения вы увидите соответствующее предупреждение.</p>
<p>В этом случае при выборе режима отображения <b>Исходный документ</b> документ не будет содержать изменений.</p> <p>В этом случае при выборе режима отображения <b>Исходный документ</b> документ не будет содержать изменений.</p>
</div> </div>

View file

@ -28,7 +28,7 @@
</ul> </ul>
</li> </li>
</ol> </ol>
<p>Параметры выравнивания также доступны в окне <b>Абзац - дополнительные параметры</b>.</p> <p>Параметры выравнивания также доступны в окне <b>Абзац - дополнительные параметры</b>:</p>
<ol> <ol>
<li>щелкните по тексту правой кнопкой мыши и выберите в контекстном меню опцию <b>Дополнительные параметры абзаца</b> или используйте опцию <b>Дополнительные параметры</b> на правой боковой панели,</li> <li>щелкните по тексту правой кнопкой мыши и выберите в контекстном меню опцию <b>Дополнительные параметры абзаца</b> или используйте опцию <b>Дополнительные параметры</b> на правой боковой панели,</li>
<li>откройте окно <b>Абзац - дополнительные параметры</b>, перейдите на вкладку <b>Отступы и интервалы</b>,</li> <li>откройте окно <b>Абзац - дополнительные параметры</b>, перейдите на вкладку <b>Отступы и интервалы</b>,</li>

View file

@ -18,11 +18,11 @@
<h3>Вставка диаграммы</h3> <h3>Вставка диаграммы</h3>
<p>Для вставки диаграммы в документ:</p> <p>Для вставки диаграммы в документ:</p>
<ol> <ol>
<li>установите курсор там, где требуется поместить диаграмму,</li> <li>Установите курсор там, где требуется поместить диаграмму.</li>
<li>перейдите на вкладку <b>Вставка</b> верхней панели инструментов,</li> <li>Перейдите на вкладку <b>Вставка</b> верхней панели инструментов.</li>
<li>щелкните по значку <div class = "icon icon-insertchart"></div> <b>Диаграмма</b> на верхней панели инструментов,</li> <li>Щелкните по значку <div class = "icon icon-insertchart"></div> <b>Диаграмма</b> на верхней панели инструментов.</li>
<li> <li>
выберите из доступных типов диаграммы: Выберите из доступных типов диаграммы:
<details class="details-example"> <details class="details-example">
<summary>Гистограмма</summary> <summary>Гистограмма</summary>
<ul> <ul>
@ -99,7 +99,7 @@
<p class="note"><b>Примечание</b>: <b>Редактор документов ONLYOFFICE</b> поддерживает следующие типы диаграмм, созданных в сторонних редакторах: <b>Пирамида</b>, <b>Гистограмма (пирамида)</b>, <b>Горизонтальные/Вертикальные цилиндры</b>, <b>Горизонтальные/вертикальные конусы</b>. Вы можете открыть файл, содержащий такую диаграмму, и изменить его, используя доступные инструменты редактирования диаграмм.</p> <p class="note"><b>Примечание</b>: <b>Редактор документов ONLYOFFICE</b> поддерживает следующие типы диаграмм, созданных в сторонних редакторах: <b>Пирамида</b>, <b>Гистограмма (пирамида)</b>, <b>Горизонтальные/Вертикальные цилиндры</b>, <b>Горизонтальные/вертикальные конусы</b>. Вы можете открыть файл, содержащий такую диаграмму, и изменить его, используя доступные инструменты редактирования диаграмм.</p>
</li> </li>
<li> <li>
после этого появится окно <b>Редактор диаграмм</b>, в котором можно ввести в ячейки необходимые данные при помощи следующих элементов управления: После этого появится окно <b>Редактор диаграмм</b>, в котором можно ввести в ячейки необходимые данные при помощи следующих элементов управления:
<ul> <ul>
<li><div class = "icon icon-copy"></div> и <div class = "icon icon-paste"></div> для копирования и вставки скопированных данных</li> <li><div class = "icon icon-copy"></div> и <div class = "icon icon-paste"></div> для копирования и вставки скопированных данных</li>
<li><div class = "icon icon-undo1"></div> и <div class = "icon icon-redo1"></div> для отмены и повтора действий</li> <li><div class = "icon icon-undo1"></div> и <div class = "icon icon-redo1"></div> для отмены и повтора действий</li>
@ -153,13 +153,13 @@
</ol> </ol>
</li> </li>
<li> <li>
измените параметры диаграммы, нажав на кнопку <b>Изменить тип диаграммы</b> в окне <b>Редактор диаграмм</b>, чтобы выбрать тип и стиль диаграммы. Выберите диаграмму из доступных разделов: гистограмма, график, круговая, линейчатая, с областями, биржевая, точечная, комбинированные. Измените параметры диаграммы, нажав на кнопку <b>Изменить тип диаграммы</b> в окне <b>Редактор диаграмм</b>, чтобы выбрать тип и стиль диаграммы. Выберите диаграмму из доступных разделов: гистограмма, график, круговая, линейчатая, с областями, биржевая, точечная, комбинированные.
<p><img alt="Окно Тип диаграммы" src="../../../../../../common/main/resources/help/ru/images/charttype.png" /></p> <p><img alt="Окно Тип диаграммы" src="../../../../../../common/main/resources/help/ru/images/charttype.png" /></p>
<p>Когда вы выбираете <b>Комбинированные диаграммы</b>, в окне <b>Тип диаграммы</b> расположены ряды диаграмм, для которых можно выбрать типы диаграмм и данные для размещения на вторичной оси.</p> <p>Когда вы выбираете <b>Комбинированные диаграммы</b>, в окне <b>Тип диаграммы</b> расположены ряды диаграмм, для которых можно выбрать типы диаграмм и данные для размещения на вторичной оси.</p>
<p><img alt="Chart Type Combo" src="../../../../../../common/main/resources/help/ru/images/charttype_combo.png" /></p> <p><img alt="Chart Type Combo" src="../../../../../../common/main/resources/help/ru/images/charttype_combo.png" /></p>
</li> </li>
<li> <li>
измените параметры диаграммы, нажав кнопку <b>Редактировать диаграмму</b> в окне <b>Редактор диаграмм</b>. Откроется окно <b>Диаграмма - Дополнительные настройки</b>. Измените параметры диаграммы, нажав кнопку <b>Редактировать диаграмму</b> в окне <b>Редактор диаграмм</b>. Откроется окно <b>Диаграмма - Дополнительные настройки</b>.
<p><img alt="Окно Диаграмма - дополнительные параметры" src="../../../../../../common/main/resources/help/ru/images/chartsettings_layout.png" /></p> <p><img alt="Окно Диаграмма - дополнительные параметры" src="../../../../../../common/main/resources/help/ru/images/chartsettings_layout.png" /></p>
<p>На вкладке <b>Макет</b> можно изменить расположение элементов диаграммы:</p> <p>На вкладке <b>Макет</b> можно изменить расположение элементов диаграммы:</p>
<ul> <ul>
@ -187,7 +187,7 @@
Определите параметры <b>Подписей данных</b> (то есть текстовых подписей, показывающих точные значения элементов данных):<br /> Определите параметры <b>Подписей данных</b> (то есть текстовых подписей, показывающих точные значения элементов данных):<br />
<ul> <ul>
<li> <li>
укажите местоположение <b>Подписей данных</b> относительно элементов данных, выбрав нужную опцию из выпадающего списка. Доступные варианты зависят от выбранного типа диаграммы. Укажите местоположение <b>Подписей данных</b> относительно элементов данных, выбрав нужную опцию из выпадающего списка. Доступные варианты зависят от выбранного типа диаграммы.
<ul> <ul>
<li>Для <b>Гистограмм</b> и <b>Линейчатых</b> диаграмм можно выбрать следующие варианты: <b>Нет</b>, <b>По центру</b>, <b>Внутри снизу</b>, <b>Внутри сверху</b>, <b>Снаружи сверху</b>.</li> <li>Для <b>Гистограмм</b> и <b>Линейчатых</b> диаграмм можно выбрать следующие варианты: <b>Нет</b>, <b>По центру</b>, <b>Внутри снизу</b>, <b>Внутри сверху</b>, <b>Снаружи сверху</b>.</li>
<li>Для <b>Графиков</b> и <b>Точечных</b> или <b>Биржевых</b> диаграмм можно выбрать следующие варианты: <b>Нет</b>, <b>По центру</b>, <b>Слева</b>, <b>Справа</b>, <b>Сверху</b>, <b>Снизу</b>.</li> <li>Для <b>Графиков</b> и <b>Точечных</b> или <b>Биржевых</b> диаграмм можно выбрать следующие варианты: <b>Нет</b>, <b>По центру</b>, <b>Слева</b>, <b>Справа</b>, <b>Сверху</b>, <b>Снизу</b>.</li>
@ -195,8 +195,8 @@
<li>Для диаграмм <b>С областями</b>, а также для <b>Гистограмм</b>, <b>Графиков</b> и <b>Линейчатых</b> диаграмм в <b>формате 3D</b> можно выбрать следующие варианты: <b>Нет</b>, <b>По центру</b>.</li> <li>Для диаграмм <b>С областями</b>, а также для <b>Гистограмм</b>, <b>Графиков</b> и <b>Линейчатых</b> диаграмм в <b>формате 3D</b> можно выбрать следующие варианты: <b>Нет</b>, <b>По центру</b>.</li>
</ul> </ul>
</li> </li>
<li>выберите данные, которые вы хотите включить в ваши подписи, поставив соответствующие флажки: <b>Имя ряда</b>, <b>Название категории</b>, <b>Значение</b>,</li> <li>Выберите данные, которые вы хотите включить в ваши подписи, поставив соответствующие флажки: <b>Имя ряда</b>, <b>Название категории</b>, <b>Значение</b>,</li>
<li>введите символ (запятая, точка с запятой и т.д.), который вы хотите использовать для разделения нескольких подписей, в поле <b>Разделитель подписей данных</b>.</li> <li>Введите символ (запятая, точка с запятой и т.д.), который вы хотите использовать для разделения нескольких подписей, в поле <b>Разделитель подписей данных</b>.</li>
</ul> </ul>
</li> </li>
<li><b>Линии</b> - используется для выбора типа линий для <b>линейчатых/точечных диаграмм</b>. Можно выбрать одну из следующих опций: <b>Прямые</b> для использования прямых линий между элементами данных, <b>Сглаженные</b> для использования сглаженных кривых линий между элементами данных или <b>Нет</b> для того, чтобы линии не отображались.</li> <li><b>Линии</b> - используется для выбора типа линий для <b>линейчатых/точечных диаграмм</b>. Можно выбрать одну из следующих опций: <b>Прямые</b> для использования прямых линий между элементами данных, <b>Сглаженные</b> для использования сглаженных кривых линий между элементами данных или <b>Нет</b> для того, чтобы линии не отображались.</li>
@ -209,9 +209,9 @@
<p>Вкладка <b>Вертикальная ось</b> позволяет изменять параметры вертикальной оси, также называемой осью значений или осью Y, которая отображает числовые значения. Обратите внимание, что вертикальная ось будет осью категорий, которая отображает подпись для <b>Гистограмм</b>, таким образом, параметры вкладки <b>Вертикальная ось</b> будут соответствовать параметрам, описанным в следующем разделе. Для <b>Точечных диаграмм</b> обе оси являются осями значений.</p> <p>Вкладка <b>Вертикальная ось</b> позволяет изменять параметры вертикальной оси, также называемой осью значений или осью Y, которая отображает числовые значения. Обратите внимание, что вертикальная ось будет осью категорий, которая отображает подпись для <b>Гистограмм</b>, таким образом, параметры вкладки <b>Вертикальная ось</b> будут соответствовать параметрам, описанным в следующем разделе. Для <b>Точечных диаграмм</b> обе оси являются осями значений.</p>
<p class="note"><b>Примечание</b>: <b>Параметры оси</b> и <b>Линии сетки</b> недоступны для круговых диаграмм, так как у круговых диаграмм нет осей и линий сетки.</p> <p class="note"><b>Примечание</b>: <b>Параметры оси</b> и <b>Линии сетки</b> недоступны для круговых диаграмм, так как у круговых диаграмм нет осей и линий сетки.</p>
<ul> <ul>
<li>нажмите <b>Скрыть ось</b>, чтобы скрыть вертикальную ось на диаграмме.</li> <li>Нажмите <b>Скрыть ось</b>, чтобы скрыть вертикальную ось на диаграмме.</li>
<li> <li>
укажите ориентацию <b>Заголовка</b>, выбрав нужный вариант из раскрывающегося списка: Укажите ориентацию <b>Заголовка</b>, выбрав нужный вариант из раскрывающегося списка:
<ul> <ul>
<li><b>Нет</b> - не отображать название вертикальной оси,</li> <li><b>Нет</b> - не отображать название вертикальной оси,</li>
<li><b>Повернутое</b> - показать название снизу вверх слева от вертикальной оси,</li> <li><b>Повернутое</b> - показать название снизу вверх слева от вертикальной оси,</li>
@ -290,9 +290,9 @@
<p><img alt="Диаграмма - окно дополнительные параметры" src="../../../../../../common/main/resources/help/ru/images/chartsettings_horizontalaxis.png" /></p> <p><img alt="Диаграмма - окно дополнительные параметры" src="../../../../../../common/main/resources/help/ru/images/chartsettings_horizontalaxis.png" /></p>
<p>Вкладка <b>Горизонтальная ось</b> позволяет изменять параметры горизонтальной оси, также называемой осью категорий или осью x, которая отображает текстовые метки. Обратите внимание, что горизонтальная ось будет осью значений, которая отображает числовые значения для <b>Гистограмм</b>, поэтому в этом случае параметры вкладки <b>Горизонтальная ось</b> будут соответствовать параметрам, описанным в предыдущем разделе. Для <b>Точечных диаграмм</b> обе оси являются осями значений.</p> <p>Вкладка <b>Горизонтальная ось</b> позволяет изменять параметры горизонтальной оси, также называемой осью категорий или осью x, которая отображает текстовые метки. Обратите внимание, что горизонтальная ось будет осью значений, которая отображает числовые значения для <b>Гистограмм</b>, поэтому в этом случае параметры вкладки <b>Горизонтальная ось</b> будут соответствовать параметрам, описанным в предыдущем разделе. Для <b>Точечных диаграмм</b> обе оси являются осями значений.</p>
<ul> <ul>
<li>нажмите <b>Скрыть ось</b>, чтобы скрыть горизонтальную ось на диаграмме.</li> <li>Нажмите <b>Скрыть ось</b>, чтобы скрыть горизонтальную ось на диаграмме.</li>
<li> <li>
укажите ориентацию <b>Заголовка</b>, выбрав нужный вариант из раскрывающегося списка: Укажите ориентацию <b>Заголовка</b>, выбрав нужный вариант из раскрывающегося списка:
<ul> <ul>
<li><b>Нет</b> - не отображать заголовок горизонтальной оси,</li> <li><b>Нет</b> - не отображать заголовок горизонтальной оси,</li>
<li><b>Без наложения</b> - отображать заголовок под горизонтальной осью,</li> <li><b>Без наложения</b> - отображать заголовок под горизонтальной осью,</li>

View file

@ -523,4 +523,111 @@ table {
padding: 5px 0; padding: 5px 0;
} }
} }
} }
#file-menu-panel {
#panel-print {
padding: 0;
#id-print-settings {
position: absolute;
width:280px;
top: 0;
bottom: 0;
}
.print-settings {
width: 100%;
height: 100%;
overflow: hidden;
display: flex;
flex-direction: column;
border-right: @scaled-one-px-value-ie solid @border-toolbar-ie;
border-right: @scaled-one-px-value solid @border-toolbar;
label.header {
font-weight: 700;
}
.footer {
.btn.primary {
margin-right: 8px;
}
}
.settings-container {
width: 100%;
height: 100%;
overflow: hidden;
padding: 12px 16px;
.padding-small {
padding-bottom: 8px;
}
.padding-large {
padding-bottom: 16px;
}
#print-apply-all {
margin-top: 5px;
}
.link {
margin-top: 9px;
}
.footer {
margin-top: 24px;
}
}
}
#print-navigation {
height: 50px;
padding-left: 20px;
padding-top: 10px;
display: flex;
.btn-prev-page, .btn-next-page {
background-color: transparent;
padding: 0;
height: 20px;
width: 20px;
i.arrow {
display: inline-block;
width: 10px;
height: 10px;
border: solid @scaled-one-px-value-ie @icon-normal-ie;
border: solid @scaled-one-px-value @icon-normal;
border-bottom: none;
border-right: none;
}
&.disabled {
opacity: @component-disabled-opacity;
}
&:hover:not(:disabled):not(.disabled) {
background-color: @highlight-button-hover-ie;
background-color: @highlight-button-hover;
}
}
.btn-prev-page {
i {
transform: rotate(-45deg) translate(-1px, 3px);
}
}
.btn-next-page {
i {
transform: rotate(135deg) translate(4px, 0px);
}
}
.page-number {
display: flex;
align-items: center;
height: 20px;
margin-left: 10px;
label {
.font-weight-bold();
}
#print-count-page, #print-number-page {
margin-left: 4px;
}
}
}
#print-preview {
height: calc(100% - 50px);
}
}
}

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Redaktə rejimini təyin edin...", "txtEditingMode": "Redaktə rejimini təyin edin...",
"uploadImageTextText": "Təsvir yüklənir...", "uploadImageTextText": "Təsvir yüklənir...",
"uploadImageTitleText": "Təsvir Yüklənir", "uploadImageTitleText": "Təsvir Yüklənir",
"waitText": "Lütfən, gözləyin..." "waitText": "Lütfən, gözləyin...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Xəta", "criticalErrorTitle": "Xəta",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Актывацыя рэжыму рэдагавання…", "txtEditingMode": "Актывацыя рэжыму рэдагавання…",
"uploadImageTextText": "Запампоўванне выявы…", "uploadImageTextText": "Запампоўванне выявы…",
"uploadImageTitleText": "Запампоўванне выявы", "uploadImageTitleText": "Запампоўванне выявы",
"waitText": "Калі ласка, пачакайце..." "waitText": "Калі ласка, пачакайце...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Памылка", "criticalErrorTitle": "Памылка",

View file

@ -444,7 +444,10 @@
"txtEditingMode": "Set editing mode...", "txtEditingMode": "Set editing mode...",
"uploadImageTextText": "Uploading image...", "uploadImageTextText": "Uploading image...",
"uploadImageTitleText": "Uploading Image", "uploadImageTitleText": "Uploading Image",
"waitText": "Please, wait..." "waitText": "Please, wait...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Error", "criticalErrorTitle": "Error",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Estableix el mode d'edició ...", "txtEditingMode": "Estableix el mode d'edició ...",
"uploadImageTextText": "S'està carregant la imatge...", "uploadImageTextText": "S'està carregant la imatge...",
"uploadImageTitleText": "S'està carregant la imatge", "uploadImageTitleText": "S'està carregant la imatge",
"waitText": "Espereu..." "waitText": "Espereu...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Error", "criticalErrorTitle": "Error",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Nastavit režim úprav…", "txtEditingMode": "Nastavit režim úprav…",
"uploadImageTextText": "Nahrávání obrázku...", "uploadImageTextText": "Nahrávání obrázku...",
"uploadImageTitleText": "Nahrávání obrázku", "uploadImageTitleText": "Nahrávání obrázku",
"waitText": "Čekejte prosím..." "waitText": "Čekejte prosím...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Chyba", "criticalErrorTitle": "Chyba",

View file

@ -444,7 +444,10 @@
"txtEditingMode": "Set editing mode...", "txtEditingMode": "Set editing mode...",
"uploadImageTextText": "Uploading image...", "uploadImageTextText": "Uploading image...",
"uploadImageTitleText": "Uploading Image", "uploadImageTitleText": "Uploading Image",
"waitText": "Please, wait..." "waitText": "Please, wait...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Error", "criticalErrorTitle": "Error",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Bearbeitungsmodul wird festgelegt...", "txtEditingMode": "Bearbeitungsmodul wird festgelegt...",
"uploadImageTextText": "Bild wird hochgeladen...", "uploadImageTextText": "Bild wird hochgeladen...",
"uploadImageTitleText": "Bild wird hochgeladen", "uploadImageTitleText": "Bild wird hochgeladen",
"waitText": "Bitte warten..." "waitText": "Bitte warten...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Fehler", "criticalErrorTitle": "Fehler",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Ορισμός κατάστασης επεξεργασίας...", "txtEditingMode": "Ορισμός κατάστασης επεξεργασίας...",
"uploadImageTextText": "Μεταφόρτωση εικόνας...", "uploadImageTextText": "Μεταφόρτωση εικόνας...",
"uploadImageTitleText": "Μεταφόρτωση Εικόνας", "uploadImageTitleText": "Μεταφόρτωση Εικόνας",
"waitText": "Παρακαλούμε, περιμένετε..." "waitText": "Παρακαλούμε, περιμένετε...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Σφάλμα", "criticalErrorTitle": "Σφάλμα",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Set editing mode...", "txtEditingMode": "Set editing mode...",
"uploadImageTextText": "Uploading image...", "uploadImageTextText": "Uploading image...",
"uploadImageTitleText": "Uploading Image", "uploadImageTitleText": "Uploading Image",
"waitText": "Please, wait..." "waitText": "Please, wait...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Error", "criticalErrorTitle": "Error",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Establecer el modo de edición...", "txtEditingMode": "Establecer el modo de edición...",
"uploadImageTextText": "Cargando imagen...", "uploadImageTextText": "Cargando imagen...",
"uploadImageTitleText": "Cargando imagen", "uploadImageTitleText": "Cargando imagen",
"waitText": "Por favor, espere..." "waitText": "Por favor, espere...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Error", "criticalErrorTitle": "Error",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Ezarri edizio modua...", "txtEditingMode": "Ezarri edizio modua...",
"uploadImageTextText": "Irudia kargatzen...", "uploadImageTextText": "Irudia kargatzen...",
"uploadImageTitleText": "Irudia kargatzen", "uploadImageTitleText": "Irudia kargatzen",
"waitText": "Mesedez, itxaron..." "waitText": "Mesedez, itxaron...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Errorea", "criticalErrorTitle": "Errorea",

View file

@ -444,7 +444,10 @@
"txtEditingMode": "Set editing mode...", "txtEditingMode": "Set editing mode...",
"uploadImageTextText": "Uploading image...", "uploadImageTextText": "Uploading image...",
"uploadImageTitleText": "Uploading Image", "uploadImageTitleText": "Uploading Image",
"waitText": "Please, wait..." "waitText": "Please, wait...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Error", "criticalErrorTitle": "Error",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Réglage mode d'édition...", "txtEditingMode": "Réglage mode d'édition...",
"uploadImageTextText": "Chargement d'une image en cours...", "uploadImageTextText": "Chargement d'une image en cours...",
"uploadImageTitleText": "Chargement d'une image", "uploadImageTitleText": "Chargement d'une image",
"waitText": "Veuillez patienter..." "waitText": "Veuillez patienter...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Erreur", "criticalErrorTitle": "Erreur",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Establecer o modo de edición...", "txtEditingMode": "Establecer o modo de edición...",
"uploadImageTextText": "Cargando imaxe...", "uploadImageTextText": "Cargando imaxe...",
"uploadImageTitleText": "Cargando imaxe", "uploadImageTitleText": "Cargando imaxe",
"waitText": "Agarde..." "waitText": "Agarde...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Erro", "criticalErrorTitle": "Erro",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Szerkesztési mód beállítása...", "txtEditingMode": "Szerkesztési mód beállítása...",
"uploadImageTextText": "Kép feltöltése...", "uploadImageTextText": "Kép feltöltése...",
"uploadImageTitleText": "Kép feltöltése", "uploadImageTitleText": "Kép feltöltése",
"waitText": "Kérjük, várjon..." "waitText": "Kérjük, várjon...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Hiba", "criticalErrorTitle": "Hiba",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Սահմանել ցուցակի խմբագրում․․․", "txtEditingMode": "Սահմանել ցուցակի խմբագրում․․․",
"uploadImageTextText": "Նկարի վերբեռնում...", "uploadImageTextText": "Նկարի վերբեռնում...",
"uploadImageTitleText": "Նկարի վերբեռնում", "uploadImageTitleText": "Նկարի վերբեռնում",
"waitText": "Խնդրում ենք սպասել..." "waitText": "Խնդրում ենք սպասել...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Սխալ", "criticalErrorTitle": "Սխալ",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Atur mode editing...", "txtEditingMode": "Atur mode editing...",
"uploadImageTextText": "Mengunggah gambar...", "uploadImageTextText": "Mengunggah gambar...",
"uploadImageTitleText": "Mengunggah Gambar", "uploadImageTitleText": "Mengunggah Gambar",
"waitText": "Silahkan menunggu" "waitText": "Silahkan menunggu",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Kesalahan", "criticalErrorTitle": "Kesalahan",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Impostare la modalità di modifica...", "txtEditingMode": "Impostare la modalità di modifica...",
"uploadImageTextText": "Caricamento dell'immagine...", "uploadImageTextText": "Caricamento dell'immagine...",
"uploadImageTitleText": "Caricamento dell'immagine", "uploadImageTitleText": "Caricamento dell'immagine",
"waitText": "Attendere prego..." "waitText": "Attendere prego...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Errore", "criticalErrorTitle": "Errore",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "編集モードを設定します...", "txtEditingMode": "編集モードを設定します...",
"uploadImageTextText": "イメージのアップロード中...", "uploadImageTextText": "イメージのアップロード中...",
"uploadImageTitleText": "イメージのアップロード中", "uploadImageTitleText": "イメージのアップロード中",
"waitText": "少々お待ちください..." "waitText": "少々お待ちください...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "エラー", "criticalErrorTitle": "エラー",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "편집 모드 설정 ...", "txtEditingMode": "편집 모드 설정 ...",
"uploadImageTextText": "이미지 업로드 중 ...", "uploadImageTextText": "이미지 업로드 중 ...",
"uploadImageTitleText": "이미지 업로드 중", "uploadImageTitleText": "이미지 업로드 중",
"waitText": "잠시만 기다려주세요..." "waitText": "잠시만 기다려주세요...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "오류", "criticalErrorTitle": "오류",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "ຕັ້ງຄ່າຮູບແບບການແກ້ໄຂ...", "txtEditingMode": "ຕັ້ງຄ່າຮູບແບບການແກ້ໄຂ...",
"uploadImageTextText": "ກໍາລັງອັບໂຫລດຮູບພາບ...", "uploadImageTextText": "ກໍາລັງອັບໂຫລດຮູບພາບ...",
"uploadImageTitleText": "ກໍາລັງອັບໂຫລດຮູບພາບ", "uploadImageTitleText": "ກໍາລັງອັບໂຫລດຮູບພາບ",
"waitText": "ກະລຸນາລໍຖ້າ..." "waitText": "ກະລຸນາລໍຖ້າ...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "ຂໍ້ຜິດພາດ", "criticalErrorTitle": "ຂໍ້ຜິດພາດ",

View file

@ -444,7 +444,10 @@
"txtEditingMode": "Set editing mode...", "txtEditingMode": "Set editing mode...",
"uploadImageTextText": "Uploading image...", "uploadImageTextText": "Uploading image...",
"uploadImageTitleText": "Uploading Image", "uploadImageTitleText": "Uploading Image",
"waitText": "Please, wait..." "waitText": "Please, wait...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Error", "criticalErrorTitle": "Error",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Tetapkan mod pengeditan…", "txtEditingMode": "Tetapkan mod pengeditan…",
"uploadImageTextText": "Imej dimuat naik…", "uploadImageTextText": "Imej dimuat naik…",
"uploadImageTitleText": "Imej dimuat naik", "uploadImageTitleText": "Imej dimuat naik",
"waitText": "Sila, tunggu…" "waitText": "Sila, tunggu…",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Ralat", "criticalErrorTitle": "Ralat",

View file

@ -444,7 +444,10 @@
"txtEditingMode": "Set editing mode...", "txtEditingMode": "Set editing mode...",
"uploadImageTextText": "Uploading image...", "uploadImageTextText": "Uploading image...",
"uploadImageTitleText": "Uploading Image", "uploadImageTitleText": "Uploading Image",
"waitText": "Please, wait..." "waitText": "Please, wait...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Error", "criticalErrorTitle": "Error",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Bewerkmodus instellen...", "txtEditingMode": "Bewerkmodus instellen...",
"uploadImageTextText": "Afbeelding wordt geüpload...", "uploadImageTextText": "Afbeelding wordt geüpload...",
"uploadImageTitleText": "Afbeelding wordt geüpload", "uploadImageTitleText": "Afbeelding wordt geüpload",
"waitText": "Een moment geduld..." "waitText": "Een moment geduld...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Fout", "criticalErrorTitle": "Fout",

View file

@ -444,7 +444,10 @@
"txtEditingMode": "Set editing mode...", "txtEditingMode": "Set editing mode...",
"uploadImageTextText": "Uploading image...", "uploadImageTextText": "Uploading image...",
"uploadImageTitleText": "Uploading Image", "uploadImageTitleText": "Uploading Image",
"waitText": "Please, wait..." "waitText": "Please, wait...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Error", "criticalErrorTitle": "Error",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Definir modo de edição…", "txtEditingMode": "Definir modo de edição…",
"uploadImageTextText": "A carregar imagem...", "uploadImageTextText": "A carregar imagem...",
"uploadImageTitleText": "A carregar imagem", "uploadImageTitleText": "A carregar imagem",
"waitText": "Aguarde..." "waitText": "Aguarde...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Erro", "criticalErrorTitle": "Erro",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Definir modo de edição...", "txtEditingMode": "Definir modo de edição...",
"uploadImageTextText": "Carregando imagem...", "uploadImageTextText": "Carregando imagem...",
"uploadImageTitleText": "Carregando imagem", "uploadImageTitleText": "Carregando imagem",
"waitText": "Por favor, aguarde..." "waitText": "Por favor, aguarde...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Erro", "criticalErrorTitle": "Erro",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Setare modul de editare...", "txtEditingMode": "Setare modul de editare...",
"uploadImageTextText": "Încărcarea imaginii...", "uploadImageTextText": "Încărcarea imaginii...",
"uploadImageTitleText": "Încărcarea imaginii", "uploadImageTitleText": "Încărcarea imaginii",
"waitText": "Vă rugăm să așteptați..." "waitText": "Vă rugăm să așteptați...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Eroare", "criticalErrorTitle": "Eroare",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Установка режима редактирования...", "txtEditingMode": "Установка режима редактирования...",
"uploadImageTextText": "Загрузка рисунка...", "uploadImageTextText": "Загрузка рисунка...",
"uploadImageTitleText": "Загрузка рисунка", "uploadImageTitleText": "Загрузка рисунка",
"waitText": "Пожалуйста, подождите..." "waitText": "Пожалуйста, подождите...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Ошибка", "criticalErrorTitle": "Ошибка",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Nastaviť režim úprav ...", "txtEditingMode": "Nastaviť režim úprav ...",
"uploadImageTextText": "Nahrávanie obrázku...", "uploadImageTextText": "Nahrávanie obrázku...",
"uploadImageTitleText": "Nahrávanie obrázku", "uploadImageTitleText": "Nahrávanie obrázku",
"waitText": "Čakajte, prosím..." "waitText": "Čakajte, prosím...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Chyba", "criticalErrorTitle": "Chyba",

View file

@ -671,7 +671,10 @@
"txtEditingMode": "Set editing mode...", "txtEditingMode": "Set editing mode...",
"uploadImageTextText": "Uploading image...", "uploadImageTextText": "Uploading image...",
"uploadImageTitleText": "Uploading Image", "uploadImageTitleText": "Uploading Image",
"waitText": "Please, wait..." "waitText": "Please, wait...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Toolbar": { "Toolbar": {
"dlgLeaveMsgText": "You have unsaved changes. Click 'Stay on this Page' to wait for autosave. Click 'Leave this Page' to discard all the unsaved changes.", "dlgLeaveMsgText": "You have unsaved changes. Click 'Stay on this Page' to wait for autosave. Click 'Leave this Page' to discard all the unsaved changes.",

View file

@ -444,7 +444,10 @@
"txtEditingMode": "Set editing mode...", "txtEditingMode": "Set editing mode...",
"uploadImageTextText": "Uploading image...", "uploadImageTextText": "Uploading image...",
"uploadImageTitleText": "Uploading Image", "uploadImageTitleText": "Uploading Image",
"waitText": "Please, wait..." "waitText": "Please, wait...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Error", "criticalErrorTitle": "Error",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Düzenleme modunu belirle...", "txtEditingMode": "Düzenleme modunu belirle...",
"uploadImageTextText": "Resim yükleniyor...", "uploadImageTextText": "Resim yükleniyor...",
"uploadImageTitleText": "Resim Yükleniyor", "uploadImageTitleText": "Resim Yükleniyor",
"waitText": "Lütfen bekleyin..." "waitText": "Lütfen bekleyin...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Hata", "criticalErrorTitle": "Hata",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "Встановити режим редагування ...", "txtEditingMode": "Встановити режим редагування ...",
"uploadImageTextText": "Завантаження зображення...", "uploadImageTextText": "Завантаження зображення...",
"uploadImageTitleText": "Завантаження зображення", "uploadImageTitleText": "Завантаження зображення",
"waitText": "Будь ласка, зачекайте..." "waitText": "Будь ласка, зачекайте...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Помилка", "criticalErrorTitle": "Помилка",

View file

@ -444,7 +444,10 @@
"txtEditingMode": "Set editing mode...", "txtEditingMode": "Set editing mode...",
"uploadImageTextText": "Uploading image...", "uploadImageTextText": "Uploading image...",
"uploadImageTitleText": "Uploading Image", "uploadImageTitleText": "Uploading Image",
"waitText": "Please, wait..." "waitText": "Please, wait...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "Error", "criticalErrorTitle": "Error",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "設定編輯模式...", "txtEditingMode": "設定編輯模式...",
"uploadImageTextText": "正在上傳圖片...", "uploadImageTextText": "正在上傳圖片...",
"uploadImageTitleText": "上傳圖片中", "uploadImageTitleText": "上傳圖片中",
"waitText": "請耐心等待..." "waitText": "請耐心等待...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "錯誤", "criticalErrorTitle": "錯誤",

View file

@ -443,7 +443,10 @@
"txtEditingMode": "设置编辑模式..", "txtEditingMode": "设置编辑模式..",
"uploadImageTextText": "上传图片...", "uploadImageTextText": "上传图片...",
"uploadImageTitleText": "图片上传中", "uploadImageTitleText": "图片上传中",
"waitText": "请稍候..." "waitText": "请稍候...",
"confirmMaxChangesSize": "The size of actions exceeds the limitation set for your server.<br>Press \"Undo\" to cancel your last action or press \"Continue\" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).",
"textUndo": "Undo",
"textContinue": "Continue"
}, },
"Main": { "Main": {
"criticalErrorTitle": "错误", "criticalErrorTitle": "错误",

View file

@ -29,6 +29,7 @@ const LongActionsController = inject('storeAppOptions')(({storeAppOptions}) => {
api.asc_registerCallback('asc_onStartAction', onLongActionBegin); api.asc_registerCallback('asc_onStartAction', onLongActionBegin);
api.asc_registerCallback('asc_onEndAction', onLongActionEnd); api.asc_registerCallback('asc_onEndAction', onLongActionEnd);
api.asc_registerCallback('asc_onOpenDocumentProgress', onOpenDocument); api.asc_registerCallback('asc_onOpenDocumentProgress', onOpenDocument);
api.asc_registerCallback('asc_onConfirmAction', onConfirmAction);
}; };
const api = Common.EditorApi.get(); const api = Common.EditorApi.get();
@ -45,6 +46,7 @@ const LongActionsController = inject('storeAppOptions')(({storeAppOptions}) => {
api.asc_unregisterCallback('asc_onStartAction', onLongActionBegin); api.asc_unregisterCallback('asc_onStartAction', onLongActionBegin);
api.asc_unregisterCallback('asc_onEndAction', onLongActionEnd); api.asc_unregisterCallback('asc_onEndAction', onLongActionEnd);
api.asc_unregisterCallback('asc_onOpenDocumentProgress', onOpenDocument); api.asc_unregisterCallback('asc_onOpenDocumentProgress', onOpenDocument);
api.asc_unregisterCallback('asc_onConfirmAction', onConfirmAction);
} }
Common.Notifications.off('engineCreated', on_engine_created); Common.Notifications.off('engineCreated', on_engine_created);
@ -194,6 +196,29 @@ const LongActionsController = inject('storeAppOptions')(({storeAppOptions}) => {
}; };
const onConfirmAction = (id, apiCallback, data) => {
const api = Common.EditorApi.get();
if (id === Asc.c_oAscConfirm.ConfirmMaxChangesSize) {
f7.dialog.create({
title: _t.notcriticalErrorTitle,
text: _t.confirmMaxChangesSize,
buttons: [
{text: _t.textUndo,
onClick: () => {
if (apiCallback) apiCallback(true);
}
},
{text: _t.textContinue,
onClick: () => {
if (apiCallback) apiCallback(false);
}
}
],
}).open();
}
};
const onOpenDocument = (progress) => { const onOpenDocument = (progress) => {
if (loadMask && loadMask.el) { if (loadMask && loadMask.el) {
const $title = loadMask.el.getElementsByClassName('dialog-title')[0]; const $title = loadMask.el.getElementsByClassName('dialog-title')[0];

View file

@ -256,8 +256,6 @@ class MainController extends Component {
this.updateWindowTitle(true); this.updateWindowTitle(true);
this.api.SetTextBoxInputMode(LocalStorage.getBool("de-settings-inputmode"));
value = LocalStorage.getBool("de-mobile-no-characters"); value = LocalStorage.getBool("de-mobile-no-characters");
appSettings.changeNoCharacters(value); appSettings.changeNoCharacters(value);
this.api.put_ShowParaMarks(value); this.api.put_ShowParaMarks(value);

View file

@ -4,7 +4,7 @@ const EditorUIController = () => {
}; };
EditorUIController.isSupportEditFeature = () => { EditorUIController.isSupportEditFeature = () => {
return false return true
}; };
EditorUIController.getToolbarOptions = () => { EditorUIController.getToolbarOptions = () => {

View file

@ -527,7 +527,7 @@ const EditShape = props => {
if (controlProps) { if (controlProps) {
let spectype = controlProps.get_SpecificType(); let spectype = controlProps.get_SpecificType();
fixedSize = (spectype == Asc.c_oAscContentControlSpecificType.CheckBox || spectype == Asc. c_oAscContentControlSpecificType.ComboBox || spectype == Asc.c_oAscContentControlSpecificType.DropDownList || spectype == Asc.c_oAscContentControlSpecificType.None || spectype == Asc.c_oAscContentControlSpecificType.Picture) && controlProps.get_FormPr() && controlProps.get_FormPr().get_Fixed(); fixedSize = (spectype == Asc.c_oAscContentControlSpecificType.CheckBox || spectype == Asc. c_oAscContentControlSpecificType.ComboBox || spectype == Asc.c_oAscContentControlSpecificType.DropDownList || spectype == Asc.c_oAscContentControlSpecificType.None || spectype == Asc.c_oAscContentControlSpecificType.Picture || spectype == Asc.c_oAscContentControlSpecificType.Complex) && controlProps.get_FormPr() && controlProps.get_FormPr().get_Fixed();
} }
let disableRemove = !!props.storeFocusObjects.paragraphObject || (lockType == Asc.c_oAscSdtLockType.SdtContentLocked || lockType == Asc.c_oAscSdtLockType.SdtLocked); let disableRemove = !!props.storeFocusObjects.paragraphObject || (lockType == Asc.c_oAscSdtLockType.SdtContentLocked || lockType == Asc.c_oAscSdtLockType.SdtLocked);

View file

@ -152,6 +152,7 @@ require([
'Main', 'Main',
'ViewTab', 'ViewTab',
'Search', 'Search',
'Print',
'Common.Controllers.Fonts', 'Common.Controllers.Fonts',
'Common.Controllers.History' 'Common.Controllers.History'
/** coauthoring begin **/ /** coauthoring begin **/
@ -182,6 +183,7 @@ require([
'presentationeditor/main/app/controller/Main', 'presentationeditor/main/app/controller/Main',
'presentationeditor/main/app/controller/ViewTab', 'presentationeditor/main/app/controller/ViewTab',
'presentationeditor/main/app/controller/Search', 'presentationeditor/main/app/controller/Search',
'presentationeditor/main/app/controller/Print',
'presentationeditor/main/app/view/FileMenuPanels', 'presentationeditor/main/app/view/FileMenuPanels',
'presentationeditor/main/app/view/ParagraphSettings', 'presentationeditor/main/app/view/ParagraphSettings',
'presentationeditor/main/app/view/ImageSettings', 'presentationeditor/main/app/view/ImageSettings',

View file

@ -107,6 +107,7 @@ define([
if ( !this.leftMenu.panelHistory.isVisible() ) if ( !this.leftMenu.panelHistory.isVisible() )
this.clickMenuFileItem(null, 'history'); this.clickMenuFileItem(null, 'history');
}, this)); }, this));
Common.NotificationCenter.on('file:print', _.bind(this.clickToolbarPrint, this));
}, },
onLaunch: function() { onLaunch: function() {
@ -271,6 +272,7 @@ define([
this.showHistory(); this.showHistory();
} }
break; break;
case 'external-help': close_menu = true; break;
default: close_menu = false; default: close_menu = false;
} }
@ -332,10 +334,6 @@ define([
}, },
applySettings: function(menu) { applySettings: function(menu) {
var value = Common.localStorage.getBool("pe-settings-inputmode");
Common.Utils.InternalSettings.set("pe-settings-inputmode", value);
this.api.SetTextBoxInputMode(value);
var fast_coauth = Common.Utils.InternalSettings.get("pe-settings-coauthmode"); var fast_coauth = Common.Utils.InternalSettings.get("pe-settings-coauthmode");
/** coauthoring begin **/ /** coauthoring begin **/
if (this.mode.isEdit && !this.mode.isOffline && this.mode.canCoAuthoring) { if (this.mode.isEdit && !this.mode.isOffline && this.mode.canCoAuthoring) {
@ -351,7 +349,7 @@ define([
} }
/** coauthoring end **/ /** coauthoring end **/
value = Common.localStorage.getBool("pe-settings-cachemode", true); var value = Common.localStorage.getBool("pe-settings-cachemode", true);
Common.Utils.InternalSettings.set("pe-settings-cachemode", value); Common.Utils.InternalSettings.set("pe-settings-cachemode", value);
this.api.asc_setDefaultBlitMode(value); this.api.asc_setDefaultBlitMode(value);
@ -767,7 +765,14 @@ define([
isCommentsVisible: function() { isCommentsVisible: function() {
return this.leftMenu && this.leftMenu.panelComments && this.leftMenu.panelComments.isVisible(); return this.leftMenu && this.leftMenu.panelComments && this.leftMenu.panelComments.isVisible();
}, },
clickToolbarPrint: function () {
if (this.mode.canPreviewPrint)
this.leftMenu.showMenu('file:printpreview');
else if (this.mode.canPrint)
this.clickMenuFileItem(null, 'print');
},
textNoTextFound : 'Text not found', textNoTextFound : 'Text not found',
newDocumentTitle : 'Unnamed document', newDocumentTitle : 'Unnamed document',
requestEditRightsText : 'Requesting editing rights...', requestEditRightsText : 'Requesting editing rights...',

View file

@ -844,14 +844,11 @@ define([
me.api.asc_registerCallback('asc_onEndAction', _.bind(me.onLongActionEnd, me)); me.api.asc_registerCallback('asc_onEndAction', _.bind(me.onLongActionEnd, me));
me.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(me.onCoAuthoringDisconnect, me)); me.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(me.onCoAuthoringDisconnect, me));
me.api.asc_registerCallback('asc_onPrint', _.bind(me.onPrint, me)); me.api.asc_registerCallback('asc_onPrint', _.bind(me.onPrint, me));
me.api.asc_registerCallback('asc_onConfirmAction', _.bind(me.onConfirmAction, me));
appHeader.setDocumentCaption( me.api.asc_getDocumentName() ); appHeader.setDocumentCaption( me.api.asc_getDocumentName() );
me.updateWindowTitle(true); me.updateWindowTitle(true);
value = Common.localStorage.getBool("pe-settings-inputmode");
Common.Utils.InternalSettings.set("pe-settings-inputmode", value);
me.api.SetTextBoxInputMode(value);
value = Common.localStorage.getBool("pe-settings-show-alt-hints", Common.Utils.isMac ? false : true); value = Common.localStorage.getBool("pe-settings-show-alt-hints", Common.Utils.isMac ? false : true);
Common.Utils.InternalSettings.set("pe-settings-show-alt-hints", value); Common.Utils.InternalSettings.set("pe-settings-show-alt-hints", value);
@ -1168,6 +1165,9 @@ define([
console.log("Obsolete: The 'chat' parameter of the 'customization' section is deprecated. Please use 'chat' parameter in the permissions instead."); console.log("Obsolete: The 'chat' parameter of the 'customization' section is deprecated. Please use 'chat' parameter in the permissions instead.");
} }
this.appOptions.canPrint = (this.permissions.print !== false); this.appOptions.canPrint = (this.permissions.print !== false);
this.appOptions.canPreviewPrint = this.appOptions.canPrint && !Common.Utils.isMac && this.appOptions.isDesktopApp;
this.appOptions.canQuickPrint = this.appOptions.canPrint && !Common.Utils.isMac && this.appOptions.isDesktopApp &&
!(this.editorConfig.customization && this.editorConfig.customization.compactHeader);
this.appOptions.canRename = this.editorConfig.canRename; this.appOptions.canRename = this.editorConfig.canRename;
this.appOptions.canForcesave = this.appOptions.isEdit && !this.appOptions.isOffline && (typeof (this.editorConfig.customization) == 'object' && !!this.editorConfig.customization.forcesave); this.appOptions.canForcesave = this.appOptions.isEdit && !this.appOptions.isOffline && (typeof (this.editorConfig.customization) == 'object' && !!this.editorConfig.customization.forcesave);
this.appOptions.forcesave = this.appOptions.canForcesave; this.appOptions.forcesave = this.appOptions.canForcesave;
@ -1300,6 +1300,9 @@ define([
toolbarController.setMode(this.appOptions); toolbarController.setMode(this.appOptions);
documentHolder.setMode(this.appOptions); documentHolder.setMode(this.appOptions);
var printController = app.getController('Print');
printController && this.api && printController.setApi(this.api).setMode(this.appOptions);
this.api.asc_registerCallback('asc_onSendThemeColors', _.bind(this.onSendThemeColors, this)); this.api.asc_registerCallback('asc_onSendThemeColors', _.bind(this.onSendThemeColors, this));
this.api.asc_registerCallback('asc_onDownloadUrl', _.bind(this.onDownloadUrl, this)); this.api.asc_registerCallback('asc_onDownloadUrl', _.bind(this.onDownloadUrl, this));
this.api.asc_registerCallback('asc_onDocumentModifiedChanged', _.bind(this.onDocumentModifiedChanged, this)); this.api.asc_registerCallback('asc_onDocumentModifiedChanged', _.bind(this.onDocumentModifiedChanged, this));
@ -1925,6 +1928,7 @@ define([
Common.Utils.InternalSettings.set("pe-settings-unit", value); Common.Utils.InternalSettings.set("pe-settings-unit", value);
this.api.asc_SetDocumentUnits((value==Common.Utils.Metric.c_MetricUnits.inch) ? Asc.c_oAscDocumentUnits.Inch : ((value==Common.Utils.Metric.c_MetricUnits.pt) ? Asc.c_oAscDocumentUnits.Point : Asc.c_oAscDocumentUnits.Millimeter)); this.api.asc_SetDocumentUnits((value==Common.Utils.Metric.c_MetricUnits.inch) ? Asc.c_oAscDocumentUnits.Inch : ((value==Common.Utils.Metric.c_MetricUnits.pt) ? Asc.c_oAscDocumentUnits.Point : Asc.c_oAscDocumentUnits.Millimeter));
this.getApplication().getController('RightMenu').updateMetricUnit(); this.getApplication().getController('RightMenu').updateMetricUnit();
this.appOptions.canPreviewPrint && this.getApplication().getController('Print').getView('PrintWithPreview').updateMetricUnit();
}, },
updateThemeColors: function() { updateThemeColors: function() {
@ -2178,9 +2182,7 @@ define([
onPrint: function() { onPrint: function() {
if (!this.appOptions.canPrint || Common.Utils.ModalWindow.isVisible()) return; if (!this.appOptions.canPrint || Common.Utils.ModalWindow.isVisible()) return;
Common.NotificationCenter.trigger('file:print');
if (this.api)
this.api.asc_Print(new Asc.asc_CDownloadOptions(null, Common.Utils.isChrome || Common.Utils.isOpera || Common.Utils.isGecko && Common.Utils.firefoxVersion>86)); // if isChrome or isOpera == true use asc_onPrintUrl event
Common.component.Analytics.trackEvent('Print'); Common.component.Analytics.trackEvent('Print');
}, },
@ -2213,6 +2215,39 @@ define([
if (url) this.iframePrint.src = url; if (url) this.iframePrint.src = url;
}, },
onPrintQuick: function() {
if (!this.appOptions.canQuickPrint) return;
var value = Common.localStorage.getBool("pe-hide-quick-print-warning"),
me = this,
handler = function () {
var printopt = new Asc.asc_CAdjustPrint();
printopt.asc_setNativeOptions({quickPrint: true});
var opts = new Asc.asc_CDownloadOptions();
opts.asc_setAdvancedOptions(printopt);
me.api.asc_Print(opts);
Common.component.Analytics.trackEvent('Print');
};
if (value) {
handler.call(this);
} else {
Common.UI.warning({
msg: this.textTryQuickPrint,
buttons: ['yes', 'no'],
primary: 'yes',
dontshow: true,
maxwidth: 500,
callback: function(btn, dontshow){
dontshow && Common.localStorage.setBool("pe-hide-quick-print-warning", true);
if (btn === 'yes') {
setTimeout(handler, 1);
}
}
});
}
},
onAdvancedOptions: function(type, advOptions) { onAdvancedOptions: function(type, advOptions) {
if (this._state.openDlg) return; if (this._state.openDlg) return;
@ -2610,6 +2645,24 @@ define([
}) })
}, },
onConfirmAction: function(id, apiCallback, data) {
var me = this;
if (id == Asc.c_oAscConfirm.ConfirmMaxChangesSize) {
Common.UI.warning({
title: this.notcriticalErrorTitle,
msg: this.confirmMaxChangesSize,
buttons: [{value: 'ok', caption: this.textUndo, primary: true}, {value: 'cancel', caption: this.textContinue}],
maxwidth: 600,
callback: _.bind(function(btn) {
if (apiCallback) {
apiCallback(btn === 'ok');
}
me.onEditComplete();
}, this)
});
}
},
// Translation // Translation
leavePageText: 'You have unsaved changes in this document. Click \'Stay on this Page\' then \'Save\' to save them. Click \'Leave this Page\' to discard all the unsaved changes.', leavePageText: 'You have unsaved changes in this document. Click \'Stay on this Page\' then \'Save\' to save them. Click \'Leave this Page\' to discard all the unsaved changes.',
criticalErrorTitle: 'Error', criticalErrorTitle: 'Error',
@ -2983,7 +3036,11 @@ define([
textLearnMore: 'Learn More', textLearnMore: 'Learn More',
textReconnect: 'Connection is restored', textReconnect: 'Connection is restored',
textRequestMacros: 'A macro makes a request to URL. Do you want to allow the request to the %1?', textRequestMacros: 'A macro makes a request to URL. Do you want to allow the request to the %1?',
textRememberMacros: 'Remember my choice for all macros' textRememberMacros: 'Remember my choice for all macros',
confirmMaxChangesSize: 'The size of actions exceeds the limitation set for your server.<br>Press "Undo" to cancel your last action or press "Continue" to keep action locally (you need to download the file or copy its content to make sure nothing is lost).',
textUndo: 'Undo',
textContinue: 'Continue',
textTryQuickPrint: 'You have selected Quick print: the entire document will be printed on the last selected or default printer.<br>Do you want to continue?'
} }
})(), PE.Controllers.Main || {})) })(), PE.Controllers.Main || {}))
}); });

View file

@ -0,0 +1,348 @@
/*
*
* (c) Copyright Ascensio System SIA 2010-2022
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
define([
'core',
'presentationeditor/main/app/view/FileMenuPanels'
], function () {
'use strict';
PE.Controllers.Print = Backbone.Controller.extend(_.extend({
views: [
'PrintWithPreview'
],
initialize: function() {
this.adjPrintParams = new Asc.asc_CAdjustPrint();
this._state = {};
this._paperSize = undefined;
this._navigationPreview = {
pageCount: false,
currentPage: 0,
currentPreviewPage: 0
};
this._isPreviewVisible = false;
this.addListeners({
'PrintWithPreview': {
'show': _.bind(this.onShowMainSettingsPrint, this),
'render:after': _.bind(this.onAfterRender, this)
}
});
},
onLaunch: function() {
this.printSettings = this.createView('PrintWithPreview');
},
onAfterRender: function(view) {
var me = this;
this.printSettings.menu.on('menu:hide', _.bind(this.onHidePrintMenu, this));
this.printSettings.btnPrint.on('click', _.bind(this.onBtnPrint, this, true));
this.printSettings.btnPrintPdf.on('click', _.bind(this.onBtnPrint, this, false));
this.printSettings.btnPrevPage.on('click', _.bind(this.onChangePreviewPage, this, false));
this.printSettings.btnNextPage.on('click', _.bind(this.onChangePreviewPage, this, true));
this.printSettings.txtNumberPage.on({
'keypress:after': _.bind(this.onKeypressPageNumber, this),
'keyup:after': _.bind(this.onKeyupPageNumber, this)
});
this.printSettings.txtNumberPage.cmpEl.find('input').on('blur', _.bind(this.onBlurPageNumber, this));
this.printSettings.cmbRange.on('selected', _.bind(this.comboRangeChange, this));
this.printSettings.inputPages.on('changing', _.bind(this.inputPagesChanging, this));
this.printSettings.inputPages.validation = function(value) {
if (!_.isEmpty(value) && /[0-9,\-]/.test(value)) {
var res = [],
arr = value.split(',');
if (me._isPrint && arr.length>1)
return me.txtPrintRangeSingleRange;
for (var i=0; i<arr.length; i++) {
var item = arr[i];
if (!item) // empty
return me.txtPrintRangeInvalid;
var str = item.match(/\-/g);
if (str && str.length>1) // more than 1 symbol '-'
return me.txtPrintRangeInvalid;
if (!str) {// one number
var num = parseInt(item)-1;
(num>=0) && res.push(num);
} else { // range
var pages = item.split('-'),
start = (pages[0] ? parseInt(pages[0])-1 : 0),
end = (pages[1] ? parseInt(pages[1])-1 : me._navigationPreview.pageCount-1);
if (start>end) {
var num = start;
start = end;
end = num;
}
for (var j=start; j<=end; j++) {
(j>=0) && res.push(j);
}
}
}
if (res.length>0) {
return true;
}
}
return me.txtPrintRangeInvalid;
};
this.printSettings.cmbPaperSize.on('selected', _.bind(this.onPaperSizeSelect, this));
this._paperSize = this.printSettings.cmbPaperSize.getSelectedRecord().size;
Common.NotificationCenter.on('window:resize', _.bind(function () {
if (this._isPreviewVisible) {
this.api.asc_drawPrintPreview(this._navigationPreview.currentPreviewPage, this._paperSize);
}
}, this));
var eventname = (/Firefox/i.test(navigator.userAgent))? 'DOMMouseScroll' : 'mousewheel';
this.printSettings.$previewBox.on(eventname, _.bind(this.onPreviewWheel, this));
},
setMode: function (mode) {
this.mode = mode;
this.printSettings && this.printSettings.setMode(mode);
},
setApi: function(o) {
this.api = o;
this.api.asc_registerCallback('asc_onCountPages', _.bind(this.onCountPages, this));
this.api.asc_registerCallback('asc_onCurrentPage', _.bind(this.onCurrentPage, this));
return this;
},
comboRangeChange: function(combo, record) {
if (record.value === -1) {
var me = this;
setTimeout(function(){
me.printSettings.inputPages.focus();
}, 50);
} else {
this.printSettings.inputPages.setValue('');
}
this.printSettings.inputPages.showError();
},
onCountPages: function(count) {
this._navigationPreview.pageCount = count;
if (this.printSettings.isVisible()) {
this.printSettings.$previewBox.toggleClass('hidden', !this._navigationPreview.pageCount);
this.printSettings.$previewEmpty.toggleClass('hidden', !!this._navigationPreview.pageCount);
}
if (!!this._navigationPreview.pageCount) {
if (this._navigationPreview.currentPreviewPage > count - 1)
this._navigationPreview.currentPreviewPage = Math.max(0, count - 1);
if (this.printSettings.isVisible()) {
this.api.asc_drawPrintPreview(this._navigationPreview.currentPreviewPage, this._paperSize);
this.updateNavigationButtons(this._navigationPreview.currentPreviewPage, count);
}
}
},
onCurrentPage: function(number) {
this._navigationPreview.currentPreviewPage = number;
if (this.printSettings.isVisible()) {
this.api.asc_drawPrintPreview(this._navigationPreview.currentPreviewPage, this._paperSize);
this.updateNavigationButtons(this._navigationPreview.currentPreviewPage, this._navigationPreview.pageCount);
}
},
onShowMainSettingsPrint: function() {
var me = this;
this.printSettings.$previewBox.removeClass('hidden');
var opts = new Asc.asc_CDownloadOptions(null, Common.Utils.isChrome || Common.Utils.isOpera || Common.Utils.isGecko && Common.Utils.firefoxVersion>86);
opts.asc_setAdvancedOptions(this.adjPrintParams);
this.api.asc_initPrintPreview('print-preview', opts);
this.printSettings.$previewBox.toggleClass('hidden', !this._navigationPreview.pageCount);
this.printSettings.$previewEmpty.toggleClass('hidden', !!this._navigationPreview.pageCount);
if (!!this._navigationPreview.pageCount) {
this._navigationPreview.currentPreviewPage = this._navigationPreview.currentPage = this.api.getCurrentPage();
this.api.asc_drawPrintPreview(this._navigationPreview.currentPreviewPage, this._paperSize);
this.updateNavigationButtons(this._navigationPreview.currentPreviewPage, this._navigationPreview.pageCount);
this.SetDisabled();
}
this._isPreviewVisible = true;
},
getPrintParams: function() {
return this.adjPrintParams;
},
onHidePrintMenu: function () {
if (this._isPreviewVisible) {
this.api.asc_closePrintPreview && this.api.asc_closePrintPreview();
this._isPreviewVisible = false;
}
},
onChangePreviewPage: function (next) {
var index = this._navigationPreview.currentPreviewPage;
if (next) {
index++;
index = Math.min(index, this._navigationPreview.pageCount - 1);
} else {
index--;
index = Math.max(index, 0);
}
this.api.goToPage(index);
},
onKeypressPageNumber: function (input, e) {
if (e.keyCode === Common.UI.Keys.RETURN) {
var box = this.printSettings.$el.find('#print-number-page'),
edit = box.find('input[type=text]'), page = parseInt(edit.val());
if (!page || page > this._navigationPreview.pageCount || page < 0) {
edit.select();
this.printSettings.txtNumberPage.setValue(this._navigationPreview.currentPreviewPage + 1);
this.printSettings.txtNumberPage.checkValidate();
return false;
}
box.focus(); // for IE
this.api.goToPage(page-1);
this.api.asc_enableKeyEvents(true);
return false;
}
},
onKeyupPageNumber: function (input, e) {
if (e.keyCode === Common.UI.Keys.ESC) {
var box = this.printSettings.$el.find('#print-number-page');
box.focus(); // for IE
this.api.asc_enableKeyEvents(true);
return false;
}
},
onBlurPageNumber: function () {
if (this.printSettings.txtNumberPage.getValue() != this._navigationPreview.currentPreviewPage + 1) {
this.printSettings.txtNumberPage.setValue(this._navigationPreview.currentPreviewPage + 1);
this.printSettings.txtNumberPage.checkValidate();
}
},
onPreviewWheel: function (e) {
if (e.ctrlKey) {
e.preventDefault();
e.stopImmediatePropagation();
}
var forward = (e.deltaY || (e.detail && -e.detail) || e.wheelDelta) < 0;
this.onChangePreviewPage(forward);
},
updateNavigationButtons: function (page, count) {
this._navigationPreview.currentPage = page;
this.printSettings.updateCurrentPage(page);
this._navigationPreview.pageCount = count;
this.printSettings.updateCountOfPages(count);
this.disableNavButtons();
},
disableNavButtons: function (force) {
if (force) {
this.printSettings.btnPrevPage.setDisabled(true);
this.printSettings.btnNextPage.setDisabled(true);
return;
}
var curPage = this._navigationPreview.currentPage,
pageCount = this._navigationPreview.pageCount;
this.printSettings.btnPrevPage.setDisabled(curPage < 1);
this.printSettings.btnNextPage.setDisabled(curPage > pageCount - 2);
},
onBtnPrint: function(print) {
this._isPrint = print;
if (this.printSettings.cmbRange.getValue()===-1 && this.printSettings.inputPages.checkValidate() !== true) {
this.printSettings.inputPages.focus();
this.isInputFirstChange = true;
return;
}
if (this._navigationPreview.pageCount<1)
return;
var rec = this.printSettings.cmbPaperSize.getSelectedRecord();
this.adjPrintParams.asc_setNativeOptions({
pages: this.printSettings.cmbRange.getValue()===-1 ? this.printSettings.inputPages.getValue() : this.printSettings.cmbRange.getValue(),
paperSize: {
w: rec ? rec.size[0] : undefined,
h: rec ? rec.size[1] : undefined,
preset: rec ? rec.caption : undefined
}
});
if ( print ) {
var opts = new Asc.asc_CDownloadOptions(null, Common.Utils.isChrome || Common.Utils.isOpera || Common.Utils.isGecko && Common.Utils.firefoxVersion>86);
opts.asc_setAdvancedOptions(this.adjPrintParams);
this.api.asc_Print(opts);
} else {
var opts = new Asc.asc_CDownloadOptions(Asc.c_oAscFileType.PDF);
opts.asc_setAdvancedOptions(this.adjPrintParams);
this.api.asc_DownloadAs(opts);
}
this.printSettings.menu.hide();
},
inputPagesChanging: function (input, value) {
this.isInputFirstChange && this.printSettings.inputPages.showError();
this.isInputFirstChange = false;
if (value.length<1)
this.printSettings.cmbRange.setValue('all');
else if (this.printSettings.cmbRange.getValue()!==-1)
this.printSettings.cmbRange.setValue(-1);
},
onPaperSizeSelect: function(combo, record) {
if (record) {
this._paperSize = record.size;
this.api.asc_drawPrintPreview(this._navigationPreview.currentPreviewPage, this._paperSize);
}
},
SetDisabled: function() {
if (this.printSettings.isVisible()) {
var disable = !this.mode.isEdit;
}
},
txtPrintRangeInvalid: 'Invalid print range',
txtPrintRangeSingleRange: 'Enter either a single slide number or a single slide range (for example, 5-12). Or you can Print to PDF.'
}, PE.Controllers.Print || {}));
});

Some files were not shown because too many files have changed in this diff Show more