Skip to content

Commit 28c116c

Browse files
committed
gpfup-count-files-groups.js: Added snippet to count files in groups.
1 parent 28d6ad0 commit 28c116c

File tree

1 file changed

+19
-16
lines changed

1 file changed

+19
-16
lines changed

gp-file-upload-pro/gpfup-count-files-groups.js

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
*
55
* Instruction Video: https://www.loom.com/share/2328e327125844bebdcabf7c9baaabca
66
*/
7-
var formId = GFFORMID;
7+
const formId = GFFORMID;
88

99
// Map count field IDs to arrays of file upload field IDs
10-
var countMapping = {
10+
const countMapping = {
1111
5: [1, 3, 4], // Number Field ID 5 counts files from File Upload Field IDs 1, 3, 4
1212
10: [7, 8, 9] // Number Field ID 10 counts files from File Upload Field IDs 7, 8, 9
1313
// Add more mappings if needed
@@ -19,9 +19,9 @@ var gpfupInstances = Object.keys(window).filter(function (key) {
1919
});
2020

2121
// Build reverse lookup: uploadFieldID => associated countFieldIDs
22-
var uploadToCountMap = {};
23-
Object.entries(countMapping).forEach(function ([countFieldID, uploadFieldIDs]) {
24-
uploadFieldIDs.forEach(function (uploadFieldID) {
22+
const uploadToCountMap = {};
23+
Object.entries(countMapping).forEach(([countFieldID, uploadFieldIDs]) => {
24+
uploadFieldIDs.forEach((uploadFieldID) => {
2525
if (!uploadToCountMap[uploadFieldID]) {
2626
uploadToCountMap[uploadFieldID] = [];
2727
}
@@ -31,27 +31,30 @@ Object.entries(countMapping).forEach(function ([countFieldID, uploadFieldIDs]) {
3131

3232
// Function to update all relevant count fields
3333
function updateAllCountFields() {
34-
Object.entries(countMapping).forEach(function ([countFieldID, uploadFieldIDs]) {
35-
var total = uploadFieldIDs.reduce(function (sum, uploadFieldID) {
36-
var key = 'GPFUP_' + formId + '_' + uploadFieldID;
37-
var store = window[key] && window[key].$store;
34+
Object.entries(countMapping).forEach(([countFieldID, uploadFieldIDs]) => {
35+
const total = uploadFieldIDs.reduce((sum, uploadFieldID) => {
36+
const key = 'GPFUP_' + formId + '_' + uploadFieldID;
37+
const store = window[key] && window[key].$store;
3838
return sum + (store ? (store.state.files.length || 0) : 0);
3939
}, 0);
4040

41-
var selector = '#input_' + formId + '_' + countFieldID;
42-
jQuery(selector).val(total).change();
41+
const selector = '#input_' + formId + '_' + countFieldID;
42+
const $field = jQuery(selector);
43+
if ($field.length) {
44+
$field.val(total).change();
45+
}
4346
});
4447
}
4548

4649
if (gpfupInstances.length) {
4750
// Subscribe to relevant GPFUP fields
48-
gpfupInstances.forEach(function (key) {
49-
var parts = key.split('_');
50-
var fieldID = parseInt(parts[2]); // GPFUP_formId_fieldId
51-
var store = window[key].$store;
51+
gpfupInstances.forEach((key) => {
52+
const parts = key.split('_');
53+
const fieldID = parseInt(parts[2]); // GPFUP_formId_fieldId
54+
const store = window[key].$store;
5255

5356
if (uploadToCountMap[fieldID]) {
54-
store.subscribe(function (mutation, state) {
57+
store.subscribe((mutation, state) => {
5558
if (mutation.type === 'SET_FILES') {
5659
updateAllCountFields();
5760
}

0 commit comments

Comments
 (0)