|
60 | 60 |
|
61 | 61 | <GridColumn TItem="UploadModel" HeaderText="Actions"> |
62 | 62 | <div class="action-buttons"> |
63 | | - @if (context.state == StateTask.Working && !isPending) |
| 63 | + @if (IsSplitting(context) && context.state == StateTask.Working && !isPending) |
| 64 | + { |
| 65 | + <button class="action-btn splitting" disabled title="Splitting file..."> |
| 66 | + <i class="bi bi-scissors spin"></i> |
| 67 | + </button> |
| 68 | + } |
| 69 | + else if (context.state == StateTask.Working && !isPending) |
64 | 70 | { |
65 | 71 | <button class="action-btn cancel" @onclick="() => cancel(context)" title="Cancel"> |
66 | 72 | <i class="bi bi-x-lg"></i> |
|
121 | 127 | }; |
122 | 128 | } |
123 | 129 |
|
| 130 | + private bool IsSplitting(UploadModel um) |
| 131 | + { |
| 132 | + return um is SplitModel || um.action == "Splitting"; |
| 133 | + } |
| 134 | + |
| 135 | + private bool IsMd5Calculating(UploadModel um) |
| 136 | + { |
| 137 | + return um is Md5Model || um.action == "MD5 Calc" || um is XxHashModel || um.action == "XxHash Calc"; |
| 138 | + } |
| 139 | + |
124 | 140 | private string GetProgressClass(UploadModel um) |
125 | 141 | { |
126 | 142 | if (um.state == StateTask.Completed || um.progress >= 100) return "complete"; |
127 | 143 | if (um.state == StateTask.Error || um.state == StateTask.Canceled) return "error"; |
| 144 | + if (IsSplitting(um)) return "splitting"; |
128 | 145 | return ""; |
129 | 146 | } |
130 | 147 |
|
131 | 148 | private string GetStatusClass(UploadModel um, bool isPending) |
132 | 149 | { |
133 | 150 | if (isPending) return "pending"; |
| 151 | + if (IsSplitting(um) && um.state == StateTask.Working) return "splitting"; |
| 152 | + if (IsMd5Calculating(um) && um.state == StateTask.Working) return "calculating"; |
134 | 153 | return um.state switch |
135 | 154 | { |
136 | 155 | StateTask.Working => "working", |
|
144 | 163 | private string GetStatusIcon(UploadModel um, bool isPending) |
145 | 164 | { |
146 | 165 | if (isPending) return "bi-clock"; |
| 166 | + if (IsSplitting(um) && um.state == StateTask.Working) return "bi-scissors"; |
| 167 | + if (IsMd5Calculating(um) && um.state == StateTask.Working) return "bi-calculator"; |
147 | 168 | return um.state switch |
148 | 169 | { |
149 | 170 | StateTask.Working => "bi-arrow-up-circle", |
|
157 | 178 | private string GetStatusText(UploadModel um, bool isPending) |
158 | 179 | { |
159 | 180 | if (isPending) return "In Queue"; |
| 181 | + if (IsSplitting(um) && um.state == StateTask.Working) return "Splitting"; |
| 182 | + if (IsMd5Calculating(um) && um.state == StateTask.Working) return um.action; |
160 | 183 | return um.state switch |
161 | 184 | { |
162 | 185 | StateTask.Working => "Uploading", |
|
0 commit comments