Commit aebde4b0 authored by Igor.Zotov's avatar Igor.Zotov Committed by Alexander.Trofimov

при вствке форматированной таблицы добавил диалоговое с возможностью выбора её...

при вствке форматированной таблицы добавил диалоговое с возможностью выбора её параметров(тестовый пример).

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@47166 954022d7-b5bf-4e40-9824-e11837661b57
parent 3d3aba2c
......@@ -2030,6 +2030,16 @@
<input id="valueFilterSelect2" class="dialogEntry"></input>
</td></tr></table>
</div>
<div id="addFilterDialog" class="dialog" title='table formatting'>
<table>
<tr><td>
<input id="ref" class="dialogEntry"></input>
</td></tr>
<tr><td>
<input id="isTitle" class="dialogEntry" type="checkbox" name="filterType" value="1" />Table with title</input>
</td></tr>
</table>
</div>
<div id='drawingObjectsMenu'>
<div id='imageSelector' style='font-size: 12px; visibility: hidden;'>
<input type='text' id='imageSelectorUrl' style='width: 340px; margin: 10px;'/>
......
......@@ -545,9 +545,9 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
this.wb.resize();
},
asc_addAutoFilter: function(lTable){
asc_addAutoFilter: function(lTable, isTitle){
var ws = this.wb.getWorksheet();
var result = ws.addAutoFilter(lTable);
var result = ws.addAutoFilter(lTable, isTitle);
return result;
},
......@@ -561,6 +561,13 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
ws.sortColFilter(type,cellId);
},
asc_getAutoFilterOptions: function(nameOption)
{
var ws = this.wb.getWorksheet();
var result = ws.getAutoFilterOptions(nameOption);
return result;
},
asc_setMobileVersion: function (isMobile){
this.isMobileVersion = isMobile;
this.options = (this.options || {});
......
$(function () {
var IsVisibleMenu = false, elem, contextGrad, gradient, gradSelectPosTop = 1, imgd, pix, colorSelecterClick, newColorSelected={r:255,g:0,b:0},lastColorSelected={r:255,g:0,b:0};
var autoFilterObj;
var ref;
var docTitle = window.location.toString().match(/&title=([^&]+)&/);
if (docTitle) {
......@@ -855,7 +856,21 @@
break;
}
case "td_auto_filter_local":{
api.asc_addAutoFilter(true);
//в случае если применен фильтр с форматированной таблицей или форматированная таблица не показываем диалоговое окно и сразу вызываем функцию
var defaultStyle = "TableStyleLight2";
var isApplyFormatTable = api.asc_getAutoFilterOptions("isApplyFormatTable");
if(isApplyFormatTable)
api.asc_addAutoFilter(defaultStyle);
else if(isApplyFormatTable == "error")
{
return;
}
else
{
ref = api.asc_getAutoFilterOptions("getRangeNewFilter");
//открываем диалоговое окно
$("#addFilterDialog").dialog("open");
}
break;
}
}
......@@ -2297,6 +2312,33 @@
}
]
});
$("#addFilterDialog").dialog({ autoOpen: false, closeOnEscape: false, dialogClass: 'dialogClass',
open: function() {
$('#ref').val(ref)
aDialogNames.push("addFilterDialog");
},
close: function() { aDialogNames.pop(); },
resizable: false, modal: true, width: '350px',
buttons: [
{
text: 'Ok',
click: function() {
var isTitle = false;
var defaultStyle = "TableStyleLight1";
if($('#isTitle')[0].checked)
isTitle = true;
api.asc_addAutoFilter(defaultStyle, isTitle);
$(this).dialog("close");
}
},
{
text: 'Cancel',
btCancel: "classButtonCancel",
click: function() { $(this).dialog("close"); }
}
]
});
$("#numericalFilter").click(function() {
$('#MenuAutoFilter').hide();
api.asc_enableKeyEvents(false);
......
......@@ -215,6 +215,7 @@
var endCell;
var rangeFilter;
var splitRange;
if(addNameColumn == undefined)
addNameColumn = true;
//callback
var onAddAutoFiltersCallback = function(success)
......@@ -576,7 +577,7 @@
}
else
{
tableColumns = t._generateColumnNameWithoutTitle(ws, mainAdjacentCells, isTurnOffHistory);
tableColumns = t._generateColumnNameWithoutTitle(ws, activeCells, isTurnOffHistory);
}
if(addNameColumn && !isTurnOffHistory)
activeCells.r2 = activeCells.r2 + 1;
......@@ -1752,6 +1753,44 @@
return false;
},
getAutoFilterOptions: function(ws, nameOption, activeCells)
{
var aWs = this._getCurrentWS(ws);
switch(nameOption)
{
case "isApplyFormatTable"://применена ли к выделенному диапазону форматированная таблица. возвращаем либо называние стиля(чтобы подсвечивать в менб миниатюры), либо false
{
var isMAddFilter = this._searchFilters(activeCells,false,ws,aWs);
if(isMAddFilter == "error")
return isMAddFilter;//нельзя применять к этому диапазону форматированную таблицы
if(aWs.TableParts)
{
for(var i = 0; i < aWs.TableParts.length; i++)
{
var ref = aWs.TableParts[i].Ref.split(":");
var startRange = this._idToRange(ref[0]);
var endRange = this._idToRange(ref[1]);
var tableRange = new Asc.Range(startRange.c1, startRange.r1, endRange.c1, endRange.r1);
if(activeCells.c1 >= tableRange.c1 && activeCells.c2 <= tableRange.c2 && activeCells.r1 >= tableRange.r1 && activeCells.r2 <= tableRange.r2)
return aWs.TableParts[i].TableStyleInfo.Name;//посылаемназвание стиля, чтобы подсветитьь его в меню
}
}
return false;//к данному диапазону не применены форматированные таблицы и конфликтов с другими фильтрами нет
}
case "getRangeNewFilter"://получаем предварительный диапазон перед открытием диалогового окна создания форматированной таблицы
{
var mainAdjacentCells;
if(activeCells.r1 == activeCells.r2 && activeCells.c1 == activeCells.c2)//если ячейка выделенная одна
mainAdjacentCells = this._getAdjacentCellsAF(activeCells,ws,aWs);
else//выделено > 1 ячейки
mainAdjacentCells = Asc.clone(activeCells);
var firstCellId = this._rangeToId(mainAdjacentCells);
var endCellId = this._rangeToId({r1: mainAdjacentCells.r2, c1: mainAdjacentCells.c2, r2: mainAdjacentCells.r2, c2: mainAdjacentCells.c2});
return firstCellId + ":" + endCellId
}
}
},
//при закрытии диалогового окна числового фильтра
_applyDigitalFilter: function(ar, ws, autoFiltersObject) {
//var numFil = this._searchInAllFilters(conFilter.id);
......
......@@ -9048,14 +9048,14 @@
this.arrActiveFormulaRanges = [];
},
addAutoFilter: function (lTable) {
addAutoFilter: function (lTable, isTitle) {
var t = this;
var ar = t.activeRange.clone(true);
var onChangeAutoFilterCallback = function (isSuccess) {
if (false === isSuccess)
return;
return t.autoFilters.addAutoFilter(t, lTable, ar);
return t.autoFilters.addAutoFilter(t, lTable, ar, undefined, false, isTitle);
};
this._isLockedAll (onChangeAutoFilterCallback);
},
......@@ -9087,6 +9087,14 @@
}
},
getAutoFilterOptions: function(nameOption)
{
var ar = this.activeRange.clone(true);
var t = this;
var result = t.autoFilters.getAutoFilterOptions(t, nameOption, ar);
return result;
},
_loadFonts: function (fontArr, callback) {
var originFonts = [];
var i, n, k = 0;
......
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