script.js 10.4 KB
// JavaScript Document
jQuery(document).ready(function($) {


    setup();

    $('.tabs .tab-links a').on('click', function(e) {
        var currentAttrValue = jQuery(this).attr('href');

        // Show/Hide Tabs
        $('.tabs ' + currentAttrValue).show().siblings().hide();

        // Change/remove current tab to active
        $(this).parent('li').addClass('active').siblings().removeClass('active');


        var tab = $(this).attr("href");

        localStorage.setItem("tab", tab);
        e.preventDefault();
    });

    var currTab = localStorage.getItem("tab");
    console.log(currTab);
    $('a[href="' + currTab + '"]').trigger("click");




    $("#select-menu-to-edit").change(function() {
        var selectedText = $(this).find("option:selected").text();
        var selectedValue = $(this).val();
        if (selectedValue == "create_new") {
            $(".add-new").show();
            $('.gallery').hide();
            $('.dropped_selected').hide();

        } else {

            $(".add-new").hide();

            $.ajax({
                type: 'POST',
                url: window.ajaxurl,
                data: {
                    action: 'get_settings_data',
                    name: selectedValue
                },
                success: function(data) {
                    var pdata = JSON.parse(data)
                    $('#dirName').val(selectedValue);
                    $('#dirtype').val(pdata.dirtype);
                    $('.gallery').html('');
                    $('.gallery').html(pdata.dragg);
                    $('.dropped_selected').html('');
                    $('.dropped_selected').html(pdata.dropped);
                    setup();

                    //	$('#template').val(selectedValue);

                },
                error: function(jqXHR, error, errorThrown) {
                    if (jqXHR.status && jqXHR.status == 400) {
                        //alert(jqXHR.responseText);
                    } else {
                        alert("Something went wrong");
                    }
                }
            });


        }
    });



    $("#select-template-to-edit").change(function() {
        var selectedText = $(this).find("option:selected").text();
        var selectedValue = $(this).val();
        if (selectedValue == "create_new") {

            $("#template").show();
            $('#template').val('');

            $("#select-temp-to-edit").show();
            $(".temp").show();
            $('#directory_shortcode_template').html('');
        } else {
            $("#template").hide();
            $("#select-temp-to-edit").hide();
            $(".temp").show();


            $.ajax({
                type: 'POST',
                url: window.ajaxurl,
                data: {
                    action: 'get_template_data',
                    name: selectedValue
                },
                success: function(data) {
                    // alert(data);
                    $('#directory_shortcode_template').html('');
                    data = data.replace(/\\/g, '');
                 
                    $('#directory_shortcode_template').html(data);

                    $('#template ').val(selectedValue);

                },
                error: function(jqXHR, error, errorThrown) {
                    if (jqXHR.status && jqXHR.status == 400) {
                        //alert(jqXHR.responseText);
                    } else {
                        alert("Something went wrong");
                    }
                }
            });
        }
    });


 $("#select-query-to-edit").change(function() {
        var selectedText = $(this).find("option:selected").text();
        var selectedValue = $(this).val();
        if (selectedValue == "create_new") {

            $("#builderArea").show();
               $(".add-query").show();
            $('#json-parsed').html('');
        } else {
           $("#builderArea").show();
             $(".add-query").hide();
              $('#query').val(selectedValue);



            $.ajax({
                type: 'POST',
                url: window.ajaxurl,
                data: {
                    action: 'get_query_data',
                    name: selectedValue
                },
                success: function(data) {
                    // alert(data);
                    
                    $('#json-parsed').html('');
                    data = JSON.parse(data);
                   
                    $('#json-parsed').html(data);
                },
                error: function(jqXHR, error, errorThrown) {
                    if (jqXHR.status && jqXHR.status == 400) {
                        //alert(jqXHR.responseText);
                    } else {
                        alert("Something went wrong");
                    }
                }
            });
        }
    });



    $("#dirType").change(function() {
        var selectedText = $(this).find("option:selected").text();
        var selectedValue = $(this).val();
        var name = $("#dir").val();
        
        $.ajax({
            type: 'POST',
            url: window.ajaxurl,
            data: {
                action: 'get_settings_data',
                dirtype: selectedValue
            },
            success: function(data) {
                var pdata = JSON.parse(data)
                $('#dirName').val(name);
                $('#dirtype').val(selectedValue);
                $('.gallery').show();
                $('.gallery').html('');
                $('.gallery').html(pdata.dragg);
                $('.dropped_selected').show();
                $('.dropped_selected').html('');
                $('.dropped_selected').html(pdata.dropped);
                setup();

                //	$('#template').val(selectedValue);

            },
            error: function(jqXHR, error, errorThrown) {
                if (jqXHR.status && jqXHR.status == 400) {
                    //alert(jqXHR.responseText);
                } else {
                    alert("Something went wrong");
                }
            }
        });

    });




    $("#select-qurey-to-edit").change(function() {
        var selectedText = $(this).find("option:selected").text();
        var selectedValue = $(this).val();
        if (selectedValue == "create_new") {
            $(".add-qurey").toggle();
        } else {
            var base_url = window.location.origin;
            window.location.replace(base_url + '/commonwell/wp-admin/options-general.php?page=AzureActiveDirectory_PluginSettings&template=' + selectedValue);
        }
    });




    function setup() {
        $("#dropped_selected").sortable();
        $("#dropped_selected").disableSelection();
        $(".dragg").draggable();
        $(".droppable").droppable({

            drop: function(event, ui) {
                //console.log($(this).find('li.dragg'));
                ui.draggable.find('.myCheckbox').attr('checked', 'checked');
                ui.draggable.addClass('dropped');
                ui.draggable.find('.myCheckbox').attr('name', ' directory_shortcode_settings[' + $(this).attr("id") + '][]');
                ui.draggable.appendTo(this);
                //ui.draggable.on( "click", removeItem);
                ui.draggable.removeAttr('style').attr("style", "");
                ui.draggable.find("a.adbutton").addClass('ui-icon-delete').addClass('ui-btn-icon-left');
                return false;
            }
        });




        $("#sortable").sortable();
        $("#sortable").disableSelection();

        // There's the gallery and the trash
        var $gallery = $("#gallery"),
            $selected = $("#selected");

        // Let the gallery items be draggable
        $("li", $gallery).draggable({
            cancel: "a.ui-icon", // clicking an icon won't initiate dragging
            revert: "invalid", // when not dropped, the item will revert back to its initial position
            containment: "document",
            helper: "clone",
            cursor: "move"
        });



        // Let the trash be droppable, accepting the gallery items
        $selected.droppable({
            hoverClass: 'ui-state-highlight',
            accept: ":not(.ui-sortable-helper)",
            drop: function(ev, ui) {

                $(ui.draggable).remove();
                deleteImage(ui.draggable);
            }
        });


        // Resolve the icons behavior with event delegation
        $("ul.gallery > li").on("click", function(event) {
            var $item = $(this),
                $target = $(event.target);

            if ($target.is("a.ui-icon-arrow-d")) {
                deleteImage($item);
            } else if ($target.is("a.ui-icon-delete")) {
                $item.find("a.ui-icon-delete").addClass('ui-icon-arrow-d').removeClass('ui-icon-delete');
                $item.find('.myCheckbox').prop('checked', false);
                var itemName = $item.find('.myCheckbox').attr('id');
                $item.find('.adbutton').prop('title', 'add ' + itemName + ' to list');
                $item.find('.selectedTitle').remove();

                $item.appendTo($gallery)
            }

            return false;
        });

        $(".dropped").on("click", function(event) {
            var $item = $(this),
                $target = $(event.target);
            removeItem($item);
        });

    }




    function removeItem($item) {
        $item.find("a.ui-icon-delete").removeClass('ui-icon-delete').removeClass('ui-btn-icon-left');
        $item.attr("style", "position:relative;");
        $item.find('.myCheckbox').attr('checked', '');
        $item.appendTo('.gallery');

    }



    // Image deletion function

    function deleteImage($item) {
        $item.fadeOut(function() {
            var $list = $("ul", $selected).length ?
                $("ul", $selected) :
                $("<ul id='sortable'  class='gallery ui-helper-reset'/>").appendTo($selected);

            $item.find("a.ui-icon-arrow-d").addClass('ui-icon-delete').removeClass('ui-icon-arrow-d');
            $item.find('.myCheckbox').prop('checked', true);
            var itemName = $item.find('.myCheckbox').attr('id');
            $item.find('.adbutton').prop('title', 'remove ' + itemName + ' from list');
            if ($item.find('.selectedTitle').length <= 0) {
                $('<input placeholder="starts with" class="selectedTitle" type="text" name="directory_shortcode_settings_tltle[]">').insertAfter($item.find('.adbutton'));
            }
            $item.appendTo($list).fadeIn(function() {
                $item

            });
        });
    }




});