@topconsultnpm/sdkui-react 6.19.0-dev1.57 → 6.19.0-dev1.59
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/lib/components/features/tasks/TMTaskForm.js +52 -5
- package/lib/components/features/tasks/TMTasksUtils.d.ts +1 -0
- package/lib/components/features/tasks/TMTasksView.js +5 -5
- package/lib/helper/SDKUI_Localizator.d.ts +2 -0
- package/lib/helper/SDKUI_Localizator.js +26 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useRef, useState } from 'react';
|
|
3
|
-
import { ObjectClasses, TaskDescriptor, Priorities, PdGs, SDK_Globals, UserListCacheService, SDK_Localizator } from '@topconsultnpm/sdk-ts';
|
|
3
|
+
import { ObjectClasses, TaskDescriptor, Priorities, PdGs, SDK_Globals, UserListCacheService, SDK_Localizator, Task_States } from '@topconsultnpm/sdk-ts';
|
|
4
4
|
import { areDifferentIDs, formatDate, getOriginLabel, getPriorityLocalizatorValue, getPriorityLocalizatorValues, getStatusLocalizatorValues, gotoPDGExtendedLabel, taskValidatorAsync } from './TMTasksUtils';
|
|
5
5
|
import ScrollView from 'devextreme-react/cjs/scroll-view';
|
|
6
6
|
import TMLayoutContainer from '../../base/TMLayout';
|
|
@@ -18,6 +18,45 @@ import TMTextArea from '../../editors/TMTextArea';
|
|
|
18
18
|
import TMTextBox from '../../editors/TMTextBox';
|
|
19
19
|
import TMSaveForm from '../../forms/TMSaveForm';
|
|
20
20
|
import TMDcmtForm from '../documents/TMDcmtForm';
|
|
21
|
+
import styled from 'styled-components';
|
|
22
|
+
import { TMColors } from '../../../utils/theme';
|
|
23
|
+
const ResponseCommentWrapper = styled.div `
|
|
24
|
+
position: relative;
|
|
25
|
+
width: 100%;
|
|
26
|
+
`;
|
|
27
|
+
const ResponseCommentLabel = styled.label `
|
|
28
|
+
position: absolute;
|
|
29
|
+
top: -8px;
|
|
30
|
+
left: 12px;
|
|
31
|
+
background-color: white;
|
|
32
|
+
padding: 0 4px;
|
|
33
|
+
font-size: 0.9rem;
|
|
34
|
+
color: rgb(80,80,80);
|
|
35
|
+
display: inline-flex;
|
|
36
|
+
align-items: center;
|
|
37
|
+
gap: 4px;
|
|
38
|
+
`;
|
|
39
|
+
const ResponseCommentTextArea = styled.textarea.attrs({
|
|
40
|
+
maxLength: 500,
|
|
41
|
+
}) `
|
|
42
|
+
width: 100%;
|
|
43
|
+
height: 100px;
|
|
44
|
+
border: 1px solid ${props => props.$isValid ? (props.$isModifiedWhen ? "#E29000" : '#b4b4b4') : TMColors.error};
|
|
45
|
+
border-radius: 10px;
|
|
46
|
+
padding: 10px;
|
|
47
|
+
resize: none;
|
|
48
|
+
cursor: ${props => props.disabled ? 'not-allowed' : 'text'};
|
|
49
|
+
&:focus {
|
|
50
|
+
outline: none;
|
|
51
|
+
border-bottom: 4px solid ${props => props.$isValid ? TMColors.primaryColor : TMColors.error};
|
|
52
|
+
}
|
|
53
|
+
`;
|
|
54
|
+
const ResponseCommentCharacterCounter = styled.div `
|
|
55
|
+
text-align: right;
|
|
56
|
+
font-size: 0.8rem;
|
|
57
|
+
color: #6c757d;
|
|
58
|
+
margin-top: 4px;
|
|
59
|
+
`;
|
|
21
60
|
const TMTaskForm = (props) => {
|
|
22
61
|
// Custom hook to manage workflow approval data
|
|
23
62
|
const { refreshWorkflowApprove } = useWorkflowApprove();
|
|
@@ -66,7 +105,8 @@ const TMTaskForm = (props) => {
|
|
|
66
105
|
priority: false,
|
|
67
106
|
startDate: false,
|
|
68
107
|
endDate: false,
|
|
69
|
-
remTime: false
|
|
108
|
+
remTime: false,
|
|
109
|
+
response: false
|
|
70
110
|
});
|
|
71
111
|
useEffect(() => {
|
|
72
112
|
const fetchUsers = async () => {
|
|
@@ -101,7 +141,8 @@ const TMTaskForm = (props) => {
|
|
|
101
141
|
priority: isTaskAssignedByDifferentUser,
|
|
102
142
|
startDate: isTaskAssignedByDifferentUser,
|
|
103
143
|
endDate: isTaskAssignedByDifferentUser,
|
|
104
|
-
remTime: false
|
|
144
|
+
remTime: false,
|
|
145
|
+
response: false
|
|
105
146
|
});
|
|
106
147
|
const newTaskDescriptor = new TaskDescriptor();
|
|
107
148
|
Object.assign(newTaskDescriptor, formDataOrig);
|
|
@@ -118,7 +159,8 @@ const TMTaskForm = (props) => {
|
|
|
118
159
|
priority: false,
|
|
119
160
|
startDate: false,
|
|
120
161
|
endDate: false,
|
|
121
|
-
remTime: false
|
|
162
|
+
remTime: false,
|
|
163
|
+
response: false
|
|
122
164
|
});
|
|
123
165
|
}
|
|
124
166
|
}, [formDataOrig, formMode]);
|
|
@@ -157,6 +199,9 @@ const TMTaskForm = (props) => {
|
|
|
157
199
|
return;
|
|
158
200
|
setFormData({ ...formData ?? {}, priority: e?.target?.value });
|
|
159
201
|
};
|
|
202
|
+
const onAnswerChange = (e) => {
|
|
203
|
+
setFormData({ ...formData ?? {}, response: e.target.value ?? '' });
|
|
204
|
+
};
|
|
160
205
|
// Function to handle the undo action
|
|
161
206
|
const onUndoCallback = () => {
|
|
162
207
|
setFormData(formDataOrig);
|
|
@@ -285,7 +330,9 @@ const TMTaskForm = (props) => {
|
|
|
285
330
|
setFormData({ ...formData ?? {}, toID: newValue[0] });
|
|
286
331
|
} }) })
|
|
287
332
|
: formMode === FormModes.Update && _jsxs(_Fragment, { children: [areDifferentIDs(formDataOrig?.fromID, SDK_Globals.tmSession?.SessionDescr?.userID) && _jsx("div", { style: { width: isMobile ? '100%' : '50%' }, children: _jsx(TMTextBox, { label: SDKUI_Localizator.AssignedBy, value: formData?.fromName ?? '', readOnly: true }) }), areDifferentIDs(formDataOrig?.toID, SDK_Globals.tmSession?.SessionDescr?.userID) && _jsx("div", { style: { width: isMobile ? '100%' : '50%' }, children: _jsx(TMTextBox, { label: SDKUI_Localizator.AssignedTo, value: formData?.toName ?? '', readOnly: true }) })] }) }), _jsx(TMConditionalWrapper, { condition: !isMobile, wrapper: children => _jsx("div", { style: { display: 'flex', flexDirection: 'row', width: '100%', gap: 10 }, children: children }), children: _jsxs(_Fragment, { children: [_jsx("div", { style: { width: isMobile ? '100%' : '50%' }, children: _jsx(TMDropDown, { label: SDKUI_Localizator.Status, value: formData?.state, dataSource: getStatusLocalizatorValues(), isModifiedWhen: formData?.state !== formDataOrig?.state, onValueChanged: onStatusValueChange, readOnly: fieldsReadOnly.status }) }), _jsx("div", { style: { width: isMobile ? '100%' : '50%' }, children: !fieldsReadOnly.priority ? _jsx(TMDropDown, { label: SDKUI_Localizator.Priority, value: formData?.priority, dataSource: getPriorityLocalizatorValues(), isModifiedWhen: formData?.priority !== formDataOrig?.priority, onValueChanged: onPriorityValueChange })
|
|
288
|
-
: _jsx(TMTextBox, { label: SDKUI_Localizator.Priority, value: getPriorityLocalizatorValue(formData?.priority ?? Priorities.Low), readOnly: true }) })] }) }), _jsx(TMConditionalWrapper, { condition: !isMobile, wrapper: children => _jsx("div", { style: { display: 'flex', flexDirection: 'row', width: '100%', gap: 10 }, children: children }), children: _jsxs(_Fragment, { children: [_jsx("div", { style: { width: isMobile ? '100%' : '50%', marginTop: 10 }, children: !fieldsReadOnly.startDate ? _jsx(TMDateBox, { id: "start-date", resetTimeToZeroOnKeyPress: false, label: SDKUI_Localizator.StartDate, dateDisplayType: DateDisplayTypes.DateTime, value: formData?.startTime, isModifiedWhen: formData?.startTime !== formDataOrig?.startTime, validationItems: validationItems?.filter(o => o.PropertyName === SDKUI_Localizator.ErrorStartEndDate), onContentReady: handleStartTimeContentReady, onValueChange: (value) => { setFormData({ ...formData ?? {}, startTime: value }); }, showClearButton: true }) : _jsx(TMTextBox, { label: SDKUI_Localizator.StartDate, value: formData?.startTime ? formatDate(formData?.startTime) : '', readOnly: true }) }), _jsx("div", { style: { width: isMobile ? '100%' : '50%', marginTop: 10 }, children: !fieldsReadOnly.startDate ? _jsx(TMDateBox, { id: "end-date", resetTimeToZeroOnKeyPress: false, label: SDKUI_Localizator.Expiration, dateDisplayType: DateDisplayTypes.DateTime, value: formData?.endTime, isModifiedWhen: formData?.endTime !== formDataOrig?.endTime, validationItems: validationItems?.filter(o => o.PropertyName === SDKUI_Localizator.ErrorStartEndDate || o.PropertyName === SDKUI_Localizator.ErrorEndRemDate), onContentReady: handleEndTimeContentReady, onValueChange: (value) => { setFormData({ ...formData ?? {}, endTime: value }); }, showClearButton: true, readOnly: fieldsReadOnly.endDate }) : _jsx(TMTextBox, { label: SDKUI_Localizator.Expiration, value: formData?.endTime ? formatDate(formData?.endTime) : '', readOnly: true }) })] }) }), _jsx(TMConditionalWrapper, { condition: !isMobile, wrapper: children => _jsx("div", { style: { display: 'flex', flexDirection: 'row', width: '100%', gap: 3 }, children: children }), children: _jsx("div", { style: { width: isMobile ? '100%' : '50%', marginTop: 10 }, children: _jsx(TMDateBox, { id: "alert-time", resetTimeToZeroOnKeyPress: false, label: SDKUI_Localizator.Reminder, dateDisplayType: DateDisplayTypes.DateTime, value: formData?.remTime ?? undefined, isModifiedWhen: formData?.remTime !== formDataOrig?.remTime, validationItems: validationItems?.filter(o => o.PropertyName === SDKUI_Localizator.ErrorEndRemDate), onValueChange: (value) => { setFormData({ ...formData ?? {}, remTime: value }); }, showClearButton: true, readOnly: fieldsReadOnly.remTime }) }) })
|
|
333
|
+
: _jsx(TMTextBox, { label: SDKUI_Localizator.Priority, value: getPriorityLocalizatorValue(formData?.priority ?? Priorities.Low), readOnly: true }) })] }) }), _jsx(TMConditionalWrapper, { condition: !isMobile, wrapper: children => _jsx("div", { style: { display: 'flex', flexDirection: 'row', width: '100%', gap: 10 }, children: children }), children: _jsxs(_Fragment, { children: [_jsx("div", { style: { width: isMobile ? '100%' : '50%', marginTop: 10 }, children: !fieldsReadOnly.startDate ? _jsx(TMDateBox, { id: "start-date", resetTimeToZeroOnKeyPress: false, label: SDKUI_Localizator.StartDate, dateDisplayType: DateDisplayTypes.DateTime, value: formData?.startTime, isModifiedWhen: formData?.startTime !== formDataOrig?.startTime, validationItems: validationItems?.filter(o => o.PropertyName === SDKUI_Localizator.ErrorStartEndDate), onContentReady: handleStartTimeContentReady, onValueChange: (value) => { setFormData({ ...formData ?? {}, startTime: value }); }, showClearButton: true }) : _jsx(TMTextBox, { label: SDKUI_Localizator.StartDate, value: formData?.startTime ? formatDate(formData?.startTime) : '', readOnly: true }) }), _jsx("div", { style: { width: isMobile ? '100%' : '50%', marginTop: 10 }, children: !fieldsReadOnly.startDate ? _jsx(TMDateBox, { id: "end-date", resetTimeToZeroOnKeyPress: false, label: SDKUI_Localizator.Expiration, dateDisplayType: DateDisplayTypes.DateTime, value: formData?.endTime, isModifiedWhen: formData?.endTime !== formDataOrig?.endTime, validationItems: validationItems?.filter(o => o.PropertyName === SDKUI_Localizator.ErrorStartEndDate || o.PropertyName === SDKUI_Localizator.ErrorEndRemDate), onContentReady: handleEndTimeContentReady, onValueChange: (value) => { setFormData({ ...formData ?? {}, endTime: value }); }, showClearButton: true, readOnly: fieldsReadOnly.endDate }) : _jsx(TMTextBox, { label: SDKUI_Localizator.Expiration, value: formData?.endTime ? formatDate(formData?.endTime) : '', readOnly: true }) })] }) }), _jsx(TMConditionalWrapper, { condition: !isMobile, wrapper: children => _jsx("div", { style: { display: 'flex', flexDirection: 'row', width: '100%', gap: 3 }, children: children }), children: _jsx("div", { style: { width: isMobile ? '100%' : '50%', marginTop: 10 }, children: _jsx(TMDateBox, { id: "alert-time", resetTimeToZeroOnKeyPress: false, label: SDKUI_Localizator.Reminder, dateDisplayType: DateDisplayTypes.DateTime, value: formData?.remTime ?? undefined, isModifiedWhen: formData?.remTime !== formDataOrig?.remTime, validationItems: validationItems?.filter(o => o.PropertyName === SDKUI_Localizator.ErrorEndRemDate), onValueChange: (value) => { setFormData({ ...formData ?? {}, remTime: value }); }, showClearButton: true, readOnly: fieldsReadOnly.remTime }) }) }), (formData?.state && [Task_States.Completed, Task_States.Waiting, Task_States.Deferred].includes(formData?.state) ||
|
|
334
|
+
(formData?.response ?? "") !== "") && _jsx(TMConditionalWrapper, { condition: !isMobile, wrapper: children => _jsx("div", { style: { display: 'flex', flexDirection: 'row', width: '100%', gap: 3 }, children: children }), children: _jsx("div", { style: { width: isMobile ? '100%' : '50%', marginTop: 10 }, children: _jsxs(ResponseCommentWrapper, { children: [_jsx(ResponseCommentTextArea, { id: "responseId", name: "response", "$isValid": true, value: formData?.response ?? '', onChange: onAnswerChange, "$isModifiedWhen": formData?.response !== formDataOrig?.response, disabled: (formData?.response ?? "") !== "" &&
|
|
335
|
+
(formData?.state && ![Task_States.Completed, Task_States.Waiting, Task_States.Deferred].includes(formData?.state)) }), _jsxs(ResponseCommentLabel, { htmlFor: "responseId", children: [SDKUI_Localizator.Answer, _jsxs(TMTooltip, { content: SDKUI_Localizator.AnswerTooltip, children: [" ", _jsx("i", { className: 'dx-icon-info' }), " "] })] }), _jsx(ResponseCommentCharacterCounter, { children: `${500 - (formData?.response ?? '').length} ${SDKUI_Localizator.CharactersRemaining}` })] }) }) })] }) }) }), (showDcmtForm && formData?.iD1 && formData?.iD2) &&
|
|
289
336
|
_jsx(TMDcmtForm, { titleModal: formData.iD1Name ?? '-', isModal: true, TID: formData.iD1, DID: formData.iD2, allowButtonsRefs: true, taskMoreInfo: formData, onWFOperationCompleted: refreshWorkflowApprove, onTaskCompleted: onTaskCompleted, onClose: () => { setShowDcmtForm(false); }, onOpenS4TViewerRequest: onOpenS4TViewerRequest, s4TViewerDialogComponent: s4TViewerDialogComponent, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers })] }) }) }));
|
|
290
337
|
};
|
|
291
338
|
export default TMTaskForm;
|
|
@@ -32,6 +32,7 @@ export interface IFieldsEditability {
|
|
|
32
32
|
startDate: boolean;
|
|
33
33
|
endDate: boolean;
|
|
34
34
|
remTime: boolean;
|
|
35
|
+
response: boolean;
|
|
35
36
|
}
|
|
36
37
|
export declare const sortTasks: (tasks: Array<TaskDescriptor>) => Array<TaskDescriptor>;
|
|
37
38
|
export declare const taskIsToday: (startTime: Date, endTime: Date) => boolean;
|
|
@@ -289,13 +289,13 @@ const TMTasksView = (props) => {
|
|
|
289
289
|
}
|
|
290
290
|
setShowTaskForm(false);
|
|
291
291
|
};
|
|
292
|
-
const handleNavigateToDossiersWrapper = useCallback((dossierId) => {
|
|
292
|
+
const handleNavigateToDossiersWrapper = useCallback(async (dossierId) => {
|
|
293
293
|
setShowTaskForm(false);
|
|
294
|
-
handleNavigateToDossiers(dossierId);
|
|
294
|
+
await handleNavigateToDossiers(dossierId);
|
|
295
295
|
}, []);
|
|
296
|
-
const handleNavigateToWGsWrapper = useCallback((workGroupId) => {
|
|
296
|
+
const handleNavigateToWGsWrapper = useCallback(async (workGroupId) => {
|
|
297
297
|
setShowTaskForm(false);
|
|
298
|
-
handleNavigateToWGs(workGroupId);
|
|
298
|
+
await handleNavigateToWGs(workGroupId);
|
|
299
299
|
}, []);
|
|
300
300
|
const onContextMenuPreparing = (e) => {
|
|
301
301
|
if (e === undefined)
|
|
@@ -524,7 +524,7 @@ const TMTasksView = (props) => {
|
|
|
524
524
|
_jsxs(_Fragment, { children: [activeComponent === TaskView.CALENDAR_TASK && getFromOrToCalendarElement(visualizedTasks, false, true), activeComponent === TaskView.AGENDA_TASK && getFromOrToAgendaElement(visualizedTasks, false, true), activeComponent === TaskView.LIST_TASK && getFromOrToDatagridElement(visualizedTasks, false, true)] }) : '' }), _jsx(Item, { title: SDKUI_Localizator.AllFemale, icon: "fields", tabRender: (params) => {
|
|
525
525
|
return _jsxs(StyledTabItem, { "$isSelected": activeTabIndex === AssignedTab.All, children: [_jsxs(TMTooltip, { content: SDKUI_Localizator.AllFemale, children: [_jsx("i", { className: `dx-icon-${params.icon}` }), "\u00A0", params.title, " ", (allTasksFilteredCount > 0) ? `(${allTasksFilteredCount})` : ''] }), newTaskCount > 0 && (_jsx(TMTooltip, { content: SDKUI_Localizator.NewAssignedActivitiesNumber + ": " + newTaskCount, children: _jsx(TMCountBadge, { children: newTaskCount }) }))] });
|
|
526
526
|
}, render: () => activeTabIndex === AssignedTab.All ?
|
|
527
|
-
_jsxs(_Fragment, { children: [activeComponent === TaskView.CALENDAR_TASK && getFromOrToCalendarElement(visualizedTasks, true, true), activeComponent === TaskView.AGENDA_TASK && getFromOrToAgendaElement(visualizedTasks, true, true), activeComponent === TaskView.LIST_TASK && getFromOrToDatagridElement(visualizedTasks, true, true)] }) : '' })] }) }), showTaskForm && _jsx(TMTaskForm, { id: currentTask?.id ?? -1, width: calcResponsiveSizes(deviceType, '700px', '700px', '95%'), height: calcResponsiveSizes(deviceType, '
|
|
527
|
+
_jsxs(_Fragment, { children: [activeComponent === TaskView.CALENDAR_TASK && getFromOrToCalendarElement(visualizedTasks, true, true), activeComponent === TaskView.AGENDA_TASK && getFromOrToAgendaElement(visualizedTasks, true, true), activeComponent === TaskView.LIST_TASK && getFromOrToDatagridElement(visualizedTasks, true, true)] }) : '' })] }) }), showTaskForm && _jsx(TMTaskForm, { id: currentTask?.id ?? -1, width: calcResponsiveSizes(deviceType, '700px', '700px', '95%'), height: calcResponsiveSizes(deviceType, '700px', '700px', '95%'), title: SDKUI_Localizator.Widget_Activities, isModal: true, formMode: formMode ?? FormModes.Create, visualizedTasks: visualizedTasks, currentTask: currentTask, setCurrentTask: setCurrentTask, selectedRowKeys: selectedRowKeys, handleFocusedRowKeyChange: handleFocusedRowChange, taskContext: taskContext, usersList: usersList, onStatusChanged: () => { }, onClose: closeTaskFormCallback, onCancel: closeTaskFormCallback, showBackButton: false, onSaved: onSavedCallback, startDate: calendarStartDate, endDate: calendarEndDate, onOpenS4TViewerRequest: onOpenS4TViewerRequest, s4TViewerDialogComponent: s4TViewerDialogComponent, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGsWrapper, handleNavigateToDossiers: handleNavigateToDossiersWrapper }), _jsx("button", { style: {
|
|
528
528
|
position: 'absolute',
|
|
529
529
|
bottom: hasFilters ? '90px' : '18px',
|
|
530
530
|
right: '20px',
|
|
@@ -33,6 +33,8 @@ export declare class SDKUI_Localizator {
|
|
|
33
33
|
static get AllPriorities(): "Alle Prioritäten" | "All priorities" | "Todas las prioridades" | "Toutes les priorités" | "Todas as prioridades" | "Tutte le priorità";
|
|
34
34
|
static get AllStates(): "Alle Staaten" | "All states" | "Todos los estados" | "Tous les états" | "Todos os estados" | "Tutti gli stati";
|
|
35
35
|
static get Alphabetic(): "Alphabetisch" | "Alphabetic" | "Alfabético" | "Alphabétique" | "Alfabética" | "Alfabetico";
|
|
36
|
+
static get Answer(): "Antwort" | "Answer" | "Respuesta" | "Réponse" | "Resposta" | "Risposta";
|
|
37
|
+
static get AnswerTooltip(): "Die Antwort kann nur bearbeitet werden, wenn der Aktivitätsstatus \"Abgeschlossen\", \"Ausstehend\" oder \"Verschoben\" ist." | "The answer can be edited only if the activity status is \"Completed\", \"Pending\", or \"Deferred\"." | "La respuesta solo se puede editar si el estado de la actividad es \"Completada\", \"Pendiente\" o \"Pospuesta\"." | "La réponse peut être modifiée uniquement si l'état de l’activité est \"Terminée\", \"En attente\" ou \"Reportée\"." | "A resposta só pode ser editada se o estado da atividade for \"Concluída\", \"Pendente\" ou \"Adiada\"." | "La risposta può essere modificata solo se lo stato dell’attività è \"Completata\", \"In attesa\" o \"Rinviata\".";
|
|
36
38
|
static get Application(): "Anwendung" | "Application" | "Aplicación" | "Aplicação" | "Applicazione";
|
|
37
39
|
static get Applied(): string;
|
|
38
40
|
static get Apply(): "Anwenden" | "Apply" | "Aplicar" | "Applique" | "Applica";
|
|
@@ -278,6 +278,32 @@ export class SDKUI_Localizator {
|
|
|
278
278
|
default: return "Alfabetico";
|
|
279
279
|
}
|
|
280
280
|
}
|
|
281
|
+
static get Answer() {
|
|
282
|
+
switch (this._cultureID) {
|
|
283
|
+
case CultureIDs.De_DE: return "Antwort";
|
|
284
|
+
case CultureIDs.En_US: return "Answer";
|
|
285
|
+
case CultureIDs.Es_ES: return "Respuesta";
|
|
286
|
+
case CultureIDs.Fr_FR: return "Réponse";
|
|
287
|
+
case CultureIDs.Pt_PT: return "Resposta";
|
|
288
|
+
default: return "Risposta";
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
static get AnswerTooltip() {
|
|
292
|
+
switch (this._cultureID) {
|
|
293
|
+
case CultureIDs.De_DE:
|
|
294
|
+
return "Die Antwort kann nur bearbeitet werden, wenn der Aktivitätsstatus \"Abgeschlossen\", \"Ausstehend\" oder \"Verschoben\" ist.";
|
|
295
|
+
case CultureIDs.En_US:
|
|
296
|
+
return "The answer can be edited only if the activity status is \"Completed\", \"Pending\", or \"Deferred\".";
|
|
297
|
+
case CultureIDs.Es_ES:
|
|
298
|
+
return "La respuesta solo se puede editar si el estado de la actividad es \"Completada\", \"Pendiente\" o \"Pospuesta\".";
|
|
299
|
+
case CultureIDs.Fr_FR:
|
|
300
|
+
return "La réponse peut être modifiée uniquement si l'état de l’activité est \"Terminée\", \"En attente\" ou \"Reportée\".";
|
|
301
|
+
case CultureIDs.Pt_PT:
|
|
302
|
+
return "A resposta só pode ser editada se o estado da atividade for \"Concluída\", \"Pendente\" ou \"Adiada\".";
|
|
303
|
+
default:
|
|
304
|
+
return "La risposta può essere modificata solo se lo stato dell’attività è \"Completata\", \"In attesa\" o \"Rinviata\".";
|
|
305
|
+
}
|
|
306
|
+
}
|
|
281
307
|
static get Application() {
|
|
282
308
|
switch (this._cultureID) {
|
|
283
309
|
case CultureIDs.De_DE: return "Anwendung";
|