/home/mip/mip/app/Modules/Client/Views/subject/includes/js.blade.php
<script type="text/javascript" src="{{ asset('vendor/jsvalidation/js/jsvalidation.js')}}"></script>
{!! JsValidator::formRequest('QxCMS\Modules\Client\Requests\Subject\SubjectRequest', 'form#subject-form'); !!}
<script type="text/javascript">
    $(function(){
        var body = $('body');
        var subject_form = $('form#subject-form');

        $('button.save-btn').on('click', function(){
            var btn = $(this);
            btn.button('loading');
            if(subject_form.valid()){
                return true;
            }
            setTimeout(function(){
                btn.button('reset');
            }, 200);
            
        });

        var principal = subject_form.find("select[name='principal_id']").select2({
            maximumSelectionSize:5,
            placeholder: {
                id: '-1', 
                text: ' - Select - '
            },
            ajax: {
                url: "{!! route(config('modules.client').'.principals.select2') !!}",
                delay:400,
                cache:true,
                data: function (params) {
                  return {
                    name: params.term,
                    placeholder: {
                        id: '-1', 
                        text: ' - Select - '
                    },
                  };
                },
                processResults: function (data, page) {
                  return {
                    results: data
                  };
                }
                
            } 
        }).on('change.select2', function(){
            $(this).valid();
        });

        if(principal.data('id') != '' && typeof principal.data('id') !== 'undefined' && principal.data('id') != null) {
            principal.append($('<option>', {
                value: principal.data('id'), text: principal.data('text')
            }));
        }

 
        var template = subject_form.find("select[name='template_id']").select2({
            maximumSelectionSize:5,
            placeholder: {
                id: '-1', 
                text: ' - Select - '
            },
            ajax: {
                url: "{!! route(config('modules.client').'.questionnaire.select2') !!}",
                delay:400,
                cache:true,
                data: function (params) {
                  return {
                    title: params.term,
                    placeholder: {'text':' - Select -'}
                  };
                },
                processResults: function (data, page) {
                  return {
                    results: data
                  };
                }
            }
        }).on('change.select2', function(){
            $(this).valid();
        });

        if(template.data('id') != '' && typeof template.data('id') !== 'undefined' && template.data('id') != null) {
            template.append($('<option>', {
                value: template.data('id'), text: template.data('text')
            }));
            //template.select2('val', template.data('id'));
        }

        var field_officer = subject_form.find("select[name='field_officer_assigned']").select2({
            maximumSelectionSize:5,
            placeholder: {
                id: '-1', 
                text: ' - Select - '
            },
            ajax: {
                url: "{!! route(config('modules.client').'.users.select2') !!}",
                delay:400,
                cache:true,
                data: function (params) {
                  return {
                    title: params.term,
                    user_type: 'field_officer',
                    placeholder: {'text':' - Select -'}
                  };
                },
                processResults: function (data, page) {
                  return {
                    results: data
                  };
                }
            }
        }).on('change.select2', function(){
            $(this).valid();
        });

        principal.on('change.select2', function() {
            var val = field_officer.val();
            field_officer.val('-1').trigger('change');
            //field_officer.valid();
        });

        template.on('change.select2', function(){
            var val = field_officer.val();
            field_officer.val('-1').trigger('change');
            //field_officer.valid();
        });

        if(field_officer.data('id') != '' && typeof field_officer.data('id') !== 'undefined' && field_officer.data('id') != null) {
            field_officer.append($('<option>', {
                value: field_officer.data('id'), text: field_officer.data('text')
            }));
        }

        var editor = subject_form.find("select[name='editor_assigned']").select2({
            maximumSelectionSize:5,
            placeholder: {
                id: '-1', 
                text: ' - Select - '
            },
            ajax: {
                url: "{!! route(config('modules.client').'.users.select2') !!}",
                delay:400,
                cache:true,
                data: function (params) {
                  return {
                    title: params.term,
                    user_type: 'editor',
                    placeholder: {'text':' - Select -'}
                  };
                },
                processResults: function (data, page) {
                  return {
                    results: data
                  };
                }
            }
        }).on('change.select2', function(){
            $(this).valid();
        });
        

        if(editor.data('id') != '' && typeof editor.data('id') !== 'undefined' && editor.data('id') != null) {
            editor.append($('<option>', {
                value: editor.data('id'), text: editor.data('text')
            }));
        }



        subject_form.find("input[name='interview_date']").inputmask(body.data('datepicker-mask'), {"placeholder": body.data('datepicker-mask')});
        subject_form.find("input[name='interview_date']").datepicker({ 
            yearRange: "2017:+1",
            changeMonth: true,
            changeYear: true
        });

        subject_form.find("input[name='completion_date']").inputmask(body.data('datepicker-mask'), {"placeholder": body.data('datepicker-mask')});
        subject_form.find("input[name='completion_date']").datepicker({ 
            yearRange: "2017:+2",
            changeMonth: true,
            changeYear: true
        });
    });
</script>