Compare commits
92 commits
feature/sc
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
4eebaab5e6 | ||
|
ddec589b37 | ||
|
7b03f08adc | ||
|
3208a4bdf2 | ||
|
9e608f168d | ||
|
f91bc6e50e | ||
|
b5c282872d | ||
|
37b37425af | ||
|
f7eccb611f | ||
|
f453f92a32 | ||
|
b6d7e60624 | ||
|
6b269291ae | ||
|
9e80367822 | ||
|
2bcb91c15c | ||
|
215f2bf28d | ||
|
6543e5bb49 | ||
|
9940b59d38 | ||
|
2c48d5c8cb | ||
|
1ef412c1ee | ||
|
70d6ecb6dc | ||
|
43617a9729 | ||
|
30d35b42eb | ||
|
7e7f519caf | ||
|
62d74b444c | ||
|
7d0ac791aa | ||
|
8e25f9c027 | ||
|
4fa78dad3a | ||
|
58203c0989 | ||
|
aec1b4464d | ||
|
c7f4687a2f | ||
|
7455c536ac | ||
|
033c44d473 | ||
|
81fcfb05f0 | ||
|
8eb8226da2 | ||
|
6f59e5771b | ||
|
640edd8a79 | ||
|
b825310d30 | ||
|
4c4da4113f | ||
|
db925cd1e8 | ||
|
d535175dc1 | ||
|
1401b51648 | ||
|
629af711e2 | ||
|
d4de267db2 | ||
|
1ba9ddf351 | ||
|
2d2958e07b | ||
|
72fd49401f | ||
|
d2a87abfb5 | ||
|
2a128bc539 | ||
|
c4536c0807 | ||
|
53298b4aab | ||
|
24830cb70b | ||
|
50bf470a63 | ||
|
a715c720ca | ||
|
6656f45b04 | ||
|
c0493d45ab | ||
|
d499edb1f3 | ||
|
fcaeb143ba | ||
|
1ac0d04f2e | ||
|
42b75058c5 | ||
|
d4aed51fdf | ||
|
591cf88d5e | ||
|
3dffb8a7ba | ||
|
e0c8c84c72 | ||
|
0020e55ea0 | ||
|
d8600b8a2a | ||
|
229e55811e | ||
|
c0fea1c230 | ||
|
645ff855aa | ||
|
36e8f4214c | ||
|
a0b6f03c71 | ||
|
8a5e21bc46 | ||
|
30a620c94a | ||
|
447e203174 | ||
|
ebaf3f2b1a | ||
|
0621ebf4fd | ||
|
8a98c718fa | ||
|
207bdece2a | ||
|
5f7bd9d805 | ||
|
1a61da2ae2 | ||
|
567cfdcd5d | ||
|
677b629c66 | ||
|
f83b4e55b1 | ||
|
659e7cec50 | ||
|
eae06bd4c9 | ||
|
8ac5578200 | ||
|
01b47592b8 | ||
|
20fa8d11c1 | ||
|
6109598791 | ||
|
30d8937204 | ||
|
144ef4639a | ||
|
f9153dbc2d | ||
|
c5ae22a932 |
|
@ -218,6 +218,7 @@
|
|||
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)
|
||||
uiTheme: 'theme-dark' // set interface theme: id or default-dark/default-light
|
||||
integrationMode: "embed" // turn off scroll to frame
|
||||
},
|
||||
coEditing: {
|
||||
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()) {
|
||||
iframe = createIframe(_config);
|
||||
if (_config.editorConfig.customization && _config.editorConfig.customization.integrationMode==='embed')
|
||||
window.AscEmbed && window.AscEmbed.initWorker(iframe);
|
||||
|
||||
if (iframe.src) {
|
||||
var pathArray = iframe.src.split('/');
|
||||
this.frameOrigin = pathArray[0] + '//' + pathArray[2];
|
||||
|
|
|
@ -45,7 +45,8 @@ define([
|
|||
version: '{{PRODUCT_VERSION}}',
|
||||
eventloading: true,
|
||||
titlebuttons: true,
|
||||
uithemes: true
|
||||
uithemes: true,
|
||||
quickprint: true,
|
||||
};
|
||||
|
||||
var native = window.desktop || window.AscDesktopEditor;
|
||||
|
@ -166,7 +167,8 @@ define([
|
|||
action: action,
|
||||
icon: config.icon || undefined,
|
||||
hint: config.btn.options.hint,
|
||||
disabled: config.btn.isDisabled()
|
||||
disabled: config.btn.isDisabled(),
|
||||
visible: config.visible,
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -201,6 +203,7 @@ define([
|
|||
if ( !!titlebuttons ) {
|
||||
info.hints = {};
|
||||
!!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['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'));
|
||||
|
@ -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 {
|
||||
init: function (opts) {
|
||||
_.extend(config, opts);
|
||||
|
@ -233,9 +254,45 @@ define([
|
|||
|
||||
Common.NotificationCenter.on('document:ready', function () {
|
||||
if ( config.isEdit ) {
|
||||
var maincontroller = webapp.getController('Main');
|
||||
if (maincontroller.api.asc_isReadOnly && maincontroller.api.asc_isReadOnly()) {
|
||||
maincontroller.warningDocumentIsLocked();
|
||||
function get_locked_message (t) {
|
||||
switch (t) {
|
||||
// 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 = {};
|
||||
if ( mode.isEdit ) {
|
||||
var header = webapp.getController('Viewport').getView('Common.Views.Header');
|
||||
const header = webapp.getController('Viewport').getView('Common.Views.Header');
|
||||
if (!!header.btnSave) {
|
||||
titlebuttons['save'] = {btn: header.btnSave};
|
||||
|
||||
|
@ -258,6 +315,13 @@ define([
|
|||
if (!!header.btnPrint)
|
||||
titlebuttons['print'] = {btn: header.btnPrint};
|
||||
|
||||
if (!!header.btnPrintQuick) {
|
||||
titlebuttons['quickprint'] = {
|
||||
btn: header.btnPrintQuick,
|
||||
visible: header.btnPrintQuick.isVisible(),
|
||||
};
|
||||
}
|
||||
|
||||
if (!!header.btnUndo)
|
||||
titlebuttons['undo'] = {btn: header.btnUndo};
|
||||
|
||||
|
@ -288,6 +352,7 @@ define([
|
|||
Common.NotificationCenter.on({
|
||||
'modal:show': _onModalDialog.bind(this, 'open'),
|
||||
'modal:close': _onModalDialog.bind(this, 'close'),
|
||||
'modal:hide': _onModalDialog.bind(this, 'hide'),
|
||||
'uitheme:changed' : function (name) {
|
||||
if (Common.localStorage.getBool('ui-theme-use-system', false)) {
|
||||
native.execCommand("uitheme:changed", JSON.stringify({name:'theme-system'}));
|
||||
|
@ -312,6 +377,7 @@ define([
|
|||
menu.hide();
|
||||
}
|
||||
},
|
||||
'settings:apply': _onApplySettings.bind(this),
|
||||
},
|
||||
}, {id: 'desktop'});
|
||||
|
||||
|
@ -369,7 +435,10 @@ define([
|
|||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
},
|
||||
getDefaultPrinterName: function () {
|
||||
return nativevars ? nativevars.defaultPrinterName : '';
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -979,7 +979,7 @@ Common.Utils.warningDocumentIsLocked = function (opts) {
|
|||
callback: function(btn){
|
||||
if (btn == 'edit') {
|
||||
if ( opts.disablefunc ) opts.disablefunc(false);
|
||||
app.getController('Main').api.asc_setIsReadOnly(false);
|
||||
app.getController('Main').api.asc_setLocalRestrictions(Asc.c_oAscLocalRestrictionType.None);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
@ -81,6 +81,7 @@ define([
|
|||
'<div class="hedset">' +
|
||||
'<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-quick"></div>' +
|
||||
'<div class="btn-slot" id="slot-hbtn-download"></div>' +
|
||||
'</div>' +
|
||||
'<div class="hedset" data-layout-name="header-users">' +
|
||||
|
@ -128,6 +129,7 @@ define([
|
|||
'<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-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-redo"></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 ) {
|
||||
me.btnSave.updateHint(me.tipSave + Common.Utils.String.platformKey('Ctrl+S'));
|
||||
me.btnSave.on('click', function (e) {
|
||||
|
@ -572,6 +581,9 @@ define([
|
|||
if ( config.canPrint )
|
||||
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 )
|
||||
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 ) {
|
||||
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.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)
|
||||
this.fileExtention = this.documentCaption.substring(idx);
|
||||
this.isModified && (value += '*');
|
||||
this.readOnly && (value += ' (' + this.textReadOnly + ')');
|
||||
if ( $labelDocName ) {
|
||||
this.setDocTitle( value );
|
||||
}
|
||||
|
@ -887,6 +902,11 @@ define([
|
|||
return initials;
|
||||
},
|
||||
|
||||
setDocumentReadOnly: function (readonly) {
|
||||
this.readOnly = readonly;
|
||||
this.setDocumentCaption(this.documentCaption);
|
||||
},
|
||||
|
||||
textBack: 'Go to Documents',
|
||||
txtRename: 'Rename',
|
||||
txtAccessRights: 'Change access rights',
|
||||
|
@ -910,7 +930,9 @@ define([
|
|||
textAddFavorite: 'Mark as favorite',
|
||||
textHideNotes: 'Hide Notes',
|
||||
tipSearch: 'Search',
|
||||
textShare: 'Share'
|
||||
textShare: 'Share',
|
||||
tipPrintQuick: 'Quick print',
|
||||
textReadOnly: 'Read only'
|
||||
}
|
||||
}(), Common.Views.Header || {}))
|
||||
});
|
||||
|
|
After Width: | Height: | Size: 254 B |
BIN
apps/common/main/resources/img/toolbar/1.25x/btn-quick-print.png
Normal file
After Width: | Height: | Size: 392 B |
After Width: | Height: | Size: 286 B |
BIN
apps/common/main/resources/img/toolbar/1.5x/btn-quick-print.png
Normal file
After Width: | Height: | Size: 439 B |
After Width: | Height: | Size: 314 B |
BIN
apps/common/main/resources/img/toolbar/1.75x/btn-quick-print.png
Normal file
After Width: | Height: | Size: 525 B |
BIN
apps/common/main/resources/img/toolbar/1x/btn-print-preview.png
Normal file
After Width: | Height: | Size: 238 B |
BIN
apps/common/main/resources/img/toolbar/1x/btn-quick-print.png
Normal file
After Width: | Height: | Size: 360 B |
BIN
apps/common/main/resources/img/toolbar/2x/btn-print-preview.png
Normal file
After Width: | Height: | Size: 436 B |
BIN
apps/common/main/resources/img/toolbar/2x/btn-quick-print.png
Normal file
After Width: | Height: | Size: 754 B |
|
@ -364,8 +364,10 @@ define([
|
|||
},
|
||||
|
||||
onCountPages: function(count) {
|
||||
if (maxPages !== count) {
|
||||
maxPages = count;
|
||||
$('#pages').text(this.textOf + " " + count);
|
||||
}
|
||||
},
|
||||
|
||||
onCurrentPage: function(number) {
|
||||
|
|
|
@ -157,6 +157,7 @@ require([
|
|||
'Main',
|
||||
'ViewTab',
|
||||
'Search',
|
||||
'Print',
|
||||
'Common.Controllers.Fonts',
|
||||
'Common.Controllers.History'
|
||||
/** coauthoring begin **/
|
||||
|
@ -191,6 +192,7 @@ require([
|
|||
'documenteditor/main/app/controller/Main',
|
||||
'documenteditor/main/app/controller/ViewTab',
|
||||
'documenteditor/main/app/controller/Search',
|
||||
'documenteditor/main/app/controller/Print',
|
||||
'documenteditor/main/app/view/FileMenuPanels',
|
||||
'documenteditor/main/app/view/ParagraphSettings',
|
||||
'documenteditor/main/app/view/HeaderFooterSettings',
|
||||
|
|
|
@ -1249,15 +1249,11 @@ define([
|
|||
handler: function(dlg, result) {
|
||||
if (result == 'ok') {
|
||||
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-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);
|
||||
me.editComplete();
|
||||
|
@ -2230,7 +2226,7 @@ define([
|
|||
},
|
||||
|
||||
onRefreshField: function(item, e){
|
||||
this.api && this.api.asc_UpdateComplexField(item.options.fieldProps);
|
||||
this.api && this.api.asc_UpdateFields(true);
|
||||
this.editComplete();
|
||||
},
|
||||
|
||||
|
|
|
@ -113,6 +113,7 @@ define([
|
|||
if ( !this.leftMenu.panelHistory.isVisible() )
|
||||
this.clickMenuFileItem(null, 'history');
|
||||
}, this));
|
||||
Common.NotificationCenter.on('file:print', _.bind(this.clickToolbarPrint, this));
|
||||
},
|
||||
|
||||
onLaunch: function() {
|
||||
|
@ -435,10 +436,6 @@ define([
|
|||
applySettings: function(menu) {
|
||||
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");
|
||||
/** coauthoring begin **/
|
||||
if (this.mode.isEdit && !this.mode.isOffline && this.mode.canCoAuthoring ) {
|
||||
|
@ -553,6 +550,13 @@ define([
|
|||
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) {
|
||||
var btnSave = this.leftMenu.menuFile.getButton('save');
|
||||
btnSave && btnSave.setDisabled(state);
|
||||
|
|
|
@ -1219,14 +1219,11 @@ define([
|
|||
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_onPrint', _.bind(me.onPrint, me));
|
||||
me.api.asc_registerCallback('asc_onConfirmAction', _.bind(me.onConfirmAction, me));
|
||||
|
||||
appHeader.setDocumentCaption(me.api.asc_getDocumentName());
|
||||
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);
|
||||
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.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.buildVersion = params.asc_getBuildVersion();
|
||||
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);
|
||||
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_onDownloadUrl', _.bind(this.onDownloadUrl, 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.getApplication().getController('RightMenu').updateMetricUnit();
|
||||
this.getApplication().getController('Toolbar').getView().updateMetricUnit();
|
||||
this.appOptions.canPreviewPrint && this.getApplication().getController('Print').getView('PrintWithPreview').updateMetricUnit();
|
||||
},
|
||||
|
||||
onAdvancedOptions: function(type, advOptions, mode, formatOptions) {
|
||||
|
@ -2617,9 +2621,7 @@ define([
|
|||
|
||||
onPrint: function() {
|
||||
if (!this.appOptions.canPrint || Common.Utils.ModalWindow.isVisible()) return;
|
||||
|
||||
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.NotificationCenter.trigger('file:print');
|
||||
Common.component.Analytics.trackEvent('Print');
|
||||
},
|
||||
|
||||
|
@ -2652,6 +2654,39 @@ define([
|
|||
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() {
|
||||
this.dontCloseDummyComment = false;
|
||||
},
|
||||
|
@ -2879,6 +2914,24 @@ define([
|
|||
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.',
|
||||
criticalErrorTitle: 'Error',
|
||||
notcriticalErrorTitle: 'Warning',
|
||||
|
@ -3257,7 +3310,11 @@ define([
|
|||
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?',
|
||||
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 || {}))
|
||||
});
|
574
apps/documenteditor/main/app/controller/Print.js
Normal 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 || {}));
|
||||
});
|
|
@ -206,7 +206,7 @@ define([
|
|||
|
||||
if (control_props && control_props.get_FormPr() && this.rightmenu.formSettings) {
|
||||
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) {
|
||||
settingsType = Common.Utils.documentSettingsType.Form;
|
||||
this._settings[settingsType].props = control_props;
|
||||
|
|
|
@ -129,6 +129,10 @@ define([
|
|||
var _main = this.getApplication().getController('Main');
|
||||
_main.onPrint();
|
||||
},
|
||||
'print-quick': function (opts) {
|
||||
var _main = this.getApplication().getController('Main');
|
||||
_main.onPrintQuick();
|
||||
},
|
||||
'save': function (opts) {
|
||||
this.api.asc_Save();
|
||||
},
|
||||
|
@ -1057,9 +1061,7 @@ define([
|
|||
},
|
||||
|
||||
onPrint: function(e) {
|
||||
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.NotificationCenter.trigger('file:print', this.toolbar);
|
||||
Common.NotificationCenter.trigger('edit:complete', this.toolbar);
|
||||
|
||||
Common.component.Analytics.trackEvent('Print');
|
||||
|
@ -1748,15 +1750,11 @@ define([
|
|||
handler: function(dlg, result) {
|
||||
if (result == 'ok') {
|
||||
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-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', me.toolbar);
|
||||
|
|
|
@ -71,7 +71,8 @@ define([
|
|||
this.addListeners({
|
||||
'FileMenu': {
|
||||
'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': {
|
||||
'render:before' : function (toolbar) {
|
||||
|
@ -79,6 +80,11 @@ define([
|
|||
toolbar.setExtra('right', me.header.getPanel('right', config));
|
||||
if (!config.isEdit || config.customization && !!config.customization.compactHeader)
|
||||
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) {
|
||||
me.viewport.vlayout.getItem('toolbar').height = state ?
|
||||
|
@ -100,6 +106,8 @@ define([
|
|||
'print:disabled' : function (state) {
|
||||
if ( me.header.btnPrint )
|
||||
me.header.btnPrint.setDisabled(state);
|
||||
if ( me.header.btnPrintQuick )
|
||||
me.header.btnPrintQuick.setDisabled(state);
|
||||
},
|
||||
'save:disabled' : function (state) {
|
||||
if ( me.header.btnSave )
|
||||
|
@ -255,12 +263,21 @@ define([
|
|||
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) {
|
||||
if (this.header) {
|
||||
if (this.header.btnDownload && !enableDownload)
|
||||
this.header.btnDownload.hide();
|
||||
if (this.header.btnPrint && !enableDownload)
|
||||
this.header.btnPrint.hide();
|
||||
if (this.header.btnPrintQuick && !enableDownload)
|
||||
this.header.btnPrintQuick.hide();
|
||||
if (this.header.btnEdit)
|
||||
this.header.btnEdit.hide();
|
||||
this.header.lockHeaderBtns( 'rename-user', true);
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
<li id="fm-btn-save-copy" 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-with-preview" class="fm-btn"></li>
|
||||
<li id="fm-btn-rename" class="fm-btn"></li>
|
||||
<li id="fm-btn-protect" class="fm-btn"></li>
|
||||
<li class="devider"></li>
|
||||
|
@ -34,4 +35,5 @@
|
|||
<div id="panel-settings" class="content-box"></div>
|
||||
<div id="panel-help" class="content-box"></div>
|
||||
<div id="panel-protect" class="content-box"></div>
|
||||
<div id="panel-print" class="content-box"></div>
|
||||
</div>
|
|
@ -165,7 +165,7 @@ define([
|
|||
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);
|
||||
|
||||
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);
|
||||
|
@ -732,9 +732,9 @@ define([
|
|||
me.menuImgPrint.setDisabled(!cancopy);
|
||||
|
||||
var lockreview = Common.Utils.InternalSettings.get("de-accept-reject-lock");
|
||||
me.menuImgAccept.setVisible(!lockreview);
|
||||
me.menuImgReject.setVisible(!lockreview);
|
||||
menuImgReviewSeparator.setVisible(!lockreview);
|
||||
me.menuImgAccept.setVisible(me.mode.canReview && !me.mode.isReviewOnly && !lockreview);
|
||||
me.menuImgReject.setVisible(me.mode.canReview && !me.mode.isReviewOnly && !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,
|
||||
isInSign = !!signGuid;
|
||||
|
@ -1302,9 +1302,9 @@ define([
|
|||
me.menuTablePrint.setDisabled(!cancopy);
|
||||
|
||||
var lockreview = Common.Utils.InternalSettings.get("de-accept-reject-lock");
|
||||
me.menuTableAccept.setVisible(!lockreview);
|
||||
me.menuTableReject.setVisible(!lockreview);
|
||||
menuTableReviewSeparator.setVisible(!lockreview);
|
||||
me.menuTableAccept.setVisible(me.mode.canReview && !me.mode.isReviewOnly && !lockreview);
|
||||
me.menuTableReject.setVisible(me.mode.canReview && !me.mode.isReviewOnly && !lockreview);
|
||||
menuTableReviewSeparator.setVisible(me.mode.canReview && !me.mode.isReviewOnly && !lockreview);
|
||||
|
||||
// bullets & numbering
|
||||
var listId = me.api.asc_GetCurrentNumberingId(),
|
||||
|
@ -1420,13 +1420,10 @@ define([
|
|||
me.menuAddCommentTable.setDisabled(value.paraProps!==undefined && value.paraProps.locked===true);
|
||||
/** coauthoring end **/
|
||||
|
||||
var in_field = me.api.asc_GetCurrentComplexField();
|
||||
var in_field = me.api.asc_HaveFields(true);
|
||||
me.menuTableRefreshField.setVisible(!!in_field);
|
||||
me.menuTableRefreshField.setDisabled(disabled);
|
||||
menuTableFieldSeparator.setVisible(!!in_field);
|
||||
if (in_field) {
|
||||
me.menuTableRefreshField.options.fieldProps = in_field;
|
||||
}
|
||||
},
|
||||
items: [
|
||||
me.menuSpellCheckTable,
|
||||
|
@ -1917,9 +1914,9 @@ define([
|
|||
me.menuParaPrint.setDisabled(!cancopy);
|
||||
|
||||
var lockreview = Common.Utils.InternalSettings.get("de-accept-reject-lock");
|
||||
me.menuParaAccept.setVisible(!lockreview);
|
||||
me.menuParaReject.setVisible(!lockreview);
|
||||
menuParaReviewSeparator.setVisible(!lockreview);
|
||||
me.menuParaAccept.setVisible(me.mode.canReview && !me.mode.isReviewOnly && !lockreview);
|
||||
me.menuParaReject.setVisible(me.mode.canReview && !me.mode.isReviewOnly && !lockreview);
|
||||
menuParaReviewSeparator.setVisible(me.mode.canReview && !me.mode.isReviewOnly && !lockreview);
|
||||
|
||||
// spellCheck
|
||||
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);
|
||||
/** coauthoring end **/
|
||||
|
||||
var in_field = me.api.asc_GetCurrentComplexField();
|
||||
var in_field = me.api.asc_HaveFields(true);
|
||||
me.menuParaRefreshField.setVisible(!!in_field);
|
||||
me.menuParaRefreshField.setDisabled(disabled);
|
||||
menuParaFieldSeparator.setVisible(!!in_field);
|
||||
if (in_field) {
|
||||
me.menuParaRefreshField.options.fieldProps = in_field;
|
||||
}
|
||||
|
||||
var listId = me.api.asc_GetCurrentNumberingId(),
|
||||
in_list = (listId !== null);
|
||||
|
|
|
@ -67,7 +67,7 @@ define([
|
|||
if (item) {
|
||||
var panel = this.panels[item.options.action];
|
||||
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]);
|
||||
window.open(panel.urlHelpCenter, '_blank');
|
||||
return;
|
||||
|
@ -158,6 +158,17 @@ define([
|
|||
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({
|
||||
el : $markup.elementById('#fm-btn-print'),
|
||||
action : 'print',
|
||||
|
@ -292,6 +303,7 @@ define([
|
|||
this.miSaveCopyAs,
|
||||
this.miSaveAs,
|
||||
this.miPrint,
|
||||
this.miPrintWithPreview,
|
||||
this.miRename,
|
||||
this.miProtect,
|
||||
this.miRecent,
|
||||
|
@ -381,7 +393,8 @@ define([
|
|||
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.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.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 ||
|
||||
|
@ -463,6 +476,12 @@ define([
|
|||
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() ) {
|
||||
$('<li id="fm-btn-local-open" class="fm-btn"/>').insertAfter($('#fm-btn-recent', this.$el));
|
||||
this.items.push(
|
||||
|
|
|
@ -338,12 +338,15 @@ define([
|
|||
'<tr class="edit">',
|
||||
'<td colspan="2"><span id="fms-chb-align-guides"></span></td>',
|
||||
'</tr>',
|
||||
'<tr class="edit">',
|
||||
'<td colspan="2"><div id="fms-chb-input-mode"></div></td>',
|
||||
'</tr>',
|
||||
'<tr>',
|
||||
'<td colspan="2"><div id="fms-chb-use-alt-key"></div></td>',
|
||||
'</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">',
|
||||
'<td><label><%= scope.strTheme %></label></td>',
|
||||
'<td>',
|
||||
|
@ -395,14 +398,6 @@ define([
|
|||
var me = 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({
|
||||
el: $markup.findById('#fms-chb-use-alt-key'),
|
||||
labelText: Common.Utils.isMac ? this.txtUseOptionKey : this.txtUseAltKey,
|
||||
|
@ -709,6 +704,17 @@ define([
|
|||
})).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.pnlApply = $markup.find('.fms-flex-apply').addBack().filter('.fms-flex-apply');
|
||||
this.pnlTable = this.pnlSettings.find('table');
|
||||
|
@ -773,9 +779,9 @@ define([
|
|||
$('tr.view-review', this.el)[mode.canViewReview ? 'show' : 'hide']();
|
||||
$('tr.spellcheck', this.el)[mode.isEdit && Common.UI.FeaturesManager.canChange('spellcheck') ? 'show' : 'hide']();
|
||||
$('tr.comments', this.el)[mode.canCoAuthoring ? 'show' : 'hide']();
|
||||
|
||||
/** coauthoring end **/
|
||||
|
||||
$('tr.quick-print', this.el)[mode.canQuickPrint ? 'show' : 'hide']();
|
||||
$('tr.macros', this.el)[(mode.customization && mode.customization.macros===false) ? 'hide' : 'show']();
|
||||
if ( !Common.UI.Themes.available() ) {
|
||||
$('tr.themes, tr.themes + tr.divider', this.el).hide();
|
||||
|
@ -788,8 +794,6 @@ define([
|
|||
},
|
||||
|
||||
updateSettings: function() {
|
||||
this.chInputMode.setValue(Common.Utils.InternalSettings.get("de-settings-inputmode"));
|
||||
|
||||
this.chUseAltKey.setValue(Common.Utils.InternalSettings.get("de-settings-show-alt-hints"));
|
||||
|
||||
var value = Common.Utils.InternalSettings.get("de-settings-zoom");
|
||||
|
@ -848,6 +852,7 @@ define([
|
|||
this.cmbMacros.setValue(item ? item.get('value') : 0);
|
||||
|
||||
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 = [];
|
||||
for (var t in Common.UI.Themes.map()) {
|
||||
|
@ -873,7 +878,6 @@ define([
|
|||
Common.UI.Themes.setTheme(this.cmbTheme.getValue());
|
||||
if (!this.chDarkMode.isDisabled() && (this.chDarkMode.isChecked() !== Common.UI.Themes.isContentThemeDark()))
|
||||
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.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());
|
||||
|
@ -918,6 +922,7 @@ define([
|
|||
}
|
||||
|
||||
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();
|
||||
|
||||
|
@ -1015,7 +1020,9 @@ define([
|
|||
txtStrictTip: 'Use the \'Save\' button to sync the changes you and others make',
|
||||
strIgnoreWordsInUPPERCASE: 'Ignore words in UPPERCASE',
|
||||
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.RecentFiles = Common.UI.BaseView.extend({
|
||||
|
@ -1989,7 +1996,7 @@ define([
|
|||
this.menu = options.menu;
|
||||
this.urlPref = 'resources/help/{{DEFAULT_LANG}}/';
|
||||
this.openUrl = null;
|
||||
this.urlHelpCenter = '{{HELP_CENTER_WEB_EDITORS}}';
|
||||
this.urlHelpCenter = '{{HELP_CENTER_WEB_DE}}';
|
||||
|
||||
this.en_data = [
|
||||
{"src": "ProgramInterface/ProgramInterface.htm", "name": "Introducing Document Editor user interface", "headername": "Program Interface"},
|
||||
|
@ -2113,7 +2120,7 @@ define([
|
|||
} else {
|
||||
if ( Common.Controllers.Desktop.isActive() ) {
|
||||
if ( store.contentLang === '{{DEFAULT_LANG}}' || !Common.Controllers.Desktop.helpUrl() ) {
|
||||
me.usedHelpCenter = true;
|
||||
me.noHelpContents = true;
|
||||
me.iFrame.src = '../../common/main/resources/help/download.html';
|
||||
} else {
|
||||
store.contentLang = store.contentLang === lang ? '{{DEFAULT_LANG}}' : lang;
|
||||
|
@ -2343,4 +2350,340 @@ define([
|
|||
|
||||
}, 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 || {}));
|
||||
});
|
||||
|
|
|
@ -576,6 +576,7 @@ define([
|
|||
|
||||
onKeyChanged: function(combo, record) {
|
||||
if (this.api && !this._noApply) {
|
||||
this._state.Key = undefined;
|
||||
var props = this._originalProps || new AscCommon.CContentControlPr();
|
||||
var formPr = this._originalFormProps || new AscCommon.CSdtFormPr();
|
||||
formPr.put_Key(record.value);
|
||||
|
@ -1068,14 +1069,10 @@ define([
|
|||
if (formPr) {
|
||||
this._originalFormProps = formPr;
|
||||
|
||||
var data = [];
|
||||
if (type == Asc.c_oAscContentControlSpecificType.CheckBox)
|
||||
data = this.api.asc_GetCheckBoxFormKeys();
|
||||
else if (type == Asc.c_oAscContentControlSpecificType.Picture) {
|
||||
data = this.api.asc_GetPictureFormKeys();
|
||||
if (type == Asc.c_oAscContentControlSpecificType.Picture)
|
||||
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) {
|
||||
var arr = [];
|
||||
data.forEach(function(item) {
|
||||
|
@ -1446,7 +1443,7 @@ define([
|
|||
}
|
||||
} else if (type == Asc.c_oAscContentControlSpecificType.Picture) {
|
||||
imageOnly = true;
|
||||
} else if (type == Asc.c_oAscContentControlSpecificType.None) {
|
||||
} else if (type == Asc.c_oAscContentControlSpecificType.None || type == Asc.c_oAscContentControlSpecificType.Complex) {
|
||||
textOnly = !!textProps;
|
||||
}
|
||||
this.TextOnlySettings.toggleClass('hidden', !textOnly);
|
||||
|
@ -1472,7 +1469,7 @@ define([
|
|||
},
|
||||
|
||||
onDisconnect: function() {
|
||||
this.onKeyChanged(this.cmbKey, {value: ""});
|
||||
this.onKeyChanged(this.cmbKey, {value: (this._originalProps || new AscCommon.CContentControlPr()).get_NewKey()});
|
||||
},
|
||||
|
||||
disableListButtons: function() {
|
||||
|
|
|
@ -1400,7 +1400,7 @@ define([ 'text!documenteditor/main/app/template/ImageSettingsAdvanced.templat
|
|||
var spectype = control_props.get_SpecificType();
|
||||
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.Picture) &&
|
||||
spectype==Asc.c_oAscContentControlSpecificType.Picture || spectype==Asc.c_oAscContentControlSpecificType.Complex) &&
|
||||
control_props.get_FormPr() && control_props.get_FormPr().get_Fixed();
|
||||
}
|
||||
|
||||
|
|
|
@ -810,7 +810,7 @@ define([
|
|||
var spectype = control_props.get_SpecificType();
|
||||
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.Picture) &&
|
||||
spectype==Asc.c_oAscContentControlSpecificType.Picture || spectype==Asc.c_oAscContentControlSpecificType.Complex) &&
|
||||
control_props.get_FormPr() && control_props.get_FormPr().get_Fixed();
|
||||
} else
|
||||
control_props = false;
|
||||
|
|
|
@ -1628,17 +1628,8 @@ define([
|
|||
|
||||
me.setTab('home');
|
||||
|
||||
var top = Common.localStorage.getItem("de-pgmargins-top"),
|
||||
left = Common.localStorage.getItem("de-pgmargins-left"),
|
||||
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);
|
||||
me.onUpdateLastCustomMargins();
|
||||
Common.NotificationCenter.on('margins:update', _.bind(me.onUpdateLastCustomMargins, me));
|
||||
}
|
||||
|
||||
if ( me.isCompactView )
|
||||
|
@ -2643,6 +2634,22 @@ define([
|
|||
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) {
|
||||
Common.Utils.lockControls(causes, lock, opts, this.lockControls);
|
||||
},
|
||||
|
|
|
@ -147,6 +147,7 @@ require([
|
|||
'Main',
|
||||
'ViewTab',
|
||||
'Search',
|
||||
'Print',
|
||||
'Common.Controllers.Fonts',
|
||||
'Common.Controllers.History'
|
||||
/** coauthoring begin **/
|
||||
|
@ -181,6 +182,7 @@ require([
|
|||
'documenteditor/main/app/controller/Main',
|
||||
'documenteditor/main/app/controller/ViewTab',
|
||||
'documenteditor/main/app/controller/Search',
|
||||
'documenteditor/main/app/controller/Print',
|
||||
'documenteditor/main/app/view/FileMenuPanels',
|
||||
'documenteditor/main/app/view/ParagraphSettings',
|
||||
'documenteditor/main/app/view/HeaderFooterSettings',
|
||||
|
|
|
@ -126,6 +126,8 @@
|
|||
"Common.define.chartData.textStock": "Stock",
|
||||
"Common.define.chartData.textSurface": "Surface",
|
||||
"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.warnFileLockedBtnEdit": "Create a copy",
|
||||
"Common.Translation.warnFileLockedBtnView": "Open for viewing",
|
||||
|
@ -319,6 +321,8 @@
|
|||
"Common.Views.Header.tipViewUsers": "View users and manage document access rights",
|
||||
"Common.Views.Header.txtAccessRights": "Change access rights",
|
||||
"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.textHide": "Collapse",
|
||||
"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.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.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.txtGotoBeginning": "Go to the beginning of the document",
|
||||
"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.tipReview": "Track changes",
|
||||
"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.dataUrl": "Paste a data URL",
|
||||
"DE.Controllers.Toolbar.notcriticalErrorTitle": "Warning",
|
||||
|
@ -1837,6 +1849,8 @@
|
|||
"DE.Views.FileMenuPanels.Settings.txtWarnMacrosDesc": "Disable all macros with a notification",
|
||||
"DE.Views.FileMenuPanels.Settings.txtWin": "as Windows",
|
||||
"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.textAspect": "Lock aspect ratio",
|
||||
"DE.Views.FormSettings.textAtLeast": "At least",
|
||||
|
@ -2381,6 +2395,33 @@
|
|||
"DE.Views.ParagraphSettingsAdvanced.tipTop": "Set top border only",
|
||||
"DE.Views.ParagraphSettingsAdvanced.txtAutoText": "Auto",
|
||||
"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.txtFormSettings": "Form Settings",
|
||||
"DE.Views.RightMenu.txtHeaderFooterSettings": "Header and footer settings",
|
||||
|
|
|
@ -126,6 +126,8 @@
|
|||
"Common.define.chartData.textStock": "Биржевая",
|
||||
"Common.define.chartData.textSurface": "Поверхность",
|
||||
"Common.Translation.textMoreButton": "Ещё",
|
||||
"Common.Translation.tipFileLocked": "Документ заблокирован на редактирование. Вы можете внести изменения и сохранить его как локальную копию позже.",
|
||||
"Common.Translation.tipFileReadOnly": "Файл доступен только для чтения. Чтобы сохранить изменения, сохраните файл с новым названием или в другом месте.",
|
||||
"Common.Translation.warnFileLocked": "Вы не можете редактировать этот файл, потому что он уже редактируется в другом приложении.",
|
||||
"Common.Translation.warnFileLockedBtnEdit": "Создать копию",
|
||||
"Common.Translation.warnFileLockedBtnView": "Открыть на просмотр",
|
||||
|
@ -303,6 +305,7 @@
|
|||
"Common.Views.Header.textCompactView": "Скрыть панель инструментов",
|
||||
"Common.Views.Header.textHideLines": "Скрыть линейки",
|
||||
"Common.Views.Header.textHideStatusBar": "Скрыть строку состояния",
|
||||
"Common.Views.Header.textReadOnly": "Только чтение",
|
||||
"Common.Views.Header.textRemoveFavorite": "Удалить из избранного",
|
||||
"Common.Views.Header.textShare": "Доступ",
|
||||
"Common.Views.Header.textZoom": "Масштаб",
|
||||
|
@ -310,6 +313,7 @@
|
|||
"Common.Views.Header.tipDownload": "Скачать файл",
|
||||
"Common.Views.Header.tipGoEdit": "Редактировать текущий файл",
|
||||
"Common.Views.Header.tipPrint": "Напечатать файл",
|
||||
"Common.Views.Header.tipPrintQuick": "Быстрая печать",
|
||||
"Common.Views.Header.tipRedo": "Повторить",
|
||||
"Common.Views.Header.tipSave": "Сохранить",
|
||||
"Common.Views.Header.tipSearch": "Поиск",
|
||||
|
@ -647,6 +651,7 @@
|
|||
"DE.Controllers.Main.textClose": "Закрыть",
|
||||
"DE.Controllers.Main.textCloseTip": "Щелкните, чтобы закрыть эту подсказку",
|
||||
"DE.Controllers.Main.textContactUs": "Связаться с отделом продаж",
|
||||
"DE.Controllers.Main.textContinue": "Продолжить",
|
||||
"DE.Controllers.Main.textConvertEquation": "Это уравнение создано в старой версии редактора уравнений, которая больше не поддерживается. Чтобы изменить это уравнение, его необходимо преобразовать в формат Office Math ML.<br>Преобразовать сейчас?",
|
||||
"DE.Controllers.Main.textCustomLoader": "Обратите внимание, что по условиям лицензии у вас нет прав изменять экран, отображаемый при загрузке.<br>Пожалуйста, обратитесь в наш отдел продаж, чтобы сделать запрос.",
|
||||
"DE.Controllers.Main.textDisconnect": "Соединение потеряно",
|
||||
|
@ -665,8 +670,10 @@
|
|||
"DE.Controllers.Main.textRequestMacros": "Макрос делает запрос на URL. Вы хотите разрешить запрос на %1?",
|
||||
"DE.Controllers.Main.textShape": "Фигура",
|
||||
"DE.Controllers.Main.textStrict": "Строгий режим",
|
||||
"DE.Controllers.Main.textTryQuickPrint": "Вы выбрали быструю печать: весь документ будет напечатан на последнем выбранном принтере или на принтере по умолчанию.<br>Вы хотите продолжить?",
|
||||
"DE.Controllers.Main.textTryUndoRedo": "Функции отмены и повтора действий отключены в Быстром режиме совместного редактирования.<br>Нажмите на кнопку 'Строгий режим' для переключения в Строгий режим совместного редактирования, чтобы редактировать файл без вмешательства других пользователей и отправлять изменения только после того, как вы их сохраните. Переключаться между режимами совместного редактирования можно с помощью Дополнительных параметров редактора.",
|
||||
"DE.Controllers.Main.textTryUndoRedoWarn": "Функции отмены и повтора действий отключены в Быстром режиме совместного редактирования.",
|
||||
"DE.Controllers.Main.textUndo": "Отменить",
|
||||
"DE.Controllers.Main.titleLicenseExp": "Истек срок действия лицензии",
|
||||
"DE.Controllers.Main.titleServerVersion": "Редактор обновлен",
|
||||
"DE.Controllers.Main.titleUpdateVersion": "Версия изменилась",
|
||||
|
@ -937,6 +944,10 @@
|
|||
"DE.Controllers.Main.warnProcessRightsChange": "Вам было отказано в праве на редактирование этого файла.",
|
||||
"DE.Controllers.Navigation.txtBeginning": "Начало документа",
|
||||
"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.textNoTextFound": "Искомые данные не найдены. Пожалуйста, измените параметры поиска.",
|
||||
"DE.Controllers.Search.textReplaceSkipped": "Замена выполнена. Пропущено вхождений - {0}.",
|
||||
|
@ -1824,6 +1835,8 @@
|
|||
"DE.Views.FileMenuPanels.Settings.txtNone": "Никакие",
|
||||
"DE.Views.FileMenuPanels.Settings.txtProofing": "Правописание",
|
||||
"DE.Views.FileMenuPanels.Settings.txtPt": "Пункт",
|
||||
"DE.Views.FileMenuPanels.Settings.txtQuickPrint": "Показывать кнопку Быстрая печать в шапке редактора",
|
||||
"DE.Views.FileMenuPanels.Settings.txtQuickPrintTip": "Документ будет напечатан на последнем выбранном принтере или на принтере по умолчанию",
|
||||
"DE.Views.FileMenuPanels.Settings.txtRunMacros": "Включить все",
|
||||
"DE.Views.FileMenuPanels.Settings.txtRunMacrosDesc": "Включить все макросы без уведомления",
|
||||
"DE.Views.FileMenuPanels.Settings.txtShowTrackChanges": "Показывать изменения при рецензировании",
|
||||
|
@ -2073,6 +2086,7 @@
|
|||
"DE.Views.LeftMenu.tipComments": "Комментарии",
|
||||
"DE.Views.LeftMenu.tipNavigation": "Навигация",
|
||||
"DE.Views.LeftMenu.tipOutline": "Заголовки",
|
||||
"DE.Views.LeftMenu.tipPageThumbnails": "Эскизы страниц",
|
||||
"DE.Views.LeftMenu.tipPlugins": "Плагины",
|
||||
"DE.Views.LeftMenu.tipSearch": "Поиск",
|
||||
"DE.Views.LeftMenu.tipSupport": "Обратная связь и поддержка",
|
||||
|
@ -2380,6 +2394,33 @@
|
|||
"DE.Views.ParagraphSettingsAdvanced.tipTop": "Задать только верхнюю границу",
|
||||
"DE.Views.ParagraphSettingsAdvanced.txtAutoText": "Авто",
|
||||
"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.txtFormSettings": "Параметры формы",
|
||||
"DE.Views.RightMenu.txtHeaderFooterSettings": "Параметры верхнего и нижнего колонтитулов",
|
||||
|
|
|
@ -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>
|
||||
|
||||
<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>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>
|
||||
|
||||
<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>
|
||||
<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>
|
||||
|
@ -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 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>In diesem Fall enthält das Dokument im <b>Originalanzeigemodus</b> keine Änderungen.</p>
|
||||
</div>
|
||||
|
|
|
@ -80,8 +80,7 @@
|
|||
<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>
|
||||
</ul>
|
||||
<p>Klicken Sie auf <b>OK</b></p>
|
||||
<p>oder</p>
|
||||
<p>Klicken Sie auf <b>OK</b> 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>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
</ul>
|
||||
</li>
|
||||
</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>
|
||||
<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>
|
||||
|
|
|
@ -97,8 +97,8 @@
|
|||
<li>Benutzerdefinierte Kombination</li>
|
||||
</ul>
|
||||
</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>
|
||||
</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:
|
||||
<ul>
|
||||
|
|
|
@ -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>
|
||||
|
||||
<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>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>
|
||||
|
||||
<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>
|
||||
<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>
|
||||
|
@ -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 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>In this case, when you choose the <b>Original</b> display mode, the document will not contain any changes.</p>
|
||||
</div>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<p><img alt="Layout tab" src="../images/interface/layouttab.png" /></p>
|
||||
</div>
|
||||
<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>
|
||||
</div>
|
||||
<p>Using this tab, you can:</p>
|
||||
|
|
|
@ -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 entire table</b> - to update all the headings that have been modified and page numbers.</li>
|
||||
</ul>
|
||||
<p>Click <b>OK</b> to confirm your choice, </p>
|
||||
<p>or</p>
|
||||
<p>Click <b>OK</b> to confirm your choice 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>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
</ul>
|
||||
</li>
|
||||
</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>
|
||||
<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 & Spacing</b> tab,</li>
|
||||
|
|
|
@ -18,11 +18,11 @@
|
|||
<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>
|
||||
<ol>
|
||||
<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>click the <div class = "icon icon-insertchart"></div> <b>Chart</b> icon on the top toolbar,</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>Click the <div class = "icon icon-insertchart"></div> <b>Chart</b> icon on the top toolbar.</li>
|
||||
<li>
|
||||
select the needed chart type from the available ones:
|
||||
Select the needed chart type from the available ones:
|
||||
<details class="details-example">
|
||||
<summary>Column Charts</summary>
|
||||
<ul>
|
||||
|
@ -97,10 +97,10 @@
|
|||
<li>Custom combination</li>
|
||||
</ul>
|
||||
</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>
|
||||
</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>
|
||||
<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>
|
||||
|
@ -160,7 +160,7 @@
|
|||
<p><img alt="Chart Type Combo" src="../../../../../../common/main/resources/help/en/images/charttype_combo.png" /></p>
|
||||
</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>The <b>Layout</b> tab allows you to change the layout of chart elements.</p>
|
||||
<ul>
|
||||
|
@ -188,7 +188,7 @@
|
|||
Specify the <b>Data Labels</b> (i.e. text labels that represent exact values of data points) parameters:<br />
|
||||
<ul>
|
||||
<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>
|
||||
<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>
|
||||
|
@ -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>
|
||||
</ul>
|
||||
</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>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>
|
||||
</ul>
|
||||
</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 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>
|
||||
<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>
|
||||
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>
|
||||
<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>
|
||||
|
@ -271,9 +271,9 @@
|
|||
<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>
|
||||
<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>
|
||||
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>
|
||||
<li><b>None</b> when you don’t want to display a horizontal axis title,</li>
|
||||
<li><b>No Overlay</b> to display the title below the horizontal axis,</li>
|
||||
|
|
|
@ -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>
|
||||
|
||||
<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>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>
|
||||
|
||||
<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>
|
||||
<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>
|
||||
|
@ -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 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>Dans ce cas, lorsque vous choisissez le mode d'affichage <b>Original</b>, il n'y aura aucune modification dans le document.</p>
|
||||
</div>
|
||||
|
|
|
@ -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 le tableau entier</b> permet de mettre en place toutes les modifications des titres et des numéros de pages.</li>
|
||||
</ul>
|
||||
<p>Cliquez sur <b>OK</b> pour confirmer votre choix. </p>
|
||||
<p>ou</p>
|
||||
<p>Cliquez sur <b>OK</b> pour confirmer votre choix 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>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
</ul>
|
||||
</li>
|
||||
</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>
|
||||
<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>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<head>
|
||||
<title>Créer des formulaires à remplir</title>
|
||||
<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="../editor.css" />
|
||||
<script type="text/javascript" src="../callback.js"></script>
|
||||
|
@ -37,9 +37,9 @@
|
|||
</li>
|
||||
</ol>
|
||||
<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">
|
||||
<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>
|
||||
<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>
|
||||
|
@ -49,20 +49,26 @@
|
|||
<br /> <img alt="Conseil ajouté" src="../images/text_field_tip.png" />
|
||||
</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 son position.
|
||||
<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).
|
||||
<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><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>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>
|
||||
<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 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>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>Requis</b> : cochez cette case pour rendre le champ texte obligatoire à remplir.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<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>
|
||||
<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">
|
||||
<details class="details-example">
|
||||
<summary>Pour ajouter une zone de liste déroulante,</summary>
|
||||
|
@ -84,24 +90,25 @@
|
|||
</li>
|
||||
</ol>
|
||||
<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">
|
||||
<img alt="Paramètres de la zone de liste déroulante" src="../images/combo_box_settings.png" />
|
||||
<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>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>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" />
|
||||
</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>
|
||||
<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><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>Requis</b> : cochez cette case pour rendre le champ de zone de liste déroulante obligatoire à remplir.</li>
|
||||
</ul>
|
||||
</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>
|
||||
|
@ -124,7 +131,7 @@
|
|||
</li>
|
||||
</ol>
|
||||
<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">
|
||||
<img alt="Paramètres de la liste déroulante" src="../images/dropdown_list_settings.png" />
|
||||
<ul>
|
||||
|
@ -135,13 +142,14 @@
|
|||
<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" />
|
||||
</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>
|
||||
<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><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>Requis</b> : cochez cette case pour rendre le champ de liste déroulante obligatoire à remplir.</li>
|
||||
</ul>
|
||||
</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>
|
||||
|
@ -151,7 +159,7 @@
|
|||
|
||||
|
||||
<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">
|
||||
<details class="details-example">
|
||||
<summary>Pour insérer une case à cocher,</summary>
|
||||
|
@ -163,9 +171,9 @@
|
|||
</li>
|
||||
</ol>
|
||||
<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">
|
||||
<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>
|
||||
<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>
|
||||
|
@ -175,10 +183,11 @@
|
|||
</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 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><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>Requis</b> : cochez cette case pour rendre le champ de case à cocher obligatoire à remplir.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<p>Cliquez sur la case pour la cocher.</p>
|
||||
|
@ -188,7 +197,7 @@
|
|||
|
||||
|
||||
<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">
|
||||
<details class="details-example">
|
||||
<summary>Pour ajouter un bouton radio,</summary>
|
||||
|
@ -200,9 +209,9 @@
|
|||
</li>
|
||||
</ol>
|
||||
<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">
|
||||
<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>
|
||||
<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>
|
||||
|
@ -212,10 +221,11 @@
|
|||
</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 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><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>Requis</b> : cochez cette case pour rendre le champ bouton radio obligatoire à remplir.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<p>Cliquez sur le bouton radio pour le choisir.</p>
|
||||
|
@ -225,10 +235,10 @@
|
|||
|
||||
|
||||
<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">
|
||||
<details class="details-example">
|
||||
<summary>Pour ajouter un champ d'image,</summary>
|
||||
<summary>Pour ajouter un champ image,</summary>
|
||||
<ol>
|
||||
<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>
|
||||
|
@ -237,12 +247,12 @@
|
|||
</li>
|
||||
</ol>
|
||||
<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">
|
||||
<img alt="Paramètres du champ image" src="../images/image_form_settings.png" />
|
||||
<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>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>Conseil</b> : saisissez le texte à afficher quand l'utilisateur fait passer la souris sur la bordure inférieure de l'image.
|
||||
|
@ -252,6 +262,7 @@
|
|||
<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 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>
|
||||
</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>
|
||||
|
@ -259,6 +270,138 @@
|
|||
</details>
|
||||
</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>
|
||||
<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">
|
||||
<img alt="Paramètres de surbrillance" src="../images/highlight_settings.png" />
|
||||
<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>pour supprimer la mise en surbrillance actuelle, utilisez l'option <b>Pas de surbrillance</b>.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<p>Les options de surbrillance activées seront appliquées à tous les champs du formulaire actuel.</p>
|
||||
<p class="note">
|
||||
<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>
|
||||
<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>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
|
@ -286,7 +427,7 @@
|
|||
</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>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>
|
||||
<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 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>
|
||||
<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>
|
||||
</body>
|
||||
</html>
|
|
@ -18,9 +18,9 @@
|
|||
<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>
|
||||
<ol>
|
||||
<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>cliquez sur l'icône <b>Graphique</b> <div class = "icon icon-insertchart"></div> de la barre d'outils supérieure,</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>Cliquez sur l'icône <b>Graphique</b> <div class = "icon icon-insertchart"></div> de la barre d'outils supérieure.</li>
|
||||
<li>
|
||||
choisissez le type de graphique approprié :
|
||||
<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 d’autres applications. Vous pouvez ouvrir le fichier comportant un tel graphique et le modifier.</p>
|
||||
</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>
|
||||
<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>
|
||||
|
@ -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>
|
||||
</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>L'onglet <b>Disposition</b> vous permet de modifier la disposition des éléments de graphique.</p>
|
||||
<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 />
|
||||
<ul>
|
||||
<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>
|
||||
<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>
|
||||
|
@ -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>
|
||||
</ul>
|
||||
</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>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>
|
||||
</ul>
|
||||
</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 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>
|
||||
<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>
|
||||
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>
|
||||
<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>
|
||||
|
@ -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>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>
|
||||
<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>
|
||||
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>
|
||||
<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>
|
||||
|
|
|
@ -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>
|
||||
|
||||
<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>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>
|
||||
|
||||
<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>
|
||||
<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>
|
||||
|
@ -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 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>In this case, when you choose the <b>Original</b> display mode, the document will not contain any changes.</p>
|
||||
</div>
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
</ul>
|
||||
</li>
|
||||
</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>
|
||||
<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>
|
||||
|
|
|
@ -73,12 +73,12 @@
|
|||
<p>Чтобы быстро отклонить все изменения, нажмите направленную вниз стрелку под кнопкой <span class = "icon icon-review_rejecttoptoolbar"></span> <b>Отклонить</b> и выберите опцию <b>Отклонить все изменения</b>.</p>
|
||||
|
||||
<h3 id="comparisonnotes">Дополнительные сведения о функции сравнения</h3>
|
||||
<h5>Принцип сравнения</h5>
|
||||
<h4>Принцип сравнения</h4>
|
||||
<p>Сравнение документов ведется <b>по словам</b>. Если слово содержит изменение хотя бы на один символ (например, если символ был удален или заменен), в результате отличие будет отображено как изменение всего слова целиком, а не символа.</p>
|
||||
<p>Приведенное ниже изображение иллюстрирует случай, когда исходный файл содержит слово 'Символы', а документ для сравнения содержит слово 'Символ'.</p>
|
||||
<p><img alt="Сравнение документов - принцип" src="../images/compare_method.png" /></p>
|
||||
|
||||
<h5>Авторство документа</h5>
|
||||
<h4>Авторство документа</h4>
|
||||
<p>При запуске процесса сравнения документов второй документ для сравнения загружается и сравнивается с текущим.</p>
|
||||
<ul>
|
||||
<li>Если загруженный документ содержит данные, которые отсутствуют в исходном документе, они будут помечены как добавленные рецензентом.</li>
|
||||
|
@ -87,7 +87,7 @@
|
|||
<p>Если авторы исходного и загруженного документа совпадают, то рецензентом будет тот же пользователь. Его имя отображается во всплывающем окне с изменением.</p>
|
||||
<p>Если авторы двух файлов - разные пользователи, то автор второго файла, загруженного для сравнения, будет автором добавленных или удаленных изменений.</p>
|
||||
|
||||
<h5>Наличие рецензирования в сравниваемом документе</h5>
|
||||
<h4>Наличие рецензирования в сравниваемом документе</h4>
|
||||
<p>Если исходный документ содержит изменения, внесенные в режиме рецензирования, то в результате сравнения документа они будут приняты. При выборе второго файла для сравнения вы увидите соответствующее предупреждение.</p>
|
||||
<p>В этом случае при выборе режима отображения <b>Исходный документ</b> документ не будет содержать изменений.</p>
|
||||
</div>
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
<p>Параметры выравнивания также доступны в окне <b>Абзац - дополнительные параметры</b>.</p>
|
||||
<p>Параметры выравнивания также доступны в окне <b>Абзац - дополнительные параметры</b>:</p>
|
||||
<ol>
|
||||
<li>щелкните по тексту правой кнопкой мыши и выберите в контекстном меню опцию <b>Дополнительные параметры абзаца</b> или используйте опцию <b>Дополнительные параметры</b> на правой боковой панели,</li>
|
||||
<li>откройте окно <b>Абзац - дополнительные параметры</b>, перейдите на вкладку <b>Отступы и интервалы</b>,</li>
|
||||
|
|
|
@ -18,11 +18,11 @@
|
|||
<h3>Вставка диаграммы</h3>
|
||||
<p>Для вставки диаграммы в документ:</p>
|
||||
<ol>
|
||||
<li>установите курсор там, где требуется поместить диаграмму,</li>
|
||||
<li>перейдите на вкладку <b>Вставка</b> верхней панели инструментов,</li>
|
||||
<li>щелкните по значку <div class = "icon icon-insertchart"></div> <b>Диаграмма</b> на верхней панели инструментов,</li>
|
||||
<li>Установите курсор там, где требуется поместить диаграмму.</li>
|
||||
<li>Перейдите на вкладку <b>Вставка</b> верхней панели инструментов.</li>
|
||||
<li>Щелкните по значку <div class = "icon icon-insertchart"></div> <b>Диаграмма</b> на верхней панели инструментов.</li>
|
||||
<li>
|
||||
выберите из доступных типов диаграммы:
|
||||
Выберите из доступных типов диаграммы:
|
||||
<details class="details-example">
|
||||
<summary>Гистограмма</summary>
|
||||
<ul>
|
||||
|
@ -99,7 +99,7 @@
|
|||
<p class="note"><b>Примечание</b>: <b>Редактор документов ONLYOFFICE</b> поддерживает следующие типы диаграмм, созданных в сторонних редакторах: <b>Пирамида</b>, <b>Гистограмма (пирамида)</b>, <b>Горизонтальные/Вертикальные цилиндры</b>, <b>Горизонтальные/вертикальные конусы</b>. Вы можете открыть файл, содержащий такую диаграмму, и изменить его, используя доступные инструменты редактирования диаграмм.</p>
|
||||
</li>
|
||||
<li>
|
||||
после этого появится окно <b>Редактор диаграмм</b>, в котором можно ввести в ячейки необходимые данные при помощи следующих элементов управления:
|
||||
После этого появится окно <b>Редактор диаграмм</b>, в котором можно ввести в ячейки необходимые данные при помощи следующих элементов управления:
|
||||
<ul>
|
||||
<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>
|
||||
|
@ -153,13 +153,13 @@
|
|||
</ol>
|
||||
</li>
|
||||
<li>
|
||||
измените параметры диаграммы, нажав на кнопку <b>Изменить тип диаграммы</b> в окне <b>Редактор диаграмм</b>, чтобы выбрать тип и стиль диаграммы. Выберите диаграмму из доступных разделов: гистограмма, график, круговая, линейчатая, с областями, биржевая, точечная, комбинированные.
|
||||
Измените параметры диаграммы, нажав на кнопку <b>Изменить тип диаграммы</b> в окне <b>Редактор диаграмм</b>, чтобы выбрать тип и стиль диаграммы. Выберите диаграмму из доступных разделов: гистограмма, график, круговая, линейчатая, с областями, биржевая, точечная, комбинированные.
|
||||
<p><img alt="Окно Тип диаграммы" src="../../../../../../common/main/resources/help/ru/images/charttype.png" /></p>
|
||||
<p>Когда вы выбираете <b>Комбинированные диаграммы</b>, в окне <b>Тип диаграммы</b> расположены ряды диаграмм, для которых можно выбрать типы диаграмм и данные для размещения на вторичной оси.</p>
|
||||
<p><img alt="Chart Type Combo" src="../../../../../../common/main/resources/help/ru/images/charttype_combo.png" /></p>
|
||||
</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>На вкладке <b>Макет</b> можно изменить расположение элементов диаграммы:</p>
|
||||
<ul>
|
||||
|
@ -187,7 +187,7 @@
|
|||
Определите параметры <b>Подписей данных</b> (то есть текстовых подписей, показывающих точные значения элементов данных):<br />
|
||||
<ul>
|
||||
<li>
|
||||
укажите местоположение <b>Подписей данных</b> относительно элементов данных, выбрав нужную опцию из выпадающего списка. Доступные варианты зависят от выбранного типа диаграммы.
|
||||
Укажите местоположение <b>Подписей данных</b> относительно элементов данных, выбрав нужную опцию из выпадающего списка. Доступные варианты зависят от выбранного типа диаграммы.
|
||||
<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>, <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>
|
||||
</ul>
|
||||
</li>
|
||||
<li>выберите данные, которые вы хотите включить в ваши подписи, поставив соответствующие флажки: <b>Имя ряда</b>, <b>Название категории</b>, <b>Значение</b>,</li>
|
||||
<li>введите символ (запятая, точка с запятой и т.д.), который вы хотите использовать для разделения нескольких подписей, в поле <b>Разделитель подписей данных</b>.</li>
|
||||
<li>Выберите данные, которые вы хотите включить в ваши подписи, поставив соответствующие флажки: <b>Имя ряда</b>, <b>Название категории</b>, <b>Значение</b>,</li>
|
||||
<li>Введите символ (запятая, точка с запятой и т.д.), который вы хотите использовать для разделения нескольких подписей, в поле <b>Разделитель подписей данных</b>.</li>
|
||||
</ul>
|
||||
</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 class="note"><b>Примечание</b>: <b>Параметры оси</b> и <b>Линии сетки</b> недоступны для круговых диаграмм, так как у круговых диаграмм нет осей и линий сетки.</p>
|
||||
<ul>
|
||||
<li>нажмите <b>Скрыть ось</b>, чтобы скрыть вертикальную ось на диаграмме.</li>
|
||||
<li>Нажмите <b>Скрыть ось</b>, чтобы скрыть вертикальную ось на диаграмме.</li>
|
||||
<li>
|
||||
укажите ориентацию <b>Заголовка</b>, выбрав нужный вариант из раскрывающегося списка:
|
||||
Укажите ориентацию <b>Заголовка</b>, выбрав нужный вариант из раскрывающегося списка:
|
||||
<ul>
|
||||
<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>Вкладка <b>Горизонтальная ось</b> позволяет изменять параметры горизонтальной оси, также называемой осью категорий или осью x, которая отображает текстовые метки. Обратите внимание, что горизонтальная ось будет осью значений, которая отображает числовые значения для <b>Гистограмм</b>, поэтому в этом случае параметры вкладки <b>Горизонтальная ось</b> будут соответствовать параметрам, описанным в предыдущем разделе. Для <b>Точечных диаграмм</b> обе оси являются осями значений.</p>
|
||||
<ul>
|
||||
<li>нажмите <b>Скрыть ось</b>, чтобы скрыть горизонтальную ось на диаграмме.</li>
|
||||
<li>Нажмите <b>Скрыть ось</b>, чтобы скрыть горизонтальную ось на диаграмме.</li>
|
||||
<li>
|
||||
укажите ориентацию <b>Заголовка</b>, выбрав нужный вариант из раскрывающегося списка:
|
||||
Укажите ориентацию <b>Заголовка</b>, выбрав нужный вариант из раскрывающегося списка:
|
||||
<ul>
|
||||
<li><b>Нет</b> - не отображать заголовок горизонтальной оси,</li>
|
||||
<li><b>Без наложения</b> - отображать заголовок под горизонтальной осью,</li>
|
||||
|
|
|
@ -524,3 +524,110 @@ table {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
#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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Redaktə rejimini təyin edin...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Xəta",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Актывацыя рэжыму рэдагавання…",
|
||||
"uploadImageTextText": "Запампоўванне выявы…",
|
||||
"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": {
|
||||
"criticalErrorTitle": "Памылка",
|
||||
|
|
|
@ -444,7 +444,10 @@
|
|||
"txtEditingMode": "Set editing mode...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Error",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Estableix el mode d'edició ...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Error",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Nastavit režim úprav…",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Chyba",
|
||||
|
|
|
@ -444,7 +444,10 @@
|
|||
"txtEditingMode": "Set editing mode...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Error",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Bearbeitungsmodul wird festgelegt...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Fehler",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Ορισμός κατάστασης επεξεργασίας...",
|
||||
"uploadImageTextText": "Μεταφόρτωση εικόνας...",
|
||||
"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": {
|
||||
"criticalErrorTitle": "Σφάλμα",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Set editing mode...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Error",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Establecer el modo de edición...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Error",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Ezarri edizio modua...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Errorea",
|
||||
|
|
|
@ -444,7 +444,10 @@
|
|||
"txtEditingMode": "Set editing mode...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Error",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Réglage mode d'édition...",
|
||||
"uploadImageTextText": "Chargement d'une image en cours...",
|
||||
"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": {
|
||||
"criticalErrorTitle": "Erreur",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Establecer o modo de edición...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Erro",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Szerkesztési mód beállítása...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Hiba",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Սահմանել ցուցակի խմբագրում․․․",
|
||||
"uploadImageTextText": "Նկարի վերբեռնում...",
|
||||
"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": {
|
||||
"criticalErrorTitle": "Սխալ",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Atur mode editing...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Kesalahan",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Impostare la modalità di modifica...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Errore",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "編集モードを設定します...",
|
||||
"uploadImageTextText": "イメージのアップロード中...",
|
||||
"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": {
|
||||
"criticalErrorTitle": "エラー",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "편집 모드 설정 ...",
|
||||
"uploadImageTextText": "이미지 업로드 중 ...",
|
||||
"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": {
|
||||
"criticalErrorTitle": "오류",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "ຕັ້ງຄ່າຮູບແບບການແກ້ໄຂ...",
|
||||
"uploadImageTextText": "ກໍາລັງອັບໂຫລດຮູບພາບ...",
|
||||
"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": {
|
||||
"criticalErrorTitle": "ຂໍ້ຜິດພາດ",
|
||||
|
|
|
@ -444,7 +444,10 @@
|
|||
"txtEditingMode": "Set editing mode...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Error",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Tetapkan mod pengeditan…",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Ralat",
|
||||
|
|
|
@ -444,7 +444,10 @@
|
|||
"txtEditingMode": "Set editing mode...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Error",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Bewerkmodus instellen...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Fout",
|
||||
|
|
|
@ -444,7 +444,10 @@
|
|||
"txtEditingMode": "Set editing mode...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Error",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Definir modo de edição…",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Erro",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Definir modo de edição...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Erro",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Setare modul de editare...",
|
||||
"uploadImageTextText": "Î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": {
|
||||
"criticalErrorTitle": "Eroare",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Установка режима редактирования...",
|
||||
"uploadImageTextText": "Загрузка рисунка...",
|
||||
"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": {
|
||||
"criticalErrorTitle": "Ошибка",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Nastaviť režim úprav ...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Chyba",
|
||||
|
|
|
@ -671,7 +671,10 @@
|
|||
"txtEditingMode": "Set editing mode...",
|
||||
"uploadImageTextText": "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": {
|
||||
"dlgLeaveMsgText": "You have unsaved changes. Click 'Stay on this Page' to wait for autosave. Click 'Leave this Page' to discard all the unsaved changes.",
|
||||
|
|
|
@ -444,7 +444,10 @@
|
|||
"txtEditingMode": "Set editing mode...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Error",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Düzenleme modunu belirle...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Hata",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "Встановити режим редагування ...",
|
||||
"uploadImageTextText": "Завантаження зображення...",
|
||||
"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": {
|
||||
"criticalErrorTitle": "Помилка",
|
||||
|
|
|
@ -444,7 +444,10 @@
|
|||
"txtEditingMode": "Set editing mode...",
|
||||
"uploadImageTextText": "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": {
|
||||
"criticalErrorTitle": "Error",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "設定編輯模式...",
|
||||
"uploadImageTextText": "正在上傳圖片...",
|
||||
"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": {
|
||||
"criticalErrorTitle": "錯誤",
|
||||
|
|
|
@ -443,7 +443,10 @@
|
|||
"txtEditingMode": "设置编辑模式..",
|
||||
"uploadImageTextText": "上传图片...",
|
||||
"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": {
|
||||
"criticalErrorTitle": "错误",
|
||||
|
|
|
@ -29,6 +29,7 @@ const LongActionsController = inject('storeAppOptions')(({storeAppOptions}) => {
|
|||
api.asc_registerCallback('asc_onStartAction', onLongActionBegin);
|
||||
api.asc_registerCallback('asc_onEndAction', onLongActionEnd);
|
||||
api.asc_registerCallback('asc_onOpenDocumentProgress', onOpenDocument);
|
||||
api.asc_registerCallback('asc_onConfirmAction', onConfirmAction);
|
||||
};
|
||||
|
||||
const api = Common.EditorApi.get();
|
||||
|
@ -45,6 +46,7 @@ const LongActionsController = inject('storeAppOptions')(({storeAppOptions}) => {
|
|||
api.asc_unregisterCallback('asc_onStartAction', onLongActionBegin);
|
||||
api.asc_unregisterCallback('asc_onEndAction', onLongActionEnd);
|
||||
api.asc_unregisterCallback('asc_onOpenDocumentProgress', onOpenDocument);
|
||||
api.asc_unregisterCallback('asc_onConfirmAction', onConfirmAction);
|
||||
}
|
||||
|
||||
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) => {
|
||||
if (loadMask && loadMask.el) {
|
||||
const $title = loadMask.el.getElementsByClassName('dialog-title')[0];
|
||||
|
|
|
@ -256,8 +256,6 @@ class MainController extends Component {
|
|||
|
||||
this.updateWindowTitle(true);
|
||||
|
||||
this.api.SetTextBoxInputMode(LocalStorage.getBool("de-settings-inputmode"));
|
||||
|
||||
value = LocalStorage.getBool("de-mobile-no-characters");
|
||||
appSettings.changeNoCharacters(value);
|
||||
this.api.put_ShowParaMarks(value);
|
||||
|
|
|
@ -4,7 +4,7 @@ const EditorUIController = () => {
|
|||
};
|
||||
|
||||
EditorUIController.isSupportEditFeature = () => {
|
||||
return false
|
||||
return true
|
||||
};
|
||||
|
||||
EditorUIController.getToolbarOptions = () => {
|
||||
|
|
|
@ -527,7 +527,7 @@ const EditShape = props => {
|
|||
|
||||
if (controlProps) {
|
||||
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);
|
||||
|
|
|
@ -152,6 +152,7 @@ require([
|
|||
'Main',
|
||||
'ViewTab',
|
||||
'Search',
|
||||
'Print',
|
||||
'Common.Controllers.Fonts',
|
||||
'Common.Controllers.History'
|
||||
/** coauthoring begin **/
|
||||
|
@ -182,6 +183,7 @@ require([
|
|||
'presentationeditor/main/app/controller/Main',
|
||||
'presentationeditor/main/app/controller/ViewTab',
|
||||
'presentationeditor/main/app/controller/Search',
|
||||
'presentationeditor/main/app/controller/Print',
|
||||
'presentationeditor/main/app/view/FileMenuPanels',
|
||||
'presentationeditor/main/app/view/ParagraphSettings',
|
||||
'presentationeditor/main/app/view/ImageSettings',
|
||||
|
|
|
@ -107,6 +107,7 @@ define([
|
|||
if ( !this.leftMenu.panelHistory.isVisible() )
|
||||
this.clickMenuFileItem(null, 'history');
|
||||
}, this));
|
||||
Common.NotificationCenter.on('file:print', _.bind(this.clickToolbarPrint, this));
|
||||
},
|
||||
|
||||
onLaunch: function() {
|
||||
|
@ -271,6 +272,7 @@ define([
|
|||
this.showHistory();
|
||||
}
|
||||
break;
|
||||
case 'external-help': close_menu = true; break;
|
||||
default: close_menu = false;
|
||||
}
|
||||
|
||||
|
@ -332,10 +334,6 @@ define([
|
|||
},
|
||||
|
||||
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");
|
||||
/** coauthoring begin **/
|
||||
if (this.mode.isEdit && !this.mode.isOffline && this.mode.canCoAuthoring) {
|
||||
|
@ -351,7 +349,7 @@ define([
|
|||
}
|
||||
/** 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);
|
||||
this.api.asc_setDefaultBlitMode(value);
|
||||
|
||||
|
@ -768,6 +766,13 @@ define([
|
|||
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',
|
||||
newDocumentTitle : 'Unnamed document',
|
||||
requestEditRightsText : 'Requesting editing rights...',
|
||||
|
|
|
@ -844,14 +844,11 @@ define([
|
|||
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_onPrint', _.bind(me.onPrint, me));
|
||||
me.api.asc_registerCallback('asc_onConfirmAction', _.bind(me.onConfirmAction, me));
|
||||
|
||||
appHeader.setDocumentCaption( me.api.asc_getDocumentName() );
|
||||
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);
|
||||
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.");
|
||||
}
|
||||
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.canForcesave = this.appOptions.isEdit && !this.appOptions.isOffline && (typeof (this.editorConfig.customization) == 'object' && !!this.editorConfig.customization.forcesave);
|
||||
this.appOptions.forcesave = this.appOptions.canForcesave;
|
||||
|
@ -1300,6 +1300,9 @@ define([
|
|||
toolbarController.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_onDownloadUrl', _.bind(this.onDownloadUrl, this));
|
||||
this.api.asc_registerCallback('asc_onDocumentModifiedChanged', _.bind(this.onDocumentModifiedChanged, this));
|
||||
|
@ -1925,6 +1928,7 @@ define([
|
|||
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.getApplication().getController('RightMenu').updateMetricUnit();
|
||||
this.appOptions.canPreviewPrint && this.getApplication().getController('Print').getView('PrintWithPreview').updateMetricUnit();
|
||||
},
|
||||
|
||||
updateThemeColors: function() {
|
||||
|
@ -2178,9 +2182,7 @@ define([
|
|||
|
||||
onPrint: function() {
|
||||
if (!this.appOptions.canPrint || Common.Utils.ModalWindow.isVisible()) return;
|
||||
|
||||
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.NotificationCenter.trigger('file:print');
|
||||
Common.component.Analytics.trackEvent('Print');
|
||||
},
|
||||
|
||||
|
@ -2213,6 +2215,39 @@ define([
|
|||
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) {
|
||||
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
|
||||
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',
|
||||
|
@ -2983,7 +3036,11 @@ define([
|
|||
textLearnMore: 'Learn More',
|
||||
textReconnect: 'Connection is restored',
|
||||
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 || {}))
|
||||
});
|
||||
|
|
348
apps/presentationeditor/main/app/controller/Print.js
Normal 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 || {}));
|
||||
});
|