diff --git a/src/assets/css/tainacan-gutenberg-block-item-gallery.css b/src/assets/css/tainacan-gutenberg-block-item-gallery.css index db3f4dc82..2ce0a12e2 100644 --- a/src/assets/css/tainacan-gutenberg-block-item-gallery.css +++ b/src/assets/css/tainacan-gutenberg-block-item-gallery.css @@ -620,7 +620,12 @@ a.pswp__share--download:hover { width: 100%; height: auto; display: block; - background-color: var(--tainacan-media-background, transparent); } + background-color: var(--tainacan-media-background, transparent); + box-sizing: border-box; } + .tainacan-media-component .swiper-slide, + .tainacan-media-component .swiper-slide::after, + .tainacan-media-component .swiper-slide::before { + box-sizing: border-box; } /* Style valid for both cases of carousel, main and thumbs */ .tainacan-media-component__swiper-main .swiper-button-prev::after, @@ -658,6 +663,8 @@ a.pswp__share--download:hover { .tainacan-media-component__swiper-main ul.swiper-wrapper[data-pswp-uid]:not([data-pswp-uid='']) li.swiper-slide .swiper-slide-content video, .tainacan-media-component__swiper-main ul.swiper-wrapper[data-pswp-uid]:not([data-pswp-uid='']) li.swiper-slide .swiper-slide-content audio { pointer-events: none; } + .tainacan-media-component__swiper-main ul.swiper-wrapper[data-pswp-uid]:not([data-pswp-uid='']) li.swiper-slide .swiper-slide-content a { + cursor: zoom-in !important; } .tainacan-media-component__swiper-main li.swiper-slide { height: 100%; max-width: 100%; diff --git a/src/assets/css/tainacan-gutenberg-block-item-gallery.css.map b/src/assets/css/tainacan-gutenberg-block-item-gallery.css.map index 919aec70b..42127b58e 100644 --- a/src/assets/css/tainacan-gutenberg-block-item-gallery.css.map +++ b/src/assets/css/tainacan-gutenberg-block-item-gallery.css.map @@ -1,6 +1,6 @@ { "version": 3, -"mappings": "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", +"mappings": "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", "sources": ["../../../node_modules/photoswipe/src/css/main.scss","../../views/gutenberg-blocks/blocks/item-gallery/style.scss","../../../node_modules/photoswipe/src/css/default-skin/default-skin.scss"], "names": [], "file": "tainacan-gutenberg-block-item-gallery.css" diff --git a/src/classes/api/endpoints/class-tainacan-rest-items-controller.php b/src/classes/api/endpoints/class-tainacan-rest-items-controller.php index 8af953283..2220cb62d 100644 --- a/src/classes/api/endpoints/class-tainacan-rest-items-controller.php +++ b/src/classes/api/endpoints/class-tainacan-rest-items-controller.php @@ -38,6 +38,8 @@ class REST_Items_Controller extends REST_Controller { $this->collections_repository = Repositories\Collections::get_instance(); $this->metadatum_repository = Repositories\Metadata::get_instance(); $this->terms_repository = \Tainacan\Repositories\Terms::get_instance(); + $this->filters_repository = \Tainacan\Repositories\Filters::get_instance(); + $this->taxonomies_repository = \Tainacan\Repositories\Taxonomies::get_instance(); } /** @@ -408,6 +410,163 @@ class REST_Items_Controller extends REST_Controller { return $rest_response; } + + /** + * @param array $args — array of query arguments. + * + * @return array + * @throws \Exception + */ + private function prepare_filters_arguments ( $args, $collection_id = false ) { + $filters_arguments = array(); + $meta_query = isset($args['meta_query']) ? $args['meta_query'] : []; + $tax_query = isset($args['tax_query']) ? $args['tax_query'] : []; + + foreach($tax_query as $tax) { + + $taxonomy = $tax['taxonomy']; + $taxonomy_id = $this->taxonomies_repository->get_id_by_db_identifier($taxonomy); + $terms_id = is_array($tax['terms']) ? $tax['terms']: [$tax['terms']]; + $terms_name = array_map(function($term_id) { + $t = is_numeric($term_id) ? get_term($term_id) : get_term_by('slug', $term_id); + return $t != false ? $t->name : '--'; + }, $terms_id); + + $metas = $this->metadatum_repository->fetch(array( + 'meta_query' => [ + [ + 'key' => 'collection_id', + 'value' => empty($collection_id) ? 'default' : $collection_id, + 'compare' => '=' + ], + [ + 'key' => '_option_taxonomy_id', + 'value' => $taxonomy_id, + 'compate' => '=' + ] + ] + ), 'OBJECT' ); + + if( !empty($metas) ) { + $meta_query[] = array( + 'key' => $metas[0]->get_id(), + 'value' => $terms_id, + 'label' => $terms_name, + ); + } + } + + foreach($meta_query as $meta) { + + if ( !isset($meta['key']) || !isset($meta['value']) ) + continue; + + $meta_id = $meta['key']; + $meta_value = is_array($meta['value']) ? $meta['value'] : [$meta['value']]; + $meta_label = isset($meta['label']) ? $meta['label'] : $meta_value; + $filter_type_component = false; + $arg_type = 'meta'; + $f = false; + $m = false; + + if ($meta_id === 'collection_id') { + + $arg_type = 'collection'; + $meta_label = array_map(function($collection_id) { + $collection = $this->collections_repository->fetch($collection_id); + return $collection->get_name(); + }, $meta_value); + + } else { + + $filter = $this->filters_repository->fetch([ + 'meta_query' => array( + [ + 'key' => 'metadatum_id', + 'value' => $meta_id, + 'compare' => '=' + ] + ) + ], 'OBJECT' + ); + + if ( !empty($filter) ) { + $f = $filter[0]->_toArray(); + $filter_type_component = $filter[0]->get_filter_type_object()->get_component(); + $m = $f['metadatum']; + } else { + $metadatum = $this->metadatum_repository->fetch($meta_id, 'OBJECT'); + if(!empty($metadatum)) { + $m = $metadatum->_toArray(); + $meta_object = $metadatum->get_metadata_type_object(); + if (is_object($meta_object)) { + $m['metadata_type_object'] = $meta_object->_toArray(); + } + } + } + + if ($m !== false) { + switch ($m['metadata_type_object']['primitive_type']) { + case 'date': + $meta_label = array_map(function($date) { + $date_format = get_option( 'date_format' ) != false ? get_option( 'date_format' ) : 'Y-m-d'; + return empty($date) == false ? mysql2date($date_format, $date) : ""; + }, $meta_label); + break; + case 'item': + $meta_label = array_map(function($item_id) { + $_post = get_post($item_id); + if ( ! $_post instanceof \WP_Post) { + return; + } + return $_post->post_title; + }, $meta_label); + break; + case 'control': + $control_metadatum = $m['metadata_type_object']['options']['control_metadatum']; + $metadata_type_object = new \Tainacan\Metadata_Types\Control(); + $meta_label = array_map(function($control_value) use ($metadata_type_object, $control_metadatum) { + return $metadata_type_object->get_control_metadatum_value($control_value, $control_metadatum, 'string' ); + }, $meta_label); + break; + case 'user': + $meta_label = array_map(function($user_id) { + $name = get_the_author_meta( 'display_name', $user_id ); + return apply_filters("tainacan-item-get-author-name", $name); + }, $meta_label); + break; + } + } + } + + $filter_name = is_string($filter_type_component) + ? "tainacan-api-items-${filter_type_component}-filter-arguments" + : 'tainacan-api-items-filter-arguments'; + + $filters_arguments[] = apply_filters($filter_name, array( + 'filter' => $f, + 'metadatum' => $m, + 'arg_type' => $arg_type, + 'value' => $meta_value, + 'label' => $meta_label, + 'compare' => isset($meta['compare']) ? $meta['compare'] : '=' + )); + } + + if (isset($args['post__in'])) { + $filters_arguments[] = array( + 'filter' => false, + 'metadatum' => false, + 'arg_type' => 'postin', + 'value' => $args['post__in'], + 'label' => count($args['post__in']), + 'compare' => 'IN' + ); + } + + return $filters_arguments; + } + /** * @param \WP_REST_Request $request * @@ -436,6 +595,7 @@ class REST_Items_Controller extends REST_Controller { if($request['collection_id']) { $collection_id = $request['collection_id']; } + $filters_args = $this->prepare_filters_arguments($args, $collection_id); $max_items_per_page = $TAINACAN_API_MAX_ITEMS_PER_PAGE; if ( $max_items_per_page > -1 ) { @@ -454,6 +614,7 @@ class REST_Items_Controller extends REST_Controller { // Filter right after the ->fetch() method. Elastic Search integration relies on this on its 'last_aggregations' hook $response['filters'] = apply_filters('tainacan-api-items-filters-response', [], $request); + $response['filters_arguments'] = apply_filters('tainacan-api-items-filters-arguments-response', $filters_args, $args); $query_end = microtime(true); diff --git a/src/classes/repositories/class-tainacan-filters.php b/src/classes/repositories/class-tainacan-filters.php index c96bf1592..3b30fe057 100644 --- a/src/classes/repositories/class-tainacan-filters.php +++ b/src/classes/repositories/class-tainacan-filters.php @@ -153,41 +153,42 @@ class Filters extends Repository { * @param Entities\Metadatum $metadatum * @return int * - public function insert($metadatum) { - // First iterate through the native post properties - $map = $this->get_map(); - foreach ($map as $prop => $mapped) { - if ($mapped['map'] != 'meta' && $mapped['map'] != 'meta_multi') { - $metadatum->WP_Post->{$mapped['map']} = $metadatum->get_mapped_property($prop); - } - } - - // save post and get its ID - $metadatum->WP_Post->post_type = Entities\Filter::get_post_type(); - $metadatum->WP_Post->post_status = 'publish'; - $id = wp_insert_post($metadatum->WP_Post); - $metadatum->WP_Post = get_post($id); - - // Now run through properties stored as postmeta - foreach ($map as $prop => $mapped) { - if ($mapped['map'] == 'meta') { - update_post_meta($id, $prop, $metadatum->get_mapped_property($prop)); - } elseif ($mapped['map'] == 'meta_multi') { - $values = $metadatum->get_mapped_property($prop); - - delete_post_meta($id, $prop); - - if (is_array($values)){ - foreach ($values as $value){ - add_post_meta($id, $prop, $value); - } - } - } - } - - // return a brand new object - return new Entities\Filter($metadatum->WP_Post); - }*/ + * public function insert($metadatum) { + * // First iterate through the native post properties + * $map = $this->get_map(); + * foreach ($map as $prop => $mapped) { + * if ($mapped['map'] != 'meta' && $mapped['map'] != 'meta_multi') { + * $metadatum->WP_Post->{$mapped['map']} = $metadatum->get_mapped_property($prop); + * } + * } + * + * // save post and get its ID + * $metadatum->WP_Post->post_type = Entities\Filter::get_post_type(); + * $metadatum->WP_Post->post_status = 'publish'; + * $id = wp_insert_post($metadatum->WP_Post); + * $metadatum->WP_Post = get_post($id); + * + * // Now run through properties stored as postmeta + * foreach ($map as $prop => $mapped) { + * if ($mapped['map'] == 'meta') { + * update_post_meta($id, $prop, $metadatum->get_mapped_property($prop)); + * } elseif ($mapped['map'] == 'meta_multi') { + * $values = $metadatum->get_mapped_property($prop); + * + * delete_post_meta($id, $prop); + * + * if (is_array($values)){ + * foreach ($values as $value){ + * add_post_meta($id, $prop, $value); + * } + * } + * } + * } + * + * // return a brand new object + * return new Entities\Filter($metadatum->WP_Post); + *} + */ public function update( $object, $new_values = null ) { return $this->insert( $object ); diff --git a/src/classes/repositories/class-tainacan-repository.php b/src/classes/repositories/class-tainacan-repository.php index 24282b920..daabc21ed 100644 --- a/src/classes/repositories/class-tainacan-repository.php +++ b/src/classes/repositories/class-tainacan-repository.php @@ -57,7 +57,7 @@ abstract class Repository { */ protected function __construct() { add_action( 'init', array( &$this, 'register_post_type' ) ); - add_action( 'init', array( &$this, 'init_objects' ) ); + add_action( 'init', array( &$this, 'init_objects' ) ); add_filter( 'tainacan-get-map-' . $this->get_name(), array( $this, 'get_default_properties' ) ); } diff --git a/src/classes/traits/class-tainacan-singleton-instance.php b/src/classes/traits/class-tainacan-singleton-instance.php new file mode 100644 index 000000000..14f629ddb --- /dev/null +++ b/src/classes/traits/class-tainacan-singleton-instance.php @@ -0,0 +1,26 @@ +init(); + } +} \ No newline at end of file diff --git a/src/views/admin/components/filter-types/autocomplete/Autocomplete.vue b/src/views/admin/components/filter-types/autocomplete/Autocomplete.vue index 4c59e7589..c8f712acd 100644 --- a/src/views/admin/components/filter-types/autocomplete/Autocomplete.vue +++ b/src/views/admin/components/filter-types/autocomplete/Autocomplete.vue @@ -149,12 +149,6 @@ } else { this.label = ''; this.selected = ''; - this.$emit('input', { - filter: 'autocomplete', - metadatum_id: this.metadatumId, - collection_id: this.collectionId, - value: this.selected - }); } }, 500), searchMore: _.debounce(function () { @@ -176,12 +170,9 @@ axios.get(endpoint) .then( res => { - let item = res.data; this.label = item.title; this.selected = item.title; - - this.$emit( 'sendValuesToTags', { label: this.label, value: this.selected, metadatumName: this.metadatumName }); }) .catch(error => { this.$console.log(error); @@ -189,7 +180,6 @@ } else { this.label = metadata.value; this.selected = metadata.value; - this.$emit( 'sendValuesToTags', { label: this.label, value: this.selected, metadatumName: this.metadatumName }); } } else { this.label = ''; diff --git a/src/views/admin/components/filter-types/checkbox/Checkbox.vue b/src/views/admin/components/filter-types/checkbox/Checkbox.vue index 985067ec1..122f1cdd3 100644 --- a/src/views/admin/components/filter-types/checkbox/Checkbox.vue +++ b/src/views/admin/components/filter-types/checkbox/Checkbox.vue @@ -163,26 +163,8 @@ return false; let index = this.query.metaquery.findIndex(newMetadatum => newMetadatum.key == this.metadatumId ); - - if ( index >= 0){ - let query = this.query.metaquery.slice(); - this.selected = query[ index ].value; - } else { - this.selected = []; - } - let onlyLabels = []; - if (!isNaN(this.selected[0])){ - for (let aSelected of this.selected) { - let valueIndex = this.options.findIndex(option => option.value == aSelected); - - if (valueIndex >= 0) { - onlyLabels.push(this.options[valueIndex].label); - } - } - } - - this.$emit( 'sendValuesToTags', { label: onlyLabels.length ? onlyLabels : this.selected, value: this.selected, metadatumName: this.metadatumName }); + this.selected = index >= 0 ? this.query.metaquery.slice()[ index ].value : []; }, openCheckboxModal() { this.$buefy.modal.open({ diff --git a/src/views/admin/components/filter-types/date-interval/DateInterval.vue b/src/views/admin/components/filter-types/date-interval/DateInterval.vue index 8f22f3d94..af1559062 100644 --- a/src/views/admin/components/filter-types/date-interval/DateInterval.vue +++ b/src/views/admin/components/filter-types/date-interval/DateInterval.vue @@ -131,13 +131,6 @@ const dateValueEnd = new Date(metadata.value[1].replace(/-/g, '/')); this.dateEnd = moment(dateValueEnd, moment.ISO_8601).toDate(); } - - if (metadata.value[0] != undefined && metadata.value[1] != undefined) - this.$emit('sendValuesToTags', { - label: this.parseDateToNavigatorLanguage(metadata.value[0]) + ' - ' + this.parseDateToNavigatorLanguage(metadata.value[1]), - value: [metadata.value[0], metadata.value[1]], - metadatumName: this.metadatumName - }); } else { this.dateInit = null; this.dateEnd = null; @@ -167,13 +160,6 @@ collection_id: this.collectionId, value: values }); - - if (values[0] != undefined && values[1] != undefined) - this.$emit( 'sendValuesToTags', { - label: this.parseDateToNavigatorLanguage(values[0]) + ' - ' + this.parseDateToNavigatorLanguage(values[1]), - value: [ values[0], values[1] ], - metadatumName: this.metadatumName - }); } } } diff --git a/src/views/admin/components/filter-types/date-interval/class-tainacan-date-interval.php b/src/views/admin/components/filter-types/date-interval/class-tainacan-date-interval.php index c79560729..fa48048ac 100644 --- a/src/views/admin/components/filter-types/date-interval/class-tainacan-date-interval.php +++ b/src/views/admin/components/filter-types/date-interval/class-tainacan-date-interval.php @@ -9,35 +9,63 @@ defined( 'ABSPATH' ) or die( 'No script kiddies please!' ); */ class Date_Interval extends Filter_Type { - function __construct(){ - $this->set_name( __('Date Interval', 'tainacan') ); - $this->set_supported_types(['date']); - $this->set_component('tainacan-filter-date-interval'); - $this->set_use_max_options(false); - $this->set_preview_template(' -
-
- -
-

until

-
- -
-
- '); - } -} \ No newline at end of file + function __construct(){ + $this->set_name( __('Date Interval', 'tainacan') ); + $this->set_supported_types(['date']); + $this->set_component('tainacan-filter-date-interval'); + $this->set_use_max_options(false); + $this->set_preview_template(' +
+
+ +
+

until

+
+ +
+
+ '); + } +} + +class Date_Interval_Interval_Helper { + use \Tainacan\Traits\Singleton_Instance; + + protected function init() { + add_filter( 'tainacan-api-items-tainacan-filter-date-interval-filter-arguments', [$this, 'format_filter_arguments']); + } + + function format_filter_arguments( $filter_arguments ) { + if ( + !isset($filter_arguments['compare']) || + !isset($filter_arguments['label']) + ) { + return $filter_arguments; + } + + if ( + strtoupper($filter_arguments['compare']) === 'BETWEEN' && + is_array($filter_arguments['label']) && + count($filter_arguments['label']) === 2 + ) { + $filter_arguments['label'] = $filter_arguments['label'][0] . ' - ' . $filter_arguments['label'][1]; + } + + return $filter_arguments; + } +} +Date_Interval_Interval_Helper::get_instance(); \ No newline at end of file diff --git a/src/views/admin/components/filter-types/date/Date.vue b/src/views/admin/components/filter-types/date/Date.vue index 9df18ebc7..c69aaf5d8 100644 --- a/src/views/admin/components/filter-types/date/Date.vue +++ b/src/views/admin/components/filter-types/date/Date.vue @@ -174,12 +174,6 @@ const dateValue = new Date(textValue.replace(/-/g, '/')); this.value = moment(dateValue, moment.ISO_8601).toDate(); - - this.$emit('sendValuesToTags', { - label: this.comparator + ' ' + this.parseDateToNavigatorLanguage(textValue), - value: textValue, - metadatumName: this.metadatumName - }); } } else { @@ -221,11 +215,6 @@ collection_id: this.collectionId, value: valueQuery }); - this.$emit('sendValuesToTags', { - label: this.comparator + ' ' + moment(this.value, moment.ISO_8601).format(this.dateFormat), - value: valueQuery, - metadatumName: this.metadatumName - }); }, onChangeComparator(newComparator) { this.comparator = newComparator; diff --git a/src/views/admin/components/filter-types/date/class-tainacan-date.php b/src/views/admin/components/filter-types/date/class-tainacan-date.php index beb6c4cd1..6127f25cd 100644 --- a/src/views/admin/components/filter-types/date/class-tainacan-date.php +++ b/src/views/admin/components/filter-types/date/class-tainacan-date.php @@ -9,67 +9,113 @@ defined( 'ABSPATH' ) or die( 'No script kiddies please!' ); */ class Date extends Filter_Type { - function __construct(){ - $this->set_name( __('Date', 'tainacan') ); - $this->set_supported_types(['date']); - $this->set_component('tainacan-filter-date'); - // $this->set_form_component('tainacan-filter-form-date'); - $this->set_use_max_options(false); - // $this->set_default_options([ - // 'type' => 'day' - // ]); - $this->set_preview_template(' -
-
- -
-
- '); - } + function __construct(){ + $this->set_name( __('Date', 'tainacan') ); + $this->set_supported_types(['date']); + $this->set_component('tainacan-filter-date'); + // $this->set_form_component('tainacan-filter-form-date'); + $this->set_use_max_options(false); + // $this->set_default_options([ + // 'type' => 'day' + // ]); + $this->set_preview_template(' +
+
+ +
+
+ '); + } - // /** - // * @inheritdoc - // */ - // public function get_form_labels(){ - // return [ - // 'type' => [ - // 'title' => __( 'Type', 'tainacan' ), - // 'description' => __( 'The type of the date picker, may be for day, month or year.', 'tainacan' ), - // ] - // ]; - // } -} \ No newline at end of file + // /** + // * @inheritdoc + // */ + // public function get_form_labels(){ + // return [ + // 'type' => [ + // 'title' => __( 'Type', 'tainacan' ), + // 'description' => __( 'The type of the date picker, may be for day, month or year.', 'tainacan' ), + // ] + // ]; + // } + +} + +class Date_Helper { + use \Tainacan\Traits\Singleton_Instance; + + protected function init() { + add_filter( 'tainacan-api-items-tainacan-filter-date-filter-arguments', [$this, 'format_filter_arguments']); + } + + function format_filter_arguments( $filter_arguments ) { + if ( + !isset($filter_arguments['compare']) || + !isset($filter_arguments['label']) + ) { + return $filter_arguments; + } + + if (count($filter_arguments['label']) === 1) { + switch ($filter_arguments['compare']) { + case '=': + $filter_arguments['label'] = '= ' . $filter_arguments['label'][0]; + break; + case '!=': + $filter_arguments['label'] = '≠ ' . $filter_arguments['label'][0]; + break; + case '>': + $filter_arguments['label'] = '> ' . $filter_arguments['label'][0]; + break; + case '>=': + $filter_arguments['label'] = '≥ ' . $filter_arguments['label'][0]; + break; + case '<': + $filter_arguments['label'] = '< ' . $filter_arguments['label'][0]; + break; + case '<=': + $filter_arguments['label'] = '≤ ' . $filter_arguments['label'][0]; + break; + default: + $filter_arguments['label'] = $filter_arguments['label'][0]; + } + } + + return $filter_arguments; + } +} +Date_Helper::get_instance(); \ No newline at end of file diff --git a/src/views/admin/components/filter-types/numeric-interval/NumericInterval.vue b/src/views/admin/components/filter-types/numeric-interval/NumericInterval.vue index 316e83009..a80a6f039 100644 --- a/src/views/admin/components/filter-types/numeric-interval/NumericInterval.vue +++ b/src/views/admin/components/filter-types/numeric-interval/NumericInterval.vue @@ -90,25 +90,19 @@ collection_id: this.collectionId, value: values }); - - if (values[0] != undefined && values[1] != undefined) - this.$emit('sendValuesToTags', { label: values[0] + ' - ' + values[1], value: values, metadatumName: this.metadatumName }); }, updateSelectedValues(){ if ( !this.query || !this.query.metaquery || !Array.isArray( this.query.metaquery ) ) return false; let index = this.query.metaquery.findIndex(newMetadatum => newMetadatum.key == this.metadatumId ); - if ( index >= 0 ){ + if ( index >= 0 ) { + let metaquery = this.query.metaquery[ index ]; if ( metaquery.value && metaquery.value.length > 1 ) { this.valueInit = new Number(metaquery.value[0]); this.valueEnd = new Number(metaquery.value[1]); } - - if (metaquery.value[0] != undefined && metaquery.value[1] != undefined) - this.$emit('sendValuesToTags', { label: this.valueInit + ' - ' + this.valueEnd, value: metaquery.value, metadatumName: this.metadatumName }); - } else { this.valueInit = null; this.valueEnd = null; diff --git a/src/views/admin/components/filter-types/numeric-interval/class-tainacan-numeric-interval.php b/src/views/admin/components/filter-types/numeric-interval/class-tainacan-numeric-interval.php index 969cee614..08aa7f682 100644 --- a/src/views/admin/components/filter-types/numeric-interval/class-tainacan-numeric-interval.php +++ b/src/views/admin/components/filter-types/numeric-interval/class-tainacan-numeric-interval.php @@ -9,67 +9,95 @@ defined( 'ABSPATH' ) or die( 'No script kiddies please!' ); */ class Numeric_Interval extends Filter_Type { - function __construct(){ - $this->set_name( __('Numeric Interval', 'tainacan') ); - $this->set_supported_types(['float']); - $this->set_component('tainacan-filter-numeric-interval'); - $this->set_form_component('tainacan-filter-form-numeric-interval'); - $this->set_use_max_options(false); - $this->set_default_options([ - 'step' => 1 - ]); - $this->set_preview_template(' -
-
-

- -

-
- -
-

- -

-
-

until

-
-

- -

-
- -
-

- -

-
-
- '); - } - - public function get_form_labels(){ - return [ - 'step' => [ - 'title' => __( 'Step', 'tainacan' ), - 'description' => __( 'The amount to be increased or decreased when clicking on the filter control buttons. This also defines whether the input accepts decimal numbers.', 'tainacan' ), - ], - 'custom' => ['title' => __('Custom interval','tainacan')], - ]; - } -} \ No newline at end of file + function __construct(){ + $this->set_name( __('Numeric Interval', 'tainacan') ); + $this->set_supported_types(['float']); + $this->set_component('tainacan-filter-numeric-interval'); + $this->set_form_component('tainacan-filter-form-numeric-interval'); + $this->set_use_max_options(false); + $this->set_default_options([ + 'step' => 1 + ]); + $this->set_preview_template(' +
+
+

+ +

+
+ +
+

+ +

+
+

until

+
+

+ +

+
+ +
+

+ +

+
+
+ '); + } + + public function get_form_labels(){ + return [ + 'step' => [ + 'title' => __( 'Step', 'tainacan' ), + 'description' => __( 'The amount to be increased or decreased when clicking on the filter control buttons. This also defines whether the input accepts decimal numbers.', 'tainacan' ), + ], + 'custom' => ['title' => __('Custom interval','tainacan')], + ]; + } +} + +class Numeric_Interval_Interval_Helper { + use \Tainacan\Traits\Singleton_Instance; + + protected function init() { + add_filter( 'tainacan-api-items-tainacan-filter-numeric-interval-filter-arguments', [$this, 'format_filter_arguments']); + } + + function format_filter_arguments( $filter_arguments ) { + if ( + !isset($filter_arguments['compare']) || + !isset($filter_arguments['label']) + ) { + return $filter_arguments; + } + + if ( + strtoupper($filter_arguments['compare']) === 'BETWEEN' && + is_array($filter_arguments['label']) && + count($filter_arguments['label']) === 2 + ) { + $filter_arguments['label'] = $filter_arguments['label'][0] . ' - ' . $filter_arguments['label'][1]; + } + + return $filter_arguments; + } +} +Numeric_Interval_Interval_Helper::get_instance(); \ No newline at end of file diff --git a/src/views/admin/components/filter-types/numeric-list-interval/NumericListInterval.vue b/src/views/admin/components/filter-types/numeric-list-interval/NumericListInterval.vue index 787dc9828..ad75df5fe 100644 --- a/src/views/admin/components/filter-types/numeric-list-interval/NumericListInterval.vue +++ b/src/views/admin/components/filter-types/numeric-list-interval/NumericListInterval.vue @@ -53,7 +53,6 @@ }); this.valueEnd = null; this.valueInit = null; - this.$emit('sendValuesToTags', { label: '', value: null, metadatumName: this.metadatumName }); } }, // emit the operation for listeners @@ -67,11 +66,6 @@ collection_id: this.collectionId, value: values }); - - if (values[0] != undefined && values[1] != undefined && this.selectedInterval !== '') { - let labelValue = this.filterTypeOptions.intervals[this.selectedInterval].label + (this.filterTypeOptions.showIntervalOnTag ? ` (${values[0]}-${values[1]})` : ''); - this.$emit('sendValuesToTags', { label: labelValue, value: values, metadatumName: this.metadatumName }); - } }, updateSelectedValues(){ if ( !this.query || !this.query.metaquery || !Array.isArray( this.query.metaquery ) ) @@ -95,10 +89,6 @@ ); this.selectedInterval = this.selectedInterval >= 0 ? this.selectedInterval : ''; - if (this.selectedInterval !== '') { - let labelValue = this.filterTypeOptions.intervals[this.selectedInterval].label + (this.filterTypeOptions.showIntervalOnTag ? ` (${this.valueInit}-${this.valueEnd})` : ''); - this.$emit('sendValuesToTags', { label: labelValue, value: [ this.valueInit, this.valueEnd ], metadatumName: this.metadatumName }); - } } else { this.valueInit = null; this.valueEnd = null; diff --git a/src/views/admin/components/filter-types/numeric-list-interval/class-tainacan-numeric-list-interval.php b/src/views/admin/components/filter-types/numeric-list-interval/class-tainacan-numeric-list-interval.php index c6d1e9aa7..d1d87386f 100644 --- a/src/views/admin/components/filter-types/numeric-list-interval/class-tainacan-numeric-list-interval.php +++ b/src/views/admin/components/filter-types/numeric-list-interval/class-tainacan-numeric-list-interval.php @@ -9,50 +9,85 @@ defined( 'ABSPATH' ) or die( 'No script kiddies please!' ); */ class Numeric_List_Interval extends Filter_Type { - function __construct(){ - $this->set_name( __('Numeric Interval List', 'tainacan') ); - $this->set_supported_types(['float']); - $this->set_component('tainacan-filter-numeric-list-interval'); - $this->set_form_component('tainacan-filter-form-numeric-list-interval'); - $this->set_use_max_options(false); - $this->set_default_options([ - 'intervals' => [], - 'showIntervalOnTag' => false - ]); - $this->set_preview_template(' -
- -
- '); - } - - public function get_form_labels() { - return [ - 'intervals' => [ - 'title' => __('Predefined intervals','tainacan'), - 'description' => __('A list of predefined intervals that the filter will offer on a selection box.','tainacan') - ], - 'showIntervalOnTag' => [ - 'title' => __('Interval on tags', 'tainacan'), - 'description' => __('Whether the applied interval values should appear on filter tags.') - ] - ]; - } + function __construct(){ + $this->set_name( __('Numeric Interval List', 'tainacan') ); + $this->set_supported_types(['float']); + $this->set_component('tainacan-filter-numeric-list-interval'); + $this->set_form_component('tainacan-filter-form-numeric-list-interval'); + $this->set_use_max_options(false); + $this->set_default_options([ + 'intervals' => [], + 'showIntervalOnTag' => false + ]); + $this->set_preview_template(' +
+ +
+ '); + } + + public function get_form_labels() { + return [ + 'intervals' => [ + 'title' => __('Predefined intervals','tainacan'), + 'description' => __('A list of predefined intervals that the filter will offer on a select box.','tainacan') + ], + 'showIntervalOnTag' => [ + 'title' => __('Interval on tags', 'tainacan'), + 'description' => __('Whether the applyed interval values should appear on filter tags.') + ] + ]; + } } + +class Numeric_List_Interval_Helper { + use \Tainacan\Traits\Singleton_Instance; + + protected function init() { + add_filter( 'tainacan-api-items-tainacan-filter-numeric-list-interval-filter-arguments', [$this, 'format_filter_arguments']); + } + + function format_filter_arguments( $filter_arguments ) { + if ( + !isset($filter_arguments['filter']) || + !isset($filter_arguments['filter']['filter_type_options']) || + !isset($filter_arguments['filter']['filter_type_options']['intervals']) + ) { + return $filter_arguments; + } + + $intervals = $filter_arguments['filter']['filter_type_options']['intervals']; + foreach($intervals as $interval) { + if ( + $interval['from'] == $filter_arguments['value'][0] && + $interval['to'] == $filter_arguments['value'][1] + ) { + $filter_arguments['label'] = $interval['label']; + + if ( isset($filter_arguments['filter']['filter_type_options']['showIntervalOnTag']) && $filter_arguments['filter']['filter_type_options']['showIntervalOnTag'] ) + $filter_arguments['label'] .= ' (' . $filter_arguments['value'][0] . '-' . $filter_arguments['value'][1] . ')'; + + break; + } + } + return $filter_arguments; + } +} +Numeric_List_Interval_Helper::get_instance(); diff --git a/src/views/admin/components/filter-types/numeric/Numeric.vue b/src/views/admin/components/filter-types/numeric/Numeric.vue index f9f74045d..b390566b4 100644 --- a/src/views/admin/components/filter-types/numeric/Numeric.vue +++ b/src/views/admin/components/filter-types/numeric/Numeric.vue @@ -113,7 +113,7 @@ let index = this.query.metaquery.findIndex(newMetadatum => newMetadatum.key == this.metadatumId ); - if ( index >= 0){ + if ( index >= 0) { let metadata = this.query.metaquery[ index ]; if ( metadata.value && metadata.value.length > 0) @@ -122,9 +122,6 @@ if ( metadata.compare) this.comparator = metadata.compare; - if (this.value != undefined) - this.$emit('sendValuesToTags', { label: this.comparator + ' ' + this.value, value: this.value, metadatumName: this.metadatumName }); - } else { this.value = null; } @@ -144,8 +141,6 @@ value: this.value, type: 'NUMERIC' }); - - this.$emit('sendValuesToTags', { label: this.comparator + ' ' + this.value, value: this.value, metadatumName: this.metadatumName }); }, onChangeComparator(newComparator) { diff --git a/src/views/admin/components/filter-types/numeric/class-tainacan-numeric.php b/src/views/admin/components/filter-types/numeric/class-tainacan-numeric.php index 0eaa9e36d..b973d8460 100644 --- a/src/views/admin/components/filter-types/numeric/class-tainacan-numeric.php +++ b/src/views/admin/components/filter-types/numeric/class-tainacan-numeric.php @@ -9,92 +9,135 @@ defined( 'ABSPATH' ) or die( 'No script kiddies please!' ); */ class Numeric extends Filter_Type { - function __construct(){ - $this->set_name( __('Numeric', 'tainacan') ); - $this->set_supported_types(['float']); - $this->set_component('tainacan-filter-numeric'); - $this->set_form_component('tainacan-filter-form-numeric'); - $this->set_use_max_options(false); - $this->set_default_options([ - 'step' => 1 - ]); - $this->set_preview_template(' -
-
- -
- '); - } + function __construct(){ + $this->set_name( __('Numeric', 'tainacan') ); + $this->set_supported_types(['float']); + $this->set_component('tainacan-filter-numeric'); + $this->set_form_component('tainacan-filter-form-numeric'); + $this->set_use_max_options(false); + $this->set_default_options([ + 'step' => 1 + ]); + $this->set_preview_template(' +
+
+ +
+ '); + } - /** - * @inheritdoc - */ - public function get_form_labels(){ - return [ - 'step' => [ - 'title' => __( 'Step', 'tainacan' ), - 'description' => __( 'The amount to be increased or decreased when clicking on the filter control buttons. This also defines whether the input accepts decimal numbers.', 'tainacan' ), - ] - ]; - } + /** + * @inheritdoc + */ + public function get_form_labels(){ + return [ + 'step' => [ + 'title' => __( 'Step', 'tainacan' ), + 'description' => __( 'The amount to be increased or decreased when clicking on the filter control buttons. This also defines whether the input accepts decimal numbers.', 'tainacan' ), + ] + ]; + } - /** - * @param \Tainacan\Entities\Filter $filter - * @return array|bool true if is validate or array if has error - */ - public function validate_options(\Tainacan\Entities\Filter $filter) { - if ( !in_array($filter->get_status(), apply_filters('tainacan-status-require-validation', ['publish','future','private'])) ) - return true; + /** + * @param \Tainacan\Entities\Filter $filter + * @return array|bool true if is validate or array if has error + */ + public function validate_options(\Tainacan\Entities\Filter $filter) { + if ( !in_array($filter->get_status(), apply_filters('tainacan-status-require-validation', ['publish','future','private'])) ) + return true; - if ( empty($this->get_option('step')) ) { - return [ - 'step' => __('"Step" value is required','tainacan') - ]; - } + if ( empty($this->get_option('step')) ) { + return [ + 'step' => __('"Step" value is required','tainacan') + ]; + } - return true; - } -} \ No newline at end of file + return true; + } +} + +class Numeric_Helper { + use \Tainacan\Traits\Singleton_Instance; + + protected function init() { + add_filter( 'tainacan-api-items-tainacan-filter-numeric-filter-arguments', [$this, 'format_filter_arguments']); + } + + function format_filter_arguments( $filter_arguments ) { + if ( + !isset($filter_arguments['compare']) || + !isset($filter_arguments['label']) + ) { + return $filter_arguments; + } + + if (count($filter_arguments['label']) === 1) { + switch ($filter_arguments['compare']) { + case '=': + $filter_arguments['label'] = '= ' . $filter_arguments['label'][0]; + break; + case '!=': + $filter_arguments['label'] = '≠ ' . $filter_arguments['label'][0]; + break; + case '>': + $filter_arguments['label'] = '> ' . $filter_arguments['label'][0]; + break; + case '>=': + $filter_arguments['label'] = '≥ ' . $filter_arguments['label'][0]; + break; + case '<': + $filter_arguments['label'] = '< ' . $filter_arguments['label'][0]; + break; + case '<=': + $filter_arguments['label'] = '≤ ' . $filter_arguments['label'][0]; + break; + } + } + + return $filter_arguments; + } +} +Numeric_Helper::get_instance(); \ No newline at end of file diff --git a/src/views/admin/components/filter-types/selectbox/Selectbox.vue b/src/views/admin/components/filter-types/selectbox/Selectbox.vue index 431baa69c..ee6e39dbd 100644 --- a/src/views/admin/components/filter-types/selectbox/Selectbox.vue +++ b/src/views/admin/components/filter-types/selectbox/Selectbox.vue @@ -103,8 +103,6 @@ } else { this.selected = ''; } - - this.$emit('sendValuesToTags', { label: this.selected, value: this.selected, metadatumName: this.metadatumName }) }, onSelect(value) { this.$emit('input', { diff --git a/src/views/admin/components/filter-types/taginput/Taginput.vue b/src/views/admin/components/filter-types/taginput/Taginput.vue index 5c8e08dbf..050452f1e 100644 --- a/src/views/admin/components/filter-types/taginput/Taginput.vue +++ b/src/views/admin/components/filter-types/taginput/Taginput.vue @@ -3,7 +3,6 @@