first commit

This commit is contained in:
2025-08-02 16:30:27 +02:00
commit 23646bfcee
14851 changed files with 1750626 additions and 0 deletions

View File

@@ -0,0 +1,249 @@
<div id="pageBlocksOuterContainer">
<div class="row bottom-space">
<div class="col-md-3">
<a href="#" data-form-custom-add-root class="btn btn-success btn-block"><span class="glyphicon glyphicon-plus"></span>&nbsp;{"add"|translate:"blocks"}</a>
</div>
<div class="col-md-3 col-md-offset-1">
{if $editLink && $body.data.id}
<a href="{$editLink}?inlineEditable=1" class="btn btn-primary btn-block" target="_blank"><span class="glyphicon glyphicon-edit"></span>&nbsp;{"editBlocek"|translate:"menulinks"}</a>
{/if}
</div>
<div class="col-md-1 col-md-offset-4 text-center" data-form-mass-open>
<a class="btn btn-sm" style="margin-left:10px;">
<i class="glyphicon glyphicon-plus-sign"></i>
</a>
</div>
</div>
<div class="panel-group panel-group-lists collapse in">
<div class="panel">
<div class="panel-heading" style="padding-bottom:4px">
<div class="row">
<div class="col-md-1 text-center">
<small><strong>{"position"|translate:"blocks"}</strong></small>
</div>
<div class="col-md-10">
<small><strong>{"name"|translate:"blocks"}</strong></small>
</div>
<div class="col-md-1">
<small><strong>{"action"|translate:"blocks"}</strong></small>
</div>
</div>
</div>
</div>
<ul id="pageBlocksContainer" class="ui-nested-sortable">
{** default reference block *}
<li class="panel blockItem" data-form-item="0" data-form-index="0" style="display:none;">
<div class="panel-heading collapsed row-orange" data-toggle="collapse" data-target="#collapse_0" >
<div class="row">
<div class="col-md-1 text-center">
<span class="drag-drop-mover pull-right">
<i class="bi bi-arrows-move handle"></i>
</span>
</div>
<div class="col-md-7">
<p class="input-height" data-block-heading-name>[{"new"|translate:"blocks"}]</p>
</div>
<div class="col-md-2">
{if isSuperuser()}
<p class="input-height" data-block-heading-identifier></p>
{/if}
</div>
<div class="col-md-2 text-right">
<div class="pull-right">
<a class="btn-sm btn btn-danger" data-form-delete>
<input class="hidden" type="checkbox" name="data[blocks][0][delete]" />
<span class="glyphicon glyphicon-remove"></span>
</a>
</div>
<div class="pull-right">
<span class="spacer">&nbsp;</span>
</div>
<div class="pull-right">
<a class="btn-sm btn btn-default" data-form-custom-add>
<span class="glyphicon glyphicon-plus" title="{"add_subblock"|translate:"blocks"}"></span>
</a>
</div>
</div>
</div>
</div>
<div id="collapse_0" class="panel-collapse collapse">
<div class="panel-body">
<div class="row bottom-space">
<div class="form-group">
<div class="col-md-2 control-label"><label>{"name"|translate:"blocks"}</label></div>
<div class="col-md-3">
<input type="text" class="form-control input-sm" name="data[blocks][0][name]" size="30" maxlength="100" value="">
</div>
{if isSuperuser() or !empty($identifiers)}
<div class="col-md-2 control-label"><label>{"identifier"|translate:"blocks"}</label></div>
<div class="col-md-3">
{if !empty($identifiers)}
<select class="selecter" name="data[blocks][0][identifier]">
{foreach $identifiers as $key => $option}
<option value="{$key}">{$option.title}</option>
{/foreach}
</select>
{else}
<input type="text" class="form-control input-sm" name="data[blocks][0][identifier]" size="30" maxlength="255" value="">
{/if}
</div>
{/if}
</div>
{if $hideImgBlock!=1 || $photos}
<div class="form-group">
<div class="col-md-2 control-label"><label>{"photos"|translate:"blocks"}</label></div>
<div class="col-md-9">
{if $photos}
<select multiple name="data[blocks][0][photos][]" class="photo-select">
{foreach $photos as $photo}
<option data-img-src="{get_photo id=$photo.id_photo image='admin'}" value="{$photo.id_photo}">#{$photo.id_photo}</option>
{/foreach}
</select>
{else}
<p style="padding-top: 5px;">
<a href="#" onclick="switchTab('flapPhotos');return false;">{"uploadImage"|translate:"sliders"}</a>
</p>
{/if}
</div>
</div>
{/if}
</div>
</div>
</div>
</li>
{function renderBlocks level=0}
{foreach $blocks as $block}
<li class="panel blockItem" data-form-item="{$block.id}" data-form-index="{$block.id}" data-form-item-id="{$block.id}">
<div class="panel-heading collapsed row-green" data-toggle="collapse" data-target="#collapse_{$block.id}" >
<div class="row">
<div class="col-md-1 text-center">
<input type="hidden" name="data[blocks][{$block.id}][id]" value="{$block.id}">
<span class="drag-drop-mover pull-right">
<i class="bi bi-arrows-move handle"></i>
</span>
</div>
<div class="col-md-7">
<span data-toggle-subtree style="display:none;"><span class="glyphicon glyphicon-minus-sign"></span></span>
<p class="input-height" data-block-heading-name>
{if $block.name}
{$block.name}
{else}
{$block.content|strip_tags|truncate:50:"..."}
{/if}
</p>
</div>
<div class="col-md-2">
{if isSuperuser() || !empty($identifiers)}
<p class="input-height" data-block-heading-identifier>
{if !empty($identifiers)}
{$identifiers[$block.identifier].title}
{else}
{$block.identifier}
{/if}
</p>
{/if}
</div>
<div class="col-md-2 text-right">
<div class="pull-right">
<a class="btn-sm btn btn-danger" data-form-delete>
<input class="hidden" type="checkbox" name="data[blocks][{$block.id}][delete]" />
<span class="glyphicon glyphicon-remove"></span>
</a>
</div>
<div class="pull-right">
<span class="spacer">&nbsp;</span>
</div>
{if $block.id}
<div class="pull-right">
<a class="btn-sm btn btn-primary" target="_blank" href="{path('kupshop_content_block_editblock', ['id' => $block.id, 'inlineEditable' => 1])}">
<span class="glyphicon glyphicon-edit"></span>
</a>
</div>
{/if}
<div class="pull-right">
<span class="spacer">&nbsp;</span>
</div>
<div class="pull-right">
<a class="btn-sm btn btn-default" data-form-custom-add>
<span class="glyphicon glyphicon-plus" title="{"add_subblock"|translate:"blocks"}"></span>
</a>
</div>
</div>
</div>
</div>
<div id="collapse_{$block.id}" class="panel-collapse collapse">
<div class="panel-body">
<div class="row bottom-space">
<div class="form-group">
<div class="col-md-2 control-label"><label>{"name"|translate:"blocks"}</label></div>
<div class="col-md-3">
<input type="text" class="form-control input-sm" name="data[blocks][{$block.id}][name]" size="30" maxlength="100" value="{$block.name}">
</div>
{block "block-identifier"}
{if isSuperuser() || !empty($identifiers)}
<div class="col-md-2 control-label"><label>{"identifier"|translate:"blocks"}</label></div>
<div class="col-md-3">
{if !empty($identifiers)}
<select class="selecter" name="data[blocks][{$block.id}][identifier]">
{foreach $identifiers as $key => $option}
<option value="{$key}" {if $key == $block.identifier}selected{/if}>{$option.title}</option>
{/foreach}
</select>
{else}
<input type="text" class="form-control input-sm" name="data[blocks][{$block.id}][identifier]" size="30" maxlength="255" value="{$block.identifier}">
{/if}
</div>
{elseif $body.duplicate}
<input type="hidden" name="data[blocks][{$block.id}][identifier]" value="{$block.identifier}">
{/if}
{/block}
</div>
{if $hideImgBlock!=1 || $photos}
<div class="form-group">
<div class="col-md-2 control-label"><label>{"photos"|translate:"blocks"}</label></div>
<div class="col-md-9">
{if $photos}
{$block_photos = array_column($block.photos, 'id')}
<select multiple name="data[blocks][{$block.id}][photos][]" class="photo-select">
{foreach $photos as $photo}
<option data-img-src="{get_photo id=$photo.id_photo image='admin'}" value="{$photo.id_photo}" {$photo.id_photo|selected:$block_photos}>#{$photo.id_photo}</option>
{/foreach}
</select>
{else}
<p style="padding-top: 5px;">
<a href="#" onclick="switchTab('flapPhotos');return false;">{"uploadImage"|translate:"sliders"}</a>
</p>
{/if}
</div>
</div>
{/if}
</div>
</div>
</div>
{if $block.children}
<ul>{renderBlocks blocks=$block.children level=$level+1}</ul>
{/if}
</li>
{/foreach}
{*{if level > 0}</ul>{/if}*}
{/function}
{renderBlocks blocks=$blocks level=0}
</ul>
</div>
</div>
<script>
var options = {['acn' => $acn, 'isSuperuser' => isSuperuser()]|json_encode nofilter};
$(".ui-nested-sortable").blocks(options);
</script>

View File

@@ -0,0 +1,61 @@
{$blocks_history=$blocks_history|default:$body.data.blocks_history}
<h1 class="h4 main-panel-title">Historie</h1>
<div class="panel-group panel-group-lists" data-values="items">
<div class="panel">
<div class="panel-heading">
<div class="row">
<div class="col-md-3 text-left col-md-offset-1" style="padding-left: 0;">
<small><strong>Datum verze</strong></small>
</div>
<div class="col-md-2">
<small><strong>Naposledy upravil</strong></small>
</div>
<div class="col-md-3">
<small><strong>Název</strong></small>
</div>
<div class="col-md-3">
<small><strong>Akce</strong></small>
</div>
</div>
</div>
</div>
{foreach $blocks_history as $historyId => $history}
<div class="panel">
<div class="row bottom-space">
<div class="col-md-1">
</div>
<div class="col-md-3">
<span style="display:inline-block;padding: 6px 0;">{$history['date']}</span>
</div>
<div class="col-md-2">
<span style="display:inline-block;padding: 6px 0;">{$history['admin_login']}</span>
</div>
<div class="col-md-3">
<span style="display:inline-block;padding: 6px 0;">{$history['name']}</span>
</div>
<div class="col-md-3">
<a data-rename="{$history['date']}" href="launch.php?s={$smarty.GET.s}&acn=rename&flap=flapBlocks&ID={$body.data.id}&rename={$historyId}" class="btn btn-sm btn-default">Pojmenovat</a>
<a href="javascript:nw('blocksHistory', '{$historyId}', '');" class="btn btn-sm btn-default">Zobrazit</a>
<a href="launch.php?s={$smarty.GET.s}&acn=revert&flap=flapBlocks&ID={$body.data.id}&revert={$historyId}" title="Obnovit na verzi z data {$history['date']}"
class="btn btn-sm btn-primary confirm">Obnovit</a>
<a href="launch.php?s={$smarty.GET.s}&acn=deleteHistory&flap=flapBlocks&ID={$body.data.id}&delete={$historyId}" title="Smazat verzi z data {$history['date']}"
class="btn btn-sm btn-danger confirm">Smazat</a>
</div>
</div>
</div>
{/foreach}
<script>
$(document).ready(function() {
$('[data-rename]').click(function() {
var name = window.prompt('Zadejte název pro verzi z data ' + $(this).data('rename'));
if (name)
window.location = $(this).attr('href') + '&name=' + name;
return false;
});
});
</script>
</div>

View File

@@ -0,0 +1,17 @@
<div class="modal fade" id="{$modal_id}" tabindex="-1">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span>&times;</span></button>
<h4 class="modal-title">{$title}</h4>
</div>
<div class="modal-body">
<textarea class="form-control" id="paste-modal" rows="8" style="resize: vertical;"></textarea>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Zavřít</button>
<button type="button" class="btn btn-primary" data-save>Uložit</button>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,121 @@
<div class="cart-file-uploader">
{$pageType = $pageType|default:'admin'}
<div id="thumbnail-fine-uploader"></div>
{get_user_content type=$pageType assign='files'}
{if $files == false}
{$files = []}
{/if}
{if $files}
<ul class="qq-upload-list">
{foreach $files as $uid => $file}
<li data-file-uid="{$uid}">
{$file.originalFilename}
<span class="qq-upload-delete" data-file-delete="{$uid}">Smazat</span></li>
{/foreach}
</ul>
{/if}
</div>
<script>
$('[data-file-delete]').click(function() {
var uid = $(this).data('file-delete');
$(this).text('Probíhá smazání...');
$.ajax({
method: 'GET',
url: '/_upload/{$pageType}/delete/' + uid,
}).done(function(result) {
var obj = jQuery.parseJSON(result);
if (obj.success == true) {
var $file = $(document).find('[data-file-uid="' + uid + '"]');
$file.detach();
}
});
});
</script>
<script type="text/template" id="qq-simple-thumbnails-template">
<div class="qq-uploader-selector qq-uploader">
<div class="qq-upload-drop-area-selector qq-upload-drop-area" qq-hide-dropzone>
<div>
<span></span>Přesuňte soubory sem
</div>
</div>
<div class="qq-upload-button-selector">
<p>
<strong>Nahrát soubory</strong>
podporované formáty jsou .jpg, .jpeg, .gif, .png, .svg a .pdf
</p>
</div>
<span class="qq-drop-processing-selector qq-drop-processing">
<span>Zpracovávám soubory...</span>
<span class="qq-drop-processing-spinner-selector qq-drop-processing-spinner"></span>
</span>
<ul class="qq-upload-list-selector qq-upload-list">
<li>
<div class="qq-progress-bar-container-selector">
<div class="qq-progress-bar-selector qq-progress-bar"></div>
</div>
<span class="qq-upload-spinner-selector qq-upload-spinner"></span>
<div class="qq-thumb-img">
<img class="qq-thumbnail-selector" qq-max-size="100" qq-server-scale>
</div>
<span class="qq-edit-filename-icon-selector qq-edit-filename-icon"></span>
<span class="qq-upload-file-selector qq-upload-file"></span>
<input class="qq-edit-filename-selector qq-edit-filename" tabindex="0" type="text">
<span class="qq-upload-size-selector qq-upload-size"></span>
<a class="qq-upload-cancel-selector qq-upload-cancel" href="#">Zrušit</a>
<a class="qq-upload-retry-selector qq-upload-retry" href="#">Opakovat</a>
<a class="qq-upload-delete-selector qq-upload-delete" href="#">Smazat</a>
<span class="qq-upload-status-text-selector qq-upload-status-text"></span>
</li>
</ul>
</div>
</script>
<script>
var pageType = '{$pageType}';
$('#thumbnail-fine-uploader').fineUploader({
pageType: pageType,
template: 'qq-simple-thumbnails-template',
thumbnails: {
placeholders: {
waitingPath: '/admin/static/fineuploader/placeholders/waiting-generic.png',
notAvailablePath: '/admin/static/fineuploader/placeholders/not_available-generic.png',
},
},
request: {
endpoint: '/_upload/' + pageType + '/upload/',
},
deleteFile: {
enabled: true,
method: 'DELETE',
endpoint: '/_upload/' + pageType + '/delete',
},
blobProperties: {
name: 'filename',
},
scaling: {
sendOriginal: false,
includeExif: true,
sizes: [
{
name: 'full',
maxSize: 2000,
},
],
},
validation: {
allowedExtensions: ['jpeg', 'jpg', 'gif', 'png', 'svg', 'pdf'],
},
maxConnections: 1
}).on('allComplete', function(event, success, failed) {
//$('form').submit();
});
</script>

View File

@@ -0,0 +1,104 @@
<div class="wpj-panel-heading">
<div class="list-filters-wrapper">
<div class="list-filters-left">
{if isset($filtersStorage)}
<label class="small text-muted">Filtry</label>
{/if}
<div class="d-flex flex-wrap">
{if isset($filtersStorage)}
{if $filtersStorage.storage|count}
{$activeFilter = $smarty.get.adminFilter}
{foreach $filtersStorage.storage as $adminfilter}
{if empty($adminfilter.name)}
{continue}
{/if}
<div class="filter-item">
<a target="mainFrame" href="launch.php?s=list.php&type={$adminfilter.type}&adminFilter={$adminfilter.id}"
class="btn btn-xs btn-custom"
style="background-color: {$adminfilter.color}; {if $activeFilter == $adminfilter.id}border-color: #000;{else}border-color: {$adminfilter.color};{/if}"
title="{$adminfilter.description}">{$adminfilter.name}
</a>
</div>
{if $activeFilter == $adminfilter.id}{$activeFilterName = $adminfilter.name}{/if}
{/foreach}
{/if}
<div class="d-flex justify-content-start">
{block "list-filter-item"}
{if !$smarty.get.window}
<div class="filter-item">
<div class="dropdown">
<a class="btn btn-xs btn-ghost dropdown-toggle" data-toggle="dropdown">
<span class="bi bi-plus-lg m-r-1"></span>{'addFilterTip'|translate:'filters'}
</a>
<ul class="dropdown-menu">
<li class="disabled"><a>{'editFilterTip'|translate:'filters'}:</a></li>
{foreach $filtersStorage.storage as $adminfilter}
{if empty($adminfilter.name)}
{continue}
{/if}
<li>
<a href="javascript:nw('addFilter','{$adminfilter.id}','{$filtersStorage.listName}','{$param2}')"
title="{$adminfilter.description}">
{if $activeFilter == $adminfilter.id}<b>{$adminfilter.name}</b>{else}{$adminfilter.name}{/if}
</a>
</li>
{/foreach}
<li style="border-top: 1px solid #ddd;">
<a href="javascript:nw('addFilter','','{$filtersStorage.listName}','{$param2}')">
<span class="bi bi-plus-lg m-r-1"></span>{'saveAsNewTip'|translate:'filters'}
</a>
</li>
</ul>
</div>
</div>
<div class="filter-item">
<a href="javascript:nw('filtersList','','{$filtersStorage.listName}')"
class="btn btn-xs btn-ghost btn-block" title="{'filtersListTip'|translate:'filters'}">
<span class="bi bi-funnel-fill m-r-1"></span>{'filtersList'|translate:'filters'}
</a>
</div>
{/if}
{/block}
</div>
{/if}
{block addFilter}{/block}
</div>
</div>
<div class="list-filters-right">
{block "list-filter-pager"}
{if $pager}
<div class="filter-item">
<span class="small text-muted">
{if $pager.isInfinite}
{$pageDiff = $pager.onPage - $pageCount}
Zobrazeno {($pager->from() + 1)}{(($pager->to() + 1) - $pageDiff)} z {if $pager.number == 1 && $pageCount < $pager.onPage}{$pageCount|number_format:0:".":" "}{else}<a href="{$pager->getUrl(["loadTotalCount" => 1])}">mnoha</a>{/if}
{else}
Zobrazeno {if $pager.total}{($pager->from() + 1)}{else}0{/if}{min($pager->to() + 1, $pager.total)} z {$pager.total|number_format:0:".":" "}
{/if}
</span>
</div>
{/if}
{/block}
{block "list-filter-columns-settings"}
{if !$productsMassModification}
<div class="filter-item">
{if $activeFilter}
<button title="Upravit aktuální filtr [{$activeFilterName}]" onclick="nw('filters', '{$activeFilter}')"
class="btn btn-ghost btn-xs"><span class="bi bi-arrows-move m-r-1"></span>{'editFilter'|translate:'filters'}
</button>
{else}
<button title="Upravit výchozí zobrazení sloupců" onclick="nw('ListColumns', '', 'acn=add&pg={$smarty.get.type}')"
class="btn btn-ghost btn-xs"><span class="bi bi-arrows-move m-r-1"></span>{'editListColumns'|translate:'filters'}
</button>
{/if}
</div>
{/if}
{/block}
</div>
</div>
</div>

View File

@@ -0,0 +1,67 @@
{if $pager.count > 1}
<div class="pager">
<ul class="pagination">
{$pg = $pager.number - 1}
<li {if $pager.number == 1}class="disabled"{/if}>
<a {if $pager.number > 1}href="{$pager->getUrl(["page" => $pg ])}"{/if}>&laquo;</a>
</li>
{if $pager.first && !$pager.isInfinite}
{for $page=1 to $pager.pageSideCount}
<li><a href="{$pager->getUrl(["page" => $page ])}">{$page}</a></li>
{/for}
{if $pager.firstDots}
<li class="unactive">
<a>&hellip;</a>
</li>
{/if}
{/if}
{$pagerFrom = $pager.number-$pager.pageInsideCount}
{$pagerTo = $pager.number+$pager.pageInsideCount}
{if $pager.isInfinite}
{$pagerFrom = $pager.number}
{$pagerTo = $pager.number}
{/if}
{for $page=$pagerFrom to $pagerTo}
{if $page > 0 && $page <= $pager.count}
{if $pager.number == $page}
<li class="active"><a href="{$pager->getUrl(["page" => $page ])}">{$page}</a></li>
{else}
<li><a href="{$pager->getUrl(["page" => $page ])}">{$page}</a></li>
{/if}
{/if}
{/for}
{if $pager.last && !$pager.isInfinite}
{if $pager.lastDots}
<li class="unactive">
<a>&hellip;</a>
</li>
{/if}
{for $page=$pager.count-$pager.pageSideCount+1 to $pager.count}
<li><a href="{$pager->getUrl(["page" => $page ])}">{$page}</a></li>
{/for}
{/if}
{$pg = $pager.number + 1}
{$nextDisabled = $pager.number == $pager.count || ($pager.isInfinite && $pageCount < $pager.onPage)}
<li {if $nextDisabled}class="disabled"{/if}>
<a {if !$nextDisabled} href="{$pager->getUrl(["page" => $pg ])}"{/if} >&raquo;</a>
</li>
</ul>
<div class="go-to-page">
<div class="input-group">
<input type="number" min="1" max="{$pager.count}" class="form-control" name="goToPagePage" placeholder="Strana"
data-url="{$pager->getUrl(["page" => 1]) nofilter}">
<div class="input-group-btn">
<input type="button" name="goToPageButton" class="btn btn-primary" value="Přejít">
</div>
</div>
</div>
</div>
{/if}

View File

@@ -0,0 +1,32 @@
{*
$fieldName - fieldname prefix
$price - price without vat
$vat - vat
$withoutVat - state of dropdown
$currency - currency
$fieldAttributes - additional input attributes
*}
{if !$dropDownIndex}
{assign var=$dropDownIndex value=1 scope='global'}
{/if}
<div class="input-group" id="priceBuyVatDropdown-{$dropDownIndex}">
<input type="text" class="form-control input-sm" name="{$fieldName}[value]" data-price value="{$price}" {$fieldAttributes}/>
<input type="hidden" name="{$fieldName}[with_vat]" data-price-vat value="">
<input type="hidden" name="{$fieldName}[vat]" data-vat value="{$vat}">
<span class="input-group-addon">{$currency|default:$dbcfg.currency}</span>
<div class="input-group-btn" data-dropdown="">
<a class="btn btn-primary dropdown-toggle btn-sm" data-toggle="dropdown">
<span data-dropdown-state=""></span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a data-value="1">{'withTax'|translate:'choice'}</a></li>
<li><a data-value="0">{'withoutTax'|translate:'choice'}</a></li>
</ul>
</div>
</div>
<script type="text/javascript">
priceVatDropdown($('#priceBuyVatDropdown-{$dropDownIndex}'), {if $withoutVat}0{else}1{/if});
</script>

View File

@@ -0,0 +1,29 @@
{if !isLocalDevelopment()}
<script src="/common/static/js/sentry-6.16.1.min.js"></script>
<script>
Sentry.init({
dsn: 'https://bfce65214ee44aed9bbf7bb7bddc3113@sentry.wpj.cz/11',
denyUrls: [
/extensions\//i,
/^chrome:\/\//i,
/kupshop\.local/i
],
});
function getParameterByName(name, url = window.location.href) {
name = name.replace(/[\[\]]/g, '\\$&');
var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, ' '));
}
Sentry.setTag("user", "{if isSuperuser()}wpjadmin{else}admin{/if}");
Sentry.setTag("s", getParameterByName('s'));
Sentry.setTag("l", getParameterByName('l'));
Sentry.setTag("r", getParameterByName('r'));
</script>
{/if}

View File

@@ -0,0 +1,31 @@
{if $dbcfg.smartform == "Y"}
<script type="text/javascript" src="https://client.smartform.cz/v2/smartform.js" async></script>
<script type="text/javascript">
var smartform = smartform || { };
smartform.beforeInit = function () {
smartform.setClientId('v9QX920R74');
}
var invoice_country = $('[name=\'data[invoice_country]\'], [name=\'data[country]\']').val();
var delivery_country = $('[name=\'data[delivery_country]\']').val();
smartform.afterInit = function () {
smartform.getInstance('smartform-instance-invoice').addressControl.setAllSuggestionsEnabled((invoice_country === 'CZ' || invoice_country === 'SK'));
smartform.getInstance('smartform-instance-invoice').companyControl.setAllSuggestionsEnabled((invoice_country === 'CZ'));
smartform.getInstance('smartform-instance-invoice').addressControl.setCountry(invoice_country);
smartform.getInstance('smartform-instance-delivery').addressControl.setAllSuggestionsEnabled((delivery_country === 'CZ' || delivery_country === 'SK'));
smartform.getInstance('smartform-instance-delivery').companyControl.setAllSuggestionsEnabled((delivery_country === 'CZ'));
smartform.getInstance('smartform-instance-delivery').addressControl.setCountry(delivery_country);
}
$('[name*=\'country\']').on('change', function () {
var instance = $(this).data('smartform-instance'),
country = $(this).val();
smartform.getInstance('smartform-instance-' + instance).addressControl.setAllSuggestionsEnabled((country === 'CZ' || country === 'SK'));
smartform.getInstance('smartform-instance-' + instance).companyControl.setAllSuggestionsEnabled((country === 'CZ'));
smartform.getInstance('smartform-instance-' + instance).addressControl.setCountry(country);
});
</script>
{/if}

View File

@@ -0,0 +1,12 @@
<div class="panel box">
<ul id="windowTables" class="nav nav-tabs nav-justified">
{foreach $tabs as $windowTab}
{windowTab id=$windowTab->getTitle() label=$windowTab->getLabel() wpjadmin=$windowTab->isOnlyForWpjAdmin()}
{/foreach}
</ul>
<div class="tab-content boxFlex box">
{foreach $tabs as $windowTab}
{insertWindowTab windowTab=$windowTab}
{/foreach}
</div>
</div>

View File

@@ -0,0 +1,36 @@
{ifmodule TRANSLATIONS}
{if !$target}
{$uniqueKey = rand()}
{$target = "data-translations-figure=\"`$uniqueKey`\""}
<div {$target nofilter} class="translations-figure"></div>
{$target = "[`$target`]"}
{/if}
<script type="text/javascript">
$(() => {
{get_contexts language=1 assign='ctx'}
const languages = [{foreach $ctx.language->getAll() as $lang => $_}
{if $lang === $ctx.language->getDefaultId()}{continue}{/if}
'{$lang}',
{/foreach}];
const figureToggles = new wpj.TranslationsFigure(
languages,
'{if $inputPrefix}{$inputPrefix nofilter}[translation_figure]{else}data[translation_figure]{/if}',
{if $parentFigure}'{$parentFigure}',{/if}
);
{if $figureData}
figureToggles.setState({$figureData|json_encode nofilter});
{/if}
figureToggles.render($(`{$target nofilter}`)[0]);
{if !$parentFigureInput}
{$parentFigureInput = '[name="data[figure]"]'}
{/if}
$(`{$parentFigureInput nofilter}`).on('click', function () {
figureToggles.toggleParentFigure();
});
});
</script>
{/ifmodule}

View File

@@ -0,0 +1,7 @@
{if $index == 0}
<script type="text/javascript" src="../ckeditor/ckeditor.js?v1"></script>
{/if}
<script type="text/javascript">
activateWysiwyg('{$target nofilter}', '{$type}', { {$config nofilter} }, '{$index}');
</script>