From 5e612f915faadd3d1cfd01839e07ba0718289911 Mon Sep 17 00:00:00 2001 From: Jonathan Cobb Date: Sat, 4 Jan 2020 16:11:40 -0500 Subject: [PATCH] add support for search --- src/_services/system.service.js | 15 +++++++++++ src/_store/system.module.js | 46 ++++++++++++++++++++++++++++++- src/admin/ModelSetupPage.vue | 48 +++++++++++++++++++++++++++++---- 3 files changed, 103 insertions(+), 6 deletions(-) diff --git a/src/_services/system.service.js b/src/_services/system.service.js index 0dd17ec..338f6b5 100644 --- a/src/_services/system.service.js +++ b/src/_services/system.service.js @@ -5,6 +5,8 @@ export const systemService = { loadIsActivated, activate, loadSystemConfigs, + loadEntityConfigs, + search, loadMessages, loadTimezones, detectTimezone, @@ -32,6 +34,19 @@ function loadSystemConfigs() { .then(configs => { return configs; }); } +function loadEntityConfigs() { + const requestOptions = util.userLoggedIn() ? util.getWithAuth() : { method: 'GET' }; + return fetch(`${config.apiUrl}/ec?full=true`, requestOptions) + .then(util.handleBasicResponse) + .then(config => { return config; }); +} + +function search(type, query) { + return fetch(`${config.apiUrl}/search/${type}`, util.postWithAuth(query)) + .then(util.handleBasicResponse) + .then(config => { return config; }); +} + function loadMessages(group, locale) { const requestOptions = util.userLoggedIn() ? util.getWithAuth() : { method: 'GET' }; if (!locale || locale === '') locale = 'detect'; diff --git a/src/_store/system.module.js b/src/_store/system.module.js index dfbcd3e..90185be 100644 --- a/src/_store/system.module.js +++ b/src/_store/system.module.js @@ -11,7 +11,9 @@ const state = { entityClasses: [], locales: ['en_US'] }, - status: { activating: false }, + entityConfigs: {}, + searchResults: [], + status: { activating: false, searching: false }, activated: null, error: null, messages: { @@ -70,6 +72,22 @@ const actions = { error => commit('loadSystemConfigsFailure', error) ); }, + loadEntityConfigs({ commit }) { + commit('loadEntityConfigsRequest'); + systemService.loadEntityConfigs() + .then( + configs => commit('loadEntityConfigsSuccess', configs), + error => commit('loadEntityConfigsFailure', error) + ); + }, + search({ commit }, type, query) { + commit('searchRequest'); + systemService.search(type, query) + .then( + results => commit('searchSuccess', {type, query, results}), + error => commit('searchFailure', error) + ); + }, loadMessages({ commit }, group, locale) { commit('loadMessagesRequest'); systemService.loadMessages(group, locale) @@ -214,6 +232,32 @@ const mutations = { loadSystemConfigsFailure(state, error) { state.error = error; }, + loadEntityConfigsRequest(state) {}, + loadEntityConfigsSuccess(state, configs) { + // console.log('loadEntityConfigsSuccess: received configs='+JSON.stringify(configs)); + const newConfigs = {}; + for (let i=0; i{{messages.form_title_model_setup}}
- -
+ + + + + + + + + + + + +
{{field}}
{{row[field]}}
@@ -18,23 +31,48 @@ export default { data() { return { - configType: 'Account' + ec: {}, + type: 'bubble.model.account.Account', + query: { + query: '', + page: 1, + size: 10, + sort: '' + }, + results: [] }; }, computed: { ...mapState('account', ['locale']), - ...mapState('system', ['configs', 'messages']) + ...mapState('system', ['configs', 'messages', 'entityConfigs', 'searchResults']), + lcType () { return this.type.toLowerCase(); } }, created () { + this.loadEntityConfigs(); this.loadSystemConfigs(); // ensure config.entityClasses is refreshed this.loadMessages('pre_auth', this.locale); this.loadMessages('post_auth', this.locale); + this.selectType(); }, methods: { // ...mapActions('system', ['loadIsActivated', 'activate']), - ...mapActions('system', ['loadIsActivated', 'loadSystemConfigs', 'loadMessages', 'loadTimezones']), + ...mapActions('system', [ + 'loadIsActivated', 'loadSystemConfigs', 'loadMessages', 'loadTimezones', 'loadEntityConfigs', 'search' + ]), setupModel(e) { console.log('setupModel called'); + }, + selectType() { + this.search(this.type, this.query); + } + }, + watch: { + entityConfigs (configs) { + if (configs) this.ec = configs; + }, + searchResults (results) { + console.log('updating this.results='+JSON.stringify(results)); + if (results) this.results = results; } } };