mirror of
https://github.com/osmarks/mycorrhiza.git
synced 2024-10-30 03:36:16 +00:00
b1cdb1e279
All the remaining QTPL files were spread across the codebase. The plan is to get rid of them step by step and migrate to the new l10n approach, all based on Go std templates.
162 lines
5.9 KiB
Plaintext
162 lines
5.9 KiB
Plaintext
{% import "net/http" %}
|
|
{% import "strings" %}
|
|
{% import "path" %}
|
|
{% import "os" %}
|
|
|
|
{% import "github.com/bouncepaw/mycorrhiza/cfg" %}
|
|
{% import "github.com/bouncepaw/mycorrhiza/hyphae" %}
|
|
{% import "github.com/bouncepaw/mycorrhiza/categories" %}
|
|
{% import "github.com/bouncepaw/mycorrhiza/l18n" %}
|
|
{% import "github.com/bouncepaw/mycorrhiza/mimetype" %}
|
|
{% import "github.com/bouncepaw/mycorrhiza/tree" %}
|
|
{% import "github.com/bouncepaw/mycorrhiza/user" %}
|
|
{% import "github.com/bouncepaw/mycorrhiza/util" %}
|
|
{% import "github.com/bouncepaw/mycorrhiza/viewutil" %}
|
|
|
|
{% func MediaMenu(rq *http.Request, h hyphae.Hypha, u *user.User) %}
|
|
{% code
|
|
lc := l18n.FromRequest(rq)
|
|
%}
|
|
<main class="main-width media-tab">
|
|
<h1>{%s= lc.Get("ui.media_title", &l18n.Replacements{"name": beautifulLink(h.CanonicalName())}) %}</h1>
|
|
{% switch h.(type) %}
|
|
{% case *hyphae.MediaHypha %}
|
|
<p class="explanation">{%s lc.Get("ui.media_tip") %} <a href="/help/en/media" class="shy-link">{%s lc.Get("ui.media_what_is") %}</a></p>
|
|
{% default %}
|
|
<p class="explanation">{%s lc.Get("ui.media_empty") %} <a href="/help/en/media" class="shy-link">{%s lc.Get("ui.media_what_is") %}</a></p>
|
|
{% endswitch %}
|
|
|
|
<section class="amnt-grid">
|
|
{% switch h := h.(type) %}
|
|
{% case *hyphae.MediaHypha %}
|
|
{% code
|
|
mime := mimetype.FromExtension(path.Ext(h.MediaFilePath()))
|
|
fileinfo, err := os.Stat(h.MediaFilePath()) %}
|
|
{% if err == nil %}
|
|
<fieldset class="amnt-menu-block">
|
|
<legend class="modal__title modal__title_small">{%s lc.Get("ui.media_stat") %}</legend>
|
|
<p class="modal__confirmation-msg"><b>{%s lc.Get("ui.media_stat_size") %}</b> {%s lc.GetPlural64("ui.media_size_value", fileinfo.Size())%}</p>
|
|
<p><b>{%s lc.Get("ui.media_stat_mime") %}</b> {%s mime %}</p>
|
|
</fieldset>
|
|
{% endif %}
|
|
|
|
{% if strings.HasPrefix(mime, "image/") %}
|
|
<fieldset class="amnt-menu-block">
|
|
<legend class="modal__title modal__title_small">{%s lc.Get("ui.media_include") %}</legend>
|
|
<p class="modal__confirmation-msg">{%s lc.Get("ui.media_include_tip") %}</p>
|
|
<pre class="codeblock"><code>img { {%s h.CanonicalName() %} }</code></pre>
|
|
</fieldset>
|
|
{% endif %}
|
|
{% endswitch %}
|
|
|
|
{% if u.CanProceed("upload-binary") %}
|
|
<form action="/upload-binary/{%s h.CanonicalName() %}"
|
|
method="post" enctype="multipart/form-data"
|
|
class="upload-binary modal amnt-menu-block">
|
|
<fieldset class="modal__fieldset">
|
|
<legend class="modal__title modal__title_small">{%s lc.Get("ui.media_new") %}</legend>
|
|
<p class="modal__confirmation-msg">{%s lc.Get("ui.media_new_tip") %}</p>
|
|
<label for="upload-binary__input"></label>
|
|
<input type="file" id="upload-binary__input" name="binary">
|
|
|
|
<button type="submit" class="btn stick-to-bottom" value="Upload">{%s lc.Get("ui.media_upload")%}</button>
|
|
</fieldset>
|
|
</form>
|
|
{% endif %}
|
|
|
|
|
|
{% switch h := h.(type) %}
|
|
{% case *hyphae.MediaHypha %}
|
|
{% if u.CanProceed("remove-media") %}
|
|
<form action="/remove-media/{%s h.CanonicalName() %}" method="post" class="modal amnt-menu-block" method="POST">
|
|
<fieldset class="modal__fieldset">
|
|
<legend class="modal__title modal__title_small">{%s lc.Get("ui.media_remove") %}</legend>
|
|
<p class="modal__confirmation-msg">{%s lc.Get("ui.media_remove_tip") %}</p>
|
|
<button type="submit" class="btn" value="Remove media">{%s lc.Get("ui.media_remove_button") %}</button>
|
|
</fieldset>
|
|
</form>
|
|
{% endif %}
|
|
{% endswitch %}
|
|
|
|
</section>
|
|
</main>
|
|
{% endfunc %}
|
|
|
|
If `contents` == "", a helpful message is shown instead.
|
|
|
|
If you rename .prevnext, change the docs too.
|
|
{% func Hypha(meta viewutil.Meta, h hyphae.Hypha, contents string) %}
|
|
{% code
|
|
subhyphae, prevHyphaName, nextHyphaName := tree.Tree(h.CanonicalName())
|
|
lc := meta.Lc
|
|
%}
|
|
<main class="main-width">
|
|
<section id="hypha">
|
|
{% if meta.U.CanProceed("edit") %}
|
|
<div class="btn btn_navititle">
|
|
<a class="btn__link_navititle" href="/edit/{%s h.CanonicalName() %}">{%s lc.Get("ui.edit_link") %}</a>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if cfg.UseAuth && util.IsProfileName(h.CanonicalName()) && meta.U.Name == strings.TrimPrefix(h.CanonicalName(), cfg.UserHypha + "/") %}
|
|
<div class="btn btn_navititle">
|
|
<a class="btn__link_navititle" href="/logout">{%s lc.Get("ui.logout_link") %}</a>
|
|
</div>
|
|
{% if meta.U.Group == "admin" %}
|
|
<div class="btn btn_navititle">
|
|
<a class="btn__link_navititle" href="/admin">{%s lc.Get("ui.admin_panel") %}<a>
|
|
</div>
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
{%s= NaviTitle(meta, h.CanonicalName()) %}
|
|
{% switch h.(type) %}
|
|
{% case *hyphae.EmptyHypha %}
|
|
{%s= EmptyHypha(meta, h.CanonicalName()) %}
|
|
{% default %}
|
|
{%s= contents %}
|
|
{% endswitch %}
|
|
</section>
|
|
<section class="prevnext">
|
|
{% if prevHyphaName != "" %}
|
|
<a class="prevnext__el prevnext__prev" href="/hypha/{%s prevHyphaName %}" rel="prev">← {%s util.BeautifulName(path.Base(prevHyphaName)) %}</a>
|
|
{% endif %}
|
|
{% if nextHyphaName != "" %}
|
|
<a class="prevnext__el prevnext__next" href="/hypha/{%s nextHyphaName %}" rel="next">{%s util.BeautifulName(path.Base(nextHyphaName)) %} →</a>
|
|
{% endif %}
|
|
</section>
|
|
{% if strings.TrimSpace(subhyphae) != "" %}
|
|
<section class="subhyphae">
|
|
<h2 class="subhyphae__title">{%s lc.Get("ui.subhyphae") %}</h2>
|
|
<nav class="subhyphae__nav">
|
|
<ul class="subhyphae__list">
|
|
{%s= subhyphae %}
|
|
</ul>
|
|
</nav>
|
|
</section>
|
|
{% endif %}
|
|
<section id="hypha-bottom">
|
|
{%= hyphaInfo(meta, h) %}
|
|
</section>
|
|
</main>
|
|
{%s= categories.CategoryCard(meta, h.CanonicalName()) %}
|
|
{%= viewScripts() %}
|
|
{% endfunc %}
|
|
|
|
{% func Revision(meta viewutil.Meta, h hyphae.Hypha, contents, revHash string) %}
|
|
<main class="main-width">
|
|
<section>
|
|
<p>{%s meta.Lc.Get("ui.revision_warning") %} <a href="/rev-text/{%s revHash %}/{%s h.CanonicalName() %}">{%s meta.Lc.Get("ui.revision_link") %}</a></p>
|
|
{%s= NaviTitle(meta, h.CanonicalName()) %}
|
|
{%s= contents %}
|
|
</section>
|
|
</main>
|
|
{%= viewScripts() %}
|
|
{% endfunc %}
|
|
|
|
{% func viewScripts() %}
|
|
{% for _, scriptPath := range cfg.ViewScripts %}
|
|
<script src="{%s scriptPath %}"></script>
|
|
{% endfor %}
|
|
{% endfunc %}
|