Fixed and improved shipping zones management

This commit is contained in:
Franck Allimant
2014-04-15 22:56:31 +02:00
parent 123280f4d4
commit f4e561ef09
6 changed files with 91 additions and 39 deletions

View File

@@ -62,7 +62,7 @@ class AreaCreateForm extends BaseForm
new NotBlank() new NotBlank()
), ),
'label_attr' => array('for' => 'shipping_name'), 'label_attr' => array('for' => 'shipping_name'),
'label' => Translator::getInstance()->trans('shipping area name') 'label' => Translator::getInstance()->trans('Shipping zone name')
)) ))
; ;

View File

@@ -2,6 +2,7 @@
return array( return array(
' (default)' => '(défaut)', ' (default)' => '(défaut)',
'%count more...' => '%count de plus...',
'© Thelia 2013' => '© Thelia 2013', '© Thelia 2013' => '© Thelia 2013',
'(edit)' => '(modification)', '(edit)' => '(modification)',
'<a href="http://en.wikipedia.org/wiki/ISO_639-1_language_matrix" target="_other">Check the list</a> of ISO 639-1 codes' => '<a href="http://en.wikipedia.org/wiki/ISO_639-1_language_matrix" target="_other">Consulter la liste</a> des codes ISO 639-1', '<a href="http://en.wikipedia.org/wiki/ISO_639-1_language_matrix" target="_other">Check the list</a> of ISO 639-1 codes' => '<a href="http://en.wikipedia.org/wiki/ISO_639-1_language_matrix" target="_other">Consulter la liste</a> des codes ISO 639-1',
@@ -34,7 +35,7 @@ return array(
'Add a new product attribute' => 'Ajouter une nouvelle déclinaison produit', 'Add a new product attribute' => 'Ajouter une nouvelle déclinaison produit',
'Add a new product feature' => 'Ajouter une nouvelle caractéristique produit', 'Add a new product feature' => 'Ajouter une nouvelle caractéristique produit',
'Add a new product template' => 'Ajouter un nouveau template produit', 'Add a new product template' => 'Ajouter un nouveau template produit',
'Add a new shipping configuration' => 'Ajouter une nouvelle configuration de livraison', 'Add a new shipping zone' => 'Ajouter une nouvelle zone de livraison',
'Add a new variable' => 'Ajouter une nouvelle variable', 'Add a new variable' => 'Ajouter une nouvelle variable',
'Add tax to this group' => 'Ajouter une taxe à ce groupe', 'Add tax to this group' => 'Ajouter une taxe à ce groupe',
'Add this attribute to all product templates' => 'Ajouter cette déclinaison à tous les templates produit', 'Add this attribute to all product templates' => 'Ajouter cette déclinaison à tous les templates produit',
@@ -49,6 +50,7 @@ return array(
'Administration profiles' => 'Profils d\'administration', 'Administration profiles' => 'Profils d\'administration',
'Administrators' => 'Administrateurs', 'Administrators' => 'Administrateurs',
'Afficher ce profil' => 'View this profile', 'Afficher ce profil' => 'View this profile',
'All countries are assigned to a shipping zone.' => 'Tous les pays sont assignés à une zone de livraison.',
'All orders' => 'Toutes les commandes', 'All orders' => 'Toutes les commandes',
'Alpha code 2' => 'Code alpha 2', 'Alpha code 2' => 'Code alpha 2',
'Alpha code 3' => 'Code alpha 3', 'Alpha code 3' => 'Code alpha 3',
@@ -57,6 +59,7 @@ return array(
'And' => 'Et', 'And' => 'Et',
'Application field' => 'Champs d\'application', 'Application field' => 'Champs d\'application',
'Apply' => 'Appliquer', 'Apply' => 'Appliquer',
'Associated countries' => 'Pays dans la zone',
'Associations' => 'Associations', 'Associations' => 'Associations',
'Attribute' => 'Déclinaison', 'Attribute' => 'Déclinaison',
'Attribute Combinations' => 'Combinaison de déclinaisons', 'Attribute Combinations' => 'Combinaison de déclinaisons',
@@ -104,7 +107,6 @@ return array(
'Change this product feature' => 'Modifier cette caractéristique produit', 'Change this product feature' => 'Modifier cette caractéristique produit',
'Change this product template' => 'Modifier ce template produit', 'Change this product template' => 'Modifier ce template produit',
'Change this profile' => 'Changer ce profil', 'Change this profile' => 'Changer ce profil',
'Change this shipping configuration' => 'Modifier cette configuration de livraison',
'Change this shipping zone' => 'Modifier cette zone de livraison', 'Change this shipping zone' => 'Modifier cette zone de livraison',
'Change this tax' => 'Modifier cette taxe', 'Change this tax' => 'Modifier cette taxe',
'Change this tax rule' => 'Modifier cette règle de taxe', 'Change this tax rule' => 'Modifier cette règle de taxe',
@@ -138,6 +140,7 @@ return array(
'Contents in %fold' => 'Contenus dans %fold', 'Contents in %fold' => 'Contenus dans %fold',
'Copy source text in input field' => 'Copier la source dans le champs de traduction', 'Copy source text in input field' => 'Copier la source dans le champs de traduction',
'Countries' => 'Pays', 'Countries' => 'Pays',
'Countries assigned to this zone' => 'Pays inclus dans cette zone',
'Countries that have the same tax rule' => 'Pays qui ont les même règles de taxe', 'Countries that have the same tax rule' => 'Pays qui ont les même règles de taxe',
'Country' => 'Pays', 'Country' => 'Pays',
'Country description' => 'Description du pays', 'Country description' => 'Description du pays',
@@ -167,7 +170,7 @@ return array(
'Create a new product' => 'Créer un nouveau produit', 'Create a new product' => 'Créer un nouveau produit',
'Create a new product template' => 'Créer un nouveau template produit', 'Create a new product template' => 'Créer un nouveau template produit',
'Create a new profile' => 'Créer un nouveau profil', 'Create a new profile' => 'Créer un nouveau profil',
'Create a new shipping configuration' => 'Créer une nouvelle configuration de livraison', 'Create a new shipping zone' => 'Créer une nouvelle zone de livraison',
'Create a new tax' => 'Créer une nouvelle taxe', 'Create a new tax' => 'Créer une nouvelle taxe',
'Create a new tax rule' => 'Créer une nouvelle règle de taxe', 'Create a new tax rule' => 'Créer une nouvelle règle de taxe',
'Create a new variable' => 'Créer une nouvelle variable', 'Create a new variable' => 'Créer une nouvelle variable',
@@ -187,7 +190,7 @@ return array(
'Create this mailing template' => 'Créer ce template de mailing', 'Create this mailing template' => 'Créer ce template de mailing',
'Create this product' => 'Créer ce produit', 'Create this product' => 'Créer ce produit',
'Create this product template' => 'Créer ce template produit', 'Create this product template' => 'Créer ce template produit',
'Create this shipping configuration' => 'Créer cette nouvelle configuration de livraison', 'Create this shipping zone' => 'Créer cette zone de livraison',
'Create this value' => 'Créer cette valeur', 'Create this value' => 'Créer cette valeur',
'Create this variable' => 'Ajouter cette variable', 'Create this variable' => 'Ajouter cette variable',
'Currencies' => 'Devises', 'Currencies' => 'Devises',
@@ -233,7 +236,7 @@ return array(
'Delete mailing template' => 'Supprimer ce template de mailing', 'Delete mailing template' => 'Supprimer ce template de mailing',
'Delete product' => 'Supprimer ce produit', 'Delete product' => 'Supprimer ce produit',
'Delete profile' => 'Supprimer le profil', 'Delete profile' => 'Supprimer le profil',
'Delete shipping configuration' => 'Supprimer cette configuration de livraison', 'Delete shipping zone' => 'Supprimer une zone de livraison',
'Delete tax' => 'Supprimer la taxe', 'Delete tax' => 'Supprimer la taxe',
'Delete tax rule' => 'Supprimer cette règle de taxe', 'Delete tax rule' => 'Supprimer cette règle de taxe',
'Delete template' => 'Supprimer ce template produit', 'Delete template' => 'Supprimer ce template produit',
@@ -256,7 +259,7 @@ return array(
'Delete this product feature' => 'Supprimer cette caractéristique produit', 'Delete this product feature' => 'Supprimer cette caractéristique produit',
'Delete this product template' => 'Supprimer ce template produit', 'Delete this product template' => 'Supprimer ce template produit',
'Delete this profile' => 'Supprimer ce profil', 'Delete this profile' => 'Supprimer ce profil',
'Delete this shipping configuration' => 'Supprimer cette configuration de livraison', 'Delete this shipping zone' => 'Supprimer cette zone de livraison',
'Delete this tax' => 'Supprimer cette taxe', 'Delete this tax' => 'Supprimer cette taxe',
'Delete this tax rule' => 'Supprimer cette règle de taxe', 'Delete this tax rule' => 'Supprimer cette règle de taxe',
'Delete this value' => 'Supprimer cette valeur', 'Delete this value' => 'Supprimer cette valeur',
@@ -293,7 +296,7 @@ return array(
'Do you really want to delete this module ?' => 'Voulez-vous vraiment supprimer ce module ?', 'Do you really want to delete this module ?' => 'Voulez-vous vraiment supprimer ce module ?',
'Do you really want to delete this product ?' => 'Voulez-vous vraiment supprimer ce produit ?', 'Do you really want to delete this product ?' => 'Voulez-vous vraiment supprimer ce produit ?',
'Do you really want to delete this profile ?' => 'Voulez-vous vraiment supprimer ce profil ?', 'Do you really want to delete this profile ?' => 'Voulez-vous vraiment supprimer ce profil ?',
'Do you really want to delete this shipping configuration ?' => 'Voulez-vous vraiment supprimer cette configuration de livraison ?', 'Do you really want to delete this shipping zone ?' => 'Confirmez vous la suppression de cette zone de livraison ?',
'Do you really want to delete this tax ?' => 'Voulez-vous vraiment supprimer cette taxe ?', 'Do you really want to delete this tax ?' => 'Voulez-vous vraiment supprimer cette taxe ?',
'Do you really want to delete this tax rule ?' => 'Voulez-vous vraiment supprimer cette règle de taxe ?', 'Do you really want to delete this tax rule ?' => 'Voulez-vous vraiment supprimer cette règle de taxe ?',
'Do you really want to delete this template ? It will be removed from all products.' => 'Voulez-vous vraiment supprimer ce template ? Il sera supprimé de tous les produits.', 'Do you really want to delete this template ? It will be removed from all products.' => 'Voulez-vous vraiment supprimer ce template ? Il sera supprimé de tous les produits.',
@@ -304,7 +307,7 @@ return array(
'Do you really want to remove this accessory from the product ?' => 'êtes-vous sur de vouloir supprimer cet accessoire ?', 'Do you really want to remove this accessory from the product ?' => 'êtes-vous sur de vouloir supprimer cet accessoire ?',
'Do you really want to remove this attribute from all product templates ? You\'ll loose all product related data for this attribute.' => 'Voulez-vous vraiment supprimer cette déclinaison de tous les templates produits ? Vous allez perdre toutes les informations produit liées à cette déclinaison.', 'Do you really want to remove this attribute from all product templates ? You\'ll loose all product related data for this attribute.' => 'Voulez-vous vraiment supprimer cette déclinaison de tous les templates produits ? Vous allez perdre toutes les informations produit liées à cette déclinaison.',
'Do you really want to remove this attribute from the template ?' => 'êtes-vous sur de vouloir retirer cette déclinaison de ce template', 'Do you really want to remove this attribute from the template ?' => 'êtes-vous sur de vouloir retirer cette déclinaison de ce template',
'Do you really want to remove this country ?' => 'Voulez-vous vraiment enlever ce pays ?', 'Do you really want to remove this country from this shipping zone ?' => 'Voulez-vous retirer ce pays de la zone de livraison ?',
'Do you really want to remove this feature from all product templates ? You\'ll loose all product related data for this feature.' => 'Voulez-vous vraiment enlever cette caractéristique de tous les templates produit ? Vous allez perdre toutes les informations des produits liées à cette caractéristique.', 'Do you really want to remove this feature from all product templates ? You\'ll loose all product related data for this feature.' => 'Voulez-vous vraiment enlever cette caractéristique de tous les templates produit ? Vous allez perdre toutes les informations des produits liées à cette caractéristique.',
'Do you really want to remove this feature from the template ?' => 'Voulez-vous vraiment supprimer cette caractéristique de ce template ?', 'Do you really want to remove this feature from the template ?' => 'Voulez-vous vraiment supprimer cette caractéristique de ce template ?',
'Do you really want to remove this related content ?' => 'Voulez-vous vraiment supprimer ce contenu lié ?', 'Do you really want to remove this related content ?' => 'Voulez-vous vraiment supprimer ce contenu lié ?',
@@ -374,7 +377,6 @@ return array(
'Edit prices in %curr' => 'Modifier les prix en %curr', 'Edit prices in %curr' => 'Modifier les prix en %curr',
'Edit product' => 'Modifier le produit', 'Edit product' => 'Modifier le produit',
'Edit product %title' => 'Modifier le produit %title', 'Edit product %title' => 'Modifier le produit %title',
'Edit shipping configuration %title' => 'Modifier la configuration de livraison %title',
'Edit tax rule taxes' => 'Modifier les taxes de la règle de taxe', 'Edit tax rule taxes' => 'Modifier les taxes de la règle de taxe',
'Edit template "%name"' => 'Modifier le template "%name"', 'Edit template "%name"' => 'Modifier le template "%name"',
'Edit this address' => 'Editer cette adresse', 'Edit this address' => 'Editer cette adresse',
@@ -401,8 +403,8 @@ return array(
'Editing module' => 'Module en cours de modification', 'Editing module' => 'Module en cours de modification',
'Editing profile' => 'Modification du profil', 'Editing profile' => 'Modification du profil',
'Editing profile \'%name\'' => 'Edition du profil \'%name\' ', 'Editing profile \'%name\'' => 'Edition du profil \'%name\' ',
'Editing shipping configuration "%name"' => 'En cours de modification de la configuration de livraison "%name"',
'Editing shipping configuration for module "%name"' => 'Configuration des zones de livraison du module "%title" ', 'Editing shipping configuration for module "%name"' => 'Configuration des zones de livraison du module "%title" ',
'Editing shipping zone "%name"' => 'Modification de la zone de livraison "%name"',
'Editing tax' => 'En cours de modification de la taxe', 'Editing tax' => 'En cours de modification de la taxe',
'Editing tax rule' => 'En cours de modification de la règle de taxe', 'Editing tax rule' => 'En cours de modification de la règle de taxe',
'Editing template "%name"' => 'Modification du template "%name"', 'Editing template "%name"' => 'Modification du template "%name"',
@@ -738,9 +740,11 @@ return array(
'Sequential number of log line' => 'Sequential number of log line', 'Sequential number of log line' => 'Sequential number of log line',
'Set as default tax rule' => 'Configurer en tant que règle par défaut', 'Set as default tax rule' => 'Configurer en tant que règle par défaut',
'Shipping configuration' => 'Configuration du transport', 'Shipping configuration' => 'Configuration du transport',
'Shipping configuration name' => 'Nom de la configuration de livraison',
'Shipping configuration of delivery module "%title"' => 'Configuration des zones de livraison du module "%title" ', 'Shipping configuration of delivery module "%title"' => 'Configuration des zones de livraison du module "%title" ',
'Shipping zone' => 'Zone de livraison', 'Shipping zone' => 'Zone de livraison',
'Shipping zone "%title"' => 'Zone de livraison "%title"',
'Shipping zone name' => 'Nom de la zone de livraison',
'Shipping zones' => 'Zones de livraison',
'Shipping zones for this module' => 'Zones de livraison associées à ce module', 'Shipping zones for this module' => 'Zones de livraison associées à ce module',
'Shipping zones management' => 'Zones de livraison', 'Shipping zones management' => 'Zones de livraison',
'Shop' => 'Boutique', 'Shop' => 'Boutique',
@@ -835,6 +839,7 @@ return array(
'This category has no sub-categories. To create a new one, click the + button above.' => 'Cette rubrique n\'a pas de sous-rubrique. Pour en créer une nouvelle, cliquez sur le bouton + ci-dessus.', 'This category has no sub-categories. To create a new one, click the + button above.' => 'Cette rubrique n\'a pas de sous-rubrique. Pour en créer une nouvelle, cliquez sur le bouton + ci-dessus.',
'This coupon is disabled, you can enable at the bottom of this form.' => 'Le code promo est désactivé. Vous pouvez l\'activer au début de ce formulaire', 'This coupon is disabled, you can enable at the bottom of this form.' => 'Le code promo est désactivé. Vous pouvez l\'activer au début de ce formulaire',
'This customer has not defined any delivery address' => 'Ce client n\'a pas saisi aucune adresse de livraison', 'This customer has not defined any delivery address' => 'Ce client n\'a pas saisi aucune adresse de livraison',
'This delivery module handles all shipping zones.' => 'Ce module livre dans toutes les zones de livraison.',
'This folder doesn\'t contains any contents. To add a new content, <strong>click the + button</strong> above.' => 'Ce dossier n\'a aucun contenu. Pour ajouter un nouveau contenu, <strong>cliquez sur le bouton + ci-dessus</strong>.', 'This folder doesn\'t contains any contents. To add a new content, <strong>click the + button</strong> above.' => 'Ce dossier n\'a aucun contenu. Pour ajouter un nouveau contenu, <strong>cliquez sur le bouton + ci-dessus</strong>.',
'This folder has no sub-folders.' => 'Ce dossier n\'a pas de sous-dossiers.', 'This folder has no sub-folders.' => 'Ce dossier n\'a pas de sous-dossiers.',
'This folder has no sub-folders. To create a new one, click the + button above.' => 'Ce dossier n\'a pas de sous-dossiers. Afin de créer un nouveau, cliquez sur le bouton + ci-dessus.', 'This folder has no sub-folders. To create a new one, click the + button above.' => 'Ce dossier n\'a pas de sous-dossiers. Afin de créer un nouveau, cliquez sur le bouton + ci-dessus.',
@@ -847,6 +852,7 @@ return array(
'This product doesn\'t belong to any additional category.' => 'Ce produit n\'est associé à aucune rubrique supplémentaire', 'This product doesn\'t belong to any additional category.' => 'Ce produit n\'est associé à aucune rubrique supplémentaire',
'This product doesn\'t belong to any additional folder.' => 'Ce produit n\'appartient à aucun dossier addoitionnel', 'This product doesn\'t belong to any additional folder.' => 'Ce produit n\'appartient à aucun dossier addoitionnel',
'This product template does not contains any features' => 'Ce gabarit de produit ne comporte aucune caractéristique', 'This product template does not contains any features' => 'Ce gabarit de produit ne comporte aucune caractéristique',
'This shipping zone does not contains any country.' => 'Cette zone de livraison ne comporte aucun pays',
'This template contains no attributes' => 'Ce template n\'a pas de déclinaison', 'This template contains no attributes' => 'Ce template n\'a pas de déclinaison',
'This template contains no features' => 'Ce template ne contient aucune caractéristique', 'This template contains no features' => 'Ce template ne contient aucune caractéristique',
'This the unique name of this message. Do not change this value unless you understand what you do.' => 'Ceci est le nom unique du message. Ne le modifiez que si vous savez ce que vous faîtes', 'This the unique name of this message. Do not change this value unless you understand what you do.' => 'Ceci est le nom unique du message. Ne le modifiez que si vous savez ce que vous faîtes',
@@ -873,6 +879,7 @@ return array(
'Translation' => 'Traductions', 'Translation' => 'Traductions',
'Translations' => 'Traductions', 'Translations' => 'Traductions',
'Type :' => 'Type : ', 'Type :' => 'Type : ',
'Unassigned countries' => 'Pays sans zone de livraison',
'Unit taxed price' => 'Prix unitaire TTC', 'Unit taxed price' => 'Prix unitaire TTC',
'Unit. price' => 'Prix unitaire', 'Unit. price' => 'Prix unitaire',
'Unlimited' => 'Illimité', 'Unlimited' => 'Illimité',
@@ -924,6 +931,7 @@ return array(
'You don\'t need to use commas or other punctuations.' => 'Vous n\'avez pas besoin d\'utiliser de virgules ou d\'autres signes de ponctuation', 'You don\'t need to use commas or other punctuations.' => 'Vous n\'avez pas besoin d\'utiliser de virgules ou d\'autres signes de ponctuation',
'Your current IP address is %ip' => 'Votre adresse IP est %ip', 'Your current IP address is %ip' => 'Votre adresse IP est %ip',
'Zip code' => 'Code postal', 'Zip code' => 'Code postal',
'Zone name' => 'Nom de la zone',
'activate' => 'activer', 'activate' => 'activer',
'activate %title module' => 'Activez le module %title', 'activate %title module' => 'Activez le module %title',
'activation' => 'Activation', 'activation' => 'Activation',

View File

@@ -14,21 +14,28 @@
<li><a href="{url path='/admin/home'}">{intl l="Home"}</a></li> <li><a href="{url path='/admin/home'}">{intl l="Home"}</a></li>
<li><a href="{url path='/admin/configuration'}">{intl l="Configuration"}</a></li> <li><a href="{url path='/admin/configuration'}">{intl l="Configuration"}</a></li>
<li><a href="{url path='/admin/configuration/shipping_configuration'}">{intl l="Shipping configuration"}</a></li> <li><a href="{url path='/admin/configuration/shipping_configuration'}">{intl l="Shipping configuration"}</a></li>
<li>{intl l='Editing shipping configuration "%name"' name="{$NAME}"}</li> <li>{intl l='Editing shipping zone "%name"' name="{$NAME}"}</li>
</ul> </ul>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<div class="general-block-decorator"> <div class="general-block-decorator">
<div class="col-md-12 title title-without-tabs"> <div class="title title-without-tabs">
{intl l='Edit shipping configuration %title' title=$NAME} <div class="row">
<div class="col-md-10">
{intl l='Shipping zone "%title"' title=$NAME}
</div>
<div class="col-md-2 text-right">
<a href="{url path='/admin/configuration/shipping_configuration'}" class="btn btn-sm btn-default">{intl l='Close'} <span class="glyphicon glyphicon-remove"></span></a>
</div>
</div>
</div> </div>
<div class="form-container clearfix"> <div class="form-container clearfix">
<div class="col-md-4"> <div class="col-md-4">
{ifloop rel="country-without-area"}
{form name="thelia.admin.area.country"} {form name="thelia.admin.area.country"}
<form method="POST" action="{url path="/admin/configuration/shipping_configuration/country/add"}"> <form method="POST" action="{url path="/admin/configuration/shipping_configuration/country/add"}">
{form_hidden_fields form=$form} {form_hidden_fields form=$form}
@@ -41,7 +48,7 @@
<input type="hidden" name="{$name}" value="{$area_id}"> <input type="hidden" name="{$name}" value="{$area_id}">
{/form_field} {/form_field}
{form_field form=$form field='country_id'} {form_field form=$form field='country_id'}
<label class="control-label" for="{$label_attr.for}">{intl l="Country"}</label> <label class="control-label" for="{$label_attr.for}">{intl l="Unassigned countries"}</label>
<div class="input-group"> <div class="input-group">
<select name="{$name}" id="{$label_attr.for}" data-toggle="selectpicker"> <select name="{$name}" id="{$label_attr.for}" data-toggle="selectpicker">
@@ -56,6 +63,12 @@
{/form_field} {/form_field}
</form> </form>
{/form} {/form}
{/ifloop}
{elseloop rel="country-without-area"}
<div class="alert alert-info">
{intl l="All countries are assigned to a shipping zone."}
</div>
{/elseloop}
</div> </div>
<div class="col-md-8"> <div class="col-md-8">
@@ -63,21 +76,26 @@
<table class="table table-striped table-condensed"> <table class="table table-striped table-condensed">
<thead> <thead>
<tr> <tr>
<th>{intl l="Country"}</th> <th>{intl l="Countries assigned to this zone"}</th>
<th>{intl l="Actions"}</th> <th class="text-center">{intl l="Actions"}</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{loop name="country-area" type="country" area=$area_id backend_context="1"} {loop name="country-area" type="country" area=$area_id backend_context="1"}
<tr> <tr>
<td>{$TITLE}</td> <td>{$TITLE}</td>
<td> <td class="text-center">
<a class="btn btn-default btn-xs btn-delete-country" title="{intl l='Delete this country'}" href="#delete_country_dialog" data-id="{$ID}" data-toggle="modal"> <a class="btn btn-default btn-xs btn-delete-country" title="{intl l='Delete this country'}" href="#delete_country_dialog" data-id="{$ID}" data-toggle="modal">
<span class="glyphicon glyphicon-trash"></span> <span class="glyphicon glyphicon-trash"></span>
</a> </a>
</td> </td>
</tr> </tr>
{/loop} {/loop}
{elseloop rel="country-area"}
<td colspan="2">
{intl l="This shipping zone does not contains any country."}
</td>
{/elseloop}
</tbody> </tbody>
{module_include location='shipping-configuration-edit'} {module_include location='shipping-configuration-edit'}
</table> </table>
@@ -112,7 +130,7 @@
dialog_id = "delete_country_dialog" dialog_id = "delete_country_dialog"
dialog_title = {intl l="Remove country"} dialog_title = {intl l="Remove country"}
dialog_message = {intl l="Do you really want to remove this country ?"} dialog_message = {intl l="Do you really want to remove this country from this shipping zone ?"}
form_action = {url path='/admin/configuration/shipping_configuration/country/remove'} form_action = {url path='/admin/configuration/shipping_configuration/country/remove'}
form_content = {$smarty.capture.delete_country_dialog nofilter} form_content = {$smarty.capture.delete_country_dialog nofilter}

View File

@@ -13,7 +13,7 @@
<ul class="breadcrumb"> <ul class="breadcrumb">
<li><a href="{url path='/admin/home'}">{intl l="Home"}</a></li> <li><a href="{url path='/admin/home'}">{intl l="Home"}</a></li>
<li><a href="{url path='/admin/configuration'}">{intl l="Configuration"}</a></li> <li><a href="{url path='/admin/configuration'}">{intl l="Configuration"}</a></li>
<li><a href="{url path='/admin/configuration/shipping_configuration'}">{intl l="Shipping configuration"}</a></li> <li><a href="{url path='/admin/configuration/shipping_configuration'}">{intl l="Shipping zones management"}</a></li>
</ul> </ul>
{module_include location='shipping_configuration_top'} {module_include location='shipping_configuration_top'}
@@ -24,37 +24,54 @@
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-striped table-condensed table-left-aligned"> <table class="table table-striped table-condensed table-left-aligned">
<caption class="clearfix"> <caption class="clearfix">
{intl l='Thelia Shipping configuration'} {intl l='Shipping zones management'}
{loop type="auth" name="can_create" role="ADMIN" resource="admin.configuration.shipping-configuration" access="CREATE"} {loop type="auth" name="can_create" role="ADMIN" resource="admin.configuration.shipping-configuration" access="CREATE"}
<a class="btn btn-default btn-primary pull-right" title="{intl l='Add a new shipping configuration'}" href="#creation_dialog" data-toggle="modal"> <a class="btn btn-default btn-primary pull-right" title="{intl l='Add a new shipping zone'}" href="#creation_dialog" data-toggle="modal">
<span class="glyphicon glyphicon-plus-sign"></span> <span class="glyphicon glyphicon-plus-sign"></span>
</a> </a>
{/loop} {/loop}
</caption> </caption>
<thead> <thead>
<tr> <tr>
<th>{intl l="Description"}</th> <th>{intl l="Zone name"}</th>
<th>{intl l="Associated countries"}</th>
{module_include location='shipping_configuration_table_header'} {module_include location='shipping_configuration_table_header'}
<th>{intl l="Actions"}</th> <th class="text-center">{intl l="Actions"}</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{loop name="area-list" type="area" backend_context="1"} {loop name="area-list" type="area" backend_context="1"}
<tr> <tr>
<td><a href="{url path="/admin/configuration/shipping_configuration/update/$ID"}">{$NAME}</a></td> <td><a href="{url path="/admin/configuration/shipping_configuration/update/$ID"}">{$NAME}</a></td>
<td>
{loop name="country-area" type="country" area=$ID backend_context="1" limit="6"}
{$TITLE}{if $LOOP_COUNT < $LOOP_TOTAL},{/if}
{/loop}
{ifloop rel="country-area-more"}
{$countries = ''}
{loop name="country-area-more" type="country" area=$ID backend_context="1" offset="6"}
{$countries = "$countries, $TITLE"}
{$ctry_count=$LOOP_COUNT}
{/loop}
{$countries = ltrim($countries, ', ')}
<span class="badge" title="{$countries}">{intl l="%count more..." count=$ctry_count}</span>
{/ifloop}
</td>
{module_include location='shipping_configuration_table_row'} {module_include location='shipping_configuration_table_row'}
<td> <td class="text-center">
<div class="btn-group"> <div class="btn-group">
{loop type="auth" name="can_change" role="ADMIN" resource="admin.configuration.shipping-configuration" access="UPDATE"} {loop type="auth" name="can_change" role="ADMIN" resource="admin.configuration.shipping-configuration" access="UPDATE"}
<a class="btn btn-default btn-xs area-configuration-change" title="{intl l='Change this shipping configuration'}" href="{url path="/admin/configuration/shipping_configuration/update/$ID"}"><i class="glyphicon glyphicon-edit"></i></a> <a class="btn btn-default btn-xs area-configuration-change" title="{intl l='Change this shipping zone'}" href="{url path="/admin/configuration/shipping_configuration/update/$ID"}"><i class="glyphicon glyphicon-edit"></i></a>
{/loop} {/loop}
{loop type="auth" name="can_delete" role="ADMIN" resource="admin.configuration.shipping-configuration" access="DELETE"} {loop type="auth" name="can_delete" role="ADMIN" resource="admin.configuration.shipping-configuration" access="DELETE"}
<a class="btn btn-default btn-xs area-configuration-delete" title="{intl l='Delete this shipping configuration'}" href="#delete_dialog" data-id="{$ID}" data-toggle="modal"><i class="glyphicon glyphicon-trash"></i></a> <a class="btn btn-default btn-xs area-configuration-delete" title="{intl l='Delete this shipping zone'}" href="#delete_dialog" data-id="{$ID}" data-toggle="modal"><i class="glyphicon glyphicon-trash"></i></a>
{/loop} {/loop}
</div> </div>
</td> </td>
@@ -72,7 +89,7 @@
</div> </div>
</div> </div>
{* Adding a new Shipping configuration *} {* Adding a new Shipping zone *}
{* Capture the dialog body, to pass it to the generic dialog *} {* Capture the dialog body, to pass it to the generic dialog *}
{capture "creation_dialog"} {capture "creation_dialog"}
@@ -86,7 +103,7 @@
{form_field form=$form field="name"} {form_field form=$form field="name"}
<div class="form-group"> <div class="form-group">
<label for="{$label_attr.for}" class="control-label">{$label} : </label> <label for="{$label_attr.for}" class="control-label">{$label} : </label>
<input type="text" id="{$label_attr.for}" name="{$name}" class="form-control" title="{intl l="Name"}" placeholder="{intl l='Shipping configuration name'}"> <input type="text" id="{$label_attr.for}" name="{$name}" class="form-control" title="{intl l="Name"}" placeholder="{intl l='Shipping zone name'}">
</div> </div>
{/form_field} {/form_field}
@@ -99,10 +116,10 @@
file = "includes/generic-create-dialog.html" file = "includes/generic-create-dialog.html"
dialog_id = "creation_dialog" dialog_id = "creation_dialog"
dialog_title = {intl l="Create a new shipping configuration"} dialog_title = {intl l="Create a new shipping zone"}
dialog_body = {$smarty.capture.creation_dialog nofilter} dialog_body = {$smarty.capture.creation_dialog nofilter}
dialog_ok_label = {intl l="Create this shipping configuration"} dialog_ok_label = {intl l="Create this shipping zone"}
dialog_cancel_label = {intl l="Cancel"} dialog_cancel_label = {intl l="Cancel"}
form_action = {url path='/admin/configuration/shipping_configuration/create'} form_action = {url path='/admin/configuration/shipping_configuration/create'}
@@ -123,8 +140,8 @@
file = "includes/generic-confirm-dialog.html" file = "includes/generic-confirm-dialog.html"
dialog_id = "delete_dialog" dialog_id = "delete_dialog"
dialog_title = {intl l="Delete shipping configuration"} dialog_title = {intl l="Delete shipping zone"}
dialog_message = {intl l="Do you really want to delete this shipping configuration ?"} dialog_message = {intl l="Do you really want to delete this shipping zone ?"}
form_action = {url path='/admin/configuration/shipping_configuration/delete'} form_action = {url path='/admin/configuration/shipping_configuration/delete'}
form_content = {$smarty.capture.delete_dialog nofilter} form_content = {$smarty.capture.delete_dialog nofilter}

View File

@@ -37,6 +37,7 @@
<div class="form-container clearfix"> <div class="form-container clearfix">
<div class="col-md-4"> <div class="col-md-4">
{ifloop rel="area.module.not_associated"}
{form name="thelia.shopping_zone_area"} {form name="thelia.shopping_zone_area"}
<form method="POST" action="{url path="/admin/configuration/shipping_zones/area/add"}"> <form method="POST" action="{url path="/admin/configuration/shipping_zones/area/add"}">
{form_hidden_fields form=$form} {form_hidden_fields form=$form}
@@ -64,6 +65,12 @@
{/form_field} {/form_field}
</form> </form>
{/form} {/form}
{/ifloop}
{elseloop rel="area.module.not_associated"}
<div class="alert alert-info">
{intl l="This delivery module handles all shipping zones."}
</div>
{/elseloop}
</div> </div>
<div class="col-md-8"> <div class="col-md-8">

View File

@@ -13,7 +13,7 @@
<ul class="breadcrumb"> <ul class="breadcrumb">
<li><a href="{url path='/admin/home'}">{intl l="Home"}</a></li> <li><a href="{url path='/admin/home'}">{intl l="Home"}</a></li>
<li><a href="{url path='/admin/configuration'}">{intl l="Configuration"}</a></li> <li><a href="{url path='/admin/configuration'}">{intl l="Configuration"}</a></li>
<li><a href="{url path='/admin/configuration/shipping_zones'}">{intl l="Shipping configuration"}</a></li> <li><a href="{url path='/admin/configuration/shipping_zones'}">{intl l="Shipping zones"}</a></li>
</ul> </ul>
{module_include location='shipping_zones_top'} {module_include location='shipping_zones_top'}
@@ -22,6 +22,7 @@
<div class="col-md-12"> <div class="col-md-12">
<div class="general-block-decorator"> <div class="general-block-decorator">
{ifloop rel="area-not-attached"}
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<div class="alert alert-warning"> <div class="alert alert-warning">
@@ -32,12 +33,13 @@
</div> </div>
</div> </div>
</div> </div>
{/ifloop}
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-striped table-condensed table-left-aligned"> <table class="table table-striped table-condensed table-left-aligned">
<caption> <caption>
{intl l='Shipping configuration'} {intl l='Shipping zones'}
</caption> </caption>
<thead> <thead>