pattern-reader-view.js 1.8 KB
/* global $dj, getBusyOverlay, common */

var default_root;

var edit = {
    reader: true,
    changed: false,

    get_id: function() {
        "use strict";
        return edit.active_id;
    },

    load_content: function(id, is_created, check_callback) {
        "use strict";
        $.ajaxJSON({
            url: $dj.ajax_get_name,
            method: 'get',
            data: {
                pattern_id: id
            },
            callback: function(data) {
                common.update_hash('' + id + '/' + data.name);
            }
        });
        $.ajaxJSON({
            method: 'get',
            url: $dj.ajax_pattern_preview,
            dest: $('#preview'),
            data: {id: id},
            check_callback: check_callback,
            callback: function() {
                edit.busy_off();
                default_root = $('.root').first().text();
            }
        });
        edit.active_id = id;
    },

    // busy
    busy_ctrl: null,
    busy_on: function() {
        "use strict";
        if (!edit.busy_ctrl) {
            edit.busy_ctrl = getBusyOverlay(
                $('#right')[0],
                {color: 'black', opacity: 0.2},
                {size: 30});
        }
    },
    busy_off: function() {
        "use strict";
        if (edit.busy_ctrl) edit.busy_ctrl.remove();
        edit.busy_ctrl = null;
    }
};

$(function() {
    "use strict";
    $(document).on('click', '.switch-example', function () {
        var $t = $(this);
        var root = $t.attr('data-example');
        var active = $t.hasClass('active-example');
        $('.active-example').removeClass('active-example checked');
        if (active) {
            $('.root').text(default_root);
        } else {
            $t.addClass('checked active-example');
            $('.root').text(root);
        }
    });
});