lexeme-view.js 3.83 KB
var text_ops = ['eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 're', 'nr'];
var eqne = ['eq', 'ne'];
var count_ops = ['eq', 'ge', 'le'];

$.extend(slickgrid, {
    grid_element_id: 'lexeme-grid',
    main_field: 'entry',
    initial_columns: ["entry", "pos"],
    all_columns: {
        id: {id: "id", name: "Nr", field: "id"},
        entry: {id: "entry", name: "Hasło", field: "entry"},
        pos: {id: "pos", name: "Część mowy", field: "pos"},
        patterns: {id: "patterns", name: "Wzory", field: "patterns"},
        ics: {id: "ics", name: "Char. fleks.", field: "ics"},
        vocabs: {id: "vocabs", name: "Słowniki", field: "vocabs"},
        owner: {id: "owner", name: "Sł. właściciel", field: "owner"},
        status: {id: "status", name: "Status", field: "status"}
    },
    filter_fields: {
        'entry': {name: 'Hasło', gender: 'n', ops: text_ops},
        'part_of_speech': {
            name: 'Część mowy',
            gender: 'f',
            ops: eqne,
            options: $dj.parts_of_speech
        },
        'pattern_name': {name: 'Wzór', gender: 'm', ops: eqne},
        'pattern_count': {name: 'Liczba wzorów', gender: 'f', ops: count_ops},
        'inflection_characteristic': {
            name: 'Char. fleks.', gender: 'f', ops: eqne},
        'ic_count': {name: 'Liczba char. fleks.', gender: 'f', ops: count_ops},
        'form': {name: 'Forma', gender: 'f', ops: text_ops},
        'containing_vocabulary': {
            name: 'Słownik',
            gender: 'm',
            ops: eqne,
            options: $dj.visible_vocabularies
        },
        'owner_vocabulary': {
            name: 'Słownik właściciel',
            gender: 'm',
            ops: eqne,
            options: $dj.visible_vocabularies
        },
        'status': {
            name: 'Status',
            gender: 'm',
            ops: eqne,
            options: $dj.status_options
        },
        'comment': {name: 'Komentarz', gender: 'm', ops: text_ops},
        'lexeme_qualifier': {
            name: 'Kwal. leksemu',
            gender: 'm',
            ops: eqne,
            options: $dj.qualifier_options
        },
        'lip_qualifier': {
            name: 'Kwal. odmieniasia',
            gender: 'm',
            ops: eqne,
            options: $dj.qualifier_options
        },
        'qualifier': {
            name: 'Kwal. przy dow. formie',
            gender: 'm',
            ops: eqne,
            options: $dj.qualifier_options
        },
        'classification_value': {
            name: 'Wartość klasyfikacji',
            gender: 'f',
            ops: eqne,
            options: $dj.cv_options
        },
        'gloss': {name: 'Glosa', gender: 'f', ops: text_ops},
        'nota': {name: 'Nota', gender: 'f', ops: text_ops},
        'cr_type': {
            name: 'Typ odsyłacza',
            gender: 'm',
            ops: eqne,
            options: $dj.cr_type_options
        }
    },
    initial_sort_rules: [ // ??? FIXME
        {field: 'entry', order: 'asc', a_tergo: false},
        {field: 'part_of_speech', order: 'asc'},
        {field: 'id', order: 'asc'}
    ],
    grid_caption: "Leksemy"
});

slickgrid.sort_rule_special_features = function(rule) {
    "use strict";
    $('#entries_a_tergo').prop('checked', rule.a_tergo);
};

slickgrid.prepare_sort_rules = function(sort_rules, old_sort_rules) {
    "use strict";
    if (sort_rules[0].field === 'entry') {
        var a_tergo = false;
        $.each(old_sort_rules, function (i, rule) {
            if (rule.field === 'entry') {
                a_tergo = rule.a_tergo;
                return false;
            }
            return null;
        });
        sort_rules[0].a_tergo = a_tergo;
    }
};

slickgrid.load_content = function(id, is_created) {
    "use strict";
    function check() {
        return id === slickgrid.active_id();
    }
    edit.load_content(id, is_created, check);
};