diff --git a/pro/api/api-pro.php b/pro/api/api-pro.php
index 576959b..e1ad128 100644
--- a/pro/api/api-pro.php
+++ b/pro/api/api-pro.php
@@ -50,7 +50,7 @@ function acf_pro_get_remote_url( $action = '', $args = array() ) {
// vars
- $url = "http://connect.advancedcustomfields.com/index.php?" . build_query($args);
+ $url = "https://connect.advancedcustomfields.com/index.php?" . build_query($args);
// return
diff --git a/pro/assets/css/acf-pro-input.css b/pro/assets/css/acf-pro-input.css
index ab5a959..ea2bb6f 100644
--- a/pro/assets/css/acf-pro-input.css
+++ b/pro/assets/css/acf-pro-input.css
@@ -329,6 +329,17 @@ html[dir="rtl"] .acf-flexible-content .layout .acf-fc-layout-controlls {
border: #DFDFDF solid 1px;
height: 400px;
position: relative;
+ /* main */
+ /* attachments */
+ /* attachment */
+ /* hide attachment actions when sidebar is open */
+ /* toolbar */
+ /* sidebar */
+ /* side info */
+ /* side data */
+ /* column widths */
+ /* column widths clear */
+ /* resizable */
}
.acf-gallery .acf-gallery-main {
position: absolute;
@@ -339,84 +350,101 @@ html[dir="rtl"] .acf-flexible-content .layout .acf-fc-layout-controlls {
background: #fff;
z-index: 2;
}
-.acf-gallery-attachments {
+.acf-gallery .acf-gallery-attachments {
position: absolute;
top: 0;
right: 0;
- bottom: 45px;
+ bottom: 48px;
left: 0;
padding: 5px;
overflow: auto;
}
-/* attachment */
-.acf-gallery-attachment {
+.acf-gallery .acf-gallery-attachment {
width: 25%;
float: left;
cursor: pointer;
position: relative;
background: #fff;
+ /* sortable */
+ /* active */
+ /* audio, video */
+ /* icon */
+ /* rtl */
}
-.acf-gallery-attachment.ui-sortable-placeholder {
- visibility: visible !important;
- background: #F1F1F1;
-}
-.acf-gallery-attachment.ui-sortable-placeholder .margin {
- visibility: hidden !important;
-}
-.acf-gallery-attachment .margin {
+.acf-gallery .acf-gallery-attachment .margin {
margin: 5px;
border: #DFDFDF solid 1px;
position: relative;
overflow: hidden;
}
-.acf-gallery-attachment.active .margin {
- box-shadow: 0 0 0 1px #FFFFFF, 0 0 0 5px #1E8CBE;
-}
-.acf-gallery-attachment img {
+.acf-gallery .acf-gallery-attachment img {
display: block;
height: auto;
width: auto;
max-width: 100%;
margin: 0 auto;
}
-.acf-gallery-attachment .filename {
+.acf-gallery .acf-gallery-attachment img[src$="svg"] {
+ background: #f9f9f9;
+}
+.acf-gallery .acf-gallery-attachment .filename {
position: absolute;
bottom: 0;
left: 0;
right: 0;
padding: 5%;
background: #F4F4F4;
+ background: rgba(255, 255, 255, 0.8);
border-top: #DFDFDF solid 1px;
font-weight: bold;
text-align: center;
word-wrap: break-word;
max-height: 90%;
overflow: hidden;
+ display: none;
}
-.acf-gallery-attachment .actions {
+.acf-gallery .acf-gallery-attachment .actions {
position: absolute;
top: 0;
right: 0;
}
-.acf-gallery.sidebar-open .acf-gallery-attachment .actions {
- display: none;
+.acf-gallery .acf-gallery-attachment.ui-sortable-placeholder {
+ visibility: visible !important;
+ background: #F1F1F1;
}
-/* icon */
-.acf-gallery-attachment.is-mime-icon .margin:before {
+.acf-gallery .acf-gallery-attachment.ui-sortable-placeholder .margin {
+ visibility: hidden !important;
+}
+.acf-gallery .acf-gallery-attachment.active .margin {
+ box-shadow: 0 0 0 1px #FFFFFF, 0 0 0 5px #1E8CBE;
+}
+.acf-gallery .acf-gallery-attachment.-audio .filename,
+.acf-gallery .acf-gallery-attachment.-video .filename {
+ display: block;
+}
+.acf-gallery .acf-gallery-attachment.-icon .margin:before {
content: "";
display: block;
padding-top: 100%;
}
-.acf-gallery-attachment.is-mime-icon .thumbnail {
+.acf-gallery .acf-gallery-attachment.-icon .thumbnail {
position: absolute;
top: 35%;
left: 50%;
max-width: 40%;
}
-.acf-gallery-attachment.is-mime-icon .thumbnail img {
+.acf-gallery .acf-gallery-attachment.-icon img {
margin: -50% 0 0 -50%;
}
-/* toolbar */
+.acf-gallery .acf-gallery-attachment.-icon .filename {
+ display: block;
+}
+html[dir="rtl"] .acf-gallery .acf-gallery-attachment {
+ float: right;
+}
+.acf-gallery.sidebar-open .acf-gallery-attachment .actions {
+ display: none;
+}
.acf-gallery .acf-gallery-toolbar {
position: absolute;
right: 0;
@@ -424,10 +452,16 @@ html[dir="rtl"] .acf-flexible-content .layout .acf-fc-layout-controlls {
left: 0;
padding: 10px;
border-top: #DFDFDF solid 1px;
+ background: #fff;
+ height: 28px;
}
.acf-gallery .acf-gallery-toolbar .acf-hl li {
line-height: 24px;
}
+.acf-gallery .acf-gallery-toolbar .bulk-actions-select {
+ width: auto;
+ margin: 0 1px 0 0;
+}
.acf-gallery .acf-gallery-side {
position: absolute;
top: 0;
@@ -439,18 +473,13 @@ html[dir="rtl"] .acf-flexible-content .layout .acf-fc-layout-controlls {
z-index: 1;
overflow: hidden;
}
-.acf-gallery .acf-gallery-side-inner {
+.acf-gallery .acf-gallery-side .acf-gallery-side-inner {
position: absolute;
top: 0;
left: 0;
bottom: 0;
width: 349px;
}
-.acf-gallery .bulk-actions-select {
- width: auto;
- margin: 0 1px 0 0;
-}
-/* side info */
.acf-gallery .acf-gallery-side-info {
position: relative;
width: 100%;
@@ -469,11 +498,17 @@ html[dir="rtl"] .acf-flexible-content .layout .acf-fc-layout-controlls {
padding: 3px;
border: #DFDFDF solid 1px;
border-radius: 1px;
+ /* rtl */
+}
+html[dir="rtl"] .acf-gallery .acf-gallery-side-info img {
+ float: right;
+ margin: 0 0 0 10px;
}
.acf-gallery .acf-gallery-side-info p {
font-size: 13px;
line-height: 15px;
margin: 3px 0;
+ word-break: break-all;
color: #999999;
}
.acf-gallery .acf-gallery-side-info p strong {
@@ -482,16 +517,15 @@ html[dir="rtl"] .acf-flexible-content .layout .acf-fc-layout-controlls {
.acf-gallery .acf-gallery-side-info a {
text-decoration: none;
}
-.acf-gallery .acf-gallery-side-info a.edit-attachment {
+.acf-gallery .acf-gallery-side-info a.acf-gallery-edit {
color: #21759b;
}
-.acf-gallery .acf-gallery-side-info a.remove-attachment {
+.acf-gallery .acf-gallery-side-info a.acf-gallery-remove {
color: #bc0b0b;
}
.acf-gallery .acf-gallery-side-info a:hover {
text-decoration: underline;
}
-/* side data */
.acf-gallery .acf-gallery-side-data {
position: absolute;
top: 0;
@@ -510,11 +544,16 @@ html[dir="rtl"] .acf-flexible-content .layout .acf-fc-layout-controlls {
padding: 0 4px 8px 0 !important;
width: auto !important;
vertical-align: top;
+ /* rtl */
}
.acf-gallery .acf-gallery-side-data .acf-label label,
.acf-gallery .acf-gallery-side-data th.label label {
font-weight: normal;
}
+html[dir="rtl"] .acf-gallery .acf-gallery-side-data .acf-label,
+html[dir="rtl"] .acf-gallery .acf-gallery-side-data th.label {
+ text-align: left;
+}
.acf-gallery .acf-gallery-side-data .acf-input,
.acf-gallery .acf-gallery-side-data td.field {
padding: 0 0 8px !important;
@@ -529,14 +568,6 @@ html[dir="rtl"] .acf-flexible-content .layout .acf-fc-layout-controlls {
.acf-gallery .acf-gallery-side-data p.help:hover {
font-weight: normal;
}
-/* selected */
-.attachment.acf-selected {
- box-shadow: 0 0 0 3px #fff inset, 0 0 0 7px #1e8cbe inset !important;
-}
-.attachment.acf-selected .check {
- display: none !important;
-}
-/* column widths */
.acf-gallery[data-columns="1"] .acf-gallery-attachment {
width: 100%;
}
@@ -561,29 +592,15 @@ html[dir="rtl"] .acf-flexible-content .layout .acf-fc-layout-controlls {
.acf-gallery[data-columns="8"] .acf-gallery-attachment {
width: 12.5%;
}
-/* column widths clear */
-.acf-gallery[data-columns="2"] .acf-gallery-attachment:nth-child(2n+1) {
- clear: both;
-}
-.acf-gallery[data-columns="3"] .acf-gallery-attachment:nth-child(3n+1) {
- clear: both;
-}
-.acf-gallery[data-columns="4"] .acf-gallery-attachment:nth-child(4n+1) {
- clear: both;
-}
-.acf-gallery[data-columns="5"] .acf-gallery-attachment:nth-child(5n+1) {
- clear: both;
-}
-.acf-gallery[data-columns="6"] .acf-gallery-attachment:nth-child(6n+1) {
- clear: both;
-}
-.acf-gallery[data-columns="7"] .acf-gallery-attachment:nth-child(7n+1) {
- clear: both;
-}
+.acf-gallery[data-columns="2"] .acf-gallery-attachment:nth-child(2n+1),
+.acf-gallery[data-columns="3"] .acf-gallery-attachment:nth-child(3n+1),
+.acf-gallery[data-columns="4"] .acf-gallery-attachment:nth-child(4n+1),
+.acf-gallery[data-columns="5"] .acf-gallery-attachment:nth-child(5n+1),
+.acf-gallery[data-columns="6"] .acf-gallery-attachment:nth-child(6n+1),
+.acf-gallery[data-columns="7"] .acf-gallery-attachment:nth-child(7n+1),
.acf-gallery[data-columns="8"] .acf-gallery-attachment:nth-child(8n+1) {
clear: both;
}
-/* resizable */
.acf-gallery .ui-resizable-handle {
display: block;
position: absolute;
@@ -595,11 +612,11 @@ html[dir="rtl"] .acf-flexible-content .layout .acf-fc-layout-controlls {
left: 0;
width: 100%;
}
-/* rtl */
-html[dir="rtl"] .acf-gallery-attachment {
- float: right;
+/* media modal selected */
+.acf-media-modal .attachment.acf-selected {
+ box-shadow: 0 0 0 3px #fff inset, 0 0 0 7px #1e8cbe inset !important;
+ opacity: 0.5;
}
-html[dir="rtl"] .acf-gallery .acf-gallery-side-info img {
- float: right;
- margin: 0 0 0 10px;
+.acf-media-modal .attachment.acf-selected .check {
+ display: none !important;
}
diff --git a/pro/assets/js/acf-pro-input.js b/pro/assets/js/acf-pro-input.js
index 6b1e411..b14e965 100644
--- a/pro/assets/js/acf-pro-input.js
+++ b/pro/assets/js/acf-pro-input.js
@@ -1184,6 +1184,10 @@
type: 'gallery',
$el: null,
+ $main: null,
+ $side: null,
+ $attachments: null,
+ //$attachment: null,
actions: {
'ready': 'initialize',
@@ -1193,23 +1197,40 @@
},
events: {
- 'click .acf-gallery-attachment': 'select_attachment',
- 'click .remove-attachment': 'remove_attachment',
- 'click .edit-attachment': 'edit_attachment',
- 'click .update-attachment': 'update_attachment',
- 'click .add-attachment': 'add_attachment',
- 'click .close-sidebar': 'close_sidebar',
- 'change .acf-gallery-side input': 'update_attachment',
- 'change .acf-gallery-side textarea': 'update_attachment',
- 'change .acf-gallery-side select': 'update_attachment',
- 'change .bulk-actions': 'sort'
+ 'click .acf-gallery-attachment': '_select',
+ 'click .acf-gallery-add': '_add',
+ 'click .acf-gallery-remove': '_remove',
+ 'click .acf-gallery-close': '_close',
+ 'change .acf-gallery-sort': '_sort',
+ 'click .acf-gallery-edit': '_edit',
+ 'click .acf-gallery-update': '_update',
+
+ 'change .acf-gallery-side input': '_update',
+ 'change .acf-gallery-side textarea': '_update',
+ 'change .acf-gallery-side select': '_update'
},
+
+ /*
+ * focus
+ *
+ * This function will setup variables when focused on a field
+ *
+ * @type function
+ * @date 12/04/2016
+ * @since 5.3.8
+ *
+ * @param n/a
+ * @return n/a
+ */
+
focus: function(){
- this.$el = this.$field.find('.acf-gallery').first();
- this.$values = this.$el.children('.values');
- this.$clones = this.$el.children('.clones');
+ // el
+ this.$el = this.$field.find('.acf-gallery:first');
+ this.$main = this.$el.children('.acf-gallery-main');
+ this.$side = this.$el.children('.acf-gallery-side');
+ this.$attachments = this.$main.children('.acf-gallery-attachments');
// get options
@@ -1222,39 +1243,20 @@
},
- get_attachment: function( id ){
-
- // defaults
- id = id || '';
-
-
- // vars
- var selector = '.acf-gallery-attachment';
-
-
- // update selector
- if( id === 'active' ) {
-
- selector += '.active';
-
- } else if( id ) {
-
- selector += '[data-id="' + id + '"]';
-
- }
-
-
- // return
- return this.$el.find( selector );
-
- },
- count: function(){
-
- return this.get_attachment().length;
-
- },
-
+ /*
+ * initialize
+ *
+ * This function will initialize the field
+ *
+ * @type function
+ * @date 12/04/2016
+ * @since 5.3.8
+ *
+ * @param n/a
+ * @return n/a
+ */
+
initialize: function(){
// reference
@@ -1263,7 +1265,7 @@
// sortable
- this.$el.find('.acf-gallery-attachments').unbind('sortable').sortable({
+ this.$attachments.unbind('sortable').sortable({
items : '.acf-gallery-attachment',
forceHelperSize : true,
@@ -1302,7 +1304,7 @@
// resize
$(window).on('resize', function(){
- self.doFocus( $field ).resize();
+ self.set('$field', $field).resize();
});
@@ -1315,15 +1317,76 @@
this.resize();
},
-
+
+
+ /*
+ * resize
+ *
+ * This function will resize the columns
+ *
+ * @type function
+ * @date 20/04/2016
+ * @since 5.3.8
+ *
+ * @param $post_id (int)
+ * @return $post_id (int)
+ */
+
+ resize: function(){
+
+ // vars
+ var min = 100,
+ max = 175,
+ columns = 4,
+ width = this.$el.width();
+
+
+ // get width
+ for( var i = 4; i < 20; i++ ) {
+
+ var w = width/i;
+
+ if( min < w && w < max ) {
+
+ columns = i;
+ break;
+
+ }
+
+ }
+
+
+ // max columns css is 8
+ columns = Math.min(columns, 8);
+
+
+ // update data
+ this.$el.attr('data-columns', columns);
+
+ },
+
+
+ /*
+ * render
+ *
+ * This function will render classes etc
+ *
+ * @type function
+ * @date 19/04/2016
+ * @since 5.3.8
+ *
+ * @param n/a
+ * @return n/a
+ */
+
render: function() {
// vars
- var $select = this.$el.find('.bulk-actions'),
- $a = this.$el.find('.add-attachment');
+ var $select = this.$main.find('.acf-gallery-sort'),
+ $a = this.$main.find('.acf-gallery-add');
- // disable select
+ // disable a
if( this.o.max > 0 && this.count() >= this.o.max ) {
$a.addClass('disabled');
@@ -1334,107 +1397,456 @@
}
- },
-
- sort: function( e ){
- // vars
- var sort = e.$el.val();
+ // disable select
+ if( !this.count() ) {
+ $select.addClass('disabled');
+
+ } else {
- // validate
- if( !sort ) {
-
- return;
+ $select.removeClass('disabled');
}
-
- // vars
- var data = acf.prepare_for_ajax({
- action : 'acf/fields/gallery/get_sort_order',
- field_key : this.$field.data('key'),
- post_id : acf.get('post_id'),
- ids : [],
- sort : sort
- });
-
-
- // find and add attachment ids
- this.get_attachment().each(function(){
-
- data.ids.push( $(this).attr('data-id') );
-
- });
-
-
- // get results
- var xhr = $.ajax({
- url : acf.get('ajaxurl'),
- dataType : 'json',
- type : 'post',
- cache : false,
- data : data,
- context : this,
- success : this.sort_success
- });
-
},
- sort_success: function( json ) {
- // validate
- if( !acf.is_ajax_success(json) ) {
-
- return;
-
- }
-
-
- // reverse order
- json.data.reverse();
-
-
- // loop over json
- for( i in json.data ) {
-
- var id = json.data[ i ],
- $attachment = this.get_attachment(id);
-
-
- // prepend attachment
- this.$el.find('.acf-gallery-attachments').prepend( $attachment );
-
- };
-
- },
+ /*
+ * open_sidebar
+ *
+ * This function will open the gallery sidebar
+ *
+ * @type function
+ * @date 19/04/2016
+ * @since 5.3.8
+ *
+ * @param n/a
+ * @return n/a
+ */
- clear_selection: function(){
+ open_sidebar: function(){
- this.get_attachment().removeClass('active');
-
- },
-
- select_attachment: function( e ){
-
- // vars
- var $attachment = e.$el;
+ // add class
+ this.$el.addClass('sidebar-open');
- // bail early if already active
- if( $attachment.hasClass('active') ) {
-
- return;
-
- }
+ // hide bulk actions
+ this.$main.find('.acf-gallery-sort').hide();
// vars
- var id = $attachment.attr('data-id');
+ var width = this.$el.width() / 3;
+
+
+ // set minimum width
+ width = parseInt( width );
+ width = Math.max( width, 350 );
+
+
+ // animate
+ this.$side.children('.acf-gallery-side-inner').css({ 'width' : width-1 });
+ this.$side.animate({ 'width' : width-1 }, 250);
+ this.$main.animate({ 'right' : width }, 250);
+
+ },
+
+
+ /*
+ * _close
+ *
+ * event listener
+ *
+ * @type function
+ * @date 12/04/2016
+ * @since 5.3.8
+ *
+ * @param e (event)
+ * @return n/a
+ */
+
+ _close: function( e ){
+
+ this.close_sidebar();
+
+ },
+
+
+ /*
+ * close_sidebar
+ *
+ * This function will open the gallery sidebar
+ *
+ * @type function
+ * @date 19/04/2016
+ * @since 5.3.8
+ *
+ * @param n/a
+ * @return n/a
+ */
+
+ close_sidebar: function(){
+
+ // remove class
+ this.$el.removeClass('sidebar-open');
+
+
+ // vars
+ var $select = this.$el.find('.acf-gallery-sort');
// clear selection
- this.clear_selection();
+ this.get_attachment('active').removeClass('active');
+
+
+ // disable sidebar
+ this.$side.find('input, textarea, select').attr('disabled', 'disabled');
+
+
+ // animate
+ this.$main.animate({ right: 0 }, 250);
+ this.$side.animate({ width: 0 }, 250, function(){
+
+ $select.show();
+
+ $(this).find('.acf-gallery-side-data').html('');
+
+ });
+
+ },
+
+
+ /*
+ * count
+ *
+ * This function will return the number of attachemnts
+ *
+ * @type function
+ * @date 12/04/2016
+ * @since 5.3.8
+ *
+ * @param n/a
+ * @return n/a
+ */
+
+ count: function(){
+
+ return this.get_attachments().length;
+
+ },
+
+
+ /*
+ * get_attachments
+ *
+ * description
+ *
+ * @type function
+ * @date 19/04/2016
+ * @since 5.3.8
+ *
+ * @param $post_id (int)
+ * @return $post_id (int)
+ */
+
+ get_attachments: function(){
+
+ return this.$attachments.children('.acf-gallery-attachment');
+
+ },
+
+
+ /*
+ * get_attachment
+ *
+ * This function will return an attachment
+ *
+ * @type function
+ * @date 19/04/2016
+ * @since 5.3.8
+ *
+ * @param id (string)
+ * @return $el
+ */
+
+ get_attachment: function( s ){
+
+ // defaults
+ s = s || 0;
+
+
+ // update selector
+ if( s === 'active' ) {
+
+ s = '.active';
+
+ } else {
+
+ s = '[data-id="' + s + '"]';
+
+ }
+
+
+ // return
+ return this.$attachments.children( '.acf-gallery-attachment'+s );
+
+ },
+
+
+ /*
+ * render_attachment
+ *
+ * This functin will render an attachemnt
+ *
+ * @type function
+ * @date 20/04/2016
+ * @since 5.3.8
+ *
+ * @param $post_id (int)
+ * @return $post_id (int)
+ */
+
+ render_attachment: function( id, data ){
+
+ // prepare
+ data = this.prepare(data);
+
+
+ // vars
+ var $attachment = this.get_attachment(id),
+ $margin = $attachment.find('.margin'),
+ $img = $attachment.find('img'),
+ $filename = $attachment.find('.filename'),
+ $input = $attachment.find('input[type="hidden"]');
+
+
+ // thumbnail
+ var thumbnail = data.url;
+
+
+ // icon
+ if( data.type !== 'image' ) {
+
+ thumbnail = acf._e('media', 'default_icon');
+
+ $attachment.addClass('-icon');
+
+ }
+
+
+ // update els
+ $img.attr({
+ 'src': thumbnail,
+ 'alt': data.alt,
+ 'title': data.title
+ });
+ $filename.text(data.filename);
+
+
+ // vars
+ var val = '';
+
+
+ // WP attachment
+ if( data.id ) {
+
+ val = data.id;
+
+ }
+
+
+ // update val
+ acf.val( $input, val );
+
+ },
+
+
+ _add: function( e ){
+
+ // validate
+ if( this.o.max > 0 && this.count() >= this.o.max ) {
+
+ acf.validation.add_warning( this.$field, acf._e('gallery', 'max'));
+
+ return;
+
+ }
+
+
+ // reference
+ var self = this,
+ $field = this.$field;
+
+
+ // popup
+ var frame = acf.media.popup({
+
+ title: acf._e('gallery', 'select'),
+ mode: 'select',
+ type: '',
+ field: this.$field.data('key'),
+ multiple: 'add',
+ library: this.o.library,
+ mime_types: this.o.mime_types,
+ select: function( attachment, i ) {
+
+ // add
+ self.set('$field', $field).add_attachment( attachment, i );
+
+ }
+ });
+
+
+ // modify DOM
+ frame.on('content:activate:browse', function(){
+
+ self.render_collection( frame );
+
+ frame.content.get().collection.on( 'reset add', function(){
+
+ self.render_collection( frame );
+
+ });
+
+ });
+
+ },
+
+
+ /*
+ * add_attachment
+ *
+ * This function will add an attachment
+ *
+ * @type function
+ * @date 20/04/2016
+ * @since 5.3.8
+ *
+ * @param $post_id (int)
+ * @return $post_id (int)
+ */
+
+ add_attachment: function( data, i ){
+
+ // defaults
+ i = i || 0;
+
+
+ // prepare
+ data = this.prepare(data);
+
+
+ // validate
+ if( this.o.max > 0 && this.count() >= this.o.max ) return;
+
+
+ // is image already in gallery?
+ if( this.get_attachment(data.id).exists() ) return;
+
+
+ // vars
+ var name = this.$el.find('input[type="hidden"]:first').attr('name');
+
+
+ // html
+ var html = [
+ '
',
+ '
',
+ '
',
+ '
',
+ '
',
+ '
',
+ '
',
+ '
',
+ '
',
+ '
'].join('');
+
+ var $html = $(html);
+
+
+ // append
+ this.$attachments.append( $html );
+
+
+ // more to beginning
+ if( this.o.insert === 'prepend' ) {
+
+ // vars
+ var $before = this.$attachments.children(':eq('+i+')');
+
+
+ // move
+ if( $before.exists() ) {
+
+ $before.before( $html );
+
+ }
+
+ }
+
+
+ // render data
+ this.render_attachment( data.id, data );
+
+
+ // render
+ this.render();
+
+ },
+
+
+ /*
+ * _select
+ *
+ * event listener
+ *
+ * @type function
+ * @date 12/04/2016
+ * @since 5.3.8
+ *
+ * @param e (event)
+ * @return n/a
+ */
+
+ _select: function( e ){
+
+ // vars
+ var id = e.$el.data('id');
+
+
+ // select
+ this.select_attachment(id);
+
+ },
+
+
+ /*
+ * select_attachment
+ *
+ * This function will select an attachment for editing
+ *
+ * @type function
+ * @date 20/04/2016
+ * @since 5.3.8
+ *
+ * @param $post_id (int)
+ * @return $post_id (int)
+ */
+
+ select_attachment: function( id ){
+
+ // vars
+ var $attachment = this.get_attachment(id);
+
+
+ // bail early if already active
+ if( $attachment.hasClass('active') ) return;
+
+
+ // clear selection
+ this.get_attachment('active').removeClass('active');
// add selection
@@ -1450,61 +1862,77 @@
},
- open_sidebar: function(){
+
+ /*
+ * prepare
+ *
+ * This function will prepare an object of attachment data
+ * selecting a library image vs embed an image via url return different data
+ * this function will keep the 2 consistent
+ *
+ * @type function
+ * @date 12/04/2016
+ * @since 5.3.8
+ *
+ * @param attachment (object)
+ * @return data (object)
+ */
+
+ prepare: function( attachment ) {
- // add class
- this.$el.addClass('sidebar-open');
+ // defaults
+ attachment = attachment || {};
- // hide bulk actions
- this.$el.find('.bulk-actions').hide();
+ // bail ealry if already valid
+ if( attachment._valid ) return attachment;
// vars
- var width = this.$el.width() / 3;
+ var data = {
+ id: '',
+ url: '',
+ alt: '',
+ title: '',
+ filename: ''
+ };
- // set minimum width
- width = parseInt( width );
- width = Math.max( width, 350 );
+ // wp image
+ if( attachment.id ) {
+
+ // update data
+ data = attachment.attributes;
+
+
+ // maybe get preview size
+ data.url = acf.maybe_get(data, 'sizes.'+this.o.preview_size+'.url', data.url);
+
+ }
- // animate
- this.$el.find('.acf-gallery-side-inner').css({ 'width' : width-1 });
- this.$el.find('.acf-gallery-side').animate({ 'width' : width-1 }, 250);
- this.$el.find('.acf-gallery-main').animate({ 'right' : width }, 250);
-
+ // valid
+ data._valid = true;
+
+
+ // return
+ return data;
+
},
- close_sidebar: function(){
-
- // remove class
- this.$el.removeClass('sidebar-open');
-
-
- // vars
- var $select = this.$el.find('.bulk-actions');
-
-
- // deselect attachmnet
- this.clear_selection();
-
-
- // disable sidebar
- this.$el.find('.acf-gallery-side').find('input, textarea, select').attr('disabled', 'disabled');
-
-
- // animate
- this.$el.find('.acf-gallery-main').animate({ right: 0 }, 250);
- this.$el.find('.acf-gallery-side').animate({ width: 0 }, 250, function(){
-
- $select.show();
-
- $(this).find('.acf-gallery-side-data').html( '' );
-
- });
-
- },
+
+ /*
+ * fetch
+ *
+ * This function will fetch the sidebar html to edit an attachment
+ *
+ * @type function
+ * @date 19/04/2016
+ * @since 5.3.8
+ *
+ * @param n/a
+ * @return n/a
+ */
fetch: function( id ){
@@ -1526,6 +1954,23 @@
}
+ // add custom attachment
+ if( typeof id === 'string' && id.indexOf('_') === 0 ) {
+
+ // vars
+ var val = this.get_attachment(id).find('input[type="hidden"]').val();
+
+
+ // parse json
+ val = $.parseJSON(val);
+
+
+ // append
+ data.attachment = val;
+
+ }
+
+
// get results
var xhr = $.ajax({
url : acf.get('ajaxurl'),
@@ -1534,7 +1979,7 @@
cache : false,
data : data,
context : this,
- success : this.render_fetch
+ success : this.fetch_success
});
@@ -1543,18 +1988,14 @@
},
- render_fetch: function( html ){
+ fetch_success: function( html ){
// bail early if no html
- if( !html ) {
-
- return;
-
- }
+ if( !html ) return;
// vars
- var $side = this.$el.find('.acf-gallery-side-data');
+ var $side = this.$side.find('.acf-gallery-side-data');
// render
@@ -1582,25 +2023,123 @@
},
- update_attachment: function(){
+
+ /*
+ * _sort
+ *
+ * event listener
+ *
+ * @type function
+ * @date 12/04/2016
+ * @since 5.3.8
+ *
+ * @param e (event)
+ * @return n/a
+ */
+
+ _sort: function( e ){
// vars
- var $a = this.$el.find('.update-attachment')
- $form = this.$el.find('.acf-gallery-side-data'),
- data = acf.serialize_form( $form );
+ var sort = e.$el.val();
+
+
+ // validate
+ if( !sort ) return;
+
+
+ // vars
+ var data = acf.prepare_for_ajax({
+ action : 'acf/fields/gallery/get_sort_order',
+ field_key : this.$field.data('key'),
+ post_id : acf.get('post_id'),
+ ids : [],
+ sort : sort
+ });
+
+
+ // find and add attachment ids
+ this.get_attachments().each(function(){
+ // vars
+ var id = $(this).attr('data-id');
+
+
+ // bail early if no id (insert from url)
+ if( !id ) return;
+
+
+ // append
+ data.ids.push(id);
+
+ });
+
+
+ // get results
+ var xhr = $.ajax({
+ url: acf.get('ajaxurl'),
+ dataType: 'json',
+ type: 'post',
+ cache: false,
+ data: data,
+ context: this,
+ success: this._sort_success
+ });
+ },
+
+ _sort_success: function( json ) {
// validate
- if( $a.attr('disabled') ) {
+ if( !acf.is_ajax_success(json) ) return;
- return false;
+
+ // reverse order
+ json.data.reverse();
+
+
+ // loop over json
+ for( i in json.data ) {
+
+ var id = json.data[ i ],
+ $attachment = this.get_attachment(id);
+
+
+ // prepend attachment
+ this.$attachments.prepend( $attachment );
}
+ },
+
+
+ /*
+ * _update
+ *
+ * event listener
+ *
+ * @type function
+ * @date 12/04/2016
+ * @since 5.3.8
+ *
+ * @param e (event)
+ * @return n/a
+ */
+
+ _update: function(){
+
+ // vars
+ var $submit = this.$side.find('.acf-gallery-update'),
+ $edit = this.$side.find('.acf-gallery-edit'),
+ $form = this.$side.find('.acf-gallery-side-data'),
+ id = $edit.data('id'),
+ data = acf.serialize_form( $form );
+
+
+ // validate
+ if( $submit.attr('disabled') ) return false;
// add attr
- $a.attr('disabled', 'disabled');
- $a.before('
');
+ $submit.attr('disabled', 'disabled');
+ $submit.before('
');
// append AJAX action
@@ -1619,142 +2158,145 @@
dataType : 'json',
complete : function( json ){
- $a.removeAttr('disabled');
- $a.prev('.acf-loading').remove();
+ $submit.removeAttr('disabled');
+ $submit.prev('.acf-loading').remove();
}
});
},
- add: function( a ){
-
- // validate
- if( this.o.max > 0 && this.count() >= this.o.max ) {
-
- acf.validation.add_warning( this.$field, acf._e('gallery', 'max'));
-
- return;
-
- }
-
-
- // vars
- var thumb_url = a.url,
- thumb_class = 'acf-gallery-attachment acf-soh',
- filename = '',
- name = this.$el.find('[data-name="ids"]').attr('name');
-
-
- // title
- if( a.type !== 'image' && a.filename ) {
-
- filename = '
' + a.filename + '
';
-
- }
-
-
- // icon
- if( !thumb_url ) {
-
- thumb_url = a.icon;
- thumb_class += ' is-mime-icon';
-
- }
-
-
- // html
- var html = [
- '
',
- '
',
- '
',
- '
',
- '
',
- '
',
- filename,
- '
',
- '
',
- '
'].join('');
-
-
- // append
- this.$el.find('.acf-gallery-attachments').append( html );
-
-
- // render
- this.render();
-
- },
- edit_attachment:function( e ){
-
- // reference
- var self = this;
-
-
- // vars
- var id = acf.get_data(e.$el, 'id');
-
-
- // popup
- var frame = acf.media.popup({
-
- title: acf._e('image', 'edit'),
- button: acf._e('image', 'update'),
- mode: 'edit',
- id: id,
- select: function( attachment ){
-
- // override url
- if( acf.isset(attachment, 'attributes', 'sizes', self.o.preview_size, 'url') ) {
-
- attachment.url = attachment.attributes.sizes[ self.o.preview_size ].url;
-
- }
-
-
- // update image
- self.get_attachment(id).find('img').attr( 'src', attachment.url );
-
-
- // render sidebar
- self.fetch( id );
-
- }
- });
-
- },
+ /*
+ * _remove
+ *
+ * event listener
+ *
+ * @type function
+ * @date 12/04/2016
+ * @since 5.3.8
+ *
+ * @param e (event)
+ * @return n/a
+ */
- remove_attachment: function( e ){
+ _remove: function( e ){
// prevent event from triggering click on attachment
e.stopPropagation();
// vars
- var id = acf.get_data(e.$el, 'id');
+ var id = e.$el.data('id');
- // deselect attachmnet
- this.clear_selection();
+ // select
+ this.remove_attachment(id);
+ },
+
+
+ /*
+ * remove_attachment
+ *
+ * This function will remove an attachment
+ *
+ * @type function
+ * @date 20/04/2016
+ * @since 5.3.8
+ *
+ * @param $post_id (int)
+ * @return $post_id (int)
+ */
+
+ remove_attachment: function( id ){
- // update sidebar
+ // close sidebar (if open)
this.close_sidebar();
- // remove image
+ // remove attachment
this.get_attachment(id).remove();
- // render
+ // render (update classes)
this.render();
+ },
+
+
+ /*
+ * _edit
+ *
+ * event listener
+ *
+ * @type function
+ * @date 12/04/2016
+ * @since 5.3.8
+ *
+ * @param e (event)
+ * @return n/a
+ */
+
+ _edit:function( e ){
+
+ // vars
+ var id = e.$el.data('id');
+
+
+ // select
+ this.edit_attachment(id);
+
+ },
+
+
+ /*
+ * edit_attachment
+ *
+ * This function will create a WP popup to edit an attachment
+ *
+ * @type function
+ * @date 20/04/2016
+ * @since 5.3.8
+ *
+ * @param $post_id (int)
+ * @return $post_id (int)
+ */
+
+ edit_attachment: function( id ){
+
+ // reference
+ var self = this,
+ $field = this.$field;
+
+
+ // vars
+ var attachment = id,
+ $attachment = this.get_attachment(id);
+
+
+ // popup
+ var frame = acf.media.popup({
+ mode: 'edit',
+ title: acf._e('image', 'edit'),
+ button: acf._e('image', 'update'),
+ attachment: attachment,
+ select: function( attachment ){
+
+ // render attachment
+ self.set('$field', $field).render_attachment( id, attachment );
+
+
+ // render sidebar
+ self.fetch( id );
+
+ }
+ });
},
+
+
render_collection: function( frame ){
var self = this;
@@ -1795,137 +2337,8 @@
}
-
}, 10);
-
-
- },
-
- add_attachment: function( e ){
- // validate
- if( this.o.max > 0 && this.count() >= this.o.max ) {
-
- acf.validation.add_warning( this.$field, acf._e('gallery', 'max'));
-
- return;
-
- }
-
-
- // vars
- var preview_size = this.o.preview_size;
-
-
- // reference
- var self = this,
- $field = this.$field;
-
-
- // popup
- var frame = acf.media.popup({
-
- title: acf._e('gallery', 'select'),
- mode: 'select',
- type: '',
- field: this.$field.data('key'),
- multiple: 'add',
- library: this.o.library,
- mime_types: this.o.mime_types,
-
- select: function( attachment, i ) {
-
- // vars
- var atts = attachment.attributes;
-
-
- // focus
- self.doFocus($field);
-
-
- // is image already in gallery?
- if( self.get_attachment(atts.id).exists() ) {
-
- return;
-
- }
-
- //console.log( attachment );
-
- // vars
- var a = {
- id: atts.id,
- type: atts.type,
- icon: atts.icon,
- filename: atts.filename,
- url: ''
- };
-
-
- // type
- if( a.type === 'image' ) {
-
- a.url = acf.maybe_get(atts, 'sizes.'+preview_size+'.url', atts.url);
-
- } else {
-
- a.url = acf.maybe_get(atts, 'thumb.src', '');
-
- }
-
-
- // add file to field
- self.add( a );
-
- }
- });
-
-
- // modify DOM
- frame.on('content:activate:browse', function(){
-
- self.render_collection( frame );
-
- frame.content.get().collection.on( 'reset add', function(){
-
- self.render_collection( frame );
-
- });
-
- });
-
- },
-
- resize: function(){
-
- // vars
- var min = 100,
- max = 175,
- columns = 4,
- width = this.$el.width();
-
-
- // get width
- for( var i = 4; i < 20; i++ ) {
-
- var w = width/i;
-
- if( min < w && w < max ) {
-
- columns = i;
- break;
-
- }
-
- }
-
-
- // max columns css is 8
- columns = Math.min(columns, 8);
-
-
- // update data
- this.$el.attr('data-columns', columns);
}
});
diff --git a/pro/assets/js/acf-pro-input.min.js b/pro/assets/js/acf-pro-input.min.js
index 63b932b..760dbf7 100644
--- a/pro/assets/js/acf-pro-input.min.js
+++ b/pro/assets/js/acf-pro-input.min.js
@@ -1 +1 @@
-!function($){acf.pro=acf.model.extend({actions:{refresh:"refresh"},filters:{get_fields:"get_fields"},get_fields:function(e){return e=e.not(".acf-clone .acf-field")},refresh:function(e){var t=this;return e=e||!1,e&&e.is("tr")?void t.render_table(e.closest("table")):void $(".acf-table",e).each(function(){t.render_table($(this))})},render_table:function(e){var t=e.find("> thead th.acf-th"),a=1,i=100;t.exists()&&(t.each(function(){var t=$(this),a=t.attr("data-key"),i=e.find('td[data-key="'+a+'"]');i.removeClass("appear-empty"),t.removeClass("hidden-by-conditional-logic"),i.exists()&&(0==i.not(".hidden-by-conditional-logic").length?t.addClass("hidden-by-conditional-logic"):i.filter(".hidden-by-conditional-logic").addClass("appear-empty"))}),t.css("width","auto"),t=t.not(".hidden-by-conditional-logic"),a=t.length,t.filter("[data-width]").each(function(){var e=parseInt($(this).attr("data-width"));i-=e,$(this).css("width",e+"%")}),t=t.not("[data-width]"),t.each(function(){var e=i/t.length;$(this).css("width",e+"%")}),e.find(".acf-row .acf-field.-collapsed-target").removeAttr("colspan"),e.find(".acf-row.-collapsed .acf-field.-collapsed-target").attr("colspan",a))}})}(jQuery),function($){acf.fields.repeater=acf.field.extend({type:"repeater",$el:null,$input:null,$table:null,$tbody:null,$clone:null,actions:{ready:"initialize",append:"initialize",show:"show"},events:{'click a[data-event="add-row"]':"_add",'click a[data-event="remove-row"]':"_remove",'click a[data-event="collapse-row"]':"_collapse","mouseenter td.order":"_mouseenter"},focus:function(){this.$el=this.$field.find(".acf-repeater:first"),this.$input=this.$field.find("input:first"),this.$table=this.$field.find("table:first"),this.$tbody=this.$table.children("tbody"),this.$clone=this.$tbody.children("tr.acf-clone"),this.o=acf.get_data(this.$el),this.o.min=this.o.min||0,this.o.max=this.o.max||0},initialize:function(){this.$clone.find("input, textarea, select").attr("disabled","disabled"),this.render()},show:function(){this.$tbody.find(".acf-field:visible").each(function(){acf.do_action("show_field",$(this))})},count:function(){return this.$tbody.children().length-1},render:function(){this.$tbody.children().each(function(e){$(this).find("> td.order > span").html(e+1)}),0==this.count()?this.$el.addClass("-empty"):this.$el.removeClass("-empty"),this.o.max>0&&this.count()>=this.o.max?this.$el.find("> .acf-actions .button").addClass("disabled"):this.$el.find("> .acf-actions .button").removeClass("disabled")},add:function(e){if(e=e||this.$clone,this.o.max>0&&this.count()>=this.o.max)return alert(acf._e("repeater","max").replace("{max}",this.o.max)),!1;var t=this.$field;return $el=acf.duplicate(this.$clone),$el.removeClass("acf-clone"),$el.find("input, textarea, select").not(".acf-disabled").removeAttr("disabled"),e.before($el),this.doFocus(t),this.render(),acf.validation.remove_error(this.$field),this.sync(),$el},remove:function(e){var t=this;return this.count()<=this.o.min?(alert(acf._e("repeater","min").replace("{min}",this.o.min)),!1):(acf.do_action("remove",e),void acf.remove_tr(e,function(){t.$input.trigger("change"),t.render(),t.sync(),acf.do_action("refresh",t.$field)}))},sync:function(){var e="collapsed_"+this.$field.data("key"),t=[];this.$tbody.children().each(function(e){$(this).hasClass("-collapsed")&&t.push(e)}),acf.update_user_setting(e,t.join(","))},_mouseenter:function(e){if(!this.$tbody.hasClass("ui-sortable")&&1!=this.o.max){var t=this;this.$tbody.sortable({items:"> tr",handle:"> td.order",forceHelperSize:!0,forcePlaceholderSize:!0,scroll:!0,start:function(e,t){acf.do_action("sortstart",t.item,t.placeholder)},stop:function(e,a){t.render(),acf.do_action("sortstop",a.item,a.placeholder)},update:function(e,a){t.$input.trigger("change")}})}},_add:function(e){$row=!1,e.$el.hasClass("acf-icon")&&($row=e.$el.closest(".acf-row")),this.add($row)},_remove:function(e){this.remove(e.$el.closest(".acf-row"))},_collapse:function(e){var t=e.$el.closest(".acf-row");t.hasClass("-collapsed")?(t.removeClass("-collapsed"),acf.do_action("show",t,"collapse")):(t.addClass("-collapsed"),acf.do_action("hide",t,"collapse")),this.sync(),acf.do_action("refresh",this.$field)}})}(jQuery),function($){acf.fields.flexible_content=acf.field.extend({type:"flexible_content",$el:null,$input:null,$values:null,$clones:null,actions:{ready:"initialize",append:"initialize",show:"show"},events:{'click [data-event="add-layout"]':"_open",'click [data-event="remove-layout"]':"_remove",'click [data-event="collapse-layout"]':"_collapse","click .acf-fc-layout-handle":"_collapse","click .acf-fc-popup a":"_add","blur .acf-fc-popup .focus":"_close","mouseenter .acf-fc-layout-handle":"_mouseenter"},focus:function(){this.$el=this.$field.find(".acf-flexible-content:first"),this.$input=this.$el.siblings("input"),this.$values=this.$el.children(".values"),this.$clones=this.$el.children(".clones"),this.o=acf.get_data(this.$el),this.o.min=this.o.min||0,this.o.max=this.o.max||0},count:function(){return this.$values.children(".layout").length},initialize:function(){this.$clones.find("input, textarea, select").attr("disabled","disabled"),this.render()},show:function(){this.$values.find(".acf-field:visible").each(function(){acf.do_action("show_field",$(this))})},render:function(){var e=this;this.$values.children(".layout").each(function(e){$(this).find("> .acf-fc-layout-handle .acf-fc-layout-order").html(e+1)}),0==this.count()?this.$el.addClass("empty"):this.$el.removeClass("empty"),this.o.max>0&&this.count()>=this.o.max?this.$el.find("> .acf-actions .button").addClass("disabled"):this.$el.find("> .acf-actions .button").removeClass("disabled")},render_layout:function(e){},validate_add:function(e){if(this.o.max>0&&this.count()>=this.o.max){var t=1==this.o.max?"layout":"layouts",a=acf._e("flexible_content","max");return a=a.replace("{max}",this.o.max),a=a.replace("{identifier}",acf._e("flexible_content",t)),alert(a),!1}var i=$(this.$el.children(".tmpl-popup").html()),l=i.find('[data-layout="'+e+'"]'),n=parseInt(l.attr("data-max")),s=this.$values.children('.layout[data-layout="'+e+'"]').length;if(n>0&&s>=n){var t=1==n?"layout":"layouts",a=acf._e("flexible_content","max_layout");return a=a.replace("{max}",s),a=a.replace("{label}",'"'+l.text()+'"'),a=a.replace("{identifier}",acf._e("flexible_content",t)),alert(a),!1}return!0},validate_remove:function(e){if(this.o.min>0&&this.count()<=this.o.min){var t=1==this.o.min?"layout":"layouts",a=acf._e("flexible_content","min")+", "+acf._e("flexible_content","remove");return a=a.replace("{min}",this.o.min),a=a.replace("{identifier}",acf._e("flexible_content",t)),a=a.replace("{layout}",acf._e("flexible_content","layout")),confirm(a)}var i=$(this.$el.children(".tmpl-popup").html()),l=i.find('[data-layout="'+e+'"]'),n=parseInt(l.attr("data-min")),s=this.$values.children('.layout[data-layout="'+e+'"]').length;if(n>0&&n>=s){var t=1==n?"layout":"layouts",a=acf._e("flexible_content","min_layout")+", "+acf._e("flexible_content","remove");return a=a.replace("{min}",s),a=a.replace("{label}",'"'+l.text()+'"'),a=a.replace("{identifier}",acf._e("flexible_content",t)),a=a.replace("{layout}",acf._e("flexible_content","layout")),confirm(a)}return!0},sync:function(){var e="collapsed_"+this.$field.data("key"),t=[];this.$values.children(".layout").each(function(e){$(this).hasClass("-collapsed")&&t.push(e)}),acf.update_user_setting(e,t.join(","))},add:function(e,t){if(t=t||!1,!this.validate_add(e))return!1;var a=this.$field,i=this.$clones.children('.layout[data-layout="'+e+'"]');$el=acf.duplicate(i),$el.find("input, textarea, select").not(".acf-disabled").removeAttr("disabled"),this.$el.children(".no-value-message").hide(),t?t.before($el):this.$values.append($el),this.doFocus(a),this.render(),acf.validation.remove_error(this.$field),this.sync()},_mouseenter:function(e){if(!this.$values.hasClass("ui-sortable")&&1!=this.o.max){var t=this;this.$values.sortable({items:"> .layout",handle:"> .acf-fc-layout-handle",forceHelperSize:!0,forcePlaceholderSize:!0,scroll:!0,start:function(e,t){acf.do_action("sortstart",t.item,t.placeholder)},stop:function(e,a){t.render(),acf.do_action("sortstop",a.item,a.placeholder)},update:function(e,a){t.$input.trigger("change")}})}},_open:function(e){var t=this.$values,a=$(this.$el.children(".tmpl-popup").html());a.find("a").each(function(){var e=parseInt($(this).attr("data-min")),a=parseInt($(this).attr("data-max")),i=$(this).attr("data-layout"),l=$(this).text(),n=t.children('.layout[data-layout="'+i+'"]').length,s=$(this).children(".status");if(a>0){var c=a-n,o=acf._e("flexible_content","available"),r=1==c?"layout":"layouts",o=o.replace("{available}",c);o=o.replace("{max}",a),o=o.replace("{label}",'"'+l+'"'),o=o.replace("{identifier}",acf._e("flexible_content",r)),s.show().text(c).attr("title",o),0==c&&s.addClass("warning")}if(e>0){var d=e-n,o=acf._e("flexible_content","required"),r=1==d?"layout":"layouts",o=o.replace("{required}",d);o=o.replace("{min}",e),o=o.replace("{label}",'"'+l+'"'),o=o.replace("{identifier}",acf._e("flexible_content",r)),d>0&&s.addClass("warning").show().text(d).attr("title",o)}}),e.$el.after(a),e.$el.closest(".acf-fc-layout-controlls").exists()&&a.closest(".layout").addClass("-open"),a.css({"margin-top":0-a.height()-e.$el.outerHeight()-14,"margin-left":(e.$el.outerWidth()-a.width())/2});var i=a.offset().top;30>i&&(a.css({"margin-top":15}),a.find(".bit").addClass("top")),a.children(".focus").trigger("focus")},_close:function(e){var t=e.$el.parent(),a=t.closest(".layout");a.removeClass("-open"),setTimeout(function(){t.remove()},200)},_add:function(e){var t=e.$el.closest(".acf-fc-popup"),a=e.$el.attr("data-layout"),i=!1;t.closest(".acf-fc-layout-controlls").exists()&&(i=t.closest(".layout")),this.add(a,i)},_remove:function(e){var t=this,a=e.$el.closest(".layout");if(this.validate_remove(a.attr("data-layout"))){var i=0,l=this.$el.children(".no-value-message");0==a.siblings(".layout").length&&(i=l.outerHeight()),acf.do_action("remove",a),acf.remove_el(a,function(){t.render(),t.$input.trigger("change"),i>0&&l.show(),t.sync()},i)}},_collapse:function(e){var t=e.$el.closest(".layout");t.hasClass("-collapsed")?(t.removeClass("-collapsed"),acf.do_action("refresh",t)):t.addClass("-collapsed"),this.sync();var a=acf.serialize(t);$.extend(a,{action:"acf/fields/flexible_content/layout_title",field_key:this.$field.data("key"),post_id:acf.get("post_id"),i:t.index(),layout:t.data("layout")}),$.ajax({url:acf.get("ajaxurl"),dataType:"html",type:"post",data:a,success:function(e){e&&t.find("> .acf-fc-layout-handle").html(e)}})}})}(jQuery),function($){acf.fields.gallery=acf.field.extend({type:"gallery",$el:null,actions:{ready:"initialize",append:"initialize",submit:"close_sidebar",show:"resize"},events:{"click .acf-gallery-attachment":"select_attachment","click .remove-attachment":"remove_attachment","click .edit-attachment":"edit_attachment","click .update-attachment":"update_attachment","click .add-attachment":"add_attachment","click .close-sidebar":"close_sidebar","change .acf-gallery-side input":"update_attachment","change .acf-gallery-side textarea":"update_attachment","change .acf-gallery-side select":"update_attachment","change .bulk-actions":"sort"},focus:function(){this.$el=this.$field.find(".acf-gallery").first(),this.$values=this.$el.children(".values"),this.$clones=this.$el.children(".clones"),this.o=acf.get_data(this.$el),this.o.min=this.o.min||0,this.o.max=this.o.max||0},get_attachment:function(e){e=e||"";var t=".acf-gallery-attachment";return"active"===e?t+=".active":e&&(t+='[data-id="'+e+'"]'),this.$el.find(t)},count:function(){return this.get_attachment().length},initialize:function(){var e=this,t=this.$field;this.$el.find(".acf-gallery-attachments").unbind("sortable").sortable({items:".acf-gallery-attachment",forceHelperSize:!0,forcePlaceholderSize:!0,scroll:!0,start:function(e,t){t.placeholder.html(t.item.html()),t.placeholder.removeAttr("style"),acf.do_action("sortstart",t.item,t.placeholder)},stop:function(e,t){acf.do_action("sortstop",t.item,t.placeholder)}}),this.$el.unbind("resizable").resizable({handles:"s",minHeight:200,stop:function(e,t){acf.update_user_setting("gallery_height",t.size.height)}}),$(window).on("resize",function(){e.doFocus(t).resize()}),this.render(),this.resize()},render:function(){var e=this.$el.find(".bulk-actions"),t=this.$el.find(".add-attachment");this.o.max>0&&this.count()>=this.o.max?t.addClass("disabled"):t.removeClass("disabled")},sort:function(e){var t=e.$el.val();if(t){var a=acf.prepare_for_ajax({action:"acf/fields/gallery/get_sort_order",field_key:this.$field.data("key"),post_id:acf.get("post_id"),ids:[],sort:t});this.get_attachment().each(function(){a.ids.push($(this).attr("data-id"))});var i=$.ajax({url:acf.get("ajaxurl"),dataType:"json",type:"post",cache:!1,data:a,context:this,success:this.sort_success})}},sort_success:function(e){if(acf.is_ajax_success(e)){e.data.reverse();for(i in e.data){var t=e.data[i],a=this.get_attachment(t);this.$el.find(".acf-gallery-attachments").prepend(a)}}},clear_selection:function(){this.get_attachment().removeClass("active")},select_attachment:function(e){var t=e.$el;if(!t.hasClass("active")){var a=t.attr("data-id");this.clear_selection(),t.addClass("active"),this.fetch(a),this.open_sidebar()}},open_sidebar:function(){this.$el.addClass("sidebar-open"),this.$el.find(".bulk-actions").hide();var e=this.$el.width()/3;e=parseInt(e),e=Math.max(e,350),this.$el.find(".acf-gallery-side-inner").css({width:e-1}),this.$el.find(".acf-gallery-side").animate({width:e-1},250),this.$el.find(".acf-gallery-main").animate({right:e},250)},close_sidebar:function(){this.$el.removeClass("sidebar-open");var e=this.$el.find(".bulk-actions");this.clear_selection(),this.$el.find(".acf-gallery-side").find("input, textarea, select").attr("disabled","disabled"),this.$el.find(".acf-gallery-main").animate({right:0},250),this.$el.find(".acf-gallery-side").animate({width:0},250,function(){e.show(),$(this).find(".acf-gallery-side-data").html("")})},fetch:function(e){var t=acf.prepare_for_ajax({action:"acf/fields/gallery/get_attachment",field_key:this.$field.data("key"),nonce:acf.get("nonce"),post_id:acf.get("post_id"),id:e});this.$el.data("xhr")&&this.$el.data("xhr").abort();var a=$.ajax({url:acf.get("ajaxurl"),dataType:"html",type:"post",cache:!1,data:t,context:this,success:this.render_fetch});this.$el.data("xhr",a)},render_fetch:function(e){if(e){var t=this.$el.find(".acf-gallery-side-data");t.html(e),t.find(".compat-field-acf-form-data").remove();var a=t.find("> .compat-attachment-fields > tbody > tr").detach();t.find("> table.form-table > tbody").append(a),t.find("> .compat-attachment-fields").remove(),acf.do_action("append",t)}},update_attachment:function(){var e=this.$el.find(".update-attachment");return $form=this.$el.find(".acf-gallery-side-data"),data=acf.serialize_form($form),e.attr("disabled")?!1:(e.attr("disabled","disabled"),e.before('
'),data.action="acf/fields/gallery/update_attachment",acf.prepare_for_ajax(data),void $.ajax({url:acf.get("ajaxurl"),data:data,type:"post",dataType:"json",complete:function(t){e.removeAttr("disabled"),e.prev(".acf-loading").remove()}}))},add:function(e){if(this.o.max>0&&this.count()>=this.o.max)return void acf.validation.add_warning(this.$field,acf._e("gallery","max"));var t=e.url,a="acf-gallery-attachment acf-soh",i="",l=this.$el.find('[data-name="ids"]').attr("name");"image"!==e.type&&e.filename&&(i='
'+e.filename+"
"),t||(t=e.icon,a+=" is-mime-icon");var n=['
','
','
','
','
',"
",i,"
",'
","
"].join("");this.$el.find(".acf-gallery-attachments").append(n),this.render()},edit_attachment:function(e){var t=this,a=acf.get_data(e.$el,"id"),i=acf.media.popup({title:acf._e("image","edit"),button:acf._e("image","update"),mode:"edit",id:a,select:function(e){acf.isset(e,"attributes","sizes",t.o.preview_size,"url")&&(e.url=e.attributes.sizes[t.o.preview_size].url),t.get_attachment(a).find("img").attr("src",e.url),t.fetch(a)}})},remove_attachment:function(e){e.stopPropagation();var t=acf.get_data(e.$el,"id");this.clear_selection(),this.close_sidebar(),this.get_attachment(t).remove(),this.render()},render_collection:function(e){var t=this;setTimeout(function(){var a=e.content.get().$el;if(collection=e.content.get().collection||null,collection){var i=-1;collection.each(function(e){i++;var l=a.find(".attachments > .attachment:eq("+i+")");t.get_attachment(e.id).exists()&&(e.off("selection:single"),l.addClass("acf-selected"))})}},10)},add_attachment:function(e){if(this.o.max>0&&this.count()>=this.o.max)return void acf.validation.add_warning(this.$field,acf._e("gallery","max"));var t=this.o.preview_size,a=this,i=this.$field,l=acf.media.popup({title:acf._e("gallery","select"),mode:"select",type:"",field:this.$field.data("key"),multiple:"add",library:this.o.library,mime_types:this.o.mime_types,select:function(e,l){var n=e.attributes;if(a.doFocus(i),!a.get_attachment(n.id).exists()){var s={id:n.id,type:n.type,icon:n.icon,filename:n.filename,url:""};"image"===s.type?s.url=acf.maybe_get(n,"sizes."+t+".url",n.url):s.url=acf.maybe_get(n,"thumb.src",""),a.add(s)}}});l.on("content:activate:browse",function(){a.render_collection(l),l.content.get().collection.on("reset add",function(){a.render_collection(l)})})},resize:function(){for(var e=100,t=175,a=4,i=this.$el.width(),l=4;20>l;l++){var n=i/l;if(n>e&&t>n){a=l;break}}a=Math.min(a,8),this.$el.attr("data-columns",a)}})}(jQuery);
+!function($){acf.pro=acf.model.extend({actions:{refresh:"refresh"},filters:{get_fields:"get_fields"},get_fields:function(t){return t=t.not(".acf-clone .acf-field")},refresh:function(t){var e=this;return t=t||!1,t&&t.is("tr")?void e.render_table(t.closest("table")):void $(".acf-table",t).each(function(){e.render_table($(this))})},render_table:function(t){var e=t.find("> thead th.acf-th"),a=1,i=100;e.exists()&&(e.each(function(){var e=$(this),a=e.attr("data-key"),i=t.find('td[data-key="'+a+'"]');i.removeClass("appear-empty"),e.removeClass("hidden-by-conditional-logic"),i.exists()&&(0==i.not(".hidden-by-conditional-logic").length?e.addClass("hidden-by-conditional-logic"):i.filter(".hidden-by-conditional-logic").addClass("appear-empty"))}),e.css("width","auto"),e=e.not(".hidden-by-conditional-logic"),a=e.length,e.filter("[data-width]").each(function(){var t=parseInt($(this).attr("data-width"));i-=t,$(this).css("width",t+"%")}),e=e.not("[data-width]"),e.each(function(){var t=i/e.length;$(this).css("width",t+"%")}),t.find(".acf-row .acf-field.-collapsed-target").removeAttr("colspan"),t.find(".acf-row.-collapsed .acf-field.-collapsed-target").attr("colspan",a))}})}(jQuery),function($){acf.fields.repeater=acf.field.extend({type:"repeater",$el:null,$input:null,$table:null,$tbody:null,$clone:null,actions:{ready:"initialize",append:"initialize",show:"show"},events:{'click a[data-event="add-row"]':"_add",'click a[data-event="remove-row"]':"_remove",'click a[data-event="collapse-row"]':"_collapse","mouseenter td.order":"_mouseenter"},focus:function(){this.$el=this.$field.find(".acf-repeater:first"),this.$input=this.$field.find("input:first"),this.$table=this.$field.find("table:first"),this.$tbody=this.$table.children("tbody"),this.$clone=this.$tbody.children("tr.acf-clone"),this.o=acf.get_data(this.$el),this.o.min=this.o.min||0,this.o.max=this.o.max||0},initialize:function(){this.$clone.find("input, textarea, select").attr("disabled","disabled"),this.render()},show:function(){this.$tbody.find(".acf-field:visible").each(function(){acf.do_action("show_field",$(this))})},count:function(){return this.$tbody.children().length-1},render:function(){this.$tbody.children().each(function(t){$(this).find("> td.order > span").html(t+1)}),0==this.count()?this.$el.addClass("-empty"):this.$el.removeClass("-empty"),this.o.max>0&&this.count()>=this.o.max?this.$el.find("> .acf-actions .button").addClass("disabled"):this.$el.find("> .acf-actions .button").removeClass("disabled")},add:function(t){if(t=t||this.$clone,this.o.max>0&&this.count()>=this.o.max)return alert(acf._e("repeater","max").replace("{max}",this.o.max)),!1;var e=this.$field;return $el=acf.duplicate(this.$clone),$el.removeClass("acf-clone"),$el.find("input, textarea, select").not(".acf-disabled").removeAttr("disabled"),t.before($el),this.doFocus(e),this.render(),acf.validation.remove_error(this.$field),this.sync(),$el},remove:function(t){var e=this;return this.count()<=this.o.min?(alert(acf._e("repeater","min").replace("{min}",this.o.min)),!1):(acf.do_action("remove",t),void acf.remove_tr(t,function(){e.$input.trigger("change"),e.render(),e.sync(),acf.do_action("refresh",e.$field)}))},sync:function(){var t="collapsed_"+this.$field.data("key"),e=[];this.$tbody.children().each(function(t){$(this).hasClass("-collapsed")&&e.push(t)}),acf.update_user_setting(t,e.join(","))},_mouseenter:function(t){if(!this.$tbody.hasClass("ui-sortable")&&1!=this.o.max){var e=this;this.$tbody.sortable({items:"> tr",handle:"> td.order",forceHelperSize:!0,forcePlaceholderSize:!0,scroll:!0,start:function(t,e){acf.do_action("sortstart",e.item,e.placeholder)},stop:function(t,a){e.render(),acf.do_action("sortstop",a.item,a.placeholder)},update:function(t,a){e.$input.trigger("change")}})}},_add:function(t){$row=!1,t.$el.hasClass("acf-icon")&&($row=t.$el.closest(".acf-row")),this.add($row)},_remove:function(t){this.remove(t.$el.closest(".acf-row"))},_collapse:function(t){var e=t.$el.closest(".acf-row");e.hasClass("-collapsed")?(e.removeClass("-collapsed"),acf.do_action("show",e,"collapse")):(e.addClass("-collapsed"),acf.do_action("hide",e,"collapse")),this.sync(),acf.do_action("refresh",this.$field)}})}(jQuery),function($){acf.fields.flexible_content=acf.field.extend({type:"flexible_content",$el:null,$input:null,$values:null,$clones:null,actions:{ready:"initialize",append:"initialize",show:"show"},events:{'click [data-event="add-layout"]':"_open",'click [data-event="remove-layout"]':"_remove",'click [data-event="collapse-layout"]':"_collapse","click .acf-fc-layout-handle":"_collapse","click .acf-fc-popup a":"_add","blur .acf-fc-popup .focus":"_close","mouseenter .acf-fc-layout-handle":"_mouseenter"},focus:function(){this.$el=this.$field.find(".acf-flexible-content:first"),this.$input=this.$el.siblings("input"),this.$values=this.$el.children(".values"),this.$clones=this.$el.children(".clones"),this.o=acf.get_data(this.$el),this.o.min=this.o.min||0,this.o.max=this.o.max||0},count:function(){return this.$values.children(".layout").length},initialize:function(){this.$clones.find("input, textarea, select").attr("disabled","disabled"),this.render()},show:function(){this.$values.find(".acf-field:visible").each(function(){acf.do_action("show_field",$(this))})},render:function(){var t=this;this.$values.children(".layout").each(function(t){$(this).find("> .acf-fc-layout-handle .acf-fc-layout-order").html(t+1)}),0==this.count()?this.$el.addClass("empty"):this.$el.removeClass("empty"),this.o.max>0&&this.count()>=this.o.max?this.$el.find("> .acf-actions .button").addClass("disabled"):this.$el.find("> .acf-actions .button").removeClass("disabled")},render_layout:function(t){},validate_add:function(t){if(this.o.max>0&&this.count()>=this.o.max){var e=1==this.o.max?"layout":"layouts",a=acf._e("flexible_content","max");return a=a.replace("{max}",this.o.max),a=a.replace("{identifier}",acf._e("flexible_content",e)),alert(a),!1}var i=$(this.$el.children(".tmpl-popup").html()),l=i.find('[data-layout="'+t+'"]'),s=parseInt(l.attr("data-max")),n=this.$values.children('.layout[data-layout="'+t+'"]').length;if(s>0&&n>=s){var e=1==s?"layout":"layouts",a=acf._e("flexible_content","max_layout");return a=a.replace("{max}",n),a=a.replace("{label}",'"'+l.text()+'"'),a=a.replace("{identifier}",acf._e("flexible_content",e)),alert(a),!1}return!0},validate_remove:function(t){if(this.o.min>0&&this.count()<=this.o.min){var e=1==this.o.min?"layout":"layouts",a=acf._e("flexible_content","min")+", "+acf._e("flexible_content","remove");return a=a.replace("{min}",this.o.min),a=a.replace("{identifier}",acf._e("flexible_content",e)),a=a.replace("{layout}",acf._e("flexible_content","layout")),confirm(a)}var i=$(this.$el.children(".tmpl-popup").html()),l=i.find('[data-layout="'+t+'"]'),s=parseInt(l.attr("data-min")),n=this.$values.children('.layout[data-layout="'+t+'"]').length;if(s>0&&s>=n){var e=1==s?"layout":"layouts",a=acf._e("flexible_content","min_layout")+", "+acf._e("flexible_content","remove");return a=a.replace("{min}",n),a=a.replace("{label}",'"'+l.text()+'"'),a=a.replace("{identifier}",acf._e("flexible_content",e)),a=a.replace("{layout}",acf._e("flexible_content","layout")),confirm(a)}return!0},sync:function(){var t="collapsed_"+this.$field.data("key"),e=[];this.$values.children(".layout").each(function(t){$(this).hasClass("-collapsed")&&e.push(t)}),acf.update_user_setting(t,e.join(","))},add:function(t,e){if(e=e||!1,!this.validate_add(t))return!1;var a=this.$field,i=this.$clones.children('.layout[data-layout="'+t+'"]');$el=acf.duplicate(i),$el.find("input, textarea, select").not(".acf-disabled").removeAttr("disabled"),this.$el.children(".no-value-message").hide(),e?e.before($el):this.$values.append($el),this.doFocus(a),this.render(),acf.validation.remove_error(this.$field),this.sync()},_mouseenter:function(t){if(!this.$values.hasClass("ui-sortable")&&1!=this.o.max){var e=this;this.$values.sortable({items:"> .layout",handle:"> .acf-fc-layout-handle",forceHelperSize:!0,forcePlaceholderSize:!0,scroll:!0,start:function(t,e){acf.do_action("sortstart",e.item,e.placeholder)},stop:function(t,a){e.render(),acf.do_action("sortstop",a.item,a.placeholder)},update:function(t,a){e.$input.trigger("change")}})}},_open:function(t){var e=this.$values,a=$(this.$el.children(".tmpl-popup").html());a.find("a").each(function(){var t=parseInt($(this).attr("data-min")),a=parseInt($(this).attr("data-max")),i=$(this).attr("data-layout"),l=$(this).text(),s=e.children('.layout[data-layout="'+i+'"]').length,n=$(this).children(".status");if(a>0){var c=a-s,o=acf._e("flexible_content","available"),r=1==c?"layout":"layouts",o=o.replace("{available}",c);o=o.replace("{max}",a),o=o.replace("{label}",'"'+l+'"'),o=o.replace("{identifier}",acf._e("flexible_content",r)),n.show().text(c).attr("title",o),0==c&&n.addClass("warning")}if(t>0){var d=t-s,o=acf._e("flexible_content","required"),r=1==d?"layout":"layouts",o=o.replace("{required}",d);o=o.replace("{min}",t),o=o.replace("{label}",'"'+l+'"'),o=o.replace("{identifier}",acf._e("flexible_content",r)),d>0&&n.addClass("warning").show().text(d).attr("title",o)}}),t.$el.after(a),t.$el.closest(".acf-fc-layout-controlls").exists()&&a.closest(".layout").addClass("-open"),a.css({"margin-top":0-a.height()-t.$el.outerHeight()-14,"margin-left":(t.$el.outerWidth()-a.width())/2});var i=a.offset().top;30>i&&(a.css({"margin-top":15}),a.find(".bit").addClass("top")),a.children(".focus").trigger("focus")},_close:function(t){var e=t.$el.parent(),a=e.closest(".layout");a.removeClass("-open"),setTimeout(function(){e.remove()},200)},_add:function(t){var e=t.$el.closest(".acf-fc-popup"),a=t.$el.attr("data-layout"),i=!1;e.closest(".acf-fc-layout-controlls").exists()&&(i=e.closest(".layout")),this.add(a,i)},_remove:function(t){var e=this,a=t.$el.closest(".layout");if(this.validate_remove(a.attr("data-layout"))){var i=0,l=this.$el.children(".no-value-message");0==a.siblings(".layout").length&&(i=l.outerHeight()),acf.do_action("remove",a),acf.remove_el(a,function(){e.render(),e.$input.trigger("change"),i>0&&l.show(),e.sync()},i)}},_collapse:function(t){var e=t.$el.closest(".layout");e.hasClass("-collapsed")?(e.removeClass("-collapsed"),acf.do_action("refresh",e)):e.addClass("-collapsed"),this.sync();var a=acf.serialize(e);$.extend(a,{action:"acf/fields/flexible_content/layout_title",field_key:this.$field.data("key"),post_id:acf.get("post_id"),i:e.index(),layout:e.data("layout")}),$.ajax({url:acf.get("ajaxurl"),dataType:"html",type:"post",data:a,success:function(t){t&&e.find("> .acf-fc-layout-handle").html(t)}})}})}(jQuery),function($){acf.fields.gallery=acf.field.extend({type:"gallery",$el:null,$main:null,$side:null,$attachments:null,actions:{ready:"initialize",append:"initialize",submit:"close_sidebar",show:"resize"},events:{"click .acf-gallery-attachment":"_select","click .acf-gallery-add":"_add","click .acf-gallery-remove":"_remove","click .acf-gallery-close":"_close","change .acf-gallery-sort":"_sort","click .acf-gallery-edit":"_edit","click .acf-gallery-update":"_update","change .acf-gallery-side input":"_update","change .acf-gallery-side textarea":"_update","change .acf-gallery-side select":"_update"},focus:function(){this.$el=this.$field.find(".acf-gallery:first"),this.$main=this.$el.children(".acf-gallery-main"),this.$side=this.$el.children(".acf-gallery-side"),this.$attachments=this.$main.children(".acf-gallery-attachments"),this.o=acf.get_data(this.$el),this.o.min=this.o.min||0,this.o.max=this.o.max||0},initialize:function(){var t=this,e=this.$field;this.$attachments.unbind("sortable").sortable({items:".acf-gallery-attachment",forceHelperSize:!0,forcePlaceholderSize:!0,scroll:!0,start:function(t,e){e.placeholder.html(e.item.html()),e.placeholder.removeAttr("style"),acf.do_action("sortstart",e.item,e.placeholder)},stop:function(t,e){acf.do_action("sortstop",e.item,e.placeholder)}}),this.$el.unbind("resizable").resizable({handles:"s",minHeight:200,stop:function(t,e){acf.update_user_setting("gallery_height",e.size.height)}}),$(window).on("resize",function(){t.set("$field",e).resize()}),this.render(),this.resize()},resize:function(){for(var t=100,e=175,a=4,i=this.$el.width(),l=4;20>l;l++){var s=i/l;if(s>t&&e>s){a=l;break}}a=Math.min(a,8),this.$el.attr("data-columns",a)},render:function(){var t=this.$main.find(".acf-gallery-sort"),e=this.$main.find(".acf-gallery-add");this.o.max>0&&this.count()>=this.o.max?e.addClass("disabled"):e.removeClass("disabled"),this.count()?t.removeClass("disabled"):t.addClass("disabled")},open_sidebar:function(){this.$el.addClass("sidebar-open"),this.$main.find(".acf-gallery-sort").hide();var t=this.$el.width()/3;t=parseInt(t),t=Math.max(t,350),this.$side.children(".acf-gallery-side-inner").css({width:t-1}),this.$side.animate({width:t-1},250),this.$main.animate({right:t},250)},_close:function(t){this.close_sidebar()},close_sidebar:function(){this.$el.removeClass("sidebar-open");var t=this.$el.find(".acf-gallery-sort");this.get_attachment("active").removeClass("active"),this.$side.find("input, textarea, select").attr("disabled","disabled"),this.$main.animate({right:0},250),this.$side.animate({width:0},250,function(){t.show(),$(this).find(".acf-gallery-side-data").html("")})},count:function(){return this.get_attachments().length},get_attachments:function(){return this.$attachments.children(".acf-gallery-attachment")},get_attachment:function(t){return t=t||0,t="active"===t?".active":'[data-id="'+t+'"]',this.$attachments.children(".acf-gallery-attachment"+t)},render_attachment:function(t,e){e=this.prepare(e);var a=this.get_attachment(t),i=a.find(".margin"),l=a.find("img"),s=a.find(".filename"),n=a.find('input[type="hidden"]'),c=e.url;"image"!==e.type&&(c=acf._e("media","default_icon"),a.addClass("-icon")),l.attr({src:c,alt:e.alt,title:e.title}),s.text(e.filename);var o="";e.id&&(o=e.id),acf.val(n,o)},_add:function(t){if(this.o.max>0&&this.count()>=this.o.max)return void acf.validation.add_warning(this.$field,acf._e("gallery","max"));var e=this,a=this.$field,i=acf.media.popup({title:acf._e("gallery","select"),mode:"select",type:"",field:this.$field.data("key"),multiple:"add",library:this.o.library,mime_types:this.o.mime_types,select:function(t,i){e.set("$field",a).add_attachment(t,i)}});i.on("content:activate:browse",function(){e.render_collection(i),i.content.get().collection.on("reset add",function(){e.render_collection(i)})})},add_attachment:function(t,e){if(e=e||0,t=this.prepare(t),!(this.o.max>0&&this.count()>=this.o.max||this.get_attachment(t.id).exists())){var a=this.$el.find('input[type="hidden"]:first').attr("name"),i=['
','
','
','
','
',"
",'
',"
",'
","
"].join(""),l=$(i);if(this.$attachments.append(l),"prepend"===this.o.insert){var s=this.$attachments.children(":eq("+e+")");s.exists()&&s.before(l)}this.render_attachment(t.id,t),this.render()}},_select:function(t){var e=t.$el.data("id");this.select_attachment(e)},select_attachment:function(t){var e=this.get_attachment(t);e.hasClass("active")||(this.get_attachment("active").removeClass("active"),e.addClass("active"),this.fetch(t),this.open_sidebar())},prepare:function(t){if(t=t||{},t._valid)return t;var e={id:"",url:"",alt:"",title:"",filename:""};return t.id&&(e=t.attributes,e.url=acf.maybe_get(e,"sizes."+this.o.preview_size+".url",e.url)),e._valid=!0,e},fetch:function(t){var e=acf.prepare_for_ajax({action:"acf/fields/gallery/get_attachment",field_key:this.$field.data("key"),nonce:acf.get("nonce"),post_id:acf.get("post_id"),id:t});if(this.$el.data("xhr")&&this.$el.data("xhr").abort(),"string"==typeof t&&0===t.indexOf("_")){var a=this.get_attachment(t).find('input[type="hidden"]').val();a=$.parseJSON(a),e.attachment=a}var i=$.ajax({url:acf.get("ajaxurl"),dataType:"html",type:"post",cache:!1,data:e,context:this,success:this.fetch_success});this.$el.data("xhr",i)},fetch_success:function(t){if(t){var e=this.$side.find(".acf-gallery-side-data");e.html(t),e.find(".compat-field-acf-form-data").remove();var a=e.find("> .compat-attachment-fields > tbody > tr").detach();e.find("> table.form-table > tbody").append(a),e.find("> .compat-attachment-fields").remove(),acf.do_action("append",e)}},_sort:function(t){var e=t.$el.val();if(e){var a=acf.prepare_for_ajax({action:"acf/fields/gallery/get_sort_order",field_key:this.$field.data("key"),post_id:acf.get("post_id"),ids:[],sort:e});this.get_attachments().each(function(){var t=$(this).attr("data-id");t&&a.ids.push(t)});var i=$.ajax({url:acf.get("ajaxurl"),dataType:"json",type:"post",cache:!1,data:a,context:this,success:this._sort_success})}},_sort_success:function(t){if(acf.is_ajax_success(t)){t.data.reverse();for(i in t.data){var e=t.data[i],a=this.get_attachment(e);this.$attachments.prepend(a)}}},_update:function(){var t=this.$side.find(".acf-gallery-update"),e=this.$side.find(".acf-gallery-edit"),a=this.$side.find(".acf-gallery-side-data"),i=e.data("id"),l=acf.serialize_form(a);return t.attr("disabled")?!1:(t.attr("disabled","disabled"),t.before('
'),l.action="acf/fields/gallery/update_attachment",acf.prepare_for_ajax(l),void $.ajax({url:acf.get("ajaxurl"),data:l,type:"post",dataType:"json",complete:function(e){t.removeAttr("disabled"),t.prev(".acf-loading").remove()}}))},_remove:function(t){t.stopPropagation();var e=t.$el.data("id");this.remove_attachment(e)},remove_attachment:function(t){this.close_sidebar(),this.get_attachment(t).remove(),this.render()},_edit:function(t){var e=t.$el.data("id");this.edit_attachment(e)},edit_attachment:function(t){var e=this,a=this.$field,i=t,l=this.get_attachment(t),s=acf.media.popup({mode:"edit",title:acf._e("image","edit"),button:acf._e("image","update"),attachment:i,select:function(i){e.set("$field",a).render_attachment(t,i),e.fetch(t)}})},render_collection:function(t){var e=this;setTimeout(function(){var a=t.content.get().$el;if(collection=t.content.get().collection||null,collection){var i=-1;collection.each(function(t){i++;var l=a.find(".attachments > .attachment:eq("+i+")");e.get_attachment(t.id).exists()&&(t.off("selection:single"),l.addClass("acf-selected"))})}},10)}})}(jQuery);
diff --git a/pro/core/updates.php b/pro/core/updates.php
index 5c42a22..fcd257e 100644
--- a/pro/core/updates.php
+++ b/pro/core/updates.php
@@ -110,27 +110,23 @@ class acf_pro_updates {
// bail early if no show_updates
- if( !acf_get_setting('show_updates') ) {
+ if( !acf_get_setting('show_updates') ) return $transient;
+
+
+ // ensure is_plugin_active() exists (not on frontend)
+ if( !function_exists('is_plugin_active') ) {
- return $transient;
+ include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
}
// bail early if not a plugin (included in theme)
- if( !is_plugin_active($basename) ) {
-
- return $transient;
-
- }
+ if( !is_plugin_active($basename) ) return $transient;
// bail early if no update available
- if( !acf_pro_is_update_available() ) {
-
- return $transient;
-
- }
+ if( !acf_pro_is_update_available() ) return $transient;
// vars
@@ -195,11 +191,11 @@ class acf_pro_updates {
// vars
- $m = __('To enable updates, please enter your license key on the
Updates page. If you don\'t have a licence key, please see
details & pricing ', 'acf');
+ $m = __('To enable updates, please enter your license key on the
Updates page. If you don\'t have a licence key, please see
details & pricing .', 'acf');
// show message
- echo '
' . sprintf( $m, admin_url('edit.php?post_type=acf-field-group&page=acf-settings-updates'), 'http://www.advancedcustomfields.com/pro');
+ echo '
' . sprintf( $m, admin_url('edit.php?post_type=acf-field-group&page=acf-settings-updates'), 'https://www.advancedcustomfields.com/pro');
}
diff --git a/pro/fields/flexible-content.php b/pro/fields/flexible-content.php
index 5e014ba..62340c0 100644
--- a/pro/fields/flexible-content.php
+++ b/pro/fields/flexible-content.php
@@ -339,7 +339,7 @@ class acf_field_flexible_content extends acf_field {
"{$field['name']}[{$i}][acf_fc_layout]", 'value' => $layout['name'] )); ?>
-