favorite-vacancy-1.blade.php 4.37 KB
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
<script>
    console.log('js выполняется...');
    console.log($.cookie('favorite_vacancy'));
    console.log('...................');

    $(document).ready(function() {
        $(document).on('click', '.js_vacancy_favorites', function () {
            var _this = $(this);
            var id_worker = _this.attr('data-val');

            console.log('Test test test test test...');
            console.log('id_worker='+id_worker);

            if (_this.hasClass('active')) {
                //add_in_array(id_worker);
                add_new_element(id_worker);
                console.log('Добавлено в избранное id=' + id_worker);
            } else {
                //delete_in_array(id_worker);
                console.log('Удалено из избранных id='+id_worker)
            }
            var str = $.cookie('favorite_vacancy');
            console.log("Вывод куков "+str);

        });
    });

    function add_new_element(obj) {
        var dataArr = $.cookie('favorite_vacancy');//считываем данные из куков
        var Arr;

        if(dataArr===null){
            dataArr = JSON.stringify(new Array());
        }

        console.log('data='+dataArr);
        Arr = JSON.parse(dataArr);
        Arr[Arr.length] = obj;
        $.cookie("favorite_vacancy", JSON.stringify(Arr), '/');
    }

    function delete_new_element(obj) {
        var dataArr=$.cookie('favorite_vacancy');//считываем данные из куков

        if(dataArr===null){
            dataArr = JSON.stringify(new Array());
        }

        var unique = [...new Set(dataArr)]
        var index = unique.indexOf(obj);

        unique.splice(index, 1);
        console.log('Вывод массива='+dataArr);
        $.cookie("favorite_vacancy", JSON.stringify(index), '/');

    }

    //помеченный элемент
    function selected_item(obj) {
        var arr = read_array();
        var index = arr.indexOf(obj);

        if (index > 0)
            return "active";
        else
            return "";
    }

    // запись элемента массива в cookie
    function add_in_array(obj){
        var arr = read_array();//получаем текущее состояние массива
        console.log(obj);
        arr[arr.length]=obj; //добавляем элемент в конец
        //var str = JSON.stringify(arr);//конвертируем в строку
        //$.cookie('arr',str);//записываем массив в куки
        //$.cookie('favorite_vac', JSON.stringify(arr));
        //console.log(obj);
        //SetCookie("favorite_vacancy", JSON.stringify(arr), time()+60*60*24*1, '/');
    }

    // удаление элемента из массива в cookie
    function delete_in_array(obj) {
        var arr = read_array();
        var unique = [...new Set(arr)]
        var index = unique.indexOf(obj);

        unique.splice(index, 1);

        //var str = JSON.stringify(arr);//конвертируем в строку
        //$.cookie('arr',str);//записываем массив в куки
        //$.cookie('favorite_vac', JSON.stringify(unique));
        SetCookie("favorite_vacancy", JSON.stringify(unique), time()+60*60*24*1, '/');

    }

    function read_array(){
        var dataArr=$.cookie('favorite_vacancy');//считываем данные из куков

        //если массив  не был обнаружен, иницилизируем его
        if(dataArr===null){
            dataArr = init_array(); //возвращаем инициализированный пустой маасив
        }
        //возвращаем полученный массив
        //return JSON.parse(dataArr);
        console.log(dataArr);
        return JSON.parse(dataArr);
    }

    //другими словами создаем пустой массив
    function init_array(){
        //var str = JSON.stringify(new Array());//конвертируем в строку
        var str = JSON.stringify(new Array());
        //$.cookie('favorite_vac',str);//записываем массив в куки
        //SetCookie("favorite_vacancy", str, time()+60*60*24*1, '/');
        $.cookie("favorite_vacancy", str);
        return str;
    }
</script>