Adds orderBy and orderByMetaKey attrs to items list block. #735.
This commit is contained in:
parent
4f2242e262
commit
49354a7d68
|
@ -102,6 +102,10 @@
|
|||
"type": "string",
|
||||
"default": "date"
|
||||
},
|
||||
"orderByMetaKey": {
|
||||
"type": "string",
|
||||
"default": ""
|
||||
},
|
||||
"blockId": {
|
||||
"type": "string",
|
||||
"default": ""
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
const { useBlockProps } = (tainacan_blocks.wp_version < '5.2' ? wp.editor : wp.blockEditor );
|
||||
|
||||
export default [
|
||||
/* Deprecated on 0.19.3 due to the introduction of orderBy */
|
||||
/* Deprecated on 0.19.3 due to the introduction of orderBy and orderByMetaKey */
|
||||
{
|
||||
attributes: {
|
||||
"content": {
|
||||
|
|
|
@ -32,6 +32,7 @@ export default function({ attributes, setAttributes, className, isSelected, clie
|
|||
maxItemsNumber,
|
||||
order,
|
||||
orderBy,
|
||||
orderByMetaKey,
|
||||
searchString,
|
||||
selectedItems,
|
||||
isLoading,
|
||||
|
@ -303,25 +304,35 @@ export default function({ attributes, setAttributes, className, isSelected, clie
|
|||
}
|
||||
|
||||
// Set up sorting order
|
||||
if (order != '' && showSearchBar)
|
||||
queryObject.order = order;
|
||||
else if (queryObject.order != '')
|
||||
if (queryObject.order != '' && !showSearchBar)
|
||||
setAttributes({ order: queryObject.order });
|
||||
else if (order != '')
|
||||
queryObject.order = order;
|
||||
else {
|
||||
queryObject.order = 'asc';
|
||||
setAttributes({ order: 'asc' });
|
||||
}
|
||||
|
||||
// Set up sorting order
|
||||
if (orderBy != '')
|
||||
queryObject.orderby = orderBy;
|
||||
else if (queryObject.orderby != '')
|
||||
// Set up sorting orderby
|
||||
if (queryObject.orderby != '')
|
||||
setAttributes({ orderBy: queryObject.orderby });
|
||||
else if (orderBy != 'date')
|
||||
queryObject.orderby = orderBy;
|
||||
else {
|
||||
queryObject.orderby = 'date';
|
||||
setAttributes({ orderBy: 'date' });
|
||||
}
|
||||
|
||||
// Set up sorting metakey (used by some orderby)
|
||||
if (queryObject.metakey != '')
|
||||
setAttributes({ orderByMetaKey: queryObject.metakey });
|
||||
else if (orderByMetaKey != '')
|
||||
queryObject.metakey = orderByMetaKey;
|
||||
else {
|
||||
queryObject.metakey = '';
|
||||
setAttributes({ orderByMetaKey: '' });
|
||||
}
|
||||
|
||||
// Set up search string
|
||||
if (searchString != undefined)
|
||||
queryObject.search = searchString;
|
||||
|
|
|
@ -15,6 +15,7 @@ export default function({ attributes, className }) {
|
|||
maxItemsNumber,
|
||||
order,
|
||||
orderBy,
|
||||
orderByMetaKey,
|
||||
showSearchBar,
|
||||
showCollectionHeader,
|
||||
showCollectionLabel,
|
||||
|
@ -58,6 +59,7 @@ export default function({ attributes, className }) {
|
|||
max-items-number={ maxItemsNumber }
|
||||
order={ order }
|
||||
orderBy={ orderBy }
|
||||
orderByMetaKey={ orderByMetaKey }
|
||||
tainacan-api-root={ tainacan_blocks.root }
|
||||
tainacan-base-url={ tainacan_blocks.base_url }
|
||||
id={ 'wp-block-tainacan-dynamic-items-list_' + blockId }>
|
||||
|
|
|
@ -45,6 +45,7 @@ export default (element) => {
|
|||
imageSize: 'tainacan-medium',
|
||||
order: 'asc',
|
||||
orderBy: 'date',
|
||||
orderByMetaKey: '',
|
||||
showSearchBar: false,
|
||||
showCollectionHeader: false,
|
||||
showCollectionLabel: false,
|
||||
|
@ -77,6 +78,7 @@ export default (element) => {
|
|||
maxItemsNumber: this.maxItemsNumber,
|
||||
order: this.order,
|
||||
orderBy: this.orderBy,
|
||||
orderByMetaKey: this.orderByMetaKey,
|
||||
showSearchBar: this.showSearchBar,
|
||||
showCollectionHeader: this.showCollectionHeader,
|
||||
showCollectionLabel: this.showCollectionLabel,
|
||||
|
@ -110,6 +112,7 @@ export default (element) => {
|
|||
this.maxItemsNumber = this.$el.attributes['max-items-number'] != undefined ? this.$el.attributes['max-items-number'].value : undefined;
|
||||
this.order = this.$el.attributes['order'] != undefined ? this.$el.attributes['order'].value : undefined;
|
||||
this.orderBy = this.$el.attributes['order-by'] != undefined ? this.$el.attributes['order-by'].value : undefined;
|
||||
this.orderByMetaKey = this.$el.attributes['order-by-meta-key'] != undefined ? this.$el.attributes['order-by-meta-key'].value : undefined;
|
||||
this.showSearchBar = this.$el.attributes['show-search-bar'] != undefined ? this.$el.attributes['show-search-bar'].value == 'true' : false;
|
||||
this.showCollectionHeader = this.$el.attributes['show-collection-header'] != undefined ? this.$el.attributes['show-collection-header'].value == 'true' : false;
|
||||
this.showCollectionLabel = this.$el.attributes['show-collection-label'] != undefined ? this.$el.attributes['show-collection-label'].value == 'true' : false;
|
||||
|
|
|
@ -300,6 +300,7 @@ export default {
|
|||
imageSize: String,
|
||||
order: String,
|
||||
orderBy: String,
|
||||
orderByMetaKey: String,
|
||||
showSearchBar: Boolean,
|
||||
showCollectionHeader: Boolean,
|
||||
showCollectionLabel: Boolean,
|
||||
|
@ -420,6 +421,10 @@ export default {
|
|||
if (this.orderBy != undefined)
|
||||
queryObject.orderby = this.orderBy;
|
||||
|
||||
// Set up orderByMetaKey
|
||||
if (this.orderByMetaKey != undefined)
|
||||
queryObject.metakey = this.orderByMetaKey;
|
||||
|
||||
// Set up search string
|
||||
if (this.searchString != undefined)
|
||||
queryObject.search = this.searchString;
|
||||
|
|
Loading…
Reference in New Issue