kahuna/public/js/upload/jobs/upload-jobs.html (43 lines of code) (raw):
<div class="flex-container section-heading current-uploads">
<h2 class="flex-spacer">Your current uploads <em ng-if="ctrl.remaining">({{ctrl.remaining}} remaining)</em></h2>
<a ng-controller="SessionCtrl" class="coloured-link" ng-href="/search?uploadedBy={{user.email}}&nonFree=true"
aria-label="View all your uploads">View all your uploads</a>
</div>
<ul>
<li ng-repeat="job in ctrl.jobs | orderBy: 'name'" class="upload-result">
<div ng-if="!job.image"
class="job-uploading" role="region" aria-label="{{job.name}} upload">
<div class="result-editor__result">
<div>
<img ng-src="{{job.dataUrl}}" class="preview__image" />
<div class="preview__bottom-bar bottom-bar">
<div class="bottom-bar__meta">
{{job.name}}<span ng-if="job.size">, {{job.size | asFileSize}}</span>
</div>
<div class="bottom-bar__actions"></div>
</div>
</div>
<div class="job-status status"
ng-class="{
'status--invalid': job.status === 'upload error',
'status--valid': job.status === 'uploaded'
}">
{{job.status}}
<span ng-if="job.status === 'upload error'">({{job.error}})</span>
</div>
</div>
<gr-confirm-delete class="flex-right"
ng-if="job.status === 'upload error'"
gr-on-confirm="ctrl.removeJob(job)">
</gr-confirm-delete>
</div>
<ui-image-editor ng-if="job.image"
image="job.image"
with-batch="ctrl.jobs.length > 1">
</ui-image-editor>
<gr-delete-image class="flex-right"
ng-if="job.canBeDeleted && !job.isDeleted"
images="[job.image]">
</gr-delete-image>
</li>
</ul>