实现根据后端数据加载模板

This commit is contained in:
2025-09-14 06:40:17 +00:00
parent 6df94872b3
commit e851832d58

View File

@@ -1,54 +1,47 @@
{{template "base/head" .}}
<div role="main" aria-label="{{.Title}}" class="page-content repository new migrate">
<div class="ui middle very relaxed page grid">
<div class="column">
<div class="ui cards migrate-entries">
<a class="ui card migrate-entry tw-flex tw-items-center" href="{{AppSubUrl}}/repo/create">
{{svg "devstar-favicon" 184 "tw-p-4"}}
<div class="content">
<div class="header tw-text-center">
{{ctx.Locale.Tr "repo.create_from_template_name_one"}}
</div>
<div class="description tw-text-center tw-text-balance">
{{ctx.Locale.Tr "repo.create_from_template_description_one"}}
</div>
</div>
</a>
<a class="ui card migrate-entry tw-flex tw-items-center" href="{{AppSubUrl}}/repo/create">
{{svg "devstar-favicon" 184 "tw-p-4"}}
<div class="content">
<div class="header tw-text-center">
{{ctx.Locale.Tr "repo.create_from_template_name_two"}}
</div>
<div class="description tw-text-center tw-text-balance">
{{ctx.Locale.Tr "repo.create_from_template_description_two"}}
</div>
</div>
</a>
<a class="ui card migrate-entry tw-flex tw-items-center" href="{{AppSubUrl}}/repo/create">
{{svg "devstar-favicon" 184 "tw-p-4"}}
<div class="content">
<div class="header tw-text-center">
{{ctx.Locale.Tr "repo.create_from_template_name_three"}}
</div>
<div class="description tw-text-center tw-text-balance">
{{ctx.Locale.Tr "repo.create_from_template_description_three"}}
</div>
</div>
</a>
<a class="ui card migrate-entry tw-flex tw-items-center" href="{{AppSubUrl}}/repo/create">
{{svg "devstar-favicon" 184 "tw-p-4"}}
<div class="content">
<div class="header tw-text-center">
{{ctx.Locale.Tr "repo.create_from_template_name_four"}}
</div>
<div class="description tw-text-center tw-text-balance">
{{ctx.Locale.Tr "repo.create_from_template_description_four"}}
</div>
</div>
</a>
</div>
</div>
</div>
<div class="ui middle very relaxed page grid">
<div class="column">
<div class="ui cards migrate-entries" id="template-cards">
<div class="ui active inverted dimmer">
<div class="ui text loader">加载模板中...</div>
</div>
</div>
</div>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function () {
const cardsContainer = document.getElementById('template-cards');
fetch('https://devstar.cn/api/v1/repos/search?template=true')
.then(response => response.json())
.then(data => {
cardsContainer.innerHTML = '';
if (data.data && data.data.length > 0) {
data.data.forEach(repo => {
const card = `
<a class="ui card migrate-entry tw-flex tw-items-center"
href="{{.AppSubUrl}}/repo/create?template_owner=${repo.owner.login}&template_name=${repo.name}">
<img src="/assets/img/favicon.svg" width="184" height="184" class="tw-p-4" alt="${repo.name}" />
<div class="content">
<div class="header tw-text-center">${repo.name}</div>
<div class="description tw-text-center tw-text-balance">${repo.description}</div>
</div>
</a>
`;
cardsContainer.insertAdjacentHTML('beforeend', card);
});
} else {
cardsContainer.innerHTML = '<div class="ui warning message">未找到任何模板</div>';
}
})
.catch(error => {
console.error('获取模板数据失败:', error);
cardsContainer.innerHTML = '<div class="ui error message">加载模板失败</div>';
});
});
</script>
{{template "base/footer" .}}