Merge branch 'release/0.20.2'
This commit is contained in:
commit
c217ac19f1
|
@ -65,6 +65,8 @@
|
|||
.wp-block-tainacan-modal.dynamic-modal .components-modal__content .components-modal__header {
|
||||
margin-left: 0;
|
||||
margin-right: 0; }
|
||||
.wp-block-tainacan-modal.dynamic-modal .components-modal__content .components-modal__header + div {
|
||||
height: 100%; }
|
||||
.wp-block-tainacan-modal .spinner-container {
|
||||
min-height: 56px;
|
||||
padding: 1em;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"version": 3,
|
||||
"mappings": "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",
|
||||
"mappings": "AAIA,KAAM;EACF,sBAAsB,CAAC,QAAU;EACjC,sBAAsB,CAAC,QAAU;EACjC,sBAAsB,CAAC,QAAU;EACjC,sBAAsB,CAAC,QAAU;EACjC,sBAAsB,CAAC,QAAU;EACjC,sBAAsB,CAAC,QAAU;EACjC,wBAAwB,CAAC,QAAY;;AAIzC,kDAAmD;EAC/C,WAAW,EAAE,iBAAiB;EAC9B,aAAa,EAAE,YAAY;EAC3B,UAAU,EAAE,+CAA8C;EAE1D,iFAA+B;IAC3B,aAAa,EAAE,CAAC;EAEpB,oFAAkC;IAC9B,OAAO,EAAE,IAAI;IACb,cAAc,EAAE,GAAG;IACnB,eAAe,EAAE,MAAM;IACvB,WAAW,EAAE,QAAQ;IACrB,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,CAAC;IAEV,sFAAE;MACE,SAAS,EAAE,cAAc;MACzB,MAAM,EAAE,IAAI;MACZ,KAAK,EAAE,oCAAmC;MAC1C,IAAI,EAAE,oCAAmC;MAEzC,0FAAI;QACA,YAAY,EAAE,GAAG;QACjB,GAAG,EAAE,GAAG;QACR,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,oCAAmC;IAGjD,uGAAmB;MACf,MAAM,EAAE,CAAC;;AAMrB,wBAAyB;EACrB,KAAK,EAAE,cAAc;EAErB,0CAA2C;IAH/C,wBAAyB;MAGyB,KAAK,EAAE,cAAc;EACnE,yCAA0C;IAJ9C,wBAAyB;MAIuB,KAAK,EAAE,eAAe;EAGlE,sCAAgB;IACZ,KAAK,EAAE,cAAc;IACrB,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,IAAI;IAEZ,6CAAO;MACH,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,iBAAiB;IAE7B,yEAAqC;MACjC,MAAM,EAAE,iBAAiB;IAE7B,yEAAqC;MACjC,MAAM,EAAE,kBAAkB;IAG9B,yDAAmB;MACf,MAAM,EAAE,IAAI;MACZ,KAAK,EAAE,IAAI;MACX,UAAU,EAAE,8CAA6C;MACzD,OAAO,EAAE,SAAS;IAGtB,iEAA2B;MACvB,OAAO,EAAE,CAAC;MAEV,2FAA0B;QACtB,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;MAEnB,iGAA8B;QAC1B,MAAM,EAAE,IAAI;EAMxB,2CAAmB;IACf,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,MAAM;IACvB,WAAW,EAAE,MAAM;IACnB,KAAK,EAAE,oCAAmC;IAC1C,+DAAoB;MAAE,MAAM,EAAE,GAAG;EAGrC;4EACkD;IAC9C,aAAa,EAAE,CAAC;IAEhB;oFAAQ;MACJ,UAAU,EAAE,sBAAsB;MAClC,MAAM,EAAE,eAAe;MACvB,UAAU,EAAE,eAAe;EAInC,2BAAG;IACC,MAAM,EAAE,UAAU;EAGtB,0DAAkC;IAC9B,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,YAAY;IACpB,WAAW,EAAE,GAAG;EAGpB,2CAAmB;IACf,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,MAAM;IACvB,WAAW,EAAE,QAAQ;IACrB,aAAa,EAAE,GAAG;IAElB,oEAAyB;MACrB,KAAK,EAAE,GAAG;MAEV,0CAA2C;QAH/C,oEAAyB;UAGyB,KAAK,EAAE,GAAG;MACxD,iFAAe;QACX,WAAW,EAAE,CAAC;QACd,WAAW,EAAE,MAAM;MAEvB,oGAAgC;QAC5B,SAAS,EAAE,IAAI;QAEf,+HAA2B;UACvB,KAAK,EAAE,IAAI;MAGnB,yGAAqC;QACjC,WAAW,EAAE,GAAG;QAChB,KAAK,EAAE,oCAAmC;QAC1C,SAAS,EAAE,GAAG;QACd,UAAU,EAAE,MAAM;MAEtB,yGAAqC;QACjC,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,IAAI;EAKxB,gDAAwB;IACpB,WAAW,EAAE,GAAG;IAChB,WAAW,EAAE,MAAM;EAGvB,0RAE6G;IACzG,OAAO,EAAE,CAAC;ICzKd,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,IAAI;IDwKT,gBAAgB,EAAE,WAAW;IAC7B,qBAAqB,EAAE,wBAAwB;IAC/C,QAAQ,EAAE,GAAG;IACb,eAAe,EAAE,YAAY;IAC7B,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,GAAG;IACZ,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,MAAM;IAClB,KAAK,EAAE,IAAI;IAEX,qWAAyB;MACrB,QAAQ,EAAE,MAAM;MAChB,YAAY,EAAE,GAAG;IAGrB;;;yKACkC;MAC9B,OAAO,EAAE,IAAI;MACb,eAAe,EAAE,UAAU;MAC3B,WAAW,EAAE,MAAM;MACnB,MAAM,EAAE,MAAM;MAEd;;;+KAAI;QACA,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,GAAG;MAEtB;;;iLAAM;QACF,OAAO,EAAE,YAAY;QACrB,SAAS,EAAE,GAAG;QAEd,yCAA0C;UAJ9C;;;qLAAM;YAI0C,SAAS,EAAE,GAAG;IAGlE,meAAmE;MAC/D,SAAS,EAAE,IAAI;MACf,UAAU,EAAE,IAAI;EAGxB,gDAAwB;IACpB,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,QAAQ;IACrB,eAAe,EAAE,MAAM;IAEvB,kDAAE;MACE,KAAK,EAAE,oCAAmC;MAC1C,YAAY,EAAE,IAAI;MAClB,UAAU,EAAE,GAAG;EAGvB,2CAAmB;IACf,UAAU,EAAE,iBAAiB;IAC7B,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,QAAQ;IACrB,eAAe,EAAE,aAAa;IAC9B,OAAO,EAAE,UAAU;IAEnB,6CAAE;MACE,OAAO,EAAE,MAAM;MACf,KAAK,EAAE,oCAAmC",
|
||||
"sources": ["../../views/gutenberg-blocks/scss/gutenberg-blocks-editor-style.scss","../../views/gutenberg-blocks/scss/gutenberg-blocks-variables.scss"],
|
||||
"names": [],
|
||||
"file": "tainacan-gutenberg-block-common-editor-styles.css"
|
||||
|
|
|
@ -19,17 +19,10 @@ class REST_Exporters_Controller extends REST_Controller {
|
|||
*/
|
||||
public function __construct() {
|
||||
$this->rest_base = 'exporters';
|
||||
if (session_status() == PHP_SESSION_NONE) {
|
||||
@session_start(); // @ avoids Warnings when running phpunit tests
|
||||
}
|
||||
parent::__construct();
|
||||
add_action('init', array(&$this, 'init_objects'), 11);
|
||||
}
|
||||
|
||||
public function __destruct() {
|
||||
session_write_close();
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize objects after post_type register
|
||||
*/
|
||||
|
@ -95,24 +88,24 @@ class REST_Exporters_Controller extends REST_Controller {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param \WP_REST_Request $request
|
||||
*
|
||||
* @return bool|\WP_Error
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function export_permissions_check($request) {
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param \WP_REST_Request $request
|
||||
*
|
||||
* @return bool|\WP_Error
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function export_permissions_check($request) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public function get_registered_exporters() {
|
||||
global $Tainacan_Exporter_Handler;
|
||||
$exporters = $Tainacan_Exporter_Handler->get_registered_exporters();
|
||||
return new \WP_REST_Response( $exporters, 200 );
|
||||
}
|
||||
public function get_registered_exporters() {
|
||||
global $Tainacan_Exporter_Handler;
|
||||
$exporters = $Tainacan_Exporter_Handler->get_registered_exporters();
|
||||
return new \WP_REST_Response( $exporters, 200 );
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* Creates a new instance of the desired exporter and returns its ID
|
||||
*
|
||||
* @param \WP_REST_Request $request
|
||||
|
|
|
@ -11,8 +11,6 @@ use Tainacan\Entities;
|
|||
*
|
||||
* */
|
||||
class REST_Importers_Controller extends REST_Controller {
|
||||
private $collections_repository;
|
||||
private $collection;
|
||||
|
||||
/**
|
||||
* REST_Importers_Controller constructor.
|
||||
|
@ -20,15 +18,9 @@ class REST_Importers_Controller extends REST_Controller {
|
|||
*/
|
||||
public function __construct(){
|
||||
$this->rest_base = 'importers';
|
||||
if (session_status() == PHP_SESSION_NONE) {
|
||||
@session_start(); // @ avoids Warnings when running phpunit tests
|
||||
}
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function __destruct() {
|
||||
session_write_close();
|
||||
}
|
||||
/**
|
||||
* Register the collections route and their endpoints
|
||||
*/
|
||||
|
|
|
@ -125,7 +125,8 @@ class Search_Engine {
|
|||
foreach ( $terms as $term ) {
|
||||
$esc_term = $wpdb->prepare("%s", $not_exact ? "%".$term."%" : $term);
|
||||
if ( !empty( $this->relationships ) ) {
|
||||
$searchQuery .= "{$seperator}($wpdb->posts.post_title LIKE {$esc_term} OR $wpdb->posts.post_content LIKE {$esc_term} OR p2.post_title LIKE {$esc_term} OR p2.post_content LIKE {$esc_term})";
|
||||
$relation_content = (defined('TAINACAN_DISABLE_CONTENT_RELATIONSHIP_SEARCH') && TAINACAN_DISABLE_CONTENT_RELATIONSHIP_SEARCH === true) ? "" : "OR p2.post_content LIKE {$esc_term}";
|
||||
$searchQuery .= "{$seperator}($wpdb->posts.post_title LIKE {$esc_term} OR $wpdb->posts.post_content LIKE {$esc_term} OR p2.post_title LIKE {$esc_term} $relation_content)";
|
||||
} else {
|
||||
$searchQuery .= "{$seperator}($wpdb->posts.post_title LIKE {$esc_term} OR $wpdb->posts.post_content LIKE {$esc_term})";
|
||||
}
|
||||
|
|
|
@ -1,89 +0,0 @@
|
|||
<?php
|
||||
|
||||
class ScriptTainacanOld {
|
||||
|
||||
var $step = 0;
|
||||
var $url = '';
|
||||
|
||||
/**
|
||||
* start the execution
|
||||
*/
|
||||
function __construct($argv) {
|
||||
|
||||
$this->parse_args($argv);
|
||||
$this->run();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* parse args from and set the attributs
|
||||
* 1 - Old Tainacan url (required)
|
||||
*/
|
||||
function parse_args($argv) {
|
||||
|
||||
if (!is_array($argv))
|
||||
return;
|
||||
|
||||
|
||||
if (isset($argv[1])) {
|
||||
|
||||
if (filter_var($argv[1], FILTER_VALIDATE_URL)) {
|
||||
$this->url = $argv[1];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (isset($argv[2])) {
|
||||
|
||||
if (is_numeric($argv[2])) {
|
||||
$this->step = $argv[2];
|
||||
} else {
|
||||
$this->run = '';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* echo message in prompt line
|
||||
*/
|
||||
function log($msg) {
|
||||
|
||||
echo $msg . PHP_EOL;
|
||||
|
||||
}
|
||||
|
||||
function run() {
|
||||
|
||||
$start = $partial = microtime(true);
|
||||
|
||||
// Avoid warnings
|
||||
$_SERVER['SERVER_PROTOCOL'] = "HTTP/1.1";
|
||||
$_SERVER['REQUEST_METHOD'] = "GET";
|
||||
|
||||
define( 'WP_USE_THEMES', false );
|
||||
define( 'SHORTINIT', false );
|
||||
// require( dirname(__FILE__) . '/../../../../wp-blog-header.php' );
|
||||
|
||||
$old_tainacan = new \Tainacan\Importer\Old_Tainacan();
|
||||
$id = $old_tainacan->get_id();
|
||||
|
||||
$_SESSION['tainacan_importer'][$id]->set_url($this->url);
|
||||
|
||||
while (!$_SESSION['tainacan_importer'][$id]->is_finished()){
|
||||
$_SESSION['tainacan_importer'][$id]->run();
|
||||
}
|
||||
|
||||
$scripttime = microtime(true) - $start;
|
||||
|
||||
$this->log("==========================================================");
|
||||
$this->log("==========================================================");
|
||||
$this->log("=== Fim do script. Tempo de execução {$scripttime}s");
|
||||
$this->log("==========================================================");
|
||||
$this->log("==========================================================");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$x = new ScriptTainacanOld($argv);
|
|
@ -349,7 +349,7 @@ function tainacan_get_the_media_component(
|
|||
if (!function_exists('tainacan_get_default_allowed_styles')) {
|
||||
function tainacan_get_default_allowed_styles ( $styles ) {
|
||||
$styles[] = 'display';
|
||||
$styles[] = 'position';
|
||||
$styles[] = 'position'; // Adding position to this list will not be necessary anymore from WP 6.2 on... but lets keep for backwards.
|
||||
$styles[] = 'visibility';
|
||||
return $styles;
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ Tags: museums, libraries, archives, GLAM, collections, repository
|
|||
Requires at least: 5.0
|
||||
Tested up to: 6.1
|
||||
Requires PHP: 5.6
|
||||
Stable tag: 0.20.1
|
||||
Stable tag: 0.20.2
|
||||
License: GPLv2 or later
|
||||
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ Plugin Name: Tainacan
|
|||
Plugin URI: https://tainacan.org/
|
||||
Description: Open source, powerful and flexible repository platform for WordPress. Manage and publish you digital collections as easily as publishing a post to your blog, while having all the tools of a professional repository platform.
|
||||
Author: Tainacan.org
|
||||
Version: 0.20.1
|
||||
Version: 0.20.2
|
||||
Requires at least: 5.0
|
||||
Tested up to: 6.1
|
||||
Requires PHP: 5.6
|
||||
|
@ -14,7 +14,7 @@ License: GPLv2 or later
|
|||
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*/
|
||||
|
||||
const TAINACAN_VERSION = '0.20.1';
|
||||
const TAINACAN_VERSION = '0.20.2';
|
||||
|
||||
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
||||
$TAINACAN_BASE_URL = plugins_url('', __FILE__);
|
||||
|
|
|
@ -86,8 +86,33 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import TainacanFilterNumeric from './numeric/Numeric.vue';
|
||||
import TainacanFilterDate from './date/Date.vue';
|
||||
import TainacanFilterSelectbox from './selectbox/Selectbox.vue';
|
||||
import TainacanFilterAutocomplete from './autocomplete/Autocomplete.vue';
|
||||
import TainacanFilterCheckbox from './checkbox/Checkbox.vue';
|
||||
import TainacanFilterTaginput from './taginput/Taginput.vue';
|
||||
import TainacanFilterTaxonomyCheckbox from './taxonomy/Checkbox.vue';
|
||||
import TainacanFilterTaxonomyTaginput from './taxonomy/Taginput.vue';
|
||||
import TainacanFilterDateInterval from './date-interval/DateInterval.vue';
|
||||
import TainacanFilterNumericInterval from './numeric-interval/NumericInterval.vue';
|
||||
import TainacanFilterNumericListInterval from './numeric-list-interval/NumericListInterval.vue';
|
||||
|
||||
export default {
|
||||
name: 'TainacanFilterItem',
|
||||
components: {
|
||||
TainacanFilterNumeric,
|
||||
TainacanFilterDate,
|
||||
TainacanFilterSelectbox,
|
||||
TainacanFilterAutocomplete,
|
||||
TainacanFilterCheckbox,
|
||||
TainacanFilterTaginput,
|
||||
TainacanFilterTaxonomyCheckbox,
|
||||
TainacanFilterTaxonomyTaginput,
|
||||
TainacanFilterDateInterval,
|
||||
TainacanFilterNumericInterval,
|
||||
TainacanFilterNumericListInterval
|
||||
},
|
||||
props: {
|
||||
filter: Object,
|
||||
query: Object,
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
v-for="metadatumMapper in metadatumMappers"
|
||||
:key="metadatumMapper.slug"
|
||||
:value="metadatumMapper">
|
||||
{{ $i18n.get(metadatumMapper.name) }}
|
||||
{{ metadatumMapper.name }}
|
||||
</option>
|
||||
</b-select>
|
||||
</b-field>
|
||||
|
|
|
@ -64,27 +64,27 @@ class Compound extends Metadata_Type {
|
|||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function get_form_labels(){
|
||||
return [
|
||||
'children' => [
|
||||
'title' => __( 'Child Metadata', 'tainacan' ),
|
||||
'description' => __( 'The list of inner metadata that compose this compound metadata.', 'tainacan' ),
|
||||
]
|
||||
];
|
||||
}
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function get_form_labels(){
|
||||
return [
|
||||
'children' => [
|
||||
'title' => __( 'Child Metadata', 'tainacan' ),
|
||||
'description' => __( 'The list of inner metadata that compose this compound metadata.', 'tainacan' ),
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets print-ready version of the options list in html
|
||||
*
|
||||
* Checks if at least one option exists, otherwise return an empty string
|
||||
*
|
||||
* @return string An html content with labels and values for the options or an empty string
|
||||
*/
|
||||
public function get_options_as_html() {
|
||||
return '';
|
||||
}
|
||||
* Gets print-ready version of the options list in html
|
||||
*
|
||||
* Checks if at least one option exists, otherwise return an empty string
|
||||
*
|
||||
* @return string An html content with labels and values for the options or an empty string
|
||||
*/
|
||||
public function get_options_as_html() {
|
||||
return '';
|
||||
}
|
||||
|
||||
/**
|
||||
* save options and remove old children
|
||||
|
@ -229,6 +229,35 @@ class Compound extends Metadata_Type {
|
|||
return "<div class='tainacan-compound-group'> {$return} </div>";
|
||||
}
|
||||
|
||||
// /**
|
||||
// * Return the value of an Item_Metadata_Entity using a metadatum of this metadatum type as a string
|
||||
// * @param Item_Metadata_Entity $item_metadata
|
||||
// * @return string The String representation of the value, containing one or multiple items names, linked to the item page
|
||||
// */
|
||||
public function get_value_as_string(\Tainacan\Entities\Item_Metadata_Entity $item_metadata) {
|
||||
$value = $item_metadata->get_value();
|
||||
$return = '';
|
||||
|
||||
if ( empty($value) )
|
||||
return $return;
|
||||
|
||||
if ( $item_metadata->is_multiple() ) {
|
||||
foreach ( $value as $compound_element ) {
|
||||
if ( !empty($compound_element) ) {
|
||||
foreach ( $compound_element as $meta_id => $meta ) {
|
||||
$return .= $meta->get_value_as_string() . " ";
|
||||
}
|
||||
}
|
||||
$return .= "\n";
|
||||
}
|
||||
} else {
|
||||
foreach ( $value as $meta_id => $meta ) {
|
||||
$return .= $meta->get_value_as_string() . " ";
|
||||
}
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
private function get_meta_html(Item_Metadata_Entity $meta) {
|
||||
$html = '';
|
||||
if ($meta instanceof Item_Metadata_Entity && !empty($meta->get_value_as_html())) {
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
((filters.length >= 0 && isRepositoryLevel) || filters.length > 0)"
|
||||
class="filters-components-list">
|
||||
|
||||
<!-- TERM ITEMS PAGE FILTERS -->
|
||||
<!-- TAXONOMY TERM ITEMS FILTERS -->
|
||||
<template v-if="taxonomy && taxonomyFilters">
|
||||
<div
|
||||
v-if="key == 'repository-filters'"
|
||||
|
@ -149,7 +149,7 @@
|
|||
</div>
|
||||
</template>
|
||||
|
||||
<!-- REPOSITORY ITEMS PAGE FILTERS -->
|
||||
<!-- REPOSITORY ITEMS FILTERS -->
|
||||
<template v-else-if="isRepositoryLevel && !taxonomy">
|
||||
<div
|
||||
v-if="key == 'repository-filters'"
|
||||
|
@ -251,7 +251,7 @@
|
|||
</div>
|
||||
</template>
|
||||
|
||||
<!-- COLLECTION ITEMS PAGE FILTERS -->
|
||||
<!-- COLLECTION ITEMS FILTERS -->
|
||||
<template v-else>
|
||||
<tainacan-filter-item
|
||||
:is-loading-items="isLoadingItems"
|
||||
|
@ -292,10 +292,12 @@
|
|||
|
||||
<script>
|
||||
import { mapGetters, mapActions } from 'vuex';
|
||||
import TainacanFilterItem from '../filter-types/tainacan-filter-item.vue';
|
||||
import FiltersTagsList from './filters-tags-list.vue';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
TainacanFilterItem,
|
||||
FiltersTagsList
|
||||
},
|
||||
props: {
|
||||
|
@ -342,17 +344,16 @@
|
|||
},
|
||||
watch: {
|
||||
taxonomyFilters() {
|
||||
if (this.taxonomyFilters != undefined) {
|
||||
if ( this.taxonomyFilters != undefined && Object.keys(this.taxonomyFilters).length ) {
|
||||
|
||||
this.$set(this.taxonomyFiltersCollectionNames, 'repository-filters', this.$i18n.get('repository'));
|
||||
|
||||
// Cancels previous collection name Request
|
||||
if (this.collectionNameSearchCancel != undefined)
|
||||
this.collectionNameSearchCancel.cancel('Collection name search Canceled.');
|
||||
const collectionIds = JSON.parse(JSON.stringify(Object.keys(this.taxonomyFilters)));
|
||||
delete collectionIds['repository-filters'];
|
||||
|
||||
this.fetchAllCollectionNames(collectionIds)
|
||||
let collectionIds = JSON.parse(JSON.stringify(Object.keys(this.taxonomyFilters)));
|
||||
|
||||
this.fetchAllCollectionNames( collectionIds.filter(aCollectionId => aCollectionId !== 'repository-filters') )
|
||||
.then((resp) => {
|
||||
resp.request
|
||||
.then((collections) => {
|
||||
|
@ -365,35 +366,18 @@
|
|||
}
|
||||
},
|
||||
repositoryCollectionFilters() {
|
||||
if (this.repositoryCollectionFilters != undefined) {
|
||||
if ( this.repositoryCollectionFilters != undefined && Object.keys(this.repositoryCollectionFilters).length ) {
|
||||
|
||||
this.$set(this.repositoryCollectionNames, 'repository-filters', this.$i18n.get('repository'));
|
||||
|
||||
// Cancels previous collection name Request
|
||||
if (this.collectionNameSearchCancel != undefined)
|
||||
this.collectionNameSearchCancel.cancel('Collection name search Canceled.');
|
||||
|
||||
this.fetchAllCollectionNames()
|
||||
.then((resp) => {
|
||||
resp.request
|
||||
.then((collections) => {
|
||||
for (let collection of collections)
|
||||
this.$set(this.repositoryCollectionNames, '' + collection.id, collection.name);
|
||||
});
|
||||
// Search Request Token for cancelling
|
||||
this.collectionNameSearchCancel = resp.source;
|
||||
});
|
||||
for ( let collection of this.getCollections() )
|
||||
this.$set(this.repositoryCollectionNames, '' + collection.id, collection.name);
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.prepareFilters();
|
||||
this.$eventBusSearch.$on('hasToPrepareMetadataAndFilters', () => {
|
||||
/* This condition is to prevent an incorrect fetch by filter or metadata when we come from items
|
||||
* at collection level to items page at repository level
|
||||
*/
|
||||
this.prepareFilters();
|
||||
});
|
||||
|
||||
if (this.isUsingElasticSearch)
|
||||
this.$eventBusSearch.$on('isLoadingItems', this.updateIsLoadingItems);
|
||||
},
|
||||
|
@ -410,8 +394,6 @@
|
|||
if (this.filtersSearchCancel != undefined)
|
||||
this.filtersSearchCancel.cancel('Filters search Canceled.');
|
||||
|
||||
this.$eventBusSearch.$off('hasToPrepareMetadataAndFilters');
|
||||
|
||||
if (this.isUsingElasticSearch)
|
||||
this.$eventBusSearch.$off('isLoadingItems', this.updateIsLoadingItems);
|
||||
|
||||
|
@ -421,7 +403,8 @@
|
|||
'getPostQuery'
|
||||
]),
|
||||
...mapGetters('collection',[
|
||||
'getCollection'
|
||||
'getCollection',
|
||||
'getCollections'
|
||||
]),
|
||||
...mapActions('collection',[
|
||||
'fetchAllCollectionNames'
|
||||
|
@ -482,12 +465,12 @@
|
|||
}
|
||||
|
||||
// On repository level we also fetch collection filters
|
||||
if (!this.taxonomy && this.isRepositoryLevel) {
|
||||
if ( !this.taxonomy && this.isRepositoryLevel ) {
|
||||
|
||||
// Cancels previous Request
|
||||
if (this.repositoryFiltersSearchCancel != undefined)
|
||||
this.repositoryFiltersSearchCancel.cancel('Repository Collection Filters search Canceled.');
|
||||
|
||||
|
||||
this.fetchRepositoryCollectionFilters()
|
||||
.then((source) => {
|
||||
this.repositoryFiltersSearchCancel = source;
|
||||
|
|
|
@ -55,19 +55,6 @@ import FormNumeric from '../components/metadata-types/numeric/FormNumeric.vue';
|
|||
import FormUser from '../components/metadata-types/user/FormUser.vue';
|
||||
import FormGeoCoordinate from '../components/metadata-types/geocoordinate/FormGeoCoordinate.vue';
|
||||
|
||||
|
||||
import FilterNumeric from '../components/filter-types/numeric/Numeric.vue';
|
||||
import FilterDate from '../components/filter-types/date/Date.vue';
|
||||
import FilterSelectbox from '../components/filter-types/selectbox/Selectbox.vue';
|
||||
import FilterAutocomplete from '../components/filter-types/autocomplete/Autocomplete.vue';
|
||||
import FilterCheckbox from '../components/filter-types/checkbox/Checkbox.vue';
|
||||
import FilterTaginput from '../components/filter-types/taginput/Taginput.vue';
|
||||
import FilterNumericInterval from '../components/filter-types/numeric-interval/NumericInterval.vue';
|
||||
import FilterDateInterval from '../components/filter-types/date-interval/DateInterval.vue';
|
||||
import FilterNumericListInterval from '../components/filter-types/numeric-list-interval/NumericListInterval.vue';
|
||||
import FilterTaxonomyCheckbox from '../components/filter-types/taxonomy/Checkbox.vue';
|
||||
import FilterTaxonomyTaginput from '../components/filter-types/taxonomy/Taginput.vue';
|
||||
|
||||
// Term edition form must be imported here so that it is not necessary on item-submission bundle
|
||||
import TermEditionForm from '../components/edition/term-edition-form.vue';
|
||||
|
||||
|
@ -80,7 +67,6 @@ import FormFilterNumericListInterval from '../components/filter-types/numeric-li
|
|||
// import FormDate from '../../../classes/filter-types/date/FormDate.vue';
|
||||
|
||||
import TainacanFormItem from '../components/metadata-types/tainacan-form-item.vue';
|
||||
import TainacanFiltersList from '../components/filter-types/tainacan-filter-item.vue';
|
||||
|
||||
// Remaining imports
|
||||
import AdminPage from '../admin.vue'
|
||||
|
@ -227,20 +213,6 @@ export default (element) => {
|
|||
Vue.component('tainacan-form-user', FormUser);
|
||||
Vue.component('term-edition-form', TermEditionForm);
|
||||
Vue.component('tainacan-form-geocoordinate', FormGeoCoordinate);
|
||||
|
||||
|
||||
/* Filters */
|
||||
Vue.component('tainacan-filter-numeric', FilterNumeric);
|
||||
Vue.component('tainacan-filter-date', FilterDate);
|
||||
Vue.component('tainacan-filter-selectbox', FilterSelectbox);
|
||||
Vue.component('tainacan-filter-autocomplete', FilterAutocomplete);
|
||||
Vue.component('tainacan-filter-checkbox', FilterCheckbox);
|
||||
Vue.component('tainacan-filter-taginput', FilterTaginput);
|
||||
Vue.component('tainacan-filter-taxonomy-checkbox', FilterTaxonomyCheckbox);
|
||||
Vue.component('tainacan-filter-taxonomy-taginput', FilterTaxonomyTaginput);
|
||||
Vue.component('tainacan-filter-numeric-interval', FilterNumericInterval);
|
||||
Vue.component('tainacan-filter-numeric-list-interval', FilterNumericListInterval);
|
||||
Vue.component('tainacan-filter-date-interval', FilterDateInterval);
|
||||
|
||||
/* Filter Metadata Option forms */
|
||||
Vue.component('tainacan-filter-form-numeric', FormFilterNumeric);
|
||||
|
@ -248,9 +220,8 @@ export default (element) => {
|
|||
Vue.component('tainacan-filter-form-numeric-list-interval', FormFilterNumericListInterval);
|
||||
// Vue.component('tainacan-filter-form-date', FormDate);
|
||||
|
||||
// Filter and Metadadum parent containers
|
||||
// Metadadum parent containers
|
||||
Vue.component('tainacan-form-item', TainacanFormItem);
|
||||
Vue.component('tainacan-filter-item', TainacanFiltersList);
|
||||
|
||||
/* Others */
|
||||
Vue.component('recursive-term-item', RecursiveTermItem);
|
||||
|
|
|
@ -375,9 +375,8 @@ export default {
|
|||
loadItems() {
|
||||
|
||||
// Forces fetch_only to be filled before any search happens
|
||||
if (this.$store.getters['search/getPostQuery']['fetch_only'] == undefined) {
|
||||
this.$emit( 'hasToPrepareMetadataAndFilters');
|
||||
} else {
|
||||
if (this.$store.getters['search/getPostQuery']['fetch_only'] != undefined) {
|
||||
|
||||
this.$emit( 'isLoadingItems', true);
|
||||
// Cancels previous Request
|
||||
if (this.searchCancel != undefined)
|
||||
|
@ -401,9 +400,7 @@ export default {
|
|||
this.searchCancel = resp.source;
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
setCollectionId(collectionId) {
|
||||
this.setTotalItems(null);
|
||||
|
|
|
@ -176,7 +176,7 @@ export const fetchRepositoryCollectionFilters = ({ dispatch, commit } ) => {
|
|||
|
||||
let promises = [];
|
||||
|
||||
// First, we add reporitory level filters
|
||||
// First, we add repository level filters
|
||||
promises.push(
|
||||
axios.tainacan.get('/filters/?include_control_metadata_types=true&nopaging=1&include_disabled=false')
|
||||
.then((resp) => { return { filters: resp.data, collectionId: 'default' } })
|
||||
|
@ -199,8 +199,12 @@ export const fetchRepositoryCollectionFilters = ({ dispatch, commit } ) => {
|
|||
// Process it all
|
||||
axios.all(promises)
|
||||
.then((results) => {
|
||||
let futureRepositoryCollectionFilters = {};
|
||||
|
||||
for (let resp of results)
|
||||
commit('setRepositoryCollectionFilters', { collectionName: (resp.collectionId != 'default' ? resp.collectionId : undefined), repositoryCollectionFilters: resp.filters });
|
||||
futureRepositoryCollectionFilters[resp.collectionId != 'default' ? resp.collectionId : 'repository-filters'] = resp.filters;
|
||||
|
||||
commit('setRepositoryCollectionFilters', futureRepositoryCollectionFilters);
|
||||
|
||||
resolve();
|
||||
})
|
||||
|
@ -258,13 +262,16 @@ export const fetchTaxonomyFilters = ({ dispatch, commit }, { taxonomyId, collect
|
|||
// Process it all
|
||||
axios.all(promises)
|
||||
.then((results) => {
|
||||
let futureTaxonomyFilters = {};
|
||||
|
||||
for (let resp of results) {
|
||||
let taxonomyFilters = resp.filters.filter((filter) => {
|
||||
return filter.metadatum.metadata_type_object.options.taxonomy_id != taxonomyId
|
||||
});
|
||||
commit('setTaxonomyFiltersForCollection', { collectionName: (resp.collectionId != 'default' ? resp.collectionId : undefined), taxonomyFilters: taxonomyFilters });
|
||||
futureTaxonomyFilters[resp.collectionId != 'default' ? resp.collectionId : 'repository-filters'] = taxonomyFilters;
|
||||
}
|
||||
|
||||
commit('setTaxonomyFilters', futureTaxonomyFilters);
|
||||
resolve();
|
||||
})
|
||||
.catch((error) => {
|
||||
|
|
|
@ -36,22 +36,16 @@ export const setFilterTypes = (state, filterTypes) => {
|
|||
state.filterTypes = filterTypes;
|
||||
}
|
||||
|
||||
export const setRepositoryCollectionFilters = (state, { collectionName, repositoryCollectionFilters }) => {
|
||||
if (collectionName != undefined)
|
||||
Vue.set(state.repositoryCollectionFilters, collectionName, repositoryCollectionFilters);
|
||||
else
|
||||
Vue.set(state.repositoryCollectionFilters, 'repository-filters', repositoryCollectionFilters);
|
||||
export const setRepositoryCollectionFilters = (state, repositoryCollectionFilters) => {
|
||||
state.repositoryCollectionFilters = repositoryCollectionFilters;
|
||||
}
|
||||
|
||||
export const clearRepositoryCollectionFilters = (state) => {
|
||||
state.repositoryCollectionFilters = {};
|
||||
}
|
||||
|
||||
export const setTaxonomyFiltersForCollection = (state, { collectionName, taxonomyFilters }) => {
|
||||
if (collectionName != undefined)
|
||||
Vue.set(state.taxonomyFilters, collectionName, taxonomyFilters);
|
||||
else
|
||||
Vue.set(state.taxonomyFilters, 'repository-filters', taxonomyFilters);
|
||||
export const setTaxonomyFilters = (state, taxonomyFilters) => {
|
||||
state.taxonomyFilters = taxonomyFilters;
|
||||
}
|
||||
|
||||
export const clearTaxonomyFilters = (state) => {
|
||||
|
|
|
@ -838,10 +838,6 @@
|
|||
this.$eventBusSearch.$on('hasFiltered', hasFiltered => {
|
||||
this.hasFiltered = hasFiltered;
|
||||
});
|
||||
|
||||
this.$eventBusSearch.$on('hasToPrepareMetadataAndFilters', () => {
|
||||
this.prepareMetadata();
|
||||
});
|
||||
|
||||
if (this.$route.query && this.$route.query.advancedSearch) {
|
||||
this.openAdvancedSearch = this.$route.query.advancedSearch;
|
||||
|
@ -1379,7 +1375,6 @@
|
|||
// $eventBusSearch
|
||||
this.$eventBusSearch.$off('isLoadingItems');
|
||||
this.$eventBusSearch.$off('hasFiltered');
|
||||
this.$eventBusSearch.$off('hasToPrepareMetadataAndFilters');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -73,17 +73,30 @@
|
|||
margin-right: 0.5em;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.media-content {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
width: 80%;
|
||||
|
||||
.ellipsed-text {
|
||||
overflow-x: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
margin-right: 3px;
|
||||
transition: white-space .3s ease, overflow .3s ease;
|
||||
}
|
||||
}
|
||||
.media-left+.media-content {
|
||||
width: calc(100% - 32px);
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
.ellipsed-text {
|
||||
overflow-x: visible !important;
|
||||
white-space: normal !important;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
},
|
||||
"enabledViewModes": {
|
||||
"type": "array",
|
||||
"default": null
|
||||
"default": []
|
||||
},
|
||||
"collectionDefaultViewMode": {
|
||||
"type": "string",
|
||||
|
|
|
@ -260,7 +260,7 @@ export default [
|
|||
collection-id={ updatedListType == 'collection' ? collectionId : null }
|
||||
default-view-mode={ defaultViewMode != 'none' ? defaultViewMode : (updatedListType == 'collection' ? collectionDefaultViewMode : (hideItemsThumbnail ? 'table' : 'masonry') ) }
|
||||
is-forced-view-mode={ defaultViewMode == 'none' ? 'true' : 'false' }
|
||||
enabled-view-modes={ enabledViewModes.toString() }
|
||||
enabled-view-modes={ enabledViewModes ? enabledViewModes.toString() : '' }
|
||||
hide-filters = { hideFilters.toString() }
|
||||
hide-hide-filters-button= { hideHideFiltersButton.toString() }
|
||||
hide-search = { hideSearch.toString() }
|
||||
|
|
|
@ -83,7 +83,7 @@ export default function({ attributes, setAttributes, className, isSelected, clie
|
|||
let registeredViewModesKeys = [];
|
||||
updateAvailableViewModes(hideItemsThumbnail);
|
||||
|
||||
if (enabledViewModes === null)
|
||||
if ( enabledViewModes === null || !enabledViewModes.length )
|
||||
enabledViewModes = Object.keys(tainacan_plugin.registered_view_modes);
|
||||
|
||||
const fontSizes = [
|
||||
|
@ -612,10 +612,11 @@ export default function({ attributes, setAttributes, className, isSelected, clie
|
|||
max={ tainacan_plugin.api_max_items_per_page ? tainacan_plugin.api_max_items_per_page : 96 }
|
||||
/>
|
||||
</PanelBody>
|
||||
|
||||
</InspectorControls>
|
||||
<InspectorControls group="styles">
|
||||
<PanelBody
|
||||
title={__('Colors and Sizes', 'tainacan')}
|
||||
initialOpen={ false }
|
||||
title={__('Dimensions', 'tainacan')}
|
||||
initialOpen={ true }
|
||||
>
|
||||
<FontSizePicker
|
||||
fontSizes={ fontSizes }
|
||||
|
@ -632,7 +633,11 @@ export default function({ attributes, setAttributes, className, isSelected, clie
|
|||
min={ 10 }
|
||||
max={ 40 }
|
||||
/>
|
||||
<HorizontalRule />
|
||||
</PanelBody>
|
||||
<PanelBody
|
||||
title={__('Colors', 'tainacan')}
|
||||
initialOpen={ true }
|
||||
>
|
||||
<BaseControl
|
||||
id="backgroundColorPicker"
|
||||
label={ __('Background color', 'tainacan')}
|
||||
|
|
|
@ -85,7 +85,7 @@ export default function({ attributes, className }) {
|
|||
collection-id={ updatedListType == 'collection' ? collectionId : null }
|
||||
default-view-mode={ defaultViewMode != 'none' ? defaultViewMode : (updatedListType == 'collection' ? collectionDefaultViewMode : (hideItemsThumbnail ? 'table' : 'masonry') ) }
|
||||
is-forced-view-mode={ defaultViewMode == 'none' ? 'true' : 'false' }
|
||||
enabled-view-modes={ enabledViewModes.toString() }
|
||||
enabled-view-modes={ enabledViewModes ? enabledViewModes.toString() : '' }
|
||||
hide-filters = { hideFilters.toString() }
|
||||
hide-hide-filters-button= { hideHideFiltersButton.toString() }
|
||||
hide-search = { hideSearch.toString() }
|
||||
|
|
|
@ -316,7 +316,7 @@
|
|||
placement: 'auto-start',
|
||||
popperClass: ['tainacan-tooltip', 'tooltip']
|
||||
}"
|
||||
class="ellipsed-text">
|
||||
class="ellipsed-name">
|
||||
{{ metadatum.name }}
|
||||
</span>
|
||||
</label>
|
||||
|
|
|
@ -126,11 +126,11 @@
|
|||
|
||||
color: var(--tainacan-white);
|
||||
|
||||
span:not(.ellipsed-text) {
|
||||
span:not(.ellipsed-name) {
|
||||
margin-right: 5px;
|
||||
margin-left: -5px;
|
||||
}
|
||||
.ellipsed-text {
|
||||
.ellipsed-name {
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
|
|
|
@ -687,7 +687,6 @@
|
|||
|
||||
<script>
|
||||
import FiltersTagsList from '../../../../admin/components/search/filters-tags-list.vue';
|
||||
import FiltersItemsList from '../../../../admin/components/search/filters-items-list.vue';
|
||||
import Pagination from '../../../../admin/components/search/pagination.vue'
|
||||
import AdvancedSearch from '../../../../admin/components/search/advanced-search.vue';
|
||||
import ExposersModal from '../../../../admin/components/modals/exposers-modal.vue';
|
||||
|
@ -698,7 +697,6 @@
|
|||
name: 'ThemeItemsPage',
|
||||
components: {
|
||||
FiltersTagsList,
|
||||
FiltersItemsList,
|
||||
Pagination,
|
||||
AdvancedSearch,
|
||||
ExposersModal
|
||||
|
@ -918,10 +916,6 @@
|
|||
});
|
||||
}
|
||||
|
||||
this.$eventBusSearch.$on('hasToPrepareMetadataAndFilters', () => {
|
||||
this.prepareMetadata();
|
||||
});
|
||||
|
||||
this.$eventBusSearch.$on('start-slideshow-from-item', (index) => {
|
||||
let currentQuery = this.$route.query;
|
||||
delete currentQuery['slideshow-from'];
|
||||
|
@ -1458,7 +1452,6 @@
|
|||
// $eventBusSearch
|
||||
this.$eventBusSearch.$off('isLoadingItems');
|
||||
this.$eventBusSearch.$off('hasFiltered');
|
||||
this.$eventBusSearch.$off('hasToPrepareMetadataAndFilters');
|
||||
|
||||
},
|
||||
}
|
||||
|
|
|
@ -27,32 +27,9 @@ import cssVars from 'css-vars-ponyfill';
|
|||
import qs from 'qs';
|
||||
import VueBlurHash from 'vue-blurhash';
|
||||
|
||||
// Filters
|
||||
import FilterNumeric from '../../../admin/components/filter-types/numeric/Numeric.vue';
|
||||
import FilterDate from '../../../admin/components/filter-types/date/Date.vue';
|
||||
import FilterSelectbox from '../../../admin/components/filter-types/selectbox/Selectbox.vue';
|
||||
import FilterAutocomplete from '../../../admin/components/filter-types/autocomplete/Autocomplete.vue';
|
||||
import FilterCheckbox from '../../../admin/components/filter-types/checkbox/Checkbox.vue';
|
||||
import FilterTaginput from '../../../admin/components/filter-types/taginput/Taginput.vue';
|
||||
import FilterTaxonomyCheckbox from '../../../admin/components/filter-types/taxonomy/Checkbox.vue';
|
||||
import FilterTaxonomyTaginput from '../../../admin/components/filter-types/taxonomy/Taginput.vue';
|
||||
import FilterDateInterval from '../../../admin/components/filter-types/date-interval/DateInterval.vue';
|
||||
import FilterNumericInterval from '../../../admin/components/filter-types/numeric-interval/NumericInterval.vue';
|
||||
import FilterNumericListInterval from '../../../admin/components/filter-types/numeric-list-interval/NumericListInterval.vue';
|
||||
|
||||
import TaincanFiltersList from '../../../admin/components/filter-types/tainacan-filter-item.vue';
|
||||
import ThemeItemsPage from './theme-search/theme-items-page.vue';
|
||||
import ThemeSearch from './theme.vue';
|
||||
|
||||
// View Modes
|
||||
import ViewModeTable from './theme-search/components/view-mode-table.vue';
|
||||
import ViewModeCards from './theme-search/components/view-mode-cards.vue';
|
||||
import ViewModeRecords from './theme-search/components/view-mode-records.vue';
|
||||
import ViewModeMasonry from './theme-search/components/view-mode-masonry.vue';
|
||||
import ViewModeSlideshow from './theme-search/components/view-mode-slideshow.vue';
|
||||
import ViewModeList from './theme-search/components/view-mode-list.vue';
|
||||
import ViewModeMap from './theme-search/components/view-mode-map.vue';
|
||||
|
||||
// Remaining imports
|
||||
import store from '../../../admin/js/store/store';
|
||||
import routerTheme from './theme-search/js/theme-router.js';
|
||||
|
@ -135,33 +112,49 @@ export default (element) => {
|
|||
}
|
||||
}
|
||||
|
||||
Vue.component('tainacan-filter-item', TaincanFiltersList);
|
||||
// Filters logic
|
||||
let possibleHideFilters = false;
|
||||
if ( blockElement.attributes['hide-filters'] != undefined ) {
|
||||
const hideFiltersValue = blockElement.attributes['hide-filters'].value;
|
||||
possibleHideFilters = ( hideFiltersValue == true || hideFiltersValue == 'true' || hideFiltersValue == '1' || hideFiltersValue == 1 ) ? true : false;
|
||||
}
|
||||
|
||||
/* Filters */
|
||||
Vue.component('tainacan-filter-numeric', FilterNumeric);
|
||||
Vue.component('tainacan-filter-date', FilterDate);
|
||||
Vue.component('tainacan-filter-selectbox', FilterSelectbox);
|
||||
Vue.component('tainacan-filter-autocomplete', FilterAutocomplete);
|
||||
Vue.component('tainacan-filter-checkbox', FilterCheckbox);
|
||||
Vue.component('tainacan-filter-taginput', FilterTaginput);
|
||||
Vue.component('tainacan-filter-taxonomy-checkbox', FilterTaxonomyCheckbox);
|
||||
Vue.component('tainacan-filter-taxonomy-taginput', FilterTaxonomyTaginput);
|
||||
Vue.component('tainacan-filter-date-interval', FilterDateInterval);
|
||||
Vue.component('tainacan-filter-numeric-interval', FilterNumericInterval);
|
||||
Vue.component('tainacan-filter-numeric-list-interval', FilterNumericListInterval);
|
||||
if ( !possibleHideFilters ) {
|
||||
import('../../../admin/components/search/filters-items-list.vue')
|
||||
.then(importedModule => Vue.component('filters-items-list', importedModule.default))
|
||||
.catch(error => console.log(error));
|
||||
}
|
||||
|
||||
/* Main page component */
|
||||
Vue.component('theme-items-page', ThemeItemsPage);
|
||||
Vue.component('theme-search', ThemeSearch);
|
||||
|
||||
// Oficial view modes
|
||||
Vue.component('view-mode-table', ViewModeTable);
|
||||
Vue.component('view-mode-cards', ViewModeCards);
|
||||
Vue.component('view-mode-records', ViewModeRecords);
|
||||
Vue.component('view-mode-masonry', ViewModeMasonry);
|
||||
Vue.component('view-mode-slideshow', ViewModeSlideshow);
|
||||
Vue.component('view-mode-list', ViewModeList);
|
||||
Vue.component('view-mode-map', ViewModeMap);
|
||||
// View Modes Logic
|
||||
const registeredViewModes =
|
||||
( tainacan_plugin && tainacan_plugin.registered_view_modes && tainacan_plugin.registered_view_modes.lenght ) ?
|
||||
tainacan_plugin.registered_view_modes :
|
||||
[ 'table', 'cards', 'records', 'masonry', 'slideshow', 'list', 'map' ];
|
||||
|
||||
// At first, we consider that all registered view modes are included.
|
||||
let possibleViewModes = registeredViewModes;
|
||||
if ( blockElement.attributes['enabled-view-modes'] != undefined )
|
||||
possibleViewModes = blockElement.attributes['enabled-view-modes'].value.split(',');
|
||||
|
||||
// View Mode settings
|
||||
let possibleDefaultViewMode = 'masonry';
|
||||
if ( blockElement.attributes['default-view-mode'] != undefined)
|
||||
possibleDefaultViewMode = blockElement.attributes['default-view-mode'].value;
|
||||
|
||||
if ( possibleViewModes.indexOf(possibleDefaultViewMode) < 0 )
|
||||
possibleViewModes.push(possibleDefaultViewMode);
|
||||
|
||||
// Logic for dynamic importing Tainacan oficial view modes only if they are necessary
|
||||
possibleViewModes.forEach(viewModeSlug => {
|
||||
if ( registeredViewModes.indexOf(viewModeSlug) >= 0 )
|
||||
import('./theme-search/components/view-mode-' + viewModeSlug + '.vue')
|
||||
.then(importedModule => Vue.component('view-mode-' + viewModeSlug, importedModule.default) )
|
||||
.catch(error => console.log(error));
|
||||
});
|
||||
|
||||
Vue.use(eventBusSearch, { store: store, router: routerTheme});
|
||||
|
||||
|
@ -215,18 +208,6 @@ export default (element) => {
|
|||
if (this.$el.attributes['taxonomy'] != undefined)
|
||||
this.taxonomy = this.$el.attributes['taxonomy'].value;
|
||||
|
||||
// View Mode settings
|
||||
if (this.$el.attributes['default-view-mode'] != undefined)
|
||||
this.defaultViewMode = this.$el.attributes['default-view-mode'].value;
|
||||
else
|
||||
this.defaultViewMode = 'cards';
|
||||
|
||||
if (this.$el.attributes['is-forced-view-mode'] != undefined)
|
||||
this.isForcedViewMode = new Boolean(this.$el.attributes['is-forced-view-mode'].value);
|
||||
|
||||
if (this.$el.attributes['enabled-view-modes'] != undefined)
|
||||
this.enabledViewModes = this.$el.attributes['enabled-view-modes'].value.split(',');
|
||||
|
||||
// Sorting options
|
||||
if (this.$el.attributes['default-order'] != undefined)
|
||||
this.defaultOrder = this.$el.attributes['default-order'].value;
|
||||
|
@ -239,9 +220,15 @@ export default (element) => {
|
|||
if (this.$el.attributes['default-orderby-type'] != undefined)
|
||||
this.defaultOrderByType = this.maybeConvertFromJSON(this.$el.attributes['default-orderby-type'].value);
|
||||
|
||||
// View modes settings
|
||||
if (this.$el.attributes['is-forced-view-mode'] != undefined)
|
||||
this.isForcedViewMode = new Boolean(this.$el.attributes['is-forced-view-mode'].value);
|
||||
|
||||
this.defaultViewMode = possibleDefaultViewMode;
|
||||
this.enabledViewModes = possibleViewModes;
|
||||
|
||||
// Options related to hidding elements
|
||||
if (this.$el.attributes['hide-filters'] != undefined)
|
||||
this.hideFilters = this.isParameterTrue('hide-filters');
|
||||
this.hideFilters = possibleHideFilters;
|
||||
if (this.$el.attributes['hide-hide-filters-button'] != undefined)
|
||||
this.hideHideFiltersButton = this.isParameterTrue('hide-hide-filters-button');
|
||||
if (this.$el.attributes['hide-search'] != undefined)
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<template>
|
||||
<li
|
||||
class="facet-list-item"
|
||||
:class="(!showImage ? 'facet-without-image' : '') + (nameInsideImage ? ' facet-with-name-inside-image' : '') + ((appendChildTerms && facet.total_children > 0) ? ' facet-term-with-children': '')">
|
||||
:class="(!showImage ? 'facet-without-image' : '') + (nameInsideImage ? ' facet-with-name-inside-image' : '') + (isCollapseInsteadOfLink(facet) ? ' facet-term-with-children': '')">
|
||||
<a
|
||||
:id="isNaN(facetId) ? facetId : 'facet-id-' + facetId"
|
||||
:href="(appendChildTerms && facet.total_children > 0) ? null : ((linkTermFacetsToTermPage && isMetadatumTypeTaxonomy) ? facet.term_url : facet.url)"
|
||||
@click="() => { (appendChildTerms && facet.total_children > 0) ? displayChildTerms(facetId) : null }"
|
||||
:href="isCollapseInsteadOfLink(facet) ? null : ((linkTermFacetsToTermPage && isMetadatumTypeTaxonomy) ? facet.term_url : facet.url)"
|
||||
@click="() => { isCollapseInsteadOfLink(facet) ? displayChildTerms(facetId) : null }"
|
||||
:style="{ fontSize: layout == 'cloud' && facet.total_items ? + (1 + (cloudRate/4) * Math.log(facet.total_items)) + 'em' : ''}">
|
||||
<img
|
||||
v-if="isMetadatumTypeTaxonomy"
|
||||
|
@ -45,7 +45,7 @@
|
|||
</template>
|
||||
</span>
|
||||
</div>
|
||||
<template v-if="appendChildTerms && facet.total_children > 0">
|
||||
<template v-if="appendChildTerms && facet.total_children > 0 && (!childFacetsObject[facet.id != undefined ? facet.id : facet.value] || childFacetsObject[facet.id != undefined ? facet.id : facet.value].facets.length)">
|
||||
<svg
|
||||
v-if="childFacetsObject[facetId] && childFacetsObject[facetId].visible"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
@ -154,6 +154,9 @@ export default {
|
|||
displayChildTerms(facetId) {
|
||||
this.$emit('on-display-child-terms', facetId)
|
||||
},
|
||||
isCollapseInsteadOfLink(facet) {
|
||||
return (this.appendChildTerms && facet.total_children > 0 && (!this.childFacetsObject[facet.id != undefined ? facet.id : facet.value] || this.childFacetsObject[facet.id != undefined ? facet.id : facet.value].facets.length) );
|
||||
},
|
||||
getSkeletonHeight() {
|
||||
switch(this.layout) {
|
||||
case 'grid':
|
||||
|
|
|
@ -133,6 +133,9 @@
|
|||
},
|
||||
"spacing": {
|
||||
"padding": true
|
||||
},
|
||||
"position": {
|
||||
"sticky": true
|
||||
}
|
||||
},
|
||||
"editorScript": "item-gallery",
|
||||
|
|
|
@ -413,9 +413,11 @@ export default function ({ attributes, setAttributes, className }) {
|
|||
}
|
||||
/>
|
||||
</PanelBody>
|
||||
</InspectorControls>
|
||||
<InspectorControls group="styles">
|
||||
<PanelBody
|
||||
title={__('Colors and Sizes', 'tainacan')}
|
||||
initialOpen={ false }
|
||||
title={__('Dimensions', 'tainacan')}
|
||||
initialOpen={ true }
|
||||
>
|
||||
<FontSizePicker
|
||||
fontSizes={ fontSizes }
|
||||
|
@ -425,7 +427,11 @@ export default function ({ attributes, setAttributes, className }) {
|
|||
setAttributes( { baseFontSize: newFontSize } );
|
||||
} }
|
||||
/>
|
||||
<HorizontalRule />
|
||||
</PanelBody>
|
||||
<PanelBody
|
||||
title={__('Colors', 'tainacan')}
|
||||
initialOpen={ true }
|
||||
>
|
||||
<BaseControl
|
||||
id="backgroundColorPicker"
|
||||
label={ __('Background color', 'tainacan')}
|
||||
|
|
|
@ -89,6 +89,9 @@
|
|||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.components-modal__header+div {
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -30,6 +30,15 @@ class ImporterTests extends TAINACAN_UnitTestCase {
|
|||
this->assertEquals( $collection->get_id(), $_SESSION['tainacan_importer'][$id]->collection->get_id() );
|
||||
}*/
|
||||
|
||||
public function __construct(){
|
||||
parent::__construct();
|
||||
@session_start();
|
||||
}
|
||||
|
||||
public function __destruct() {
|
||||
session_write_close();
|
||||
}
|
||||
|
||||
public function test_automapping_old_tainacan()
|
||||
{
|
||||
//$Tainacan_Items = \Tainacan\Repositories\Items::get_instance();
|
||||
|
|
Loading…
Reference in New Issue