Commit 7190744e 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@47173 954022d7-b5bf-4e40-9824-e11837661b57
parent 2d320e25
......@@ -2033,9 +2033,9 @@
<div id="addFilterDialog" class="dialog" title='table formatting'>
<table>
<tr><td>
<input id="ref" class="dialogEntry"></input>
<input id="formatTableRange" class="dialogEntry"></input> <img class='ToolbarIcon ToolbarChangeRange' id='changeRangeFormatTable'>
</td></tr>
<tr><td>
<tr><td id = "titleArea">
<input id="isTitle" class="dialogEntry" type="checkbox" name="filterType" value="1" />Table with title</input>
</td></tr>
</table>
......
......@@ -561,10 +561,10 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
ws.sortColFilter(type,cellId);
},
asc_getAutoFilterOptions: function(nameOption)
asc_getAddFormatTableOptions: function()
{
var ws = this.wb.getWorksheet();
var result = ws.getAutoFilterOptions(nameOption);
var result = ws.getAddFormatTableOptions();
return result;
},
......
$(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) {
......@@ -478,6 +477,10 @@
$("#chartRange").val(val);
});
api.asc_registerCallback("asc_onSelectionRangeChanged", function (val) {
$("#formatTableRange").val(val);
});
api.asc_Init("../Fonts/");
//api.asc_setViewerMode(true);
......@@ -858,19 +861,17 @@
case "td_auto_filter_local":{
//в случае если применен фильтр с форматированной таблицей или форматированная таблица не показываем диалоговое окно и сразу вызываем функцию
var defaultStyle = "TableStyleLight2";
var isApplyFormatTable = api.asc_getAutoFilterOptions("isApplyFormatTable");
if(isApplyFormatTable)
api.asc_addAutoFilter(defaultStyle);
else if(isApplyFormatTable == "error")
{
return;
}
var addFilterOptions = api.asc_getAddFormatTableOptions();
//открываем диалоговое окно
var range = addFilterOptions.asc_getRange();
var isTitle = addFilterOptions.asc_getIsTitle();
var isTitleElem = $("#addFilterDialog").find('#isTitle');
if(isTitle)//в таком случае не ставим галочку
isTitleElem.attr('checked',false);
else
{
ref = api.asc_getAutoFilterOptions("getRangeNewFilter");
//открываем диалоговое окно
$("#addFilterDialog").dialog("open");
}
isTitleElem.attr('checked',true);
$("#addFilterDialog").find('#formatTableRange').val(range);
$("#addFilterDialog").dialog("open");
break;
}
}
......@@ -2234,6 +2235,21 @@
bIsReopenDialog = false;
});
/*$("#changeRangeFormatTable").click(function () {
bIsReopenDialog = true;
var selector = $(this);
var chartForm = $("#addFilterDialog");
if (selector.hasClass("ToolbarChangeRange")) {
selector.removeClass("ToolbarChangeRange").addClass("ToolbarChangeRange2");
chartForm.find("#titleArea").hide();
chartForm.dialog("close").dialog("open");
} else {
selector.removeClass("ToolbarChangeRange2").addClass("ToolbarChangeRange");
chartForm.find("#titleArea").show();
chartForm.dialog("close").dialog("open");
}
bIsReopenDialog = false;
});*/
$("#autoFilterCancel").click(function() { $('#MenuAutoFilter').hide(); });
$("#autoFilterOk").click(function() {
......@@ -2314,11 +2330,11 @@
});
$("#addFilterDialog").dialog({ autoOpen: false, closeOnEscape: false, dialogClass: 'dialogClass',
open: function() {
$('#ref').val(ref)
api.asc_setSelectDialogRangeMode(true);
aDialogNames.push("addFilterDialog");
},
close: function() { aDialogNames.pop(); },
resizable: false, modal: true, width: '350px',
close: function() { aDialogNames.pop(); api.asc_setSelectDialogRangeMode(false);},
resizable: false, modal: false, width: '350px',
buttons: [
{
text: 'Ok',
......
......@@ -167,6 +167,23 @@
asc_getSortState : function() { return this.sortVal; }
};
function AddFormatTableOptions () {
if ( !(this instanceof AddFormatTableOptions) ) {return new AddFormatTableOptions();};
this.range = null;
this.isTitle = null;
return this;
};
AddFormatTableOptions.prototype = {
constructor: AddFormatTableOptions,
asc_setRange : function(range) { this.range = range;},
asc_setIsTitle : function(isTitle) { this.isTitle = isTitle;},
asc_getRange : function() { return this.range; },
asc_getIsTitle : function() { return this.isTitle; }
};
/** @constructor */
function AutoFilters() {
......@@ -1753,42 +1770,41 @@
return false;
},
getAutoFilterOptions: function(ws, nameOption, activeCells)
getAddFormatTableOptions: function(ws,activeCells)
{
var aWs = this._getCurrentWS(ws);
switch(nameOption)
var objOptions = new AddFormatTableOptions();
/*var isMAddFilter = this._searchFilters(activeCells,false,ws,aWs);
if(isMAddFilter == "error")
return isMAddFilter;//нельзя применять к этому диапазону форматированную таблицы
if(aWs.TableParts)
{
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"://получаем предварительный диапазон перед открытием диалогового окна создания форматированной таблицы
for(var i = 0; i < aWs.TableParts.length; i++)
{
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
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;//к данному диапазону не применены форматированные таблицы и конфликтов с другими фильтрами нет*/
var isTitle = this._isAddNameColumn(ws, activeCells);
objOptions.asc_setIsTitle(isTitle);
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});
var sListName = ws.model.getName();
var ref = sListName + "!" + firstCellId + ":" + endCellId;
objOptions.asc_setRange(ref);
return objOptions;
},
//при закрытии диалогового окна числового фильтра
......@@ -4778,7 +4794,7 @@
}
}
}
return true;
return result;
},
_reDrawCurrentFilter: function(ws,fColumns, result, tableParts)
......@@ -5008,6 +5024,12 @@
prot["asc_getVisible"] = prot.asc_getVisible;
prot["asc_setVal"] = prot.asc_setVal;
prot["asc_setVisible"] = prot.asc_setVisible;
window["Asc"]["AddFormatTableOptions"] = window["Asc"].AddFormatTableOptions = AddFormatTableOptions;
prot = AddFormatTableOptions.prototype;
prot["asc_getRange"] = prot.asc_getRange;
prot["asc_getIsTitle"] = prot.asc_getIsTitle;
prot["asc_setRange"] = prot.asc_setRange;
prot["asc_setIsTitle"] = prot.asc_setIsTitle;
}
)(jQuery, window);
......@@ -9087,11 +9087,11 @@
}
},
getAutoFilterOptions: function(nameOption)
getAddFormatTableOptions: function(nameOption)
{
var ar = this.activeRange.clone(true);
var t = this;
var result = t.autoFilters.getAutoFilterOptions(t, nameOption, ar);
var result = t.autoFilters.getAddFormatTableOptions(t, ar);
return result;
},
......
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