$( document ).ready( onDocumentReady ); ProductsListObj = function() { this.init = function() { initUniqueAdd(); initMultipleAdd(); initUniqueDelete(); initToggleAdd(); initTruncate(); } function initUniqueAdd() { $( "[name=uniqueAdd]" ).click( function(){ add( [{ id:$(this).attr("data-idProduct"), alt1:$(this).attr("data-alt1"), alt2:$(this).attr("data-alt2") }] ); } ); } function initMultipleAdd() { if( $('[name="multipleAdd[]"]:visible').length==0 ){ $('.multipleAction').hide(); } else{ $('.multipleAction').show(); $('[name=multipleAddAction]').click( function(){ var values = []; $('[name="multipleAdd[]"]:checked').each(function( i , n ){ values.push({id:$(n).val()}); }); add( values ); }); } } function add( elemToAdd ) { $.post( "/action-ProductsListActions-addProducts" , { products : elemToAdd }, onAdd ) } function onAdd( result ) { initDisplay(result); //$(document).trigger("ProductsListEvent" , {action:"add"}); } function initUniqueDelete() { $( "[name=uniqueDelete]" ).click( function(){ deleteProduct( [{ id:$(this).attr("data-idProduct"), alt1:$(this).attr("data-alt1"), alt2:$(this).attr("data-alt2") }] ); } ); } function deleteProduct( elemToDelete ) { $.post( "/action-ProductsListActions-deleteProducts" , { products : elemToDelete }, onDeleteProduct ); } function onDeleteProduct(result) { if( $("#savedProductsList").length > 0 ){ window.location.href= window.location.href; } else{ initDisplay( result ); //$(document).trigger("ProductsListEvent" , {action:"delete"}); } } function initDisplay( result ) { result = JSON.parse( result ); $("[data-idProduct]").each(function( i , n ){ var idProduct = $(n).attr("data-idProduct"); if( result.indexOf( idProduct ) > -1 ){ displayDelete( idProduct ); } else{ displayAdd( idProduct ); } }); initMultipleAdd(); } function displayAdd(product){ $($("[data-idProduct="+product+"]").parents(".list-add")[0]).removeClass("hide"); $($("[data-idProduct="+product+"]").parents(".list-delete")[0]).addClass("hide"); } function displayDelete(product){ $($("[data-idProduct="+product+"]").parents(".list-add")[0]).addClass("hide"); $($("[data-idProduct="+product+"]").parents(".list-delete")[0]).removeClass("hide"); } function initToggleAdd() { $( "[name='multipleAdd[]']").change( initToggleAddButton ); $("[name=toggleAdd]").change(function(){ if( $(this).is( ':checked') ){ $("[name='multipleAdd[]']").prop( "checked", true); $( "#toggle" ).addClass( "uncheck" ); } else{ $("[name='multipleAdd[]']").prop( "checked", false); $( "#toggle" ).removeClass( "uncheck" ); } }); } function initToggleAddButton() { if( $( "[name='multipleAdd[]']:checked").length == $( "[name='multipleAdd[]']").length ){ $("[name=toggleAdd]").prop( "checked", true); } else{ $("[name=toggleAdd]").prop( "checked", false); } } function initTruncate() { $( "[name=truncate]" ).click( function(){ $.post( "/action-ProductsListActions-truncateList", function(){ window.location.href = window.location.href; }); }); } } var ProductsList = new ProductsListObj(); function onDocumentReady() { ProductsList.init(); }