Skip to content
Snippets Groups Projects
Commit b06fba31 authored by srosse's avatar srosse
Browse files

OO-1297: in flexi table, make toggling of the multiselection checkbox reflects...

OO-1297: in flexi table, make toggling of the multiselection checkbox reflects with ajax to the server model
parent 17f8b084
No related branches found
No related tags found
No related merge requests found
......@@ -134,6 +134,7 @@ class FlexiTableClassicRenderer extends AbstractFlexiTableRenderer implements Co
FlexiTableElementImpl ftE = ftC.getFlexiTableElement();
FlexiTableColumnModel columnsModel = ftE.getTableDataModel().getTableColumnModel();
int numOfCols = columnsModel.getColumnCount();
Form theForm = ftE.getRootForm();
// use alternating css class
int numOfColumns = 0;
......@@ -142,7 +143,10 @@ class FlexiTableClassicRenderer extends AbstractFlexiTableRenderer implements Co
if(ftE.isMultiSelect()) {
target.append("<td>")
.append("<input type='checkbox' name='tb_ms' value='").append(rowIdPrefix).append(row).append("'");
.append("<input type='checkbox' name='tb_ms' value='").append(rowIdPrefix).append(row).append("'")
.append(" onclick=\"javascript:")
.append(FormJSHelper.getXHRFnCallFor(theForm, ftC.getFormDispatchId(), 1, new NameValuePair("chkbox", Integer.toString(row))))
.append("\"");
if(ftE.isMultiSelectedIndex(row)) {
target.append(" checked='checked'");
}
......
......@@ -686,8 +686,11 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
String sort = form.getRequestParameter("sort");
String filter = form.getRequestParameter("filter");
String pagesize = form.getRequestParameter("pagesize");
String checkbox = form.getRequestParameter("chkbox");
if("undefined".equals(dispatchuri)) {
evalSearchRequest(ureq);
} else if(StringHelper.containsNonWhitespace(checkbox)) {
toogleSelectIndex(checkbox);
} else if(StringHelper.containsNonWhitespace(page)) {
int p = Integer.parseInt(page);
setPage(p);
......@@ -1222,6 +1225,31 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
return multiSelectedIndex != null && multiSelectedIndex.contains(new Integer(index));
}
protected void toogleSelectIndex(String selection) {
if(multiSelectedIndex == null) {
multiSelectedIndex = new HashSet<Integer>();
}
String rowStr;
int index = selection.lastIndexOf('-');
if(index > 0 && index+1 < selection.length()) {
rowStr = selection.substring(index+1);
} else {
rowStr = selection;
}
try {
Integer row = new Integer(rowStr);
if(multiSelectedIndex.contains(row)) {
multiSelectedIndex.remove(row);
} else {
multiSelectedIndex.add(row);
}
} catch (NumberFormatException e) {
//can happen
}
}
protected void setMultiSelectIndex(String[] selections) {
if(multiSelectedIndex == null) {
multiSelectedIndex = new HashSet<Integer>();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment