mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-30 15:43:52 +03:00
refactor PageData to pageData
This commit is contained in:
parent
b0c049427b
commit
f1eb3784d0
7 changed files with 9 additions and 9 deletions
|
@ -36,7 +36,7 @@ Guidelines specialized for Gitea:
|
||||||
3. HTML ids and classes used in JavaScript should be unique for the whole project, and should contain 2-3 feature related keywords. We recommend to use the `js-` prefix for classes that are only used in JavaScript.
|
3. HTML ids and classes used in JavaScript should be unique for the whole project, and should contain 2-3 feature related keywords. We recommend to use the `js-` prefix for classes that are only used in JavaScript.
|
||||||
4. jQuery events across different features should use their own namespaces.
|
4. jQuery events across different features should use their own namespaces.
|
||||||
5. CSS styling for classes provided by frameworks should not be overwritten. Always use new class-names to overwrite framework styles. We recommend to use the `us-` prefix for user defined styles.
|
5. CSS styling for classes provided by frameworks should not be overwritten. Always use new class-names to overwrite framework styles. We recommend to use the `us-` prefix for user defined styles.
|
||||||
6. The backend can pass complex data to the frontend by using `ctx.PageData["myModuleData"] = map{}`
|
6. The backend can pass complex data to the frontend by using `ctx.PageData["myModuleData"] = map[]{}`
|
||||||
7. Simple pages and SEO-related pages use Go HTML Template render to generate static Fomantic-UI HTML output. Complex pages can use Vue2 (or Vue3 in future).
|
7. Simple pages and SEO-related pages use Go HTML Template render to generate static Fomantic-UI HTML output. Complex pages can use Vue2 (or Vue3 in future).
|
||||||
|
|
||||||
## Legacy Problems and Solutions
|
## Legacy Problems and Solutions
|
||||||
|
|
|
@ -51,7 +51,7 @@ type Context struct {
|
||||||
Resp ResponseWriter
|
Resp ResponseWriter
|
||||||
Req *http.Request
|
Req *http.Request
|
||||||
Data map[string]interface{} // data used by MVC templates
|
Data map[string]interface{} // data used by MVC templates
|
||||||
PageData map[string]interface{} // data used by JavaScript modules in one page
|
PageData map[string]interface{} // data used by JavaScript modules in one page, it's `window.config.pageData`
|
||||||
Render Render
|
Render Render
|
||||||
translation.Locale
|
translation.Locale
|
||||||
Cache cache.Cache
|
Cache cache.Cache
|
||||||
|
@ -648,7 +648,7 @@ func Contexter() func(next http.Handler) http.Handler {
|
||||||
"IsProd": setting.IsProd(),
|
"IsProd": setting.IsProd(),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
// PageData is passed by reference, and it will be rendered to `window.config.PageData` in `head.tmpl` for JavaScript modules
|
// PageData is passed by reference, and it will be rendered to `window.config.pageData` in `head.tmpl` for JavaScript modules
|
||||||
ctx.PageData = map[string]interface{}{}
|
ctx.PageData = map[string]interface{}{}
|
||||||
ctx.Data["PageData"] = ctx.PageData
|
ctx.Data["PageData"] = ctx.PageData
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
CustomEmojis: {{CustomEmojis}},
|
CustomEmojis: {{CustomEmojis}},
|
||||||
UseServiceWorker: {{UseServiceWorker}},
|
UseServiceWorker: {{UseServiceWorker}},
|
||||||
csrf: '{{.CsrfToken}}',
|
csrf: '{{.CsrfToken}}',
|
||||||
PageData: {{ .PageData }},
|
pageData: {{ .PageData }},
|
||||||
HighlightJS: {{if .RequireHighlightJS}}true{{else}}false{{end}},
|
HighlightJS: {{if .RequireHighlightJS}}true{{else}}false{{end}},
|
||||||
SimpleMDE: {{if .RequireSimpleMDE}}true{{else}}false{{end}},
|
SimpleMDE: {{if .RequireSimpleMDE}}true{{else}}false{{end}},
|
||||||
Tribute: {{if .RequireTribute}}true{{else}}false{{end}},
|
Tribute: {{if .RequireTribute}}true{{else}}false{{end}},
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
{{end}}
|
{{end}}
|
||||||
|
|
||||||
<!-- I know, there is probably a better way to do this (moved from sidebar.tmpl, original author: 6543 @ 2021-02-28) -->
|
<!-- I know, there is probably a better way to do this (moved from sidebar.tmpl, original author: 6543 @ 2021-02-28) -->
|
||||||
<!-- Agree, there should be a better way, eg: introduce window.config.PageData (original author: wxiaoguang @ 2021-09-05) -->
|
<!-- Agree, there should be a better way, eg: introduce window.config.pageData (original author: wxiaoguang @ 2021-09-05) -->
|
||||||
<input type="hidden" id="repolink" value="{{$.RepoRelPath}}">
|
<input type="hidden" id="repolink" value="{{$.RepoRelPath}}">
|
||||||
<input type="hidden" id="repoId" value="{{.Repository.ID}}">
|
<input type="hidden" id="repoId" value="{{.Repository.ID}}">
|
||||||
<input type="hidden" id="issueIndex" value="{{.Issue.Index}}"/>
|
<input type="hidden" id="issueIndex" value="{{.Issue.Index}}"/>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import {initVueSvg, vueDelimiters} from './VueComponentLoader.js';
|
import {initVueSvg, vueDelimiters} from './VueComponentLoader.js';
|
||||||
|
|
||||||
const {AppSubUrl, AssetUrlPrefix, PageData} = window.config;
|
const {AppSubUrl, AssetUrlPrefix, pageData} = window.config;
|
||||||
|
|
||||||
function initVueComponents() {
|
function initVueComponents() {
|
||||||
Vue.component('repo-search', {
|
Vue.component('repo-search', {
|
||||||
|
@ -350,7 +350,7 @@ function initVueComponents() {
|
||||||
|
|
||||||
function initDashboardRepoList() {
|
function initDashboardRepoList() {
|
||||||
const el = document.getElementById('dashboard-repo-list');
|
const el = document.getElementById('dashboard-repo-list');
|
||||||
const dashboardRepoListData = PageData.dashboardRepoList || null;
|
const dashboardRepoListData = pageData.dashboardRepoList || null;
|
||||||
if (!el || !dashboardRepoListData) return;
|
if (!el || !dashboardRepoListData) return;
|
||||||
|
|
||||||
initVueSvg();
|
initVueSvg();
|
||||||
|
|
|
@ -68,7 +68,7 @@ const sfc = {
|
||||||
// * home_link: (...)
|
// * home_link: (...)
|
||||||
// * login: (...)
|
// * login: (...)
|
||||||
// * name: (...)
|
// * name: (...)
|
||||||
activityTopAuthors: window.config.PageData.repoActivityTopAuthors || [],
|
activityTopAuthors: window.config.pageData.repoActivityTopAuthors || [],
|
||||||
}),
|
}),
|
||||||
computed: {
|
computed: {
|
||||||
graphPoints() {
|
graphPoints() {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
export function initAdminUserListSearchForm() {
|
export function initAdminUserListSearchForm() {
|
||||||
const searchForm = window.config.PageData.adminUserListSearchForm;
|
const searchForm = window.config.pageData.adminUserListSearchForm;
|
||||||
if (!searchForm) return;
|
if (!searchForm) return;
|
||||||
|
|
||||||
const $form = $('#user-list-search-form');
|
const $form = $('#user-list-search-form');
|
||||||
|
|
Loading…
Reference in a new issue