Skip to content

Commit f4da628

Browse files
authored
Merge pull request #161 from ruchamahabal/feat-add-auto-load-option
feat: add auto load option to Data Source
2 parents 0ef97de + d911d82 commit f4da628

File tree

8 files changed

+29
-4
lines changed

8 files changed

+29
-4
lines changed

frontend/src/components/ResourceDialog.vue

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,11 @@
136136
/>
137137
</template>
138138

139+
<div class="flex w-full flex-row items-center gap-1.5">
140+
<FormControl size="sm" type="checkbox" v-model="newResource.auto" />
141+
<InputLabel class="max-w-full">Auto fetch data on load</InputLabel>
142+
</div>
143+
139144
<!-- Transform Results for any Resource Type -->
140145
<ScriptSection
141146
title="Transform Results"
@@ -229,6 +234,7 @@ const emptyResource: Resource = {
229234
transform: null,
230235
on_success: "",
231236
on_error: "",
237+
auto: true,
232238
}
233239
234240
const newResource = ref<Resource>({ ...emptyResource })

frontend/src/data/studioResources.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export const studioPageResources = createListResource({
66
fields: [
77
"resource_type",
88
"resource_name",
9+
"auto",
910
"fields",
1011
"filters",
1112
"limit",

frontend/src/stores/codeStore.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ const useCodeStore = defineStore("codeStore", () => {
327327
fields: fields.length ? fields : "*",
328328
filters: getEvaluatedFilters(resource.filters, context),
329329
pageLength: resource.limit,
330-
auto: true,
330+
auto: resource.auto,
331331
...getTransforms(resource),
332332
...getSuccessErrorHandlers(resource),
333333
}
@@ -340,7 +340,7 @@ const useCodeStore = defineStore("codeStore", () => {
340340
url: resource.url,
341341
method: resource.method,
342342
params: getAPIParams(resource.params, context),
343-
auto: true,
343+
auto: resource.auto,
344344
...getTransforms(resource),
345345
...getSuccessErrorHandlers(resource),
346346
})
@@ -375,7 +375,7 @@ const useCodeStore = defineStore("codeStore", () => {
375375
return createDocumentResource({
376376
doctype: resource.document_type,
377377
name: docname,
378-
auto: true,
378+
auto: resource.auto,
379379
...getTransforms(resource),
380380
...getSuccessErrorHandlers(resource),
381381
...getWhitelistedMethods(resource),

frontend/src/types/Studio/StudioResource.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ interface BaseResource {
77
resource_id: string
88
resource_name: string
99
resource_type: ResourceType
10+
/** Whether to automatically fetch data on first load */
11+
auto?: boolean
1012
transform?: string | null
1113
on_success?: string
1214
on_error?: string

studio/patches.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,5 @@ studio.studio.doctype.studio_page.patches.replace_frappeUI_namespace_references
88
studio.studio.doctype.studio_app.patches.rename_studio_app_based_on_app_title
99
studio.studio.doctype.studio_page.patches.migrate_studio_resource_to_studio_page_resource_child_table
1010
studio.studio.doctype.studio_page.patches.move_text_block_style_props_to_classes
11+
studio.studio.doctype.studio_page.patches.set_auto_to_true_in_studio_page_resources
12+
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import frappe
2+
3+
4+
def execute():
5+
frappe.qb.update("Studio Page Resource").set("auto", 1).run()

studio/studio/doctype/studio_page_resource/studio_page_resource.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"limit",
1414
"sort_field",
1515
"sort_order",
16+
"auto",
1617
"document_resource_section",
1718
"document_type",
1819
"column_break_mkdu",
@@ -165,13 +166,20 @@
165166
{
166167
"fieldname": "on_success_error_section",
167168
"fieldtype": "Section Break"
169+
},
170+
{
171+
"default": "1",
172+
"fieldname": "auto",
173+
"fieldtype": "Check",
174+
"in_list_view": 1,
175+
"label": "Auto fetch data on load"
168176
}
169177
],
170178
"grid_page_length": 50,
171179
"index_web_pages_for_search": 1,
172180
"istable": 1,
173181
"links": [],
174-
"modified": "2025-11-11 09:53:04.647639",
182+
"modified": "2026-03-24 15:56:00.919209",
175183
"modified_by": "Administrator",
176184
"module": "Studio",
177185
"name": "Studio Page Resource",

studio/studio/doctype/studio_page_resource/studio_page_resource.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ class StudioPageResource(Document):
1414
if TYPE_CHECKING:
1515
from frappe.types import DF
1616

17+
auto: DF.Check
1718
document_name: DF.Data | None
1819
document_type: DF.Link | None
1920
fetch_document_using_filters: DF.Check

0 commit comments

Comments
 (0)