RSS Git Download  Clone
Raw Blame History
var layout_manager = function () {
    var self = this;

    self.jcontent = $('#layout-content');
    self.jconfirm = $('#layout-confirm');
    self.jbody = $('body');

    // history support	
    $.address.change(function (event) {
        view = event.value.substr(1);
        if (view == '') {
            view = config.default_view
        }
        self.get_controller('view/get/' + view);
    });

    var settings;
    settings = {
        type: 'POST',
        dataType: 'json'
    }
    $.ajaxSetup(settings);
    $.blockUI.defaults.message = '<img src="' + config.base_url + 'images/ajax-loader.gif"/>';
    $.blockUI.defaults.css.border = 'none';
    $.blockUI.defaults.css.position = 'fixed';
    $.blockUI.defaults.css.right = '5px';
    $.blockUI.defaults.css.top = '5px';
    $.blockUI.defaults.css.backgroundColor = 'transparent';
    $.blockUI.defaults.css.width = 'auto';
    $.blockUI.defaults.css.left = 'auto';
    $.blockUI.defaults.css.cursor = 'default';

    $.blockUI.defaults.baseZ = 1000000;
    $.blockUI.defaults.fadeIn = 0;
    $.blockUI.defaults.fadeOut = 0;
    $.blockUI.defaults.centerX = true;
    $.blockUI.defaults.centerY = true;

    $.blockUI.defaults.overlayCSS.backgroundColor = 'transparent';

    $.fn.jGrowl.prototype.defaults.closerTemplate = lang.layout_manager.jgrowl_closer_template;
    $.fn.jGrowl.prototype.defaults.position = 'bottom-right';

// for now the multiselect is configured in the js

    settings = {
        showButtonPanel: true,
        changeMonth: true,
        changeYear: true,
        showOtherMonths: true,
        selectOtherMonths: true,
        showWeek: true,
        firstDay: 1,
        autoSize: true,
        showOn: "focus",
        gotoCurrent: true,
        dateFormat: config.date_format_jquery
    };
    $.datepicker.setDefaults(settings)

    $(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);

    $('#layout-navigation').ptMenu({
        showDuration: 0,
        hideDuration: 100
    }).show();

};
layout_manager.prototype.constructor = layout_manager;

layout_manager.prototype.jcontent = null;
layout_manager.prototype.jconfirm = null;
layout_manager.prototype.jbody = null;

layout_manager.prototype.init = function () {
    var self = this;
    $('#locale-' + config.locale).addClass('selected');
    self.alert(lang.layout_manager.welcome);
    self.tooltip('#layout-navigation * [title]', {defaultPosition: 'top'});
    self.tooltip('#layout-header span', {defaultPosition: 'right'});

    self.load_view_by_hash(true);
}

layout_manager.prototype.get_view_by_hash = function () {
    if (window.location.hash != '') {
        var view = window.location.hash.substr(1);
        return view;
    }
    return null;
}

layout_manager.prototype.load_view_by_hash = function () {
    var self = this;
    var view = self.get_view_by_hash();

    if (view == null && typeof (load_default) != 'undefined' && load_default == true) {
        view = config.default_view;
    }

    if (view != null) {
        self.get_view(view);
    }
}

layout_manager.prototype.tooltip = function (selector, options) {
    var op = $.extend({
        delay: 200,
        keepCursor: false,
        fadeIn: 0,
        fadeOut: 0,
        maxWidth: 500
    }, options);
    $selected = $(selector)
    $selected.tipTip(op);
    if (!op.keepCursor) {
        $selected.css('cursor', 'default');
    }
}

layout_manager.prototype.confirm = function (text, callback) {
    this.jconfirm.html(text);
    this.jconfirm.dialog({
        buttons: [
            {
                text: lang.layout_manager.confirm_yes,
                click: function () {
                    callback();
                    $(this).dialog('destroy');
                }
            },
            {
                text: lang.layout_manager.confirm_no,
                click: function () {
                    $(this).dialog('destroy');
                }
            }
        ],
        modal: true,
        closeText: lang.layout_manager.confirm_close
    });
}

layout_manager.prototype.alert = function (text) {
    $.jGrowl(text);
};

layout_manager.prototype.get_controller = function (controller, callback, send) {
    var self = this;
    $.ajax({
        data: send,
        dataType: 'html',
        url: config.app_url + controller,
        success: function (data) {
            if (typeof callback != 'undefined') {
                callback(data);
            } else {
                self.jcontent.html(data);
            }
        }
    });
};

layout_manager.prototype.get_view = function (view, callback, send) {
    if (typeof callback == 'undefined') {
        window.location.hash = view;
    } else {
        this.get_controller('view/get/' + view, callback, send);
    }
};

layout_manager.prototype.get_form = function (view, callback, send) {
    var self = this;
    self.get_controller('view/get/' + view, function (data) {
        self.jbody.append(data);
        callback(data);
    }, send);
}

layout_manager.prototype.set_locale = function (locale) {
    $.cookie('locale', locale, {expires: 365, path: config.base_url_path});
    document.location.reload();
}