call($this, $this->row); } $checkboxes = ''; $name = $this->column->getName(); if (is_string($this->value)) { $this->value = explode(',', $this->value); } if ($this->value instanceof Arrayable) { $this->value = $this->value->toArray(); } foreach ($options as $value => $label) { $checked = in_array($value, $this->value) ? 'checked' : ''; $checkboxes .= << {$label} EOT; } Admin::script($this->script()); return << $checkboxes EOT; } protected function getElementClass() { return 'grid-checkbox-'.$this->column->getName(); } protected function script() { return <<getElementClass()}').off('submit').on('submit', function () { var values = $(this).find('input:checkbox:checked').map(function (_, el) { return $(el).val(); }).get(), btn = $(this).find('[type="submit"]'); if (f) return; f = 1; btn.buttonLoading(); var data = { {$this->column->getName()}: values, _token: Dcat.token, _method: 'PUT' }; $.ajax({ url: "{$this->resource()}/" + $(this).data('key'), type: "POST", contentType: 'application/json;charset=utf-8', data: JSON.stringify(data), success: function (data) { btn.buttonLoading(false); f = 0; Dcat.success(data.message); }, error: function (a, b, c) { btn.buttonLoading(false); f = 0; Dcat.handleAjaxError(a, b, c); }, }); return false; }); })(); JS; } }