angular-calendar icon indicating copy to clipboard operation
angular-calendar copied to clipboard

mwlClick does not work on custom events

Open jairmedeiros opened this issue 3 years ago • 1 comments

Describe the bug

In production environment, the mwlClick does not work. I have custom events with cellTemplate and openDayEventsTemplate. Locally, these works, but in production not.

Minimal reproduction of the problem with instructions

Some code:

<!-- calendar-month-cell -->
<ng-template
  #statusTemplate
  let-day="day"
  let-openDay="openDay"
  let-locale="locale"
  let-tooltipPlacement="tooltipPlacement"
  let-highlightDay="highlightDay"
  let-unhighlightDay="unhighlightDay"
  let-eventClicked="eventClicked"
  let-tooltipTemplate="tooltipTemplate"
  let-tooltipAppendToBody="tooltipAppendToBody"
  let-tooltipDelay="tooltipDelay"
  let-trackByEventId="trackByEventId"
  let-validateDrag="validateDrag"
>
  <div
    class="cal-cell-top"
    [attr.aria-label]="
  { day: day, locale: locale } | calendarA11y: 'monthCell'
"
  >
    <span aria-hidden="true">
      <span class="cal-day-total" *ngIf="day.badgeTotal > 0">
        <div style="font-size: 10px;">
          Total:
        </div>
        <div>
          {{ day.badgeTotal }} {{ day.badgeTotal > 1 ?
          'atividades': 'atividade' }}
        </div>
      </span>
      <span class="cal-day-number"
        >{{ day.date | calendarDate:'monthViewDayNumber':locale
        }}</span
      >
    </span>
  </div>
  <div
    class="cal-events-group"
    style="margin: 0 10px 18px 10px !important;"
    *ngIf="day.events.length > 0"
  >
    <div
      class="cal-event-group"
      [ngClass]="group.key"
      *ngFor="let group of groupedEvents(day.events); trackBy: trackByEventId"
      (mwlClick)="eventClicked.emit({sourceEvent: {group: group.key, day: day}})"
    >
      {{ group.elements.length }}
    </div>
  </div>
</ng-template>
<!-- calendar-month-cell -->

<!-- calendar-open-day-events -->
<ng-template
  #openDayTemplate
  let-events="events"
  let-eventClicked="eventClicked"
  let-isOpen="isOpen"
  let-trackByEventId="trackByEventId"
  let-validateDrag="validateDrag"
>
  <div
    [@collapse]
    *ngIf="groupClicked && isOpen && events.length > 0"
    class="cal-open-day-events-general"
    [ngClass]="groupClicked"
    role="application"
  >
    <ng-container [ngSwitch]="groupClicked">
      <ng-container *ngSwitchCase="'event-ok-later'">
        <span class="cal-title-group-open-day">
          Atividades com manutenção realizada fora da garantia
        </span>
      </ng-container>
      <ng-container *ngSwitchCase="'event-expired'">
        <span class="cal-title-group-open-day">
          Atividades vencidas
        </span>
      </ng-container>
      <ng-container *ngSwitchCase="'event-warning'">
        <span class="cal-title-group-open-day">
          Atividades próximas do vencimento
        </span>
      </ng-container>
      <ng-container *ngSwitchCase="'event-approved'">
        <span class="cal-title-group-open-day">
          Atividades com manutenção aprovada
        </span>
      </ng-container>
      <ng-container *ngSwitchCase="'event-suspended'">
        <span class="cal-title-group-open-day">
          Atividades aguardando aprovação
        </span>
      </ng-container>
      <ng-container *ngSwitchCase="'event-rejected'">
        <span class="cal-title-group-open-day">
          Atividades com evidências rejeitadas
        </span>
      </ng-container>
      <ng-container *ngSwitchCase="'event-ok'">
        <span class="cal-title-group-open-day">
          Atividades futuras
        </span>
      </ng-container>
    </ng-container>
    <div
      *ngFor="let event of filteredEvents(groupClicked, events)"
      class="cal-open-day-group-events"
    >
      <mwl-calendar-event-title
        [event]="event"
        view="month"
        tabindex="0"
        (mwlClick)="eventClicked.emit({ event: event, sourceEvent: $event })"
        (mwlKeydownEnter)="
          eventClicked.emit({ event: event, sourceEvent: $event })
        "
      >
      </mwl-calendar-event-title>
      &ngsp;
      <mwl-calendar-event-actions [event]="event">
      </mwl-calendar-event-actions>
    </div>
  </div>
  <div
    [@collapse]
    *ngIf="!groupClicked && isOpen && events.length > 0"
    class="cal-open-day-events-general"
    style="background-color: #555;"
    role="application"
  >
    <ng-container *ngFor="let group of groupedEvents(events)">
      <ng-container [ngSwitch]="group.key">
        <ng-container *ngSwitchCase="'event-ok-later'">
          <span
            class="cal-title-group-open-day"
            style="color: #10264a;"
          >
            Atividades com manutenção realizada fora da garantia
          </span>
        </ng-container>
        <ng-container *ngSwitchCase="'event-expired'">
          <span
            class="cal-title-group-open-day"
            style="color: #f4516c;"
          >
            Atividades vencidas
          </span>
        </ng-container>
        <ng-container *ngSwitchCase="'event-warning'">
          <span
            class="cal-title-group-open-day"
            style="color: #ffb822"
          >
            Atividades próximas do vencimento
          </span>
        </ng-container>
        <ng-container *ngSwitchCase="'event-approved'">
          <span
            class="cal-title-group-open-day"
            style="color: #34bfa3"
          >
            Atividades com manutenção aprovada
          </span>
        </ng-container>
        <ng-container *ngSwitchCase="'event-suspended'">
          <span
            class="cal-title-group-open-day"
            style="color: #a4a5a8"
          >
            Atividades aguardando aprovação
          </span>
        </ng-container>
        <ng-container *ngSwitchCase="'event-rejected'">
          <span
            class="cal-title-group-open-day"
            style="color: #ba68c8"
          >
            Atividades com evidências rejeitadas
          </span>
        </ng-container>
        <ng-container *ngSwitchCase="'event-ok'">
          <span
            class="cal-title-group-open-day"
            style="color: #4fa9f8"
          >
            Atividades futuras
          </span>
        </ng-container>
      </ng-container>
      <div
        *ngFor="let event of group.elements"
        class="cal-open-day-group-events"
      >
        <mwl-calendar-event-title
          [event]="event"
          view="month"
          (mwlClick)="eventClicked.emit({ event: event, sourceEvent: $event })"
          (mwlKeydownEnter)="
            eventClicked.emit({ event: event, sourceEvent: $event })
          "
          tabindex="0"
        >
        </mwl-calendar-event-title>
        &ngsp;
        <mwl-calendar-event-actions [event]="event">
        </mwl-calendar-event-actions>
      </div>
    </ng-container>
  </div>
</ng-template>
<!-- calendar-open-day-events -->

Are my ng-templates wrongs?

Versions

  • @angular/core: ~7.2.0
  • angular-calendar: ^0.28.22
  • Browser name and version: Firefox 86.0

jairmedeiros avatar Mar 17 '21 18:03 jairmedeiros

Thanks so much for opening an issue! If you'd like me to give priority to answering your issue or would just like to support this project, then please consider sponsoring me

matts-bot[bot] avatar Mar 17 '21 18:03 matts-bot[bot]