Merge branch 'staging' into padcsp

pull/1/head
yflory 4 years ago
commit 9d2b2ac13c

@ -1,3 +1,32 @@
# Thylacine's revenge (3.19.1)
Our upcoming 3.20.0 release is planned for July 7th, 2020, but we are once again releasing a minor version featuring some nice bug fixes and usability improvements which are ready to be deployed now. In case you missed [our announcement](https://social.weho.st/@cryptpad/104360490068671089) we are phasing out our usage of the `master` and basing our releases on the `main` branch. For best results we recommend explicitly checking out code by its tag.
New features:
* We've spent a little time making support tickets a little bit easier for both users and admins.
* Users can now label their tickets with a set of predefined categories, making it easier for admins to sort through related reports.
* Users and admins can both attach encrypted uploads to their messages, making it easier to demonstrate a problem with an image, video, or other example file.
* Teams now take advantage of the same "mailbox" functionality that powers user accounts' notification center. Team members with the "viewer" role can now use this feature to share documents with their team using the "share menu" as they already can with other users. Anyone with the ability to add a document to the team's drive will then be able to receive the notification and add the document to the team's drive for them. Going forward we'll use this functionality to implement more behaviour to make teams function more like shared user accounts.
* The "pad creation screen" which is displayed to registered users when they first create a pad will no longer remember the settings used when they last created a pad. While this behaviour was intended to streamline the process of creating documents, in practice it led to some user's documents getting deleted because they didn't realize they were set to automatically expire. If you prefer not to use the defaults (owned, non-expiring) then you'll have to click a few more times to create a document, but we think that's a worthwhile tradeoff to avoid data loss.
Bug fixes:
* Hitting _ctrl-A_ in the drive used to select lots of the page's elements which had no business being selected. Now it will select the contents of the directory currently being displayed.
* Due to some complications in OnlyOffice (which we use for spreadsheets) remote updates made to a sheet were not displayed for users who had opened the document in "view mode". We still don't have the means to apply these remote changes in real-time, but we now prompt users to click a button to refresh the editor (not the full page) to display the latest document state.
* A recent update set the text color of the team chat input to 'white', matching the input's background and making the text unreadable. We patched it to make it black text on a white background.
* We're slowly working on improving keyboard shortcuts for a variety of actions. This time around we fixed a bug that prevented "ESC" from closing an open "tag prompt" interface.
* We noticed that the zip file constructed in the browser when you downloaded a subtree of a shared folder in your drive contained the correct directory structure but did not contain the files that were supposed to be there. This has been fixed.
* Finally, we've tweaked our styles to use more specific CSS selectors to prevent a variety of styles from being accidentally applied to the wrong elements. This should make the platform a little easier to maintain and help us improve the visual consistency of a variety of elements on different pages.
To update from 3.19.0 to 3.19.1:
1. Stop your server
2. Get the latest code with `git checkout 3.19.1`
3. Restart your server
If you're updating from anything other than 3.19.0 you may need other clientside dependencies (available with `bower update` and `npm i`).
# Thylacine release (3.19.0)
## Goals

@ -62,7 +62,7 @@ define([
var imprintUrl = AppConfig.imprint && (typeof(AppConfig.imprint) === "boolean" ?
'/imprint.html' : AppConfig.imprint);
Pages.versionString = "CryptPad v3.19.0 (Thylacine)";
Pages.versionString = "CryptPad v3.19.1 (Thylacine's revenge)";
// used for the about menu
Pages.imprintLink = AppConfig.imprint ? footLink(imprintUrl, 'imprint') : undefined;

@ -2,9 +2,11 @@
@import (reference) "../include/colortheme-all.less";
@import (reference) "../include/alertify.less";
@import (reference) "../include/checkmark.less";
@import (reference) "../include/forms.less";
&.cp-page-register {
.infopages_main();
.forms_main();
.alertify_main();
.checkmark_main(20px);

2
package-lock.json generated

@ -1,6 +1,6 @@
{
"name": "cryptpad",
"version": "3.19.0",
"version": "3.19.1",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

@ -1,7 +1,7 @@
{
"name": "cryptpad",
"description": "realtime collaborative visual editor with zero knowlege server",
"version": "3.19.0",
"version": "3.19.1",
"license": "AGPL-3.0+",
"repository": {
"type": "git",

@ -10,7 +10,7 @@ nThen(function (w) {
config.log = _log;
}));
}).nThen(function (w) {
FileStorage.create(config, w(function (_store) {
FileStorage.create(config, w(function (err, _store) {
config.store = _store;
// config.taskPath

@ -647,9 +647,6 @@ define([
var $ok = $(ok).click(function (ev) { close(true, ev); });
var $cancel = $(cancel).click(function (ev) { close(false, ev); });
if (opt.cancelClass) { $cancel.addClass(opt.cancelClass); }
if (opt.okClass) { $ok.addClass(opt.okClass); }
listener = listenForKeys(function () {
$ok.click();
}, function () {

@ -2155,6 +2155,11 @@ define([
'class': 'fa fa-caret-down',
}).prependTo($button);
}
if (config.angleDown) {
$('<span>', {
'class': 'fa fa-angle-down',
}).prependTo($button);
}
// Menu
var $innerblock = $('<div>', {'class': 'cp-dropdown-content'});

@ -1604,6 +1604,26 @@ define([
var allocated = Login.allocateBytes(bytes);
blockKeys = allocated.blockKeys;
}));
}).nThen(function (waitFor) {
var blockUrl = Block.getBlockUrl(blockKeys);
// Check whether there is a block at that location
Util.fetch(blockUrl, waitFor(function (err, block) {
// If there is no block or the block is invalid, continue.
if (err) {
console.log("no block found");
return;
}
var decryptedBlock = Block.decrypt(block, blockKeys);
if (!decryptedBlock) {
console.error("Found a login block but failed to decrypt");
return;
}
// If there is already a valid block, abort! We risk overriding another user's data
waitFor.abort();
cb({ error: 'EEXISTS' });
}));
}).nThen(function (waitFor) {
// Write the new login block
var temp = {

@ -500,7 +500,7 @@ define([
}, 500);
progress(0, 0);*/
}).nThen(function () {
Realtime.whenRealtimeSyncs(store.realtime, Util.bake(cb));
Realtime.whenRealtimeSyncs(store.realtime, Util.mkAsync(Util.bake(cb)));
});
};
});

@ -1123,6 +1123,9 @@ define([
if (ifr) { ifr.remove(); }
};
APP.UploadImageFiles = function (files, type, id, jwt, cb) {
cb('NO');
};
APP.AddImage = function(cb1, cb2) {
APP.AddImageSuccessCallback = cb1;
APP.AddImageErrorCallback = cb2;

@ -624,10 +624,10 @@ url+'" method="POST" enctype="multipart/form-data"><input id="apiiuFile" name="a
ValidateUploadImage(e.target.files);if(c_oAscServerError.NoError!=nError){callbackOld(mapAscServerErrorToAscError(nError));return}}callbackOld(Asc.c_oAscError.ID.No);fileSubmit.click()}}if(AscBrowser.isOpera)setTimeout(function(){fileName.click()},0);else fileName.click()}function InitDragAndDrop(oHtmlElement,callback){if("undefined"!=typeof FileReader&&null!=oHtmlElement){oHtmlElement["ondragover"]=function(e){e.preventDefault();e.dataTransfer.dropEffect=CanDropFiles(e)?"copy":"none";if(e.dataTransfer.dropEffect==
"copy"){var editor=window["Asc"]["editor"]?window["Asc"]["editor"]:window.editor;editor.beginInlineDropTarget(e)}return false};oHtmlElement["ondrop"]=function(e){e.preventDefault();var files=e.dataTransfer.files;var nError=ValidateUploadImage(files);var editor=window["Asc"]["editor"]?window["Asc"]["editor"]:window.editor;editor.endInlineDropTarget(e);if(nError==c_oAscServerError.UploadCountFiles){try{var htmlValue=e.dataTransfer.getData("text/html");if(htmlValue&&!AscCommon.AscBrowser.isIE){var index=
htmlValue.indexOf("StartHTML");var indexHtml=htmlValue.indexOf("<html");if(-1==indexHtml)indexHtml=htmlValue.indexOf("<HTML");if(index>0&&indexHtml>0&&index<indexHtml)htmlValue=htmlValue.substr(indexHtml);editor["pluginMethod_PasteHtml"](htmlValue);return}}catch(err){}try{var textValue=e.dataTransfer.getData("text/plain");if(textValue){editor["pluginMethod_PasteText"](textValue);return}}catch(err$11){}try{var textValue=e.dataTransfer.getData("Text");if(textValue){editor["pluginMethod_PasteText"](textValue);
return}}catch(err$12){}}callback(mapAscServerErrorToAscError(nError),files)}}}function UploadImageFiles(files,documentId,documentUserId,jwt,callback){window.parent.APP.UploadImageFiles(files,documentId,documentUserId,jwt,callback);return;if(files.length>0){var url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+="?token="+encodeURIComponent(jwt);var aFiles=[];for(var i=files.length-1;i>-1;--i)aFiles.push(files[i]);var file=aFiles.pop();var aResultUrls=
[];var fOnReadyChnageState=function(){if(4==this.readyState)if(this.status==200||this.status==1223){var urls=JSON.parse(this.responseText);g_oDocumentUrls.addUrls(urls);for(var i in urls)if(urls.hasOwnProperty(i)){aResultUrls.push(urls[i]);break}if(aFiles.length===0)callback(Asc.c_oAscError.ID.No,aResultUrls);else{file=aFiles.pop();var xhr=new XMLHttpRequest;url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+="?token="+encodeURIComponent(jwt);
xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type",file.type||"application/octet-stream");xhr.onreadystatechange=fOnReadyChnageState;xhr.send(file)}}else callback(Asc.c_oAscError.ID.UplImageFileCount)};var xhr=new XMLHttpRequest;xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type",file.type||"application/octet-stream");xhr.onreadystatechange=fOnReadyChnageState;xhr.send(file)}else callback(Asc.c_oAscError.ID.UplImageFileCount)}function UploadImageUrls(files,documentId,documentUserId,
jwt,callback){if(files.length>0){var url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+="?token="+encodeURIComponent(jwt);var aFiles=[];for(var i=files.length-1;i>-1;--i)aFiles.push(files[i]);var file=aFiles.pop();var aResultUrls=[];var fOnReadyChnageState=function(){if(4==this.readyState)if(this.status==200||this.status==1223){var urls=JSON.parse(this.responseText);g_oDocumentUrls.addUrls(urls);for(var i in urls)if(urls.hasOwnProperty(i)){aResultUrls.push({path:i,
return}}catch(err$12){}}callback(mapAscServerErrorToAscError(nError),files)}}}function UploadImageFiles(files,documentId,documentUserId,jwt,callback){window.parent.APP.UploadImageFiles(files,documentId,documentUserId,jwt,function(err,urls){callback(err||Asc.c_oAscError.ID.No,urls)});return;if(files.length>0){var url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+="?token="+encodeURIComponent(jwt);var aFiles=[];for(var i=files.length-1;i>-1;--i)aFiles.push(files[i]);
var file=aFiles.pop();var aResultUrls=[];var fOnReadyChnageState=function(){if(4==this.readyState)if(this.status==200||this.status==1223){var urls=JSON.parse(this.responseText);g_oDocumentUrls.addUrls(urls);for(var i in urls)if(urls.hasOwnProperty(i)){aResultUrls.push(urls[i]);break}if(aFiles.length===0)callback(Asc.c_oAscError.ID.No,aResultUrls);else{file=aFiles.pop();var xhr=new XMLHttpRequest;url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+=
"?token="+encodeURIComponent(jwt);xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type",file.type||"application/octet-stream");xhr.onreadystatechange=fOnReadyChnageState;xhr.send(file)}}else callback(Asc.c_oAscError.ID.UplImageFileCount)};var xhr=new XMLHttpRequest;xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type",file.type||"application/octet-stream");xhr.onreadystatechange=fOnReadyChnageState;xhr.send(file)}else callback(Asc.c_oAscError.ID.UplImageFileCount)}function UploadImageUrls(files,
documentId,documentUserId,jwt,callback){if(files.length>0){var url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+="?token="+encodeURIComponent(jwt);var aFiles=[];for(var i=files.length-1;i>-1;--i)aFiles.push(files[i]);var file=aFiles.pop();var aResultUrls=[];var fOnReadyChnageState=function(){if(4==this.readyState)if(this.status==200||this.status==1223){var urls=JSON.parse(this.responseText);g_oDocumentUrls.addUrls(urls);for(var i in urls)if(urls.hasOwnProperty(i)){aResultUrls.push({path:i,
url:urls[i]});break}if(aFiles.length===0)callback(aResultUrls);else{file=aFiles.pop();var xhr=new XMLHttpRequest;url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+="?token="+encodeURIComponent(jwt);xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type",file.type||"application/octet-stream");xhr.onreadystatechange=fOnReadyChnageState;xhr.send(file)}}else callback([])};var xhr=new XMLHttpRequest;xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type",
file.type||"application/octet-stream");xhr.onreadystatechange=fOnReadyChnageState;xhr.send(file)}else callback(Asc.c_oAscError.ID.UplImageFileCount)}function ValidateUploadImage(files){var nRes=c_oAscServerError.NoError;if(files.length>0)for(var i=0,length=files.length;i<length;i++){var file=files[i];var sName=file.fileName||file.name;if(sName){var bSupported=false;var ext=GetFileExtension(sName);if(null!==ext)for(var j=0,length2=c_oAscImageUploadProp.SupportedFormats.length;j<length2;j++)if(c_oAscImageUploadProp.SupportedFormats[j]==
ext){bSupported=true;break}if(false==bSupported)nRes=c_oAscServerError.UploadExtension}if(Asc.c_oAscError.ID.No==nRes){var nSize=file.fileSize||file.size;if(nSize&&c_oAscImageUploadProp.MaxFileSize<nSize)nRes=c_oAscServerError.UploadContentLength}if(c_oAscServerError.NoError!=nRes)break}else nRes=c_oAscServerError.UploadCountFiles;return nRes}function CanDropFiles(event){var editor=window["Asc"]["editor"]?window["Asc"]["editor"]:window.editor;if(!editor.isEnabledDropTarget())return false;var bRes=

@ -9413,11 +9413,11 @@ newCDocument;drawingObject.graphicObject.graphicObject.Set_Parent(newCDocument);
node,isIntoShape);else window["AscCommon"].g_specialPasteHelper.Paste_Process_End()};worksheet.objectRender.controller.checkSelectedObjectsAndCallback2(callback);return}if(copyPasteUseBinary){this.activeRange=worksheet.model.selectionRange.getLast().clone();binaryResult=this._pasteFromBinaryClassHtml(worksheet,node,isIntoShape);if(binaryResult===true)return;else if(binaryResult!==false&&binaryResult!=undefined)node=binaryResult}this.activeRange=worksheet.model.selectionRange.getLast().clone();var callBackAfterLoadImages=
function(){History.TurnOff();var oTempDrawingDocument=worksheet.model.DrawingDocument;var newCDocument=new CDocument(oTempDrawingDocument,false);newCDocument.bFromDocument=true;newCDocument.Content[0].bFromDocument=true;newCDocument.theme=window["Asc"]["editor"].wbModel.theme;var oOldLogicDocument=oTempDrawingDocument.m_oLogicDocument;oTempDrawingDocument.m_oLogicDocument=newCDocument;var oOldEditor=undefined;if("undefined"!==typeof editor)oOldEditor=editor;editor={WordControl:oTempDrawingDocument,
isDocumentEditor:true};var oPasteProcessor=new AscCommon.PasteProcessor({WordControl:{m_oLogicDocument:newCDocument},FontLoader:{}},false,false);oPasteProcessor._Prepeare_recursive(node,true,true);if(window["AscCommon"].g_specialPasteHelper.specialPasteStart&&window["AscCommon"].g_specialPasteHelper.specialPasteData.aContent)oPasteProcessor.aContent=window["AscCommon"].g_specialPasteHelper.specialPasteData.aContent;else{oPasteProcessor._Execute(node,{},true,true,false);window["AscCommon"].g_specialPasteHelper.specialPasteData.aContent=
oPasteProcessor.aContent}editor=oOldEditor;oTempDrawingDocument.m_oLogicDocument=oOldLogicDocument;History.TurnOn();var oPasteFromBinaryWord=new pasteFromBinaryWord(t,worksheet);oPasteFromBinaryWord._paste(worksheet,{content:oPasteProcessor.aContent})};var aImagesToDownload=this._getImageFromHtml(node,true);var specialPasteProps=window["AscCommon"].g_specialPasteHelper.specialPasteProps;if(aImagesToDownload!==null&&(!specialPasteProps||specialPasteProps&&specialPasteProps.images)){var api=Asc["editor"];
AscCommon.sendImgUrls(api,aImagesToDownload,function(data){for(var i=0,length=Math.min(data.length,aImagesToDownload.length);i<length;++i){var elem=data[i];var sFrom=aImagesToDownload[i];if(null!=elem.url)t.oImages[sFrom]=AscCommon.g_oDocumentUrls.imagePath2Local(elem.path);else t.oImages[sFrom]=sFrom}t.alreadyLoadImagesOnServer=true;callBackAfterLoadImages()},true)}else callBackAfterLoadImages()},_pasteFromBinaryClassHtml:function(worksheet,node,isIntoShape){var base64=null,base64FromWord=null,base64FromPresentation=
null,t=this;var returnBinary=this._getClassBinaryFromHtml(node);base64=returnBinary.base64;base64FromWord=returnBinary.base64FromWord;base64FromPresentation=returnBinary.base64FromPresentation;var result=false;if(base64!=null)result=this._pasteFromBinaryExcel(worksheet,base64,isIntoShape);else if(base64FromWord)result=this._pasteFromBinaryWord(worksheet,base64FromWord,isIntoShape);else if(base64FromPresentation)result=this._pasteFromBinaryPresentation(worksheet,base64FromPresentation,isIntoShape);
return result},_getClassBinaryFromHtml:function(node){var base64=null,base64FromWord=null,base64FromPresentation=null;var classNode=AscCommon.searchBinaryClass(node);if(classNode!=null){var cL=classNode.split(" ");for(var i=0;i<cL.length;i++)if(cL[i].indexOf("xslData;")>-1)base64=cL[i].split("xslData;")[1];else if(cL[i].indexOf("docData;")>-1)base64FromWord=cL[i].split("docData;")[1];else if(cL[i].indexOf("pptData;")>-1)base64FromPresentation=cL[i].split("pptData;")[1]}return{base64:base64,base64FromWord:base64FromWord,
base64FromPresentation:base64FromPresentation}},_getImageFromHtml:function(html,isGetUrlsArray){var res=null;if(html){var allImages=html.getElementsByTagName("img");if(allImages&&allImages.length)if(isGetUrlsArray){var arrayImages=[];for(var i=0;i<allImages.length;i++)arrayImages[i]=allImages[i].src;res=arrayImages}else res=allImages}return res},_getBinaryColor:function(c){var bin,m,x,type,r,g,b,a,s;var reColor=/^\s*(?:#?([0-9a-f]{6})|#?([0-9a-f]{3})|rgba?\s*\(\s*((?:\d*\.?\d+)(?:\s*,\s*(?:\d*\.?\d+)){2,3})\s*\))\s*$/i;
oPasteProcessor.aContent}editor=oOldEditor;oTempDrawingDocument.m_oLogicDocument=oOldLogicDocument;History.TurnOn();var oPasteFromBinaryWord=new pasteFromBinaryWord(t,worksheet);oPasteFromBinaryWord._paste(worksheet,{content:oPasteProcessor.aContent})};var aImagesToDownload=this._getImageFromHtml(node,true);if(aImagesToDownload)return;var specialPasteProps=window["AscCommon"].g_specialPasteHelper.specialPasteProps;if(aImagesToDownload!==null&&(!specialPasteProps||specialPasteProps&&specialPasteProps.images)){var api=
Asc["editor"];AscCommon.sendImgUrls(api,aImagesToDownload,function(data){for(var i=0,length=Math.min(data.length,aImagesToDownload.length);i<length;++i){var elem=data[i];var sFrom=aImagesToDownload[i];if(null!=elem.url)t.oImages[sFrom]=AscCommon.g_oDocumentUrls.imagePath2Local(elem.path);else t.oImages[sFrom]=sFrom}t.alreadyLoadImagesOnServer=true;callBackAfterLoadImages()},true)}else callBackAfterLoadImages()},_pasteFromBinaryClassHtml:function(worksheet,node,isIntoShape){var base64=null,base64FromWord=
null,base64FromPresentation=null,t=this;var returnBinary=this._getClassBinaryFromHtml(node);base64=returnBinary.base64;base64FromWord=returnBinary.base64FromWord;base64FromPresentation=returnBinary.base64FromPresentation;var result=false;if(base64!=null)result=this._pasteFromBinaryExcel(worksheet,base64,isIntoShape);else if(base64FromWord)result=this._pasteFromBinaryWord(worksheet,base64FromWord,isIntoShape);else if(base64FromPresentation)result=this._pasteFromBinaryPresentation(worksheet,base64FromPresentation,
isIntoShape);return result},_getClassBinaryFromHtml:function(node){var base64=null,base64FromWord=null,base64FromPresentation=null;var classNode=AscCommon.searchBinaryClass(node);if(classNode!=null){var cL=classNode.split(" ");for(var i=0;i<cL.length;i++)if(cL[i].indexOf("xslData;")>-1)base64=cL[i].split("xslData;")[1];else if(cL[i].indexOf("docData;")>-1)base64FromWord=cL[i].split("docData;")[1];else if(cL[i].indexOf("pptData;")>-1)base64FromPresentation=cL[i].split("pptData;")[1]}return{base64:base64,
base64FromWord:base64FromWord,base64FromPresentation:base64FromPresentation}},_getImageFromHtml:function(html,isGetUrlsArray){var res=null;if(html){var allImages=html.getElementsByTagName("img");if(allImages&&allImages.length)if(isGetUrlsArray){var arrayImages=[];for(var i=0;i<allImages.length;i++)arrayImages[i]=allImages[i].src;res=arrayImages}else res=allImages}return res},_getBinaryColor:function(c){var bin,m,x,type,r,g,b,a,s;var reColor=/^\s*(?:#?([0-9a-f]{6})|#?([0-9a-f]{3})|rgba?\s*\(\s*((?:\d*\.?\d+)(?:\s*,\s*(?:\d*\.?\d+)){2,3})\s*\))\s*$/i;
if(typeof c==="number")bin=c;else{m=reColor.exec(c);if(!m)return null;if(m[1]){x=[m[1].slice(0,2),m[1].slice(2,4),m[1].slice(4)];type=1}else if(m[2]){x=[m[2].slice(0,1),m[2].slice(1,2),m[2].slice(2)];type=0}else{x=m[3].split(/\s*,\s*/i);type=x.length===3?2:3}r=parseInt(type!==0?x[0]:x[0]+x[0],type<2?16:10);g=parseInt(type!==0?x[1]:x[1]+x[1],type<2?16:10);b=parseInt(type!==0?x[2]:x[2]+x[2],type<2?16:10);a=type===3?Math.round(parseFloat(x[3])*100)*.01:1;bin=r<<16|g<<8|b}return bin},_checkMaxTextLength:function(aResult,
r,c){var result=false;var isChange=false;var currentCellData=aResult.content[r][c];if(currentCellData&&currentCellData.content){currentCellData=currentCellData.content;for(var i=0;i<currentCellData.length;i++)if(currentCellData[i]&&currentCellData[i].text&&currentCellData[i].text.length>c_oAscMaxCellOrCommentLength){isChange=true;var text=currentCellData[i].text;var format=currentCellData[i].format;var lengthOfText=text.length;var iterCount=Math.ceil(lengthOfText/c_oAscMaxCellOrCommentLength);var splitText;
for(var j=0;j<iterCount;j++){splitText=text.substr(c_oAscMaxCellOrCommentLength*j,c_oAscMaxCellOrCommentLength*(j+1));if(!aResult.content[r])aResult.content[r]=[];if(!aResult.content[r][c])aResult.content[r][c]=[];if(!aResult.content[r][c].content)aResult.content[r][c].content=[];aResult.content[r][c].content[0]={format:format,text:splitText};if(iterCount!==j+1)r++}}if(isChange)result={aResult:aResult,r:r,c:c}}return result},_getBorderStyleName:function(borderStyle,borderWidth){var res=null;var nBorderWidth=

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 672 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 650 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 432 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 584 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 519 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

@ -622,10 +622,10 @@ url+'" method="POST" enctype="multipart/form-data"><input id="apiiuFile" name="a
ValidateUploadImage(e.target.files);if(c_oAscServerError.NoError!=nError){callbackOld(mapAscServerErrorToAscError(nError));return}}callbackOld(Asc.c_oAscError.ID.No);fileSubmit.click()}}if(AscBrowser.isOpera)setTimeout(function(){fileName.click()},0);else fileName.click()}function InitDragAndDrop(oHtmlElement,callback){if("undefined"!=typeof FileReader&&null!=oHtmlElement){oHtmlElement["ondragover"]=function(e){e.preventDefault();e.dataTransfer.dropEffect=CanDropFiles(e)?"copy":"none";if(e.dataTransfer.dropEffect==
"copy"){var editor=window["Asc"]["editor"]?window["Asc"]["editor"]:window.editor;editor.beginInlineDropTarget(e)}return false};oHtmlElement["ondrop"]=function(e){e.preventDefault();var files=e.dataTransfer.files;var nError=ValidateUploadImage(files);var editor=window["Asc"]["editor"]?window["Asc"]["editor"]:window.editor;editor.endInlineDropTarget(e);if(nError==c_oAscServerError.UploadCountFiles){try{var htmlValue=e.dataTransfer.getData("text/html");if(htmlValue&&!AscCommon.AscBrowser.isIE){var index=
htmlValue.indexOf("StartHTML");var indexHtml=htmlValue.indexOf("<html");if(-1==indexHtml)indexHtml=htmlValue.indexOf("<HTML");if(index>0&&indexHtml>0&&index<indexHtml)htmlValue=htmlValue.substr(indexHtml);editor["pluginMethod_PasteHtml"](htmlValue);return}}catch(err){}try{var textValue=e.dataTransfer.getData("text/plain");if(textValue){editor["pluginMethod_PasteText"](textValue);return}}catch(err$16){}try{var textValue=e.dataTransfer.getData("Text");if(textValue){editor["pluginMethod_PasteText"](textValue);
return}}catch(err$17){}}callback(mapAscServerErrorToAscError(nError),files)}}}function UploadImageFiles(files,documentId,documentUserId,jwt,callback){window.parent.APP.UploadImageFiles(files,documentId,documentUserId,jwt,callback);return;if(files.length>0){var url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+="?token="+encodeURIComponent(jwt);var aFiles=[];for(var i=files.length-1;i>-1;--i)aFiles.push(files[i]);var file=aFiles.pop();var aResultUrls=
[];var fOnReadyChnageState=function(){if(4==this.readyState)if(this.status==200||this.status==1223){var urls=JSON.parse(this.responseText);g_oDocumentUrls.addUrls(urls);for(var i in urls)if(urls.hasOwnProperty(i)){aResultUrls.push(urls[i]);break}if(aFiles.length===0)callback(Asc.c_oAscError.ID.No,aResultUrls);else{file=aFiles.pop();var xhr=new XMLHttpRequest;url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+="?token="+encodeURIComponent(jwt);
xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type",file.type||"application/octet-stream");xhr.onreadystatechange=fOnReadyChnageState;xhr.send(file)}}else callback(Asc.c_oAscError.ID.UplImageFileCount)};var xhr=new XMLHttpRequest;xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type",file.type||"application/octet-stream");xhr.onreadystatechange=fOnReadyChnageState;xhr.send(file)}else callback(Asc.c_oAscError.ID.UplImageFileCount)}function UploadImageUrls(files,documentId,documentUserId,
jwt,callback){if(files.length>0){var url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+="?token="+encodeURIComponent(jwt);var aFiles=[];for(var i=files.length-1;i>-1;--i)aFiles.push(files[i]);var file=aFiles.pop();var aResultUrls=[];var fOnReadyChnageState=function(){if(4==this.readyState)if(this.status==200||this.status==1223){var urls=JSON.parse(this.responseText);g_oDocumentUrls.addUrls(urls);for(var i in urls)if(urls.hasOwnProperty(i)){aResultUrls.push({path:i,
return}}catch(err$17){}}callback(mapAscServerErrorToAscError(nError),files)}}}function UploadImageFiles(files,documentId,documentUserId,jwt,callback){window.parent.APP.UploadImageFiles(files,documentId,documentUserId,jwt,function(err,urls){callback(err||Asc.c_oAscError.ID.No,urls)});return;if(files.length>0){var url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+="?token="+encodeURIComponent(jwt);var aFiles=[];for(var i=files.length-1;i>-1;--i)aFiles.push(files[i]);
var file=aFiles.pop();var aResultUrls=[];var fOnReadyChnageState=function(){if(4==this.readyState)if(this.status==200||this.status==1223){var urls=JSON.parse(this.responseText);g_oDocumentUrls.addUrls(urls);for(var i in urls)if(urls.hasOwnProperty(i)){aResultUrls.push(urls[i]);break}if(aFiles.length===0)callback(Asc.c_oAscError.ID.No,aResultUrls);else{file=aFiles.pop();var xhr=new XMLHttpRequest;url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+=
"?token="+encodeURIComponent(jwt);xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type",file.type||"application/octet-stream");xhr.onreadystatechange=fOnReadyChnageState;xhr.send(file)}}else callback(Asc.c_oAscError.ID.UplImageFileCount)};var xhr=new XMLHttpRequest;xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type",file.type||"application/octet-stream");xhr.onreadystatechange=fOnReadyChnageState;xhr.send(file)}else callback(Asc.c_oAscError.ID.UplImageFileCount)}function UploadImageUrls(files,
documentId,documentUserId,jwt,callback){if(files.length>0){var url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+="?token="+encodeURIComponent(jwt);var aFiles=[];for(var i=files.length-1;i>-1;--i)aFiles.push(files[i]);var file=aFiles.pop();var aResultUrls=[];var fOnReadyChnageState=function(){if(4==this.readyState)if(this.status==200||this.status==1223){var urls=JSON.parse(this.responseText);g_oDocumentUrls.addUrls(urls);for(var i in urls)if(urls.hasOwnProperty(i)){aResultUrls.push({path:i,
url:urls[i]});break}if(aFiles.length===0)callback(aResultUrls);else{file=aFiles.pop();var xhr=new XMLHttpRequest;url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+="?token="+encodeURIComponent(jwt);xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type",file.type||"application/octet-stream");xhr.onreadystatechange=fOnReadyChnageState;xhr.send(file)}}else callback([])};var xhr=new XMLHttpRequest;xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type",
file.type||"application/octet-stream");xhr.onreadystatechange=fOnReadyChnageState;xhr.send(file)}else callback(Asc.c_oAscError.ID.UplImageFileCount)}function ValidateUploadImage(files){var nRes=c_oAscServerError.NoError;if(files.length>0)for(var i=0,length=files.length;i<length;i++){var file=files[i];var sName=file.fileName||file.name;if(sName){var bSupported=false;var ext=GetFileExtension(sName);if(null!==ext)for(var j=0,length2=c_oAscImageUploadProp.SupportedFormats.length;j<length2;j++)if(c_oAscImageUploadProp.SupportedFormats[j]==
ext){bSupported=true;break}if(false==bSupported)nRes=c_oAscServerError.UploadExtension}if(Asc.c_oAscError.ID.No==nRes){var nSize=file.fileSize||file.size;if(nSize&&c_oAscImageUploadProp.MaxFileSize<nSize)nRes=c_oAscServerError.UploadContentLength}if(c_oAscServerError.NoError!=nRes)break}else nRes=c_oAscServerError.UploadCountFiles;return nRes}function CanDropFiles(event){var editor=window["Asc"]["editor"]?window["Asc"]["editor"]:window.editor;if(!editor.isEnabledDropTarget())return false;var bRes=

@ -622,10 +622,10 @@ url+'" method="POST" enctype="multipart/form-data"><input id="apiiuFile" name="a
ValidateUploadImage(e.target.files);if(c_oAscServerError.NoError!=nError){callbackOld(mapAscServerErrorToAscError(nError));return}}callbackOld(Asc.c_oAscError.ID.No);fileSubmit.click()}}if(AscBrowser.isOpera)setTimeout(function(){fileName.click()},0);else fileName.click()}function InitDragAndDrop(oHtmlElement,callback){if("undefined"!=typeof FileReader&&null!=oHtmlElement){oHtmlElement["ondragover"]=function(e){e.preventDefault();e.dataTransfer.dropEffect=CanDropFiles(e)?"copy":"none";if(e.dataTransfer.dropEffect==
"copy"){var editor=window["Asc"]["editor"]?window["Asc"]["editor"]:window.editor;editor.beginInlineDropTarget(e)}return false};oHtmlElement["ondrop"]=function(e){e.preventDefault();var files=e.dataTransfer.files;var nError=ValidateUploadImage(files);var editor=window["Asc"]["editor"]?window["Asc"]["editor"]:window.editor;editor.endInlineDropTarget(e);if(nError==c_oAscServerError.UploadCountFiles){try{var htmlValue=e.dataTransfer.getData("text/html");if(htmlValue&&!AscCommon.AscBrowser.isIE){var index=
htmlValue.indexOf("StartHTML");var indexHtml=htmlValue.indexOf("<html");if(-1==indexHtml)indexHtml=htmlValue.indexOf("<HTML");if(index>0&&indexHtml>0&&index<indexHtml)htmlValue=htmlValue.substr(indexHtml);editor["pluginMethod_PasteHtml"](htmlValue);return}}catch(err){}try{var textValue=e.dataTransfer.getData("text/plain");if(textValue){editor["pluginMethod_PasteText"](textValue);return}}catch(err$1){}try{var textValue=e.dataTransfer.getData("Text");if(textValue){editor["pluginMethod_PasteText"](textValue);
return}}catch(err$2){}}callback(mapAscServerErrorToAscError(nError),files)}}}function UploadImageFiles(files,documentId,documentUserId,jwt,callback){window.parent.APP.UploadImageFiles(files,documentId,documentUserId,jwt,callback);return;if(files.length>0){var url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+="?token="+encodeURIComponent(jwt);var aFiles=[];for(var i=files.length-1;i>-1;--i)aFiles.push(files[i]);var file=aFiles.pop();var aResultUrls=
[];var fOnReadyChnageState=function(){if(4==this.readyState)if(this.status==200||this.status==1223){var urls=JSON.parse(this.responseText);g_oDocumentUrls.addUrls(urls);for(var i in urls)if(urls.hasOwnProperty(i)){aResultUrls.push(urls[i]);break}if(aFiles.length===0)callback(Asc.c_oAscError.ID.No,aResultUrls);else{file=aFiles.pop();var xhr=new XMLHttpRequest;url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+="?token="+encodeURIComponent(jwt);
xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type",file.type||"application/octet-stream");xhr.onreadystatechange=fOnReadyChnageState;xhr.send(file)}}else callback(Asc.c_oAscError.ID.UplImageFileCount)};var xhr=new XMLHttpRequest;xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type",file.type||"application/octet-stream");xhr.onreadystatechange=fOnReadyChnageState;xhr.send(file)}else callback(Asc.c_oAscError.ID.UplImageFileCount)}function UploadImageUrls(files,documentId,documentUserId,
jwt,callback){if(files.length>0){var url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+="?token="+encodeURIComponent(jwt);var aFiles=[];for(var i=files.length-1;i>-1;--i)aFiles.push(files[i]);var file=aFiles.pop();var aResultUrls=[];var fOnReadyChnageState=function(){if(4==this.readyState)if(this.status==200||this.status==1223){var urls=JSON.parse(this.responseText);g_oDocumentUrls.addUrls(urls);for(var i in urls)if(urls.hasOwnProperty(i)){aResultUrls.push({path:i,
return}}catch(err$2){}}callback(mapAscServerErrorToAscError(nError),files)}}}function UploadImageFiles(files,documentId,documentUserId,jwt,callback){window.parent.APP.UploadImageFiles(files,documentId,documentUserId,jwt,function(err,urls){callback(err||Asc.c_oAscError.ID.No,urls)});return;if(files.length>0){var url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+="?token="+encodeURIComponent(jwt);var aFiles=[];for(var i=files.length-1;i>-1;--i)aFiles.push(files[i]);
var file=aFiles.pop();var aResultUrls=[];var fOnReadyChnageState=function(){if(4==this.readyState)if(this.status==200||this.status==1223){var urls=JSON.parse(this.responseText);g_oDocumentUrls.addUrls(urls);for(var i in urls)if(urls.hasOwnProperty(i)){aResultUrls.push(urls[i]);break}if(aFiles.length===0)callback(Asc.c_oAscError.ID.No,aResultUrls);else{file=aFiles.pop();var xhr=new XMLHttpRequest;url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+=
"?token="+encodeURIComponent(jwt);xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type",file.type||"application/octet-stream");xhr.onreadystatechange=fOnReadyChnageState;xhr.send(file)}}else callback(Asc.c_oAscError.ID.UplImageFileCount)};var xhr=new XMLHttpRequest;xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type",file.type||"application/octet-stream");xhr.onreadystatechange=fOnReadyChnageState;xhr.send(file)}else callback(Asc.c_oAscError.ID.UplImageFileCount)}function UploadImageUrls(files,
documentId,documentUserId,jwt,callback){if(files.length>0){var url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+="?token="+encodeURIComponent(jwt);var aFiles=[];for(var i=files.length-1;i>-1;--i)aFiles.push(files[i]);var file=aFiles.pop();var aResultUrls=[];var fOnReadyChnageState=function(){if(4==this.readyState)if(this.status==200||this.status==1223){var urls=JSON.parse(this.responseText);g_oDocumentUrls.addUrls(urls);for(var i in urls)if(urls.hasOwnProperty(i)){aResultUrls.push({path:i,
url:urls[i]});break}if(aFiles.length===0)callback(aResultUrls);else{file=aFiles.pop();var xhr=new XMLHttpRequest;url=sUploadServiceLocalUrl+"/"+documentId+"/"+documentUserId+"/"+g_oDocumentUrls.getMaxIndex();if(jwt)url+="?token="+encodeURIComponent(jwt);xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type",file.type||"application/octet-stream");xhr.onreadystatechange=fOnReadyChnageState;xhr.send(file)}}else callback([])};var xhr=new XMLHttpRequest;xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type",
file.type||"application/octet-stream");xhr.onreadystatechange=fOnReadyChnageState;xhr.send(file)}else callback(Asc.c_oAscError.ID.UplImageFileCount)}function ValidateUploadImage(files){var nRes=c_oAscServerError.NoError;if(files.length>0)for(var i=0,length=files.length;i<length;i++){var file=files[i];var sName=file.fileName||file.name;if(sName){var bSupported=false;var ext=GetFileExtension(sName);if(null!==ext)for(var j=0,length2=c_oAscImageUploadProp.SupportedFormats.length;j<length2;j++)if(c_oAscImageUploadProp.SupportedFormats[j]==
ext){bSupported=true;break}if(false==bSupported)nRes=c_oAscServerError.UploadExtension}if(Asc.c_oAscError.ID.No==nRes){var nSize=file.fileSize||file.size;if(nSize&&c_oAscImageUploadProp.MaxFileSize<nSize)nRes=c_oAscServerError.UploadContentLength}if(c_oAscServerError.NoError!=nRes)break}else nRes=c_oAscServerError.UploadCountFiles;return nRes}function CanDropFiles(event){var editor=window["Asc"]["editor"]?window["Asc"]["editor"]:window.editor;if(!editor.isEnabledDropTarget())return false;var bRes=

@ -0,0 +1,322 @@
<!DOCTYPE html>
<html>
<head>
<title>ONLYOFFICE Document Editor</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=IE8"/>
<meta name="description" content="" />
<meta name="keywords" content="" />
<link rel="icon" href="resources/img/favicon.ico" type="image/x-icon" />
<!-- splash -->
<style type="text/css">
.loadmask {
left: 0;
top: 0;
position: absolute;
height: 100%;
width: 100%;
overflow: hidden;
border: none;
background-color: #f4f4f4;
z-index: 1001;
}
.loader-page {
width: 100%;
height: 170px;
bottom: 42%;
position: absolute;
text-align: center;
line-height: 10px;
}
.loader-logo {
max-height: 160px;
margin-bottom: 10px;
}
.loader-page-romb {
width: 40px;
display: inline-block;
}
.loader-page-text {
width: 100%;
bottom: 42%;
position: absolute;
text-align: center;
color: #888;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
line-height: 20px;
}
.loader-page-text-loading {
font-size: 14px;
}
.loader-page-text-customer {
font-size: 16px;
margin-bottom: 5px;
}
.romb {
width: 40px;
height: 40px;
-webkit-transform: rotate(135deg) skew(20deg, 20deg);
-moz-transform: rotate(135deg) skew(20deg, 20deg);
-ms-transform: rotate(135deg) skew(20deg, 20deg);
-o-transform: rotate(135deg) skew(20deg, 20deg);
position: absolute;
background: red;
border-radius: 6px;
-webkit-animation: movedown 3s infinite ease;
-moz-animation: movedown 3s infinite ease;
-ms-animation: movedown 3s infinite ease;
-o-animation: movedown 3s infinite ease;
animation: movedown 3s infinite ease;
}
#blue {
z-index: 3;
background: #55bce6;
-webkit-animation-name: blue;
-moz-animation-name: blue;
-ms-animation-name: blue;
-o-animation-name: blue;
animation-name: blue;
}
#red {
z-index:1;
background: #de7a59;
-webkit-animation-name: red;
-moz-animation-name: red;
-ms-animation-name: red;
-o-animation-name: red;
animation-name: red;
}
#green {
z-index: 2;
background: #a1cb5c;
-webkit-animation-name: green;
-moz-animation-name: green;
-ms-animation-name: green;
-o-animation-name: green;
animation-name: green;
}
@-webkit-keyframes red {
0% { top:120px; background: #de7a59; }
10% { top:120px; background: #F2CBBF; }
14% { background: #f4f4f4; top:120px; }
15% { background: #f4f4f4; top:0;}
20% { background: #E6E4E4; }
30% { background: #D2D2D2; }
40% { top:120px; }
100% { top:120px; background: #de7a59; }
}
@keyframes red {
0% { top:120px; background: #de7a59; }
10% { top:120px; background: #F2CBBF; }
14% { background: #f4f4f4; top:120px; }
15% { background: #f4f4f4; top:0; }
20% { background: #E6E4E4; }
30% { background: #D2D2D2; }
40% { top:120px; }
100% { top:120px; background: #de7a59; }
}
@-webkit-keyframes green {
0% { top:110px; background: #a1cb5c; opacity:1; }
10% { top:110px; background: #CBE0AC; opacity:1; }
14% { background: #f4f4f4; top:110px; opacity:1; }
15% { background: #f4f4f4; top:0; opacity:1; }
20% { background: #f4f4f4; top:0; opacity:0; }
25% { background: #EFEFEF; top:0; opacity:1; }
30% { background:#E6E4E4; }
70% { top:110px; }
100% { top:110px; background: #a1cb5c; }
}
@keyframes green {
0% { top:110px; background: #a1cb5c; opacity:1; }
10% { top:110px; background: #CBE0AC; opacity:1; }
14% { background: #f4f4f4; top:110px; opacity:1; }
15% { background: #f4f4f4; top:0; opacity:1; }
20% { background: #f4f4f4; top:0; opacity:0; }
25% { background: #EFEFEF; top:0; opacity:1; }
30% { background:#E6E4E4; }
70% { top:110px; }
100% { top:110px; background: #a1cb5c; }
}
@-webkit-keyframes blue {
0% { top:100px; background: #55bce6; opacity:1; }
10% { top:100px; background: #BFE8F8; opacity:1; }
14% { background: #f4f4f4; top:100px; opacity:1; }
15% { background: #f4f4f4; top:0; opacity:1; }
20% { background: #f4f4f4; top:0; opacity:0; }
25% { background: #f4f4f4; top:0; opacity:0; }
45% { background: #EFEFEF; top:0; opacity:0.2; }
100% { top:100px; background: #55bce6; }
}
@keyframes blue {
0% { top:100px; background: #55bce6; opacity:1; }
10% { top:100px; background: #BFE8F8; opacity:1; }
14% { background: #f4f4f4; top:100px; opacity:1; }
15% { background: #f4f4f4; top:0; opacity:1; }
20% { background: #f4f4f4; top:0; opacity:0; }
25% { background: #f4f4f4; top:0; opacity:0; }
45% { background: #EFEFEF; top:0; opacity:0.2; }
100% { top:100px; background: #55bce6; }
}
</style>
<script>
var userAgent = navigator.userAgent.toLowerCase(),
check = function(regex){ return regex.test(userAgent); },
stopLoading = false;
if (!check(/opera/) && (check(/msie/) || check(/trident/))) {
var m = /msie (\d+\.\d+)/.exec(userAgent);
if (m && parseFloat(m[1]) < 10.0) {
document.write('<div class="app-error-panel">' +
'<div class="message-block">' +
'<div class="message-inner">' +
'<div class="title">Your browser is not supported.</div>' +
'<div class="text">Sorry, Document Editor is currently only supported in the latest versions of the Chrome, Firefox, Safari or Internet Explorer web browsers.</div>' +
'</div>' +
'</div></div>');
stopLoading = true;
}
} else
if (check(/windows\snt/i)) {
var re = /chrome\/(\d+)/i.exec(userAgent);
if (!!re && !!re[1] && !(re[1] > 49)) {
setTimeout(function () {
document.getElementsByTagName('body')[0].className += "winxp";
},0);
}
}
function getUrlParams() {
var e,
a = /\+/g, // Regex for replacing addition symbol with a space
r = /([^&=]+)=?([^&]*)/g,
d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
q = window.location.search.substring(1),
urlParams = {};
while (e = r.exec(q))
urlParams[d(e[1])] = d(e[2]);
return urlParams;
}
function encodeUrlParam(str) {
return str.replace(/&/g, '&amp;')
.replace(/"/g, '&quot;')
.replace(/'/g, '&#39;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;');
}
var params = getUrlParams(),
lang = (params["lang"] || 'en').split(/[\-\_]/)[0],
customer = params["customer"] ? ('<div class="loader-page-text-customer">' + encodeUrlParam(params["customer"]) + '</div>') : '',
margin = (customer !== '') ? 50 : 20,
loading = 'Loading...',
logo = params["logo"] ? ((params["logo"] !== 'none') ? ('<img src="' + encodeUrlParam(params["logo"]) + '" class="loader-logo" />') : '') : null;
window.frameEditorId = params["frameEditorId"];
if ( lang == 'de') loading = 'Ladevorgang...';
else if ( lang == 'es') loading = 'Cargando...';
else if ( lang == 'fr') loading = 'Chargement en cours...';
else if ( lang == 'it') loading = 'Caricamento in corso...';
else if ( lang == 'pt') loading = 'Carregando...';
else if ( lang == 'ru') loading = 'Загрузка...';
else if ( lang == 'sl') loading = 'Nalaganje...';
else if ( lang == 'tr') loading = 'Yükleniyor...';
else if ( lang == 'bg') loading = 'Зареждане...';
else if ( lang == 'cs') loading = 'Nahrávám...';
else if ( lang == 'hu') loading = 'Betöltés...';
else if ( lang == 'ja') loading = '読み込み中...';
else if ( lang == 'ko') loading = '로드 중...';
else if ( lang == 'lv') loading = 'Ieladēšana ...';
else if ( lang == 'nl') loading = 'Laden...';
else if ( lang == 'pl') loading = 'Ładowanie...';
else if ( lang == 'sk') loading = 'Nahrávam...';
else if ( lang == 'uk') loading = 'Завантаження...';
else if ( lang == 'vi') loading = 'Đang tải...';
else if ( lang == 'zh') loading = '加载中...';
if ( !stopLoading )
document.write(
'<div id="loading-mask" class="loadmask">' +
'<div class="loader-page" style="margin-bottom: ' + margin + 'px;' + ((logo!==null) ? 'height: auto;' : '') + '">' +
((logo!==null) ? logo :
'<div class="loader-page-romb">' +
'<div class="romb" id="blue"></div>' +
'<div class="romb" id="green"></div>' +
'<div class="romb" id="red"></div>' +
'</div>') +
'</div>' +
'<div class="loader-page-text">' + customer +
'<div class="loader-page-text-loading">' + loading + '</div>' +
'</div>' +
'</div>');
</script>
<link rel="stylesheet" type="text/css" href="../../../apps/documenteditor/main/resources/css/app.css">
</head>
<body>
<script>
window.requireTimeourError = function(){
var reqerr;
if ( lang == 'de') reqerr = 'Die Verbindung ist zu langsam, einige Komponenten konnten nicht geladen werden. Aktualisieren Sie bitte die Seite.';
else if ( lang == 'es') reqerr = 'La conexión es muy lenta, algunos de los componentes no han podido cargar. Por favor recargue la página.';
else if ( lang == 'fr') reqerr = 'La connexion est trop lente, certains des composants n\'ons pas pu être chargé. Veuillez recharger la page.';
else if ( lang == 'ru') reqerr = 'Слишком медленное соединение, не удается загрузить некоторые компоненты. Пожалуйста, обновите страницу.';
else reqerr = 'The connection is too slow, some of the components could not be loaded. Please reload the page.';
return reqerr;
};
var requireTimeoutID = setTimeout(function(){
window.alert(window.requireTimeourError());
window.location.reload();
}, 30000);
var require = {
waitSeconds: 30,
callback: function(){
clearTimeout(requireTimeoutID);
}
};
</script>
<inline src="resources/img/header/buttons.svg" />
<inline src="resources/img/doc-formats/docx.svg" />
<inline src="resources/img/doc-formats/dotx.svg" />
<inline src="resources/img/doc-formats/pdf.svg" />
<inline src="resources/img/doc-formats/pdfa.svg" />
<inline src="resources/img/doc-formats/txt.svg" />
<inline src="resources/img/doc-formats/odt.svg" />
<inline src="resources/img/doc-formats/ott.svg" />
<inline src="resources/img/doc-formats/rtf.svg" />
<inline src="resources/img/doc-formats/html.svg" />
<inline src="resources/img/doc-formats/blank.svg" />
<inline src="resources/img/toolbar/shapetypes.svg" />
<div id="viewport"></div>
<script data-main="app" src="../../../vendor/requirejs/require.js"></script>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,94 @@
<!DOCTYPE html>
<html>
<head>
<title>Compare documents</title>
<meta charset="utf-8" />
<meta name="description" content="Instructions on how to compare and merge two documents" />
<link type="text/css" rel="stylesheet" href="../editor.css" />
<script type="text/javascript" src="../callback.js"></script>
<script type="text/javascript" src="../search/js/page-search.js"></script>
</head>
<body>
<div class="mainpart">
<div class="search-field">
<input id="search" class="searchBar" placeholder="Search" type="text" onkeypress="doSearch(event)">
</div>
<h1>Compare documents</h1>
<p class="note"><b>Note</b>: this option is available in the <b>paid</b> <em>online version</em> only starting from <b>Document Server</b> v. <b>5.5</b>.</p>
<p>If you need to compare and merge two documents, you can use the document <b>Compare</b> feature. It allows to display the differences between two documents and merge the documents by accepting the changes one by one or all at once.</p>
<p>After comparing and merging two documents, the result will be stored on the portal as a new version of the original file<!-- (in the <em>online version</em> of editors)-->. <!--In the desktop version, when you click the <b>Save</b> button, the dialog window will appear where you will be suggested to save a new file.--></p>
<p>If you do not need to merge documents which are being compared, you can reject all the changes so that the original document remains unchanged.</p>
<h3 id="choosedocument">Choose a document for comparison</h3>
<p>To compare two documents, open the original document that you need to compare and select the second document for comparison:</p>
<ol>
<li>switch to the <b>Collaboration</b> tab at the top toolbar and press the <img alt="Compare button" src="../images/comparebutton.png" /> <b>Compare</b> button,</li>
<li>
select one of the following options to load the document:
<ul>
<li>the <b>Document from File</b> option will open the standard dialog window for file selection. Browse your computer hard disk drive for the necessary <em>.docx</em> file and click the <b>Open</b> button.</li>
<li>
the <b>Document from URL</b> option will open the window where you can enter a link to the file stored in a third-party web storage (for example, Nextcloud) if you have corresponding access rights to it. The link must be a <b>direct link for downloading the file</b>. When the link is specified, click the <b>OK</b> button.
<p class="note"><b>Note</b>: The direct link allows to download the file directly without opening it in a web browser. For example, to get a direct link in Nextcloud, find the necessary document in the file list, select the <b>Details</b> option from the file menu. Click the <b>Copy direct link (only works for users who have access to this file/folder)</b> icon to the right of the file name at the details panel. To find out how to get a direct link for downloading the file in a different third-party web storage, please refer to the corresponding third-party service documentation.</p>
</li>
<li class="onlineDocumentFeatures"> the <b>Document from Storage</b> option <!--(available in the <em>online version</em> only)--> will open the <b>Select Data Source</b> window. It displays the list of all the <em>.docx</em> documents stored on your portal you have corresponding access rights to. To navigate between the <b>Documents</b> module sections use the menu in the left part of the window. Select the necessary <em>.docx</em> document and click the <b>OK</b> button.</li>
</ul>
</li>
</ol>
<p>When the second document for comparison is selected, the comparison process will start and the document will look as if it was opened in the <b>Review</b> mode. All the changes are highlighted with a color, and you can view the changes, navigate between them, accept or reject them one by one or all the changes at once. It's also possible to change the display mode and see how the document looks before comparison, in the process of comparison, or how it will look after comparison if you accept all changes.</p>
<h3 id="displaymode">Choose the changes display mode</h3>
<p>Click the <img alt="Display Mode button" src="../images/review_displaymode.png" /> <b>Display Mode</b> button at the top toolbar and select one of the available modes from the list:</p>
<ul>
<li>
<b>Markup</b> - this option is selected by default. It is used to display the document <b>in the process of comparison</b>. This mode allows both to view the changes and edit the document.
<p><img alt="Compare documents - Markup" src="../images/compare_markup.png" /></p>
</li>
<li>
<b>Final</b> - this mode is used to display the document <b>after comparison</b> as if all the changes were accepted. This option does not actually accept all changes, it only allows you to see how the document will look like after you accept all the changes. In this mode, you cannot edit the document.
<p><img alt="Compare documents - Final" src="../images/compare_final.png" /></p>
</li>
<li>
<b>Original</b> - this mode is used to display the document <b>before comparison</b> as if all the changes were rejected. This option does not actually reject all changes, it only allows you to view the document without changes. In this mode, you cannot edit the document.
<p><img alt="Compare documents - Original" src="../images/compare_original.png" /></p>
</li>
</ul>
<h3 id="managechanges">Accept or reject changes</h3>
<p>Use the <img alt="To Previous Change button" src="../images/review_previous.png" /> <b>Previous</b> and the <img alt="To Next Change button" src="../images/review_next.png" /> <b>Next</b> buttons at the top toolbar to navigate among the changes.</p>
<p>To accept the currently selected change you can:</p>
<ul>
<li>click the <img alt="Accept button" src="../images/review_accepttoptoolbar.png" /> <b>Accept</b> button at the top toolbar, or</li>
<li>click the downward arrow below the <b>Accept</b> button and select the <b>Accept Current Change</b> option (in this case, the change will be accepted and you will proceed to the next change), or</li>
<li>click the <b>Accept</b> <img alt="Accept button" src="../images/review_accept.png" /> button of the change notification.</li>
</ul>
<p>To quickly accept all the changes, click the downward arrow below the <img alt="Accept button" src="../images/review_accepttoptoolbar.png" /> <b>Accept</b> button and select the <b>Accept All Changes</b> option.</p>
<p>To reject the current change you can:</p>
<ul>
<li>click the <img alt="Reject button" src="../images/review_rejecttoptoolbar.png" /> <b>Reject</b> button at the top toolbar, or</li>
<li>click the downward arrow below the <b>Reject</b> button and select the <b>Reject Current Change</b> option (in this case, the change will be rejected and you will move on to the next available change), or</li>
<li>click the <b>Reject</b> <img alt="Reject button" src="../images/review_reject.png" /> button of the change notification.</li>
</ul>
<p>To quickly reject all the changes, click the downward arrow below the <img alt="Reject button" src="../images/review_rejecttoptoolbar.png" /> <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>
<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>
<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>
<li>If the original document contains some data which is not represented in the loaded document, the data will be marked as deleted by a reviewer.</li>
</ul>
<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>
<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>
</body>
</html>

@ -0,0 +1,61 @@
<!DOCTYPE html>
<html>
<head>
<title>Add caption</title>
<meta charset="utf-8" />
<meta name="description" content=">The Caption is a numbered label that you can apply to objects, such as equations, tables, figures and images within your documents" />
<link type="text/css" rel="stylesheet" href="../editor.css" />
<script type="text/javascript" src="../callback.js"></script>
<script type="text/javascript" src="../search/js/page-search.js"></script>
</head>
<body>
<div class="mainpart">
<div class="search-field">
<input id="search" class="searchBar" placeholder="Search" type="text" onkeypress="doSearch(event)">
</div>
<h1>Add caption</h1>
<p>The <b>Caption</b> is a numbered label that you can apply to objects, such as equations, tables, figures and images within your documents.</p>
<p>This makes it easy to reference within your text as there is an easily recognizable label on your object.</p>
<p>To add the caption to an object:</p>
<ul>
<li>select the object which one to apply a caption;</li>
<li>switch to the <b>References</b> tab of the top toolbar;</li>
<li>
click the <img alt="Rich text content control" src="../images/caption_icon.png" /> <b>Caption</b> icon at the top toolbar or right lick o nthe object and select the <b>Insert Caption</b> option to open the <b>Insert Caption</b> dialogue box
<ul>
<li>choose the label to use for your caption by clicking the label drop-down and choosing the object. or</li>
<li>create a new label by clicking the <b>Add label</b> button to open the <b>Add label</b> dialogue box. Enter a name for the label into the label text box. Then click the <b>OK</b> button to add a new label into the label list;</li>
</ul>
<li>check the <b>Include chapter number</b> checkbox to change the numbering for your caption;</li>
<li>in <b>Insert</b> drop-down menu choose <b>Before</b> to place the label above the object or <b>After</b> to place it below the object;</li>
<li>check the <b>Exclude label from caption</b> checkbox to leave only a number for this particular caption in accordance with a sequence number;</li>
<li>you can then choose how to number your caption by assigning a specific style to the caption and adding a separator;</li>
<li>to apply the caption click the <b>OK</b> button.</li>
</ul>
<p><img alt="Content Control settings window" src="../images/insertcaptionbox.png" /></p>
<h2>Deleting a label</h2>
<p>To <b>delete</b> a label you have created, choose the label from the label list within the caption dialogue box then click the <b>Delete label</b> button. The label you created will be immediately deleted.</p>
<p class="note"><b>Note:</b>You may delete labels you have created but you cannot delete the default labels.</p>
<h2>Formatting captions</h2>
<p>As soon as you add a caption, a new style for captions is automatically added to the styles section. In order to change the style for all captions throughout the document, you should follow these steps:</p>
<ul>
<li>select the text a new <b>Caption</b> style will be copied from;</li>
<li>search for the <b>Caption</b> style (highlighted in blue by default) in the styles gallery which you may find on <b>Home</b> tab of the top toolbar;</li>
<li>right click on it and choose the <b>Update from selection</b> option.</li>
</ul>
<p><img alt="Content Control settings window" src="../images/updatefromseleciton.png" /></p>
<h2>Grouping captions up</h2>
<p>If you want to be able to move the object and the caption as one unit, you need <a href="../UsageInstructions/AlignArrangeObjects.htm" onclick="onhyperlinkclick(this)">to group</a> the object and the caption together</p>
<ul>
<li>select the object;</li>
<li>select one of the <b>Wrapping styles</b> using the right sidebar;</li>
<li>add the caption as it is mentioned above;</li>
<li>hold down Shift and select the items you want to group up;</li>
<li><b>right click</b> on either item and choose <b>Arrange</b> > <b>Group</b>.</li>
</ul>
<p><img alt="Content Control settings window" src="../images/Groupup.png" /></p>
<p>Now both items will move simultaneously if you drag them somewhere else in the document.</p>
<p>To unbind the objects click on <b>Arrange</b> > <b>Ungroup</b> respectively.</p>
</div>
</body>
</html>

@ -0,0 +1,50 @@
<!DOCTYPE html>
<html>
<head>
<title>Add watermark</title>
<meta charset="utf-8" />
<meta name="description" content="Text watermarks allow to indicate your document status (for example, confidential, draft etc.), image watermarks allow to add an image, for example your company logo." />
<link type="text/css" rel="stylesheet" href="../editor.css" />
<script type="text/javascript" src="../callback.js"></script>
<script type="text/javascript" src="../search/js/page-search.js"></script>
</head>
<body>
<div class="mainpart">
<div class="search-field">
<input id="search" class="searchBar" placeholder="Search" type="text" onkeypress="doSearch(event)">
</div>
<h1>Add watermark</h1>
<p>Watermark is a text or image placed below the main text layer. Text watermarks allow to indicate your document status (for example, confidential, draft etc.), image watermarks allow to add an image, for example your company logo.</p>
<p>To add a watermark within a document:</p>
<ol>
<li>Switch to the <b>Layout</b> tab of the top toolbar.</li>
<li>Click the <img alt="Watermark icon" src="../images/watermark.png" /> <b>Watermark</b> icon at the top toolbar and choose the <b>Custom Watermark</b> option from the menu. After that the <b>Watermark Settings</b> window will appear.</li>
<li>Select a watermark type you wish to insert:
<ul>
<li>Use the <b>Text watermark</b> option and adjust the available parameters:
<p><img alt="Watermark Settings window" src="../images/watermark_settings.png" /></p>
<ul>
<li><b>Language</b> - select one of the available languages from the list,</li>
<li><b>Text</b> - select one of the available text examples on the selected language. For English, the following watermark texts are available: <em>ASAP</em>, <em>CONFIDENTIAL</em>, <em>COPY</em>, <em>DO NOT COPY</em>, <em>DRAFT</em>, <em>ORIGINAL</em>, <em>PERSONAL</em>, <em>SAMPLE</em>, <em>TOP SECRET</em>, <em>URGENT</em>.</li>
<li><b>Font</b> - select the font name and size from the corresponding drop-down lists. Use the icons on the right to set the font color or apply one of the font decoration styles: <em>Bold</em>, <em>Italic</em>, <em>Underline</em>, <em>Strikeout</em>,</li>
<li><b>Semitransparent</b> - check this box if you want to apply transparency,</li>
<li><b>Layout</b> - select the <b>Diagonal</b> or <b>Horizontal</b> option.</li>
</ul>
</li>
<li>Use the <b>Image watermark</b> option and adjust the available parameters:
<p><img alt="Watermark Settings window" src="../images/watermark_settings2.png" /></p>
<ul>
<li>Choose the image file source using one of the buttons: <b>From File</b> or <b>From URL</b> - the image will be displayed in the preview window on the right,</li>
<li><b>Scale</b> - select the necessary scale value from the available ones: <em>Auto</em>, <em>500%</em>, <em>200%</em>, <em>150%</em>, <em>100%</em>, <em>50%</em>.</li>
</ul>
</li>
</ul>
</li>
<li>Click the <b>OK</b> button.</li>
</ol>
<p>To edit the added watermark, open the <b>Watermark Settings</b> window as described above, change the necessary parameters and click <b>OK</b>.</p>
<p>To delete the added watermark click the <img alt="Watermark icon" src="../images/watermark.png" /> <b>Watermark</b> icon at the <b>Layout</b> tab of the top toolbar and choose the <b>Remove Watermark</b> option from the menu. It's also possible to use the <b>None</b> option in the <b>Watermark Settings</b> window.</p>
</div>
</body>
</html>

@ -0,0 +1,53 @@
<!DOCTYPE html>
<html>
<head>
<title>Insert symbols and characters</title>
<meta charset="utf-8" />
<meta name="description" content="Insert symbols and characters" />
<link type="text/css" rel="stylesheet" href="../editor.css" />
<script type="text/javascript" src="../callback.js"></script>
<script type="text/javascript" src="../search/js/page-search.js"></script>
</head>
<body>
<div class="mainpart">
<div class="search-field">
<input id="search" class="searchBar" placeholder="Search" type="text" onkeypress="doSearch(event)">
</div>
<h1>Insert symbols and characters</h1>
<p>During working process you may need to insert a symbol which is not on your keyboard. To insert such symbols into your document, use the <img alt="Symbol table icon" src="../images/vector.png" /><b>Insert symbol</b> option and follow these simple steps:</p>
<ul>
<li>place the cursor at the location where a special symbol has to be inserted,</li>
<li>switch to the <b>Insert</b> tab of the top toolbar,</li>
<li>
click the <img alt="Symbol table icon" src="../images/vector.png" /><b>Symbol</b>,
<p><img alt="Insert symbol sidebar " src="../images/insert_symbol_window.png" /></p>
</li>
<li>The <b>Symbol</b> dialog box appears from which you can select the appropriate symbol,</li>
<li>
<p>use the <b>Range</b> section to quickly find the nesessary symbol. All symbols are divided into specific groups, for example, select 'Currency Symbols' if you want to insert a currency character.</p>
<p>If this character is not in the set, select a different font. Many of them also have characters other than the standard set.</p>
<p>Or, enter the Unicode hex value of the symbol you want into the <b>Unicode hex value field</b>. This code can be found in the <b>Character map</b>.</p>
<p>Previously used symbols are also displayed in the <b>Recently used symbols</b> field,</p>
</li>
<li>click <b>Insert</b>. The selected character will be added to the document.</li>
</ul>
<h2>Insert ASCII symbols</h2>
<p>ASCII table is also used to add characters.</p>
<p>To do this, hold down ALT key and use the numeric keypad to enter the character code.</p>
<p class="note"><b>Note</b>: be sure to use the numeric keypad, not the numbers on the main keyboard. To enable the numeric keypad, press the Num Lock key.</p>
<p>For example, to add a paragraph character (§), press and hold down ALT while typing 789, and then release ALT key.</p>
<h2>Insert symbols using Unicode table</h2>
<p>Additional charachters and symbols might also be found via Windows symbol table. To open this table, do one of the following:</p>
<ul>
<li>in the Search field write 'Character table' and open it,</li>
<li>
simultaneously presss Win + R, and then in the following window type <code>charmap.exe</code> and click OK.
<p><img alt="Insert symbol windpow" src="../images/insert_symbols_windows.png" /></p>
</li>
</ul>
<p>In the opened <b>Character Map</b>, select one of the <b>Character sets</b>, <b>Groups</b> and <b>Fonts</b>. Next, click on the nesessary characters, copy them to clipboard and paste in the right place of the document.</p>
</div>
</body>
</html>

@ -0,0 +1,29 @@
<!DOCTYPE html>
<html>
<head>
<title>Set up paragraph outline level</title>
<meta charset="utf-8" />
<meta name="description" content="Set up paragraph outline level" />
<link type="text/css" rel="stylesheet" href="../editor.css" />
<script type="text/javascript" src="../callback.js"></script>
<script type="text/javascript" src="../search/js/page-search.js"></script>
</head>
<body>
<div class="mainpart">
<div class="search-field">
<input id="search" class="searchBar" placeholder="Search" type="text" onkeypress="doSearch(event)">
</div>
<h1>Set up paragraph outline level</h1>
<p>Outline level means the paragraph level in the document structure. The following levels are available: <em>Basic Text</em>, <em>Level 1</em> - <em>Level 9</em>. Outline level can be specified in different ways, for example, by using <a href="../UsageInstructions/FormattingPresets.htm" onclick="onhyperlinkclick(this)">heading styles</a>: once you assign a heading style (<em>Heading 1</em> - <em>Heading 9</em>) to a paragraph, it acquires a corresponding outline level. If you assign a level to a paragraph using the paragraph advanced settings, the paragraph acquires the structure level only while its style remains unchanged. The outline level can also be changed at the <a href="../UsageInstructions/CreateTableOfContents.htm#navigation" onclick="onhyperlinkclick(this)"><b>Navigation</b></a> panel on the left using the contextual menu options.</p>
<p>To change a paragraph outline level using the paragraph advanced settings,</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 at the right sidebar,</li>
<li>open the <b>Paragraph - Advanced Settings</b> window, switch to the <b>Indents &amp; Spacing</b> tab,</li>
<li>select the necessary outline level from the <b>Outline level</b> list.</li>
<li>click the <b>OK</b> button to apply the changes.</li>
</ol>
<p><img alt="Paragraph Advanced Settings - Indents &amp; Spacing" src="../images/paradvsettings_indents.png" /></p>
</div>
</body>
</html>

@ -0,0 +1,94 @@
<!DOCTYPE html>
<html>
<head>
<title>Сравнение документов</title>
<meta charset="utf-8" />
<meta name="description" content="Инструкции по сравнению и объединению двух документов" />
<link type="text/css" rel="stylesheet" href="../editor.css" />
<script type="text/javascript" src="../callback.js"></script>
<script type="text/javascript" src="../search/js/page-search.js"></script>
</head>
<body>
<div class="mainpart">
<div class="search-field">
<input id="search" class="searchBar" placeholder="Search" type="text" onkeypress="doSearch(event)">
</div>
<h1>Сравнение документов</h1>
<p class="note"><b>Примечание</b>: эта возможность доступна только в <b>платной</b> <em>онлайн-версии</em>, начиная с версии <b>5.5</b> <b>Сервера документов</b>.</p>
<p>Если вам требуется сравнить и объединить два документа, вы можете использовать функцию <b>сравнения</b> документов. Она позволяет отобразить различия между двумя документами и объединить документы путем принятия изменений - каждого в отдельности или всех сразу.</p>
<p>После сравнения и объединения двух документов результат будет сохранен на портале как новая версия исходного файла<!-- (в <em>онлайн-версии</em> редакторов)-->. <!--В десктопной версии при нажатии на кнопку <b>Сохранить</b> появится диалоговое окно, в котором будет предложено сохранить новый файл.--></p>
<p>Если объединять сравниваемые документы не требуется, вы можете отклонить все изменения, чтобы исходный документ остался неизмененным.</p>
<h3 id="choosedocument">Выбор документа для сравнения</h3>
<p>Чтобы сравнить два документа, откройте исходный документ, который требуется сравнить, и выберите второй документ для сравнения:</p>
<ol>
<li>перейдите на вкладку <b>Совместная работа</b> на верхней панели инструментов и нажмите на кнопку <img alt="Кнопка Сравнить" src="../images/comparebutton.png" /> <b>Сравнить</b>,</li>
<li>
выберите одну из следующих опций для загрузки документа:
<ul>
<li>при выборе опции <b>Документ из файла</b> откроется стандартное диалоговое окно для выбора файлов. Выберите нужный файл в формате <em>.docx</em> на жестком диске компьютера и нажмите кнопку <b>Открыть</b>.</li>
<li>
при выборе опции <b>Документ с URL-адреса</b> откроется окно, в котором вы можете ввести ссылку на файл, сохраненный в стороннем веб-хранилище (например, Nextcloud), если у вас есть соответствующие права доступа. Ссылка должна быть <b>прямой ссылкой на скачивание файла</b>. Когда ссылка будет указана, нажмите кнопку <b>OK</b>.
<p class="note"><b>Примечание</b>: Прямая ссылка позволяет напрямую скачать файл, не открывая его в браузере. Например, для получения прямой ссылки в Nextcloud найдите нужный документ в списке файлов, выберите в меню файла пункт <b>Подробно</b>. На панели с подробными сведениями о файле нажмите на значок <b>Копировать прямую ссылку (работает только для пользователей с правами доступа к этому файлу или каталогу)</b> справа от имени файла. Чтобы узнать, как получить прямую ссылку на скачивание файла в другом стороннем веб-хранилище, обратитесь к документации по соответствующему стороннему сервису.</p>
</li>
<li class="onlineDocumentFeatures"> при выборе опции <b>Документ из хранилища</b> <!--(доступно только в <em>онлайн-версии</em>)--> откроется окно <b>Выбрать источник данных</b>. В нем отображается список всех документов в формате <em>.docx</em>, сохраненных на портале, к которым у вас есть соответствующие права доступа. Для перехода по разделам модуля <b>Документы</b> используйте меню в левой части окна. Выберите нужный документ <em>.docx</em> и нажмите кнопку <b>OK</b>.</li>
</ul>
</li>
</ol>
<p>После выбора второго документа для сравнения запускается процесс сравнения и документ приобретает вид <b>рецензируемого</b>. Все изменения выделяются цветом, и вы можете просматривать изменения, переходить от одного к другому, принимать или отклонять их по отдельности или все сразу. Также можно изменить режим отображения и посмотреть, как выглядит документ до сравнения, в процессе сравнения или как он будет выглядеть после сравнения, если принять все изменения.</p>
<h3 id="displaymode">Выбор режима отображения изменений</h3>
<p>Нажмите кнопку <img alt="Кнопка Отображение" src="../images/review_displaymode.png" /> <b>Отображение</b> на верхней панели инструментов и выберите из списка один из доступных режимов:</p>
<ul>
<li>
<b>Изменения</b> - этот режим выбран по умолчанию. Он используется, чтобы отобразить документ <b>в процессе сравнения</b>. Этот режим позволяет и просматривать изменения, и редактировать документ.
<p><img alt="Сравнение документов - Изменения" src="../images/compare_markup.png" /></p>
</li>
<li>
<b>Измененный документ</b> - этот режим используется, чтобы отобразить документ <b>после сравнения</b>, как если бы все изменения были приняты. Эта опция не позволяет в действительности принять все изменения, а только дает возможность увидеть, как будет выглядеть документ после того, как вы примете все изменения. В этом режиме документ нельзя редактировать.
<p><img alt="Сравнение документов - Измененный документ" src="../images/compare_final.png" /></p>
</li>
<li>
<b>Исходный документ</b> - этот режим используется, чтобы отобразить документ <b>до сравнения</b>, как если бы все изменения были отклонены. Эта опция не позволяет в действительности отклонить все изменения, а только дает возможность просмотреть документ без изменений. В этом режиме документ нельзя редактировать.
<p><img alt="Сравнение документов - Исходный документ" src="../images/compare_original.png" /></p>
</li>
</ul>
<h3 id="managechanges">Принятие и отклонение изменений</h3>
<p>Используйте кнопки <img alt="Кнопка К предыдущему изменению" src="../images/review_previous.png" /> <b>К предыдущему</b> и <img alt="Кнопка К следующему изменению" src="../images/review_next.png" /> <b>К следующему</b> на верхней панели инструментов для навигации по изменениям.</p>
<p>Чтобы принять выделенное в данный момент изменение, можно сделать следующее:</p>
<ul>
<li>нажмите кнопку <img alt="Кнопка Принять" src="../images/review_accepttoptoolbar.png" /> <b>Принять</b> на верхней панели инструментов или</li>
<li>нажмите направленную вниз стрелку под кнопкой <b>Принять</b> и выберите опцию <b>Принять текущее изменение</b> (в этом случае изменение будет принято, и вы перейдете к следующему изменению) или</li>
<li>нажмите кнопку <b>Принять</b> <img alt="Кнопка Принять" src="../images/review_accept.png" /> во всплывающем оповещении об изменении.</li>
</ul>
<p>Чтобы быстро принять все изменения, нажмите направленную вниз стрелку под кнопкой <img alt="Кнопка Принять" src="../images/review_accepttoptoolbar.png" /> <b>Принять</b> и выберите опцию <b>Принять все изменения</b>.</p>
<p>Чтобы отклонить текущее изменение, можно сделать следующее:</p>
<ul>
<li>нажмите кнопку <img alt="Кнопка Отклонить" src="../images/review_rejecttoptoolbar.png" /> <b>Отклонить</b> на верхней панели инструментов или</li>
<li>нажмите направленную вниз стрелку под кнопкой <b>Отклонить</b> и выберите опцию <b>Отклонить текущее изменение</b> (в этом случае изменение будет отклонено, и вы перейдете к следующему доступному изменению) или</li>
<li>нажмите кнопку <b>Отклонить</b> <img alt="Кнопка Отклонить" src="../images/review_reject.png" /> во всплывающем оповещении об изменении.</li>
</ul>
<p>Чтобы быстро отклонить все изменения, нажмите направленную вниз стрелку под кнопкой <img alt="Кнопка Отклонить" src="../images/review_rejecttoptoolbar.png" /> <b>Отклонить</b> и выберите опцию <b>Отклонить все изменения</b>.</p>
<h3 id="comparisonnotes">Дополнительные сведения о функции сравнения</h3>
<h5>Принцип сравнения</h5>
<p>Сравнение документов ведется <b>по словам</b>. Если слово содержит изменение хотя бы на один символ (например, если символ был удален или заменен), в результате отличие будет отображено как изменение всего слова целиком, а не символа.</p>
<p>Приведенное ниже изображение иллюстрирует случай, когда исходный файл содержит слово 'Символы', а документ для сравнения содержит слово 'Символ'.</p>
<p><img alt="Сравнение документов - принцип" src="../images/compare_method.png" /></p>
<h5>Авторство документа</h5>
<p>При запуске процесса сравнения документов второй документ для сравнения загружается и сравнивается с текущим.</p>
<ul>
<li>Если загруженный документ содержит данные, которые отсутствуют в исходном документе, они будут помечены как добавленные рецензентом.</li>
<li>Если исходный документ содержит данные, которые отсутствуют в загруженном документе, они будут помечены как удаленные рецензентом.</li>
</ul>
<p>Если авторы исходного и загруженного документа совпадают, то рецензентом будет тот же пользователь. Его имя отображается во всплывающем окне с изменением.</p>
<p>Если авторы двух файлов - разные пользователи, то автор второго файла, загруженного для сравнения, будет автором добавленных или удаленных изменений.</p>
<h5>Наличие рецензирования в сравниваемом документе</h5>
<p>Если исходный документ содержит изменения, внесенные в режиме рецензирования, то в результате сравнения документа они будут приняты. При выборе второго файла для сравнения вы увидите соответствующее предупреждение.</p>
<p>В этом случае при выборе режима отображения <b>Исходный документ</b> документ не будет содержать изменений.</p>
</div>
</body>
</html>

@ -0,0 +1,61 @@
<!DOCTYPE html>
<html>
<head>
<title>Добавление названия</title>
<meta charset="utf-8" />
<meta name="description" content=">Название - это пронумерованная метка, которую можно применять к объектам, таким как уравнения, таблицы, рисунки и изображения" />
<link type="text/css" rel="stylesheet" href="../editor.css" />
<script type="text/javascript" src="../callback.js"></script>
<script type="text/javascript" src="../search/js/page-search.js"></script>
</head>
<body>
<div class="mainpart">
<div class="search-field">
<input id="search" class="searchBar" placeholder="Search" type="text" onkeypress="doSearch(event)">
</div>
<h1>Добавление названия</h1>
<p><b>Название</b> - это пронумерованная метка, которую можно применять к объектам, таким как уравнения, таблицы, фигуры и изображения.</p>
<p>Данная функция позволяет легко ссылаться на какой-либо объект в вашем тексте, так как на на нем есть легко узнаваемая подпись.</p>
<p>Чтобы добавить <b>Название</b> к объекту, выполните следующие действия:</p>
<ul>
<li>выберите объект, к которому нужно добавить название;</li>
<li>перейдите на вкладку <b>Ссылки</b> верхней панели инструментов;</li>
<li>
щелкните на иконку <img alt="Rich text content control" src="../images/caption_icon.png" /> <b>Название</b> на верхней панели инструментов или щелкнув правой кнопкой по объекту, выберите функцию <b>Вставить название</b>. Откроется диалоговое окно <b>Вставить название</b>
<ul>
<li>выберите подпись для названия, щелкнув на раскрывающийся список и выбрав один из предложенных вариантов, или</li>
<li>создайте новую подпись, нажав кнопку <b>Добавить</b>. В диалоговом окне введите новую подпись в текстовое поле. Затем нажмите кнопку <b>ОК</b>, чтобы добавить новую <b>Подпись</b> в список подписей;</li>
</ul>
<li>в выпадающем списке <b>Вставить</b> выберите <b>Перед</b>, чтобы разместить название над объектом, или <b>После</b>, чтобы разместить его под объектом;</li>
<li>установите флажок напротив <b>Исключить подпись из названия</b>, чтобы оставить только номер для этой конкретной подписи в соответствии с порядковым номером;</li>
<li>установите флажок напротив опции <b>Включить номер главы</b>, чтобы добавить выбранный тип нумерации объектов к названию;</li>
<li>настройте нумерацию подписи, добавив к ней определенный стиль и разделитель;</li>
<li>чтобы применить название, нажмите кнопку <b>ОК</b>.</li>
</ul>
<p><img alt="Content Control settings window" src="../images/insertcaptionbox.png" /></p>
<h2>Удаление подписи</h2>
<p>Чтобы удалить созданную вами подпись, выберите подпись из списка, затем нажмите кнопку <b>Удалить</b>. Данная подпись будет немедленно удалена.</p>
<p class="note"><b>Примечание:</b> вы не можете удалить созданные по умолчанию подписи.</p>
<h2>Форматирование названий</h2>
<p>Как только вы добавляете название, в раздел стилей автоматически добавляется новый стиль для подписей. Чтобы изменить стиль для всех названий в документе, выполните следующие действия:</p>
<ul>
<li>выделите текст из которого будет скопирован новый стиль для названий;</li>
<li>найдите стиль <b>Название</b> (по умолчанию выделен синим цветом) в галерее стилей, которую вы можете найти на вкладке <b>Главная</b> верхней панели инструментов;</li>
<li>щелкните по нему <b>правой кнопкой</b> мыши и выберите пункт <b>Обновить из выделенного фрагмента</b>.</li>
</ul>
<p><img alt="Content Control settings window" src="../images/updatefromseleciton.png" /></p>
<h2>Объединение названий в группы</h2>
<p>Если вы хотите иметь возможность перемещать объект и подпись как одно целое, вам нужно <a href="../UsageInstructions/AlignArrangeObjects.htm" onclick="onhyperlinkclick(this)">сгруппировать</a> объект и подпись вместе. Для этого</p>
<ul>
<li>выберите объект;</li>
<li>выберите один из <b>Стилей обтекания</b>, используя правую боковую панель;</li>
<li>добавьте подпись, как указано выше;</li>
<li>зажмите Shift и выберите элементы, которые вы хотите сгруппировать;</li>
<li>щелкните <b>правой кнопкой</b> мыши любой элемент и выберите <b>Порядок</b> > <b>Сгруппировать</b>.</li>
</ul>
<p><img alt="Content Control settings window" src="../images/Groupup.png" /></p>
<p>Теперь если вы захотите перетащить объекты в другое место документа, они будут перемещаться одновременно.</p>
<p>Чтобы отменить привязку объектов, в контекстном меню выберите пункт <b>Порядок</b>, а затем <b>Разгруппировать</b>.</p>
</div>
</body>
</html>

@ -0,0 +1,50 @@
<!DOCTYPE html>
<html>
<head>
<title>Добавление подложки</title>
<meta charset="utf-8" />
<meta name="description" content="Текстовые подложки позволяют указать статус документа (например, секретно, черновик и т.д.), графические подложки позволяют добавить изображение, например логотип компании." />
<link type="text/css" rel="stylesheet" href="../editor.css" />
<script type="text/javascript" src="../callback.js"></script>
<script type="text/javascript" src="../search/js/page-search.js"></script>
</head>
<body>
<div class="mainpart">
<div class="search-field">
<input id="search" class="searchBar" placeholder="Search" type="text" onkeypress="doSearch(event)">
</div>
<h1>Добавление подложки</h1>
<p>Подложка - это текст или изображение, расположенные под слоем основного текста. Текстовые подложки позволяют указать статус документа (например, секретно, черновик и т.д.), графические подложки позволяют добавить изображение, например логотип компании.</p>
<p>Для добавления подложки в документ:</p>
<ol>
<li>Перейдите на вкладку <b>Макет</b> на верхней панели инструментов.</li>
<li>Нажмите на значок <img alt="Значок Подложка" src="../images/watermark.png" /> <b>Подложка</b> на верхней панели инструментов и выберите пункт меню <b>Настраиваемая подложка</b>. Откроется окно <b>Параметры подложки</b>.</li>
<li>Выберите тип подложки, которую требуется вставить:
<ul>
<li>Используйте опцию <b>Текстовая подложка</b> и настройте доступные параметры:
<p><img alt="Окно Параметры подложки" src="../images/watermark_settings.png" /></p>
<ul>
<li><b>Язык</b> - выберите из списка один из доступных языков,</li>
<li><b>Текст</b> - выберите один из доступных примеров текста на выбранном языке. Для русского языка доступны следующие тексты подложки: <em>ДЛЯ СЛУЖЕБНОГО ПОЛЬЗОВАНИЯ</em>, <em>ДСП</em>, <em>КОПИРОВАТЬ НЕ РАЗРЕШАЕТСЯ</em>, <em>КОПИЯ</em>, <em>ЛИЧНОЕ</em>, <em>ОБРАЗЕЦ</em>, <em>ОРИГИНАЛ</em>, <em>СЕКРЕТНО</em>, <em>СОВ. СЕКРЕТНО</em>, <em>СОВЕРШЕННО СЕКРЕТНО</em>, <em>СРОЧНО</em>, <em>ЧЕРНОВИК</em>.</li>
<li><b>Шрифт</b> - выберите название шрифта и его размер из соответствующих выпадающих списков. Используйте расположенные справа значки, чтобы задать цвет шрифта или применить один из стилей оформления шрифта: <em>Полужирный</em>, <em>Курсив</em>, <em>Подчеркнутый</em>, <em>Зачеркнутый</em>,</li>
<li><b>Полупрозрачный</b> - установите эту галочку, если вы хотите применить прозрачность,</li>
<li><b>Расположение</b> - выберите опцию <b>По диагонали</b> или <b>По горизонтали</b>.</li>
</ul>
</li>
<li>Используйте опцию <b>Графическая подложка</b> и настройте доступные параметры:
<p><img alt="Окно Параметры подложки" src="../images/watermark_settings2.png" /></p>
<ul>
<li>Выберите источник графического файла, используя одну из кнопок: <b>Из файла</b> или <b>По URL</b> - изображение будет отображено в окне предварительного просмотра справа,</li>
<li><b>Масштаб</b> - выберите нужное значение масштаба из доступных: <em>Авто</em>, <em>500%</em>, <em>200%</em>, <em>150%</em>, <em>100%</em>, <em>50%</em>.</li>
</ul>
</li>
</ul>
</li>
<li>Нажмите кнопку <b>OK</b>.</li>
</ol>
<p>Чтобы отредактировать добавленную подложку, откройте окно <b>Параметры подложки</b> как описано выше, измените нужные параметры и нажмите кнопку <b>OK</b>.</p>
<p>Чтобы удалить добавленную подложку, нажмите значок <img alt="Значок Подложка" src="../images/watermark.png" /> <b>Подложка</b> на вкладке <b>Макет</b> верхней панели инструментов и выберите в меню опцию <b>Удалить подложку</b>. Также можно использовать опцию <b>Нет</b> в окне <b>Параметры подложки</b>.</p>
</div>
</body>
</html>

@ -0,0 +1,54 @@
<!DOCTYPE html>
<html>
<head>
<title>Вставка символов и знаков</title>
<meta charset="utf-8" />
<meta name="description" content="Советы по совместному редактированию" />
<link type="text/css" rel="stylesheet" href="../editor.css" />
<script type="text/javascript" src="../callback.js"></script>
<script type="text/javascript" src="../search/js/page-search.js"></script>
</head>
<body>
<div class="mainpart">
<div class="search-field">
<input id="search" class="searchBar" placeholder="Search" type="text" onkeypress="doSearch(event)">
</div>
<h1>Вставка символов и знаков</h1>
<p>При работе может возникнуть необходимость поставить символ, которого нет на вашей клавиатуре. Для вставки таких символов используйте функцию <img alt="Таблица символов иконка" src="../images/vector.png" /><b>Вставить символ</b>.</p>
<p>Для этого выполните следующие шаги:</p>
<ul>
<li>установите курсор, куда будет помещен символ,</li>
<li>перейдите на вкладку <b>Вставка</b> верхней панели инструментов,</li>
<li>
щелкните по значку <img alt="Таблица символов иконка" src="../images/vector.png" /><b>Символ</b>,
<p><img alt="Таблица символов панель слева" src="../images/insert_symbol_window.png" /></p>
</li>
<li>в открывшемся окне выберите необходимый символ,</li>
<li>
<p>чтобы быстрее найти нужный символ, используйте раздел <b>Набор</b>. В нем все символы распределены по группам, например, выберите «Символы валют», если нужно вставить знак валют.</p>
<p>Если же данный символ отсутствует в наборе, выберите другой шрифт. Во многих из них также есть символы, отличные от стандартного набора.</p>
<p>Или же впишите в строку шестнадцатеричный <b>Код знака из Юникод</b> нужного вам символа. Данный код можно найти в <b>Таблице символов</b>.</p>
<p>Для быстрого доступа к нужным символам также используйте <b>Ранее использовавшиеся символы</b>, где хранятся несколько последних использованных символов,</p>
</li>
<li>нажмите <b>Вставить</b>. Выбранный символ будет добавлен в документ.</li>
</ul>
<h2>Вставка символов ASCII</h2>
<p>Для добавления символов также используется таблица символов ASCII.</p>
<p>Для этого зажмите клавишу ALT и при помощи цифровой клавиатуры введите код знака.</p>
<p class="note"><b>Обратите внимание</b>: убедитесь, что используете цифровую клавиатуру, а не цифры на основной клавиатуре. Чтобы включить цифровую клавиатуру, нажмите клавишу Num Lock.</p>
<p>Например, для добавления символа параграфа (§) нажмите и удерживайте клавишу ALT, введите цифры 789, а затем отпустите клавишу ALT.</p>
<h2>Вставка символов при помощи таблицы символов</h2>
<p>С помощью таблицы символов Windows так же можно найти символы, которых нет на клавиатуре. Чтобы открыть данную таблицу, выполните одно из следующих действий:</p>
<ul>
<li>В строке Поиск напишите «Таблица символов» и откройте ее</li>
<li>
Одновременно нажмите клавиши Win+R, в появившемся окне введите <code>charmap.exe</code> и щелкните ОК.
<p><img alt="Таблица символов окно" src="../images/insert_symbols_windows.png" /></p>
</li>
</ul>
<p>В открывшемся окне <b>Таблица символов</b> выберите один из представленных <b>Набор символов</b>, их <b>Группировку</b> и <b>Шрифт</b>. Далее щелкните на нужные символы, скопируйте их в буфер обмена и вставьте в нужное место в документе.</p>
</div>
</body>
</html>

@ -0,0 +1,29 @@
<!DOCTYPE html>
<html>
<head>
<title>Настройка уровня структуры абзаца</title>
<meta charset="utf-8" />
<meta name="description" content="Настройте уровень структуры абзаца" />
<link type="text/css" rel="stylesheet" href="../editor.css" />
<script type="text/javascript" src="../callback.js"></script>
<script type="text/javascript" src="../search/js/page-search.js"></script>
</head>
<body>
<div class="mainpart">
<div class="search-field">
<input id="search" class="searchBar" placeholder="Search" type="text" onkeypress="doSearch(event)">
</div>
<h1>Настройка уровня структуры абзаца</h1>
<p>Уровень структуры обозначает уровень абзаца в структуре документа. Доступны следующие уровни: <em>Основной текст</em>, <em>Уровень 1</em> - <em>Уровень 9</em>. Уровень структуры можно задать разными способами, например, используя <a href="../UsageInstructions/FormattingPresets.htm" onclick="onhyperlinkclick(this)">стили заголовков</a>: при назначении абзацу какого-либо стиля заголовка (<em>Заголовок 1</em> - <em>Заголовок 9</em>), абзац приобретает соответствующий уровень структуры. Если назначать уровень абзаца, используя дополнительные параметры абзаца, абзац приобретает только уровень структуры, тогда как его стиль не меняется. Уровень структуры также можно изменить на панели <a href="../UsageInstructions/CreateTableOfContents.htm#navigation" onclick="onhyperlinkclick(this)"><b>Навигация</b></a> слева, используя опции контекстного меню.</p>
<p>Чтобы изменить уровень структуры абзаца, используя дополнительные параметры абзаца,</p>
<ol>
<li>щелкните по тексту правой кнопкой мыши и выберите опцию <b>Дополнительные параметры абзаца</b> из контекстного меню или используйте опцию <b>Дополнительные параметры</b> на правой боковой панели,</li>
<li>откройте окно <b>Абзац - дополнительные параметры</b>, перейдите на вкладку <b>Отступы и интервалы</b>,</li>
<li>выберите нужный уровень структуры из списка <b>Уровень структуры</b>.</li>
<li>нажмите кнопку <b>OK</b>, чтобы применить изменения.</li>
</ol>
<p><img alt="Дополнительные параметры абзаца - Отступы и интервалы" src="../images/paradvsettings_indents.png" /></p>
</div>
</body>
</html>

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

Loading…
Cancel
Save