aboutsummaryrefslogtreecommitdiffstats
path: root/lib/public/Settings/DeclarativeSettingsTypes.php
blob: 7edf0cbdd6ef46b8ff775d3b85751e0ddea97e1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?php

declare(strict_types=1);

/**
 * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
 * SPDX-License-Identifier: AGPL-3.0-or-later
 */

namespace OCP\Settings;

/**
 * Declarative settings types supported in the IDeclarativeSettingsForm forms
 *
 * @since 29.0.0
 */
final class DeclarativeSettingsTypes {
	/**
	 * IDeclarativeSettingsForm section_type which is determines where the form is displayed
	 *
	 * @since 29.0.0
	 */
	public const SECTION_TYPE_ADMIN = 'admin';

	/**
	 * IDeclarativeSettingsForm section_type which is determines where the form is displayed
	 *
	 * @since 29.0.0
	 */
	public const SECTION_TYPE_PERSONAL = 'personal';

	/**
	 * IDeclarativeSettingsForm storage_type which is determines where and how the config value is stored
	 *
	 * For `external` storage_type the app needs to either implement event listeners for \OCP\Settings\SetDeclarativeSettingsValueEvent
	 * and \OCP\Settings\GetDeclarativeSettingsValueEvent or the IDeclarativeSettingsForm also needs to implement
	 * IDeclarativeSettingsFormWithHandlers for storing and retrieving the config value.
	 *
	 * @since 29.0.0
	 */
	public const STORAGE_TYPE_EXTERNAL = 'external';

	/**
	 * IDeclarativeSettingsForm storage_type which is determines where and how the config value is stored
	 *
	 * For `internal` storage_type the config value is stored in default `appconfig` and `preferences` tables.
	 *
	 * @since 29.0.0
	 */
	public const STORAGE_TYPE_INTERNAL = 'internal';

	/**
	 * NcInputField type text
	 *
	 * @since 29.0.0
	 */
	public const TEXT = 'text';

	/**
	 * NcInputField type password
	 *
	 * @since 29.0.0
	 */
	public const PASSWORD = 'password';

	/**
	 * NcInputField type email
	 *
	 * @since 29.0.0
	 */
	public const EMAIL = 'email';

	/**
	 * NcInputField type tel
	 *
	 * @since 29.0.0
	 */
	public const TEL = 'tel';

	/**
	 * NcInputField type url
	 *
	 * @since 29.0.0
	 */
	public const URL = 'url';

	/**
	 * NcInputField type number
	 *
	 * @since 29.0.0
	 */
	public const NUMBER = 'number';

	/**
	 * NcCheckboxRadioSwitch type checkbox
	 *
	 * @since 29.0.0
	 */
	public const CHECKBOX = 'checkbox';

	/**
	 * Multiple NcCheckboxRadioSwitch type checkbox representing a one config value (saved as JSON object)
	 *
	 * @since 29.0.0
	 */
	public const MULTI_CHECKBOX = 'multi-checkbox';

	/**
	 * NcCheckboxRadioSwitch type radio
	 *
	 * @since 29.0.0
	 */
	public const RADIO = 'radio';

	/**
	 * NcSelect
	 *
	 * @since 29.0.0
	 */
	public const SELECT = 'select';

	/**
	 * Multiple NcSelect representing a one config value (saved as JSON array)
	 *
	 * @since 29.0.0
	 */
	public const MULTI_SELECT = 'multi-select';
}