Added category creation and deletion

This commit is contained in:
franck
2013-08-08 02:39:42 +02:00
parent eb93049897
commit 64031a1883
55 changed files with 1569 additions and 255 deletions

View File

@@ -124,7 +124,7 @@ hr {
color: white;
}
.modal-footer {
.footer {
background: none repeat scroll 0 0 transparent;
border: medium none;
box-shadow: none;
@@ -375,6 +375,7 @@ hr {
padding: 10px 20px;
}
}
// -- Login form --------------------------------------------------------------
.form-signin {
@@ -394,157 +395,157 @@ textarea:focus, input[type="text"]:focus, input[type="password"]:focus, input[ty
// -- Allow inline forms validation states ------------------------------------
.form-inline .warning .control-label,
.form-inline .warning .help-block,
.form-inline .warning .help-inline {
form .warning .control-label,
form .warning .help-block,
form .warning .help-inline {
color: #c09853;
}
.form-inline .warning .checkbox,
.form-inline .warning .radio,
.form-inline .warning input,
.form-inline .warning select,
.form-inline .warning textarea {
form .warning .checkbox,
form .warning .radio,
form .warning input,
form .warning select,
form .warning textarea {
color: #c09853;
}
.form-inline .warning input,
.form-inline .warning select,
.form-inline .warning textarea {
form .warning input,
form .warning select,
form .warning textarea {
border-color: #c09853;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.form-inline .warning input:focus,
.form-inline .warning select:focus,
.form-inline .warning textarea:focus {
form .warning input:focus,
form .warning select:focus,
form .warning textarea:focus {
border-color: #a47e3c;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
}
.form-inline .warning .input-prepend .add-on,
.form-inline .warning .input-append .add-on {
form .warning .input-prepend .add-on,
form .warning .input-append .add-on {
color: #c09853;
background-color: #fcf8e3;
border-color: #c09853;
}
.form-inline .error .control-label,
.form-inline .error .help-block,
.form-inline .error .help-inline {
form .error .control-label,
form .error .help-block,
form .error .help-inline {
color: #b94a48;
}
.form-inline .error .checkbox,
.form-inline .error .radio,
.form-inline .error input,
.form-inline .error select,
.form-inline .error textarea {
form .error .checkbox,
form .error .radio,
form .error input,
form .error select,
form .error textarea {
color: #b94a48;
}
.form-inline .error input,
.form-inline .error select,
.form-inline .error textarea {
form .error input,
form .error select,
form .error textarea {
border-color: #b94a48;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.form-inline .error input:focus,
.form-inline .error select:focus,
.form-inline .error textarea:focus {
form .error input:focus,
form .error select:focus,
form .error textarea:focus {
border-color: #953b39;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
}
.form-inline .error .input-prepend .add-on,
.form-inline .error .input-append .add-on {
form .error .input-prepend .add-on,
form .error .input-append .add-on {
color: #b94a48;
background-color: #f2dede;
border-color: #b94a48;
}
.form-inline .success .control-label,
.form-inline .success .help-block,
.form-inline .success .help-inline {
form .success .control-label,
form .success .help-block,
form .success .help-inline {
color: #468847;
}
.form-inline .success .checkbox,
.form-inline .success .radio,
.form-inline .success input,
.form-inline .success select,
.form-inline .success textarea {
form .success .checkbox,
form .success .radio,
form .success input,
form .success select,
form .success textarea {
color: #468847;
}
.form-inline .success input,
.form-inline .success select,
.form-inline .success textarea {
form .success input,
form .success select,
form .success textarea {
border-color: #468847;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.form-inline .success input:focus,
.form-inline .success select:focus,
.form-inline .success textarea:focus {
form .success input:focus,
form .success select:focus,
form .success textarea:focus {
border-color: #356635;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
}
.form-inline .success .input-prepend .add-on,
.form-inline .success .input-append .add-on {
form .success .input-prepend .add-on,
form .success .input-append .add-on {
color: #468847;
background-color: #dff0d8;
border-color: #468847;
}
.form-inline .info .control-label,
.form-inline .info .help-block,
.form-inline .info .help-inline {
form .info .control-label,
form .info .help-block,
form .info .help-inline {
color: #3a87ad;
}
.form-inline .info .checkbox,
.form-inline .info .radio,
.form-inline .info input,
.form-inline .info select,
.form-inline .info textarea {
form .info .checkbox,
form .info .radio,
form .info input,
form .info select,
form .info textarea {
color: #3a87ad;
}
.form-inline .info input,
.form-inline .info select,
.form-inline .info textarea {
form .info input,
form .info select,
form .info textarea {
border-color: #3a87ad;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.form-inline .info input:focus,
.form-inline .info select:focus,
.form-inline .info textarea:focus {
form .info input:focus,
form .info select:focus,
form .info textarea:focus {
border-color: #2d6987;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
}
.form-inline .info .input-prepend .add-on,
.form-inline .info .input-append .add-on {
form .info .input-prepend .add-on,
form .info .input-append .add-on {
color: #3a87ad;
background-color: #d9edf7;
border-color: #3a87ad;
@@ -560,6 +561,7 @@ textarea:focus, input[type="text"]:focus, input[type="password"]:focus, input[ty
padding: 1em;
margin-bottom: 20px;
// The block title
.title {
color: #5A6876;
text-transform: uppercase;
@@ -569,11 +571,53 @@ textarea:focus, input[type="text"]:focus, input[type="password"]:focus, input[ty
line-height: 30px;
}
// The action bar on the right
.actions {
text-align: right;
}
}
// Reduce bottom margin of admin tabs.
.admin-tabs {
margin-bottom: 1em;
}
// The overall form container
.form-container {
// The inner toolbar (flags & save buttons)
.inner-toolbar {
line-height: 30px;
margin-bottom: 1em;
.inner-actions {
text-align: right;
}
.nav-pills {
margin-bottom: 0;
li a {
padding: 4px;
opacity: 0.3;
}
li.active a {
opacity: 1;
background-color: #E7E7E7;
}
}
}
}
// Modal dialog tweaking ------------------------------------------------------
.modal {
form {
margin-bottom: 0;
}
}
// -- Admin forms tweaking ----------------------------------------------------
label {
@@ -584,6 +628,10 @@ label {
}
}
.input-append.input-block-level .add-on img {
max-height: 18px;
}
// Information in field label
.label-help-block, .help-block {
color: lighten(#595959, 20);

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -16,10 +16,10 @@
<div class="row-fluid">
<div class="span12">
<div class="general-block-decorator">
<table class="table table-striped">
<table class="table table-striped table-condensed">
<caption>
{* display parent category name, and get current cat ID *}
{loop name="category_title" type="category" id="{$current_category_id}"}
{loop name="category_title" type="category" visible="*" id="{$current_category_id}"}
{intl l="Categories in %cat" cat=$TITLE}
{$cat_id = $ID}
{/loop}
@@ -29,9 +29,11 @@
{module_include location='category_list_caption'}
<a class="btn btn-primary btn-add-item" title="{intl l='Add a new category'}" href="{url path="admin/catalog/category/create/{$cat_id|default:0}"}">
{loop type="auth" name="can_create" context="admin" roles="ADMIN" permissions="admin.category.create"}
<a class="btn btn-primary btn-add-item" title="{intl l='Add a new category'}" href="#add_category_dialog" data-toggle="modal">
<i class="icon-plus-sign icon-white"></i>
</a>
{/loop}
</caption>
{ifloop rel="category_list"}
@@ -48,9 +50,9 @@
</thead>
<tbody>
{loop name="category_list" type="category" parent="{$current_category_id}" order="manual"}
{loop name="category_list" type="category" visible="*" parent="{$current_category_id}" order="manual"}
<tr>
<td class="object-title"><a href="{url path="admin/catalog/category/browse/$ID"}" title="{intl l='Browse this category'}">{$TITLE}</a></td>
<td class="object-title"><a href="{url path='admin/catalog/category' id="$ID" action='browse'}" title="{intl l='Browse this category'}">{$TITLE}</a></td>
{module_include location='category_list_row'}
@@ -59,15 +61,27 @@
</td>
<td>
<a href="{url path='admin/catalog/category/positionUp/{$ID}'}"><i class="icon-arrow-up"></i></a>
<span class="object_classement_editable" data-action="changeCategoryPosition" data-name="category_id" data-id="{$ID}">{$POSITION}</span>
<a href="{url path='admin/catalog/category/positionDown/{$ID}'}"><i class="icon-arrow-down"></i></a>
{loop type="auth" name="can_change" context="admin" roles="ADMIN" permissions="admin.category.edit"}
<a href="{url path='admin/catalog/category' id="{$ID}" action='positionUp'}"><i class="icon-arrow-up"></i></a>
<span class="object_classement_editable" data-action="changeCategoryPosition" data-name="category_id" data-id="{$ID}">{$POSITION}</span>
<a href="{url path='admin/catalog/category' id="{$ID}" action='positionDown'}"><i class="icon-arrow-down"></i></a>
{/loop}
{elseloop rel="can_change"}
{$POSITION}
{/elseloop}
</td>
<td>
<a class="btn btn-mini" title="{intl l='Browse this category'}" href="{url path="admin/catalog/category/browse/{$ID}"}"><i class="icon-folder-open"></i></a>
<a class="btn btn-mini" title="{intl l='Edit this category'}" href="{url path="admin/catalog/category/edit/{$ID}"}"><i class="icon-edit"></i></a>
<a class="btn btn-mini category-delete" title="{intl l='Delete this category and all its contents'}" href="{url path='admin/catalog/category/delete/{$ID}'}"><i class="icon-trash"></i></a>
<a class="btn btn-mini" title="{intl l='Browse this category'}" href="{url path='admin/catalog/category' id="$ID" action='browse'}"><i class="icon-folder-open"></i></a>
{loop type="auth" name="can_change" context="admin" roles="ADMIN" permissions="admin.category.edit"}
<a class="btn btn-mini" title="{intl l='Edit this category'}" href="{url path='admin/catalog/category' id="$ID" action='edit'}"><i class="icon-edit"></i></a>
{/loop}
{loop type="auth" name="can_delete" context="admin" roles="ADMIN" permissions="admin.category.delete"}
<a class="btn btn-mini category-delete" title="{intl l='Delete this category and all its contents'}" href="#delete_category_dialog" data-id="{$ID}" data-toggle="modal"><i class="icon-trash"></i></a>
{/loop}
</td>
</tr>
{/loop}
@@ -77,7 +91,17 @@
{elseloop rel="category_list"}
<thead>
<tr>
<td class="message"><div class="alert alert-info">{intl l="This category has no sub-categories. To create a new one, click the + button above."}</div></td>
<td class="message">
<div class="alert alert-info">
{loop type="auth" name="can_create" context="admin" roles="ADMIN" permissions="admin.category.create"}
{intl l="This category has no sub-categories. To create a new one, click the + button above."}
{/loop}
{elseloop rel="can_create"}
{intl l="This category has no sub-categories."}
{/elseloop}
</div>
</td>
</tr>
</thead>
{/elseloop}
@@ -89,10 +113,10 @@
<div class="row-fluid">
<div class="span12">
<div class="general-block-decorator">
<table class="table table-striped">
<table class="table table-striped table-condensed">
<caption>
{* display parent category name *}
{loop name="category_title" type="category" id="{$current_category_id}"}
{loop name="category_title" type="category" visible="*" id="{$current_category_id}"}
{intl l="Products in %cat" cat=$TITLE}
{/loop}
{elseloop rel="category_title"}
@@ -124,9 +148,9 @@
<tbody>
{loop name="product_list" type="product" category="{$current_category_id}" order="manual"}
<tr>
<td><a href="{url path="admin/catalog/product/edit/$ID"}" title="{intl l='Edit this product'}">Image !</a></td>
<td><a href="{url path='admin/catalog/product' id="$ID" action='edit'}" title="{intl l='Edit this product'}">Image !</a></td>
<td class="object-title"><a href="{url path="admin/catalog/product/edit/$ID"}" title="{intl l='Edit this product'}">{$TITLE}</a></td>
<td class="object-title"><a href="{url path='admin/catalog/product' id="$ID" action='edit'}" title="{intl l='Edit this product'}">{$TITLE}</a></td>
{module_include location='product_list_row'}
@@ -135,14 +159,14 @@
</td>
<td>
<a href="{url path='admin/catalog/product/positionUp/{$ID}'}"><i class="icon-arrow-up"></i></a>
<a href="{url path='admin/catalog/product' id="$ID" action='positionUn'}"><i class="icon-arrow-up"></i></a>
<span class="object_classement_editable" data-action="changeProductPosition" data-name="product_id" data-id="{$ID}">{$POSITION}</span>
<a href="{url path='admin/catalog/product/positionDown/{$ID}'}"><i class="icon-arrow-down"></i></a>
<a href="{url path='admin/catalog/product' id="$ID" action='positionDown'}"><i class="icon-arrow-down"></i></a>
</td>
<td>
<a class="btn btn-mini" title="{intl l='Edit this category'}" href="{url path="admin/catalog/product/edit/{$ID}"}"><i class="icon-edit"></i></a>
<a class="btn btn-mini product-delete" title="{intl l='Delete this product'}" href="{url path='admin/catalog/product/delete/{$ID}'}"><i class="icon-trash"></i></a>
<a class="btn btn-mini" title="{intl l='Edit this category'}" href="{url path='admin/catalog/product' id="$ID" action='edit'}"><i class="icon-edit"></i></a>
<a class="btn btn-mini product-delete" title="{intl l='Delete this product'}" href="{url path='admin/catalog/product' id="$ID" action='delete'}"><i class="icon-trash"></i></a>
</td>
</tr>
{/loop}
@@ -165,6 +189,40 @@
</div>
</div>
{include file="includes/add-category-dialog.html"}
{include file="includes/delete-category-dialog.html"}
{include file='includes/js.inc.html'}
<script>
$(function() {
{* display the form creation dialog if it contains errors *}
{form name="thelia.admin.category.creation"}
{if #form_error}
$('#add_category_dialog').modal();
{/if}
{/form}
{* Always reset dialog on close *}
$('#add_category_dialog').on('hidden',function() {
// Hide error message
$('#add_category_dialog_error').remove();
// Clear error status
$("#add_category_dialog .error").removeClass('error');
// Empty field values
$("#add_category_dialog input[type=text]").val('');
});
{* Set the proper category ID in the delete confirmation dialog *}
$(document).on("click", ".category-delete", function () {
$('#'+'delete-category-id').val($(this).data('id'));
});
})
</script>
{include file='includes/footer.inc.html'}

View File

@@ -1,10 +1,6 @@
{check_auth context="admin" roles="ADMIN" permissions="admin.catalog.view" login_tpl="/admin/login"}
{if $action == 'create'}
{$page_title={intl l='Create a new category'}}
{else}
{$page_title={intl l='Edit category'}}
{/if}
{$page_title={intl l='Edit category'}}
{include file='includes/header.inc.html'}
@@ -19,29 +15,22 @@
<div class="span12 general-block-decorator">
<div class="row-fluid">
<div class="span7 title">
{if $action == 'create'}
{intl l='Create a new category'}
{else}
{intl l='Edit category'}
{/if}
{intl l='Edit category'}
</div>
<div class="span5 actions">
<button class="btn btn-primary" title="{intl l='Save and stay on this page'}">{intl l='Save'} <i class="icon icon-white icon-ok"></i></button>
<button class="btn btn-info" title="{intl l='Save and close'}">{intl l='Save'} <i class="icon icon-remove icon-white"></i></button>
{if $action != 'create'}
<button class="btn" title="{intl l='Edit previous category'}"><i class="icon icon-arrow-left"></i></button>
<button class="btn" title="{intl l='Preview category page'}"><i class="icon icon-eye-open"></i></button>
<button class="btn" title="{intl l='Edit next category'}"><i class="icon icon-arrow-right"></i></button>
{/if}
<button class="btn" title="{intl l='Edit previous category'}"><i class="icon icon-arrow-left"></i></button>
<button class="btn" title="{intl l='Preview category page'}"><i class="icon icon-eye-open"></i></button>
<button class="btn" title="{intl l='Edit next category'}"><i class="icon icon-arrow-right"></i></button>
</div>
</div>
<div class="tabbable">
<ul class="nav nav-tabs" id="tabbed_menu">
<ul class="nav nav-tabs admin-tabs" id="tabbed_menu">
<li class="active">
<a href="#general_description">{intl l="General description"}</a>
</li>
<li>
<a href="#details">{intl l="Details"}</a>
</li>
@@ -57,9 +46,13 @@
</ul>
<div class="tab-content">
<div class="tab-pane active" id="general_description">
<div class="tab-pane active form-container" id="general_description">
<form class="form-horizontal span12">
<fieldset>
{include file="includes/inner-form-toolbar.html"}
<div class="row-fluid">
<div class="span12">
<div class="control-group">
@@ -133,7 +126,12 @@
<div class="controls">
<select required="required" name="parent" class="input-block-level">
<option value="">{intl l="Choose a category"}</option>
<option value="0">{intl l="Top level"}</option>
{loop name="cat-parent" type="category-tree" visible="*" category="0" exclude="{$current_category_id}"}
<option value="#ID" style="padding-left: {3 + $LEVEL * 20}px" {if $parent_category_id == $ID}selected="selected"{/if}>{$TITLE}</option>
{/loop}
</select>
</div>
</div>
@@ -160,19 +158,22 @@
</div>
<div class="tab-pane" id="details">
<p>Infos générales</p>
<p>Détails divers</p>
</div>
<div class="tab-pane" id="images">
<p>Images</p>
</div>
<div class="tab-pane" id="documents">
<p>Documents</p>
</div>
<div class="tab-pane" id="modules">
<p>Modules</p>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,10 @@
{$page_title={intl l='AN error occured'}}
{include file='includes/header.inc.html'}
<div id="wrapper" class="container">
<h1>{intl l="Oops! An Error Occurred"}</h1>
<p>{$error_message}</p>
</div>
{include file='includes/footer.inc.html'}

View File

@@ -0,0 +1,66 @@
{* Adding a new Category *}
<div class="modal hide fade" id="add_category_dialog" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h3>{intl l="Create a new category"}</h3>
</div>
{form name="thelia.admin.category.creation"}
<form method="POST" action="{url path='/admin/catalog/category'}" {form_enctype form=$form}>
{* the action processed by the controller *}
<input type="hidden" name="action" value="create" />
{form_hidden_fields form=$form}
{form_field form=$form field='parent'}
<input type="hidden" name="{$name}" value="{$current_category_id}" />
{/form_field}
{form_field form=$form field='success_url'}
{* on success, redirect to category change page. _ID_ is replaced with the ID of the created category (see Thelia\Action\Category.php) *}
<input type="hidden" name="{$name}" value="{url path='admin/catalog/category' id="_ID_" action='edit'}" />
{/form_field}
<div class="modal-body">
{if #form_error}<div class="alert alert-block alert-error" id="add_category_dialog_error">#form_error_message</div>{/if}
<div class="control-group">
<label class="control-label">
{intl l='Category Title *'}
</label>
<div class="controls">
{loop type="lang" name="default-lang" default_only="1"}
{form_field form=$form field='locale'}
<input type="hidden" name="{$name}" value="{$LOCALE}" />
{/form_field}
<div class="input-append input-block-level">
{form_field form=$form field='title'}
<span {if $error}class="error"{/if}>
<input type="text" required="required" name="{$name}" value="{$value}" title="{intl l='Category title'}" placeholder="{intl l='Category title'}" class="input-block-level">
</span>
{/form_field}
<span class="add-on"><img src="{image file="../assets/img/flags/{$CODE}.gif"}" alt="{intl l=$TITLE}" /></span>
</div>
<div class="help-block">{intl l="Enter here the category title in the default language ($TITLE)"}</div>
{/loop}
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn" data-dismiss="modal" aria-hidden="true">{intl l="Cancel"}</button>
<button type="submit" class="btn btn-primary">{intl l="Create this category"}</button>
</div>
</form>
{/form}
</div>

View File

@@ -1,16 +1,18 @@
{* Breadcrumb for categories browsing and editing *}
<li><a href="{url path='admin/home'}">Home</a> <span class="divider">/</span></li>
<li><a href="{url path='admin/catalog'}">Catalog</a>
{ifloop rel="category_path"}
<span class="divider">/</span></li>
{loop name="category_path" type="category-path" category="{$current_category_id}"}
{loop name="category_path" type="category-path" visible="*" category="{$current_category_id}"}
{if $ID == $current_category_id}
<li class="active">
{if $action == 'edit'}
{intl l='Editing %cat' cat="{$TITLE}"}
{else}
{$TITLE} <a href="{url path="admin/catalog/category/edit/$ID"}" title="{intl l='Edit this category'}">{intl l="(edit)"}</a>
{$TITLE} <a href="{url path="admin/catalog/category/edit/$ID"}" title="{intl l='Edit this category'}">{intl l="(edit)"}</a>
{/if}
</li>
{else}
@@ -18,11 +20,7 @@
{/if}
{/loop}
{/ifloop}
{elseloop rel="category_path"}
{if $action == 'create'}<span class="divider">/</span>{/if}</li>
{/elseloop}
{if $action == 'create'}
<li class="active">{intl l='Create a new category'}</li>
{/if}
</li>
{/elseloop}

View File

@@ -0,0 +1,42 @@
{* Adding a new Category *}
<div class="modal hide fade" id="delete_category_dialog" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h3>{intl l="Delete a category"}</h3>
</div>
{form name="thelia.admin.category.deletion"}
<form method="POST" action="{url path='/admin/catalog/category'}" {form_enctype form=$form}>
{* the action processed by the controller *}
<input type="hidden" name="action" value="delete" />
{form_hidden_fields form=$form}
{form_field form=$form field='id'}
<input type="hidden" name="{$name}" id="delete-category-id" value="" />
{/form_field}
{form_field form=$form field='success_url'}
{* on success, redirect to catalog. _ID_ is replaced with the ID of the deleted category parent id (see Thelia\Action\Category.php) *}
<input type="hidden" name="{$name}" value="{url path='admin/catalog/category' id="_ID_" action='browse'}" />
{/form_field}
<div class="modal-body">
{if #form_error}<div class="alert alert-block alert-error" id="add_category_dialog_error">#form_error_message</div>{/if}
<p>{intl l="Delete this category and all its contents ?"}</p>
</div>
<div class="modal-footer">
<button type="button" class="btn" data-dismiss="modal" aria-hidden="true">{intl l="No"}</button>
<button type="submit" class="btn btn-primary">{intl l="Yes"}</button>
</div>
</form>
{/form}
</div>

View File

@@ -1,7 +1,7 @@
{module_include location='before_footer'}
<hr />
<footer class="modal-footer">
<footer class="footer">
<div class="container">
<p>{intl l='&copy; Thelia 2013'}
- <a href="http://www.openstudio.fr/" target="_blank">{intl l='Édité par OpenStudio'}</a>

View File

@@ -0,0 +1,27 @@
<div class="row-fluid inner-toolbar">
<div class="span6 inner-actions">
{* Display the top form toolbar, with edition flags, and save buttons *}
{* When creating a new object, only default language is displayed *}
{if $action == 'create'}
{$default_only = 1}
{else}
{$default_only = 0}
{/if}
<ul class="nav nav-pills">
{loop name="lang_list" type="lang" default_only={$default_only}}
<li {if $IS_DEFAULT}class="active"{/if}>
<a href="#" title="{intl l="Edit information for %lng" lng=$TITLE}">
<img src="{image file="../assets/img/flags/{$CODE}.gif"}" alt="{intl l=$TITLE}" />
</a>
</li>
{/loop}
</ul>
</div>
<div class="span6 inner-actions">
<button class="btn btn-primary" title="{intl l='Save'}">{intl l='Save'} <i class="icon icon-white icon-ok"></i></button>
<button class="btn btn-info" title="{intl l='Save and close'}">{intl l='Save and close'} <i class="icon icon-remove icon-white"></i></button>
</div>
</div>

View File

@@ -13,7 +13,7 @@
<div class="hero-unit">
<h1>{intl l='Thelia Back Office'}</h1>
{form name="thelia.admin.login" success_url="home" error_url="login"}
{form name="thelia.admin.login"}
<form action="{url path='/admin/checklogin'}" method="post" class="well form-inline" {form_enctype form=$form}>
{if #form_error}<div class="alert alert-error">#form_error_message</div>{/if}

View File

@@ -4,7 +4,7 @@
{* We use $INDEX_PAGE as form action to avoid mixing post and get data *}
<form action="{$INDEX_PAGE}" method="post" {form_enctype form=$form}>
{*
The two fields below are not par of the Login form, they are here to defines
The two fields below are not par of the form, they are here to defines
the action to process, and the view to render once the form is submited
*}
<input type="hidden" name="action" value="createCustomer" /> {* the action triggered by this form *}