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 ...@@ -134,6 +134,7 @@ class FlexiTableClassicRenderer extends AbstractFlexiTableRenderer implements Co
FlexiTableElementImpl ftE = ftC.getFlexiTableElement(); FlexiTableElementImpl ftE = ftC.getFlexiTableElement();
FlexiTableColumnModel columnsModel = ftE.getTableDataModel().getTableColumnModel(); FlexiTableColumnModel columnsModel = ftE.getTableDataModel().getTableColumnModel();
int numOfCols = columnsModel.getColumnCount(); int numOfCols = columnsModel.getColumnCount();
Form theForm = ftE.getRootForm();
// use alternating css class // use alternating css class
int numOfColumns = 0; int numOfColumns = 0;
...@@ -142,7 +143,10 @@ class FlexiTableClassicRenderer extends AbstractFlexiTableRenderer implements Co ...@@ -142,7 +143,10 @@ class FlexiTableClassicRenderer extends AbstractFlexiTableRenderer implements Co
if(ftE.isMultiSelect()) { if(ftE.isMultiSelect()) {
target.append("<td>") 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)) { if(ftE.isMultiSelectedIndex(row)) {
target.append(" checked='checked'"); target.append(" checked='checked'");
} }
......
...@@ -686,8 +686,11 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle ...@@ -686,8 +686,11 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
String sort = form.getRequestParameter("sort"); String sort = form.getRequestParameter("sort");
String filter = form.getRequestParameter("filter"); String filter = form.getRequestParameter("filter");
String pagesize = form.getRequestParameter("pagesize"); String pagesize = form.getRequestParameter("pagesize");
String checkbox = form.getRequestParameter("chkbox");
if("undefined".equals(dispatchuri)) { if("undefined".equals(dispatchuri)) {
evalSearchRequest(ureq); evalSearchRequest(ureq);
} else if(StringHelper.containsNonWhitespace(checkbox)) {
toogleSelectIndex(checkbox);
} else if(StringHelper.containsNonWhitespace(page)) { } else if(StringHelper.containsNonWhitespace(page)) {
int p = Integer.parseInt(page); int p = Integer.parseInt(page);
setPage(p); setPage(p);
...@@ -1222,6 +1225,31 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle ...@@ -1222,6 +1225,31 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
return multiSelectedIndex != null && multiSelectedIndex.contains(new Integer(index)); 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) { protected void setMultiSelectIndex(String[] selections) {
if(multiSelectedIndex == null) { if(multiSelectedIndex == null) {
multiSelectedIndex = new HashSet<Integer>(); 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