Пример #1
0
    public function make(array $data)
    {
        $data['class'] = array_get($data, 'others.setting.args.class') ?: 'form-control typeahead';
        $data['data-remote'] = route('customerFilter') . "?query=%QUERY";
        $data['data-template'] = "<div class='thumb-entry'><span class='image'><img src='{{img}}' width=40 height=40 /></span><span class='text'><strong>{{value}} {{sn}}</strong><em>{{text}}</em></span></div>";
        $value = $data['value'];
        if ($value) {
            $customer = Customer::find($value);
            $data['value'] = $customer->name;
        }
        $data['name'] = '';
        $attributes = $this->attributes($data);
        $form = '<div class="customer-field"><input type="text"' . $attributes . '><input type="hidden" id="customer_id" name="customer_id" value="' . $value . '"></div>';
        Theme::asset()->add('typeahead', 'packages/sharenjoy/cmsharenjoy/js/typeahead.min.js');
        Theme::asset()->writeScript('customersimpleform-script', '
            $(function() {

                $(".typeahead")
                // .on("typeahead:initialized", function($e) {
                //     console.log("initialized");
                // })
                // .on("typeahead:opened", function ($e) {
                //     console.log("opened");
                // })
                // .on("typeahead:closed", function($e) {
                //     console.log("closed");
                // })
                .on("typeahead:selected", function ($e, datum) {
                    // console.log("autocompleted");
                    // console.log(datum);
                    $("#customer_id").val(datum.id);
                });
                
                $(".customer-field input[type=text]").on("keyup", function(e) {
                    if ($(this).val() == "") {
                        $("#customer_id").val("");
                    }
                });
            });
        ');
        return $form;
    }
Пример #2
0
    public function make(array $data)
    {
        $data['class'] = array_get($data, 'others.setting.args.class') ?: 'form-control typeahead';
        $data['data-remote'] = route('customerFilter') . "?query=%QUERY";
        $data['data-template'] = "<div class='thumb-entry'><span class='image'><img src='{{img}}' width=40 height=40 /></span><span class='text'><strong>{{value}} {{sn}}</strong><em>{{text}}</em></span></div>";
        $value = $data['value'];
        $buttonIcon = 'entypo-search';
        $popoverTitle = '';
        $popoverContent = '';
        if ($value) {
            $customer = Customer::find($value);
            $data['value'] = $customer->name;
            $buttonIcon = 'entypo-popup';
            $popoverTitle = $customer->name . ' ' . $customer->sn;
            $popoverContent = $customer->name;
        }
        $data['name'] = 'customer_name';
        $attributes = $this->attributes($data);
        $form = '<div class="customer-field"><input type="text"' . $attributes . '><input type="hidden" id="customer_id" name="customer_id" value="' . $value . '"><button type="button" class="btn" id="popoverCustomer" style="position: absolute;right: 7px;top: 1px;border: 0px none;background: none repeat scroll 0% 0% transparent;color: #737881;font-size: 16px;opacity: 0.7;transition: all 300ms ease-in-out 0s;"><i class="' . $buttonIcon . '"></i></button></div>';
        $form .= '<div id="popoverCustomerHiddenTitle" style="display: none;">' . $popoverTitle . '</div>
                  <div id="popoverCustomerHiddenContent" style="display: none;">' . $popoverContent . '</div>';
        Theme::asset()->add('typeahead', 'packages/sharenjoy/cmsharenjoy/js/typeahead.min.js');
        Theme::asset()->writeScript('customerform-script', '
            $(function() {

                $(".typeahead")
                // .on("typeahead:initialized", function($e) {
                //     console.log("initialized");
                // })
                // .on("typeahead:opened", function ($e) {
                //     console.log("opened");
                // })
                // .on("typeahead:closed", function($e) {
                //     console.log("closed");
                // })
                .on("typeahead:selected", function ($e, datum) {
                    // console.log("autocompleted");
                    // console.log(datum);
                    $("#popoverCustomerHiddenTitle").html(datum.value+" "+datum.sn);
                    $("#popoverCustomerHiddenContent").html(datum.value);
                    $(".customer-field button i").fadeOut("fast", function(){
                        $(this).attr("class", "entypo-popup");
                    }).fadeIn("slow");
                    $("#customer_id").val(datum.id);
                });
                
                $(".customer-field input[type=text]").on("keyup", function(e) {
                    if ($(this).val() == "") {
                        $("#customer_id").val("");
                        $(".customer-field button i").fadeOut("fast", function(){
                            $(this).attr("class", "entypo-search");
                        }).fadeIn("slow");
                        $("#popoverCustomerHiddenTitle").html("");
                        $("#popoverCustomerHiddenContent").html("");
                    }
                });

                $("#popoverCustomer").popover({
                    html: true,
                    trigger: "hover",
                    placement: "auto",
                    container: "body",
                    content: function() {
                      return $("#popoverCustomerHiddenContent").html();
                    },
                    title: function() {
                      return $("#popoverCustomerHiddenTitle").html();
                    }
                });
            });
        ');
        return $form;
    }