| | |
| | | writeTemplate("TableColumns", pageDirectory, simpleEntityName + "Table.columns.js"); |
| | | writeTemplate("Search", modulesDirectory, kebabEntityName + "-search.vue"); |
| | | writeTemplate("EditDialog", modulesDirectory, kebabEntityName + "-edit-dialog.vue"); |
| | | writeTemplate("Api", resolveFrontendApiDirectory(), normalizedFrontendApiModule + ".js"); |
| | | writeTemplate("Api", resolveFrontendApiDirectory(), resolveFrontendApiFileName()); |
| | | } |
| | | |
| | | private String resolveControllerDirectory() { |
| | |
| | | return directory; |
| | | } |
| | | return directory + normalizedFrontendApiModule.substring(0, index + 1); |
| | | } |
| | | |
| | | private String resolveFrontendApiFileName() { |
| | | int index = normalizedFrontendApiModule.lastIndexOf('/'); |
| | | if (index < 0) { |
| | | return normalizedFrontendApiModule + ".js"; |
| | | } |
| | | return normalizedFrontendApiModule.substring(index + 1) + ".js"; |
| | | } |
| | | |
| | | private void writeTemplate(String templateName, String directory, String fileName) throws IOException { |
| | |
| | | .append("StatusMeta(row.statusBool ?? row.status)),\n"); |
| | | continue; |
| | | } |
| | | if (isNumericColumn(column)) { |
| | | sb.append(" createNumberColumn('") |
| | | .append(column.getHumpName()) |
| | | .append("', '") |
| | | .append(escapeJs(resolveFieldLabel(column))) |
| | | .append("', 120),\n"); |
| | | continue; |
| | | } |
| | | if (isDisplayTextColumn(column)) { |
| | | sb.append(" createTextColumn('") |
| | | .append(column.getHumpName()) |
| | |
| | | .append("),\n"); |
| | | continue; |
| | | } |
| | | if (isNumericColumn(column)) { |
| | | sb.append(" createNumberColumn('") |
| | | .append(column.getHumpName()) |
| | | .append("', '") |
| | | .append(escapeJs(resolveFieldLabel(column))) |
| | | .append("', 120),\n"); |
| | | continue; |
| | | } |
| | | sb.append(" createTextColumn('") |
| | | .append(column.getHumpName()) |
| | | .append("', '") |
| | |
| | | .append(resolveTextColumnWidth(column)) |
| | | .append("),\n"); |
| | | } |
| | | return trimTrailingLineBreak(sb); |
| | | return trimTrailingLineBreakKeepComma(sb); |
| | | } |
| | | |
| | | private String buildExportRowContent() { |
| | |
| | | return sb.toString(); |
| | | } |
| | | |
| | | private String trimTrailingLineBreakKeepComma(StringBuilder sb) { |
| | | if (sb.length() == 0) { |
| | | return ""; |
| | | } |
| | | while (sb.length() > 0 && (sb.charAt(sb.length() - 1) == '\n' || sb.charAt(sb.length() - 1) == '\r')) { |
| | | sb.deleteCharAt(sb.length() - 1); |
| | | } |
| | | return sb.toString(); |
| | | } |
| | | |
| | | private String safeText(String value) { |
| | | return value == null ? "" : value.trim(); |
| | | } |