Сохранение настроек фильтра при нажатии на ...
This commit is contained in:
@ -723,8 +723,8 @@ function findNodeOnNum(node,nodename,n)
|
||||
}
|
||||
return null;
|
||||
}
|
||||
//вернуть первый узел заданного типа
|
||||
function findNodeOnAttribute(node, nodename,Attribute,val)
|
||||
//Вернуть первый узел заданного типа
|
||||
function findNodeOnAttribute(node, nodename, Attribute, val)
|
||||
{
|
||||
if(node==null) return null;
|
||||
let n = node.firstChild;
|
||||
@ -739,19 +739,19 @@ function findNodeOnAttribute(node, nodename,Attribute,val)
|
||||
}
|
||||
//Вернуть номер узла по атрибуту среди себеподобных (нумерация с 0)
|
||||
function findNumNodeOnAttribute(node, nodename,Attribute,val)
|
||||
{ if(node==null) return -1;
|
||||
{
|
||||
if(node==null) return -1;
|
||||
let i=0;
|
||||
let n = node.firstChild;
|
||||
while (n != null)
|
||||
{if(n.nodeName.toLowerCase()==nodename.toLowerCase())
|
||||
{if(n.getAttribute(Attribute)==val) return i;
|
||||
while (n != null){
|
||||
if(n.nodeName.toLowerCase()==nodename.toLowerCase()){
|
||||
if(n.getAttribute(Attribute)==val) return i;
|
||||
i++;
|
||||
}
|
||||
n=n.nextSibling;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
//рекурсию не буду использовать, обойдусь массивом вложенности
|
||||
function findFirstNode(node, nodename)
|
||||
{
|
||||
@ -830,7 +830,11 @@ function findFirstNodeOnAttribute(node, nodename,Attribute,val)
|
||||
}
|
||||
return null;
|
||||
}
|
||||
//поиск узла по пути "type/objects/list/filter/column"
|
||||
/**
|
||||
* Поиск узла по пути "type/objects/list/filter/column" или "Employees/Employee[@id='4']"
|
||||
* @node Node Узел с которого ищется
|
||||
* @path String Путь по котрому ищется
|
||||
*/
|
||||
function findNodeOnPath(node, path)
|
||||
{
|
||||
if(node==null) return null;
|
||||
@ -838,10 +842,22 @@ function findNodeOnPath(node, path)
|
||||
for (let i=0;i<Params.length;i++)
|
||||
{
|
||||
if(node==null) return null;
|
||||
node=findNode(node,Params[i]);
|
||||
let pos1=Params[i].indexOf('[@');
|
||||
if(pos1>=0){
|
||||
let pos2=Params[i].indexOf("='");
|
||||
let pos3=Params[i].indexOf("']");
|
||||
let name=Params[i].substring(0, pos1);
|
||||
let attribute=Params[i].substring(pos1+2, pos2);
|
||||
let val=Params[i].substring(pos2+2, pos3);
|
||||
|
||||
node = findNodeOnAttribute(node, name, attribute, val);
|
||||
}else {
|
||||
node = findNode(node, Params[i]);
|
||||
}
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
//вернёт первую CDATA секцию если её нет то создаст}
|
||||
function getCdata(node,n)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user