first commit
This commit is contained in:
93
main.js
Normal file
93
main.js
Normal file
@@ -0,0 +1,93 @@
|
||||
import { kintonePrettyFields } from './fields.js';
|
||||
import { getGuestSpaceId, createFieldWithTooltips, createFieldLabels, getColumnWidths } from './dom.js';
|
||||
import { KintoneRestAPIClient } from '@kintone/rest-api-client';
|
||||
|
||||
export async function runKintoneHelper() {
|
||||
const guestSpaceId = getGuestSpaceId();
|
||||
const client = new KintoneRestAPIClient({
|
||||
guestSpaceId: guestSpaceId,
|
||||
});
|
||||
const appId = kintone.app.getId();
|
||||
|
||||
if (appId === null) return;
|
||||
|
||||
const language = kintone.getLoginUser().language;
|
||||
const isPreview = false;
|
||||
const { properties: formFields } = await client.app.getFormFields({
|
||||
app: appId,
|
||||
lang: language,
|
||||
preview: isPreview,
|
||||
});
|
||||
const { layout: layout } = await client.app.getFormLayout({
|
||||
app: appId,
|
||||
preview: isPreview,
|
||||
});
|
||||
const { fields: fieldsWithLabels, spacers: spacerElements } =
|
||||
kintonePrettyFields.generateFields(formFields, layout);
|
||||
for (const field of fieldsWithLabels) {
|
||||
const fieldElement = kintone.app.record.getFieldElement(field.code);
|
||||
if (fieldElement) {
|
||||
if (kintonePrettyFields.isSubtable(field)) {
|
||||
fieldElement.before(
|
||||
createFieldWithTooltips({
|
||||
code: field.code,
|
||||
type: field.type,
|
||||
})
|
||||
);
|
||||
const fieldNames = Object.keys(field.fields);
|
||||
const columnWidths = getColumnWidths(fieldElement, field.type);
|
||||
fieldElement.after(
|
||||
createFieldLabels(fieldNames, columnWidths, field.type)
|
||||
);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (kintonePrettyFields.isReferenceTable(field)) {
|
||||
fieldElement.before(
|
||||
createFieldWithTooltips({
|
||||
code: field.code,
|
||||
type: field.type,
|
||||
})
|
||||
);
|
||||
|
||||
if (field.referenceTable) {
|
||||
const displayFields = field.referenceTable.displayFields;
|
||||
const columnWidths = getColumnWidths(fieldElement, field.type);
|
||||
fieldElement.appendChild(
|
||||
createFieldLabels(displayFields, columnWidths, field.type)
|
||||
);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (kintonePrettyFields.isGroup(field)) {
|
||||
fieldElement.parentElement?.before(
|
||||
createFieldWithTooltips({
|
||||
code: field.code,
|
||||
type: field.type,
|
||||
}),
|
||||
);
|
||||
continue;
|
||||
}
|
||||
fieldElement.before(
|
||||
createFieldWithTooltips({
|
||||
code: field.code,
|
||||
type: field.type,
|
||||
}),
|
||||
);
|
||||
}
|
||||
}
|
||||
for (const spacer of spacerElements) {
|
||||
const spacerElement = kintone.app.record.getSpaceElement(spacer.elementId);
|
||||
if (spacerElement) {
|
||||
spacerElement.appendChild(
|
||||
createFieldWithTooltips({
|
||||
code: spacer.elementId,
|
||||
}),
|
||||
);
|
||||
spacerElement.style.border = "1px dotted blue";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Execute immediately upon injection
|
||||
runKintoneHelper().catch(console.error);
|
||||
Reference in New Issue
Block a user