+
get_metadatum()->get_name()); ?>
diff --git a/src/views/admin/components/metadata-types/core-description/class-tainacan-core-description.php b/src/views/admin/components/metadata-types/core-description/class-tainacan-core-description.php
index 87534742b..999952dbf 100644
--- a/src/views/admin/components/metadata-types/core-description/class-tainacan-core-description.php
+++ b/src/views/admin/components/metadata-types/core-description/class-tainacan-core-description.php
@@ -19,11 +19,24 @@ class Core_Description extends Metadata_Type {
$this->set_core(true);
$this->set_related_mapped_prop('description');
$this->set_component('tainacan-textarea');
+ $this->set_form_component('tainacan-form-textarea');
$this->set_name( __('Core Description', 'tainacan') );
$this->set_description( __('The "Core Description" is a compulsory metadata automatically created for all collections by default. This is the main description displayed in items lists and where the basic research tools will do their searches.', 'tainacan') );
$this->set_sortable( false );
}
+ /**
+ * @inheritdoc
+ */
+ public function get_form_labels(){
+ return [
+ 'maxlength' => [
+ 'title' => __( 'Maximum of characters', 'tainacan' ),
+ 'description' => __( 'Limits the character input to a maximum value an displays a counter.', 'tainacan' ),
+ ]
+ ];
+ }
+
/**
* generate the metadata for this metadatum type
*/
diff --git a/src/views/admin/components/metadata-types/metadata-type-helper/class-tainacan-metadata-type-helper.php b/src/views/admin/components/metadata-types/metadata-type-helper/class-tainacan-metadata-type-helper.php
index b2157c651..5984643f7 100644
--- a/src/views/admin/components/metadata-types/metadata-type-helper/class-tainacan-metadata-type-helper.php
+++ b/src/views/admin/components/metadata-types/metadata-type-helper/class-tainacan-metadata-type-helper.php
@@ -26,7 +26,7 @@ class Metadata_Type_Helper {
private function __construct() {
$this->registered_metadata_type = [];
- $this->Tainacan_Metadata = \Tainacan\Repositories\Metadata::get_instance();;
+ $this->Tainacan_Metadata = \Tainacan\Repositories\Metadata::get_instance();
$this->init();
}
diff --git a/src/views/admin/components/metadata-types/numeric/FormNumeric.vue b/src/views/admin/components/metadata-types/numeric/FormNumeric.vue
index e424175a3..260fe1250 100644
--- a/src/views/admin/components/metadata-types/numeric/FormNumeric.vue
+++ b/src/views/admin/components/metadata-types/numeric/FormNumeric.vue
@@ -69,6 +69,32 @@
+
+
+
+
+
+
+
+
@@ -81,15 +107,25 @@
data() {
return {
step: [Number, String],
+ min: [Number, null],
+ max: [Number, null],
showEditStepOptions: false
}
},
created() {
this.step = this.value && this.value.step ? this.value.step : 0.01;
+ this.min = this.value && this.value.min ? Number(this.value.min) : null;
+ this.max = this.value && this.value.max ? Number(this.value.max) : null;
},
methods: {
onUpdateStep(value) {
- this.$emit('input', { step: value });
+ this.$emit('input', { step: value, min: this.min, max: this.max });
+ },
+ onUpdateMin(value) {
+ this.$emit('input', { step: this.step, min: value, max: this.max });
+ },
+ onUpdateMax(value) {
+ this.$emit('input', { step: this.step, min: this.min, max: value });
}
}
}
diff --git a/src/views/admin/components/metadata-types/numeric/Numeric.vue b/src/views/admin/components/metadata-types/numeric/Numeric.vue
index 65484ebcf..6a8346d98 100644
--- a/src/views/admin/components/metadata-types/numeric/Numeric.vue
+++ b/src/views/admin/components/metadata-types/numeric/Numeric.vue
@@ -1,15 +1,17 @@
- onInput($event)"
@blur="onBlur"
@focus="onMobileSpecialFocus"
- type="number"
lang="en"
- :step="getStep"/>
+ :min="getMin"
+ :max="getMax"
+ :step="getStep" />
+
+
diff --git a/src/views/admin/components/metadata-types/numeric/class-tainacan-numeric.php b/src/views/admin/components/metadata-types/numeric/class-tainacan-numeric.php
index 2536ceb23..cd2f0dca2 100644
--- a/src/views/admin/components/metadata-types/numeric/class-tainacan-numeric.php
+++ b/src/views/admin/components/metadata-types/numeric/class-tainacan-numeric.php
@@ -34,6 +34,14 @@ class Numeric extends Metadata_Type {
'step' => [
'title' => __( 'Step', 'tainacan' ),
'description' => __( 'The amount to be increased or decreased when clicking on the metadatum control buttons. This also defines whether the input accepts decimal numbers.', 'tainacan' ),
+ ],
+ 'min' => [
+ 'title' => __( 'Minimum', 'tainacan' ),
+ 'description' => __( 'The minimum value that the input will accept.', 'tainacan' ),
+ ],
+ 'max' => [
+ 'title' => __( 'Maximum', 'tainacan' ),
+ 'description' => __( 'The maximum value that the input will accept.', 'tainacan' ),
]
];
}
diff --git a/src/views/admin/components/metadata-types/relationship/FormRelationship.vue b/src/views/admin/components/metadata-types/relationship/FormRelationship.vue
index a6118c32d..9eef450bc 100644
--- a/src/views/admin/components/metadata-types/relationship/FormRelationship.vue
+++ b/src/views/admin/components/metadata-types/relationship/FormRelationship.vue
@@ -119,6 +119,21 @@
:message="$i18n.getHelperMessage('tainacan-relationship', 'accept_draft_items')"/>
+
+
+
+
+
+
@@ -149,6 +164,7 @@
collectionMessage: '',
displayRelatedItemMetadata: [],
modelAcceptDraftItems: 'no',
+ modelAcceptOnlyItemsAuthoredByCurrentUser: 'no',
isMetaqueryRelationshipEnabled: tainacan_plugin && tainacan_plugin.tainacan_enable_relationship_metaquery == true ? tainacan_plugin.tainacan_enable_relationship_metaquery : false
}
},
@@ -173,6 +189,7 @@
this.modelSearch = '';
this.modelDisplayInRelatedItems = 'no';
this.modelAcceptDraftItems = 'no';
+ this.modelAcceptOnlyItemsAuthoredByCurrentUser = 'no';
this.emitValues();
}
},
@@ -194,6 +211,7 @@
this.displayRelatedItemMetadata = this.value && this.value.display_related_item_metadata && Array.isArray(this.value.display_related_item_metadata) ? this.value.display_related_item_metadata : [];
this.modelDisplayInRelatedItems = this.value && this.value.display_in_related_items ? this.value.display_in_related_items : 'no';
this.modelAcceptDraftItems = this.value && this.value.accept_draft_items ? this.value.accept_draft_items : 'no';
+ this.modelAcceptOnlyItemsAuthoredByCurrentUser = this.value && this.value.accept_only_items_authored_by_current_user ? this.value.accept_only_items_authored_by_current_user : 'no';
},
methods: {
setErrorsAttributes( type, message ){
@@ -284,7 +302,8 @@
search: this.modelSearch,
display_in_related_items: this.modelDisplayInRelatedItems,
display_related_item_metadata: this.displayRelatedItemMetadata,
- accept_draft_items: this.modelAcceptDraftItems
+ accept_draft_items: this.modelAcceptDraftItems,
+ accept_only_items_authored_by_current_user: this.modelAcceptOnlyItemsAuthoredByCurrentUser
});
}
}
diff --git a/src/views/admin/components/metadata-types/relationship/Relationship.vue b/src/views/admin/components/metadata-types/relationship/Relationship.vue
index ad0565132..226451c3d 100644
--- a/src/views/admin/components/metadata-types/relationship/Relationship.vue
+++ b/src/views/admin/components/metadata-types/relationship/Relationship.vue
@@ -23,7 +23,7 @@
:placeholder="itemMetadatum.metadatum.placeholder ? itemMetadatum.metadatum.placeholder : $i18n.get('instruction_type_existing_item')"
:loading="isLoading"
:aria-close-label="$i18n.get('remove_value')"
- :class="{'has-selected': selected != undefined && selected != []}"
+ :class="{ 'has-selected': selected != undefined && selected != [] }"
field="label"
@typing="search"
check-infinite-scroll
@@ -54,7 +54,7 @@
- {{ $i18n.get('info_no_item_found') }}
+ {{ isAcceptingOnlyItemsAuthoredByCurrentUser ? $i18n.get('info_no_item_authored_by_you_found') : $i18n.get('info_no_item_found') }}
metadatumId !== 'thumbnail') + '') : (this.itemMetadatum.metadatum.metadata_type_options.search ? this.itemMetadatum.metadatum.metadata_type_options.search : '');
- if (this.isAcceptingDraftItems)
+
+ if ( this.isAcceptingDraftItems )
query['status'] = ['publish','private','draft'];
axios.get('/collection/' + this.collectionId + '/items?' + qs.stringify(query) )
@@ -400,6 +407,9 @@
if (this.isAcceptingDraftItems)
query['status'] = ['publish','private','draft'];
+ if ( this.isAcceptingOnlyItemsAuthoredByCurrentUser )
+ query['authorid'] = tainacan_plugin.user_data.ID;
+
if (this.selected.length > 0)
query['exclude'] = this.selected.map((item) => item.value);
diff --git a/src/views/admin/components/metadata-types/relationship/class-tainacan-relationship.php b/src/views/admin/components/metadata-types/relationship/class-tainacan-relationship.php
index 3053e4ef1..2045f548c 100644
--- a/src/views/admin/components/metadata-types/relationship/class-tainacan-relationship.php
+++ b/src/views/admin/components/metadata-types/relationship/class-tainacan-relationship.php
@@ -71,6 +71,10 @@ class Relationship extends Metadata_Type {
'accept_draft_items' => [
'title' => __( 'List and accept draft items on the relation', 'tainacan' ),
'description' => __( 'Include draft items as possible options to the relationship metadata.', 'tainacan' ),
+ ],
+ 'accept_only_items_authored_by_current_user' => [
+ 'title' => __( 'Bind items only by current author', 'tainacan' ),
+ 'description' => __( 'Accept stabelishing the replationship only with items authored by the current user editing the item.', 'tainacan' ),
]
];
}
@@ -121,6 +125,7 @@ class Relationship extends Metadata_Type {
case 'display_in_related_items':
case 'accept_draft_items':
+ case 'accept_only_items_authored_by_current_user':
if ($option_value == 'yes')
$readable_option_value = __('Yes', 'tainacan');
else if ($option_value == 'no')
@@ -177,13 +182,19 @@ class Relationship extends Metadata_Type {
// empty is ok
if ( !empty($this->get_option('display_in_related_items')) && !in_array($this->get_option('display_in_related_items'), ['yes', 'no']) ) {
return [
- 'display_in_related_items' => __('Display in related items must be a option yes or no','tainacan')
+ 'display_in_related_items' => __('Display in related items must be an option yes or no','tainacan')
];
}
// empty is ok
if ( !empty($this->get_option('accept_draft_items')) && !in_array($this->get_option('accept_draft_items'), ['yes', 'no']) ) {
return [
- 'accept_draft_items' => __('Accept draft items must be a option yes or no','tainacan')
+ 'accept_draft_items' => __('Accept draft items must be an option yes or no','tainacan')
+ ];
+ }
+ // empty is ok
+ if ( !empty($this->get_option('accept_only_items_authored_by_current_user')) && !in_array($this->get_option('accept_only_items_authored_by_current_user'), ['yes', 'no']) ) {
+ return [
+ 'accept_only_items_authored_by_current_user' => __('Bind items only by current author must be an option yes or no','tainacan')
];
}
diff --git a/src/views/admin/components/metadata-types/selectbox/Selectbox.vue b/src/views/admin/components/metadata-types/selectbox/Selectbox.vue
index d365bb68f..549e5c0a1 100644
--- a/src/views/admin/components/metadata-types/selectbox/Selectbox.vue
+++ b/src/views/admin/components/metadata-types/selectbox/Selectbox.vue
@@ -37,7 +37,7 @@
'mobileSpecialFocus'
],
computed: {
- getOptions(){
+ getOptions() {
if (this.itemMetadatum && this.itemMetadatum.metadatum.metadata_type_options && this.itemMetadatum.metadatum.metadata_type_options.options ) {
const metadata = this.itemMetadatum.metadatum.metadata_type_options.options;
return ( metadata ) ? metadata.split("\n") : [];
diff --git a/src/views/admin/components/metadata-types/tainacan-form-item.vue b/src/views/admin/components/metadata-types/tainacan-form-item.vue
index e3c50d738..8c53ada66 100644
--- a/src/views/admin/components/metadata-types/tainacan-form-item.vue
+++ b/src/views/admin/components/metadata-types/tainacan-form-item.vue
@@ -20,6 +20,12 @@
class="has-text-secondary tainacan-icon tainacan-icon-1-25em"/>
+ :is-metadata-navigation="isMetadataNavigation"
+ :enumerate-metadatum="enumerateMetadatum" />
@@ -174,7 +181,8 @@
metadataNameFilterString: '',
isMobileScreen: false,
isFocused: false,
- isMetadataNavigation: false
+ isMetadataNavigation: false,
+ enumerateMetadatum: [String, Boolean]
},
emits: [
'input',
diff --git a/src/views/admin/components/metadata-types/taxonomy/Taxonomy.vue b/src/views/admin/components/metadata-types/taxonomy/Taxonomy.vue
index 5f28da523..62ea55df7 100644
--- a/src/views/admin/components/metadata-types/taxonomy/Taxonomy.vue
+++ b/src/views/admin/components/metadata-types/taxonomy/Taxonomy.vue
@@ -1,9 +1,8 @@