Code Duplication    Length = 43-45 lines in 2 locations

src/Form/Field/Tags.php 1 location

@@ 81-125 (lines=45) @@
78
     *
79
     * @return $this
80
     */
81
    public function ajax($url, $idField = 'id', $textField = 'text')
82
    {
83
        $this->script = <<<EOT
84
85
$("{$this->getElementClassSelector()}").select2({
86
  dir: "$this->direction",
87
  language : "$this->local",
88
  tags: true,
89
  multiple: true,
90
  ajax: {
91
    url: "$url",
92
    dataType: 'json',
93
    delay: 250,
94
    data: function (params) {
95
      return {
96
        q: params.term,
97
        page: params.page
98
      };
99
    },
100
    processResults: function (data, params) {
101
      params.page = params.page || 1;
102
103
      return {
104
        results: $.map(data.data, function (d) {
105
                   d.id = d.$idField;
106
                   d.text = d.$textField;
107
                   return d;
108
                }),
109
        pagination: {
110
          more: data.next_page_url
111
        }
112
      };
113
    },
114
    cache: true
115
  },
116
  minimumInputLength: 1,
117
  escapeMarkup: function (markup) {
118
      return markup;
119
  }
120
});
121
122
EOT;
123
124
        return $this;
125
    }
126
    
127
    /**
128
     * {@inheritdoc}

src/Form/Field/Select.php 1 location

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