module_config.js 2.78 KB
Newer Older
Administrator committed
1 2
var param_template = $('#templates #param'),
    submit_btn = $('#templates #submit_button'),
3
    main_content = $('#main_content');
Administrator committed
4 5

function save_module_settings() {
6 7 8 9
    var form_data = new FormData(main_content.get(0));
    var data = {};

    for (var pair of form_data.entries()) {
Administrator committed
10
        let val = pair[1],
11 12 13 14 15 16 17 18
            key = pair[0];
        let elt = main_content.find('[name="' + key +'"]');

        data[key] = {title: elt.closest('.param').find('label')
            .text(),
        type: elt.get(0).type,
        value: val};

Administrator committed
19
    }
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
    post_form(
        'settings', {params: JSON.stringify(data)},
        function(err, result) {
            if (!err) {
                var succeeded = false;

                try {
                    if (result.res.save == true) {
                        display_msg_box('Enregistrement réussi !');
                        succeeded = true;
                    }
                } catch (e) {
                    console.log(e);
                }
                if (succeeded == false) display_msg_box('L\'enregistrement a échoué !', 'error');
            } else {
                console.log(err);
            }
        }
    );

Administrator committed
41 42 43
}
function get_module_settings() {
    $.ajax('settings')
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
        .done(function(rData) {
            try {
                if (typeof rData.res.settings != "undefined") {
                    var added_elts = [];

                    for (let key in rData.res.settings) {
                        var param = $(param_template.clone().html());
                        var input = null;
                        let data = rData.res.settings[key];

                        param.find('label').text(data.title)
                            .attr('for', key);
                        if (data.type == 'textarea') {
                            param.find('input').remove();
                            input = param.find('textarea');
                            input.attr('name', key).text(data.value);
                        } else {
                            param.find('textarea').remove();
                            input = param.find('input');
                            input.attr('name', key).attr('value', data.value);
                        }

                        /*
Administrator committed
67 68 69 70
                    console.log(key)
                    console.log(data)
                    console.log(param)
                    */
71 72 73 74 75 76 77
                        param.appendTo(main_content);
                        added_elts.push(key);
                    }
                    if (added_elts.length > 0) {
                        submit_btn.appendTo(main_content);
                    }
                    submit_btn.click(save_module_settings);
Administrator committed
78
                }
79 80
            } catch (e) {
                console.log(e);
Administrator committed
81
            }
82 83

        });
Administrator committed
84 85
}

86
get_module_settings();