Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 45.95 KB | None | 0 0
  1. {*
  2. * 2007-2015 PrestaShop
  3. *
  4. * NOTICE OF LICENSE
  5. *
  6. * This source file is subject to the Academic Free License (AFL 3.0)
  7. * that is bundled with this package in the file LICENSE.txt.
  8. * It is also available through the world-wide-web at this URL:
  9. * http://opensource.org/licenses/afl-3.0.php
  10. * If you did not receive a copy of the license and are unable to
  11. * obtain it through the world-wide-web, please send an email
  12. * to license@prestashop.com so we can send you a copy immediately.
  13. *
  14. * DISCLAIMER
  15. *
  16. * Do not edit or add to this file if you wish to upgrade PrestaShop to newer
  17. * versions in the future. If you wish to customize PrestaShop for your
  18. * needs please refer to http://www.prestashop.com for more information.
  19. *
  20. * @author PrestaShop SA <contact@prestashop.com>
  21. * @copyright 2007-2015 PrestaShop SA
  22. * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
  23. * International Registered Trademark & Property of PrestaShop SA
  24. *}
  25. <script>
  26. //configure=ets_megamenu
  27. var url = new URL(location.href);
  28. var c = url.searchParams.get("configure");
  29. console.log(c);
  30. if (c=='ets_megamenu') {
  31. jQuery(document).ready(function () {
  32. jQuery('[name="id_category[]"]').on('change', function() {
  33. jQuery('[name="id_category[]"]').not(this).prop('checked', false);
  34. jQuery( "span.tree-item-name" ).removeClass( "tree-selected" );
  35. jQuery( "span.tree-folder-name" ).removeClass( "tree-selected" );
  36. //jQuery(this).addClass( "tree-selected" );
  37. });
  38. });
  39. }
  40. </script>
  41. {if isset($fields.title)}<h3>{$fields.title}</h3>{/if}
  42.  
  43. {if isset($tabs) && $tabs|count}
  44. <script type="text/javascript">
  45. var helper_tabs = {$tabs|json_encode};
  46. var unique_field_id = '';
  47. </script>
  48. {/if}
  49. {block name="defaultForm"}
  50. {if isset($identifier_bk) && $identifier_bk == $identifier}{capture name='identifier_count'}{counter name='identifier_count'}{/capture}{/if}
  51. {assign var='identifier_bk' value=$identifier scope='parent'}
  52. {if isset($table_bk) && $table_bk == $table}{capture name='table_count'}{counter name='table_count'}{/capture}{/if}
  53. {assign var='table_bk' value=$table scope='parent'}
  54. <form id="{if isset($fields.form.form.id_form)}{$fields.form.form.id_form|escape:'html':'UTF-8'}{else}{if $table == null}configuration_form{else}{$table}_form{/if}{if isset($smarty.capture.table_count) && $smarty.capture.table_count}_{$smarty.capture.table_count|intval}{/if}{/if}" class="defaultForm form-horizontal{if isset($name_controller) && $name_controller} {$name_controller}{/if}"{if isset($current) && $current} action="{$current|escape:'html':'UTF-8'}{if isset($token) && $token}&amp;token={$token|escape:'html':'UTF-8'}{/if}"{/if} method="post" enctype="multipart/form-data"{if isset($style)} style="{$style}"{/if} novalidate>
  55. {if $form_id}
  56. <input type="hidden" name="{$identifier}" id="{$identifier}{if isset($smarty.capture.identifier_count) && $smarty.capture.identifier_count}_{$smarty.capture.identifier_count|intval}{/if}" value="{$form_id}" />
  57. {/if}
  58. {if !empty($submit_action)}
  59. <input type="hidden" name="{$submit_action}" value="1" />
  60. {/if}
  61. {foreach $fields as $f => $fieldset}
  62. {block name="fieldset"}
  63. {capture name='fieldset_name'}{counter name='fieldset_name'}{/capture}
  64. <div class="panel" 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}">
  65. {foreach $fieldset.form as $key => $field}
  66. {if $key == 'legend'}
  67. {block name="legend"}
  68. <div class="panel-heading">
  69. {if isset($field.image) && isset($field.title)}<img src="{$field.image}" alt="{$field.title|escape:'html':'UTF-8'}" />{/if}
  70. {if isset($field.icon)}<i class="{$field.icon}"></i>{/if}
  71. {$field.title}
  72. </div>
  73. {/block}
  74. {elseif $key == 'description' && $field}
  75. <div class="alert alert-info">{$field}</div>
  76. {elseif $key == 'warning' && $field}
  77. <div class="alert alert-warning">{$field}</div>
  78. {elseif $key == 'success' && $field}
  79. <div class="alert alert-success">{$field}</div>
  80. {elseif $key == 'error' && $field}
  81. <div class="alert alert-danger">{$field}</div>
  82. {elseif $key == 'input'}
  83. <div class="form-wrapper">
  84. {foreach $field as $input}
  85. {block name="input_row"}
  86. <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}>
  87. {if $input.type == 'hidden'}
  88. <input type="hidden" name="{$input.name}" id="{$input.name}" value="{$fields_value[$input.name]|escape:'html':'UTF-8'}" />
  89. {else}
  90. {block name="label"}
  91. {if isset($input.label)}
  92. <label class="control-label col-lg-3{if isset($input.required) && $input.required && $input.type != 'radio'} required{/if}">
  93. {if isset($input.hint)}
  94. <span class="label-tooltip" data-toggle="tooltip" data-html="true" title="{if is_array($input.hint)}
  95. {foreach $input.hint as $hint}
  96. {if is_array($hint)}
  97. {$hint.text|escape:'html':'UTF-8'}
  98. {else}
  99. {$hint|escape:'html':'UTF-8'}
  100. {/if}
  101. {/foreach}
  102. {else}
  103. {$input.hint|escape:'html':'UTF-8'}
  104. {/if}">
  105. {/if}
  106. {$input.label}
  107. {if isset($input.hint)}
  108. </span>
  109. {/if}
  110. </label>
  111. {/if}
  112. {/block}
  113.  
  114. {block name="field"}
  115. <div class="col-lg-{if isset($input.col)}{$input.col|intval}{else}9{/if} {if !isset($input.label)}col-lg-offset-3{/if}">
  116. {block name="input"}
  117. {if $input.type == 'text' || $input.type == 'tags'}
  118. {if isset($input.lang) AND $input.lang}
  119. {if $languages|count > 1}
  120. <div class="form-group">
  121. {/if}
  122. {foreach $languages as $language}
  123. {assign var='value_text' value=$fields_value[$input.name][$language.id_lang]}
  124. {if $languages|count > 1}
  125. <div class="translatable-field lang-{$language.id_lang}" {if $language.id_lang != $defaultFormLanguage}style="display:none"{/if}>
  126. <div class="col-lg-9">
  127. {/if}
  128. {if $input.type == 'tags'}
  129. {literal}
  130. <script type="text/javascript">
  131. $().ready(function () {
  132. var input_id = '{/literal}{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}{literal}';
  133. $('#'+input_id).tagify({delimiters: [13,44], addTagPrompt: '{/literal}{l s='Add tag' js=1}{literal}'});
  134. $({/literal}'#{$table}{literal}_form').submit( function() {
  135. $(this).find('#'+input_id).val($('#'+input_id).tagify('serialize'));
  136. });
  137. });
  138. </script>
  139. {/literal}
  140. {/if}
  141. {if isset($input.maxchar) || isset($input.prefix) || isset($input.suffix)}
  142. <div class="input-group{if isset($input.class)} {$input.class}{/if}">
  143. {/if}
  144. {if isset($input.maxchar)}
  145. <span id="{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}_counter" class="input-group-addon">
  146. <span class="text-count-down">{$input.maxchar}</span>
  147. </span>
  148. {/if}
  149. {if isset($input.prefix)}
  150. <span class="input-group-addon">
  151. {$input.prefix}
  152. </span>
  153. {/if}
  154. <input type="text"
  155. id="{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}"
  156. name="{$input.name}_{$language.id_lang}"
  157. class="{if isset($input.class)}{$input.class}{/if}{if $input.type == 'tags'} tagify{/if}"
  158. 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}"
  159. onkeyup="if (isArrowKey(event)) return ;updateFriendlyURL();"
  160. {if isset($input.size)} size="{$input.size}"{/if}
  161. {if isset($input.maxchar)} data-maxchar="{$input.maxchar}"{/if}
  162. {if isset($input.maxlength)} maxlength="{$input.maxlength}"{/if}
  163. {if isset($input.readonly) && $input.readonly} readonly="readonly"{/if}
  164. {if isset($input.disabled) && $input.disabled} disabled="disabled"{/if}
  165. {if isset($input.autocomplete) && !$input.autocomplete} autocomplete="off"{/if}
  166. {if isset($input.required) && $input.required} required="required" {/if}
  167. {if isset($input.placeholder) && $input.placeholder} placeholder="{$input.placeholder}"{/if} />
  168. {if isset($input.suffix)}
  169. <span class="input-group-addon">
  170. {$input.suffix}
  171. </span>
  172. {/if}
  173. {if isset($input.maxchar) || isset($input.prefix) || isset($input.suffix)}
  174. </div>
  175. {/if}
  176. {if $languages|count > 1}
  177. </div>
  178. <div class="col-lg-2">
  179. <button type="button" class="btn btn-default dropdown-toggle" tabindex="-1" data-toggle="dropdown">
  180. {$language.iso_code}
  181. <i class="icon-caret-down"></i>
  182. </button>
  183. <ul class="dropdown-menu">
  184. {foreach from=$languages item=language}
  185. <li><a href="javascript:hideOtherLanguage({$language.id_lang});" tabindex="-1">{$language.name}</a></li>
  186. {/foreach}
  187. </ul>
  188. </div>
  189. </div>
  190. {/if}
  191. {/foreach}
  192. {if isset($input.maxchar)}
  193. <script type="text/javascript">
  194. function countDown($source, $target) {
  195. var max = $source.attr("data-maxchar");
  196. $target.html(max-$source.val().length);
  197.  
  198. $source.keyup(function(){
  199. $target.html(max-$source.val().length);
  200. });
  201. }
  202.  
  203. $(document).ready(function(){
  204. {foreach from=$languages item=language}
  205. 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"));
  206. {/foreach}
  207. });
  208. </script>
  209. {/if}
  210. {if $languages|count > 1}
  211. </div>
  212. {/if}
  213. {else}
  214. {if $input.type == 'tags'}
  215. {literal}
  216. <script type="text/javascript">
  217. $().ready(function () {
  218. var input_id = '{/literal}{if isset($input.id)}{$input.id}{else}{$input.name}{/if}{literal}';
  219. $('#'+input_id).tagify({delimiters: [13,44], addTagPrompt: '{/literal}{l s='Add tag'}{literal}'});
  220. $({/literal}'#{$table}{literal}_form').submit( function() {
  221. $(this).find('#'+input_id).val($('#'+input_id).tagify('serialize'));
  222. });
  223. });
  224. </script>
  225. {/literal}
  226. {/if}
  227. {assign var='value_text' value=$fields_value[$input.name]}
  228. {if isset($input.maxchar) || isset($input.prefix) || isset($input.suffix)}
  229. <div class="input-group{if isset($input.class)} {$input.class}{/if}">
  230. {/if}
  231. {if isset($input.maxchar)}
  232. <span id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}_counter" class="input-group-addon"><span class="text-count-down">{$input.maxchar}</span></span>
  233. {/if}
  234. {if isset($input.prefix)}
  235. <span class="input-group-addon">
  236. {$input.prefix}
  237. </span>
  238. {/if}
  239. <input type="text"
  240. name="{$input.name}"
  241. id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"
  242. 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}"
  243. class="{if isset($input.class)}{$input.class}{/if}{if $input.type == 'tags'} tagify{/if}"
  244. {if isset($input.size)} size="{$input.size}"{/if}
  245. {if isset($input.maxchar)} data-maxchar="{$input.maxchar}"{/if}
  246. {if isset($input.maxlength)} maxlength="{$input.maxlength}"{/if}
  247. {if isset($input.readonly) && $input.readonly} readonly="readonly"{/if}
  248. {if isset($input.disabled) && $input.disabled} disabled="disabled"{/if}
  249. {if isset($input.autocomplete) && !$input.autocomplete} autocomplete="off"{/if}
  250. {if isset($input.required) && $input.required } required="required" {/if}
  251. {if isset($input.placeholder) && $input.placeholder } placeholder="{$input.placeholder}"{/if}
  252. />
  253. {if isset($input.suffix)}
  254. <span class="input-group-addon">
  255. {$input.suffix}
  256. </span>
  257. {/if}
  258.  
  259. {if isset($input.maxchar) || isset($input.prefix) || isset($input.suffix)}
  260. </div>
  261. {/if}
  262. {if isset($input.maxchar)}
  263. <script type="text/javascript">
  264. function countDown($source, $target) {
  265. var max = $source.attr("data-maxchar");
  266. $target.html(max-$source.val().length);
  267.  
  268. $source.keyup(function(){
  269. $target.html(max-$source.val().length);
  270. });
  271. }
  272. $(document).ready(function(){
  273. countDown($("#{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"), $("#{if isset($input.id)}{$input.id}{else}{$input.name}{/if}_counter"));
  274. });
  275. </script>
  276. {/if}
  277. {/if}
  278. {elseif $input.type == 'textbutton'}
  279. {assign var='value_text' value=$fields_value[$input.name]}
  280. <div class="row">
  281. <div class="col-lg-9">
  282. {if isset($input.maxchar)}
  283. <div class="input-group">
  284. <span id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}_counter" class="input-group-addon">
  285. <span class="text-count-down">{$input.maxchar}</span>
  286. </span>
  287. {/if}
  288. <input type="text"
  289. name="{$input.name}"
  290. id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"
  291. 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}"
  292. class="{if isset($input.class)}{$input.class}{/if}{if $input.type == 'tags'} tagify{/if}"
  293. {if isset($input.size)} size="{$input.size}"{/if}
  294. {if isset($input.maxchar)} data-maxchar="{$input.maxchar}"{/if}
  295. {if isset($input.maxlength)} maxlength="{$input.maxlength}"{/if}
  296. {if isset($input.readonly) && $input.readonly} readonly="readonly"{/if}
  297. {if isset($input.disabled) && $input.disabled} disabled="disabled"{/if}
  298. {if isset($input.autocomplete) && !$input.autocomplete} autocomplete="off"{/if}
  299. {if isset($input.placeholder) && $input.placeholder } placeholder="{$input.placeholder}"{/if}
  300. />
  301. {if isset($input.suffix)}{$input.suffix}{/if}
  302. {if isset($input.maxchar)}
  303. </div>
  304. {/if}
  305. </div>
  306. <div class="col-lg-2">
  307. <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}"
  308. {foreach from=$input.button.attributes key=name item=value}
  309. {if $name|lower != 'class'}
  310. {$name|escape:'html':'UTF-8'}="{$value|escape:'html':'UTF-8'}"
  311. {/if}
  312. {/foreach} >
  313. {$input.button.label}
  314. </button>
  315. </div>
  316. </div>
  317. {if isset($input.maxchar)}
  318. <script type="text/javascript">
  319. function countDown($source, $target) {
  320. var max = $source.attr("data-maxchar");
  321. $target.html(max-$source.val().length);
  322. $source.keyup(function(){
  323. $target.html(max-$source.val().length);
  324. });
  325. }
  326. $(document).ready(function() {
  327. countDown($("#{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"), $("#{if isset($input.id)}{$input.id}{else}{$input.name}{/if}_counter"));
  328. });
  329. </script>
  330. {/if}
  331. {elseif $input.type == 'swap'}
  332. <div class="form-group">
  333. <div class="col-lg-9">
  334. <div class="form-control-static row">
  335. <div class="col-xs-6">
  336. <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">
  337. {foreach $input.options.query AS $option}
  338. {if is_object($option)}
  339. {if !in_array($option->$input.options.id, $fields_value[$input.name])}
  340. <option value="{$option->$input.options.id}">{$option->$input.options.name}</option>
  341. {/if}
  342. {elseif $option == "-"}
  343. <option value="">-</option>
  344. {else}
  345. {if !in_array($option[$input.options.id], $fields_value[$input.name])}
  346. <option value="{$option[$input.options.id]}">{$option[$input.options.name]}</option>
  347. {/if}
  348. {/if}
  349. {/foreach}
  350. </select>
  351. <a href="#" id="addSwap" class="btn btn-default btn-block">{l s='Add'} <i class="icon-arrow-right"></i></a>
  352. </div>
  353. <div class="col-xs-6">
  354. <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">
  355. {foreach $input.options.query AS $option}
  356. {if is_object($option)}
  357. {if in_array($option->$input.options.id, $fields_value[$input.name])}
  358. <option value="{$option->$input.options.id}">{$option->$input.options.name}</option>
  359. {/if}
  360. {elseif $option == "-"}
  361. <option value="">-</option>
  362. {else}
  363. {if in_array($option[$input.options.id], $fields_value[$input.name])}
  364. <option value="{$option[$input.options.id]}">{$option[$input.options.name]}</option>
  365. {/if}
  366. {/if}
  367. {/foreach}
  368. </select>
  369. <a href="#" id="removeSwap" class="btn btn-default btn-block"><i class="icon-arrow-left"></i> {l s='Remove'}</a>
  370. </div>
  371. </div>
  372. </div>
  373. </div>
  374. {elseif $input.type == 'select'}
  375. {if isset($input.options.query) && !$input.options.query && isset($input.empty_message)}
  376. {$input.empty_message}
  377. {$input.required = false}
  378. {$input.desc = null}
  379. {else}
  380. <select name="{$input.name|escape:'html':'utf-8'}"
  381. class="{if isset($input.class)}{$input.class|escape:'html':'utf-8'}{/if} fixed-width-xl"
  382. id="{if isset($input.id)}{$input.id|escape:'html':'utf-8'}{else}{$input.name|escape:'html':'utf-8'}{/if}"
  383. {if isset($input.multiple)} multiple="multiple"{/if}
  384. {if isset($input.size)} size="{$input.size|escape:'html':'utf-8'}"{/if}
  385. {if isset($input.onchange)} onchange="{$input.onchange|escape:'html':'utf-8'}"{/if}
  386. {if isset($input.disabled)} disabled{/if}>
  387. {if isset($input.options.default)}
  388. <option value="{$input.options.default.value|escape:'html':'utf-8'}">{$input.options.default.label|escape:'html':'utf-8'}</option>
  389. {/if}
  390. {if isset($input.options.optiongroup)}
  391. {foreach $input.options.optiongroup.query AS $optiongroup}
  392. <optgroup label="{$optiongroup[$input.options.optiongroup.label]}">
  393. {foreach $optiongroup[$input.options.options.query] as $option}
  394. <option value="{$option[$input.options.options.id]}"
  395. {if isset($input.multiple)}
  396. {foreach $fields_value[$input.name] as $field_value}
  397. {if $field_value == $option[$input.options.options.id]}selected="selected"{/if}
  398. {/foreach}
  399. {else}
  400. {if $fields_value[$input.name] == $option[$input.options.options.id]}selected="selected"{/if}
  401. {/if}
  402. >{$option[$input.options.options.name]}</option>
  403. {/foreach}
  404. </optgroup>
  405. {/foreach}
  406. {else}
  407. {foreach $input.options.query AS $option}
  408. {if is_object($option)}
  409. <option value="{$option->$input.options.id}"
  410. {if isset($input.multiple)}
  411. {foreach $fields_value[$input.name] as $field_value}
  412. {if $field_value == $option->$input.options.id}
  413. selected="selected"
  414. {/if}
  415. {/foreach}
  416. {else}
  417. {if $fields_value[$input.name] == $option->$input.options.id}
  418. selected="selected"
  419. {/if}
  420. {/if}
  421. >{$option->$input.options.name}</option>
  422. {elseif $option == "-"}
  423. <option value="">-</option>
  424. {else}
  425. <option value="{$option[$input.options.id]}"
  426. {if isset($input.multiple)}
  427. {foreach $fields_value[$input.name] as $field_value}
  428. {if $field_value == $option[$input.options.id]}
  429. selected="selected"
  430. {/if}
  431. {/foreach}
  432. {else}
  433. {if $fields_value[$input.name] == $option[$input.options.id]}
  434. selected="selected"
  435. {/if}
  436. {/if}
  437. >{$option[$input.options.name]}</option>
  438.  
  439. {/if}
  440. {/foreach}
  441. {/if}
  442. </select>
  443. {/if}
  444. {elseif $input.type == 'radio'}
  445. {foreach $input.values as $value}
  446. <div class="radio {if isset($input.class)}{$input.class}{/if}">
  447. {strip}
  448. <label>
  449. <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}/>
  450. {$value.label}
  451. </label>
  452. {/strip}
  453. </div>
  454. {if isset($value.p) && $value.p}<p class="help-block">{$value.p}</p>{/if}
  455. {/foreach}
  456. {elseif $input.type == 'switch'}
  457. <span class="switch prestashop-switch fixed-width-lg">
  458. {foreach $input.values as $value}
  459. <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}/>
  460. {strip}
  461. <label {if $value.value == 1} for="{$input.name}_on"{else} for="{$input.name}_off"{/if}>
  462. {if $value.value == 1}
  463. {l s='Yes'}
  464. {else}
  465. {l s='No'}
  466. {/if}
  467. </label>
  468. {/strip}
  469. {/foreach}
  470. <a class="slide-button btn"></a>
  471. </span>
  472. {elseif $input.type == 'textarea'}
  473. {assign var=use_textarea_autosize value=true}
  474. {if isset($input.lang) AND $input.lang}
  475. {foreach $languages as $language}
  476. {if $languages|count > 1}
  477. <div class="form-group translatable-field lang-{$language.id_lang}"{if $language.id_lang != $defaultFormLanguage} style="display:none;"{/if}>
  478. <div class="col-lg-9">
  479. {/if}
  480. <textarea name="{$input.name}_{$language.id_lang}" class="{if isset($input.autoload_rte) && $input.autoload_rte}rte autoload_rte{if isset($input.class)} {$input.class}{/if}{else}{if isset($input.class)} {$input.class}{else} textarea-autosize{/if}{/if}">{$fields_value[$input.name][$language.id_lang]|escape:'html':'UTF-8'}</textarea>
  481. {if $languages|count > 1}
  482. </div>
  483. <div class="col-lg-2">
  484. <button type="button" class="btn btn-default dropdown-toggle" tabindex="-1" data-toggle="dropdown">
  485. {$language.iso_code}
  486. <span class="caret"></span>
  487. </button>
  488. <ul class="dropdown-menu">
  489. {foreach from=$languages item=language}
  490. <li>
  491. <a href="javascript:hideOtherLanguage({$language.id_lang});" tabindex="-1">{$language.name}</a>
  492. </li>
  493. {/foreach}
  494. </ul>
  495. </div>
  496. </div>
  497. {/if}
  498. {/foreach}
  499.  
  500. {else}
  501. <textarea 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{if isset($input.class)} {$input.class}{/if}{else} textarea-autosize{/if}">{$fields_value[$input.name]|escape:'html':'UTF-8'}</textarea>
  502. {/if}
  503.  
  504. {elseif $input.type == 'checkbox'}
  505. {if isset($input.expand)}
  506. <a class="btn btn-default show_checkbox{if strtolower($input.expand.default) == 'hide'} hidden{/if}" href="#">
  507. <i class="icon-{$input.expand.show.icon}"></i>
  508. {$input.expand.show.text}
  509. {if isset($input.expand.print_total) && $input.expand.print_total > 0}
  510. <span class="badge">{$input.expand.print_total}</span>
  511. {/if}
  512. </a>
  513. <a class="btn btn-default hide_checkbox{if strtolower($input.expand.default) == 'show'} hidden{/if}" href="#">
  514. <i class="icon-{$input.expand.hide.icon}"></i>
  515. {$input.expand.hide.text}
  516. {if isset($input.expand.print_total) && $input.expand.print_total > 0}
  517. <span class="badge">{$input.expand.print_total}</span>
  518. {/if}
  519. </a>
  520. {/if}
  521. {foreach $input.values.query as $value}
  522. {assign var=id_checkbox value=$input.name|cat:'_'|cat:$value[$input.values.id]}
  523. <div class="checkbox{if isset($input.expand) && strtolower($input.expand.default) == 'show'} hidden{/if}">
  524. {strip}
  525. <label for="{$id_checkbox}">
  526. <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} />
  527. {$value[$input.values.name]}
  528. </label>
  529. {/strip}
  530. </div>
  531. {/foreach}
  532. {elseif $input.type == 'change-password'}
  533. <div class="row">
  534. <div class="col-lg-12">
  535. <button type="button" id="{$input.name}-btn-change" class="btn btn-default">
  536. <i class="icon-lock"></i>
  537. {l s='Change password...'}
  538. </button>
  539. <div id="{$input.name}-change-container" class="form-password-change well hide">
  540. <div class="form-group">
  541. <label for="old_passwd" class="control-label col-lg-2 required">
  542. {l s='Current password'}
  543. </label>
  544. <div class="col-lg-10">
  545. <div class="input-group fixed-width-lg">
  546. <span class="input-group-addon">
  547. <i class="icon-unlock"></i>
  548. </span>
  549. <input type="password" id="old_passwd" name="old_passwd" class="form-control" value="" required="required" autocomplete="off">
  550. </div>
  551. </div>
  552. </div>
  553. <hr />
  554. <div class="form-group">
  555. <label for="{$input.name}" class="required control-label col-lg-2">
  556. <span class="label-tooltip" data-toggle="tooltip" data-html="true" title="" data-original-title="{l s='Password should be at least 8 characters long.'}">
  557. {l s='New password'}
  558. </span>
  559. </label>
  560. <div class="col-lg-9">
  561. <div class="input-group fixed-width-lg">
  562. <span class="input-group-addon">
  563. <i class="icon-key"></i>
  564. </span>
  565. <input type="password" id="{$input.name}" name="{$input.name}" class="{if isset($input.class)}{$input.class}{/if}" value="" required="required" autocomplete="off"/>
  566. </div>
  567. <span id="{$input.name}-output"></span>
  568. </div>
  569. </div>
  570. <div class="form-group">
  571. <label for="{$input.name}2" class="required control-label col-lg-2">
  572. {l s='Confirm password'}
  573. </label>
  574. <div class="col-lg-4">
  575. <div class="input-group fixed-width-lg">
  576. <span class="input-group-addon">
  577. <i class="icon-key"></i>
  578. </span>
  579. <input type="password" id="{$input.name}2" name="{$input.name}2" class="{if isset($input.class)}{$input.class}{/if}" value="" autocomplete="off"/>
  580. </div>
  581. </div>
  582. </div>
  583. <div class="form-group">
  584. <div class="col-lg-10 col-lg-offset-2">
  585. <input type="text" class="form-control fixed-width-md pull-left" id="{$input.name}-generate-field" disabled="disabled">
  586. <button type="button" id="{$input.name}-generate-btn" class="btn btn-default">
  587. <i class="icon-random"></i>
  588. {l s='Generate password'}
  589. </button>
  590. </div>
  591. </div>
  592. <div class="form-group">
  593. <div class="col-lg-10 col-lg-offset-2">
  594. <p class="checkbox">
  595. <label for="{$input.name}-checkbox-mail">
  596. <input name="passwd_send_email" id="{$input.name}-checkbox-mail" type="checkbox" checked="checked">
  597. {l s='Send me this new password by Email'}
  598. </label>
  599. </p>
  600. </div>
  601. </div>
  602. <div class="row">
  603. <div class="col-lg-12">
  604. <button type="button" id="{$input.name}-cancel-btn" class="btn btn-default">
  605. <i class="icon-remove"></i>
  606. {l s='Cancel'}
  607. </button>
  608. </div>
  609. </div>
  610. </div>
  611. </div>
  612. </div>
  613. <script>
  614. $(function(){
  615. var $oldPwd = $('#old_passwd');
  616. var $passwordField = $('#{$input.name}');
  617. var $output = $('#{$input.name}-output');
  618. var $generateBtn = $('#{$input.name}-generate-btn');
  619. var $generateField = $('#{$input.name}-generate-field');
  620. var $cancelBtn = $('#{$input.name}-cancel-btn');
  621.  
  622. var feedback = [
  623. { badge: 'text-danger', text: '{l s="Invalid" js=1}' },
  624. { badge: 'text-warning', text: '{l s="Okay" js=1}' },
  625. { badge: 'text-success', text: '{l s="Good" js=1}' },
  626. { badge: 'text-success', text: '{l s="Fabulous" js=1}' }
  627. ];
  628. $.passy.requirements.length.min = 8;
  629. $.passy.requirements.characters = 'DIGIT';
  630. $passwordField.passy(function(strength, valid) {
  631. $output.text(feedback[strength].text);
  632. $output.removeClass('text-danger').removeClass('text-warning').removeClass('text-success');
  633. $output.addClass(feedback[strength].badge);
  634. if (valid){
  635. $output.show();
  636. }
  637. else {
  638. $output.hide();
  639. }
  640. });
  641. var $container = $('#{$input.name}-change-container');
  642. var $changeBtn = $('#{$input.name}-btn-change');
  643. var $confirmPwd = $('#{$input.name}2');
  644.  
  645. $changeBtn.on('click',function(){
  646. $container.removeClass('hide');
  647. $changeBtn.addClass('hide');
  648. });
  649. $generateBtn.click(function() {
  650. $generateField.passy( 'generate', 8 );
  651. var generatedPassword = $generateField.val();
  652. $passwordField.val(generatedPassword);
  653. $confirmPwd.val(generatedPassword);
  654. });
  655. $cancelBtn.on('click',function() {
  656. $container.find("input").val("");
  657. $container.addClass('hide');
  658. $changeBtn.removeClass('hide');
  659. });
  660.  
  661. $.validator.addMethod('password_same', function(value, element) {
  662. return $passwordField.val() == $confirmPwd.val();
  663. }, '{l s="Invalid password confirmation" js=1}');
  664.  
  665. $('#employee_form').validate({
  666. rules: {
  667. "email": {
  668. email: true
  669. },
  670. "{$input.name}" : {
  671. minlength: 8
  672. },
  673. "{$input.name}2": {
  674. password_same: true
  675. },
  676. "old_passwd" : {},
  677. },
  678. // override jquery validate plugin defaults for bootstrap 3
  679. highlight: function(element) {
  680. $(element).closest('.form-group').addClass('has-error');
  681. },
  682. unhighlight: function(element) {
  683. $(element).closest('.form-group').removeClass('has-error');
  684. },
  685. errorElement: 'span',
  686. errorClass: 'help-block',
  687. errorPlacement: function(error, element) {
  688. if(element.parent('.input-group').length) {
  689. error.insertAfter(element.parent());
  690. } else {
  691. error.insertAfter(element);
  692. }
  693. }
  694. });
  695. });
  696. </script>
  697. {elseif $input.type == 'password'}
  698. <div class="input-group fixed-width-lg">
  699. <span class="input-group-addon">
  700. <i class="icon-key"></i>
  701. </span>
  702. <input type="password"
  703. id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"
  704. name="{$input.name}"
  705. class="{if isset($input.class)}{$input.class}{/if}"
  706. value=""
  707. {if isset($input.autocomplete) && !$input.autocomplete}autocomplete="off"{/if}
  708. {if isset($input.required) && $input.required } required="required" {/if} />
  709. </div>
  710.  
  711. {elseif $input.type == 'birthday'}
  712. <div class="form-group">
  713. {foreach $input.options as $key => $select}
  714. <div class="col-lg-2">
  715. <select name="{$key}" class="fixed-width-lg{if isset($input.class)} {$input.class}{/if}">
  716. <option value="">-</option>
  717. {if $key == 'months'}
  718. {*
  719. This comment is useful to the translator tools /!\ do not remove them
  720. {l s='January'}
  721. {l s='February'}
  722. {l s='March'}
  723. {l s='April'}
  724. {l s='May'}
  725. {l s='June'}
  726. {l s='July'}
  727. {l s='August'}
  728. {l s='September'}
  729. {l s='October'}
  730. {l s='November'}
  731. {l s='December'}
  732. *}
  733. {foreach $select as $k => $v}
  734. <option value="{$k}" {if $k == $fields_value[$key]}selected="selected"{/if}>{l s=$v}</option>
  735. {/foreach}
  736. {else}
  737. {foreach $select as $v}
  738. <option value="{$v}" {if $v == $fields_value[$key]}selected="selected"{/if}>{$v}</option>
  739. {/foreach}
  740. {/if}
  741. </select>
  742. </div>
  743. {/foreach}
  744. </div>
  745. {elseif $input.type == 'group'}
  746. {assign var=groups value=$input.values}
  747. {include file='helpers/form/form_group.tpl'}
  748. {elseif $input.type == 'shop'}
  749. {$input.html}
  750. {elseif $input.type == 'categories'}
  751. {$categories_tree}
  752. {elseif $input.type == 'file'}
  753. {$input.file}
  754. {elseif $input.type == 'categories_select'}
  755. {$input.category_tree}
  756. {elseif $input.type == 'asso_shop' && isset($asso_shop) && $asso_shop}
  757. {$asso_shop}
  758. {elseif $input.type == 'color'}
  759. <div class="form-group">
  760. <div class="col-lg-2">
  761. <div class="row">
  762. <div class="input-group">
  763. <input type="color"
  764. data-hex="true"
  765. {if isset($input.class)} class="{$input.class}"
  766. {else} class="color mColorPickerInput"{/if}
  767. name="{$input.name}"
  768. value="{$fields_value[$input.name]|escape:'html':'UTF-8'}" />
  769. </div>
  770. </div>
  771. </div>
  772. </div>
  773. {elseif $input.type == 'date'}
  774. <div class="row">
  775. <div class="input-group col-lg-4">
  776. <input
  777. id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"
  778. type="text"
  779. data-hex="true"
  780. {if isset($input.class)} class="{$input.class}"
  781. {else}class="datepicker"{/if}
  782. name="{$input.name}"
  783. value="{$fields_value[$input.name]|escape:'html':'UTF-8'}" />
  784. <span class="input-group-addon">
  785. <i class="icon-calendar-empty"></i>
  786. </span>
  787. </div>
  788. </div>
  789. {elseif $input.type == 'datetime'}
  790. <div class="row">
  791. <div class="input-group col-lg-4">
  792. <input
  793. id="{if isset($input.id)}{$input.id}{else}{$input.name}{/if}"
  794. type="text"
  795. data-hex="true"
  796. {if isset($input.class)} class="{$input.class}"
  797. {else} class="datetimepicker"{/if}
  798. name="{$input.name}"
  799. value="{$fields_value[$input.name]|escape:'html':'UTF-8'}" />
  800. <span class="input-group-addon">
  801. <i class="icon-calendar-empty"></i>
  802. </span>
  803. </div>
  804. </div>
  805. {elseif $input.type == 'free'}
  806. {$fields_value[$input.name]}
  807. {elseif $input.type == 'html'}
  808. {if isset($input.html_content)}
  809. {$input.html_content}
  810. {else}
  811. {$input.name}
  812. {/if}
  813. {/if}
  814. {/block}{* end block input *}
  815. {block name="description"}
  816. {if isset($input.desc) && !empty($input.desc)}
  817. <p class="help-block">
  818. {if is_array($input.desc)}
  819. {foreach $input.desc as $p}
  820. {if is_array($p)}
  821. <span id="{$p.id}">{$p.text}</span><br />
  822. {else}
  823. {$p}<br />
  824. {/if}
  825. {/foreach}
  826. {else}
  827. {$input.desc}
  828. {/if}
  829. </p>
  830. {/if}
  831. {/block}
  832. </div>
  833. {/block}{* end block field *}
  834. {/if}
  835. </div>
  836. {/block}
  837. {/foreach}
  838. {hook h='displayAdminForm' fieldset=$f}
  839. {if isset($name_controller)}
  840. {capture name=hookName assign=hookName}display{$name_controller|ucfirst}Form{/capture}
  841. {hook h=$hookName fieldset=$f}
  842. {elseif isset($smarty.get.controller)}
  843. {capture name=hookName assign=hookName}display{$smarty.get.controller|ucfirst|htmlentities}Form{/capture}
  844. {hook h=$hookName fieldset=$f}
  845. {/if}
  846. </div><!-- /.form-wrapper -->
  847. {elseif $key == 'desc'}
  848. <div class="alert alert-info col-lg-offset-3">
  849. {if is_array($field)}
  850. {foreach $field as $k => $p}
  851. {if is_array($p)}
  852. <span{if isset($p.id)} id="{$p.id}"{/if}>{$p.text}</span><br />
  853. {else}
  854. {$p}
  855. {if isset($field[$k+1])}<br />{/if}
  856. {/if}
  857. {/foreach}
  858. {else}
  859. {$field}
  860. {/if}
  861. </div>
  862. {/if}
  863. {block name="other_input"}{/block}
  864. {/foreach}
  865. {block name="footer"}
  866. {capture name='form_submit_btn'}{counter name='form_submit_btn'}{/capture}
  867. {if isset($fieldset['form']['submit']) || isset($fieldset['form']['buttons'])}
  868. <div class="panel-footer">
  869. {if isset($fieldset['form']['submit']) && !empty($fieldset['form']['submit'])}
  870. <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}">
  871. <i class="{if isset($fieldset['form']['submit']['icon'])}{$fieldset['form']['submit']['icon']}{else}process-icon-save{/if}"></i> {$fieldset['form']['submit']['title']}
  872. </button>
  873. {/if}
  874. {if isset($show_cancel_button) && $show_cancel_button}
  875. <a href="{$back_url|escape:'html':'UTF-8'}" class="btn btn-default" onclick="window.history.back();">
  876. <i class="process-icon-cancel"></i> {l s='Cancel'}
  877. </a>
  878. {/if}
  879. {if isset($fieldset['form']['reset'])}
  880. <button
  881. type="reset"
  882. id="{if isset($fieldset['form']['reset']['id'])}{$fieldset['form']['reset']['id']}{else}{$table}_form_reset_btn{/if}"
  883. class="{if isset($fieldset['form']['reset']['class'])}{$fieldset['form']['reset']['class']}{else}btn btn-default{/if}"
  884. >
  885. {if isset($fieldset['form']['reset']['icon'])}<i class="{$fieldset['form']['reset']['icon']}"></i> {/if} {$fieldset['form']['reset']['title']}
  886. </button>
  887. {/if}
  888. {if isset($fieldset['form']['buttons'])}
  889. {foreach from=$fieldset['form']['buttons'] item=btn key=k}
  890. {if isset($btn.href) && trim($btn.href) != ''}
  891. <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>
  892. {else}
  893. <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>
  894. {/if}
  895. {/foreach}
  896. {/if}
  897. </div>
  898. {/if}
  899. {/block}
  900. </div>
  901. {/block}
  902. {block name="other_fieldsets"}{/block}
  903. {/foreach}
  904. </form>
  905. {/block}
  906. {block name="after"}{/block}
  907.  
  908. {if isset($tinymce) && $tinymce}
  909. <script type="text/javascript">
  910. var iso = '{$iso|addslashes}';
  911. var pathCSS = '{$smarty.const._THEME_CSS_DIR_|addslashes}';
  912. var ad = '{$ad|addslashes}';
  913.  
  914. $(document).ready(function(){
  915. {block name="autoload_tinyMCE"}
  916. tinySetup({
  917. editor_selector :"autoload_rte"
  918. });
  919. {/block}
  920. });
  921. </script>
  922. {/if}
  923. {if $firstCall}
  924. <script type="text/javascript">
  925. var module_dir = '{$smarty.const._MODULE_DIR_}';
  926. var id_language = {$defaultFormLanguage|intval};
  927. var languages = new Array();
  928. var vat_number = {if $vat_number}1{else}0{/if};
  929. // Multilang field setup must happen before document is ready so that calls to displayFlags() to avoid
  930. // precedence conflicts with other document.ready() blocks
  931. {foreach $languages as $k => $language}
  932. languages[{$k}] = {
  933. id_lang: {$language.id_lang},
  934. iso_code: '{$language.iso_code}',
  935. name: '{$language.name}',
  936. is_default: '{$language.is_default}'
  937. };
  938. {/foreach}
  939. // we need allowEmployeeFormLang var in ajax request
  940. allowEmployeeFormLang = {$allowEmployeeFormLang|intval};
  941. displayFlags(languages, id_language, allowEmployeeFormLang);
  942.  
  943. $(document).ready(function() {
  944.  
  945. $(".show_checkbox").click(function () {
  946. $(this).addClass('hidden')
  947. $(this).siblings('.checkbox').removeClass('hidden');
  948. $(this).siblings('.hide_checkbox').removeClass('hidden');
  949. return false;
  950. });
  951. $(".hide_checkbox").click(function () {
  952. $(this).addClass('hidden')
  953. $(this).siblings('.checkbox').addClass('hidden');
  954. $(this).siblings('.show_checkbox').removeClass('hidden');
  955. return false;
  956. });
  957.  
  958. {if isset($fields_value.id_state)}
  959. if ($('#id_country') && $('#id_state'))
  960. {
  961. ajaxStates({$fields_value.id_state});
  962. $('#id_country').change(function() {
  963. ajaxStates();
  964. });
  965. }
  966. {/if}
  967.  
  968. if ($(".datepicker").length > 0)
  969. $(".datepicker").datepicker({
  970. prevText: '',
  971. nextText: '',
  972. dateFormat: 'yy-mm-dd'
  973. });
  974.  
  975. if ($(".datetimepicker").length > 0)
  976. $('.datetimepicker').datetimepicker({
  977. prevText: '',
  978. nextText: '',
  979. dateFormat: 'yy-mm-dd',
  980. // Define a custom regional settings in order to use PrestaShop translation tools
  981. currentText: '{l s='Now' js=1}',
  982. closeText: '{l s='Done' js=1}',
  983. ampm: false,
  984. amNames: ['AM', 'A'],
  985. pmNames: ['PM', 'P'],
  986. timeFormat: 'hh:mm:ss tt',
  987. timeSuffix: '',
  988. timeOnlyTitle: '{l s='Choose Time' js=1}',
  989. timeText: '{l s='Time' js=1}',
  990. hourText: '{l s='Hour' js=1}',
  991. minuteText: '{l s='Minute' js=1}',
  992. });
  993. {if isset($use_textarea_autosize)}
  994. $(".textarea-autosize").autosize();
  995. {/if}
  996. });
  997. state_token = '{getAdminToken tab='AdminStates'}';
  998. {block name="script"}{/block}
  999. </script>
  1000. {/if}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement