Skip to content

Commit 2059ecd

Browse files
authored
Merge pull request #726 from pratikb64/fix-export-logic
2 parents fb9b026 + 52d66b5 commit 2059ecd

15 files changed

+50
-2
lines changed

Diff for: frontend/src/components/ListViews/CallLogsListView.vue

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
}"
1111
row-key="name"
1212
v-bind="$attrs"
13+
@update:selections="(selections) => emit('selectionsChanged', selections)"
1314
>
1415
<ListHeader
1516
class="sm:mx-5 mx-3"
@@ -205,6 +206,7 @@ const emit = defineEmits([
205206
'applyFilter',
206207
'applyLikeFilter',
207208
'likeDoc',
209+
'selectionsChanged',
208210
])
209211
210212
const pageLengthCount = defineModel()

Diff for: frontend/src/components/ListViews/ContactsListView.vue

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
resizeColumn: options.resizeColumn,
1515
}"
1616
row-key="name"
17+
@update:selections="(selections) => emit('selectionsChanged', selections)"
1718
>
1819
<ListHeader
1920
class="mx-3 sm:mx-5"
@@ -201,6 +202,7 @@ const emit = defineEmits([
201202
'applyFilter',
202203
'applyLikeFilter',
203204
'likeDoc',
205+
'selectionsChanged',
204206
])
205207
206208
const route = useRoute()

Diff for: frontend/src/components/ListViews/DealsListView.vue

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
resizeColumn: options.resizeColumn,
1515
}"
1616
row-key="name"
17+
@update:selections="(selections) => emit('selectionsChanged', selections)"
1718
>
1819
<ListHeader
1920
class="sm:mx-5 mx-3"
@@ -245,6 +246,7 @@ const emit = defineEmits([
245246
'applyFilter',
246247
'applyLikeFilter',
247248
'likeDoc',
249+
'selectionsChanged',
248250
])
249251
250252
const route = useRoute()

Diff for: frontend/src/components/ListViews/EmailTemplatesListView.vue

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
resizeColumn: options.resizeColumn,
1010
}"
1111
row-key="name"
12+
@update:selections="(selections) => emit('selectionsChanged', selections)"
1213
>
1314
<ListHeader
1415
class="sm:mx-5 mx-3"
@@ -191,6 +192,7 @@ const emit = defineEmits([
191192
'applyFilter',
192193
'applyLikeFilter',
193194
'likeDoc',
195+
'selectionsChanged',
194196
])
195197
196198
const pageLengthCount = defineModel()

Diff for: frontend/src/components/ListViews/LeadsListView.vue

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
resizeColumn: options.resizeColumn,
1515
}"
1616
row-key="name"
17+
@update:selections="(selections) => emit('selectionsChanged', selections)"
1718
>
1819
<ListHeader
1920
class="sm:mx-5 mx-3"
@@ -250,14 +251,14 @@ const props = defineProps({
250251
}),
251252
},
252253
})
253-
254254
const emit = defineEmits([
255255
'loadMore',
256256
'updatePageCount',
257257
'columnWidthUpdated',
258258
'applyFilter',
259259
'applyLikeFilter',
260260
'likeDoc',
261+
'selectionsChanged',
261262
])
262263
263264
const route = useRoute()

Diff for: frontend/src/components/ListViews/OrganizationsListView.vue

+2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
resizeColumn: options.resizeColumn,
1414
}"
1515
row-key="name"
16+
@update:selections="(selections) => emit('selectionsChanged', selections)"
1617
>
1718
<ListHeader
1819
class="sm:mx-5 mx-3"
@@ -186,6 +187,7 @@ const emit = defineEmits([
186187
'applyFilter',
187188
'applyLikeFilter',
188189
'likeDoc',
190+
'selectionsChanged',
189191
])
190192
191193
const route = useRoute()

Diff for: frontend/src/components/ListViews/TasksListView.vue

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
resizeColumn: options.resizeColumn,
1010
}"
1111
row-key="name"
12+
@update:selections="(selections) => emit('selectionsChanged', selections)"
1213
>
1314
<ListHeader
1415
class="mx-3 sm:mx-5"
@@ -207,6 +208,7 @@ const emit = defineEmits([
207208
'applyFilter',
208209
'applyLikeFilter',
209210
'likeDoc',
211+
'selectionsChanged',
210212
])
211213
212214
const pageLengthCount = defineModel()

Diff for: frontend/src/components/ViewControls.vue

+15-1
Original file line numberDiff line numberDiff line change
@@ -545,6 +545,11 @@ function reload() {
545545
const showExportDialog = ref(false)
546546
const export_type = ref('Excel')
547547
const export_all = ref(false)
548+
const selectedRows = ref([])
549+
550+
function updateSelections(selections) {
551+
selectedRows.value = Array.from(selections)
552+
}
548553
549554
async function exportRows() {
550555
let fields = JSON.stringify(list.value.data.columns.map((f) => f.key))
@@ -560,7 +565,15 @@ async function exportRows() {
560565
page_length = list.value.data.total_count
561566
}
562567
563-
window.location.href = `/api/method/frappe.desk.reportview.export_query?file_format_type=${export_type.value}&title=${props.doctype}&doctype=${props.doctype}&fields=${fields}&filters=${filters}&order_by=${order_by}&page_length=${page_length}&start=0&view=Report&with_comment_count=1`
568+
let url = `/api/method/frappe.desk.reportview.export_query?file_format_type=${export_type.value}&title=${props.doctype}&doctype=${props.doctype}&fields=${fields}&filters=${filters}&order_by=${order_by}&page_length=${page_length}&start=0&view=Report&with_comment_count=1`
569+
570+
// Add selected items parameter if rows are selected
571+
if (selectedRows.value?.length && !export_all.value) {
572+
url += `&selected_items=${JSON.stringify(selectedRows.value)}`
573+
}
574+
575+
window.location.href = url
576+
564577
showExportDialog.value = false
565578
export_all.value = false
566579
export_type.value = 'Excel'
@@ -1336,6 +1349,7 @@ defineExpose({
13361349
viewActions,
13371350
viewsDropdownOptions,
13381351
currentView,
1352+
updateSelections,
13391353
})
13401354
13411355
// Watchers

Diff for: frontend/src/pages/CallLogs.vue

+3
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@
4141
@applyFilter="(data) => viewControls.applyFilter(data)"
4242
@applyLikeFilter="(data) => viewControls.applyLikeFilter(data)"
4343
@likeDoc="(data) => viewControls.likeDoc(data)"
44+
@selectionsChanged="
45+
(selections) => viewControls.updateSelections(selections)
46+
"
4447
/>
4548
<div
4649
v-else-if="callLogs.data"

Diff for: frontend/src/pages/Contacts.vue

+3
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@
4444
@applyFilter="(data) => viewControls.applyFilter(data)"
4545
@applyLikeFilter="(data) => viewControls.applyLikeFilter(data)"
4646
@likeDoc="(data) => viewControls.likeDoc(data)"
47+
@selectionsChanged="
48+
(selections) => viewControls.updateSelections(selections)
49+
"
4750
/>
4851
<div
4952
v-else-if="contacts.data"

Diff for: frontend/src/pages/Deals.vue

+3
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,9 @@
223223
@applyFilter="(data) => viewControls.applyFilter(data)"
224224
@applyLikeFilter="(data) => viewControls.applyLikeFilter(data)"
225225
@likeDoc="(data) => viewControls.likeDoc(data)"
226+
@selectionsChanged="
227+
(selections) => viewControls.updateSelections(selections)
228+
"
226229
/>
227230
<div v-else-if="deals.data" class="flex h-full items-center justify-center">
228231
<div

Diff for: frontend/src/pages/EmailTemplates.vue

+3
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@
4545
@applyFilter="(data) => viewControls.applyFilter(data)"
4646
@applyLikeFilter="(data) => viewControls.applyLikeFilter(data)"
4747
@likeDoc="(data) => viewControls.likeDoc(data)"
48+
@selectionsChanged="
49+
(selections) => viewControls.updateSelections(selections)
50+
"
4851
/>
4952
<div
5053
v-else-if="emailTemplates.data"

Diff for: frontend/src/pages/Leads.vue

+3
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,9 @@
249249
@applyFilter="(data) => viewControls.applyFilter(data)"
250250
@applyLikeFilter="(data) => viewControls.applyLikeFilter(data)"
251251
@likeDoc="(data) => viewControls.likeDoc(data)"
252+
@selectionsChanged="
253+
(selections) => viewControls.updateSelections(selections)
254+
"
252255
/>
253256
<div v-else-if="leads.data" class="flex h-full items-center justify-center">
254257
<div

Diff for: frontend/src/pages/Organizations.vue

+3
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@
4444
@applyFilter="(data) => viewControls.applyFilter(data)"
4545
@applyLikeFilter="(data) => viewControls.applyLikeFilter(data)"
4646
@likeDoc="(data) => viewControls.likeDoc(data)"
47+
@selectionsChanged="
48+
(selections) => viewControls.updateSelections(selections)
49+
"
4750
/>
4851
<div
4952
v-else-if="organizations.data"

Diff for: frontend/src/pages/Tasks.vue

+3
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,9 @@
172172
@applyFilter="(data) => viewControls.applyFilter(data)"
173173
@applyLikeFilter="(data) => viewControls.applyLikeFilter(data)"
174174
@likeDoc="(data) => viewControls.likeDoc(data)"
175+
@selectionsChanged="
176+
(selections) => viewControls.updateSelections(selections)
177+
"
175178
/>
176179
<div v-else-if="tasks.data" class="flex h-full items-center justify-center">
177180
<div

0 commit comments

Comments
 (0)