@axelor/aos-mobile-project 8.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -0
- package/lib/api/index.d.ts +4 -0
- package/lib/api/index.js +22 -0
- package/lib/api/index.js.map +1 -0
- package/lib/api/project-api.d.ts +20 -0
- package/lib/api/project-api.js +136 -0
- package/lib/api/project-api.js.map +1 -0
- package/lib/api/project-task-api.d.ts +51 -0
- package/lib/api/project-task-api.js +294 -0
- package/lib/api/project-task-api.js.map +1 -0
- package/lib/api/reporting-api.d.ts +3 -0
- package/lib/api/reporting-api.js +26 -0
- package/lib/api/reporting-api.js.map +1 -0
- package/lib/api/timesheet-lines-api.d.ts +3 -0
- package/lib/api/timesheet-lines-api.js +41 -0
- package/lib/api/timesheet-lines-api.js.map +1 -0
- package/lib/components/atoms/DatesDisplay/DatesDisplay.d.ts +6 -0
- package/lib/components/atoms/DatesDisplay/DatesDisplay.js +59 -0
- package/lib/components/atoms/DatesDisplay/DatesDisplay.js.map +1 -0
- package/lib/components/atoms/PartnerCard/PartnerCard.d.ts +12 -0
- package/lib/components/atoms/PartnerCard/PartnerCard.js +74 -0
- package/lib/components/atoms/PartnerCard/PartnerCard.js.map +1 -0
- package/lib/components/atoms/ProjectCard/ProjectCard.d.ts +15 -0
- package/lib/components/atoms/ProjectCard/ProjectCard.js +101 -0
- package/lib/components/atoms/ProjectCard/ProjectCard.js.map +1 -0
- package/lib/components/atoms/ProjectSimpleCard/ProjectSimpleCard.d.ts +10 -0
- package/lib/components/atoms/ProjectSimpleCard/ProjectSimpleCard.js +48 -0
- package/lib/components/atoms/ProjectSimpleCard/ProjectSimpleCard.js.map +1 -0
- package/lib/components/atoms/TaskCard/TaskCard.d.ts +16 -0
- package/lib/components/atoms/TaskCard/TaskCard.js +93 -0
- package/lib/components/atoms/TaskCard/TaskCard.js.map +1 -0
- package/lib/components/atoms/index.d.ts +5 -0
- package/lib/components/atoms/index.js +23 -0
- package/lib/components/atoms/index.js.map +1 -0
- package/lib/components/index.d.ts +5 -0
- package/lib/components/index.js +23 -0
- package/lib/components/index.js.map +1 -0
- package/lib/components/molecules/ActivityCard/ActivityCard.d.ts +11 -0
- package/lib/components/molecules/ActivityCard/ActivityCard.js +80 -0
- package/lib/components/molecules/ActivityCard/ActivityCard.js.map +1 -0
- package/lib/components/molecules/CustomFieldPopup/CustomFieldPopup.d.ts +11 -0
- package/lib/components/molecules/CustomFieldPopup/CustomFieldPopup.js +53 -0
- package/lib/components/molecules/CustomFieldPopup/CustomFieldPopup.js.map +1 -0
- package/lib/components/molecules/DropdownInvoicing/DropdownInvoicing.d.ts +11 -0
- package/lib/components/molecules/DropdownInvoicing/DropdownInvoicing.js +41 -0
- package/lib/components/molecules/DropdownInvoicing/DropdownInvoicing.js.map +1 -0
- package/lib/components/molecules/DropdownMembers/DropdownMembers.d.ts +8 -0
- package/lib/components/molecules/DropdownMembers/DropdownMembers.js +33 -0
- package/lib/components/molecules/DropdownMembers/DropdownMembers.js.map +1 -0
- package/lib/components/molecules/DropdownTaskCharacteristics/DropdownTaskCharacteristics.d.ts +13 -0
- package/lib/components/molecules/DropdownTaskCharacteristics/DropdownTaskCharacteristics.js +51 -0
- package/lib/components/molecules/DropdownTaskCharacteristics/DropdownTaskCharacteristics.js.map +1 -0
- package/lib/components/molecules/DropdownTaskDescription/DropdownTaskDescription.d.ts +8 -0
- package/lib/components/molecules/DropdownTaskDescription/DropdownTaskDescription.js +39 -0
- package/lib/components/molecules/DropdownTaskDescription/DropdownTaskDescription.js.map +1 -0
- package/lib/components/molecules/PartnerActionCard/PartnerActionCard.d.ts +19 -0
- package/lib/components/molecules/PartnerActionCard/PartnerActionCard.js +53 -0
- package/lib/components/molecules/PartnerActionCard/PartnerActionCard.js.map +1 -0
- package/lib/components/molecules/ProjectHeader/ProjectHeader.d.ts +3 -0
- package/lib/components/molecules/ProjectHeader/ProjectHeader.js +67 -0
- package/lib/components/molecules/ProjectHeader/ProjectHeader.js.map +1 -0
- package/lib/components/molecules/ProjectSiteTags/ProjectSiteTags.d.ts +3 -0
- package/lib/components/molecules/ProjectSiteTags/ProjectSiteTags.js +34 -0
- package/lib/components/molecules/ProjectSiteTags/ProjectSiteTags.js.map +1 -0
- package/lib/components/molecules/SectionHeader/SectionHeader.d.ts +9 -0
- package/lib/components/molecules/SectionHeader/SectionHeader.js +56 -0
- package/lib/components/molecules/SectionHeader/SectionHeader.js.map +1 -0
- package/lib/components/molecules/TaskActionCard/TaskActionCard.d.ts +20 -0
- package/lib/components/molecules/TaskActionCard/TaskActionCard.js +39 -0
- package/lib/components/molecules/TaskActionCard/TaskActionCard.js.map +1 -0
- package/lib/components/molecules/TaskDetailsHeader/TaskDetailsHeader.d.ts +3 -0
- package/lib/components/molecules/TaskDetailsHeader/TaskDetailsHeader.js +67 -0
- package/lib/components/molecules/TaskDetailsHeader/TaskDetailsHeader.js.map +1 -0
- package/lib/components/molecules/index.d.ts +12 -0
- package/lib/components/molecules/index.js +30 -0
- package/lib/components/molecules/index.js.map +1 -0
- package/lib/components/organisms/CustomSection/CustomSection.d.ts +10 -0
- package/lib/components/organisms/CustomSection/CustomSection.js +49 -0
- package/lib/components/organisms/CustomSection/CustomSection.js.map +1 -0
- package/lib/components/organisms/LogTimeButton/LogTimeButton.d.ts +6 -0
- package/lib/components/organisms/LogTimeButton/LogTimeButton.js +41 -0
- package/lib/components/organisms/LogTimeButton/LogTimeButton.js.map +1 -0
- package/lib/components/organisms/ProjectDropdownCards/ProjectDropdownCards.d.ts +3 -0
- package/lib/components/organisms/ProjectDropdownCards/ProjectDropdownCards.js +51 -0
- package/lib/components/organisms/ProjectDropdownCards/ProjectDropdownCards.js.map +1 -0
- package/lib/components/organisms/ProjectTaskDropdownCards/ProjectTaskDropdownCards.d.ts +3 -0
- package/lib/components/organisms/ProjectTaskDropdownCards/ProjectTaskDropdownCards.js +52 -0
- package/lib/components/organisms/ProjectTaskDropdownCards/ProjectTaskDropdownCards.js.map +1 -0
- package/lib/components/organisms/TimeSpentGridView/TimeSpentGridView.d.ts +3 -0
- package/lib/components/organisms/TimeSpentGridView/TimeSpentGridView.js +53 -0
- package/lib/components/organisms/TimeSpentGridView/TimeSpentGridView.js.map +1 -0
- package/lib/components/organisms/index.d.ts +5 -0
- package/lib/components/organisms/index.js +23 -0
- package/lib/components/organisms/index.js.map +1 -0
- package/lib/components/pages/GeneralInformationView/GeneralInformationView.d.ts +3 -0
- package/lib/components/pages/GeneralInformationView/GeneralInformationView.js +55 -0
- package/lib/components/pages/GeneralInformationView/GeneralInformationView.js.map +1 -0
- package/lib/components/pages/ReportingView/ReportingView.d.ts +3 -0
- package/lib/components/pages/ReportingView/ReportingView.js +60 -0
- package/lib/components/pages/ReportingView/ReportingView.js.map +1 -0
- package/lib/components/pages/SubProjectView/SubProjectView.d.ts +3 -0
- package/lib/components/pages/SubProjectView/SubProjectView.js +80 -0
- package/lib/components/pages/SubProjectView/SubProjectView.js.map +1 -0
- package/lib/components/pages/TaskCustomFieldsView/TaskCustomFieldsView.d.ts +3 -0
- package/lib/components/pages/TaskCustomFieldsView/TaskCustomFieldsView.js +49 -0
- package/lib/components/pages/TaskCustomFieldsView/TaskCustomFieldsView.js.map +1 -0
- package/lib/components/pages/TaskGeneralInformationView/TaskGeneralInformationView.d.ts +5 -0
- package/lib/components/pages/TaskGeneralInformationView/TaskGeneralInformationView.js +55 -0
- package/lib/components/pages/TaskGeneralInformationView/TaskGeneralInformationView.js.map +1 -0
- package/lib/components/pages/TaskLinkView/TaskLinkView.d.ts +3 -0
- package/lib/components/pages/TaskLinkView/TaskLinkView.js +58 -0
- package/lib/components/pages/TaskLinkView/TaskLinkView.js.map +1 -0
- package/lib/components/pages/TaskView/TaskView.d.ts +3 -0
- package/lib/components/pages/TaskView/TaskView.js +63 -0
- package/lib/components/pages/TaskView/TaskView.js.map +1 -0
- package/lib/components/pages/TimeView/TimeView.d.ts +7 -0
- package/lib/components/pages/TimeView/TimeView.js +59 -0
- package/lib/components/pages/TimeView/TimeView.js.map +1 -0
- package/lib/components/pages/index.d.ts +8 -0
- package/lib/components/pages/index.js +26 -0
- package/lib/components/pages/index.js.map +1 -0
- package/lib/components/templates/ActivityListView/ActivityListView.d.ts +3 -0
- package/lib/components/templates/ActivityListView/ActivityListView.js +117 -0
- package/lib/components/templates/ActivityListView/ActivityListView.js.map +1 -0
- package/lib/components/templates/CategorySearchBar/CategorySearchBar.d.ts +12 -0
- package/lib/components/templates/CategorySearchBar/CategorySearchBar.js +41 -0
- package/lib/components/templates/CategorySearchBar/CategorySearchBar.js.map +1 -0
- package/lib/components/templates/ParentTaskSearchBar/ParentTaskSearchBar.d.ts +12 -0
- package/lib/components/templates/ParentTaskSearchBar/ParentTaskSearchBar.js +41 -0
- package/lib/components/templates/ParentTaskSearchBar/ParentTaskSearchBar.js.map +1 -0
- package/lib/components/templates/PrioritySearchBar/PrioritySearchBar.d.ts +12 -0
- package/lib/components/templates/PrioritySearchBar/PrioritySearchBar.js +41 -0
- package/lib/components/templates/PrioritySearchBar/PrioritySearchBar.js.map +1 -0
- package/lib/components/templates/ProjectListView/ProjectListView.d.ts +6 -0
- package/lib/components/templates/ProjectListView/ProjectListView.js +71 -0
- package/lib/components/templates/ProjectListView/ProjectListView.js.map +1 -0
- package/lib/components/templates/ProjectSearchBar/ProjectSearchBar.d.ts +13 -0
- package/lib/components/templates/ProjectSearchBar/ProjectSearchBar.js +39 -0
- package/lib/components/templates/ProjectSearchBar/ProjectSearchBar.js.map +1 -0
- package/lib/components/templates/ReportingDetailsView/IndicatorCategory.d.ts +7 -0
- package/lib/components/templates/ReportingDetailsView/IndicatorCategory.js +70 -0
- package/lib/components/templates/ReportingDetailsView/IndicatorCategory.js.map +1 -0
- package/lib/components/templates/ReportingDetailsView/ReportingDetailsView.d.ts +3 -0
- package/lib/components/templates/ReportingDetailsView/ReportingDetailsView.js +50 -0
- package/lib/components/templates/ReportingDetailsView/ReportingDetailsView.js.map +1 -0
- package/lib/components/templates/SectionSearchBar/SectionSearchBar.d.ts +12 -0
- package/lib/components/templates/SectionSearchBar/SectionSearchBar.js +38 -0
- package/lib/components/templates/SectionSearchBar/SectionSearchBar.js.map +1 -0
- package/lib/components/templates/TargetVersionSearchBar/TargetVersionSearchBar.d.ts +12 -0
- package/lib/components/templates/TargetVersionSearchBar/TargetVersionSearchBar.js +40 -0
- package/lib/components/templates/TargetVersionSearchBar/TargetVersionSearchBar.js.map +1 -0
- package/lib/components/templates/TaskFilters/TaskFilters.d.ts +14 -0
- package/lib/components/templates/TaskFilters/TaskFilters.js +135 -0
- package/lib/components/templates/TaskFilters/TaskFilters.js.map +1 -0
- package/lib/components/templates/TaskStatusSearchBar/TaskStatusSearchBar.d.ts +12 -0
- package/lib/components/templates/TaskStatusSearchBar/TaskStatusSearchBar.js +56 -0
- package/lib/components/templates/TaskStatusSearchBar/TaskStatusSearchBar.js.map +1 -0
- package/lib/components/templates/TaskTagMultiValuePicker/TaskTagMultiValuePicker.d.ts +11 -0
- package/lib/components/templates/TaskTagMultiValuePicker/TaskTagMultiValuePicker.js +50 -0
- package/lib/components/templates/TaskTagMultiValuePicker/TaskTagMultiValuePicker.js.map +1 -0
- package/lib/components/templates/index.d.ts +12 -0
- package/lib/components/templates/index.js +30 -0
- package/lib/components/templates/index.js.map +1 -0
- package/lib/features/asyncFunctions-index.d.ts +4 -0
- package/lib/features/asyncFunctions-index.js +22 -0
- package/lib/features/asyncFunctions-index.js.map +1 -0
- package/lib/features/index.d.ts +4 -0
- package/lib/features/index.js +22 -0
- package/lib/features/index.js.map +1 -0
- package/lib/features/projectSlice.d.ts +65 -0
- package/lib/features/projectSlice.js +118 -0
- package/lib/features/projectSlice.js.map +1 -0
- package/lib/features/projectTaskSlice.d.ts +193 -0
- package/lib/features/projectTaskSlice.js +310 -0
- package/lib/features/projectTaskSlice.js.map +1 -0
- package/lib/features/reportingSlice.d.ts +13 -0
- package/lib/features/reportingSlice.js +43 -0
- package/lib/features/reportingSlice.js.map +1 -0
- package/lib/features/timesheetLinesSlice.d.ts +39 -0
- package/lib/features/timesheetLinesSlice.js +57 -0
- package/lib/features/timesheetLinesSlice.js.map +1 -0
- package/lib/hooks/index.d.ts +2 -0
- package/lib/hooks/index.js +20 -0
- package/lib/hooks/index.js.map +1 -0
- package/lib/hooks/use-project-header-actions.d.ts +1 -0
- package/lib/hooks/use-project-header-actions.js +75 -0
- package/lib/hooks/use-project-header-actions.js.map +1 -0
- package/lib/hooks/use-reporting-configuration.d.ts +5 -0
- package/lib/hooks/use-reporting-configuration.js +33 -0
- package/lib/hooks/use-reporting-configuration.js.map +1 -0
- package/lib/hooks/use-task-filter.d.ts +32 -0
- package/lib/hooks/use-task-filter.js +96 -0
- package/lib/hooks/use-task-filter.js.map +1 -0
- package/lib/i18n/en.json +87 -0
- package/lib/i18n/fr.json +87 -0
- package/lib/index.d.ts +8 -0
- package/lib/index.js +81 -0
- package/lib/index.js.map +1 -0
- package/lib/models/forms.d.ts +2 -0
- package/lib/models/forms.js +245 -0
- package/lib/models/forms.js.map +1 -0
- package/lib/models/index.d.ts +5 -0
- package/lib/models/index.js +23 -0
- package/lib/models/index.js.map +1 -0
- package/lib/models/objectFields.d.ts +2 -0
- package/lib/models/objectFields.js +187 -0
- package/lib/models/objectFields.js.map +1 -0
- package/lib/models/searchFields.d.ts +2 -0
- package/lib/models/searchFields.js +31 -0
- package/lib/models/searchFields.js.map +1 -0
- package/lib/models/sortFields.d.ts +2 -0
- package/lib/models/sortFields.js +22 -0
- package/lib/models/sortFields.js.map +1 -0
- package/lib/models/typeObjects.d.ts +2 -0
- package/lib/models/typeObjects.js +63 -0
- package/lib/models/typeObjects.js.map +1 -0
- package/lib/screens/ActiveProjectScreen.d.ts +3 -0
- package/lib/screens/ActiveProjectScreen.js +50 -0
- package/lib/screens/ActiveProjectScreen.js.map +1 -0
- package/lib/screens/BuisnessProjectScreen.d.ts +3 -0
- package/lib/screens/BuisnessProjectScreen.js +27 -0
- package/lib/screens/BuisnessProjectScreen.js.map +1 -0
- package/lib/screens/ProjectDetailsScreen.d.ts +7 -0
- package/lib/screens/ProjectDetailsScreen.js +87 -0
- package/lib/screens/ProjectDetailsScreen.js.map +1 -0
- package/lib/screens/ProjectScreen.d.ts +3 -0
- package/lib/screens/ProjectScreen.js +27 -0
- package/lib/screens/ProjectScreen.js.map +1 -0
- package/lib/screens/TaskDetailsScreen.d.ts +6 -0
- package/lib/screens/TaskDetailsScreen.js +92 -0
- package/lib/screens/TaskDetailsScreen.js.map +1 -0
- package/lib/screens/TaskFormScreen.d.ts +6 -0
- package/lib/screens/TaskFormScreen.js +83 -0
- package/lib/screens/TaskFormScreen.js.map +1 -0
- package/lib/screens/TaskListScreen.d.ts +5 -0
- package/lib/screens/TaskListScreen.js +56 -0
- package/lib/screens/TaskListScreen.js.map +1 -0
- package/lib/screens/index.d.ts +74 -0
- package/lib/screens/index.js +82 -0
- package/lib/screens/index.js.map +1 -0
- package/lib/types/index.d.ts +1 -0
- package/lib/types/index.js +19 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/reporting-type.d.ts +5 -0
- package/lib/types/reporting-type.js +23 -0
- package/lib/types/reporting-type.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2024 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React, { useCallback, useMemo } from 'react';
|
|
19
|
+
import { StyleSheet, View, Dimensions } from 'react-native';
|
|
20
|
+
import { MailMessageNotificationCard, formatTime as _formatTime, useBinaryImageUri, useTranslator, } from '@axelor/aos-mobile-core';
|
|
21
|
+
import { Badge, Image, Text, useThemeColor } from '@axelor/aos-mobile-ui';
|
|
22
|
+
const AVATAR_SIZE = Dimensions.get('window').width * 0.12;
|
|
23
|
+
const STATES = {
|
|
24
|
+
Danger: 'danger',
|
|
25
|
+
Success: 'success',
|
|
26
|
+
};
|
|
27
|
+
const ActivityCard = ({ userId, userName, time, title, tracks, modelName, utilityClass, }) => {
|
|
28
|
+
const Colors = useThemeColor();
|
|
29
|
+
const I18n = useTranslator();
|
|
30
|
+
const formatImage = useBinaryImageUri();
|
|
31
|
+
const bagdeColor = useMemo(() => utilityClass === STATES.Danger
|
|
32
|
+
? Colors.errorColor
|
|
33
|
+
: utilityClass === STATES.Success
|
|
34
|
+
? Colors.successColor
|
|
35
|
+
: Colors.primaryColor, [Colors, utilityClass]);
|
|
36
|
+
const formatTime = useCallback(data => _formatTime(data, I18n.t('Base_TimeFormat')), [I18n]);
|
|
37
|
+
return (<View style={styles.container}>
|
|
38
|
+
<View style={styles.avatarContainer}>
|
|
39
|
+
<Image generalStyle={styles.avatar} defaultIconSize={25} resizeMode="contain" source={formatImage(userId, null, 'com.axelor.auth.db.User')}/>
|
|
40
|
+
</View>
|
|
41
|
+
<View style={styles.cardContainer}>
|
|
42
|
+
<Text style={styles.updatedText}>
|
|
43
|
+
{I18n.t('Project_ActivityUpdateInformation', {
|
|
44
|
+
userName,
|
|
45
|
+
time: formatTime(time),
|
|
46
|
+
})}
|
|
47
|
+
</Text>
|
|
48
|
+
<MailMessageNotificationCard title={title} tracks={tracks} customTopComponent={<Badge title={modelName} color={bagdeColor}/>}/>
|
|
49
|
+
</View>
|
|
50
|
+
</View>);
|
|
51
|
+
};
|
|
52
|
+
const styles = StyleSheet.create({
|
|
53
|
+
container: {
|
|
54
|
+
paddingLeft: 10,
|
|
55
|
+
alignItems: 'center',
|
|
56
|
+
flexDirection: 'row',
|
|
57
|
+
},
|
|
58
|
+
cardContainer: {
|
|
59
|
+
width: Dimensions.get('window').width * 0.83,
|
|
60
|
+
overflow: 'hidden',
|
|
61
|
+
},
|
|
62
|
+
updatedText: {
|
|
63
|
+
alignSelf: 'flex-start',
|
|
64
|
+
paddingHorizontal: 15,
|
|
65
|
+
},
|
|
66
|
+
avatarContainer: {
|
|
67
|
+
alignItems: 'center',
|
|
68
|
+
justifyContent: 'flex-start',
|
|
69
|
+
},
|
|
70
|
+
avatar: {
|
|
71
|
+
alignSelf: 'center',
|
|
72
|
+
justifyContent: 'center',
|
|
73
|
+
alignItems: 'center',
|
|
74
|
+
borderRadius: AVATAR_SIZE,
|
|
75
|
+
width: AVATAR_SIZE,
|
|
76
|
+
height: AVATAR_SIZE,
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
export default ActivityCard;
|
|
80
|
+
//# sourceMappingURL=ActivityCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActivityCard.js","sourceRoot":"","sources":["../../../../src/components/molecules/ActivityCard/ActivityCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,WAAW,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AAClD,OAAO,EAAC,UAAU,EAAE,IAAI,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,2BAA2B,EAC3B,UAAU,IAAI,WAAW,EACzB,iBAAiB,EACjB,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAExE,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;AAE1D,MAAM,MAAM,GAAG;IACb,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,EACpB,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,MAAM,EACN,SAAS,EACT,YAAY,GASb,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;IAExC,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CACH,YAAY,KAAK,MAAM,CAAC,MAAM;QAC5B,CAAC,CAAC,MAAM,CAAC,UAAU;QACnB,CAAC,CAAC,YAAY,KAAK,MAAM,CAAC,OAAO;YAC/B,CAAC,CAAC,MAAM,CAAC,YAAY;YACrB,CAAC,CAAC,MAAM,CAAC,YAAY,EAC3B,CAAC,MAAM,EAAE,YAAY,CAAC,CACvB,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAC5B,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EACpD,CAAC,IAAI,CAAC,CACP,CAAC;IAEF,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAC5B;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAClC;QAAA,CAAC,KAAK,CACJ,YAAY,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAC5B,eAAe,CAAC,CAAC,EAAE,CAAC,CACpB,UAAU,CAAC,SAAS,CACpB,MAAM,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,yBAAyB,CAAC,CAAC,EAEjE;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAChC;QAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAC9B;UAAA,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAmC,EAAE;YAC3C,QAAQ;YACR,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;SACvB,CAAC,CACJ;QAAA,EAAE,IAAI,CACN;QAAA,CAAC,2BAA2B,CAC1B,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,EAAG,CAAC,EAEvE;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,QAAQ;QACpB,aAAa,EAAE,KAAK;KACrB;IACD,aAAa,EAAE;QACb,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,GAAG,IAAI;QAC5C,QAAQ,EAAE,QAAQ;KACnB;IACD,WAAW,EAAE;QACX,SAAS,EAAE,YAAY;QACvB,iBAAiB,EAAE,EAAE;KACtB;IACD,eAAe,EAAE;QACf,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,YAAY;KAC7B;IACD,MAAM,EAAE;QACN,SAAS,EAAE,QAAQ;QACnB,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,WAAW;QACzB,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,WAAW;KACpB;CACF,CAAC,CAAC;AAEH,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface CustomFieldPopupProps {
|
|
3
|
+
visible: boolean;
|
|
4
|
+
titleKey: string;
|
|
5
|
+
fieldType: string;
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
onSave: () => void;
|
|
8
|
+
projectTaskId: number;
|
|
9
|
+
}
|
|
10
|
+
declare const CustomFieldPopup: ({ visible, titleKey, fieldType, onClose, onSave, projectTaskId, }: CustomFieldPopupProps) => React.JSX.Element;
|
|
11
|
+
export default CustomFieldPopup;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2024 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React from 'react';
|
|
19
|
+
import { StyleSheet, View } from 'react-native';
|
|
20
|
+
import { CustomFieldForm, useTranslator } from '@axelor/aos-mobile-core';
|
|
21
|
+
import { Alert } from '@axelor/aos-mobile-ui';
|
|
22
|
+
const CustomFieldPopup = ({ visible, titleKey, fieldType, onClose, onSave, projectTaskId, }) => {
|
|
23
|
+
const I18n = useTranslator();
|
|
24
|
+
return (<Alert visible={visible} style={styles.container} title={I18n.t(titleKey)} translator={I18n.t} cancelButtonConfig={{
|
|
25
|
+
onPress: onClose,
|
|
26
|
+
showInHeader: true,
|
|
27
|
+
}}>
|
|
28
|
+
<View style={styles.content}>
|
|
29
|
+
<CustomFieldForm model="com.axelor.apps.project.db.ProjectTask" fieldType={fieldType} modelId={projectTaskId} readonly={false} hideFormBackground={true} hideButtonBackground={true} additionalActions={[
|
|
30
|
+
{
|
|
31
|
+
key: 'validateChanges',
|
|
32
|
+
type: 'update',
|
|
33
|
+
useDefaultAction: true,
|
|
34
|
+
readonlyAfterAction: true,
|
|
35
|
+
postActions: () => {
|
|
36
|
+
onSave();
|
|
37
|
+
onClose();
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
]}/>
|
|
41
|
+
</View>
|
|
42
|
+
</Alert>);
|
|
43
|
+
};
|
|
44
|
+
const styles = StyleSheet.create({
|
|
45
|
+
content: {
|
|
46
|
+
flex: 1,
|
|
47
|
+
},
|
|
48
|
+
container: {
|
|
49
|
+
height: '80%',
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
export default CustomFieldPopup;
|
|
53
|
+
//# sourceMappingURL=CustomFieldPopup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomFieldPopup.js","sourceRoot":"","sources":["../../../../src/components/molecules/CustomFieldPopup/CustomFieldPopup.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAC,eAAe,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAC,KAAK,EAAC,MAAM,uBAAuB,CAAC;AAW5C,MAAM,gBAAgB,GAAG,CAAC,EACxB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,OAAO,EACP,MAAM,EACN,aAAa,GACS,EAAE,EAAE;IAC1B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,OAAO,CACL,CAAC,KAAK,CACJ,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CACxB,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CACxB,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACnB,kBAAkB,CAAC,CAAC;YAClB,OAAO,EAAE,OAAO;YAChB,YAAY,EAAE,IAAI;SACnB,CAAC,CACF;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAC1B;QAAA,CAAC,eAAe,CACd,KAAK,CAAC,wCAAwC,CAC9C,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,OAAO,CAAC,CAAC,aAAa,CAAC,CACvB,QAAQ,CAAC,CAAC,KAAK,CAAC,CAChB,kBAAkB,CAAC,CAAC,IAAI,CAAC,CACzB,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAC3B,iBAAiB,CAAC,CAAC;YACjB;gBACE,GAAG,EAAE,iBAAiB;gBACtB,IAAI,EAAE,QAAQ;gBACd,gBAAgB,EAAE,IAAI;gBACtB,mBAAmB,EAAE,IAAI;gBACzB,WAAW,EAAE,GAAG,EAAE;oBAChB,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,CAAC;gBACZ,CAAC;aACF;SACF,CAAC,EAEN;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,KAAK,CAAC,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,OAAO,EAAE;QACP,IAAI,EAAE,CAAC;KACR;IACD,SAAS,EAAE;QACT,MAAM,EAAE,KAAK;KACd;CACF,CAAC,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface DropdownInvoicingProps {
|
|
3
|
+
style?: any;
|
|
4
|
+
currency?: any;
|
|
5
|
+
priceList?: any;
|
|
6
|
+
tasksInvoicing?: boolean;
|
|
7
|
+
expensesInvoicing?: boolean;
|
|
8
|
+
purchasesInvoicing?: boolean;
|
|
9
|
+
}
|
|
10
|
+
declare const DropdownInvoicing: ({ style, currency, priceList, tasksInvoicing, expensesInvoicing, purchasesInvoicing, }: DropdownInvoicingProps) => React.JSX.Element;
|
|
11
|
+
export default DropdownInvoicing;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2024 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React, { useMemo } from 'react';
|
|
19
|
+
import { View } from 'react-native';
|
|
20
|
+
import { LabelText, TagList, Text } from '@axelor/aos-mobile-ui';
|
|
21
|
+
import { useTranslator } from '@axelor/aos-mobile-core';
|
|
22
|
+
const DropdownInvoicing = ({ style, currency, priceList, tasksInvoicing, expensesInvoicing, purchasesInvoicing, }) => {
|
|
23
|
+
const I18n = useTranslator();
|
|
24
|
+
const invoiceBoolList = useMemo(() => [
|
|
25
|
+
{ title: I18n.t('Project_PackagedTask'), hidden: !tasksInvoicing },
|
|
26
|
+
{ title: I18n.t('Project_Expenses'), hidden: !expensesInvoicing },
|
|
27
|
+
{ title: I18n.t('Project_Purchases'), hidden: !purchasesInvoicing },
|
|
28
|
+
], [I18n, expensesInvoicing, purchasesInvoicing, tasksInvoicing]);
|
|
29
|
+
if (currency == null &&
|
|
30
|
+
priceList == null &&
|
|
31
|
+
invoiceBoolList?.filter(({ hidden }) => !hidden)?.length === 0) {
|
|
32
|
+
return <Text>{I18n.t('Project_NoRelatedInvoicing')}</Text>;
|
|
33
|
+
}
|
|
34
|
+
return (<View style={style}>
|
|
35
|
+
<TagList tags={invoiceBoolList}/>
|
|
36
|
+
{currency != null && (<LabelText title={`${I18n.t('Project_Currency')} :`} value={`${currency?.name} (${currency?.symbol})`} textSize={16}/>)}
|
|
37
|
+
{priceList != null && (<LabelText title={`${I18n.t('Project_PriceList')} :`} value={priceList?.title} textSize={16}/>)}
|
|
38
|
+
</View>);
|
|
39
|
+
};
|
|
40
|
+
export default DropdownInvoicing;
|
|
41
|
+
//# sourceMappingURL=DropdownInvoicing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropdownInvoicing.js","sourceRoot":"","sources":["../../../../src/components/molecules/DropdownInvoicing/DropdownInvoicing.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAC,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAWtD,MAAM,iBAAiB,GAAG,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,kBAAkB,GACK,EAAE,EAAE;IAC3B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC;QACJ,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC,cAAc,EAAC;QAChE,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC,iBAAiB,EAAC;QAC/D,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,kBAAkB,EAAC;KAClE,EACD,CAAC,IAAI,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAC9D,CAAC;IAEF,IACE,QAAQ,IAAI,IAAI;QAChB,SAAS,IAAI,IAAI;QACjB,eAAe,EAAE,MAAM,CAAC,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,EAC5D;QACA,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;KAC5D;IAED,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CACjB;MAAA,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,EAC/B;MAAA,CAAC,QAAQ,IAAI,IAAI,IAAI,CACnB,CAAC,SAAS,CACR,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CACzC,KAAK,CAAC,CAAC,GAAG,QAAQ,EAAE,IAAI,KAAK,QAAQ,EAAE,MAAM,GAAG,CAAC,CACjD,QAAQ,CAAC,CAAC,EAAE,CAAC,EACb,CACH,CACD;MAAA,CAAC,SAAS,IAAI,IAAI,IAAI,CACpB,CAAC,SAAS,CACR,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAC1C,KAAK,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CACxB,QAAQ,CAAC,CAAC,EAAE,CAAC,EACb,CACH,CACH;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2024 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React, { useMemo } from 'react';
|
|
19
|
+
import { View } from 'react-native';
|
|
20
|
+
import { LabelText, TagList } from '@axelor/aos-mobile-ui';
|
|
21
|
+
import { useTranslator } from '@axelor/aos-mobile-core';
|
|
22
|
+
const DropdownMembers = ({ style, team, memberSet }) => {
|
|
23
|
+
const I18n = useTranslator();
|
|
24
|
+
const members = useMemo(() => {
|
|
25
|
+
return memberSet?.map(member => ({ title: member?.fullName }));
|
|
26
|
+
}, [memberSet]);
|
|
27
|
+
return (<View style={style}>
|
|
28
|
+
<LabelText title={`${I18n.t('Project_Team')} :`} value={team ?? '-'} textSize={16}/>
|
|
29
|
+
<TagList title={I18n.t('Project_Members')} tags={members}/>
|
|
30
|
+
</View>);
|
|
31
|
+
};
|
|
32
|
+
export default DropdownMembers;
|
|
33
|
+
//# sourceMappingURL=DropdownMembers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropdownMembers.js","sourceRoot":"","sources":["../../../../src/components/molecules/DropdownMembers/DropdownMembers.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAC,SAAS,EAAE,OAAO,EAAC,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAQtD,MAAM,eAAe,GAAG,CAAC,EAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAuB,EAAE,EAAE;IACzE,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,OAAO,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC;IAC/D,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CACjB;MAAA,CAAC,SAAS,CACR,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CACrC,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CACnB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAEf;MAAA,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAC3D;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface DropdownTaskCharacteristicsProps {
|
|
3
|
+
style?: any;
|
|
4
|
+
projectTaskCategory?: any;
|
|
5
|
+
projectTaskSection?: any;
|
|
6
|
+
targetVersion?: any;
|
|
7
|
+
taskDate?: string;
|
|
8
|
+
taskEndDate?: string;
|
|
9
|
+
taskDeadline?: string;
|
|
10
|
+
tagSet?: any;
|
|
11
|
+
}
|
|
12
|
+
declare const DropdownTaskCharacteristics: ({ style, projectTaskCategory, projectTaskSection, targetVersion, taskDate, taskEndDate, taskDeadline, tagSet, }: DropdownTaskCharacteristicsProps) => React.JSX.Element;
|
|
13
|
+
export default DropdownTaskCharacteristics;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2024 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React, { useCallback, useMemo } from 'react';
|
|
19
|
+
import { View } from 'react-native';
|
|
20
|
+
import { LabelText, TagList, checkNullString, useThemeColor, } from '@axelor/aos-mobile-ui';
|
|
21
|
+
import { formatDate, useTranslator } from '@axelor/aos-mobile-core';
|
|
22
|
+
const DropdownTaskCharacteristics = ({ style, projectTaskCategory, projectTaskSection, targetVersion, taskDate, taskEndDate, taskDeadline, tagSet, }) => {
|
|
23
|
+
const I18n = useTranslator();
|
|
24
|
+
const Colors = useThemeColor();
|
|
25
|
+
const tagsList = useMemo(() => {
|
|
26
|
+
return tagSet?.map(tag => ({
|
|
27
|
+
title: tag?.name,
|
|
28
|
+
color: Colors[tag?.colorSelect],
|
|
29
|
+
}));
|
|
30
|
+
}, [tagSet, Colors]);
|
|
31
|
+
const _formatDate = useCallback(_date => {
|
|
32
|
+
return _date ? formatDate(_date, I18n.t('Base_DateFormat')) : null;
|
|
33
|
+
}, [I18n]);
|
|
34
|
+
const renderLabelText = useCallback((titleKey, value) => {
|
|
35
|
+
if (!checkNullString(value)) {
|
|
36
|
+
return (<LabelText title={`${I18n.t(titleKey)} :`} value={value} textSize={16}/>);
|
|
37
|
+
}
|
|
38
|
+
return null;
|
|
39
|
+
}, [I18n]);
|
|
40
|
+
return (<View style={style}>
|
|
41
|
+
{renderLabelText('Project_Category', projectTaskCategory?.name)}
|
|
42
|
+
{renderLabelText('Project_Section', projectTaskSection?.name)}
|
|
43
|
+
{renderLabelText('Project_TargetVersion', targetVersion?.title)}
|
|
44
|
+
{renderLabelText('Project_StartDate', _formatDate(taskDate))}
|
|
45
|
+
{renderLabelText('Project_DueDate', _formatDate(taskEndDate))}
|
|
46
|
+
{renderLabelText('Project_Deadline', _formatDate(taskDeadline))}
|
|
47
|
+
<TagList title={I18n.t('Project_Tags')} tags={tagsList}/>
|
|
48
|
+
</View>);
|
|
49
|
+
};
|
|
50
|
+
export default DropdownTaskCharacteristics;
|
|
51
|
+
//# sourceMappingURL=DropdownTaskCharacteristics.js.map
|
package/lib/components/molecules/DropdownTaskCharacteristics/DropdownTaskCharacteristics.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropdownTaskCharacteristics.js","sourceRoot":"","sources":["../../../../src/components/molecules/DropdownTaskCharacteristics/DropdownTaskCharacteristics.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,WAAW,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AAClD,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EACL,SAAS,EACT,OAAO,EACP,eAAe,EACf,aAAa,GACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,UAAU,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAalE,MAAM,2BAA2B,GAAG,CAAC,EACnC,KAAK,EACL,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,MAAM,GAC2B,EAAE,EAAE;IACrC,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAE/B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,OAAO,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,KAAK,EAAE,GAAG,EAAE,IAAI;YAChB,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC;SAChC,CAAC,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAErB,MAAM,WAAW,GAAG,WAAW,CAC7B,KAAK,CAAC,EAAE;QACN,OAAO,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,QAAgB,EAAE,KAAsB,EAAE,EAAE;QAC3C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,CACL,CAAC,SAAS,CACR,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC/B,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,QAAQ,CAAC,CAAC,EAAE,CAAC,EACb,CACH,CAAC;SACH;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAC;IAEF,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CACjB;MAAA,CAAC,eAAe,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAC/D;MAAA,CAAC,eAAe,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAC7D;MAAA,CAAC,eAAe,CAAC,uBAAuB,EAAE,aAAa,EAAE,KAAK,CAAC,CAC/D;MAAA,CAAC,eAAe,CAAC,mBAAmB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAC5D;MAAA,CAAC,eAAe,CAAC,iBAAiB,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAC7D;MAAA,CAAC,eAAe,CAAC,kBAAkB,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAC/D;MAAA,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EACzD;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface DropdownTaskDescriptionProps {
|
|
3
|
+
style?: any;
|
|
4
|
+
description?: string;
|
|
5
|
+
internalDescription?: string;
|
|
6
|
+
}
|
|
7
|
+
declare const DropdownTaskDescription: ({ style, description, internalDescription, }: DropdownTaskDescriptionProps) => React.JSX.Element;
|
|
8
|
+
export default DropdownTaskDescription;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2024 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React, { useCallback } from 'react';
|
|
19
|
+
import { View } from 'react-native';
|
|
20
|
+
import { HtmlInput, Text, checkNullString } from '@axelor/aos-mobile-ui';
|
|
21
|
+
import { useTranslator } from '@axelor/aos-mobile-core';
|
|
22
|
+
const DropdownTaskDescription = ({ style, description, internalDescription, }) => {
|
|
23
|
+
const I18n = useTranslator();
|
|
24
|
+
const renderDescription = useCallback((titleKey, value) => {
|
|
25
|
+
if (!checkNullString(value)) {
|
|
26
|
+
return (<>
|
|
27
|
+
<Text writingType="important">{`${I18n.t(titleKey)}:`}</Text>
|
|
28
|
+
<HtmlInput defaultInput={value} readonly={true}/>
|
|
29
|
+
</>);
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
}, [I18n]);
|
|
33
|
+
return (<View style={style}>
|
|
34
|
+
{renderDescription('Base_Description', description)}
|
|
35
|
+
{renderDescription('Project_InternalDescription', internalDescription)}
|
|
36
|
+
</View>);
|
|
37
|
+
};
|
|
38
|
+
export default DropdownTaskDescription;
|
|
39
|
+
//# sourceMappingURL=DropdownTaskDescription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropdownTaskDescription.js","sourceRoot":"","sources":["../../../../src/components/molecules/DropdownTaskDescription/DropdownTaskDescription.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,WAAW,EAAC,MAAM,OAAO,CAAC;AACzC,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAC,SAAS,EAAE,IAAI,EAAE,eAAe,EAAC,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAQtD,MAAM,uBAAuB,GAAG,CAAC,EAC/B,KAAK,EACL,WAAW,EACX,mBAAmB,GACU,EAAE,EAAE;IACjC,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,QAAgB,EAAE,KAAa,EAAE,EAAE;QAClC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,CACL,EACE;YAAA,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAC5D;YAAA,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EACjD;UAAA,GAAG,CACJ,CAAC;SACH;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAC;IAEF,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CACjB;MAAA,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,WAAW,CAAC,CACnD;MAAA,CAAC,iBAAiB,CAAC,6BAA6B,EAAE,mBAAmB,CAAC,CACxE;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface PartnerProps {
|
|
3
|
+
id: number;
|
|
4
|
+
picture: any;
|
|
5
|
+
simpleFullName: string;
|
|
6
|
+
name: string;
|
|
7
|
+
partnerSeq: string;
|
|
8
|
+
jobTitleFunction?: any;
|
|
9
|
+
mainAddress?: any;
|
|
10
|
+
fixedPhone?: string;
|
|
11
|
+
mobilePhone?: string;
|
|
12
|
+
}
|
|
13
|
+
interface PartnerActionCardProps {
|
|
14
|
+
style?: any;
|
|
15
|
+
partner: PartnerProps;
|
|
16
|
+
isContact?: boolean;
|
|
17
|
+
}
|
|
18
|
+
declare const PartnerActionCard: ({ style, partner, isContact, }: PartnerActionCardProps) => React.JSX.Element;
|
|
19
|
+
export default PartnerActionCard;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2024 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React, { useMemo } from 'react';
|
|
19
|
+
import { StyleSheet } from 'react-native';
|
|
20
|
+
import { ActionCard } from '@axelor/aos-mobile-ui';
|
|
21
|
+
import { isEmpty, linkingProvider, useTranslator } from '@axelor/aos-mobile-core';
|
|
22
|
+
import { PartnerCard } from '../../atoms';
|
|
23
|
+
const PartnerActionCard = ({ style, partner, isContact = false, }) => {
|
|
24
|
+
const I18n = useTranslator();
|
|
25
|
+
const actionList = useMemo(() => [
|
|
26
|
+
{
|
|
27
|
+
iconName: 'telephone-fill',
|
|
28
|
+
helper: I18n.t('Project_Call'),
|
|
29
|
+
hidden: !isContact ||
|
|
30
|
+
(partner?.mobilePhone == null && partner?.fixedPhone == null),
|
|
31
|
+
onPress: () => linkingProvider.openCallApp(partner.mobilePhone ?? partner.fixedPhone),
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
iconName: 'geo-alt-fill',
|
|
35
|
+
helper: I18n.t('Project_OpenMap'),
|
|
36
|
+
hidden: partner?.mainAddress == null,
|
|
37
|
+
onPress: () => linkingProvider.openMapApp(partner.mainAddress.fullName),
|
|
38
|
+
},
|
|
39
|
+
], [I18n, isContact, partner]);
|
|
40
|
+
if (isEmpty(partner)) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
return (<ActionCard style={[styles.container, style]} actionList={actionList} translator={I18n.t}>
|
|
44
|
+
<PartnerCard picture={partner.picture} name={isContact ? partner.simpleFullName : partner.name} code={partner.partnerSeq} jobName={partner.jobTitleFunction?.name} id={partner.id} isContact={isContact}/>
|
|
45
|
+
</ActionCard>);
|
|
46
|
+
};
|
|
47
|
+
const styles = StyleSheet.create({
|
|
48
|
+
container: {
|
|
49
|
+
width: '90%',
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
export default PartnerActionCard;
|
|
53
|
+
//# sourceMappingURL=PartnerActionCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PartnerActionCard.js","sourceRoot":"","sources":["../../../../src/components/molecules/PartnerActionCard/PartnerActionCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAoBxC,MAAM,iBAAiB,GAAG,CAAC,EACzB,KAAK,EACL,OAAO,EACP,SAAS,GAAG,KAAK,GACM,EAAE,EAAE;IAC3B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CAAC;QACJ;YACE,QAAQ,EAAE,gBAAgB;YAC1B,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;YAC9B,MAAM,EACJ,CAAC,SAAS;gBACV,CAAC,OAAO,EAAE,WAAW,IAAI,IAAI,IAAI,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC;YAC/D,OAAO,EAAE,GAAG,EAAE,CACZ,eAAe,CAAC,WAAW,CACzB,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,CAC1C;SACJ;QACD;YACE,QAAQ,EAAE,cAAc;YACxB,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACjC,MAAM,EAAE,OAAO,EAAE,WAAW,IAAI,IAAI;YACpC,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;SACxE;KACF,EACD,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAC3B,CAAC;IAEF,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QACpB,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,CAAC,UAAU,CACT,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CACjC,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACnB;MAAA,CAAC,WAAW,CACV,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CACzB,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CACxD,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CACzB,OAAO,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CACxC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CACf,SAAS,CAAC,CAAC,SAAS,CAAC,EAEzB;IAAA,EAAE,UAAU,CAAC,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,KAAK,EAAE,KAAK;KACb;CACF,CAAC,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2024 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React from 'react';
|
|
19
|
+
import { StyleSheet, View } from 'react-native';
|
|
20
|
+
import { useSelector, useTranslator, useTypeHelpers, } from '@axelor/aos-mobile-core';
|
|
21
|
+
import { Badge, LabelText, Text, checkNullString, useThemeColor, } from '@axelor/aos-mobile-ui';
|
|
22
|
+
const ProjectHeader = ({}) => {
|
|
23
|
+
const Colors = useThemeColor();
|
|
24
|
+
const I18n = useTranslator();
|
|
25
|
+
const { getItemColorFromIndex } = useTypeHelpers();
|
|
26
|
+
const { base: baseConfig } = useSelector(state => state.appConfig);
|
|
27
|
+
const { user } = useSelector(state => state.user);
|
|
28
|
+
const { project, projectStatusList } = useSelector(state => state.project_project);
|
|
29
|
+
return (<View style={styles.container}>
|
|
30
|
+
<View style={styles.leftContainer}>
|
|
31
|
+
<Text writingType="title">{project?.name}</Text>
|
|
32
|
+
{baseConfig?.enableMultiCompany && user?.companySet?.length > 1 && (<LabelText iconName="building-fill" size={16} title={project?.company?.name} textStyle={styles.labelText}/>)}
|
|
33
|
+
<LabelText iconName="pin-angle-fill" size={16} title={project?.assignedTo?.fullName} textStyle={styles.labelText}/>
|
|
34
|
+
{!checkNullString(project?.parentProject?.fullName) && (<LabelText iconName="diagram-3-fill" size={16} title={project?.parentProject?.fullName} textStyle={styles.labelText}/>)}
|
|
35
|
+
</View>
|
|
36
|
+
<View style={styles.rightContainer}>
|
|
37
|
+
{project?.projectStatus != null && (<Badge title={project?.projectStatus?.name} color={getItemColorFromIndex(projectStatusList, project?.projectStatus)} style={styles.badge}/>)}
|
|
38
|
+
{project?.isBusinessProject && (<Badge title={I18n.t('Project_Business')} color={Colors.infoColor} style={styles.badge}/>)}
|
|
39
|
+
</View>
|
|
40
|
+
</View>);
|
|
41
|
+
};
|
|
42
|
+
const styles = StyleSheet.create({
|
|
43
|
+
container: {
|
|
44
|
+
marginHorizontal: 15,
|
|
45
|
+
marginBottom: 5,
|
|
46
|
+
flexDirection: 'row',
|
|
47
|
+
justifyContent: 'space-between',
|
|
48
|
+
},
|
|
49
|
+
leftContainer: {
|
|
50
|
+
flex: 1,
|
|
51
|
+
flexDirection: 'column',
|
|
52
|
+
marginBottom: 3,
|
|
53
|
+
},
|
|
54
|
+
rightContainer: {
|
|
55
|
+
flexDirection: 'column',
|
|
56
|
+
alignItems: 'flex-end',
|
|
57
|
+
},
|
|
58
|
+
labelText: {
|
|
59
|
+
fontSize: 16,
|
|
60
|
+
marginBottom: 3,
|
|
61
|
+
},
|
|
62
|
+
badge: {
|
|
63
|
+
marginTop: 3,
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
export default ProjectHeader;
|
|
67
|
+
//# sourceMappingURL=ProjectHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectHeader.js","sourceRoot":"","sources":["../../../../src/components/molecules/ProjectHeader/ProjectHeader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2024 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React, { useMemo } from 'react';
|
|
19
|
+
import { useSelector, useTranslator } from '@axelor/aos-mobile-core';
|
|
20
|
+
import { TagList } from '@axelor/aos-mobile-ui';
|
|
21
|
+
const ProjectSiteTags = ({}) => {
|
|
22
|
+
const I18n = useTranslator();
|
|
23
|
+
const { project } = useSelector((state) => state.project_project);
|
|
24
|
+
const { base: baseConfig } = useSelector(state => state.appConfig);
|
|
25
|
+
const siteSet = useMemo(() => {
|
|
26
|
+
return project.siteSet?.map(site => ({ title: site?.fullName }));
|
|
27
|
+
}, [project.siteSet]);
|
|
28
|
+
if (!baseConfig?.enableSiteManagementForProject) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
return <TagList title={I18n.t('Project_Sites')} tags={siteSet}/>;
|
|
32
|
+
};
|
|
33
|
+
export default ProjectSiteTags;
|
|
34
|
+
//# sourceMappingURL=ProjectSiteTags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectSiteTags.js","sourceRoot":"","sources":["../../../../src/components/molecules/ProjectSiteTags/ProjectSiteTags.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,WAAW,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAE9C,MAAM,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE;IAC7B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,MAAM,EAAC,OAAO,EAAC,GAAG,WAAW,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACrE,MAAM,EAAC,IAAI,EAAE,UAAU,EAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEjE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,OAAO,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC;IACjE,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAEtB,IAAI,CAAC,UAAU,EAAE,8BAA8B,EAAE;QAC/C,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAG,CAAC;AACpE,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare const SectionHeader: ({ titleKey, expanded, onPress, onEdit, showEdit, }: {
|
|
3
|
+
titleKey: string;
|
|
4
|
+
expanded: boolean;
|
|
5
|
+
onPress: () => void;
|
|
6
|
+
onEdit?: () => void;
|
|
7
|
+
showEdit?: boolean;
|
|
8
|
+
}) => React.JSX.Element;
|
|
9
|
+
export default SectionHeader;
|