Code Duplication    Length = 57-59 lines in 3 locations

code/forms/Dropdown2AutocompleteField.php 1 location

@@ 9-67 (lines=59) @@
6
 *
7
 *
8
 */
9
class Dropdown2AutocompleteField extends DropdownField
10
{
11
12
    /**
13
     * @var boolean
14
     */
15
    private $autocomplete = true;
16
17
    /**
18
     *
19
     * @return $this
20
     */
21
    public function turnOnAutocomplete()
22
    {
23
        $this->autocomplete = true;
24
        return $this;
25
    }
26
27
    /**
28
     *
29
     * @return $this
30
     */
31
    public function turnOffAutocomplete()
32
    {
33
        $this->autocomplete = false;
34
        return $this;
35
    }
36
37
    /**
38
     * @param array $parameters
39
     * @return string
40
     */
41
    public function Field($parameters = array())
42
    {
43
        if ($this->autocomplete) {
44
            $this->addExtraClass("chosenAutocompleteField");
45
            $field = parent::Field($parameters);
46
            Requirements::css("dropdown2autocomplete/javascript/chosen/chosen.min.css");
47
            Requirements::javascript(THIRDPARTY_DIR . '/jquery/jquery.js');
48
            Requirements::javascript("dropdown2autocomplete/javascript/chosen/chosen.jquery.min.js");
49
50
            Requirements::customScript(
51
                '
52
                    jQuery("#'.$this->ID().'").chosen('.$this->Config()->get("js_settings").');
53
                    jQuery("body").on(
54
                        "focus",
55
                        ".chosenAutocompleteField:visible",
56
                        function(){
57
                            jQuery(this).chosen('.$this->Config()->get("js_settings").');
58
                        }
59
                    );
60
                ',
61
                $this->ID()."_chosen_setup"
62
            );
63
        } else {
64
            $field = parent::Field($parameters);
65
        }
66
        return $field;
67
    }
68
}
69

code/forms/GroupedDropdown2AutocompleteField.php 1 location

@@ 9-65 (lines=57) @@
6
 *
7
 *
8
 */
9
class GroupedDropdown2AutocompleteField extends DropdownField
10
{
11
12
    /**
13
     * @var boolean
14
     */
15
    private $autocomplete = true;
16
17
    /**
18
     *
19
     * @return $this
20
     */
21
    public function turnOnAutocomplete()
22
    {
23
        $this->autocomplete = true;
24
        return $this;
25
    }
26
27
    /**
28
     *
29
     * @return $this
30
     */
31
    public function turnOffAutocomplete()
32
    {
33
        $this->autocomplete = false;
34
        return $this;
35
    }
36
37
    /**
38
     * @param array $parameters
39
     * @return string
40
     */
41
    public function Field($parameters = array())
42
    {
43
        $field = parent::Field($parameters);
44
        if ($this->autocomplete) {
45
            $this->addExtraClass("chosenAutocompleteField");
46
            $field = parent::Field($parameters);
47
            Requirements::css("dropdown2autocomplete/javascript/chosen/chosen.min.css");
48
            Requirements::javascript(THIRDPARTY_DIR . '/jquery/jquery.js');
49
            Requirements::javascript("dropdown2autocomplete/javascript/chosen/chosen.jquery.min.js");
50
            Requirements::customScript(
51
                '
52
					jQuery("#'.$this->ID().'").chosen('.$this->Config()->get("js_settings").');
53
					jQuery("body").on(
54
						"focus",
55
						".chosenAutocompleteField:visible",
56
						function(){
57
							jQuery(this).chosen('.$this->Config()->get("js_settings").');
58
						}
59
					);
60
				',
61
                $this->ID()."_chosen_setup"
62
            );
63
        }
64
        return $field;
65
    }
66
}
67

code/forms/Listbox2AutocompleteField.php 1 location

@@ 10-66 (lines=57) @@
7
 *
8
 */
9
  
10
class Listbox2AutocompleteField extends ListboxField
11
{
12
13
    /**
14
     * @var boolean
15
     */
16
    private $autocomplete = true;
17
18
    /**
19
     *
20
     * @return $this
21
     */
22
    public function turnOnAutocomplete()
23
    {
24
        $this->autocomplete = true;
25
        return $this;
26
    }
27
28
    /**
29
     *
30
     * @return $this
31
     */
32
    public function turnOffAutocomplete()
33
    {
34
        $this->autocomplete = false;
35
        return $this;
36
    }
37
38
    /**
39
     * @param array $parameters
40
     * @return string
41
     */
42
    public function Field($parameters = array())
43
    {
44
        $field = parent::Field($parameters);
45
        if ($this->autocomplete) {
46
            $this->addExtraClass("chosenAutocompleteField");
47
            $field = parent::Field($parameters);
48
            Requirements::css("dropdown2autocomplete/javascript/chosen/chosen.min.css");
49
            Requirements::javascript(THIRDPARTY_DIR . '/jquery/jquery.js');
50
            Requirements::javascript("dropdown2autocomplete/javascript/chosen/chosen.jquery.min.js");
51
            Requirements::customScript(
52
                '
53
					jQuery("#'.$this->ID().'").chosen('.$this->Config()->get("js_settings").');
54
					jQuery("body").on(
55
						"focus",
56
						".chosenAutocompleteField:visible",
57
						function(){
58
							jQuery(this).chosen('.$this->Config()->get("js_settings").');
59
						}
60
					);
61
				',
62
                $this->ID()."_chosen_setup"
63
            );
64
        }
65
        return $field;
66
    }
67
}
68