Code Duplication    Length = 43-45 lines in 2 locations

src/Form/Field/Select.php 1 location

@@ 177-219 (lines=43) @@
174
     *
175
     * @return $this
176
     */
177
    public function ajax($url, $idField = 'id', $textField = 'text')
178
    {
179
        $this->script = <<<EOT
180
181
$("{$this->getElementClassSelector()}").select2({
182
  dir: "$this->direction",
183
  language : "$this->local",
184
  ajax: {
185
    url: "$url",
186
    dataType: 'json',
187
    delay: 250,
188
    data: function (params) {
189
      return {
190
        q: params.term,
191
        page: params.page
192
      };
193
    },
194
    processResults: function (data, params) {
195
      params.page = params.page || 1;
196
197
      return {
198
        results: $.map(data.data, function (d) {
199
                   d.id = d.$idField;
200
                   d.text = d.$textField;
201
                   return d;
202
                }),
203
        pagination: {
204
          more: data.next_page_url
205
        }
206
      };
207
    },
208
    cache: true
209
  },
210
  minimumInputLength: 1,
211
  escapeMarkup: function (markup) {
212
      return markup;
213
  }
214
});
215
216
EOT;
217
218
        return $this;
219
    }
220
}
221

src/Form/Field/Tags.php 1 location

@@ 61-105 (lines=45) @@
58
     *
59
     * @return $this
60
     */
61
    public function ajax($url, $idField = 'id', $textField = 'text')
62
    {
63
        $this->script = <<<EOT
64
65
$("{$this->getElementClassSelector()}").select2({
66
  dir: "$this->direction",
67
  language : "$this->local",
68
  tags: true,
69
  multiple: true,
70
  ajax: {
71
    url: "$url",
72
    dataType: 'json',
73
    delay: 250,
74
    data: function (params) {
75
      return {
76
        q: params.term,
77
        page: params.page
78
      };
79
    },
80
    processResults: function (data, params) {
81
      params.page = params.page || 1;
82
83
      return {
84
        results: $.map(data.data, function (d) {
85
                   d.id = d.$idField;
86
                   d.text = d.$textField;
87
                   return d;
88
                }),
89
        pagination: {
90
          more: data.next_page_url
91
        }
92
      };
93
    },
94
    cache: true
95
  },
96
  minimumInputLength: 1,
97
  escapeMarkup: function (markup) {
98
      return markup;
99
  }
100
});
101
102
EOT;
103
104
        return $this;
105
    }
106
107
    public function render()
108
    {