实现根据后端数据加载模板
This commit is contained in:
@@ -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" .}}
|
||||
|
Reference in New Issue
Block a user