Подход по изменению цвета строки в сетке заказов в админке - PullRequest
3 голосов
/ 04 июля 2011

Мне нужно изменить цвет строки в сетке заказов magento в зависимости от статуса заказа. Для начала я не хочу комплексного решения с настраиваемым интерфейсом. Я просто хочу знать, с чего начать.

Каков наилучший подход?

1 Ответ

10 голосов
/ 04 июля 2011

Полный рабочий раствор:

Копирование js/mage/adminhtml/grid.js в js/colors/adminhtml/grid.js

Создайте файл 666 и папки (js / colors & js / colors /adminhtml) 777.

Отредактируйте его и после строки 208 (перед строкой, содержащей }.bind(this)) добавьте:

colorize();

В конце файла добавьте:

function colorize () {
    $$('td').each(function(macguffin) {
       if(macguffin.innerHTML.strip()=="Processing") macguffin.parentNode.setStyle({backgroundColor: 'Orange' });
        if(macguffin.innerHTML.strip()=="Pending") macguffin.parentNode.setStyle({backgroundColor: 'Gold', color:'Black' });
        if(macguffin.innerHTML.strip()=="Payment Review") macguffin.parentNode.setStyle({backgroundColor: 'LightPink' });
        if((macguffin.innerHTML.strip()=="On Hold")||(macguffin.innerHTML.strip()=="Payment Review")) macguffin.parentNode.setStyle({backgroundColor: 'HotPink' });
        if(macguffin.innerHTML.strip()=="Suspected Fraud") macguffin.parentNode.setStyle({backgroundColor: 'Red' });
        if((macguffin.innerHTML.strip()=="Closed")||(macguffin.innerHTML.strip()=="Canceled")||(macguffin.innerHTML.strip()=="Cancelled")) macguffin.parentNode.setStyle({backgroundColor: 'LightBlue', fontStyle: 'italic' });
        if(macguffin.innerHTML.strip()=="Complete") macguffin.parentNode.setStyle({backgroundColor: 'Green' });
  });
}
document.observe("dom:loaded", colorize);

Теперь создайте или отредактируйте файл admin local.xml в app/design/adminhtml/default/default/layout/local.xml

Отредактируйте его так, чтобы он включал:

<?xml version="1.0"?>
<layout version="0.1.0">
  <default>
    <reference name="head">
        <action method="removeItem"><type>js</type><name>mage/adminhtml/grid.js</name></action>
        <action method="addItem"><type>js</type><name>colors/adminhtml/grid.js</name></action> 
    </reference>
  </default>
</layout>

Сетка заказов теперь будет вяркие цвета, и вы сможете четко видеть, какие заказы требуют внимания.

Функцию colorize() можно редактировать в соответствии с состояниями вашего заказа и предпочтительной цветовой схемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...