update
This commit is contained in:
346
modules/ps_mbo/views/css/catalog.css
Normal file
346
modules/ps_mbo/views/css/catalog.css
Normal file
@@ -0,0 +1,346 @@
|
||||
/**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
.module-catalog-page {
|
||||
margin: 6px;
|
||||
max-width: 1680px;
|
||||
}
|
||||
|
||||
@media (min-width: 544px) {
|
||||
.module-catalog-page {
|
||||
margin: 0 33px;
|
||||
}
|
||||
}
|
||||
|
||||
.module-catalog-page hr.top-menu-separator {
|
||||
margin: 24px 0;
|
||||
}
|
||||
|
||||
.module-catalog-page .ps-dropdown.bordered {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
.module-top-menu, .module-catalog-page-result {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.adminpsmbomodule .module-top-menu, .module-catalog-page-result {
|
||||
padding: 24px;
|
||||
gap: 24px;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid #B3C7CD;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.module-sorting-search-wording {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.module-catalog-page-result {
|
||||
margin-top: 24px;
|
||||
}
|
||||
|
||||
.adminpsmbomodule .module-catalog-page-result .module-placeholders-wrapper .timeline-item-wrapper{
|
||||
height: 350px;
|
||||
min-height: 350px;
|
||||
border: 1px solid #B3C7CD;
|
||||
border-radius: 4px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.module-search-result-title.module-search-result-wording {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.module-sorting-search-wording__tooltip-container {
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
.mbo-modules-catalog {
|
||||
--theme-primary: #25b9d7;
|
||||
--theme-secondary: #6c868e;
|
||||
--theme-secondary-pressed: #566b72;
|
||||
--theme-secondary-hover: #b7ced3;
|
||||
--theme-secondary-active: #889da2;
|
||||
|
||||
--main-font-color: #131a26;
|
||||
--secondary-font-color: #505969;
|
||||
|
||||
--brand-dark-blue: #011638;
|
||||
|
||||
--main-border-color: #c8d7e4;
|
||||
|
||||
--card-tag-bg-color: #fafbfc;
|
||||
--card-tag-border-color: #b7ced3;
|
||||
|
||||
--warning-500: #ffa000;
|
||||
}
|
||||
|
||||
.mbo-modules-catalog-no-result {
|
||||
display: none;
|
||||
margin: auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.mbo-modules-catalog-no-result img {
|
||||
filter: drop-shadow(0px 12px 24px rgba(0, 0, 0, 0.1));
|
||||
}
|
||||
|
||||
@media (min-width: 544px) {
|
||||
.mbo-modules-catalog-no-result img {
|
||||
padding-left: 75px;
|
||||
}
|
||||
}
|
||||
|
||||
.mbo-module-grid__item {
|
||||
display: flex;
|
||||
border-radius: 4px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.mbo-module-card {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
background-color: white;
|
||||
padding: 16px;
|
||||
border-radius: 4px;
|
||||
row-gap: 16px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
.adminpsmbomodule .mbo-module-card {
|
||||
margin: 0px 12px 16px 12px;
|
||||
border: 1px solid #B3C7CD;
|
||||
}
|
||||
|
||||
.mbo-module-card .mbo-module-card__top {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
row-gap: 16px;
|
||||
}
|
||||
|
||||
.mbo-module-card__header {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.mbo-module-card__header .mbo-module-card__img-container {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
border: 1px solid var(--main-border-color);
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
margin-right: 16px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.mbo-module-card__header .mbo-module-card__img-container .mbo-module-card__img {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border: 1px solid white;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.mbo-module-card__header .mbo-module-card__title-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-shrink: 1;
|
||||
}
|
||||
|
||||
.mbo-module-card__header
|
||||
.mbo-module-card__title-container
|
||||
.mbo-module-card__title {
|
||||
color: var(--main-font-color);
|
||||
font-weight: 600;
|
||||
font-size: 14px;
|
||||
line-height: 19px;
|
||||
letter-spacing: 0.15px;
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.mbo-module-card__subtitle {
|
||||
color: var(--main-font-color);
|
||||
font-weight: 400;
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 1;
|
||||
-webkit-box-orient: vertical;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.mbo-module-card__header
|
||||
.mbo-module-card__title-container
|
||||
.mbo-module-card-tag-section {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.mbo-module-card__infos {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
.mbo-module-card__tags-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-start;
|
||||
flex-wrap: wrap;
|
||||
gap: 4px;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.mbo-module-card__tag {
|
||||
color: var(--theme-secondary);
|
||||
background: var(--card-tag-bg-color);
|
||||
border: 1px solid var(--card-tag-border-color);
|
||||
border-radius: 4px;
|
||||
padding: 2px 8px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 1;
|
||||
-webkit-box-orient: vertical;
|
||||
}
|
||||
|
||||
.mbo-module-card__rate-container {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
flex-wrap: nowrap;
|
||||
gap: 4px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.mbo-module-card__rate-container .material-icons {
|
||||
font-size: 16px;
|
||||
color: var(--warning-500);
|
||||
}
|
||||
|
||||
.mbo-module-card__rate-container .mbo-module-card__rate {
|
||||
color: var(--main-font-color);
|
||||
font-weight: 600;
|
||||
font-size: 14px;
|
||||
line-height: 19px;
|
||||
}
|
||||
|
||||
.mbo-module-card__rate-container .mbo-module-card__nb-rate {
|
||||
color: var(--secondary-font-color);
|
||||
font-weight: 400;
|
||||
font-size: 14px;
|
||||
line-height: 19px;
|
||||
}
|
||||
|
||||
.mbo-module-card__description {
|
||||
font-weight: 400;
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
color: var(--secondary-font-color);
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.mbo-module-card a.mbo-module-card__read-more {
|
||||
color: var(--theme-primary);
|
||||
font-weight: 600;
|
||||
font-size: 14px;
|
||||
line-height: 19px;
|
||||
}
|
||||
|
||||
.mbo-module-card .mbo-module-card__bottom {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-start;
|
||||
font-weight: 600;
|
||||
font-size: 20px;
|
||||
line-height: 27px;
|
||||
color: var(--brand-dark-blue);
|
||||
}
|
||||
|
||||
.mbo-module-card .btn-group.module-actions {
|
||||
display: flex;
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
|
||||
.mbo-module-card .btn-group.module-actions .btn.btn-secondary,
|
||||
.mbo-module-card .btn-group.module-actions .btn.btn-outline-secondary,
|
||||
.mbo-module-card .btn-group.module-actions .btn.btn-outline-primary {
|
||||
border-color: var(--theme-secondary);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.mbo-module-card .btn-group.module-actions :first-child {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.mbo-module-card
|
||||
.btn-group.module-actions
|
||||
.btn.btn-outline-primary:first-child {
|
||||
background-color: var(--theme-secondary);
|
||||
color: white;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.mbo-module-card
|
||||
.btn-group.module-actions
|
||||
.btn.btn-outline-primary:not(:first-child) {
|
||||
color: var(--theme-secondary);
|
||||
flex: 0;
|
||||
}
|
||||
|
||||
.mbo-module-card .btn-group.module-actions a:hover,
|
||||
.mbo-module-card .btn-group.module-actions button:hover,
|
||||
.mbo-module-card .btn-group.module-actions .btn.btn-outline-primary:hover,
|
||||
.mbo-module-card .btn-group.module-actions .btn.btn-outline-secondary:hover {
|
||||
color: white;
|
||||
border-color: var(--theme-secondary-hover) !important;
|
||||
background-color: var(--theme-secondary-hover) !important;
|
||||
}
|
||||
|
||||
.mbo-module-card .btn-group.module-actions .btn.btn-outline-primary:first-child:active,
|
||||
.mbo-module-card .btn-group.module-actions .btn.btn-outline-primary:not(:first-child):active,
|
||||
.mbo-module-card .btn-group.module-actions.show> .btn-outline-primary.dropdown-toggle {
|
||||
border-color: var(--theme-secondary-active);
|
||||
color: white;
|
||||
background-color: var(--theme-secondary-active);
|
||||
}
|
||||
|
||||
.mbo-module-card .btn-primary-reverse.spinner {
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.mbo-module-card .btn-group.module-actions .btn.btn-outline-primary:focus {
|
||||
box-shadow: none;
|
||||
}
|
||||
105
modules/ps_mbo/views/css/cdc-error-templating.css
Normal file
105
modules/ps_mbo/views/css/cdc-error-templating.css
Normal file
@@ -0,0 +1,105 @@
|
||||
/**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
.cdc-error-container {
|
||||
padding-bottom: 1rem;
|
||||
margin-bottom: 15px;
|
||||
background: #FFFFFF;
|
||||
border-radius: 0.5rem;
|
||||
border-width: 1px;
|
||||
flex-direction: column;
|
||||
display: flex;
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(200 215 228 / var(--tw-border-opacity));
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(255 255 255 / var(--tw-bg-opacity));
|
||||
--tw-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);
|
||||
--tw-shadow-colored: 0px 4px 8px var(--tw-shadow-color);
|
||||
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
|
||||
}
|
||||
.cdc-error-content {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding-top: 20%;
|
||||
padding-bottom: 20%;
|
||||
padding-left: 1rem;
|
||||
padding-right: 1rem;
|
||||
}
|
||||
|
||||
.cdc-error-content-wrapper {
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
max-width: 42rem;
|
||||
display: flex;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.cdc-error-title {
|
||||
font-family: Inter, Helvetica, Verdana, sans-serif;
|
||||
font-size: 1.25rem;
|
||||
line-height: 1.75rem;
|
||||
text-align: center;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.cdc-error-message {
|
||||
font-size: 1rem;
|
||||
line-height: 1.5rem;
|
||||
font-family: Roboto, Helvetica, Verdana, sans-serif;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.cdc-error-button-container {
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.cdc-error-button {
|
||||
border-style: none;
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(68 44 199 / var(--tw-bg-opacity));
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(255 255 255 / var(--tw-text-opacity));
|
||||
padding-top: 0.75rem;
|
||||
padding-bottom: 0.75rem;
|
||||
padding-left: 1rem;
|
||||
padding-right: 1rem;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1rem;
|
||||
display: inline-flex;
|
||||
cursor: pointer;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
font-family: Inter, Helvetica, Verdana, sans-serif;
|
||||
font-weight: 600;
|
||||
letter-spacing: 1px;
|
||||
border-radius: 0.25rem;
|
||||
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
|
||||
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
|
||||
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
|
||||
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
||||
transition-duration: 150ms;
|
||||
height: 2.5rem;
|
||||
}
|
||||
24
modules/ps_mbo/views/css/connection-toolbar.css
Normal file
24
modules/ps_mbo/views/css/connection-toolbar.css
Normal file
@@ -0,0 +1,24 @@
|
||||
/**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
.adminpsmbomodule .header-toolbar .container-fluid,
|
||||
.adminpsmbomodule .header-toolbar .page-head-tabs,
|
||||
.adminmodulesmanage #page-header-desc-configuration-addons_connect,
|
||||
.adminmodulesmanage #page-header-desc-configuration-addons_logout {
|
||||
display: none;
|
||||
}
|
||||
@@ -1,31 +1,24 @@
|
||||
<?php
|
||||
/**
|
||||
* 2007-2018 PrestaShop
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2018 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
|
||||
75
modules/ps_mbo/views/css/module-catalog.css
Normal file
75
modules/ps_mbo/views/css/module-catalog.css
Normal file
@@ -0,0 +1,75 @@
|
||||
/**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
|
||||
.module-read-more-grid {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.module-read-more-grid .module-read-more-grid-btn {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.module-modal-content .changelog-tab {
|
||||
max-height: 300px;
|
||||
overflow-y: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
.pstaggerTag {
|
||||
/* To prevent search input to be larger than its container */
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.mbo-catalog-wrapper {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
#growls.default {
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
}
|
||||
#growls {
|
||||
z-index: 50000;
|
||||
position: fixed;
|
||||
}
|
||||
.growl.growl-error {
|
||||
color: #363a41;
|
||||
background-color: #fbc6c3;
|
||||
border: 1px solid #f44336;
|
||||
}
|
||||
|
||||
.growl.growl-notice {
|
||||
color: #363a41;
|
||||
background-color: #beeaf3;
|
||||
border: 1px solid #25b9d7;
|
||||
}
|
||||
|
||||
.growl.growl-warning {
|
||||
color: #363a41;
|
||||
background-color: #fffbd3;
|
||||
border: 1px solid #fab000;
|
||||
}
|
||||
|
||||
.growl.growl-default {
|
||||
color: #363a41;
|
||||
background-color: #cbf2d4;
|
||||
border: 1px solid #53d572;
|
||||
}
|
||||
314
modules/ps_mbo/views/css/recommended-modules-lower-1.7.8.css
Normal file
314
modules/ps_mbo/views/css/recommended-modules-lower-1.7.8.css
Normal file
@@ -0,0 +1,314 @@
|
||||
/**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
#main #content #recommended-modules-container .modules_list_container_tab .alert-addons,
|
||||
#main #content #modules_list_container #modules_list_container_tab_modal .alert-addons,
|
||||
#main-div #recommended-modules-container .alert-addons,
|
||||
#main-div #modules_list_container_tab_modal .alert-addons {
|
||||
border: none;
|
||||
background-color:#F4FCFD ;
|
||||
font-size: 14px;
|
||||
line-height: 19px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-decoration-line: underline;
|
||||
color: #6c868e;
|
||||
}
|
||||
|
||||
#main #content #recommended-modules-container .modules_list_container_tab .alert-addons::before,
|
||||
#main #content #modules_list_container #modules_list_container_tab_modal .alert-addons::before{
|
||||
display:none;
|
||||
}
|
||||
|
||||
#main #content #recommended-modules-container .modules_list_container_tab .alert-addons .alert-text .material-icons,
|
||||
#main #content .panel #modules_list_container #modules_list_container_tab .alert-addons .alert-text .material-icons,
|
||||
#main #content #modules_list_container #modules_list_container_tab_modal .alert-addons .material-icons,
|
||||
#main-div #recommended-modules-container .alert-addons .material-icons,
|
||||
#main-div #modules_list_container_tab_modal .alert-addons .material-icons {
|
||||
color: #25b9d7;
|
||||
margin-left: 5px;
|
||||
font-size: medium;
|
||||
}
|
||||
|
||||
#main-div #modules_list_container_content .img-thumbnail {
|
||||
max-width: 56px;
|
||||
width: 56px;
|
||||
}
|
||||
|
||||
#content .nav-tabs .nav-item .nav-link.active,
|
||||
.nav-tabs .nav-item.active .nav-link.active {
|
||||
border-bottom: 3px solid #25b9d7 !important;
|
||||
border-top: none !important;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-link.active,
|
||||
.div-content .bootstrap .nav-tabs .nav-link ,
|
||||
#content.bootstrap .nav-tabs .nav-item.active .nav-link.active,
|
||||
#content.bootstrap .nav-tabs .nav-item.active .nav-link {
|
||||
border-bottom: 3px solid #25b9d7 !important;;
|
||||
border-left: none ;
|
||||
border-right: none;
|
||||
border-top: none!important;
|
||||
}
|
||||
#content.bootstrap .nav-tabs .nav-item .nav-link.active {
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
#content.bootstrap #modules_list_container_content .img-thumbnail {
|
||||
max-width: 56px;
|
||||
width: 56px;
|
||||
}
|
||||
|
||||
#content.bootstrap #modules_list_container_content .btn {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
#content.bootstrap #modules_list_container_content .btn-block {
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
}
|
||||
|
||||
#content.bootstrap #modules_list_container_content .btn-group {
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
#content.bootstrap #modules_list_container_content .dropdown-item {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: 5px;
|
||||
clear: both;
|
||||
font-weight: 400;
|
||||
color: #6c868e;
|
||||
text-align: inherit;
|
||||
white-space: nowrap;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
#content.bootstrap #modules_list_container_content .dropdown-item:focus,
|
||||
#content.bootstrap #modules_list_container_content .dropdown-item:hover {
|
||||
color: #25b9d7;
|
||||
text-decoration: none;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
#content.bootstrap #modules_list_container_content button.spinner {
|
||||
color: #fff;
|
||||
background-color: #fff;
|
||||
width: 40px;
|
||||
width: 2.5rem;
|
||||
height: 40px;
|
||||
height: 2.5rem;
|
||||
border-radius: 2.5rem;
|
||||
border-right-color: #25b9d7;
|
||||
border-bottom-color: #25b9d7;
|
||||
border-width: 3px;
|
||||
border-width: 0.1875rem;
|
||||
border-style: solid;
|
||||
font-size: 0;
|
||||
outline: none;
|
||||
display: inline-block;
|
||||
border-left-color: #bbcdd2;
|
||||
border-top-color: #bbcdd2;
|
||||
animation: rotating 2s linear infinite;
|
||||
}
|
||||
|
||||
#content.bootstrap #tab_modules_list_installed > tbody > tr > td:nth-child(2),
|
||||
#content.bootstrap
|
||||
#tab_modules_list_not_installed
|
||||
> tbody
|
||||
> tr
|
||||
> td:nth-child(2) {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
#content.bootstrap .card {
|
||||
position: relative;
|
||||
display: block;
|
||||
background-color: #fff;
|
||||
border: 1px solid #dbe6e9;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.06);
|
||||
}
|
||||
|
||||
#content.bootstrap .card-body {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
#content.bootstrap .card-body .img-responsive {
|
||||
display: inline;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
#content.bootstrap .mt-3 {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.bootstrap
|
||||
.page-head
|
||||
.toolbarBox
|
||||
.btn-toolbar {
|
||||
color: #fff;
|
||||
background-color: #6c868e;
|
||||
border-color: #6c868e;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#main #content .bootstrap .toolbarBox .btn-toolbar{
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#main #content .bootstrap .toolbarBox #toolbar-nav #recommended-modules-button-container #recommended-modules-button i{
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
color: #2eacce;
|
||||
}
|
||||
|
||||
.bootstrap
|
||||
.page-head
|
||||
.toolbarBox
|
||||
.btn-toolbar
|
||||
.toolbar_btn.mbo-modules-recommended-button
|
||||
i {
|
||||
display: inline-block;
|
||||
color: #fff;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
|
||||
.recommended-modal-description {
|
||||
margin-bottom: 30px;
|
||||
margin-bottom: 10px;
|
||||
font-size: 14px;
|
||||
line-height: 19px;
|
||||
}
|
||||
.recommended-modal-content-description {
|
||||
font-size: 14px;
|
||||
line-height: 19px;
|
||||
margin-left: 10px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.panel#recommended-modules-container .recommended-modal-content-description {
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
.iconButtonRecommanded{
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
#main-div .content-div #recommended-modules-container .card-block .alert-addons .alert-text a ,
|
||||
#main #content #recommended-modules-container .modules_list_container_tab .alert-addons .alert-text a,
|
||||
#main #content #modules_list_container #modules_list_container_tab_modal .alert-addons .alert-text a,
|
||||
#main-div #modules_list_container .modal-dialog #modules_list_container_tab_modal .alert-addons .alert-text a {
|
||||
color: #363A41 !important;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* hover button */
|
||||
.module-actions .btn-outlined-secondary:hover,
|
||||
.btn-outline-secondary:hover,
|
||||
.btn-secondary:hover {
|
||||
color: #fff !important;
|
||||
background-color: #b7ced3 !important ;
|
||||
border-color: #b7ced3 !important;
|
||||
border-radius: 5px !important;
|
||||
}
|
||||
.bootstrap .nav-tabs>li>a:hover:hover{
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
#tab_modules_list_not_installed .btn-outline-primary,
|
||||
.module-actions .btn-secondary{
|
||||
color: #fff;
|
||||
background-color: #6c868e ;
|
||||
border-color: #6c868e ;
|
||||
border-radius: 5px !important;
|
||||
height: 35px !important;
|
||||
font-size: 14px !important;
|
||||
font-weight: 600 !important;
|
||||
}
|
||||
.module-actions .btn-outlined-secondary{
|
||||
color: #6c868e;
|
||||
background-color: transparent ;
|
||||
border-color: #6c868e ;
|
||||
border-radius: 5px !important;
|
||||
}
|
||||
|
||||
/* dropdown button */
|
||||
#main-div #recommended-modules-container #modules_list_container_content .module-actions .dropdown-toggle,
|
||||
#main #content #recommended-modules-container #modules_list_container_content .module-actions .dropdown-toggle,
|
||||
#modules_list_container #modules_list_container_content .module-actions .dropdown-toggle,
|
||||
#main-div #modules_list_container #modules_list_container_content .module-actions .dropdown-toggle{
|
||||
color: #6c868e ;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border-color: #6c868e ;
|
||||
margin-left: 15px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
#main #content #modules_list_container_tab_modal #modules_list_container_content .module-actions .dropdown-toggle,
|
||||
#main #content #recommended-modules-container #modules_list_container_content .module-actions .dropdown-toggle{
|
||||
border-left:1px solid ;
|
||||
}
|
||||
|
||||
#main-div #modules_list_container #modules_list_container_content .module-actions .module_action_menu_go_to_addons {
|
||||
color: #6c868e ;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border-color: #6c868e;
|
||||
border-radius: 5px ;
|
||||
}
|
||||
|
||||
.module-actions .module_action_menu_go_to_addons {
|
||||
display: flex !important;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
#modules_list_container_content .module-actions .spacing-icone-p {
|
||||
margin: 5px 0px 5px 5px !important;
|
||||
font-weight: 600;
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.module-actions .btn-outlined-secondary {
|
||||
height: 35px;
|
||||
}
|
||||
|
||||
.module-actions .material-icons {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
#modules_list_container_content .module-quick-action-list {
|
||||
width: 150px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
#content.bootstrap #modules_list_container .modal-dialog {
|
||||
width: 680px;
|
||||
}
|
||||
}
|
||||
|
||||
321
modules/ps_mbo/views/css/recommended-modules-since-1.7.8.css
Normal file
321
modules/ps_mbo/views/css/recommended-modules-since-1.7.8.css
Normal file
@@ -0,0 +1,321 @@
|
||||
/**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
#main #content #recommended-modules-container .modules_list_container_tab .alert-addons,
|
||||
#main #content #modules_list_container #modules_list_container_tab_modal .alert-addons,
|
||||
#main-div #recommended-modules-container .alert-addons,
|
||||
#main-div #modules_list_container_tab_modal .alert-addons {
|
||||
border: none;
|
||||
background-color:#F4FCFD ;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
line-height: 19px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-decoration-line: underline;
|
||||
}
|
||||
|
||||
#main #content #recommended-modules-container .modules_list_container_tab .alert-addons::before,
|
||||
#main #content #modules_list_container #modules_list_container_tab_modal .alert-addons::before{
|
||||
display:none;
|
||||
}
|
||||
|
||||
#main #content #recommended-modules-container .modules_list_container_tab .alert-addons .alert-text .material-icons,
|
||||
#main #content .panel #modules_list_container #modules_list_container_tab .alert-addons .alert-text .material-icons,
|
||||
#main #content #modules_list_container #modules_list_container_tab_modal .alert-addons .material-icons,
|
||||
#main-div #recommended-modules-container .alert-addons .material-icons,
|
||||
#main-div #modules_list_container_tab_modal .alert-addons .material-icons {
|
||||
color: #25b9d7;
|
||||
margin-left: 5px;
|
||||
font-size: medium;
|
||||
|
||||
}
|
||||
|
||||
#main-div #modules_list_container_content .img-thumbnail {
|
||||
max-width: 56px;
|
||||
width: 56px;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-item.active{
|
||||
border-top: none !important;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.card-block .nav-tabs .nav-item .nav-link.active,
|
||||
.card-block .nav-tabs .nav-item.active .nav-link.active,
|
||||
#content .modules_list_container_tab .nav-tabs .nav-item.active .nav-link,
|
||||
#content .modules_list_container_tab .nav-tabs .nav-item.active .nav-link.active,
|
||||
.content-div #modules_list_container_tab_modal .nav-tabs .nav-item .nav-link.active,
|
||||
#content #modules_list_container_tab_modal .nav-tabs .nav-item.active .nav-link,
|
||||
#modules_list_container_tab_modal .nav-tabs .nav-item.active .nav-link.active{
|
||||
border-top: none !important;
|
||||
border-bottom: 3px solid #25b9d7 !important ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#content.bootstrap .nav-tabs .nav-item.show .nav-link,
|
||||
#content.bootstrap .nav-tabs .nav-link.active {
|
||||
color: #363a41;
|
||||
background-color: #fff;
|
||||
border-color: #25b9d7;
|
||||
}
|
||||
|
||||
#content.bootstrap .nav-tabs,
|
||||
#content.bootstrap .nav-tabs .nav-link {
|
||||
border: none;
|
||||
}
|
||||
|
||||
#content.bootstrap #modules_list_container_content .img-thumbnail {
|
||||
max-width: 56px;
|
||||
width: 56px;
|
||||
}
|
||||
|
||||
#content.bootstrap #modules_list_container_content .btn .module_action_menu_install{
|
||||
border-radius: 5px;
|
||||
color: #fff ;
|
||||
background-color: #6c868e ;
|
||||
border-color: #6c868e
|
||||
}
|
||||
|
||||
#content.bootstrap #modules_list_container_content .btn-block {
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
}
|
||||
|
||||
#content.bootstrap #modules_list_container_content .btn-group {
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
#content.bootstrap #modules_list_container_content .dropdown-item {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: 5px;
|
||||
clear: both;
|
||||
font-weight: 400;
|
||||
color: #6c868e;
|
||||
text-align: inherit;
|
||||
white-space: nowrap;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
#content.bootstrap #modules_list_container_content .dropdown-item:focus,
|
||||
#content.bootstrap #modules_list_container_content .dropdown-item:hover {
|
||||
color: #25b9d7;
|
||||
text-decoration: none;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
#content.bootstrap #modules_list_container_content button.spinner {
|
||||
color: #fff;
|
||||
background-color: #fff;
|
||||
width: 40px;
|
||||
width: 2.5rem;
|
||||
height: 40px;
|
||||
height: 2.5rem;
|
||||
border-radius: 2.5rem;
|
||||
border-right-color: #25b9d7;
|
||||
border-bottom-color: #25b9d7;
|
||||
border-width: 3px;
|
||||
border-width: 0.1875rem;
|
||||
border-style: solid;
|
||||
font-size: 0;
|
||||
outline: none;
|
||||
display: inline-block;
|
||||
border-left-color: #bbcdd2;
|
||||
border-top-color: #bbcdd2;
|
||||
animation: rotating 2s linear infinite;
|
||||
}
|
||||
|
||||
#content.bootstrap #tab_modules_list_installed > tbody > tr > td:nth-child(2),
|
||||
#content.bootstrap
|
||||
#tab_modules_list_not_installed
|
||||
> tbody
|
||||
> tr
|
||||
> td:nth-child(2) {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
#content.bootstrap .card {
|
||||
position: relative;
|
||||
display: block;
|
||||
background-color: #fff;
|
||||
border: 1px solid #dbe6e9;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.06);
|
||||
}
|
||||
|
||||
#content.bootstrap .card-body {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
#content.bootstrap .card-body .img-responsive {
|
||||
display: inline;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
#content.bootstrap .mt-3 {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.bootstrap
|
||||
.page-head
|
||||
.toolbarBox
|
||||
.btn-toolbar
|
||||
.toolbar_btn.mbo-modules-recommended-button {
|
||||
color: #fff;
|
||||
background-color: #6c868e;
|
||||
border-color: #6c868e;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-top-right-radius: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
}
|
||||
.bootstrap
|
||||
.page-head
|
||||
.toolbarBox
|
||||
.btn-toolbar
|
||||
.toolbar_btn.mbo-modules-recommended-button
|
||||
i {
|
||||
display: inline-block;
|
||||
color: #fff;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.bootstrap
|
||||
.page-head
|
||||
.toolbarBox
|
||||
.btn-toolbar
|
||||
.toolbar_btn.mbo-modules-recommended-button:hover {
|
||||
color: #fff;
|
||||
background-color: #b7ced3;
|
||||
border-color: #b7ced3;
|
||||
}
|
||||
.recommended-modal-description {
|
||||
margin-bottom: 30px;
|
||||
margin-bottom: 10px;
|
||||
font-size: 14px;
|
||||
line-height: 19px;
|
||||
}
|
||||
.recommended-modal-content-description {
|
||||
font-size: 14px;
|
||||
line-height: 19px;
|
||||
margin-left: 10px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.panel#recommended-modules-container .recommended-modal-content-description {
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
.iconButtonRecommanded{
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.modules_list_container_tab row .nav-tabs .nav-item .nav-link.active{
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
.bootstrap .module-container .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle),
|
||||
.module-container .btn-group>.btn:not(:first-child),
|
||||
.module-container .btn-group>.btn:not(:last-child):not(.dropdown-toggle), .btn-group>.btn-group:not(:last-child)>.btn {
|
||||
border-top-right-radius: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
border-top-left-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
border-left: 1px solid ;
|
||||
border: 1px solid #6c868e ;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.btn-group .btn.dropdown-toggle-split[class*="outline"] {
|
||||
margin-left:15px;
|
||||
}
|
||||
/* action button */
|
||||
#content #recommended-modules-container .module-actions .btn-secondary,
|
||||
#modules_list_container_content .module-actions .btn-secondary,
|
||||
.module-actions .module_action_menu_install{
|
||||
color: #fff ;
|
||||
background-color: #6c868e ;
|
||||
border-color: #6c868e ;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.module-actions .btn-outlined-secondary {
|
||||
display :flex;
|
||||
align-items: center;
|
||||
}
|
||||
.module-actions .btn-outlined-secondary i {
|
||||
margin-right :3px;
|
||||
margin-top: 2px;
|
||||
}
|
||||
.bootstrap .module-actions p.spacing-icone-p {
|
||||
margin: 0px 0px 0px;
|
||||
}
|
||||
/* hover button */
|
||||
.bootstrap .btn-group>.dropdown-toggle:not(:first-child):hover,
|
||||
#modules_list_container_content .module-actions .module_action_menu_install:hover,
|
||||
#modules_list_container_content .module-actions .module_action_menu_install:hover,
|
||||
#modules_list_container_content .module-actions .module_action_menu_upgrade:hover,
|
||||
#modules_list_container_content .module-actions .dropdown-toggle:hover,
|
||||
#modules_list_container_content .module-actions a:hover,
|
||||
#modules_list_container_content .module-actions .dropdown-toggle:hover,
|
||||
#modules_list_container_content .module-actions a:hover,
|
||||
#modules_list_container_tab_modal #modules_list_container_content .module-actions a:hover,
|
||||
.btn-group .module_action_menu_install:hover,
|
||||
#modules_list_container_content .module-actions .module_action_menu_install:hover,
|
||||
#modules_list_container_content .module-actions a:hover,
|
||||
#modules_list_container_content .module-actions a:hover,
|
||||
#modules_list_container_content .module-actions .dropdown-toggle:hover,
|
||||
#modules_list_container_content .module-actions .module_action_menu_go_to_addons:hover {
|
||||
color: #fff;
|
||||
background-color: #b7ced3 !important;
|
||||
background-image: none ;
|
||||
border-color: #b7ced3 !important;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
/* Focus dropdown */
|
||||
#modules_list_container_content .module-actions .dropdown-toggle:focus,
|
||||
#main #content #modules_list_container_tab_modal #modules_list_container_content .module-actions .dropdown-toggle:focus{
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* dropdown */
|
||||
.bootstrap .module-container .btn-group>.dropdown-toggle:not(:first-child){
|
||||
margin-left: 15px;
|
||||
border-left: 1px solid ;
|
||||
border: 1px solid #6c868e ;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#modules_list_container_content .module-quick-action-list {
|
||||
width: 140px;
|
||||
text-align: right;
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
#content.bootstrap #modules_list_container .modal-dialog {
|
||||
width: 680px;
|
||||
}
|
||||
}
|
||||
|
||||
53
modules/ps_mbo/views/img/error.svg
Normal file
53
modules/ps_mbo/views/img/error.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 86 KiB |
@@ -1,31 +1,24 @@
|
||||
<?php
|
||||
/**
|
||||
* 2007-2018 PrestaShop
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2018 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
|
||||
537
modules/ps_mbo/views/img/no_result.svg
Normal file
537
modules/ps_mbo/views/img/no_result.svg
Normal file
@@ -0,0 +1,537 @@
|
||||
<svg width="265" height="180" viewBox="0 0 265 180" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g filter="url(#filter0_d_867_81217)">
|
||||
<ellipse cx="25.3019" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="73.8973" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="78.7059" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="25.8016" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="30.6102" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="83.5164" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="88.325" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="35.4207" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="40.2313" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="93.1336" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="97.9442" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="45.0399" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="49.8485" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="102.755" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="107.563" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="54.659" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="59.4696" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="112.372" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="117.182" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="25.3019" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="111.905" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="30.1134" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="116.717" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="34.9249" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="121.528" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="39.7355" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="126.34" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="44.547" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="131.151" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="49.3585" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="54.1701" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="58.9816" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="63.7921" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="68.6036" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="73.4152" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="78.2267" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="64.2782" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="69.0867" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="83.0382" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="87.8488" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="92.6603" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="97.4718" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="102.283" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="121.993" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<ellipse cx="107.094" cy="126.802" rx="0.801887" ry="0.801587" fill="black"/>
|
||||
<mask id="path-507-inside-1_867_81217" fill="white">
|
||||
<path d="M34 20C34 15.5817 37.5817 12 42 12H158C162.418 12 166 15.5817 166 20V136C166 140.418 162.418 144 158 144H42C37.5817 144 34 140.418 34 136V20Z"/>
|
||||
</mask>
|
||||
<path d="M34 20C34 15.5817 37.5817 12 42 12H158C162.418 12 166 15.5817 166 20V136C166 140.418 162.418 144 158 144H42C37.5817 144 34 140.418 34 136V20Z" fill="white"/>
|
||||
<path d="M34 12H166H34ZM169 136C169 142.075 164.075 147 158 147H45C38.9249 147 34 142.075 34 136C34 138.761 37.5817 141 42 141H158C160.761 141 163 138.761 163 136H169ZM34 144V12V144ZM158 12C164.075 12 169 16.9249 169 23V136C169 142.075 164.075 147 158 147V141C160.761 141 163 138.761 163 136V20C163 15.5817 160.761 12 158 12Z" fill="url(#paint0_linear_867_81217)" mask="url(#path-507-inside-1_867_81217)"/>
|
||||
<rect x="42" y="20" width="27" height="27" rx="8" fill="#EFF3F7"/>
|
||||
<rect x="75.5" y="20" width="83" height="10" rx="5" fill="#EFF3F7"/>
|
||||
<rect x="42" y="119" width="116" height="15" rx="7.5" fill="#EFF3F7"/>
|
||||
<rect x="42" y="62" width="116" height="49" rx="8" fill="#EFF3F7"/>
|
||||
<rect x="130.5" y="28.5" width="110" height="45" rx="7.5" fill="white" stroke="#E9E6F8"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M161.186 53.4713H161.976L166.216 57.7313C166.626 58.1413 166.626 58.8113 166.216 59.2213C165.806 59.6313 165.136 59.6313 164.726 59.2213L160.476 54.9713V54.1813L160.206 53.9013C158.806 55.1013 156.896 55.7213 154.866 55.3813C152.086 54.9113 149.866 52.5913 149.526 49.7913C149.006 45.5613 152.566 42.0013 156.796 42.5213C159.596 42.8613 161.916 45.0813 162.386 47.8613C162.726 49.8913 162.106 51.8013 160.906 53.2013L161.186 53.4713ZM151.476 48.9713C151.476 51.4613 153.486 53.4713 155.976 53.4713C158.466 53.4713 160.476 51.4613 160.476 48.9713C160.476 46.4813 158.466 44.4713 155.976 44.4713C153.486 44.4713 151.476 46.4813 151.476 48.9713Z" fill="#505969"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_867_81217" x="0.5" y="0" width="264.5" height="180" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="12"/>
|
||||
<feGaussianBlur stdDeviation="12"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_867_81217"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_867_81217" result="shape"/>
|
||||
</filter>
|
||||
<linearGradient id="paint0_linear_867_81217" x1="100" y1="12" x2="100" y2="144" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#D01665"/>
|
||||
<stop offset="1" stop-color="#442CC7"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 41 KiB |
@@ -1,31 +1,24 @@
|
||||
<?php
|
||||
/**
|
||||
* 2007-2018 PrestaShop
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2018 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
|
||||
30
modules/ps_mbo/views/js/cdc-error-templating.js
Normal file
30
modules/ps_mbo/views/js/cdc-error-templating.js
Normal file
@@ -0,0 +1,30 @@
|
||||
'use strict';
|
||||
/**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
|
||||
const renderCdcError = ((container) => {
|
||||
if (container.length) {
|
||||
const url = container.data('error-path')
|
||||
if (url) {
|
||||
$.get(url, (data) => {
|
||||
container.html(data);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
29
modules/ps_mbo/views/js/cdc-error.js
Normal file
29
modules/ps_mbo/views/js/cdc-error.js
Normal file
@@ -0,0 +1,29 @@
|
||||
'use strict';
|
||||
/**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
|
||||
(function() {
|
||||
window.$(document).ready(function() {
|
||||
if (typeof renderCdcError === 'function') {
|
||||
window.$(document).ready(function() {
|
||||
renderCdcError($('.cdc-container'));
|
||||
});
|
||||
}
|
||||
})
|
||||
})();
|
||||
@@ -1,31 +1,24 @@
|
||||
<?php
|
||||
/**
|
||||
* 2007-2018 PrestaShop
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2018 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
|
||||
475
modules/ps_mbo/views/js/recommended-modules.js
Normal file
475
modules/ps_mbo/views/js/recommended-modules.js
Normal file
@@ -0,0 +1,475 @@
|
||||
'use strict';
|
||||
/**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
|
||||
var mbo = {};
|
||||
|
||||
(function() {
|
||||
var pageMapDefault = {
|
||||
toolbarButtonsContainer: '#toolbar-nav',
|
||||
toolbarButtons: '#toolbar-nav > li > a.toolbar_btn',
|
||||
toolbarHelpButton: '#toolbar-nav li:last-of-type > a.btn-help',
|
||||
toolbarLastElement: '#toolbar-nav li:last-of-type',
|
||||
recommendedModulesButton: '#recommended-modules-button',
|
||||
fancybox: '.fancybox-quick-view',
|
||||
contentContainer: '#content',
|
||||
modulesListModal: '#modules_list_container',
|
||||
modulesListModalContent: '#modules_list_container_tab_modal',
|
||||
modulesListLoader: '#modules_list_loader',
|
||||
};
|
||||
|
||||
var pageMapNewTheme = {
|
||||
toolbarButtonsContainer: '.toolbar-icons .wrapper',
|
||||
toolbarHelpButton: '.toolbar-icons a.btn-help',
|
||||
toolbarLastElement: '.toolbar-icons a:last-of-type',
|
||||
recommendedModulesButton: '#recommended-modules-button',
|
||||
oldButton: '#page-header-desc-configuration-modules-list',
|
||||
contentContainer: '#main-div .content-div .container:last',
|
||||
modulesListModal: '#modules_list_container',
|
||||
modulesListModalContainer: '#main-div .content-div',
|
||||
modulesListModalContent: '#modules_list_container_tab_modal',
|
||||
modulesListLoader: '#modules_list_loader',
|
||||
};
|
||||
|
||||
var decodeHTMLEntities = function(text) {
|
||||
var entities = [
|
||||
['amp', '&'],
|
||||
['apos', '\''],
|
||||
['#x27', '\''],
|
||||
['#x2F', '/'],
|
||||
['#39', '\''],
|
||||
['#47', '/'],
|
||||
['lt', '<'],
|
||||
['gt', '>'],
|
||||
['nbsp', ' '],
|
||||
['quot', '"']
|
||||
];
|
||||
|
||||
for (var i = 0, max = entities.length; i < max; ++i)
|
||||
text = text.replace(new RegExp('&'+entities[i][0]+';', 'g'), entities[i][1]);
|
||||
|
||||
return text;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles page interactions
|
||||
*
|
||||
* @param {object} pageMap
|
||||
* @constructor
|
||||
*/
|
||||
var Page = function(pageMap) {
|
||||
|
||||
/**
|
||||
* Indicates if the help button is the last one in the toolbar
|
||||
* @return {boolean}
|
||||
*/
|
||||
var lastElementIsHelpButton = function() {
|
||||
return $(pageMap.toolbarHelpButton).length > 0;
|
||||
};
|
||||
|
||||
/**
|
||||
* Inserts the button before the help one
|
||||
* @param {RecommendedModulesButton} button
|
||||
*/
|
||||
var insertItBeforeHelpButton = function(button) {
|
||||
$(pageMap.toolbarLastElement).before(button.getMarkup());
|
||||
};
|
||||
|
||||
/**
|
||||
* Inserts the button as the last item in the toolbar
|
||||
* @param {RecommendedModulesButton} button
|
||||
*/
|
||||
var insertItLastInToolbar = function(button) {
|
||||
$(pageMap.toolbarButtonsContainer).append(button.getMarkup());
|
||||
};
|
||||
|
||||
/**
|
||||
* Remove core-generated "recommended module" button in PS < 1.7.6.0
|
||||
* @return this
|
||||
*/
|
||||
this.removeOldButton = function() {
|
||||
if (pageMap.toolbarButtons) {
|
||||
// default theme
|
||||
$(pageMap.toolbarButtons).filter(
|
||||
function() {
|
||||
var buttonIdPattern = /^page-header-desc-[a-z-_]+-modules-list$/;
|
||||
return String($(this).attr('id'))
|
||||
.match(buttonIdPattern);
|
||||
}
|
||||
).parent().remove();
|
||||
}
|
||||
|
||||
if (pageMap.oldButton) {
|
||||
// new theme
|
||||
$(pageMap.oldButton).remove();
|
||||
}
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Inserts the provided button in the toolbar
|
||||
*
|
||||
* @param {RecommendedModulesButton} button
|
||||
* @return this
|
||||
*/
|
||||
this.insertToolbarButton = function(button) {
|
||||
if (lastElementIsHelpButton()) {
|
||||
insertItBeforeHelpButton(button);
|
||||
} else {
|
||||
insertItLastInToolbar(button);
|
||||
}
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Inserts the recommended modules in the DOM
|
||||
*
|
||||
* @param {object} config
|
||||
* @param {array} config.translations
|
||||
* @param {string} config.recommendedModulesUrl
|
||||
* @param {boolean} config.shouldAttachRecommendedModulesAfterContent
|
||||
* @param {boolean} config.shouldAttachRecommendedModulesButton
|
||||
* @param {boolean} config.shouldUseLegacyTheme
|
||||
*
|
||||
* @return this
|
||||
*/
|
||||
this.insertRecommendedModules = function(config) {
|
||||
if (pageMap.contentContainer) {
|
||||
var recommendedModulesRequest = $.ajax({
|
||||
type: 'GET',
|
||||
dataType: 'json',
|
||||
url: config.recommendedModulesUrl,
|
||||
});
|
||||
|
||||
recommendedModulesRequest.done(function(data) {
|
||||
var recommendedModulesContainer = new RecommendedModulesContainer(config, data.content);
|
||||
|
||||
$(pageMap.contentContainer).append(recommendedModulesContainer.getMarkup());
|
||||
});
|
||||
|
||||
recommendedModulesRequest.fail(function(jqXHR, textStatus, errorThrown) {
|
||||
var recommendedModulesAlertMessage = new RecommendedModulesAlertMessage(config, 'danger', errorThrown);
|
||||
var content = recommendedModulesAlertMessage.getMarkup().get(0).outerHTML;
|
||||
if (undefined !== jqXHR.responseJSON && undefined !== jqXHR.responseJSON.content) {
|
||||
content += jqXHR.responseJSON.content;
|
||||
}
|
||||
var recommendedModulesContainer = new RecommendedModulesContainer(config, content);
|
||||
|
||||
$(pageMap.contentContainer).append(recommendedModulesContainer.getMarkup().get(0).outerHTML);
|
||||
});
|
||||
}
|
||||
|
||||
return this;
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Handles markup for the Recommended modules button
|
||||
*
|
||||
* @param {object} config
|
||||
* @param {array} config.translations
|
||||
* @param {string} config.recommendedModulesUrl
|
||||
* @param {boolean} config.shouldAttachRecommendedModulesAfterContent
|
||||
* @param {boolean} config.shouldAttachRecommendedModulesButton
|
||||
* @param {boolean} config.shouldUseLegacyTheme
|
||||
* @constructor
|
||||
*/
|
||||
var RecommendedModulesButton = function(config) {
|
||||
var label = config.translations['Recommended Modules and Services'];
|
||||
var buttonId = 'recommended-modules-button';
|
||||
var $markup;
|
||||
|
||||
if (config.shouldUseLegacyTheme) {
|
||||
$markup = $(
|
||||
'<li id="recommended-modules-button-container">\n' +
|
||||
' <a id="' + buttonId + '" class="toolbar_btn pointer mbo-modules-recommended-button " href="' + config.recommendedModulesUrl + '" title="' + label + '">\n' +
|
||||
' <i class="material-icons mi-extension">extension</i>\n' +
|
||||
' <div>' + label + '</div>\n' +
|
||||
' </a>\n' +
|
||||
'</li>'
|
||||
);
|
||||
} else {
|
||||
$markup = $(
|
||||
'<a class="btn btn-secondary" id="' + buttonId + '" href="' + config.recommendedModulesUrl + '" title="' + label + '">' +
|
||||
'<i class="material-icons">extension</i>\n' +
|
||||
label +
|
||||
'</a>'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the button's markup
|
||||
* @return {jQuery|HTMLElement}
|
||||
*/
|
||||
this.getMarkup = function() {
|
||||
return $markup;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Handles markup for the Recommended modules container
|
||||
*
|
||||
* @param {object} config
|
||||
* @param {array} config.translations
|
||||
* @param {string} config.recommendedModulesUrl
|
||||
* @param {boolean} config.shouldAttachRecommendedModulesAfterContent
|
||||
* @param {boolean} config.shouldAttachRecommendedModulesButton
|
||||
* @param {boolean} config.shouldUseLegacyTheme
|
||||
* @param {jQuery|HTMLElement} content
|
||||
* @constructor
|
||||
*/
|
||||
var RecommendedModulesContainer = function(config, content) {
|
||||
var containerTitle = config.translations['Recommended Modules and Services'];
|
||||
var containerDescription = decodeHTMLEntities(config.translations['description']);
|
||||
var containerId = 'recommended-modules-container';
|
||||
var $markup;
|
||||
|
||||
if (config.shouldUseLegacyTheme) {
|
||||
$markup = $(
|
||||
'<div class="panel" id="' + containerId + '">\n' +
|
||||
' <h3>\n' +
|
||||
' <i class="icon-puzzle-piece"></i>\n' +
|
||||
' ' + containerTitle + '\n' +
|
||||
' </h3>\n' +
|
||||
' <div class="recommended-modal-content-description">' + containerDescription + '</div>\n' +
|
||||
' <div class="modules_list_container_tab row">\n' +
|
||||
|
||||
' ' + content +'\n' +
|
||||
' </div>\n' +
|
||||
'</div>'
|
||||
);
|
||||
} else {
|
||||
$markup = $(
|
||||
'<div class="row" id="' + containerId + '">\n' +
|
||||
' <div class="col">\n' +
|
||||
' <div class="card">\n' +
|
||||
' <h3 class="card-header">\n' +
|
||||
' <i class="material-icons">extension</i>\n' +
|
||||
' ' + containerTitle + '\n' +
|
||||
' </h3>\n' +
|
||||
' <div class="recommended-modal-content-description">'+ containerDescription +'</div>\n'+
|
||||
' <div class="card-block">\n' +
|
||||
' ' + content +'\n' +
|
||||
' </div>\n' +
|
||||
' </div>\n' +
|
||||
' </div>\n' +
|
||||
'</div>'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the button's markup
|
||||
* @return {jQuery|HTMLElement}
|
||||
*/
|
||||
this.getMarkup = function() {
|
||||
return $markup;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Handles markup for the Recommended modules container
|
||||
*
|
||||
* @param {object} config
|
||||
* @param {array} config.translations
|
||||
* @param {string} config.recommendedModulesUrl
|
||||
* @param {boolean} config.shouldAttachRecommendedModulesAfterContent
|
||||
* @param {boolean} config.shouldAttachRecommendedModulesButton
|
||||
* @param {boolean} config.shouldUseLegacyTheme
|
||||
* @param {string} type
|
||||
* @param {string} text
|
||||
* @constructor
|
||||
*/
|
||||
var RecommendedModulesAlertMessage = function(config, type, text) {
|
||||
var $markup = $(
|
||||
'<div class="alert alert-' + type + '" role="alert">\n' +
|
||||
' <p class="alert-text">\n' +
|
||||
' ' + text + '\n' +
|
||||
' </p>\n' +
|
||||
'</div>'
|
||||
);
|
||||
|
||||
/**
|
||||
* Returns the button's markup
|
||||
* @return {jQuery|HTMLElement}
|
||||
*/
|
||||
this.getMarkup = function() {
|
||||
return $markup;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Handles markup for the Recommended modules container
|
||||
*
|
||||
* @param {object} pageMap
|
||||
* @param {object} config
|
||||
* @param {array} config.translations
|
||||
* @param {string} config.recommendedModulesUrl
|
||||
* @param {boolean} config.shouldAttachRecommendedModulesAfterContent
|
||||
* @param {boolean} config.shouldAttachRecommendedModulesButton
|
||||
* @param {boolean} config.shouldUseLegacyTheme
|
||||
* @constructor
|
||||
*/
|
||||
var RecommendedModulesModal = function(pageMap, config) {
|
||||
var $markup;
|
||||
|
||||
if (!config.shouldUseLegacyTheme) {
|
||||
$markup = $(
|
||||
'<div id="modules_list_container" class="modal modal-vcenter fade" role="dialog">\n' +
|
||||
' <div class="modal-dialog">\n' +
|
||||
' <div class="modal-content">\n' +
|
||||
' <div class="modal-header">\n' +
|
||||
' <h4 class="modal-title module-modal-title">\n' +
|
||||
' ' + config.translations['Recommended Modules and Services'] + '\n' +
|
||||
' </h4>\n' +
|
||||
' <button type="button" class="close" data-dismiss="modal" aria-label="' + config.translations['Close'] + '">\n' +
|
||||
' <span aria-hidden="true">×</span>\n' +
|
||||
' </button>\n' +
|
||||
' </div>\n' +
|
||||
' <div class="modal-body row">\n' +
|
||||
' <div id="modules_list_container_tab_modal" class="col-md-12" style="display:none;"></div>\n' +
|
||||
' <div id="modules_list_loader" class="col-md-12 text-center">\n' +
|
||||
' <button class="btn-primary-reverse onclick unbind spinner"></button>\n' +
|
||||
' </div>\n' +
|
||||
' </div>\n' +
|
||||
' </div>\n' +
|
||||
' </div>\n' +
|
||||
'</div>'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the button's markup
|
||||
* @return {jQuery|HTMLElement}
|
||||
*/
|
||||
this.getMarkup = function() {
|
||||
return $markup;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {object} pageMap
|
||||
* @param {object} config
|
||||
* @param {array} config.translations
|
||||
* @param {string} config.recommendedModulesUrl
|
||||
* @param {boolean} config.shouldAttachRecommendedModulesAfterContent
|
||||
* @param {boolean} config.shouldAttachRecommendedModulesButton
|
||||
* @param {boolean} config.shouldUseLegacyTheme
|
||||
* @constructor
|
||||
*/
|
||||
var RecommendedModulesPopinHandler = function(pageMap, config) {
|
||||
|
||||
var initPopin = function() {
|
||||
if (config.shouldUseLegacyTheme) {
|
||||
$(pageMap.fancybox).fancybox({
|
||||
type: 'ajax',
|
||||
autoDimensions: false,
|
||||
autoSize: false,
|
||||
width: 600,
|
||||
height: 'auto',
|
||||
helpers: {
|
||||
overlay: {
|
||||
locked: false
|
||||
}
|
||||
}
|
||||
});
|
||||
$(pageMap.modulesListModal).find('h3.modal-title').text(config.translations['Recommended Modules and Services']);
|
||||
} else {
|
||||
if (!$(pageMap.modulesListModal).length) {
|
||||
var modal = new RecommendedModulesModal(pageMap, config);
|
||||
$(pageMap.modulesListModalContainer).append(modal.getMarkup().get(0).outerHTML);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var openModulesList = function() {
|
||||
var recommendedModulesRequest = $.ajax({
|
||||
type: 'GET',
|
||||
dataType: 'json',
|
||||
url: config.recommendedModulesUrl,
|
||||
});
|
||||
|
||||
$(pageMap.modulesListModal).modal('show');
|
||||
|
||||
recommendedModulesRequest.done(function (data) {
|
||||
var descriptionHtml = decodeHTMLEntities(config.translations['description']);
|
||||
$(pageMap.modulesListModalContent).html('<div class="recommended-modal-description">' + descriptionHtml + '</div>' + data.content).slideDown();
|
||||
$(pageMap.modulesListLoader).hide();
|
||||
});
|
||||
|
||||
recommendedModulesRequest.fail(function(jqXHR, textStatus, errorThrown) {
|
||||
var recommendedModulesAlertMessage = new RecommendedModulesAlertMessage(config, 'danger', errorThrown);
|
||||
var content = recommendedModulesAlertMessage.getMarkup().get(0).outerHTML;
|
||||
if (undefined !== jqXHR.responseJSON && undefined !== jqXHR.responseJSON.content) {
|
||||
content += jqXHR.responseJSON.content;
|
||||
}
|
||||
|
||||
$(pageMap.modulesListModalContent).html(content).slideDown();
|
||||
$(pageMap.modulesListLoader).hide();
|
||||
});
|
||||
};
|
||||
|
||||
var bindButtonEvents = function() {
|
||||
// wait for dom ready
|
||||
$(document).on('click', pageMap.recommendedModulesButton, function(event) {
|
||||
event.preventDefault();
|
||||
openModulesList();
|
||||
});
|
||||
};
|
||||
|
||||
this.initialize = function() {
|
||||
// wait for dom ready
|
||||
$(function() {
|
||||
initPopin();
|
||||
bindButtonEvents();
|
||||
});
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Inserts the recommended modules button in the toolbar
|
||||
*
|
||||
* @param {object} config
|
||||
* @param {array} config.translations
|
||||
* @param {string} config.recommendedModulesUrl
|
||||
* @param {boolean} config.shouldAttachRecommendedModulesAfterContent
|
||||
* @param {boolean} config.shouldAttachRecommendedModulesButton
|
||||
* @param {boolean} config.shouldUseLegacyTheme
|
||||
*/
|
||||
mbo.initialize = function(config) {
|
||||
var pageMap = config.shouldUseLegacyTheme ? pageMapDefault : pageMapNewTheme;
|
||||
var page = new Page(pageMap);
|
||||
|
||||
page.removeOldButton();
|
||||
|
||||
if (config.shouldAttachRecommendedModulesButton) {
|
||||
var button = new RecommendedModulesButton(config);
|
||||
var recommendedModulesPopinHandler = new RecommendedModulesPopinHandler(pageMap, config);
|
||||
page.insertToolbarButton(button);
|
||||
recommendedModulesPopinHandler.initialize();
|
||||
}
|
||||
|
||||
if (config.shouldAttachRecommendedModulesAfterContent) {
|
||||
page.insertRecommendedModules(config);
|
||||
}
|
||||
};
|
||||
|
||||
})();
|
||||
31
modules/ps_mbo/views/js/upload_module_with_cdc.js
Normal file
31
modules/ps_mbo/views/js/upload_module_with_cdc.js
Normal file
@@ -0,0 +1,31 @@
|
||||
"use strict";
|
||||
/**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
|
||||
(function () {
|
||||
window.$(document).ready(function () {
|
||||
$("#module-modal-import").on("shown.bs.modal", function () {
|
||||
$("iframe").css("pointer-events", "none");
|
||||
});
|
||||
|
||||
$("#module-modal-import").on("hidden.bs.modal", function () {
|
||||
$("iframe").css("pointer-events", "");
|
||||
});
|
||||
});
|
||||
})();
|
||||
@@ -1,31 +1,24 @@
|
||||
<?php
|
||||
/**
|
||||
* 2007-2018 PrestaShop
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2018 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
{#**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*#}
|
||||
|
||||
{% set displayAction = action|title|replace({'_': " "})|trans({}, transDomain) %}
|
||||
{% if (action == 'configure') %}
|
||||
|
||||
<a class="{{ classes }}" href="{{ url }}">
|
||||
{{ displayAction }}
|
||||
</a>
|
||||
|
||||
{% else %}
|
||||
|
||||
<form class='{{classes_form|default() }}' method="post" action="{{ url }}">
|
||||
<button type="submit" class="{{ classes }} module_action_menu_{{ action }}" data-confirm_modal="module-modal-confirm-{{ name }}-{{ action }}">
|
||||
{{ displayAction }}
|
||||
</button>
|
||||
</form>
|
||||
|
||||
{% endif %}
|
||||
@@ -0,0 +1,65 @@
|
||||
{#**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*#}
|
||||
{% set url, priceRaw, priceDisplay, url_active, urls, name, transDomains =
|
||||
module.attributes.url,
|
||||
module.attributes.price.raw,
|
||||
module.attributes.price.displayPrice,
|
||||
module.attributes.url_active,
|
||||
module.attributes.urls,
|
||||
module.attributes.name,
|
||||
'AdminActions'
|
||||
%}
|
||||
<div class="btn-group module-actions">
|
||||
{% if url_active == 'buy' %}
|
||||
<a class="btn btn-secondary-reverse btn-block btn-outlined-secondary btn-outline-secondary module_action_menu_go_to_addons" href="{{ url }}" target="_blank">
|
||||
<i class="material-icons">launch</i> <p class="spacing-icone-p"> {{ 'Discover'|trans({}, 'Admin.Modules.Feature') }}</p>
|
||||
</a>
|
||||
{% elseif urls|length %}
|
||||
{% include '@Modules/ps_mbo/views/templates/admin/controllers/module_catalog/Includes/action_button.html.twig' with {
|
||||
'name': name,
|
||||
'classes_form': 'btn-group form-action-button',
|
||||
'classes' : 'btn btn-secondary',
|
||||
'url': urls[url_active],
|
||||
'action': url_active,
|
||||
'transDomain': transDomains}
|
||||
%}
|
||||
{% if (urls|length > 1) %}
|
||||
<input type="hidden" class="btn" />
|
||||
<button type="button" class="btn btn-outline-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<span class="sr-only">{{ 'Toggle Dropdown'|trans({}, 'Admin.Modules.Feature') }}</span>
|
||||
<div class="dropdown-menu">
|
||||
{% for module_action, module_url in urls %}
|
||||
{% if module_action != url_active %}
|
||||
<li>
|
||||
{% include '@Modules/ps_mbo/views/templates/admin/controllers/module_catalog/Includes/action_button.html.twig' with {
|
||||
'name': name,
|
||||
'classes' : 'dropdown-item',
|
||||
'url': module_url,
|
||||
'action': module_action,
|
||||
'transDomain': transDomains}
|
||||
%}
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
@@ -0,0 +1,97 @@
|
||||
{#**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*#}
|
||||
|
||||
{% set isModuleActive = module.database.active %}
|
||||
|
||||
<div class="mbo-module-grid__item col-sm-12 col-md-6 col-lg-4 col-xl-3 module-item module-item-grid" data-id="{{ module.attributes.id }}" data-name="{{ module.attributes.displayName }}" data-scoring="{{ module.attributes.avgRate }}" data-logo="{{ module.attributes.img }}" data-author="{{ module.attributes.author }}" data-version="{{ module.attributes.version }}" data-description="{{ module.attributes.description }}" data-tech-name="{{ module.attributes.name }}" data-child-categories="{{ module.attributes.categoryName }}" data-categories="{{ category }}" data-type="{{ module.attributes.productType }}" data-price="{{ module.attributes.price.raw }}" data-active="{{ isModuleActive }}">
|
||||
|
||||
<div class="mbo-module-card">
|
||||
<div class="mbo-module-card__top">
|
||||
<div class="mbo-module-card__header">
|
||||
<div class="mbo-module-card__img-container">
|
||||
<img class="mbo-module-card__img" src="{{ module.attributes.img }}" alt="{{ module.attributes.displayName }}"/>
|
||||
</div>
|
||||
<div class="mbo-module-card__title-container">
|
||||
<h3 class="mbo-module-card__title" data-toggle="pstooltip" data-placement="top" title="{{ module.attributes.displayName|raw }}">
|
||||
{% if module.attributes.displayName %}
|
||||
{{ module.attributes.displayName|raw }}
|
||||
{% else %}
|
||||
{{ module.attributes.name }}
|
||||
{% endif %}
|
||||
{% for pico in module.attributes.picos %}
|
||||
<img src="{{pico.img}}" alt="{{pico.label}}"/>
|
||||
{% endfor %}
|
||||
</h3>
|
||||
<p class="mbo-module-card__subtitle">
|
||||
{{ 'by %author%'|trans({'%author%': module.attributes.author}) }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mbo-module-card__infos">
|
||||
<div class="mbo-module-card__tags-container">
|
||||
{% if module.attributes.categoryName %}
|
||||
<div class="mbo-module-card__tag" title="{{ module.attributes.categoryName }}">
|
||||
{{ module.attributes.categoryName }}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% set badges = module.attributes.badges %}
|
||||
{% if badges %}
|
||||
{% set badge = badges|first %}
|
||||
<div class="mbo-module-card__tag" title="{{ badge.label }}">
|
||||
{{ badge.label }}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% if module.attributes.nbRates > 0 %}
|
||||
<div class="mbo-module-card__rate-container">
|
||||
<i class="material-icons">star</i>
|
||||
<span class="mbo-module-card__rate">{{ module.attributes.avgRate }}</span>
|
||||
<span class="mbo-module-card__nb-rate">({{ module.attributes.nbRates }})</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<p class="mbo-module-card__description">
|
||||
{{ module.attributes.description }}
|
||||
</p>
|
||||
|
||||
<a class="module-read-more-grid-btn mbo-module-card__read-more" href="{{ path('admin_module_cart', {"moduleId": module.attributes.id }) }}" data-target="#module-modal-read-more-{{module.attributes.name }}{{ additionalModalSuffix|default('') }}">
|
||||
{{ 'Show details'|trans({}, 'Modules.Mbo.Modulescatalog') }}
|
||||
</a>
|
||||
|
||||
<div class="mbo-module-card__bottom">
|
||||
|
||||
<p class="bo-module-card__price">
|
||||
{% if module.attributes.url_active == 'buy' and module.attributes.price.raw != '0.00' %}
|
||||
{{ module.attributes.price.displayPrice }}
|
||||
{% elseif module.attributes.url_active != 'buy' %}
|
||||
{{ 'Free'|trans({}, 'Modules.Mbo.Modulescatalog') }}
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
{% include '@Modules/ps_mbo/views/templates/admin/controllers/module_catalog/Includes/module_actions_buttons.html.twig' with { 'module': module, 'level' : level } %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% include '@PrestaShop/Admin/Module/Includes/modal_read_more.html.twig' with { 'module': module, 'additionalModalSuffix': additionalModalSuffix|default(''), 'level' : level } %}
|
||||
{% include '@PrestaShop/Admin/Module/Includes/modal_confirm.html.twig' with { 'module': module } %}
|
||||
</div>
|
||||
@@ -0,0 +1,38 @@
|
||||
{#**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*#}
|
||||
<div class="ps-dropdown dropdown btn-group bordered mb-1 module-bulk-actions disabled">
|
||||
<div id="bulk-actions-dropdown" class="dropdown-label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" data-flip="false">
|
||||
<span class="js-selected-item selected-item module-bulk-actions-selector-label">
|
||||
{{ 'Uninstall'|trans({}, 'Admin.Actions') }}
|
||||
</span>
|
||||
<i class="material-icons arrow-down float-right">keyboard_arrow_down</i>
|
||||
</div>
|
||||
|
||||
<div class="ps-dropdown-menu dropdown-menu module-category-selector items-list js-items-list">
|
||||
{% for key, name in bulkActions %}
|
||||
<a
|
||||
class="dropdown-item module-bulk-menu"
|
||||
data-ref="{{key}}"
|
||||
data-display-name="{{name}}"
|
||||
>
|
||||
{{ name }}
|
||||
</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
header('Pragma: no-cache');
|
||||
|
||||
header('Location: ../');
|
||||
exit;
|
||||
@@ -0,0 +1,74 @@
|
||||
{#**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*#}
|
||||
<div class="module-top-menu">
|
||||
<div class="row">
|
||||
<div class="col-md-12" style="margin-bottom: 8px;">
|
||||
<h1>{{ 'Find modules to grow your business' | trans({}, 'Modules.Mbo.Modulescatalog') }}</h1>
|
||||
<p>
|
||||
{{ 'Explore the Marketplace in your back office to find free and paid partner modules to grow your business. Increase traffic, improve conversions, or build customer loyalty... there’s a module for every need.' | trans({}, 'Modules.Mbo.Modulescatalog') }}
|
||||
</p>
|
||||
<p>
|
||||
{{ 'And if you want to give your store a new look, {link}check the theme catalog{/link}.'| trans({'{link}' : '<a href="'~path('admin_mbo_catalog_theme')~'">', '{/link}' : '</a>',}, 'Modules.Mbo.Modulescatalog') | raw }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<div class="input-group" id="search-input-group">
|
||||
<input type="text" id="module-search-bar" class="form-control">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-primary float-right search-button" id="module-search-button">
|
||||
<i class="material-icons">search</i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4 module-menu-item"></div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
{% if topMenuData is defined %}
|
||||
<div class="col-md-4 module-top-menu-item">
|
||||
<h3>{{ 'Category' | trans({}, 'Admin.Catalog.Feature') }}</h3>
|
||||
{% include '@PrestaShop/Admin/Module/Includes/dropdown_categories.html.twig' with { 'topMenuData': topMenuData } %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if requireFilterStatus is defined and requireFilterStatus == true %}
|
||||
<div class="col-md-4 module-top-menu-item">
|
||||
<h3>{{ 'Status' | trans({}, 'Admin.Global') }}</h3>
|
||||
{% include '@PrestaShop/Admin/Module/Includes/dropdown_status.html.twig' %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if level > constant('PrestaShopBundle\\Security\\Voter\\PageVoter::LEVEL_UPDATE') and bulkActions is defined %}
|
||||
<div class="col-md-4 module-top-menu-item disabled">
|
||||
<h3>{{ 'Bulk Actions'|trans({}, 'Admin.Global') }}</h3>
|
||||
{% include '@PrestaShop/Admin/Module/Includes/dropdown_bulk.html.twig' %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{% set js_translatable = {
|
||||
"Search - placeholder": "Search modules: keyword, name, author..."|trans({}, 'Admin.Modules.Help'),
|
||||
}|merge(js_translatable) %}
|
||||
@@ -0,0 +1,84 @@
|
||||
{#**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*#}
|
||||
<div id="module-modal-import" class="modal modal-vcenter fade" role="dialog" data-backdrop="static" data-keyboard="false">
|
||||
<div class="modal-dialog">
|
||||
<!-- Modal content-->
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title module-modal-title">{{ 'Upload a module'|trans({}, 'Modules.Mbo.Modulescatalog') }}</h4>
|
||||
<button id="module-modal-import-closing-cross" type="button" class="close">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
{% if level <= constant('PrestaShopBundle\\Security\\Voter\\PageVoter::LEVEL_UPDATE') %}
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="alert alert-danger" role="alert">
|
||||
<p class="alert-text">
|
||||
{{ errorMessage }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<form action="#" class="dropzone" id="importDropzone">
|
||||
<div class="module-import-start">
|
||||
<i class="module-import-start-icon material-icons">cloud_upload</i><br/>
|
||||
<p class=module-import-start-main-text>
|
||||
{{ 'Drop your module archive here or [1]select file[/1]'|trans({}, 'Modules.Mbo.Modulescatalog')|replace({'[1]' : '<a href="#" class="module-import-start-select-manual">', '[/1]' : '</a>'})|raw }}
|
||||
</p>
|
||||
<p class=module-import-start-footer-text>
|
||||
{{ 'Please upload one file at a time, .zip or tarball format (.tar, .tar.gz or .tgz).'|trans({}, 'Modules.Mbo.Modulescatalog') }}
|
||||
{{ 'Your module will be installed right after that.'|trans({}, 'Modules.Mbo.Modulescatalog') }}
|
||||
</p>
|
||||
</div>
|
||||
<div class='module-import-processing'>
|
||||
<!-- Loader -->
|
||||
<div class="spinner"></div>
|
||||
<p class=module-import-processing-main-text>{{ 'Installing module...'|trans({}, 'Modules.Mbo.Modulescatalog') }}</p>
|
||||
<p class=module-import-processing-footer-text>
|
||||
{{ "It will close as soon as the module is installed. It won't be long!"|trans({}, 'Modules.Mbo.Modulescatalog') }}
|
||||
</p>
|
||||
</div>
|
||||
<div class='module-import-success'>
|
||||
<i class="module-import-success-icon material-icons">done</i><br/>
|
||||
<p class='module-import-success-msg'>{{ 'Module installed!'|trans({}, 'Modules.Mbo.Modulescatalog') }}</p>
|
||||
<p class="module-import-success-details"></p>
|
||||
<a class="module-import-success-configure btn btn-primary-reverse btn-outline-primary light-button" href='#'>{{ 'Configure'|trans({}, 'Admin.Actions') }}</a>
|
||||
</div>
|
||||
<div class='module-import-failure'>
|
||||
<i class="module-import-failure-icon material-icons">error</i><br/>
|
||||
<p class='module-import-failure-msg'>{{ 'Oops... Upload failed.'|trans({}, 'Modules.Mbo.Modulescatalog') }}</p>
|
||||
<a href="#" class="module-import-failure-details-action">{{ 'What happened?'|trans({}, 'Modules.Mbo.Modulescatalog') }}</a>
|
||||
<div class='module-import-failure-details'></div>
|
||||
<a class="module-import-failure-retry btn btn-tertiary" href='#'>{{ 'Try again'|trans({}, 'Admin.Actions') }}</a>
|
||||
</div>
|
||||
<div class='module-import-confirm'>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,69 @@
|
||||
{#**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*#}
|
||||
|
||||
{% set url, priceRaw, priceDisplay, url_active, urls, name, transDomains =
|
||||
module.attributes.url,
|
||||
module.attributes.price.raw,
|
||||
module.attributes.price.displayPrice,
|
||||
module.attributes.url_active,
|
||||
module.attributes.urls,
|
||||
module.attributes.name,
|
||||
'AdminActions'
|
||||
%}
|
||||
|
||||
|
||||
<div class="mbo-module-card__actions btn-group module-actions">
|
||||
{% if url_active == 'buy' %}
|
||||
<a class="btn btn-secondary btn-block btn-outline-secondary" href="{{ url }}" target="_blank">
|
||||
<i class="material-icons" style="font-size: 18px;">launch</i>
|
||||
{{ 'Discover'|trans({}, 'Modules.Mbo.Modulescatalog') }}
|
||||
</a>
|
||||
{% elseif urls|length %}
|
||||
{% include '@Modules/ps_mbo/views/templates/admin/controllers/module_catalog/Includes/action_button.html.twig' with {
|
||||
'name': name,
|
||||
'classes_form': 'btn-block',
|
||||
'classes' : 'btn btn-secondary btn-block',
|
||||
'url': urls[url_active],
|
||||
'action': url_active,
|
||||
'transDomain': transDomains}
|
||||
%}
|
||||
{% if (urls|length > 1) %}
|
||||
<input type="hidden" class="btn"/>
|
||||
<button type="button" class="btn btn-outline-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<span class="sr-only">{{ 'Toggle Dropdown'|trans({}, 'Admin.Modules.Feature') }}</span>
|
||||
<div class="dropdown-menu">
|
||||
{% for module_action, module_url in urls %}
|
||||
{% if module_action != url_active %}
|
||||
<li>
|
||||
{% include '@Modules/ps_mbo/views/templates/admin/controllers/module_catalog/Includes/action_button.html.twig' with {
|
||||
'name': name,
|
||||
'classes' : 'dropdown-item',
|
||||
'url': module_url,
|
||||
'action': module_action,
|
||||
'transDomain': transDomains}
|
||||
%}
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
@@ -0,0 +1,50 @@
|
||||
{#**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*#}
|
||||
<div class="module-sorting-menu">
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<div class="module-sorting-search-wording">
|
||||
<span id="selected_modules" class="module-search-result-title module-search-result-wording">{{ '%nbModules% partner modules compatible with your store'|trans({'%nbModules%' : totalModules}, 'Modules.Mbo.Modulescatalog') }}</span>
|
||||
|
||||
<div class="module-sorting-search-wording__tooltip-container">
|
||||
{% if constant('_PS_VERSION_') > '1.7.7.8' %}
|
||||
{% include '@Common/HelpBox/helpbox.html.twig' with { 'content' : "In the back office, we only show you the modules developed by PrestaShop or our partners that are compatible with your store. "|trans({}, 'Modules.Mbo.Modulescatalog') } %}
|
||||
{% else %}
|
||||
<span
|
||||
class="help-box" data-toggle="popover"
|
||||
data-content="{{ "In the back office, we only show you the modules developed by PrestaShop or our partners that are compatible with your store. "|trans({}, 'Modules.Mbo.Modulescatalog') }}"
|
||||
>
|
||||
</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="module-sorting module-sorting-author float-right">
|
||||
<select id="sort_module" class="custom-select sort-component">
|
||||
<option value="" disabled selected>- {{ 'Sort by'|trans({}, 'Admin.Actions') }} -</option>
|
||||
<option value="name">{{ 'Name'|trans({}, 'Admin.Global') }}</option>
|
||||
<option value="price">{{ 'Increasing Price'|trans({}, 'Admin.Modules.Feature') }}</option>
|
||||
<option value="price-desc">{{ 'Decreasing Price'|trans({}, 'Admin.Modules.Feature') }}</option>
|
||||
<option value="scoring-desc">{{ 'Popularity'|trans({}, 'Admin.Modules.Feature') }}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,68 @@
|
||||
{#**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*#}
|
||||
{%
|
||||
set moduleImage = module.attributes.img is null ?
|
||||
constant('_MODULE_DIR_') ~ module.attributes.name ~ '/' ~ module.attributes.logo :
|
||||
module.attributes.img
|
||||
%}
|
||||
<tr>
|
||||
<td class="fixed-with-sm center">
|
||||
<img
|
||||
class="img-thumbnail"
|
||||
alt="{{ module.attributes.name }}"
|
||||
src="{{ moduleImage }}"
|
||||
/>
|
||||
</td>
|
||||
<td>
|
||||
<div id="anchor{{ module.attributes.name|capitalize }}" title="{{ module.attributes.displayName }}">
|
||||
<div class="module_name">
|
||||
<span style="display:none">{{ module.attributes.name }}</span>
|
||||
{{ module.attributes.displayName }}
|
||||
<small class="text-muted">v{{ module.attributes.version }} - by {{ module.attributes.author }}</small>
|
||||
{% if module.attributes.type is not empty and module.attributes.type == 'addonsBought' %}
|
||||
- <span class="module-badge-bought help-tooltip text-warning" data-title="{{ 'You bought this module on PrestaShop Addons. Thank You.'|trans({}, 'Admin.Modules.Help') }}"><i class="icon-pushpin"></i> <small>{{ 'Bought'|trans({}, 'Admin.Modules.Help') }}</small></span>
|
||||
{% elseif module.attributes.type is not empty and module.attributes.type == 'addonsMustHave' %}
|
||||
- <span class="module-badge-popular help-tooltip text-primary" data-title="{{ 'This module is available on PrestaShop Addons.'|trans({}, 'Admin.Modules.Help') }}"><i class="icon-group"></i> <small>{{ 'Popular'|trans({}, 'Admin.Modules.Help') }}</small></span>
|
||||
{% elseif module.attributes.type is not empty and module.attributes.type == 'addonsPartner' %}
|
||||
- <span class="module-badge-partner help-tooltip text-warning" data-title="{{ 'This module is available for free thanks to our partner.'|trans({}, 'Admin.Modules.Help') }}"><i class="icon-pushpin"></i> <small>{{ 'Official'|trans({}, 'Admin.Modules.Help') }}</small></span>
|
||||
{% elseif module.attributes.id is defined and module.attributes.id >= 0 %}
|
||||
{% if module.attributes.version_addons is defined and module.attributes.version_addons %}
|
||||
<span class="label label-warning">{{ 'Need update'|trans({}, 'Admin.Modules.Help') }}</span>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
<p class="module_description">
|
||||
{% if module.attributes.description is defined and module.attributes.description is not empty %}
|
||||
{{ module.attributes.description }}
|
||||
{% endif %}
|
||||
</p>
|
||||
{% if (module.attributes.message is defined and module.attributes.name is not empty) and (module.attributes.type is not defined or module.attributes.type != 'addonsMustHave' or module.attributes.type != 'addonsNative') %}
|
||||
<div class="alert alert-success" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert">×</button>
|
||||
<p class="alert-text">
|
||||
{{ module.attributes.message }}
|
||||
</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</td>
|
||||
<td class="module-container module-quick-action-list clearfix">
|
||||
{{ include('@Modules/ps_mbo/views/templates/admin/controllers/module_catalog/Includes/action_menu.html.twig', {'module': module}) }}
|
||||
</td>
|
||||
</tr>
|
||||
@@ -0,0 +1,71 @@
|
||||
{#**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*#}
|
||||
{% set modulesListShouldBeDisplayed = (modulesList is defined and modulesList is not empty) %}
|
||||
{% if modulesListShouldBeDisplayed == true %}
|
||||
<div class="row row-margin-bottom">
|
||||
<div class="col-lg-12">
|
||||
<ul class="nav nav-pills">
|
||||
{% if modulesList.notInstalled|length > 0 %}
|
||||
<li class="active">
|
||||
<a href="#tab_modules_list_not_installed" data-toggle="tab">
|
||||
{{ 'Not Installed'|trans({}) }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if modulesList.installed|length > 0 %}
|
||||
<li {% if modulesList.notInstalled|length == 0 %}class="active"{% endif %}>
|
||||
<a href="#tab_modules_list_installed" data-toggle="tab">
|
||||
{{ 'Installed'|trans({}) }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="modules_list_container_content" class="tab-content modal-content-overflow">
|
||||
{% if modulesList.notInstalled is defined and modulesList.notInstalled is not empty %}
|
||||
<div class="tab-pane active" id="tab_modules_list_not_installed">
|
||||
<table id="tab_modules_list_not_installed" class="table">
|
||||
{% for module in modulesList.notInstalled %}
|
||||
{{ include('@Modules/ps_mbo/views/templates/admin/controllers/module_catalog/Includes/tab-module-line.html.twig',{'module': module}) }}
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if modulesList.installed|length > 0 %}
|
||||
<div class="tab-pane {% if modulesList.notInstalled|length == 0 %}active{% endif %}" id="tab_modules_list_installed">
|
||||
<table id="tab_modules_list_installed" class="table">
|
||||
{% for module in modulesList.installed %}
|
||||
{{ include('@Modules/ps_mbo/views/templates/admin/controllers/module_catalog/Includes/tab-module-line.html.twig',{'module': module}) }}
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="alert alert-addons row-margin-top" role="alert">
|
||||
<p class="alert-text">
|
||||
<a href="https://addons.prestashop.com/?utm_source=back-office&utm_medium=dispatch&utm_campaign=back-office-{{ app.request.locale }}&utm_content=download{% if adminListFromSource is defined %}&utm_term={{ adminListFromSource }}{% endif %}" onclick="return !window.open(this.href);">{{ 'More modules on addons.prestashop.com'|trans({}) }}</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{% if modulesListShouldBeDisplayed == true %}
|
||||
<script src="{{ asset('themes/new-theme/public/module_card.bundle.js') }}"></script>
|
||||
{% endif %}
|
||||
@@ -0,0 +1,24 @@
|
||||
{#**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*#}
|
||||
|
||||
{% extends '@PrestaShop/Admin/layout.html.twig' %}
|
||||
|
||||
{% block content %}
|
||||
{{ pageContent|raw }}
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,91 @@
|
||||
{#**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*#}
|
||||
{% extends '@PrestaShop/Admin/Module/common.html.twig' %}
|
||||
|
||||
{% block javascripts %}
|
||||
{{ parent() }}
|
||||
<script type="application/javascript" src="{{ cdc_error_templating_url }}"></script>
|
||||
|
||||
{% if cdc_script_not_found is defined and cdc_script_not_found is same as(true) %}
|
||||
<script type="application/javascript" src="{{ cdc_error_url }}"></script>
|
||||
{% endif %}
|
||||
|
||||
{% if urlAccountsCdn is defined and urlAccountsCdn is not empty %}
|
||||
{# PrestaShop Account #}
|
||||
<script src="{{ urlAccountsCdn }}" rel=preload></script>
|
||||
<script>
|
||||
if (window?.psaccountsVue) {
|
||||
window?.psaccountsVue?.init();
|
||||
{% set shop_context = shop_context|merge({'accounts_component_loaded': true}) %}
|
||||
}
|
||||
</script>
|
||||
{% endif %}
|
||||
|
||||
<script>
|
||||
function addOrUpdateUrlParam(name, value)
|
||||
{
|
||||
var href = window.location.href;
|
||||
var regex = new RegExp("[&\\?]" + name + "=");
|
||||
if(regex.test(href))
|
||||
{
|
||||
regex = new RegExp("([&\\?])" + name + "=\\d+");
|
||||
window.location.href = href.replace(regex, "$1" + name + "=" + value);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(href.indexOf("?") > -1)
|
||||
window.location.href = href + "&" + name + "=" + value;
|
||||
else
|
||||
window.location.href = href + "?" + name + "=" + value;
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof window.mboCdc == undefined || typeof window.mboCdc == "undefined") {
|
||||
if (typeof renderCdcError === 'function') {
|
||||
window.$(document).ready(function() {
|
||||
renderCdcError($('#cdc-container'));
|
||||
});
|
||||
}
|
||||
} else {
|
||||
const currentUrl = new URL(window.location.href)
|
||||
if (currentUrl.searchParams.has('filterCategoryRef') && !currentUrl.searchParams.has('mbo_cdc_path')) {
|
||||
addOrUpdateUrlParam('mbo_cdc_path', encodeURIComponent('/#/modules'));
|
||||
} else {
|
||||
const renderModules = window.mboCdc.renderModules
|
||||
|
||||
const context = {{ shop_context|json_encode()|raw }};
|
||||
|
||||
renderModules(context, '#cdc-container')
|
||||
}
|
||||
}
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% block stylesheets %}
|
||||
{{ parent() }}
|
||||
<link rel="stylesheet" href="{{ cdc_error_templating_css }}" type="text/css" media="all">
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<prestashop-accounts style="display: none;"></prestashop-accounts>
|
||||
|
||||
<div class="mbo-catalog-wrapper cdc-container" id="cdc-container" data-error-path="{{ path('admin_mbo_module_cdc_error') }}"></div>
|
||||
|
||||
{% include '@Modules/ps_mbo/views/templates/admin/controllers/module_catalog/Includes/modal_import.html.twig' with { 'level' : level, 'errorMessage' : errorMessage } %}
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,109 @@
|
||||
{#**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*#}
|
||||
|
||||
{% block javascripts %}
|
||||
<script>
|
||||
$('body').on(
|
||||
'moduleCatalogLoaded',
|
||||
function() {
|
||||
var refCategory = null;
|
||||
|
||||
$('body').on('click', '.module-category-menu', function (event) {
|
||||
refCategory = $(this).attr('data-category-ref');
|
||||
});
|
||||
|
||||
function applyChangeToUpdateLink() {
|
||||
var searchtext = encodeURIComponent($('.pstaggerAddTagInput').val());
|
||||
var nbModules = $('.modules-list').find('.module-item').length;
|
||||
var locale = "{{ locale }}";
|
||||
|
||||
if(nbModules > 0) {
|
||||
$('.module-sorting-menu').show();
|
||||
$('.mbo-modules-catalog-no-result').hide();
|
||||
}
|
||||
else {
|
||||
$('.module-sorting-menu').hide();
|
||||
$('.mbo-modules-catalog-no-result').show();
|
||||
}
|
||||
|
||||
var urlParams = 'utm_source=back-office&utm_medium=search-no-result-mbo&utm_campaign=back-office-{{ locale }}&utm_content=download17&compatibility={{ psVersion }}&search_query=' + searchtext;
|
||||
|
||||
if(refCategory) urlParams += "&id_category=" + refCategory
|
||||
|
||||
if(locale == "en")
|
||||
$('#link-addons-no-result').attr('href', 'https://addons.prestashop.com/en/search?' + urlParams);
|
||||
else if(locale == "fr")
|
||||
$('#link-addons-no-result').attr('href', 'https://addons.prestashop.com/fr/recherche?' + urlParams);
|
||||
else if(locale == "es")
|
||||
$('#link-addons-no-result').attr('href', 'https://addons.prestashop.com/es/buscar?' + urlParams);
|
||||
else
|
||||
$('#link-addons-no-result').attr('href', 'https://addons.prestashop.com/'+ locale +'/search.php?' + urlParams);
|
||||
};
|
||||
|
||||
function observe(selector, callback) {
|
||||
// Call it once to get all the elements already on the page
|
||||
var elements = document.querySelectorAll(selector);
|
||||
|
||||
elements.forEach(element => {
|
||||
console.log(element);
|
||||
var observer = new MutationObserver(() => {
|
||||
callback(element);
|
||||
});
|
||||
|
||||
observer.observe(element, {
|
||||
childList: true,
|
||||
attributes: true,
|
||||
characterData: true,
|
||||
subtree: true,
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
observe('.pstaggerWrapper, .module-menu-item', element => {
|
||||
applyChangeToUpdateLink()
|
||||
});
|
||||
|
||||
$(".pstaggerAddTagInput").change(function() {
|
||||
applyChangeToUpdateLink()
|
||||
});
|
||||
|
||||
applyChangeToUpdateLink();
|
||||
}
|
||||
);
|
||||
</script>
|
||||
{% endblock %}
|
||||
<div class="mbo-modules-catalog row mbo-modules-catalog__grid modules-list" data-name="all">
|
||||
{% for category in categories.subMenu %}
|
||||
{% for module in category.modules %}
|
||||
{% include '@Modules/ps_mbo/views/templates/admin/controllers/module_catalog/Includes/catalog_card.html.twig' with { 'module': module, 'origin': origin|default('none'), 'level' : level, 'category': category.refMenu } %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
<div class="mbo-modules-catalog-no-result">
|
||||
<h1>
|
||||
{{ 'No partner module matches your search'|trans({}, 'Modules.Mbo.Modulescatalog') }}
|
||||
</h1>
|
||||
<p>
|
||||
{{ 'Try different keywords and filters, or'|trans({}, 'Modules.Mbo.Modulescatalog') }}
|
||||
<a id="link-addons-no-result" target="_blank">{{ 'search the PrestaShop Marketplace.'|trans({}, 'Modules.Mbo.Modulescatalog') }}</a>
|
||||
</p>
|
||||
<img src="{{ asset('../modules/ps_mbo/views/img/no_result.svg') }}">
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,35 @@
|
||||
{#**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*#}
|
||||
<div class="cdc-error-container">
|
||||
<div class="cdc-error-content">
|
||||
<div class="cdc-error-content-wrapper">
|
||||
<h1 class="cdc-error-title">
|
||||
{{ 'Oh no.. something went wrong'|trans({}, 'Modules.Mbo.Global') }}
|
||||
</h1>
|
||||
<p class="cdc-error-message">
|
||||
{{ 'There has been a problem on our side. Refresh your page and if the problem persists, try again later.'|trans({}, 'Modules.Mbo.Global') }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="cdc-error-button-container">
|
||||
<button class="cdc-error-button" onclick="javascript:window.location.reload();">
|
||||
{{ 'Refresh page'|trans({}, 'Modules.Mbo.Global') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
header('Pragma: no-cache');
|
||||
|
||||
header('Location: ../');
|
||||
exit;
|
||||
@@ -0,0 +1,70 @@
|
||||
{#**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*#}
|
||||
|
||||
{% extends app.request.isxmlhttprequest ? '@Modules/ps_mbo/views/templates/admin/layout-ajax.html.twig' : '@PrestaShop/Admin/layout.html.twig' %}
|
||||
|
||||
{% block content %}
|
||||
{% if recommendedModulesNotInstalled is not empty or recommendedModulesInstalled is not empty %}
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
{% if recommendedModulesNotInstalled is not empty %}
|
||||
<li class="nav-item active">
|
||||
<a class="nav-link active" data-toggle="tab" href="#tab_modules_list_not_installed" role="tab">
|
||||
{{ 'Not Installed'|trans({}, 'Modules.Mbo.Recommendedmodulesandservices') }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if recommendedModulesInstalled is not empty %}
|
||||
<li class="nav-item{% if recommendedModulesNotInstalled is empty %} active{% endif %}">
|
||||
<a class="nav-link{% if recommendedModulesNotInstalled is empty %} active{% endif %}" data-toggle="tab" href="#tab_modules_list_installed" role="tab">
|
||||
{{ 'Installed'|trans({}, 'Modules.Mbo.Recommendedmodulesandservices') }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
<div id="modules_list_container_content" class="tab-content">
|
||||
{% if recommendedModulesNotInstalled is not empty %}
|
||||
<div class="tab-pane active" id="tab_modules_list_not_installed" role="tabpanel">
|
||||
<table class="table">
|
||||
{% for recommendedModuleNotInstalled in recommendedModulesNotInstalled %}
|
||||
{{ include('@Modules/ps_mbo/views/templates/admin/controllers/module_catalog/Includes/tab-module-line.html.twig',{'module': recommendedModuleNotInstalled}) }}
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if recommendedModulesInstalled is not empty %}
|
||||
<div class="tab-pane {% if recommendedModulesNotInstalled is empty %}active{% endif %}" id="tab_modules_list_installed" role="tabpanel">
|
||||
<table class="table">
|
||||
{% for recommendedModuleInstalled in recommendedModulesInstalled %}
|
||||
{{ include('@Modules/ps_mbo/views/templates/admin/controllers/module_catalog/Includes/tab-module-line.html.twig',{'module': recommendedModuleInstalled}) }}
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="alert alert-addons row-margin-top" role="alert">
|
||||
<p class="alert-text">
|
||||
<a href="{{recommendedModulesLinkToAddons}}" onclick="return !window.open(this.href);">
|
||||
{{ 'More similar modules on Prestashop Marketplace'|trans({}, 'Modules.Mbo.Recommendedmodulesandservices') }}
|
||||
</a>
|
||||
<i class="material-icons">open_in_new</i>
|
||||
</p>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,45 @@
|
||||
{#**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*#}
|
||||
{% extends '@PrestaShop/Admin/Module/common.html.twig' %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-10">
|
||||
{% block catalog_categories_listing %}
|
||||
<div class="module-short-list">
|
||||
{% if modules is empty %}
|
||||
<div class="modules-list module-list-empty">
|
||||
<p>
|
||||
{{ 'You do not have any uninstalled module.' | trans({}, 'Modules.Mbo.Modulescatalog') }}
|
||||
</p>
|
||||
</div>
|
||||
{% else %}
|
||||
{% include '@PrestaShop/Admin/Module/Includes/grid_manage_installed.html.twig' with { 'modules': modules, 'display_type': 'list', 'origin': 'manage', 'id': 'all' } %}
|
||||
|
||||
{% block addon_card_see_more %}
|
||||
{% if (modules | length) > maxModulesDisplayed %}
|
||||
{% include '@PrestaShop/Admin/Module/Includes/see_more.html.twig' with { 'id': 'all' } %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,24 @@
|
||||
{#**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*#}
|
||||
|
||||
{% extends app.request.isxmlhttprequest ? '@Modules/ps_mbo/views/templates/admin/layout-ajax.html.twig' : '@PrestaShop/Admin/layout.html.twig' %}
|
||||
|
||||
{% block content %}
|
||||
{{ pageContent|raw }}
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
header('Pragma: no-cache');
|
||||
|
||||
header('Location: ../');
|
||||
exit;
|
||||
38
modules/ps_mbo/views/templates/admin/error.html.twig
Normal file
38
modules/ps_mbo/views/templates/admin/error.html.twig
Normal file
@@ -0,0 +1,38 @@
|
||||
{#**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*#}
|
||||
|
||||
{% extends app.request.isxmlhttprequest ? '@Modules/ps_mbo/views/templates/admin/layout-ajax.html.twig' : '@PrestaShop/Admin/layout.html.twig' %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="card">
|
||||
<div class="card-body text-center">
|
||||
<img class="img-responsive"
|
||||
src="{{ asset('../modules/ps_mbo/views/img/error.svg') }}"
|
||||
alt="{{ 'It looks like we have trouble connecting to Addons. Please refresh the page or check your firewall configuration.'|trans({}, 'Admin.Notifications.Error') }}"
|
||||
>
|
||||
<p class="mt-3 error-header">
|
||||
{{ 'It looks like we have trouble connecting to Addons. Please refresh the page or check your firewall configuration.'|trans({}, 'Admin.Notifications.Error') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -1,31 +1,24 @@
|
||||
<?php
|
||||
/**
|
||||
* 2007-2018 PrestaShop
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2018 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
|
||||
19
modules/ps_mbo/views/templates/admin/layout-ajax.html.twig
Normal file
19
modules/ps_mbo/views/templates/admin/layout-ajax.html.twig
Normal file
@@ -0,0 +1,19 @@
|
||||
{#**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*#}
|
||||
{% block content %}{% endblock %}
|
||||
28
modules/ps_mbo/views/templates/hook/index.php
Normal file
28
modules/ps_mbo/views/templates/hook/index.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
header('Pragma: no-cache');
|
||||
|
||||
header('Location: ../');
|
||||
exit;
|
||||
57
modules/ps_mbo/views/templates/hook/recommended-modules.tpl
Normal file
57
modules/ps_mbo/views/templates/hook/recommended-modules.tpl
Normal file
@@ -0,0 +1,57 @@
|
||||
{**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*}
|
||||
|
||||
<script>
|
||||
if (undefined !== mbo) {
|
||||
mbo.initialize({
|
||||
translations: {
|
||||
'Recommended Modules and Services': '{$recommendedModulesTitleTranslated|escape:'javascript'}',
|
||||
'description': "{$recommendedModulesDescriptionTranslated|escape:'javascript'}",
|
||||
'Close': '{$recommendedModulesCloseTranslated|escape:'javascript'}',
|
||||
},
|
||||
recommendedModulesUrl: '{$recommendedModulesUrl|escape:'javascript'}',
|
||||
shouldAttachRecommendedModulesAfterContent: {$shouldAttachRecommendedModulesAfterContent|intval},
|
||||
shouldAttachRecommendedModulesButton: {$shouldAttachRecommendedModulesButton|intval},
|
||||
shouldUseLegacyTheme: {$shouldUseLegacyTheme|intval},
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
{if $shouldDisplayModuleManagerMessage}
|
||||
<script>
|
||||
$(document).ready( function () {
|
||||
if (typeof window.mboCdc !== undefined && typeof window.mboCdc !== "undefined") {
|
||||
const targetDiv = $('#main-div .content-div').first()
|
||||
|
||||
const divModuleManagerMessage = document.createElement("div");
|
||||
divModuleManagerMessage.setAttribute("id", "module-manager-message-cdc-container");
|
||||
|
||||
divModuleManagerMessage.classList.add('module-manager-message-wrapper');
|
||||
divModuleManagerMessage.classList.add('cdc-container');
|
||||
|
||||
targetDiv.prepend(divModuleManagerMessage)
|
||||
const renderModulesManagerMessage = window.mboCdc.renderModulesManagerMessage
|
||||
|
||||
const context = {$shopContext};
|
||||
|
||||
renderModulesManagerMessage(context, '#module-manager-message-cdc-container')
|
||||
}
|
||||
})
|
||||
</script>
|
||||
{/if}
|
||||
@@ -1,31 +1,24 @@
|
||||
<?php
|
||||
/**
|
||||
* 2007-2018 PrestaShop
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2018 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
|
||||
Reference in New Issue
Block a user