blob: 985016227cb6aa97dd25a66e693ce21eb3f0aac8 [file] [log] [blame]
/* 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 }
}