|
762 | 762 | ).length; |
763 | 763 | }; |
764 | 764 |
|
765 | | - var createHeader = function(preFilter, fields, $table, actions, options) { |
| 765 | + var createHeader = function(preFilter, fields, forceHiddenFields, $table, actions, options) { |
766 | 766 | if (!options) options = {}; |
767 | 767 |
|
768 | 768 | var $tr = $('<tr>'); |
|
773 | 773 | var groupableColumns = options.groupableColumns; |
774 | 774 | var viewArgs = $table.closest('.list-view').data('view-args'); |
775 | 775 | var uiCustom = viewArgs.uiCustom; |
776 | | - var hiddenFields = []; |
| 776 | + var hiddenFields = forceHiddenFields ? forceHiddenFields : []; |
777 | 777 |
|
778 | 778 | if (preFilter != null) |
779 | | - hiddenFields = preFilter(); |
| 779 | + hiddenFields = hiddenFields.concat(preFilter()); |
780 | 780 |
|
781 | 781 | var addColumnToTr = function($tr, key, colspan, label, needsCollapsibleColumn) { |
782 | 782 | var trText = _l(label); |
|
860 | 860 | if (groupableColumns) { |
861 | 861 | $tr.addClass('groupable-header-columns').addClass('groupable-header'); |
862 | 862 | $.each(fields, function(key) { |
| 863 | + if ($.inArray(key, hiddenFields) != -1) |
| 864 | + return true; |
863 | 865 | var field = this; |
864 | 866 | if (field.columns) { |
865 | 867 | var colspan = Object.keys(field.columns).length; |
|
1134 | 1136 | } |
1135 | 1137 | }; |
1136 | 1138 |
|
1137 | | - var addTableRows = function(preFilter, fields, data, $tbody, actions, options) { |
| 1139 | + var addTableRows = function(preFilter, fields, forceHiddenFields, data, $tbody, actions, options) { |
1138 | 1140 | if (!options) options = {}; |
1139 | 1141 | var rows = []; |
1140 | 1142 | var reorder = options.reorder; |
|
1173 | 1175 | $tr.appendTo($tbody); |
1174 | 1176 | } |
1175 | 1177 |
|
1176 | | - var hiddenFields = []; |
| 1178 | + var hiddenFields = forceHiddenFields ? forceHiddenFields : []; |
1177 | 1179 | if (preFilter != null) |
1178 | | - hiddenFields = preFilter(); |
| 1180 | + hiddenFields = hiddenFields.concat(preFilter()); |
1179 | 1181 |
|
1180 | 1182 | if (multiSelect) { |
1181 | 1183 | var $td = $('<td>') |
|
1203 | 1205 | var reducedFields = {}; |
1204 | 1206 | var idx = 0; |
1205 | 1207 | $.each(fields, function(key) { |
| 1208 | + if ($.inArray(key, hiddenFields) != -1) |
| 1209 | + return true; |
1206 | 1210 | var field = this; |
1207 | 1211 | if (field.columns) { |
1208 | 1212 | $.each(field.columns, function(innerKey) { |
|
1675 | 1679 | }); |
1676 | 1680 | }; |
1677 | 1681 |
|
1678 | | - var loadBody = function($table, dataProvider, preFilter, fields, append, loadArgs, actions, options) { |
| 1682 | + var loadBody = function($table, dataProvider, preFilter, fields, forceHiddenFields, append, loadArgs, actions, options) { |
1679 | 1683 | if (!options) options = {}; |
1680 | 1684 | var context = options.context; |
1681 | 1685 | var reorder = options.reorder; |
|
1712 | 1716 | success: function(args) { |
1713 | 1717 | setLoadingArgs.loadingCompleted(); |
1714 | 1718 |
|
1715 | | - addTableRows(preFilter, fields, args.data, $tbody, actions, { |
| 1719 | + addTableRows(preFilter, fields, forceHiddenFields, args.data, $tbody, actions, { |
1716 | 1720 | actionFilter: args.actionFilter, |
1717 | 1721 | context: context, |
1718 | 1722 | reorder: reorder, |
|
1730 | 1734 | }, |
1731 | 1735 | error: function(args) { |
1732 | 1736 | setLoadingArgs.loadingCompleted(); |
1733 | | - addTableRows(preFilter, fields, [], $tbody, actions); |
| 1737 | + addTableRows(preFilter, fields, forceHiddenFields, [], $tbody, actions); |
1734 | 1738 | $table.find('td:first').html(_l('ERROR')); |
1735 | 1739 | $table.dataTable(null, { |
1736 | 1740 | noSelect: uiCustom |
|
1964 | 1968 |
|
1965 | 1969 | createHeader(listViewData.preFilter, |
1966 | 1970 | listViewData.fields, |
| 1971 | + listViewData.hiddenFields, |
1967 | 1972 | $table, |
1968 | 1973 | listViewData.actions, { |
1969 | 1974 | reorder: reorder, |
|
1993 | 1998 | listViewData.dataProvider, |
1994 | 1999 | listViewData.preFilter, |
1995 | 2000 | listViewData.fields, |
| 2001 | + listViewData.hiddenFields, |
1996 | 2002 | false, { |
1997 | 2003 | page: $listView.data('page'), |
1998 | 2004 | filterBy: { |
|
2048 | 2054 | listViewData.dataProvider, |
2049 | 2055 | listViewData.preFilter, |
2050 | 2056 | listViewData.fields, |
| 2057 | + listViewData.hiddenFields, |
2051 | 2058 | false, { |
2052 | 2059 | page: $listView.data('page'), |
2053 | 2060 | filterBy: { |
|
2100 | 2107 | listViewData.dataProvider, |
2101 | 2108 | listViewData.preFilter, |
2102 | 2109 | listViewData.fields, |
| 2110 | + listViewData.hiddenFields, |
2103 | 2111 | false, { |
2104 | 2112 | page: $listView.data('page'), |
2105 | 2113 | filterBy: { |
|
2207 | 2215 | $table, |
2208 | 2216 | listViewData.dataProvider, |
2209 | 2217 | listViewData.preFilter, |
2210 | | - listViewData.fields, true, { |
| 2218 | + listViewData.fields, |
| 2219 | + listViewData.hiddenFields, true, { |
2211 | 2220 | context: context, |
2212 | 2221 | page: $listView.data('page'), |
2213 | 2222 | filterBy: filterBy |
|
2390 | 2399 | var $tr = addTableRows( |
2391 | 2400 | targetArgs.preFilter, |
2392 | 2401 | targetArgs.fields, |
| 2402 | + targetArgs.hiddenFields, |
2393 | 2403 | data, |
2394 | 2404 | listView.find('table tbody'), |
2395 | 2405 | targetArgs.actions, { |
|
2425 | 2435 | $newRow = addTableRows( |
2426 | 2436 | targetArgs.preFilter, |
2427 | 2437 | targetArgs.fields, |
| 2438 | + targetArgs.hiddenFields, |
2428 | 2439 | data, |
2429 | 2440 | $listView.find('table tbody'), |
2430 | 2441 | targetArgs.actions, { |
|
2500 | 2511 | listViewArgs.dataProvider, |
2501 | 2512 | listViewArgs.preFilter, |
2502 | 2513 | listViewArgs.fields, |
| 2514 | + listViewArgs.hiddenFields, |
2503 | 2515 | false, |
2504 | 2516 | null, |
2505 | 2517 | listViewArgs.actions, { |
|
0 commit comments