.=< { Star Gans Tq } >=.

  • Home

  • Killme
  • Download
  • Current Path : /home/m/e/h/meharicl/home2/meharicl/www/recensement2/js/jquery/autofill/
    Upload File
    @Command ~ $  
    Current File : /home/m/e/h/meharicl/home2/meharicl/www/recensement2/js/jquery/autofill/ccs-auto-fill.js

    (function ($) {
        var dataParameterName = "ccsAutoFill";
    
        var defaults = {
            valueField: "value",
            searchParameter: "keyword",
            cache: false,
            fillOnStart: true
        };
    
        var events = {
            onChange: function (event) {
                methods.fill.call(event.data.self, event.data);
            }
        };
    
        var methods = {
            init: function (options) {
                var settings = $.extend({}, defaults, options);
    
                return this.each(function () {
                    var obj = $(this);
                    var id = obj.ccsId();
                    var opts = $.extend({}, settings, { self: obj });
                    opts.controls = opts.controls.slice();
                    $.each(opts.controls, function (i) {
                        opts.controls[i] = $.extend({}, opts.controls[i]);
                        opts.controls[i].reference = $("*:ccsSameLevelControl(" + id + ", " + this.path + ")");
                    });
                    obj.data(dataParameterName, opts);
                    obj.bind("change", opts, events.onChange);
                    if (opts.fillOnStart)
                        methods.fill.call(obj, opts);
                });
            },
            start: function (options) { return methods.fill.apply(this, Array.prototype.slice.call(arguments, 1)); },
            fill: function (options) {
                return this.each(function () {
                    var params = {};
                    var obj = $(this);
                    var opts = obj.data(dataParameterName);
                    params[opts["searchParameter"]] = opts["valueField"] == "innerHTML" ? obj.html() : obj.prop(opts["valueField"]);
                    obj.trigger($.Event("start.ccsAutoFill"), {});
                    $.ajax({ type: "GET", url: opts["serviceUrl"], data: params, dataType: "json", cache: opts["cache"] })
                        .done(function (result) {
                            $.each(opts.controls, function () {
                                if (this.field == "innerHTML")
                                    this.reference.html(result.length == 0 ? "" : result[0][this.source]);
                                else
                                    this.reference.prop(this.field, result.length == 0 ? "" : result[0][this.source]);
                                this.reference.trigger($.Event("change"), {});
                            });
                            obj.trigger($.Event("success.ccsAutoFill"), {recordsCount: result.length, result: result});
                        }).fail(function () {
                            obj.trigger($.Event("failure.ccsAutoFill"), {recordsCount: 0, result: []});
                        });
                    obj.trigger($.Event("finish.ccsAutoFill"), {});
                });
            }
        };
    
        $.fn.ccsAutoFill = function (method) {
            if (methods[method]) {
                return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
            } else if (typeof method === 'object' || !method) {
                return methods.init.apply(this, arguments);
            } else {
                $.error('Method ' + method + ' does not exist on jQuery.ccsAutoFill');
                return $;
            };
        };
    })(jQuery);