PluginProbe
FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration / 2.2.0
FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration v2.2.0
2.2.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 All 43 releases
← All changes | app/Services/Constant.php +84 -0 2.0.4 → 2.2.0 View file →
@@ -4,8 +4,23 @@
4 4
5 5
6 6 class Constant{
7 7
8 + const USER_PROFILE_PHOTO = 'fbs_profile_photo';
9 + const USER_PROFILE_PHOTO_UPLOAD = '_fbs_profile_photo_upload';
10 + const PROFILE_PHOTO_MAX_DIMENSION = 4096;
11 + const PROFILE_PHOTO_MAX_PIXELS = 12000000;
12 + const PROFILE_AVATAR_SIZE = 256;
13 +
14 + const PROFILE_DISPLAY_NAME_MAX_LENGTH = 250;
15 + const PROFILE_PHOTO_META_KEY = 'fbs_profile_photo';
16 + const PROFILE_PHOTO_MAX_BYTES = 2 * 1024 * 1024;
17 +
18 + const UPLOAD_PROTECTION_CHECK_PREFIX = '_fbs_upload_protection_';
19 + const FLUENT_BOARDS_IMPORT = 'FluentBoards';
20 + const JSON_IMPORT = 'json_import';
21 + const TASK_ESTIMATED_MINUTES = '_estimated_minutes';
22 +
8 23 const BOARD_EMAIL_COMMENT = 'email_after_comment';
9 24 const BOARD_EMAIL_TASK_ASSIGN = 'email_after_task_assign';
10 25 const BOARD_EMAIL_STAGE_CHANGE = 'email_after_task_stage_change';
11 26
@@ -189,9 +204,68 @@
189 204 "pink_light" => "#1B2533",
190 205 "black_light" => "#1B2533"
191 206 ];
192 207
208 + const LABEL_COLOR_PRESET_SETTING = 'color_preset';
193 209
210 + /**
211 + * Theme-aware label colors in the same order shown by the label picker.
212 + *
213 + * The persisted preset ID is stable; the UI selects the light or dark
214 + * pair at render time. The light pair is also stored as a compatibility
215 + * fallback for integrations and older clients.
216 + */
217 + const LABEL_COLOR_PRESETS = [
218 + ['id' => 'green-soft', 'light_bg_color' => '#C1EED9', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#234030', 'dark_text_color' => '#FFFFFF'],
219 + ['id' => 'yellow-soft', 'light_bg_color' => '#F1E593', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#463817', 'dark_text_color' => '#FFFFFF'],
220 + ['id' => 'orange-soft', 'light_bg_color' => '#F7E0A8', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#562F15', 'dark_text_color' => '#FFFFFF'],
221 + ['id' => 'red-soft', 'light_bg_color' => '#F6D2CE', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#4B211D', 'dark_text_color' => '#FFFFFF'],
222 + ['id' => 'purple-soft', 'light_bg_color' => '#E6D3F7', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#3A234F', 'dark_text_color' => '#FFFFFF'],
223 + ['id' => 'green-bold', 'light_bg_color' => '#70C392', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#366048', 'dark_text_color' => '#FFFFFF'],
224 + ['id' => 'yellow-bold', 'light_bg_color' => '#E4CA59', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#6F5523', 'dark_text_color' => '#FFFFFF'],
225 + ['id' => 'orange-bold', 'light_bg_color' => '#EBA146', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#874922', 'dark_text_color' => '#FFFFFF'],
226 + ['id' => 'red-bold', 'light_bg_color' => '#E17066', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#95362D', 'dark_text_color' => '#FFFFFF'],
227 + ['id' => 'purple-bold', 'light_bg_color' => '#B579E7', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#6B3E92', 'dark_text_color' => '#FFFFFF'],
228 + ['id' => 'green-strong', 'light_bg_color' => '#3F7654', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#70C392', 'dark_text_color' => '#1B2533'],
229 + ['id' => 'yellow-strong', 'light_bg_color' => '#826429', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#CFAA47', 'dark_text_color' => '#1B2533'],
230 + ['id' => 'orange-strong', 'light_bg_color' => '#A6572A', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#EBA146', 'dark_text_color' => '#1B2533'],
231 + ['id' => 'red-strong', 'light_bg_color' => '#AF4035', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#E17066', 'dark_text_color' => '#1B2533'],
232 + ['id' => 'purple-strong', 'light_bg_color' => '#8049AE', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#B579E7', 'dark_text_color' => '#1B2533'],
233 + ['id' => 'blue-soft', 'light_bg_color' => '#CCDDF9', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#1A2D53', 'dark_text_color' => '#FFFFFF'],
234 + ['id' => 'sky-soft', 'light_bg_color' => '#C9E8F7', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#223B49', 'dark_text_color' => '#FFFFFF'],
235 + ['id' => 'lime-soft', 'light_bg_color' => '#D5ECAA', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#333E22', 'dark_text_color' => '#FFFFFF'],
236 + ['id' => 'pink-soft', 'light_bg_color' => '#F4CDE6', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#402436', 'dark_text_color' => '#FFFFFF'],
237 + ['id' => 'gray-soft', 'light_bg_color' => '#D8D9DC', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#424446', 'dark_text_color' => '#FFFFFF'],
238 + ['id' => 'blue-bold', 'light_bg_color' => '#6A93E3', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#294FA9', 'dark_text_color' => '#FFFFFF'],
239 + ['id' => 'sky-bold', 'light_bg_color' => '#7BB9D6', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#345E73', 'dark_text_color' => '#FFFFFF'],
240 + ['id' => 'lime-bold', 'light_bg_color' => '#97BD5C', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#4A5F2B', 'dark_text_color' => '#FFFFFF'],
241 + ['id' => 'pink-bold', 'light_bg_color' => '#D172AE', 'light_text_color' => '#1B2533', 'dark_bg_color' => '#7D3D65', 'dark_text_color' => '#FFFFFF'],
242 + ['id' => 'gray-bold', 'light_bg_color' => '#81848B', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#595B60', 'dark_text_color' => '#FFFFFF'],
243 + ['id' => 'blue-strong', 'light_bg_color' => '#305FCA', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#6A93E3', 'dark_text_color' => '#1B2533'],
244 + ['id' => 'sky-strong', 'light_bg_color' => '#3D708B', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#7BB9D6', 'dark_text_color' => '#1B2533'],
245 + ['id' => 'lime-strong', 'light_bg_color' => '#5A7133', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#97BD5C', 'dark_text_color' => '#1B2533'],
246 + ['id' => 'pink-strong', 'light_bg_color' => '#964878', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#D172AE', 'dark_text_color' => '#1B2533'],
247 + ['id' => 'gray-strong', 'light_bg_color' => '#60636A', 'light_text_color' => '#FFFFFF', 'dark_bg_color' => '#8B8E93', 'dark_text_color' => '#1B2533'],
248 + ];
249 +
250 + /**
251 + * Find a predefined label color by its persisted ID.
252 + *
253 + * @param string $presetId
254 + * @return array|null
255 + */
256 + public static function getLabelColorPreset($presetId)
257 + {
258 + foreach (self::LABEL_COLOR_PRESETS as $preset) {
259 + if ($preset['id'] === $presetId) {
260 + return $preset;
261 + }
262 + }
263 +
264 + return null;
265 + }
266 +
267 +
194 268 const FBS_ONBOARDING = 'fbs_onboarding';
195 269 const FBS_RECENTLY_VIEWED_CHECK = 'fbs_recently_viewed_checked';
196 270 const BOARD_BACKGROUND_DEFAULT_SOLID_COLORS = [
197 271 [
@@ -340,8 +414,12 @@
340 414 ];
341 415
342 416 const ACTIVITY_ACTION_CREATED = 'created';
343 417 const ACTIVITY_ACTION_UPDATED = 'updated';
418 + const ACTIVITY_ACTION_ADDED = 'added';
419 + const ACTIVITY_ACTION_CHANGED = 'changed';
420 + const ACTIVITY_ACTION_REMOVED = 'removed';
421 + const ACTIVITY_CUSTOM_FIELD = 'custom field';
344 422 const ACTIVITY_ACTION_DELETED = 'deleted';
345 423
346 424 const TASK_ATTACHMENT = 'TASK';
347 425
@@ -348,10 +426,16 @@
348 426 const TASK_DESCRIPTION = 'task_description';
349 427
350 428 const COMMENT_IMAGE = 'comment_image';
351 429
430 + const ATTACHMENT_UPLOAD_BOARD_ID = 'upload_board_id';
431 + const ATTACHMENT_UPLOAD_USER_ID = 'upload_user_id';
432 + const ATTACHMENT_LEGACY_SIGNATURE_QUERY_KEY = 'secure_sign';
433 + const ATTACHMENT_LEGACY_EXPIRES_QUERY_KEY = 'secure_expires';
434 +
352 435 const REPEAT_TASK_META = 'repeat_task';
353 436
437 + const BOARD_TERM_CUSTOM_FIELD = 'custom-field';
354 438 const TASK_CUSTOM_FIELD = 'task_custom_field';
355 439
356 440 const BOARD_CSV_EXPORT = 'csv_export';
357 441 const BOARD_JSON_EXPORT = 'json_export';