2022-08-20 20:30:04 +03:00
|
|
|
|
{extends "../@layout.xml"}
|
|
|
|
|
|
2022-08-20 23:59:25 +03:00
|
|
|
|
{block title}{_bug_tracker}{/block}
|
2022-08-20 20:30:04 +03:00
|
|
|
|
|
|
|
|
|
{block header}
|
2022-08-20 23:59:25 +03:00
|
|
|
|
{_bug_tracker}
|
2022-08-20 20:30:04 +03:00
|
|
|
|
{/block}
|
|
|
|
|
|
|
|
|
|
{block content}
|
|
|
|
|
<div class="tabs">
|
|
|
|
|
<div n:attr='id => $mode === "list" ? "activetabs" : false' class="tab">
|
|
|
|
|
<a n:attr='id => $mode === "list" ? "act_tab_a" : false' href="/bugtracker">
|
2022-08-20 23:59:25 +03:00
|
|
|
|
{_bug_tracker_reports}
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
<div n:attr='id => $mode === "products" ? "activetabs" : false' class="tab">
|
|
|
|
|
<a n:attr='id => $mode === "products" ? "act_tab_a" : false' href="/bugtracker?act=products">
|
2022-08-20 23:59:25 +03:00
|
|
|
|
{_bug_tracker_products}
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
<div n:attr='id => $mode === "reporter" ? "activetabs" : false' class="tab">
|
|
|
|
|
<a n:attr='id => $mode === "reporter" ? "act_tab_a" : false' href="/bugtracker?act=reporter&id={$user->id}">
|
2022-08-20 23:59:25 +03:00
|
|
|
|
{_bug_tracker_reporter_card}
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
<div n:if='in_array($mode, ["list", "new"])' n:attr='id => $mode === "new" ? "activetabs" : false' class="tab" style="float: right;">
|
|
|
|
|
<a n:attr='id => $mode === "new" ? "act_tab_a" : false' href="/bugtracker?act=new">
|
2022-08-20 23:59:25 +03:00
|
|
|
|
{_create}
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</a>
|
|
|
|
|
</div>
|
2022-08-23 02:40:11 +03:00
|
|
|
|
<div n:if='in_array($mode, ["products", "new_product"]) AND $isModerator' n:attr='id => $mode === "new_product" ? "activetabs" : false' class="tab" style="float: right;">
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<a n:attr='id => $mode === "new_product" ? "act_tab_a" : false' href="/bugtracker?act=new_product">
|
2022-08-20 23:59:25 +03:00
|
|
|
|
{_create}
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<br><br>
|
|
|
|
|
{if $mode === "list"}
|
|
|
|
|
{if $count < 1}
|
|
|
|
|
{include "../components/nothing.xml"}
|
|
|
|
|
{/if}
|
|
|
|
|
<table border="0" style="font-size: 11px; width: 100%;" class="post">
|
|
|
|
|
<tbody>
|
|
|
|
|
<tr n:foreach="$iterator as $bug">
|
2022-08-23 02:40:11 +03:00
|
|
|
|
{var $isHidden = !$bug->getProduct()->hasAccess($user->identity)}
|
|
|
|
|
<td width="54">
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<center>
|
|
|
|
|
<img src="/assets/packages/static/openvk/img/note_icon.png">
|
|
|
|
|
</center>
|
|
|
|
|
</td>
|
|
|
|
|
<td width="92%" valign="top">
|
|
|
|
|
<div class="post-author" href="#">
|
2022-08-23 02:40:11 +03:00
|
|
|
|
<a n:attr="href => !$isHidden ? '/bug' . $bug->getId() : false">
|
|
|
|
|
<b>
|
|
|
|
|
{!$isHidden ? $bug->getCanonicalName() : "Скрытый отчёт"}
|
|
|
|
|
</b>
|
|
|
|
|
<span n:if="!$isHidden">#{$bug->getId()}</span>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="post-content" style="padding: 4px 0; font-size: 11px;">
|
2022-08-23 02:40:11 +03:00
|
|
|
|
<table n:if="!$isHidden" id="basicInfo" class="ugc-table group_info" cellspacing="0" cellpadding="0" border="0">
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<tbody>
|
|
|
|
|
<tr>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<td class="label"><span class="nobold">{_bug_tracker_product}:</span></td>
|
2022-08-22 02:11:48 +03:00
|
|
|
|
<td class="data"><a href="/bugtracker?act=products">{$bug->getProduct()->getCanonicalName()}</a></td>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<td class="label"><span class="nobold">{_bug_tracker_sent_by}: </span></td>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<td class="data">
|
|
|
|
|
<a href="/bugtracker?act=reporter&id={$bug->getReporter()->getId()}">{$bug->getReporter()->getCanonicalName()}</a>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<td class="label"><span class="nobold">{_bug_tracker_reproduced}:</span></td>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<td class="data"><a href="#">{tr("participants", $bug->getReproducedCount())}</a></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<td class="label"><span class="nobold">{_status}:</span></td>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<td class="data"><a href="#">{$bug->getStatus()}</a></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2022-08-22 02:11:48 +03:00
|
|
|
|
<td class="label"><span class="nobold">{_bug_tracker_priority}:</span></td>
|
2022-08-22 12:59:19 +03:00
|
|
|
|
<td class="data"><a href="/bugtracker?priority={$bug->getRawPriority()}" n:attr="style => $bug->getRawPriority() === 5 ? 'color: red; font-weight: 700;' : false">{$bug->getPriority()}</a></td>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</tr>
|
2022-08-22 02:11:48 +03:00
|
|
|
|
<tr>
|
|
|
|
|
<td class="label"><span class="nobold">{_created}:</span></td>
|
|
|
|
|
<td class="data"><a href="#">{$bug->getCreationTime()}</a></td>
|
|
|
|
|
</tr>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
2022-08-23 02:40:11 +03:00
|
|
|
|
<table n:if="$isHidden" id="basicInfo" class="ugc-table group_info" cellspacing="0" cellpadding="0" border="0" style="filter: blur(3px)">
|
|
|
|
|
<tbody>
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="label">
|
|
|
|
|
<span class="nobold">{_bug_tracker_product}:</span>
|
|
|
|
|
</td>
|
|
|
|
|
<td class="data">
|
|
|
|
|
<a>AbcdEFGH</a>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="label">
|
|
|
|
|
<span class="nobold">{_bug_tracker_sent_by}: </span>
|
|
|
|
|
</td>
|
|
|
|
|
<td class="data">
|
|
|
|
|
<a>John Doe</a>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="label">
|
|
|
|
|
<span class="nobold">{_bug_tracker_reproduced}:</span>
|
|
|
|
|
</td>
|
|
|
|
|
<td class="data">
|
|
|
|
|
<a>...</a>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="label">
|
|
|
|
|
<span class="nobold">{_status}:</span>
|
|
|
|
|
</td>
|
|
|
|
|
<td class="data">
|
|
|
|
|
<a href="#">...</a>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="label">
|
|
|
|
|
<span class="nobold">{_bug_tracker_priority}:</span>
|
|
|
|
|
</td>
|
|
|
|
|
<td class="data">
|
|
|
|
|
<a>...</a>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="label">
|
|
|
|
|
<span class="nobold">{_created}:</span>
|
|
|
|
|
</td>
|
|
|
|
|
<td class="data">
|
|
|
|
|
<a>...</a>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</div>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
<div style="padding: 8px;">
|
|
|
|
|
{include "../components/paginator.xml", conf => (object) [
|
|
|
|
|
"page" => $page,
|
|
|
|
|
"count" => $count,
|
|
|
|
|
"amount" => sizeof($iterator),
|
|
|
|
|
"perPage" => 5,
|
|
|
|
|
"atBottom" => true,
|
|
|
|
|
]}
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{elseif $mode === "new"}
|
|
|
|
|
<form method="post" action="/bugtracker/create">
|
|
|
|
|
<input name="title" type="text" placeholder="Название отчёта">
|
|
|
|
|
<br><br>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<textarea placeholder="{_bug_tracker_bug_description}" name="text" style="width: 100%; resize: vertical;"></textarea>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<br><br>
|
|
|
|
|
<select name="product">
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<option disabled>{_bug_tracker_product}</option>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<option n:foreach="$open_products as $product" value="{$product->getId()}">{$product->getCanonicalName()}</option>
|
|
|
|
|
</select>
|
|
|
|
|
<br><br>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<h4>{_bug_tracker_priority}</h4>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<table>
|
|
|
|
|
<tbody>
|
|
|
|
|
<tr>
|
|
|
|
|
<td><input type="radio" name="priority" value="0"></td>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<td><label for="priority_1">{_bug_tracker_priority_feature}</label></td>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td><input type="radio" name="priority" value="1"></td>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<td><label for="priority_2">{_bug_tracker_priority_low}</label></td>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td><input type="radio" name="priority" value="2"></td>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<td><label for="priority_3">{_bug_tracker_priority_medium}</label></td>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td><input type="radio" name="priority" value="3"></td>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<td><label for="priority_4">{_bug_tracker_priority_high}</label></td>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td><input type="radio" name="priority" value="4"></td>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<td><label for="priority_5">{_bug_tracker_priority_critical}</label></td>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td><input type="radio" name="priority" value="5"></td>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<td><label for="priority_6">{_bug_tracker_priority_vulnerability}</label></td>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
<br>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<input type="text" name="device" placeholder="{_bug_tracker_device}">
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<br>
|
|
|
|
|
<br>
|
|
|
|
|
<input type="hidden" name="hash" value="{$csrfToken}" />
|
|
|
|
|
<input type="submit" value="{_write}" class="button" style="float: right;" />
|
|
|
|
|
<br><br>
|
|
|
|
|
</form>
|
|
|
|
|
|
|
|
|
|
{elseif $mode === "products"}
|
2022-08-23 02:40:11 +03:00
|
|
|
|
<div>
|
|
|
|
|
<div n:attr='id => $filter === "all" ? "activetabs" : false' class="tab">
|
|
|
|
|
<a n:attr='id => $filter === "all" ? "act_tab_a" : false' href="/bugtracker?act=products">
|
|
|
|
|
Все
|
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
<div n:attr='id => $filter === "open" ? "activetabs" : false' class="tab">
|
|
|
|
|
<a n:attr='id => $filter === "open" ? "act_tab_a" : false' href="/bugtracker?act=products&filter=open">
|
|
|
|
|
Открытые
|
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
<div n:attr='id => $filter === "closed" ? "activetabs" : false' class="tab">
|
|
|
|
|
<a n:attr='id => $filter === "closed" ? "act_tab_a" : false' href="/bugtracker?act=products&filter=closed">
|
|
|
|
|
Закрытые
|
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
<div n:attr='id => $filter === "private" ? "activetabs" : false' class="tab">
|
|
|
|
|
<a n:attr='id => $filter === "private" ? "act_tab_a" : false' href="/bugtracker?act=products&filter=private">
|
|
|
|
|
Приватные
|
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<br>
|
|
|
|
|
{if $count < 1}
|
|
|
|
|
{include "../components/nothing.xml"}
|
|
|
|
|
{/if}
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<table border="0" style="font-size: 11px; width: 100%;" class="post">
|
|
|
|
|
<tbody>
|
2022-08-22 02:11:48 +03:00
|
|
|
|
<tr n:foreach="$iterator as $product">
|
2022-08-23 02:40:11 +03:00
|
|
|
|
<td width="54">
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<center>
|
|
|
|
|
<img src="/assets/packages/static/openvk/img/note_icon.png">
|
|
|
|
|
</center>
|
|
|
|
|
</td>
|
|
|
|
|
<td width="92%" valign="top">
|
|
|
|
|
<div class="post-author" href="#">
|
2022-08-22 02:11:48 +03:00
|
|
|
|
<a href="/bugtracker?product={$product->getId()}">
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<b>{$product->getCanonicalName()}</b>
|
|
|
|
|
<span>#{$product->getId()}</span>
|
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="post-content" style="padding: 4px 0; font-size: 11px;">
|
2022-08-23 02:40:11 +03:00
|
|
|
|
<div n:if="$product->getDescription()" style="padding: 4px; font-size: 11px;">
|
|
|
|
|
{$product->getDescription()}
|
|
|
|
|
<hr color="#DAE1E8" size="1">
|
|
|
|
|
</div>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<table id="basicInfo" class="ugc-table group_info" cellspacing="0" cellpadding="0" border="0">
|
|
|
|
|
<tbody>
|
|
|
|
|
<tr>
|
2022-08-22 02:11:48 +03:00
|
|
|
|
<td class="label"><span class="nobold">{_bug_tracker_product}:</span></td>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<td class="data">
|
2022-08-22 02:11:48 +03:00
|
|
|
|
<a href="/bugtracker?product={$product->getId()}">{$product->getCanonicalName()}</a>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<b n:if="$product->isClosed()">({_bug_tracker_product_is_closed})</b>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
2022-08-22 02:11:48 +03:00
|
|
|
|
<tr n:if="$isModerator">
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<td class="label"><span class="nobold">{_bug_tracker_product_created_by}: </span></td>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<td class="data">
|
|
|
|
|
<a href="/bugtracker?act=reporter&id={$product->getCreator()->getId()}">{$product->getCreator()->getCanonicalName()}</a>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<td class="label"><span class="nobold">{_bug_tracker_product_creation_date}:</span></td>
|
2022-08-22 02:11:48 +03:00
|
|
|
|
<td class="data"><a href="#">{$product->getCreationTime()}</a></td>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</tr>
|
2022-08-23 02:40:11 +03:00
|
|
|
|
<tr n:if="$isModerator">
|
|
|
|
|
<td class="label"><span class="nobold">действия:</span></td>
|
|
|
|
|
<td class="data" style="width: 100% !important;">
|
|
|
|
|
<span>
|
|
|
|
|
<a
|
|
|
|
|
onClick="showBtProductStatusDialog([{$product->getId()}, {$product->getCanonicalName()}], {$csrfToken})"
|
|
|
|
|
>
|
|
|
|
|
закрытый
|
|
|
|
|
</a>
|
|
|
|
|
・
|
|
|
|
|
<a
|
|
|
|
|
onClick="showBtPrivateProductDialog([{$product->getId()}, {$product->getCanonicalName()}], {$csrfToken})"
|
|
|
|
|
>
|
|
|
|
|
приватный
|
|
|
|
|
</a>
|
|
|
|
|
・
|
|
|
|
|
<a onClick="showBtProductAccessDialog([{$product->getId()}, {$product->getCanonicalName()}], {$csrfToken})">
|
|
|
|
|
доступ
|
|
|
|
|
</a>
|
|
|
|
|
</span>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
2022-08-22 02:11:48 +03:00
|
|
|
|
<div style="padding: 8px;">
|
|
|
|
|
{include "../components/paginator.xml", conf => (object) [
|
|
|
|
|
"page" => $page,
|
|
|
|
|
"count" => $count,
|
|
|
|
|
"amount" => sizeof($iterator),
|
|
|
|
|
"perPage" => 5,
|
|
|
|
|
"atBottom" => true,
|
|
|
|
|
]}
|
|
|
|
|
</div>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
|
|
|
|
|
{elseif $mode === "new_product"}
|
|
|
|
|
<form method="post" action="/bugtracker/createProduct">
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<input type="text" name="title" placeholder="{_bug_tracker_product_name}">
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<br><br>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<textarea placeholder="{_bug_tracker_product_description}" name="description" style="width: 100%; resize: vertical;"></textarea>
|
2022-08-23 02:40:11 +03:00
|
|
|
|
<div style="display: inline;">
|
|
|
|
|
<input id="is_closed" type="checkbox" name="is_closed">
|
|
|
|
|
<label for="is_closed">Закрытый</label>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
|
2022-08-23 02:40:11 +03:00
|
|
|
|
<input id="is_private" type="checkbox" name="is_private">
|
|
|
|
|
<label for="is_private">Приватный</label>
|
|
|
|
|
</div>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<input type="hidden" name="hash" value="{$csrfToken}" />
|
|
|
|
|
<br><br>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<input type="submit" value="{_create}" class="button" style="float: right;" />
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<br><br>
|
|
|
|
|
</form>
|
|
|
|
|
|
|
|
|
|
{elseif $mode === "reporter"}
|
|
|
|
|
<div n:if="$reporter">
|
|
|
|
|
<div class="avatar-list-item" style="padding: 8px;">
|
|
|
|
|
<div class="avatar">
|
|
|
|
|
<a href="{$reporter->getURL()}">
|
|
|
|
|
<img class="ava" src="{$reporter->getAvatarURL()}">
|
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="info" style="width: 92%">
|
|
|
|
|
<a href="{$reporter->getURL()}" class="title">{$reporter->getCanonicalName()}</a>
|
2022-08-22 02:11:48 +03:00
|
|
|
|
<b n:if="$reporter->isBtModerator() AND $isModerator">[Модератор]</b>
|
|
|
|
|
<div>{tr("bug_tracker_reporter_card_text", $reporter_stats[0], $reporter_stats[1])}</div>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<table border="0" style="font-size: 11px; width: 100%;" class="post">
|
|
|
|
|
<tbody>
|
|
|
|
|
<tr n:foreach="$iterator as $bug">
|
|
|
|
|
<td width="54" >
|
|
|
|
|
<center>
|
|
|
|
|
<img src="/assets/packages/static/openvk/img/note_icon.png">
|
|
|
|
|
</center>
|
|
|
|
|
</td>
|
|
|
|
|
<td width="92%" valign="top">
|
|
|
|
|
<div class="post-author" href="#">
|
|
|
|
|
<a href="/bug{$bug->getId()}">
|
|
|
|
|
<b>{$bug->getCanonicalName()}</b>
|
|
|
|
|
<span>#{$bug->getId()}</span>
|
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="post-content" style="padding: 4px 0; font-size: 11px;">
|
|
|
|
|
<table id="basicInfo" class="ugc-table group_info" cellspacing="0" cellpadding="0" border="0">
|
|
|
|
|
<tbody>
|
|
|
|
|
<tr>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<td class="label"><span class="nobold">{_bug_tracker_product}:</span></td>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<td class="data"><a href="#">{$bug->getProduct()->getCanonicalName()}</a></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<td class="label"><span class="nobold">{_bug_tracker_sent_by}: </span></td>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<td class="data">
|
|
|
|
|
<a href="/bugtracker?act=reporter&id={$bug->getReporter()->getId()}">{$bug->getReporter()->getCanonicalName()}</a>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<td class="label"><span class="nobold">{_bug_tracker_reproduced}:</span></td>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<td class="data"><a href="#">{tr("participants", $bug->getReproducedCount())}</a></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<td class="label"><span class="nobold">{_status}:</span></td>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<td class="data"><a href="#">{$bug->getStatus()}</a></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<td class="label"><span class="nobold">{_bug_tracker_priority}:</span></td>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
<td class="data"><a href="#">{$bug->getPriority()}</a></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
<div style="padding: 8px;">
|
|
|
|
|
{include "../components/paginator.xml", conf => (object) [
|
|
|
|
|
"page" => $page,
|
|
|
|
|
"count" => $count,
|
|
|
|
|
"amount" => sizeof($iterator),
|
|
|
|
|
"perPage" => 5,
|
|
|
|
|
"atBottom" => true,
|
|
|
|
|
]}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div n:if="!$reporter">
|
2022-08-20 23:59:25 +03:00
|
|
|
|
<center>{_profile_not_found}</center>
|
2022-08-20 20:30:04 +03:00
|
|
|
|
</div>
|
|
|
|
|
{/if}
|
|
|
|
|
{/block}
|