diff --git a/admin-dev/tabs/AdminOrdersStates.php b/admin-dev/tabs/AdminOrdersStates.php deleted file mode 100644 index 22f1d9260..000000000 --- a/admin-dev/tabs/AdminOrdersStates.php +++ /dev/null @@ -1,209 +0,0 @@ - -* @copyright 2007-2011 PrestaShop SA -* @version Release: $Revision: 6844 $ -* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) -* International Registered Trademark & Property of PrestaShop SA -*/ - -class AdminOrdersStates extends AdminTab -{ - public function __construct() - { - $this->table = 'order_state'; - $this->className = 'OrderState'; - $this->lang = true; - $this->edit = true; - $this->delete = true; - $this->colorOnBackground = true; - - $this->fieldImageSettings = array('name' => 'icon', 'dir' => 'os'); - $this->imageType = 'gif'; - - $this->fieldsDisplay = array( - 'id_order_state' => array('title' => $this->l('ID'), 'align' => 'center', 'width' => 25), - 'name' => array('title' => $this->l('Name'), 'width' => 130), - 'logo' => array('title' => $this->l('Icon'), 'align' => 'center', 'image' => 'os', 'orderby' => false, 'search' => false), - 'send_email' => array('title' => $this->l('Send e-mail to customer'), 'align' => 'center', 'icon' => array('1' => 'enabled.gif', '0' => 'disabled.gif'), 'type' => 'bool', 'orderby' => false), - 'invoice' => array('title' => $this->l('Invoice'), 'align' => 'center', 'icon' => array('1' => 'enabled.gif', '0' => 'disabled.gif'), 'type' => 'bool', 'orderby' => false), - 'template' => array('title' => $this->l('E-mail template'), 'width' => 100)); - - parent::__construct(); - } - - public function postProcess() - { - $this->context = Context::getContext(); - if (Tools::isSubmit('submitAdd'.$this->table)) - { - $_POST['invoice'] = Tools::getValue('invoice'); - $_POST['logable'] = Tools::getValue('logable'); - $_POST['send_email'] = Tools::getValue('send_email'); - $_POST['hidden'] = Tools::getValue('hidden'); - $_POST['shipped'] = Tools::getValue('shipped'); - if (!$_POST['send_email']) - { - $languages = Language::getLanguages(false); - foreach ($languages AS $language) - $_POST['template_'.$language['id_lang']] = ''; - } - parent::postProcess(); - } - elseif (isset($_GET['delete'.$this->table])) - { - $orderState = new OrderState($_GET['id_order_state'], $this->context->language->id); - if (!$orderState->isRemovable()) - $this->_errors[] = $this->l('For security reasons, you cannot delete default order statuses.'); - else - parent::postProcess(); - } - elseif (isset($_POST['submitDelorder_state'])) - { - foreach ($_POST[$this->table.'Box'] AS $selection) - { - $orderState = new OrderState($selection, $this->context->language->id); - if (!$orderState->isRemovable()) - { - $this->_errors[] = $this->l('For security reasons, you cannot delete default order statuses.'); - break; - } - } - if (empty($this->_errors)) - parent::postProcess(); - } - else - parent::postProcess(); - } - - private function getTemplates($iso_code) - { - $array = array(); - if (!file_exists(_PS_ADMIN_DIR_.'/../mails/'.$iso_code)) - return false; - $templates = scandir(_PS_ADMIN_DIR_.'/../mails/'.$iso_code); - foreach ($templates AS $template) - if (!strncmp(strrev($template), 'lmth.', 5)) - $array[] = substr($template, 0, -5); - return $array; - } - - public function displayForm($isMainTab = true) - { - parent::displayForm(); - - if (!($obj = $this->loadObject(true))) - return; - - echo ' -
'; - } -} - - diff --git a/admin-dev/tabs/AdminReturnStates.php b/admin-dev/tabs/AdminReturnStates.php deleted file mode 100644 index 1795e521a..000000000 --- a/admin-dev/tabs/AdminReturnStates.php +++ /dev/null @@ -1,79 +0,0 @@ - -* @copyright 2007-2011 PrestaShop SA -* @version Release: $Revision: 6844 $ -* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) -* International Registered Trademark & Property of PrestaShop SA -*/ - -class AdminReturnStates extends AdminTab -{ - public function __construct() - { - $this->table = 'order_return_state'; - $this->className = 'OrderReturnState'; - $this->lang = true; - $this->edit = true; - $this->noAdd = true; - $this->delete = false; - $this->colorOnBackground = true; - - $this->fieldsDisplay = array( - 'id_order_return_state' => array('title' => $this->l('ID'), 'align' => 'center', 'width' => 25), - 'name' => array('title' => $this->l('Name'), 'width' => 130) - ); - - parent::__construct(); - } - - public function displayForm($isMainTab = true) - { - parent::displayForm(); - - if (!($obj = $this->loadObject(true))) - return; - - echo ' - '; - } -} - - diff --git a/admin-dev/tabs/AdminStatuses.php b/admin-dev/tabs/AdminStatuses.php deleted file mode 100644 index 2059f8b5b..000000000 --- a/admin-dev/tabs/AdminStatuses.php +++ /dev/null @@ -1,83 +0,0 @@ - -* @copyright 2007-2011 PrestaShop SA -* @version Release: $Revision: 6844 $ -* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) -* International Registered Trademark & Property of PrestaShop SA -*/ - -include(_PS_ADMIN_DIR_.'/tabs/AdminOrdersStates.php'); -include(_PS_ADMIN_DIR_.'/tabs/AdminReturnStates.php'); - -class AdminStatuses extends AdminTab -{ - private $adminOrdersStates; - private $adminReturnStates; - - public function __construct() - { - $this->table = array('order_state', 'order_return_state'); - $this->adminOrdersStates = new adminOrdersStates(); - $this->adminReturnStates = new adminReturnStates(); - - parent::__construct(); - } - - public function viewAccess($disable = false) - { - $result = parent::viewAccess($disable); - $this->adminOrdersStates->tabAccess = $this->tabAccess; - $this->adminReturnStates->tabAccess = $this->tabAccess; - return $result; - } - - public function postProcess() - { - $this->adminOrdersStates->token = $this->token; - $this->adminReturnStates->token = $this->token; - - $this->adminOrdersStates->postProcess($this->token); - $this->adminReturnStates->postProcess($this->token); - } - - public function displayErrors() - { - $this->adminOrdersStates->displayErrors($this->token); - $this->adminReturnStates->displayErrors($this->token); - } - - public function display() - { - if (!Tools::isSubmit('updateorder_return_state') AND !Tools::isSubmit('submitAddorder_return_state')) - { - echo '
+
\ No newline at end of file
diff --git a/classes/OrderReturnState.php b/classes/OrderReturnState.php
index aad1752a5..fb40e70f5 100644
--- a/classes/OrderReturnState.php
+++ b/classes/OrderReturnState.php
@@ -1,6 +1,6 @@
'isColor');
- protected $fieldsRequiredLang = array('name');
- protected $fieldsSizeLang = array('name' => 64);
- protected $fieldsValidateLang = array('name' => 'isGenericName');
-
- protected $table = 'order_return_state';
- protected $identifier = 'id_order_return_state';
-
+ public $color;
+
+ protected $fieldsValidate = array('color' => 'isColor');
+ protected $fieldsRequiredLang = array('name');
+ protected $fieldsSizeLang = array('name' => 64);
+ protected $fieldsValidateLang = array('name' => 'isGenericName');
+
+ protected $table = 'order_return_state';
+ protected $identifier = 'id_order_return_state';
+
public function getFields()
{
$this->validateFields();
$fields['color'] = pSQL($this->color);
return $fields;
}
-
+
/**
* Check then return multilingual fields for database interaction
*
@@ -59,7 +58,7 @@ class OrderReturnStateCore extends ObjectModel
$this->validateFieldsLang();
return $this->getTranslationsFields(array('name'));
}
-
+
/**
* Get all available order states
*
@@ -74,7 +73,5 @@ class OrderReturnStateCore extends ObjectModel
LEFT JOIN `'._DB_PREFIX_.'order_return_state_lang` orsl ON (ors.`id_order_return_state` = orsl.`id_order_return_state` AND orsl.`id_lang` = '.(int)($id_lang).')
ORDER BY ors.`id_order_return_state` ASC');
}
-
-
}
diff --git a/classes/OrderState.php b/classes/OrderState.php
index b50db5d29..a6beafb38 100644
--- a/classes/OrderState.php
+++ b/classes/OrderState.php
@@ -1,6 +1,6 @@
'isBool', 'invoice' => 'isBool', 'color' => 'isColor', 'logable' => 'isBool', 'shipped' => 'isBool');
+ protected $fieldsValidate = array(
+ 'send_email' => 'isBool',
+ 'invoice' => 'isBool',
+ 'color' => 'isColor',
+ 'logable' => 'isBool',
+ 'shipped' => 'isBool'
+ );
+
protected $fieldsRequiredLang = array('name');
protected $fieldsSizeLang = array('name' => 64, 'template' => 64);
protected $fieldsValidateLang = array('name' => 'isGenericName', 'template' => 'isTplName');
-
+
protected $table = 'order_state';
protected $identifier = 'id_order_state';
-
+
protected $webserviceParameters = array(
'fields' => array(
'unremovable' => array(),
@@ -71,21 +78,21 @@ class OrderStateCore extends ObjectModel
'hidden' => array(),
),
);
-
+
public function getFields()
{
$this->validateFields();
- $fields['send_email'] = (int)($this->send_email);
- $fields['invoice'] = (int)($this->invoice);
+ $fields['send_email'] = (int)$this->send_email;
+ $fields['invoice'] = (int)$this->invoice;
$fields['color'] = pSQL($this->color);
- $fields['unremovable'] = (int)($this->unremovable);
- $fields['logable'] = (int)($this->logable);
- $fields['delivery'] = (int)($this->delivery);
- $fields['hidden'] = (int)($this->hidden);
- $fields['shipped'] = (int)($this->shipped);
+ $fields['unremovable'] = (int)$this->unremovable;
+ $fields['logable'] = (int)$this->logable;
+ $fields['delivery'] = (int)$this->delivery;
+ $fields['hidden'] = (int)$this->hidden;
+ $fields['shipped'] = (int)$this->shipped;
return $fields;
}
-
+
/**
* Check then return multilingual fields for database interaction
*
@@ -96,7 +103,7 @@ class OrderStateCore extends ObjectModel
$this->validateFieldsLang();
return $this->getTranslationsFields(array('name', 'template'));
}
-
+
/**
* Get all available order states
*
@@ -108,7 +115,7 @@ class OrderStateCore extends ObjectModel
return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
SELECT *
FROM `'._DB_PREFIX_.'order_state` os
- LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.(int)($id_lang).')
+ LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.(int)$id_lang.')
ORDER BY `name` ASC');
}
@@ -123,10 +130,10 @@ class OrderStateCore extends ObjectModel
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
SELECT `invoice` AS ok
FROM `'._DB_PREFIX_.'order_state`
- WHERE `id_order_state` = '.(int)($id_order_state));
+ WHERE `id_order_state` = '.(int)$id_order_state);
return $result['ok'];
}
-
+
public function isRemovable()
{
return !($this->unremovable);
diff --git a/controllers/admin/AdminStatusesController.php b/controllers/admin/AdminStatusesController.php
new file mode 100644
index 000000000..358ae29a1
--- /dev/null
+++ b/controllers/admin/AdminStatusesController.php
@@ -0,0 +1,491 @@
+
+* @copyright 2007-2011 PrestaShop SA
+* @version Release: $Revision: 8971 $
+* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
+* International Registered Trademark & Property of PrestaShop SA
+*/
+
+class AdminStatusesControllerCore extends AdminController
+{
+ public function __construct()
+ {
+ $this->table = 'order_state';
+ $this->className = 'OrderState';
+ $this->lang = true;
+ $this->deleted = false;
+ $this->colorOnBackground = true;
+ $this->imageType = 'gif';
+
+ $this->fieldImageSettings = array(
+ 'name' => 'icon',
+ 'dir' => 'os'
+ );
+
+ $this->requiredDatabase = true;
+
+ $this->context = Context::getContext();
+ $this->fieldImageSettings = array(
+ 'name' => 'icon',
+ 'dir' => 'os'
+ );
+
+ $this->fieldsDisplay = array(
+ 'id_order_state' => array(
+ 'title' => $this->l('ID'),
+ 'align' => 'center',
+ 'width' => 25
+ ),
+ 'name' => array(
+ 'title' => $this->l('Name'),
+ 'width' => 130
+ ),
+ 'logo' => array(
+ 'title' => $this->l('Icon'),
+ 'align' => 'center',
+ 'image' => 'os',
+ 'orderby' => false,
+ 'search' => false
+ ),
+ 'send_email' => array(
+ 'title' => $this->l('Send e-mail to customer'),
+ 'align' => 'center',
+ 'icon' => array(
+ '1' => 'enabled.gif',
+ '0' => 'disabled.gif'
+ ),
+ 'type' => 'bool',
+ 'orderby' => false
+ ),
+ 'invoice' => array(
+ 'title' => $this->l('Invoice'),
+ 'align' => 'center',
+ 'icon' => array(
+ '1' => 'enabled.gif',
+ '0' => 'disabled.gif'
+ ),
+ 'type' => 'bool',
+ 'orderby' => false
+ ),
+ 'template' => array(
+ 'title' => $this->l('E-mail template'),
+ 'width' => 100
+ )
+ );
+
+ parent::__construct();
+ }
+
+ public function initList()
+ {
+ $this->addRowAction('edit');
+ $this->addRowAction('delete');
+
+ $this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'), 'confirm' => $this->l('Delete selected items?')));
+
+ $list_orders_status = parent::initList();
+
+ // Added new list
+
+ // reset actions and query vars
+ $this->actions = array();
+ unset($this->fieldsDisplay, $this->_select, $this->_join, $this->_group, $this->_filterHaving, $this->_filter, $this->identifier);
+
+ $this->table = 'order_return_state';
+ $this->_defaultOrderBy = $this->identifier = 'id_order_return_state';
+ $this->deleted = false;
+ $this->toolbar_btn = array();
+ $this->bulk_actions = array();
+
+ $this->addRowAction('editstatus');
+
+ // test if a filter is applied for this list
+ if (Tools::isSubmit('submitFilter'.$this->table) || $this->context->cookie->{'submitFilter'.$this->table} !== false)
+ $this->filter = true;
+
+ // test if a filter reset request is required for this list
+ if (isset($_POST['submitReset'.$this->table]))
+ $this->action = 'reset_filters';
+ else
+ $this->action = '';
+
+ $this->fieldsDisplay = array(
+ 'id_order_return_state' => array(
+ 'title' => $this->l('ID'),
+ 'align' => 'center',
+ 'width' => 25
+ ),
+ 'name' => array(
+ 'title' => $this->l('Name'),
+ 'align' => 'center',
+ 'width' => 200
+ )
+ );
+
+ // call postProcess() for take care about actions and filters
+ $this->postProcess();
+
+ $list_orders_returns_status = parent::initList();
+
+ return $list_orders_status.$list_orders_returns_status;
+ }
+
+ /**
+ * Display editaddresses action link
+ * @param string $token the token to add to the link
+ * @param int $id the identifier to add to the link
+ * @return string
+ */
+ public function displayEditaddressesLink($token = null, $id)
+ {
+ if (!array_key_exists('editaddresses', self::$cache_lang))
+ self::$cache_lang['editaddresses'] = $this->l('Edit Adresses');
+
+ $this->context->smarty->assign(array(
+ 'href' => self::$currentIndex.
+ '&'.$this->identifier.'='.$id.
+ '&editaddresses&token='.($token != null ? $token : $this->token),
+ 'action' => self::$cache_lang['editaddresses'],
+ ));
+
+ return $this->context->smarty->fetch(_PS_ADMIN_DIR_.'/themes/template/manufacturers/list_action_edit_adresses.tpl');
+ }
+
+ public function initForm()
+ {
+ $this->fields_form = array(
+ 'tinymce' => true,
+ 'legend' => array(
+ 'title' => $this->l('Order statuses'),
+ 'image' => '../img/admin/time.gif'
+ ),
+ 'input' => array(
+ array(
+ 'type' => 'text',
+ 'label' => $this->l('Status name:'),
+ 'name' => 'name',
+ 'lang' => true,
+ 'attributeLang' => 'name¤template',
+ 'size' => 40,
+ 'required' => true,
+ 'hint' => $this->l('Invalid characters: numbers and').' !<>,;?=+()@#"�{}_$%:',
+ 'p' => $this->l('Order status (e.g., \'Pending\')')
+ ),
+ array(
+ 'type' => 'file',
+ 'label' => $this->l('Icon:'),
+ 'name' => 'icon',
+ 'p' => $this->l('Upload an icon from your computer (File type: .gif, suggested size: 16x16)')
+ ),
+ array(
+ 'type' => 'color',
+ 'label' => $this->l('Color:'),
+ 'name' => 'color',
+ 'size' => 30,
+ 'p' => $this->l('Status will be highlighted in this color. HTML colors only (e.g.,').' "lightblue", "#CC6600")'
+ ),
+ array(
+ 'type' => 'checkbox',
+ 'name' => 'logable',
+ 'values' => array(
+ 'query' => array(
+ array(
+ 'id' => 'on',
+ 'name' => $this->l('Consider the associated order as validated'),
+ 'val' => '1'
+ ),
+ ),
+ 'id' => 'id',
+ 'name' => 'name'
+ )
+ ),
+ array(
+ 'type' => 'checkbox',
+ 'name' => 'invoice',
+ 'values' => array(
+ 'query' => array(
+ array(
+ 'id' => 'on',
+ 'name' => $this->l('Allow customer to download and view PDF version of invoice'),
+ 'val' => '1'
+ ),
+ ),
+ 'id' => 'id',
+ 'name' => 'name'
+ )
+ ),
+ array(
+ 'type' => 'checkbox',
+ 'name' => 'hidden',
+ 'values' => array(
+ 'query' => array(
+ array(
+ 'id' => 'on',
+ 'name' => $this->l('Hide this state in order for customer'),
+ 'val' => '1'
+ ),
+ ),
+ 'id' => 'id',
+ 'name' => 'name'
+ )
+ ),
+ array(
+ 'type' => 'checkbox',
+ 'name' => 'send_email',
+ 'values' => array(
+ 'query' => array(
+ array(
+ 'id' => 'on',
+ 'name' => $this->l('Send e-mail to customer when order is changed to this status'),
+ 'val' => '1'
+ ),
+ ),
+ 'id' => 'id',
+ 'name' => 'name'
+ )
+ ),
+ array(
+ 'type' => 'checkbox',
+ 'name' => 'shipped',
+ 'values' => array(
+ 'query' => array(
+ array(
+ 'id' => 'on',
+ 'name' => $this->l('Set order as shipped'),
+ 'val' => '1'
+ ),
+ ),
+ 'id' => 'id',
+ 'name' => 'name'
+ )
+ ),
+ array(
+ 'type' => 'select_template',
+ 'label' => $this->l('Template:'),
+ 'name' => 'template',
+ 'lang' => true,
+ 'attributeLang' => 'name¤template',
+ 'options' => array(
+ 'query' => $this->getTemplates($this->context->language->iso_code),
+ 'id' => 'id',
+ 'name' => 'name'
+ ),
+ 'hint' => $this->l('Only letters, number and -_ are allowed'),
+ 'p' => $this->l('E-mail template for both .html and .txt')
+ )
+ ),
+ 'submit' => array(
+ 'title' => $this->l(' Save '),
+ 'class' => 'button'
+ )
+ );
+
+ if (!($obj = $this->loadObject(true)))
+ return;
+
+ $this->fields_value = array(
+ 'logable_on' => $this->getFieldValue($obj, 'logable'),
+ 'invoice_on' => $this->getFieldValue($obj, 'invoice'),
+ 'hidden_on' => $this->getFieldValue($obj, 'hidden'),
+ 'send_email_on' => $this->getFieldValue($obj, 'send_email'),
+ 'shipped_on' => $this->getFieldValue($obj, 'shipped')
+ );
+
+ return parent::initForm();
+ }
+
+ public function initFormStatus()
+ {
+ $id_order_return_state = Tools::getValue('id_order_return_state');
+
+ // Create Object OrderReturnState
+ $order_return_state = new OrderReturnState($id_order_return_state);
+
+ $this->fields_form = array(
+ 'tinymce' => true,
+ 'legend' => array(
+ 'title' => $this->l('Order statuses'),
+ 'image' => '../img/admin/time.gif'
+ ),
+ 'input' => array(
+ array(
+ 'type' => 'text',
+ 'label' => $this->l('Status name:'),
+ 'name' => 'name',
+ 'lang' => true,
+ 'attributeLang' => 'name¤template',
+ 'size' => 40,
+ 'required' => true,
+ 'hint' => $this->l('Invalid characters: numbers and').' !<>,;?=+()@#"�{}_$%:',
+ 'p' => $this->l('Order return status name')
+ )
+ ),
+ 'submit' => array(
+ 'title' => $this->l(' Save '),
+ 'class' => 'button'
+ )
+ );
+
+ $this->getlanguages();
+ $helper = new HelperForm();
+ $helper->currentIndex = self::$currentIndex;
+ $helper->token = $this->token;
+ $helper->table = 'order_return_state';
+ $helper->identifier = 'id_order_return_state';
+ $helper->id = $order_return_state->id;
+ $helper->languages = $this->_languages;
+ $helper->default_form_language = $this->default_form_language;
+ $helper->allow_employee_form_lang = $this->allow_employee_form_lang;
+ $helper->fields_value = $this->getFieldsValue($order_return_state);
+ info($helper->fields_value);
+ $helper->toolbar_btn = $this->toolbar_btn;
+ $this->content .= $helper->generateForm($this->fields_form);
+ }
+
+ private function getTemplates($iso_code)
+ {
+ $array = array();
+ if (!file_exists(_PS_ADMIN_DIR_.'/../mails/'.$iso_code))
+ return false;
+ $templates = scandir(_PS_ADMIN_DIR_.'/../mails/'.$iso_code);
+ foreach ($templates as $key => $template)
+ if (!strncmp(strrev($template), 'lmth.', 5))
+ $array[] = array(
+ 'id' => substr($template, 0, -5),
+ 'name' => substr($template, 0, -5)
+ );
+
+ return $array;
+ }
+
+ /**
+ * AdminController::init() override
+ * @see AdminController::init()
+ */
+ public function init()
+ {
+ if (Tools::isSubmit('editstatus'))
+ $this->display = 'editstatus';
+
+ parent::init();
+ }
+
+ public function initContent()
+ {
+ if ($this->display == 'editstatus' || $this->display == 'editstatus')
+ {
+ $this->content .= $this->initFormStatus();
+
+ $this->context->smarty->assign(array(
+ 'content' => $this->content
+ ));
+ }
+ else
+ return parent::initContent();
+ }
+
+ /**
+ * Display editaddresses action link
+ * @param string $token the token to add to the link
+ * @param int $id the identifier to add to the link
+ * @return string
+ */
+ public function displayEditstatusLink($token = null, $id)
+ {
+ if (!array_key_exists('editstatus', self::$cache_lang))
+ self::$cache_lang['editstatus'] = $this->l('Edit Status');
+
+ $this->context->smarty->assign(array(
+ 'href' => self::$currentIndex.
+ '&'.$this->identifier.'='.$id.
+ '&editstatus&token='.($token != null ? $token : $this->token),
+ 'action' => self::$cache_lang['editstatus'],
+ ));
+
+ return $this->context->smarty->fetch(_PS_ADMIN_DIR_.'/themes/template/statuses/list_action_edit_status.tpl');
+ }
+
+ public function postProcess()
+ {
+ if (Tools::isSubmit('submitAddorder_return_state'))
+ {
+ $id_order_return_state = (int)Tools::getValue('id_order_return_state');
+
+ // Create Object OrderReturnState
+ $order_return_state = new OrderReturnState($id_order_return_state);
+
+ $order_return_state->name = array();
+ $languages = Language::getLanguages(false);
+ foreach ($languages as $language)
+ $order_return_state->name[$language['id_lang']] = Tools::getValue('name_'.$language['id_lang']);
+
+ // Update object
+ if (!$order_return_state->save())
+ $this->_errors[] = Tools::displayError('An error has occured: Can\'t save the current order return state');
+ else
+ Tools::redirectAdmin(self::$currentIndex.'&conf=4&token='.$this->token);
+ }
+
+ if (Tools::isSubmit('submitAdd'.$this->table))
+ {
+ $_POST['invoice'] = (int)Tools::getValue('invoice_on');
+ $_POST['logable'] = (int)Tools::getValue('logable_on');
+ $_POST['send_email'] = (int)Tools::getValue('send_email_on');
+ $_POST['hidden'] = (int)Tools::getValue('hidden_on');
+ $_POST['shipped'] = (int)Tools::getValue('shipped_on');
+ if (!$_POST['send_email'])
+ {
+ $languages = Language::getLanguages(false);
+ foreach ($languages as $language)
+ $_POST['template_'.$language['id_lang']] = '';
+ }
+
+ return parent::postProcess();
+ }
+ else if (isset($_GET['delete'.$this->table]))
+ {
+ $order_state = new OrderState($_GET['id_order_state'], $this->context->language->id);
+ if (!$order_state->isRemovable())
+ $this->_errors[] = $this->l('For security reasons, you cannot delete default order statuses.');
+ else
+ return parent::postProcess();
+ }
+ else if (isset($_POST['submitDelorder_state']))
+ {
+ foreach ($_POST[$this->table.'Box'] as $selection)
+ {
+ $order_state = new OrderState($selection, $this->context->language->id);
+ if (!$order_state->isRemovable())
+ {
+ $this->_errors[] = $this->l('For security reasons, you cannot delete default order statuses.');
+ break;
+ }
+ }
+ if (empty($this->_errors))
+ return parent::postProcess();
+ }
+ else
+ return parent::postProcess();
+ }
+}
+
+
diff --git a/js/admin.js b/js/admin.js
index c27c2b27e..6e851c530 100644
--- a/js/admin.js
+++ b/js/admin.js
@@ -492,10 +492,9 @@ function openWin(url, title, width, height, top, left)
newWin.focus();
}
-function viewTemplates(id_select, id_lang, prefix, ext)
+function viewTemplates(id_select, prefix, ext)
{
- var id_list = document.getElementById(id_select);
- var loc = id_list.options[id_list.selectedIndex].value;
+ var loc = $(id_select).val();
if (loc != 0)
openWin (prefix+loc+ext, 'tpl_viewing', '520', '400', '50', '300');
return ;