diff --git a/build.sh b/build.sh index 32167df85..6e461ce4f 100755 --- a/build.sh +++ b/build.sh @@ -67,7 +67,9 @@ rm -rf $wp_plugin_dir mkdir $wp_plugin_dir -rsync -axz --exclude='vendor/bin/phpc*' --exclude='vendor/squizlabs' --exclude='vendor/wimg' src/* $wp_plugin_dir/ +rsync -axz --exclude='vendor/bin/phpc*' --exclude='vendor/squizlabs' --exclude='vendor/wimg' \ + --exclude='vendor/respect/validation/.git' --exclude='pdf-viewer/pdfjs-dist/web/compressed.tracemonkey-pldi-09.pdf' \ + src/* $wp_plugin_dir/ rm -rf $wp_plugin_dir/scss diff --git a/src/admin/components/lists/filters-list.vue b/src/admin/components/lists/filters-list.vue index fdc7a503c..b2f184081 100644 --- a/src/admin/components/lists/filters-list.vue +++ b/src/admin/components/lists/filters-list.vue @@ -69,14 +69,14 @@ v-model="filter.enabled" @input="onChangeEnable($event, index)"/> + + + + + {{ $i18n.get('collections') }} + + + + + + {{ collection.name }} + + + + + + + + + + \ No newline at end of file diff --git a/src/admin/components/search/filters-items-list.vue b/src/admin/components/search/filters-items-list.vue index 430e07e5a..246505686 100644 --- a/src/admin/components/search/filters-items-list.vue +++ b/src/admin/components/search/filters-items-list.vue @@ -1,22 +1,29 @@ + + :open="collapsed" + :repository="repository"/> \ No newline at end of file diff --git a/src/admin/pages/lists/items-page.vue b/src/admin/pages/lists/items-page.vue index 8a3811e64..31d5164fd 100644 --- a/src/admin/pages/lists/items-page.vue +++ b/src/admin/pages/lists/items-page.vue @@ -5,6 +5,7 @@ @@ -20,7 +21,7 @@ {{ $i18n.get('filters') }} {{ collapseAll ? $i18n.get('label_collapse_all') : $i18n.get('label_expand_all') }} @@ -61,9 +64,12 @@ + :collapsed="collapseAll" + :repository="isRepositoryLevel"/> { this.isLoadingItems = isLoadingItems; @@ -415,8 +422,8 @@ } #collection-search-button { - border-radius: 0px !important; - padding: 0px 8px !important; + border-radius: 0 !important; + padding: 0 8px !important; border-color: $tainacan-input-background; &:focus, &:active { border-color: none !important; @@ -462,14 +469,14 @@ position: absolute; z-index: 9; top: 152px; - left: 0px; + left: 0; max-width: 23px; height: 21px; width: 23px; border: none; background-color: $primary-lighter; color: $tertiary; - padding: 0px; + padding: 0; border-top-right-radius: 2px; border-bottom-right-radius: 2px; cursor: pointer; @@ -480,6 +487,10 @@ } } + .filter-menu-compress-button-top-repo { + top: 123px !important; + } + diff --git a/src/admin/tainacan-admin-i18n.php b/src/admin/tainacan-admin-i18n.php index 168fd562f..82934528d 100644 --- a/src/admin/tainacan-admin-i18n.php +++ b/src/admin/tainacan-admin-i18n.php @@ -206,8 +206,7 @@ return [ 'instruction_select_document_file_for_item' => __( 'Select a document file for item', 'tainacan' ), 'instruction_insert_url' => __( 'Insert URL', 'tainacan' ), 'instruction_write_text' => __( 'Write Text', 'tainacan' ), - 'instruction_search_repository' => __( 'Search on repository', 'tainacan' ), - 'instruction_search_collection' => __( 'Search on collection', 'tainacan' ), + 'instruction_search' => __( 'Search', 'tainacan' ), // Info. Other feedback to user. 'info_name_is_required' => __( 'Name is required.', 'tainacan' ), diff --git a/src/api/class-tainacan-rest-controller.php b/src/api/class-tainacan-rest-controller.php index 85fcd83e3..23c0ce12e 100644 --- a/src/api/class-tainacan-rest-controller.php +++ b/src/api/class-tainacan-rest-controller.php @@ -375,12 +375,8 @@ class REST_Controller extends \WP_REST_Controller { $query_params['perpage'] = array( 'description' => __( "Maximum number of $object_name to be returned in result set." ), - 'type' => 'integer', + 'type' => 'numeric', 'default' => 10, - 'minimum' => 1, - 'maximum' => 100, - 'sanitize_callback' => 'absint', - 'validate_callback' => 'rest_validate_request_arg', ); $query_params['paged'] = array( diff --git a/src/classes/filter-types/category/Taginput.vue b/src/classes/filter-types/category/Taginput.vue index acff9ce0e..f39c8d1d7 100644 --- a/src/classes/filter-types/category/Taginput.vue +++ b/src/classes/filter-types/category/Taginput.vue @@ -22,7 +22,13 @@ this.field = ( this.field_id ) ? this.field_id : this.filter.field.field_id ; this.type = ( this.filter_type ) ? this.filter_type : this.filter.field.field_type; - axios.get('/collection/'+ this.collection +'/fields/' + this.field + '?context=edit') + let in_route = '/collection/' + this.collection + '/fields/' + this.field +'?context=edit'; + + if(this.repository){ + in_route = '/fields?context=edit'; + } + + axios.get(in_route) .then( res => { let field = res.data; this.selectedValues( field.field_type_options.taxonomy_id ); @@ -50,7 +56,8 @@ id: '', query: { type: Object // concentrate all attributes field id and type - } + }, + repository: Boolean, }, watch: { selected( value ){ diff --git a/src/classes/filter-types/checkbox/Checkbox.vue b/src/classes/filter-types/checkbox/Checkbox.vue index 5f6299e24..0240370c2 100644 --- a/src/classes/filter-types/checkbox/Checkbox.vue +++ b/src/classes/filter-types/checkbox/Checkbox.vue @@ -21,7 +21,14 @@ this.collection = ( this.collection_id ) ? this.collection_id : this.filter.collection_id; this.field = ( this.field_id ) ? this.field_id : this.filter.field.field_id; const vm = this; - axios.get('/collection/' + this.collection + '/fields/' + this.field + '?nopaging=1') + + let in_route = '/collection/' + this.collection + '/fields/' + this.field +'?nopaging=1'; + + if(this.repository){ + in_route = '/fields?nopaging=1'; + } + + axios.get(in_route) .then( res => { let result = res.data; if( result && result.field_type ){ @@ -34,6 +41,9 @@ this.$console.log(error); }); }, + props: { + repository: Boolean, + }, data(){ return { isLoading: false, diff --git a/src/classes/filter-types/custom-interval/CustomInterval.vue b/src/classes/filter-types/custom-interval/CustomInterval.vue index 75da2e8b4..0fd663cca 100644 --- a/src/classes/filter-types/custom-interval/CustomInterval.vue +++ b/src/classes/filter-types/custom-interval/CustomInterval.vue @@ -66,7 +66,13 @@ this.collection = ( this.collection_id ) ? this.collection_id : this.filter.collection_id; this.field = ( this.field_id ) ? this.field_id : this.filter.field.field_id; - axios.get('/collection/' + this.collection + '/fields/' + this.field ) + let in_route = '/collection/' + this.collection + '/fields/' + this.field; + + if(this.repository){ + in_route = '/fields/'+ this.field; + } + + axios.get(in_route) .then( res => { let result = res.data; if( result && result.field_type ){ @@ -101,7 +107,8 @@ field_id: [Number], // not required, but overrides the filter field id if is set collection_id: [Number], // not required, but overrides the filter field id if is set id: '', - query: Object + query: Object, + repository: Boolean, }, watch: { isTouched( val ){ diff --git a/src/classes/filter-types/selectbox/Selectbox.vue b/src/classes/filter-types/selectbox/Selectbox.vue index 5cfbe345e..83dcbc932 100644 --- a/src/classes/filter-types/selectbox/Selectbox.vue +++ b/src/classes/filter-types/selectbox/Selectbox.vue @@ -27,7 +27,14 @@ this.collection = ( this.collection_id ) ? this.collection_id : this.filter.collection_id; this.field = ( this.field_id ) ? this.field_id : this.filter.field.field_id; const vm = this; - axios.get('/collection/' + this.collection + '/fields/' + this.field ) + + let in_route = '/collection/' + this.collection + '/fields/' + this.field; + + if(this.repository){ + in_route = '/fields/'+ this.field; + } + + axios.get(in_route) .then( res => { let result = res.data; if( result && result.field_type ){ @@ -40,6 +47,9 @@ this.$console.error(error); }); }, + props: { + repository: Boolean, + }, data(){ return { isLoading: false, diff --git a/src/classes/filter-types/taginput/Taginput.vue b/src/classes/filter-types/taginput/Taginput.vue index a024b3cc3..e1439f186 100644 --- a/src/classes/filter-types/taginput/Taginput.vue +++ b/src/classes/filter-types/taginput/Taginput.vue @@ -23,7 +23,14 @@ this.collection = ( this.collection_id ) ? this.collection_id : this.filter.collection_id; this.field = ( this.field_id ) ? this.field_id : this.filter.field.field_id; const vm = this; - axios.get('/collection/' + this.collection + '/fields/' + this.field ) + + let in_route = '/collection/' + this.collection + '/fields/' + this.field; + + if(this.repository){ + in_route = '/fields?nopaging=1'; + } + + axios.get(in_route) .then( res => { let result = res.data; if( result && result.field_type ){ diff --git a/src/classes/filter-types/tainacan-filter-item.vue b/src/classes/filter-types/tainacan-filter-item.vue index 6854d49e3..6178da1e1 100644 --- a/src/classes/filter-types/tainacan-filter-item.vue +++ b/src/classes/filter-types/tainacan-filter-item.vue @@ -1,6 +1,6 @@ @@ -37,6 +38,7 @@ filter: Object, query: Object, open: false, + repository: Boolean, }, data(){ return { @@ -76,7 +78,7 @@