{{ props.option.name }}
diff --git a/src/views/admin/js/filter-types-mixin.js b/src/views/admin/js/filter-types-mixin.js
index cdc048425..4eaddc400 100644
--- a/src/views/admin/js/filter-types-mixin.js
+++ b/src/views/admin/js/filter-types-mixin.js
@@ -304,14 +304,14 @@ export const dynamicFilterTypeMixin = {
sResults.push({
label: item.label,
value: item.value,
- img: item.thumbnail && item.thumbnail['tainacan-small'] && item.thumbnail['tainacan-small'][0] ? item.thumbnail['tainacan-small'][0] : (item.img ? item.img : ''),
+ img: item.thumbnail ? this.$thumbHelper.getSrc(item['thumbnail'], 'tainacan-small') : (item.img ? item.img : ''),
total_items: item.total_items
});
} else if (indexToIgnore < 0) {
opts.push({
label: item.label,
value: item.value,
- img: item.thumbnail && item.thumbnail['tainacan-small'] && item.thumbnail['tainacan-small'][0] ? item.thumbnail['tainacan-small'][0] : (item.img ? item.img : ''),
+ img: item.thumbnail ? this.$thumbHelper.getSrc(item['thumbnail'], 'tainacan-small') : (item.img ? item.img : ''),
total_items: item.total_items
});
}
@@ -320,14 +320,14 @@ export const dynamicFilterTypeMixin = {
sResults.push({
label: item.label,
value: item.value,
- img: item.thumbnail && item.thumbnail['tainacan-small'] && item.thumbnail['tainacan-small'][0] ? item.thumbnail['tainacan-small'][0] : (item.img ? item.img : ''),
+ img: item.thumbnail ? this.$thumbHelper.getSrc(item['thumbnail'], 'tainacan-small') : (item.img ? item.img : ''),
total_items: item.total_items
});
} else {
opts.push({
label: item.label,
value: item.value,
- img: item.thumbnail && item.thumbnail['tainacan-small'] && item.thumbnail['tainacan-small'][0] ? item.thumbnail['tainacan-small'][0] : (item.img ? item.img : ''),
+ img: item.thumbnail ? this.$thumbHelper.getSrc(item['thumbnail'], 'tainacan-small') : (item.img ? item.img : ''),
total_items: item.total_items
});
}
diff --git a/src/views/admin/js/main.js b/src/views/admin/js/main.js
index 336018236..e56313b8d 100644
--- a/src/views/admin/js/main.js
+++ b/src/views/admin/js/main.js
@@ -62,7 +62,16 @@ import store from './store/store'
import router from './router'
import eventBusSearch from './event-bus-search';
import eventBusTermsList from './event-bus-terms-list.js';
-import { I18NPlugin, UserPrefsPlugin, RouterHelperPlugin, ConsolePlugin, UserCapabilitiesPlugin, StatusHelperPlugin, CommentsStatusHelperPlugin } from './utilities';
+import {
+ I18NPlugin,
+ UserPrefsPlugin,
+ RouterHelperPlugin,
+ ConsolePlugin,
+ UserCapabilitiesPlugin,
+ ThumbnailHelperPlugin,
+ StatusHelperPlugin,
+ CommentsStatusHelperPlugin
+} from './utilities';
/* Registers Extra Vue Plugins passed to the window.tainacan_extra_plugins */
if (typeof window.tainacan_extra_plugins != "undefined") {
@@ -80,6 +89,7 @@ Vue.use(I18NPlugin);
Vue.use(UserPrefsPlugin);
Vue.use(RouterHelperPlugin);
Vue.use(UserCapabilitiesPlugin);
+Vue.use(ThumbnailHelperPlugin);
Vue.use(StatusHelperPlugin);
Vue.use(ConsolePlugin, {visual: false});
Vue.use(VueTheMask);
diff --git a/src/views/admin/js/utilities.js b/src/views/admin/js/utilities.js
index 43ee8ac94..8264c8960 100644
--- a/src/views/admin/js/utilities.js
+++ b/src/views/admin/js/utilities.js
@@ -352,6 +352,39 @@ UserCapabilitiesPlugin.install = function (Vue, options = {}) {
}
};
+// THUMBNAIL PLUGIN - Translates api path of thumbnails src to render placeholders and propoper sizes.
+export const ThumbnailHelperPlugin = {};
+ThumbnailHelperPlugin.install = function (Vue, options = {}) {
+
+ Vue.prototype.$thumbHelper = {
+ thumbPlaceholderPath: tainacan_plugin.base_url + '/assets/images/placeholder_square.png',
+ getSrc(thumbnail, tainacanSize, documentType) {
+
+ let wordpressSize = '';
+ switch(tainacanSize) {
+ case 'tainacan-medium-full':
+ wordpressSize = 'medium_large';
+ break;
+ case 'tainacan-medium':
+ wordpressSize = 'medium';
+ break;
+ case 'tainacan-small':
+ wordpressSize = 'thumbnail';
+ break;
+ default:
+ wordpressSize = 'thumbnail';
+ }
+
+ let thumbnailPlaceholder = '';
+ switch(documentType) {
+ default:
+ thumbnailPlaceholder = this.thumbPlaceholderPath;
+ }
+
+ return (thumbnail && thumbnail[tainacanSize]) ? thumbnail[tainacanSize][0] : ((thumbnail && thumbnail[wordpressSize]) ? thumbnail[wordpressSize][0] : thumbnailPlaceholder);
+ }
+ }
+};
// STATUS ICONS PLUGIN - Sets icon for status option
export const StatusHelperPlugin = {};
diff --git a/src/views/admin/pages/singles/item-page.vue b/src/views/admin/pages/singles/item-page.vue
index 755026138..92a2b5670 100644
--- a/src/views/admin/pages/singles/item-page.vue
+++ b/src/views/admin/pages/singles/item-page.vue
@@ -79,9 +79,9 @@
:size="178"
:file="{
media_type: 'image',
- thumbnails: { 'tainacan-medium': [ item.thumbnail['tainacan-medium'] ? item.thumbnail['tainacan-medium'][0] : item.thumbnail.medium[0] ] },
+ thumbnails: { 'tainacan-medium': [ $thumbHelper.getSrc(item['thumbnail'], 'tainacan-medium') ] },
title: $i18n.get('label_thumbnail'),
- description: `
`
+ description: `
`
}"/>
diff --git a/src/views/theme-search/components/view-mode-records.vue b/src/views/theme-search/components/view-mode-records.vue
index 0bf5ab100..f02ac3320 100644
--- a/src/views/theme-search/components/view-mode-records.vue
+++ b/src/views/theme-search/components/view-mode-records.vue
@@ -87,7 +87,7 @@
v-if="item.thumbnail != undefined">
+ :src="$thumbHelper.getSrc(item['thumbnail'], 'tainacan-medium-full')">
+ src="` + self.$thumbHelper.getSrc(slideItem['thumbnail'], 'tainacan-medium') + `">
`;
},
addSlidesBefore: 2,
diff --git a/src/views/theme-search/components/view-mode-table.vue b/src/views/theme-search/components/view-mode-table.vue
index 0483361aa..08ba86780 100644
--- a/src/views/theme-search/components/view-mode-table.vue
+++ b/src/views/theme-search/components/view-mode-table.vue
@@ -172,7 +172,7 @@
+ :src="$thumbHelper.getSrc(item['thumbnail'], 'tainacan-small')">
diff --git a/src/views/theme-search/js/theme-main.js b/src/views/theme-search/js/theme-main.js
index b40b04e7c..7ea0cec18 100644
--- a/src/views/theme-search/js/theme-main.js
+++ b/src/views/theme-search/js/theme-main.js
@@ -38,7 +38,12 @@ import ViewModeList from '../components/view-mode-list.vue';
import store from '../../admin/js/store/store';
import routerTheme from './theme-router.js';
import eventBusSearch from '../../admin/js/event-bus-search';
-import { I18NPlugin, UserPrefsPlugin, ConsolePlugin } from '../../admin/js/utilities';
+import {
+ I18NPlugin,
+ UserPrefsPlugin,
+ ConsolePlugin,
+ ThumbnailHelperPlugin
+} from '../../admin/js/utilities';
document.addEventListener("DOMContentLoaded", () => {
@@ -78,6 +83,7 @@ document.addEventListener("DOMContentLoaded", () => {
Vue.use(VueMasonry);
Vue.use(I18NPlugin);
Vue.use(UserPrefsPlugin);
+ Vue.use(ThumbnailHelperPlugin);
Vue.use(ConsolePlugin, {visual: false});
/* Registers Extra Vue Components passed to the window.tainacan_extra_components */
diff --git a/src/views/theme-search/pages/theme-items-page.vue b/src/views/theme-search/pages/theme-items-page.vue
index 59d619487..cb54019ae 100644
--- a/src/views/theme-search/pages/theme-items-page.vue
+++ b/src/views/theme-search/pages/theme-items-page.vue
@@ -1236,6 +1236,9 @@
.filters-menu {
display: none;
}
+ .metadata-alert {
+ position: absolute;
+ }
}
.advanced-search-criteria-title {