43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
export interface PluginConfigLookupItem {
|
|
lookupFieldCode: string;
|
|
srcAttachmentFieldCode: string;
|
|
destAttachmentFieldCode: string;
|
|
}
|
|
|
|
export type PluginConfigLookup = PluginConfigLookupItem[];
|
|
|
|
export interface PluginConfig {
|
|
lookup: PluginConfigLookup;
|
|
}
|
|
|
|
const encodeConfigLookup = (rows: PluginConfigLookup): string => {
|
|
return JSON.stringify(rows);
|
|
};
|
|
|
|
const decodeConfigLookup = (lookup: string): PluginConfigLookup | null => {
|
|
try {
|
|
return JSON.parse(lookup) as PluginConfigLookup;
|
|
} catch (e) {
|
|
return null;
|
|
}
|
|
};
|
|
|
|
export const loadPluginConfigLookup = (pluginId: string): PluginConfigLookup | null => {
|
|
const config = kintone.plugin.app.getConfig(pluginId);
|
|
return decodeConfigLookup(config.lookup);
|
|
};
|
|
|
|
export const loadPluginConfig = (pluginId: string): PluginConfig | null => {
|
|
const config = kintone.plugin.app.getConfig(pluginId);
|
|
const lookup = decodeConfigLookup(config.lookup);
|
|
return lookup ? { lookup } : null;
|
|
};
|
|
|
|
export const savePluginConfigLookup = (lookup: PluginConfigLookup, callback: () => void) => {
|
|
kintone.plugin.app.setConfig({ lookup: encodeConfigLookup(lookup) }, callback);
|
|
};
|
|
|
|
export const savePluginConfig = (config: PluginConfig, callback: () => void) => {
|
|
kintone.plugin.app.setConfig({ lookup: encodeConfigLookup(config.lookup) }, callback);
|
|
};
|