Quantcast
Channel: Recent Discussions — DataTables forums
Viewing all articles
Browse latest Browse all 82411

Initalizing, Field type plug-ins

$
0
0

I am trying to build a simple field type plugin holding an input field. The purpose of this is to be able to build my own search in a customer db based on partial input in a customer field in the form. The plug in is loaded and working, however I cannot get proper initialization of the field. The plug in field set function is properly called when opening the form with the value from the table, however after this the filed seems to be cleared and then the form is drawn.

Plugin code:

(function ($, DataTable) {

if ( ! DataTable.ext.editorFields ) {
DataTable.ext.editorFields = {};
}

var Editor = DataTable.Editor;
var _fieldTypes = DataTable.ext.editorFields;

_fieldTypes.mySearch = {
create: function ( conf ) {
var that = this;

    conf._input = $(
        '<div id="'+Editor.safeId( conf.id )+'">'+
           '<input type="text" class="custField"/>'+

        '</div>');

    $('input.custField', conf._input).keyup( function () {

       that.set( conf.name, $(this).val() );

       return false;
    } );

    return conf._input;
},

get: function ( conf ) {

},

set: function ( conf, val ) {
    console.log('Set: '+val);
    $('input.custField:text').val(val);
},

};

})(jQuery, jQuery.fn.dataTable);

var editor;

function format ( d ) {
// d is the original data object for the row
assortment = parseInt(d.analysis.sieve1)+parseInt(d.analysis.sieve2);
return '

'+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ '
Afg. skabelon:'+d.analysis.crop_template+'Sortering:'+assortment+'Stivelse:'+d.analysis.starch+'Spiring:'+d.analysis.germination+'Olie:'+d.analysis.oil+'
Tid:'+d.analysis.time+'Rensesvind:'+d.analysis.impurity+'Gluten:'+d.analysis.gluten+'Faldtal:'+d.analysis.fn+'Zeleny:'+d.analysis.zeleny+'
Bemærkning:'+d.analysis.comment+'

';
}
$(document).ready(function() {
editor = new $.fn.dataTable.Editor( {
ajax: "analysis_server.php",
table: "#analysis",
template: '#analysisEditForm',
formOptions: {
main: {
onReturn: false,
onBackground: false
}
},
fields: [ {
label: "Nummer:",
name: "analysis.number"
}, {
label: "Vejeseddel:",
name: "analysis.weighing_closed"
}, {
label: "Kunde:",
name: "analysis.customer",
type: "mySearch"
}, {
label: "Vare:",
name: "analysis.item"
}, {
label: "Dato:",
name: "analysis.date",
type: "date",
dateFormat: 'dd-mm-yy',
opts: {
showOn: "button",
buttonImage: 'jquery-ui-1.12.1/images/calendar.gif' ,
showOtherMonths: true,
showButtonPanel: true,
changeYear: true,
yearRange: '2004:2018'
}
}, {
label: "Vand pct:",
name: "analysis.moisture"
}, {
label: "Protein:",
name: "analysis.protein"
}, {
label: "Hektolitervægt:",
name: "analysis.density"
}, {
label: "Sold 1:",
name: "analysis.sieve1"
}, {
label: "Sold 2:",
name: "analysis.sieve2"
}, {
label: "Sold 3:",
name: "analysis.sieve3"
}, {
label: "Sold 4:",
name: "analysis.sieve4"
}, {
label: "Rensesvind:",
name: "analysis.waiste"
}, {
label: "Stivelse",
name: "analysis.starch"
}, {
label: "Gluten:",
name: "analysis.gluten"
}, {
label: "Spiring:",
name: "analysis.germination"
}, {
label: "Faldtal:",
name: "analysis.fn"
}, {
label: "Olie:",
name: "analysis.oil"
}, {
label: "Zeleny:",
name: "analysis.zeleny"
}

    ],
            i18n: {
                create: {
                    button: "Ny",
                    title:  "Opret ny",
                    submit: "Opret"
                },
                edit: {
                    button: "Redigér",
                    title:  "Redigér Analyse",
                    submit: "Gem ændringer"
                },
                remove: {
                    button: "Slet valgte",
                    title:  "Slet valgte",
                    submit: "Slet",
                    confirm: {
                        _: "Er du sikker på at du vil slette %d linjer?",
                        1: "Er du sikker på at du vil slette 1 linje?"
                    }
                },
                error: {
                    system: "Hov, noget gik galt! Kontakt venligst system administratoren.."
                },
                multi: {
                    title: "Flere værdier valgt",
                    info: "Klik her for at redigére data for de valgte linjer.",
                    restore: "Annuller"
                },
                datetime: {
                    previous: 'Forrige',
                    next:     'Næste',
                    months:   [ 'Januar', 'Februar', 'Marts', 'April', 'Maj', 'Juni', 'Juli', 'August', 'September', 'October', 'November', 'December' ],
                    weekdays: [ 'Man', 'Tirs', 'Ons', 'Tors', 'Fre', 'Lør', 'Søn' ]
                }
            }
} );



var table = $('#analysis').DataTable( {
    dom: "Bfrtip",
            "serverSide": true,
    ajax: { 
                url: "analysis_server.php",
                type: "POST"
            },
    columns: [
                    {
            "className":      'details-control',
            "orderable":      false,
            "data":           null,
            "defaultContent": ''
                    },
        { data: "analysis.number" },
        { data: "analysis.weighing_closed" },
        { data: "analysis.customer" },
                    { data: "customer.name" },
        { data: "analysis.item" },
                    { data: "item.name" },
        { data: "analysis.date" },
                    { data: "analysis.moisture" },
                    { data: "analysis.protein" },
                    { data: "analysis.density" }
    ],
    select: {
                style: 'single',
                info: false
            },
    buttons: [
        { extend: "create", editor: editor },
        { extend: "edit",   editor: editor },
        { extend: "remove", editor: editor }
    ],
            language: {
                url: "DataTables/Danish.json"
            },
            "columnDefs":[
                { "targets": [3,5], "visible": false },
                { className: "dt-body-center", "targets": [7,8,9,10]}
            ],
            "order": [[1, 'asc']]
} );


$('#analysis tbody').on('click', 'td.details-control', function () {
    var tr = $(this).closest('tr');
    var row = table.row( tr );

    if ( row.child.isShown() ) {
        row.child.hide();
        tr.removeClass('shown');
    }
    else {
        row.child( format(row.data()) ).show();
        tr.addClass('shown');
    }
} );      

} );


Viewing all articles
Browse latest Browse all 82411

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>