Guest User

Untitled

a guest
Nov 11th, 2021
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 9.62 KB | None | 0 0
  1. <SfSchedule TValue="ActivityModel" Width="100%" Height="100%" @ref="_sch" @bind-CurrentView="@CurrentView">
  2.     <ScheduleQuickInfoTemplates>
  3.         <HeaderTemplate>
  4.            
  5.             @{ ActivityModel Data = context as ActivityModel; }
  6.             @if (Data.Id != null) {
  7.            
  8.                 @if (ViewModel.ActivityMode)
  9.                 {
  10.                     <div class="schedule-info-header">
  11.                         @Data.Subject
  12.                     </div>
  13.                 }
  14.                 else
  15.                 {
  16.                     var activity = ViewModel.Schedule.Network.Activities.ElementAt(Data.Id);
  17.                     <div class="schedule-info-header">
  18.                         @Data.Subject
  19.                         <span class="schedule-info-header-duration">@activity.GetStateName()</span>
  20.                         <span class="schedule-info-header-countdown">Expected Duration: @activity.Duration.ToTimeSpan().Humanize()</span>
  21.                     </div>
  22.  
  23.                 }
  24.             }
  25.         </HeaderTemplate>
  26.         <ContentTemplate>
  27.            
  28.             @{ ActivityModel Data = context as ActivityModel; }
  29.                 @if (ViewModel.ActivityMode)
  30.                 {
  31.                     <h5>@Data.Location</h5>
  32.                     <button class="activity-notes-toggle" @onclick="() => ViewModel.ToggleNotes()">
  33.                         <i class="oi oi-paperclip toggle-notes"/>Click to add notes.
  34.                     </button>
  35.  
  36.                     @if (ViewModel.NotesVisible)
  37.                     {
  38.                         <textarea class="note-pad">
  39.                                
  40.                             </textarea>
  41.                     }
  42.                 }
  43.                 else
  44.                 {
  45.                     var activity = ViewModel.Schedule.Network.Activities.ElementAt(Data.Id);
  46.                     var note = @ViewModel.AllScheduleNotes.Find(note => note.ActivityId == activity.Id);
  47.                    
  48.                     <div class="schedule-info-content">
  49.                         <table class="schedule-info-content-table">
  50.                             <tbody>
  51.  
  52.                             @if (activity.GetStateName() == "In Progress")
  53.                             {
  54.                                 <tr><td>Started On:</td><td class="table-cell-right">@activity.Actual.StartedAt?.ToDateTimeUtc().ToString("d")</td></tr>
  55.                                 <tr><td>Anticipated Earliest Completion:</td><td class="table-cell-right">@activity.Anticipated.EarliestCompletion?.ToDateTimeUtc().ToString("d")</td></tr>
  56.                                 <tr><td>Anticipated Latest Completion:</td><td class="table-cell-right">@activity.Anticipated.LatestCompletion?.ToDateTimeUtc().ToString("d")</td></tr>
  57.                             }
  58.  
  59.                             @if (activity.GetStateName() == "Completed")
  60.                             {
  61.                                 <tr><td>Completed On:</td><td class="table-cell-right">@activity.Actual.CompletedAt?.ToDateTimeUtc().ToString("d")</td></tr>
  62.                             }
  63.  
  64.                             @if (activity.GetStateName() == "Planned")
  65.                             {
  66.                                 <tr><td>Anticipated Earliest Start:</td><td class="table-cell-right">@activity.Anticipated.EarliestStart?.ToDateTimeUtc().Humanize()</td></tr>
  67.                                 <tr><td>Anticipated Latest Start:</td><td class="table-cell-right">@activity.Anticipated.LatestStart?.ToDateTimeUtc().Humanize()</td></tr>
  68.                                 <tr><td>Anticipated Earliest Completion:</td><td class="table-cell-right">@activity.Anticipated.EarliestCompletion?.ToDateTimeUtc().ToString("d")</td></tr>
  69.                                 <tr><td>Anticipated Latest Completion:</td><td class="table-cell-right">@activity.Anticipated.LatestCompletion?.ToDateTimeUtc().ToString("d")</td></tr>
  70.                             }
  71.                             </tbody>
  72.                         </table>
  73.                         @{
  74.                             if (note is not null)
  75.                             {
  76.                                 <p class="activity-note">@note.Value</p>
  77.                             }
  78.                         }
  79.                         <button class="activity-notes-toggle" @onclick="() => ViewModel.ToggleNotes()">
  80.                             <i class="oi oi-pencil toggle-notes"/>
  81.                             @if (note is not null)
  82.                             {
  83.                                 <span>Click to modify note.</span>
  84.  
  85.                             } else
  86.                             {
  87.                                 <span>Click to add note.</span>
  88.                             }
  89.                         </button>
  90.  
  91.                         @if (ViewModel.NotesVisible)
  92.                         {
  93.                             <textarea class="note-pad" @oninput="(e) => ViewModel.OnNoteChange(e, activity)" >
  94.                                 @{
  95.                                     if (note is not null)
  96.                                     {
  97.                                         @note.Value.Trim();
  98.                                     }
  99.                                 }
  100.                             </textarea>
  101.                             <button class="abic-success abic-table-button save-note" @onclick="(e) => ViewModel.SaveNote(activity)">
  102.                                 <span class="cell-button-label">Save Note</span>
  103.                             </button>
  104.                         }
  105.                     </div>
  106.                 }
  107.         </ContentTemplate>
  108.         <FooterTemplate>
  109.            
  110.             @{ ActivityModel activity = context as ActivityModel; }
  111.  
  112.             @if (activity.Id != null)
  113.             {
  114.                 @if (ViewModel.ActivityMode)
  115.                 {
  116.                     var meta = ViewModel.InfoSource.ElementAt(activity.Id);
  117.                    
  118.                     <button class="abic-success abic-table-button" @onclick="(e) => ViewModel.SelectSchedule(meta.ScheduleId)">
  119.                         <span class="cell-button-label">Open Schedule</span>
  120.                     </button>              
  121.                 }
  122.                 else
  123.                 {
  124.                     <ActivityActions Activity="@(ViewModel.Schedule.Network.Activities.ElementAt(activity.Id))" ViewModel="@ViewModel" Schedule="@_sch"/>
  125.                 }
  126.             }
  127.  
  128.         </FooterTemplate>
  129.     </ScheduleQuickInfoTemplates>
  130.     <ScheduleEvents TValue="ActivityModel" ActionCompleted="OnActionCompleted" OnEventClick="OnEventClick" OnEventDoubleClick="OnEventDoubleClick" OnCellClick="OnCellClick" OnCellDoubleClick="OnCellDoubleClick"></ScheduleEvents>
  131.     <ScheduleEventSettings DataSource="@ViewModel.DataSource"></ScheduleEventSettings>
  132.     <ScheduleViews>
  133.         <ScheduleView Option="View.Month" MaxEventsPerRow="3">
  134.             <EventTemplate>
  135.                 @{ ActivityModel Data = context as ActivityModel; }
  136.                 @if (ViewModel.ActivityMode)
  137.                 {
  138.                     <div>@Data.Location</div>
  139.                 }
  140.                 else
  141.                 {
  142.                     <div>@Data.Subject</div>
  143.                 }
  144.             </EventTemplate>
  145.         </ScheduleView>
  146.         <ScheduleView Option="View.Year" MaxEventsPerRow="10">
  147.             <EventTemplate>
  148.                 @{ ActivityModel Data = context as ActivityModel; }
  149.                 @if (ViewModel.ActivityMode)
  150.                 {
  151.                     <div>@Data.Location</div>
  152.                 }
  153.                 else
  154.                 {
  155.                     <div>@Data.Subject</div>
  156.                 }
  157.             </EventTemplate>
  158.         </ScheduleView>
  159.         <ScheduleView Option="View.TimelineMonth" MaxEventsPerRow="10">
  160.             <EventTemplate>
  161.                 @if (ViewModel.ActivityMode)
  162.                 {
  163.                     ActivityModel Data = context as ActivityModel;
  164.                     <div>
  165.                         <div>@Data.Subject</div>
  166.                         <div>@Data.Location</div>
  167.                     </div>
  168.                 }
  169.                 else
  170.                 {
  171.                     ActivityModel Data = context as ActivityModel;
  172.                     var activity = ViewModel.Schedule.Network.Activities.ElementAt(Data.Id);
  173.                     var note = @ViewModel.AllScheduleNotes.Find(note => note.ActivityId == activity.Id);
  174.                     var name = activity.Meta.Name;
  175.                    
  176.                     <div id="@activity.Id" @onclick="() => OpenPopupJS(name)">
  177.                         <div class="event-title-overflow">@Data.Subject</div>
  178.                         @if (activity.Anticipated.StartSource == AnticipatedSource.Pinned || activity.Anticipated.CompletionSource == AnticipatedSource.Pinned)
  179.                         {
  180.                             <div class="event-label-right">Pinned</div>
  181.                         }
  182.                         else
  183.                         {
  184.                             <div class="event-label-right">@activity.GetStateName()</div>
  185.                         }
  186.                         <div class="event-label-right">@activity.Anticipated.Duration.ToTimeSpan().Humanize(minUnit: TimeUnit.Hour, precision:5)</div>
  187.                        
  188.                         @if (note is not null)
  189.                         {
  190.                             <div class="note-indicator">
  191.                                 <i class="oi oi-file" />
  192.                             </div>
  193.                         }
  194.                        
  195.                     </div>
  196.                 }
  197.             </EventTemplate>
  198.         </ScheduleView>
  199.     </ScheduleViews>
  200. </SfSchedule>
  201.  
Advertisement
Add Comment
Please, Sign In to add comment