xiaoding721
2024-05-27 7f68c5b2e96c6707be1589ff8b5fbdcdab53f412
Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev
已修改3个文件
已添加72个文件
1858 ■■■■■ 文件已修改
Calendars/BL/Type_LibCal_Calendar/Method_GetPotentialSubscribers.qbl 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Calendars/BL/Type_LibCal_Event/StaticMethod_CreateUpdateFromUI#865.qbl 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_Event/Attribute_EventType.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_Event/StaticMethod_CreateUpdateFromUI.qbl 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LibCal_Event/_ROOT_Type_LibCal_Event.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupDataViews.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageData.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuCapacities.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelCalendarEventTypes.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelCalendarLineList.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelCalendarSearchList.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelCalendarUnavailableEvent.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelCalendarUnavailableEventSearchList.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelHeader.def 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelList.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/_ROOT_Component_FormCalendarUnavailableEvent.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_GlobalState/Method_CreateMultipleEvent.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_GlobalState/_ROOT_Component_LibCal_GlobalState.def 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlApplyToNewResources.def 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlCategory.def 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlContent.def 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlControls.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlEvent.def 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlEventData.def 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlEventType.def 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlRecurrence.def 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlStartAndEnd.def 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlTextualInfo.def 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlTimezone.def 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Method_CreateUpdateEventAndParticipation.def 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/_ROOT_Component_LibCal_dlgEvent.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_ListList.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelContent.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelHeader#144.def 186 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelList.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_Panelleft#582.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_abpListSubscribers#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_cmSubscribers#1.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_listActionBarPage902.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_listContextMenu967.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_lstSubscribers#537.def 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_pnlSubscribers.def 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_CreateEvent#778.def 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_CreateEvent.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_CreateUpdateEventAndParticipation.def 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_GetCalendarTimeZone.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_GetNrOfMonth.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_InitializeCapacity.def 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_InitializeSubscribers.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_OnOK.def 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_SetDaysOnlyMode.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_SetEventData.def 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_SetParticipationData.def 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_ShowDaysOnlyModeWarning.def 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_ValuesDatesOK.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_ValuesEventOK.def 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_ValuesOK.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_OnCreated.def 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_ButtonCreate_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_ddslType_OnSelectionChanged#613.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_dsStartDate_OnChanged.def 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_durEndTimeOfDay_OnChanged.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_durEndTimeOfDay_OnInputIdle.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_durStartTimeOfDay_OnChanged.def 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_durStartTimeOfDay_OnInputIdle.def 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_lstSubscribers_537_OnCheckedChanged.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_lstSubscribers_537_OnSelectionChanged.def 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_lstSubscribers_537_mnDelete_OnClick.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/_ROOT_Component_LibCal_dlgMultipleEvent.def 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_frmCommonCalendar/Component_cmEventCategories.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_frmCommonCalendar/Component_lstEventCategories.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_frmCommonCalendar/Component_pnlEventCategories.def 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_frmCommonCalendar/Response_MacroPlanner_lstEventCategories_MenuCreateMultipleEvents_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_LibCal_frmCommonCalendar/_ROOT_Component_LibCal_frmCommonCalendar.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/_ROOT_Project_CalendarsWebUI.qp 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Calendars/BL/Type_LibCal_Calendar/Method_GetPotentialSubscribers.qbl
@@ -18,5 +18,4 @@
    
    return &subscribers;
  *]
  InterfaceProperties { Accessibility: 'Module' }
}
Calendars/BL/Type_LibCal_Event/StaticMethod_CreateUpdateFromUI#865.qbl
@@ -86,5 +86,4 @@
    
    return event;
  *]
  InterfaceProperties { Accessibility: 'Module' }
}
_Main/BL/Type_LibCal_Event/Attribute_EventType.qbl
对比新文件
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute EventType
{
  #keys: '3[415136.0.658372336][415136.0.658372335][415136.0.658372337]'
  Description: '浜嬩欢绫诲瀷'
  ValueType: String
}
_Main/BL/Type_LibCal_Event/StaticMethod_CreateUpdateFromUI.qbl
对比新文件
@@ -0,0 +1,54 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateUpdateFromUI (
  LibCal_Calendar owner_i,
  LibCal_LeadingParticipation participation_i,
  String subject_i,
  String description_i,
  String type_i,
  String eventtype_i,
  Real capacity_i,
  LibCal_EventCategory category_i,
  Boolean isDefault_i,
  Date startDate_i,
  Duration startTimeOfDay_i,
  Date endDate_i,
  Duration endTimeOfDay_i,
  Boolean isAllDay_i,
  Boolean isRecurring_i,
  Number recurrenceInterval_i,
  String patternType_i,
  Boolean patternDaily_IsEveryWeekday_i,
  String patternWeekly_Weekdays_i,
  Boolean patternMonthly_IsDay_i,
  Number patternMonthly_Day_i,
  String patternMonthly_WeekOfMonth_i,
  String patternMonthly_DayOfWeek_i,
  Boolean patternYearly_IsDate_i,
  Number patternYearly_Month_i,
  Number patternYearly_Day_i,
  String patternYearly_WeekOfMonth_i,
  String patternYearly_DayOfWeek_i,
  String periodType_i,
  Date periodStartDate_i,
  Number nrOfOccurrences_i,
  Date periodEndDate_i,
  LibCal_Calendars subscribers_i
) as LibCal_Event
{
  Description: 'Create and/or update an Event and its LeadingParticipation, based on information from the UI.'
  TextBody:
  [*
    event := LibCal_Event::CreateUpdateFromUI( owner_i, participation_i, subject_i, description_i, type_i, capacity_i, category_i, isDefault_i,
                                      startDate_i, startTimeOfDay_i, endDate_i, endTimeOfDay_i, isAllDay_i,
                                      isRecurring_i, recurrenceInterval_i,
                                      patternType_i, patternDaily_IsEveryWeekday_i, patternWeekly_Weekdays_i,
                                      patternMonthly_IsDay_i, patternMonthly_Day_i, patternMonthly_WeekOfMonth_i, patternMonthly_DayOfWeek_i,
                                      patternYearly_IsDate_i, patternYearly_Month_i, patternYearly_Day_i, patternYearly_WeekOfMonth_i, patternYearly_DayOfWeek_i,
                                      periodType_i, periodStartDate_i, nrOfOccurrences_i, periodEndDate_i, subscribers_i );
    event.EventType( eventtype_i );
    return event;
  *]
}
_Main/BL/Type_LibCal_Event/_ROOT_Type_LibCal_Event.qbl
对比新文件
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type LibCal_Event #extension
{
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupDataViews.def
对比新文件
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component ActionBarGroupDataViews #extension
{
  Children:
  [
    Component ButtonCapacities #extension
    {
      Children:
      [
        #child: ContextMenuCapacities
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageData.def
@@ -4,5 +4,6 @@
  Children:
  [
    #child: ActionBarGroupImportExportData
    #child: ActionBarGroupDataViews
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuCapacities.def
对比新文件
@@ -0,0 +1,19 @@
Quintiq file version 2.0
Component ContextMenuCapacities #extension
{
  Children:
  [
    Component MenuCapacitiesUnavailableEvent
    {
      #keys: '[415136.0.645511697]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'DATE-TIME_PREFERENCES'
        Taborder: 6
        Title: 'Calendar unavailable event'
        Tooltip: 'Calendar unavailable event'
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelCalendarEventTypes.def
对比新文件
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component PanelCalendarEventTypes
{
  #keys: '[415136.0.658772868]'
  BaseType: 'WebPanel'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelCalendarLineList.def
对比新文件
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component PanelCalendarLineList
{
  #keys: '[415136.0.658772834]'
  BaseType: 'WebPanel'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelCalendarSearchList.def
对比新文件
@@ -0,0 +1,16 @@
Quintiq file version 2.0
Component PanelCalendarSearchList
{
  #keys: '[415136.0.658772708]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelCalendarLineList
    #child: PanelCalendarEventTypes
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelCalendarUnavailableEvent.def
对比新文件
@@ -0,0 +1,16 @@
Quintiq file version 2.0
Component PanelCalendarUnavailableEvent
{
  #keys: '[415136.0.658772631]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelCalendarSearchList
    #child: PanelCalendarUnavailableEventSearchList
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelCalendarUnavailableEventSearchList.def
对比新文件
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component PanelCalendarUnavailableEventSearchList
{
  #keys: '[415136.0.658772725]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelHeader
    #child: PanelList
  ]
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelHeader.def
对比新文件
@@ -0,0 +1,11 @@
Quintiq file version 2.0
Component PanelHeader
{
  #keys: '[415136.0.658772785]'
  BaseType: 'WebPanel'
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelList.def
对比新文件
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component PanelList
{
  #keys: '[415136.0.658772810]'
  BaseType: 'WebPanel'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/_ROOT_Component_FormCalendarUnavailableEvent.def
对比新文件
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormCalendarUnavailableEvent
{
  #keys: '[415136.0.657952289]'
  BaseType: 'WebForm'
  Children:
  [
    #child: PanelCalendarUnavailableEvent
  ]
  Properties:
  [
    Title: 'Calendar unavailable event'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_GlobalState/Method_CreateMultipleEvent.def
对比新文件
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
Method CreateMultipleEvent (
  LibCal_Calendar owner_i,
  LibCal_EventCategory category_i
) id:Method_LibCal_GlobalState_CreateMultipleEvent
{
  #keys: '[415136.0.645500983]'
  Body:
  [*
    // Create a new Event.
    // The time of the planning-dataset will be suggested as start.
    dlg := construct( LibCal_dlgMultipleEvent );
    dlg.CreateEvent( owner_i, category_i );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_GlobalState/_ROOT_Component_LibCal_GlobalState.def
对比新文件
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#root
#parent: CalendarsWebUI
OrphanComponent LibCal_GlobalState #extension
{
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlApplyToNewResources.def
对比新文件
@@ -0,0 +1,8 @@
Quintiq file version 2.0
Component pnlApplyToNewResources #extension
{
  Properties:
  [
    Taborder: 6
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlCategory.def
对比新文件
@@ -0,0 +1,8 @@
Quintiq file version 2.0
Component pnlCategory #extension
{
  Properties:
  [
    Taborder: 5
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlContent.def
对比新文件
@@ -0,0 +1,8 @@
Quintiq file version 2.0
Component pnlContent #extension
{
  Children:
  [
    #child: pnlEvent
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlControls.def
对比新文件
@@ -0,0 +1,21 @@
Quintiq file version 2.0
Component pnlControls #extension
{
  Children:
  [
    Component lblMarginBottom_1 #extension
    {
      Properties:
      [
        Taborder: 11
      ]
    }
    #child: pnlEventType
    #child: pnlTextualInfo
    #child: pnlTimezone
    #child: pnlCategory
    #child: pnlApplyToNewResources
    #child: pnlStartAndEnd
    #child: pnlRecurrence
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlEvent.def
对比新文件
@@ -0,0 +1,8 @@
Quintiq file version 2.0
Component pnlEvent #extension
{
  Children:
  [
    #child: pnlEventData
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlEventData.def
对比新文件
@@ -0,0 +1,8 @@
Quintiq file version 2.0
Component pnlEventData #extension
{
  Children:
  [
    #child: pnlControls
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlEventType.def
对比新文件
@@ -0,0 +1,35 @@
Quintiq file version 2.0
Component pnlEventType
{
  #keys: '[415136.0.657951967]'
  BaseType: 'WebPanel'
  Children:
  [
    Component lblEventType
    {
      #keys: '[415136.0.657922045]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: 'Event type'
        NumberOfColumns: 0
        Taborder: 0
      ]
    }
    Component edtEventType
    {
      #keys: '[415136.0.657922077]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'dhEvent.Data.EventType'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlRecurrence.def
对比新文件
@@ -0,0 +1,8 @@
Quintiq file version 2.0
Component pnlRecurrence #extension
{
  Properties:
  [
    Taborder: 9
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlStartAndEnd.def
对比新文件
@@ -0,0 +1,8 @@
Quintiq file version 2.0
Component pnlStartAndEnd #extension
{
  Properties:
  [
    Taborder: 8
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlTextualInfo.def
对比新文件
@@ -0,0 +1,8 @@
Quintiq file version 2.0
Component pnlTextualInfo #extension
{
  Properties:
  [
    Taborder: 10
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlTimezone.def
对比新文件
@@ -0,0 +1,8 @@
Quintiq file version 2.0
Component pnlTimezone #extension
{
  Properties:
  [
    Taborder: 7
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Method_CreateUpdateEventAndParticipation.def
对比新文件
@@ -0,0 +1,80 @@
Quintiq file version 2.0
#parent: #root
Method CreateUpdateEventAndParticipation () as LibCal_Event id:Method_LibCal_dlgEvent_CreateUpdateEventAndParticipation #extension
{
  Body:
  [*
    sEvent    := dhEvent.Data();
    sLeadPart := dhLeadingParticipation.Data();
    // Get the values from the controls.
    // Event and LeadingParticipation
    subject        := edtName.Text();
    description    := edtDescription.Text();
    category       := ddlCategory.Data();
    eventTypeList  := edtEventType.Text();
    isDefault      := ckbApplyToNewResources.Checked();
    startDate      := dsStartDate.Date();
    startTimeOfDay := durStartTimeOfDay.Duration();
    endDate        := dsEndDate.Date();
    endTimeOfDay   := durEndTimeOfDay.Duration();
    isAllDay       := ckbIsAllDay.Checked();
    eventType := ddslType.Text();
    capacity  := this.StringToReal( edtCapacity.Text() );  // Always fill the capacity.
    // RecurrencePattern
    isRecurring        := not btnOnce.IsPressed();
    recurrenceInterval := this.GetRecurrenceInterval();
    patternType        := this.GetPatternType();
    // Daily
    daily_IsEveryWeekday := ckbEveryWeekday.Checked();
    // Weekly
    weekly_Weekdays := ifexpr( btnMonday   .IsPressed(), "Mon;", "" )
                     + ifexpr( btnTuesday  .IsPressed(), "Tue;", "" )
                     + ifexpr( btnWednesday.IsPressed(), "Wed;", "" )
                     + ifexpr( btnThursday .IsPressed(), "Thu;", "" )
                     + ifexpr( btnFriday   .IsPressed(), "Fri;", "" )
                     + ifexpr( btnSaturday .IsPressed(), "Sat;", "" )
                     + ifexpr( btnSunday   .IsPressed(), "Sun;", "" );
    // Monthly
    monthly_IsDay       := ckbMonthlyDay.Checked();
    monthly_Day         := [Number]edtMonthlyDay.Text();
    monthly_WeekOfMonth := ssMonthlyPatternWeekOfMonth.Text();
    monthly_DayOfWeek   := ssMonthlyPatternDayOfWeek.Text();
    // Yearly
    yearly_IsDate      := ckbYearlyDay.Checked();
    month              := ifexpr( yearly_IsDate, ssYearlyMonth.Text(), ssYearlyPatternMonth.Text() );
    yearly_Month       := this.GetNrOfMonth( month );
    yearly_Day         := [Number]ssYearlyDayOfMonth.Text();
    yearly_WeekOfMonth := ssYearlyPatternWeekOfMonth.Text();
    yearly_DayOfWeek   := ssYearlyPatternDayOfWeek.Text();
    // RecurrencePeriod
    periodType      := this.GetPeriodType();
    periodStartDate := dsStartOfPeriod.Date();
    periodEndDate   := dsEndOfPeriod.Date();
    nrOfOccurrences := [Number]edtNrOfOccurrences.Text();
    // All values are passed to the Server, only the relevant values are used there.
    event := LibCal_Event::CreateUpdateFromUI( sEvent.Calendar(), sLeadPart.WrappedInstance(),
                                               subject, description, eventType, eventTypeList, capacity, category, isDefault,
                                               startDate, startTimeOfDay, endDate, endTimeOfDay, isAllDay,
                                               // RecurrencePattern
                                               isRecurring, recurrenceInterval, patternType,
                                               daily_IsEveryWeekday,
                                               weekly_Weekdays,
                                               monthly_IsDay, monthly_Day,  monthly_WeekOfMonth, monthly_DayOfWeek,
                                               yearly_IsDate, yearly_Month, yearly_Day, yearly_WeekOfMonth, yearly_DayOfWeek,
                                               // RecurrencePeriod
                                               periodType, periodStartDate, nrOfOccurrences, periodEndDate,
                                               // Subscribers
                                               dhSubscribers.Data() );
    return event;
  *]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/_ROOT_Component_LibCal_dlgEvent.def
对比新文件
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: CalendarsWebUI
OrphanComponent LibCal_dlgEvent #extension
{
  Children:
  [
    #child: pnlContent
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_ListList.def
对比新文件
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListList
{
  #keys: '[415136.0.657740253]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractor367
    {
      #keys: '[415136.0.657740254]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'LibCal_EventCategory'
        Source: 'dhCategory'
        Taborder: 0
        Transformation: 'Event.Participation'
      ]
    }
    #child: listActionBarPage902
    Component DataSetLevel151
    {
      #keys: '[415136.0.657740259]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu967
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Calendar.CalendarID","title":"CalendarID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Calendar.CalendarID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Event.Subject","title":"Subject","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Event.Subject"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Event.StartTimeOfDay","title":"StartTimeOfDay","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Event.StartTimeOfDay"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Event.EndTimeOfDay","title":"EndTimeOfDay","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Event.EndTimeOfDay"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Event.Description","title":"Description","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Event.Description"}}]'
        ContextMenu: 'listContextMenu967'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelContent.def
对比新文件
@@ -0,0 +1,16 @@
Quintiq file version 2.0
Component PanelContent
{
  #keys: '[415136.0.647401424]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: Panelleft_582
    #child: pnlSubscribers
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 5
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelHeader#144.def
对比新文件
@@ -0,0 +1,186 @@
Quintiq file version 2.0
Component PanelHeader id:PanelHeader_144
{
  #keys: '[415136.0.647401494]'
  BaseType: 'WebPanel'
  Children:
  [
    Component edtName
    {
      #keys: '[415136.0.647401496]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'dhEvent.Data.Subject'
        Label: 'Name'
        PlaceHolder: '<Enter a name>'
        Taborder: 0
      ]
    }
    Component edtEventType
    {
      #keys: '[415136.0.647401498]'
      BaseType: 'WebEditField'
      Properties:
      [
        Label: 'Event type'
        Taborder: 1
      ]
    }
    Component durStartTimeOfDay
    {
      #keys: '[415136.0.647401500]'
      BaseType: 'WebDurationSelector'
      Properties:
      [
        CanBeNegative: false
        DurationFormat: 'h:m'
        Label: 'Start time'
        MaxDuration: P0DT23H59M0S
        MinDuration: P0DT0H0M0S
        Taborder: 7
      ]
    }
    Component dhStartTimeOfDay
    {
      #keys: '[415136.0.647401501]'
      BaseType: 'WebDataHolder'
      Databinding: 'Duration'
      Properties:
      [
        Taborder: 8
      ]
    }
    Component durEndTimeOfDay
    {
      #keys: '[415136.0.647401506]'
      BaseType: 'WebDurationSelector'
      Properties:
      [
        CanBeNegative: false
        DurationFormat: 'h:m'
        Label: 'End time'
        MaxDuration: P0DT23H59M0S
        MinDuration: P0DT0H0M0S
        Taborder: 9
      ]
    }
    Component dhEndTimeOfDay
    {
      #keys: '[415136.0.647401507]'
      BaseType: 'WebDataHolder'
      Databinding: 'Duration'
      Properties:
      [
        Taborder: 10
      ]
    }
    Component edtDescription
    {
      #keys: '[415136.0.647401509]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'dhEvent.Data.Description'
        Label: 'Description'
        MaxRows: 1
        Multiline: true
        NumberOfColumns: 29
        ShowLabel: false
        Taborder: 12
      ]
    }
    Component dsStartDate
    {
      #keys: '[415136.0.647401510]'
      BaseType: 'WebDateSelector'
      Properties:
      [
        DateFormat: 'DMMY'
        Label: 'Date'
        Taborder: 5
      ]
    }
    Component dhStartDate
    {
      #keys: '[415136.0.647401511]'
      BaseType: 'WebDataHolder'
      Databinding: 'Date'
      Properties:
      [
        Taborder: 6
      ]
    }
    Component lblDescription id:lblDescription_456
    {
      #keys: '[415136.0.647492310]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: 'Description'
        NumberOfColumns: 0
        Taborder: 11
      ]
    }
    Component ButtonCreate
    {
      #keys: '[415136.0.647262469]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: '鏂板缓'
        Taborder: 13
      ]
    }
    Component ddslType id:ddslType_360
    {
      #keys: '[415136.0.646711730]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        InitialValue: 'Unavailable'
        NumberOfColumns: 15
        ShowLabel: false
        Sorting: 'none'
        Strings: 'Available;Unavailable'
        Taborder: 2
        Visible: false
      ]
    }
    Component ckbApplyToNewResources id:ckbApplyToNewResources_667
    {
      #keys: '[415136.0.646712077]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        DataBinding: 'dhEvent.Data.IsDefault'
        Label: 'Apply to new resources'
        NumberOfColumns: 0
        Taborder: 3
        Tooltip: 'If checked, calendars of new resources will automatically subscribe to the event.'
        Visible: false
      ]
    }
    Component valTimezone id:valTimezone_653
    {
      #keys: '[415136.0.646712169]'
      BaseType: 'WebLabel'
      Properties:
      [
        FixedSize: false
        NumberOfColumns: 0
        ShowLabel: false
        SizeRatio: 0
        Taborder: 4
        Text: '<Timezone>'
        Visible: false
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelList.def
对比新文件
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component PanelList
{
  #keys: '[415136.0.654300441]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListList
  ]
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_Panelleft#582.def
对比新文件
@@ -0,0 +1,16 @@
Quintiq file version 2.0
Component Panelleft id:Panelleft_582
{
  #keys: '[415136.0.647401493]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelHeader_144
    #child: PanelList
  ]
  Properties:
  [
    SizeRatio: 2
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_abpListSubscribers#1.def
对比新文件
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component abpListSubscribers id:abpListSubscribers_1
{
  #keys: '[415136.0.647401568]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_cmSubscribers#1.def
对比新文件
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component cmSubscribers id:cmSubscribers_1
{
  #keys: '[415136.0.647401567]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component mnDelete
    {
      #keys: '[415136.0.655381025]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'DELETE'
        Taborder: 3
        Title: 'Delete'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_listActionBarPage902.def
对比新文件
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPage902
{
  #keys: '[415136.0.657740256]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_listContextMenu967.def
对比新文件
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenu967
{
  #keys: '[415136.0.657740261]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_lstSubscribers#537.def
对比新文件
@@ -0,0 +1,61 @@
Quintiq file version 2.0
Component lstSubscribers id:lstSubscribers_537
{
  #keys: '[415136.0.647401564]'
  BaseType: 'WebList'
  Children:
  [
    Component deSubscribers
    {
      #keys: '[415136.0.647401565]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'structured[LibCal_Calendar]'
        Source: 'dhPotentialSubscribers'
        Taborder: 0
        Transformation: 'Elements'
      ]
    }
    Component dslSubscribers
    {
      #keys: '[415136.0.647401566]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: cmSubscribers_1
      ]
      Properties:
      [
        Columns: 'CalendarID'
        ContextMenu: 'cmSubscribers'
        SortCriteria: 'CalendarID'
        Taborder: 1
      ]
    }
    #child: abpListSubscribers_1
  ]
  Properties:
  [
    SelectionCheckboxes: true
    Taborder: 4
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_lstSubscribers_537_WebMenu_OnClick
    {
      #keys: '[415136.0.647401558]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[3739.0.1873455]'
          Binding: 'this.Selection()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_pnlSubscribers.def
对比新文件
@@ -0,0 +1,60 @@
Quintiq file version 2.0
Component pnlSubscribers
{
  #keys: '[415136.0.647401562]'
  BaseType: 'WebPanel'
  Children:
  [
    Component dhPotentialSubscribers
    {
      #keys: '[415136.0.647401563]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LibCal_Calendar]*'
      Properties:
      [
        Taborder: 0
      ]
    }
    #child: lstSubscribers_537
    Component lblInfo
    {
      #keys: '[415136.0.647401569]'
      BaseType: 'WebLabel'
      Properties:
      [
        ShowLabel: false
        Taborder: 3
        Text: 'Calendars that are subscribing to this event.'
      ]
    }
    Component lblIsInitialized
    {
      #keys: '[415136.0.647401570]'
      BaseType: 'WebLabel'
      Properties:
      [
        Taborder: 2
        Text: 'false'
        Visible: false
      ]
    }
    Component dhSubscribers
    {
      #keys: '[415136.0.647401571]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LibCal_Calendar]*'
      Properties:
      [
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Border: true
    FixedSize: true
    MinimumColumns: 49
    Taborder: 1
    Title: 'Subscribers'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_CreateEvent#778.def
对比新文件
@@ -0,0 +1,75 @@
Quintiq file version 2.0
#parent: #root
Method CreateEvent (
  LibCal_Calendar owner_i,
  LibCal_EventCategory category_i,
  DateTime start_i,
  DateTime end_i
) id:Method_LibCal_dlgMultipleEvent_CreateEvent_778
{
  #keys: '[415136.0.645530672]'
  Body:
  [*
    timezone := owner_i.GetTimeZone();
    // Create a new Event...
    sEvent := owner_i.Event( relshadow,
                             EventID        := [String]Key::NextPersistentKey(),
                             StartTimeOfDay := start_i.TimeOfDay( timezone ),
                             EndTimeOfDay   := end_i  .TimeOfDay( timezone ),
                             EventCategory  := category_i,
                             IsDefault      := owner_i.istype( LibCal_CommonCalendar ) );
    // Special case: by default the EventType is 'Unavailable', but when an event is created for
    // category 'Available' or 'Partial' then set the Type to 'Available' resp 'Partial'.
    if( guard( category_i.Name() = LibCal_Event::TYPE_AVAILABLE(), false ) )
    {
      sEvent.Type( LibCal_Event::TYPE_AVAILABLE() );
    }
    else if( guard( category_i.Name() = LibCal_Event::TYPE_PARTIAL(), false ) )
    {
      sEvent.Type( LibCal_Event::TYPE_PARTIAL() );
    }
    // Set the Event and the related controls...
    // The values are explicitly assigned here 'at the beginning' to the controls,
    // so that the values can be used by the rest of the logic. Databinding is executed too late for that.
    // Further initialization is done in the OnCreated of the Dialog.
    dhEvent.Data( &sEvent );
    this.SetEventData();
    // ...and an accompanying LeadingParticipation.
    // Only set the dates, the times will be updated from the Event later if necessary.
    sLeadPart := owner_i.Participation( relshadow, LibCal_LeadingParticipation,
                                        ParticipationID := [String]Key::NextPersistentKey(),
                                        StartDate       := start_i.Date( timezone ),
                                        EndDate         := end_i  .Date( timezone ) );
    //info( '----------------------', isnull( sLeadPart ) );
    // Set the Participation and the related controls
    // (only the DataHolders, the Date-controls are set later on, after the recurrence has been initialized)
    dhStartDate.Data( sLeadPart.StartDate() );
    //dhEndDate.Data(   sLeadPart.EndDate()   );
    dhLeadingParticipation.Data( &sLeadPart );
    dhCategory.Data(category_i);
    //info( '-----------------------', isnull( dhLeadingParticipation.Data() ) );
    // Initialize the capacity here, when done in the OnCreate() edtCapacity is not disabled correctly.
    this.InitializeCapacity();
    // Initialize the category here, when done in the OnCreate() there is no selection in the DropDownList.
    // Select the general category for new events.
    //this.InitializeCategories();
    //ddlCategory.Data( owner_i.CalendarRegistry().GetGeneralEventCategory() );
    // Must be done here, when done in the OnCreate() the checkmarks are not always set when the dialog is opened for editing an event.
    // Pre-select all resources as subscriber when creating a common event.
    this.InitializeSubscribers();
    if( owner_i.istype( LibCal_CommonCalendar ) )
    {
      lstSubscribers.CheckAll();
    }
    // Open the dialog.
    this.Show( "modal" );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_CreateEvent.def
对比新文件
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
Method CreateEvent (
  LibCal_Calendar owner_i,
  LibCal_EventCategory category_i
) id:Method_LibCal_dlgMultipleEvent_CreateEvent
{
  #keys: '[415136.0.645530478]'
  Body:
  [*
    // Use the time of the planning-dataset as suggested start.
    start := LibCal_GlobalState.DetermineStartOfEvent( LibCal_GlobalState.GetPlanningTime(),
                                                       owner_i.GetTimeZone() );
    end := LibCal_GlobalState.DetermineEndOfEvent( start );
    this.CreateEvent( owner_i, category_i, start, end );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_CreateUpdateEventAndParticipation.def
对比新文件
@@ -0,0 +1,76 @@
Quintiq file version 2.0
#parent: #root
Method CreateUpdateEventAndParticipation () as LibCal_Event id:Method_LibCal_dlgMultipleEvent_CreateUpdateEventAndParticipation
{
  #keys: '[415136.0.649421703]'
  Body:
  [*
    sEvent    := dhEvent.Data();
    sLeadPart := dhLeadingParticipation.Data();
    // Get the values from the controls.
    // Event and LeadingParticipation
    subject        := edtName.Text();
    description    := edtDescription.Text();
    eventTypeList  := edtEventType.Text();
    category       := sEvent.EventCategory();
    isDefault      := ckbApplyToNewResources.Checked();
    startDate      := dsStartDate.Date();
    startTimeOfDay := durStartTimeOfDay.Duration();
    endDate        := dsStartDate.Date();
    endTimeOfDay   := durEndTimeOfDay.Duration();
    isAllDay       := false;
    eventType := ddslType.Text();
    capacity  := Real::MinReal();  // Always fill the capacity.
    // RecurrencePattern
    isRecurring        := false;
    recurrenceInterval := 1;
    patternType        := LibCal_RecurrencePeriod::TYPE_WITHOUTEND();
    // Daily
    daily_IsEveryWeekday := false;
    // Weekly
    weekly_Weekdays := "";
    // Monthly
    monthly_IsDay       := false;
    monthly_Day         := 0;
    monthly_WeekOfMonth := '';
    monthly_DayOfWeek   := '';
    // Yearly
    yearly_IsDate      := false;
    //month              := '';
    yearly_Month       := 0;
    yearly_Day         := 0;
    yearly_WeekOfMonth := '';
    yearly_DayOfWeek   := '';
    // RecurrencePeriod
    periodType      := LibCal_RecurrencePeriod::TYPE_WITHOUTEND();
    periodStartDate := Date::MinDate();
    periodEndDate   := Date::MinDate();
    nrOfOccurrences := 0;
    // All values are passed to the Server, only the relevant values are used there.
    event := LibCal_Event::CreateUpdateFromUI( sEvent.Calendar(), sLeadPart.WrappedInstance(),
                                               subject, description, eventType, eventTypeList, capacity, category, isDefault,
                                               startDate, startTimeOfDay, endDate, endTimeOfDay, isAllDay,
                                               // RecurrencePattern
                                               isRecurring, recurrenceInterval, patternType,
                                               daily_IsEveryWeekday,
                                               weekly_Weekdays,
                                               monthly_IsDay, monthly_Day,  monthly_WeekOfMonth, monthly_DayOfWeek,
                                               yearly_IsDate, yearly_Month, yearly_Day, yearly_WeekOfMonth, yearly_DayOfWeek,
                                               // RecurrencePeriod
                                               periodType, periodStartDate, nrOfOccurrences, periodEndDate,
                                               // Subscribers
                                               dhSubscribers.Data() );
    return event;
  *]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_GetCalendarTimeZone.def
对比新文件
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: #root
Method GetCalendarTimeZone () as TimeZone id:Method_LibCal_dlgMultipleEvent_GetCalendarTimeZone
{
  #keys: '[415136.0.646711553]'
  Body:
  [*
    return dhEvent.Data().Calendar().GetTimeZone();
  *]
  Declarative: true
  ReturnsOwning: true
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_GetNrOfMonth.def
对比新文件
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
Method GetNrOfMonth (
  String month_i
) as Number id:Method_LibCal_dlgMultipleEvent_GetNrOfMonth
{
  #keys: '[415136.0.647371986]'
  Body:
  [*
    rowSeparator := ";";  // ssYearlyMonth.RowSeparator() in not possible (yet?) in WC.
    months    := Translations::Pattern_Months().Tokenize( rowSeparator );
    nrOfMonth := months.Find( month_i ) + 1;
    return nrOfMonth;
  *]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_InitializeCapacity.def
对比新文件
@@ -0,0 +1,49 @@
Quintiq file version 2.0
#parent: #root
Method InitializeCapacity () id:Method_LibCal_dlgMultipleEvent_InitializeCapacity
{
  #keys: '[415136.0.647371166]'
  Body:
  [*
    // Extensible method USE_PARTIAL_CAPACITY indicates if partial capacity is allowed.
    // If so, then add it as possible option.
    useParticalCapacity := LibCal_Event::USE_PARTIAL_CAPACITY();
    if( useParticalCapacity )
    {
      ddslType.Strings( ddslType.Strings() + ";" + LibCal_Event::TYPE_PARTIAL() );
    }
    event     := dhEvent.Data();
    eventType := event.Type();
    // See if the eventType can be used as is or if it should be converted first.
    if( useParticalCapacity )
    {
      ddslType.Text( eventType );
    }
    else
    {
      // Partial capacity should not be used. Convert it to Unavailable or Available.
      // This is an edge case that can only happen via import, or when using partial capacity was first enabled and later disabled.
      if( eventType = LibCal_Event::TYPE_PARTIAL() )
      {
        if( event.PartialCapacity() = 0.0 )
        {
          eventType := LibCal_Event::TYPE_UNAVAILABLE();
        }
        else
        {
          eventType := LibCal_Event::TYPE_AVAILABLE();
        }
        // Show a message to inform the user that the EventType and Capacity was changed.
        capacity := LibCal_GlobalState.RealToString( event.PartialCapacity() );
        WebMessageBox::Warning( "The event type was 'Partial' with Capacity = " + capacity + ", but partial capacity is not enabled."
                              + "The event type is set to '" + eventType + "'.", false, false );
      }
      ddslType.Text( eventType );
    }
  *]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_InitializeSubscribers.def
对比新文件
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: #root
Method InitializeSubscribers () id:Method_LibCal_dlgMultipleEvent_InitializeSubscribers
{
  #keys: '[415136.0.647231508]'
  Body:
  [*
    participation        := dhLeadingParticipation.Data();
    calendar             := participation.Calendar();
    potentialSubscribers := calendar.GetPotentialSubscribers();
    // Remove the calendar of the initiator (cannot subscribe to self).
    initiator := dhEvent.Data().Calendar();
    if( potentialSubscribers.Find( initiator ) >= 0 )
    {
      potentialSubscribers.Remove( initiator );
    }
    dhPotentialSubscribers.Data( &potentialSubscribers );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_OnOK.def
对比新文件
@@ -0,0 +1,34 @@
Quintiq file version 2.0
#parent: #root
Method OnOK () id:Method_LibCal_dlgMultipleEvent_OnOK
{
  #keys: '[415136.0.647733138]'
  Body:
  [*
    // If applicable, inform the user that the recurrence cannot always be applied exactly as defined.
    //if( btnMonthly.IsPressed() and
    //    ckbMonthlyDay.Checked() )
    //{
    //  day := [Number]edtMonthlyDay.Text();
    //  if( day > 28 )
    //  {
    //    WebMessageBox::Warning( Translations::Pattern_Monthly_LessDays( day ), "OK", true );
    //  }
    //}
    // subscribers_i contains the calendars that are checked in the list with subscribers.
    //subscribers := subscribers_i.Copy();
    //dhSubscribers.Data( &subscribers );
    // If the dialog was opened from dlgSubscription, update the data in that dialog.
    //if( not isnull( dhdlgSubscription.Data() ) )
    //{
    //  this.CallbackSubscriptionDialog();
    //}
    // Effectuate the changes and close the form.
    event := Form.CreateUpdateEventAndParticipation();
    info( '-------------1----------------', isnull( event ) );
    //Form.Close();
  *]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_SetDaysOnlyMode.def
对比新文件
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: #root
Method SetDaysOnlyMode () id:Method_LibCal_dlgMultipleEvent_SetDaysOnlyMode
{
  #keys: '[415136.0.646700929]'
  Body:
  [*
    // Force the times to be 0:00, in case an event is edited that was created in 'regular' mode,
    // and set IsAllDay.
    this.ShowDaysOnlyModeWarning();
    dhStartTimeOfDay.Data( Duration::Zero() );
    dhEndTimeOfDay  .Data( Duration::Zero() );
    durStartTimeOfDay.Duration( Duration::Zero() );
    durEndTimeOfDay  .Duration( Duration::Zero() );
    //ckbIsAllDay.Checked(  true );
    // Disable start and end time, and hide checkbox 'All day'.
    // Disabling start and end makes the duration more clear; you can better see that end is NOT part of the duration.
    durStartTimeOfDay.Enabled( false, "Days only mode is enabled" );
    durEndTimeOfDay  .Enabled( false, "Days only mode is enabled" );
    //ckbIsAllDay      .Visible( false );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_SetEventData.def
对比新文件
@@ -0,0 +1,36 @@
Quintiq file version 2.0
#parent: #root
Method SetEventData () id:Method_LibCal_dlgMultipleEvent_SetEventData
{
  #keys: '[415136.0.645530896]'
  Body:
  [*
    // Set the values of the controls that are related to the Event.
    // Don't rely on databinding, because this is too late for the visualization logic;
    // the values have not been taken over from the bound attributes yet when the logic needs them.
    sEvent := dhEvent.Data();
    edtName.Text( sEvent.Subject() );
    //Type
    //ddslType.Text( sEvent.Type()    );
    //capacity := LibCal_GlobalState.RealToString( sEvent.PartialCapacity() );
    //edtCapacity.Text( capacity );
    // Days only mode requires special treatment.
    if( LibCal_Event::USE_ONLY_DAYS() )
    {
      this.SetDaysOnlyMode();
    }
    else
    {
      dhStartTimeOfDay.Data( sEvent.StartTimeOfDay() );
      dhEndTimeOfDay  .Data( sEvent.EndTimeOfDay()   );
      durStartTimeOfDay.Duration( sEvent.StartTimeOfDay() );
      durEndTimeOfDay  .Duration( sEvent.EndTimeOfDay()   );
    //  ckbIsAllDay.Checked( sEvent.IsAllDay() );
    }
  *]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_SetParticipationData.def
对比新文件
@@ -0,0 +1,30 @@
Quintiq file version 2.0
#parent: #root
Method SetParticipationData () id:Method_LibCal_dlgMultipleEvent_SetParticipationData
{
  #keys: '[415136.0.647763952]'
  Body:
  [*
    sParticipation := dhLeadingParticipation.Data();
    // If the StartDate is earlier than the start of the CalendarWindow, then set the StartDate
    // to the date of the first recurrence within the CalendarWindow.
    // This prevents showing dates from potentially long in the past.
    startDate := sParticipation.StartDate();
    if( sParticipation.IsRecurring() and
        startDate < sParticipation.Calendar().StartDate() )
    {
      startDate := Date::MinDate();
    }
    //delta := startDate - sParticipation.StartDate();
    // Only the value of the following two controls have to be set explicitly (in this order!),
    // the value of the other controls are then set via the responses of these controls.
    //dhEndDate  .Data( sParticipation.EndDate() + delta );
    dsStartDate.Date( startDate );
    // Directly initialize the Duration
    //this.InitializeDuration();
  *]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_ShowDaysOnlyModeWarning.def
对比新文件
@@ -0,0 +1,29 @@
Quintiq file version 2.0
#parent: #root
Method ShowDaysOnlyModeWarning () id:Method_LibCal_dlgMultipleEvent_ShowDaysOnlyModeWarning
{
  #keys: '[415136.0.646701003]'
  Body:
  [*
    // Show a warning when the StartTimeOfDay and/or EndTimeOfDay of the Event will be set to 0:00
    // because of running in days only mode.
    event := dhEvent.Data();
    msg   := "";
    if( event.StartTimeOfDay() <> Duration::Zero() )
    {
      msg := "StartTimeOfDay is changed from " + [String]event.StartTimeOfDay() + " to 0:00";
    }
    if( event.EndTimeOfDay() <> Duration::Zero() )
    {
      msg := msg + ifexpr( msg <> "", "\n", "" )
                 + "EndTimeOfDay is changed from " + [String]event.EndTimeOfDay() + " to 0:00";
    }
    if( msg <> "" )
    {
      WebMessageBox::Warning( "DaysOnly-mode is enabled for the calendars.\n" + msg, false, false );
    }
  *]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_ValuesDatesOK.def
对比新文件
@@ -0,0 +1,43 @@
Quintiq file version 2.0
#parent: #root
Method ValuesDatesOK () as Boolean id:Method_LibCal_dlgMultipleEvent_ValuesDatesOK
{
  #keys: '[415136.0.654351264]'
  Body:
  [*
    feedback := FeedbackObject::LocalFeedback();
    timezone := this.GetCalendarTimeZone();
    if( dsStartDate.Date().IsInfinite() )
    {
      feedback.AddHard( Translations::Event_InvalidStartDate() );
    }
    //if( dsEndDate.Date().IsInfinite() )
    //{
    //  feedback.AddHard( Translations::Event_InvalidEndDate() );
    //}
    if( feedback.IsAllowed() )
    {
      start := dsStartDate.Date().DateTime( timezone ).AddAsPeriod( timezone, durStartTimeOfDay.Duration() );
      end   := dsStartDate.Date().DateTime( timezone ).AddAsPeriod( timezone, durEndTimeOfDay  .Duration() );
      if( end <= start )
      {
        feedback.AddHard( Translations::Event_EndMustBeGreaterThanStart() );
      }
      // End must be greater than StartOfCalendar.
      startOfCalendar := dhEvent.Data().Calendar().Start();
      if( end <= startOfCalendar )
      {
        convOps := ConversionOptions::ISO();
        feedback.AddHard( Translations::Event_EndMustBeGreaterThanStartOfCalendar( end            .Format( Translations::DateTimeFormat(), convOps ),
                                                                                   startOfCalendar.Format( Translations::DateTimeFormat(), convOps ) ) );
      }
    }
    return feedback.IsAllowed();
  *]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_ValuesEventOK.def
对比新文件
@@ -0,0 +1,37 @@
Quintiq file version 2.0
#parent: #root
Method ValuesEventOK () as Boolean id:Method_LibCal_dlgMultipleEvent_ValuesEventOK
{
  #keys: '[415136.0.654351189]'
  Body:
  [*
    feedback := FeedbackObject::LocalFeedback();
    if( edtName.Text().TrimBoth() = "" )
    {
      feedback.AddHard( Translations::Event_NoSubject() );
    }
    //if( ddslType.Text() = LibCal_Event::TYPE_PARTIAL() )
    //{
    //  capacity := this.StringToReal( edtCapacity.Text() );
    //
    //  if( capacity <> Real::MinReal() )
    //  {
    //    // Check the value of the Real.
    //    if( capacity < 0.0 or  // cannot happen, because '-' is not accepted
    //        capacity > 1.0 )
    //    {                                                           // Format according to the applicable locale.
    //      feedback.AddHard( Translations::Event_CapacityMustBeBetween0and1( ( 0.0 ).Format( "N(Dec(1))" ),
    //                                                                        ( 1.0 ).Format( "N(Dec(1))" ) ) );
    //    }
    //  }
    //  else
    //  {
    //    feedback.AddHard( Translations::Event_InvalidCapacity() );
    //  }
    //}
    return feedback.IsAllowed();
  *]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Method_ValuesOK.def
对比新文件
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: #root
Method ValuesOK () as Boolean id:Method_LibCal_dlgMultipleEvent_ValuesOK
{
  #keys: '[415136.0.654351117]'
  Body:
  [*
    feedback := FeedbackObject::LocalFeedback();
    this.ValuesEventOK();
    // Only check for dates when the event is not recurring...
    //if( btnOnce.IsPressed() )
    //{
      this.ValuesDatesOK();
    //}
    //else  // ... otherwise check if the recurrence pattern and period are ok.
    //{
    //  this.ValuesRecurrenceOK();
    //  this.ValuesPeriodRangeOK();
    //}
    return feedback.IsAllowed();
  *]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_OnCreated.def
对比新文件
@@ -0,0 +1,27 @@
Quintiq file version 2.0
#parent: #root
Response OnCreated () id:Response_LibCal_dlgMultipleEvent_OnCreated
{
  #keys: '[415136.0.647763850]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      // Generic initialization
      calendar := dhLeadingParticipation.Data().Calendar();
      this.Title( "Event for calendar '" + calendar.CalendarID() + "'" );
      // Only show the checkbox for common events.
      //pnlApplyToNewResources.Visible( calendar.istype( LibCal_CommonCalendar ) );
      //this.InitializeWeekdayButtons();
      //this.InitializeRecurrence();
      this.SetParticipationData();  // Determine the StartDate after the recurrence has been initialized,
                                    // so it can be updated to the first occurrence inside the CalendarWindow if necessary.
      //this.InitializeTimezone();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_ButtonCreate_OnClick.def
对比新文件
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: PanelHeader_144/ButtonCreate
Response OnClick () id:Response_PanelHeader_144_ButtonCreate_OnClick
{
  #keys: '[415136.0.654000146]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.OnOK();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_ddslType_OnSelectionChanged#613.def
对比新文件
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: PanelHeader_144/ddslType_360
Response OnSelectionChanged () id:Response_pnlType_ddslType_OnSelectionChanged_613
{
  #keys: '[415136.0.646711729]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      // Show the editfield for the capacity, if applicable.
      //edtCapacity.Visible( selection = LibCal_Event::TYPE_PARTIAL() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_dsStartDate_OnChanged.def
对比新文件
@@ -0,0 +1,30 @@
Quintiq file version 2.0
#parent: PanelHeader_144/dsStartDate
Response OnChanged () id:Response_PanelHeader_144_dsStartDate_OnChanged
{
  #keys: '[415136.0.647401487]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
  QuillAction
  {
    Body:
    [*
      // Adjust the EndDate accordingly.
      //if( dhStartDate.Data().IsFinite() )
      //{
      //  // Use the EndDate of the instance if the value of the control has not been set yet.
      //  endDate := ifexpr( dsEndDate.Date().IsFinite(), dsEndDate.Date(), dhLeadingParticipation.Data().EndDate() );
      //
      //  delta := this.Date() - dhStartDate.Data();
      //  dsEndDate.Date( endDate + delta );
      //}
      // Update the 'memory' for later delta-calculation, and/or setting the time back when AllDay is turned off.
      dhStartDate.Data( this.Date() );
      // Also set StartOfPeriod (always, also in case of a non-recurring event).
      //dsStartOfPeriod.Date( this.Date() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_durEndTimeOfDay_OnChanged.def
对比新文件
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: PanelHeader_144/durEndTimeOfDay
Response OnChanged () id:Response_PanelHeader_144_durEndTimeOfDay_OnChanged
{
  #keys: '[415136.0.647401489]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
  QuillAction
  {
    Body:
    [*
      // Update the 'memory', but only when not all day, because otherwise it will be set to 0:00.
      //if( not ckbIsAllDay.Checked() )
      //{
      //  dhEndTimeOfDay.Data( this.Duration() );
      //}
      //
      //Form.UpdateDuration();
      //Form.UpdateTextualInfo();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_durEndTimeOfDay_OnInputIdle.def
对比新文件
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: PanelHeader_144/durEndTimeOfDay
Response OnInputIdle () id:Response_PanelHeader_144_durEndTimeOfDay_OnInputIdle
{
  #keys: '[415136.0.647401488]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnInputIdle'
  QuillAction
  {
    Body:
    [*
      // Update the 'memory', but only when not all day, because otherwise it will be set to 0:00.
      //if( not ckbIsAllDay.Checked() )
      //{
      //  dhEndTimeOfDay.Data( this.Duration() );
      //}
      //
      //Form.UpdateDuration();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_durStartTimeOfDay_OnChanged.def
对比新文件
@@ -0,0 +1,42 @@
Quintiq file version 2.0
#parent: PanelHeader_144/durStartTimeOfDay
Response OnChanged () id:Response_PanelHeader_144_durStartTimeOfDay_OnChanged
{
  #keys: '[415136.0.647401492]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
  QuillAction
  {
    Body:
    [*
      // If not AllDay, adjust the EndTimeOfDay accordingly.
      // When EndTimeOfDay is not changed, UpdateDuration must be done from here.
      //updateDuration := true;
      //
      //if( not ckbIsAllDay.Checked() )
      //{
      //  delta := this.Duration() - dhStartTimeOfDay.Data();
      //
      //  if( delta <> Duration::Zero() )
      //  {
      //    endTimeOfDay := durEndTimeOfDay.Duration() + delta;
      //
      //    // Also adjust dsEndDate if necessary.
      //    dsEndDate.Date( dsEndDate.Date() + endTimeOfDay.Days() );
      //    durEndTimeOfDay.Duration( endTimeOfDay - Duration::Days( endTimeOfDay.Days() ) );
      //
      //    // Update the 'memory' for later delta-calculation, and/or setting the time back when AllDay is turned off.
      //    dhStartTimeOfDay.Data( this.Duration() );
      //
      //    updateDuration := false;
      //  }
      //}
      //
      //if( updateDuration )
      //{
      //  Form.UpdateDuration();
      //}
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_durStartTimeOfDay_OnInputIdle.def
对比新文件
@@ -0,0 +1,32 @@
Quintiq file version 2.0
#parent: PanelHeader_144/durStartTimeOfDay
Response OnInputIdle () id:Response_PanelHeader_144_durStartTimeOfDay_OnInputIdle
{
  #keys: '[415136.0.647401491]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnInputIdle'
  QuillAction
  {
    Body:
    [*
      // If not AllDay, adjust the EndTimeOfDay accordingly.
      //if( not ckbIsAllDay.Checked() )
      //{
      //  delta := this.Duration() - dhStartTimeOfDay.Data();
      //
      //  if( delta <> Duration::Zero() )
      //  {
      //    endTimeOfDay := durEndTimeOfDay.Duration() + delta;
      //
      //    // Also adjust dsEndDate if necessary.
      //    dsEndDate.Date( dsEndDate.Date() + endTimeOfDay.Days() );
      //    durEndTimeOfDay.Duration( endTimeOfDay - Duration::Days( endTimeOfDay.Days() ) );
      //
      //    // Update the 'memory' for later delta-calculation, and/or setting the time back when AllDay is turned off.
      //    dhStartTimeOfDay.Data( this.Duration() );
      //  }
      //}
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_lstSubscribers_537_OnCheckedChanged.def
对比新文件
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: lstSubscribers_537
Response OnCheckedChanged (
  structured[LibCal_Calendar] checkeditems
) id:Response_lstSubscribers_537_OnCheckedChanged
{
  #keys: '[415136.0.654000327]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnCheckedChanged'
  QuillAction
  {
    Body:
    [*
      subscribers := checkeditems.Copy();
      dhSubscribers.Data( &subscribers );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_lstSubscribers_537_OnSelectionChanged.def
对比新文件
@@ -0,0 +1,32 @@
Quintiq file version 2.0
#parent: lstSubscribers_537
Response OnSelectionChanged (
  LibCal_Calendar selection
) id:Response_lstSubscribers_537_OnSelectionChanged
{
  #keys: '[415136.0.647401559]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      // Initialize the list by setting the checkmark for the subscribing calendars when this has not been done before.
      // This should only be done when OnSelectionChanged is executed for the first time.
      if( lblIsInitialized.Text() = "false" )
      {
        // Get the calendars of the subscriptions.
        calendars := selectset( dhEvent.Data(), LeadingParticipation.Subscription.Calendar, calendar, true, true ).Unique();
        traverse( calendars, Elements, subscriber )
        {
          lstSubscribers.ExtendCheckByKey( subscriber.Key() );
        }
        // Register that the list has been initialized.
        lblIsInitialized.Text( "true" );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_lstSubscribers_537_mnDelete_OnClick.def
对比新文件
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: lstSubscribers_537
Response OnClick (
  structured[LibCal_Subscription] selection
) id:Response_lstSubscribers_537_mnDelete_OnClick
{
  #keys: '[415136.0.655381139]'
  CanBindMultiple: false
  DefinitionID => /lstSubscribers_537/Responsedef_lstSubscribers_537_WebMenu_OnClick
  Initiator: 'mnDelete'
  QuillAction
  {
    Body:
    [*
      traverse( selection, Elements, e ){
        leadingP := e.LeadingParticipation();
        if( leadingP.Subscription( relsize ) > 0 ){
          leadingP.Event().Delete();
          leadingP.Delete();
        }
        e.Delete();
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/_ROOT_Component_LibCal_dlgMultipleEvent.def
对比新文件
@@ -0,0 +1,71 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent LibCal_dlgMultipleEvent
{
  #keys: '[415136.0.645501432]'
  BaseType: 'WebForm'
  Children:
  [
    Component dhEvent id:dhEvent_957
    {
      #keys: '[415136.0.645530811]'
      BaseType: 'WebDataHolder'
      Databinding: 'shadow[LibCal_Event]*'
      Properties:
      [
        Taborder: 0
      ]
    }
    Component dhLeadingParticipation id:dhLeadingParticipation_384
    {
      #keys: '[415136.0.646701431]'
      BaseType: 'WebDataHolder'
      Databinding: 'shadow[LibCal_LeadingParticipation]*'
      Properties:
      [
        Taborder: 1
      ]
    }
    #child: PanelContent
    Component dhdlgSubscription id:dhdlgSubscription_640
    {
      #keys: '[415136.0.647733217]'
      BaseType: 'WebDataHolder'
      Databinding: 'LibCal_dlgSubscription'
      Properties:
      [
        Description: 'Is set when the dialog is opened from dlgSubscription.'
        Taborder: 2
      ]
    }
    Component dhEvents
    {
      #keys: '[415136.0.655311659]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[LibCal_Event]*'
      Properties:
      [
        Description: '瀛樺偍鐢辨壒閲忕晫闈㈠垱寤虹殑浜嬩欢'
        Taborder: 3
      ]
    }
    Component dhCategory
    {
      #keys: '[415136.0.657911841]'
      BaseType: 'WebDataHolder'
      Databinding: 'LibCal_EventCategory'
      Properties:
      [
        Description: 'Unavaliable绫诲埆'
        Taborder: 4
      ]
    }
  ]
  Properties:
  [
    MinimumRows: 100
    Title: 'Multiple event'
    Tooltip: 'Multiple event'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_frmCommonCalendar/Component_cmEventCategories.def
对比新文件
@@ -0,0 +1,19 @@
Quintiq file version 2.0
Component cmEventCategories #extension
{
  Children:
  [
    Component MenuCreateMultipleEvents
    {
      #keys: '[415136.0.645500589]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'CALENDAR'
        Taborder: 5
        Title: 'Create multiple events'
        Tooltip: 'Create multiple events'
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_frmCommonCalendar/Component_lstEventCategories.def
对比新文件
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component lstEventCategories #extension
{
  Children:
  [
    Component dslEventCategories #extension
    {
      Children:
      [
        #child: cmEventCategories
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_frmCommonCalendar/Component_pnlEventCategories.def
对比新文件
@@ -0,0 +1,8 @@
Quintiq file version 2.0
Component pnlEventCategories #extension
{
  Children:
  [
    #child: lstEventCategories
  ]
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_frmCommonCalendar/Response_MacroPlanner_lstEventCategories_MenuCreateMultipleEvents_OnClick.def
对比新文件
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: lstEventCategories
Response OnClick (
  LibCal_EventCategory selection
) id:Response_lstEventCategories_MenuCreateMultipleEvents_OnClick
{
  #keys: '[415136.0.647763266]'
  CanBindMultiple: false
  DefinitionID => /lstEventCategories/Responsedef_lstEventCategories_WebMenu_OnClick
  Initiator: 'MenuCreateMultipleEvents'
  QuillAction
  {
    Body:
    [*
      LibCal_GlobalState.CreateMultipleEvent( dhCalendar.Data(), selection );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_LibCal_frmCommonCalendar/_ROOT_Component_LibCal_frmCommonCalendar.def
对比新文件
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: CalendarsWebUI
OrphanComponent LibCal_frmCommonCalendar #extension
{
  Children:
  [
    #child: pnlEventCategories
  ]
}
_Main/UI/MacroPlannerWebApp/_ROOT_Project_CalendarsWebUI.qp
对比新文件
@@ -0,0 +1,5 @@
Quintiq file version 2.0
#parent: #root
Project id:CalendarsWebUI #extension
{
}