| /* eslint-disable no-mixed-spaces-and-tabs */ |
| // Run this in browser with old UI Running and dump the data to olderLayout.json. |
| // Then run filterTranslations.py to populate the translations files. |
| // This is hacky but perhaps more effort isn't needed. Migrate away to the new UI! |
| |
| var loadLabel = function (allFields, fieldDict, prefix) { |
| var cols = '' |
| $.each(Object.keys(fieldDict), function (idx1, fieldId) { |
| if (fieldDict[fieldId].label) { |
| if (allFields[fieldId]) { |
| console.log('[WARN] Found multiple labels for API Key: ' + fieldId) |
| allFields[fieldId].labels.push(fieldDict[fieldId].label) |
| allFields[fieldId].components.push(prefix) |
| } else { |
| allFields[fieldId] = { |
| 'labels': [fieldDict[fieldId].label], |
| 'components': [prefix] |
| } |
| } |
| cols = cols + "'" + fieldId + "', " |
| if (fieldDict[fieldId].columns && $.type(fieldDict[fieldId].columns) === 'object') { |
| prefix = prefix + '_columns' |
| var columns = fieldDict[fieldId].columns |
| $.each(Object.keys(columns), function (idx, colId) { |
| if (allFields[colId]) { |
| console.log('[WARN] Found multiple labels for API Key: ' + colId) |
| allFields[colId].labels.push(columns[colId].label) |
| allFields[colId].components.push(prefix) |
| } else { |
| allFields[colId] = { |
| 'labels': [columns[colId].label], |
| 'components': [prefix] |
| } |
| } |
| }) |
| } |
| } |
| }) |
| return cols |
| } |
| |
| var countActions = 0 |
| |
| var loadFields = function (data, prefix) { |
| if ($.type(data) !== 'object') return {} |
| var allFields = {} |
| var columnsOrder = {} |
| var actions = {} |
| $.each(Object.keys(data), function (idx, key) { |
| if (key === 'fields' || key === 'bottomFields' || key === 'topFields') { |
| var fields = data[key] |
| var cols = '' |
| if ($.type(fields) === 'object') { |
| cols = loadLabel(allFields, fields, prefix) |
| } else if ($.type(fields) === 'array') { |
| $.each(fields, function (idx, fieldDict) { |
| cols = cols + "'" + loadLabel(allFields, fieldDict, prefix) + "', " |
| }) |
| } |
| columnsOrder[prefix] = cols.substring(0, cols.length - 2) |
| } else if (key === 'actions') { |
| var acVal = data[key] |
| var curActions = [] |
| $.each(Object.keys(acVal), function (idx, acKey) { |
| if (acVal[acKey].createForm) { |
| curActions.push({ 'action': acKey, 'label': acVal[acKey].label, 'keys': acVal[acKey].createForm.fields }) |
| } else { |
| curActions.push({ 'action': acKey, 'label': acVal[acKey].label }) |
| } |
| }) |
| countActions = countActions + curActions.length |
| actions[prefix] = curActions |
| } else if ($.type(data[key]) === 'object' && ($.type(key) !== 'string' || key.indexOf('$') === -1)) { |
| var recRes = loadFields(data[key], prefix + '.' + key) |
| $.extend(allFields, recRes.allFields) |
| $.extend(columnsOrder, recRes.columnsOrder) |
| $.extend(actions, recRes.actions) |
| } |
| }) |
| return { 'allFields': allFields, 'columnsOrder': columnsOrder, 'actions': actions } |
| } |