I have made a couple of code changes to the GroupFilter Widget.js to add your desired url parameter support. These changes were only tested in a very limited manner.
createNewRow: function(pValue) {
var table = dom.byId("tblPredicates");
var prevRowConjunTable;
var prevRowConjunCell;
if(pValue.state === "new") {
if(table.rows.length > 1) {
prevRowConjunTable = table.rows[(table.rows.length - 1)].cells[0].firstChild;
prevRowConjunCell = prevRowConjunTable.rows[2].cells[0];
this.createConditionSelection(prevRowConjunCell, pValue);
} else {
if(table.rows.length === 1) {
prevRowConjunTable = table.rows[(table.rows.length - 1)].cells[0].firstChild;
prevRowConjunCell = prevRowConjunTable.rows[2].cells[0];
this.createConditionSelection(prevRowConjunCell, pValue);
}
}
}
var row = table.insertRow(-1);
var subTableNode = row.insertCell(0);
var deleteNode = row.insertCell(1);
domClass.add(subTableNode, "criteriaCellSize");
domClass.add(deleteNode, "deleteCellSize");
var subTable = domConstruct.create("table", {border: "0", width: "100%"}, subTableNode);
var rowOperator = subTable.insertRow(-1);
var cell_operator = rowOperator.insertCell(0);
var rowValue = subTable.insertRow(-1);
var cell_value = rowValue.insertCell(0);
var rowConjunc = subTable.insertRow(-1);
var cell_conjunc = rowConjunc.insertCell(0);
domStyle.set(cell_conjunc, {paddingLeft: "3px", paddingRight: "3px"});
domClass.add(rowOperator, "operator-class");
this.colorRows();
this.createOperatorSelection(cell_operator, pValue);
this.removeTableRow(deleteNode, row, table.rows.length);
this.createInputFilter(cell_value, pValue);
this.resize();
if(this.config.simpleMode) {
domClass.add(this.btnCriteria, "hide-items");
domClass.add(rowOperator, "hide-items");
query(".container").style("borderTop", "0px");
domStyle.set(cell_value, {paddingLeft: "0px", paddingRight: "0px"});
}
if(pValue.state === "reload") {
if(pValue.conjunc !== "") {
prevRowConjunTable = table.rows[(table.rows.length - 1)].cells[0].firstChild;
prevRowConjunCell = prevRowConjunTable.rows[2].cells[0];
this.createConditionSelection(prevRowConjunCell, pValue);
}
} else {
if(this.runInitial) {
this.runInitial = false;
setTimeout(lang.hitch(this, this.setFilterLayerDef), 1000);
}
}
var urlParams = utils.urlToObject(window.location.href).query;
if(urlParams.filter){
this.grpSelect.set("value", urlParams.filter);
setTimeout(lang.hitch(this, this.setFilterLayerDef), 2000);
}
},
....
checkDefaultValue: function(pGroup) {
var defaultVal = "";
if(pGroup.defaultVal !== "") {
defaultVal = pGroup.defaultVal;
}
var urlParams = utils.urlToObject(window.location.href).query;
if(urlParams.filterValue){
defaultVal = urlParams.filterValue;
}
return defaultVal;
},
....