Compare commits
5 Commits
v0.16.2
...
dev-dl-lis
| Author | SHA1 | Date | |
|---|---|---|---|
| 5ca0cd651d | |||
| b6bc1645b4 | |||
| 16023f1a26 | |||
| 725034dd4e | |||
| 234aeab120 |
@@ -1,4 +1,4 @@
|
||||
FROM dunglas/frankenphp
|
||||
FROM dunglas/frankenphp:php8.4-alpine
|
||||
|
||||
ENV SERVER_NAME=":80"
|
||||
ENV CADDY_GLOBAL_OPTIONS="auto_https off"
|
||||
@@ -11,6 +11,8 @@ RUN install-php-extensions \
|
||||
zip \
|
||||
opcache
|
||||
|
||||
RUN apk add --no-cache wget
|
||||
|
||||
HEALTHCHECK --interval=3s --timeout=3s --retries=10 CMD [ "php", "/app/bin/console", "startup:status" ]
|
||||
|
||||
COPY docker/app/Caddyfile /etc/frankenphp/Caddyfile
|
||||
|
||||
@@ -7,7 +7,13 @@ import { getComponent } from '@symfony/ux-live-component';
|
||||
|
||||
/* stimulusFetch: 'lazy' */
|
||||
export default class extends Controller {
|
||||
static targets = ['download']
|
||||
static targets = ['download', 'downloadRow', 'viewAllBtn']
|
||||
static values = {
|
||||
isWidget: Boolean,
|
||||
perPage: Number,
|
||||
}
|
||||
|
||||
component = null;
|
||||
|
||||
async initialize() {
|
||||
this.component = await getComponent(this.element);
|
||||
@@ -22,9 +28,38 @@ export default class extends Controller {
|
||||
// this.fooTarget.addEventListener('click', this._fooBar)
|
||||
}
|
||||
|
||||
downloadRowTargetConnected(target) {
|
||||
if (Boolean(target.getAttribute('isBroadcasted')) === true) {
|
||||
this.viewAllBtnTarget.parentElement.append(this.viewAllBtnTarget);
|
||||
if (this.downloadRowTargets.length > this.perPageValue) {
|
||||
target.classList.add('hidden');
|
||||
this.viewAllBtnTarget.classList.remove('hidden');
|
||||
} else {
|
||||
this.viewAllBtnTarget.classList.add('hidden');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
downloadRowTargetDisconnected(target) {
|
||||
this.viewAllBtnTarget.parentElement.append(this.viewAllBtnTarget);
|
||||
let i = 1;
|
||||
this.downloadRowTargets.forEach((downloadRow) => {
|
||||
console.log(downloadRow)
|
||||
if (i <= this.perPageValue) {
|
||||
downloadRow.classList.remove('hidden');
|
||||
} else {
|
||||
downloadRow.classList.add('hidden');
|
||||
}
|
||||
})
|
||||
|
||||
if (this.downloadRowTargets.length > this.perPage) {
|
||||
this.viewAllBtnTarget.classList.remove('hidden');
|
||||
}
|
||||
}
|
||||
|
||||
downloadTargetConnected(target) {
|
||||
let downloads = this.element.querySelectorAll('tbody tr');
|
||||
if (downloads.length > 5) {
|
||||
if (downloads.length > this.perPageValue) {
|
||||
target.classList.add('hidden');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ services:
|
||||
volumes:
|
||||
- $PWD:/app
|
||||
tty: true
|
||||
command: php /app/bin/console messenger:consume async -vv --time-limit=3600 limit=10
|
||||
command: php /app/bin/console messenger:consume async -vv --time-limit=3600 --limit=10
|
||||
|
||||
|
||||
scheduler:
|
||||
|
||||
@@ -11,6 +11,8 @@ RUN install-php-extensions \
|
||||
zip \
|
||||
opcache
|
||||
|
||||
RUN apk add --no-cache wget
|
||||
|
||||
COPY . /app
|
||||
|
||||
ENTRYPOINT [ "php", "/app/bin/console", "messenger:consume", "async" ]
|
||||
|
||||
16
src/Twig/Components/DownloadListRow.php
Normal file
16
src/Twig/Components/DownloadListRow.php
Normal file
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace App\Twig\Components;
|
||||
|
||||
use App\Download\Framework\Entity\Download;
|
||||
use Symfony\UX\TwigComponent\Attribute\AsTwigComponent;
|
||||
|
||||
#[AsTwigComponent]
|
||||
final class DownloadListRow
|
||||
{
|
||||
public Download $download;
|
||||
|
||||
public bool $isWidget = true;
|
||||
|
||||
public bool $isBroadcasted = false;
|
||||
}
|
||||
12
src/Twig/Components/MonitorListRow.php
Normal file
12
src/Twig/Components/MonitorListRow.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace App\Twig\Components;
|
||||
|
||||
use App\Monitor\Framework\Entity\Monitor;
|
||||
use Symfony\UX\TwigComponent\Attribute\AsTwigComponent;
|
||||
|
||||
#[AsTwigComponent]
|
||||
final class MonitorListRow
|
||||
{
|
||||
public Monitor $monitor;
|
||||
}
|
||||
@@ -7,7 +7,7 @@ module.exports = {
|
||||
safelist: [
|
||||
"bg-blue-300",
|
||||
"bg-orange-300",
|
||||
"bg-rose-300",
|
||||
"bg-fuchsia-300",
|
||||
"bg-green-400",
|
||||
"bg-purple-400",
|
||||
"bg-orange-400",
|
||||
|
||||
@@ -5,38 +5,19 @@
|
||||
|
||||
<turbo-stream action="append" target="active_downloads">
|
||||
<template>
|
||||
<tr data-download-list-target="download" id="ad_download_{{ entity.id }}">
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-800 dark:text-stone-800 min-w-[45ch] max-w-[45ch] truncate">
|
||||
{{ entity.title }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800 dark:text-gray-50">
|
||||
{% if entity.progress < 100 %}
|
||||
<div class="w-[3.25ch] h-[3.25ch] bg-purple-600 rounded-full block text-center table-cell align-middle text-xs text-gray-50">
|
||||
{{ entity.progress }}
|
||||
</div>
|
||||
{% else %}
|
||||
<twig:StatusBadge color="green" status="Complete" />
|
||||
{% endif %}
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<twig:DownloadListRow download="{{ entity }}" isBroadcasted="true" />
|
||||
</template>
|
||||
</turbo-stream>
|
||||
{% endblock %}
|
||||
|
||||
{% block update %}
|
||||
{% if entity.status != "Complete" %}
|
||||
<turbo-stream action="update" target="ad_download_{{ id }}">
|
||||
<turbo-stream action="update" target="download_progress_{{ id }}">
|
||||
<template>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-800 dark:text-stone-800 min-w-[45ch] max-w-[45ch] truncate">
|
||||
{{ entity.title }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-end text-gray-800 dark:text-gray-50">
|
||||
<div class="border-2 border-green-700 rounded-md w-full h-6 align-middle overflow-hidden">
|
||||
<div class="text-green-700 rounded-sm text-bold text-gray-950 text-center bg-green-600 h-5" style="width:{{ entity.progress }}%">{{ entity.progress }}%</div>
|
||||
</div>
|
||||
</td>
|
||||
<td></td>
|
||||
<div class="text-green-700 rounded-sm text-bold text-gray-950 text-center bg-green-600 h-5"
|
||||
style="width:{{ entity.progress }}%">
|
||||
<span>{{ entity.progress }}%</span>
|
||||
</div>
|
||||
</template>
|
||||
</turbo-stream>
|
||||
{% else %}
|
||||
@@ -54,23 +35,7 @@
|
||||
|
||||
<turbo-stream action="prepend" target="complete_downloads">
|
||||
<template>
|
||||
<tr id="ad_download_{{ entity.id }}">
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-800 dark:text-stone-800 min-w-[45ch] max-w-[45ch] truncate">
|
||||
{{ entity.title }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800 dark:text-gray-50">
|
||||
<twig:StatusBadge color="green" status="Complete" />
|
||||
</td>
|
||||
<td class="px-6 py-4 flex flex-row align-middle justify-center">
|
||||
<button {{ stimulus_action('download_list', 'deleteDownload', 'click', {id: download.id}) }}>
|
||||
<twig:ux:icon
|
||||
name="ic:twotone-cancel" width="18px"
|
||||
class="rounded-full align-middle text-red-600"
|
||||
title="Remove {{ download.title }} from download list. This will not delete the file."
|
||||
/>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<twig:DownloadListRow download="{{ entity }}" :isBroadcasted="true" />
|
||||
</template>
|
||||
</turbo-stream>
|
||||
{% endif %}
|
||||
|
||||
@@ -3,81 +3,19 @@
|
||||
<turbo-stream action="remove" target="active_monitors_no_monitors">
|
||||
</turbo-stream>
|
||||
|
||||
<turbo-stream action="append" target="monitors">
|
||||
<turbo-stream action="prepend" target="monitors">
|
||||
<template>
|
||||
<tr id="monitor_{{ entity.id }}">
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-stone-800 min-w-[50ch] max-w-[50ch] truncate">
|
||||
{{ entity.title }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800">
|
||||
{{ entity.searchCount }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800">
|
||||
{{ entity.createdAt|date('m/d/Y h:i a') }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800">
|
||||
{{ entity.lastSearch|date('m/d/Y h:i a') }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800">
|
||||
{% if entity.status == "New" %}
|
||||
<twig:StatusBadge color="orange" status="{{ entity.status }}" />
|
||||
{% elseif entity.status == "In Progress" or entity.status == "Active" %}
|
||||
<twig:StatusBadge color="purple" status="{{ entity.status }}" />
|
||||
{% else %}
|
||||
<twig:StatusBadge color="green" status="{{ entity.status }}" />
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="px-6 py-4 flex flex-row align-middle justify-center">
|
||||
<button {{ stimulus_action('monitor_list', 'deleteMonitor', 'click', {id: entity.id}) }}>
|
||||
<twig:ux:icon
|
||||
name="ic:twotone-cancel" width="18px"
|
||||
class="rounded-full align-middle text-red-600"
|
||||
title="Remove {{ entity.title }} from your Monitor list."
|
||||
/>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<twig:MonitorListRow monitor="{{ entity }}" />
|
||||
</template>
|
||||
</turbo-stream>
|
||||
{% endblock %}
|
||||
|
||||
{% block update %}
|
||||
<turbo-stream action="prepend" target="monitors">
|
||||
<template>
|
||||
<tr id="monitor_{{ entity.id }}">
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-stone-800 min-w-[50ch] max-w-[50ch] truncate">
|
||||
{{ entity.title }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800">
|
||||
{{ entity.searchCount }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800">
|
||||
{{ entity.createdAt|date('m/d/Y h:i a') }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800">
|
||||
{{ entity.lastSearch|date('m/d/Y h:i a') }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800">
|
||||
{% if entity.status == "New" %}
|
||||
<twig:StatusBadge color="orange" status="{{ entity.status }}" />
|
||||
{% elseif entity.status == "In Progress" or entity.status == "Active" %}
|
||||
<twig:StatusBadge color="purple" status="{{ entity.status }}" />
|
||||
{% else %}
|
||||
<twig:StatusBadge color="green" status="{{ entity.status }}" />
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="px-6 py-4 flex flex-row align-middle justify-center">
|
||||
<button {{ stimulus_action('monitor_list', 'deleteMonitor', 'click', {id: entity.id}) }}>
|
||||
<twig:ux:icon
|
||||
name="ic:twotone-cancel" width="18px"
|
||||
class="rounded-full align-middle text-red-600"
|
||||
title="Remove {{ entity.title }} from your Monitor list."
|
||||
/>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
</turbo-stream>
|
||||
<turbo-stream action="replace" target="monitor_{{ id }}">
|
||||
<template>
|
||||
<twig:MonitorListRow monitor="{{ entity }}" />
|
||||
</template>
|
||||
</turbo-stream>
|
||||
{% endblock %}
|
||||
|
||||
{% block remove %}
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
<div{{ attributes.defaults(stimulus_controller('download_list')) }} class="min-w-48" >
|
||||
<div{{ attributes.defaults(stimulus_controller('download_list', {isWidget: this.isWidget, perPage: this.perPage})) }} class="min-w-48" >
|
||||
{% set table_body_id = (type == "complete") ? "complete_downloads" : "active_downloads" %}
|
||||
{% if this.isWidget == true and this.downloads.items|length > this.perPage %}
|
||||
{% set show_view_all = true %}
|
||||
{% else %}
|
||||
{% set show_view_all = false %}
|
||||
{% endif %}
|
||||
|
||||
<table id="downloads" class="divide-y divide-gray-200 bg-gray-50 overflow-hidden rounded-lg table-auto w-full" {{ turbo_stream_listen('App\\Download\\Framework\\Entity\\Download') }}>
|
||||
<thead>
|
||||
<tr class="bg-orange-500 bg-filter bg-blur-lg bg-opacity-80 text-gray-950">
|
||||
@@ -31,50 +37,13 @@
|
||||
<tbody id="{{ table_body_id }}" class="divide-y divide-gray-200 dark:divide-gray-50">
|
||||
{% if this.downloads.items|length > 0 %}
|
||||
{% for download in this.downloads.items %}
|
||||
<tr id="ad_download_{{ download.id }}">
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-800 dark:text-stone-800 {% if this.isWidget == true %}min-w-[45ch] max-w-[45ch]{% endif %} truncate">
|
||||
{{ download.title }}
|
||||
</td>
|
||||
|
||||
{% if this.isWidget == false %}
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-800 dark:text-stone-800 truncate">
|
||||
{{ download.filename }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-800 dark:text-stone-800 truncate">
|
||||
{{ download.mediaType }}
|
||||
</td>
|
||||
{% endif %}
|
||||
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm align-middle text-gray-800 dark:text-gray-50">
|
||||
{% if download.progress < 100 %}
|
||||
<div class="border-2 border-green-700 rounded-md w-full h-6 align-middle overflow-hidden">
|
||||
<div class="text-green-700 rounded-sm text-bold text-gray-950 text-center bg-green-600 h-5"
|
||||
style="width:{{ download.progress }}%">
|
||||
{{ download.progress }}%
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<twig:StatusBadge color="green" status="Complete" />
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="px-6 py-4 flex flex-row align-middle justify-center">
|
||||
<button {{ stimulus_action('download_list', 'deleteDownload', 'click', {id: download.id}) }}>
|
||||
<twig:ux:icon
|
||||
name="ic:twotone-cancel" width="18px"
|
||||
class="rounded-full align-middle text-red-600"
|
||||
title="Remove {{ download.title }} from your Download list. This will not delete the file."
|
||||
/>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<twig:DownloadListRow download="{{ download }}" isWidget="{{ this.isWidget }}" perPage="{{ this.perPage }}" />
|
||||
{% endfor %}
|
||||
{% if this.isWidget == true and this.downloads.items|length > this.perPage %}
|
||||
<tr id="download_view_all">
|
||||
<td class="py-2 whitespace-nowrap bg-orange-300 uppercase text-xs font-medium text-center text-black truncate" colspan="100%">
|
||||
<a href="{{ path('app_downloads') }}">View All Downloads</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
<tr id="download_view_all" class="{{ show_view_all == false ?? "hidden" }}" {{ stimulus_target('download_list', 'viewAllBtn')}} >
|
||||
<td class="py-2 whitespace-nowrap bg-orange-300 uppercase text-xs font-medium text-center text-black truncate" colspan="100%">
|
||||
<a href="{{ path('app_downloads') }}">View All Downloads</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% else %}
|
||||
<tr id="{{ table_body_id }}_no_downloads">
|
||||
<td class="px-6 py-4 whitespace-nowrap text-xs uppercase text-center font-medium text-gray-800 dark:text-stone-800" colspan="100%">
|
||||
|
||||
36
templates/components/DownloadListRow.html.twig
Normal file
36
templates/components/DownloadListRow.html.twig
Normal file
@@ -0,0 +1,36 @@
|
||||
<tr{{ attributes }} id="ad_download_{{ download.id }}" {{ stimulus_target('download_list', 'downloadRow') }} isBroadcasted="{{ isBroadcasted ?? 'false' }}">
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-800 dark:text-stone-800 truncate">
|
||||
{{ download.title }}
|
||||
</td>
|
||||
|
||||
{% if isWidget == false %}
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-800 dark:text-stone-800 max-w-[60ch] truncate">
|
||||
{{ download.filename }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-800 dark:text-stone-800 truncate">
|
||||
{{ download.mediaType }}
|
||||
</td>
|
||||
{% endif %}
|
||||
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm align-middle text-gray-800 dark:text-gray-50">
|
||||
{% if download.progress < 100 %}
|
||||
<div id="download_progress_{{ download.id }}" class="border-2 border-green-600 rounded-md text-center w-full h-6 align-middle overflow-hidden">
|
||||
<div class="text-black text-center rounded-sm text-bold bg-green-300 h-5 relative z-10"
|
||||
style="width:{{ download.progress }}%">
|
||||
</div>
|
||||
<div class="absolute text-black text-center" style="z-index: 400;margin-top: -1.25rem; margin-left: 1.2rem">{{ download.progress }}%</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<twig:StatusBadge color="green" status="Complete" />
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="px-6 py-4 flex flex-row align-middle justify-center">
|
||||
<button {{ stimulus_action('download_list', 'deleteDownload', 'click', {id: download.id}) }}>
|
||||
<twig:ux:icon
|
||||
name="ic:twotone-cancel" width="18px"
|
||||
class="rounded-full align-middle text-red-600"
|
||||
title="Remove {{ download.title }} from your Download list. This will not delete the file."
|
||||
/>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -36,50 +36,7 @@
|
||||
<tbody id="monitors" class="divide-y divide-gray-50">
|
||||
{% if this.monitors.items|length > 0 %}
|
||||
{% for monitor in this.monitors.items %}
|
||||
<tr id="monitor_{{ monitor.id }}">
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-stone-800 truncate">
|
||||
{{ monitor.title }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800">
|
||||
{{ monitor|monitor_media_id }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800">
|
||||
{{ monitor.searchCount }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800">
|
||||
{{ monitor.createdAt|date('m/d/Y h:i a') }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800">
|
||||
{{ monitor.lastSearch|date('m/d/Y h:i a') }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800">
|
||||
{% if monitor.monitorType == "tvshow" %}
|
||||
<twig:StatusBadge color="blue" number="300" text="black" status="{{ monitor.monitorType|monitor_type }}" />
|
||||
{% elseif monitor.monitorType == "tvseason" %}
|
||||
<twig:StatusBadge color="orange" number="300" text="black" status="{{ monitor.monitorType|monitor_type }}" />
|
||||
{% else %}
|
||||
<twig:StatusBadge color="rose" number="300" text="black" status="{{ monitor.monitorType|monitor_type }}" />
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800">
|
||||
{% if monitor.status == "New" %}
|
||||
<twig:StatusBadge color="orange" status="{{ monitor.status }}" />
|
||||
{% elseif monitor.status == "In Progress" or monitor.status == "Active" %}
|
||||
<twig:StatusBadge color="purple" status="{{ monitor.status }}" />
|
||||
{% else %}
|
||||
<twig:StatusBadge color="green" status="{{ monitor.status }}" />
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="px-6 py-4 flex flex-row align-middle justify-center">
|
||||
<button {{ stimulus_action('monitor_list', 'deleteMonitor', 'click', {id: monitor.id}) }}>
|
||||
<twig:ux:icon
|
||||
name="ic:twotone-cancel" width="18px"
|
||||
class="rounded-full align-middle text-red-600"
|
||||
title="Remove {{ monitor.title }} from your Monitor list."
|
||||
/>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<twig:MonitorListRow :monitor="monitor" />
|
||||
{% endfor %}
|
||||
{% if this.isWidget and this.monitors.items|length > 5 %}
|
||||
<tr id="monitor_view_all">
|
||||
|
||||
44
templates/components/MonitorListRow.html.twig
Normal file
44
templates/components/MonitorListRow.html.twig
Normal file
@@ -0,0 +1,44 @@
|
||||
<tr{{ attributes }} id="monitor_{{ monitor.id }}">
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-stone-800 truncate">
|
||||
{{ monitor.title }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800">
|
||||
{{ monitor|monitor_media_id }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800">
|
||||
{{ monitor.searchCount }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800">
|
||||
{{ monitor.createdAt|date('m/d/Y h:i a') }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800">
|
||||
{{ monitor.lastSearch|date('m/d/Y h:i a') }}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800">
|
||||
{% if monitor.monitorType == "tvshow" %}
|
||||
<twig:StatusBadge color="blue" number="300" text="black" status="{{ monitor.monitorType|monitor_type }}" />
|
||||
{% elseif monitor.monitorType == "tvseason" %}
|
||||
<twig:StatusBadge color="orange" number="300" text="black" status="{{ monitor.monitorType|monitor_type }}" />
|
||||
{% else %}
|
||||
<twig:StatusBadge color="fuchsia" number="300" text="black" status="{{ monitor.monitorType|monitor_type }}" />
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-800">
|
||||
{% if monitor.status == "New" %}
|
||||
<twig:StatusBadge color="orange" status="{{ monitor.status }}" />
|
||||
{% elseif monitor.status == "In Progress" or monitor.status == "Active" %}
|
||||
<twig:StatusBadge color="purple" status="{{ monitor.status }}" />
|
||||
{% else %}
|
||||
<twig:StatusBadge color="green" status="{{ monitor.status }}" />
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="px-6 py-4 flex flex-row align-middle justify-center">
|
||||
<button {{ stimulus_action('monitor_list', 'deleteMonitor', 'click', {id: monitor.id}) }}>
|
||||
<twig:ux:icon
|
||||
name="ic:twotone-cancel" width="18px"
|
||||
class="rounded-full align-middle text-red-600"
|
||||
title="Remove {{ monitor.title }} from your Monitor list."
|
||||
/>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
Reference in New Issue
Block a user