Skip to content

Commit 6f0b846

Browse files
committed
passing down required field info
1 parent 0ee0ae6 commit 6f0b846

File tree

3 files changed

+11
-6
lines changed

3 files changed

+11
-6
lines changed

src/dashboard/Data/Browser/Browser.react.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1029,11 +1029,11 @@ class Browser extends DashboardView {
10291029
if (this.state.isUnique) {
10301030
columns = {};
10311031
}
1032-
classes.get(className).forEach(({ type, targetClass }, name) => {
1032+
classes.get(className).forEach(({ type, targetClass, required }, name) => {
10331033
if (name === 'objectId' || this.state.isUnique && name !== this.state.uniqueField) {
10341034
return;
10351035
}
1036-
const info = { type };
1036+
const info = { type, required: !!required };
10371037
if (targetClass) {
10381038
info.targetClass = targetClass;
10391039
}

src/dashboard/Data/Browser/BrowserTable.react.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,15 +98,16 @@ export default class BrowserTable extends React.Component {
9898
}
9999
}
100100

101-
let headers = this.props.order.map(({ name, width, visible, preventSort }) => (
101+
let headers = this.props.order.map(({ name, width, visible, preventSort, required }) => (
102102
{
103103
width: width,
104104
name: name,
105105
type: this.props.columns[name].type,
106106
targetClass: this.props.columns[name].targetClass,
107107
order: ordering.col === name ? ordering.direction : null,
108108
visible,
109-
preventSort
109+
preventSort,
110+
required
110111
}
111112
));
112113
let editor = null;

src/lib/ColumnPreferences.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,21 +87,25 @@ export function getOrder(cols, appId, className, defaultPrefs) {
8787
for (let name in cols) {
8888
requested[name] = true;
8989
if (!seen[name]) {
90-
order.push({ name: name, width: DEFAULT_WIDTH, visible: !defaultPrefs });
90+
order.push({ name: name, width: DEFAULT_WIDTH, visible: !defaultPrefs, required: cols[name]['required'] });
9191
seen[name] = true;
9292
updated = true;
9393
}
9494
}
9595
let filtered = [];
9696
for (let i = 0; i < order.length; i++) {
97-
const { name, visible } = order[i];
97+
const { name, visible, required } = order[i];
9898

9999
// If "visible" attribute is not defined, sets to true
100100
// and updates the cached preferences.
101101
if (typeof visible === 'undefined') {
102102
order[i].visible = true;
103103
updated = true;
104104
}
105+
// If "required" attribute is not defined, set it to false
106+
if (typeof required === 'undefined') {
107+
order[i].required = false;
108+
}
105109
if (requested[name]) {
106110
filtered.push(order[i]);
107111
} else {

0 commit comments

Comments
 (0)