in source/webapp/src/lib/js/imageCard.js [352:425]
async domInit(badge = false) {
if (this.domInitialized()) {
return;
}
const image = this.getProxyByBaseName(this.basename);
const original = await ImageCard.fileExists(SO0050.Ingest.Bucket, this.key);
const proxy = (image || {}).key && await ImageCard.fileExists(SO0050.Proxy.Bucket, image.key);
const imageUrl = this.getSignedThumbnail();
const actions = [];
if (!original) {
actions.push('not-found');
} else if (!proxy) {
actions.push('restore');
} else {
actions.push('preview');
if (!this.hasAnalyzed()) {
actions.push('metadata');
}
}
const dom = `
<div class="col-sm-4 mt-4">
<div class="card" id="card-${this.uuid}">
<!-- loading icon -->
<div
id="indicator-${this.uuid}"
class="spinner-grow text-light indicator collapse"
style="animation: spinner-grow 1.2s linear infinite;"
role="status">
<span class="sr-only">Loading...</span>
</div>
<div class="overlay-container">
<img
class="card-img-top"
src="${imageUrl}"
alt="thumbnail"
style="max-height: 200px; object-fit: contain; background-color: rgb(0,0,0);"
>
<div class="state-status-overlay mb-2 small pl-2 pr-2">
${this.domCreateIngestOverlayStatus()}
${this.domCreateAnalysisOverlayStatus()}
${this.domCreateLabelingOverlayStatus()}
</div>
${this.domCreateOverlayActions(actions)}
</div>
<div class="card-body small">
<h6 class="card-title text-truncate lead">${this.basename}</h6>
<dl class="row small">
<dt class="col-sm-3 text-truncate">Name</dt><dd class="col-sm-9 text-truncate" data-field="name">${this.basename}</dd>
<dt class="col-sm-3 text-truncate">ID</dt><dd class="col-sm-9 text-truncate" data-field="uuid">${this.uuid}</dd>
<dt class="col-sm-3 text-truncate">LastModified</dt><dd class="col-sm-9 text-truncate" data-field="ingestDate">${this.lastModifiedISOFormat || '--'}</dd>
</dl>
<div class="float-right">
<a href="#" class="overlay-action">
<i class="far fa-trash-alt fa-lg" style="color: #111"
alt="Remove asset"
data-action="remove"
data-toggle="tooltip"
data-placement="bottom"
title="Remove asset and delete database records">
</i>
</a>
</div>
</div>
</div>
</div>
`;
this.element = $(dom);
await this.domRegisterEvents();
}