From 134ddd56f0a57eeb114fcf8695ddf2daaddf69ea Mon Sep 17 00:00:00 2001
From: "Igor.Zotov" <Igor.Zotov@OnlyOffice.com>
Date: Wed, 29 Oct 2014 08:30:53 +0000
Subject: [PATCH] =?UTF-8?q?=D1=80=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?=
 =?UTF-8?q?=D1=80=D0=B8=D0=BD=D0=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@59285 954022d7-b5bf-4e40-9824-e11837661b57
---
 Excel/model/autofilters.js  | 21 +++++++++++----------
 Excel/view/WorksheetView.js | 24 ++++++++++++++----------
 2 files changed, 25 insertions(+), 20 deletions(-)

diff --git a/Excel/model/autofilters.js b/Excel/model/autofilters.js
index 155444f0c..9df09fa12 100644
--- a/Excel/model/autofilters.js
+++ b/Excel/model/autofilters.js
@@ -2174,7 +2174,7 @@ var gUndoInsDelCellsFlag = true;
 				var aWs = this._getCurrentWS();
 				var tableParts = aWs.TableParts;
 				var autoFilter = aWs.AutoFilter;
-				var result = true;
+				var result = null;
 				
 				if(DeleteColumns || DeleteRows)
 				{
@@ -2255,7 +2255,7 @@ var gUndoInsDelCellsFlag = true;
 							//если селектом засхвачена не вся таблица, то выдаём ошибку и возвращаем false
 							if(activeCells.c1 <= tableRange.c1 && activeCells.r1 <= tableRange.r1 && activeCells.c2 >= tableRange.c2 && activeCells.r2 >= tableRange.r2)
 							{	
-								result = 'changeAutoFilter';
+								result = true;
 							}
 							else
 							{
@@ -2326,19 +2326,19 @@ var gUndoInsDelCellsFlag = true;
 						//если сдвигаем данный фильтр
 						if(DeleteCellsAndShiftLeft && tableRange.c1 > activeCells.c1 && tableRange.r1 >= activeCells.r1 && tableRange.r2 <= activeCells.r2)
 						{
-							result = 'changeAutoFilter';
+							result = true;
 						}
 						else if(DeleteCellsAndShiftTop && tableRange.r1 > activeCells.r1 && tableRange.c1 >= activeCells.c1 && tableRange.c2 <= activeCells.c2)
 						{
-							result = 'changeAutoFilter';
+							result = true;
 						}
 						else if(InsertCellsAndShiftRight && tableRange.c1 >= activeCells.c1 && tableRange.r1 >= activeCells.r1 && tableRange.r2 <= activeCells.r2)
 						{
-							result = 'changeAutoFilter';
+							result = true;
 						}
 						else if(InsertCellsAndShiftDown && tableRange.r1 >= activeCells.r1 && tableRange.c1 >= activeCells.c1 && tableRange.c2 <= activeCells.c2)
 						{
-							result = 'changeAutoFilter';
+							result = true;
 						}
 					}
 				}
@@ -2352,17 +2352,18 @@ var gUndoInsDelCellsFlag = true;
 					{
 						if(activeCells.c1 <= tableRange.c1 && activeCells.r1 <= tableRange.r1 && activeCells.c2 >= tableRange.c2 && activeCells.r2 >= tableRange.r2)
 						{
-							result = 'changeAutoFilter';
+							result = true;
 						}
 						else if((DeleteCellsAndShiftLeft || DeleteCellsAndShiftTop) && activeCells.c1 <= tableRange.c1 && activeCells.r1 <= tableRange.r1 && activeCells.c2 >= tableRange.c2 && activeCells.r2 >= tableRange.r1)
-							result = 'changeAutoFilter'
+							result = true;
 					}
 					//если выделенная область находится до а/ф
 					if(activeCells.c2 < tableRange.c1 && activeCells.r1 <= tableRange.r1 && activeCells.r2 >= tableRange.r2)
-						result = 'changeAutoFilter';
+						result = true;
 					else if(activeCells.r2 < tableRange.r1 && activeCells.c1 <= tableRange.c1 && activeCells.c2 >= tableRange.c2)
-						result = 'changeAutoFilter';
+						result = true;
 				}
+
 				return result;
 			},
 			//если активная область полностью лежит внутри форматированной таблицы, но не равно ей
diff --git a/Excel/view/WorksheetView.js b/Excel/view/WorksheetView.js
index e4a3f3c79..28e360946 100644
--- a/Excel/view/WorksheetView.js
+++ b/Excel/view/WorksheetView.js
@@ -9537,13 +9537,14 @@
 					range = t.model.getRange3(_updateRangeIns.r1, _updateRangeIns.c1, _updateRangeIns.r2, _updateRangeIns.c2);
 					switch (val) {
 						case c_oAscInsertOptions.InsertCellsAndShiftRight:
+							isCheckChangeAutoFilter = t.autoFilters.isActiveCellsCrossHalfFTable(_updateRangeIns, c_oAscInsertOptions.InsertCellsAndShiftRight, prop, bUndoRedo);
+							if(!isCheckChangeAutoFilter)
+								return;
+
 							functionModelAction = function () {
-								var isCheckChangeAutoFilter = t.autoFilters.isActiveCellsCrossHalfFTable(_updateRangeIns, c_oAscInsertOptions.InsertCellsAndShiftRight, prop, bUndoRedo);
-								if(!isCheckChangeAutoFilter)
-									return;
 								if (range.addCellsShiftRight()) {
 									fullRecalc = true;
-									if(isCheckChangeAutoFilter == 'changeAutoFilter')
+									if(isCheckChangeAutoFilter === true)
 									{
 										if(gUndoInsDelCellsFlag == true)
 											t.autoFilters.insertColumn(prop, _updateRangeIns, arn);
@@ -9565,13 +9566,14 @@
 							}
 							break;
 						case c_oAscInsertOptions.InsertCellsAndShiftDown:
+							isCheckChangeAutoFilter = t.autoFilters.isActiveCellsCrossHalfFTable(_updateRangeIns, c_oAscInsertOptions.InsertCellsAndShiftDown, prop, bUndoRedo);
+							if(!isCheckChangeAutoFilter)
+								return;
+
 							functionModelAction = function () {
-								var isCheckChangeAutoFilter = t.autoFilters.isActiveCellsCrossHalfFTable(_updateRangeIns, c_oAscInsertOptions.InsertCellsAndShiftDown, prop, bUndoRedo);
-								if(!isCheckChangeAutoFilter)
-									return;
 								if (range.addCellsShiftBottom()) {
 									fullRecalc = true;
-									if(isCheckChangeAutoFilter == 'changeAutoFilter')
+									if(isCheckChangeAutoFilter === true)
 									{
 										if(gUndoInsDelCellsFlag == true)
 											t.autoFilters.insertRows(prop,_updateRangeIns, _updateRangeIns);
@@ -9657,7 +9659,7 @@
 								//t.autoFilters.isEmptyAutoFilters(arn);
 								if (range.deleteCellsShiftLeft()) {
 									fullRecalc = true;
-									if(isCheckChangeAutoFilter == 'changeAutoFilter')
+									if(isCheckChangeAutoFilter === true)
 										t.autoFilters.insertColumn(prop, _updateRangeDel, arn, c_oAscDeleteOptions.DeleteCellsAndShiftLeft);
 									t.cellCommentator.updateCommentsDependencies(false, val, _updateRangeDel);
 									t.objectRender.updateDrawingObject(false, val, _updateRangeDel);
@@ -9684,7 +9686,7 @@
 									//t.autoFilters.isEmptyAutoFilters(arn);
 									if (range.deleteCellsShiftUp()) {
 										fullRecalc = true;
-										if(isCheckChangeAutoFilter == 'changeAutoFilter')
+										if(isCheckChangeAutoFilter === true)
 											t.autoFilters.insertRows(prop, _updateRangeDel, _updateRangeDel, c_oAscDeleteOptions.DeleteCellsAndShiftTop);
 										t.cellCommentator.updateCommentsDependencies(false, val, _updateRangeDel);
 										t.objectRender.updateDrawingObject(false, val, _updateRangeDel);
@@ -9704,6 +9706,7 @@
 							isCheckChangeAutoFilter = t.autoFilters.isActiveCellsCrossHalfFTable(_updateRangeDel, c_oAscDeleteOptions.DeleteColumns, prop, bUndoRedo);
 							if(!isCheckChangeAutoFilter)
 								return;
+
 							functionModelAction = function () {
 								fullRecalc = true;
 								History.Create_NewPoint();
@@ -9728,6 +9731,7 @@
 							isCheckChangeAutoFilter = t.autoFilters.isActiveCellsCrossHalfFTable(_updateRangeDel, c_oAscDeleteOptions.DeleteRows, prop, bUndoRedo);
 							if(!isCheckChangeAutoFilter)
 								return;
+
 							functionModelAction = function () {
 								fullRecalc = true;
 								History.Create_NewPoint();
-- 
2.30.9