|
51 | 51 | {{ forms.field({label: "Force Subscribe"|t('campaign')}, input) }} |
52 | 52 |
|
53 | 53 | {% set input %} |
54 | | - {{ import.failures }} |
55 | 54 | {% if import.failures > 0 %} |
56 | | - <span class="info"> |
57 | | - {{ "View `storage/logs/campaign.log` file for errors."|t('campaign')|markdown }} |
58 | | - </span> |
| 55 | + {% if import.failedRows is not empty %} |
| 56 | + <table class="editable fullwidth"> |
| 57 | + <thead> |
| 58 | + <tr> |
| 59 | + <th> |
| 60 | + {{ "Failure Message"|t('campaign') }} |
| 61 | + </th> |
| 62 | + <th> |
| 63 | + {{ "Failed Row"|t('campaign') }} |
| 64 | + </th> |
| 65 | + </tr> |
| 66 | + </thead> |
| 67 | + {% for failedRow in import.failedRows %} |
| 68 | + <tr> |
| 69 | + <th> |
| 70 | + {{ (import.failureMessages[loop.index0] ?? '')|markdown }} |
| 71 | + </th> |
| 72 | + <td class="code"> |
| 73 | + {{ failedRow }} |
| 74 | + </td> |
| 75 | + </tr> |
| 76 | + {% endfor %} |
| 77 | + </table> |
| 78 | + {% else %} |
| 79 | + {{ import.failures }} |
| 80 | + <span class="info"> |
| 81 | + {{ "View `storage/logs/campaign.log` file for errors."|t('campaign')|markdown }} |
| 82 | + </span> |
| 83 | + {% endif %} |
59 | 84 | {% endif %} |
60 | 85 | {% endset %} |
61 | | - {{ forms.field({label: "Failed Imports"|t('campaign')}, input) }} |
| 86 | + {{ forms.field({label: "Failed Rows"|t('campaign')}, input) }} |
62 | 87 |
|
63 | 88 | {% endblock %} |
64 | 89 |
|
65 | 90 |
|
66 | | -{% block details %} |
| 91 | + {% block details %} |
67 | 92 |
|
68 | | - <div class="meta read-only"> |
69 | | - <div class="elementThumb data first"> |
70 | | - <h5 class="heading">{{ "Imported By"|t('campaign') }}</h5> |
71 | | - <div class="value"> |
72 | | - {% set user = import.getUser() %} |
73 | | - {% if user %} |
74 | | - {{ elementChip(import.getUser()) }} |
75 | | - {% endif %} |
| 93 | + <div class="meta read-only"> |
| 94 | + <div class="elementThumb data first"> |
| 95 | + <h5 class="heading">{{ "Imported By"|t('campaign') }}</h5> |
| 96 | + <div class="value"> |
| 97 | + {% set user = import.getUser() %} |
| 98 | + {% if user %} |
| 99 | + {{ elementChip(import.getUser()) }} |
| 100 | + {% endif %} |
| 101 | + </div> |
| 102 | + </div> |
| 103 | + <div class="data"> |
| 104 | + <h5 class="heading">{{ "Added"|t('campaign') }}</h5> |
| 105 | + <div class="value">{{ import.added }}</div> |
| 106 | + </div> |
| 107 | + <div class="data"> |
| 108 | + <h5 class="heading">{{ "Updated"|t('campaign') }}</h5> |
| 109 | + <div class="value">{{ import.updated }}</div> |
| 110 | + </div> |
| 111 | + <div class="data"> |
| 112 | + <h5 class="heading">{{ "Failures"|t('campaign') }}</h5> |
| 113 | + <div class="value">{{ import.failures }}</div> |
| 114 | + </div> |
| 115 | + <div class="data"> |
| 116 | + <h5 class="heading">{{ "Date Imported"|t('campaign') }}</h5> |
| 117 | + <div class="value">{{ import.dateImported|datetime }}</div> |
76 | 118 | </div> |
77 | 119 | </div> |
78 | | - <div class="data"> |
79 | | - <h5 class="heading">{{ "Added"|t('campaign') }}</h5> |
80 | | - <div class="value">{{ import.added }}</div> |
81 | | - </div> |
82 | | - <div class="data"> |
83 | | - <h5 class="heading">{{ "Updated"|t('campaign') }}</h5> |
84 | | - <div class="value">{{ import.updated }}</div> |
85 | | - </div> |
86 | | - <div class="data"> |
87 | | - <h5 class="heading">{{ "Failures"|t('campaign') }}</h5> |
88 | | - <div class="value">{{ import.failures }}</div> |
89 | | - </div> |
90 | | - <div class="data"> |
91 | | - <h5 class="heading">{{ "Date Imported"|t('campaign') }}</h5> |
92 | | - <div class="value">{{ import.dateImported|datetime }}</div> |
93 | | - </div> |
94 | | - </div> |
95 | 120 |
|
96 | | -{% endblock %} |
| 121 | + {% endblock %} |
0 commit comments