Commit 9cb5bf3b authored by alexey.musinov's avatar alexey.musinov

Merge branch 'develop' of https://github.com/ONLYOFFICE/sdkjs into develop

parents 028b208a 112a65be
......@@ -1994,12 +1994,15 @@ var editor;
* Делает активной указанную ячейку
* @param {String} reference Ссылка на ячейку вида A1 или R1C1
*/
spreadsheet_api.prototype.asc_findCell = function(reference) {
if(this.wb.cellEditor.isOpened) return;
spreadsheet_api.prototype.asc_findCell = function (reference) {
if (this.wb.cellEditor.isOpened) {
return;
}
var d = this.wb.findCell(reference);
if (!d) {
this.handlers.trigger("asc_onError", c_oAscError.ID.InvalidReferenceOrName, c_oAscError.Level.NoCritical);
if (!this.isViewMode) {
this.handlers.trigger("asc_onError", c_oAscError.ID.InvalidReferenceOrName, c_oAscError.Level.NoCritical);
}
return;
}
......
......@@ -2247,14 +2247,13 @@
// Поиск ячейки по ссылке
WorkbookView.prototype.findCell = function(reference) {
var ws = this.getWorksheet(), retRange;
var ws = this.getWorksheet();
// Останавливаем ввод данных в редакторе ввода
if (ws.getCellEditMode()) {
this._onStopCellEditing();
}
return ws.findCell(reference);
return ws.findCell(reference, this.controller.settings.isViewerMode);
};
WorkbookView.prototype.getDefinedNames = function(defNameListId) {
......@@ -2297,8 +2296,27 @@
defNameId = defNameId ? defNameId.nodeId : null;
}
ws._isLockedDefNames(editDefinedNamesCallback, defNameId);
var callback = function() {
ws._isLockedDefNames(editDefinedNamesCallback, defNameId);
};
var tableRange;
if(oldName && true === oldName.isTable)
{
var table = ws.model.autoFilters._getFilterByDisplayName(oldName.Name);
if(table)
{
tableRange = table.Ref;
}
}
if(tableRange)
{
ws._isLockedCells( tableRange, null, callback );
}
else
{
callback();
}
};
WorkbookView.prototype.delDefinedNames = function(oldName) {
......
......@@ -11074,65 +11074,74 @@
return oneUser ? onReplaceCallback( true ) : this._isLockedCells( aReplaceCells[options.indexInArray], /*subType*/null, onReplaceCallback );
};
WorksheetView.prototype.findCell = function ( reference ) {
var range = AscCommonExcel.g_oRangeCache.getRange3D(reference) || AscCommonExcel.g_oRangeCache.getAscRange(reference);
if ( !range ) {
/*TODO: сделать поиск по названиям автофигур, должен искать до того как вызвать поиск по именованным диапазонам*/
WorksheetView.prototype.findCell = function (reference, isViewerMode) {
var range = AscCommonExcel.g_oRangeCache.getRange3D(reference) ||
AscCommonExcel.g_oRangeCache.getAscRange(reference);
if (!range) {
if (isViewerMode) {
return range;
}
var defName = this.model.workbook.getDefinesNames( reference, this.model.workbook.getActiveWs().getId() ), sheetName, ref;
if ( !defName ) {
if ( this.collaborativeEditing.getGlobalLock() || !this.handlers.trigger( "getLockDefNameManagerStatus" ) ) {
this.handlers.trigger( "onErrorEvent", c_oAscError.ID.LockCreateDefName, c_oAscError.Level.NoCritical );
/*TODO: сделать поиск по названиям автофигур, должен искать до того как вызвать поиск по именованным диапазонам*/
var defName = this.model.workbook.getDefinesNames(reference,
this.model.workbook.getActiveWs().getId()), sheetName, ref;
if (!defName) {
if (this.collaborativeEditing.getGlobalLock() ||
!this.handlers.trigger("getLockDefNameManagerStatus")) {
this.handlers.trigger("onErrorEvent", c_oAscError.ID.LockCreateDefName,
c_oAscError.Level.NoCritical);
this._updateSelectionNameAndInfo();
return true;
}
var actRange = this.getActiveRangeObj(), ascRange, mc = this.model.getMergedByCell( actRange.startRow, actRange.startCol ), c1 = mc ? mc.c1 : actRange.c1, r1 = mc ? mc.r1 : actRange.r1, ar_norm = actRange.normalize(), mc_norm = mc ? mc.normalize() : null, c2 = mc_norm ? ( mc_norm.isEqual( ar_norm ) ? mc_norm.c1 : ar_norm.c2 ) : ar_norm.c2, r2 = mc_norm ? ( mc_norm.isEqual( ar_norm ) ? mc_norm.r1 : ar_norm.r2 ) : ar_norm.r2;
var actRange = this.getActiveRangeObj(), ascRange, mc = this.model.getMergedByCell(actRange.startRow,
actRange.startCol), c1 = mc ? mc.c1 : actRange.c1, r1 = mc ? mc.r1 :
actRange.r1, ar_norm = actRange.normalize(), mc_norm = mc ? mc.normalize() : null, c2 = mc_norm ?
( mc_norm.isEqual(ar_norm) ? mc_norm.c1 : ar_norm.c2 ) : ar_norm.c2, r2 = mc_norm ?
( mc_norm.isEqual(ar_norm) ? mc_norm.r1 : ar_norm.r2 ) : ar_norm.r2;
ascRange = new asc_Range( c1, r1, c2, r2 );
defName = this.model.workbook.editDefinesNames( null, new Asc.asc_CDefName( reference, this.model.getName() + "!" + ascRange.getAbsName() ) );
ascRange = new asc_Range(c1, r1, c2, r2);
defName = this.model.workbook.editDefinesNames(null,
new Asc.asc_CDefName(reference, this.model.getName() + "!" + ascRange.getAbsName()));
}
if ( defName ) {
if (defName) {
range = true;
this._isLockedDefNames( null, defName.nodeId );
this._isLockedDefNames(null, defName.nodeId);
if ( defName.isTable ) {
sheetName = defName.Ref.split( "!" );
if (defName.isTable) {
sheetName = defName.Ref.split("!");
ref = sheetName[1];
sheetName = sheetName[0];
if ( sheetName[0] == "'" && sheetName[sheetName.length - 1] == "'" ) {
sheetName = sheetName.substring( 1, sheetName.length - 1 );
if (sheetName[0] == "'" && sheetName[sheetName.length - 1] == "'") {
sheetName = sheetName.substring(1, sheetName.length - 1);
}
range = AscCommonExcel.g_oRangeCache.getAscRange( ref );
sheetName = this.model.workbook.getWorksheetByName( sheetName );
}
else if ( defName.parsedRef.RefPos.length == 1 && defName.parsedRef.outStack.length == 1 ) {
range = AscCommonExcel.g_oRangeCache.getAscRange(ref);
sheetName = this.model.workbook.getWorksheetByName(sheetName);
} else if (defName.parsedRef.RefPos.length == 1 && defName.parsedRef.outStack.length == 1) {
ref = defName.parsedRef.outStack[0];
if ( ref.type == AscCommonExcel.cElementType.cell3D ) {
range = ref.range.getBBox0().clone( true );
if (ref.type == AscCommonExcel.cElementType.cell3D) {
range = ref.range.getBBox0().clone(true);
sheetName = ref.getWS();
}
else if ( ref.type == AscCommonExcel.cElementType.cellsRange3D && ref.wsFrom == ref.wsTo ) {
range = ref.getRange()[0].getBBox0().clone( true );
sheetName = this.model.workbook.getWorksheetById( ref.wsFrom );
} else if (ref.type == AscCommonExcel.cElementType.cellsRange3D && ref.wsFrom == ref.wsTo) {
range = ref.getRange()[0].getBBox0().clone(true);
sheetName = this.model.workbook.getWorksheetById(ref.wsFrom);
}
}
if ( range && sheetName ) {
if (range && sheetName) {
ar_norm = range.normalize();
mc = sheetName.getMergedByCell( ar_norm.r1, ar_norm.c1 );
mc = sheetName.getMergedByCell(ar_norm.r1, ar_norm.c1);
range = {range: mc ? mc : range, sheet: sheetName.getName()};
}
}
}
else {
var ar_norm = range.normalize(), mc = this.model.getMergedByCell( ar_norm.r1, ar_norm.c1 );
} else {
var ar_norm = range.normalize(), mc = this.model.getMergedByCell(ar_norm.r1, ar_norm.c1);
range = {range: mc ? mc : range, sheet: this.model.getName()};
}
return range;// ? this.setSelection(range, true) : null;
return range;
};
/* Ищет дополнение для ячейки */
......@@ -13288,7 +13297,15 @@
History.EndTransaction();
};
t._isLockedCells( tablePart.Ref, null, callback );
var lockRange = t.af_getRangeForChangeTableInfo(tablePart, optionType, val);
if(lockRange)
{
t._isLockedCells( lockRange, null, callback );
}
else
{
callback();
}
}
};
......@@ -13321,6 +13338,50 @@
return res;
};
WorksheetView.prototype.af_getRangeForChangeTableInfo = function(tablePart, optionType, val)
{
var res = null;
switch(optionType)
{
case c_oAscChangeTableStyleInfo.columnBanded:
case c_oAscChangeTableStyleInfo.columnFirst:
case c_oAscChangeTableStyleInfo.columnLast:
case c_oAscChangeTableStyleInfo.rowBanded:
case c_oAscChangeTableStyleInfo.filterButton:
{
res = tablePart.Ref;
break;
}
case c_oAscChangeTableStyleInfo.rowTotal:
{
if(val === false)
{
res = tablePart.Ref;
}
else
{
res = new Asc.Range(tablePart.Ref.c1, tablePart.Ref.r1, tablePart.Ref.c2, tablePart.Ref.r2 + 1);
}
break;
}
case c_oAscChangeTableStyleInfo.rowHeader:
{
if(val === false)
{
res = tablePart.Ref;
}
else
{
res = new Asc.Range(tablePart.Ref.c1, tablePart.Ref.r1 - 1, tablePart.Ref.c2, tablePart.Ref.r2);
}
break;
}
}
return res;
};
WorksheetView.prototype.af_insertCellsInTable = function(tableName, optionType)
{
var t = this;
......@@ -13769,7 +13830,22 @@
History.EndTransaction();
};
t._isLockedCells( range, null, callback );
//TODO возможно не стоит лочить весь диапазон. проверить: когда один ползователь меняет диапазон, другой снимает а/ф с ф/т. в этом случае в deleteAutoFilter передавать не range а имя ф/т
var table = t.model.autoFilters._getFilterByDisplayName(tableName);
var tableRange = null !== table ? table.Ref : null;
var lockRange = range;
if(null !== tableRange)
{
var r1 = tableRange.r1 < range.r1 ? tableRange.r1 : range.r1;
var r2 = tableRange.r2 > range.r2 ? tableRange.r2 : range.r2;
var c1 = tableRange.c1 < range.c1 ? tableRange.c1 : range.c1;
var c2 = tableRange.c2 > range.c2 ? tableRange.c2 : range.c2;
lockRange = new Asc.Range(c1, r1, c2, r2);
}
t._isLockedCells( lockRange, null, callback );
};
WorksheetView.prototype.af_checkChangeRange = function(range) {
......
......@@ -286,7 +286,7 @@ CShowPr.prototype.Read_FromBinary = function(r){
this.penClr = new AscFormat.CUniColor();
this.penClr.Read_FromBinary(r);
}
this.present = r.Read_FromBinary(r);
this.present = r.GetBool();
if(Flags & 16){
this.show = {};
this.show.showAll = r.GetBool();
......
This diff is collapsed.
......@@ -431,6 +431,16 @@ CDocumentControllerBase.prototype.SetParagraphBorders = function(Borders){};
* @param bDelete
*/
CDocumentControllerBase.prototype.SetParagraphFramePr = function(FramePr, bDelete){};
/**
* Уменьшаем или увеличиваем (по специальной таблице) размер шрифта в параграфе.
* @param {boolean} bIncrease
*/
CDocumentControllerBase.prototype.IncreaseOrDecreaseParagraphFontSize = function(bIncrease){};
/**
* Уменьшаем или увеличиваем (по специальной таблице) отступы в параграфе.
* @param {boolean} bIncrease
*/
CDocumentControllerBase.prototype.IncreaseOrDecreaseParagraphIndent = function(bIncrease){};
/**
* Добавляем элемент в параграф.
......
......@@ -217,6 +217,26 @@ CDrawingsController.prototype.SetParagraphFramePr = function(FramePr, bDelete)
{
// Не добавляем и не работаем с рамками в автофигурах
};
CDrawingsController.prototype.IncreaseOrDecreaseParagraphFontSize = function(bIncrease)
{
this.DrawingObjects.paragraphIncDecFontSize(bIncrease);
};
CDrawingsController.prototype.IncreaseOrDecreaseParagraphIndent = function(bIncrease)
{
if (true != this.DrawingObjects.isSelectedText())
{
var ParaDrawing = this.DrawingObjects.getMajorParaDrawing();
if (null != ParaDrawing)
{
var Paragraph = ParaDrawing.Parent;
Paragraph.IncDec_Indent(bIncrease);
}
}
else
{
this.DrawingObjects.paragraphIncDecIndent(bIncrease);
}
};
CDrawingsController.prototype.AddToParagraph = function(oItem, bRecalculate)
{
......
......@@ -691,6 +691,30 @@ CFootnotesController.prototype.SetParagraphFramePr = function(FramePr, bDelete)
{
// TODO: Реализовать, скорее всего ничего тут не надо делать
};
CFootnotesController.prototype.IncreaseOrDecreaseParagraphFontSize = function(bIncrease)
{
// TODO: Доделать селект и курсор
if (true === this.Selection.Use)
{
}
else
{
if (null !== this.CurFootnote)
this.CurFootnote.Paragraph_IncDecFontSize(bIncrease);
}
};
CFootnotesController.prototype.IncreaseOrDecreaseParagraphIndent = function(bIncrease)
{
// TODO: Доделать селект и курсор
if (true === this.Selection.Use)
{
}
else
{
if (null !== this.CurFootnote)
this.CurFootnote.Paragraph_IncDecIndent(bIncrease);
}
};
CFootnotesController.prototype.AddToParagraph = function(oItem, bRecalculate)
{
......
......@@ -497,12 +497,14 @@ CShape.prototype.applyParentTransform = function(transform)
CShape.prototype.recalculateShapeStyleForParagraph = function()
{
var styles = editor.WordControl.m_oLogicDocument.Styles;
this.textStyleForParagraph = {TextPr: styles.Default.TextPr.Copy(), ParaPr: styles.Default.ParaPr.Copy()};
this.textStyleForParagraph = {TextPr: g_oDocumentDefaultTextPr.Copy(), ParaPr: g_oDocumentDefaultParaPr.Copy()};
this.textStyleForParagraph.ParaPr.Merge( styles.Default.ParaPr.Copy() );
this.textStyleForParagraph.TextPr.Merge( styles.Default.TextPr.Copy() );
var DefId = styles.Default.Paragraph;
var DefaultStyle = styles.Style[DefId];
this.textStyleForParagraph.ParaPr.Merge( g_oDocumentDefaultParaPr );
this.textStyleForParagraph.TextPr.Merge( g_oDocumentDefaultTextPr );
if(DefaultStyle)
{
this.textStyleForParagraph.ParaPr.Merge( DefaultStyle.ParaPr );
......
......@@ -185,6 +185,15 @@ CHdrFtrController.prototype.SetParagraphFramePr = function(FramePr, bDelete)
{
this.HdrFtr.Set_ParagraphFramePr(FramePr, bDelete);
};
CHdrFtrController.prototype.IncreaseOrDecreaseParagraphFontSize = function(bIncrease)
{
this.HdrFtr.Paragraph_IncDecFontSize(bIncrease);
};
CHdrFtrController.prototype.IncreaseOrDecreaseParagraphIndent = function(bIncrease)
{
this.HdrFtr.Paragraph_IncDecIndent(bIncrease);
};
CHdrFtrController.prototype.AddToParagraph = function(oItem, bRecalculate)
{
......
......@@ -161,6 +161,14 @@ CLogicDocumentController.prototype.SetParagraphFramePr = function(FramePr, bDele
{
this.LogicDocument.controller_SetParagraphFramePr(FramePr, bDelete);
};
CLogicDocumentController.prototype.IncreaseOrDecreaseParagraphFontSize = function(bIncrease)
{
this.LogicDocument.controller_IncreaseOrDecreaseParagraphFontSize(bIncrease);
};
CLogicDocumentController.prototype.IncreaseOrDecreaseParagraphIndent = function(bIncrease)
{
this.LogicDocument.controller_IncreaseOrDecreaseParagraphIndent(bIncrease);
};
CLogicDocumentController.prototype.AddToParagraph = function(oItem)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment