6b0ed79f51
* chore: dump plugin * chore: rename plugin * chore: add duplicator into preset * chore: tmp commit * feat: restore & dump action * feat: collection dump & restore * feat: collection dump & restore * fix: dump with json type * fix: dump uischema * chore: tmp commit * chore: tmp commit * feat: restore custom collections * chore: code * fix: build * chore: tmp commit * fix: pm.generateClientFile * feat: dump with user plugins * feat: restore ignore collection * feat: ignore user with rolesUsers * chore: client plugins * refactor: restore insert sql * chore: code format * feat: restore with sequelize insert query * fix: restore json field * fix: json restore * refactor: dumper * refactor: restorer * chore: dump file name * chore: dump file name * chore: dump message * fix: restore with jsonb fields * feat: field data writer * chore: code * feat: collection group manager * feat: duplicator client * feat: duplicator panel * chore: disable duplicator ui * feat: dump with inquirer * chore: dumper * chore: collection group manager * feat: restore with inquirer * chore: comment * chore: inquirer page size * feat: warning before restore * feat: sync postgres sequence id after import collection * chore: restore checked * feat: dump with through table * feat: restore with through table * feat: restore with sequence field * chore: graph collection manager collection group * fix: dump with no column tables * fix: dump empty table * fix: force remove workdir * chore: disable throw error when sync empty table * feat: support map field restore * fix: restore from pg dumped file * fix: dump with logic field * chore: console.log * chore: collection group * chore: handle import collection error * fix: dump migrations table * feat: display custom collection title * fix: restore collection title display * fix: dump iframe html * fix: dump with postgres inhertitance * fix: dump sql * chore: export snapshot field * fix: import with sequences * fix: import sequences * fix: storage Co-authored-by: chenos <chenlinxh@gmail.com>
47 lines
1.2 KiB
TypeScript
47 lines
1.2 KiB
TypeScript
import { skip } from '@nocobase/acl';
|
|
import { InstallOptions, Plugin } from '@nocobase/server';
|
|
import { resolve } from 'path';
|
|
|
|
export class SystemSettingsPlugin extends Plugin {
|
|
getInitAppLang(options) {
|
|
return options?.cliArgs?.[0]?.opts?.lang || process.env.INIT_APP_LANG || 'en-US';
|
|
}
|
|
|
|
async install(options?: InstallOptions) {
|
|
await this.db.getRepository('systemSettings').create({
|
|
values: {
|
|
title: 'NocoBase',
|
|
appLang: this.getInitAppLang(options),
|
|
enabledLanguages: [this.getInitAppLang(options)],
|
|
logo: {
|
|
title: 'nocobase-logo',
|
|
filename: '682e5ad037dd02a0fe4800a3e91c283b.png',
|
|
extname: '.png',
|
|
mimetype: 'image/png',
|
|
url: 'https://nocobase.oss-cn-beijing.aliyuncs.com/682e5ad037dd02a0fe4800a3e91c283b.png',
|
|
},
|
|
},
|
|
});
|
|
}
|
|
|
|
beforeLoad() {
|
|
const cmd = this.app.findCommand('install');
|
|
if (cmd) {
|
|
cmd.option('-l, --lang [lang]');
|
|
}
|
|
}
|
|
|
|
async load() {
|
|
await this.importCollections(resolve(__dirname, './collections'));
|
|
|
|
this.app.acl.use(
|
|
skip({
|
|
resourceName: 'systemSettings',
|
|
actionName: 'get',
|
|
}),
|
|
);
|
|
}
|
|
}
|
|
|
|
export default SystemSettingsPlugin;
|