update org store and add loading state + notifications to save action
This commit is contained in:
parent
1f451d07de
commit
ef129b7595
|
@ -9,17 +9,34 @@
|
||||||
Input,
|
Input,
|
||||||
Toggle,
|
Toggle,
|
||||||
Dropzone,
|
Dropzone,
|
||||||
|
notifications,
|
||||||
} from "@budibase/bbui"
|
} from "@budibase/bbui"
|
||||||
import { organisation } from "stores/portal"
|
import { organisation } from "stores/portal"
|
||||||
|
import analytics from "analytics"
|
||||||
|
let analyticsDisabled = analytics.disabled()
|
||||||
|
|
||||||
|
function toggleAnalytics() {
|
||||||
|
if (analyticsDisabled) {
|
||||||
|
analytics.optIn()
|
||||||
|
} else {
|
||||||
|
analytics.optOut()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let loading = false
|
||||||
|
|
||||||
let company = $organisation?.company
|
let company = $organisation?.company
|
||||||
let logoUrl = $organisation.logoUrl
|
let logoUrl = $organisation.logoUrl
|
||||||
|
|
||||||
async function saveConfig() {
|
async function saveConfig() {
|
||||||
|
loading = true
|
||||||
const res = await organisation.save({ ...$organisation, company })
|
const res = await organisation.save({ ...$organisation, company })
|
||||||
console.log(res)
|
if (res.status === 200) {
|
||||||
await organisation.init()
|
notifications.success("General settings saved.")
|
||||||
console.log($organisation)
|
} else {
|
||||||
|
notifications.danger("Error when saving settings.")
|
||||||
|
}
|
||||||
|
loading = false
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -61,12 +78,16 @@
|
||||||
<div class="fields">
|
<div class="fields">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<Label>Send Analytics to Budibase</Label>
|
<Label>Send Analytics to Budibase</Label>
|
||||||
<Toggle text="" />
|
<Toggle
|
||||||
|
text=""
|
||||||
|
bind:value={analyticsDisabled}
|
||||||
|
on:change={toggleAnalytics}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="save">
|
<div class="save">
|
||||||
<Button on:click={saveConfig} cta>Save</Button>
|
<Button disabled={loading} on:click={saveConfig} cta>Save</Button>
|
||||||
</div>
|
</div>
|
||||||
</Layout>
|
</Layout>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -3,32 +3,34 @@ import api from "builderStore/api"
|
||||||
|
|
||||||
export function createOrganisationStore() {
|
export function createOrganisationStore() {
|
||||||
const { subscribe, set } = writable({})
|
const { subscribe, set } = writable({})
|
||||||
|
|
||||||
|
async function init() {
|
||||||
|
try {
|
||||||
|
const response = await api.get(`/api/admin/configs/settings`)
|
||||||
|
const json = await response.json()
|
||||||
|
set(json)
|
||||||
|
} catch (error) {
|
||||||
|
set({
|
||||||
|
platformUrl: '',
|
||||||
|
logoUrl: '',
|
||||||
|
docsUrl: '',
|
||||||
|
company: ''
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
subscribe,
|
subscribe,
|
||||||
save: async config => {
|
save: async config => {
|
||||||
try {
|
try {
|
||||||
const res = await api.post('/api/admin/configs', { type: 'settings', config})
|
await api.post('/api/admin/configs', { type: 'settings', config})
|
||||||
return await res.json()
|
await init()
|
||||||
|
return { status: 200 }
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error)
|
return { error }
|
||||||
}
|
|
||||||
},
|
|
||||||
init: async () => {
|
|
||||||
try {
|
|
||||||
const response = await api.get(`/api/admin/configs/settings`)
|
|
||||||
const json = await response.json()
|
|
||||||
set(json)
|
|
||||||
// set(json)
|
|
||||||
} catch (error) {
|
|
||||||
set({
|
|
||||||
platformUrl: '',
|
|
||||||
logoUrl: '',
|
|
||||||
docsUrl: '',
|
|
||||||
company: ''
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
init
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue