Merge branch 'feature/compount-metadata-type-refactor' of https://github.com/tainacan/tainacan into feature/compount-metadata-type-refactor

This commit is contained in:
vnmedeiros 2020-03-27 10:49:04 -03:00
commit a8b7229c54
95 changed files with 2649 additions and 2703 deletions

View File

@ -359,23 +359,23 @@
.wp-block-tainacan-search-bar.is-style-stylish #tainacan-search-bar-block button:hover {
background: transparent !important; }
.wp-block-tainacan-search-bar.is-style-stylish .search-bar-collection-header-container:not(.is-aligned-right):not(.is-aligned-left) .tainacan-search-container {
width: calc(100% - 4.1667% - 53px);
width: calc(100% - var(--tainacan-one-column) - 53px);
width: calc(100% - 4.1667vw - 53px);
bottom: calc(-50% + 38px);
position: absolute; }
.wp-block-tainacan-search-bar.is-style-stylish .search-bar-collection-header-container:not(.is-aligned-right):not(.is-aligned-left) .search-bar-collection-header-title {
margin-bottom: 26px; }
.wp-block-tainacan-search-bar.is-style-stylish .search-bar-collection-header-container.is-aligned-right .tainacan-search-container {
width: calc(100% - 4.1667% - 26px);
width: calc(100% - var(--tainacan-one-column) - 26px);
width: calc(100% - 4.1667vw - 26px);
top: calc(-50% + 26px);
right: calc(4.1667% + 26px);
right: calc(var(--tainacan-one-column) + 26px);
right: calc(4.1667vw + 26px);
position: absolute; }
.wp-block-tainacan-search-bar.is-style-stylish .search-bar-collection-header-container.is-aligned-left .tainacan-search-container {
width: calc(100% - 1em - 26px);
top: calc(-50% + 26px);
left: calc(4.1667% + 26px);
left: calc(var(--tainacan-one-column) + 26px);
left: calc(4.1667vw + 26px);
position: absolute; }
.wp-block-tainacan-search-bar.is-style-stylish .search-bar-collection-header-container .tainacan-search-container #tainacan-search-bar-block input#tainacan-search-bar-block_input {
@ -389,7 +389,7 @@
border-width: 3px !important; }
@media only screen and (max-width: 768px) {
.wp-block-tainacan-search-bar.is-style-stylish .search-bar-collection-header-container .tainacan-search-container {
width: calc(100% - 4.1667% - 53px) !important;
width: calc(100% - var(--tainacan-one-column) - 53px) !important;
width: calc(100% - 4.1667vw - 53px) !important;
bottom: calc(-50% + 38px) !important;
position: absolute !important; }
@ -410,7 +410,7 @@
flex-wrap: wrap;
align-items: center;
flex-grow: 2;
padding: 0.5em 4.1667%;
padding: 0.5em var(--tainacan-one-column);
padding: 0.5em 4.1667vw;
text-align: center;
text-decoration: none !important; }

File diff suppressed because one or more lines are too long

View File

@ -152,7 +152,7 @@ class Search_Engine {
$fields = implode(", ' || ', ", $search_query_fields);
foreach ( $terms as $term ) {
$esc_term = $wpdb->prepare("%s", $not_exact ? "%".$term."%" : $term);
$searchQuery .= "{$seperator}CONCAT( $fields ) LIKE $esc_term";
$searchQuery .= "{$seperator}CONCAT_WS( $fields ) LIKE $esc_term";
$seperator = ' OR ';
}
$searchQuery .= ')';

View File

@ -4,7 +4,7 @@ Tags: museums, libraries, archives, GLAM, collections, repository
Requires at least: 4.8
Tested up to: 5.3
Requires PHP: 5.6
Stable tag: 0.15.1
Stable tag: 0.15.2
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-3.0.html

View File

@ -4,7 +4,7 @@ Plugin Name: Tainacan
Plugin URI: https://tainacan.org/
Description: Open source, powerfull 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 respository platform.
Author: Tainacan.org
Version: 0.15.1
Version: 0.15.2
Text Domain: tainacan
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-3.0.html

View File

@ -82,8 +82,6 @@
<style lang="scss">
@import "./scss/_variables.scss";
.is-fullheight {
height: 100%;
margin-bottom: 0px;

View File

@ -940,11 +940,9 @@ export default {
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
@media screen and (min-width: 1024px) {
.column:last-of-type {
padding-left: $page-side-padding !important;
padding-left: var(--tainacan-one-column) !important;
}
}

View File

@ -21,7 +21,7 @@
</form>
</div>
<div
style="max-width: 4.6666667%;"
style="max-width: var(--tainacan-one-column);"
class="column is-gapless"/>
<div class="column is-gapless">
<b-field
@ -237,7 +237,7 @@
<style scoped>
.tainacan-form>.columns {
padding: 0 4.6666667%;
padding: 0 var(--tainacan-one-column);
}
</style>

View File

@ -308,10 +308,8 @@ export default {
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
form#filterEditForm {
padding: 1.5em $page-side-padding 0.5em $page-side-padding;
padding: 1.5em var(--tainacan-one-column) 0.5em var(--tainacan-one-column);
border-top: 1px solid var(--tainacan-gray2);
border-bottom: 1px solid var(--tainacan-gray2);
margin-top: 1.0em;

View File

@ -437,11 +437,11 @@ export default {
@import "../../scss/_variables.scss";
.columns.is-gapless {
padding-left: $page-side-padding;
padding-right: $page-side-padding;
padding-left: var(--tainacan-one-column);
padding-right: var(--tainacan-one-column);
.column:not(:first-child) {
margin-left: $page-side-padding;
margin-left: var(--tainacan-one-column);
}
}

View File

@ -612,8 +612,6 @@ export default {
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
.tainacan-page-title {
margin-bottom: 40px;
@ -716,7 +714,7 @@ export default {
.metadata-type {
border-bottom: 1px solid var(--tainacan-gray2);
padding: 15px 8.3333333%;
padding: 15px calc(2 * var(--tainacan-one-column));
cursor: pointer;
&:first-child {

View File

@ -332,7 +332,7 @@ export default {
objectType: this.$i18n.get('items'),
collectionID: this.collectionId
},
width: 'calc(100% - 8.333333333%)',
width: 'calc(100% - (2 * var(--tainacan-one-column)))',
trapFocus: true
});
},
@ -365,7 +365,6 @@ export default {
@import "../../scss/_variables.scss";
.page-container {
&>.tainacan-form {
@ -401,13 +400,13 @@ export default {
}
.source-file-upload {
width: 100%;
padding: 0.75em $page-side-padding;
padding: 0.75em var(--tainacan-one-column);
@include display-grid;
}
.document-list {
display: inline-block;
width: 100%;
padding: 1em 8.333333%;
padding: 1em calc(2 * var(--tainacan-one-column));
.document-item {
display: flex;
@ -502,7 +501,7 @@ export default {
}
.footer {
padding: 18px $page-side-padding;
padding: 18px var(--tainacan-one-column);
position: absolute;
bottom: 0;
z-index: 999999;

View File

@ -36,7 +36,7 @@
label-width="120px">
<div class="columns">
<div class="column is-5">
<!-- Hook for extra Form options -->
<template
v-if="formHooks != undefined &&
@ -361,7 +361,6 @@
class="form-hook-region"
v-html="formHooks['item']['end-left'].join('')"/>
</template>
</div>
<div class="column is-7">
@ -517,7 +516,7 @@
<div v-if="item != undefined && item.id != undefined">
<br>
<button
style="margin-left: calc(4.666667% + 12px)"
style="margin-left: calc(var(--tainacan-one-column) + 12px)"
type="button"
class="button is-secondary"
@click.prevent="attachmentMediaFrame.openFrame($event)"
@ -815,7 +814,7 @@ export default {
isUpdatingValues: false,
entityName: 'item',
activeTab: 0,
isLoadingAttachments: false,
isLoadingAttachments: false
}
},
computed: {
@ -1419,10 +1418,8 @@ export default {
<style lang="scss" scoped>
@import '../../scss/_variables.scss';
.page-container {
padding: 25px 0px;
padding: var(--tainacan-container-padding) 0px;
&>.tainacan-form {
margin-bottom: 110px;
@ -1433,7 +1430,7 @@ export default {
}
.tainacan-page-title {
padding: 0 $page-side-padding;
padding: 0 var(--tainacan-one-column);
margin-bottom: 32px;
display: flex;
flex-wrap: wrap;
@ -1463,12 +1460,12 @@ export default {
position: relative;
top: -2px;
}
a.back-link{
a.back-link {
font-weight: 500;
float: right;
margin-top: 5px;
}
hr{
hr {
margin: 3px 0px 4px 0px;
height: 1px;
background-color: var(--tainacan-secondary);
@ -1477,13 +1474,13 @@ export default {
}
.tainacan-form > .columns {
margin-left: $page-side-padding;
margin-right: $page-side-padding;
margin-left: var(--tainacan-one-column);
margin-right: var(--tainacan-one-column);
}
.column.is-5 {
padding-left: $page-side-padding;
padding-right: $page-side-padding;
padding-left: var(--tainacan-one-column);
padding-right: var(--tainacan-one-column);
@media screen and (max-width: 769px) {
max-width: 100%;
@ -1491,7 +1488,7 @@ export default {
}
.column.is-7 {
padding-left: 0;
padding-right: $page-side-padding;
padding-right: var(--tainacan-one-column);
.columns {
flex-wrap: wrap;
@ -1507,7 +1504,7 @@ export default {
}
@media screen and (max-width: 769px) {
padding-left: $page-side-padding;
padding-left: var(--tainacan-one-column);
max-width: 100%;
}
}
@ -1535,7 +1532,7 @@ export default {
.section-box {
background-color: var(--tainacan-background-color);
padding: 0 $page-side-padding 0 0;
padding: 0 var(--tainacan-one-column) 0 0;
margin-top: 14px;
margin-bottom: 32px;
@ -1641,7 +1638,7 @@ export default {
}
.footer {
padding: 18px $page-side-padding;
padding: 18px var(--tainacan-one-column);
position: absolute;
bottom: 0;
z-index: 999999;

View File

@ -111,7 +111,6 @@
<help-button
:title="$i18n.getHelperTitle('metadata', 'display')"
:message="$i18n.getHelperMessage('metadata', 'display')"/>
</label>
<b-field>
@ -386,10 +385,8 @@
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
form#metadatumEditForm.inCollapse {
padding: 1.5em $page-side-padding 0.5em $page-side-padding;
padding: 1.5em var(--tainacan-one-column) 0.5em var(--tainacan-one-column);
border-top: 1px solid var(--tainacan-gray2);
border-bottom: 1px solid var(--tainacan-gray2);
margin-top: 1.0em;

View File

@ -520,8 +520,6 @@
</script>
<style lang="scss" scoped>
@import '../../scss/_variables.scss';
.tab-content {
overflow: visible !important;
}
@ -536,7 +534,7 @@
margin-bottom: 76px;
}
.tainacan-form .column {
padding: 1em $page-side-padding;
padding: 1em var(--tainacan-one-column);
}
.tainacan-form .column:last-of-type {
padding-left: 0;

View File

@ -457,8 +457,6 @@
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
.column {
padding: 0;
&.is-narrow {

View File

@ -8,7 +8,7 @@
:data="options"
expanded
:loading="isLoadingOptions"
@input="search"
@input="($event) => { resetPage(); search($event); }"
field="label"
@select="onSelect"
clearable

View File

@ -14,6 +14,7 @@
<input
v-model="selected"
:value="option.value"
@input="resetPage()"
type="checkbox">
<span class="check" />
<span class="control-label">

View File

@ -5,7 +5,7 @@
:placeholder="$i18n.get('label_selectbox_init')"
v-model="dateInit"
@focus="isTouched = true"
@input="validadeValues()"
@input="($event) => { resetPage(); validadeValues($event) }"
editable
:trap-focus="false"
:date-formatter="(date) => dateFormatter(date)"

View File

@ -2,7 +2,7 @@
<div class="date-filter-container">
<b-dropdown
:mobile-modal="true"
@input="onChangeComparator($event)"
@input="($event) => { resetPage(); onChangeComparator($event) }"
aria-role="list"
trap-focus>
<button
@ -72,7 +72,7 @@
:aria-labelledby="'filter-label-id-' + filter.id"
:placeholder="$i18n.get('instruction_select_a_date')"
v-model="value"
@input="emit()"
@input="($event) => { resetPage(); emit($event) }"
editable
:trap-focus="false"
:date-formatter="(date) => dateFormatter(date)"

View File

@ -3,7 +3,7 @@
<b-numberinput
:aria-labelledby="'filter-label-id-' + filter.id"
size="is-small"
@input="validadeValues()"
@input="($event) => { resetPage(); validadeValues($event) }"
:step="filterTypeOptions.step"
v-model="valueInit"
/>
@ -15,7 +15,7 @@
<b-numberinput
:aria-labelledby="'filter-label-id-' + filter.id"
size="is-small"
@input="validadeValues()"
@input="($event) => { resetPage(); validadeValues($event) }"
:step="filterTypeOptions.step"
v-model="valueEnd"/>

View File

@ -169,8 +169,7 @@
</script>
<style scoped lang="scss">
@import '../../scss/_variables.scss';
.options-input {
display: flex;
flex-wrap: wrap;

View File

@ -3,7 +3,7 @@
<b-select
expanded
:placeholder="$i18n.get('instruction_select_a_interval')"
@input="changeInterval"
@input="($event) => { resetPage; changeInterval($event) }"
v-model="selectedInterval">
<option value="">
{{ $i18n.get('label_selectbox_init') }}...

View File

@ -2,7 +2,7 @@
<div class="numeric-filter-container">
<b-dropdown
:mobile-modal="true"
@input="onChangeComparator($event)"
@input="($event) => { resetPage(); onChangeComparator($event) }"
aria-role="list"
trap-focus>
<button
@ -64,7 +64,7 @@
:aria-labelledby="'filter-label-id-' + filter.id"
size="is-small"
:step="Number(filterTypeOptions.step)"
@input="emit()"
@input="($event) => { resetPage($event); emit($event); }"
v-model="value"/>
</div>
</template>

View File

@ -6,7 +6,7 @@
v-if="!isLoadingOptions"
:value="selected"
:aria-labelledby="'filter-label-id-' + filter.id"
@input="onSelect($event)"
@input="($event) => { resetPage(); onSelect($event) }"
:placeholder="$i18n.get('label_selectbox_init')"
expanded>
<option value="">{{ $i18n.get('label_selectbox_init') }}...</option>

View File

@ -11,7 +11,7 @@
:remove-on-keys="[]"
field="label"
attached
@input="onSelect"
@input="($event) => { resetPage(); onSelect($event) }"
@typing="search"
:aria-close-label="$i18n.get('remove_value')"
:aria-labelledby="'filter-label-id-' + filter.id"

View File

@ -91,7 +91,6 @@
</script>
<style lang="scss">
@import "../../scss/_variables.scss";
.filter-item-forms {

View File

@ -20,6 +20,7 @@
class="b-checkbox checkbox is-small">
<input
v-model="selected"
@input="resetPage"
:value="option.value"
type="checkbox">
<span class="check" />
@ -78,7 +79,6 @@
const isEqual = (newVal.length == oldVal.length) && newVal.every((element, index) => {
return element === oldVal[index];
});
if (!isEqual)
this.onSelect();
},
@ -257,7 +257,8 @@
this.$emit('sendValuesToTags', { label: onlyLabels, taxonomy: this.taxonomy, value: this.selected });
},
onSelect(){
onSelect() {
this.$emit('input', {
filter: 'checkbox',
taxonomy: this.taxonomy,
@ -287,7 +288,7 @@
this.loadOptions();
}
},
width: 'calc(100% - 16.6666%)',
width: 'calc(100% - (4 * var(--tainacan-one-column)))',
trapFocus: true
});
},

View File

@ -15,7 +15,7 @@
:aria-labelledby="'filter-label-id-' + filter.id"
:class="{'has-selected': selected != undefined && selected != []}"
@typing="search"
@input="onSelect"
@input="($event) => { resetPage(); onSelect($event) }"
:placeholder="$i18n.get('info_type_to_add_terms')"
check-infinite-scroll
@infinite-scroll="searchMore">

View File

@ -144,7 +144,6 @@ export default {
</script>
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
// Term Item
.term-item {

View File

@ -270,7 +270,6 @@ export default {
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
@import "../../scss/_collection-home-cards.scss";
.new-collection-menu {

View File

@ -485,8 +485,6 @@ export default {
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
.selection-control {
padding: 6px 0px 0px 12px;

File diff suppressed because it is too large Load Diff

View File

@ -1042,7 +1042,7 @@ export default {
objectType: this.$i18n.get('items'),
collectionID: this.$route.params.collectionId,
},
width: 'calc(100% - 8.333333333%)',
width: 'calc(100% - (2 * var(--tainacan-one-column)))',
trapFocus: true
});
},

View File

@ -1,979 +0,0 @@
<template>
<div
:style="{ height: activeMetadatumList.length <= 0 && !isLoadingMetadata ? 'auto' : 'calc(100vh - 6px - ' + columnsTopY + 'px)'}"
class="columns"
ref="metadataEditionPageColumns">
<b-loading :active.sync="isLoadingMetadatumTypes"/>
<div class="column">
<section
v-if="activeMetadatumList.length <= 0 && !isLoadingMetadata"
class="field is-grouped-centered section">
<div class="content has-text-gray has-text-centered">
<p>
<span class="icon is-large">
<i class="tainacan-icon tainacan-icon-36px tainacan-icon-metadata"/>
</span>
</p>
<p>{{ $i18n.get('info_there_is_no_metadatum' ) }}</p>
<p>{{ $i18n.get('info_create_metadata' ) }}</p>
</div>
</section>
<draggable
v-model="activeMetadatumList"
class="active-metadata-area"
@change="handleChange($event)"
:group="{ name:'metadata', pull: false, put: true }"
:sort="(openedMetadatumId == '' || openedMetadatumId == undefined) && !isRepositoryLevel"
:handle="'.handle'"
ghost-class="sortable-ghost"
chosen-class="sortable-chosen"
filter="not-sortable-item"
:animation="250">
<div
v-for="(metadatum, index) in activeMetadatumList.filter((meta) => meta != undefined && meta.parent == 0)"
:key="metadatum.id">
<div
class="active-metadatum-item"
:class="{
'not-sortable-item': isRepositoryLevel || metadatum.id == undefined || openedMetadatumId != '' || isUpdatingMetadataOrder,
'not-focusable-item': openedMetadatumId == metadatum.id,
'disabled-metadatum': metadatum.enabled == false,
'inherited-metadatum': metadatum.collection_id != collectionId || isRepositoryLevel,
'child-metadatum': metadatum.parent > 0
}">
<div class="handle">
<span
:style="{ opacity: !(isRepositoryLevel || metadatum.id == undefined || openedMetadatumId != '' || isUpdatingMetadataOrder) ? '1.0' : '0.0' }"
v-tooltip="{
content: isRepositoryLevel || metadatum.id == undefined || openedMetadatumId != '' || isUpdatingMetadataOrder ? $i18n.get('info_not_allowed_change_order_metadata') : $i18n.get('instruction_drag_and_drop_metadatum_sort'),
autoHide: true,
classes: ['tooltip', isRepositoryLevel ? 'repository-tooltip' : ''],
placement: 'auto-start'
}"
class="icon grip-icon">
<i class="tainacan-icon tainacan-icon-18px tainacan-icon-drag"/>
</span>
<span
v-tooltip="{
content: (metadatum.collection_id == 'default') || isRepositoryLevel ? $i18n.get('label_repository_filter') : $i18n.get('label_collection_filter'),
autoHide: true,
classes: ['tooltip', isRepositoryLevel ? 'repository-tooltip' : ''],
placement: 'auto-start'
}"
class="icon icon-level-identifier">
<i
:class="{
'tainacan-icon-collections': (metadatum.collection_id != 'default' && !isRepositoryLevel),
'tainacan-icon-repository': (metadatum.collection_id == 'default') || isRepositoryLevel,
'has-text-turquoise5': metadatum.enabled && (metadatum.collection_id != 'default' && !isRepositoryLevel),
'has-text-blue5': metadatum.enabled && (metadatum.collection_id == 'default' || isRepositoryLevel),
'has-text-gray3': !metadatum.enabled
}"
class="tainacan-icon" />
</span>
<span
class="metadatum-name"
:class="{'is-danger': formWithErrors == metadatum.id }">
{{ metadatum.name }}
</span>
<span
v-if="metadatum.id != undefined && metadatum.metadata_type_object"
class="label-details">
({{ metadatum.metadata_type_object.name }})
<em v-if="metadatum.collection_id != collectionId">{{ $i18n.get('label_inherited') }}</em>
<em
v-if="metadatum.metadata_type_object.core &&
metadatum.metadata_type_object.related_mapped_prop == 'title'">
{{ $i18n.get('label_core_title') }}
</em>
<em
v-if="metadatum.metadata_type_object.core &&
metadatum.metadata_type_object.related_mapped_prop == 'description'">
{{ $i18n.get('label_core_description') }}
</em>
<span
class="not-saved"
v-if="(editForms[metadatum.id] != undefined && editForms[metadatum.id].saved != true) || metadatum.status == 'auto-draft'">
{{ $i18n.get('info_not_saved') }}
</span>
</span>
<span
class="loading-spinner"
v-if="metadatum.id == undefined"/>
<span
class="controls"
v-if="metadatum.id !== undefined">
<b-switch
v-if="!isRepositoryLevel"
:disabled="isUpdatingMetadataOrder"
size="is-small"
:value="metadatum.enabled"
@input="onChangeEnable($event, index)"/>
<a
v-if="metadatum.current_user_can_edit"
:style="{ visibility:
metadatum.collection_id != collectionId
? 'hidden' : 'visible'
}"
@click.prevent="toggleMetadatumEdition(metadatum.id)">
<span
v-tooltip="{
content: $i18n.get('edit'),
autoHide: true,
classes: ['tooltip', isRepositoryLevel ? 'repository-tooltip' : ''],
placement: 'auto-start'
}"
class="icon">
<i class="tainacan-icon tainacan-icon-1-25em tainacan-icon-edit"/>
</span>
</a>
<a
v-if="metadatum.current_user_can_delete"
:style="{ visibility:
metadatum.collection_id != collectionId ||
metadatum.metadata_type_object.related_mapped_prop == 'title' ||
metadatum.metadata_type_object.related_mapped_prop == 'description'
? 'hidden' : 'visible'
}"
@click.prevent="removeMetadatum(metadatum)">
<span
v-tooltip="{
content: $i18n.get('delete'),
autoHide: true,
classes: ['tooltip', isRepositoryLevel ? 'repository-tooltip' : ''],
placement: 'auto-start'
}"
class="icon">
<i class="tainacan-icon tainacan-icon-1-25em tainacan-icon-delete"/>
</span>
</a>
</span>
</div>
<transition name="form-collapse">
<div v-if="openedMetadatumId == metadatum.id">
<metadatum-edition-form
:collection-id="collectionId"
:is-repository-level="isRepositoryLevel"
@onEditionFinished="onEditionFinished()"
@onEditionCanceled="onEditionCanceled()"
@onErrorFound="formWithErrors = metadatum.id"
:index="index"
:original-metadatum="metadatum"
:edited-metadatum="editForms[metadatum.id]"/>
</div>
</transition>
</div>
<child-metadata-list
v-if="metadatum.metadata_type_object && metadatum.metadata_type_object.component == 'tainacan-compound'"
:parent.sync="metadatum"
:is-repository-level="isRepositoryLevel" />
</div>
</draggable>
</div>
<div
v-if="(isRepositoryLevel && $userCaps.hasCapability('tnc_rep_edit_metadata')) || !isRepositoryLevel"
class="column available-metadata-area" >
<div class="field">
<h3 class="label has-text-secondary">{{ $i18n.get('label_available_metadata_types') }}</h3>
<draggable
v-model="availableMetadatumList"
:sort="false"
:group="{ name:'metadata', pull: 'clone', put: false, revertClone: true }"
drag-class="sortable-drag">
<div
:id="metadatum.component"
@click.prevent="addMetadatumViaButton(metadatum)"
class="available-metadatum-item"
:class="{ 'hightlighted-metadatum' : hightlightedMetadatum == metadatum.name, 'inherited-metadatum': isRepositoryLevel }"
v-for="(metadatum, index) in availableMetadatumList"
:key="index">
<span
v-tooltip="{
content: $i18n.get('instruction_click_or_drag_metadatum_create'),
autoHide: true,
classes: ['tooltip', isRepositoryLevel ? 'repository-tooltip' : ''],
placement: 'auto-start'
}"
class="icon grip-icon">
<i class="tainacan-icon tainacan-icon-18px tainacan-icon-drag"/>
</span>
<span class="metadatum-name">
{{ metadatum.name }}
<span
v-tooltip.top="{
classes: ['metadata-type-preview-tooltip'],
content: getPreviewTemplateContent(metadatum),
html: true
}"
class="icon preview-help-icon has-text-secondary">
<i class="tainacan-icon tainacan-icon-help"/>
</span>
</span>
<span
class="loading-spinner"
v-if="hightlightedMetadatum == metadatum.name"/>
</div>
</draggable>
</div>
</div>
</div>
</template>
<script>
import { mapActions, mapGetters } from 'vuex';
import MetadatumEditionForm from './../edition/metadatum-edition-form.vue';
import ChildMetadataList from '../metadata-types/compound/child-metadata-list.vue';
import CustomDialog from '../other/custom-dialog.vue';
export default {
name: 'MetadataList',
components: {
MetadatumEditionForm,
ChildMetadataList
},
props: {
isRepositoryLevel: Boolean
},
data(){
return {
collectionId: '',
isLoadingMetadatumTypes: true,
isLoadingMetadata: false,
isUpdatingMetadataOrder: false,
openedMetadatumId: '',
formWithErrors: '',
hightlightedMetadatum: '',
editForms: {},
columnsTopY: 0
}
},
computed: {
availableMetadatumList: {
get() {
return this.getMetadatumTypes();
},
set(value) {
return this.updateMetadatumTypes(value);
}
},
activeMetadatumList: {
get() {
return this.getMetadata();
},
set(value) {
this.updateMetadata(value);
}
}
},
watch: {
'$route.query': {
handler(newQuery) {
if (newQuery.edit != undefined) {
let existingMetadataIndex = this.activeMetadatumList.findIndex((metadatum) => metadatum && (metadatum.id == newQuery.edit));
if (existingMetadataIndex >= 0)
this.editMetadatum(this.activeMetadatumList[existingMetadataIndex])
}
},
immediate: true
}
},
beforeRouteLeave ( to, from, next ) {
let hasUnsavedForms = false;
for (let editForm in this.editForms) {
if (!this.editForms[editForm].saved)
hasUnsavedForms = true;
}
if ((this.openedMetadatumId != '' && this.openedMetadatumId != undefined) || hasUnsavedForms ) {
this.$buefy.modal.open({
parent: this,
component: CustomDialog,
props: {
icon: 'alert',
title: this.$i18n.get('label_warning'),
message: this.$i18n.get('info_warning_metadata_not_saved'),
onConfirm: () => {
this.onEditionCanceled();
next();
},
},
trapFocus: true
});
} else {
next();
}
},
mounted() {
if (!this.isRepositoryLevel)
this.$root.$emit('onCollectionBreadCrumbUpdate', [{ path: '', label: this.$i18n.get('metadata') }]);
this.$nextTick(() => {
this.columnsTopY = this.$refs.metadataEditionPageColumns ? this.$refs.metadataEditionPageColumns.getBoundingClientRect().top : 0;
});
this.cleanMetadata();
this.isLoadingMetadatumTypes = true;
this.fetchMetadatumTypes()
.then(() => {
this.isLoadingMetadatumTypes = false;
})
.catch(() => {
this.isLoadingMetadatumTypes = false;
});
this.refreshMetadata();
},
beforeDestroy() {
// Cancels previous Request
if (this.metadataSearchCancel != undefined)
this.metadataSearchCancel.cancel('Metadata search Canceled.');
},
methods: {
...mapActions('metadata', [
'fetchMetadatumTypes',
'updateMetadatumTypes',
'fetchMetadata',
'sendMetadatum',
'deleteMetadatum',
'updateMetadata',
'updateCollectionMetadataOrder',
'cleanMetadata',
]),
...mapGetters('metadata',[
'getMetadatumTypes',
'getMetadata',
]),
handleChange(event) {
if (event.added) {
this.addNewMetadatum(event.added.element, event.added.newIndex);
} else if (event.removed) {
this.removeMetadatum(event.removed.element);
} else if (event.moved) {
if (!this.isRepositoryLevel)
this.updateMetadataOrder();
}
},
updateMetadataOrder() {
let metadataOrder = [];
for (let metadatum of this.activeMetadatumList)
if (metadatum != undefined)
metadataOrder.push({ 'id': metadatum.id, 'enabled': metadatum.enabled });
this.isUpdatingMetadataOrder = true;
this.updateCollectionMetadataOrder({ collectionId: this.collectionId, metadataOrder: metadataOrder })
.then(() => this.isUpdatingMetadataOrder = false)
.catch(() => this.isUpdatingMetadataOrder = false);
},
onChangeEnable($event, index) {
let metadataOrder = [];
for (let metadatum of this.activeMetadatumList)
if (metadatum != undefined)
metadataOrder.push({'id': metadatum.id, 'enabled': metadatum.enabled});
metadataOrder[index].enabled = $event;
this.isUpdatingMetadataOrder = true;
this.updateCollectionMetadataOrder({ collectionId: this.collectionId, metadataOrder: metadataOrder })
.then(() => this.isUpdatingMetadataOrder = false)
.catch(() => this.isUpdatingMetadataOrder = false);
},
addMetadatumViaButton(metadatumType) {
let lastIndex = this.activeMetadatumList.length;
this.addNewMetadatum(metadatumType, lastIndex);
// Higlights the clicker metadatum
this.hightlightedMetadatum = metadatumType.name;
},
addNewMetadatum(newMetadatum, newIndex) {
this.sendMetadatum({
collectionId: this.collectionId,
name: newMetadatum.name,
metadatumType: newMetadatum.className,
status: 'auto-draft',
isRepositoryLevel: this.isRepositoryLevel,
newIndex: newIndex,
parent: '0'
})
.then((metadatum) => {
if (!this.isRepositoryLevel)
this.updateMetadataOrder();
this.toggleMetadatumEdition(metadatum.id)
this.hightlightedMetadatum = '';
})
.catch((error) => {
this.$console.error(error);
});
},
removeMetadatum(removedMetadatum) {
this.$buefy.modal.open({
parent: this,
component: CustomDialog,
props: {
icon: 'alert',
title: this.$i18n.get('label_warning'),
message: this.$i18n.get('info_warning_metadatum_delete'),
onConfirm: () => {
this.deleteMetadatum({ collectionId: this.collectionId, metadatumId: removedMetadatum.id, isRepositoryLevel: this.isRepositoryLevel})
.then(() => {
if (!this.isRepositoryLevel)
this.updateMetadataOrder();
else
this.$root.$emit('metadatumUpdated', this.isRepositoryLevel);
})
.catch(() => {
this.$console.log("Error deleting metadatum.")
});
}
},
trapFocus: true
});
},
toggleMetadatumEdition(metadatumId) {
// Closing collapse
if (this.openedMetadatumId == metadatumId) {
this.openedMetadatumId = '';
this.$router.push({ query: {}});
// Opening collapse
} else {
this.$router.push({ query: { edit: metadatumId}})
}
},
editMetadatum(metadatum) {
this.openedMetadatumId = metadatum.id;
// First time opening
if (this.editForms[this.openedMetadatumId] == undefined) {
this.editForms[this.openedMetadatumId] = JSON.parse(JSON.stringify(metadatum));
this.editForms[this.openedMetadatumId].saved = true;
// Metadatum inserted now
if (this.editForms[this.openedMetadatumId].status == 'auto-draft') {
this.editForms[this.openedMetadatumId].status = 'publish';
this.editForms[this.openedMetadatumId].saved = false;
}
}
},
onEditionFinished() {
this.formWithErrors = '';
delete this.editForms[this.openedMetadatumId];
this.openedMetadatumId = '';
this.$router.push({ query: {}});
},
onEditionCanceled() {
this.formWithErrors = '';
delete this.editForms[this.openedMetadatumId];
this.openedMetadatumId = '';
this.$router.push({ query: {}});
},
refreshMetadata() {
this.isLoadingMetadata = true;
// Cancels previous Request
if (this.metadataSearchCancel != undefined)
this.metadataSearchCancel.cancel('Metadata search Canceled.');
if (this.isRepositoryLevel)
this.collectionId = 'default';
else
this.collectionId = this.$route.params.collectionId;
this.fetchMetadata({
collectionId: this.collectionId,
isRepositoryLevel: this.isRepositoryLevel,
isContextEdit: true,
includeDisabled: true,
parent: '0'
}).then((resp) => {
resp.request
.then(() => {
this.isLoadingMetadata = false;
// Checks URL as router watcher would not wait for list to load
if (this.$route.query.edit != undefined) {
let existingMetadataIndex = this.activeMetadatumList.findIndex((metadatum) => metadatum.id == this.$route.query.edit);
if (existingMetadataIndex >= 0)
this.editMetadatum(this.activeMetadatumList[existingMetadataIndex]);
}
})
.catch(() => {
this.isLoadingMetadata = false;
});
// Search Request Token for cancelling
this.metadataSearchCancel = resp.source;
})
.catch(() => this.isLoadingMetadata = false);
},
getPreviewTemplateContent(metadatum) {
return `<div class="metadata-type-preview tainacan-form">
<span class="metadata-type-label">` + this.$i18n.get('label_metadatum_type_preview') + `</span>
<div class="field">
<span class="collapse-handle">
<span class="icon">
<i class="has-text-secondary tainacan-icon tainacan-icon-1-25em tainacan-icon-arrowdown"></i>
</span>
<label class="label has-tooltip">`
+ metadatum.name +
`</label>
</span>
<div>` + metadatum.preview_template + `</div>
</div>
</div>`;
}
}
}
</script>
<style lang="scss">
@import "../../scss/_variables.scss";
.metadata-list-page {
padding-bottom: 0;
.tainacan-page-title {
margin-bottom: 32px;
display: flex;
flex-wrap: wrap;
align-items: flex-end;
justify-content: space-between;
h1, h2 {
font-size: 1.25em;
font-weight: 500;
color: var(--tainacan-heading-color);
display: inline-block;
width: 80%;
flex-shrink: 1;
flex-grow: 1;
}
a.back-link{
font-weight: 500;
float: right;
margin-top: 5px;
}
hr{
margin: 3px 0px 4px 0px;
height: 1px;
background-color: var(--tainacan-secondary);
width: 100%;
}
}
.b-tabs .tab-content {
overflow: visible;
min-height: 300px;
}
.column {
overflow-x: hidden;
overflow-y: auto;
&>section.field {
position: absolute;
}
&:not(.available-metadata-area){
margin-right: $page-side-padding;
flex-grow: 2;
@media screen and (max-width: 769px) {
margin-right: 0;
}
}
}
.page-title {
border-bottom: 1px solid var(--tainacan-secondary);
margin: 1em 0em 2.0em 0em;
h2 {
color: var(--tainacan-blue5);
font-weight: 500;
}
}
.loading-spinner {
animation: spinAround 500ms infinite linear;
border: 2px solid var(--tainacan-gray2);
border-radius: 290486px;
border-right-color: transparent;
border-top-color: transparent;
content: "";
display: inline-block;
height: 1em;
width: 1em;
}
.active-metadata-area {
font-size: 0.875em;
margin-right: 0.8em;
margin-left: -0.8em;
padding-right: 3em;
min-height: 330px;
@media screen and (max-width: 769px) {
min-height: 45px;
margin: 0;
padding-right: 0em;
}
@media screen and (max-width: 1216px) {
padding-right: 1em;
}
&.metadata-area-receive {
border: 1px dashed gray;
}
.collapse {
display: initial;
}
.active-metadatum-item {
background-color: var(--tainacan-white);
padding: 0.7em 0.9em;
margin: 4px;
min-height: 40px;
display: block;
position: relative;
cursor: grab;
opacity: 1 !important;
&>.field, form {
background-color: var(--tainacan-white) !important;
}
.handle {
padding-right: 6em;
white-space: nowrap;
display: flex;
}
.grip-icon {
color: var(--tainacan-gray3);
position: relative;
}
.metadatum-name {
text-overflow: ellipsis;
overflow-x: hidden;
white-space: nowrap;
font-weight: bold;
margin-left: 0.4em;
margin-right: 0.4em;
&.is-danger {
color: var(--tainacan-danger) !important;
}
}
.label-details {
font-weight: normal;
color: var(--tainacan-gray3);
}
.not-saved {
font-style: italic;
font-weight: bold;
color: var(--tainacan-danger);
margin-left: 0.5em;
}
.controls {
font-size: 0.875em;
position: absolute;
right: 5px;
top: 10px;
.switch {
position: relative;
bottom: 1px;
}
.icon {
bottom: 1px;
position: relative;
i, i:before { font-size: 1.25em; }
}
}
&.not-sortable-item,
&.not-sortable-item:hover {
cursor: default;
background-color: var(--tainacan-white) !important;
}
&.not-focusable-item, &.not-focusable-item:hover {
cursor: default;
.metadatum-name {
color: var(--tainacan-secondary);
}
}
&.disabled-metadatum {
color: var(--tainacan-gray3);
}
}
.active-metadatum-item:hover:not(.not-sortable-item) {
background-color: var(--tainacan-secondary);
border-color: var(--tainacan-secondary);
color: var(--tainacan-white) !important;
&>.field, form {
background-color: var(--tainacan-white) !important;
}
.label-details, .icon, .not-saved, .icon-level-identifier>i {
color: var(--tainacan-white) !important;
}
.grip-icon {
color: var(--tainacan-white);
}
.switch.is-small {
input[type="checkbox"] + .check {
background-color: var(--tainacan-secondary) !important;
border: 1.5px solid white !important;
&::before { background-color: var(--tainacan-white) !important; }
}
input[type="checkbox"]:checked + .check {
border: 1.5px solid white !important;
&::before { background-color: var(--tainacan-white) !important; }
}
&:hover input[type="checkbox"] + .check {
border: 1.5px solid white !important;
background-color: var(--tainacan-secondary) !important;
}
}
}
.sortable-ghost {
border: 1px dashed var(--tainacan-gray2);
background: var(--tainacan-white);
display: block;
padding: 0.7em 0.9em;
margin: 4px;
height: 40px;
position: relative;
.grip-icon {
color: var(--tainacan-white);
}
}
}
.available-metadata-area {
padding: 10px 0px 10px 10px;
margin: 0;
max-width: 500px;
min-width: 20.8333333%;
font-size: 0.875em;
@media screen and (max-width: 769px) {
max-width: 100%;
padding: 10px;
h3 {
margin: 1em 0em 1em 0em !important;
}
.available-metadatum-item::before,
.available-metadatum-item::after {
display: none !important;
}
}
h3 {
margin: 0.2em 0em 1em 0em;
font-weight: 500;
}
.available-metadatum-item {
padding: 0.6em;
margin: 4px 4px 4px 1.2em;
background-color: var(--tainacan-white);
cursor: pointer;
left: 0;
height: 40px;
position: relative;
border: 1px solid var(--tainacan-gray2);
border-radius: 1px;
transition: left 0.2s ease;
.grip-icon {
color: var(--tainacan-gray3);
top: -6px;
position: relative;
display: inline-block;
}
.icon {
position: relative;
bottom: 1px;
}
.preview-help-icon {
position: absolute;
top: 6px;
}
.metadatum-name {
text-overflow: ellipsis;
overflow-x: hidden;
white-space: nowrap;
font-weight: bold;
margin-left: 0.4em;
display: inline-block;
max-width: 180px;
width: 60%;
}
&::after,
&::before {
content: '';
display: block;
position: absolute;
right: 100%;
width: 0;
height: 0;
border-style: solid;
}
&::after {
top: -1px;
border-color: transparent white transparent transparent;
border-right-width: 16px;
border-top-width: 20px;
border-bottom-width: 20px;
left: -19px;
}
&::before {
top: -1px;
border-color: transparent var(--tainacan-gray2) transparent transparent;
border-right-width: 16px;
border-top-width: 20px;
border-bottom-width: 20px;
left: -20px;
}
}
.sortable-drag {
opacity: 1 !important;
}
.sortable-chosen {
.metadata-type-preview {
display: none;
}
}
@keyframes hightlighten {
0% {
color: #222;
background-color: var(--tainacan-white);
border-color: var(--tainacan-white);
}
25% {
color: var(--tainacan-white);
background-color: #2cb4c1;
border-color: #2cb4c1;
}
75% {
color: var(--tainacan-white);
background-color: #2cb4c1;
border-color: #2cb4c1;
}
100% {
color: #222;
background-color: var(--tainacan-white);
border-color: var(--tainacan-white);
}
}
@keyframes hightlighten-icon {
0% { color: #b1b1b1; }
25% { color: var(--tainacan-white); }
75% { color: var(--tainacan-white); }
100% { color: #b1b1b1; }
}
@keyframes hightlighten-arrow {
0% {
border-color: transparent white transparent transparent;
border-color: transparent white transparent transparent;
}
25% {
border-color: transparent #2cb4c1 transparent transparent;
border-color: transparent #2cb4c1 transparent transparent;
}
75% {
border-color: transparent #2cb4c1 transparent transparent;
border-color: transparent #2cb4c1 transparent transparent;
}
100% {
border-color: transparent white transparent transparent;
border-color: transparent white transparent transparent;
}
}
.hightlighted-metadatum {
background-color: var(--tainacan-white);
position: relative;
left: 0px;
animation-name: hightlighten;
animation-duration: 1.0s;
animation-iteration-count: 2;
.grip-icon{
animation-name: hightlighten-icon;
animation-duration: 1.0s;
animation-iteration-count: 2;
}
&::before,
&::after {
animation-name: hightlighten-arrow;
animation-duration: 1.0s;
animation-iteration-count: 2;
}
}
.available-metadatum-item:hover {
background-color: var(--tainacan-secondary);
border-color: var(--tainacan-secondary);
color: var(--tainacan-white);
position: relative;
left: -4px;
&:after {
border-color: transparent var(--tainacan-secondary) transparent transparent;
}
&:before {
border-color: transparent var(--tainacan-secondary) transparent transparent;
}
.icon {
color: var(--tainacan-white) !important;
}
.grip-icon {
color: var(--tainacan-white);
}
}
}
.inherited-metadatum {
&.active-metadatum-item:hover:not(.not-sortable-item) {
background-color: var(--tainacan-blue5);
border-color: var(--tainacan-blue5);
.switch.is-small {
input[type="checkbox"] + .check {
background-color: var(--tainacan-blue5) !important;
}
&:hover input[type="checkbox"] + .check {
background-color: var(--tainacan-blue5) !important;
}
}
}
&.available-metadatum-item:hover {
background-color: var(--tainacan-blue5) !important;
border-color: var(--tainacan-blue5) !important;
&:after {
border-color: transparent var(--tainacan-blue5) transparent transparent !important;
}
&:before {
border-color: transparent var(--tainacan-blue5) transparent transparent !important;
}
}
}
}
</style>

View File

@ -494,8 +494,6 @@
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
.selection-control {
padding: 6px 0px 0px 12px;
@ -522,7 +520,7 @@
background-color: var(--tainacan-blue1);
}
to {
background-color: $white;
background-color: var(--tainacan-white);
}
}
@ -574,11 +572,11 @@
font-size: 0.875em !important;
}
width: 20.833333%;
margin-right: $page-side-padding !important;
margin-right: var(--tainacan-one-column) !important;
}
.process-progress {
width: auto;
margin-right: $page-side-padding !important;
margin-right: var(--tainacan-one-column) !important;
flex-grow: 2;
.occluding-content {
@ -603,7 +601,7 @@
.process-queued-on {
width: 16.6666667%;
margin-right: $page-side-padding !important;
margin-right: var(--tainacan-one-column) !important;
}
}
&>.process-collapse {
@ -623,7 +621,7 @@
.process-output {
margin-left: 1.75em !important;
margin-right: $page-side-padding !important;
margin-right: var(--tainacan-one-column) !important;
width: 20.83%;
ul {
@ -645,7 +643,7 @@
.process-last-processed-on {
margin-left: auto !important;
margin-right: calc(4.6666667% + 72px) !important;
margin-right: calc(var(--tainacan-one-column) + 72px) !important;
}
}
}

View File

@ -323,7 +323,6 @@ export default {
</script>
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
// Term Item
.term-item {

View File

@ -348,8 +348,6 @@
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
.selection-control {
padding: 6px 0px 0px 12px;

View File

@ -470,7 +470,6 @@ export default {
</script>
<style lang="scss">
@import "../../scss/_variables.scss";
.columns {
position: relative;

View File

@ -36,7 +36,9 @@
}"
v-for="(metadatum, index) in childrenMetadata"
:key="metadatum.id">
<div class="handle">
<div
:ref="'metadatum-handler-' + metadatum.id"
class="handle">
<span
:style="{ opacity: !(isRepositoryLevel || metadatum.id == undefined || openedMetadatumId != '' || isUpdatingMetadataOrder) ? '1.0' : '0.0' }"
v-tooltip="{
@ -340,6 +342,12 @@
editMetadatum(metadatum) {
this.openedMetadatumId = metadatum.id;
// Scroll to opened metadata form
this.$nextTick(() => {
if (this.$refs['metadatum-handler-' + metadatum.id] && this.$refs['metadatum-handler-' + metadatum.id][0])
this.$refs['metadatum-handler-' + metadatum.id][0].scrollIntoView(true);
});
// First time opening
if (this.editForms[this.openedMetadatumId] == undefined) {
this.editForms[this.openedMetadatumId] = JSON.parse(JSON.stringify(metadatum));

View File

@ -225,8 +225,6 @@
<style lang="scss" scoped>
@import '../../scss/_variables.scss';
.multiple-inputs {
display: flex;
margin: 0.75em 0;
@ -236,7 +234,7 @@
.field {
border-bottom: 1px solid var(--tainacan-gray2);
padding: 10px 25px;
padding: 10px var(--tainacan-container-padding);
.label {
font-size: 0.875em;

View File

@ -268,7 +268,7 @@
<style scoped>
.add-new-term {
margin-top: 15px;
margin-bottom: 25px;
margin-bottom: var(--tainacan-container-padding);
font-size: 0.75em;
}
.add-new-term-form {

View File

@ -205,7 +205,7 @@
this.$emit('input', this.value);
}
},
width: 'calc(100% - 8.333333333%)',
width: 'calc(100% - (2 * var(--tainacan-one-column)))',
trapFocus: true
});
}

View File

@ -215,7 +215,7 @@
this.$emit('input', this.value);
}
},
width: 'calc(100% - 8.333333333%)',
width: 'calc(100% - (2 * var(--tainacan-one-column)))',
trapFocus: true
});
}

View File

@ -721,8 +721,6 @@
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
.tainacan-modal-title {
align-self: baseline;
display: flex;
@ -747,7 +745,7 @@
min-height: 300px;
padding: 0;
.columns {
margin: 6px $page-side-padding 0 $page-side-padding;
margin: 6px var(--tainacan-one-column) 0 var(--tainacan-one-column);
}
}

View File

@ -93,13 +93,11 @@
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
.exporter-types-container {
.exporter-type {
border-bottom: 1px solid var(--tainacan-gray2);
padding: 15px 8.3333333%;
padding: 15px calc(2 * var(--tainacan-one-column));
cursor: pointer;
transition: background-color 0.3s ease;

View File

@ -95,14 +95,12 @@ export default {
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
.importer-types-container {
position: relative;
.importer-type {
border-bottom: 1px solid var(--tainacan-gray2);
padding: 15px 8.3333333%;
padding: 15px calc(2 * var(--tainacan-one-column));
cursor: pointer;
transition: background-color 0.3s ease;

View File

@ -33,23 +33,29 @@
v-for="(metadatum, index) in metadata">
<option
:key="index"
v-if="metadatum.id"
v-if="metadatum.id && metadatum.metadata_type_object.component !== 'tainacan-compound' && metadatum.parent <= 0"
:value="metadatum.id">
{{ metadatum.name }}
</option>
<option
<optgroup
v-if="metadatum.id && metadatum.metadata_type_object.component === 'tainacan-compound'"
:key="index"
v-if="index === Object.keys(metadata).length-1"
value="status">
{{ $i18n.get('label_status') }}
</option>
<option
:key="index"
v-if="index === Object.keys(metadata).length-1"
value="comments">
{{ $i18n.get('label_allow_comments') }}
</option>
:label="metadatum.name">
<option
v-for="(childMetadatum, childIndex) of metadatum.metadata_type_options.children_objects"
:key="childIndex"
v-if="childMetadatum.id"
:value="childMetadatum.id">
{{ childMetadatum.name }}
</option>
</optgroup>
</template>
<option value="status">
{{ $i18n.get('label_status') }}
</option>
<option value="comments">
{{ $i18n.get('label_allow_comments') }}
</option>
</b-select>
<b-select
@ -83,15 +89,15 @@
bulkEditionProcedures[criterion].action == editionActionsForMultiple.replace">
<component
:is="getMetadataByID(bulkEditionProcedures[criterion].metadatumID).metadata_type_object.component"
:forced-component-type="getMetadataByID(bulkEditionProcedures[criterion].metadatumID)
.metadata_type_object.component.includes('taxonomy') ? 'tainacan-taxonomy-tag-input' : ''"
:item-metadatum="{ metadatum: getMetadataByID(bulkEditionProcedures[criterion].metadatumID) }"
:allow-new="false"
:allow-select-to-create="false"
:maxtags="1"
:class="{'is-field-history': bulkEditionProcedures[criterion].isDone}"
:disabled="bulkEditionProcedures[criterion].isDone"
:is="getMetadataByID(bulkEditionProcedures[criterion].metadatumID).metadata_type_object.component"
:item-metadatum="{metadatum: getMetadataByID(bulkEditionProcedures[criterion].metadatumID)}"
class="tainacan-bulk-edition-field"
@input="addToBulkEditionProcedures($event, 'oldValue', criterion)"
/>
@ -103,17 +109,17 @@
</div>
<component
:is="getMetadataByID(bulkEditionProcedures[criterion].metadatumID).metadata_type_object.component"
:forced-component-type="getMetadataByID(bulkEditionProcedures[criterion].metadatumID)
.metadata_type_object.component.includes('taxonomy') ? 'tainacan-taxonomy-tag-input' : ''"
:item-metadatum="{ metadatum: getMetadataByID(bulkEditionProcedures[criterion].metadatumID) }"
:allow-new="false"
:allow-select-to-create="getMetadataByID(bulkEditionProcedures[criterion].metadatumID)
.metadata_type_options.allow_new_terms === 'yes'"
:maxtags="1"
:class="{'is-field-history': bulkEditionProcedures[criterion].isDone}"
:disabled="bulkEditionProcedures[criterion].isDone"
:is="getMetadataByID(bulkEditionProcedures[criterion].metadatumID).metadata_type_object.component"
:item-metadatum="{metadatum: getMetadataByID(bulkEditionProcedures[criterion].metadatumID)}"
class="tainacan-bulk-edition-field tainacan-bulk-edition-field-not-last"
:disabled="bulkEditionProcedures[criterion].isDone"
@input="addToBulkEditionProcedures($event, 'newValue', criterion)"
/>
</template>
@ -121,7 +127,7 @@
<!-- Not replace -->
<template
v-else-if="bulkEditionProcedures[criterion] &&
bulkEditionProcedures[criterion].metadatumID == 'status'">
bulkEditionProcedures[criterion].metadatumID == 'status'">
<b-select
:class="{'is-field-history': bulkEditionProcedures[criterion].isDone, 'hidden-select-arrow': bulkEditionProcedures[criterion].isDone}"
:disabled="bulkEditionProcedures[criterion].isDone"
@ -139,7 +145,7 @@
<template
v-else-if="bulkEditionProcedures[criterion] &&
bulkEditionProcedures[criterion].metadatumID == 'comments'">
bulkEditionProcedures[criterion].metadatumID == 'comments'">
<b-select
:class="{'is-field-history': bulkEditionProcedures[criterion].isDone, 'hidden-select-arrow': bulkEditionProcedures[criterion].isDone}"
:disabled="bulkEditionProcedures[criterion].isDone"
@ -157,28 +163,28 @@
<template
v-else-if="bulkEditionProcedures[criterion] &&
bulkEditionProcedures[criterion].metadatumID &&
bulkEditionProcedures[criterion].action &&
bulkEditionProcedures[criterion].action != editionActionsForMultiple.clear">
bulkEditionProcedures[criterion].metadatumID &&
bulkEditionProcedures[criterion].action &&
bulkEditionProcedures[criterion].action != editionActionsForMultiple.clear">
<component
:is="getMetadataByID(bulkEditionProcedures[criterion].metadatumID).metadata_type_object.component"
:forced-component-type="getMetadataByID(bulkEditionProcedures[criterion].metadatumID)
.metadata_type_object.component.includes('taxonomy') ? 'tainacan-taxonomy-tag-input' : ''"
.metadata_type_object.component.includes('taxonomy') ? 'tainacan-taxonomy-tag-input' : ''"
:item-metadatum="{ metadatum: getMetadataByID(bulkEditionProcedures[criterion].metadatumID) }"
:allow-new="false"
:allow-select-to-create="getMetadataByID(bulkEditionProcedures[criterion].metadatumID)
.metadata_type_options.allow_new_terms === 'yes'"
.metadata_type_options.allow_new_terms === 'yes'"
:maxtags="1"
:class="{'is-field-history': bulkEditionProcedures[criterion].isDone}"
:disabled="bulkEditionProcedures[criterion].isDone || bulkEditionProcedures[criterion].isExecuting"
:is="getMetadataByID(bulkEditionProcedures[criterion].metadatumID).metadata_type_object.component"
:item-metadatum="{metadatum: getMetadataByID(bulkEditionProcedures[criterion].metadatumID)}"
:class="{ 'is-field-history': bulkEditionProcedures[criterion].isDone }"
class="tainacan-bulk-edition-field tainacan-bulk-edition-field-last"
:disabled="bulkEditionProcedures[criterion].isDone || bulkEditionProcedures[criterion].isExecuting"
@input="addToBulkEditionProcedures($event, 'newValue', criterion)"
/>
</template>
<div
:style="{
marginRight: !bulkEditionProcedures[criterion].isDone && !bulkEditionProcedures[criterion].isExecuting ? '-7.4px': 0
marginRight: !bulkEditionProcedures[criterion].isDone && !bulkEditionProcedures[criterion].isExecuting ? '-7.4px': 0
}"
class="field buttons-r-bulk">
@ -235,10 +241,7 @@
</button>
<div v-if="bulkEditionProcedures[criterion].isExecuting">
<b-icon
class="mdi-loader"
type="is-success"
icon="loading"/>
<button class="button is-white is-loading" />
</div>
</div>
</div>
@ -258,7 +261,7 @@
<button
@click="$eventBusSearch.loadItems(); $parent.close()"
:disabled="(Object.keys(bulkEditionProcedures).length &&
bulkEditionProcedures[editionCriteria[editionCriteria.length-1]].isExecuting) || false"
bulkEditionProcedures[editionCriteria[editionCriteria.length-1]].isExecuting) || false"
type="button"
class="button is-outlined">
{{ $i18n.get('close') }}
@ -329,7 +332,7 @@
}
},
created(){
if (this.collectionID){
if (this.collectionID) {
this.metadataIsLoading = true;
// Cancels previous Request
@ -340,7 +343,8 @@
collectionId: this.collectionID,
isRepositoryLevel: false,
isContextEdit: true,
includeDisabled: false
includeDisabled: false,
parent: 'any'
}).then((resp) => {
resp.request
.then(() => {
@ -522,7 +526,7 @@
return element == criterion;
});
if(this.editionCriteria[criterionIndex]){
if (this.editionCriteria[criterionIndex]) {
this.editionCriteria.splice(criterionIndex, 1);
delete this.bulkEditionProcedures[criterion];
this.dones.splice(criterionIndex, 1)
@ -539,14 +543,14 @@
return validEditionActions;
},
getMetadataByID(id){
getMetadataByID(id) {
let found = this.metadata.find((element) => {
return element.id == id;
});
return found ? found : {};
},
addToBulkEditionProcedures(value, key, criterion){
addToBulkEditionProcedures(value, key, criterion) {
if (Array.isArray(value))
value = value[0];
@ -558,8 +562,6 @@
<style lang="scss">
@import '../../scss/_variables.scss';
@media screen and (max-width: 768px) {
.tainacan-bulk-edition-inline-fields {
flex-direction: column !important;
@ -577,10 +579,20 @@
.this-tainacan-modal-content {
min-height: 300px;
}
.this-tainacan-modal-content .form-submit {
padding: 42px 0 0.4em 0 !important;
.button.is-white.is-loading {
cursor: inherit;
color: var(--tainacan-gray4) !important;
}
.is-pulled-right .is-success {
background-color: transparent !important;
}
.add-link {
font-size: 0.875em;
}
.form-submit {
padding: 42px 0 0.4em 0 !important;
}
}
.no-overflow-modal-card-body {
@ -723,21 +735,4 @@
.tainacan-add-edition-criterion-button-disabled {
cursor: not-allowed !important;
}
.mdi-loader {
-webkit-animation: spin 2s linear infinite; /* Safari */
animation: spin 2s linear infinite;
}
/* Safari */
@-webkit-keyframes spin {
0% { -webkit-transform: rotate(0deg); }
100% { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>

View File

@ -124,8 +124,7 @@ export default {
</script>
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
.capabilities-edit-form {
min-height: 120px;
vertical-align: top;

View File

@ -690,6 +690,8 @@
applyFilter() {
this.$parent.close();
this.$eventBusSearch.resetPageOnStore();
if (this.isTaxonomy && this.isFilter) {
this.$eventBusSearch.$emit('input', {
filter: 'checkbox',
@ -719,8 +721,6 @@
<style lang="scss" scoped>
@import "../../scss/variables.scss";
.breadcrumb {
background-color: var(--tainacan-white) !important;
@ -746,17 +746,25 @@
}
.tainacan-li-search-results {
max-width: calc(100% - 8.3333333%) !important;
max-width: calc(100% - (2 * var(--tainacan-one-column))) !important;
}
.tainacan-li-checkbox-list {
max-width: calc(100% - 8.3333333%) !important;
max-width: calc(100% - (2 * var(--tainacan-one-column))) !important;
}
}
.tainacan-modal-content {
width: auto;
min-height: 600px;
min-height: 550px;
.b-tabs {
margin-bottom: 0 !important;
.tab-content {
padding: 0.5em;
}
}
}
.tainacan-modal-title {
@ -796,7 +804,7 @@
.tainacan-li-search-results {
flex-grow: 0;
flex-shrink: 1;
max-width: calc(50% - 8.3333333%);
max-width: calc(50% - (2 * var(--tainacan-one-column)));
.b-checkbox, .b-radio {
max-width: 81%;
@ -829,7 +837,7 @@
.tainacan-li-checkbox-list {
flex-grow: 0;
flex-shrink: 1;
max-width: calc(50% - 8.3333333%);
max-width: calc(50% - (2 * var(--tainacan-one-column)));
padding-left: 0.5em;
.b-checkbox, .b-radio {
@ -847,7 +855,7 @@
display: flex;
overflow: auto;
padding: 0 !important;
min-height: 253px;
min-height: 232px;
max-height: 35vh;
&:focus {
@ -885,7 +893,7 @@
}
.tainacan-checkbox-search-section {
margin-bottom: 25px;
margin-bottom: var(--tainacan-container-padding);
display: flex;
align-items: center;
position: relative;
@ -936,11 +944,11 @@
}
.tainacan-modal-checkbox-list-body-dynamic-m-l {
margin-left: $page-side-padding !important;
margin-left: var(--tainacan-one-column) !important;
}
.tainacan-modal-checkbox-list-body-dynamic-m-r {
margin-right: $page-side-padding !important;
margin-right: var(--tainacan-one-column) !important;
}
.tainacan-search-results-container {

View File

@ -97,14 +97,12 @@ export default {
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
.collection-types-container {
position: relative;
.collection-type {
border-bottom: 1px solid var(--tainacan-gray2);
padding: 15px 8.3333333%;
padding: 15px calc(2 * var(--tainacan-one-column));
cursor: pointer;
&:first-child {

View File

@ -471,8 +471,6 @@ export default {
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
.tainacan-modal-title {
margin-bottom: 24px;

View File

@ -222,14 +222,12 @@ export default {
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
#primary-menu {
background-color: var(--tainacan-blue4);
padding: 52px 0px 0px 0px;
-webkit-transition: max-width 0.2s linear; /* Safari */
transition: max-width 0.2s linear;
max-width: $side-menu-width;
max-width: 160px;
z-index: 101;
a:hover {

View File

@ -237,7 +237,7 @@ export default {
width: 100%;
padding-top: 18px;
padding-bottom: 18px;
padding-right: $page-side-padding;
padding-right: var(--tainacan-one-column);
padding-left: 0;
margin: 0px;
vertical-align: middle;
@ -264,8 +264,8 @@ export default {
padding: 0;
margin: 0;
height: 42px;
width: $page-side-padding;
min-width: $page-side-padding;
width: var(--tainacan-one-column);
min-width: var(--tainacan-one-column);
color: var(--tainacan-white);
display: flex;

View File

@ -227,7 +227,7 @@
}
.logo-area {
height: $header-height;
width: $side-menu-width;
width: 160px;
cursor: pointer;
&:focus {

View File

@ -158,7 +158,7 @@ export default {
padding-top: 10px;
padding-bottom: 10px;
padding-right: 0;
padding-left: calc((4.166666667% - 6.666666667px) + 160px);
padding-left: calc((var(--tainacan-one-column) - 6.666666667px) + 160px);
margin: 0px;
display: flex;
vertical-align: middle;
@ -171,7 +171,7 @@ export default {
&.is-repository-level {
background-color: var(--tainacan-blue5);
padding-right: $page-side-padding;
padding-right: var(--tainacan-one-column);
.repository-subheader-icons {
margin-right: -1em !important;
@ -179,7 +179,7 @@ export default {
}
&.is-menu-compressed {
padding-left: calc((4.166666667% - 2.083333333px) + 50px);
padding-left: calc((var(--tainacan-one-column) - 2.083333333px) + 50px);
}
h1 {
@ -196,7 +196,7 @@ export default {
.repository-subheader-icons {
display: flex;
flex-wrap: nowrap;
margin-right: calc(4.6666667% - 2.083333333px);
margin-right: calc(var(--tainacan-one-column) - 2.083333333px);
#view-collection-button,
#exporter-collection-button {
@ -228,7 +228,7 @@ export default {
@media screen and (max-width: 769px) {
top: 102px;
padding-left: $page-side-padding !important;
padding-left: var(--tainacan-one-column) !important;
}
}
</style>

View File

@ -119,8 +119,6 @@ export default {
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
.tainacan-page-title {
margin-bottom: 32px;
display: flex;

View File

@ -52,8 +52,6 @@ export default {
<style lang="scss">
@import "../../scss/_variables.scss";
.document-item {
&:hover {

View File

@ -119,8 +119,6 @@ export default {
<style lang="scss">
@import "../../scss/_variables.scss";
.file-item {
display: inline-block;

View File

@ -31,8 +31,6 @@ export default {
<style lang="scss">
@import "../../scss/_variables.scss";
.help-wrapper {
position: absolute;
margin-top: -4px;

View File

@ -186,7 +186,7 @@
objectType: this.$i18n.get('items'),
collectionID: this.collectionId
},
width: 'calc(100% - 8.333333333%)',
width: 'calc(100% - (2 * var(--tainacan-one-column)))',
trapFocus: true
});

View File

@ -252,7 +252,6 @@ export default {
</script>
<style lang="scss">
@import "../../scss/_variables.scss";
.control.is-loading::after {
border: 2px solid var(--tainacan-success);

View File

@ -43,24 +43,39 @@
<b-select
:placeholder="$i18n.get('instruction_select_a_metadatum')"
:disabled="advancedSearchQuery.taxquery[searchCriterion] ||
advancedSearchQuery.metaquery[searchCriterion] ? true : false"
advancedSearchQuery.metaquery[searchCriterion] ? true : false"
:value="advancedSearchQuery.metaquery[searchCriterion] ?
advancedSearchQuery.metaquery[searchCriterion].originalMeta :
(advancedSearchQuery.taxquery[searchCriterion] ? advancedSearchQuery.taxquery[searchCriterion].originalMeta : undefined)"
advancedSearchQuery.metaquery[searchCriterion].originalMeta :
(advancedSearchQuery.taxquery[searchCriterion] ? advancedSearchQuery.taxquery[searchCriterion].originalMeta : undefined)"
@input="addToAdvancedSearchQuery($event, 'metadatum', searchCriterion)">
<option
v-for="(metadatum, metadatumIndex) in metadata"
v-if="isRelationship(metadatum, metadatumIndex)"
:value="`${metadatum.id}-${metadatum.metadata_type_options.taxonomy}-${metadatum.metadata_type_object.primitive_type}`"
:key="metadatum.id"
>{{ metadatum.name }}</option>
<option value="document_content_index-undefined-string">Documento</option>
<template v-for="(metadatum, metadatumIndex) in metadata">
<option
v-if="metadatum.metadata_type_object.component !== 'tainacan-relationship' && metadatum.metadata_type_object.component !== 'tainacan-compound' && metadatum.parent <= 0"
:value="`${metadatum.id}-${metadatum.metadata_type_options.taxonomy}-${metadatum.metadata_type_object.primitive_type}`"
:key="metadatumIndex">
{{ metadatum.name }}
</option>
<optgroup
v-if="metadatum.metadata_type_object.component === 'tainacan-compound'"
:key="metadatumIndex"
:label="metadatum.name">
<option
v-for="(childMetadatum, childIndex) of metadatum.metadata_type_options.children_objects"
:key="childIndex"
:value="`${childMetadatum.id}-${childMetadatum.metadata_type_options.taxonomy}-${childMetadatum.metadata_type_object.primitive_type}`">
{{ childMetadatum.name }}
</option>
</optgroup>
</template>
<option value="document_content_index-undefined-string">
{{ $i18n.get('label_document') }}
</option>
</b-select>
</b-field>
<!-- Inputs -->
<b-field
:class="{'is-two-thirds': !isHeader}"
:class="{'is-half': !isHeader}"
class="column">
<b-input
v-if="advancedSearchQuery.metaquery[searchCriterion] &&
@ -259,11 +274,11 @@
}
},
watch: {
isDoSearch(){
isDoSearch() {
this.searchAdvanced();
}
},
mounted(){
mounted() {
this.$root.$on('metadatumUpdated', (isRepositoryLevel) => {
if (isRepositoryLevel) {
@ -279,7 +294,7 @@
isContextEdit: false,
includeDisabled: false,
isAdvancedSearch: true,
parent: '0'
parent: 'any'
}).then((resp) => {
resp.request
.then((metadata) => {
@ -296,7 +311,7 @@
}
});
},
created(){
created() {
this.metadataIsLoading = true;
@ -305,7 +320,8 @@
isRepositoryLevel: this.isRepositoryLevel,
isContextEdit: false,
includeDisabled: false,
isAdvancedSearch: true
isAdvancedSearch: true,
parent: 'any'
}).then((resp) => {
resp.request
.then((metadata) => {
@ -321,54 +337,44 @@
.catch(() => this.metadataIsLoading = false);
if ((this.$route.query.metaquery && Object.keys(this.$route.query.metaquery).length > 0) ||
(this.$route.query.taxquery && Object.keys(this.$route.query.taxquery).length > 0) ){
(this.$route.query.taxquery && Object.keys(this.$route.query.taxquery).length > 0) ) {
this.searchCriteria = [];
}
if(this.$route.query.metaquery && Object.keys(this.$route.query.metaquery).length > 0){
if (this.$route.query.metaquery && Object.keys(this.$route.query.metaquery).length > 0) {
let metaquery = this.$route.query.metaquery;
for(let meta in metaquery){
for(let meta in metaquery)
this.$set(this.advancedSearchQuery.metaquery, `${meta}`, metaquery[meta]);
}
let keys = Object.keys(this.advancedSearchQuery.metaquery);
let relationIndex = keys.findIndex((element) => {
return element == 'relation';
});
let relationIndex = keys.findIndex((element) => element == 'relation');
if(relationIndex != -1) {
if (relationIndex != -1)
keys.splice(relationIndex, 1);
}
for(let k of keys){
for(let k of keys)
this.searchCriteria.push(k);
}
}
if(this.$route.query.taxquery && Object.keys(this.$route.query.taxquery).length > 0){
if (this.$route.query.taxquery && Object.keys(this.$route.query.taxquery).length > 0) {
let taxquery = this.$route.query.taxquery;
for(let tax in taxquery){
for(let tax in taxquery)
this.$set(this.advancedSearchQuery.taxquery, `${tax}`, taxquery[tax]);
}
let keys = Object.keys(this.advancedSearchQuery.taxquery);
let relationIndex = keys.findIndex((element) => {
return element == 'relation';
});
let relationIndex = keys.findIndex((element) => element == 'relation');
if(relationIndex != -1) {
if (relationIndex != -1)
keys.splice(relationIndex, 1);
}
for(let k of keys){
for(let k of keys)
this.searchCriteria.push(k);
}
}
},
beforeDestroy() {
@ -383,62 +389,40 @@
...mapActions('metadata', [
'fetchMetadata'
]),
isRelationship(metadatum, metadatumIndex){
if(!metadatum){
return false;
} else if(metadatum.metadata_type.includes('Relationship')){
this.metadata.splice(metadatumIndex, 1);
return false;
}
return true;
},
getComparators(searchCriterion){
if(this.advancedSearchQuery.taxquery[searchCriterion]){
getComparators(searchCriterion) {
if (this.advancedSearchQuery.taxquery[searchCriterion]) {
return this.taxqueryOperators;
} else if(this.advancedSearchQuery.metaquery[searchCriterion]){
if(this.advancedSearchQuery.metaquery[searchCriterion].ptype == 'int' ||
} else if (this.advancedSearchQuery.metaquery[searchCriterion]) {
if (this.advancedSearchQuery.metaquery[searchCriterion].ptype == 'int' ||
this.advancedSearchQuery.metaquery[searchCriterion].ptype == 'float' ||
this.advancedSearchQuery.metaquery[searchCriterion].ptype == 'date'){
this.advancedSearchQuery.metaquery[searchCriterion].ptype == 'date') {
return this.metaqueryOperatorsForInterval;
} else{
return this.metaqueryOperatorsRegular;
}
}
},
removeThis(searchCriterion){
let criteriaIndex = this.searchCriteria.findIndex((element) => {
return element == searchCriterion;
});
removeThis(searchCriterion) {
let criteriaIndex = this.searchCriteria.findIndex((element) => element == searchCriterion);
this.searchCriteria.splice(criteriaIndex, 1);
if(this.advancedSearchQuery.taxquery[searchCriterion]){
if (this.advancedSearchQuery.taxquery[searchCriterion])
delete this.advancedSearchQuery.taxquery[searchCriterion];
} else if(this.advancedSearchQuery.metaquery[searchCriterion]){
else if (this.advancedSearchQuery.metaquery[searchCriterion])
delete this.advancedSearchQuery.metaquery[searchCriterion];
}
},
// hasTagIn(value, searchCriterion){
// return !!this.advancedSearchQuery.taxquery[searchCriterion].btags.find((element) => {
// return element == value;
// });
// },
addSearchCriteria(){
addSearchCriteria() {
let aleatoryKey = Math.floor(Math.random() * (1000 - 2 + 1)) + 2;
let found = this.searchCriteria.find((element) => {
return element == aleatoryKey;
});
let found = this.searchCriteria.find((element) => element == aleatoryKey);
if(found == undefined){
if (found == undefined)
this.searchCriteria.push(aleatoryKey);
} else {
else
this.addSearchCriteria();
}
},
clearSearch(){
clearSearch() {
this.searchCriteria = [1];
this.advancedSearchQuery = {
advancedSearch: true,
@ -446,11 +430,11 @@
taxquery: {}
};
},
convertDateToMatchInDB(dateValue){
convertDateToMatchInDB(dateValue) {
return moment(dateValue, this.dateFormat).toISOString().split('T')[0];
},
addValueToAdvancedSearchQueryWithoutDelay($event, type, searchCriterion){
if(type == ''){
addValueToAdvancedSearchQueryWithoutDelay($event, type, searchCriterion) {
if (type == '') {
this.$set($event.target, 'value', '');
this.addToAdvancedSearchQuery('', 'value', searchCriterion);
} else {
@ -460,90 +444,84 @@
addValueToAdvancedSearchQuery: _.debounce(function(value, type, searchCriterion) {
this.addToAdvancedSearchQuery(value, type, searchCriterion);
}, 900),
searchAdvanced(){
searchAdvanced() {
if(this.isHeader){
if (this.isHeader) {
this.$root.$emit('closeAdvancedSearchShortcut', true);
if(this.$route.path == '/items') {
if (this.$route.path == '/items')
this.$root.$emit('openAdvancedSearch', true);
}
if(this.$route.path != '/items') {
if (this.$route.path != '/items') {
this.$router.push({
path: '/items',
});
}
}
if(Object.keys(this.advancedSearchQuery.taxquery).length > 0 &&
Object.keys(this.advancedSearchQuery.metaquery).length > 0){
if (Object.keys(this.advancedSearchQuery.taxquery).length > 0 &&
Object.keys(this.advancedSearchQuery.metaquery).length > 0) {
this.advancedSearchQuery.relation = 'AND';
}
if(Object.keys(this.advancedSearchQuery.taxquery).length > 1){
if (Object.keys(this.advancedSearchQuery.taxquery).length > 1)
this.$set(this.advancedSearchQuery.taxquery, 'relation', 'AND');
} else if(this.advancedSearchQuery.taxquery.hasOwnProperty('relation')){
else if (this.advancedSearchQuery.taxquery.hasOwnProperty('relation'))
delete this.advancedSearchQuery.taxquery.relation;
}
// Convert date values to a format (ISO_8601) that will match in database
if(Object.keys(this.advancedSearchQuery.metaquery).length > 0){
for(let metaquery in this.advancedSearchQuery.metaquery){
if(this.advancedSearchQuery.metaquery[metaquery].ptype == 'date'){
if (Object.keys(this.advancedSearchQuery.metaquery).length > 0) {
for (let metaquery in this.advancedSearchQuery.metaquery) {
if (this.advancedSearchQuery.metaquery[metaquery].ptype == 'date') {
let value = this.advancedSearchQuery.metaquery[metaquery].value;
if(value.includes('/')){
if (value.includes('/'))
this.$set(this.advancedSearchQuery.metaquery[metaquery], 'value', this.convertDateToMatchInDB(value));
}
}
}
}
if(Object.keys(this.advancedSearchQuery.metaquery).length > 1){
if (Object.keys(this.advancedSearchQuery.metaquery).length > 1)
this.$set(this.advancedSearchQuery.metaquery, 'relation', 'AND');
} else if(this.advancedSearchQuery.metaquery.hasOwnProperty('relation')){
else if (this.advancedSearchQuery.metaquery.hasOwnProperty('relation'))
delete this.advancedSearchQuery.metaquery.relation;
}
if(this.advancedSearchQuery.hasOwnProperty('relation') && Object.keys(this.advancedSearchQuery).length <= 3){
if (this.advancedSearchQuery.hasOwnProperty('relation') && Object.keys(this.advancedSearchQuery).length <= 3)
delete this.advancedSearchQuery.relation;
}
this.$eventBusSearch.$emit('searchAdvanced', this.advancedSearchQuery);
if(Object.keys(this.advancedSearchQuery.metaquery).length > 0){
for(let metaquery in this.advancedSearchQuery.metaquery){
if(this.advancedSearchQuery.metaquery[metaquery].ptype == 'date'){
if (Object.keys(this.advancedSearchQuery.metaquery).length > 0) {
for (let metaquery in this.advancedSearchQuery.metaquery) {
if (this.advancedSearchQuery.metaquery[metaquery].ptype == 'date') {
let value = this.advancedSearchQuery.metaquery[metaquery].value;
setTimeout(() => {
if(value.includes('-')){
if (value.includes('-'))
this.$set(this.advancedSearchQuery.metaquery[metaquery], 'value', this.parseDateToNavigatorLanguage(value));
}
}, 200);
}
}
}
},
parseDateToNavigatorLanguage(date){
if(date && date.length === this.dateMask.length) {
parseDateToNavigatorLanguage(date) {
if (date && date.length === this.dateMask.length) {
date = new Date(date.replace(/-/g, '/'));
return moment(date, moment.ISO_8601).format(this.dateFormat);
} else {
return date;
}
},
addToAdvancedSearchQuery(value, type, searchCriterion){
if(!value){
addToAdvancedSearchQuery(value, type, searchCriterion) {
if (!value)
return;
}
if(type == 'metadatum') {
if (type == 'metadatum') {
const criteriaKey = value.split('-');
if(criteriaKey[1] != 'undefined'){
if (criteriaKey[1] != 'undefined') {
// Was selected a taxonomy criteria
this.advancedSearchQuery.taxquery = Object.assign({}, this.advancedSearchQuery.taxquery, {
[`${searchCriterion}`]: {
@ -556,7 +534,7 @@
});
} else {
// Was selected a metadatum criteria
if(criteriaKey[2] != 'date' && criteriaKey[2] != 'int' && criteriaKey[2] != 'float'){
if (criteriaKey[2] != 'date' && criteriaKey[2] != 'int' && criteriaKey[2] != 'float') {
this.advancedSearchQuery.metaquery = Object.assign({}, this.advancedSearchQuery.metaquery, {
[`${searchCriterion}`]: {
key: criteriaKey[0],
@ -576,16 +554,15 @@
this.$set(this.advancedSearchQuery.metaquery[searchCriterion], 'ptype', criteriaKey[2]);
}
} else if(type == "term_value") {
} else if (type == "term_value") {
this.$set(this.advancedSearchQuery.taxquery[searchCriterion], 'terms', value);
} else if(type == 'value'){
} else if (type == 'value') {
this.$set(this.advancedSearchQuery.metaquery[searchCriterion], 'value', value);
} else if(type == 'comparator'){
if(this.advancedSearchQuery.taxquery[searchCriterion]){
} else if (type == 'comparator') {
if (this.advancedSearchQuery.taxquery[searchCriterion])
this.$set(this.advancedSearchQuery.taxquery[searchCriterion], 'operator', value);
} else if(this.advancedSearchQuery.metaquery[searchCriterion]){
else if (this.advancedSearchQuery.metaquery[searchCriterion])
this.$set(this.advancedSearchQuery.metaquery[searchCriterion], 'compare', value);
}
}
},
}
@ -594,8 +571,6 @@
<style lang="scss">
@import '../../scss/_variables.scss';
.loading-overlay {
min-height: 200px;
}
@ -605,8 +580,8 @@
}
.padding-regular {
padding-right: $page-side-padding;
padding-left: $page-side-padding;
padding-right: var(--tainacan-one-column);
padding-left: var(--tainacan-one-column);
}
.tnc-advanced-search-container {
@ -679,6 +654,7 @@
}
.dropdown-content {
font-size: 1.15em;
width: 800px !important;
padding-bottom: 1.25em !important;
}

View File

@ -45,6 +45,7 @@
'getFilterTags'
]),
removeMetaQuery({ filterId, value, singleLabel, label, taxonomy, metadatumId }) {
this.$eventBusSearch.resetPageOnStore();
this.$eventBusSearch.removeMetaFromFilterTag({
filterId: filterId,
singleLabel: singleLabel,
@ -55,7 +56,7 @@
});
},
clearAllFilters() {
// this.$eventBusSearch.clearAllFilters();
this.$eventBusSearch.resetPageOnStore();
for (let tag of this.filterTags) {
this.removeMetaQuery(tag);
}
@ -66,11 +67,9 @@
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
.filter-tags-list {
width: 100%;
padding: 1em $page-side-padding 1em $page-side-padding;
padding: 1em var(--tainacan-one-column) 1em var(--tainacan-one-column);
font-size: 0.75em;
@media only screen and (max-width: 768px) {

View File

@ -15,8 +15,6 @@ export default {
},
created() {
this.$on('input', data => {
this.$store.dispatch('search/setPage', 1);
if (data.taxonomy)
this.addTaxquery(data);
else
@ -235,6 +233,9 @@ export default {
this.$store.dispatch('search/setPage', page);
this.updateURLQueries();
},
resetPageOnStore() {
this.$store.dispatch('search/setPage', 1);
},
setItemsPerPage(itemsPerPage) {
this.$store.dispatch('search/setItemsPerPage', itemsPerPage);
this.updateURLQueries();

View File

@ -25,6 +25,11 @@ export const filterTypeMixin = {
this.metadatumId = this.filter.metadatum.metadatum_id ? this.filter.metadatum.metadatum_id : this.metadatumId;
this.filterTypeOptions = this.filter.filter_type_options ? this.filter.filter_type_options : this.filterTypeOptions;
this.metadatumType = this.filter.metadatum.metadata_type_object && this.filter.metadatum.metadata_type_object.className ? this.filter.metadatum.metadata_type_object.className : this.metadatumType;
},
methods: {
resetPage() {
this.$eventBusSearch.resetPageOnStore()
}
}
};

View File

@ -25,10 +25,6 @@ import ItemBulkEditionForm from '../components/edition/item-bulk-edition-form.vu
import TaxonomyEditionForm from '../components/edition/taxonomy-edition-form.vue'
import ExporterEditionForm from '../components/edition/exporter-edition-form.vue'
// Listing components
import FiltersList from '../components/lists/filters-list.vue'
import MetadataList from '../components/lists/metadata-list.vue'
Vue.use(VueRouter);
const i18nGet = function (key) {

View File

@ -216,7 +216,7 @@ export default {
margin-top: $header-height;
background-color: var(--tainacan-white);
height: calc(100% - 52px);
padding: 25px 8.333333333% !important;
padding: var(--tainacan-container-padding) calc(2 * var(--tainacan-one-column)) !important;
width: 100vw;
.home-section {

View File

@ -58,8 +58,6 @@
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
.exporter-types-container {
display: flex;
flex-wrap: wrap;

View File

@ -58,8 +58,6 @@ export default {
<style lang="scss" scoped>
@import "../../scss/_variables.scss";
.importer-types-container {
display: flex;
flex-wrap: wrap;

View File

@ -571,8 +571,8 @@ export default {
.tabs {
padding-top: 20px;
margin-bottom: 20px;
padding-left: $page-side-padding;
padding-right: $page-side-padding;
padding-left: var(--tainacan-one-column);
padding-right: var(--tainacan-one-column);
}
.above-subheader {
margin-bottom: 0;

File diff suppressed because it is too large Load Diff

View File

@ -436,7 +436,8 @@
<!-- ITEMS LIST AREA (ASIDE THE ASIDE) ------------------------- -->
<div
id="items-list-area"
class="items-list-area">
class="items-list-area"
@mousemove="handleMouseMoveOverList">
<!-- ADVANCED SEARCH -->
<div
@ -592,9 +593,11 @@
</section>
<!-- Pagination -->
<pagination
:is-sorting-by-custom-metadata="isSortingByCustomMetadata"
v-if="totalItems > 0 && (advancedSearchResults || !openAdvancedSearch)"/>
<div ref="items-pagination">
<pagination
:is-sorting-by-custom-metadata="isSortingByCustomMetadata"
v-if="totalItems > 0 && (advancedSearchResults || !openAdvancedSearch)"/>
</div>
</div>
</div>
</div>
@ -1195,6 +1198,30 @@
}
});
}, 500),
handleMouseMoveOverList: _.debounce( function($event) {
if (this.$refs['items-pagination']) {
const bounding = this.$refs['items-pagination'].getBoundingClientRect();
const isHidden = !(bounding.top >= 0 && bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight));
if (isHidden && ($event.screenY + 150 >= window.screen.height)) {
if (!(this.$refs['items-pagination'].classList.contains('floating-pagination'))) {
this.$refs['items-pagination'].classList.add('floating-pagination');
if (this.$refs['items-pagination'].children[0]) {
this.$refs['items-pagination'].children[0].style.setProperty('width', 'calc(' + this.$refs['items-pagination'].clientWidth + 'px + 0.75em)');
this.$refs['items-pagination'].children[0].style.setProperty('margin-left', '0px');
}
}
} else {
this.$refs['items-pagination'].classList.remove('floating-pagination')
if (this.$refs['items-pagination'].children[0]) {
this.$refs['items-pagination'].children[0].style.removeProperty('width');
this.$refs['items-pagination'].children[0].style.removeProperty('margin');
}
}
}
}, 1000),
removeEventListeners() {
// Component
this.$off();
@ -1217,7 +1244,7 @@
@import '../../scss/_variables.scss';
.tainacan-page-title {
padding: 25px $page-side-padding;
padding: var(--tainacan-container-padding) var(--tainacan-one-column);
margin: 0;
}
@ -1253,7 +1280,7 @@
.advanced-search-results-title {
margin-bottom: 40px;
margin: 0 $page-side-padding 42px $page-side-padding;
margin: 0 var(--tainacan-one-column) 42px var(--tainacan-one-column);
h1, h2 {
font-size: 1.25em;
@ -1280,17 +1307,17 @@
.advanced-search-form-submit {
display: flex;
justify-content: flex-end;
padding-right: $page-side-padding;
padding-left: $page-side-padding;
padding-right: var(--tainacan-one-column);
padding-left: var(--tainacan-one-column);
margin-bottom: 1em;
p { margin-left: 0.75em; }
}
.tnc-advanced-search-close {
padding-top: 25px;
padding-right: $page-side-padding;
padding-left: $page-side-padding;
padding-top: var(--tainacan-container-padding);
padding-right: var(--tainacan-one-column);
padding-left: var(--tainacan-one-column);
.column {
padding: 0 0.3em 0.3em !important;
@ -1319,7 +1346,7 @@
padding: 0;
#filters-items-list {
padding: $page-small-side-padding;
padding: var(--tainacan-container-padding);
}
}
@media screen and (min-width: 769px) {
@ -1371,13 +1398,10 @@
}
.search-control {
min-height: $subheader-height;
min-height: 42px;
height: auto;
position: relative;
padding-top: $page-small-top-padding;
padding-bottom: $page-small-top-padding;
padding-left: $page-side-padding;
padding-right: $page-side-padding;
padding: var(--tainacan-container-padding) var(--tainacan-one-column);
display: flex;
justify-content: space-between;
flex-wrap: wrap;
@ -1515,8 +1539,8 @@
.tabs {
padding-top: 6px;
margin-bottom: 20px;
padding-left: $page-side-padding;
padding-right: $page-side-padding;
padding-left: var(--tainacan-one-column);
padding-right: var(--tainacan-one-column);
@media screen and (min-width: 1024px) {
overflow: visible;
@ -1531,7 +1555,7 @@
display: flex;
justify-content: space-between;
align-items: center;
margin: 6px $page-side-padding;
margin: 6px var(--tainacan-one-column);
border-radius: 3px;
padding: 4px 12px;
color: var(--tainacan-yellow2);
@ -1568,17 +1592,36 @@
}
.table-container {
padding-left: $page-side-padding;
padding-right: $page-side-padding;
padding-left: var(--tainacan-one-column);
padding-right: var(--tainacan-one-column);
min-height: 50vh;
}
.pagination-area {
margin-left: $page-side-padding;
margin-right: $page-side-padding;
margin-left: var(--tainacan-one-column);
margin-right: var(--tainacan-one-column);
}
.floating-pagination {
min-height: 42px;
.pagination-area {
opacity: 0.75;
background: var(--tainacan-background-color);
position: fixed;
z-index: 99999;
padding-left: calc(var(--tainacan-one-column) + 0.75em);
padding-right: calc(var(--tainacan-one-column) + 0.75em);
padding-bottom: 6px;
bottom: -12px;
animation: appear-from-bottom 0.2s;
transition: bottom 0.3s, opacity 0.3s, position 0.3s;
&:hover {
opacity: 1;
}
}
}
</style>

File diff suppressed because it is too large Load Diff

View File

@ -463,8 +463,8 @@
.tabs {
padding-top: 20px;
margin-bottom: 20px;
padding-left: $page-side-padding;
padding-right: $page-side-padding;
padding-left: var(--tainacan-one-column);
padding-right: var(--tainacan-one-column);
}
.above-subheader {
margin-bottom: 0;

View File

@ -1,6 +1,5 @@
<template>
<div>
<b-loading
:active.sync="isLoading"
:can-cancel="false"/>
@ -266,7 +265,7 @@
</b-tabs>
</div>
</div>
<div class="footer">
<footer class="footer">
<div class="form-submission-footer">
<router-link
v-if="item.current_user_can_edit && $route.query.recent == true"
@ -307,7 +306,7 @@
<span>{{ $i18n.get('label_item_page_on_website') }}</span>
</a>
</div>
</div>
</footer>
</div>
</div>
</template>
@ -422,10 +421,8 @@
<style lang="scss" scoped>
@import '../../scss/_variables.scss';
.page-container {
padding: 25px 0;
padding: var(--tainacan-container-padding) 0;
& > .tainacan-form {
margin-bottom: 110px;
@ -436,7 +433,7 @@
}
.tainacan-page-title {
padding: 0 $page-side-padding;
padding: 0 var(--tainacan-one-column);
margin-bottom: 32px;
display: flex;
flex-wrap: wrap;
@ -481,13 +478,13 @@
.tainacan-form > .columns {
margin-bottom: 70px;
margin-left: $page-side-padding;
margin-right: $page-side-padding;
margin-left: var(--tainacan-one-column);
margin-right: var(--tainacan-one-column);
}
.column.is-5 {
padding-left: $page-side-padding;
padding-right: $page-side-padding;
padding-left: var(--tainacan-one-column);
padding-right: var(--tainacan-one-column);
@media screen and (max-width: 769px) {
width: 100%;
@ -495,7 +492,7 @@
}
.column.is-7 {
padding-left: 0;
padding-right: $page-side-padding;
padding-right: var(--tainacan-one-column);
.columns {
flex-wrap: wrap;
@ -511,7 +508,7 @@
}
@media screen and (max-width: 769px) {
padding-left: $page-side-padding;
padding-left: var(--tainacan-one-column);
width: 100%;
}
}
@ -525,7 +522,7 @@
.metadata-area {
.field {
border-bottom: 1px solid var(--tainacan-gray2);
padding: 10px 25px;
padding: 10px var(--tainacan-container-padding);
margin-left: 0px !important;
.label {
@ -555,7 +552,7 @@
.section-box {
background-color: var(--tainacan-white);
padding: 0 $page-side-padding 0 0;
padding: 0 var(--tainacan-one-column) 0 0;
margin-top: 18px;
margin-bottom: 32px;
@ -637,7 +634,7 @@
}
.footer {
padding: 18px $page-side-padding;
padding: 18px var(--tainacan-one-column);
position: absolute;
bottom: 0;
z-index: 999999;

View File

@ -11,7 +11,7 @@
animation-duration: 0.5s;
&>div {
width: calc(100% + 25px) !important;
width: calc(100% + var(--tainacan-container-padding)) !important;
&>div>.tainacan-card:nth-child(3),
&>div>.tainacan-card:nth-child(4),

View File

@ -70,6 +70,12 @@
// Filter Menu Width when not a modal
--tainacan-filter-menu-width-theme: #{$filter-menu-width-theme};
// One column is 1/24% and it is used a lot in the horizontal space distribution
--tainacan-one-column: #{$one-column};
// Not really used in EVERY container, but a rather frequent value
--tainacan-container-padding: #{$container-padding};
}
// Some Bulma classes will work with SASS but not with CSS variables

View File

@ -6,7 +6,7 @@
}
.modal-content {
padding: 24px 18px $page-side-padding;
padding: 24px 18px var(--tainacan-one-column);
padding: 24px 18px 24px 4.1666667vw;
margin: 0;
height: 100%;
@ -24,7 +24,7 @@
.modal-close {
top: 32px;
right: calc(8.3333333% + 28px);
right: calc((2 * var(--tainacan-one-column)) + 28px);
background-color: var(--tainacan-background-color);
&::before, &::after {
@ -38,7 +38,7 @@
background-color: var(--tainacan-background-color);
margin: 0 12% 0 0;
margin: 0 12vw 0 0;
padding: $page-small-side-padding;
padding: var(--tainacan-container-padding);
}
}
}

View File

@ -1,7 +1,7 @@
// Tainacan modals
.modal .animation-content {
background: none;
width: 91.6666667%;
width: calc(100% - (2 * var(--tainacan-one-column)));
width: 91.6666667vw;
max-height: 86%;
max-height: 86vh;
@ -59,14 +59,14 @@
font-family: var(--tainacan-font-family, inherit);
border-radius: 0px;
background-color: var(--tainacan-background-color);
padding: 40px $page-side-padding;
padding: 40px var(--tainacan-one-column);
padding: 40px 4.166666667vw;
position: relative;
overflow-y: auto;
overflow-x: hidden;
@media only screen and (max-width: 768px) {
padding: 40px 8.333333%;
padding: 40px calc(2 * var(--tainacan-one-column));
padding: 40px 8.333333vw;
}
@ -76,6 +76,7 @@
nav {
border: none !important;
margin-bottom: 0 !important;
}
figure {

View File

@ -7,8 +7,8 @@
border-top: 1px solid var(--tainacan-input-border-color);
padding-top: 0;
padding-bottom: 0;
margin-left: $page-side-padding;
margin-right: $page-side-padding;
margin-left: var(--tainacan-one-column);
margin-right: var(--tainacan-one-column);
margin-bottom: 12px;
padding-left: 0.75em;
padding-right: 0.75em;

View File

@ -54,5 +54,12 @@
}
&.is-loading.is-small::after {
font-size: 0.875em;
}
optgroup,
optgroup[label],
optgroup::before {
color: var(--tainacan-gray2);
font-weight: normal;
font-style: italic;
}
}

View File

@ -1,7 +1,7 @@
// Tables
.table-container {
padding: 0 $table-side-padding;
padding: 0 var(--tainacan-one-column);
position: relative;
margin-bottom: 40px;

View File

@ -5,6 +5,7 @@
ul {
border-bottom-color: var(--tainacan-input-border-color);
margin-bottom: 0;
}
li {
overflow-y: hidden;

View File

@ -134,23 +134,16 @@ $colors: map-merge($colors, $addColors);
$size-small: 0.875em; // 0.75em on Bulma.
$dropdown-mobile-breakpoint: $tablet;
// Tainacan Header and side menus
// Tainacan Header, Filters and Page
$header-height: 52px;
$subheader-height: 42px;
$side-menu-width: 160px;
$filter-menu-width: 16.666666667%;
$filter-menu-width-theme: 20%;
$page-height: calc(100vh - 94px);
// Overall Pages padding:
$page-side-padding: 4.166666667%;//82px;
$table-side-padding: 4.166666667%;
$page-top-padding: 25px;
$page-small-side-padding: 25px;
$page-small-top-padding: 25px;
$page-mobile-side-padding: 1em;
$page-mobile-top-padding: 1em;
$one-column: 4.166666667%;
$container-padding: 25px;
// Links
$link: $secondary;
@ -297,6 +290,14 @@ $modal-z: 9999999;
opacity: 1;
}
}
@keyframes appear-from-bottom {
from {
bottom: -48px;
}
to {
bottom: -12px;
}
}
@keyframes expand {
from {
max-height: 0;

View File

@ -10,7 +10,7 @@
animation-duration: 0.5s;
@media screen and (max-width: 480px) {
width: 91.666666667%;
width: calc(100% - (2 * var(--tainacan-one-column)));
-ms-grid-columns: 100%;
grid-template-columns: repeat(auto-fill, 100%);
}
@ -66,7 +66,7 @@
.actions-area {
position: relative;
float: right;
top: -25px;
top: calc(-1 * var(--tainacan-container-padding));
padding-right: 12px;
display: flex;
justify-content: space-between;

View File

@ -18,7 +18,7 @@
display: block;
width: 100%;
flex-basis: 0;
margin-bottom: 25px;
margin-bottom: var(--tainacan-container-padding);
text-align: center;
text-decoration: none;
transition: background-color 0.2s ease;

View File

@ -44,7 +44,7 @@
.actions-area {
position: relative;
float: right;
top: -25px;
top: calc(-1 * var(--tainacan-container-padding));
padding-right: 12px;
//width: 80px;
display: flex;
@ -79,7 +79,7 @@
}
.tainacan-record-thumbnail {
float: right;
margin: 0 0 25px 25px;
margin: 0 0 var(--tainacan-container-padding) var(--tainacan-container-padding);
}
img {
width: 120px;
@ -126,7 +126,7 @@
transition: background-color 0.2s ease;
.list-metadata {
padding: 25px;
padding: var(--tainacan-container-padding);
flex: 1;
font-size: 1em;
color: var(--tainacan-info-color);

View File

@ -90,8 +90,8 @@ body.tainacan-admin-page #adminmenumain, body.tainacan-admin-page #wpfooter, bod
height: 46px;
width: 46px;
background-size: initial;
top: calc(50% - 25px);
left: calc(50% - 25px);
top: calc(50% - var(--tainacan-container-padding));
left: calc(50% - var(--tainacan-container-padding));
}
// Link (hover is the same color as secondary
@ -120,7 +120,7 @@ a:hover {
// Generic page container
.page-container {
padding: $page-top-padding $page-side-padding;
padding: var(--tainacan-container-padding) var(--tainacan-one-column);
height: 100%;
overflow-y: auto;
overflow-x: hidden;
@ -132,11 +132,11 @@ a:hover {
transition: height 0.6s;
}
// Used for pages with subheader in mobile
.page-container-narrow{
padding: $page-small-top-padding $page-small-side-padding;
.page-container-narrow {
padding: var(--tainacan-container-padding);
@media screen and (max-width: 769px) {
padding: $page-mobile-top-padding $page-mobile-side-padding;
padding: 1em;
}
}

View File

@ -276,7 +276,7 @@
&:not(.is-aligned-right):not(.is-aligned-left) {
.tainacan-search-container {
width: calc(100% - 4.1667% - 53px);
width: calc(100% - var(--tainacan-one-column) - 53px);
width: calc(100% - 4.1667vw - 53px);
bottom: calc(-50% + 38px);
position: absolute;
@ -287,10 +287,10 @@
}
&.is-aligned-right {
.tainacan-search-container {
width: calc(100% - 4.1667% - 26px);
width: calc(100% - var(--tainacan-one-column) - 26px);
width: calc(100% - 4.1667vw - 26px);
top: calc(-50% + 26px);
right: calc(4.1667% + 26px);
right: calc(var(--tainacan-one-column) + 26px);
right: calc(4.1667vw + 26px);
position: absolute;
}
@ -300,7 +300,7 @@
.tainacan-search-container {
width: calc(100% - 1em - 26px);
top: calc(-50% + 26px);
left: calc(4.1667% + 26px);
left: calc(var(--tainacan-one-column) + 26px);
left: calc(4.1667vw + 26px);
position: absolute;
}
@ -321,7 +321,7 @@
@media only screen and (max-width: 768px) {
.tainacan-search-container {
width: calc(100% - 4.1667% - 53px) !important;
width: calc(100% - var(--tainacan-one-column) - 53px) !important;
width: calc(100% - 4.1667vw - 53px) !important;
bottom: calc(-50% + 38px) !important;
position: absolute !important;
@ -353,7 +353,7 @@
flex-wrap: wrap;
align-items: center;
flex-grow: 2;
padding: 0.5em 4.1667%;
padding: 0.5em var(--tainacan-one-column);
padding: 0.5em 4.1667vw;
text-align: center;
text-decoration: none !important;

View File

@ -710,6 +710,7 @@ return apply_filters( 'tainacan-admin-i18n', [
'info_not_allowed_change_order_metadata' => __( 'Can not change metadata order now.', 'tainacan' ),
'info_not_allowed_change_order_filters' => __( 'Can not change filters order now.', 'tainacan' ),
'info_no_value_compound_metadata' => __( 'No value has been added to this compound metadata.', 'tainacan' ),
'info_child_of' => __( 'child of', 'tainacan' ),
// Datepicker months
'datepicker_month_january' => __( 'January', 'tainacan' ),

View File

@ -640,9 +640,6 @@ export default {
<style lang="scss">
$page-small-side-padding: 25px;
$page-side-padding: 4.166666667%;
@import "../scss/_view-mode-slideshow.scss";
.is-fullscreen .table-wrapper {

View File

@ -1087,8 +1087,6 @@
<style lang="scss" scoped>
@import '../../scss/_variables.scss';
@keyframes open-full-screen {
from {
opacity: 0;
@ -1148,7 +1146,7 @@
.advanced-search-results-title {
margin-bottom: 40px;
margin: 0 $page-side-padding 42px $page-side-padding;
margin: 0 var(--tainacan-one-column) 42px var(--tainacan-one-column);
h1, h2 {
font-size: 1.25em;
@ -1175,8 +1173,8 @@
.advanced-search-form-submit {
display: flex;
justify-content: flex-end;
padding-right: $page-side-padding;
padding-left: $page-side-padding;
padding-right: var(--tainacan-one-column);
padding-left: var(--tainacan-one-column);
margin-bottom: 1em;
p { margin-left: 0.75em; }
@ -1184,8 +1182,8 @@
.tnc-advanced-search-close {
padding-top: 47px;
padding-right: $page-side-padding;
padding-left: $page-side-padding;
padding-right: var(--tainacan-one-column);
padding-left: var(--tainacan-one-column);
.column {
padding: 0 0.3em 0.3em !important;
@ -1243,12 +1241,9 @@
display: flex;
flex-wrap: wrap;
justify-content: space-between !important;
min-height: $subheader-height;
min-height: 42px;
height: auto;
padding-top: $page-small-top-padding;
padding-bottom: 20px;
padding-left: $page-side-padding;
padding-right: $page-side-padding;
padding: var(--tainacan-container-padding) var(--tainacan-one-column) 20px var(--tainacan-one-column);
.dropdown-item {
padding: 0.25em 1.35em 0.25em 0.25em;
@ -1394,7 +1389,7 @@
display: flex;
justify-content: space-between;
align-items: center;
margin: 6px $page-side-padding;
margin: 6px var(--tainacan-one-column);
border-radius: 3px;
padding: 4px 12px;
color: var(--tainacan-yellow2);
@ -1450,15 +1445,15 @@
}
.table-container {
padding-left: $page-side-padding;
padding-right: $page-side-padding;
padding-left: var(--tainacan-one-column);
padding-right: var(--tainacan-one-column);
min-height: 50vh;
//height: calc(100% - 82px);
}
.pagination-area {
margin-left: $page-side-padding;
margin-right: $page-side-padding;
margin-left: var(--tainacan-one-column);
margin-right: var(--tainacan-one-column);
}
</style>

View File

@ -73,7 +73,7 @@
}
#filters-items-list {
padding: $page-small-side-padding;
padding: var(--tainacan-container-padding);
}
}
@media screen and (min-width: 769px) {

View File

@ -22,7 +22,7 @@
min-width: 180px;
min-height: 100%;
height: 100%;
padding: $page-side-padding 25px $page-side-padding $page-side-padding;
padding: var(--tainacan-one-column) var(--tainacan-container-padding) var(--tainacan-one-column) var(--tainacan-one-column);
float: left;
overflow-y: auto;
overflow-x: hidden;
@ -32,7 +32,7 @@
@media screen and (max-width: 768px) {
width: 100% !important;
padding: $page-small-side-padding !important;
padding: var(--tainacan-container-padding) !important;
h3 {
margin-top: 0 !important;
@ -275,7 +275,7 @@
// top: -85px;
// margin-bottom: -85px;
background-color: rgba(0,0,0,0.5);
padding: 1em $page-side-padding;
padding: 1em var(--tainacan-one-column);
display: flex;
justify-content: space-between;
align-items: center;
@ -301,7 +301,7 @@
background: var(--tainacan-white);
border: 3px solid var(--tainacan-turquoise5);
i, i:before {
font-size: 2.25em;
font-size: 1.5em;
}
}
&:focus, &:active {
@ -310,8 +310,8 @@
}
.circular-counter {
position: absolute;
right: calc(4.16667% + -2px);
top: -6px;
right: calc(var(--tainacan-one-column) - 2px);
top: -8px;
}
}
}
@ -344,12 +344,12 @@
}
&.arrow-left {
left: 0;
margin-left: $page-side-padding;
margin-left: var(--tainacan-one-column);
transition: margin-left 0.3s;
}
&.arrow-right {
right: 0;
margin-right: $page-side-padding;
margin-right: var(--tainacan-one-column);
transition: margin-right 0.3s;
}
&.slide-group-arrow {
@ -384,7 +384,7 @@
}
#tainacan-slide-container {
padding: 0 $page-side-padding;
padding: 0 var(--tainacan-one-column);
display: flex;
flex-wrap: nowrap;
overflow: hidden;