Немного не понял, что вы имели в виду. То есть в собственно писанной таблице я тоже могу каким-то образом прикреплять свойства таблицы соответствующими типа приложений?
Отвлекался на сессию, а так в целом у меня получилось сделать то что хотел
Получилось вывести кликабельные ссылки в таблицу, но явно нерациональным способом, потому что для подгрузки всего 18 элементов требуется около 5 секунд, что просто вводит меня в депрессию. (Таблица самописная, стили попытался сделать, как у обычной виджет таблицы).
Я просто взял и завел в сценарии два массива типа string, при помощи fetch дождался получения имен пользователей и запушил в эти массивы все результаты. После чего приравнял их viewcontext переменным произвольного типа и при помощи вставок ejs навел, как по мне, ужасный, но рабочий код. Также попытался поработать с foreach, но меня js заставляет использовать async в стрелочной функции из-за чего подгрузка информации о пользователях не успевает за отображением таблицы. Если несложно подскажите возможные пути оптимизации того, что я натворил.
Код:
const items = await Context.fields.razdely.fetchAll();
let x: number = Context.data.razdely!.length;
for (var i = 0; i < x; i++)
{
user_created.push((await items[i].data.__createdBy.fetch()).data.__name)
user_updated.push((await items[i].data.__updatedBy.fetch()).data.__name)
}
ViewContext.data.mainInfo = items;
ViewContext.data.polzovatelCreator = user_created
ViewContext.data.polzovatelEditor = user_updated
HTML:
<div class="scroll-table">
<table>
<thead>
<tr>
<th width = "4%" class="active">
<input type="checkbox" class="select-all checkbox" name="select-all" />
</th>
<th width = "13%">Раздел</th>
<th width = "25%">Описание</th>
<th width = "18%">Дата создания</th>
<th width = "12%">Создан</th>
<th width = "18%">Дата редактирования</th>
<th width = "12%">Редактирован</th>
</tr>
</thead>
</table>
<div class="scroll-table-body" id="mytable">
<table>
<tbody>
<%
var i = 0;
for (const item of ViewContext.data.testovaya) { %>
<tr>
<td width = "4%" class="active">
<input type="checkbox" class="select-item checkbox" name="select-item" value=item />
</td>
<td width = "13%"> <a href='(p:item/ServiceDesk/razdely/<%= item.data.__id %>)'><%= item.data.__name %></a> </td>
<td width = "25%"> <%= item.data.opisanie %> </td>
<td width = "18%"> <%= item.data.__createdAt.format("hh:mm:ss DD/MM/YYYY") %> </td>
<td width = "12%"> <a href='profile/<%= item.data.__createdBy.id %>'> <%= ViewContext.data.eshetest[i] %> </a> </td>
<td width = "18%"> <%= item.data.__updatedAt.format("hh:mm:ss DD/MM/YYYY") %> </td>
<td width = "12%"> <a href='profile/<%= item.data.__updatedBy.id %>'> <%= ViewContext.data.polzovatelredaktor[i] %> </a> </td>
</tr>
<% i++; %>
<% }
%>
</tbody>
</table>
</div>
</div>