From bdd6ae46ba21962550e1f8b9e8ee933d2ec1155d Mon Sep 17 00:00:00 2001 From: Leo Germani Date: Fri, 6 Apr 2018 00:24:41 -0300 Subject: [PATCH 01/46] front end fixes item metadata edition --- src/classes/entities/class-tainacan-item-metadata-entity.php | 2 +- src/js/event-bus-web-components.js | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/classes/entities/class-tainacan-item-metadata-entity.php b/src/classes/entities/class-tainacan-item-metadata-entity.php index cd44a7c15..3b9449a9c 100644 --- a/src/classes/entities/class-tainacan-item-metadata-entity.php +++ b/src/classes/entities/class-tainacan-item-metadata-entity.php @@ -45,7 +45,7 @@ class Item_Metadata_Entity extends Entity { public function __toArray(){ $value = $this->get_value(); - if(is_array($value) && $value[0] instanceof Term){ + if(is_array($value) && isset($value[0]) && $value[0] instanceof Term){ $values_arr = []; foreach ($value as $val){ diff --git a/src/js/event-bus-web-components.js b/src/js/event-bus-web-components.js index cf80ff09c..bce5e01bb 100644 --- a/src/js/event-bus-web-components.js +++ b/src/js/event-bus-web-components.js @@ -11,6 +11,7 @@ export const eventBus = new Vue({ if( tainacan_plugin.components ){ this.componentsTag = tainacan_plugin.components; } + this.$on('input', data => this.updateValue(data) ); }, methods : { registerComponent( name ){ @@ -22,6 +23,7 @@ export const eventBus = new Vue({ const components = this.getAllComponents(); for (let eventElement of components){ eventElement.addEventListener('input', (event) => { + if (event.detail && event.detail[0] ){ this.updateValue({ item_id: $(eventElement).attr("item_id"), From cc36906ecaf0b7514cef581c18d5a2631e36f491 Mon Sep 17 00:00:00 2001 From: mateuswetah Date: Fri, 6 Apr 2018 10:44:51 -0300 Subject: [PATCH 02/46] Adds IDs to identify buttons in collection and items creation. --- src/admin/pages/lists/collections-page.vue | 1 + src/admin/pages/lists/items-page.vue | 1 + 2 files changed, 2 insertions(+) diff --git a/src/admin/pages/lists/collections-page.vue b/src/admin/pages/lists/collections-page.vue index ea928b69d..14702084c 100644 --- a/src/admin/pages/lists/collections-page.vue +++ b/src/admin/pages/lists/collections-page.vue @@ -3,6 +3,7 @@
diff --git a/src/admin/pages/lists/items-page.vue b/src/admin/pages/lists/items-page.vue index f388bfb73..87f28c22f 100644 --- a/src/admin/pages/lists/items-page.vue +++ b/src/admin/pages/lists/items-page.vue @@ -5,6 +5,7 @@
From 9cf0894a5d17534dfdf9f832c52c784e57f78076 Mon Sep 17 00:00:00 2001 From: Leo Germani Date: Fri, 6 Apr 2018 11:40:21 -0300 Subject: [PATCH 03/46] expose field type object in fields api get items --- src/api/endpoints/class-tainacan-rest-fields-controller.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/api/endpoints/class-tainacan-rest-fields-controller.php b/src/api/endpoints/class-tainacan-rest-fields-controller.php index 9a259d1df..2ad8c82ed 100644 --- a/src/api/endpoints/class-tainacan-rest-fields-controller.php +++ b/src/api/endpoints/class-tainacan-rest-fields-controller.php @@ -262,14 +262,15 @@ class TAINACAN_REST_Fields_Controller extends TAINACAN_REST_Controller { public function prepare_item_for_response( $item, $request ) { if(!empty($item)){ $item_arr = $item->__toArray(); - + + $item_arr['field_type_object'] = $item->get_field_type_object()->__toArray(); + if($request['context'] === 'edit'){ $item_arr['current_user_can_edit'] = $item->can_edit(); ob_start(); $item->get_field_type_object()->form(); $form = ob_get_clean(); $item_arr['edit_form'] = $form; - $item_arr['field_type_object'] = $item->get_field_type_object()->__toArray(); $item_arr['enabled'] = $item->get_enabled_for_collection(); } From fbd60eb13074daf4f65949edcf794f07f6230b97 Mon Sep 17 00:00:00 2001 From: weryques Date: Fri, 6 Apr 2018 12:11:04 -0300 Subject: [PATCH 04/46] Returns id with errors --- src/classes/entities/class-tainacan-entity.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/classes/entities/class-tainacan-entity.php b/src/classes/entities/class-tainacan-entity.php index 51a4c5c31..303fd76b2 100644 --- a/src/classes/entities/class-tainacan-entity.php +++ b/src/classes/entities/class-tainacan-entity.php @@ -219,13 +219,13 @@ class Entity { foreach ($prop_value as $val) { if (!$validation->validate($val)) { - $this->add_error($this->get_id() .' '. $prop, $message); + $this->add_error($prop, $message); $is_valid = false; } } } else { if (!$validation->validate($prop_value)) { - $this->add_error($this->get_id() .' '. $prop, $message); + $this->add_error($prop, $message); $is_valid = false; } } @@ -236,6 +236,8 @@ class Entity { } public function get_errors() { + $this->errors['id'] = $this->get_mapped_property('id'); + return $this->errors; } From 81a81a8b53beed90839719bd9738b3b3774150be Mon Sep 17 00:00:00 2001 From: weryques Date: Fri, 6 Apr 2018 15:29:13 -0300 Subject: [PATCH 05/46] Event page, log diff test, changes event module name, fetch_only in logs controller --- src/admin/components/lists/events-list.vue | 8 +- .../components/navigation/tainacan-header.vue | 8 ++ src/admin/js/router.js | 10 ++- src/admin/pages/lists/events-page.vue | 4 +- src/admin/pages/singles/event-page.vue | 76 +++++++++++++++++++ src/admin/tainacan-admin-i18n.php | 1 + .../class-tainacan-rest-logs-controller.php | 25 +++++- .../entities/class-tainacan-entity.php | 2 - .../class-tainacan-item-metadata-entity.php | 4 +- src/classes/entities/class-tainacan-log.php | 5 +- .../repositories/class-tainacan-logs.php | 12 +-- .../class-tainacan-repository.php | 9 ++- src/js/store/modules/event/actions.js | 57 ++++++++++++++ .../modules/{events => event}/getters.js | 4 +- .../store/modules/{events => event}/index.js | 2 +- src/js/store/modules/event/mutations.js | 11 +++ src/js/store/modules/events/actions.js | 29 ------- src/js/store/modules/events/mutations.js | 3 - src/js/store/store.js | 12 ++- tests/test-logs.php | 26 +++++++ 20 files changed, 243 insertions(+), 65 deletions(-) create mode 100644 src/admin/pages/singles/event-page.vue create mode 100644 src/js/store/modules/event/actions.js rename src/js/store/modules/{events => event}/getters.js (63%) rename src/js/store/modules/{events => event}/index.js (91%) create mode 100644 src/js/store/modules/event/mutations.js delete mode 100644 src/js/store/modules/events/actions.js delete mode 100644 src/js/store/modules/events/mutations.js diff --git a/src/admin/components/lists/events-list.vue b/src/admin/components/lists/events-list.vue index ffd857ea1..40888a614 100644 --- a/src/admin/components/lists/events-list.vue +++ b/src/admin/components/lists/events-list.vue @@ -13,11 +13,9 @@ ref="eventsTable" :data="events" :checked-rows.sync="selectedEvents" - checkable :loading="isLoading" hoverable striped - selectable backend-sorting> @@ -179,20 +178,14 @@ export default { goToItemEditPage(itemId) { this.$router.push(this.$routerHelper.getItemEditPath(this.collectionId, itemId)); }, - showValue( metadata ){ + renderMetadata( metadata ){ - if( ! metadata || metadata.value === false || metadata.value == undefined || metadata.value == '' ) + if( ! metadata || metadata.value === false || metadata.value == undefined ) return ''; - - if( metadata.value instanceof Array ){ - let result = []; - for( let val of metadata.value ){ - result.push( ( val.name ) ? val.name : val ) - } - return result.join(', '); - } else { - return metadata.value.name ? metadata.value.name : metadata.value - } + else if (metadata) + return metadata.value_as_html; + else + return metadata.value_as_html; } } } diff --git a/src/admin/components/search/search-control.vue b/src/admin/components/search/search-control.vue index 01c21c88e..ecbccef72 100644 --- a/src/admin/components/search/search-control.vue +++ b/src/admin/components/search/search-control.vue @@ -14,7 +14,6 @@ class="control" custom> {{ column.label }} @@ -29,10 +28,10 @@ :placeholder="$i18n.get('label_sorting')">
diff --git a/src/admin/tainacan-admin-i18n.php b/src/admin/tainacan-admin-i18n.php index 1f0ac3ad3..7b77b17e1 100644 --- a/src/admin/tainacan-admin-i18n.php +++ b/src/admin/tainacan-admin-i18n.php @@ -178,8 +178,9 @@ return [ 'info_warning_fields_not_saved' => __('Are you sure? There are fields not saved, changes will be lost.', 'tainacan'), 'info_warning_filters_not_saved' => __('Are you sure? There are filters not saved, changes will be lost.', 'tainacan'), 'info_no_description_provided' => __('No description provided.', 'tainacan'), - 'info_warning_terms_not_saved' => __('Are you sure? There are terms not saved, changes will be lost.', 'tainacan'), - 'info_warning_orphan_terms' => __('Are you sure? This term is parent of other terms. These will be converted to root terms.', 'tainacan'), + 'info_warning_category_not_saved' => __('Are you sure? The category is not saved, changes will be lost.', 'tainacan'), + 'info_warning_terms_not_saved' => __('Are you sure? There are terms not saved, changes will be lost.', 'tainacan'), + 'info_warning_orphan_terms' => __('Are you sure? This term is parent of other terms. These will be converted to root terms.', 'tainacan'), 'info_there_is_no_field' => __('There is no field here.', 'tainacan' ), // Tainacan Field Types diff --git a/src/js/store/modules/category/actions.js b/src/js/store/modules/category/actions.js index 0b6826318..48d99dcbe 100644 --- a/src/js/store/modules/category/actions.js +++ b/src/js/store/modules/category/actions.js @@ -53,7 +53,7 @@ export const updateCategory = ({ commit }, category) => { resolve( category ); }) .catch(error => { - reject( error.response ); + reject({ error_message: error['response']['data'].error_message, errors: error['response']['data'].errors }); }); }); }; From f50b495776e1cbe241c276f01b49f1824375e58c Mon Sep 17 00:00:00 2001 From: Mateus Machado Luna Date: Tue, 10 Apr 2018 11:29:54 -0300 Subject: [PATCH 22/46] Removes console logs. --- src/admin/components/edition/category-edition-form.vue | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/admin/components/edition/category-edition-form.vue b/src/admin/components/edition/category-edition-form.vue index fea60bf73..dfe690f93 100644 --- a/src/admin/components/edition/category-edition-form.vue +++ b/src/admin/components/edition/category-edition-form.vue @@ -180,8 +180,6 @@ TermsList }, beforeRouteLeave( to, from, next ) { - this.$console.log(this.category) - this.$console.log(this.form) let formNotSaved = false; if (this.category.name != this.form.name) From cf4f8829bea0bf8cc198f41bec6c31763759106b Mon Sep 17 00:00:00 2001 From: Leo Germani Date: Tue, 10 Apr 2018 11:56:20 -0300 Subject: [PATCH 23/46] fix methods definitions --- src/classes/field-types/compound/class-tainacan-compound.php | 2 +- .../field-types/relationship/class-tainacan-relationship.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/classes/field-types/compound/class-tainacan-compound.php b/src/classes/field-types/compound/class-tainacan-compound.php index 92d61d153..c48f80506 100644 --- a/src/classes/field-types/compound/class-tainacan-compound.php +++ b/src/classes/field-types/compound/class-tainacan-compound.php @@ -54,7 +54,7 @@ class Compound extends Field_Type { * @param Item_Metadata_Entity $item_metadata * @return string The HTML representation of the value, each HTML representation of the value of each field composing this metadata */ - public function get_value_as_html(Item_Metadata_Entity $item_metadata) { + public function get_value_as_html(\Tainacan\Entities\Item_Metadata_Entity $item_metadata) { $value = $item_metadata->get_value(); diff --git a/src/classes/field-types/relationship/class-tainacan-relationship.php b/src/classes/field-types/relationship/class-tainacan-relationship.php index 3f99e63f2..b2b21c733 100644 --- a/src/classes/field-types/relationship/class-tainacan-relationship.php +++ b/src/classes/field-types/relationship/class-tainacan-relationship.php @@ -72,7 +72,7 @@ class Relationship extends Field_Type { * @param Item_Metadata_Entity $item_metadata * @return string The HTML representation of the value, containing one or multiple items names, linked to the item page */ - public function get_value_as_html(Item_Metadata_Entity $item_metadata) { + public function get_value_as_html(\Tainacan\Entities\Item_Metadata_Entity $item_metadata) { $value = $item_metadata->get_value(); From 64b0944ae3c3194f5513761f561139b421a5c337 Mon Sep 17 00:00:00 2001 From: Mateus Machado Luna Date: Tue, 10 Apr 2018 12:14:23 -0300 Subject: [PATCH 24/46] Creates Tainacan Subheader to begin new layout implementation --- src/admin/components/lists/items-list.vue | 2 - .../components/navigation/tainacan-header.vue | 11 +- .../navigation/tainacan-subheader.vue | 238 ++++++++++++++++++ src/admin/scss/_variables.scss | 1 - 4 files changed, 245 insertions(+), 7 deletions(-) create mode 100644 src/admin/components/navigation/tainacan-subheader.vue diff --git a/src/admin/components/lists/items-list.vue b/src/admin/components/lists/items-list.vue index 318bf8a73..acc457ddb 100644 --- a/src/admin/components/lists/items-list.vue +++ b/src/admin/components/lists/items-list.vue @@ -182,8 +182,6 @@ export default { if( ! metadata || metadata.value === false || metadata.value == undefined ) return ''; - else if (metadata) - return metadata.value_as_html; else return metadata.value_as_html; } diff --git a/src/admin/components/navigation/tainacan-header.vue b/src/admin/components/navigation/tainacan-header.vue index cf42a32a7..5abaac6e5 100644 --- a/src/admin/components/navigation/tainacan-header.vue +++ b/src/admin/components/navigation/tainacan-header.vue @@ -5,17 +5,19 @@ :class="{'secondary-page': onSecondaryPage}">
-

{{ pageTitle }}

@@ -142,7 +145,7 @@ export default { // Tainacan Header #tainacan-header { - background-color: $header-color; + background-color: $primary; height: $header-height; max-height: $header-height; width: 100%; diff --git a/src/admin/components/navigation/tainacan-subheader.vue b/src/admin/components/navigation/tainacan-subheader.vue new file mode 100644 index 000000000..bc5a91ecb --- /dev/null +++ b/src/admin/components/navigation/tainacan-subheader.vue @@ -0,0 +1,238 @@ + + + + + + + diff --git a/src/admin/scss/_variables.scss b/src/admin/scss/_variables.scss index a4b2d1f72..ff5a8daee 100644 --- a/src/admin/scss/_variables.scss +++ b/src/admin/scss/_variables.scss @@ -19,7 +19,6 @@ $success: #25a189; $success-invert: findColorInvert($success); $separator-color: #2a6e77; -$header-color: #ececec; $tainacan-input-color: #f0f0f0; $draggable-border-color: #d8d8d8; From 4352ac404cc4b29933f36a60eac1bb158e289e25 Mon Sep 17 00:00:00 2001 From: Mateus Machado Luna Date: Tue, 10 Apr 2018 12:48:06 -0300 Subject: [PATCH 25/46] Fixes Visible Talbe fields issue. Removes description from sorting options. --- src/admin/components/lists/items-list.vue | 2 +- src/admin/components/search/search-control.vue | 6 +++--- src/admin/pages/lists/items-page.vue | 4 +++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/admin/components/lists/items-list.vue b/src/admin/components/lists/items-list.vue index acc457ddb..88b435b36 100644 --- a/src/admin/components/lists/items-list.vue +++ b/src/admin/components/lists/items-list.vue @@ -180,7 +180,7 @@ export default { }, renderMetadata( metadata ){ - if( ! metadata || metadata.value === false || metadata.value == undefined ) + if( !metadata ) return ''; else return metadata.value_as_html; diff --git a/src/admin/components/search/search-control.vue b/src/admin/components/search/search-control.vue index ecbccef72..350fe92c9 100644 --- a/src/admin/components/search/search-control.vue +++ b/src/admin/components/search/search-control.vue @@ -15,8 +15,8 @@ custom> - {{ column.label }} + :native-value="column.slug"> + {{ column.name }} @@ -28,7 +28,7 @@ :placeholder="$i18n.get('label_sorting')">
+ +
@@ -157,7 +158,7 @@ export default { position: 'is-bottom', type: 'is-secondary', queue: true - }) + }); for (let i = 0; i < this.selectedCollections.length; i++) { if (this.selectedCollections[i].id == this.collectionId) this.selectedCollections.splice(i, 1); diff --git a/src/admin/pages/lists/collections-page.vue b/src/admin/pages/lists/collections-page.vue index 14702084c..7196ba94e 100644 --- a/src/admin/pages/lists/collections-page.vue +++ b/src/admin/pages/lists/collections-page.vue @@ -1,6 +1,8 @@