first commit
This commit is contained in:
@@ -0,0 +1,857 @@
|
||||
{extends file="helpers/form/form.tpl"}
|
||||
{block name="fieldset"}
|
||||
{capture name='fieldset_name'}{counter name='fieldset_name'}{/capture}
|
||||
<div class="panel {if isset($fieldset.form.panelClass)}{$fieldset.form.panelClass}{/if}" id="fieldset_{$f}{if isset($smarty.capture.identifier_count) && $smarty.capture.identifier_count}_{$smarty.capture.identifier_count|intval}{/if}{if $smarty.capture.fieldset_name > 1}_{($smarty.capture.fieldset_name - 1)|intval}{/if}">
|
||||
{foreach $fieldset.form as $key => $field}
|
||||
{if $key == 'legend'}
|
||||
{block name="legend"}
|
||||
<div class="panel-heading">
|
||||
{if isset($field.image) && isset($field.title)}<img src="{$field.image}" alt="{$field.title|escape:'html':'UTF-8'}" />{/if}
|
||||
{if isset($field.icon)}<i class="{$field.icon}"></i>{/if}
|
||||
{$field.title}
|
||||
</div>
|
||||
{/block}
|
||||
{elseif $key == 'description' && $field}
|
||||
<div class="alert alert-info">{$field}</div>
|
||||
{elseif $key == 'warning' && $field}
|
||||
<div class="alert alert-warning">{$field}</div>
|
||||
{elseif $key == 'success' && $field}
|
||||
<div class="alert alert-success">{$field}</div>
|
||||
{elseif $key == 'error' && $field}
|
||||
<div class="alert alert-danger">{$field}</div>
|
||||
{elseif $key == 'input'}
|
||||
<div class="form-wrapper">
|
||||
{foreach $field as $fieldCounter=>$input}
|
||||
{block name="input_row"}
|
||||
<div class="form-group{if isset($input.form_group_class)} {$input.form_group_class}{/if}{if $input.type == 'hidden'} hide{/if}"{if $input.name == 'id_state'} id="contains_states"{if !$contains_states} style="display:none;"{/if}{/if}{if isset($tabs) && isset($input.tab)} data-tab-id="{$input.tab}"{/if}>
|
||||
{if $input.type == 'hidden'}
|
||||
<input type="hidden" name="{$input.name}" id="{$input.name}" value="{$fields_value[$input.name]|escape:'html':'UTF-8'}" />
|
||||
{else}
|
||||
{block name="label"}
|
||||
{if isset($input.label)}
|
||||
<label class="control-label col-lg-4{if isset($input.required) && $input.required && $input.type != 'radio'} required{/if}">
|
||||
{if isset($input.hint)}
|
||||
<span class="label-tooltip" data-toggle="tooltip" data-html="true" title="{if is_array($input.hint)}
|
||||
{foreach $input.hint as $hint}
|
||||
{if is_array($hint)}
|
||||
{$hint.text|escape:'quotes'}
|
||||
{else}
|
||||
{$hint|escape:'quotes'}
|
||||
{/if}
|
||||
{/foreach}
|
||||
{else}
|
||||
{$input.hint|escape:'quotes'}
|
||||
{/if}">
|
||||
{/if}
|
||||
{$input.label}
|
||||
{if isset($input.hint)}
|
||||
</span>
|
||||
{/if}
|
||||
</label>
|
||||
{/if}
|
||||
{/block}
|
||||
|
||||
{block name="field"}
|
||||
<div class="col-lg-{if isset($input.col)}{$input.col|intval}{else}8{/if}{if !isset($input.label)&& !isset($input.hide_label)} col-lg-offset-3{/if}">
|
||||
{block name="input"}
|
||||
{if $input.type == 'text' || $input.type == 'tags'}
|
||||
{if isset($input.lang) AND $input.lang}
|
||||
{if $languages|count > 1}
|
||||
<div class="form-group">
|
||||
{/if}
|
||||
{foreach $languages as $language}
|
||||
{assign var='value_text' value=$fields_value[$input.name][$language.id_lang]}
|
||||
{if $languages|count > 1}
|
||||
<div class="translatable-field lang-{$language.id_lang}" {if $language.id_lang != $defaultFormLanguage}style="display:none"{/if}>
|
||||
<div class="col-lg-9">
|
||||
{/if}
|
||||
{if $input.type == 'tags'}
|
||||
{literal}
|
||||
<script type="text/javascript">
|
||||
$().ready(function () {
|
||||
var input_id = '{/literal}{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}{literal}';
|
||||
$('#'+input_id).tagify({delimiters: [13,44], addTagPrompt: '{/literal}{l s='Add tag' js=1}{literal}'});
|
||||
$({/literal}'#{$table}{literal}_form').submit( function() {
|
||||
$(this).find('#'+input_id).val($('#'+input_id).tagify('serialize'));
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{/literal}
|
||||
{/if}
|
||||
{if isset($input.maxchar) || isset($input.prefix) || isset($input.suffix)}
|
||||
<div class="input-group{if isset($input.class)} {$input.class}{/if}">
|
||||
{/if}
|
||||
{if isset($input.maxchar) && $input.maxchar}
|
||||
<span id="{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}_counter" class="input-group-addon">
|
||||
<span class="text-count-down">{$input.maxchar|intval}</span>
|
||||
</span>
|
||||
{/if}
|
||||
{if isset($input.prefix)}
|
||||
<span class="input-group-addon">
|
||||
{$input.prefix}
|
||||
</span>
|
||||
{/if}
|
||||
<input type="text"
|
||||
id="{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}"
|
||||
name="{$input.name}_{$language.id_lang}"
|
||||
class="{if isset($input.class)}{$input.class}{/if}{if $input.type == 'tags'} tagify{/if}"
|
||||
value="{if isset($input.string_format) && $input.string_format}{$value_text|string_format:$input.string_format|escape:'html':'UTF-8'}{else}{$value_text|escape:'html':'UTF-8'}{/if}"
|
||||
onkeyup="if (isArrowKey(event)) return ;updateFriendlyURL();"
|
||||
{if isset($input.size)} size="{$input.size}"{/if}
|
||||
{if isset($input.maxchar) && $input.maxchar} data-maxchar="{$input.maxchar|intval}"{/if}
|
||||
{if isset($input.maxlength) && $input.maxlength} maxlength="{$input.maxlength|intval}"{/if}
|
||||
{if isset($input.readonly) && $input.readonly} readonly="readonly"{/if}
|
||||
{if isset($input.disabled) && $input.disabled} disabled="disabled"{/if}
|
||||
{if isset($input.autocomplete) && !$input.autocomplete} autocomplete="off"{/if}
|
||||
{if isset($input.required) && $input.required} required="required" {/if}
|
||||
{if isset($input.placeholder) && $input.placeholder} placeholder="{$input.placeholder}"{/if} />
|
||||
{if isset($input.suffix)}
|
||||
<span class="input-group-addon">
|
||||
{$input.suffix}
|
||||
</span>
|
||||
{/if}
|
||||
{if isset($input.maxchar) || isset($input.prefix) || isset($input.suffix)}
|
||||
</div>
|
||||
{/if}
|
||||
{if $languages|count > 1}
|
||||
</div>
|
||||
<div class="col-lg-2">
|
||||
<button type="button" class="btn btn-default dropdown-toggle" tabindex="-1" data-toggle="dropdown">
|
||||
{$language.iso_code}
|
||||
<i class="icon-caret-down"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
{foreach from=$languages item=language}
|
||||
<li><a href="javascript:hideOtherLanguage({$language.id_lang});" tabindex="-1">{$language.name}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{/foreach}
|
||||
{if isset($input.maxchar) && $input.maxchar}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
{foreach from=$languages item=language}
|
||||
countDown($("#{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}"), $("#{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}_counter"));
|
||||
{/foreach}
|
||||
});
|
||||
</script>
|
||||
{/if}
|
||||
{if $languages|count > 1}
|
||||
</div>
|
||||
{/if}
|
||||
{else}
|
||||
{if $input.type == 'tags'}
|
||||
{literal}
|
||||
<script type="text/javascript">
|
||||
$().ready(function () {
|
||||
var input_id = '{/literal}{if isset($input.id)}{$input.id}{else}{$input.name}{/if}{literal}';
|
||||
$('#'+input_id).tagify({delimiters: [13,44], addTagPrompt: '{/literal}{l s='Add tag'}{literal}'});
|
||||
$({/literal}'#{$table}{literal}_form').submit( function() {
|
||||
$(this).find('#'+input_id).val($('#'+input_id).tagify('serialize'));
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{/literal}
|
||||
{/if}
|
||||
{assign var='value_text' value=$fields_value[$input.name]}
|
||||
{if isset($input.maxchar) || isset($input.prefix) || isset($input.suffix)}
|
||||
<div class="input-group{if isset($input.class)} {$input.class}{/if}">
|
||||
{/if}
|
||||
{if isset($input.maxchar) && $input.maxchar}
|
||||
<span id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}_counter" class="input-group-addon"><span class="text-count-down">{$input.maxchar|intval}</span></span>
|
||||
{/if}
|
||||
{if isset($input.prefix)}
|
||||
<span class="input-group-addon">
|
||||
{$input.prefix}
|
||||
</span>
|
||||
{/if}
|
||||
<input type="text"
|
||||
name="{$input.name}"
|
||||
id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"
|
||||
value="{if isset($input.string_format) && $input.string_format}{$value_text|string_format:$input.string_format|escape:'html':'UTF-8'}{else}{$value_text|escape:'html':'UTF-8'}{/if}"
|
||||
class="{if isset($input.class)}{$input.class}{/if}{if $input.type == 'tags'} tagify{/if}"
|
||||
{if isset($input.size)} size="{$input.size}"{/if}
|
||||
{if isset($input.maxchar) && $input.maxchar} data-maxchar="{$input.maxchar|intval}"{/if}
|
||||
{if isset($input.maxlength) && $input.maxlength} maxlength="{$input.maxlength|intval}"{/if}
|
||||
{if isset($input.readonly) && $input.readonly} readonly="readonly"{/if}
|
||||
{if isset($input.disabled) && $input.disabled} disabled="disabled"{/if}
|
||||
{if isset($input.autocomplete) && !$input.autocomplete} autocomplete="off"{/if}
|
||||
{if isset($input.required) && $input.required } required="required" {/if}
|
||||
{if isset($input.placeholder) && $input.placeholder } placeholder="{$input.placeholder}"{/if}
|
||||
/>
|
||||
{if isset($input.suffix)}
|
||||
<span class="input-group-addon">
|
||||
{$input.suffix}
|
||||
</span>
|
||||
{/if}
|
||||
|
||||
{if isset($input.maxchar) || isset($input.prefix) || isset($input.suffix)}
|
||||
</div>
|
||||
{/if}
|
||||
{if isset($input.maxchar) && $input.maxchar}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
countDown($("#{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"), $("#{if isset($input.id)}{$input.id}{else}{$input.name}{/if}_counter"));
|
||||
});
|
||||
</script>
|
||||
{/if}
|
||||
{/if}
|
||||
{elseif $input.type == 'textbutton'}
|
||||
{assign var='value_text' value=$fields_value[$input.name]}
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
{if isset($input.maxchar)}
|
||||
<div class="input-group">
|
||||
<span id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}_counter" class="input-group-addon">
|
||||
<span class="text-count-down">{$input.maxchar|intval}</span>
|
||||
</span>
|
||||
{/if}
|
||||
<input type="text"
|
||||
name="{$input.name}"
|
||||
id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"
|
||||
value="{if isset($input.string_format) && $input.string_format}{$value_text|string_format:$input.string_format|escape:'html':'UTF-8'}{else}{$value_text|escape:'html':'UTF-8'}{/if}"
|
||||
class="{if isset($input.class)}{$input.class}{/if}{if $input.type == 'tags'} tagify{/if}"
|
||||
{if isset($input.size)} size="{$input.size}"{/if}
|
||||
{if isset($input.maxchar) && $input.maxchar} data-maxchar="{$input.maxchar|intval}"{/if}
|
||||
{if isset($input.maxlength) && $input.maxlength} maxlength="{$input.maxlength|intval}"{/if}
|
||||
{if isset($input.readonly) && $input.readonly} readonly="readonly"{/if}
|
||||
{if isset($input.disabled) && $input.disabled} disabled="disabled"{/if}
|
||||
{if isset($input.autocomplete) && !$input.autocomplete} autocomplete="off"{/if}
|
||||
{if isset($input.placeholder) && $input.placeholder } placeholder="{$input.placeholder}"{/if}
|
||||
/>
|
||||
{if isset($input.suffix)}{$input.suffix}{/if}
|
||||
{if isset($input.maxchar) && $input.maxchar}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
<div class="col-lg-2">
|
||||
<button type="button" class="btn btn-default{if isset($input.button.attributes['class'])} {$input.button.attributes['class']}{/if}{if isset($input.button.class)} {$input.button.class}{/if}"
|
||||
{foreach from=$input.button.attributes key=name item=value}
|
||||
{if $name|lower != 'class'}
|
||||
{$name|escape:'html':'UTF-8'}="{$value|escape:'html':'UTF-8'}"
|
||||
{/if}
|
||||
{/foreach} >
|
||||
{$input.button.label}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
{if isset($input.maxchar) && $input.maxchar}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
countDown($("#{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"), $("#{if isset($input.id)}{$input.id}{else}{$input.name}{/if}_counter"));
|
||||
});
|
||||
</script>
|
||||
{/if}
|
||||
{elseif $input.type == 'swap'}
|
||||
<div class="form-group">
|
||||
<div class="col-lg-9">
|
||||
<div class="form-control-static row">
|
||||
<div class="col-xs-6">
|
||||
<select {if isset($input.size)}size="{$input.size|escape:'html':'utf-8'}"{/if}{if isset($input.onchange)} onchange="{$input.onchange|escape:'html':'utf-8'}"{/if} class="{if isset($input.class)}{$input.class|escape:'html':'utf-8'}{/if}" id="availableSwap" name="{$input.name|escape:'html':'utf-8'}_available[]" multiple="multiple">
|
||||
{foreach $input.options.query AS $option}
|
||||
{if is_object($option)}
|
||||
{if !in_array($option->$input.options.id, $fields_value[$input.name])}
|
||||
<option value="{$option->$input.options.id}">{$option->$input.options.name}</option>
|
||||
{/if}
|
||||
{elseif $option == "-"}
|
||||
<option value="">-</option>
|
||||
{else}
|
||||
{if !in_array($option[$input.options.id], $fields_value[$input.name])}
|
||||
<option value="{$option[$input.options.id]}">{$option[$input.options.name]}</option>
|
||||
{/if}
|
||||
{/if}
|
||||
{/foreach}
|
||||
</select>
|
||||
<a href="#" id="addSwap" class="btn btn-default btn-block">{l s='Add'} <i class="icon-arrow-right"></i></a>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<select {if isset($input.size)}size="{$input.size|escape:'html':'utf-8'}"{/if}{if isset($input.onchange)} onchange="{$input.onchange|escape:'html':'utf-8'}"{/if} class="{if isset($input.class)}{$input.class|escape:'html':'utf-8'}{/if}" id="selectedSwap" name="{$input.name|escape:'html':'utf-8'}_selected[]" multiple="multiple">
|
||||
{foreach $input.options.query AS $option}
|
||||
{if is_object($option)}
|
||||
{if in_array($option->$input.options.id, $fields_value[$input.name])}
|
||||
<option value="{$option->$input.options.id}">{$option->$input.options.name}</option>
|
||||
{/if}
|
||||
{elseif $option == "-"}
|
||||
<option value="">-</option>
|
||||
{else}
|
||||
{if in_array($option[$input.options.id], $fields_value[$input.name])}
|
||||
<option value="{$option[$input.options.id]}">{$option[$input.options.name]}</option>
|
||||
{/if}
|
||||
{/if}
|
||||
{/foreach}
|
||||
</select>
|
||||
<a href="#" id="removeSwap" class="btn btn-default btn-block"><i class="icon-arrow-left"></i> {l s='Remove'}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{elseif $input.type == 'select'}
|
||||
{if isset($input.options.query) && !$input.options.query && isset($input.empty_message)}
|
||||
{$input.empty_message}
|
||||
{$input.required = false}
|
||||
{$input.desc = null}
|
||||
{else}
|
||||
<select name="{$input.name|escape:'html':'utf-8'}"
|
||||
class="{if isset($input.class)}{$input.class|escape:'html':'utf-8'} {else}fixed-width-xl{/if} "
|
||||
id="{if isset($input.id)}{$input.id|escape:'html':'utf-8'}{else}{$input.name|escape:'html':'utf-8'}{/if}"
|
||||
{if isset($input.multiple) && $input.multiple} multiple="multiple"{/if}
|
||||
{if isset($input.size)} size="{$input.size|escape:'html':'utf-8'}"{/if}
|
||||
{if isset($input.onchange)} onchange="{$input.onchange|escape:'html':'utf-8'}"{/if}
|
||||
{if isset($input.disabled) && $input.disabled} disabled="disabled"{/if}>
|
||||
{if isset($input.options.default)}
|
||||
<option value="{$input.options.default.value|escape:'html':'utf-8'}">{$input.options.default.label|escape:'html':'utf-8'}</option>
|
||||
{/if}
|
||||
{if isset($input.options.optiongroup)}
|
||||
{foreach $input.options.optiongroup.query AS $optiongroup}
|
||||
<optgroup label="{$optiongroup[$input.options.optiongroup.label]}">
|
||||
{foreach $optiongroup[$input.options.options.query] as $option}
|
||||
<option value="{$option[$input.options.options.id]}"
|
||||
{if isset($input.multiple)}
|
||||
{foreach $fields_value[$input.name] as $field_value}
|
||||
{if $field_value == $option[$input.options.options.id]}selected="selected"{/if}
|
||||
{/foreach}
|
||||
{else}
|
||||
{if $fields_value[$input.name] == $option[$input.options.options.id]}selected="selected"{/if}
|
||||
{/if}
|
||||
>{$option[$input.options.options.name]}</option>
|
||||
{/foreach}
|
||||
</optgroup>
|
||||
{/foreach}
|
||||
{else}
|
||||
{foreach $input.options.query AS $option}
|
||||
{if is_object($option)}
|
||||
<option value="{$option->$input.options.id}"
|
||||
{if isset($input.multiple)}
|
||||
{foreach $fields_value[$input.name] as $field_value}
|
||||
{if $field_value == $option->$input.options.id}
|
||||
selected="selected"
|
||||
{/if}
|
||||
{/foreach}
|
||||
{else}
|
||||
{if $fields_value[$input.name] == $option->$input.options.id}
|
||||
selected="selected"
|
||||
{/if}
|
||||
{/if}
|
||||
>{$option->$input.options.name}</option>
|
||||
{elseif $option == "-"}
|
||||
<option value="">-</option>
|
||||
{else}
|
||||
<option value="{$option[$input.options.id]}"
|
||||
{if isset($input.multiple)}
|
||||
{foreach $fields_value[$input.name] as $field_value}
|
||||
{if $field_value == $option[$input.options.id]}
|
||||
selected="selected"
|
||||
{/if}
|
||||
{/foreach}
|
||||
{else}
|
||||
{if $fields_value[$input.name] == $option[$input.options.id]}
|
||||
selected="selected"
|
||||
{/if}
|
||||
{/if}
|
||||
>{$option[$input.options.name]}</option>
|
||||
|
||||
{/if}
|
||||
{/foreach}
|
||||
{/if}
|
||||
</select>
|
||||
{/if}
|
||||
{elseif $input.type == 'radio'}
|
||||
{foreach $input.values as $value}
|
||||
<div class="radio {if isset($input.class)}{$input.class}{/if}">
|
||||
{strip}
|
||||
<label>
|
||||
<input type="radio" name="{$input.name}" id="{$value.id}" value="{$value.value|escape:'html':'UTF-8'}"{if $fields_value[$input.name] == $value.value} checked="checked"{/if}{if isset($input.disabled) && $input.disabled} disabled="disabled"{/if}/>
|
||||
{$value.label}
|
||||
</label>
|
||||
{/strip}
|
||||
</div>
|
||||
{if isset($value.p) && $value.p}<p class="help-block">{$value.p}</p>{/if}
|
||||
{/foreach}
|
||||
{elseif $input.type == 'switch'}
|
||||
<span class="switch prestashop-switch fixed-width-lg">
|
||||
{foreach $input.values as $value}
|
||||
<input type="radio" name="{$input.name}"{if $value.value == 1} id="{$input.name}_on"{else} id="{$input.name}_off"{/if} value="{$value.value}"{if $fields_value[$input.name] == $value.value} checked="checked"{/if}{if isset($input.disabled) && $input.disabled} disabled="disabled"{/if}/>
|
||||
{strip}
|
||||
<label {if $value.value == 1} for="{$input.name}_on"{else} for="{$input.name}_off"{/if}>
|
||||
{if $value.value == 1}
|
||||
{l s='Yes' d='Admin.Global'}
|
||||
{else}
|
||||
{l s='No' d='Admin.Global'}
|
||||
{/if}
|
||||
</label>
|
||||
{/strip}
|
||||
{/foreach}
|
||||
<a class="slide-button btn"></a>
|
||||
</span>
|
||||
{elseif $input.type == 'textarea'}
|
||||
{if isset($input.maxchar) && $input.maxchar}<div class="input-group">{/if}
|
||||
{assign var=use_textarea_autosize value=true}
|
||||
{if isset($input.lang) AND $input.lang}
|
||||
{foreach $languages as $language}
|
||||
{if $languages|count > 1}
|
||||
<div class="form-group translatable-field lang-{$language.id_lang}"{if $language.id_lang != $defaultFormLanguage} style="display:none;"{/if}>
|
||||
<div class="col-lg-9">
|
||||
{/if}
|
||||
{if isset($input.maxchar) && $input.maxchar}
|
||||
<span id="{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}_counter" class="input-group-addon">
|
||||
<span class="text-count-down">{$input.maxchar|intval}</span>
|
||||
</span>
|
||||
{/if}
|
||||
<textarea{if isset($input.readonly) && $input.readonly} readonly="readonly"{/if} name="{$input.name}_{$language.id_lang}" id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}_{$language.id_lang}" class="{if isset($input.autoload_rte) && $input.autoload_rte}rte autoload_rte{else}textarea-autosize{/if}{if isset($input.class)} {$input.class}{/if}"{if isset($input.maxlength) && $input.maxlength} maxlength="{$input.maxlength|intval}"{/if}{if isset($input.maxchar) && $input.maxchar} data-maxchar="{$input.maxchar|intval}"{/if}>{$fields_value[$input.name][$language.id_lang]|escape:'html':'UTF-8'}</textarea>
|
||||
{if $languages|count > 1}
|
||||
</div>
|
||||
<div class="col-lg-2">
|
||||
<button type="button" class="btn btn-default dropdown-toggle" tabindex="-1" data-toggle="dropdown">
|
||||
{$language.iso_code}
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
{foreach from=$languages item=language}
|
||||
<li>
|
||||
<a href="javascript:hideOtherLanguage({$language.id_lang});" tabindex="-1">{$language.name}</a>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{/foreach}
|
||||
{if isset($input.maxchar) && $input.maxchar}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
{foreach from=$languages item=language}
|
||||
countDown($("#{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}"), $("#{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}_counter"));
|
||||
{/foreach}
|
||||
});
|
||||
</script>
|
||||
{/if}
|
||||
{else}
|
||||
{if isset($input.maxchar) && $input.maxchar}
|
||||
<span id="{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}_counter" class="input-group-addon">
|
||||
<span class="text-count-down">{$input.maxchar|intval}</span>
|
||||
</span>
|
||||
{/if}
|
||||
<textarea{if isset($input.readonly) && $input.readonly} readonly="readonly"{/if} name="{$input.name}" id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}" {if isset($input.cols)}cols="{$input.cols}"{/if} {if isset($input.rows)}rows="{$input.rows}"{/if} class="{if isset($input.autoload_rte) && $input.autoload_rte}rte autoload_rte{else}textarea-autosize{/if}{if isset($input.class)} {$input.class}{/if}"{if isset($input.maxlength) && $input.maxlength} maxlength="{$input.maxlength|intval}"{/if}{if isset($input.maxchar) && $input.maxchar} data-maxchar="{$input.maxchar|intval}"{/if}>{$fields_value[$input.name]|escape:'html':'UTF-8'}</textarea>
|
||||
{if isset($input.maxchar) && $input.maxchar}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
countDown($("#{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"), $("#{if isset($input.id)}{$input.id}{else}{$input.name}{/if}_counter"));
|
||||
});
|
||||
</script>
|
||||
{/if}
|
||||
{/if}
|
||||
{if isset($input.maxchar) && $input.maxchar}</div>{/if}
|
||||
{elseif $input.type == 'checkbox'}
|
||||
{if isset($input.expand)}
|
||||
<a class="btn btn-default show_checkbox{if strtolower($input.expand.default) == 'hide'} hidden{/if}" href="#">
|
||||
<i class="icon-{$input.expand.show.icon}"></i>
|
||||
{$input.expand.show.text}
|
||||
{if isset($input.expand.print_total) && $input.expand.print_total > 0}
|
||||
<span class="badge">{$input.expand.print_total}</span>
|
||||
{/if}
|
||||
</a>
|
||||
<a class="btn btn-default hide_checkbox{if strtolower($input.expand.default) == 'show'} hidden{/if}" href="#">
|
||||
<i class="icon-{$input.expand.hide.icon}"></i>
|
||||
{$input.expand.hide.text}
|
||||
{if isset($input.expand.print_total) && $input.expand.print_total > 0}
|
||||
<span class="badge">{$input.expand.print_total}</span>
|
||||
{/if}
|
||||
</a>
|
||||
{/if}
|
||||
{foreach $input.values.query as $value}
|
||||
{assign var=id_checkbox value=$value[$input.values.id]}
|
||||
|
||||
{strip}
|
||||
<span class="{if isset($value.class)}{$value.class}{/if}">
|
||||
<label for="{$id_checkbox}" class="{if isset($value.label_class)}{$value.label_class}{/if}">
|
||||
<input type="checkbox" name="{$id_checkbox}" id="{$id_checkbox}" class="{if isset($input.class)}{$input.class}{/if}"{if isset($value.val)} value="{$value.val|escape:'html':'UTF-8'}"{/if}{if isset($fields_value[$id_checkbox]) && $fields_value[$id_checkbox]} checked="checked"{/if} />
|
||||
{$value[$input.values.name]}
|
||||
</label>
|
||||
</span>
|
||||
{/strip}
|
||||
|
||||
{/foreach}
|
||||
{elseif $input.type == 'change-password'}
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<button type="button" id="{$input.name}-btn-change" class="btn btn-default">
|
||||
<i class="icon-lock"></i>
|
||||
{l s='Change password...'}
|
||||
</button>
|
||||
<div id="{$input.name}-change-container" class="form-password-change well hide">
|
||||
<div class="form-group">
|
||||
<label for="old_passwd" class="control-label col-lg-2 required">
|
||||
{l s='Current password'}
|
||||
</label>
|
||||
<div class="col-lg-10">
|
||||
<div class="input-group fixed-width-lg">
|
||||
<span class="input-group-addon">
|
||||
<i class="icon-unlock"></i>
|
||||
</span>
|
||||
<input type="password" id="old_passwd" name="old_passwd" class="form-control" value="" required="required" autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr />
|
||||
<div class="form-group">
|
||||
<label for="{$input.name}" class="required control-label col-lg-2">
|
||||
<span class="label-tooltip" data-toggle="tooltip" data-html="true" title="" data-original-title="{l s='Password should be at least 8 characters long.'}">
|
||||
{l s='New password'}
|
||||
</span>
|
||||
</label>
|
||||
<div class="col-lg-9">
|
||||
<div class="input-group fixed-width-lg">
|
||||
<span class="input-group-addon">
|
||||
<i class="icon-key"></i>
|
||||
</span>
|
||||
<input type="password" id="{$input.name}" name="{$input.name}" class="{if isset($input.class)}{$input.class}{/if}" value="" required="required" autocomplete="off"/>
|
||||
</div>
|
||||
<span id="{$input.name}-output"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="{$input.name}2" class="required control-label col-lg-2">
|
||||
{l s='Confirm password'}
|
||||
</label>
|
||||
<div class="col-lg-4">
|
||||
<div class="input-group fixed-width-lg">
|
||||
<span class="input-group-addon">
|
||||
<i class="icon-key"></i>
|
||||
</span>
|
||||
<input type="password" id="{$input.name}2" name="{$input.name}2" class="{if isset($input.class)}{$input.class}{/if}" value="" autocomplete="off"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-lg-10 col-lg-offset-2">
|
||||
<input type="text" class="form-control fixed-width-md pull-left" id="{$input.name}-generate-field" disabled="disabled">
|
||||
<button type="button" id="{$input.name}-generate-btn" class="btn btn-default">
|
||||
<i class="icon-random"></i>
|
||||
{l s='Generate password'}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-lg-10 col-lg-offset-2">
|
||||
<p class="checkbox">
|
||||
<label for="{$input.name}-checkbox-mail">
|
||||
<input name="passwd_send_email" id="{$input.name}-checkbox-mail" type="checkbox" checked="checked">
|
||||
{l s='Send me this new password by Email'}
|
||||
</label>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<button type="button" id="{$input.name}-cancel-btn" class="btn btn-default">
|
||||
<i class="icon-remove"></i>
|
||||
{l s='Cancel'}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$(function(){
|
||||
var $oldPwd = $('#old_passwd');
|
||||
var $passwordField = $('#{$input.name}');
|
||||
var $output = $('#{$input.name}-output');
|
||||
var $generateBtn = $('#{$input.name}-generate-btn');
|
||||
var $generateField = $('#{$input.name}-generate-field');
|
||||
var $cancelBtn = $('#{$input.name}-cancel-btn');
|
||||
|
||||
var feedback = [
|
||||
{ badge: 'text-danger', text: '{l s="Invalid" js=1}' },
|
||||
{ badge: 'text-warning', text: '{l s="Okay" js=1}' },
|
||||
{ badge: 'text-success', text: '{l s="Good" js=1}' },
|
||||
{ badge: 'text-success', text: '{l s="Fabulous" js=1}' }
|
||||
];
|
||||
$.passy.requirements.length.min = 8;
|
||||
$.passy.requirements.characters = 'DIGIT';
|
||||
$passwordField.passy(function(strength, valid) {
|
||||
$output.text(feedback[strength].text);
|
||||
$output.removeClass('text-danger').removeClass('text-warning').removeClass('text-success');
|
||||
$output.addClass(feedback[strength].badge);
|
||||
if (valid){
|
||||
$output.show();
|
||||
}
|
||||
else {
|
||||
$output.hide();
|
||||
}
|
||||
});
|
||||
var $container = $('#{$input.name}-change-container');
|
||||
var $changeBtn = $('#{$input.name}-btn-change');
|
||||
var $confirmPwd = $('#{$input.name}2');
|
||||
|
||||
$changeBtn.on('click',function(){
|
||||
$container.removeClass('hide');
|
||||
$changeBtn.addClass('hide');
|
||||
});
|
||||
$generateBtn.click(function() {
|
||||
$generateField.passy( 'generate', 8 );
|
||||
var generatedPassword = $generateField.val();
|
||||
$passwordField.val(generatedPassword);
|
||||
$confirmPwd.val(generatedPassword);
|
||||
});
|
||||
$cancelBtn.on('click',function() {
|
||||
$container.find("input").val("");
|
||||
$container.addClass('hide');
|
||||
$changeBtn.removeClass('hide');
|
||||
});
|
||||
|
||||
$.validator.addMethod('password_same', function(value, element) {
|
||||
return $passwordField.val() == $confirmPwd.val();
|
||||
}, '{l s="Invalid password confirmation" js=1}');
|
||||
|
||||
$('#employee_form').validate({
|
||||
rules: {
|
||||
"email": {
|
||||
email: true
|
||||
},
|
||||
"{$input.name}" : {
|
||||
minlength: 8
|
||||
},
|
||||
"{$input.name}2": {
|
||||
password_same: true
|
||||
},
|
||||
"old_passwd" : {},
|
||||
},
|
||||
// override jquery validate plugin defaults for bootstrap 3
|
||||
highlight: function(element) {
|
||||
$(element).closest('.form-group').addClass('has-error');
|
||||
},
|
||||
unhighlight: function(element) {
|
||||
$(element).closest('.form-group').removeClass('has-error');
|
||||
},
|
||||
errorElement: 'span',
|
||||
errorClass: 'help-block',
|
||||
errorPlacement: function(error, element) {
|
||||
if(element.parent('.input-group').length) {
|
||||
error.insertAfter(element.parent());
|
||||
} else {
|
||||
error.insertAfter(element);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{elseif $input.type == 'password'}
|
||||
<div class="input-group fixed-width-lg">
|
||||
<span class="input-group-addon">
|
||||
<i class="icon-key"></i>
|
||||
</span>
|
||||
<input type="password"
|
||||
id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"
|
||||
name="{$input.name}"
|
||||
class="{if isset($input.class)}{$input.class}{/if}"
|
||||
value="{$fields_value[$input.name]}"
|
||||
{if isset($input.autocomplete) && !$input.autocomplete}autocomplete="off"{/if}
|
||||
{if isset($input.required) && $input.required } required="required" {/if} />
|
||||
</div>
|
||||
|
||||
{elseif $input.type == 'birthday'}
|
||||
<div class="form-group">
|
||||
{foreach $input.options as $key => $select}
|
||||
<div class="col-lg-2">
|
||||
<select name="{$key}" class="fixed-width-lg{if isset($input.class)} {$input.class}{/if}">
|
||||
<option value="">-</option>
|
||||
{if $key == 'months'}
|
||||
{*
|
||||
This comment is useful to the translator tools /!\ do not remove them
|
||||
{l s='January'}
|
||||
{l s='February'}
|
||||
{l s='March'}
|
||||
{l s='April'}
|
||||
{l s='May'}
|
||||
{l s='June'}
|
||||
{l s='July'}
|
||||
{l s='August'}
|
||||
{l s='September'}
|
||||
{l s='October'}
|
||||
{l s='November'}
|
||||
{l s='December'}
|
||||
*}
|
||||
{foreach $select as $k => $v}
|
||||
<option value="{$k}" {if $k == $fields_value[$key]}selected="selected"{/if}>{l s=$v}</option>
|
||||
{/foreach}
|
||||
{else}
|
||||
{foreach $select as $v}
|
||||
<option value="{$v}" {if $v == $fields_value[$key]}selected="selected"{/if}>{$v}</option>
|
||||
{/foreach}
|
||||
{/if}
|
||||
</select>
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
{elseif $input.type == 'group'}
|
||||
{assign var=groups value=$input.values}
|
||||
{include file='helpers/form/form_group.tpl'}
|
||||
{elseif $input.type == 'shop'}
|
||||
{$input.html}
|
||||
{elseif $input.type == 'categories'}
|
||||
{$categories_tree}
|
||||
{elseif $input.type == 'file'}
|
||||
{$input.file}
|
||||
{elseif $input.type == 'categories_select'}
|
||||
{$input.category_tree}
|
||||
{elseif $input.type == 'asso_shop' && isset($asso_shop) && $asso_shop}
|
||||
{$asso_shop}
|
||||
{elseif $input.type == 'color'}
|
||||
<div class="form-group">
|
||||
<div class="col-lg-2">
|
||||
<div class="row">
|
||||
<div class="input-group">
|
||||
<input type="color"
|
||||
data-hex="true"
|
||||
{if isset($input.class)} class="{$input.class}"
|
||||
{else} class="color mColorPickerInput"{/if}
|
||||
name="{$input.name}"
|
||||
value="{$fields_value[$input.name]|escape:'html':'UTF-8'}" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{elseif $input.type == 'date'}
|
||||
<div class="row">
|
||||
<div class="input-group col-lg-4">
|
||||
<input
|
||||
id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"
|
||||
type="text"
|
||||
data-hex="true"
|
||||
{if isset($input.class)} class="{$input.class}"
|
||||
{else}class="datepicker"{/if}
|
||||
name="{$input.name}"
|
||||
value="{$fields_value[$input.name]|escape:'html':'UTF-8'}" />
|
||||
<span class="input-group-addon">
|
||||
<i class="icon-calendar-empty"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
{elseif $input.type == 'datetime'}
|
||||
<div class="row">
|
||||
<div class="input-group col-lg-4">
|
||||
<input
|
||||
id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"
|
||||
type="text"
|
||||
data-hex="true"
|
||||
{if isset($input.class)} class="{$input.class}"
|
||||
{else} class="datetimepicker"{/if}
|
||||
name="{$input.name}"
|
||||
value="{$fields_value[$input.name]|escape:'html':'UTF-8'}" />
|
||||
<span class="input-group-addon">
|
||||
<i class="icon-calendar-empty"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
{elseif $input.type == 'free'}
|
||||
{$fields_value[$input.name]}
|
||||
{elseif $input.type == 'html'}
|
||||
{if isset($input.html_content)}
|
||||
{$input.html_content}
|
||||
{else}
|
||||
{$input.name}
|
||||
{/if}
|
||||
{/if}
|
||||
{/block}{* end block input *}
|
||||
{block name="description"}
|
||||
{if isset($input.desc) && !empty($input.desc)}
|
||||
<p class="help-block">
|
||||
{if is_array($input.desc)}
|
||||
{foreach $input.desc as $p}
|
||||
{if is_array($p)}
|
||||
<span id="{$p.id}">{$p.text}</span><br />
|
||||
{else}
|
||||
{$p}<br />
|
||||
{/if}
|
||||
{/foreach}
|
||||
{else}
|
||||
{$input.desc}
|
||||
{/if}
|
||||
</p>
|
||||
{/if}
|
||||
{/block}
|
||||
</div>
|
||||
{/block}{* end block field *}
|
||||
{/if}
|
||||
</div>
|
||||
{/block}
|
||||
{/foreach}
|
||||
{hook h='displayAdminForm' fieldset=$f}
|
||||
{if isset($name_controller)}
|
||||
{capture name=hookName assign=hookName}display{$name_controller|ucfirst}Form{/capture}
|
||||
{hook h=$hookName fieldset=$f}
|
||||
{elseif isset($smarty.get.controller)}
|
||||
{capture name=hookName assign=hookName}display{$smarty.get.controller|ucfirst|htmlentities}Form{/capture}
|
||||
{hook h=$hookName fieldset=$f}
|
||||
{/if}
|
||||
</div><!-- /.form-wrapper -->
|
||||
|
||||
{elseif $key == 'desc'}
|
||||
<div class="alert alert-info col-lg-offset-3">
|
||||
{if is_array($field)}
|
||||
{foreach $field as $k => $p}
|
||||
{if is_array($p)}
|
||||
<span{if isset($p.id)} id="{$p.id}"{/if}>{$p.text}</span><br />
|
||||
{else}
|
||||
{$p}
|
||||
{if isset($field[$k+1])}<br />{/if}
|
||||
{/if}
|
||||
{/foreach}
|
||||
{else}
|
||||
{$field}
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
{block name="other_input"}{/block}
|
||||
{/foreach}
|
||||
{block name="footer"}
|
||||
{capture name='form_submit_btn'}{counter name='form_submit_btn'}{/capture}
|
||||
{if isset($fieldset['form']['submit']) || isset($fieldset['form']['buttons'])}
|
||||
<div>
|
||||
{if isset($fieldset['form']['submit']) && !empty($fieldset['form']['submit'])}
|
||||
<button type="submit" value="1" id="{if isset($fieldset['form']['submit']['id'])}{$fieldset['form']['submit']['id']}{else}{$table}_form_submit_btn{/if}{if $smarty.capture.form_submit_btn > 1}_{($smarty.capture.form_submit_btn - 1)|intval}{/if}" name="{if isset($fieldset['form']['submit']['name'])}{$fieldset['form']['submit']['name']}{else}{$submit_action}{/if}{if isset($fieldset['form']['submit']['stay']) && $fieldset['form']['submit']['stay']}AndStay{/if}" class="{if isset($fieldset['form']['submit']['class'])}{$fieldset['form']['submit']['class']}{else}btn btn-default pull-right{/if}">
|
||||
<i class="{if isset($fieldset['form']['submit']['icon'])}{$fieldset['form']['submit']['icon']}{else}process-icon-save{/if}"></i> {$fieldset['form']['submit']['title']}
|
||||
</button>
|
||||
{/if}
|
||||
{if isset($show_cancel_button) && $show_cancel_button}
|
||||
<a href="{$back_url|escape:'html':'UTF-8'}" class="btn btn-default" onclick="window.history.back();">
|
||||
<i class="process-icon-cancel"></i> {l s='Cancel'}
|
||||
</a>
|
||||
{/if}
|
||||
{if isset($fieldset['form']['reset'])}
|
||||
<button
|
||||
type="reset"
|
||||
id="{if isset($fieldset['form']['reset']['id'])}{$fieldset['form']['reset']['id']}{else}{$table}_form_reset_btn{/if}"
|
||||
class="{if isset($fieldset['form']['reset']['class'])}{$fieldset['form']['reset']['class']}{else}btn btn-default{/if}"
|
||||
>
|
||||
{if isset($fieldset['form']['reset']['icon'])}<i class="{$fieldset['form']['reset']['icon']}"></i> {/if} {$fieldset['form']['reset']['title']}
|
||||
</button>
|
||||
{/if}
|
||||
{if isset($fieldset['form']['buttons'])}
|
||||
{foreach from=$fieldset['form']['buttons'] item=btn key=k}
|
||||
{if isset($btn.href) && trim($btn.href) != ''}
|
||||
<a href="{$btn.href}" {if isset($btn['id'])}id="{$btn['id']}"{/if} class="btn btn-default{if isset($btn['class'])} {$btn['class']}{/if}" {if isset($btn.js) && $btn.js} onclick="{$btn.js}"{/if}>{if isset($btn['icon'])}<i class="{$btn['icon']}" ></i> {/if}{$btn.title}</a>
|
||||
{else}
|
||||
<button type="{if isset($btn['type'])}{$btn['type']}{else}button{/if}" {if isset($btn['id'])}id="{$btn['id']}"{/if} class="btn btn-default{if isset($btn['class'])} {$btn['class']}{/if}" name="{if isset($btn['name'])}{$btn['name']}{else}submitOptions{$table}{/if}"{if isset($btn.js) && $btn.js} onclick="{$btn.js}"{/if}>{if isset($btn['icon'])}<i class="{$btn['icon']}" ></i> {/if}{$btn.title}</button>
|
||||
{/if}
|
||||
{/foreach}
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
{/block}
|
||||
</div>
|
||||
{/block}
|
||||
{block name="script"}
|
||||
var active_tab = '{$active_tab}';
|
||||
{literal}
|
||||
$(document).ready(function () {
|
||||
if($('#formAddPaymentPanel').length > 0){
|
||||
$(".pocztapolskaen_form").insertAfter('#formAddPaymentPanel');
|
||||
}
|
||||
});
|
||||
|
||||
{/literal}
|
||||
{/block}
|
||||
@@ -0,0 +1,15 @@
|
||||
<div class="panel">
|
||||
<div class="productTabs">
|
||||
<ul class="tab nav nav-tabs">
|
||||
<li class="tab-row {if $smarty.get.controller=='AdminPocztaPolskaOrders'} active{/if}">
|
||||
<a class="tab-page" id="pp_link_orders" href="{$link->getAdminLink('AdminPocztaPolskaOrders',true)|escape:'html'}"><i class="icon-info"></i> {l s='Zamówienia'}</a>
|
||||
</li>
|
||||
<li class="tab-row {if $smarty.get.controller=='AdminPocztaPolskaOrdersSets'} active{/if}">
|
||||
<a class="tab-page" id="pp_link_sets" href="{$link->getAdminLink('AdminPocztaPolskaOrdersSets',true)|escape:'html'}"><i class="icon-random"></i> {l s='Zbiory'}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
{$header}
|
||||
{$content}
|
||||
{$footer}
|
||||
</div>
|
||||
@@ -0,0 +1,209 @@
|
||||
{*
|
||||
* 2007-2017 PrestaShop
|
||||
*
|
||||
* 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.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* 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-2017 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
{capture name='tr_count'}{counter name='tr_count'}{/capture}
|
||||
<tbody>
|
||||
{if count($list)}
|
||||
{foreach $list AS $index => $tr}
|
||||
<tr{if $position_identifier} id="tr_{$position_group_identifier}_{$tr.$identifier}_{if isset($tr.position['position'])}{$tr.position['position']}{else}0{/if}"{/if} class="{if isset($tr.class)}{$tr.class}{/if} {if $tr@iteration is odd by 1}odd{/if}"{if isset($tr.color) && $color_on_bg} style="background-color: {$tr.color}"{/if}
|
||||
{foreach $fields_hidden[$index] AS $field => $value}
|
||||
data-{$field} = "{$value}"
|
||||
{/foreach}>
|
||||
{if $bulk_actions && $has_bulk_actions}
|
||||
<td class="row-selector text-center">
|
||||
{if isset($list_skip_actions.delete)}
|
||||
{if !in_array($tr.$identifier, $list_skip_actions.delete)}
|
||||
<input {if !empty($fields_hidden[$index]['id_envelope'])}disabled="disabled"{/if} type="checkbox" name="{$list_id}Box[]" value="{$tr.$identifier}"{if isset($checked_boxes) && is_array($checked_boxes) && in_array({$tr.$identifier}, $checked_boxes)} checked="checked"{/if} class="noborder" />
|
||||
{/if}
|
||||
{else}
|
||||
<input {if !empty($fields_hidden[$index]['id_envelope'])}disabled="disabled"{/if} type="checkbox" name="{$list_id}Box[]" value="{$tr.$identifier}"{if isset($checked_boxes) && is_array($checked_boxes) && in_array({$tr.$identifier}, $checked_boxes)} checked="checked"{/if} class="noborder" />
|
||||
{/if}
|
||||
</td>
|
||||
{/if}
|
||||
{foreach $fields_display AS $key => $params}
|
||||
{block name="open_td"}
|
||||
<td
|
||||
{if isset($params.position)}
|
||||
id="td_{if !empty($position_group_identifier)}{$position_group_identifier}{else}0{/if}_{$tr.$identifier}{if $smarty.capture.tr_count > 1}_{($smarty.capture.tr_count - 1)|intval}{/if}"
|
||||
{/if}
|
||||
class="{strip}{if !$no_link}pointer{/if}
|
||||
{if isset($params.position) && $order_by == 'position' && $order_way != 'DESC'} dragHandle{/if}
|
||||
{if isset($params.class)} {$params.class}{/if}
|
||||
{if isset($params.align)} {$params.align}{/if}{/strip}"
|
||||
{if (!isset($params.position) && !$no_link && !isset($params.remove_onclick))}
|
||||
onclick="document.location = '{$fields_hidden[$index]['url']}'">
|
||||
{else}
|
||||
>
|
||||
{/if}
|
||||
{/block}
|
||||
{block name="td_content"}
|
||||
{if isset($params.prefix)}{$params.prefix}{/if}
|
||||
{if isset($params.badge_success) && $params.badge_success && isset($tr.badge_success) && $tr.badge_success == $params.badge_success}<span class="badge badge-success">{/if}
|
||||
{if isset($params.badge_warning) && $params.badge_warning && isset($tr.badge_warning) && $tr.badge_warning == $params.badge_warning}<span class="badge badge-warning">{/if}
|
||||
{if isset($params.badge_danger) && $params.badge_danger && isset($tr.badge_danger) && $tr.badge_danger == $params.badge_danger}<span class="badge badge-danger">{/if}
|
||||
{if isset($params.color) && isset($tr[$params.color])}
|
||||
<span class="label color_field" style="display:block;width:100px;white-space: normal;background-color:{$tr[$params.color]};color:{if Tools::getBrightness($tr[$params.color]) < 128}white{else}#383838{/if}">
|
||||
{/if}
|
||||
{if isset($tr.$key)}
|
||||
{if isset($params.active)}
|
||||
{$tr.$key}
|
||||
{elseif isset($params.callback)}
|
||||
{if isset($params.maxlength) && Tools::strlen($tr.$key) > $params.maxlength}
|
||||
<span title="{$tr.$key}">{$tr.$key|truncate:$params.maxlength:'...'}</span>
|
||||
{else}
|
||||
{$tr.$key}
|
||||
{/if}
|
||||
{elseif isset($params.activeVisu)}
|
||||
{if $tr.$key}
|
||||
<i class="icon-check-ok"></i> {l s='Enabled'}
|
||||
{else}
|
||||
<i class="icon-remove"></i> {l s='Disabled'}
|
||||
{/if}
|
||||
{elseif isset($params.position)}
|
||||
{if !$filters_has_value && $order_by == 'position' && $order_way != 'DESC'}
|
||||
<div class="dragGroup">
|
||||
<div class="positions">
|
||||
{$tr.$key.position + 1}
|
||||
</div>
|
||||
</div>
|
||||
{else}
|
||||
{$tr.$key.position + 1}
|
||||
{/if}
|
||||
{elseif isset($params.image)}
|
||||
{$tr.$key}
|
||||
{elseif isset($params.icon)}
|
||||
{if is_array($tr[$key])}
|
||||
{if isset($tr[$key]['class'])}
|
||||
<i class="{$tr[$key]['class']}"></i>
|
||||
{else}
|
||||
<img src="../img/admin/{$tr[$key]['src']}" alt="{$tr[$key]['alt']}" title="{$tr[$key]['alt']}" />
|
||||
{/if}
|
||||
{/if}
|
||||
{elseif isset($params.type) && $params.type == 'price'}
|
||||
{if isset($tr.id_currency)}
|
||||
{displayPrice price=$tr.$key currency=$tr.id_currency}
|
||||
{else}
|
||||
{displayPrice price=$tr.$key}
|
||||
{/if}
|
||||
{elseif isset($params.float)}
|
||||
{$tr.$key}
|
||||
{elseif isset($params.type) && $params.type == 'date'}
|
||||
{dateFormat date=$tr.$key full=0}
|
||||
{elseif isset($params.type) && $params.type == 'datetime'}
|
||||
{dateFormat date=$tr.$key full=1}
|
||||
{elseif isset($params.type) && $params.type == 'decimal'}
|
||||
{$tr.$key|string_format:"%.2f"}
|
||||
{elseif isset($params.type) && $params.type == 'percent'}
|
||||
{$tr.$key} {l s='%'}
|
||||
{elseif isset($params.type) && $params.type == 'html'}
|
||||
{$tr.$key}
|
||||
{* If type is 'editable', an input is created *}
|
||||
{elseif isset($params.type) && $params.type == 'editable' && isset($tr.id)}
|
||||
<input type="text" name="{$key}_{$tr.id}" value="{$tr.$key|escape:'html':'UTF-8'}" class="{$key}" />
|
||||
{elseif $key == 'color'}
|
||||
{if !is_array($tr.$key)}
|
||||
<div style="background-color: {$tr.$key};" class="attributes-color-container"></div>
|
||||
{else} {*TEXTURE*}
|
||||
<img src="{$tr.$key.texture}" alt="{$tr.name}" class="attributes-color-container" />
|
||||
{/if}
|
||||
{elseif isset($params.maxlength) && Tools::strlen($tr.$key) > $params.maxlength}
|
||||
<span title="{$tr.$key|escape:'html':'UTF-8'}">{$tr.$key|truncate:$params.maxlength:'...'|escape:'html':'UTF-8'}</span>
|
||||
{else}
|
||||
{$tr.$key|escape:'html':'UTF-8'}
|
||||
{/if}
|
||||
{else}
|
||||
{block name="default_field"}--{/block}
|
||||
{/if}
|
||||
{if isset($params.suffix)}{$params.suffix}{/if}
|
||||
{if isset($params.color) && isset($tr.color)}
|
||||
</span>
|
||||
{/if}
|
||||
{if isset($params.badge_danger) && $params.badge_danger && isset($tr.badge_danger) && $tr.badge_danger == $params.badge_danger}</span>{/if}
|
||||
{if isset($params.badge_warning) && $params.badge_warning && isset($tr.badge_warning) && $tr.badge_warning == $params.badge_warning}</span>{/if}
|
||||
{if isset($params.badge_success) && $params.badge_success && isset($tr.badge_success) && $tr.badge_success == $params.badge_success}</span>{/if}
|
||||
{/block}
|
||||
{block name="close_td"}
|
||||
</td>
|
||||
{/block}
|
||||
{/foreach}
|
||||
|
||||
{if $shop_link_type}
|
||||
<td title="{$tr.shop_name}">
|
||||
{if isset($tr.shop_short_name)}
|
||||
{$tr.shop_short_name}
|
||||
{else}
|
||||
{$tr.shop_name}
|
||||
{/if}
|
||||
</td>
|
||||
{/if}
|
||||
{if $has_actions}
|
||||
<td class="text-right">
|
||||
{assign var='compiled_actions' value=array()}
|
||||
{foreach $actions AS $key => $action}
|
||||
{if isset($tr.$action)}
|
||||
{if $key == 0}
|
||||
{assign var='action' value=$action}
|
||||
{/if}
|
||||
{if $action == 'delete' && $actions|@count > 2}
|
||||
{$compiled_actions[] = 'divider'}
|
||||
{/if}
|
||||
{$compiled_actions[] = $tr.$action}
|
||||
{/if}
|
||||
{/foreach}
|
||||
{if $compiled_actions|count > 0}
|
||||
{if $compiled_actions|count > 1}<div class="btn-group-action">{/if}
|
||||
<div class="btn-group pull-right">
|
||||
{$compiled_actions[0]}
|
||||
{if $compiled_actions|count > 1}
|
||||
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||
<i class="icon-caret-down"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
{foreach $compiled_actions AS $key => $action}
|
||||
{if $key != 0}
|
||||
<li{if $action == 'divider' && $compiled_actions|count > 3} class="divider"{/if}>
|
||||
{if $action != 'divider'}{$action}{/if}
|
||||
</li>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</ul>
|
||||
{/if}
|
||||
</div>
|
||||
{if $compiled_actions|count > 1}</div>{/if}
|
||||
{/if}
|
||||
</td>
|
||||
{/if}
|
||||
</tr>
|
||||
{/foreach}
|
||||
{else}
|
||||
<tr>
|
||||
<td class="list-empty" colspan="{count($fields_display)+1}">
|
||||
<div class="list-empty-msg">
|
||||
<i class="icon-warning-sign list-empty-icon"></i>
|
||||
{l s='No records found'}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
</tbody>
|
||||
@@ -0,0 +1,176 @@
|
||||
{*
|
||||
* 2007-2017 PrestaShop
|
||||
*
|
||||
* 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.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* 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-2017 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
</table>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
{if $bulk_actions && $has_bulk_actions}
|
||||
<div class="btn-group bulk-actions dropup">
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||
{l s='Bulk actions' d='Admin.Global'} <span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#" onclick="javascript:checkDelBoxes($(this).closest('form').get(0), '{$list_id}Box[]', true);return false;">
|
||||
<i class="icon-check-sign"></i> {l s='Select all'}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" onclick="javascript:checkDelBoxes($(this).closest('form').get(0), '{$list_id}Box[]', false);return false;">
|
||||
<i class="icon-check-empty"></i> {l s='Unselect all'}
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
{foreach $bulk_actions as $key => $params}
|
||||
<li{if $params.text == 'divider'} class="divider"{/if}>
|
||||
|
||||
{if $params.text != 'divider'}
|
||||
{if isset($params.html)}
|
||||
{$params.html}
|
||||
{else}
|
||||
<a href="#" onclick="{if isset($params.onclick)}{$params.onclick};return false;{/if}{if isset($params.confirm)}if (confirm('{$params.confirm}')){/if}sendBulkAction($(this).closest('form').get(0), 'submitBulk{$key}{$table}');">
|
||||
{if isset($params.icon)}<i class="{$params.icon}"></i>{/if} {$params.text}
|
||||
</a>
|
||||
{/if}
|
||||
{/if}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
<span class="loader btn" style="display:none;"><i class="icon-refresh icon-spin"></i></span>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{if !$simple_header && $list_total > $pagination[0]}
|
||||
<div class="col-lg-6">
|
||||
{* Choose number of results per page *}
|
||||
<div class="pagination">
|
||||
{l s='Display'}
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||
{$selected_pagination}
|
||||
<i class="icon-caret-down"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
{foreach $pagination AS $value}
|
||||
<li>
|
||||
<a href="javascript:void(0);" class="pagination-items-page" data-items="{$value|intval}" data-list-id="{$list_id}">{$value}</a>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
/ {$list_total} {l s='result(s)'}
|
||||
<input type="hidden" id="{$list_id}-pagination-items-page" name="{$list_id}_pagination" value="{$selected_pagination|intval}" />
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$('.pagination-items-page').on('click',function(e){
|
||||
e.preventDefault();
|
||||
$('#'+$(this).data("list-id")+'-pagination-items-page').val($(this).data("items")).closest("form").submit();
|
||||
});
|
||||
</script>
|
||||
<ul class="pagination pull-right">
|
||||
<li {if $page <= 1}class="disabled"{/if}>
|
||||
<a href="javascript:void(0);" class="pagination-link" data-page="1" data-list-id="{$list_id}">
|
||||
<i class="icon-double-angle-left"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li {if $page <= 1}class="disabled"{/if}>
|
||||
<a href="javascript:void(0);" class="pagination-link" data-page="{$page - 1}" data-list-id="{$list_id}">
|
||||
<i class="icon-angle-left"></i>
|
||||
</a>
|
||||
</li>
|
||||
{assign p 0}
|
||||
{while $p++ < $total_pages}
|
||||
{if $p < $page-2}
|
||||
<li class="disabled">
|
||||
<a href="javascript:void(0);">…</a>
|
||||
</li>
|
||||
{assign p $page-3}
|
||||
{elseif $p > $page+2}
|
||||
<li class="disabled">
|
||||
<a href="javascript:void(0);">…</a>
|
||||
</li>
|
||||
{assign p $total_pages}
|
||||
{else}
|
||||
<li {if $p == $page}class="active"{/if}>
|
||||
<a href="javascript:void(0);" class="pagination-link" data-page="{$p}" data-list-id="{$list_id}">{$p}</a>
|
||||
</li>
|
||||
{/if}
|
||||
{/while}
|
||||
<li {if $page >= $total_pages}class="disabled"{/if}>
|
||||
<a href="javascript:void(0);" class="pagination-link" data-page="{$page + 1}" data-list-id="{$list_id}">
|
||||
<i class="icon-angle-right"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li {if $page >= $total_pages}class="disabled"{/if}>
|
||||
<a href="javascript:void(0);" class="pagination-link" data-page="{$total_pages}" data-list-id="{$list_id}">
|
||||
<i class="icon-double-angle-right"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<script type="text/javascript">
|
||||
$('.pagination-link').on('click',function(e){
|
||||
e.preventDefault();
|
||||
|
||||
if (!$(this).parent().hasClass('disabled'))
|
||||
$('#submitFilter'+$(this).data("list-id")).val($(this).data("page")).closest("form").submit();
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{block name="footer"}
|
||||
{foreach from=$toolbar_btn item=btn key=k}
|
||||
{if $k == 'back'}
|
||||
{assign 'back_button' $btn}
|
||||
{break}
|
||||
{/if}
|
||||
{/foreach}
|
||||
{if isset($back_button)}
|
||||
<div class="panel-footer">
|
||||
<a id="desc-{$table}-{if isset($back_button.imgclass)}{$back_button.imgclass}{else}{$k}{/if}" class="btn btn-default{if isset($back_button.target) && $back_button.target} _blank{/if}"{if isset($back_button.href)} href="{$back_button.href|escape:'html':'UTF-8'}"{/if}{if isset($back_button.js) && $back_button.js} onclick="{$back_button.js}"{/if}>
|
||||
<i class="process-icon-back {if isset($back_button.class)}{$back_button.class}{/if}" ></i> <span {if isset($back_button.force_desc) && $back_button.force_desc == true } class="locked" {/if}>{$back_button.desc}</span>
|
||||
</a>
|
||||
</div>
|
||||
{/if}
|
||||
{/block}
|
||||
{if !$simple_header}
|
||||
<input type="hidden" name="token" value="{$token|escape:'html':'UTF-8'}" />
|
||||
</div>
|
||||
{else}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{hook h='displayAdminListAfter'}
|
||||
{if isset($name_controller)}
|
||||
{capture name=hookName assign=hookName}display{$name_controller|ucfirst}ListAfter{/capture}
|
||||
{hook h=$hookName}
|
||||
{elseif isset($smarty.get.controller)}
|
||||
{capture name=hookName assign=hookName}display{$smarty.get.controller|ucfirst|htmlentities}ListAfter{/capture}
|
||||
{hook h=$hookName}
|
||||
{/if}
|
||||
|
||||
{block name="endForm"}
|
||||
</form>
|
||||
{/block}
|
||||
|
||||
{block name="after"}{/block}
|
||||
@@ -0,0 +1,15 @@
|
||||
<div class="panel">
|
||||
<div class="productTabs">
|
||||
<ul class="tab nav nav-tabs">
|
||||
<li class="tab-row {if $smarty.get.controller=='AdminPocztaPolskaOrders'} active{/if}">
|
||||
<a class="tab-page" id="pp_link_orders" href="{$link->getAdminLink('AdminPocztaPolskaOrders',true)|escape:'html'}"><i class="icon-info"></i> {l s='Zamówienia'}</a>
|
||||
</li>
|
||||
<li class="tab-row {if $smarty.get.controller=='AdminPocztaPolskaOrdersSets'} active{/if}">
|
||||
<a class="tab-page" id="pp_link_sets" href="{$link->getAdminLink('AdminPocztaPolskaOrdersSets',true)|escape:'html'}"><i class="icon-random"></i> {l s='Zbiory'}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
{$header}
|
||||
{$content}
|
||||
{$footer}
|
||||
</div>
|
||||
@@ -0,0 +1,387 @@
|
||||
{*
|
||||
* 2007-2017 PrestaShop
|
||||
*
|
||||
* 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.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* 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-2017 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
{if $ajax}
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
$(".ajax_table_link").click(function () {
|
||||
var link = $(this);
|
||||
$.post($(this).attr('href'), function (data) {
|
||||
if (data.success == 1) {
|
||||
showSuccessMessage(data.text);
|
||||
if (link.hasClass('action-disabled')){
|
||||
link.removeClass('action-disabled').addClass('action-enabled');
|
||||
} else {
|
||||
link.removeClass('action-enabled').addClass('action-disabled');
|
||||
}
|
||||
link.children().each(function () {
|
||||
if ($(this).hasClass('hidden')) {
|
||||
$(this).removeClass('hidden');
|
||||
} else {
|
||||
$(this).addClass('hidden');
|
||||
}
|
||||
});
|
||||
} else {
|
||||
showErrorMessage(data.text);
|
||||
}
|
||||
}, 'json');
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{/if}
|
||||
{* Display column names and arrows for ordering (ASC, DESC) *}
|
||||
{if $is_order_position}
|
||||
<script type="text/javascript" src="../js/jquery/plugins/jquery.tablednd.js"></script>
|
||||
<script type="text/javascript">
|
||||
var come_from = '{$list_id|addslashes}';
|
||||
var alternate = {if $order_way == 'DESC'}'1'{else}'0'{/if};
|
||||
</script>
|
||||
<script type="text/javascript" src="../js/admin/dnd.js"></script>
|
||||
{/if}
|
||||
{if !$simple_header}
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$('table.{$list_id} .filter').keypress(function(e){
|
||||
var key = (e.keyCode ? e.keyCode : e.which);
|
||||
if (key == 13)
|
||||
{
|
||||
e.preventDefault();
|
||||
formSubmit(e, 'submitFilterButton{$list_id}');
|
||||
}
|
||||
})
|
||||
$('#submitFilterButton{$list_id}').click(function() {
|
||||
$('#submitFilter{$list_id}').val(1);
|
||||
});
|
||||
|
||||
if ($("table .datepicker").length > 0) {
|
||||
$("table .datepicker").datepicker({
|
||||
prevText: '',
|
||||
nextText: '',
|
||||
altFormat: 'yy-mm-dd'
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
{/if}
|
||||
|
||||
{if !$simple_header}
|
||||
<div class="leadin">
|
||||
{block name="leadin"}{/block}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{block name="override_header"}{/block}
|
||||
|
||||
{hook h='displayAdminListBefore'}
|
||||
|
||||
{if isset($name_controller)}
|
||||
{capture name=hookName assign=hookName}display{$name_controller|ucfirst}ListBefore{/capture}
|
||||
{hook h=$hookName}
|
||||
{elseif isset($smarty.get.controller)}
|
||||
{capture name=hookName assign=hookName}display{$smarty.get.controller|ucfirst|htmlentities}ListBefore{/capture}
|
||||
{hook h=$hookName}
|
||||
{/if}
|
||||
|
||||
<div class="alert alert-warning" id="{$list_id}-empty-filters-alert" style="display:none;">{l s='Please fill at least one field to perform a search in this list.'}</div>
|
||||
{if isset($sql) && $sql}
|
||||
<form id="sql_form_{$list_id|escape:'html':'UTF-8'}" action="{$link->getAdminLink('AdminRequestSql')|escape}&addrequest_sql" method="post" class="hide">
|
||||
<input type="hidden" id="sql_query_{$list_id|escape:'html':'UTF-8'}" name="sql" value="{$sql|escape}"/>
|
||||
<input type="hidden" id="sql_name_{$list_id|escape:'html':'UTF-8'}" name="name" value=""/>
|
||||
</form>
|
||||
{/if}
|
||||
|
||||
{block name="startForm"}
|
||||
<form method="post" action="{$action|escape:'html':'UTF-8'}" class="form-horizontal clearfix" id="form-{$list_id}">
|
||||
{/block}
|
||||
|
||||
{if !$simple_header}
|
||||
<input type="hidden" id="submitFilter{$list_id}" name="submitFilter{$list_id}" value="0"/>
|
||||
<input type="hidden" name="page" value="{$page|intval}"/>
|
||||
<input type="hidden" name="selected_pagination" value="{$selected_pagination|intval}"/>
|
||||
{block name="override_form_extra"}{/block}
|
||||
<div class="panel col-lg-12">
|
||||
<div class="panel-heading">
|
||||
{if isset($icon)}<i class="{$icon}"></i> {/if}{if is_array($title)}{$title|end}{else}{$title}{/if}
|
||||
{if isset($toolbar_btn) && count($toolbar_btn) >0}
|
||||
<span class="badge">{$list_total}</span>
|
||||
<span class="panel-heading-action">
|
||||
{foreach from=$toolbar_btn item=btn key=k}
|
||||
{if $k != 'modules-list' && $k != 'back'}
|
||||
<a id="desc-{$table}-{if isset($btn.imgclass)}{$btn.imgclass}{else}{$k}{/if}" class="list-toolbar-btn{if isset($btn.target) && $btn.target} _blank{/if}"{if isset($btn.href)} href="{$btn.href|escape:'html':'UTF-8'}"{/if}{if isset($btn.js) && $btn.js} onclick="{$btn.js}"{/if}>
|
||||
<span title="" data-toggle="tooltip" class="label-tooltip" data-original-title="{l s=$btn.desc}" data-html="true" data-placement="top">
|
||||
<i class="process-icon-{if isset($btn.imgclass)}{$btn.imgclass}{else}{$k}{/if}{if isset($btn.class)} {$btn.class}{/if}"></i>
|
||||
</span>
|
||||
</a>
|
||||
{/if}
|
||||
{/foreach}
|
||||
{if isset($sql) && $sql}
|
||||
{assign var=sql_manager value=Profile::getProfileAccess(Context::getContext()->employee->id_profile, Tab::getIdFromClassName('AdminRequestSql'))}
|
||||
|
||||
{if $sql_manager.view == 1}
|
||||
<a class="list-toolbar-btn" href="javascript:void(0);" onclick="$('.leadin').first().append('<div class=\'alert alert-info\'>' + $('#sql_query_{$list_id|escape:'html':'UTF-8'}').val() + '</div>'); $(this).attr('onclick', '');">
|
||||
<span class="label-tooltip" data-toggle="tooltip" data-original-title="{l s='Show SQL query'}" data-html="true" data-placement="top" >
|
||||
<i class="process-icon-terminal"></i>
|
||||
</span>
|
||||
</a>
|
||||
<a class="list-toolbar-btn" href="javascript:void(0);" onclick="$('#sql_name_{$list_id|escape:'html':'UTF-8'}').val(createSqlQueryName()); $('#sql_query_{$list_id|escape:'html':'UTF-8'}').val($('#sql_query_{$list_id|escape:'html':'UTF-8'}').val().replace(/\s+limit\s+[0-9,\s]+$/ig, '').trim()); $('#sql_form_{$list_id|escape:'html':'UTF-8'}').submit();">
|
||||
<span class="label-tooltip" data-toggle="tooltip" data-original-title="{l s='Export to SQL Manager'}" data-html="true" data-placement="top" >
|
||||
<i class="process-icon-database"></i>
|
||||
</span>
|
||||
</a>
|
||||
{/if}
|
||||
{/if}
|
||||
</span>
|
||||
{/if}
|
||||
</div>
|
||||
{if $show_toolbar}
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
var submited = false;
|
||||
$(function() {
|
||||
//get reference on save link
|
||||
btn_save = $('i[class~="process-icon-save"]').parent();
|
||||
//get reference on form submit button
|
||||
btn_submit = $('#{$table}_form_submit_btn');
|
||||
if (btn_save.length > 0 && btn_submit.length > 0) {
|
||||
//get reference on save and stay link
|
||||
btn_save_and_stay = $('i[class~="process-icon-save-and-stay"]').parent();
|
||||
//get reference on current save link label
|
||||
lbl_save = $('#desc-{$table}-save div');
|
||||
//override save link label with submit button value
|
||||
if (btn_submit.val().length > 0) {
|
||||
lbl_save.html(btn_submit.attr("value"));
|
||||
}
|
||||
if (btn_save_and_stay.length > 0) {
|
||||
//get reference on current save link label
|
||||
lbl_save_and_stay = $('#desc-{$table}-save-and-stay div');
|
||||
//override save and stay link label with submit button value
|
||||
if (btn_submit.val().length > 0 && lbl_save_and_stay && !lbl_save_and_stay.hasClass('locked')) {
|
||||
lbl_save_and_stay.html(btn_submit.val() + " {l s='and stay'} ");
|
||||
}
|
||||
}
|
||||
//hide standard submit button
|
||||
btn_submit.hide();
|
||||
//bind enter key press to validate form
|
||||
$('#{$table}_form').keypress(function (e) {
|
||||
if (e.which == 13 && e.target.localName != 'textarea') {
|
||||
$('#desc-{$table}-save').click();
|
||||
}
|
||||
});
|
||||
//submit the form
|
||||
{block name=formSubmit}
|
||||
btn_save.click(function() {
|
||||
// Avoid double click
|
||||
if (submited) {
|
||||
return false;
|
||||
}
|
||||
submited = true;
|
||||
//add hidden input to emulate submit button click when posting the form -> field name posted
|
||||
btn_submit.before('<input type="hidden" name="'+btn_submit.attr("name")+'" value="1" />');
|
||||
$('#{$table}_form').submit();
|
||||
return false;
|
||||
});
|
||||
if (btn_save_and_stay) {
|
||||
btn_save_and_stay.click(function() {
|
||||
//add hidden input to emulate submit button click when posting the form -> field name posted
|
||||
btn_submit.before('<input type="hidden" name="'+btn_submit.attr("name")+'AndStay" value="1" />');
|
||||
$('#{$table}_form').submit();
|
||||
return false;
|
||||
});
|
||||
}
|
||||
{/block}
|
||||
}
|
||||
});
|
||||
//]]>
|
||||
</script>
|
||||
{/if}
|
||||
{elseif $simple_header}
|
||||
<div class="panel col-lg-12">
|
||||
{if isset($title)}<h3>{if isset($icon)}<i class="{$icon}"></i> {/if}{if is_array($title)}{$title|end}{else}{$title}{/if}</h3>{/if}
|
||||
{/if}
|
||||
|
||||
|
||||
{if $bulk_actions && $has_bulk_actions}
|
||||
{assign var=y value=2}
|
||||
{else}
|
||||
{assign var=y value=1}
|
||||
{/if}
|
||||
<style>
|
||||
@media (max-width: 992px) {
|
||||
{foreach from=$fields_display item=param name=params}
|
||||
.table-responsive-row td:nth-of-type({math equation="x+y" x=$smarty.foreach.params.index y=$y}):before {
|
||||
content: "{$param.title}";
|
||||
}
|
||||
{/foreach}
|
||||
}
|
||||
</style>
|
||||
|
||||
{block name="preTable"}{/block}
|
||||
<div class="table-responsive-row clearfix{if isset($use_overflow) && $use_overflow} overflow-y{/if}">
|
||||
<table{if $table_id} id="table-{$table_id}"{/if} class="table{if $table_dnd} tableDnD{/if} {$table}" >
|
||||
<thead>
|
||||
<tr class="nodrag nodrop">
|
||||
{if $bulk_actions && $has_bulk_actions}
|
||||
<th class="center fixed-width-xs"></th>
|
||||
{/if}
|
||||
{foreach $fields_display AS $key => $params}
|
||||
<th class="{if isset($params.class)}{$params.class}{/if}{if isset($params.align)} {$params.align}{/if}">
|
||||
<span class="title_box{if isset($order_by) && ($key == $order_by)} active{/if}">
|
||||
{if isset($params.hint)}
|
||||
<span class="label-tooltip" data-toggle="tooltip"
|
||||
title="
|
||||
{if is_array($params.hint)}
|
||||
{foreach $params.hint as $hint}
|
||||
{if is_array($hint)}
|
||||
{$hint.text}
|
||||
{else}
|
||||
{$hint}
|
||||
{/if}
|
||||
{/foreach}
|
||||
{else}
|
||||
{$params.hint}
|
||||
{/if}
|
||||
">
|
||||
{$params.title}
|
||||
</span>
|
||||
{else}
|
||||
{$params.title}
|
||||
{/if}
|
||||
{if (!isset($params.orderby) || $params.orderby) && !$simple_header && $show_filters}
|
||||
<a {if isset($order_by) && ($key == $order_by) && ($order_way == 'DESC')}class="active"{/if} href="{$currentIndex|escape:'html':'UTF-8'}&{$list_id}Orderby={$key|urlencode}&{$list_id}Orderway=desc&token={$token|escape:'html':'UTF-8'}{if isset($smarty.get.$identifier)}&{$identifier}={$smarty.get.$identifier|intval}{/if}">
|
||||
<i class="icon-caret-down"></i>
|
||||
</a>
|
||||
<a {if isset($order_by) && ($key == $order_by) && ($order_way == 'ASC')}class="active"{/if} href="{$currentIndex|escape:'html':'UTF-8'}&{$list_id}Orderby={$key|urlencode}&{$list_id}Orderway=asc&token={$token|escape:'html':'UTF-8'}{if isset($smarty.get.$identifier)}&{$identifier}={$smarty.get.$identifier|intval}{/if}">
|
||||
<i class="icon-caret-up"></i>
|
||||
</a>
|
||||
{/if}
|
||||
</span>
|
||||
</th>
|
||||
{/foreach}
|
||||
{if $shop_link_type}
|
||||
<th>
|
||||
<span class="title_box">
|
||||
{if $shop_link_type == 'shop'}
|
||||
{l s='Shop'}
|
||||
{else}
|
||||
{l s='Shop group'}
|
||||
{/if}
|
||||
</span>
|
||||
</th>
|
||||
{/if}
|
||||
{if $has_actions || $show_filters}
|
||||
<th>{if !$simple_header}{/if}</th>
|
||||
{/if}
|
||||
</tr>
|
||||
{if !$simple_header && $show_filters}
|
||||
<tr class="nodrag nodrop filter {if $row_hover}row_hover{/if}">
|
||||
{if $has_bulk_actions}
|
||||
<th class="text-center">
|
||||
--
|
||||
</th>
|
||||
{/if}
|
||||
{* Filters (input, select, date or bool) *}
|
||||
{foreach $fields_display AS $key => $params}
|
||||
<th {if isset($params.align)} class="{$params.align}" {/if}>
|
||||
{if isset($params.search) && !$params.search}
|
||||
--
|
||||
{else}
|
||||
{if $params.type == 'bool'}
|
||||
<select class="filter fixed-width-sm center" name="{$list_id}Filter_{if isset($params.filter_key)}{$params.filter_key}{else}{$key}{/if}">
|
||||
<option value="">-</option>
|
||||
<option value="1" {if $params.value == 1} selected="selected" {/if}>{l s='Yes'}</option>
|
||||
<option value="0" {if $params.value == 0 && $params.value != ''} selected="selected" {/if}>{l s='No'}</option>
|
||||
</select>
|
||||
{elseif $params.type == 'date' || $params.type == 'datetime'}
|
||||
<div class="date_range row">
|
||||
<div class="input-group fixed-width-md center">
|
||||
<input type="text" class="filter datepicker date-input form-control" id="local_{$params.id_date}_0" name="local_{$params.name_date}[0]" placeholder="{l s='From'}" />
|
||||
<input type="hidden" id="{$params.id_date}_0" name="{$params.name_date}[0]" value="{if isset($params.value.0)}{$params.value.0}{/if}">
|
||||
<span class="input-group-addon">
|
||||
<i class="icon-calendar"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="input-group fixed-width-md center">
|
||||
<input type="text" class="filter datepicker date-input form-control" id="local_{$params.id_date}_1" name="local_{$params.name_date}[1]" placeholder="{l s='To'}" />
|
||||
<input type="hidden" id="{$params.id_date}_1" name="{$params.name_date}[1]" value="{if isset($params.value.1)}{$params.value.1}{/if}">
|
||||
<span class="input-group-addon">
|
||||
<i class="icon-calendar"></i>
|
||||
</span>
|
||||
</div>
|
||||
<script>
|
||||
$(function() {
|
||||
var dateStart = parseDate($("#{$params.id_date}_0").val());
|
||||
var dateEnd = parseDate($("#{$params.id_date}_1").val());
|
||||
$("#local_{$params.id_date}_0").datepicker("option", "altField", "#{$params.id_date}_0");
|
||||
$("#local_{$params.id_date}_1").datepicker("option", "altField", "#{$params.id_date}_1");
|
||||
if (dateStart !== null){
|
||||
$("#local_{$params.id_date}_0").datepicker("setDate", dateStart);
|
||||
}
|
||||
if (dateEnd !== null){
|
||||
$("#local_{$params.id_date}_1").datepicker("setDate", dateEnd);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
{elseif $params.type == 'select'}
|
||||
{if isset($params.filter_key)}
|
||||
<select class="filter{if isset($params.align) && $params.align == 'center'}center{/if}" onchange="$('#submitFilterButton{$list_id}').focus();$('#submitFilterButton{$list_id}').click();" name="{$list_id}Filter_{$params.filter_key}" {if isset($params.width)} style="width:{$params.width}px"{/if}>
|
||||
<option value="" {if $params.value == ''} selected="selected" {/if}>-</option>
|
||||
{if isset($params.list) && is_array($params.list)}
|
||||
{foreach $params.list AS $option_value => $option_display}
|
||||
<option value="{$option_value}" {if (string)$option_display === (string)$params.value || (string)$option_value === (string)$params.value} selected="selected"{/if}>{$option_display}</option>
|
||||
{/foreach}
|
||||
{/if}
|
||||
</select>
|
||||
{/if}
|
||||
{else}
|
||||
<input type="text" class="filter" name="{$list_id}Filter_{if isset($params.filter_key)}{$params.filter_key}{else}{$key}{/if}" value="{$params.value|escape:'html':'UTF-8'}" {if isset($params.width) && $params.width != 'auto'} style="width:{$params.width}px"{/if} />
|
||||
{/if}
|
||||
{/if}
|
||||
</th>
|
||||
{/foreach}
|
||||
|
||||
{if $shop_link_type}
|
||||
<th>--</th>
|
||||
{/if}
|
||||
{if $has_actions || $show_filters}
|
||||
<th class="actions">
|
||||
{if $show_filters}
|
||||
<span class="pull-right">
|
||||
{*Search must be before reset for default form submit*}
|
||||
<button type="submit" id="submitFilterButton{$list_id}" name="submitFilter" class="btn btn-default" data-list-id="{$list_id}">
|
||||
<i class="icon-search"></i> {l s='Search' d="Admin.Actions"}
|
||||
</button>
|
||||
{if $filters_has_value}
|
||||
<button type="submit" name="submitReset{$list_id}" class="btn btn-warning">
|
||||
<i class="icon-eraser"></i> {l s='Reset'}
|
||||
</button>
|
||||
{/if}
|
||||
</span>
|
||||
{/if}
|
||||
</th>
|
||||
{/if}
|
||||
</tr>
|
||||
{/if}
|
||||
</thead>
|
||||
@@ -0,0 +1,191 @@
|
||||
{*
|
||||
* 2007-2017 PrestaShop
|
||||
*
|
||||
* 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.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* 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-2017 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
</table>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
{if $bulk_actions && $has_bulk_actions}
|
||||
<div class="btn-group bulk-actions dropup">
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||
{l s='Bulk actions' d='Admin.Global'} <span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#" onclick="javascript:checkDelBoxes($(this).closest('form').get(0), '{$list_id}Box[]', true);return false;">
|
||||
<i class="icon-check-sign"></i> {l s='Select all'}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" onclick="javascript:checkDelBoxes($(this).closest('form').get(0), '{$list_id}Box[]', false);return false;">
|
||||
<i class="icon-check-empty"></i> {l s='Unselect all'}
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
{foreach $bulk_actions as $key => $params}
|
||||
<li{if $params.text == 'divider'} class="divider"{/if}>
|
||||
{if $params.text != 'divider'}
|
||||
<a href="#" onclick="{if isset($params.onclick)}{$params.onclick};return false;{/if}{if isset($params.confirm)}if (confirm('{$params.confirm}')){/if}sendBulkAction($(this).closest('form').get(0), 'submitBulk{$key}{$table}');">
|
||||
{if isset($params.icon)}<i class="{$params.icon}"></i>{/if} {$params.text}
|
||||
</a>
|
||||
{/if}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{if !$simple_header && $list_total > $pagination[0]}
|
||||
<div class="col-lg-6">
|
||||
{* Choose number of results per page *}
|
||||
<div class="pagination">
|
||||
{l s='Display'}
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||
{$selected_pagination}
|
||||
<i class="icon-caret-down"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
{foreach $pagination AS $value}
|
||||
<li>
|
||||
<a href="javascript:void(0);" class="pagination-items-page" data-items="{$value|intval}" data-list-id="{$list_id}">{$value}</a>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
/ {$list_total} {l s='result(s)'}
|
||||
<input type="hidden" id="{$list_id}-pagination-items-page" name="{$list_id}_pagination" value="{$selected_pagination|intval}" />
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$('.pagination-items-page').on('click',function(e){
|
||||
e.preventDefault();
|
||||
$('#'+$(this).data("list-id")+'-pagination-items-page').val($(this).data("items")).closest("form").submit();
|
||||
});
|
||||
</script>
|
||||
<ul class="pagination pull-right">
|
||||
<li {if $page <= 1}class="disabled"{/if}>
|
||||
<a href="javascript:void(0);" class="pagination-link" data-page="1" data-list-id="{$list_id}">
|
||||
<i class="icon-double-angle-left"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li {if $page <= 1}class="disabled"{/if}>
|
||||
<a href="javascript:void(0);" class="pagination-link" data-page="{$page - 1}" data-list-id="{$list_id}">
|
||||
<i class="icon-angle-left"></i>
|
||||
</a>
|
||||
</li>
|
||||
{assign p 0}
|
||||
{while $p++ < $total_pages}
|
||||
{if $p < $page-2}
|
||||
<li class="disabled">
|
||||
<a href="javascript:void(0);">…</a>
|
||||
</li>
|
||||
{assign p $page-3}
|
||||
{elseif $p > $page+2}
|
||||
<li class="disabled">
|
||||
<a href="javascript:void(0);">…</a>
|
||||
</li>
|
||||
{assign p $total_pages}
|
||||
{else}
|
||||
<li {if $p == $page}class="active"{/if}>
|
||||
<a href="javascript:void(0);" class="pagination-link" data-page="{$p}" data-list-id="{$list_id}">{$p}</a>
|
||||
</li>
|
||||
{/if}
|
||||
{/while}
|
||||
<li {if $page >= $total_pages}class="disabled"{/if}>
|
||||
<a href="javascript:void(0);" class="pagination-link" data-page="{$page + 1}" data-list-id="{$list_id}">
|
||||
<i class="icon-angle-right"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li {if $page >= $total_pages}class="disabled"{/if}>
|
||||
<a href="javascript:void(0);" class="pagination-link" data-page="{$total_pages}" data-list-id="{$list_id}">
|
||||
<i class="icon-double-angle-right"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<script type="text/javascript">
|
||||
$('.pagination-link').on('click',function(e){
|
||||
e.preventDefault();
|
||||
|
||||
if (!$(this).parent().hasClass('disabled'))
|
||||
$('#submitFilter'+$(this).data("list-id")).val($(this).data("page")).closest("form").submit();
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
<div class="row" id="transfer_sets_action" style="display:none;">
|
||||
<hr/>
|
||||
<div class="col-lg-12">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-lg-1">
|
||||
{l s='Przenieś do'}
|
||||
</label>
|
||||
<div class="col-lg-1">
|
||||
<select id="id_buffor" name="id_buffor">
|
||||
{foreach from=$id_buffors key=k item=label}
|
||||
<option value="{$k}">{$label}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-lg-10">
|
||||
<input type="hidden" name="id_order_set" value="{$id_order_set}" />
|
||||
<input type="submit" class="btn btn-default" name="submitBulk{$key}{$table}" value="{$params.text}" {if isset($params.confirm)}onclick="return confirm('{$params.confirm}');"{/if} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{block name="footer"}
|
||||
{foreach from=$toolbar_btn item=btn key=k}
|
||||
{if $k == 'back'}
|
||||
{assign 'back_button' $btn}
|
||||
{break}
|
||||
{/if}
|
||||
{/foreach}
|
||||
{if isset($back_button)}
|
||||
<div class="panel-footer">
|
||||
<a id="desc-{$table}-{if isset($back_button.imgclass)}{$back_button.imgclass}{else}{$k}{/if}" class="btn btn-default{if isset($back_button.target) && $back_button.target} _blank{/if}"{if isset($back_button.href)} href="{$back_button.href|escape:'html':'UTF-8'}"{/if}{if isset($back_button.js) && $back_button.js} onclick="{$back_button.js}"{/if}>
|
||||
<i class="process-icon-back {if isset($back_button.class)}{$back_button.class}{/if}" ></i> <span {if isset($back_button.force_desc) && $back_button.force_desc == true } class="locked" {/if}>{$back_button.desc}</span>
|
||||
</a>
|
||||
</div>
|
||||
{/if}
|
||||
{/block}
|
||||
{if !$simple_header}
|
||||
<input type="hidden" name="token" value="{$token|escape:'html':'UTF-8'}" />
|
||||
</div>
|
||||
{else}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{hook h='displayAdminListAfter'}
|
||||
{if isset($name_controller)}
|
||||
{capture name=hookName assign=hookName}display{$name_controller|ucfirst}ListAfter{/capture}
|
||||
{hook h=$hookName}
|
||||
{elseif isset($smarty.get.controller)}
|
||||
{capture name=hookName assign=hookName}display{$smarty.get.controller|ucfirst|htmlentities}ListAfter{/capture}
|
||||
{hook h=$hookName}
|
||||
{/if}
|
||||
|
||||
{block name="endForm"}
|
||||
</form>
|
||||
{/block}
|
||||
|
||||
{block name="after"}{/block}
|
||||
@@ -0,0 +1,844 @@
|
||||
{extends file="helpers/form/form.tpl"}
|
||||
{block name="fieldset"}
|
||||
{capture name='fieldset_name'}{counter name='fieldset_name'}{/capture}
|
||||
<div class="panel {if isset($fieldset.form.panelClass)}{$fieldset.form.panelClass}{/if}" id="fieldset_{$f}{if isset($smarty.capture.identifier_count) && $smarty.capture.identifier_count}_{$smarty.capture.identifier_count|intval}{/if}{if $smarty.capture.fieldset_name > 1}_{($smarty.capture.fieldset_name - 1)|intval}{/if}">
|
||||
{foreach $fieldset.form as $key => $field}
|
||||
{if $key == 'legend'}
|
||||
{block name="legend"}
|
||||
<div class="panel-heading">
|
||||
{if isset($field.image) && isset($field.title)}<img src="{$field.image}" alt="{$field.title|escape:'html':'UTF-8'}" />{/if}
|
||||
{if isset($field.icon)}<i class="{$field.icon}"></i>{/if}
|
||||
{$field.title}
|
||||
</div>
|
||||
{/block}
|
||||
{elseif $key == 'description' && $field}
|
||||
<div class="alert alert-info">{$field}</div>
|
||||
{elseif $key == 'warning' && $field}
|
||||
<div class="alert alert-warning">{$field}</div>
|
||||
{elseif $key == 'success' && $field}
|
||||
<div class="alert alert-success">{$field}</div>
|
||||
{elseif $key == 'error' && $field}
|
||||
<div class="alert alert-danger">{$field}</div>
|
||||
{elseif $key == 'input'}
|
||||
<div class="form-wrapper">
|
||||
{foreach $field as $fieldCounter=>$input}
|
||||
{block name="input_row"}
|
||||
<div class="form-group{if isset($input.form_group_class)} {$input.form_group_class}{/if}{if $input.type == 'hidden'} hide{/if}"{if $input.name == 'id_state'} id="contains_states"{if !$contains_states} style="display:none;"{/if}{/if}{if isset($tabs) && isset($input.tab)} data-tab-id="{$input.tab}"{/if}>
|
||||
{if $input.type == 'hidden'}
|
||||
<input type="hidden" name="{$input.name}" id="{$input.name}" value="{$fields_value[$input.name]|escape:'html':'UTF-8'}" />
|
||||
{else}
|
||||
{block name="label"}
|
||||
{if isset($input.label)}
|
||||
<label class="control-label col-lg-3{if isset($input.required) && $input.required && $input.type != 'radio'} required{/if}">
|
||||
{if isset($input.hint)}
|
||||
<span class="label-tooltip" data-toggle="tooltip" data-html="true" title="{if is_array($input.hint)}
|
||||
{foreach $input.hint as $hint}
|
||||
{if is_array($hint)}
|
||||
{$hint.text|escape:'quotes'}
|
||||
{else}
|
||||
{$hint|escape:'quotes'}
|
||||
{/if}
|
||||
{/foreach}
|
||||
{else}
|
||||
{$input.hint|escape:'quotes'}
|
||||
{/if}">
|
||||
{/if}
|
||||
{$input.label}
|
||||
{if isset($input.hint)}
|
||||
</span>
|
||||
{/if}
|
||||
</label>
|
||||
{/if}
|
||||
{/block}
|
||||
|
||||
{block name="field"}
|
||||
<div class="col-lg-{if isset($input.col)}{$input.col|intval}{else}9{/if}{if !isset($input.label)} col-lg-offset-3{/if}">
|
||||
{block name="input"}
|
||||
{if $input.type == 'text' || $input.type == 'tags'}
|
||||
{if isset($input.lang) AND $input.lang}
|
||||
{if $languages|count > 1}
|
||||
<div class="form-group">
|
||||
{/if}
|
||||
{foreach $languages as $language}
|
||||
{assign var='value_text' value=$fields_value[$input.name][$language.id_lang]}
|
||||
{if $languages|count > 1}
|
||||
<div class="translatable-field lang-{$language.id_lang}" {if $language.id_lang != $defaultFormLanguage}style="display:none"{/if}>
|
||||
<div class="col-lg-9">
|
||||
{/if}
|
||||
{if $input.type == 'tags'}
|
||||
{literal}
|
||||
<script type="text/javascript">
|
||||
$().ready(function () {
|
||||
var input_id = '{/literal}{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}{literal}';
|
||||
$('#'+input_id).tagify({delimiters: [13,44], addTagPrompt: '{/literal}{l s='Add tag' js=1}{literal}'});
|
||||
$({/literal}'#{$table}{literal}_form').submit( function() {
|
||||
$(this).find('#'+input_id).val($('#'+input_id).tagify('serialize'));
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{/literal}
|
||||
{/if}
|
||||
{if isset($input.maxchar) || isset($input.prefix) || isset($input.suffix)}
|
||||
<div class="input-group{if isset($input.class)} {$input.class}{/if}">
|
||||
{/if}
|
||||
{if isset($input.maxchar) && $input.maxchar}
|
||||
<span id="{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}_counter" class="input-group-addon">
|
||||
<span class="text-count-down">{$input.maxchar|intval}</span>
|
||||
</span>
|
||||
{/if}
|
||||
{if isset($input.prefix)}
|
||||
<span class="input-group-addon">
|
||||
{$input.prefix}
|
||||
</span>
|
||||
{/if}
|
||||
<input type="text"
|
||||
id="{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}"
|
||||
name="{$input.name}_{$language.id_lang}"
|
||||
class="{if isset($input.class)}{$input.class}{/if}{if $input.type == 'tags'} tagify{/if}"
|
||||
value="{if isset($input.string_format) && $input.string_format}{$value_text|string_format:$input.string_format|escape:'html':'UTF-8'}{else}{$value_text|escape:'html':'UTF-8'}{/if}"
|
||||
onkeyup="if (isArrowKey(event)) return ;updateFriendlyURL();"
|
||||
{if isset($input.size)} size="{$input.size}"{/if}
|
||||
{if isset($input.maxchar) && $input.maxchar} data-maxchar="{$input.maxchar|intval}"{/if}
|
||||
{if isset($input.maxlength) && $input.maxlength} maxlength="{$input.maxlength|intval}"{/if}
|
||||
{if isset($input.readonly) && $input.readonly} readonly="readonly"{/if}
|
||||
{if isset($input.disabled) && $input.disabled} disabled="disabled"{/if}
|
||||
{if isset($input.autocomplete) && !$input.autocomplete} autocomplete="off"{/if}
|
||||
{if isset($input.required) && $input.required} required="required" {/if}
|
||||
{if isset($input.placeholder) && $input.placeholder} placeholder="{$input.placeholder}"{/if} />
|
||||
{if isset($input.suffix)}
|
||||
<span class="input-group-addon">
|
||||
{$input.suffix}
|
||||
</span>
|
||||
{/if}
|
||||
{if isset($input.maxchar) || isset($input.prefix) || isset($input.suffix)}
|
||||
</div>
|
||||
{/if}
|
||||
{if $languages|count > 1}
|
||||
</div>
|
||||
<div class="col-lg-2">
|
||||
<button type="button" class="btn btn-default dropdown-toggle" tabindex="-1" data-toggle="dropdown">
|
||||
{$language.iso_code}
|
||||
<i class="icon-caret-down"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
{foreach from=$languages item=language}
|
||||
<li><a href="javascript:hideOtherLanguage({$language.id_lang});" tabindex="-1">{$language.name}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{/foreach}
|
||||
{if isset($input.maxchar) && $input.maxchar}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
{foreach from=$languages item=language}
|
||||
countDown($("#{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}"), $("#{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}_counter"));
|
||||
{/foreach}
|
||||
});
|
||||
</script>
|
||||
{/if}
|
||||
{if $languages|count > 1}
|
||||
</div>
|
||||
{/if}
|
||||
{else}
|
||||
{if $input.type == 'tags'}
|
||||
{literal}
|
||||
<script type="text/javascript">
|
||||
$().ready(function () {
|
||||
var input_id = '{/literal}{if isset($input.id)}{$input.id}{else}{$input.name}{/if}{literal}';
|
||||
$('#'+input_id).tagify({delimiters: [13,44], addTagPrompt: '{/literal}{l s='Add tag'}{literal}'});
|
||||
$({/literal}'#{$table}{literal}_form').submit( function() {
|
||||
$(this).find('#'+input_id).val($('#'+input_id).tagify('serialize'));
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{/literal}
|
||||
{/if}
|
||||
{assign var='value_text' value=$fields_value[$input.name]}
|
||||
{if isset($input.maxchar) || isset($input.prefix) || isset($input.suffix)}
|
||||
<div class="input-group{if isset($input.class)} {$input.class}{/if}">
|
||||
{/if}
|
||||
{if isset($input.maxchar) && $input.maxchar}
|
||||
<span id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}_counter" class="input-group-addon"><span class="text-count-down">{$input.maxchar|intval}</span></span>
|
||||
{/if}
|
||||
{if isset($input.prefix)}
|
||||
<span class="input-group-addon">
|
||||
{$input.prefix}
|
||||
</span>
|
||||
{/if}
|
||||
<input type="text"
|
||||
name="{$input.name}"
|
||||
id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"
|
||||
value="{if isset($input.string_format) && $input.string_format}{$value_text|string_format:$input.string_format|escape:'html':'UTF-8'}{else}{$value_text|escape:'html':'UTF-8'}{/if}"
|
||||
class="{if isset($input.class)}{$input.class}{/if}{if $input.type == 'tags'} tagify{/if}"
|
||||
{if isset($input.size)} size="{$input.size}"{/if}
|
||||
{if isset($input.maxchar) && $input.maxchar} data-maxchar="{$input.maxchar|intval}"{/if}
|
||||
{if isset($input.maxlength) && $input.maxlength} maxlength="{$input.maxlength|intval}"{/if}
|
||||
{if isset($input.readonly) && $input.readonly} readonly="readonly"{/if}
|
||||
{if isset($input.disabled) && $input.disabled} disabled="disabled"{/if}
|
||||
{if isset($input.autocomplete) && !$input.autocomplete} autocomplete="off"{/if}
|
||||
{if isset($input.required) && $input.required } required="required" {/if}
|
||||
{if isset($input.placeholder) && $input.placeholder } placeholder="{$input.placeholder}"{/if}
|
||||
/>
|
||||
{if isset($input.suffix)}
|
||||
<span class="input-group-addon">
|
||||
{$input.suffix}
|
||||
</span>
|
||||
{/if}
|
||||
|
||||
{if isset($input.maxchar) || isset($input.prefix) || isset($input.suffix)}
|
||||
</div>
|
||||
{/if}
|
||||
{if isset($input.maxchar) && $input.maxchar}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
countDown($("#{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"), $("#{if isset($input.id)}{$input.id}{else}{$input.name}{/if}_counter"));
|
||||
});
|
||||
</script>
|
||||
{/if}
|
||||
{/if}
|
||||
{elseif $input.type == 'textbutton'}
|
||||
{assign var='value_text' value=$fields_value[$input.name]}
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
{if isset($input.maxchar)}
|
||||
<div class="input-group">
|
||||
<span id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}_counter" class="input-group-addon">
|
||||
<span class="text-count-down">{$input.maxchar|intval}</span>
|
||||
</span>
|
||||
{/if}
|
||||
<input type="text"
|
||||
name="{$input.name}"
|
||||
id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"
|
||||
value="{if isset($input.string_format) && $input.string_format}{$value_text|string_format:$input.string_format|escape:'html':'UTF-8'}{else}{$value_text|escape:'html':'UTF-8'}{/if}"
|
||||
class="{if isset($input.class)}{$input.class}{/if}{if $input.type == 'tags'} tagify{/if}"
|
||||
{if isset($input.size)} size="{$input.size}"{/if}
|
||||
{if isset($input.maxchar) && $input.maxchar} data-maxchar="{$input.maxchar|intval}"{/if}
|
||||
{if isset($input.maxlength) && $input.maxlength} maxlength="{$input.maxlength|intval}"{/if}
|
||||
{if isset($input.readonly) && $input.readonly} readonly="readonly"{/if}
|
||||
{if isset($input.disabled) && $input.disabled} disabled="disabled"{/if}
|
||||
{if isset($input.autocomplete) && !$input.autocomplete} autocomplete="off"{/if}
|
||||
{if isset($input.placeholder) && $input.placeholder } placeholder="{$input.placeholder}"{/if}
|
||||
/>
|
||||
{if isset($input.suffix)}{$input.suffix}{/if}
|
||||
{if isset($input.maxchar) && $input.maxchar}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
<div class="col-lg-2">
|
||||
<button type="button" class="btn btn-default{if isset($input.button.attributes['class'])} {$input.button.attributes['class']}{/if}{if isset($input.button.class)} {$input.button.class}{/if}"
|
||||
{foreach from=$input.button.attributes key=name item=value}
|
||||
{if $name|lower != 'class'}
|
||||
{$name|escape:'html':'UTF-8'}="{$value|escape:'html':'UTF-8'}"
|
||||
{/if}
|
||||
{/foreach} >
|
||||
{$input.button.label}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
{if isset($input.maxchar) && $input.maxchar}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
countDown($("#{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"), $("#{if isset($input.id)}{$input.id}{else}{$input.name}{/if}_counter"));
|
||||
});
|
||||
</script>
|
||||
{/if}
|
||||
{elseif $input.type == 'swap'}
|
||||
<div class="form-group">
|
||||
<div class="col-lg-9">
|
||||
<div class="form-control-static row">
|
||||
<div class="col-xs-6">
|
||||
<select {if isset($input.size)}size="{$input.size|escape:'html':'utf-8'}"{/if}{if isset($input.onchange)} onchange="{$input.onchange|escape:'html':'utf-8'}"{/if} class="{if isset($input.class)}{$input.class|escape:'html':'utf-8'}{/if}" id="availableSwap" name="{$input.name|escape:'html':'utf-8'}_available[]" multiple="multiple">
|
||||
{foreach $input.options.query AS $option}
|
||||
{if is_object($option)}
|
||||
{if !in_array($option->$input.options.id, $fields_value[$input.name])}
|
||||
<option value="{$option->$input.options.id}">{$option->$input.options.name}</option>
|
||||
{/if}
|
||||
{elseif $option == "-"}
|
||||
<option value="">-</option>
|
||||
{else}
|
||||
{if !in_array($option[$input.options.id], $fields_value[$input.name])}
|
||||
<option value="{$option[$input.options.id]}">{$option[$input.options.name]}</option>
|
||||
{/if}
|
||||
{/if}
|
||||
{/foreach}
|
||||
</select>
|
||||
<a href="#" id="addSwap" class="btn btn-default btn-block">{l s='Add'} <i class="icon-arrow-right"></i></a>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<select {if isset($input.size)}size="{$input.size|escape:'html':'utf-8'}"{/if}{if isset($input.onchange)} onchange="{$input.onchange|escape:'html':'utf-8'}"{/if} class="{if isset($input.class)}{$input.class|escape:'html':'utf-8'}{/if}" id="selectedSwap" name="{$input.name|escape:'html':'utf-8'}_selected[]" multiple="multiple">
|
||||
{foreach $input.options.query AS $option}
|
||||
{if is_object($option)}
|
||||
{if in_array($option->$input.options.id, $fields_value[$input.name])}
|
||||
<option value="{$option->$input.options.id}">{$option->$input.options.name}</option>
|
||||
{/if}
|
||||
{elseif $option == "-"}
|
||||
<option value="">-</option>
|
||||
{else}
|
||||
{if in_array($option[$input.options.id], $fields_value[$input.name])}
|
||||
<option value="{$option[$input.options.id]}">{$option[$input.options.name]}</option>
|
||||
{/if}
|
||||
{/if}
|
||||
{/foreach}
|
||||
</select>
|
||||
<a href="#" id="removeSwap" class="btn btn-default btn-block"><i class="icon-arrow-left"></i> {l s='Remove'}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{elseif $input.type == 'select'}
|
||||
{if isset($input.options.query) && !$input.options.query && isset($input.empty_message)}
|
||||
{$input.empty_message}
|
||||
{$input.required = false}
|
||||
{$input.desc = null}
|
||||
{else}
|
||||
<select name="{$input.name|escape:'html':'utf-8'}"
|
||||
class="{if isset($input.class)}{$input.class|escape:'html':'utf-8'}{/if} fixed-width-xl"
|
||||
id="{if isset($input.id)}{$input.id|escape:'html':'utf-8'}{else}{$input.name|escape:'html':'utf-8'}{/if}"
|
||||
{if isset($input.multiple) && $input.multiple} multiple="multiple"{/if}
|
||||
{if isset($input.size)} size="{$input.size|escape:'html':'utf-8'}"{/if}
|
||||
{if isset($input.onchange)} onchange="{$input.onchange|escape:'html':'utf-8'}"{/if}
|
||||
{if isset($input.disabled) && $input.disabled} disabled="disabled"{/if}>
|
||||
{if isset($input.options.default)}
|
||||
<option value="{$input.options.default.value|escape:'html':'utf-8'}">{$input.options.default.label|escape:'html':'utf-8'}</option>
|
||||
{/if}
|
||||
{if isset($input.options.optiongroup)}
|
||||
{foreach $input.options.optiongroup.query AS $optiongroup}
|
||||
<optgroup label="{$optiongroup[$input.options.optiongroup.label]}">
|
||||
{foreach $optiongroup[$input.options.options.query] as $option}
|
||||
<option value="{$option[$input.options.options.id]}"
|
||||
{if isset($input.multiple)}
|
||||
{foreach $fields_value[$input.name] as $field_value}
|
||||
{if $field_value == $option[$input.options.options.id]}selected="selected"{/if}
|
||||
{/foreach}
|
||||
{else}
|
||||
{if $fields_value[$input.name] == $option[$input.options.options.id]}selected="selected"{/if}
|
||||
{/if}
|
||||
>{$option[$input.options.options.name]}</option>
|
||||
{/foreach}
|
||||
</optgroup>
|
||||
{/foreach}
|
||||
{else}
|
||||
{foreach $input.options.query AS $option}
|
||||
{if is_object($option)}
|
||||
<option value="{$option->$input.options.id}"
|
||||
{if isset($input.multiple)}
|
||||
{foreach $fields_value[$input.name] as $field_value}
|
||||
{if $field_value == $option->$input.options.id}
|
||||
selected="selected"
|
||||
{/if}
|
||||
{/foreach}
|
||||
{else}
|
||||
{if $fields_value[$input.name] == $option->$input.options.id}
|
||||
selected="selected"
|
||||
{/if}
|
||||
{/if}
|
||||
>{$option->$input.options.name}</option>
|
||||
{elseif $option == "-"}
|
||||
<option value="">-</option>
|
||||
{else}
|
||||
<option value="{$option[$input.options.id]}"
|
||||
{if isset($input.multiple)}
|
||||
{foreach $fields_value[$input.name] as $field_value}
|
||||
{if $field_value == $option[$input.options.id]}
|
||||
selected="selected"
|
||||
{/if}
|
||||
{/foreach}
|
||||
{else}
|
||||
{if $fields_value[$input.name] == $option[$input.options.id]}
|
||||
selected="selected"
|
||||
{/if}
|
||||
{/if}
|
||||
>{$option[$input.options.name]}</option>
|
||||
|
||||
{/if}
|
||||
{/foreach}
|
||||
{/if}
|
||||
</select>
|
||||
{/if}
|
||||
{elseif $input.type == 'radio'}
|
||||
{foreach $input.values as $value}
|
||||
<div class="radio {if isset($input.class)}{$input.class}{/if}">
|
||||
{strip}
|
||||
<label>
|
||||
<input type="radio" name="{$input.name}" id="{$value.id}" value="{$value.value|escape:'html':'UTF-8'}"{if $fields_value[$input.name] == $value.value} checked="checked"{/if}{if isset($input.disabled) && $input.disabled} disabled="disabled"{/if}/>
|
||||
{$value.label}
|
||||
</label>
|
||||
{/strip}
|
||||
</div>
|
||||
{if isset($value.p) && $value.p}<p class="help-block">{$value.p}</p>{/if}
|
||||
{/foreach}
|
||||
{elseif $input.type == 'switch'}
|
||||
<span class="switch prestashop-switch fixed-width-lg">
|
||||
{foreach $input.values as $value}
|
||||
<input type="radio" name="{$input.name}"{if $value.value == 1} id="{$input.name}_on"{else} id="{$input.name}_off"{/if} value="{$value.value}"{if $fields_value[$input.name] == $value.value} checked="checked"{/if}{if isset($input.disabled) && $input.disabled} disabled="disabled"{/if}/>
|
||||
{strip}
|
||||
<label {if $value.value == 1} for="{$input.name}_on"{else} for="{$input.name}_off"{/if}>
|
||||
{if $value.value == 1}
|
||||
{l s='Yes'}
|
||||
{else}
|
||||
{l s='No'}
|
||||
{/if}
|
||||
</label>
|
||||
{/strip}
|
||||
{/foreach}
|
||||
<a class="slide-button btn"></a>
|
||||
</span>
|
||||
{elseif $input.type == 'textarea'}
|
||||
{if isset($input.maxchar) && $input.maxchar}<div class="input-group">{/if}
|
||||
{assign var=use_textarea_autosize value=true}
|
||||
{if isset($input.lang) AND $input.lang}
|
||||
{foreach $languages as $language}
|
||||
{if $languages|count > 1}
|
||||
<div class="form-group translatable-field lang-{$language.id_lang}"{if $language.id_lang != $defaultFormLanguage} style="display:none;"{/if}>
|
||||
<div class="col-lg-9">
|
||||
{/if}
|
||||
{if isset($input.maxchar) && $input.maxchar}
|
||||
<span id="{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}_counter" class="input-group-addon">
|
||||
<span class="text-count-down">{$input.maxchar|intval}</span>
|
||||
</span>
|
||||
{/if}
|
||||
<textarea{if isset($input.readonly) && $input.readonly} readonly="readonly"{/if} name="{$input.name}_{$language.id_lang}" id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}_{$language.id_lang}" class="{if isset($input.autoload_rte) && $input.autoload_rte}rte autoload_rte{else}textarea-autosize{/if}{if isset($input.class)} {$input.class}{/if}"{if isset($input.maxlength) && $input.maxlength} maxlength="{$input.maxlength|intval}"{/if}{if isset($input.maxchar) && $input.maxchar} data-maxchar="{$input.maxchar|intval}"{/if}>{$fields_value[$input.name][$language.id_lang]|escape:'html':'UTF-8'}</textarea>
|
||||
{if $languages|count > 1}
|
||||
</div>
|
||||
<div class="col-lg-2">
|
||||
<button type="button" class="btn btn-default dropdown-toggle" tabindex="-1" data-toggle="dropdown">
|
||||
{$language.iso_code}
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
{foreach from=$languages item=language}
|
||||
<li>
|
||||
<a href="javascript:hideOtherLanguage({$language.id_lang});" tabindex="-1">{$language.name}</a>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{/foreach}
|
||||
{if isset($input.maxchar) && $input.maxchar}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
{foreach from=$languages item=language}
|
||||
countDown($("#{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}"), $("#{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}_counter"));
|
||||
{/foreach}
|
||||
});
|
||||
</script>
|
||||
{/if}
|
||||
{else}
|
||||
{if isset($input.maxchar) && $input.maxchar}
|
||||
<span id="{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}_counter" class="input-group-addon">
|
||||
<span class="text-count-down">{$input.maxchar|intval}</span>
|
||||
</span>
|
||||
{/if}
|
||||
<textarea{if isset($input.readonly) && $input.readonly} readonly="readonly"{/if} name="{$input.name}" id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}" {if isset($input.cols)}cols="{$input.cols}"{/if} {if isset($input.rows)}rows="{$input.rows}"{/if} class="{if isset($input.autoload_rte) && $input.autoload_rte}rte autoload_rte{else}textarea-autosize{/if}{if isset($input.class)} {$input.class}{/if}"{if isset($input.maxlength) && $input.maxlength} maxlength="{$input.maxlength|intval}"{/if}{if isset($input.maxchar) && $input.maxchar} data-maxchar="{$input.maxchar|intval}"{/if}>{$fields_value[$input.name]|escape:'html':'UTF-8'}</textarea>
|
||||
{if isset($input.maxchar) && $input.maxchar}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
countDown($("#{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"), $("#{if isset($input.id)}{$input.id}{else}{$input.name}{/if}_counter"));
|
||||
});
|
||||
</script>
|
||||
{/if}
|
||||
{/if}
|
||||
{if isset($input.maxchar) && $input.maxchar}</div>{/if}
|
||||
{elseif $input.type == 'checkbox'}
|
||||
{if isset($input.expand)}
|
||||
<a class="btn btn-default show_checkbox{if strtolower($input.expand.default) == 'hide'} hidden{/if}" href="#">
|
||||
<i class="icon-{$input.expand.show.icon}"></i>
|
||||
{$input.expand.show.text}
|
||||
{if isset($input.expand.print_total) && $input.expand.print_total > 0}
|
||||
<span class="badge">{$input.expand.print_total}</span>
|
||||
{/if}
|
||||
</a>
|
||||
<a class="btn btn-default hide_checkbox{if strtolower($input.expand.default) == 'show'} hidden{/if}" href="#">
|
||||
<i class="icon-{$input.expand.hide.icon}"></i>
|
||||
{$input.expand.hide.text}
|
||||
{if isset($input.expand.print_total) && $input.expand.print_total > 0}
|
||||
<span class="badge">{$input.expand.print_total}</span>
|
||||
{/if}
|
||||
</a>
|
||||
{/if}
|
||||
{foreach $input.values.query as $value}
|
||||
{assign var=id_checkbox value=$input.name|cat:'_'|cat:$value[$input.values.id]}
|
||||
<div class="checkbox{if isset($input.expand) && strtolower($input.expand.default) == 'show'} hidden{/if}">
|
||||
{strip}
|
||||
<label for="{$id_checkbox}">
|
||||
<input type="checkbox" name="{$id_checkbox}" id="{$id_checkbox}" class="{if isset($input.class)}{$input.class}{/if}"{if isset($value.val)} value="{$value.val|escape:'html':'UTF-8'}"{/if}{if isset($fields_value[$id_checkbox]) && $fields_value[$id_checkbox]} checked="checked"{/if} />
|
||||
{$value[$input.values.name]}
|
||||
</label>
|
||||
{/strip}
|
||||
</div>
|
||||
{/foreach}
|
||||
{elseif $input.type == 'change-password'}
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<button type="button" id="{$input.name}-btn-change" class="btn btn-default">
|
||||
<i class="icon-lock"></i>
|
||||
{l s='Change password...'}
|
||||
</button>
|
||||
<div id="{$input.name}-change-container" class="form-password-change well hide">
|
||||
<div class="form-group">
|
||||
<label for="old_passwd" class="control-label col-lg-2 required">
|
||||
{l s='Current password'}
|
||||
</label>
|
||||
<div class="col-lg-10">
|
||||
<div class="input-group fixed-width-lg">
|
||||
<span class="input-group-addon">
|
||||
<i class="icon-unlock"></i>
|
||||
</span>
|
||||
<input type="password" id="old_passwd" name="old_passwd" class="form-control" value="" required="required" autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr />
|
||||
<div class="form-group">
|
||||
<label for="{$input.name}" class="required control-label col-lg-2">
|
||||
<span class="label-tooltip" data-toggle="tooltip" data-html="true" title="" data-original-title="{l s='Password should be at least 8 characters long.'}">
|
||||
{l s='New password'}
|
||||
</span>
|
||||
</label>
|
||||
<div class="col-lg-9">
|
||||
<div class="input-group fixed-width-lg">
|
||||
<span class="input-group-addon">
|
||||
<i class="icon-key"></i>
|
||||
</span>
|
||||
<input type="password" id="{$input.name}" name="{$input.name}" class="{if isset($input.class)}{$input.class}{/if}" value="" required="required" autocomplete="off"/>
|
||||
</div>
|
||||
<span id="{$input.name}-output"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="{$input.name}2" class="required control-label col-lg-2">
|
||||
{l s='Confirm password'}
|
||||
</label>
|
||||
<div class="col-lg-4">
|
||||
<div class="input-group fixed-width-lg">
|
||||
<span class="input-group-addon">
|
||||
<i class="icon-key"></i>
|
||||
</span>
|
||||
<input type="password" id="{$input.name}2" name="{$input.name}2" class="{if isset($input.class)}{$input.class}{/if}" value="" autocomplete="off"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-lg-10 col-lg-offset-2">
|
||||
<input type="text" class="form-control fixed-width-md pull-left" id="{$input.name}-generate-field" disabled="disabled">
|
||||
<button type="button" id="{$input.name}-generate-btn" class="btn btn-default">
|
||||
<i class="icon-random"></i>
|
||||
{l s='Generate password'}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-lg-10 col-lg-offset-2">
|
||||
<p class="checkbox">
|
||||
<label for="{$input.name}-checkbox-mail">
|
||||
<input name="passwd_send_email" id="{$input.name}-checkbox-mail" type="checkbox" checked="checked">
|
||||
{l s='Send me this new password by Email'}
|
||||
</label>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<button type="button" id="{$input.name}-cancel-btn" class="btn btn-default">
|
||||
<i class="icon-remove"></i>
|
||||
{l s='Cancel'}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$(function(){
|
||||
var $oldPwd = $('#old_passwd');
|
||||
var $passwordField = $('#{$input.name}');
|
||||
var $output = $('#{$input.name}-output');
|
||||
var $generateBtn = $('#{$input.name}-generate-btn');
|
||||
var $generateField = $('#{$input.name}-generate-field');
|
||||
var $cancelBtn = $('#{$input.name}-cancel-btn');
|
||||
|
||||
var feedback = [
|
||||
{ badge: 'text-danger', text: '{l s="Invalid" js=1}' },
|
||||
{ badge: 'text-warning', text: '{l s="Okay" js=1}' },
|
||||
{ badge: 'text-success', text: '{l s="Good" js=1}' },
|
||||
{ badge: 'text-success', text: '{l s="Fabulous" js=1}' }
|
||||
];
|
||||
$.passy.requirements.length.min = 8;
|
||||
$.passy.requirements.characters = 'DIGIT';
|
||||
$passwordField.passy(function(strength, valid) {
|
||||
$output.text(feedback[strength].text);
|
||||
$output.removeClass('text-danger').removeClass('text-warning').removeClass('text-success');
|
||||
$output.addClass(feedback[strength].badge);
|
||||
if (valid){
|
||||
$output.show();
|
||||
}
|
||||
else {
|
||||
$output.hide();
|
||||
}
|
||||
});
|
||||
var $container = $('#{$input.name}-change-container');
|
||||
var $changeBtn = $('#{$input.name}-btn-change');
|
||||
var $confirmPwd = $('#{$input.name}2');
|
||||
|
||||
$changeBtn.on('click',function(){
|
||||
$container.removeClass('hide');
|
||||
$changeBtn.addClass('hide');
|
||||
});
|
||||
$generateBtn.click(function() {
|
||||
$generateField.passy( 'generate', 8 );
|
||||
var generatedPassword = $generateField.val();
|
||||
$passwordField.val(generatedPassword);
|
||||
$confirmPwd.val(generatedPassword);
|
||||
});
|
||||
$cancelBtn.on('click',function() {
|
||||
$container.find("input").val("");
|
||||
$container.addClass('hide');
|
||||
$changeBtn.removeClass('hide');
|
||||
});
|
||||
|
||||
$.validator.addMethod('password_same', function(value, element) {
|
||||
return $passwordField.val() == $confirmPwd.val();
|
||||
}, '{l s="Invalid password confirmation" js=1}');
|
||||
|
||||
$('#employee_form').validate({
|
||||
rules: {
|
||||
"email": {
|
||||
email: true
|
||||
},
|
||||
"{$input.name}" : {
|
||||
minlength: 8
|
||||
},
|
||||
"{$input.name}2": {
|
||||
password_same: true
|
||||
},
|
||||
"old_passwd" : {},
|
||||
},
|
||||
// override jquery validate plugin defaults for bootstrap 3
|
||||
highlight: function(element) {
|
||||
$(element).closest('.form-group').addClass('has-error');
|
||||
},
|
||||
unhighlight: function(element) {
|
||||
$(element).closest('.form-group').removeClass('has-error');
|
||||
},
|
||||
errorElement: 'span',
|
||||
errorClass: 'help-block',
|
||||
errorPlacement: function(error, element) {
|
||||
if(element.parent('.input-group').length) {
|
||||
error.insertAfter(element.parent());
|
||||
} else {
|
||||
error.insertAfter(element);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{elseif $input.type == 'password'}
|
||||
<div class="input-group fixed-width-lg">
|
||||
<span class="input-group-addon">
|
||||
<i class="icon-key"></i>
|
||||
</span>
|
||||
<input type="password"
|
||||
id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"
|
||||
name="{$input.name}"
|
||||
class="{if isset($input.class)}{$input.class}{/if}"
|
||||
value=""
|
||||
{if isset($input.autocomplete) && !$input.autocomplete}autocomplete="off"{/if}
|
||||
{if isset($input.required) && $input.required } required="required" {/if} />
|
||||
</div>
|
||||
|
||||
{elseif $input.type == 'birthday'}
|
||||
<div class="form-group">
|
||||
{foreach $input.options as $key => $select}
|
||||
<div class="col-lg-2">
|
||||
<select name="{$key}" class="fixed-width-lg{if isset($input.class)} {$input.class}{/if}">
|
||||
<option value="">-</option>
|
||||
{if $key == 'months'}
|
||||
{*
|
||||
This comment is useful to the translator tools /!\ do not remove them
|
||||
{l s='January'}
|
||||
{l s='February'}
|
||||
{l s='March'}
|
||||
{l s='April'}
|
||||
{l s='May'}
|
||||
{l s='June'}
|
||||
{l s='July'}
|
||||
{l s='August'}
|
||||
{l s='September'}
|
||||
{l s='October'}
|
||||
{l s='November'}
|
||||
{l s='December'}
|
||||
*}
|
||||
{foreach $select as $k => $v}
|
||||
<option value="{$k}" {if $k == $fields_value[$key]}selected="selected"{/if}>{l s=$v}</option>
|
||||
{/foreach}
|
||||
{else}
|
||||
{foreach $select as $v}
|
||||
<option value="{$v}" {if $v == $fields_value[$key]}selected="selected"{/if}>{$v}</option>
|
||||
{/foreach}
|
||||
{/if}
|
||||
</select>
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
{elseif $input.type == 'group'}
|
||||
{assign var=groups value=$input.values}
|
||||
{include file='helpers/form/form_group.tpl'}
|
||||
{elseif $input.type == 'shop'}
|
||||
{$input.html}
|
||||
{elseif $input.type == 'categories'}
|
||||
{$categories_tree}
|
||||
{elseif $input.type == 'file'}
|
||||
{$input.file}
|
||||
{elseif $input.type == 'categories_select'}
|
||||
{$input.category_tree}
|
||||
{elseif $input.type == 'asso_shop' && isset($asso_shop) && $asso_shop}
|
||||
{$asso_shop}
|
||||
{elseif $input.type == 'color'}
|
||||
<div class="form-group">
|
||||
<div class="col-lg-2">
|
||||
<div class="row">
|
||||
<div class="input-group">
|
||||
<input type="color"
|
||||
data-hex="true"
|
||||
{if isset($input.class)} class="{$input.class}"
|
||||
{else} class="color mColorPickerInput"{/if}
|
||||
name="{$input.name}"
|
||||
value="{$fields_value[$input.name]|escape:'html':'UTF-8'}" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{elseif $input.type == 'date'}
|
||||
<div class="row">
|
||||
<div class="input-group col-lg-4">
|
||||
<input
|
||||
id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"
|
||||
type="text"
|
||||
data-hex="true"
|
||||
{if isset($input.class)} class="{$input.class}"
|
||||
{else}class="datepicker"{/if}
|
||||
name="{$input.name}"
|
||||
value="{$fields_value[$input.name]|escape:'html':'UTF-8'}" />
|
||||
<span class="input-group-addon">
|
||||
<i class="icon-calendar-empty"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
{elseif $input.type == 'datetime'}
|
||||
<div class="row">
|
||||
<div class="input-group col-lg-4">
|
||||
<input
|
||||
id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"
|
||||
type="text"
|
||||
data-hex="true"
|
||||
{if isset($input.class)} class="{$input.class}"
|
||||
{else} class="datetimepicker"{/if}
|
||||
name="{$input.name}"
|
||||
value="{$fields_value[$input.name]|escape:'html':'UTF-8'}" />
|
||||
<span class="input-group-addon">
|
||||
<i class="icon-calendar-empty"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
{elseif $input.type == 'free'}
|
||||
{$fields_value[$input.name]}
|
||||
{elseif $input.type == 'html'}
|
||||
{if isset($input.html_content)}
|
||||
{$input.html_content}
|
||||
{else}
|
||||
{$input.name}
|
||||
{/if}
|
||||
{/if}
|
||||
{/block}{* end block input *}
|
||||
{block name="description"}
|
||||
{if isset($input.desc) && !empty($input.desc)}
|
||||
<p class="help-block">
|
||||
{if is_array($input.desc)}
|
||||
{foreach $input.desc as $p}
|
||||
{if is_array($p)}
|
||||
<span id="{$p.id}">{$p.text}</span><br />
|
||||
{else}
|
||||
{$p}<br />
|
||||
{/if}
|
||||
{/foreach}
|
||||
{else}
|
||||
{$input.desc}
|
||||
{/if}
|
||||
</p>
|
||||
{/if}
|
||||
{/block}
|
||||
</div>
|
||||
{/block}{* end block field *}
|
||||
{/if}
|
||||
</div>
|
||||
{/block}
|
||||
{/foreach}
|
||||
{hook h='displayAdminForm' fieldset=$f}
|
||||
{if isset($name_controller)}
|
||||
{capture name=hookName assign=hookName}display{$name_controller|ucfirst}Form{/capture}
|
||||
{hook h=$hookName fieldset=$f}
|
||||
{elseif isset($smarty.get.controller)}
|
||||
{capture name=hookName assign=hookName}display{$smarty.get.controller|ucfirst|htmlentities}Form{/capture}
|
||||
{hook h=$hookName fieldset=$f}
|
||||
{/if}
|
||||
</div><!-- /.form-wrapper -->
|
||||
|
||||
{elseif $key == 'desc'}
|
||||
<div class="alert alert-info col-lg-offset-3">
|
||||
{if is_array($field)}
|
||||
{foreach $field as $k => $p}
|
||||
{if is_array($p)}
|
||||
<span{if isset($p.id)} id="{$p.id}"{/if}>{$p.text}</span><br />
|
||||
{else}
|
||||
{$p}
|
||||
{if isset($field[$k+1])}<br />{/if}
|
||||
{/if}
|
||||
{/foreach}
|
||||
{else}
|
||||
{$field}
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
{block name="other_input"}{/block}
|
||||
{/foreach}
|
||||
{block name="footer"}
|
||||
{capture name='form_submit_btn'}{counter name='form_submit_btn'}{/capture}
|
||||
{if isset($fieldset['form']['submit']) || isset($fieldset['form']['buttons'])}
|
||||
<div>
|
||||
{if isset($fieldset['form']['submit']) && !empty($fieldset['form']['submit'])}
|
||||
<button type="submit" value="1" id="{if isset($fieldset['form']['submit']['id'])}{$fieldset['form']['submit']['id']}{else}{$table}_form_submit_btn{/if}{if $smarty.capture.form_submit_btn > 1}_{($smarty.capture.form_submit_btn - 1)|intval}{/if}" name="{if isset($fieldset['form']['submit']['name'])}{$fieldset['form']['submit']['name']}{else}{$submit_action}{/if}{if isset($fieldset['form']['submit']['stay']) && $fieldset['form']['submit']['stay']}AndStay{/if}" class="{if isset($fieldset['form']['submit']['class'])}{$fieldset['form']['submit']['class']}{else}btn btn-default pull-right{/if}">
|
||||
<i class="{if isset($fieldset['form']['submit']['icon'])}{$fieldset['form']['submit']['icon']}{else}process-icon-save{/if}"></i> {$fieldset['form']['submit']['title']}
|
||||
</button>
|
||||
{/if}
|
||||
{if isset($show_cancel_button) && $show_cancel_button}
|
||||
<a href="{$back_url|escape:'html':'UTF-8'}" class="btn btn-default" onclick="window.history.back();">
|
||||
<i class="process-icon-cancel"></i> {l s='Cancel'}
|
||||
</a>
|
||||
{/if}
|
||||
{if isset($fieldset['form']['reset'])}
|
||||
<button
|
||||
type="reset"
|
||||
id="{if isset($fieldset['form']['reset']['id'])}{$fieldset['form']['reset']['id']}{else}{$table}_form_reset_btn{/if}"
|
||||
class="{if isset($fieldset['form']['reset']['class'])}{$fieldset['form']['reset']['class']}{else}btn btn-default{/if}"
|
||||
>
|
||||
{if isset($fieldset['form']['reset']['icon'])}<i class="{$fieldset['form']['reset']['icon']}"></i> {/if} {$fieldset['form']['reset']['title']}
|
||||
</button>
|
||||
{/if}
|
||||
{if isset($fieldset['form']['buttons'])}
|
||||
{foreach from=$fieldset['form']['buttons'] item=btn key=k}
|
||||
{if isset($btn.href) && trim($btn.href) != ''}
|
||||
<a href="{$btn.href}" {if isset($btn['id'])}id="{$btn['id']}"{/if} class="btn btn-default{if isset($btn['class'])} {$btn['class']}{/if}" {if isset($btn.js) && $btn.js} onclick="{$btn.js}"{/if}>{if isset($btn['icon'])}<i class="{$btn['icon']}" ></i> {/if}{$btn.title}</a>
|
||||
{else}
|
||||
<button type="{if isset($btn['type'])}{$btn['type']}{else}button{/if}" {if isset($btn['id'])}id="{$btn['id']}"{/if} class="btn btn-default{if isset($btn['class'])} {$btn['class']}{/if}" name="{if isset($btn['name'])}{$btn['name']}{else}submitOptions{$table}{/if}"{if isset($btn.js) && $btn.js} onclick="{$btn.js}"{/if}>{if isset($btn['icon'])}<i class="{$btn['icon']}" ></i> {/if}{$btn.title}</button>
|
||||
{/if}
|
||||
{/foreach}
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
{/block}
|
||||
</div>
|
||||
{/block}
|
||||
@@ -0,0 +1,75 @@
|
||||
{*
|
||||
* 2007-2017 PrestaShop
|
||||
*
|
||||
* 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.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* 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-2017 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
<div class="modal fade" id="{$modal_id}" tabindex="-1">
|
||||
<div class="modal-dialog {if isset($modal_class)}{$modal_class}{/if}">
|
||||
<div class="modal-content">
|
||||
{if isset($modal_title)}
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||
<h4 class="modal-title">{$modal_title} <span class="loader" style="display:none;"><i class="icon-refresh icon-spin"></i></span></h4>
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<h4 id="modal_order_info" class="modal-title"></h4>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="alert alert-info" role="alert" style="display:none">
|
||||
{l s='Pozostało w kolejce'}: <span id="orders_counter"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="alert alert-danger" style="display:none">
|
||||
<button type="button" class="close" data-dismiss="alert">×</button>
|
||||
<ol></ol>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{$modal_content}
|
||||
|
||||
{if isset($modal_actions)}
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{l s='Close'}</button>
|
||||
{foreach $modal_actions as $action}
|
||||
{if $action.type == 'link'}
|
||||
<a href="{$action.href}" class="btn {$action.class}" data-label_one="{$action.label}" data-label_multi="{l s='Następne zamówienie'}">{$action.label}</a>
|
||||
{elseif $action.type == 'button'}
|
||||
<button type="button" value="{$action.value}" class="btn {$action.class}">
|
||||
{$action.label}
|
||||
</button>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
ppPack.init('{$currentToken}');
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
{include file="./modal_content.tpl"}
|
||||
|
||||
<div class="checkbox">
|
||||
<label class="required" for="pp_process_data_rodo_modal"><input type="checkbox" name="pp_process_data_rodo_modal" id="pp_process_data_rodo_modal" value="1">{l s='Wyrażam zgodę na przetwarzanie moich danych osobowych w zakresie i w sposób określony w pkt II.' mod='pocztapolskaen'}</label>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<label for="pp_process_information_rodo_modal"><input type="checkbox" name="pp_process_information_rodo_modal" id="pp_process_information_rodo_modal" value="1"">{l s='Wyrażam zgodę na otrzymywanie powiadomień o nowych wersjach oprogramowania na mój adres e-mail. ' mod='pocztapolskaen'}</label>
|
||||
</div>
|
||||
<div style="margin-left:10px;margin-top: 1px;margin-bottom:1px;">{l s='Pełna informacja na temat przetwarzania danych osobowych przez Pocztę Polską:' mod='pocztapolskaen'} <a href="http://bip.poczta-polska.pl/iinformacja-o-zbieraniu-danych-osobowych/">http://bip.poczta-polska.pl/iinformacja-o-zbieraniu-danych-osobowych/</a></div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3 col-lg-offset-4">
|
||||
<div class="form-group">
|
||||
<button id="pocztapolskaen_login_button" class="btn btn-primary btn-block btn-sm" type="submit">
|
||||
<i class="icon-unlock"></i> {l s='Przejdź do logowania' mod='pocztapolskaen'}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var error_continue_msg = '{l s='OK' js=1}';
|
||||
</script>
|
||||
@@ -0,0 +1,35 @@
|
||||
|
||||
<h4>{l s='Informacja o przetwarzanych danych osobowych w ramach oprogramowania' mod='pocztapolskaen'}</h4>
|
||||
|
||||
<h4>{l s='Szanowni Państwo,' mod='pocztapolskaen'}</h4>
|
||||
<div style="color:red;">{l s='dziękujemy za instalację wtyczki i wybór usług Poczty Polskiej S.A.' mod='pocztapolskaen'}</div>
|
||||
<ol style="list-style-type: upper-roman;padding-top: 1px;">
|
||||
<li>{l s='Zgodnie z wymaganiami Rozporządzenia o Ochronie Danych Osobowych [RODO], pragniemy poinformować, że Państwa dane osobowe (jako nadawcy) oraz dane osobowe odbiorców są przetwarzane przez Pocztę Polska S.A. w celu realizacji usług dostępnych w aplikacji Elektroniczny Nadawca. Pełną informacje o sposobie przetwarzania danych i przysługujących Państwu prawach znajdą Państwo pod adresem:' mod='pocztapolskaen'}<br>
|
||||
<a href="https://e-nadawca.poczta-polska.pl/info/">https://e-nadawca.poczta-polska.pl/info/</a>
|
||||
<br>{l s='(Informacja dostępna jest w zakładce Start po zalogowaniu do aplikacji.)' mod='pocztapolskaen'}
|
||||
</li>
|
||||
|
||||
<li>{l s='Instalacja niniejszego oprogramowania wiąże się z również z przetwarzaniem danych osobowych w zakresie:' mod='pocztapolskaen'}
|
||||
<ul>
|
||||
<li>{l s='adres email' mod='pocztapolskaen'}</li>
|
||||
<li style="color:red;">{l s='login' mod='pocztapolskaen'}</li>
|
||||
<li style="color:red;">{l s='numer karty Elektronicznego Nadawcy' mod='pocztapolskaen'}</li>
|
||||
<li>{l s='adres www Państwa sklepu internetowego' mod='pocztapolskaen'}</li>
|
||||
</ul>
|
||||
|
||||
{l s='w dodatkowych celach: udzielania pomocy w przypadku zgłoszenia przez Państwa problemów z wtyczką oraz statystycznym. W związku z tym, uprzejmie informujemy, że:' mod='pocztapolskaen'}
|
||||
<ul style="list-style-type: decimal">
|
||||
<li>{l s='Administratorem danych osobowych wymienionych powyżej jest Poczta Polska S.A. z siedzibą w Warszawie przy ul. Rodziny Hiszpańskich 8, 00 - 940 Warszawa.' mod='pocztapolskaen'}</li>
|
||||
<li>{l s='Kontakt z Inspektorem ochrony danych: Inspektor ochrony danych Poczta Polska S.A., ul. Rodziny Hiszpańskich 8, 00-940 Warszawa, e-mail:' mod='pocztapolskaen'} <a href="mailto:inspektorodo@poczta-polska.pl">inspektorodo@poczta-polska.pl</a></li>
|
||||
<li>{l s='Dane osobowe, o których mowa w pkt II., są przetwarzane na podstawie art. 6 ust. 1 lit. a Rozporządzenia Parlamentu Europejskiego i Rady (UE) 2016/679 z 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (Ogólne rozporządzenie o ochronie danych) (Dz. Urz. UE L 119 z 4.05.2016)' mod='pocztapolskaen'}</li>
|
||||
<li>{l s='Państwa dane osobowe są przechowywane na serwerach zlokalizowanych w Unii Europejskiej i mogą być przekazane - na podstawie standardowych klauzul ochrony danych - do państwa trzeciego w związku z korzystaniem przez administratora z rozwiązań chmurowych dostarczanych przez firmę Microsoft. Stosowane przez Microsoft standardowe klauzule umowne zgodne z wzorcami zatwierdzonymi przez Komisję Europejską, dostępne są pod adresem:' mod='pocztapolskaen'}
|
||||
<a href="https://www.microsoft.com/en-us/licensing/product-licensing/products.aspx">https://www.microsoft.com/en-us/licensing/product-licensing/products.aspx</a>{l s=' w części Online Services Terms (OST).' mod='pocztapolskaen'}</li>
|
||||
<li>{l s='Państwa dane przechowywane będą do momentu wycofania przez Państwa zgody lub zakończenia wsparcia dla niniejszego oprogramowania.' mod='pocztapolskaen'}</li>
|
||||
<li>{l s='Przysługuje Państwu prawo dostępu do danych osobowych, ich sprostowania, usunięcia lub ograniczenia przetwarzania.' mod='pocztapolskaen'}</li>
|
||||
<li>{l s='Przysługuje Państwu prawo do cofnięcia zgody w dowolnym momencie bez wpływu na zgodność z prawem przetwarzania, którego dokonano na podstawie zgody przed jej cofnięciem.' mod='pocztapolskaen'}
|
||||
<div style="color:green">{l s='Wycofania zgody dotyczącej przetwarzania danych wskazanych w punkcie II. dokonać mogą Państwo z poziomu oprogramowania poprzez odznaczenie właściwej zgody w zakładce "Moje konto".' mod='pocztapolskaen'}</div></li>
|
||||
<li>{l s='Osobie, której dane dotyczą przysługuje prawo wniesienia skargi do Prezesa Urzędu Ochrony Danych Osobowych.' mod='pocztapolskaen'}</li>
|
||||
<li>{l s='Podanie danych osobowych jest niezbędne do prawidłowego działania i obsługi oprogramowania.' mod='pocztapolskaen'}</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
349
modules/pocztapolskaen/views/templates/admin/css/order1770.css
Normal file
349
modules/pocztapolskaen/views/templates/admin/css/order1770.css
Normal file
@@ -0,0 +1,349 @@
|
||||
.datepicker.hasDatepicker .ui-datepicker-inline {display:none !important;}
|
||||
|
||||
#pocztapolskaen_order_detail .panel
|
||||
{
|
||||
background-color: #fff;
|
||||
border: 1px solid #d3d8db;
|
||||
border-radius: 5px;
|
||||
margin-bottom: 20px;
|
||||
padding: 20px;
|
||||
position: relative;
|
||||
box-shadow: 0 1px 1px rgba(0,0,0,.05);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
#pocztapolskaen_order_detail .panel .panel-heading
|
||||
{
|
||||
border:none;
|
||||
font-weight: 600;
|
||||
border-bottom:1px solid #eee;
|
||||
font-size:1rem;
|
||||
line-height: 2.3rem;
|
||||
margin:-20px -16px 15px;
|
||||
padding:0 0 0 5px;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .panel .panel-heading i {
|
||||
font-family: Material Icons;
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-size: 24px;
|
||||
font-size: 1.5rem;
|
||||
line-height: 1;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap;
|
||||
direction: ltr;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: optimizeLegibility;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-feature-settings: "liga";
|
||||
font-feature-settings: "liga";
|
||||
margin:7px 10px 0px 0px;
|
||||
float:left;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .icon-plane::before {
|
||||
content: "local_shipping";
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .form-horizontal .form-group::after, #pocztapolskaen_order_detail .form-horizontal .form-group::before {
|
||||
content: " ";
|
||||
display: table;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail label.control-label {
|
||||
color: #666;
|
||||
font-size: 13px;
|
||||
font-weight: 400;
|
||||
float:left;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .form-horizontal .control-label {
|
||||
margin-bottom: 0;
|
||||
padding-top: 7px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .col-lg-8 {display:inline-block;}
|
||||
|
||||
#pocztapolskaen_order_detail .form-control,
|
||||
#pocztapolskaen_order_detail input[type="password"],
|
||||
#pocztapolskaen_order_detail input[type="search"],
|
||||
#pocztapolskaen_order_detail input[type="text"],
|
||||
#pocztapolskaen_order_detail select,
|
||||
#pocztapolskaen_order_detail textarea {
|
||||
-webkit-transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;
|
||||
-webkit-transition: border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;
|
||||
background-color: #f5f8f9;
|
||||
background-image: none;
|
||||
border: 1px solid #c7d6db;
|
||||
border-radius: 3px;
|
||||
color: #555;
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
height: 31px;
|
||||
line-height: 1.42857;
|
||||
padding: 6px 8px;
|
||||
transition: border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;
|
||||
transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;
|
||||
transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail input[type="email"],
|
||||
#pocztapolskaen_order_detail input[type="password"],
|
||||
#pocztapolskaen_order_detail input[type="search"],
|
||||
#pocztapolskaen_order_detail input[type="tel"],
|
||||
#pocztapolskaen_order_detail input[type="text"] {
|
||||
font-family: Open Sans,Helvetica,Arial,FontAwesome,sans-serif !important;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .input-group .form-control,
|
||||
#pocztapolskaen_order_detail .input-group input[type="password"],
|
||||
#pocztapolskaen_order_detail .input-group input[type="search"],
|
||||
#pocztapolskaen_order_detail .input-group input[type="text"],
|
||||
#pocztapolskaen_order_detail .input-group select,
|
||||
#pocztapolskaen_order_detail .input-group textarea {
|
||||
float: left;
|
||||
margin-bottom: 0;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
|
||||
#pocztapolskaen_order_detail .form-control[disabled],
|
||||
#pocztapolskaen_order_detail .form-control[readonly],
|
||||
#pocztapolskaen_order_detail input[disabled][type="password"],
|
||||
#pocztapolskaen_order_detail input[disabled][type="search"],
|
||||
#pocztapolskaen_order_detail input[disabled][type="text"],
|
||||
#pocztapolskaen_order_detail input[readonly][type="password"],
|
||||
#pocztapolskaen_order_detail input[readonly][type="search"],
|
||||
#pocztapolskaen_order_detail input[readonly][type="text"],
|
||||
#pocztapolskaen_order_detail select[disabled],
|
||||
#pocztapolskaen_order_detail select[readonly],
|
||||
#pocztapolskaen_order_detail textarea[disabled],
|
||||
#pocztapolskaen_order_detail textarea[readonly]
|
||||
{
|
||||
background-color: #eee;
|
||||
cursor: not-allowed;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .close {
|
||||
color: #000;
|
||||
filter: alpha(opacity=20);
|
||||
float: right;
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
line-height: 1;
|
||||
opacity: .2;
|
||||
text-shadow: 0 1px 0 #fff;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .modal-header .close {
|
||||
margin-top: -2px;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail button.close {
|
||||
-webkit-appearance: none;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
cursor: pointer;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .close:focus, #pocztapolskaen_order_detail .close:hover {
|
||||
color: #000;
|
||||
cursor: pointer;
|
||||
filter: alpha(opacity=50);
|
||||
opacity: .5;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail button.close
|
||||
{
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .modal-header {
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
display:block;
|
||||
padding:10px 5px;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .modal-header h4 {font-size:15px;font-weight:400}
|
||||
|
||||
#pocztapolskaen_order_detail .modal-footer {
|
||||
border-top: 1px solid #e5e5e5;
|
||||
padding: 15px 5px 0px 5px;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .modal-title {width:100%;clear:both;}
|
||||
|
||||
#pocztapolskaen_order_detail .modal-body {padding:5px;}
|
||||
#packModal .panel {float:left;}
|
||||
#packModal .form-group {clear:both;}
|
||||
|
||||
|
||||
#pocztapolskaen_order_detail #services .panel-heading {margin:0px -5px;font-size:14px;}
|
||||
#pocztapolskaen_order_detail #services label.control-label {padding-left:5px;padding-right:5px;}
|
||||
|
||||
|
||||
#pocztapolskaen_order_detail .help-block {
|
||||
color: #959595;
|
||||
display: block;
|
||||
margin-bottom: 10px;
|
||||
margin-top: 5px;
|
||||
font-style: italic;
|
||||
font-size:12px;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .fixed-width-lg {width: 160px !important;}
|
||||
#pocztapolskaen_order_detail .fixed-width-xxl {width: 200px !important;}
|
||||
|
||||
#pocztapolskaen_order_detail .switch {display: block;height: 26px;position: relative;}
|
||||
#pocztapolskaen_order_detail .prestashop-switch {-webkit-box-shadow: rgba(0,0,0,.15) 0 1px 4px 1px inset;background-color: #eee;border-radius: 3px;box-shadow: inset 0 1px 4px 1px rgba(0,0,0,.15);color: #333;margin-top: 3px;text-align: center;}
|
||||
#pocztapolskaen_order_detail .switch input {
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail label {
|
||||
display: inline-block;
|
||||
font-weight: 700;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .switch * {
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .prestashop-switch * {
|
||||
outline: 0 !important;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .switch > span,
|
||||
#pocztapolskaen_order_detail .switch label {
|
||||
line-height: 26px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .switch label {
|
||||
float: left;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
width: 50%;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .prestashop-switch label {
|
||||
-webkit-transition: color .2s ease-out;
|
||||
color: #bbb;
|
||||
cursor: pointer;
|
||||
font-weight: 400;
|
||||
text-transform: uppercase;
|
||||
transition: color .2s ease-out;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .prestashop-switch input:checked + label {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .switch a {
|
||||
-webkit-transition: all .3s ease-out;
|
||||
display: block;
|
||||
transition: all .3s ease-out;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .switch a {
|
||||
-webkit-box-shadow: "#1B7088" 0 -1px 0 inset;
|
||||
background-color: #2eacce;
|
||||
border: 1px solid #279cbb;
|
||||
box-shadow: inset 0 -1px 0 "#1B7088";
|
||||
color: #fff;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 50%;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .switch input:last-of-type:checked ~ a {
|
||||
-webkit-box-shadow: "#5C5C5C" 0 -1px 0 inset;
|
||||
background-color: #e08f95;
|
||||
border: 1px solid #ca6f6f;
|
||||
box-shadow: inset 0 -1px 0 "#5C5C5C";
|
||||
left: 50%;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .switch input:disabled ~ a {
|
||||
-webkit-box-shadow: #b3b3b3 0 -1px 0 inset !important;
|
||||
background-color: #cdcdcd !important;
|
||||
border: 1px solid #b3b3b3 !important;
|
||||
box-shadow: inset 0 -1px 0 #b3b3b3 !important;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .input-group {border-collapse: separate;display: table;position: relative;}
|
||||
|
||||
#pocztapolskaen_order_detail .input-group-addon,
|
||||
#pocztapolskaen_order_detail .input-group-btn,
|
||||
#pocztapolskaen_order_detail .input-group .form-control,
|
||||
#pocztapolskaen_order_detail .input-group input[type="password"],
|
||||
#pocztapolskaen_order_detail .input-group input[type="search"],
|
||||
#pocztapolskaen_order_detail .input-group input[type="text"],
|
||||
#pocztapolskaen_order_detail .input-group select,
|
||||
#pocztapolskaen_order_detail .input-group textarea {
|
||||
display: table-cell;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .input-group-addon,
|
||||
#pocztapolskaen_order_detail .input-group-btn {
|
||||
vertical-align: middle;
|
||||
white-space: nowrap;
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .input-group-addon {
|
||||
background-color: #f5f8f9;
|
||||
border: 1px solid #c7d6db;
|
||||
border-left-color: rgb(199, 214, 219);
|
||||
border-left-style: solid;
|
||||
border-left-width: 1px;
|
||||
border-radius: 3px;
|
||||
border-top-left-radius: 3px;
|
||||
border-bottom-left-radius: 3px;
|
||||
color: #555;
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
line-height: 1;
|
||||
padding: 6px 8px;
|
||||
text-align: center;
|
||||
}
|
||||
#pocztapolskaen_order_detail .input-group input:first-child[type="text"] {
|
||||
border-bottom-right-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
#pocztapolskaen_order_detail .input-group-addon:last-child {
|
||||
border-bottom-left-radius: 0;
|
||||
border-top-left-radius: 0;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .input-group-addon:last-child {
|
||||
border-left: 0;
|
||||
}
|
||||
|
||||
#pocztapolskaen_order_detail .btn-default {
|
||||
background-color: #fff;
|
||||
border-color: #dedede;
|
||||
color: #363a41;
|
||||
}
|
||||
20
modules/pocztapolskaen/views/templates/admin/css/orders.css
Normal file
20
modules/pocztapolskaen/views/templates/admin/css/orders.css
Normal file
@@ -0,0 +1,20 @@
|
||||
#packModal .panel{
|
||||
border: 0 !important;
|
||||
box-shadow: none !important;
|
||||
margin-bottom: 2px !important;
|
||||
padding: 5px !important;
|
||||
|
||||
}
|
||||
#packModal .panel-heading{
|
||||
border: 0 !important;
|
||||
padding: 5px !important;
|
||||
}
|
||||
#packModal hr{
|
||||
margin: 0 !important;
|
||||
}
|
||||
#packModal .form-group {
|
||||
margin-bottom: 10px !important;
|
||||
}
|
||||
#packModal span label{
|
||||
font-weight: normal;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
.fixed-width-xxxl{width:300px !important;}
|
||||
.checkbox{
|
||||
padding-left: 60px;
|
||||
margin-top: 2px !important;
|
||||
margin-bottom: 2px !important;
|
||||
|
||||
}
|
||||
.checkbox label{
|
||||
font-weight: bold !important;
|
||||
}
|
||||
.bootstrap .row{
|
||||
margin:auto;
|
||||
}
|
||||
|
||||
.bootstrap h4{
|
||||
margin-top: 2px !important;
|
||||
margin-bottom: 2px !important;
|
||||
}
|
||||
|
||||
36
modules/pocztapolskaen/views/templates/admin/form.tpl
Normal file
36
modules/pocztapolskaen/views/templates/admin/form.tpl
Normal file
@@ -0,0 +1,36 @@
|
||||
<div class="panel">
|
||||
<h3><i class="icon-tag"></i> {l s='Ustawienia'}</h3>
|
||||
<div class="productTabs">
|
||||
<ul class="tab nav nav-tabs">
|
||||
<li class="tab-row">
|
||||
<a class="tab-page" id="pp_link_settings" href="javascript:displayTab('settings');"> {l s='Moje konto'}</a>
|
||||
</li>
|
||||
<li class="tab-row">
|
||||
<a class="tab-page" id="pp_link_statuses" href="javascript:displayTab('statuses');"> {l s='Statusy'}</a>
|
||||
</li>
|
||||
<li class="tab-row">
|
||||
<a class="tab-page" id="pp_link_delivery" href="javascript:displayTab('delivery');"> {l s='Dostawa'}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<form action="" id="cart_rule_form" class="form-horizontal" method="post">
|
||||
<input type="hidden" id="currentFormTab" name="currentFormTab" value="informations" />
|
||||
<div id="pp_settings" class="panel pp_tab">
|
||||
{include file='./settings.tpl'}
|
||||
</div>
|
||||
<div id="pp_statuses" class="panel pp_tab">
|
||||
{include file='./statuses.tpl'}
|
||||
</div>
|
||||
<div id="pp_delivery" class="panel pp_tab">
|
||||
{include file='./delivery.tpl'}
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<script type="text/javascript">
|
||||
{*var currentToken = '{$currentToken|escape:'quotes'}';*}
|
||||
var currentFormTab = '{if isset($smarty.post.currentFormTab)}{$smarty.post.currentFormTab|escape:'quotes'}{else}settings{/if}';
|
||||
|
||||
</script>
|
||||
<script type="text/javascript" src="{$module_dir|escape:'htmlall':'UTF-8'}/views/templates/admin/js/settings.js"></script>
|
||||
</div>
|
||||
@@ -0,0 +1,8 @@
|
||||
<div id='pocztapolskaen_order_detail'>
|
||||
|
||||
|
||||
<script type='text/javascript'>
|
||||
loadPocztaPolskaOrderForm('{$getFormLink}')
|
||||
</script>
|
||||
|
||||
</div>
|
||||
33
modules/pocztapolskaen/views/templates/admin/js/orders.js
Normal file
33
modules/pocztapolskaen/views/templates/admin/js/orders.js
Normal file
@@ -0,0 +1,33 @@
|
||||
function sendBulkAction(form, action)
|
||||
{
|
||||
String.prototype.splice = function(index, remove, string) {
|
||||
return (this.slice(0, index) + string + this.slice(index + Math.abs(remove)));
|
||||
};
|
||||
|
||||
var form_action = $(form).attr('action');
|
||||
|
||||
if (form_action.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g,'').replace(/\s+/g,' ') == '')
|
||||
return false;
|
||||
|
||||
if(action === 'submitBulkprintLabelsorders'){
|
||||
$(form).attr('target', '_blank');
|
||||
}
|
||||
if (form_action.indexOf('#') == -1)
|
||||
$(form).attr('action', form_action + '&' + action);
|
||||
else
|
||||
$(form).attr('action', form_action.splice(form_action.lastIndexOf('&'), 0, '&' + action));
|
||||
|
||||
$(form).submit();
|
||||
$(form).removeAttr('target');
|
||||
}
|
||||
|
||||
function checkDelBoxes(pForm, boxName, parent)
|
||||
{
|
||||
for (i = 0; i < pForm.elements.length; i++){
|
||||
if (pForm.elements[i].name == boxName){
|
||||
if(!pForm.elements[i].disabled){
|
||||
pForm.elements[i].checked = parent;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
384
modules/pocztapolskaen/views/templates/admin/js/pack.js
Normal file
384
modules/pocztapolskaen/views/templates/admin/js/pack.js
Normal file
@@ -0,0 +1,384 @@
|
||||
var ppPack = {
|
||||
currentToken: '',
|
||||
orders: [],
|
||||
currentOrder: '',
|
||||
formDefaultValues: [],
|
||||
msg: '',
|
||||
ids: [],
|
||||
loading: false,
|
||||
package: '',
|
||||
init: function (currentToken) {
|
||||
var $this = this;
|
||||
if (typeof (currentToken) !== 'undefined') {
|
||||
this.currentToken = currentToken;
|
||||
}
|
||||
$("#action_pack_modal").click(function () {
|
||||
$this.ids = $this.getIds();
|
||||
$this.orders = [];
|
||||
$this.currentOrder = '';
|
||||
ppPack.getOrders();
|
||||
});
|
||||
$(".pack_modal_next_button").click(function () {
|
||||
$this.beforeProcess();
|
||||
setTimeout(function(){
|
||||
$this.next();
|
||||
$this.afterProcess();
|
||||
}, 100);
|
||||
return false;
|
||||
});
|
||||
$(".pack_inline_action").click(function () {
|
||||
var id = $(this).closest('tr').data('id_order');
|
||||
$this.ids = [id];
|
||||
$this.orders = [];
|
||||
$this.currentOrder = '';
|
||||
$this.getOrders();
|
||||
});
|
||||
$(".btn_add_package").click(function () {
|
||||
var id = $(this).data('id_order');
|
||||
$this.ids = [id];
|
||||
$this.orders = [];
|
||||
$this.currentOrder = '';
|
||||
$this.getOrders();
|
||||
});
|
||||
$("#packModal").on('shown.bs.modal', function () {
|
||||
$this.currentOrder = $this.getOrder();
|
||||
$this.setOrderTitle(ppPack.currentOrder);
|
||||
$this.setButtonLabel();
|
||||
$this.setPackage();
|
||||
$this.setFields();
|
||||
$this.setDatePicker();
|
||||
//ppSetting.toggleCombo($this.package);
|
||||
$('#pp_packages').on('change', function () {
|
||||
$this.package = $(this).val();
|
||||
$this.setFields();
|
||||
});
|
||||
});
|
||||
|
||||
$this.formDefaultValues = $('#packModal select,input,textarea').serializeArray();
|
||||
$this.setNextButton();
|
||||
},
|
||||
setNextButton: function (disabled) {
|
||||
var disabled = disabled || false;
|
||||
$('.pack_modal_next_button').attr('disabled', disabled);
|
||||
},
|
||||
next: function () {
|
||||
var $this = this;
|
||||
var errors = $this.validate();
|
||||
if (errors.length <= 0) {
|
||||
$("#packModal").find('.alert-danger').hide();
|
||||
$this.packOrder(function () {
|
||||
if ($this.isEmpty()) {
|
||||
$("#packModal").modal('hide');
|
||||
window.location.reload();
|
||||
} else {
|
||||
$this.clearErrors();
|
||||
var order = $this.getOrder();
|
||||
$this.setOrderTitle(order);
|
||||
$this.setButtonLabel();
|
||||
$this.restoreDefault();
|
||||
$this.setPackage();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$this.displayErrors(errors)
|
||||
}
|
||||
},
|
||||
skipOrder: function (callback) {
|
||||
callback();
|
||||
},
|
||||
packOrder: function (callback) {
|
||||
var $this = this;
|
||||
if (typeof ($this.currentOrder.id_order) != undefined && $this.currentOrder.id_order !== '') {
|
||||
var $this = this;
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: 'index.php',
|
||||
async: false,
|
||||
dataType: 'json',
|
||||
data: $('#packModal select,input,textarea').serialize() + '&controller=AdminPocztaPolskaOrders&action=packOrder&id_order=' + $this.currentOrder.id_order + '&ajax=1&token=' + $this.currentToken,
|
||||
beforeSend: function () {
|
||||
//$this.beforeProcess();
|
||||
},
|
||||
error: function () {
|
||||
//$this.beforeProcess();
|
||||
},
|
||||
success: function (res)
|
||||
{
|
||||
if (res.success) {
|
||||
if (typeof (callback) !== 'undefined') {
|
||||
callback();
|
||||
}
|
||||
} else {
|
||||
$this.displayErrors(res.errors);
|
||||
}
|
||||
//$this.afterProcess();
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
restoreDefault: function () {
|
||||
$("#packModal").find('.alert-danger').hide();
|
||||
for (var i in this.formDefaultValues) {
|
||||
var el = $('#packModal').find('[name="' + this.formDefaultValues[i].name + '"]');
|
||||
if (el.is(':radio')) {
|
||||
$('#packModal').find('[name="' + this.formDefaultValues[i].name + '"][value="' + this.formDefaultValues[i].value + '"]').attr('checked', true);
|
||||
} else {
|
||||
el.val(this.formDefaultValues[i].value);
|
||||
}
|
||||
}
|
||||
$('#packModal').find('#pp_packages').trigger('change');
|
||||
},
|
||||
replaceDefaultVariables: function(){
|
||||
var $this = this;
|
||||
var package = $this.getPackage();
|
||||
desc = $('#' + package + '_opis_przesylki').val();
|
||||
|
||||
if(typeof(desc) !== 'undefined'){
|
||||
$('#' + package + '_opis_przesylki').val(desc.replace('{reference}',$this.currentOrder.reference).replace('{id_order}',$this.currentOrder.id_order).replace('{message}',$this.currentOrder.message));
|
||||
}
|
||||
|
||||
},
|
||||
setOrderTitle: function(order) {
|
||||
var text = '<a href="'+order.url+'" target="_blank">'+order.name+'</a>';
|
||||
$('#modal_order_info').html(text);
|
||||
var counter = this.getOrdersCount();
|
||||
if(counter>1){
|
||||
$('#orders_counter').parent().show();
|
||||
$('#orders_counter').html(counter);
|
||||
}
|
||||
else{
|
||||
$('#orders_counter').parent().hide();
|
||||
}
|
||||
},
|
||||
setButtonLabel: function(){
|
||||
var counter = this.getOrdersCount();
|
||||
var label;
|
||||
if(counter>1){
|
||||
label = $('.pack_modal_next_button').data('label_multi');
|
||||
}
|
||||
else{
|
||||
label = $('.pack_modal_next_button').data('label_one');
|
||||
}
|
||||
$('.pack_modal_next_button').html(label);
|
||||
},
|
||||
getOrdersCount: function(){
|
||||
var i = 1;
|
||||
for (var id in this.orders) {
|
||||
i++;
|
||||
}
|
||||
return i;
|
||||
},
|
||||
getOrder: function () {
|
||||
var $this = this;
|
||||
if (!$this.isEmpty()) {
|
||||
var i = 0;
|
||||
for (var id in $this.orders) {
|
||||
if (i === 0) {
|
||||
$this.currentOrder = $this.orders[id];
|
||||
delete $this.orders[id];
|
||||
i++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $this.currentOrder;
|
||||
},
|
||||
isEmpty: function () {
|
||||
return $.isEmptyObject(ppPack.orders);
|
||||
},
|
||||
isChecked: function () {
|
||||
return $('[name="pocztapolskaen_orderBox[]"]:checked').length;
|
||||
},
|
||||
beforeProcess: function () {
|
||||
$('.loader').show();
|
||||
this.setNextButton(true);
|
||||
},
|
||||
afterProcess: function () {
|
||||
var $this = this;
|
||||
$this.setNextButton(false);
|
||||
$('.loader').hide();
|
||||
},
|
||||
validate: function () {
|
||||
var $this = this;
|
||||
var errors = [];
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: 'index.php',
|
||||
async: false,
|
||||
dataType: 'json',
|
||||
data: $('#packModal select,input,textarea').serialize() + '&controller=AdminPocztaPolskaOrders&action=validatePackage&id_order=' + $this.currentOrder.id_order + '&ajax=1&token=' + $this.currentToken,
|
||||
beforeSend: function () {
|
||||
//$this.beforeProcess();
|
||||
},
|
||||
error: function (xhr, textStatus, errorThrown) {
|
||||
$this.beforeProcess();
|
||||
//window.location.reload();
|
||||
},
|
||||
success: function (res)
|
||||
{
|
||||
for (var i in res.errors) {
|
||||
errors.push(res.errors[i]);
|
||||
}
|
||||
//$this.afterProcess();
|
||||
}
|
||||
});
|
||||
|
||||
return errors;
|
||||
},
|
||||
getIds: function () {
|
||||
var ids = [];
|
||||
$('[name="ordersBox[]"]:checked').each(function () {
|
||||
var id = $(this).val();
|
||||
var shipment_number = $('[data-id_order="' + id + '"]').data('shipment_number');
|
||||
if (shipment_number === '' || shipment_number == 0) {
|
||||
ids.push(id);
|
||||
}
|
||||
});
|
||||
return ids;
|
||||
},
|
||||
displayErrors: function (errors) {
|
||||
this.clearErrors();
|
||||
for (var i in errors) {
|
||||
var li = $('<li></li>').html(errors[i]);
|
||||
$("#packModal").find('.alert-danger ol').append(li);
|
||||
}
|
||||
$("#packModal").find('.alert-danger').show();
|
||||
},
|
||||
clearErrors: function () {
|
||||
$("#packModal").find('.alert-danger ol').html('');
|
||||
},
|
||||
setDatePicker: function(){
|
||||
$(".datepicker_modal").datepicker({
|
||||
prevText: '',
|
||||
nextText: '',
|
||||
dateFormat: 'yy-mm-dd',
|
||||
beforeShow: function() {
|
||||
setTimeout(function(){
|
||||
$('.ui-datepicker').css('z-index', 99999999999999);
|
||||
}, 0);
|
||||
}
|
||||
});
|
||||
},
|
||||
setFields: function () {
|
||||
var $this = this;
|
||||
$this.setPni();
|
||||
$this.setWeight();
|
||||
$this.setAmountNumber();
|
||||
$this.setDeclarationValue();
|
||||
$this.replaceDefaultVariables();
|
||||
},
|
||||
setWeight: function () {
|
||||
var $this = this;
|
||||
var package = $this.getPackage();
|
||||
if ($('#' + package + '_masa').val() === ''||$('#' + package + '_masa').val()<=0 || $this.currentOrder.weight >0) {
|
||||
$('#' + package + '_masa').val($.trim($this.currentOrder.weight));
|
||||
}
|
||||
},
|
||||
setAmountNumber: function () {
|
||||
var $this = this;
|
||||
var package = $this.getPackage();
|
||||
$('input[name="' + package + '_rodzaj"]').on('click', function () {
|
||||
if ($(this).val() === 'pobranie') {
|
||||
if ($('#' + package + '_kwota_pobrania_zl').val() === '') {
|
||||
$('#' + package + '_kwota_pobrania_zl').val($this.currentOrder.total);
|
||||
}
|
||||
if ($('#' + package + '_numer_rachunku').val() === '') {
|
||||
$('#' + package + '_numer_rachunku').val($this.currentOrder.amount_number);
|
||||
}
|
||||
}
|
||||
});
|
||||
if($this.currentOrder.is_cod){
|
||||
$('#' + package + '_pobranie_on').trigger('click');
|
||||
}
|
||||
|
||||
//if ($('input[name="' + package + '_rodzaj"][value="1"]').is(':checked')) {
|
||||
if ($('#' + package + '_kwota_pobrania_zl').val() === '') {
|
||||
$('#' + package + '_kwota_pobrania_zl').val($this.currentOrder.total);
|
||||
}
|
||||
if ($('#' + package + '_numer_rachunku').val() === '') {
|
||||
$('#' + package + '_numer_rachunku').val($this.currentOrder.amount_number);
|
||||
//}
|
||||
}
|
||||
},
|
||||
setDeclarationValue: function () {
|
||||
var $this = this;
|
||||
var package = $this.getPackage();
|
||||
$('input[name="' + package + '_deklaracja_wartosci"]').on('click', function () {
|
||||
if ($(this).val() === '1') {
|
||||
if ($('#' + package + '_wartosc_zl').val() === ''||$('#' + package + '_wartosc_zl').val()<=0) {
|
||||
$('#' + package + '_wartosc_zl').val($this.currentOrder.total);
|
||||
}
|
||||
if ($('#' + package + '_wartosc_kg').val() === ''||$('#' + package + '_wartosc_kg').val()<=0 || $this.currentOrder.weight >0) {
|
||||
$('#' + package + '_wartosc_kg').val($this.currentOrder.weight);
|
||||
}
|
||||
}
|
||||
});
|
||||
//if ($('input[name="' + package + '_deklaracja_wartosci"][value="1"]').is(':checked')) {
|
||||
if ($('#' + package + '_wartosc_zl').val() === '' || $('#' + package + '_wartosc_zl').val() <= 0) {
|
||||
$('#' + package + '_wartosc_zl').val($this.currentOrder.total);
|
||||
//}
|
||||
//if ($('#' + package + '_wartosc_kg').val() === ''||$('#' + package + '_wartosc_kg').val() <=0 ) {
|
||||
if($this.currentOrder.weight > 0){
|
||||
$('#' + package + '_wartosc_kg').val($this.currentOrder.weight);
|
||||
}
|
||||
|
||||
//}
|
||||
}
|
||||
},
|
||||
setPni: function () {
|
||||
var $this = this;
|
||||
var package = $this.getPackage();
|
||||
$('input[name="' + package + '_odbior_w_punkcie"]').on('click', function () {
|
||||
if ($(this).val() === '1') {
|
||||
if ($('#' + package + '_pokaz_mape').val() === '') {
|
||||
$('#' + package + '_pokaz_mape').val($this.currentOrder.point);
|
||||
}
|
||||
if ($('#' + package + '_pni').val() === '') {
|
||||
$('#' + package + '_pni').val($this.currentOrder.pni);
|
||||
}
|
||||
}
|
||||
});
|
||||
if($this.currentOrder.point !=''){
|
||||
$('#' + package + '_odbior_w_punkcie_on').trigger('click');
|
||||
}
|
||||
if ($('input[name="' + package + '_odbior_w_punkcie"][value="1"]').is(':checked')) {
|
||||
if ($('#' + package + '_pokaz_mape').val() === '') {
|
||||
$('#' + package + '_pokaz_mape').val($this.currentOrder.point);
|
||||
}
|
||||
if ($('#' + package + '_pni').val() === '') {
|
||||
$('#' + package + '_pni').val($this.currentOrder.pni);
|
||||
}
|
||||
}
|
||||
},
|
||||
showPackModal: function () {
|
||||
this.restoreDefault();
|
||||
$("#packModal").modal('show');
|
||||
},
|
||||
getPackage: function () {
|
||||
if (this.package === '') {
|
||||
this.package = $('#pp_packages').val();
|
||||
}
|
||||
return this.package;
|
||||
},
|
||||
getOrders: function () {
|
||||
var $this = this;
|
||||
for (var i in $this.ids) {
|
||||
var id = $this.ids[i];
|
||||
$this.orders[id] = $('[data-id_order="' + id + '"]').data();
|
||||
}
|
||||
if ($this.orders.length > 0) {
|
||||
$this.showPackModal();
|
||||
}
|
||||
},
|
||||
selectPickup: function(params){
|
||||
var point = params.name +', ' + params.street + ', ' + params.zipCode +' ' +params.city;
|
||||
var package = ppPack.getPackage();
|
||||
$('#' + package + '_pokaz_mape').val(point);
|
||||
$('#' + package + '_pni').val(params.pni);
|
||||
},
|
||||
setPackage: function(){
|
||||
$('#pp_packages').val(this.currentOrder.package).trigger('change');
|
||||
}
|
||||
}
|
||||
5
modules/pocztapolskaen/views/templates/admin/js/sets.js
Normal file
5
modules/pocztapolskaen/views/templates/admin/js/sets.js
Normal file
@@ -0,0 +1,5 @@
|
||||
var ppSet = {
|
||||
toggle: function(selector){
|
||||
$("#"+selector).toggle();
|
||||
}
|
||||
}
|
||||
230
modules/pocztapolskaen/views/templates/admin/js/settings.js
Normal file
230
modules/pocztapolskaen/views/templates/admin/js/settings.js
Normal file
@@ -0,0 +1,230 @@
|
||||
var ppSetting = {
|
||||
toggleRows: function (package_name) {
|
||||
if (package_name !== '') {
|
||||
$('.' + package_name + '.toggle_rows').find('*').change(function () {
|
||||
var val = $(this).val();
|
||||
var name = $(this).attr('name');
|
||||
var is_checked = $(this).attr('type') == 'radio' ? $(this).is(':checked') : 0;
|
||||
|
||||
if (typeof (name) !== 'undefined' && val !== '') {
|
||||
if(is_checked){
|
||||
$('.' + package_name + '.' + name).hide();
|
||||
$('.' + package_name + '.' + name + '.' + val).trigger('change').show();
|
||||
$('.' + package_name + '.' + name + '.' + val).find('*').trigger('change',package_name);
|
||||
}
|
||||
}
|
||||
}).trigger('change');
|
||||
|
||||
$('.toggle_panel.' + package_name).show();
|
||||
}
|
||||
},
|
||||
toggleCombo: function (package_name) {
|
||||
if(package_name !== ''){
|
||||
$('.' + package_name + '.toggle_combo').find('input,select').change(function(event){
|
||||
val = $(this).val();
|
||||
name = $(this).attr('name');
|
||||
var is_checked = $(this).attr('type') == 'radio' ? $(this).is(':checked') : 1;
|
||||
if(is_checked){
|
||||
$('.' + package_name +'.' + name).hide();
|
||||
$('.' + package_name +'.' + name + '.' + val).trigger('change').show();
|
||||
if(typeof (event.isTrigger) == 'undefined'){
|
||||
$('.' + package_name +'.' + name).find('input[type="text"]').val('');
|
||||
$('.' + package_name +'.' + name).find('[id$="off"]').trigger('click').attr('checked',true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}).trigger('change');
|
||||
}
|
||||
},
|
||||
packageChnage: function () {
|
||||
$('#pp_packages,#pp_packages_con').change(function () {
|
||||
var val = $(this).val();
|
||||
$('.toggle_panel').hide();
|
||||
$(this).closest('.tab-pane').find('.form-group').hide();
|
||||
$('.packages').show();
|
||||
if (val !== '') {
|
||||
$('.' + val).show();
|
||||
ppSetting.toggleRows(val);
|
||||
ppSetting.toggleCombo(val);
|
||||
}
|
||||
$('.btn-delivery').show();
|
||||
}).trigger('change');
|
||||
},
|
||||
myAccountRender: function () {
|
||||
var settings = $('#settings').clone(true);
|
||||
$('#settings').html('<div id="my_account_settings" class="col-lg-5"></div><div id="my_account_info" class="col-lg-7"></div>');
|
||||
$('#my_account_settings').append(settings);
|
||||
$('#settings').addClass('clearfix');
|
||||
$('.my_account_info').each(function () {
|
||||
$('#my_account_info').append($(this));
|
||||
});
|
||||
$('.my_account_info2').each(function () {
|
||||
$('#my_account_info').append($(this));
|
||||
});
|
||||
},
|
||||
showPassword: function(){
|
||||
$('.icon-key').parent().click(function(){
|
||||
if($('#pp_password').attr('type') == 'password'){
|
||||
$('#pp_password').attr('type','text');
|
||||
} else {
|
||||
$('#pp_password').attr('type','password');
|
||||
}
|
||||
})
|
||||
},
|
||||
setRodoButtons: function(){
|
||||
$('#pocztapolskaen_login_button').click(function () {
|
||||
if($('#pp_process_data_rodo_modal').is(':checked')){
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: 'index.php',
|
||||
async: false,
|
||||
dataType: 'json',
|
||||
data: 'controller=AdminPocztaPolskaSettings&action=saveRodo&ajax=1&pp_process_data_rodo='+Number($('#pp_process_data_rodo_modal').is(':checked'))+'&pp_process_information_rodo='+Number($('#pp_process_information_rodo_modal').is(':checked'))+'&token='+token,
|
||||
success: function (res)
|
||||
{
|
||||
if (res.success) {
|
||||
$("#pp_process_data_rodo").prop('checked',$('#pp_process_data_rodo_modal').is(':checked'));
|
||||
$("#pp_process_information_rodo").prop('checked',$('#pp_process_information_rodo_modal').is(':checked'));
|
||||
$('#modal_rodo_information').modal('hide');
|
||||
|
||||
} else {
|
||||
alert('Błąd zapisu');
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
error_modal('Błąd','Zaznacz wymagane zgody');
|
||||
}
|
||||
|
||||
});
|
||||
},
|
||||
showRODOForm: function(){
|
||||
if(!$('#pp_process_data_rodo').is(':checked')){
|
||||
$('#modal_rodo_information').modal({
|
||||
backdrop: 'static',
|
||||
keyboard: false
|
||||
});
|
||||
}
|
||||
|
||||
},
|
||||
sendSettingForm: function(){
|
||||
$('#configuration_form').submit();
|
||||
},
|
||||
closeConfirmation:function(){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
function change(val) {
|
||||
$('.toggle_panel').hide();
|
||||
$('#services .form-group').hide();
|
||||
$('.services_packages').show();
|
||||
if (val !== '') {
|
||||
$('.' + val).show();
|
||||
ppSetting.toggleRows(val);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function setSettingsButtons() {
|
||||
$('.btn-settings').click(function () {
|
||||
$('form input[name="action"]').val($(this).attr('data-name'));
|
||||
if($(this).attr('data-name') == 'settings' && !$('#pp_process_data_rodo').is(':checked')){
|
||||
confirm_modal('Czy na pewno?','W przypadku wycofania zgody nastąpi wylogowanie z wtyczki i ' +
|
||||
'konieczne będzie ponowne zalogowanie i wyrażenie zgody','OK','Anuluj',ppSetting.sendSettingForm,ppSetting.closeConfirmation);
|
||||
} else {
|
||||
$(this).parents('form').submit();
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
function setPassword() {
|
||||
if ($('form input[name="pp_password_new"]').val() != '') {
|
||||
$('.new_pass').show();
|
||||
} else {
|
||||
$('.new_pass').hide();
|
||||
}
|
||||
$('.show-password').click(function () {
|
||||
$('.new_pass').show();
|
||||
});
|
||||
}
|
||||
|
||||
function setKarta() {
|
||||
if ($('#pp_default_karta_id').val() == null) {
|
||||
$('.default_karta').hide();
|
||||
} else {
|
||||
$('.default_karta').show();
|
||||
}
|
||||
}
|
||||
function setUrzad() {
|
||||
if ($('#pp_default_urzad_id').val() == null) {
|
||||
$('.default_urzad').hide();
|
||||
} else {
|
||||
$('.default_urzad').show();
|
||||
}
|
||||
}
|
||||
/*function setKurierSerwis() {
|
||||
$('.pp_pocztex_serwis').change(function () {
|
||||
if ($(this).val() == 'EKSPRES24') {
|
||||
if ($('#pp_pocztex_wartosc_ubezpieczenia').find('option[value="1000"]').attr('selected')) {
|
||||
$('#pp_pocztex_wartosc_ubezpieczenia').find('option[value="5000"]').attr('selected', true);
|
||||
}
|
||||
$('#pp_pocztex_wartosc_ubezpieczenia').find('option[value="1000"]').attr('disabled', true);
|
||||
} else {
|
||||
$('#pp_pocztex_wartosc_ubezpieczenia').find('option[value="1000"]').attr('disabled', false);
|
||||
}
|
||||
}).trigger('change');
|
||||
}*/
|
||||
|
||||
function setTabs() {
|
||||
if (typeof (active_tab) != undefined && active_tab != '') {
|
||||
$('.active').removeClass('active');
|
||||
$('a[href="#' + active_tab + '"]').parent().addClass('active');
|
||||
$('#' + active_tab).addClass('active');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function ppLoadScripts(){
|
||||
ppSetting.packageChnage();
|
||||
ppSetting.toggleRows('statuses');
|
||||
ppSetting.toggleRows('delivery');
|
||||
ppSetting.toggleCombo();
|
||||
ppSetting.showPassword();
|
||||
setSettingsButtons();
|
||||
setPassword();
|
||||
setKarta();
|
||||
setUrzad();
|
||||
setTabs();
|
||||
ppSetting.setRodoButtons();
|
||||
ppSetting.showRODOForm();
|
||||
//setKurierSerwis();
|
||||
ppSetting.myAccountRender();
|
||||
|
||||
//$('#modal_rodo_information').modal('show');
|
||||
//confirm_modal('test','test2','OK','Anuluj');
|
||||
}
|
||||
|
||||
function loadPocztaPolskaOrderForm(link){
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: link,
|
||||
async: false,
|
||||
dataType: 'html',
|
||||
success: function (res)
|
||||
{
|
||||
$('#pocztapolskaen_order_detail').html(res);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
ppLoadScripts();
|
||||
});
|
||||
@@ -0,0 +1,27 @@
|
||||
{*
|
||||
* 2007-2017 PrestaShop
|
||||
*
|
||||
* 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.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* 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-2017 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<a href="{$href|escape:'html':'UTF-8'}" title="{$action}"{if isset($name)} name="{$name|escape:'html':'UTF-8'}"{/if} {if isset($class)} class="{$class|escape:'html':'UTF-8'}"{/if} class="default">
|
||||
<i class="icon-asterisk"></i> {$action}
|
||||
</a>
|
||||
@@ -0,0 +1,27 @@
|
||||
{*
|
||||
* 2007-2017 PrestaShop
|
||||
*
|
||||
* 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.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* 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-2017 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<a href="{$href|escape:'html':'UTF-8'}"{if isset($confirm)} onclick="if (confirm('{$confirm}')){ldelim}return true;{rdelim}else{ldelim}event.stopPropagation(); event.preventDefault();{rdelim};"{/if} title="{$action|escape:'html':'UTF-8'}" class="delete">
|
||||
<i class="icon-trash"></i> {$action|escape:'html':'UTF-8'}
|
||||
</a>
|
||||
@@ -0,0 +1,27 @@
|
||||
{*
|
||||
* 2007-2017 PrestaShop
|
||||
*
|
||||
* 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.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* 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-2017 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<a href="{$href|escape:'html':'UTF-8'}" title="{$action|escape:'html':'UTF-8'}" class="edit">
|
||||
<i class="icon-pencil"></i> {$action|escape:'html':'UTF-8'}
|
||||
</a>
|
||||
@@ -0,0 +1,27 @@
|
||||
{*
|
||||
* 2007-2017 PrestaShop
|
||||
*
|
||||
* 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.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* 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-2017 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<a href="{$href|escape:'html':'UTF-8'}" target="_blank" title="{$action}"{if isset($name)} name="{$name|escape:'html':'UTF-8'}"{/if} {if isset($class)} class="{$class|escape:'html':'UTF-8'}"{/if} class="default">
|
||||
<i class="icon-asterisk"></i> {$action}
|
||||
</a>
|
||||
@@ -0,0 +1,7 @@
|
||||
<div style="width:100%;border:2px solid #D52B1E;padding:10px;text-align:center;margin-bottom:20px;">
|
||||
<div class="pp_pickup_at_point_{if $isCod}cod{else}standard{/if}">
|
||||
<button type="button" class="btn btn-default" onclick="PPWidgetApp.toggleMap({if $isCod}selectPointCod{else}selectPoint{/if}, {if $isCod}true{else}false{/if}, address);checkRadioCarrier($(this));">{l s='Wybierz z mapy' mod='pocztapolskaen'}</button>
|
||||
<div class="pickup_info{if $isCod}_cod{/if}" style="font-weight:bold;padding:10px 0px">{$deliveryPointInfo}</div>
|
||||
<input type="hidden" id="{if $isCod}pp_pni_pickup_cod{else}pp_pni_pickup{/if}" value="{$deliveryPoint}">
|
||||
</div>
|
||||
</div>
|
||||
206
modules/pocztapolskaen/views/templates/hook/carrier.tpl
Normal file
206
modules/pocztapolskaen/views/templates/hook/carrier.tpl
Normal file
@@ -0,0 +1,206 @@
|
||||
{if $ps16}
|
||||
<div class="pp_pickup_at_point_standard" style="display: none;">
|
||||
<button type="button" class="btn btn-default" onclick="PPWidgetApp.toggleMap(selectPoint, false, address);checkRadioCarrier($(this));">{l s='Wybierz z mapy' mod='pocztapolskaen'}</button>
|
||||
<div class="pickup_info">{$pickup_standard_point}</div>
|
||||
<input type="hidden" id="pp_pni_pickup" value="{$pni}">
|
||||
</div>
|
||||
<div class="pp_pickup_at_point_cod" style="display: none;">
|
||||
<button type="button" class="btn btn-default" onclick="PPWidgetApp.toggleMap(selectPointCod, true, address);checkRadioCarrier($(this));">{l s='Wybierz z mapy' mod='pocztapolskaen'}</button>
|
||||
<div class="pickup_info_cod">{$pickup_cod_point}</div>
|
||||
<input type="hidden" id="pp_pni_pickup_cod" value="{$pni_cod}">
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<style type="text/css">#overlay{literal}{z-index:1000000}{/literal}</style>
|
||||
|
||||
<script>
|
||||
var pickup_at_point_standard = {$pickup_at_point_standard};
|
||||
var pickup_at_point_cod = {$pickup_at_point_cod};
|
||||
var baseUrl = "{$baseUrl}";
|
||||
var ajaxAddPointLink = "{$ajaxAddPointLink nofilter}";
|
||||
var address_has_telephone = {$has_telephone};
|
||||
var address = "{$address}";
|
||||
var ps16 = "{$ps16}";
|
||||
|
||||
var pp_message_point = "{l s='Wybrany punkt: ' mod='pocztapolskaen'}";
|
||||
var pp_message_error = "{l s='Wystąpił błąd: ' mod='pocztapolskaen'}";
|
||||
var pp_message_choose_point = "{l s='Wybierz punkt odbioru' mod='pocztapolskaen'}";
|
||||
var pp_message_add_phone = "{l s='Wprowadź numer telefonu' mod='pocztapolskaen'}";
|
||||
var pp_message_add_mobile_phone = "{l s='Wprowadź numer telefonu komórkowego do danych adresowych' mod='pocztapolskaen'}";
|
||||
|
||||
|
||||
function selectPoint(params, cod){
|
||||
var pni= params.pni;
|
||||
var point = params.name +', ' + params.street + ', ' + params.zipCode +' ' +params.city;
|
||||
var cod_info = (typeof cod === 'undefined' ? 0: cod);
|
||||
|
||||
$('.pickup_info').html('');
|
||||
$('.pickup_info_cod').html('');
|
||||
$('.pickup_info'+(cod?'_cod':'')).html('<b>' + pp_message_point + '<b>' + point);
|
||||
$('#pp_pni_pickup'+(cod?'_cod':'')).val(pni);
|
||||
$.ajax({
|
||||
url: ajaxAddPointLink,
|
||||
type: 'POST',
|
||||
dataType: "text",
|
||||
data: 'ajax=true&pni=' + pni +'&point='+point+'&cod='+cod_info,
|
||||
success: function(result){
|
||||
if (result.hasError){
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
error: function(XMLHttpRequest, textStatus, errorThrown) {
|
||||
alert(pp_message_error + XMLHttpRequest + "\n" + 'Status: ' + textStatus);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function selectPointCod(params){
|
||||
selectPoint(params, 1);
|
||||
}
|
||||
|
||||
function addPickupAtPoint(){
|
||||
|
||||
if($( ".pickup_at_point_standard").length == 0){
|
||||
$.each(pickup_at_point_standard, function(i,val){
|
||||
if(val != ''){
|
||||
|
||||
//target = $("input[data-key='"+val+",']").closest('tr').find('td.delivery_option_logo').next('td');
|
||||
target = $("input[value='"+val+",']").parents('.delivery_option').find('.delivery_option_logo').next();
|
||||
if(target.length == 0){
|
||||
target = $("input[value='"+val+",']").closest('.delivery-option').find('.carrier-name');
|
||||
}
|
||||
|
||||
obj = $(".pp_pickup_at_point_standard").clone();
|
||||
obj.removeClass('pp_pickup_at_point_standard');
|
||||
obj.addClass('pickup_at_point_standard');
|
||||
obj.show();
|
||||
obj.appendTo(target);
|
||||
}
|
||||
});
|
||||
}
|
||||
if($('.pickup_at_point_cod').length == 0){
|
||||
$.each(pickup_at_point_cod, function(i,val){
|
||||
if(val != ''){
|
||||
//target = $("input[data-key='"+val+",']").closest('tr').find('td.delivery_option_logo').next('td');
|
||||
target = $("input[value='"+val+",']").parents('.delivery_option').find('.delivery_option_logo').next();
|
||||
if(target.length == 0){
|
||||
target = $("input[value='"+val+",']").closest('.delivery-option').find('.carrier-name');
|
||||
}
|
||||
obj = $(".pp_pickup_at_point_cod").clone();
|
||||
obj.removeClass('pp_pickup_at_point_cod');
|
||||
obj.addClass('pickup_at_point_cod');
|
||||
obj.show();
|
||||
obj.appendTo(target);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function checkRadioCarrier(obj){
|
||||
radio = obj.closest('tr').find("input[type='radio']");
|
||||
if(radio.length == 0){
|
||||
radio = obj.closest('.delivery-option').find("input[type='radio']");
|
||||
}
|
||||
//console.log(obj.closest("input[type='radio']"));
|
||||
if(ps16){
|
||||
radio.prop('checked',true).trigger('click').trigger('change');
|
||||
} else {
|
||||
radio.prop('checked',true);
|
||||
}
|
||||
|
||||
$('#overlay').css('z-index','10000000');
|
||||
}
|
||||
{if $ps16}
|
||||
$(document).ready(function () {
|
||||
addPickupAtPoint();
|
||||
{else}
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
{/if}
|
||||
|
||||
if($("[name='confirmDeliveryOption']").length > 0){
|
||||
$('#js-delivery').append($( "<div class='alert-danger'></div>"));
|
||||
}
|
||||
|
||||
$("[name='confirmDeliveryOption']").click(function(){
|
||||
id = parseInt($("input[name*='delivery_option']:checked").val());
|
||||
error = [];
|
||||
if ($.inArray(id, pickup_at_point_standard) != -1){
|
||||
|
||||
|
||||
if($('#pp_pni_pickup').val()==''){
|
||||
error.push(pp_message_choose_point);
|
||||
}
|
||||
|
||||
if(!address_has_telephone){
|
||||
error.push(pp_message_add_phone);
|
||||
}
|
||||
|
||||
}
|
||||
if ($.inArray(id, pickup_at_point_cod) != -1){
|
||||
if($('#pp_pni_pickup_cod').val()==''){
|
||||
error.push(pp_message_choose_point);
|
||||
}
|
||||
|
||||
if(!address_has_telephone){
|
||||
error.push(pp_message_add_phone)
|
||||
}
|
||||
}
|
||||
|
||||
if(error.length > 0){
|
||||
$('.alert-danger').html(error.join('<br>'));
|
||||
$('.alert-danger').fadeIn();
|
||||
setTimeout(function(){
|
||||
$('.alert-danger').fadeOut();
|
||||
}, 3000);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
);
|
||||
|
||||
$(".payment_module").click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
id = parseInt($("input[name*='delivery_option']:checked").val());
|
||||
error_data = [];
|
||||
if ($.inArray(id, pickup_at_point_standard) != -1){
|
||||
|
||||
|
||||
if($('#pp_pni_pickup').val()==''){
|
||||
error_data.push(pp_message_choose_point);
|
||||
}
|
||||
|
||||
if(!address_has_telephone){
|
||||
error_data.push(pp_message_add_phone);
|
||||
}
|
||||
|
||||
}
|
||||
if ($.inArray(id, pickup_at_point_cod) != -1){
|
||||
if($('#pp_pni_pickup_cod').val()==''){
|
||||
error_data.push(pp_message_choose_point);
|
||||
}
|
||||
|
||||
if(!address_has_telephone){
|
||||
error_data.push(pp_message_add_mobile_phone);
|
||||
}
|
||||
}
|
||||
|
||||
if(error_data.length > 0){
|
||||
var errors = '';
|
||||
for (error in error_data) {
|
||||
errors += $('<div />').html(error_data[error]).text() + "\n";
|
||||
}
|
||||
|
||||
alert(errors);
|
||||
|
||||
} else {
|
||||
window.location = $(this).find('a').attr('href');
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
</script>
|
||||
1
modules/pocztapolskaen/views/templates/hook/header.tpl
Normal file
1
modules/pocztapolskaen/views/templates/hook/header.tpl
Normal file
@@ -0,0 +1 @@
|
||||
<script src="https://mapa.ecommerce.poczta-polska.pl/widget/scripts/ppwidget.js"></script>
|
||||
Reference in New Issue
Block a user