Skip to content

Commit bbb0304

Browse files
committed
#3946 - Multiple multi_media fields in same section not respecting max_upload_count
Signed-off-by: Kev Provance <[email protected]>
1 parent 24adfa5 commit bbb0304

File tree

7 files changed

+22
-21
lines changed

7 files changed

+22
-21
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Redux Changelog
22

3+
## 4.4.0.4
4+
* Fixed: #3946 - Multiple `multi_media` fields in same section not respecting `max_upload_count`.
5+
36
## 4.4.0.3
47
* Fixed: #3945 - Glitch in validation causing color pickers to fail in rare use case.
58

redux-core/assets/css/redux-fields.min.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

redux-core/assets/css/redux-fields.min.css.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

redux-core/assets/js/redux.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

redux-core/inc/extensions/multi_media/multi_media/class-redux-multi-media.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ class="redux_upload_file redux_upload_list"
8989
type="button"
9090
class="redux_upload_button button redux_upload_list"
9191
name=""
92-
id=""
92+
id="' . esc_attr( $field_id ) . '-multi-media-upload"
9393
value="' . esc_attr( $button_text ) . '" />';
9494

9595
// list container.

redux-core/inc/extensions/multi_media/multi_media/redux-multi-media.js

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@
1111

1212
var l10n;
1313

14-
redux.field_objects = redux.field_objects || {};
15-
redux.field_objects.multi_media = redux.field_objects.multi_media || {};
16-
redux.field_objects.multi_media.mainID = '';
14+
redux.field_objects = redux.field_objects || {};
15+
redux.field_objects.multi_media = redux.field_objects.multi_media || {};
1716

1817
/*******************************************************************************
1918
* Function: init
@@ -83,13 +82,10 @@
8382
*
8483
* Module level init
8584
******************************************************************************/
86-
redux.field_objects.multi_media.modInit = function( el ) {
85+
redux.field_objects.multi_media.modInit = function() {
8786

8887
// Localization variable.
8988
l10n = redux_multi_media_l10;
90-
91-
// MainID into global variable.
92-
redux.field_objects.multi_media.mainID = el.attr( 'data-id' );
9389
};
9490

9591
/*******************************************************************************
@@ -100,10 +96,10 @@
10096
******************************************************************************/
10197

10298
// Removes error message(s) when clicking the Upload button.
103-
redux.field_objects.multi_media.removeErrMsgs = function() {
99+
redux.field_objects.multi_media.removeErrMsgs = function( mainID ) {
104100

105101
// Enumerate and remove existing 'file exists' messages.
106-
$( '#' + redux.field_objects.multi_media.mainID + ' .attach_list li.redux-file-exists' ).each(
102+
$( '#' + mainID + ' .attach_list li.redux-file-exists' ).each(
107103
function( idx, li ) {
108104
idx = null;
109105

@@ -112,7 +108,7 @@
112108
);
113109

114110
// Enumerate and remove existing 'max upload' messages.
115-
$( '#' + redux.field_objects.multi_media.mainID + ' .attach_list li.redux-max-limit' ).each(
111+
$( '#' + mainID + ' .attach_list li.redux-max-limit' ).each(
116112
function( idx, li ) {
117113
idx = null;
118114

@@ -122,13 +118,13 @@
122118
};
123119

124120
// Checks for duplicate after file selection.
125-
redux.field_objects.multi_media.selExists = function( item ) {
121+
redux.field_objects.multi_media.selExists = function( mainID, item ) {
126122
var len;
127123

128124
var val = false;
129125

130126
// Enumerate existing files.
131-
$( '#' + redux.field_objects.multi_media.mainID + ' .attach_list li' ).each(
127+
$( '#' + mainID + ' .attach_list li' ).each(
132128
function( idx, li ) {
133129
idx = null;
134130

@@ -172,6 +168,8 @@
172168
// Get form name.
173169
var formName = $formfield.attr( 'name' );
174170

171+
var mainID = selector.attr( 'data-id' );
172+
175173
// Prevent default action.
176174
event.preventDefault();
177175

@@ -182,7 +180,7 @@
182180
}
183181

184182
// Remove existing error messages.
185-
redux.field_objects.multi_media.removeErrMsgs();
183+
redux.field_objects.multi_media.removeErrMsgs( mainID );
186184

187185
// Get library filter data.
188186
filter = $( selector ).find( '.library-filter' ).data( 'lib-filter' );
@@ -243,7 +241,7 @@
243241
var attachment = selection.toJSON();
244242

245243
// Get existing file count.
246-
var childCount = $( '#' + redux.field_objects.multi_media.mainID + ' .attach_list' ).children().length;
244+
var childCount = $( '#' + mainID + ' .attach_list' ).children().length;
247245

248246
$formfield.val( attachment.url );
249247
$( '#' + inputID + '_id' ).val( attachment.id );
@@ -258,7 +256,7 @@
258256
if ( maxFileUpload <= 0 || ( addCount + childCount ) < maxFileUpload ) {
259257

260258
// Check for duplicates and format duplicate message.
261-
if ( redux.field_objects.multi_media.selExists( this.id ) ) {
259+
if ( redux.field_objects.multi_media.selExists( mainID, this.id ) ) {
262260
dupMsg = l10n.dup_warn;
263261
dupMsg = dupMsg.replace( '%s', '<strong>' + this.filename + '</strong>' );
264262
uploadStatus = '<li class="redux-file-exists">' + dupMsg + '</li>';
@@ -295,7 +293,7 @@
295293
}
296294

297295
// Increment count of added files.
298-
addCount += 1;
296+
addCount++; // += 1;
299297

300298
// If max file upload reached, generate error message.
301299
} else {

redux-core/inc/extensions/multi_media/multi_media/redux-multi-media.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)