1

I have a problem, i have create a new tab to manage Push Ahead/Highlight product for each category.

But, i want to display all the product Push Ahead/Highlight and when i unChecked the Checkbox on the left and i save the product is no longer push ahead/highlited.

The problem is with JS/Php i don't find a way to do that with magento...

Can someone have an idea ?

Here my JS :

`
        <input type="hidden" name="push_ahead" id="PushAheadProducts" value="" />
<script type="text/javascript">
//<![CDATA[

<?php if(($block = $this->getLayout()->getBlock('category.product.grid')) && ($_gridJsObject=$block->getJsObjectName())): ?>

    var pushProducts = $H(<?php echo $this->getProductsJson() ?>);
    $('PushAheadProducts').value = pushProducts.toQueryString();

    function registerCategoryProduct(grid, element, checked){
        if(checked){
            if(element.positionElement){
//                            console.log("here");
                element.positionElement.disabled = false;
                pushProducts.set(element.value, element.positionElement.value);
            }
        }
        else{
            if(element.positionElement){
                element.positionElement.disabled = true;
            }
            pushProducts.unset(element.value);
        }
        $('PushAheadProducts').value = pushProducts.toQueryString();
        grid.reloadParams = {'selected_products[]':pushProducts.keys()};
    }
    function categoryProductRowClick(grid, event){
//                    console.log("here");
        var trElement = Event.findElement(event, 'tr');
        var isInput   = Event.element(event).tagName == 'INPUT';
        if(trElement){
//                        console.log("here");
            var checkbox = Element.getElementsBySelector(trElement, 'input');
            if(checkbox[0]){
                var checked = isInput ? checkbox[0].checked : !checkbox[0].checked;
                <?php echo $_gridJsObject ?>.setCheckboxChecked(checkbox[0], checked);
            }
        }
    }
    function positionChange(event){          
//        console.log("here");
        var element = Event.element(event);
        if(element && element.checkboxElement && element.checkboxElement.checked){
            pushProducts.set(element.checkboxElement.value, element.value);
            $('PushAheadProducts').value = '0';
        }
    }

    var tabIndex = 1000;
    function categoryProductRowInit(grid, row){
        var checkbox = $(row).getElementsByClassName('checkbox')[0];
        var position = $(row).getElementsByClassName('input-text')[0];
        if(checkbox && position){
//            console.log("here");
            checkbox.positionElement = position;
            position.checkboxElement = checkbox;
            position.disabled = !checkbox.checked;
            position.tabIndex = tabIndex++;
            Event.observe(position,'keyup',positionChange);
        }
    }


    <?php echo $_gridJsObject ?>.rowClickCallback = categoryProductRowClick;
    <?php echo $_gridJsObject ?>.initRowCallback = categoryProductRowInit;
    <?php echo $_gridJsObject ?>.checkboxCheckCallback = registerCategoryProduct;
    <?php echo $_gridJsObject ?>.rows.each(function(row){categoryProductRowInit(<?php echo $_gridJsObject ?>, row)});

<?php endif; ?>
//]]>
</script>
`