Fixes
This commit is contained in:
parent
532248c01b
commit
3c3c642042
@ -64,6 +64,11 @@ server {
|
||||
try_files $uri @sfFront;
|
||||
}
|
||||
|
||||
# location /w2p/ {
|
||||
# proxy_pass http://tp:8080/w2p/;
|
||||
# proxy_temp_path /tmp/proxy;
|
||||
#}
|
||||
|
||||
location @sfFront { # Symfony
|
||||
if ($request_method = 'OPTIONS') {
|
||||
add_header 'Access-Control-Allow-Origin' '*';
|
||||
|
||||
@ -25,6 +25,12 @@
|
||||
"@symfony/ux-live-component/dist/live.min.css": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@symfony/ux-vue": {
|
||||
"vue": {
|
||||
"enabled": true,
|
||||
"fetch": "eager"
|
||||
}
|
||||
}
|
||||
},
|
||||
"entrypoints": []
|
||||
|
||||
@ -7,6 +7,8 @@ import { initTabs } from 'david-ai';
|
||||
|
||||
// Initialize tabs functionality
|
||||
initTabs();
|
||||
import { registerVueControllerComponents } from '@symfony/ux-vue';
|
||||
registerVueControllerComponents()
|
||||
import { startStimulusApp } from '@symfony/stimulus-bundle';
|
||||
const app = startStimulusApp();
|
||||
Alpine.plugin(persist)
|
||||
|
||||
41
src/new/assets/vue/controllers/PackageSearch.js
Normal file
41
src/new/assets/vue/controllers/PackageSearch.js
Normal file
@ -0,0 +1,41 @@
|
||||
/**
|
||||
| Single-File Components - e.g. PackageSearch.vue -
|
||||
| are supported when using Webpack Encore.
|
||||
*/
|
||||
import { ref, computed } from 'vue';
|
||||
import PackageList from "./components/PackageList.js";
|
||||
|
||||
export default {
|
||||
components: {
|
||||
PackageList
|
||||
},
|
||||
props: ['news'],
|
||||
setup(props) {
|
||||
const search = ref('');
|
||||
|
||||
const filteredPackages = computed(() => {
|
||||
return props.packages.filter(
|
||||
uxPackage => uxPackage.humanName.toLowerCase().includes(search.value.toLowerCase())
|
||||
);
|
||||
});
|
||||
|
||||
return {
|
||||
search,
|
||||
filteredPackages
|
||||
}
|
||||
},
|
||||
template: `
|
||||
<div>
|
||||
<input
|
||||
v-model="search"
|
||||
class="form-control"
|
||||
type="search"
|
||||
placeholder="This search is built in Vue.js!"
|
||||
/>
|
||||
|
||||
<div class="mt-3">
|
||||
PackageList
|
||||
</div>
|
||||
</div>
|
||||
`
|
||||
};
|
||||
21
src/new/assets/vue/controllers/components/PackageList.js
Normal file
21
src/new/assets/vue/controllers/components/PackageList.js
Normal file
@ -0,0 +1,21 @@
|
||||
export default {
|
||||
props: ['packages'],
|
||||
template: `
|
||||
<div v-if="packages.length === 0">
|
||||
No packages found. Sad trombone...
|
||||
</div>
|
||||
|
||||
<div v-else class="PackageList">
|
||||
|
||||
<div v-for="package in packages" class="PackageListItem">
|
||||
<div class="PackageListItem__icon" :style="{'--gradient': package.gradient}">
|
||||
<img :src="package.imageUrl" :alt="package.humanName">
|
||||
</div>
|
||||
<h4 class="PackageListItem__label">
|
||||
<a :href="package.url">{{ package.humanName }}</a>
|
||||
</h4>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
`
|
||||
};
|
||||
@ -94,6 +94,7 @@
|
||||
"symfony/ux-chartjs": "^2.19",
|
||||
"symfony/ux-live-component": "^2.12",
|
||||
"symfony/ux-twig-component": "^2.12",
|
||||
"symfony/ux-vue": "^2.23",
|
||||
"symfony/validator": "*",
|
||||
"symfony/web-link": "*",
|
||||
"symfony/yaml": "*",
|
||||
|
||||
554
src/new/composer.lock
generated
554
src/new/composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -62,5 +62,6 @@ return [
|
||||
Symfony\UX\Chartjs\ChartjsBundle::class => ['all' => true],
|
||||
Symfonycasts\TailwindBundle\SymfonycastsTailwindBundle::class => ['all' => true],
|
||||
Symfonycasts\SassBundle\SymfonycastsSassBundle::class => ['all' => true],
|
||||
Dunglas\DoctrineJsonOdm\Bundle\DunglasDoctrineJsonOdmBundle::class => ['all' => true]
|
||||
Dunglas\DoctrineJsonOdm\Bundle\DunglasDoctrineJsonOdmBundle::class => ['all' => true],
|
||||
Symfony\UX\Vue\VueBundle::class => ['all' => true],
|
||||
];
|
||||
|
||||
@ -334,4 +334,52 @@ return [
|
||||
'version' => '3.1.2',
|
||||
'type' => 'css',
|
||||
],
|
||||
'vue' => [
|
||||
'version' => '3.5.13',
|
||||
],
|
||||
'@vue/runtime-dom' => [
|
||||
'version' => '3.5.13',
|
||||
],
|
||||
'@vue/compiler-dom' => [
|
||||
'version' => '3.5.13',
|
||||
],
|
||||
'@vue/shared' => [
|
||||
'version' => '3.5.13',
|
||||
],
|
||||
'@vue/runtime-core' => [
|
||||
'version' => '3.5.13',
|
||||
],
|
||||
'@vue/compiler-core' => [
|
||||
'version' => '3.5.13',
|
||||
],
|
||||
'@vue/reactivity' => [
|
||||
'version' => '3.5.13',
|
||||
],
|
||||
'@symfony/ux-vue' => [
|
||||
'path' => './vendor/symfony/ux-vue/assets/dist/loader.js',
|
||||
],
|
||||
'pinia' => [
|
||||
'version' => '3.0.1',
|
||||
],
|
||||
'@vue/devtools-api' => [
|
||||
'version' => '7.7.2',
|
||||
],
|
||||
'@vue/devtools-kit' => [
|
||||
'version' => '7.7.2',
|
||||
],
|
||||
'@vue/devtools-shared' => [
|
||||
'version' => '7.7.2',
|
||||
],
|
||||
'perfect-debounce' => [
|
||||
'version' => '1.0.0',
|
||||
],
|
||||
'hookable' => [
|
||||
'version' => '5.5.3',
|
||||
],
|
||||
'birpc' => [
|
||||
'version' => '0.2.19',
|
||||
],
|
||||
'splitpanes' => [
|
||||
'version' => '4.0.3',
|
||||
],
|
||||
];
|
||||
|
||||
@ -32,6 +32,9 @@ class Product
|
||||
#[Field(type: 'string')]
|
||||
protected $ansprechPartner;
|
||||
|
||||
#[Field(type: 'boolean')]
|
||||
protected bool $rawText = false;
|
||||
|
||||
/**
|
||||
* @var \DateTime $ablaufDatum;
|
||||
*/
|
||||
@ -250,7 +253,6 @@ class Product
|
||||
|
||||
/**
|
||||
* @var boolean $uploadFromLatestOrder;
|
||||
*
|
||||
*/
|
||||
#[Field(type: 'bool')]
|
||||
protected $uploadFromLatestOrder;
|
||||
@ -263,7 +265,6 @@ class Product
|
||||
|
||||
/**
|
||||
* @var boolean $uploadProvided;
|
||||
*
|
||||
*/
|
||||
#[Field(type: 'bool')]
|
||||
protected $uploadProvided;
|
||||
@ -274,7 +275,6 @@ class Product
|
||||
|
||||
/**
|
||||
* @var string $uploadProvidedFile;
|
||||
*
|
||||
*/
|
||||
#[Field(type: 'string')]
|
||||
protected $uploadProvidedFile;
|
||||
@ -1021,4 +1021,14 @@ class Product
|
||||
{
|
||||
$this->uploadProvidedDownload = $uploadProvidedDownload;
|
||||
}
|
||||
|
||||
public function isRawText(): bool
|
||||
{
|
||||
return (bool)$this->rawText;
|
||||
}
|
||||
|
||||
public function setRawText(bool $var): void
|
||||
{
|
||||
$this->rawText = $var;
|
||||
}
|
||||
}
|
||||
|
||||
@ -52,6 +52,7 @@ class Product
|
||||
protected $extraSettings;
|
||||
protected $availability;
|
||||
protected $weight;
|
||||
protected $rawText = false;
|
||||
protected $text;
|
||||
/**
|
||||
* @var integer
|
||||
@ -3132,4 +3133,13 @@ class Product
|
||||
{
|
||||
$this->noIndex = $noIndex;
|
||||
}
|
||||
public function isRawText(): bool
|
||||
{
|
||||
return (bool)$this->rawText;
|
||||
}
|
||||
|
||||
public function setRawText(bool $rawText): void
|
||||
{
|
||||
$this->rawText = $rawText;
|
||||
}
|
||||
}
|
||||
|
||||
@ -65,6 +65,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="w-full px-4">
|
||||
<div {{ vue_component('PackageSearch', {news: news}) }}>
|
||||
Loading...
|
||||
</div>
|
||||
{{ form_row(form.introduction)}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -95,9 +95,9 @@ class EditController extends AbstractController
|
||||
/**
|
||||
* edit
|
||||
*
|
||||
* @param Request $request
|
||||
* @param EntityManagerInterface $entityManager
|
||||
* @param $uid
|
||||
* @param Request $request
|
||||
* @param EntityManagerInterface $entityManager
|
||||
* @param $uid
|
||||
* @return JsonResponse
|
||||
*/
|
||||
#[Route(path: '/edit/add/lang/data/{uid}', name: 'backend_production_product_edit_add_lang_data')]
|
||||
@ -124,9 +124,9 @@ class EditController extends AbstractController
|
||||
/**
|
||||
* edit
|
||||
*
|
||||
* @param Request $request
|
||||
* @param EntityManagerInterface $entityManager
|
||||
* @param $uid
|
||||
* @param Request $request
|
||||
* @param EntityManagerInterface $entityManager
|
||||
* @param $uid
|
||||
* @return JsonResponse
|
||||
*/
|
||||
#[Route(path: '/edit/fetch/lang/data/{uid}', name: 'backend_production_product_edit_fetch_lang_data')]
|
||||
@ -158,17 +158,19 @@ class EditController extends AbstractController
|
||||
/**
|
||||
* edit
|
||||
*
|
||||
* @param Request $request
|
||||
* @param EntityManagerInterface $entityManager
|
||||
* @param \PSC\System\SettingsBundle\Service\Shop $shopService
|
||||
* @param $url
|
||||
* @param Request $request
|
||||
* @param EntityManagerInterface $entityManager
|
||||
* @param \PSC\System\SettingsBundle\Service\Shop $shopService
|
||||
* @param $url
|
||||
* @return JsonResponse
|
||||
* @throws \Doctrine\ORM\ORMException
|
||||
*/
|
||||
#[Route(path: '/edit/check/url/{url}', name: 'backend_production_product_check_url')]
|
||||
public function checkUrlAction(Request $request, EntityManagerInterface $entityManager, \PSC\System\SettingsBundle\Service\Shop $shopService, $url)
|
||||
{
|
||||
/** @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop */
|
||||
/**
|
||||
* @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop
|
||||
*/
|
||||
$selectedShop = $shopService->getSelectedShop();
|
||||
|
||||
$products = $entityManager
|
||||
@ -176,7 +178,9 @@ class EditController extends AbstractController
|
||||
|
||||
if (count($products) > 0) {
|
||||
$tmp = array();
|
||||
/** @var Product $product */
|
||||
/**
|
||||
* @var Product $product
|
||||
*/
|
||||
foreach ($products as $product) {
|
||||
$tmp[] = $product->getTitle();
|
||||
}
|
||||
@ -191,13 +195,13 @@ class EditController extends AbstractController
|
||||
*
|
||||
* @template()
|
||||
*
|
||||
* @param Request $request Request
|
||||
* @param Field $fieldService
|
||||
* @param EntityManagerInterface $entityManager
|
||||
* @param \PSC\System\SettingsBundle\Service\Shop $shopService
|
||||
* @param DocumentManager $documentManager
|
||||
* @param SessionInterface $session
|
||||
* @param $type
|
||||
* @param Request $request Request
|
||||
* @param Field $fieldService
|
||||
* @param EntityManagerInterface $entityManager
|
||||
* @param \PSC\System\SettingsBundle\Service\Shop $shopService
|
||||
* @param DocumentManager $documentManager
|
||||
* @param SessionInterface $session
|
||||
* @param $type
|
||||
* @return array|\Symfony\Component\HttpFoundation\RedirectResponse
|
||||
* @throws \Doctrine\ODM\MongoDB\MongoDBException
|
||||
* @throws \Doctrine\ORM\ORMException
|
||||
@ -215,10 +219,14 @@ class EditController extends AbstractController
|
||||
$customFields = $fieldService->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product);
|
||||
$customGroups = $fieldService->getGroups(\PSC\System\PluginBundle\Form\Interfaces\Field::Product);
|
||||
|
||||
/** @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop */
|
||||
/**
|
||||
* @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop
|
||||
*/
|
||||
$selectedShop = $shopService->getSelectedShop();
|
||||
|
||||
/** @var Shop $shop */
|
||||
/**
|
||||
* @var Shop $shop
|
||||
*/
|
||||
$shop = $documentManager
|
||||
->getRepository('PSC\Shop\EntityBundle\Document\Shop')
|
||||
->findOneBy(array('uid' => (string) $selectedShop->getUid()));
|
||||
@ -229,7 +237,9 @@ class EditController extends AbstractController
|
||||
$customProductFields = $fieldService->getProductFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product, $type);
|
||||
$customProductGroups = $fieldService->getProductGroups(\PSC\System\PluginBundle\Form\Interfaces\Field::Product, $type);
|
||||
|
||||
/** @var Domain[] $domains */
|
||||
/**
|
||||
* @var Domain[] $domains
|
||||
*/
|
||||
$domains = $entityManager
|
||||
->getRepository('PSC\Shop\EntityBundle\Entity\Domain')->getAllByShopId($selectedShop);
|
||||
|
||||
@ -290,6 +300,7 @@ class EditController extends AbstractController
|
||||
$productDoc->setCustomTabEnable($product->isCustomTabEnable());
|
||||
$productDoc->setHintEnable($product->isHintEnable());
|
||||
$productDoc->setAsRequest($product->isAsRequest());
|
||||
$productDoc->setRawText($product->isRawText());
|
||||
|
||||
$documentManager->persist($productDoc);
|
||||
$documentManager->flush();
|
||||
@ -321,16 +332,16 @@ class EditController extends AbstractController
|
||||
*
|
||||
* @template()
|
||||
*
|
||||
* @param Request $request Request
|
||||
* @param Field $fieldService
|
||||
* @param EntityManagerInterface $entityManager
|
||||
* @param DocumentManager $documentManager
|
||||
* @param PaginatorInterface $paginator
|
||||
* @param SessionInterface $session
|
||||
* @param Request $request Request
|
||||
* @param Field $fieldService
|
||||
* @param EntityManagerInterface $entityManager
|
||||
* @param DocumentManager $documentManager
|
||||
* @param PaginatorInterface $paginator
|
||||
* @param SessionInterface $session
|
||||
* @param \PSC\System\SettingsBundle\Service\Shop $shopService
|
||||
* @param Status $statusService
|
||||
* @param \PSC\Shop\OrderBundle\Service\Order $orderService
|
||||
* @param string $uuid Uuid
|
||||
* @param Status $statusService
|
||||
* @param \PSC\Shop\OrderBundle\Service\Order $orderService
|
||||
* @param string $uuid Uuid
|
||||
*
|
||||
* @return array
|
||||
* @throws \Doctrine\ODM\MongoDB\MongoDBException
|
||||
@ -352,19 +363,27 @@ class EditController extends AbstractController
|
||||
$customFields = $fieldService->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product);
|
||||
$customGroups = $fieldService->getGroups(\PSC\System\PluginBundle\Form\Interfaces\Field::Product);
|
||||
|
||||
/** @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop */
|
||||
/**
|
||||
* @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop
|
||||
*/
|
||||
$selectedShop = $shopService->getSelectedShop();
|
||||
|
||||
/** @var Shop $shop */
|
||||
/**
|
||||
* @var Shop $shop
|
||||
*/
|
||||
$shop = $documentManager
|
||||
->getRepository('PSC\Shop\EntityBundle\Document\Shop')
|
||||
->findOneBy(array('uid' => (string) $selectedShop->getUid()));
|
||||
|
||||
/** @var Product $product */
|
||||
/**
|
||||
* @var Product $product
|
||||
*/
|
||||
$product = $entityManager
|
||||
->getRepository('PSC\Shop\EntityBundle\Entity\Product')->findOneBy(array('uuid' => $uuid, 'shop' => $selectedShop));
|
||||
|
||||
/** @var \PSC\Shop\EntityBundle\Document\Product $productDoc */
|
||||
/**
|
||||
* @var \PSC\Shop\EntityBundle\Document\Product $productDoc
|
||||
*/
|
||||
$productDoc = $documentManager
|
||||
->getRepository('PSC\Shop\EntityBundle\Document\Product')
|
||||
->findOneBy(array('uid' => (string) $product->getUid()));
|
||||
@ -422,6 +441,7 @@ class EditController extends AbstractController
|
||||
$product->setCustomTabEnable($productDoc->isCustomTabEnable());
|
||||
$product->setHintEnable($productDoc->isHintEnable());
|
||||
$product->setAsRequest($productDoc->isAsRequest());
|
||||
$product->setRawText($productDoc->isRawText());
|
||||
} elseif (!$productDoc) {
|
||||
$productDoc = new \PSC\Shop\EntityBundle\Document\Product();
|
||||
$productDoc->setAblaufDatum($product->getAblaufDatum());
|
||||
@ -468,6 +488,7 @@ class EditController extends AbstractController
|
||||
$productDoc->setHintEnable($product->isHintEnable());
|
||||
$productDoc->setAsRequest($product->isAsRequest());
|
||||
$productDoc->setNoIndex($product->isNoIndex());
|
||||
$productDoc->setRawText($product->isRawText());
|
||||
|
||||
$documentManager->persist($productDoc);
|
||||
$documentManager->flush();
|
||||
@ -515,6 +536,7 @@ class EditController extends AbstractController
|
||||
$product->setCustomTabEnable($productDoc->isCustomTabEnable());
|
||||
$product->setHintEnable($productDoc->isHintEnable());
|
||||
$product->setAsRequest($productDoc->isAsRequest());
|
||||
$product->setRawText($productDoc->isRawText());
|
||||
}
|
||||
|
||||
if ($request->isMethod('POST') && $productDoc) {
|
||||
@ -568,6 +590,7 @@ class EditController extends AbstractController
|
||||
$productDoc->setCustomTabEnable($product->isCustomTabEnable());
|
||||
$productDoc->setHintEnable($product->isHintEnable());
|
||||
$productDoc->setAsRequest($product->isAsRequest());
|
||||
$productDoc->setRawText($product->isRawText());
|
||||
|
||||
$this->historyService->createHistoryEntry(new PSCHistory((string)$product->getUID()), $product, $productDoc);
|
||||
$entityManager->persist($product);
|
||||
@ -583,7 +606,9 @@ class EditController extends AbstractController
|
||||
$this->logService->createLogEntry($selectedShop, $this->getUser(), LogEntry::INFO, PSCShopProductBundle::class, $product->getTitle(), "Product has been updated");
|
||||
}
|
||||
|
||||
/** @var Domain[] $domains */
|
||||
/**
|
||||
* @var Domain[] $domains
|
||||
*/
|
||||
$domains = $entityManager
|
||||
->getRepository('PSC\Shop\EntityBundle\Entity\Domain')->getAllByShopId($selectedShop);
|
||||
|
||||
@ -645,11 +670,11 @@ class EditController extends AbstractController
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param \PSC\System\SettingsBundle\Service\Shop $shopService
|
||||
* @param EntityManagerInterface $entityManager
|
||||
* @param SessionInterface $session
|
||||
* @param $uuid
|
||||
* @param Request $request
|
||||
* @param \PSC\System\SettingsBundle\Service\Shop $shopService
|
||||
* @param EntityManagerInterface $entityManager
|
||||
* @param SessionInterface $session
|
||||
* @param $uuid
|
||||
* @return array|Response|\Symfony\Component\HttpFoundation\RedirectResponse
|
||||
* @throws \Doctrine\ORM\ORMException
|
||||
*/
|
||||
@ -663,10 +688,14 @@ class EditController extends AbstractController
|
||||
SessionInterface $session,
|
||||
$uuid
|
||||
) {
|
||||
/** @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop */
|
||||
/**
|
||||
* @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop
|
||||
*/
|
||||
$selectedShop = $shopService->getSelectedShop();
|
||||
|
||||
/** @var Product $product */
|
||||
/**
|
||||
* @var Product $product
|
||||
*/
|
||||
$product = $entityManager
|
||||
->getRepository('PSC\Shop\EntityBundle\Entity\Product')->findOneBy(array('uuid' => $uuid, 'shop' => $selectedShop));
|
||||
|
||||
@ -706,12 +735,11 @@ class EditController extends AbstractController
|
||||
/**
|
||||
* Copy Seite
|
||||
*
|
||||
*
|
||||
* @param Request $request
|
||||
* @param \PSC\System\SettingsBundle\Service\Shop $shopService
|
||||
* @param \PSC\Shop\ProductBundle\Service\Product $productService
|
||||
* @param EntityManagerInterface $entityManager
|
||||
* @param $uuid
|
||||
* @param Request $request
|
||||
* @param \PSC\System\SettingsBundle\Service\Shop $shopService
|
||||
* @param \PSC\Shop\ProductBundle\Service\Product $productService
|
||||
* @param EntityManagerInterface $entityManager
|
||||
* @param $uuid
|
||||
* @return array|\Symfony\Component\HttpFoundation\RedirectResponse
|
||||
* @throws \Doctrine\ORM\ORMException
|
||||
* @throws \Doctrine\ORM\OptimisticLockException
|
||||
@ -723,10 +751,14 @@ class EditController extends AbstractController
|
||||
|
||||
$obj = ['which' => 1];
|
||||
|
||||
/** @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop */
|
||||
/**
|
||||
* @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop
|
||||
*/
|
||||
$selectedShop = $shopService->getSelectedShop();
|
||||
|
||||
/** @var Product $product */
|
||||
/**
|
||||
* @var Product $product
|
||||
*/
|
||||
$product = $entityManager
|
||||
->getRepository('PSC\Shop\EntityBundle\Entity\Product')->findOneBy(array('uuid' => $uuid, 'shop' => $selectedShop));
|
||||
|
||||
|
||||
@ -16,6 +16,7 @@ namespace PSC\Shop\ProductBundle\Form\Backend\Product;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use PSC\Backend\DashboardBundle\Form\Type\DatePickerType;
|
||||
use PSC\Libraries\AceEditorBundle\Form\Extension\AceEditorType;
|
||||
use PSC\Shop\EntityBundle\Entity\Productgroup;
|
||||
use PSC\Shop\MediaBundle\Form\Type\MediaType;
|
||||
use PSC\System\PluginBundle\Form\Chain\Field;
|
||||
@ -42,10 +43,14 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
class ProductType extends AbstractType
|
||||
{
|
||||
protected $shop = null;
|
||||
/** @var Status */
|
||||
/**
|
||||
* @var Status
|
||||
*/
|
||||
protected $statusService = null;
|
||||
|
||||
/** @var Field */
|
||||
/**
|
||||
* @var Field
|
||||
*/
|
||||
protected $fields;
|
||||
|
||||
protected $formFactory;
|
||||
@ -88,6 +93,7 @@ class ProductType extends AbstractType
|
||||
->add('title', TextType::class)
|
||||
->add('subTitle', TextType::class, ['required' => false, 'label' => 'subTitle'])
|
||||
->add('createdAt', DatePickerType::class, array('disabled' => true))
|
||||
->add('rawText', CheckboxType::class, ['label' => 'rawText', 'required' => false])
|
||||
->add('image1', MediaType::class, array())
|
||||
->add('image2', MediaType::class, array())
|
||||
->add('image3', MediaType::class, array())
|
||||
@ -108,42 +114,94 @@ class ProductType extends AbstractType
|
||||
->add('zusatzAbmessung', TextType::class, array('required' => false, 'label' => 'Additionaldimension'))
|
||||
->add('zusatzDesigner', TextType::class, array('required' => false, 'label' => 'Additiondesigner'))
|
||||
->add('zusatzShipping', TextType::class, array('required' => false, 'label' => 'Additionalshippinginformation'))
|
||||
->add('extraSettings', TextareaType::class, array('required' => false, 'label' => 'Extrasettings'))
|
||||
->add('description', TextareaType::class, array(
|
||||
->add('extraSettings', TextareaType::class, array('required' => false, 'label' => 'Extrasettings'));
|
||||
|
||||
if ($options['data']->isRawText()) {
|
||||
$builder->add(
|
||||
'description', AceEditorType::class, array(
|
||||
'label' => 'description',
|
||||
'wrapper_attr' => array(), // aceeditor wrapper html attributes.
|
||||
'width' => '90%',
|
||||
'height' => '500',
|
||||
'font_size' => 14,
|
||||
'mode' => 'ace/mode/html', // every single default mode must have ace/mode/* prefix
|
||||
'theme' => 'ace/theme/monokai', // every single default theme must have ace/theme/* prefix
|
||||
'tab_size' => null,
|
||||
'read_only' => null,
|
||||
'use_soft_tabs' => null,
|
||||
'use_wrap_mode' => null,
|
||||
'show_print_margin' => null,
|
||||
'required' => false,
|
||||
'highlight_active_line' => null
|
||||
)
|
||||
)
|
||||
->add(
|
||||
'text', AceEditorType::class, array(
|
||||
'label' => 'text',
|
||||
'wrapper_attr' => array(), // aceeditor wrapper html attributes.
|
||||
'width' => '90%',
|
||||
'height' => '500',
|
||||
'font_size' => 14,
|
||||
'mode' => 'ace/mode/html', // every single default mode must have ace/mode/* prefix
|
||||
'theme' => 'ace/theme/monokai', // every single default theme must have ace/theme/* prefix
|
||||
'tab_size' => null,
|
||||
'read_only' => null,
|
||||
'use_soft_tabs' => null,
|
||||
'use_wrap_mode' => null,
|
||||
'show_print_margin' => null,
|
||||
'required' => false,
|
||||
'highlight_active_line' => null
|
||||
)
|
||||
);
|
||||
}else{
|
||||
$builder->add(
|
||||
'description', TextareaType::class, array(
|
||||
'label' => 'description',
|
||||
'required' => false
|
||||
)
|
||||
)
|
||||
->add(
|
||||
'text', TextareaType::class, array(
|
||||
'label' => 'Additionaldescription',
|
||||
'required' => false
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
$builder->add(
|
||||
'hintText', TextareaType::class, array(
|
||||
'label' => 'description',
|
||||
'required' => false
|
||||
))
|
||||
->add('text', TextareaType::class, array(
|
||||
'label' => 'Additionaldescription',
|
||||
'required' => false
|
||||
))
|
||||
->add('hintText', TextareaType::class, array(
|
||||
'label' => 'description',
|
||||
'required' => false
|
||||
))
|
||||
->add('customTabEnable', CheckboxType::class, array('required' => false, 'label' => 'Active'))
|
||||
->add('customTabTitle', TextType::class, array('required' => false, 'label' => 'Tabname'))
|
||||
->add('customTabText', TextareaType::class, array(
|
||||
'label' => 'Tabtext',
|
||||
'required' => false
|
||||
))
|
||||
->add('product_groups', EntityType::class, array(
|
||||
'class' => 'PSC\Shop\EntityBundle\Entity\Productgroup',
|
||||
'choice_label' => function (Productgroup $choice, $key, $value) {
|
||||
if ($choice->isEnable()) {
|
||||
return $choice->getTitle();
|
||||
} else {
|
||||
return $choice->getTitle() . ' (disabled)';
|
||||
)
|
||||
)
|
||||
->add('customTabEnable', CheckboxType::class, array('required' => false, 'label' => 'Active'))
|
||||
->add('customTabTitle', TextType::class, array('required' => false, 'label' => 'Tabname'))
|
||||
->add(
|
||||
'customTabText', TextareaType::class, array(
|
||||
'label' => 'Tabtext',
|
||||
'required' => false
|
||||
)
|
||||
)
|
||||
->add(
|
||||
'product_groups', EntityType::class, array(
|
||||
'class' => 'PSC\Shop\EntityBundle\Entity\Productgroup',
|
||||
'choice_label' => function (Productgroup $choice, $key, $value) {
|
||||
if ($choice->isEnable()) {
|
||||
return $choice->getTitle();
|
||||
} else {
|
||||
return $choice->getTitle() . ' (disabled)';
|
||||
}
|
||||
},
|
||||
'multiple' => true,
|
||||
'required' => false,
|
||||
'query_builder' => function (EntityRepository $er) {
|
||||
return $er->createQueryBuilder('u')
|
||||
->where('u.shop = :shop')->setParameter('shop', $this->shop->getSelectedShop()->getId());
|
||||
}
|
||||
},
|
||||
'multiple' => true,
|
||||
'required' => false,
|
||||
'query_builder' => function (EntityRepository $er) {
|
||||
return $er->createQueryBuilder('u')
|
||||
->where('u.shop = :shop')->setParameter('shop', $this->shop->getSelectedShop()->getId());
|
||||
}
|
||||
))
|
||||
->add('releatedProducts', EntityType::class, array(
|
||||
)
|
||||
)
|
||||
->add(
|
||||
'releatedProducts', EntityType::class, array(
|
||||
'class' => 'PSC\Shop\EntityBundle\Entity\Product',
|
||||
'choice_label' => 'title',
|
||||
'multiple' => true,
|
||||
@ -152,8 +210,10 @@ class ProductType extends AbstractType
|
||||
return $er->createQueryBuilder('u')
|
||||
->where('u.shop = :shop AND u.originalProduct = 0')->setParameter('shop', $this->shop->getSelectedShop()->getId());
|
||||
}
|
||||
))
|
||||
->add('language', ChoiceType::class, array(
|
||||
)
|
||||
)
|
||||
->add(
|
||||
'language', ChoiceType::class, array(
|
||||
'choices' => array(
|
||||
'Alle' => 'all',
|
||||
'de_DE' => 'de_DE',
|
||||
@ -163,15 +223,18 @@ class ProductType extends AbstractType
|
||||
'il_IL' => 'il_IL',
|
||||
),
|
||||
'label' => 'language'
|
||||
))
|
||||
->add('availability', ChoiceType::class, array(
|
||||
)
|
||||
)
|
||||
->add(
|
||||
'availability', ChoiceType::class, array(
|
||||
'choices' => array(
|
||||
'instock' => 'in_stock',
|
||||
'outofstock' => 'out_of_stock',
|
||||
'preorder' => 'preorder'
|
||||
),
|
||||
'label' => 'Availability'
|
||||
))
|
||||
)
|
||||
)
|
||||
->add('videoId', TextType::class, ['required' => false, 'label' => 'VideoId'])
|
||||
->add('metaKeywords', TextType::class, ['required' => false, 'label' => 'Keywords'])
|
||||
->add('metaDescription', TextareaType::class, ['required' => false, 'label' => 'description'])
|
||||
@ -206,111 +269,153 @@ class ProductType extends AbstractType
|
||||
->add('custom11', TextType::class, ['required' => false, 'label' => 'Custom 11'])
|
||||
->add('custom12', TextType::class, ['required' => false, 'label' => 'Custom 12'])
|
||||
->add('uploadProduct', CheckboxType::class, ['required' => false, 'label' => 'Activate'])
|
||||
->add("uploadProductInitalStatus", ChoiceType::class, array(
|
||||
->add(
|
||||
"uploadProductInitalStatus", ChoiceType::class, array(
|
||||
'required' => true,
|
||||
'label' => 'Initialstatus',
|
||||
'choices' => $this->statusService->getPositionStatusAsArray(),
|
||||
'translation_domain' => 'posstatus'
|
||||
))
|
||||
)
|
||||
)
|
||||
->add('uploadFromLatestOrder', CheckboxType::class, ['required' => false, 'label' => 'Activate'])
|
||||
->add("uploadFromLatestOrderInitalStatus", ChoiceType::class, array(
|
||||
->add(
|
||||
"uploadFromLatestOrderInitalStatus", ChoiceType::class, array(
|
||||
'required' => true,
|
||||
'label' => 'Initialstatus',
|
||||
'choices' => $this->statusService->getPositionStatusAsArray(),
|
||||
'translation_domain' => 'posstatus'
|
||||
))
|
||||
->add("initialStatus", ChoiceType::class, array(
|
||||
)
|
||||
)
|
||||
->add(
|
||||
"initialStatus", ChoiceType::class, array(
|
||||
'required' => true,
|
||||
'label' => 'Masterinitialstatus',
|
||||
'choices' => $this->statusService->getPositionStatusAsArray(),
|
||||
'translation_domain' => 'posstatus'
|
||||
))
|
||||
)
|
||||
)
|
||||
->add('uploadPost', CheckboxType::class, ['required' => false, 'label' => 'Activate'])
|
||||
->add("uploadPostInitalStatus", ChoiceType::class, array(
|
||||
->add(
|
||||
"uploadPostInitalStatus", ChoiceType::class, array(
|
||||
'required' => true,
|
||||
'label' => 'Initialstatus',
|
||||
'choices' => $this->statusService->getPositionStatusAsArray(),
|
||||
'translation_domain' => 'posstatus'
|
||||
))
|
||||
)
|
||||
)
|
||||
->add('uploadEmail', CheckboxType::class, ['required' => false, 'label' => 'Activate'])
|
||||
->add("uploadEmailInitalStatus", ChoiceType::class, array(
|
||||
->add(
|
||||
"uploadEmailInitalStatus", ChoiceType::class, array(
|
||||
'required' => true,
|
||||
'label' => 'Initialstatus',
|
||||
'choices' => $this->statusService->getPositionStatusAsArray(),
|
||||
'translation_domain' => 'posstatus'
|
||||
))
|
||||
)
|
||||
)
|
||||
->add('uploadProvided', CheckboxType::class, ['required' => false, 'label' => 'Activate'])
|
||||
->add('uploadProvidedFile', MediaType::class, array('label' => 'Datei'))
|
||||
->add("uploadProvidedInitalStatus", ChoiceType::class, array(
|
||||
->add(
|
||||
"uploadProvidedInitalStatus", ChoiceType::class, array(
|
||||
'required' => true,
|
||||
'label' => 'Initalstatus',
|
||||
'choices' => $this->statusService->getPositionStatusAsArray(),
|
||||
'translation_domain' => 'posstatus'
|
||||
))
|
||||
)
|
||||
)
|
||||
->add('uploadProvidedDownload', CheckboxType::class, ['required' => false, 'label' => 'Download'])
|
||||
->add('uploadCenter', CheckboxType::class, ['required' => false, 'label' => 'Activate'])
|
||||
->add("uploadCenterInitalStatus", ChoiceType::class, array(
|
||||
->add(
|
||||
"uploadCenterInitalStatus", ChoiceType::class, array(
|
||||
'required' => true,
|
||||
'label' => 'Initialstatus',
|
||||
'choices' => $this->statusService->getPositionStatusAsArray(),
|
||||
'translation_domain' => 'posstatus'
|
||||
));
|
||||
)
|
||||
);
|
||||
|
||||
/** @var \PSC\System\PluginBundle\Form\Interfaces\Field $field */
|
||||
/**
|
||||
* @var \PSC\System\PluginBundle\Form\Interfaces\Field $field
|
||||
*/
|
||||
foreach ($this->fields->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product) as $field) {
|
||||
$builder->add($field->buildForm($this->formFactory->createNamedBuilder($field->getGroup()), $options));
|
||||
}
|
||||
|
||||
/** @var \PSC\System\PluginBundle\Form\Interfaces\Field $field */
|
||||
/**
|
||||
* @var \PSC\System\PluginBundle\Form\Interfaces\Field $field
|
||||
*/
|
||||
foreach ($this->fields->getProductFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product, $options['productType']) as $field) {
|
||||
$builder->add($field->buildForm($this->formFactory->createNamedBuilder($field->getGroup()), $options));
|
||||
}
|
||||
|
||||
$builder->add('save', SubmitType::class, array('label' => 'save'));
|
||||
|
||||
$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use ($options) {
|
||||
/** @var \PSC\System\PluginBundle\Form\Interfaces\Field $field */
|
||||
foreach ($this->fields->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product) as $field) {
|
||||
$field->formPreSetData($event);
|
||||
$builder->addEventListener(
|
||||
FormEvents::PRE_SET_DATA, function (FormEvent $event) use ($options) {
|
||||
/**
|
||||
* @var \PSC\System\PluginBundle\Form\Interfaces\Field $field
|
||||
*/
|
||||
foreach ($this->fields->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product) as $field) {
|
||||
$field->formPreSetData($event);
|
||||
}
|
||||
/**
|
||||
* @var \PSC\System\PluginBundle\Form\Interfaces\Field $field
|
||||
*/
|
||||
foreach ($this->fields->getProductFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product, $options['productType']) as $field) {
|
||||
$field->formPreSetData($event);
|
||||
}
|
||||
}
|
||||
/** @var \PSC\System\PluginBundle\Form\Interfaces\Field $field */
|
||||
foreach ($this->fields->getProductFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product, $options['productType']) as $field) {
|
||||
$field->formPreSetData($event);
|
||||
}
|
||||
});
|
||||
);
|
||||
|
||||
$builder->addEventListener(FormEvents::POST_SET_DATA, function (FormEvent $event) use ($options) {
|
||||
/** @var \PSC\System\PluginBundle\Form\Interfaces\Field $field */
|
||||
foreach ($this->fields->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product) as $field) {
|
||||
$field->formPostSetData($event);
|
||||
$builder->addEventListener(
|
||||
FormEvents::POST_SET_DATA, function (FormEvent $event) use ($options) {
|
||||
/**
|
||||
* @var \PSC\System\PluginBundle\Form\Interfaces\Field $field
|
||||
*/
|
||||
foreach ($this->fields->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product) as $field) {
|
||||
$field->formPostSetData($event);
|
||||
}
|
||||
/**
|
||||
* @var \PSC\System\PluginBundle\Form\Interfaces\Field $field
|
||||
*/
|
||||
foreach ($this->fields->getProductFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product, $options['productType']) as $field) {
|
||||
$field->formPostSetData($event);
|
||||
}
|
||||
}
|
||||
/** @var \PSC\System\PluginBundle\Form\Interfaces\Field $field */
|
||||
foreach ($this->fields->getProductFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product, $options['productType']) as $field) {
|
||||
$field->formPostSetData($event);
|
||||
}
|
||||
});
|
||||
);
|
||||
|
||||
$builder->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) use ($options) {
|
||||
/** @var \PSC\System\PluginBundle\Form\Interfaces\Field $field */
|
||||
foreach ($this->fields->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product) as $field) {
|
||||
$field->formPostSubmit($event);
|
||||
$builder->addEventListener(
|
||||
FormEvents::POST_SUBMIT, function (FormEvent $event) use ($options) {
|
||||
/**
|
||||
* @var \PSC\System\PluginBundle\Form\Interfaces\Field $field
|
||||
*/
|
||||
foreach ($this->fields->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product) as $field) {
|
||||
$field->formPostSubmit($event);
|
||||
}
|
||||
/**
|
||||
* @var \PSC\System\PluginBundle\Form\Interfaces\Field $field
|
||||
*/
|
||||
foreach ($this->fields->getProductFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product, $options['productType']) as $field) {
|
||||
$field->formPostSubmit($event);
|
||||
}
|
||||
}
|
||||
/** @var \PSC\System\PluginBundle\Form\Interfaces\Field $field */
|
||||
foreach ($this->fields->getProductFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product, $options['productType']) as $field) {
|
||||
$field->formPostSubmit($event);
|
||||
}
|
||||
});
|
||||
);
|
||||
|
||||
$builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) use ($options) {
|
||||
/** @var \PSC\System\PluginBundle\Form\Interfaces\Field $field */
|
||||
foreach ($this->fields->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product) as $field) {
|
||||
$field->formPreSubmit($event);
|
||||
$builder->addEventListener(
|
||||
FormEvents::PRE_SUBMIT, function (FormEvent $event) use ($options) {
|
||||
/**
|
||||
* @var \PSC\System\PluginBundle\Form\Interfaces\Field $field
|
||||
*/
|
||||
foreach ($this->fields->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product) as $field) {
|
||||
$field->formPreSubmit($event);
|
||||
}
|
||||
/**
|
||||
* @var \PSC\System\PluginBundle\Form\Interfaces\Field $field
|
||||
*/
|
||||
foreach ($this->fields->getProductFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product, $options['productType']) as $field) {
|
||||
$field->formPreSubmit($event);
|
||||
}
|
||||
}
|
||||
/** @var \PSC\System\PluginBundle\Form\Interfaces\Field $field */
|
||||
foreach ($this->fields->getProductFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product, $options['productType']) as $field) {
|
||||
$field->formPreSubmit($event);
|
||||
}
|
||||
});
|
||||
);
|
||||
}
|
||||
|
||||
public function getName()
|
||||
@ -320,12 +425,14 @@ class ProductType extends AbstractType
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults(array(
|
||||
$resolver->setDefaults(
|
||||
array(
|
||||
'data_class' => 'PSC\Shop\EntityBundle\Entity\Product',
|
||||
'productType' => 0,
|
||||
'product' => null,
|
||||
'productDoc' => null,
|
||||
'translation_domain' => 'core_product_edit'
|
||||
));
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -431,13 +431,30 @@ a[href^="#formlayouter"] {display:none;}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="row mb-3">
|
||||
{{ form_label(form.rawText) }}
|
||||
<div class="col-md-8">
|
||||
{{ form_widget(form.rawText) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h5>{{ 'description'|trans }}</h5>
|
||||
|
||||
|
||||
{% if product.rawText %}
|
||||
{{ form_widget(form.description) }}
|
||||
{% else %}
|
||||
{{ form_widget(form.description, {attr: {'class': 'form-control summernote'}}) }}
|
||||
|
||||
{% endif %}
|
||||
<h5>{{ 'Additionaldescription'|trans }}</h5>
|
||||
|
||||
{% if product.rawText %}
|
||||
{{ form_widget(form.text) }}
|
||||
{% else %}
|
||||
{{ form_widget(form.text, {attr: {'class': 'form-control summernote'}}) }}
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="tab-pane" id="seo" role="tabpanel">
|
||||
|
||||
@ -940,6 +940,18 @@
|
||||
"symfony/ux-twig-component": {
|
||||
"version": "v2.12.0"
|
||||
},
|
||||
"symfony/ux-vue": {
|
||||
"version": "2.23",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes",
|
||||
"branch": "main",
|
||||
"version": "2.9",
|
||||
"ref": "7a6b5e211acc7b10b7190e704b40f6d2bca01adf"
|
||||
},
|
||||
"files": [
|
||||
"assets/vue/controllers/Hello.vue"
|
||||
]
|
||||
},
|
||||
"symfony/validator": {
|
||||
"version": "4.3",
|
||||
"recipe": {
|
||||
|
||||
@ -6,7 +6,8 @@ use Symfony\Contracts\HttpClient\HttpClientInterface;
|
||||
use function array_merge;
|
||||
|
||||
|
||||
abstract class Base {
|
||||
abstract class Base
|
||||
{
|
||||
|
||||
private string $apiUrl = 'https://api.print.app/v1/';
|
||||
|
||||
|
||||
@ -33,13 +33,14 @@ class DesignController extends AbstractController
|
||||
{
|
||||
$selectedShop = $shopService->getSelectedShop();
|
||||
|
||||
/** @var Product $product */
|
||||
/**
|
||||
* @var Product $product
|
||||
*/
|
||||
$product = $entityManager
|
||||
->getRepository('PSC\Shop\EntityBundle\Entity\Product')->findOneBy(array('uuid' => $uuid, 'shop' => $selectedShop));
|
||||
|
||||
|
||||
$output = $design->getDesigns($folder);
|
||||
|
||||
$data = ['folders' => [], 'designs' => []];
|
||||
if (isset($output['root']) && isset($output['root']['id']) && $output['root']['id'] == 'root') {
|
||||
foreach ($output['root']['items'] as $item) {
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
<img src="{{ design.pages[0]['preview'] }}" class="card-img-top">
|
||||
<div class="card-body">
|
||||
<h6 class="card-title">{{design.title}} title</h6>
|
||||
<button type="button" onClick="choose('{{design.id}}', '{{ design.pages[0]['preview']|join(';')}}')" class="btn btn-sm btn-primary">Benutzen</button>
|
||||
<button type="button" onClick="module.choose('{{design.id}}', '{{ design.pages[0]['preview']|join(';')}}')" class="btn btn-sm btn-primary">Benutzen</button>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<small class="text-muted">Last updated {{design.modified|date("H:i:s d.m.Y")}}</small>
|
||||
@ -27,14 +27,20 @@
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<script>
|
||||
function choose(id, previews)
|
||||
<script type="text/javascript">
|
||||
const module = {};
|
||||
</script>
|
||||
<script type="module">
|
||||
import $ from 'jquery'
|
||||
import * as bootstrap from 'bootstrap'
|
||||
module.choose = function(id, previews)
|
||||
{
|
||||
parent.document.getElementById('product_pitchprint_r2_uploadPitchprintDesignId').value = id;
|
||||
parent.document.getElementById('product_pitchprint_r2_uploadPitchprintDesignPreviews').value = previews;
|
||||
var useDesignModal = parent.document.getElementById('useDesignR2');
|
||||
parent.loadChoosenDesign2();
|
||||
parent.$(useDesignModal).modal('hide');
|
||||
var modal = parent.bootstrap.Modal.getOrCreateInstance(useDesignModal);
|
||||
modal.toggle();
|
||||
}
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
@ -63,7 +63,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal" data-bs-backdrop="static" tabindex="-1" id="useDesignR2">
|
||||
<div class="modal" tabindex="-1" id="useDesignR2">
|
||||
<div class="modal-dialog modal-fullscreen">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user