Fetches metadata inside modal and renders facets on block.
This commit is contained in:
parent
2f038fac12
commit
183d09b141
4
build.sh
4
build.sh
|
@ -13,12 +13,12 @@ current_OS=`uname`
|
|||
# For macOS (Darwin)
|
||||
if [ $current_OS == "Darwin" ]; then
|
||||
find src ./webpack.config.js -type f \( -name "*.js" -or -name "*.vue" -or -name "webpack.config.js" \) -exec md5 {} \; | sort -k 2 | md5 > last-js-build.md5
|
||||
find ./src/scss/ ./src/admin/scss/ ./src/gutenberg-blocks/ ./src/gutenberg-blocks/tainacan-collections/collections-list ./src/gutenberg-blocks/tainacan-items/dynamic-items-list ./src/gutenberg-blocks/tainacan-items/items-list ./src/gutenberg-blocks/tainacan-terms/terms-list -type f \( -name "*.scss" \) -exec md5 {} \; | sort -k 2 | md5 > last-sass-build.md5
|
||||
find ./src/scss/ ./src/admin/scss/ ./src/gutenberg-blocks/ ./src/gutenberg-blocks/tainacan-collections/collections-list ./src/gutenberg-blocks/tainacan-facets/facets-list ./src/gutenberg-blocks/tainacan-items/dynamic-items-list ./src/gutenberg-blocks/tainacan-items/items-list ./src/gutenberg-blocks/tainacan-terms/terms-list -type f \( -name "*.scss" \) -exec md5 {} \; | sort -k 2 | md5 > last-sass-build.md5
|
||||
find ./composer.json -type f \( -name "composer.json" \) -exec md5 {} \; | sort -k 2 | md5 > last-composer-build.md5
|
||||
find ./package.json -type f \( -name "package.json" -or -name "package-lock.json" \) -exec md5 {} \; | sort -k 2 | md5 > last-package-build.md5
|
||||
else
|
||||
find src ./webpack.config.js -type f \( -name "*.js" -or -name "*.vue" -or -name "webpack.config.js" \) -exec md5sum {} \; | sort -k 2 | md5sum > last-js-build.md5
|
||||
find ./src/scss/ ./src/admin/scss/ ./src/gutenberg-blocks ./src/gutenberg-blocks/tainacan-collections/collections-list ./src/gutenberg-blocks/tainacan-items/dynamic-items-list ./src/gutenberg-blocks/tainacan-items/items-list ./src/gutenberg-blocks/tainacan-terms/terms-list -type f \( -name "*.scss" \) -exec md5sum {} \; | sort -k 2 | md5sum > last-sass-build.md5
|
||||
find ./src/scss/ ./src/admin/scss/ ./src/gutenberg-blocks ./src/gutenberg-blocks/tainacan-collections/collections-list ./src/gutenberg-blocks/tainacan-facets/facets-list ./src/gutenberg-blocks/tainacan-items/dynamic-items-list ./src/gutenberg-blocks/tainacan-items/items-list ./src/gutenberg-blocks/tainacan-terms/terms-list -type f \( -name "*.scss" \) -exec md5sum {} \; | sort -k 2 | md5sum > last-sass-build.md5
|
||||
find ./composer.json -type f \( -name "composer.json" \) -exec md5sum {} \; | sort -k 2 | md5sum > last-composer-build.md5
|
||||
find ./package.json -type f \( -name "package.json" -or -name "package-lock.json" \) -exec md5sum {} \; | sort -k 2 | md5sum > last-package-build.md5
|
||||
fi
|
||||
|
|
|
@ -21,5 +21,7 @@ sass -E 'UTF-8' --cache-location .tmp/sass-cache-5 src/gutenberg-blocks/tainacan
|
|||
|
||||
sass -E 'UTF-8' --cache-location .tmp/sass-cache-6 src/gutenberg-blocks/tainacan-terms/terms-list/terms-list.scss:src/assets/css/tainacan-gutenberg-block-terms-list.css
|
||||
|
||||
sass -E 'UTF-8' --cache-location .tmp/sass-cache-7 src/gutenberg-blocks/tainacan-facets/facets-list/facets-list.scss:src/assets/css/tainacan-gutenberg-block-facets-list.css
|
||||
|
||||
echo "Compilação do Sass Concluído!"
|
||||
exit 0
|
||||
|
|
|
@ -0,0 +1,447 @@
|
|||
.block-control {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 5px;
|
||||
position: relative;
|
||||
top: -14px;
|
||||
left: -14px;
|
||||
width: calc(100% + 28px);
|
||||
background: #f2f2f2; }
|
||||
.block-control p {
|
||||
font-size: 0.875rem !important;
|
||||
margin: 12px 1.5rem 16px 0;
|
||||
fill: #555758; }
|
||||
.block-control p svg {
|
||||
top: 4px;
|
||||
margin-right: 0.75rem;
|
||||
position: relative;
|
||||
fill: #555758; }
|
||||
|
||||
.components-placeholder__fieldset p {
|
||||
font-size: 0.875rem !important;
|
||||
margin-top: -2px;
|
||||
fill: #555758; }
|
||||
.components-placeholder__fieldset p svg {
|
||||
margin-right: 1rem;
|
||||
top: 4px;
|
||||
position: relative;
|
||||
fill: #555758; }
|
||||
|
||||
.wp-block-tainacan-modal {
|
||||
width: 50%; }
|
||||
@media only screen and (max-width: 1024px) {
|
||||
.wp-block-tainacan-modal {
|
||||
width: 75%; } }
|
||||
@media only screen and (max-width: 768px) {
|
||||
.wp-block-tainacan-modal {
|
||||
width: 100%; } }
|
||||
.wp-block-tainacan-modal.dynamic-modal {
|
||||
width: 90%;
|
||||
height: 90%;
|
||||
width: 80vw;
|
||||
height: 80vh; }
|
||||
.wp-block-tainacan-modal.dynamic-modal iframe {
|
||||
width: calc(100% + 32px);
|
||||
height: calc(100% - 128px);
|
||||
margin-left: -16px; }
|
||||
.wp-block-tainacan-modal.dynamic-modal .modal-footer-area {
|
||||
height: 68px;
|
||||
width: calc(100% + 32px);
|
||||
margin-left: -16px !important;
|
||||
padding: 1.2rem 1.2rem !important;
|
||||
border-top: 1px solid #cbcbcb; }
|
||||
.wp-block-tainacan-modal .spinner-container {
|
||||
min-height: 56px;
|
||||
padding: 1rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: #555758; }
|
||||
.wp-block-tainacan-modal .spinner-container .components-spineer {
|
||||
margin: 8px; }
|
||||
.wp-block-tainacan-modal .modal-search-area {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin-bottom: 24px; }
|
||||
.wp-block-tainacan-modal .modal-search-area .components-base-control {
|
||||
width: 60%; }
|
||||
@media only screen and (max-width: 1024px) {
|
||||
.wp-block-tainacan-modal .modal-search-area .components-base-control {
|
||||
width: 95%; } }
|
||||
.wp-block-tainacan-modal .modal-search-area .components-base-control label {
|
||||
text-align: center; }
|
||||
.wp-block-tainacan-modal .modal-radio-area-label {
|
||||
font-weight: bold;
|
||||
margin-left: 1.75rem; }
|
||||
.wp-block-tainacan-modal .modal-checkbox-list,
|
||||
.wp-block-tainacan-modal .modal-radio-list .components-base-control__field {
|
||||
padding: 0;
|
||||
display: -ms-grid;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, 250px);
|
||||
grid-gap: 0px;
|
||||
justify-content: space-evenly;
|
||||
list-style-type: none;
|
||||
margin: 12px;
|
||||
max-height: 50vh;
|
||||
overflow-y: auto; }
|
||||
.wp-block-tainacan-modal .modal-checkbox-list .components-base-control,
|
||||
.wp-block-tainacan-modal .modal-radio-list .components-base-control__field .components-base-control {
|
||||
overflow: hidden; }
|
||||
.wp-block-tainacan-modal .modal-checkbox-list .modal-checkbox-list-item,
|
||||
.wp-block-tainacan-modal .modal-checkbox-list .components-radio-control__option,
|
||||
.wp-block-tainacan-modal .modal-radio-list .components-base-control__field .modal-checkbox-list-item,
|
||||
.wp-block-tainacan-modal .modal-radio-list .components-base-control__field .components-radio-control__option {
|
||||
display: flex;
|
||||
justify-content: flex-start; }
|
||||
.wp-block-tainacan-modal .modal-checkbox-list .modal-checkbox-list-item img,
|
||||
.wp-block-tainacan-modal .modal-checkbox-list .components-radio-control__option img,
|
||||
.wp-block-tainacan-modal .modal-radio-list .components-base-control__field .modal-checkbox-list-item img,
|
||||
.wp-block-tainacan-modal .modal-radio-list .components-base-control__field .components-radio-control__option img {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin-right: 10px; }
|
||||
.wp-block-tainacan-modal .modal-checkbox-list .modal-checkbox-list-item label,
|
||||
.wp-block-tainacan-modal .modal-checkbox-list .components-radio-control__option label,
|
||||
.wp-block-tainacan-modal .modal-radio-list .components-base-control__field .modal-checkbox-list-item label,
|
||||
.wp-block-tainacan-modal .modal-radio-list .components-base-control__field .components-radio-control__option label {
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
display: inline-block;
|
||||
max-width: 85%; }
|
||||
@media only screen and (max-width: 768px) {
|
||||
.wp-block-tainacan-modal .modal-checkbox-list .modal-checkbox-list-item label,
|
||||
.wp-block-tainacan-modal .modal-checkbox-list .components-radio-control__option label,
|
||||
.wp-block-tainacan-modal .modal-radio-list .components-base-control__field .modal-checkbox-list-item label,
|
||||
.wp-block-tainacan-modal .modal-radio-list .components-base-control__field .components-radio-control__option label {
|
||||
max-width: 80%; } }
|
||||
.wp-block-tainacan-modal .modal-loadmore-section {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
justify-content: center; }
|
||||
.wp-block-tainacan-modal .modal-loadmore-section p {
|
||||
color: #555758;
|
||||
margin-right: 12px;
|
||||
margin-top: 2px; }
|
||||
.wp-block-tainacan-modal .modal-footer-area {
|
||||
border-top: 1px solid #e2e4e7;
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
justify-content: space-between;
|
||||
padding: 16px 16px 0 16px;
|
||||
margin: 0 -16px; }
|
||||
|
||||
.wp-block-tainacan-facets-list {
|
||||
margin: 2rem 0px; }
|
||||
.wp-block-tainacan-facets-list .spinner-container {
|
||||
min-height: 56px;
|
||||
padding: 1rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: #555758; }
|
||||
@-webkit-keyframes skeleton-animation {
|
||||
0% {
|
||||
opacity: 1.0; }
|
||||
50% {
|
||||
opacity: 0.2; }
|
||||
100% {
|
||||
opacity: 1.0; } }
|
||||
@-moz-keyframes skeleton-animation {
|
||||
0% {
|
||||
opacity: 1.0; }
|
||||
50% {
|
||||
opacity: 0.2; }
|
||||
100% {
|
||||
opacity: 1.0; } }
|
||||
@-o-keyframes skeleton-animation {
|
||||
0% {
|
||||
opacity: 1.0; }
|
||||
50% {
|
||||
opacity: 0.2; }
|
||||
100% {
|
||||
opacity: 1.0; } }
|
||||
@keyframes skeleton-animation {
|
||||
0% {
|
||||
opacity: 1.0; }
|
||||
50% {
|
||||
opacity: 0.2; }
|
||||
100% {
|
||||
opacity: 1.0; } }
|
||||
.wp-block-tainacan-facets-list .skeleton {
|
||||
border-radius: 2px;
|
||||
background: #f2f2f2;
|
||||
-webkit-animation: skeleton-animation 1.8s ease infinite;
|
||||
-moz-animation: skeleton-animation 1.8s ease infinite;
|
||||
-o-animation: skeleton-animation 1.8s ease infinite;
|
||||
animation: skeleton-animation 1.8s ease infinite; }
|
||||
.wp-block-tainacan-facets-list .facets-collection-header {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
align-items: stretch;
|
||||
text-decoration: none !important; }
|
||||
.wp-block-tainacan-facets-list .facets-collection-header:hover {
|
||||
text-decoration: none; }
|
||||
.wp-block-tainacan-facets-list .facets-collection-header .collection-name {
|
||||
width: auto;
|
||||
min-width: 350px;
|
||||
flex-grow: 1;
|
||||
padding: 1rem 100px 1rem 1rem;
|
||||
text-align: right;
|
||||
line-height: 1.5rem;
|
||||
min-height: 165px;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
background-color: #454647; }
|
||||
.wp-block-tainacan-facets-list .facets-collection-header .collection-name h3 {
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
font-size: 1.3rem; }
|
||||
.wp-block-tainacan-facets-list .facets-collection-header .collection-name h3:hover {
|
||||
text-decoration: none; }
|
||||
.wp-block-tainacan-facets-list .facets-collection-header .collection-name span.label {
|
||||
font-weight: normal;
|
||||
font-size: 1rem; }
|
||||
.wp-block-tainacan-facets-list .facets-collection-header .collection-name.only-collection-name {
|
||||
justify-content: center;
|
||||
padding: 1rem; }
|
||||
.wp-block-tainacan-facets-list .facets-collection-header .collection-name.only-collection-name h3 {
|
||||
text-align: center;
|
||||
font-size: 1.75rem; }
|
||||
.wp-block-tainacan-facets-list .facets-collection-header .collection-thumbnail {
|
||||
height: 145px;
|
||||
width: 145px;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
border-radius: 80px;
|
||||
border: 4px solid white;
|
||||
margin: 10px;
|
||||
flex-shrink: 0;
|
||||
position: relative;
|
||||
margin-left: -155px;
|
||||
left: 82px;
|
||||
background-color: #dbdbdb; }
|
||||
.wp-block-tainacan-facets-list .facets-collection-header .collection-header-image {
|
||||
width: auto;
|
||||
min-width: 150px;
|
||||
min-height: 165px;
|
||||
flex-grow: 2;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
background-color: #dbdbdb; }
|
||||
@media only screen and (max-width: 1024px) {
|
||||
.wp-block-tainacan-facets-list .facets-collection-header {
|
||||
flex-wrap: wrap-reverse; }
|
||||
.wp-block-tainacan-facets-list .facets-collection-header .collection-name {
|
||||
width: 100% !important;
|
||||
min-width: 100% !important;
|
||||
justify-content: center !important;
|
||||
text-align: center !important;
|
||||
padding: 64px 1rem 0rem 1rem; }
|
||||
.wp-block-tainacan-facets-list .facets-collection-header .collection-name h3 {
|
||||
margin-bottom: 1rem; }
|
||||
.wp-block-tainacan-facets-list .facets-collection-header .collection-thumbnail {
|
||||
left: calc(-50% + 78px) !important;
|
||||
top: -78px !important; }
|
||||
.wp-block-tainacan-facets-list .facets-collection-header .collection-header-image {
|
||||
background-color: transparent; } }
|
||||
.wp-block-tainacan-facets-list .facets-search-bar {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-bottom: 1px solid #cbcbcb;
|
||||
padding: 1.00rem 0.5rem 0.75rem 0.5rem; }
|
||||
@media only screen and (max-width: 768px) {
|
||||
.wp-block-tainacan-facets-list .facets-search-bar {
|
||||
flex-wrap: wrap; }
|
||||
.wp-block-tainacan-facets-list .facets-search-bar .search-button {
|
||||
order: 4;
|
||||
position: absolute;
|
||||
margin-top: 37px; }
|
||||
.wp-block-tainacan-facets-list .facets-search-bar input {
|
||||
width: 100% !important;
|
||||
order: 5;
|
||||
margin-top: 8px;
|
||||
margin-left: 0px !important;
|
||||
padding-left: 4px !important;
|
||||
border-color: #dbdbdb !important; } }
|
||||
.wp-block-tainacan-facets-list .facets-search-bar button {
|
||||
margin-right: 0.75rem;
|
||||
padding: 0 0.35rem;
|
||||
min-height: 28px;
|
||||
z-index: 2;
|
||||
border: none;
|
||||
background: transparent;
|
||||
cursor: pointer; }
|
||||
.wp-block-tainacan-facets-list .facets-search-bar button svg {
|
||||
fill: #cbcbcb;
|
||||
transition: fill 0.4s ease; }
|
||||
.wp-block-tainacan-facets-list .facets-search-bar button:hover svg {
|
||||
fill: #545758; }
|
||||
.wp-block-tainacan-facets-list .facets-search-bar button:focus, .wp-block-tainacan-facets-list .facets-search-bar button:active {
|
||||
border: none;
|
||||
box-shadow: none; }
|
||||
.wp-block-tainacan-facets-list .facets-search-bar button.sorting-button-selected svg {
|
||||
fill: #545758; }
|
||||
.wp-block-tainacan-facets-list .facets-search-bar button.next-button {
|
||||
margin-right: 0rem;
|
||||
padding: 0; }
|
||||
.wp-block-tainacan-facets-list .facets-search-bar button.next-button svg {
|
||||
fill: #298596; }
|
||||
.wp-block-tainacan-facets-list .facets-search-bar button.previous-button {
|
||||
margin-left: auto;
|
||||
margin-right: 1rem;
|
||||
padding: 0; }
|
||||
.wp-block-tainacan-facets-list .facets-search-bar button.previous-button svg {
|
||||
fill: #298596; }
|
||||
.wp-block-tainacan-facets-list .facets-search-bar button[disabled] svg {
|
||||
fill: #f2f2f2;
|
||||
cursor: not-allowed; }
|
||||
.wp-block-tainacan-facets-list .facets-search-bar input {
|
||||
height: 32px;
|
||||
width: 20%;
|
||||
border-radius: 0;
|
||||
margin-left: -52px;
|
||||
padding-left: 52px;
|
||||
border: 1px solid white;
|
||||
transition: border-color 0.7s ease, width 0.5s ease-in; }
|
||||
.wp-block-tainacan-facets-list .facets-search-bar input:focus, .wp-block-tainacan-facets-list .facets-search-bar input:active, .wp-block-tainacan-facets-list .facets-search-bar input:hover {
|
||||
width: 100%;
|
||||
border: 1px solid #cbcbcb;
|
||||
box-shadow: none; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list.facets-list-without-margin,
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit.facets-list-without-margin {
|
||||
grid-template-columns: repeat(auto-fill, 185px);
|
||||
justify-content: center !important;
|
||||
grid-template-rows: auto !important;
|
||||
list-style: none; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list.facets-list-without-margin li,
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit.facets-list-without-margin li {
|
||||
margin-top: 0 !important;
|
||||
margin-right: 0 !important;
|
||||
margin-left: 0 !important;
|
||||
height: 185px !important; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list.facets-list-without-margin li img,
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit.facets-list-without-margin li img {
|
||||
height: 185px !important;
|
||||
margin-bottom: 0px !important; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list.facets-layout-grid,
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit.facets-layout-grid {
|
||||
padding: 0;
|
||||
display: -ms-grid;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, 220px);
|
||||
grid-gap: 0px;
|
||||
justify-content: space-evenly;
|
||||
list-style-type: none; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list.facets-layout-grid li.facet-list-item,
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit.facets-layout-grid li.facet-list-item {
|
||||
position: relative;
|
||||
display: block;
|
||||
margin: 12px 12px 24px 12px;
|
||||
margin-bottom: 12px;
|
||||
width: 185px; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list.facets-layout-grid li.facet-list-item a,
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit.facets-layout-grid li.facet-list-item a {
|
||||
color: #454647;
|
||||
font-weight: bold;
|
||||
line-height: normal; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list.facets-layout-grid li.facet-list-item img,
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit.facets-layout-grid li.facet-list-item img {
|
||||
height: auto;
|
||||
width: 185px;
|
||||
min-width: 185px;
|
||||
padding: 0px;
|
||||
margin-bottom: 0.5rem; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list.facets-layout-grid li.facet-list-item a.facet-without-title span,
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit.facets-layout-grid li.facet-list-item a.facet-without-title span {
|
||||
display: none; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list.facets-layout-grid li.facet-list-item span.facet-item-count,
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit.facets-layout-grid li.facet-list-item span.facet-item-count {
|
||||
color: #555758; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list.facets-layout-grid li.facet-list-item:hover a,
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit.facets-layout-grid li.facet-list-item:hover a {
|
||||
color: #454647;
|
||||
text-decoration: none; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit li.facet-list-item {
|
||||
display: flex;
|
||||
align-items: flex-start; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit li.facet-list-item button {
|
||||
position: absolute !important;
|
||||
background-color: rgba(255, 255, 255, 0.75);
|
||||
color: #454647;
|
||||
padding: 2px;
|
||||
margin-left: 5px;
|
||||
min-width: 14px;
|
||||
visibility: hidden;
|
||||
position: relative;
|
||||
opacity: 0;
|
||||
right: -14px;
|
||||
top: 0px;
|
||||
justify-content: center;
|
||||
z-index: 999; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit li.facet-list-item:hover button {
|
||||
visibility: visible;
|
||||
background-color: white !important;
|
||||
opacity: 1;
|
||||
right: -8px;
|
||||
top: -8px;
|
||||
border: 1px solid #cbcbcb;
|
||||
border-radius: 12px;
|
||||
transition: opacity linear 0.15s, right linear 0.15s; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit li.facet-list-item:hover button:hover {
|
||||
background-color: white !important;
|
||||
border: 1px solid #cbcbcb !important; }
|
||||
@media only screen and (max-width: 498px) {
|
||||
.wp-block-tainacan-facets-list ul.facets-list.facets-layout-grid,
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit.facets-layout-grid {
|
||||
grid-template-columns: repeat(auto-fill, 100%); }
|
||||
.wp-block-tainacan-facets-list ul.facets-list.facets-layout-grid li.facet-list-item,
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit.facets-layout-grid li.facet-list-item {
|
||||
width: 100%; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list.facets-layout-grid li.facet-list-item img,
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit.facets-layout-grid li.facet-list-item img {
|
||||
width: 100%; } }
|
||||
.wp-block-tainacan-facets-list ul.facets-list.facets-layout-list,
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit.facets-layout-list {
|
||||
padding: 0;
|
||||
display: block;
|
||||
list-style-type: none; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list.facets-layout-list li.facet-list-item,
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit.facets-layout-list li.facet-list-item {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
margin: 12px 12px 24px 12px;
|
||||
margin-bottom: 12px;
|
||||
min-height: 54px;
|
||||
min-width: 22%;
|
||||
width: 22%; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list.facets-layout-list li.facet-list-item a,
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit.facets-layout-list li.facet-list-item a {
|
||||
color: #454647;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 54px; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list.facets-layout-list li.facet-list-item img,
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit.facets-layout-list li.facet-list-item img {
|
||||
height: auto;
|
||||
width: 54px;
|
||||
min-width: 54px;
|
||||
padding: 0px;
|
||||
margin-right: 20px; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list.facets-layout-list li.facet-list-item a.facet-without-image img,
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit.facets-layout-list li.facet-list-item a.facet-without-image img {
|
||||
display: none; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list.facets-layout-list li.facet-list-item span.facet-item-count,
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit.facets-layout-list li.facet-list-item span.facet-item-count {
|
||||
color: #555758; }
|
||||
.wp-block-tainacan-facets-list ul.facets-list.facets-layout-list li.facet-list-item:hover a,
|
||||
.wp-block-tainacan-facets-list ul.facets-list-edit.facets-layout-list li.facet-list-item:hover a {
|
||||
color: #454647;
|
||||
text-decoration: none; }
|
||||
|
||||
/*# sourceMappingURL=tainacan-gutenberg-block-facets-list.css.map */
|
File diff suppressed because one or more lines are too long
|
@ -269,6 +269,9 @@
|
|||
a.facet-without-title span {
|
||||
display: none;
|
||||
}
|
||||
span.facet-item-count {
|
||||
color: #555758;
|
||||
}
|
||||
|
||||
&:hover a {
|
||||
color: #454647;
|
||||
|
@ -361,6 +364,9 @@
|
|||
a.facet-without-image img {
|
||||
display: none;
|
||||
}
|
||||
span.facet-item-count {
|
||||
color: #555758;
|
||||
}
|
||||
|
||||
&:hover a {
|
||||
color: #454647;
|
||||
|
|
|
@ -6,7 +6,7 @@ const { RangeControl, Spinner, Button, ToggleControl, Tooltip, Placeholder, Tool
|
|||
|
||||
const { InspectorControls, BlockControls } = wp.editor;
|
||||
|
||||
import FacetsModal from './facets-modal.js';
|
||||
import MetadataModal from './metadata-modal.js';
|
||||
import tainacan from '../../api-client/axios.js';
|
||||
import axios from 'axios';
|
||||
import qs from 'qs';
|
||||
|
@ -59,7 +59,7 @@ registerBlockType('tainacan/facets-list', {
|
|||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
searchURL: {
|
||||
metadatumId: {
|
||||
type: String,
|
||||
default: undefined
|
||||
},
|
||||
|
@ -130,7 +130,7 @@ registerBlockType('tainacan/facets-list', {
|
|||
layout,
|
||||
isModalOpen,
|
||||
gridMargin,
|
||||
searchURL,
|
||||
metadatumId,
|
||||
facetsRequestSource,
|
||||
maxFacetsNumber,
|
||||
order,
|
||||
|
@ -171,8 +171,9 @@ registerBlockType('tainacan/facets-list', {
|
|||
:
|
||||
`${tainacan_plugin.base_url}/admin/images/placeholder_square.png`)
|
||||
}
|
||||
alt={ facet.title ? facet.title : __( 'Thumbnail', 'tainacan' ) }/>
|
||||
<span>{ facet.title ? facet.title : '' }</span>
|
||||
alt={ facet.label ? facet.label : __( 'Thumbnail', 'tainacan' ) }/>
|
||||
<span>{ facet.label ? facet.label : '' }</span>
|
||||
{ facet.total_items ? <span class="facet-item-count"> ({ facet.total_items })</span> : null }
|
||||
</a>
|
||||
</li>
|
||||
);
|
||||
|
@ -192,7 +193,7 @@ registerBlockType('tainacan/facets-list', {
|
|||
isLoading: isLoading
|
||||
});
|
||||
|
||||
let endpoint = '/collection' + searchURL.split('#')[1].split('/collections')[1];
|
||||
let endpoint = collectionId != 'default' ? '/collection/' + collectionId + '/facets/' + metadatumId : '/facets/' + metadatumId;
|
||||
let query = endpoint.split('?')[1];
|
||||
let queryObject = qs.parse(query);
|
||||
|
||||
|
@ -232,12 +233,12 @@ registerBlockType('tainacan/facets-list', {
|
|||
delete queryObject.admin_view_mode;
|
||||
delete queryObject.fetch_only_meta;
|
||||
|
||||
endpoint = endpoint.split('?')[0] + '?' + qs.stringify(queryObject) + '&fetch_only=title,url,thumbnail';
|
||||
endpoint = endpoint.split('?')[0] + '?' + qs.stringify(queryObject);
|
||||
|
||||
tainacan.get(endpoint, { cancelToken: facetsRequestSource.token })
|
||||
.then(response => {
|
||||
|
||||
for (let facet of response.data.facets)
|
||||
for (let facet of response.data.values)
|
||||
facets.push(prepareFacet(facet));
|
||||
|
||||
setAttributes({
|
||||
|
@ -283,7 +284,7 @@ registerBlockType('tainacan/facets-list', {
|
|||
}
|
||||
}
|
||||
|
||||
function openFacetsModal() {
|
||||
function openMetadataModal() {
|
||||
isModalOpen = true;
|
||||
setAttributes( {
|
||||
isModalOpen: isModalOpen
|
||||
|
@ -491,18 +492,18 @@ registerBlockType('tainacan/facets-list', {
|
|||
(
|
||||
<div>
|
||||
{ isModalOpen ?
|
||||
<FacetsModal
|
||||
<MetadataModal
|
||||
existingCollectionId={ collectionId }
|
||||
existingSearchURL={ searchURL }
|
||||
existingMetadatumId={ metadatumId }
|
||||
onSelectCollection={ (selectedCollectionId) => {
|
||||
collectionId = selectedCollectionId;
|
||||
setAttributes({ collectionId: collectionId });
|
||||
fetchCollectionForHeader();
|
||||
}}
|
||||
onApplySearchURL={ (aSearchURL) =>{
|
||||
searchURL = aSearchURL
|
||||
onSelectMetadatum={ (selectedFacetId) =>{
|
||||
metadatumId = selectedFacetId;
|
||||
setAttributes({
|
||||
searchURL: searchURL,
|
||||
metadatumId: metadatumId,
|
||||
isModalOpen: false
|
||||
});
|
||||
setContent();
|
||||
|
@ -528,7 +529,7 @@ registerBlockType('tainacan/facets-list', {
|
|||
<Button
|
||||
isPrimary
|
||||
type="submit"
|
||||
onClick={ () => openFacetsModal() }>
|
||||
onClick={ () => openMetadataModal() }>
|
||||
{__('Configure search', 'tainacan')}
|
||||
</Button>
|
||||
</div>
|
||||
|
@ -704,7 +705,7 @@ registerBlockType('tainacan/facets-list', {
|
|||
<Button
|
||||
isPrimary
|
||||
type="submit"
|
||||
onClick={ () => openFacetsModal() }>
|
||||
onClick={ () => openMetadataModal() }>
|
||||
{__('Select facets', 'tainacan')}
|
||||
</Button>
|
||||
</Placeholder>
|
||||
|
@ -738,7 +739,7 @@ registerBlockType('tainacan/facets-list', {
|
|||
showName,
|
||||
layout,
|
||||
gridMargin,
|
||||
searchURL,
|
||||
metadatumId,
|
||||
maxFacetsNumber,
|
||||
order,
|
||||
showSearchBar,
|
||||
|
@ -749,8 +750,8 @@ registerBlockType('tainacan/facets-list', {
|
|||
} = attributes;
|
||||
|
||||
return <div
|
||||
search-url={ searchURL }
|
||||
className={ className }
|
||||
metadatum-id={ metadatumId }
|
||||
collection-id={ collectionId }
|
||||
show-image={ '' + showImage }
|
||||
show-name={ '' + showName }
|
||||
|
|
|
@ -5,7 +5,7 @@ const { __ } = wp.i18n;
|
|||
|
||||
const { TextControl, Button, Modal, RadioControl, Spinner } = wp.components;
|
||||
|
||||
export default class FacetsModal extends React.Component {
|
||||
export default class MetadataModal extends React.Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
|
@ -20,9 +20,13 @@ export default class FacetsModal extends React.Component {
|
|||
collectionPage: 1,
|
||||
temporaryCollectionId: '',
|
||||
searchCollectionName: '',
|
||||
metadatumId: undefined,
|
||||
isLoadingMetadata: false,
|
||||
modalMetadata: [],
|
||||
temporaryMetadatumId: '',
|
||||
collections: [],
|
||||
collectionsRequestSource: undefined,
|
||||
searchURL: '',
|
||||
metadataRequestSource: undefined
|
||||
};
|
||||
|
||||
// Bind events
|
||||
|
@ -31,7 +35,8 @@ export default class FacetsModal extends React.Component {
|
|||
this.fetchCollections = this.fetchCollections.bind(this);
|
||||
this.fetchModalCollections = this.fetchModalCollections.bind(this);
|
||||
this.fetchCollection = this.fetchCollection.bind(this);
|
||||
this.applySelectedSearchURL = this.applySelectedSearchURL.bind(this);
|
||||
this.selectMetadatum = this.selectMetadatum.bind(this);
|
||||
this.fetchModalMetadata = this.fetchModalMetadata.bind(this);
|
||||
}
|
||||
|
||||
componentWillMount() {
|
||||
|
@ -39,10 +44,10 @@ export default class FacetsModal extends React.Component {
|
|||
this.setState({
|
||||
collectionId: this.props.existingCollectionId
|
||||
});
|
||||
|
||||
if (this.props.existingCollectionId != null && this.props.existingCollectionId != undefined) {
|
||||
this.fetchCollection(this.props.existingCollectionId);
|
||||
this.setState({ searchURL: this.props.existingSearchURL ? this.props.existingSearchURL : tainacan_plugin.admin_url + 'admin.php?page=tainacan_admin#/collections/'+ this.props.existingCollectionId + '/facets/?readmode=true&iframemode=true' });
|
||||
this.fetchModalMetadata(this.props.existingCollectionId);
|
||||
this.setState({ metadatumId: this.props.existingMetadatumId ? this.props.existingMetadatumId : undefined });
|
||||
} else {
|
||||
this.setState({ collectionPage: 1 });
|
||||
this.fetchModalCollections();
|
||||
|
@ -90,22 +95,27 @@ export default class FacetsModal extends React.Component {
|
|||
}
|
||||
|
||||
fetchCollection(collectionId) {
|
||||
tainacan.get('/collections/' + collectionId)
|
||||
.then((response) => {
|
||||
this.setState({ collectionName: response.data.name });
|
||||
}).catch(error => {
|
||||
console.log('Error trying to fetch collection: ' + error);
|
||||
});
|
||||
if (collectionId != 'default') {
|
||||
tainacan.get('/collections/' + collectionId)
|
||||
.then((response) => {
|
||||
this.setState({ collectionName: response.data.name });
|
||||
}).catch(error => {
|
||||
console.log('Error trying to fetch collection: ' + error);
|
||||
});
|
||||
} else {
|
||||
this.setState({ collectionName: __('Repository', 'tainacan') });
|
||||
}
|
||||
}
|
||||
|
||||
selectCollection(selectedCollectionId) {
|
||||
|
||||
this.setState({
|
||||
collectionId: selectedCollectionId,
|
||||
searchURL: tainacan_plugin.admin_url + 'admin.php?page=tainacan_admin#/collections/' + selectedCollectionId + '/facets/?readmode=true&iframemode=true'
|
||||
collectionId: selectedCollectionId
|
||||
});
|
||||
|
||||
this.props.onSelectCollection(selectedCollectionId);
|
||||
this.fetchCollection(selectedCollectionId);
|
||||
this.fetchModalMetadata(selectedCollectionId);
|
||||
}
|
||||
|
||||
fetchCollections(name) {
|
||||
|
@ -119,7 +129,7 @@ export default class FacetsModal extends React.Component {
|
|||
collectionsRequestSource: aCollectionRequestSource,
|
||||
isLoadingCollections: true,
|
||||
collections: [],
|
||||
facets: []
|
||||
metadata: []
|
||||
});
|
||||
|
||||
let endpoint = '/collections/?orderby=title&order=asc&perpage=' + this.state.collectionsPerPage;
|
||||
|
@ -142,10 +152,6 @@ export default class FacetsModal extends React.Component {
|
|||
});
|
||||
}
|
||||
|
||||
applySelectedSearchURL() {
|
||||
this.props.onApplySearchURL(document.getElementById("facetsFrame").contentWindow.location.href);
|
||||
}
|
||||
|
||||
resetCollections() {
|
||||
|
||||
this.setState({
|
||||
|
@ -165,37 +171,104 @@ export default class FacetsModal extends React.Component {
|
|||
this.props.onCancelSelection();
|
||||
}
|
||||
|
||||
|
||||
// FACETS RELATED --------------------------------------------------
|
||||
fetchModalMetadata(selectedCollectionId) {
|
||||
|
||||
let someModalMetadata = [];
|
||||
let endpoint = selectedCollectionId != 'default' ? '/collection/' + selectedCollectionId + '/metadata/?nopaging=1' : '/metadata/?nopaging=1';
|
||||
|
||||
this.setState({
|
||||
isLoadingMetadata: true,
|
||||
modalMetadata: someModalMetadata
|
||||
});
|
||||
|
||||
tainacan.get(endpoint)
|
||||
.then(response => {
|
||||
|
||||
let otherModalMetadata = this.state.modalMetadata;
|
||||
|
||||
for (let metadatum of response.data) {
|
||||
otherModalMetadata.push({
|
||||
name: metadatum.name,
|
||||
id: metadatum.id,
|
||||
type: metadatum.metadata_type_object ? metadatum.metadata_type_object.component : false
|
||||
});
|
||||
}
|
||||
|
||||
this.setState({
|
||||
isLoadingMetadata: false,
|
||||
modalMetadata: otherModalMetadata
|
||||
});
|
||||
|
||||
return otherModalMetadata;
|
||||
})
|
||||
.catch(error => {
|
||||
console.log('Error trying to fetch metadata: ' + error);
|
||||
});
|
||||
}
|
||||
|
||||
selectMetadatum(selectedMetadatumId) {
|
||||
this.setState({
|
||||
collectionId: selectedMetadatumId
|
||||
});
|
||||
|
||||
this.props.onSelectMetadatum(selectedMetadatumId);
|
||||
}
|
||||
|
||||
|
||||
render() {
|
||||
return this.state.collectionId != null && this.state.collectionId != undefined ? (
|
||||
// Facets modal
|
||||
<Modal
|
||||
// Metadata modal
|
||||
<Modal
|
||||
className="wp-block-tainacan-modal"
|
||||
title={__('Select the facet to show values on block', 'tainacan')}
|
||||
title={__('Select a metadatum to show it\'s values on block', 'tainacan')}
|
||||
onRequestClose={ () => this.cancelSelection() }
|
||||
contentLabel={__('Configure your facets search to be shown on block', 'tainacan')}>
|
||||
<iframe
|
||||
id="facetsFrame"
|
||||
src={ this.state.searchURL } />
|
||||
<div className="modal-footer-area">
|
||||
<Button
|
||||
isDefault
|
||||
onClick={ () => { this.resetCollections() }}>
|
||||
{__('Switch collection', 'tainacan')}
|
||||
</Button>
|
||||
<Button
|
||||
isPrimary
|
||||
onClick={ () => this.applySelectedSearchURL() }>
|
||||
{__('Use this search', 'tainacan')}
|
||||
</Button>
|
||||
</div>
|
||||
</Modal>
|
||||
) : (
|
||||
contentLabel={__('Select metadatum', 'tainacan')}>
|
||||
{(
|
||||
this.state.modalMetadata.length > 0 ?
|
||||
(
|
||||
<div>
|
||||
<div className="modal-radio-list">
|
||||
<RadioControl
|
||||
selected={ this.state.temporaryMetadatumId }
|
||||
options={
|
||||
this.state.modalMetadata.map((metadatum) => {
|
||||
return { label: metadatum.name, value: '' + metadatum.id }
|
||||
})
|
||||
}
|
||||
onChange={ ( aMetadatumId ) => {
|
||||
this.setState({ temporaryMetadatumId: aMetadatumId });
|
||||
} } />
|
||||
</div>
|
||||
</div>
|
||||
) : this.state.isLoadingMetadata ? <Spinner/> :
|
||||
<div className="modal-loadmore-section">
|
||||
<p>{ __('Sorry, no metadatum found.', 'tainacan') }</p>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
<div className="modal-footer-area">
|
||||
<Button
|
||||
isDefault
|
||||
onClick={ () => { this.resetCollections(); }}>
|
||||
{__('Switch collection', 'tainacan')}
|
||||
</Button>
|
||||
<Button
|
||||
isPrimary
|
||||
disabled={ this.state.temporaryMetadatumId == undefined || this.state.temporaryMetadatumId == null || this.state.temporaryMetadatumId == ''}
|
||||
onClick={ () => { this.selectMetadatum(this.state.temporaryMetadatumId); } }>
|
||||
{__('Finish', 'tainacan')}
|
||||
</Button>
|
||||
</div>
|
||||
</Modal>
|
||||
) : (
|
||||
// Collections modal
|
||||
<Modal
|
||||
className="wp-block-tainacan-modal"
|
||||
title={__('Select a collection to fetch facets from', 'tainacan')}
|
||||
title={__('Select a collection to fetch metadata from', 'tainacan')}
|
||||
onRequestClose={ () => this.cancelSelection() }
|
||||
contentLabel={__('Select facets', 'tainacan')}>
|
||||
contentLabel={__('Select collection', 'tainacan')}>
|
||||
<div>
|
||||
<div className="modal-search-area">
|
||||
<TextControl
|
||||
|
@ -291,7 +364,7 @@ export default class FacetsModal extends React.Component {
|
|||
isPrimary
|
||||
disabled={ this.state.temporaryCollectionId == undefined || this.state.temporaryCollectionId == null || this.state.temporaryCollectionId == ''}
|
||||
onClick={ () => { this.selectCollection(this.state.temporaryCollectionId); } }>
|
||||
{__('Configure search', 'tainacan')}
|
||||
{__('Select metadatum', 'tainacan')}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
Loading…
Reference in New Issue