PluginProbe
FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration / 2.1.0
FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration v2.1.0
2.1.0 2.0.15 2.0.12 2.0.10 2.0.4 2.0.1 2.0.0 1.95.3 1.95.2 1.95 1.91.6 trunk 1.11 1.12 1.13 1.20 1.21 1.22 1.23 1.30 1.31 1.32 1.35 1.40 1.41 All 42 releases
fluent-boards / app / Services / Constant.php

Constant.php in FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration 2.1.0, at app/Services/Constant.php

436 lines 17.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace FluentBoards\App\Services;
4
5
6 class Constant{
7
8 const BOARD_EMAIL_COMMENT = 'email_after_comment';
9 const BOARD_EMAIL_TASK_ASSIGN = 'email_after_task_assign';
10 const BOARD_EMAIL_STAGE_CHANGE = 'email_after_task_stage_change';
11
12 const BOARD_EMAIL_DUE_DATE_CHANGE = 'email_after_task_due_date_change';
13 const BOARD_EMAIL_REMOVE_FROM_TASK = 'email_after_remove_from_task';
14 const BOARD_EMAIL_TASK_ARCHIVE = 'email_after_task_archive';
15
16
17
18 const ACTIVITY_TASK = 'task_activity';
19 const ACTIVITY_BOARD = 'board_activity';
20
21 const TASK_ASSIGNEE = 'task_assignee';
22 const TASK_SOURCE_FLUENT_SUPPORT = 'FluentSupport';
23
24 const OBJECT_TYPE_BOARD_USER_EMAIL_NOTIFICATION = 'board_user_email';
25 const OBJECT_TYPE_BOARD_USER_NOTIFICATION = 'board_user_notification';
26 const OBJECT_TYPE_TASK_ASSIGNEE = 'task_assignee';
27 const OBJECT_TYPE_TASK_LABEL = 'task_label';
28 const OBJECT_TYPE_BOARD_USER = 'board_user';
29
30 const OBJECT_TYPE_USER = 'user';
31
32 const TASK_WATCH_NOTIFICATION_TYPES = [
33 'comment_add' => true,
34 'comment_update' => true,
35 'title_change' => true,
36 'move_to_another_board' => true,
37 'Label' => true,
38 'due_at' => true,
39 'priority' => true,
40 'assignee_added' => true,
41 'assignee_removed' => true
42 ];
43
44 const BOARD_NOTIFICATION_TYPES = [
45 'email_after_comment' => true,
46 'email_after_task_assign' => true,
47 'email_after_task_stage_change' => true,
48 'email_after_task_due_date_change' => true,
49 'email_after_remove_from_task' => true,
50 'email_after_task_archive' => true,
51 'dashboard_notification' => true
52 ];
53
54 const OBJECT_TYPE_BOARD_NOTIFICATION = 'board_notification';
55
56 const OBJECT_TYPE_USER_TASK_WATCH = 'task_user_watch';
57
58 const OBJECT_TYPE_TASK_DEPENDENCY = 'task_dependency';
59
60 const IS_TASK_TEMPLATE = 'is_template';
61 const IS_TASK_PINNED = 'is_pinned';
62
63 const BOARD_USER_SETTINGS = [
64 'is_admin' => false
65 ];
66 const BOARD_USER_VIEWER_ONLY_SETTINGS = [
67 'is_admin' => false,
68 'is_viewer_only' => true
69 ];
70
71 const FLUENT_BOARD_ADMIN = 'fluent_board_admin';
72
73 const IS_BOARD_ADMIN = 'is_admin';
74
75 const USER_RECENT_BOARDS = 'user_recent_boards';
76 const USER_GLOBAL_NOTIFICATIONS = 'user_global_notifications';
77
78 const OBJECT_TYPE_BOARD = 'board';
79
80 const OBJECT_TYPE_FOLDER = 'folder';
81 const OBJECT_TYPE_FOLDER_BOARD = 'FluentBoardsPro\App\Models\Folder';
82 const OBJECT_TYPE_TASK = 'TASK';
83 const CRM_CONTACT = 'crm_subscriber';
84 const CRM_CONTACT_ASSOCIATED_BOARD = 'contact_associated_board';
85 const BOARD_ASSOCIATED_CRM_CONTACT = 'board_associated_contact';
86
87 const BOARD_INVITATION = 'board_email_invitation';
88
89 const GLOBAL_EMAIL_NOTIFICATION_COMMENT = 'email_after_comment';
90 const GLOBAL_EMAIL_NOTIFICATION_TASK_ASSIGN = 'email_after_task_assign';
91 const GLOBAL_EMAIL_NOTIFICATION_STAGE_CHANGE = 'email_after_task_stage_change';
92 const GLOBAL_EMAIL_NOTIFICATION_DUE_DATE = 'email_after_task_due_date_change';
93 const GLOBAL_EMAIL_NOTIFICATION_REMOVE_FROM_TASK = 'email_after_remove_from_task';
94 const GLOBAL_EMAIL_NOTIFICATION_TASK_ARCHIVE = 'email_after_task_archive';
95 const GLOBAL_EMAIL_NOTIFICATION_CREATING_TASK = 'watch_on_creating_task';
96 const GLOBAL_EMAIL_NOTIFICATION_COMMENTING = 'watch_on_commenting';
97 const GLOBAL_EMAIL_NOTIFICATION_ASSIGNING= 'watch_on_assigning';
98 const GLOBAL_DASHBOARD_NOTIFICATION = 'dashboard_notification';
99
100 const USER_DASHBOARD_VIEW = 'user_dashboard_view';
101
102 const USER_LISTVIEW_PREFERENCES = 'user_listview_preferences';
103 const USER_TABLEVIEW_PREFERENCES = 'user_tableview_preferences';
104
105 const DEFAULT_DASHBOARD_VIEW_PREFERENCES = [
106 'dashboard_view_label' => true,
107 'dashboard_view_priority' => true,
108 'dashboard_view_assignee' => true,
109 'dashboard_view_subtask' => true,
110 'dashboard_view_attachment' => true,
111 'dashboard_view_due_date' => true,
112 'dashboard_view_comment' => true,
113 'dashboard_view_notification' => true
114 ];
115
116 const DEFAULT_TABLEVIEW_VIEW_PREFERENCES = [
117 'table_view_priority' => true,
118 'table_view_status' => true,
119 'table_view_dates' => true,
120 'table_view_assignees' => true,
121 'table_view_labels' => true,
122 'table_view_created_at' => true,
123 'table_view_subtasks' => false,
124 'table_view_activity' => false,
125 ];
126
127 const TRELLO_COLOR_MAP = [
128 "green" => "#4bce97",
129 "yellow" => "#f5cd47",
130 "orange" => "#fea362",
131 "red" => "#f87168",
132 "purple" => "#9f8fef",
133 "blue" => "#579dff",
134 "sky" => "#6cc3e0",
135 "lime" => "#94c748",
136 "pink" => "#e774bb",
137 "black" => "#8590a2",
138 "green_dark" => "#1f845a",
139 "yellow_dark" => "#946f00",
140 "orange_dark" => "#c25100",
141 "red_dark" => "#ae2e24",
142 "purple_dark" => "#5e4db2",
143 "blue_dark" => "#0c66e4",
144 "sky_dark" => "#206a83",
145 "lime_dark" => "#5b7f24",
146 "pink_dark" => "#943d73",
147 "black_dark" => "#44546f",
148 "green_light" => "#baf3db",
149 "yellow_light" => "#f8e6a0",
150 "orange_light" => "#fedec8",
151 "red_light" => "#ffd5d2",
152 "purple_light" => "#dfd8fd",
153 "blue_light" => "#cce0ff",
154 "sky_light" => "#c6edfb",
155 "lime_light" => "#d3f1a7",
156 "pink_light" => "#fdd0ec",
157 "black_light" => "#dcdfe4"
158 ];
159
160 const TEXT_COLOR_MAP = [
161 "green" => "#1B2533",
162 "yellow" => "#1B2533",
163 "orange" => "#1B2533",
164 "red" => "#1B2533",
165 "purple" => "#1B2533",
166 "blue" => "#1B2533",
167 "sky" => "#1B2533",
168 "lime" => "#1B2533",
169 "pink" => "#1B2533",
170 "black" => "#1B2533",
171 "green_dark" => "#fff",
172 "yellow_dark" => "#fff",
173 "orange_dark" => "#fff",
174 "red_dark" => "#fff",
175 "purple_dark" => "#fff",
176 "blue_dark" => "#fff",
177 "sky_dark" => "#fff",
178 "lime_dark" => "#fff",
179 "pink_dark" => "#fff",
180 "black_dark" => "#fff",
181 "green_light" => "#1B2533",
182 "yellow_light" => "#1B2533",
183 "orange_light" => "#1B2533",
184 "red_light" => "#1B2533",
185 "purple_light" => "#1B2533",
186 "blue_light" => "#1B2533",
187 "sky_light" => "#1B2533",
188 "lime_light" => "#1B2533",
189 "pink_light" => "#1B2533",
190 "black_light" => "#1B2533"
191 ];
192
193 const LABEL_COLOR_PRESET_SETTING = 'color_preset';
194
195 /**
196 * Theme-aware label colors in the same order shown by the label picker.
197 *
198 * The persisted preset ID is stable; the UI selects the light or dark
199 * pair at render time. The light pair is also stored as a compatibility
200 * fallback for integrations and older clients.
201 */
202 const LABEL_COLOR_PRESETS = [
203 ['id' => 'green-soft', 'light_bg_color' => '#C1EED9', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#234030', 'dark_text_color' => '#FFFFFF'],
204 ['id' => 'yellow-soft', 'light_bg_color' => '#F1E593', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#463817', 'dark_text_color' => '#FFFFFF'],
205 ['id' => 'orange-soft', 'light_bg_color' => '#F7E0A8', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#562F15', 'dark_text_color' => '#FFFFFF'],
206 ['id' => 'red-soft', 'light_bg_color' => '#F6D2CE', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#4B211D', 'dark_text_color' => '#FFFFFF'],
207 ['id' => 'purple-soft', 'light_bg_color' => '#E6D3F7', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#3A234F', 'dark_text_color' => '#FFFFFF'],
208 ['id' => 'green-bold', 'light_bg_color' => '#70C392', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#366048', 'dark_text_color' => '#FFFFFF'],
209 ['id' => 'yellow-bold', 'light_bg_color' => '#E4CA59', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#6F5523', 'dark_text_color' => '#FFFFFF'],
210 ['id' => 'orange-bold', 'light_bg_color' => '#EBA146', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#874922', 'dark_text_color' => '#FFFFFF'],
211 ['id' => 'red-bold', 'light_bg_color' => '#E17066', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#95362D', 'dark_text_color' => '#FFFFFF'],
212 ['id' => 'purple-bold', 'light_bg_color' => '#B579E7', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#6B3E92', 'dark_text_color' => '#FFFFFF'],
213 ['id' => 'green-strong', 'light_bg_color' => '#3F7654', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#70C392', 'dark_text_color' => '#1B2533'],
214 ['id' => 'yellow-strong', 'light_bg_color' => '#826429', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#CFAA47', 'dark_text_color' => '#1B2533'],
215 ['id' => 'orange-strong', 'light_bg_color' => '#A6572A', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#EBA146', 'dark_text_color' => '#1B2533'],
216 ['id' => 'red-strong', 'light_bg_color' => '#AF4035', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#E17066', 'dark_text_color' => '#1B2533'],
217 ['id' => 'purple-strong', 'light_bg_color' => '#8049AE', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#B579E7', 'dark_text_color' => '#1B2533'],
218 ['id' => 'blue-soft', 'light_bg_color' => '#CCDDF9', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#1A2D53', 'dark_text_color' => '#FFFFFF'],
219 ['id' => 'sky-soft', 'light_bg_color' => '#C9E8F7', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#223B49', 'dark_text_color' => '#FFFFFF'],
220 ['id' => 'lime-soft', 'light_bg_color' => '#D5ECAA', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#333E22', 'dark_text_color' => '#FFFFFF'],
221 ['id' => 'pink-soft', 'light_bg_color' => '#F4CDE6', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#402436', 'dark_text_color' => '#FFFFFF'],
222 ['id' => 'gray-soft', 'light_bg_color' => '#D8D9DC', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#424446', 'dark_text_color' => '#FFFFFF'],
223 ['id' => 'blue-bold', 'light_bg_color' => '#6A93E3', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#294FA9', 'dark_text_color' => '#FFFFFF'],
224 ['id' => 'sky-bold', 'light_bg_color' => '#7BB9D6', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#345E73', 'dark_text_color' => '#FFFFFF'],
225 ['id' => 'lime-bold', 'light_bg_color' => '#97BD5C', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#4A5F2B', 'dark_text_color' => '#FFFFFF'],
226 ['id' => 'pink-bold', 'light_bg_color' => '#D172AE', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#7D3D65', 'dark_text_color' => '#FFFFFF'],
227 ['id' => 'gray-bold', 'light_bg_color' => '#81848B', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#595B60', 'dark_text_color' => '#FFFFFF'],
228 ['id' => 'blue-strong', 'light_bg_color' => '#305FCA', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#6A93E3', 'dark_text_color' => '#1B2533'],
229 ['id' => 'sky-strong', 'light_bg_color' => '#3D708B', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#7BB9D6', 'dark_text_color' => '#1B2533'],
230 ['id' => 'lime-strong', 'light_bg_color' => '#5A7133', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#97BD5C', 'dark_text_color' => '#1B2533'],
231 ['id' => 'pink-strong', 'light_bg_color' => '#964878', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#D172AE', 'dark_text_color' => '#1B2533'],
232 ['id' => 'gray-strong', 'light_bg_color' => '#60636A', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#8B8E93', 'dark_text_color' => '#1B2533'],
233 ];
234
235 /**
236 * Find a predefined label color by its persisted ID.
237 *
238 * @param string $presetId
239 * @return array|null
240 */
241 public static function getLabelColorPreset($presetId)
242 {
243 foreach (self::LABEL_COLOR_PRESETS as $preset) {
244 if ($preset['id'] === $presetId) {
245 return $preset;
246 }
247 }
248
249 return null;
250 }
251
252
253 const FBS_ONBOARDING = 'fbs_onboarding';
254 const FBS_RECENTLY_VIEWED_CHECK = 'fbs_recently_viewed_checked';
255 const BOARD_BACKGROUND_DEFAULT_SOLID_COLORS = [
256 [
257 'id' => 'solid_1',
258 'value' => '#6A88A7',
259 'dark_value' => '#314253'
260 ],
261 [
262 'id' => 'solid_2',
263 'value' => '#9E7D61',
264 'dark_value' => '#574435'
265 ],
266 [
267 'id' => 'solid_3',
268 'value' => '#D24F7D',
269 'dark_value' => '#6A223C'
270 ],
271 [
272 'id' => 'solid_4',
273 'value' => '#D7543D',
274 'dark_value' => '#772E21'
275 ],
276 [
277 'id' => 'solid_5',
278 'value' => '#B17720',
279 'dark_value' => '#614113'
280 ],
281 [
282 'id' => 'solid_6',
283 'value' => '#8C8920',
284 'dark_value' => '#44420F'
285 ],
286 [
287 'id' => 'solid_7',
288 'value' => '#429B3A',
289 'dark_value' => '#1B4C17'
290 ],
291 [
292 'id' => 'solid_8',
293 'value' => '#259A77',
294 'dark_value' => '#114B39'
295 ],
296 [
297 'id' => 'solid_9',
298 'value' => '#259697',
299 'dark_value' => '#114949'
300 ],
301 [
302 'id' => 'solid_10',
303 'value' => '#2491B6',
304 'dark_value' => '#114659'
305 ],
306 [
307 'id' => 'solid_11',
308 'value' => '#2682F1',
309 'dark_value' => '#0F3F79'
310 ],
311 [
312 'id' => 'solid_12',
313 'value' => '#7F6DEE',
314 'dark_value' => '#3D3379'
315 ],
316 [
317 'id' => 'solid_13',
318 'value' => '#A85ED1',
319 'dark_value' => '#532B6A'
320 ],
321 [
322 'id' => 'solid_14',
323 'value' => '#C156AB',
324 'dark_value' => '#612655'
325 ],
326 [
327 'id' => 'solid_15',
328 'value' => '#FB98EE',
329 'dark_value' => '#673361'
330 ],
331 [
332 'id' => 'solid_16',
333 'value' => '#522BC1',
334 'dark_value' => '#352678'
335 ],
336 [
337 'id' => 'solid_17',
338 'value' => '#3C40F3',
339 'dark_value' => '#222A8C'
340 ],
341 [
342 'id' => 'solid_18',
343 'value' => '#FCB84E',
344 'dark_value' => '#6D4C14'
345 ],
346 [
347 'id' => 'solid_19',
348 'value' => '#FCA848',
349 'dark_value' => '#714714'
350 ],
351 [
352 'id' => 'solid_20',
353 'value' => '#EF8346',
354 'dark_value' => '#763B19'
355 ],
356 [
357 'id' => 'solid_21',
358 'value' => '#B63220',
359 'dark_value' => '#681D22'
360 ],
361 [
362 'id' => 'solid_22',
363 'value' => '#63F1D9',
364 'dark_value' => '#15584E'
365 ]
366 ];
367
368 const BOARD_BACKGROUND_DEFAULT_GRADIENT_COLORS = [
369 [
370 'id' => 'gradient_1',
371 'value' => 'linear-gradient(145deg, #479176 0%, #0F2C2B 100%)',
372 'dark_value' => 'linear-gradient(145deg, #156A4F 0%, #0D302F 100%)',
373 ],
374 [
375 'id' => 'gradient_2',
376 'value' => 'linear-gradient(145deg, #A470E1 0%, #2E2758 100%)',
377 'dark_value' => 'linear-gradient(145deg, #7637B7 0%, #2A2650 100%)',
378 ],
379 [
380 'id' => 'gradient_3',
381 'value' => 'linear-gradient(145deg, #F86E35 0%, #F13855 98%)',
382 'dark_value' => 'linear-gradient(145deg, #9F3A13 0%, #580A18 98%)',
383 ],
384 [
385 'id' => 'gradient_4',
386 'value' => 'linear-gradient(145deg, #145CD7 0%, #050634 100%)',
387 'dark_value' => 'linear-gradient(145deg, #1858B4 0%, #242155 100%)',
388 ],
389 [
390 'id' => 'gradient_5',
391 'value' => 'linear-gradient(145deg, #5E69F9 0%, #F3A6FB 100%)',
392 'dark_value' => 'linear-gradient(145deg, #423EA7 0%, #4B1D50 100%)',
393 ],
394 [
395 'id' => 'gradient_6',
396 'value' => 'linear-gradient(145deg, #62EED9 0%, #646FF9 100%)',
397 'dark_value' => 'linear-gradient(145deg, #187767 0%, #2A2660 100%)',
398 ]
399 ];
400
401 const ACTIVITY_ACTION_CREATED = 'created';
402 const ACTIVITY_ACTION_UPDATED = 'updated';
403 const ACTIVITY_ACTION_DELETED = 'deleted';
404
405 const TASK_ATTACHMENT = 'TASK';
406
407 const TASK_DESCRIPTION = 'task_description';
408
409 const COMMENT_IMAGE = 'comment_image';
410
411 const ATTACHMENT_UPLOAD_BOARD_ID = 'upload_board_id';
412 const ATTACHMENT_UPLOAD_USER_ID = 'upload_user_id';
413 const ATTACHMENT_LEGACY_SIGNATURE_QUERY_KEY = 'secure_sign';
414 const ATTACHMENT_LEGACY_EXPIRES_QUERY_KEY = 'secure_expires';
415
416 const REPEAT_TASK_META = 'repeat_task';
417
418 const TASK_CUSTOM_FIELD = 'task_custom_field';
419
420 const BOARD_CSV_EXPORT = 'csv_export';
421 const BOARD_JSON_EXPORT = 'json_export';
422 const BOARD_ATTACHMENT = 'BOARD';
423
424 const BOARD_BACKGROUND_IMAGE = 'board_background_image';
425 const FBS_TASK_TABS_CONFIG = "fbs_task_tabs_config";
426
427 const FBS_OLD_SUBTASK_SYNC = 'fbs_old_subtask_sync';
428
429 const SUBTASK_GROUP_NAME = 'group_name';
430 const SUBTASK_GROUP_CHILD = 'subtask_group_id';
431
432 const USER_PINNED_BOARDS = 'pinned_boards';
433
434 const META_KEY_ARCHIVED_BY_STAGE = 'archived_by_stage';
435 }
436