plugins/dashboards/templates/admin/manage_dashboards/ds_edit_js.stpl

Summary

Maintainability
Test Coverage
{jquery()}

    $(".column").sortable({
        connectWith: ".column",
        helper: function(e,li) {
            copyHelper = li.clone().insertAfter(li);
            return li.clone();
        },
        stop: function(e,ui) {
            copyHelper && copyHelper.remove();
            var _item = $(ui.item[0])
            //Math.floor(Math.random() * 100000)
            var _new_id = new Date().getTime();
            var _auto_id = "autoid" + _new_id + "_autoid" + _new_id;

            var _container = $(e.target)
            var _cur_item_id = _item.attr('id')
            if (_cur_item_id == 'php_item' || _cur_item_id == 'block_item' || _cur_item_id == 'stpl_item') {
                _item.attr('id', _auto_id)
                _cur_item_id = _auto_id
            }

            // Singleton for draggable available items
            if ($(".portlets-side-column .column #" + ui.item[0].id).length > 1) {
                _item.remove()
            }
            if (_item.hasClass('drag-clone-needed')) {
                _item.data("auto_id", _auto_id)
            }
        },
        receive: function(e,ui) {
            var _item = $(ui.item[0])
            if (_item.hasClass('drag-clone-needed')/* || /^autoid/.test(_item.attr('id'))*/ ) {
                copyHelper = null;
            }
        }
    });

    $(".portlet").css("cursor", "move")

    $("#ds_save_layout").on("click", function(e){
        var ds_data = "";
        $("#yf_dashboard .column[id^=yf_ds_column]").each(function(){
            var column_id = $(this).attr("id").substring("yf_ds_column".length + 1)
            ds_data += "&" + $(this).sortable("serialize", { key: "ds_data[columns][" + column_id + "][]" })
        })
        $("#yf_dashboard .portlet .portlet-options form").each(function(){
            var _form = $(this)
            var _portlet = _form.closest('.portlet')
            var item_id = _portlet.attr("id")
            var auto_id = _portlet.data("auto_id")
            // used in case when custom widgets are cloned
            if (auto_id) {
                item_id = auto_id
            }
            var _cur_color = _portlet.find("input[name^=color_item_]").val()
            ds_data += "&" + "ds_data[items_configs][" + item_id + "][color]=" + _cur_color
            var _cur_auto_type = _portlet.find("input[name^=auto_type_]").val()
            ds_data += "&" + "ds_data[items_configs][" + item_id + "][auto_type]=" + _cur_auto_type
            $("select", _form).each(function(){
                ds_data += "&" + "ds_data[items_configs][" + item_id + "][" + $(this).attr("name") + "]=" + $(this).find(":selected").val()
            })
            $(":radio:checked, :checkbox:checked, input:not([type=checkbox]), textarea", _form).each(function(){
                ds_data += "&" + "ds_data[items_configs][" + item_id + "][" + $(this).attr("name") + "]=" + $(this).val()
            })
        })
        var _ds_settings_form = $("#ds-settings-container form")
        $("select", _ds_settings_form).each(function(){
            ds_data += "&" + "ds_data[settings][" + $(this).attr("name") + "]=" + $(this).find(":selected").val()
        })
        $(":radio:checked, :checkbox:checked, input:not([type=checkbox]), textarea", _ds_settings_form).each(function(){
            ds_data += "&" + "ds_data[settings][" + $(this).attr("name") + "]=" + $(this).val()
        })
        $.post($(this).attr("action"), ds_data, function(data){
            window.location.reload()
        })
        return false;
    })

    $(".portlet-options ul.colors li").on("click", function(){
        var _portlet = $(this).closest('.portlet');
        $(this).closest('ul.colors').find('li').each(function(){
            _portlet.removeClass($(this).attr('class'))
        })
        var _cur_color = $(this).attr('class')
        _portlet.addClass(_cur_color)
        _portlet.find('input[name^=color_item_]').val(_cur_color)
        return false;
    })

    $("#yf_dashboard").on("click", ".yf_ds_options", function(){
        var _portlet = $(this).closest('.portlet');
        _portlet.find('.portlet-options').toggle()
        return false;
    })

    $("#yf_dashboard").on("click", ".yf_ds_delete", function(e){
        var _portlet = $(this).closest('.portlet');
        if ( !_portlet.hasClass('drag-clone-needed') && !/^autoid/.test(_portlet.attr('id')) ) {
            _portlet.clone().appendTo(".portlets-side-column .column")
        }
        _portlet.remove()
        return false;
    })

    $("#yf_dashboard").on("click", ".yf_ds_minimize", function(){
        $(this).closest('.portlet').find('.portlet-content').toggle()
        return false;
    })

    $("#ds_view_settings").on("click",function(){
        $('#ds-settings-container').toggle()
    })

{/jquery}