chore(init): scaffold Gitea mail templates — 110 templates, 10 visual styles, drop-in deployment
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
No files matched your search
@@ -0,0 +1,22 @@
|
|||||||
|
# Dependencies
|
||||||
|
node_modules/
|
||||||
|
vendor/
|
||||||
|
|
||||||
|
# OS files
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
Desktop.ini
|
||||||
|
|
||||||
|
# Editor files
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
|
||||||
|
# Build artifacts
|
||||||
|
*.zip
|
||||||
|
*.tar.gz
|
||||||
|
|
||||||
|
# Generated preview data (run: go run ./tools/build-preview.go)
|
||||||
|
preview/rendered.js
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
# AGENTS.md — Gitea Mail Templates
|
||||||
|
|
||||||
|
## Project Overview
|
||||||
|
|
||||||
|
A curated collection of email template themes (10 visual styles) for self-hosted Gitea instances. Each theme contains 11 Go `html/template` files covering all Gitea notification email types.
|
||||||
|
|
||||||
|
## Repository Layout
|
||||||
|
|
||||||
|
```
|
||||||
|
themes/ # Template themes (5 styles, 11 .tmpl each = 55 source files)
|
||||||
|
horizon/ # Enterprise / Corporate
|
||||||
|
terminal/ # Developers / Tech
|
||||||
|
ember/ # Community / Open Source
|
||||||
|
bloom/ # Creative / Startup (glassmorphism)
|
||||||
|
heritage/ # Education / Research
|
||||||
|
tools/ # Go build tooling
|
||||||
|
build-preview.go # Pre-renders all templates into preview/rendered.js
|
||||||
|
go.mod # Go module (stdlib only, zero dependencies)
|
||||||
|
preview/ # Browser-based live preview
|
||||||
|
index.html # SPA with style/template/client/viewport switching
|
||||||
|
rendered.js # Pre-rendered HTML (generated, committed for clone-and-preview)
|
||||||
|
docs/ # Multi-language documentation
|
||||||
|
```
|
||||||
|
|
||||||
|
## Working With Templates
|
||||||
|
|
||||||
|
### Template Files
|
||||||
|
- All `.tmpl` files use Go `html/template` syntax
|
||||||
|
- Must use only Gitea's built-in template functions: `AppUrl`, `DotEscape`, `QueryEscape`, `ShortSha`, `HTMLFormat`, `PathEscapeSegments`, `FileSize`
|
||||||
|
- Must use only official Gitea translation keys (`mail.*` namespace)
|
||||||
|
- Never reference `.DisplayName` in templates where the data context lacks it (collaborator, transfer, release, workflow_run, assigned, default)
|
||||||
|
- Each style must have all 11 template types
|
||||||
|
|
||||||
|
### Adding a New Theme
|
||||||
|
1. Create `themes/<name>/` with the full `mail/` directory structure
|
||||||
|
2. Write all 11 `.tmpl` files with unique visual design
|
||||||
|
3. Run `go run ./tools/build-preview.go` to regenerate preview data
|
||||||
|
4. Add the theme to the `<select id="sel-theme">` in `preview/index.html`
|
||||||
|
5. Update README.md style gallery table
|
||||||
|
|
||||||
|
### Preview System
|
||||||
|
- `preview/index.html` loads `preview/rendered.js` (pre-rendered by Go) and displays in iframes
|
||||||
|
- Supports theme switching, template type switching, client simulation (Modern/Gmail/Outlook/Raw), and viewport toggle (Desktop 1386x780 / Mobile 390x780)
|
||||||
|
- Entries in `REGISTRY` and `PARAMS` objects must match the Go build script's template definitions
|
||||||
|
|
||||||
|
### Build Script
|
||||||
|
- `tools/build-preview.go` uses Go's native `html/template` package
|
||||||
|
- Defines mock data for each template type matching Gitea's actual data contexts
|
||||||
|
- Post-processes favicon URLs for preview display
|
||||||
|
- Zero external dependencies (stdlib only)
|
||||||
|
|
||||||
|
## Commit Conventions
|
||||||
|
- `style(name):` — template changes for a specific theme
|
||||||
|
- `preview:` — preview tooling changes
|
||||||
|
- `tools:` — Go build script changes
|
||||||
|
- `docs:` — documentation and translations
|
||||||
|
- `fix:` — bug fixes
|
||||||
|
- `project:` — README, LICENSE, AGENTS.md, meta
|
||||||
|
|
||||||
|
## Constraints
|
||||||
|
- No JavaScript framework dependencies — preview is vanilla JS
|
||||||
|
- No external Go dependencies — build uses stdlib only
|
||||||
|
- Templates must remain compatible with Gitea's `html/template` execution environment
|
||||||
|
- Preview works with `file://` protocol (no server needed)
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
# Contributing to Gitea Mail Templates
|
||||||
|
|
||||||
|
Thanks for your interest in contributing! This project aims to provide a diverse, well-maintained collection of email templates for the Gitea ecosystem.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ways to Contribute
|
||||||
|
|
||||||
|
### Adding a New Style
|
||||||
|
|
||||||
|
1. Create the style directory: `themes/<your-style-name>/`
|
||||||
|
2. Copy the directory structure from an existing style
|
||||||
|
3. Implement all 11 `.tmpl` files with your unique visual design
|
||||||
|
4. Add your theme to the `themes` slice in `tools/build-preview.go`
|
||||||
|
5. Regenerate preview data: `go run ./tools/build-preview.go`
|
||||||
|
6. Add your theme as an `<option>` in `<select id="sel-theme">` in `preview/index.html`
|
||||||
|
7. Submit a PR with screenshots of rendered emails
|
||||||
|
|
||||||
|
### Style Guidelines
|
||||||
|
|
||||||
|
- Each style must include **all 11 template types** listed in the README
|
||||||
|
- Use only Gitea's built-in template functions — check the [Gitea source](https://github.com/go-gitea/gitea) for reference
|
||||||
|
- Translation keys must come from Gitea's official locale files (`mail.*` namespace)
|
||||||
|
- **Never reference `.DisplayName`** in templates where the data context lacks it (collaborator, transfer, release, workflow_run, assigned, default)
|
||||||
|
- Design for 600px max-width email clients
|
||||||
|
- Test against major email clients (Gmail, Outlook, Apple Mail) when possible
|
||||||
|
|
||||||
|
### Bug Reports
|
||||||
|
|
||||||
|
If a template doesn't render correctly:
|
||||||
|
|
||||||
|
1. Check that all referenced Go template variables exist — compare against the Gitea source mail templates
|
||||||
|
2. Verify translation keys match Gitea's locale files
|
||||||
|
3. Confirm `.DisplayName` isn't used in templates that lack it
|
||||||
|
4. Regenerate the preview: `go run ./tools/build-preview.go`
|
||||||
|
5. Open an issue with: the style name, which email type, and the error or unexpected output
|
||||||
|
|
||||||
|
### Documentation Improvements
|
||||||
|
|
||||||
|
Documentation updates, preview screenshots, installation guides, and translations are always welcome.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Development Setup
|
||||||
|
|
||||||
|
No build tools or dependencies are needed — these are raw Go HTML templates.
|
||||||
|
|
||||||
|
### Previewing Locally
|
||||||
|
|
||||||
|
1. Open `preview/index.html` directly in a browser — no server needed
|
||||||
|
2. Use the theme switcher, template selector, and client mode toggles to review designs
|
||||||
|
3. Toggle between Modern, Gmail, Outlook, and Raw source modes to verify degradation
|
||||||
|
|
||||||
|
### Regenerating Previews
|
||||||
|
|
||||||
|
```bash
|
||||||
|
go run ./tools/build-preview.go
|
||||||
|
```
|
||||||
|
|
||||||
|
This renders all templates (themes auto-discovered from the themes/ directory) using Go's native `html/template` package and writes the output to `preview/rendered.js`.
|
||||||
|
|
||||||
|
### Integration Testing
|
||||||
|
|
||||||
|
Deploy the templates to a Gitea instance and use the admin test email feature:
|
||||||
|
**Site Administration > Configuration > Mailer > Send Test Email**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Commit Conventions
|
||||||
|
|
||||||
|
- `style(horizon|terminal|ember|bloom|heritage|neon|mono|terra|ink|aurora):` — template changes
|
||||||
|
- `preview:` — preview tooling changes
|
||||||
|
- `tools:` — Go build script changes
|
||||||
|
- `docs:` — documentation and translations
|
||||||
|
- `fix:` — bug fixes
|
||||||
|
- `project:` — README, LICENSE, AGENTS.md, meta
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Translations
|
||||||
|
|
||||||
|
- [English](CONTRIBUTING.md)
|
||||||
|
- [Simplified Chinese](docs/CONTRIBUTING.zh-CN.md)
|
||||||
|
- [Traditional Chinese](docs/CONTRIBUTING.zh-TW.md)
|
||||||
|
- [Russian](docs/CONTRIBUTING.ru.md)
|
||||||
|
- [Japanese](docs/CONTRIBUTING.ja.md)
|
||||||
|
- [Korean](docs/CONTRIBUTING.ko.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
By contributing, you agree that your contributions will be licensed under the MIT License.
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2026 Gitea Mail Templates Contributors
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
@@ -0,0 +1,191 @@
|
|||||||
|
# Gitea Mail Templates
|
||||||
|
|
||||||
|
A curated collection of professionally designed, audience-driven email templates for self-hosted [Gitea](https://about.gitea.com) instances.
|
||||||
|
|
||||||
|
> **110 template files — 10 visual styles, 11 email types each**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Philosophy
|
||||||
|
|
||||||
|
Most self-hosted Gitea instances use the default plain email templates. This project provides **ready-to-deploy, visually polished alternatives** — each designed for a specific community or audience, so you can pick the one that feels right for your users.
|
||||||
|
|
||||||
|
Every template is a drop-in replacement. All Go template variables, translation keys, and Gitea data contexts are fully compatible. **No patches, no plugins, no forks required.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Style Gallery
|
||||||
|
|
||||||
|
| Preview | Style | Audience | Character |
|
||||||
|
|---|---|---|---|
|
||||||
|
|  | **Horizon** | Enterprise / Corporate | Blue accent, slate typography, centered cards |
|
||||||
|
|  | **Terminal** | Developers / Tech | Dark mode, monospace, green CLI accents |
|
||||||
|
|  | **Ember** | Community / Open Source | Warm amber, rounded, humanist, inclusive |
|
||||||
|
|  | **Bloom** | Creative / Startup | Frosted glass, soft blue light, iridescent accents |
|
||||||
|
|  | **Heritage** | Education / Research | Navy and gold, serif, classic, authoritative |
|
||||||
|
|  | **Neon** | Gaming / Web3 / Creative Tech | Cyberpunk neon glow, hot pink & cyan, synthwave energy |
|
||||||
|
|  | **Mono** | Design Studios / Editorial | Swiss brutalist, black & white, red accent, zero radius |
|
||||||
|
|  | **Terra** | Sustainability / Wellness | Warm earth tones, organic textures, humanist serif |
|
||||||
|
|  | **Ink** | Publishing / News / Literature | Editorial print, navy & gold, newspaper layout, drop caps |
|
||||||
|
|  | **Aurora** | Premium SaaS / Mindfulness | Ethereal light gradients, deep purple & teal, atmospheric glow |
|
||||||
|
|
||||||
|
> Images are 600px screenshots from the [live preview](preview/index.html). See [docs/images/README.md](docs/images/README.md) for capture instructions.
|
||||||
|
|
||||||
|
[**Live preview gallery**](preview/index.html) — open in a browser for an interactive style switcher with desktop/mobile viewports and email client simulation (Modern, Gmail, Outlook, Raw source).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
### Quick Start
|
||||||
|
|
||||||
|
Choose a style, then copy the `mail/` directory into your Gitea custom templates path:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Locate your Gitea custom directory
|
||||||
|
# (set by GITEA_CUSTOM; defaults shown below)
|
||||||
|
|
||||||
|
# Copy templates (example: Horizon style)
|
||||||
|
cp -r themes/horizon/mail/* /var/lib/gitea/custom/templates/mail/
|
||||||
|
|
||||||
|
# Restart Gitea
|
||||||
|
systemctl restart gitea
|
||||||
|
```
|
||||||
|
|
||||||
|
### Custom Directory Location
|
||||||
|
|
||||||
|
| Platform | Default Path |
|
||||||
|
|---|---|
|
||||||
|
| Linux (binary) | `/var/lib/gitea/custom` |
|
||||||
|
| Linux (Docker) | `/data/gitea` |
|
||||||
|
| Windows | `C:\gitea\custom` |
|
||||||
|
|
||||||
|
### Switching Styles
|
||||||
|
|
||||||
|
Overwrite the files with a different style. All templates share the exact same variable structure — no configuration changes needed.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp -r themes/terminal/mail/* /var/lib/gitea/custom/templates/mail/
|
||||||
|
systemctl restart gitea
|
||||||
|
```
|
||||||
|
|
||||||
|
### Confirming It Works
|
||||||
|
|
||||||
|
Send a test email from the Gitea admin panel:
|
||||||
|
**Site Administration > Configuration > Mailer > Send Test Email**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Preview
|
||||||
|
|
||||||
|
A live preview tool is included to browse all styles and email types without deploying to a Gitea instance.
|
||||||
|
|
||||||
|
### Quick Start
|
||||||
|
|
||||||
|
First, generate the preview data (requires Go):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
go run ./tools/build-preview.go
|
||||||
|
```
|
||||||
|
|
||||||
|
Then open `preview/index.html` directly in a browser. No server required.
|
||||||
|
|
||||||
|
> `preview/rendered.js` is generated and git-ignored. Re-run the command after modifying templates.
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- Theme switcher — toggle between all 5 visual styles
|
||||||
|
- Template switcher — browse all 11 email types
|
||||||
|
- Client simulation — Modern, Gmail (no `<style>`), Outlook Desktop, Raw source
|
||||||
|
- Viewport toggle — Desktop (1386x780) / Mobile (390x780)
|
||||||
|
- Parameter panel — view template variables and mock data per email type
|
||||||
|
- Keyboard shortcuts — `←→` templates, `d` desktop, `m` mobile
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Directory Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
gitea-mail-templates/
|
||||||
|
├── themes/ # 5 visual styles, 11 .tmpl files each
|
||||||
|
│ ├── horizon/ # Enterprise / Corporate
|
||||||
|
│ ├── terminal/ # Developers / Tech
|
||||||
|
│ ├── ember/ # Community / Open Source
|
||||||
|
│ ├── bloom/ # Creative / Startup
|
||||||
|
│ └── heritage/ # Education / Research
|
||||||
|
├── preview/ # Live preview SPA
|
||||||
|
│ ├── index.html # Style/template/client/viewport switcher
|
||||||
|
│ └── rendered.js # Pre-rendered templates (generated by tools/)
|
||||||
|
├── tools/ # Build tooling
|
||||||
|
│ ├── build-preview.go # Go build script — renders all templates
|
||||||
|
│ └── go.mod
|
||||||
|
├── docs/ # Multi-language documentation
|
||||||
|
├── AGENTS.md # AI agent guidance
|
||||||
|
├── CONTRIBUTING.md
|
||||||
|
├── LICENSE
|
||||||
|
├── README.md
|
||||||
|
└── .gitignore
|
||||||
|
```
|
||||||
|
|
||||||
|
### Template Types
|
||||||
|
|
||||||
|
| File | Email Trigger |
|
||||||
|
|---|---|
|
||||||
|
| `mail/user/auth/activate.tmpl` | Account activation |
|
||||||
|
| `mail/user/auth/activate_email.tmpl` | Email address verification |
|
||||||
|
| `mail/user/auth/register_notify.tmpl` | New registration notification |
|
||||||
|
| `mail/user/auth/reset_passwd.tmpl` | Password reset |
|
||||||
|
| `mail/org/team_invite.tmpl` | Team invitation |
|
||||||
|
| `mail/repo/collaborator.tmpl` | Repository collaborator added |
|
||||||
|
| `mail/repo/transfer.tmpl` | Repository ownership transfer |
|
||||||
|
| `mail/repo/release.tmpl` | New release published |
|
||||||
|
| `mail/repo/actions/workflow_run.tmpl` | Actions workflow run |
|
||||||
|
| `mail/repo/issue/assigned.tmpl` | Issue / Pull Request assigned |
|
||||||
|
| `mail/repo/issue/default.tmpl` | Issue / Pull Request updates |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Compatibility
|
||||||
|
|
||||||
|
- **Gitea 1.21+** (all versions with Go 1.21 template support)
|
||||||
|
- 100% variable-compatible with official Gitea templates
|
||||||
|
- Uses only built-in Gitea template functions
|
||||||
|
- Uses only official Gitea translation keys
|
||||||
|
- No custom template functions or locale patches required
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Design Principles
|
||||||
|
|
||||||
|
1. **Responsive** — Max-width 600px cards; works in all email clients
|
||||||
|
2. **Accessible** — 4.5:1 contrast ratios; semantic HTML
|
||||||
|
3. **Graceful degradation** — Fallback link visible when buttons fail to render
|
||||||
|
4. **Logo support** — References `{{AppUrl}}assets/img/favicon.png` by default
|
||||||
|
5. **i18n-ready** — All user-facing strings use Gitea's `{{.locale.Tr}}` system
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
- [English](README.md)
|
||||||
|
- [Simplified Chinese](docs/README.zh-CN.md)
|
||||||
|
- [Traditional Chinese](docs/README.zh-TW.md)
|
||||||
|
- [Russian](docs/README.ru.md)
|
||||||
|
- [Japanese](docs/README.ja.md)
|
||||||
|
- [Korean](docs/README.ko.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. Multi-language versions available in [docs/](docs/).
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT — see [LICENSE](LICENSE). Free to use, modify, and distribute in any Gitea deployment.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<sub>Not affiliated with the Gitea project. Gitea is a community-managed lightweight code hosting solution written in Go.</sub>
|
||||||
|
</p>
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
# コントリビューション — Gitea メールテンプレート
|
||||||
|
|
||||||
|
## 参加方法
|
||||||
|
|
||||||
|
### 新しいスタイルの追加
|
||||||
|
|
||||||
|
1. スタイルディレクトリを作成: `themes/<style-name>/`
|
||||||
|
2. 既存スタイルからディレクトリ構造をコピー
|
||||||
|
3. 11個の `.tmpl` ファイルを独自デザインで実装
|
||||||
|
4. `tools/build-preview.go` の `themes` スライスに追加
|
||||||
|
5. プレビューを再生成: `go run ./tools/build-preview.go`
|
||||||
|
6. `preview/index.html` の `<select id="sel-theme">` に追加
|
||||||
|
7. スクリーンショット付きで PR を提出
|
||||||
|
|
||||||
|
### スタイルガイドライン
|
||||||
|
|
||||||
|
- 各スタイルに **全11種類のテンプレート** を含める
|
||||||
|
- Gitea 組み込み関数のみ使用
|
||||||
|
- 翻訳キーは Gitea 公式ロケール (`mail.*`) から
|
||||||
|
- **`.DisplayName` を使用しない** (collaborator, transfer, release, workflow_run, assigned, default)
|
||||||
|
- 600px 幅のメールクライアント向けにデザイン
|
||||||
|
- Gmail, Outlook, Apple Mail でテスト
|
||||||
|
|
||||||
|
### バグレポート
|
||||||
|
|
||||||
|
1. Go 変数が正しいか確認
|
||||||
|
2. 翻訳キーが Gitea ロケールと一致するか確認
|
||||||
|
3. `.DisplayName` が誤用されていないか確認
|
||||||
|
4. プレビューを再生成: `go run ./tools/build-preview.go`
|
||||||
|
5. スタイル名とメールタイプを明記して issue を作成
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 開発セットアップ
|
||||||
|
|
||||||
|
### ローカルプレビュー
|
||||||
|
|
||||||
|
1. データを生成: `go run ./tools/build-preview.go`
|
||||||
|
2. `preview/index.html` をブラウザで開く
|
||||||
|
3. Modern, Gmail, Outlook, Raw source を切り替えて確認
|
||||||
|
|
||||||
|
### 結合テスト
|
||||||
|
|
||||||
|
Gitea にデプロイ: **Site Administration > Configuration > Mailer > Send Test Email**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## コミット規約
|
||||||
|
|
||||||
|
- `style(<name>):` — スタイルのテンプレート変更
|
||||||
|
- `preview:` — プレビューツールの変更
|
||||||
|
- `tools:` — Go ビルドスクリプトの変更
|
||||||
|
- `docs:` — ドキュメントと翻訳
|
||||||
|
- `fix:` — バグ修正
|
||||||
|
- `project:` — README, LICENSE, メタファイル
|
||||||
|
|
||||||
|
## ライセンス
|
||||||
|
|
||||||
|
貢献により、MIT ライセンスに同意したものとみなします。
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
# 기여 가이드 — Gitea 메일 템플릿
|
||||||
|
|
||||||
|
## 기여 방법
|
||||||
|
|
||||||
|
### 새 스타일 추가하기
|
||||||
|
|
||||||
|
1. 스타일 디렉토리 생성: `themes/<style-name>/`
|
||||||
|
2. 기존 스타일에서 디렉토리 구조 복사
|
||||||
|
3. 11개 `.tmpl` 파일을 고유한 디자인으로 구현
|
||||||
|
4. `tools/build-preview.go`의 `themes` 슬라이스에 추가
|
||||||
|
5. 프리뷰 재생성: `go run ./tools/build-preview.go`
|
||||||
|
6. `preview/index.html`의 `<select id="sel-theme">`에 추가
|
||||||
|
7. 스크린샷과 함께 PR 제출
|
||||||
|
|
||||||
|
### 스타일 가이드라인
|
||||||
|
|
||||||
|
- 각 스타일에 **11개 템플릿 유형 모두** 포함
|
||||||
|
- Gitea 내장 함수만 사용
|
||||||
|
- 번역 키는 Gitea 공식 로케일 (`mail.*`) 사용
|
||||||
|
- **`.DisplayName` 사용 금지** (collaborator, transfer, release, workflow_run, assigned, default)
|
||||||
|
- 600px 너비의 이메일 클라이언트에 맞게 디자인
|
||||||
|
- Gmail, Outlook, Apple Mail에서 테스트
|
||||||
|
|
||||||
|
### 버그 리포트
|
||||||
|
|
||||||
|
1. Go 변수가 올바른지 확인
|
||||||
|
2. 번역 키가 Gitea 로케일과 일치하는지 확인
|
||||||
|
3. `.DisplayName`이 오용되지 않았는지 확인
|
||||||
|
4. 프리뷰 재생성: `go run ./tools/build-preview.go`
|
||||||
|
5. 스타일 이름과 메일 유형을 명시하여 이슈 생성
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 개발 설정
|
||||||
|
|
||||||
|
### 로컬 프리뷰
|
||||||
|
|
||||||
|
1. 데이터 생성: `go run ./tools/build-preview.go`
|
||||||
|
2. `preview/index.html`을 브라우저에서 열기
|
||||||
|
3. Modern, Gmail, Outlook, Raw source 모드 전환 확인
|
||||||
|
|
||||||
|
### 통합 테스트
|
||||||
|
|
||||||
|
Gitea에 배포: **Site Administration > Configuration > Mailer > Send Test Email**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 커밋 규칙
|
||||||
|
|
||||||
|
- `style(<name>):` — 스타일 템플릿 변경
|
||||||
|
- `preview:` — 프리뷰 도구 변경
|
||||||
|
- `tools:` — Go 빌드 스크립트 변경
|
||||||
|
- `docs:` — 문서 및 번역
|
||||||
|
- `fix:` — 버그 수정
|
||||||
|
- `project:` — README, LICENSE, 메타 파일
|
||||||
|
|
||||||
|
## 라이선스
|
||||||
|
|
||||||
|
기여함으로써 MIT 라이선스에 동의하게 됩니다.
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
# Участие в разработке — Gitea Mail Templates
|
||||||
|
|
||||||
|
## Способы участия
|
||||||
|
|
||||||
|
### Добавление нового стиля
|
||||||
|
|
||||||
|
1. Создайте директорию стиля: `themes/<имя-стиля>/`
|
||||||
|
2. Скопируйте структуру из существующего стиля
|
||||||
|
3. Реализуйте все 11 `.tmpl` файлов с уникальным дизайном
|
||||||
|
4. Добавьте тему в слайс `themes` в `tools/build-preview.go`
|
||||||
|
5. Перегенерируйте превью: `go run ./tools/build-preview.go`
|
||||||
|
6. Добавьте тему в `<select id="sel-theme">` в `preview/index.html`
|
||||||
|
7. Отправьте PR со скриншотами
|
||||||
|
|
||||||
|
### Рекомендации по стилю
|
||||||
|
|
||||||
|
- Каждый стиль должен включать **все 11 типов шаблонов**
|
||||||
|
- Используйте только встроенные функции шаблонов Gitea
|
||||||
|
- Ключи перевода из официальных файлов локали Gitea (`mail.*`)
|
||||||
|
- **Не используйте `.DisplayName`** где его нет в контексте (collaborator, transfer, release, workflow_run, assigned, default)
|
||||||
|
- Дизайн для 600px email клиентов
|
||||||
|
- Тестируйте в Gmail, Outlook, Apple Mail
|
||||||
|
|
||||||
|
### Баг-репорты
|
||||||
|
|
||||||
|
1. Проверьте переменные Go в шаблонах
|
||||||
|
2. Сверьте ключи перевода с локалью Gitea
|
||||||
|
3. Убедитесь что `.DisplayName` не используется где не надо
|
||||||
|
4. Перегенерируйте превью: `go run ./tools/build-preview.go`
|
||||||
|
5. Создайте issue с указанием стиля и типа письма
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Настройка разработки
|
||||||
|
|
||||||
|
### Локальный предпросмотр
|
||||||
|
|
||||||
|
1. Сгенерируйте данные: `go run ./tools/build-preview.go`
|
||||||
|
2. Откройте `preview/index.html` в браузере
|
||||||
|
3. Переключайте Modern, Gmail, Outlook, Raw source для проверки
|
||||||
|
|
||||||
|
### Интеграционное тестирование
|
||||||
|
|
||||||
|
Разверните на Gitea: **Site Administration > Configuration > Mailer > Send Test Email**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Соглашение о коммитах
|
||||||
|
|
||||||
|
- `style(<имя>):` — изменения шаблонов стиля
|
||||||
|
- `preview:` — инструменты предпросмотра
|
||||||
|
- `tools:` — Go-скрипт сборки
|
||||||
|
- `docs:` — документация и переводы
|
||||||
|
- `fix:` — исправления
|
||||||
|
- `project:` — README, LICENSE, мета-файлы
|
||||||
|
|
||||||
|
## Лицензия
|
||||||
|
|
||||||
|
Участвуя, вы соглашаетесь с лицензией MIT.
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
# 贡献指南 — Gitea 邮件模板
|
||||||
|
|
||||||
|
## 参与方式
|
||||||
|
|
||||||
|
### 添加新风格
|
||||||
|
|
||||||
|
1. 创建风格目录:`themes/<风格名称>/`
|
||||||
|
2. 从现有风格复制目录结构
|
||||||
|
3. 用独特的视觉设计实现全部 11 个 `.tmpl` 文件
|
||||||
|
4. 在 `tools/build-preview.go` 的 `themes` 切片中添加新主题
|
||||||
|
5. 重新生成预览:`go run ./tools/build-preview.go`
|
||||||
|
6. 在 `preview/index.html` 的 `<select id="sel-theme">` 中添加选项
|
||||||
|
7. 提交包含截图渲染效果的 PR
|
||||||
|
|
||||||
|
### 风格指南
|
||||||
|
|
||||||
|
- 每个风格必须包含全部 **11 种模板类型**
|
||||||
|
- 只使用 Gitea 内置模板函数
|
||||||
|
- 翻译键必须来自 Gitea 官方语言文件(`mail.*` 命名空间)
|
||||||
|
- **不要在以下模板中使用 `.DisplayName`**:collaborator、transfer、release、workflow_run、assigned、default
|
||||||
|
- 面向 600px 宽度的邮件客户端设计
|
||||||
|
- 尽可能在 Gmail、Outlook、Apple Mail 中测试
|
||||||
|
|
||||||
|
### 报告 Bug
|
||||||
|
|
||||||
|
1. 检查引用的 Go 模板变量是否存在
|
||||||
|
2. 验证翻译键是否与 Gitea 语言文件匹配
|
||||||
|
3. 确认 `.DisplayName` 未在不支持的模板中使用
|
||||||
|
4. 重新生成预览:`go run ./tools/build-preview.go`
|
||||||
|
5. 提交 issue,注明风格名称、邮件类型及错误描述
|
||||||
|
|
||||||
|
### 改进文档
|
||||||
|
|
||||||
|
文档改进、预览截图、安装指南和翻译始终欢迎。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 开发环境
|
||||||
|
|
||||||
|
无需构建工具或依赖。
|
||||||
|
|
||||||
|
### 本地预览
|
||||||
|
|
||||||
|
1. 先生成预览数据:`go run ./tools/build-preview.go`
|
||||||
|
2. 在浏览器中打开 `preview/index.html`
|
||||||
|
3. 在 Modern、Gmail、Outlook、Raw source 模式间切换验证效果
|
||||||
|
|
||||||
|
### 集成测试
|
||||||
|
|
||||||
|
将模板部署到 Gitea 实例,使用管理后台的测试邮件功能:
|
||||||
|
**Site Administration > Configuration > Mailer > Send Test Email**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 提交规范
|
||||||
|
|
||||||
|
- `style(<名称>):` — 特定风格的模板变更
|
||||||
|
- `preview:` — 预览工具变更
|
||||||
|
- `tools:` — Go 构建脚本变更
|
||||||
|
- `docs:` — 文档和翻译
|
||||||
|
- `fix:` — Bug 修复
|
||||||
|
- `project:` — README、LICENSE、元文件
|
||||||
|
|
||||||
|
## 许可协议
|
||||||
|
|
||||||
|
参与贡献即表示您同意将您的贡献以 MIT 许可证授权。
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
# 貢獻指南 — Gitea 郵件模板
|
||||||
|
|
||||||
|
## 參與方式
|
||||||
|
|
||||||
|
### 新增風格
|
||||||
|
|
||||||
|
1. 建立風格目錄:`themes/<風格名稱>/`
|
||||||
|
2. 從現有風格複製目錄結構
|
||||||
|
3. 以獨特的視覺設計實作全部 11 個 `.tmpl` 檔案
|
||||||
|
4. 在 `tools/build-preview.go` 的 `themes` 切片中新增主題
|
||||||
|
5. 重新產生預覽:`go run ./tools/build-preview.go`
|
||||||
|
6. 在 `preview/index.html` 的 `<select id="sel-theme">` 中新增選項
|
||||||
|
7. 提交包含螢幕截圖的 PR
|
||||||
|
|
||||||
|
### 風格指南
|
||||||
|
|
||||||
|
- 每個風格必須包含全部 **11 種模板類型**
|
||||||
|
- 僅使用 Gitea 內建模板函式
|
||||||
|
- 翻譯鍵必須來自 Gitea 官方語系檔案(`mail.*` 命名空間)
|
||||||
|
- **請勿在以下模板中使用 `.DisplayName`**:collaborator、transfer、release、workflow_run、assigned、default
|
||||||
|
- 針對 600px 寬度的郵件用戶端設計
|
||||||
|
- 盡可能在 Gmail、Outlook、Apple Mail 中測試
|
||||||
|
|
||||||
|
### 回報 Bug
|
||||||
|
|
||||||
|
1. 檢查引用的 Go 模板變數是否存在
|
||||||
|
2. 驗證翻譯鍵是否與 Gitea 語系檔案相符
|
||||||
|
3. 確認 `.DisplayName` 未在不支援的模板中使用
|
||||||
|
4. 重新產生預覽:`go run ./tools/build-preview.go`
|
||||||
|
5. 提交 issue,註明風格名稱、郵件類型及錯誤描述
|
||||||
|
|
||||||
|
### 改善文件
|
||||||
|
|
||||||
|
文件改進、預覽螢幕截圖、安裝指南和翻譯始終歡迎。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 開發環境
|
||||||
|
|
||||||
|
無需建置工具或依賴。
|
||||||
|
|
||||||
|
### 本機預覽
|
||||||
|
|
||||||
|
1. 先生成預覽資料:`go run ./tools/build-preview.go`
|
||||||
|
2. 在瀏覽器中開啟 `preview/index.html`
|
||||||
|
3. 在 Modern、Gmail、Outlook、Raw source 模式間切換驗證效果
|
||||||
|
|
||||||
|
### 整合測試
|
||||||
|
|
||||||
|
將模板部署至 Gitea 實例,使用管理後台的測試郵件功能:
|
||||||
|
**Site Administration > Configuration > Mailer > Send Test Email**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 提交規範
|
||||||
|
|
||||||
|
- `style(<名稱>):` — 特定風格的模板變更
|
||||||
|
- `preview:` — 預覽工具變更
|
||||||
|
- `tools:` — Go 建置腳本變更
|
||||||
|
- `docs:` — 文件與翻譯
|
||||||
|
- `fix:` — Bug 修復
|
||||||
|
- `project:` — README、LICENSE、中繼資料檔案
|
||||||
|
|
||||||
|
## 授權條款
|
||||||
|
|
||||||
|
參與貢獻即表示您同意將您的貢獻以 MIT 授權條款授權。
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
# Gitea メールテンプレート
|
||||||
|
|
||||||
|
[Gitea](https://about.gitea.com) のためのメールテンプレートコレクション。
|
||||||
|
|
||||||
|
> **110 ファイル — 10 スタイル、各11種類**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## スタイルギャラリー
|
||||||
|
|
||||||
|
| プレビュー | スタイル | 対象 | 特徴 |
|
||||||
|
|---|---|---|---|
|
||||||
|
|  | **Horizon** | エンタープライズ | Blue accent, slate, centred cards |
|
||||||
|
|  | **Terminal** | 開発者 | Dark mode, monospace, green CLI |
|
||||||
|
|  | **Ember** | コミュニティ | Warm amber, rounded, inclusive |
|
||||||
|
|  | **Bloom** | クリエイティブ | Frosted glass, soft blue light |
|
||||||
|
|  | **Heritage** | 教育/研究 | Navy and gold, serif, classic |
|
||||||
|
|  | **Neon** | ゲーム/Web3 | Cyberpunk neon, pink and cyan |
|
||||||
|
|  | **Mono** | デザイン/編集 | Swiss brutalist, black-white-red |
|
||||||
|
|  | **Terra** | サステナビリティ | Warm earth tones, organic textures |
|
||||||
|
|  | **Ink** | 出版/ニュース | Editorial print, navy and gold |
|
||||||
|
|  | **Aurora** | プレミアムSaaS | Ethereal gradients, purple and teal |
|
||||||
|
|
||||||
|
> 画像は[ライブプレビュー](../preview/index.html)からの600px幅のスクリーンショットです。キャプチャ手順は [images/README.md](images/README.md) を参照してください。
|
||||||
|
|
||||||
|
[**ライブプレビュー**](../preview/index.html)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## インストール
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp -r themes/horizon/mail/* /var/lib/gitea/custom/templates/mail/
|
||||||
|
systemctl restart gitea
|
||||||
|
```
|
||||||
|
|
||||||
|
## プレビュー
|
||||||
|
|
||||||
|
```bash
|
||||||
|
go run ./tools/build-preview.go
|
||||||
|
```
|
||||||
|
その後 `preview/index.html` を開く。
|
||||||
|
|
||||||
|
## 互換性
|
||||||
|
|
||||||
|
- **Gitea 1.21+**, 100%互換, 組み込み関数のみ
|
||||||
|
|
||||||
|
## ライセンス
|
||||||
|
|
||||||
|
MIT — [LICENSE](../LICENSE).
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
# Gitea 메일 템플릿
|
||||||
|
|
||||||
|
[Gitea](https://about.gitea.com) 인스턴스를 위한 메일 템플릿 컬렉션.
|
||||||
|
|
||||||
|
> **110 파일 — 10 스타일, 각 11종류**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 스타일 갤러리
|
||||||
|
|
||||||
|
| 미리보기 | 스타일 | 대상 | 특징 |
|
||||||
|
|---|---|---|---|
|
||||||
|
|  | **Horizon** | 엔터프라이즈 | Blue accent, slate, centred cards |
|
||||||
|
|  | **Terminal** | 개발자 | Dark mode, monospace, green CLI |
|
||||||
|
|  | **Ember** | 커뮤니티 | Warm amber, rounded, inclusive |
|
||||||
|
|  | **Bloom** | 크리에이티브 | Frosted glass, soft blue light |
|
||||||
|
|  | **Heritage** | 교육/연구 | Navy and gold, serif, classic |
|
||||||
|
|  | **Neon** | 게임/Web3 | Cyberpunk neon, pink and cyan |
|
||||||
|
|  | **Mono** | 디자인/편집 | Swiss brutalist, black-white-red |
|
||||||
|
|  | **Terra** | 지속가능성 | Warm earth tones, organic textures |
|
||||||
|
|  | **Ink** | 출판/뉴스 | Editorial print, navy and gold |
|
||||||
|
|  | **Aurora** | 프리미엄SaaS | Ethereal gradients, purple and teal |
|
||||||
|
|
||||||
|
> 이미지는 [라이브 프리뷰](../preview/index.html)에서 캡처한 600px 너비 스크린샷입니다. 캡처 방법은 [images/README.md](images/README.md)를 참조하세요.
|
||||||
|
|
||||||
|
[**라이브 프리뷰**](../preview/index.html)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 설치
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp -r themes/horizon/mail/* /var/lib/gitea/custom/templates/mail/
|
||||||
|
systemctl restart gitea
|
||||||
|
```
|
||||||
|
|
||||||
|
## 프리뷰
|
||||||
|
|
||||||
|
```bash
|
||||||
|
go run ./tools/build-preview.go
|
||||||
|
```
|
||||||
|
그런 다음 `preview/index.html` 열기.
|
||||||
|
|
||||||
|
## 호환성
|
||||||
|
|
||||||
|
- **Gitea 1.21+**, 100% 호환, 내장 함수만 사용
|
||||||
|
|
||||||
|
## 라이선스
|
||||||
|
|
||||||
|
MIT — [LICENSE](../LICENSE).
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
# Gitea Mail Templates — Шаблоны писем Gitea
|
||||||
|
|
||||||
|
Коллекция шаблонов писем для [Gitea](https://about.gitea.com).
|
||||||
|
|
||||||
|
> **110 файлов — 10 стилей, по 11 типов писем**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Галерея стилей
|
||||||
|
|
||||||
|
| Превью | Стиль | Аудитория | Характер |
|
||||||
|
|---|---|---|---|
|
||||||
|
|  | **Horizon** | Корпоративный | Синий акцент, slate, centred cards |
|
||||||
|
|  | **Terminal** | Разработчики | Тёмная тема, monospace, зелёный CLI |
|
||||||
|
|  | **Ember** | Open Source | Тёплый янтарь, rounded, инклюзивный |
|
||||||
|
|  | **Bloom** | Креатив / Стартапы | Матовое стекло, мягкий синий свет |
|
||||||
|
|  | **Heritage** | Образование | Navy и золото, serif, классика |
|
||||||
|
|  | **Neon** | Игры / Web3 / Креатив | Киберпанк-неон, розовый и циан |
|
||||||
|
|  | **Mono** | Дизайн / Редакция | Швейцарский брутализм, чёрный-белый-красный |
|
||||||
|
|  | **Terra** | Устойчивость / Здоровье | Тёплые земляные тона, органические текстуры |
|
||||||
|
|  | **Ink** | Издательство / Новости | Редакционная печать, navy и золото |
|
||||||
|
|  | **Aurora** | Премиум SaaS | Эфирные градиенты, пурпур и бирюза |
|
||||||
|
|
||||||
|
> Изображения шириной 600px из [предпросмотра](../preview/index.html). Инструкции по созданию скриншотов: [images/README.md](images/README.md).
|
||||||
|
|
||||||
|
[**Галерея предпросмотра**](../preview/index.html)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Установка
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp -r themes/horizon/mail/* /var/lib/gitea/custom/templates/mail/
|
||||||
|
systemctl restart gitea
|
||||||
|
```
|
||||||
|
|
||||||
|
## Предпросмотр
|
||||||
|
|
||||||
|
```bash
|
||||||
|
go run ./tools/build-preview.go
|
||||||
|
```
|
||||||
|
Затем откройте `preview/index.html`.
|
||||||
|
|
||||||
|
## Совместимость
|
||||||
|
|
||||||
|
- **Gitea 1.21+**, 100% совместимость, только встроенные функции
|
||||||
|
|
||||||
|
## Лицензия
|
||||||
|
|
||||||
|
MIT — [LICENSE](../LICENSE).
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
# Gitea 邮件模板
|
||||||
|
|
||||||
|
为自托管 [Gitea](https://about.gitea.com) 实例精心设计、面向不同受众的邮件模板集合。
|
||||||
|
|
||||||
|
> **110 个模板文件 — 10 种视觉风格,每种 11 种邮件类型**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 设计理念
|
||||||
|
|
||||||
|
大多数自托管 Gitea 实例使用默认的纯文本邮件模板。本项目提供了**开箱即用、视觉精美的替代方案**——每种方案都针对特定社区或受众设计,您可以选择最适合您用户的风格。
|
||||||
|
|
||||||
|
每个模板都是直接替换。所有 Go 模板变量、翻译键和 Gitea 数据上下文完全兼容。**无需补丁、无需插件、无需 fork。**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 风格画廊
|
||||||
|
|
||||||
|
| 预览 | 风格 | 受众 | 特点 |
|
||||||
|
|---|---|---|---|
|
||||||
|
|  | **Horizon** | 企业/公司 | 蓝色强调色、石板灰排版、居中卡片 |
|
||||||
|
|  | **Terminal** | 开发者/技术 | 暗色模式、等宽字体、绿色命令行风格 |
|
||||||
|
|  | **Ember** | 社区/开源 | 暖琥珀色、圆角、人文主义、包容 |
|
||||||
|
|  | **Bloom** | 创意/初创 | 磨砂玻璃、柔和蓝色光线、虹彩点缀 |
|
||||||
|
|  | **Heritage** | 教育/研究 | 海军蓝与金色、衬线字体、经典、权威 |
|
||||||
|
|  | **Neon** | 游戏/Web3/创意科技 | 赛博朋克霓虹、粉红与青色、合成波能量 |
|
||||||
|
|  | **Mono** | 设计工作室/编辑 | 瑞士粗野主义、黑白红强调、零圆角 |
|
||||||
|
|  | **Terra** | 可持续/健康 | 温暖大地色调、有机质感、人文衬线 |
|
||||||
|
|  | **Ink** | 出版/新闻/文学 | 编辑印刷、深蓝与金色、报纸排版 |
|
||||||
|
|  | **Aurora** | 高端SaaS/正念 | 空灵光效渐变、深紫与青绿、大气光晕 |
|
||||||
|
|
||||||
|
> 图片为 600px 宽截图,来自[在线预览](../preview/index.html)。截图方法参见 [images/README.md](images/README.md)。
|
||||||
|
|
||||||
|
[**在线预览画廊**](../preview/index.html)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 安装
|
||||||
|
|
||||||
|
选择一种风格,将 `mail/` 目录复制到 Gitea 自定义模板路径:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp -r themes/horizon/mail/* /var/lib/gitea/custom/templates/mail/
|
||||||
|
systemctl restart gitea
|
||||||
|
```
|
||||||
|
|
||||||
|
切换风格只需覆盖文件,无需更改配置。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 预览
|
||||||
|
|
||||||
|
```bash
|
||||||
|
go run ./tools/build-preview.go
|
||||||
|
```
|
||||||
|
然后打开 `preview/index.html`。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 兼容性
|
||||||
|
|
||||||
|
- **Gitea 1.21+**,100% 变量兼容,仅使用内置函数和官方翻译键
|
||||||
|
|
||||||
|
## 许可证
|
||||||
|
|
||||||
|
MIT — 详见 [LICENSE](../LICENSE)。
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
# Gitea 郵件模板
|
||||||
|
|
||||||
|
為自託管 [Gitea](https://about.gitea.com) 實例精心設計、面向不同受眾的郵件模板集合。
|
||||||
|
|
||||||
|
> **110 個模板檔案 — 10 種視覺風格,每種 11 種郵件類型**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 設計理念
|
||||||
|
|
||||||
|
大多數自託管 Gitea 實例使用預設的純文字郵件模板。本專案提供了**開箱即用、視覺精美的替代方案**——每種方案都針對特定社群或受眾設計,您可以選擇最適合您使用者的風格。
|
||||||
|
|
||||||
|
每個模板都是直接替換。所有 Go 模板變數、翻譯鍵和 Gitea 資料上下文完全相容。**無需修補程式、無需外掛、無需 fork。**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 風格展示
|
||||||
|
|
||||||
|
| 預覽 | 風格 | 受眾 | 特點 |
|
||||||
|
|---|---|---|---|
|
||||||
|
|  | **Horizon** | 企業/公司 | 藍色強調色、石板灰排版、居中卡片 |
|
||||||
|
|  | **Terminal** | 開發者/技術 | 暗色模式、等寬字型、綠色命令列風格 |
|
||||||
|
|  | **Ember** | 社群/開源 | 暖琥珀色、圓角、人文主義、包容 |
|
||||||
|
|  | **Bloom** | 創意/新創 | 磨砂玻璃、柔和藍色光線、虹彩點綴 |
|
||||||
|
|  | **Heritage** | 教育/研究 | 海軍藍與金色、襯線字型、經典、權威 |
|
||||||
|
|  | **Neon** | 遊戲/Web3/創意科技 | 賽博龐克霓虹、粉紅與青色、合成波能量 |
|
||||||
|
|  | **Mono** | 設計工作室/編輯 | 瑞士粗野主義、黑白紅強調、零圓角 |
|
||||||
|
|  | **Terra** | 永續/健康 | 溫暖大地色調、有機質感、人文襯線 |
|
||||||
|
|  | **Ink** | 出版/新聞/文學 | 編輯印刷、深藍與金色、報紙排版 |
|
||||||
|
|  | **Aurora** | 高端SaaS/正念 | 空靈光效漸變、深紫與青綠、大氣光暈 |
|
||||||
|
|
||||||
|
> 圖片為 600px 寬截圖,來自[線上預覽](../preview/index.html)。截圖方法參見 [images/README.md](images/README.md)。
|
||||||
|
|
||||||
|
[**線上預覽展示**](../preview/index.html)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 安裝
|
||||||
|
|
||||||
|
選擇一種風格,將 `mail/` 目錄複製到 Gitea 自訂模板路徑:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp -r themes/horizon/mail/* /var/lib/gitea/custom/templates/mail/
|
||||||
|
systemctl restart gitea
|
||||||
|
```
|
||||||
|
|
||||||
|
切換風格只需覆蓋檔案,無需更改設定。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 預覽
|
||||||
|
|
||||||
|
```bash
|
||||||
|
go run ./tools/build-preview.go
|
||||||
|
```
|
||||||
|
然後開啟 `preview/index.html`。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 相容性
|
||||||
|
|
||||||
|
- **Gitea 1.21+**,100% 變數相容,僅使用內建函式和官方翻譯鍵
|
||||||
|
|
||||||
|
## 授權
|
||||||
|
|
||||||
|
MIT — 詳見 [LICENSE](../LICENSE)。
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# Style Preview Images
|
||||||
|
|
||||||
|
Place 600px-wide PNG screenshots here, captured from the [live preview](../preview/index.html).
|
||||||
|
|
||||||
|
## Naming Convention
|
||||||
|
|
||||||
|
```
|
||||||
|
horizon.png terminal.png ember.png bloom.png heritage.png
|
||||||
|
neon.png mono.png terra.png ink.png aurora.png
|
||||||
|
```
|
||||||
|
|
||||||
|
## How to Capture
|
||||||
|
|
||||||
|
1. Run `go run ./tools/build-preview.go` from the project root
|
||||||
|
2. Open `preview/index.html` in a browser
|
||||||
|
3. For each style, select the "Activate Account" template and "Modern" client mode
|
||||||
|
4. Take a screenshot of the rendered email (600px width recommended)
|
||||||
|
5. Save as `<style-name>.png` in this directory
|
||||||
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
@@ -0,0 +1,312 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Gitea Mail Templates - Live Preview</title>
|
||||||
|
<style>
|
||||||
|
:root{
|
||||||
|
--bg:#0b1120;--surface:#151d2e;--border:#1e2d45;--text:#d1d9e6;--muted:#6b7d99;
|
||||||
|
--accent:#4da6ff;--green:#34d399;--red:#f87171;--warn:#fbbf24;
|
||||||
|
--nav-h:48px;--panel-w:270px;--rad:6px
|
||||||
|
}
|
||||||
|
*{margin:0;padding:0;box-sizing:border-box}
|
||||||
|
body{font-family:system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);height:100vh;display:flex;flex-direction:column}
|
||||||
|
|
||||||
|
// ── Top bar ──
|
||||||
|
#topbar{height:var(--nav-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 16px;gap:14px;flex-shrink:0;z-index:10}
|
||||||
|
#topbar .brand{font-weight:700;font-size:14px;color:#fff;white-space:nowrap;letter-spacing:-0.2px}
|
||||||
|
#topbar .brand span{color:var(--accent);font-weight:400;font-size:11px;margin-left:4px;text-transform:uppercase;letter-spacing:1px}
|
||||||
|
#topbar .sep{width:1px;height:20px;background:var(--border)}
|
||||||
|
#topbar label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin-right:-8px}
|
||||||
|
#topbar select{background:var(--bg);color:var(--text);border:1px solid var(--border);padding:6px 10px;border-radius:var(--rad);font-size:12px;cursor:pointer;outline:none;min-width:90px}
|
||||||
|
#topbar select:focus{border-color:var(--accent)}
|
||||||
|
#topbar .btn-group{display:flex}
|
||||||
|
#topbar .btn-group button{background:var(--bg);color:var(--muted);border:1px solid var(--border);padding:6px 14px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}
|
||||||
|
#topbar .btn-group button:first-child{border-radius:var(--rad) 0 0 var(--rad)}
|
||||||
|
#topbar .btn-group button:last-child{border-radius:0 var(--rad) var(--rad) 0}
|
||||||
|
#topbar .btn-group button+button{border-left:none}
|
||||||
|
#topbar .btn-group button.on{background:var(--accent);color:#000;border-color:var(--accent);font-weight:600}
|
||||||
|
#topbar .hint{font-size:10px;color:var(--muted);opacity:.5}
|
||||||
|
|
||||||
|
// ── Main layout ──
|
||||||
|
#main{flex:1;display:flex;min-height:0}
|
||||||
|
#preview-area{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:24px;overflow:auto;background:linear-gradient(135deg,#0b1120,#131c30,#0d1525)}
|
||||||
|
|
||||||
|
// ── Viewport ──
|
||||||
|
#viewport{border-radius:var(--rad);box-shadow:0 8px 32px rgba(0,0,0,.45);transition:all .3s;flex-shrink:0;overflow:hidden;background:#fff}
|
||||||
|
#viewport.desktop{width:1386px;height:780px}
|
||||||
|
#viewport.mobile{width:390px;height:780px;border-radius:28px;border:3px solid #1e293b;box-shadow:0 8px 32px rgba(0,0,0,.5),inset 0 0 0 1px #0f172a;display:flex;flex-direction:column}
|
||||||
|
#viewport.mobile::before{content:'';display:block;height:24px;background:#1e293b;flex-shrink:0}
|
||||||
|
#preview-frame{width:100%;height:100%;border:none;display:block;background:#fff}
|
||||||
|
#viewport.desktop #preview-frame{border-radius:var(--rad)}
|
||||||
|
|
||||||
|
// ── Side panel ──
|
||||||
|
#panel{width:var(--panel-w);background:var(--surface);border-left:1px solid var(--border);overflow-y:auto;flex-shrink:0;display:flex;flex-direction:column}
|
||||||
|
#panel section{padding:14px 16px;border-bottom:1px solid var(--border)}
|
||||||
|
#panel section:last-child{border-bottom:none}
|
||||||
|
#panel h3{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:10px}
|
||||||
|
#panel .card{background:var(--bg);border-radius:var(--rad);padding:10px 12px;margin-bottom:8px}
|
||||||
|
#panel .card .label{font-size:10px;color:var(--muted);margin-bottom:2px}
|
||||||
|
#panel .card .value{font-size:12px;color:var(--text)}
|
||||||
|
#panel table{width:100%;border-collapse:collapse}
|
||||||
|
#panel table td{padding:4px 6px;font-size:11px;border-bottom:1px solid rgba(255,255,255,.03);vertical-align:top}
|
||||||
|
#panel table td:first-child{font-family:monospace;color:var(--accent);font-size:10px;width:0;white-space:nowrap}
|
||||||
|
#panel table td:last-child{color:var(--muted);text-align:right;font-size:10px;word-break:break-all}
|
||||||
|
#panel .badge{display:inline-block;font-size:9px;padding:1px 6px;border-radius:3px;font-weight:600;letter-spacing:.2px;white-space:nowrap}
|
||||||
|
.badge-req{background:rgba(52,211,153,.12);color:var(--green)}
|
||||||
|
.badge-opt{background:rgba(107,125,153,.1);color:var(--muted)}
|
||||||
|
|
||||||
|
// ── Client indicators ──
|
||||||
|
#panel .indicators{display:flex;flex-wrap:wrap;gap:4px 12px}
|
||||||
|
#panel .indicators span{font-size:11px;color:var(--muted);display:inline-flex;align-items:center;gap:5px}
|
||||||
|
.dot{width:6px;height:6px;border-radius:50%;display:inline-block;flex-shrink:0}
|
||||||
|
.d-on{background:var(--green)}.d-off{background:var(--red)}.d-warn{background:var(--warn)}
|
||||||
|
|
||||||
|
// ── Loading ──
|
||||||
|
.loading-wrap{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted);font-size:13px;flex-direction:column;gap:8px}
|
||||||
|
.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}
|
||||||
|
@keyframes spin{to{transform:rotate(360deg)}}
|
||||||
|
|
||||||
|
#panel::-webkit-scrollbar{width:4px}
|
||||||
|
#panel::-webkit-scrollbar-track{background:transparent}
|
||||||
|
#panel::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}
|
||||||
|
|
||||||
|
@media(max-width:850px){#panel{display:none}#topbar .hint{display:none}}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<nav id="topbar">
|
||||||
|
<span class="brand">Gitea Mail Templates <span>Preview</span></span>
|
||||||
|
<span class="sep"></span>
|
||||||
|
<label>Theme</label>
|
||||||
|
<select id="sel-theme" onchange="switchTheme(this.value)">
|
||||||
|
<option value="horizon">Horizon</option><option value="terminal">Terminal</option>
|
||||||
|
<option value="ember">Ember</option><option value="bloom">Bloom</option>
|
||||||
|
<option value="heritage">Heritage</option>
|
||||||
|
<option value="neon">Neon</option>
|
||||||
|
<option value="mono">Mono</option>
|
||||||
|
<option value="terra">Terra</option>
|
||||||
|
<option value="ink">Ink</option>
|
||||||
|
<option value="aurora">Aurora</option>
|
||||||
|
</select>
|
||||||
|
<span class="sep"></span>
|
||||||
|
<label>Template</label>
|
||||||
|
<select id="sel-template" onchange="switchTemplate(this.value)"></select>
|
||||||
|
<span class="sep"></span>
|
||||||
|
<label>Client</label>
|
||||||
|
<select id="sel-client" onchange="switchClient(this.value)">
|
||||||
|
<option value="modern">Modern</option><option value="gmail">Gmail</option>
|
||||||
|
<option value="outlook">Outlook</option><option value="raw">Raw Source</option>
|
||||||
|
</select>
|
||||||
|
<span class="sep"></span>
|
||||||
|
<div class="btn-group">
|
||||||
|
<button id="btn-desk" class="on" onclick="setViewport('desktop')">Desktop</button>
|
||||||
|
<button id="btn-mob" onclick="setViewport('mobile')">Mobile</button>
|
||||||
|
</div>
|
||||||
|
<span class="hint">keys: d/m ←→</span>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div id="main">
|
||||||
|
<div id="preview-area">
|
||||||
|
<div id="viewport" class="desktop">
|
||||||
|
<div class="loading-wrap" id="loading">
|
||||||
|
<div class="spinner"></div>
|
||||||
|
<span>Loading pre-rendered templates...</span>
|
||||||
|
</div>
|
||||||
|
<iframe id="preview-frame" sandbox="allow-same-origin" style="display:none"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<aside id="panel">
|
||||||
|
<section>
|
||||||
|
<h3>Current Template</h3>
|
||||||
|
<div class="card">
|
||||||
|
<div class="label">Type</div>
|
||||||
|
<div class="value" id="panel-name">-</div>
|
||||||
|
</div>
|
||||||
|
<div class="card">
|
||||||
|
<div class="label">Description</div>
|
||||||
|
<div class="value" id="panel-desc" style="font-size:11px;line-height:1.5">-</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section style="flex:1;overflow-y:auto">
|
||||||
|
<h3>Parameters</h3>
|
||||||
|
<table id="panel-params"><tr><td colspan="2" style="color:var(--muted)">-</td></tr></table>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<h3>Client Simulation</h3>
|
||||||
|
<div class="indicators" id="panel-indicators"></div>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<h3>Source</h3>
|
||||||
|
<div class="card" style="font-family:monospace;font-size:10px;color:var(--muted);word-break:break-all" id="panel-path">-</div>
|
||||||
|
</section>
|
||||||
|
</aside>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="rendered.js"></script>
|
||||||
|
<script>
|
||||||
|
//
|
||||||
|
// Template registry — mirrors the Go build script definitions
|
||||||
|
//
|
||||||
|
const REGISTRY = {
|
||||||
|
activate: {name:'Activate Account', path:'mail/user/auth/activate.tmpl', desc:'Account activation — sent when a new user registers.'},
|
||||||
|
activate_email: {name:'Activate Email', path:'mail/user/auth/activate_email.tmpl', desc:'Email address verification — sent when adding or changing an email address.'},
|
||||||
|
register_notify: {name:'Register Notify', path:'mail/user/auth/register_notify.tmpl', desc:'Registration notification — confirms successful account registration.'},
|
||||||
|
reset_passwd: {name:'Reset Password', path:'mail/user/auth/reset_passwd.tmpl', desc:'Password reset — sent when user requests a password reset link.'},
|
||||||
|
team_invite: {name:'Team Invite', path:'mail/org/team_invite.tmpl', desc:'Team invitation — sent when a user is invited to join an organization team.'},
|
||||||
|
collaborator: {name:'Collaborator Added', path:'mail/repo/collaborator.tmpl', desc:'Collaborator added — sent when a user is added as a repository collaborator.'},
|
||||||
|
transfer: {name:'Repository Transfer', path:'mail/repo/transfer.tmpl', desc:'Repository transfer — sent when repository ownership is transferred.'},
|
||||||
|
release: {name:'New Release', path:'mail/repo/release.tmpl', desc:'New release — sent when a new release is published.'},
|
||||||
|
workflow_run: {name:'Workflow Run', path:'mail/repo/actions/workflow_run.tmpl', desc:'Workflow run — sent when a CI/CD workflow completes.'},
|
||||||
|
assigned: {name:'Issue Assigned', path:'mail/repo/issue/assigned.tmpl', desc:'Issue/PR assigned — sent when an issue or pull request is assigned.'},
|
||||||
|
default: {name:'Issue Update', path:'mail/repo/issue/default.tmpl', desc:'Issue/PR update — comments, mentions, reviews, merges, and other activity.'}
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// Parameter definitions (informational only — rendering is done by Go)
|
||||||
|
//
|
||||||
|
const PARAMS = {
|
||||||
|
activate: {'DisplayName':'Alex Johnson','Code':'activation-code-abc123','ActiveCodeLives':'24 hours','AppName':'Gitea','AppUrl':'https://about.gitea.com'},
|
||||||
|
activate_email: {'DisplayName':'Alex Johnson','Code':'verify-code-xyz789','Email':'alex@example.com','ActiveCodeLives':'24 hours','AppName':'Gitea','AppUrl':'https://about.gitea.com'},
|
||||||
|
register_notify: {'DisplayName':'Alex Johnson','Username':'alexj','AppName':'Gitea','AppUrl':'https://about.gitea.com'},
|
||||||
|
reset_passwd: {'DisplayName':'Alex Johnson','Code':'reset-token-abc123','ResetPwdCodeLives':'3 hours','AppName':'Gitea','AppUrl':'https://about.gitea.com'},
|
||||||
|
team_invite: {'AppName':'Gitea','AppUrl':'https://about.gitea.com','Inviter.DisplayName':'Sarah Chen','Team.Name':'Core Developers','Organization.DisplayName':'Acme Corp','InviteURL':'...invite?token=abc','Invite.Email':'alex@example.com'},
|
||||||
|
collaborator: {'AppName':'Gitea','AppUrl':'https://about.gitea.com','Subject':'Collaborator Added','Link':'.../repo/project','RepoName':'acme/project'},
|
||||||
|
transfer: {'AppName':'Gitea','AppUrl':'https://about.gitea.com','Subject':'Repository Transfer','Link':'.../transferred-project','Repo':'acme/transferred-project'},
|
||||||
|
release: {'AppName':'Gitea','AppUrl':'https://about.gitea.com','Subject':'New Release v2.0.0','Link':'.../repo/project/releases/tag/v2.0.0','Release.Publisher.Name':'Sarah Chen','Release.TagName':'v2.0.0','Release.Title':'Version 2.0','Release.HTMLURL':'.../releases/tag/v2.0.0','Release.Repo.HTMLURL':'.../repo/project','Release.Repo.FullName':'acme/project','Release.RenderedNote':'<p>Major new features...</p>','DisableDownloadSourceArchives':'false','Release.Attachments':'[]'},
|
||||||
|
workflow_run: {'AppName':'Gitea','AppUrl':'https://about.gitea.com','Subject':'Workflow Run: CI','RunStatusText':'All jobs passed','Repo.FullName':'acme/project','Run.WorkflowID':'ci.yml','Run.HTMLURL':'.../actions/runs/42','Jobs':'[3 items]'},
|
||||||
|
assigned: {'AppName':'Gitea','AppUrl':'https://about.gitea.com','Subject':'Issue #42 Assigned','Link':'.../repo/project/issues/42','Doer.Name':'Sarah Chen','IsPull':'false','Issue.Index':'42','Issue.Repo.HTMLURL':'.../repo/project','Issue.Repo.FullName':'acme/project'},
|
||||||
|
default: {'AppName':'Gitea','AppUrl':'https://about.gitea.com','Subject':'Re: Issue #42','Link':'.../repo/project/issues/42','ActionName':'comment','Doer.Name':'Sarah Chen','Body':'This is a comment on the issue...','CanReply':'true','IsMention':'false','IsPull':'false','Issue.Index':'42','Issue.PullRequest.BaseBranch':'main','Comment.Commits':'[]','Comment.IsForcePush':'false','ReviewComments':'[]'}
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// State
|
||||||
|
//
|
||||||
|
const state = { theme:'horizon', template:'activate', client:'modern', viewport:'desktop' };
|
||||||
|
let rendered = null; // loaded from rendered.js via <script> tag
|
||||||
|
|
||||||
|
//
|
||||||
|
// Client transforms
|
||||||
|
//
|
||||||
|
function transform(html, mode) {
|
||||||
|
if(mode==='modern') return html;
|
||||||
|
if(mode==='raw') {
|
||||||
|
const e = html.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');
|
||||||
|
return '<!DOCTYPE html><html><head><style>body{background:#0d1117;color:#c9d1d9;font-family:Consolas,monospace;padding:16px;margin:0}pre{white-space:pre-wrap;word-break:break-all;font-size:11px;line-height:1.6;margin:0}</style></head><body><pre>'+e+'</pre></body></html>';
|
||||||
|
}
|
||||||
|
let out = html.replace(/<style[^>]*>[\s\S]*?<\/style>/gi, '');
|
||||||
|
if(mode==='gmail') {
|
||||||
|
out = out.replace(/font-family:'Poppins'/gi,'font-family:Arial,sans-serif');
|
||||||
|
out = out.replace(/font-family:'JetBrains Mono'/gi,'font-family:Consolas,monospace');
|
||||||
|
}
|
||||||
|
if(mode==='outlook') {
|
||||||
|
const strip=[/border-radius:[^;"']+/gi,/box-shadow:[^;"']+/gi,/linear-gradient\([^)]*\)/gi,/transition:[^;"']+/gi,/letter-spacing:[^;"']+/gi,/font-variant:small-caps/gi,/-webkit-background-clip:text/gi,/-webkit-text-fill-color:transparent/gi,/overflow:hidden/gi];
|
||||||
|
strip.forEach(r=>{out=out.replace(r,'')});
|
||||||
|
out=out.replace(/background:linear-gradient\([^)]*\)/gi,'background:#f0f0f0');
|
||||||
|
out=out.replace(/style="[^"]*"/g,m=>m.replace(/;\s*;/g,';'));
|
||||||
|
out=out.replace(/font-family:Georgia/gi,'font-family:Georgia,serif');
|
||||||
|
out=out.replace(/font-family:'Charter'/gi,'font-family:Georgia,serif');
|
||||||
|
}
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Render preview
|
||||||
|
//
|
||||||
|
function render() {
|
||||||
|
const frame = document.getElementById('preview-frame');
|
||||||
|
const loading = document.getElementById('loading');
|
||||||
|
if(!rendered) { loading.style.display='flex'; frame.style.display='none'; return; }
|
||||||
|
|
||||||
|
frame.style.display = 'none';
|
||||||
|
loading.style.display = 'flex';
|
||||||
|
|
||||||
|
const html = rendered[state.theme]?.[state.template];
|
||||||
|
const content = html ? transform(html, state.client) : '<p style="color:red;padding:20px">Not found: '+state.theme+'/'+state.template+'</p>';
|
||||||
|
|
||||||
|
frame.onload = function() {
|
||||||
|
loading.style.display = 'none';
|
||||||
|
frame.style.display = 'block';
|
||||||
|
frame.onload = null;
|
||||||
|
};
|
||||||
|
frame.srcdoc = content;
|
||||||
|
updatePanel();
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Panel updates
|
||||||
|
//
|
||||||
|
function updatePanel() {
|
||||||
|
const t = REGISTRY[state.template];
|
||||||
|
document.getElementById('panel-name').textContent = t.name;
|
||||||
|
document.getElementById('panel-desc').textContent = t.desc;
|
||||||
|
document.getElementById('panel-path').textContent = 'themes/'+state.theme+'/'+t.path;
|
||||||
|
|
||||||
|
const p = PARAMS[state.template];
|
||||||
|
let rows = '';
|
||||||
|
for(const [k,v] of Object.entries(p)){
|
||||||
|
const isReq = !k.includes('RenderedNote') && !k.includes('Attachments') && !k.includes('DisableDownload') && !k.includes('IsMention') && !k.includes('IsPull') && !k.includes('IsForcePush') && !k.includes('ReviewComments') && !k.includes('Commits') && !k.includes('BaseBranch');
|
||||||
|
rows += '<tr><td>.'+k+'</td><td>'+String(v)+'</td><td><span class="badge '+(isReq?'badge-req':'badge-opt')+'">'+(isReq?'required':'optional')+'</span></td></tr>';
|
||||||
|
}
|
||||||
|
document.getElementById('panel-params').innerHTML = rows;
|
||||||
|
|
||||||
|
// Client simulation indicators
|
||||||
|
const c=state.client,
|
||||||
|
on='<span class="dot d-on"></span>',off='<span class="dot d-off"></span>',warn='<span class="dot d-warn"></span>',
|
||||||
|
items=[
|
||||||
|
[c==='raw'?off:(c==='gmail'||c==='outlook'?warn:on),'CSS'],
|
||||||
|
[c==='raw'?off:(c==='outlook'?warn:on),'Web Fonts'],
|
||||||
|
[c==='modern'?on:off,'Border Radius'],
|
||||||
|
[c==='modern'?on:off,'Shadows'],
|
||||||
|
[c==='modern'?on:off,'Gradients']
|
||||||
|
];
|
||||||
|
document.getElementById('panel-indicators').innerHTML = items.map(([d,label])=>'<span>'+d+' '+label+'</span>').join('');
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Events
|
||||||
|
//
|
||||||
|
function switchTheme(v) { state.theme=v; render(); }
|
||||||
|
function switchTemplate(v) { state.template=v; render(); }
|
||||||
|
function switchClient(v) { state.client=v; render(); }
|
||||||
|
function setViewport(v) {
|
||||||
|
state.viewport=v;
|
||||||
|
document.getElementById('btn-desk').classList.toggle('on',v==='desktop');
|
||||||
|
document.getElementById('btn-mob').classList.toggle('on',v==='mobile');
|
||||||
|
document.getElementById('viewport').className=v;
|
||||||
|
render();
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Keyboard
|
||||||
|
//
|
||||||
|
document.addEventListener('keydown',e=>{
|
||||||
|
if(e.key==='d') setViewport('desktop');
|
||||||
|
if(e.key==='m') setViewport('mobile');
|
||||||
|
const keys=Object.keys(REGISTRY), idx=keys.indexOf(state.template);
|
||||||
|
if(e.key==='ArrowRight'&&idx<keys.length-1){switchTemplate(keys[idx+1]);document.getElementById('sel-template').value=keys[idx+1];}
|
||||||
|
if(e.key==='ArrowLeft'&&idx>0){switchTemplate(keys[idx-1]);document.getElementById('sel-template').value=keys[idx-1];}
|
||||||
|
});
|
||||||
|
|
||||||
|
//
|
||||||
|
// Init
|
||||||
|
//
|
||||||
|
(function(){
|
||||||
|
const sel=document.getElementById('sel-template');
|
||||||
|
for(const[id,t]of Object.entries(REGISTRY)){
|
||||||
|
const o=document.createElement('option');o.value=id;o.textContent=t.name;sel.appendChild(o);
|
||||||
|
}
|
||||||
|
if(window.__RENDERED__){
|
||||||
|
rendered=window.__RENDERED__;
|
||||||
|
document.getElementById('loading').style.display='none';
|
||||||
|
}else{
|
||||||
|
document.getElementById('loading').innerHTML='<span style="color:var(--red)">rendered.js not found</span><small style="color:var(--muted);margin-top:8px">Run: cd tools && go run build-preview.go</small>';
|
||||||
|
}
|
||||||
|
render();
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{AppName}} - Team Invitation</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-card{padding:32px 20px!important}
|
||||||
|
.resp-spacer{padding:24px 20px!important}
|
||||||
|
.resp-heading{font-size:20px!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
|
||||||
|
<!-- floating title -->
|
||||||
|
<tr><td style="padding:0 0 32px;text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
|
||||||
|
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- card -->
|
||||||
|
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
|
||||||
|
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;">{{.locale.Tr "mail.hi_user_x" .Invite.Email}}</p>
|
||||||
|
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;">{{.locale.Tr "mail.team_invite.text_1" (DotEscape .Inviter.DisplayName) (DotEscape .Team.Name) (DotEscape .Organization.DisplayName)}}</p>
|
||||||
|
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;">{{.locale.Tr "mail.team_invite.text_2"}}</p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
|
||||||
|
<!-- button + link -->
|
||||||
|
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
|
||||||
|
<a href="{{.InviteURL}}" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">Accept Invitation</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
|
||||||
|
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{.InviteURL}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td style="padding:32px 0 0;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">© <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-card{padding:32px 20px!important}
|
||||||
|
.resp-spacer{padding:24px 20px!important}
|
||||||
|
.resp-heading{font-size:20px!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
|
||||||
|
<!-- floating title -->
|
||||||
|
<tr><td style="padding:0 0 32px;text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
|
||||||
|
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- card -->
|
||||||
|
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
|
||||||
|
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;"></p>
|
||||||
|
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;"><h2>{{.Repo.FullName}} - {{.Run.WorkflowID}}: {{.RunStatusText}}</h2><ul>{{range $job := .Jobs}}<li><a href="{{$job.HTMLURL}}">{{$job.Status}}: {{$job.Name}}{{if gt $job.Attempt 1}} (retry #{{$job.Attempt}}){{end}} - {{$job.Duration}}</a></li>{{end}}</ul></p>
|
||||||
|
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;"></p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
|
||||||
|
<!-- button + link -->
|
||||||
|
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
|
||||||
|
<a href="{{.Run.HTMLURL}}" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
|
||||||
|
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{.Run.HTMLURL}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td style="padding:32px 0 0;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">© <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-card{padding:32px 20px!important}
|
||||||
|
.resp-spacer{padding:24px 20px!important}
|
||||||
|
.resp-heading{font-size:20px!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
|
||||||
|
<!-- floating title -->
|
||||||
|
<tr><td style="padding:0 0 32px;text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
|
||||||
|
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- card -->
|
||||||
|
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
|
||||||
|
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;"></p>
|
||||||
|
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;">{{.locale.Tr "mail.repo.collaborator.added.text"}} <code>{{.RepoName}}</code>.</p>
|
||||||
|
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;"></p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
|
||||||
|
<!-- button + link -->
|
||||||
|
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
|
||||||
|
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{.Link}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td style="padding:32px 0 0;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">© <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-card{padding:32px 20px!important}
|
||||||
|
.resp-spacer{padding:24px 20px!important}
|
||||||
|
.resp-heading{font-size:20px!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
|
||||||
|
<!-- floating title -->
|
||||||
|
<tr><td style="padding:0 0 32px;text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
|
||||||
|
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- card -->
|
||||||
|
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
|
||||||
|
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;"></p>
|
||||||
|
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;">{{$repo_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Issue.Repo.HTMLURL .Issue.Repo.FullName}}{{$link := HTMLFormat "<a href=\047%s\047>#%d</a>" .Link .Issue.Index}}{{if .IsPull}}{{.locale.Tr "mail.issue_assigned.pull" .Doer.Name $link $repo_url}}{{else}}{{.locale.Tr "mail.issue_assigned.issue" .Doer.Name $link $repo_url}}{{end}}</p>
|
||||||
|
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;"></p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
|
||||||
|
<!-- button + link -->
|
||||||
|
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
|
||||||
|
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{.Link}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td style="padding:32px 0 0;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">© <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-card{padding:32px 20px!important}
|
||||||
|
.resp-spacer{padding:24px 20px!important}
|
||||||
|
.resp-heading{font-size:20px!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
|
||||||
|
<!-- floating title -->
|
||||||
|
<tr><td style="padding:0 0 32px;text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
|
||||||
|
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- card -->
|
||||||
|
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
|
||||||
|
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;"></p>
|
||||||
|
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;">{{if .IsMention}}<p>{{.locale.Tr "mail.issue.x_mentioned_you" .Doer.Name}}</p>{{end}}{{if eq .ActionName "push"}}<p>{{if .Comment.IsForcePush}}{{$oldCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.OldCommit}}{{$oldShortSha := ShortSha .Comment.OldCommit}}{{$oldCommitLink := HTMLFormat "<a href=\047%[1]s\047>%[2]s</a>" $oldCommitUrl $oldShortSha}}{{$newCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.NewCommit}}{{$newShortSha := ShortSha .Comment.NewCommit}}{{$newCommitLink := HTMLFormat "<a href=\047%[1]s\047>%[2]s</a>" $newCommitUrl $newShortSha}}{{.locale.Tr "mail.issue.action.force_push" .Doer.Name .Comment.Issue.PullRequest.HeadBranch $oldCommitLink $newCommitLink}}{{else}}{{.locale.TrN (len .Comment.Commits) "mail.issue.action.push_1" "mail.issue.action.push_n" .Doer.Name .Comment.Issue.PullRequest.HeadBranch (len .Comment.Commits)}}{{end}}</p>{{end}}<p>{{if eq .ActionName "close"}}{{.locale.Tr "mail.issue.action.close" .Doer.Name .Issue.Index}}{{else if eq .ActionName "reopen"}}{{.locale.Tr "mail.issue.action.reopen" .Doer.Name .Issue.Index}}{{else if eq .ActionName "merge"}}{{.locale.Tr "mail.issue.action.merge" .Doer.Name .Issue.Index .Issue.PullRequest.BaseBranch}}{{else if eq .ActionName "approve"}}{{.locale.Tr "mail.issue.action.approve" .Doer.Name}}{{else if eq .ActionName "reject"}}{{.locale.Tr "mail.issue.action.reject" .Doer.Name}}{{else if eq .ActionName "review"}}{{.locale.Tr "mail.issue.action.review" .Doer.Name}}{{else if eq .ActionName "review_dismissed"}}{{.locale.Tr "mail.issue.action.review_dismissed" .Doer.Name .Comment.Review.Reviewer.Name}}{{else if eq .ActionName "ready_for_review"}}{{.locale.Tr "mail.issue.action.ready_for_review" .Doer.Name}}{{end}}{{- if eq .Body ""}}{{if eq .ActionName "new"}}{{.locale.Tr "mail.issue.action.new" .Doer.Name .Issue.Index}}{{end}}{{else}}{{.Body}}{{end -}}</p>{{- range .ReviewComments}}<hr><p>{{$.locale.Tr "mail.issue.in_tree_path" .TreePath}}</p><pre>{{.Patch}}</pre><div>{{.RenderedContent}}</div>{{end -}}{{if eq .ActionName "push"}}<ul>{{range .Comment.Commits}}<li><a href="{{$.Comment.Issue.PullRequest.BaseRepo.HTMLURL}}/commit/{{.ID}}">{{ShortSha .ID.String}}</a> - {{.MessageTitle}}</li>{{end}}</ul>{{end}}</p>
|
||||||
|
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;"></p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
|
||||||
|
<!-- button + link -->
|
||||||
|
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
|
||||||
|
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{.Link}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td style="padding:32px 0 0;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">© <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-card{padding:32px 20px!important}
|
||||||
|
.resp-spacer{padding:24px 20px!important}
|
||||||
|
.resp-heading{font-size:20px!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
|
||||||
|
<!-- floating title -->
|
||||||
|
<tr><td style="padding:0 0 32px;text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
|
||||||
|
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- card -->
|
||||||
|
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
|
||||||
|
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;"></p>
|
||||||
|
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;">{{$release_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Release.HTMLURL .Release.TagName}}{{$repo_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Release.Repo.HTMLURL .Release.Repo.FullName}}{{.locale.Tr "mail.release.new.text" .Release.Publisher.Name $release_url $repo_url}}
|
||||||
|
<h4>{{.locale.Tr "mail.release.title" .Release.Title}}</h4>
|
||||||
|
{{if .Release.RenderedNote}}<div>{{.Release.RenderedNote}}</div>{{end}}
|
||||||
|
<p>{{.locale.Tr "mail.release.downloads"}}</p>
|
||||||
|
<ul>{{if not .DisableDownloadSourceArchives}}<li><a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.zip">{{.locale.Tr "mail.release.download.zip"}}</a></li><li><a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.tar.gz">{{.locale.Tr "mail.release.download.targz"}}</a></li>{{end}}{{if .Release.Attachments}}{{range .Release.Attachments}}<li><a href="{{.DownloadURL}}">{{.Name}} ({{.Size | FileSize}})</a></li>{{end}}{{end}}</ul></p>
|
||||||
|
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;"></p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
|
||||||
|
<!-- button + link -->
|
||||||
|
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
|
||||||
|
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{.Link}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td style="padding:32px 0 0;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">© <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-card{padding:32px 20px!important}
|
||||||
|
.resp-spacer{padding:24px 20px!important}
|
||||||
|
.resp-heading{font-size:20px!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
|
||||||
|
<!-- floating title -->
|
||||||
|
<tr><td style="padding:0 0 32px;text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
|
||||||
|
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- card -->
|
||||||
|
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
|
||||||
|
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;"></p>
|
||||||
|
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;">{{$url := HTMLFormat "<a href=\047%[1]s\047>%[2]s</a>" .Link .Repo}}{{.Subject}}. {{.locale.Tr "mail.repo.transfer.body" $url}}</p>
|
||||||
|
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;"></p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
|
||||||
|
<!-- button + link -->
|
||||||
|
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
|
||||||
|
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{.Link}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td style="padding:32px 0 0;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">© <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.locale.Tr "mail.activate_account.title" (.DisplayName|DotEscape)}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-card{padding:32px 20px!important}
|
||||||
|
.resp-spacer{padding:24px 20px!important}
|
||||||
|
.resp-heading{font-size:20px!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
|
||||||
|
<!-- floating title -->
|
||||||
|
<tr><td style="padding:0 0 32px;text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
|
||||||
|
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- card -->
|
||||||
|
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
|
||||||
|
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;">{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}</p>
|
||||||
|
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;">{{.locale.Tr "mail.activate_account.text_1" (.DisplayName|DotEscape) AppName}}</p>
|
||||||
|
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;">{{.locale.Tr "mail.activate_account.text_2" .ActiveCodeLives}}</p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
|
||||||
|
<!-- button + link -->
|
||||||
|
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
|
||||||
|
{{$activate_url := printf "%suser/activate?code=%s" AppUrl (QueryEscape .Code)}}
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
|
||||||
|
<a href="{{$activate_url}}" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">Activate Account</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
|
||||||
|
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{$activate_url}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td style="padding:32px 0 0;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">© <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.locale.Tr "mail.activate_email.title" (.DisplayName|DotEscape)}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-card{padding:32px 20px!important}
|
||||||
|
.resp-spacer{padding:24px 20px!important}
|
||||||
|
.resp-heading{font-size:20px!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
|
||||||
|
<!-- floating title -->
|
||||||
|
<tr><td style="padding:0 0 32px;text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
|
||||||
|
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- card -->
|
||||||
|
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
|
||||||
|
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;">{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}</p>
|
||||||
|
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;">{{.locale.Tr "mail.activate_email.text" .ActiveCodeLives}}</p>
|
||||||
|
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;"></p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
|
||||||
|
<!-- button + link -->
|
||||||
|
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
|
||||||
|
{{$activate_url := printf "%suser/activate_email?code=%s&email=%s" AppUrl (QueryEscape .Code) (QueryEscape .Email)}}
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
|
||||||
|
<a href="{{$activate_url}}" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">Verify Email Address</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
|
||||||
|
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{$activate_url}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td style="padding:32px 0 0;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">© <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.locale.Tr "mail.register_notify.title" (.DisplayName|DotEscape) AppName}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-card{padding:32px 20px!important}
|
||||||
|
.resp-spacer{padding:24px 20px!important}
|
||||||
|
.resp-heading{font-size:20px!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
|
||||||
|
<!-- floating title -->
|
||||||
|
<tr><td style="padding:0 0 32px;text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
|
||||||
|
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- card -->
|
||||||
|
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
|
||||||
|
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;">{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}</p>
|
||||||
|
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;">{{.locale.Tr "mail.register_notify.text_1" AppName}}</p>
|
||||||
|
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;">{{.locale.Tr "mail.register_notify.text_2" .Username}}
|
||||||
|
{{$set_pwd_url := printf "%suser/forgot_password" AppUrl}}
|
||||||
|
{{.locale.Tr "mail.register_notify.text_3" $set_pwd_url}}</p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
|
||||||
|
<!-- button + link -->
|
||||||
|
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
|
||||||
|
<a href="{{AppUrl}}user/login" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">Go to {{AppName}}</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
|
||||||
|
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{AppUrl}}user/login</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td style="padding:32px 0 0;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">© <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.locale.Tr "mail.reset_password.title" (.DisplayName|DotEscape)}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#0a0815}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-card{padding:32px 20px!important}
|
||||||
|
.resp-spacer{padding:24px 20px!important}
|
||||||
|
.resp-heading{font-size:20px!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#0a0815;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;margin:40px auto;">
|
||||||
|
<!-- floating title -->
|
||||||
|
<tr><td style="padding:0 0 32px;text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5;" />
|
||||||
|
<span style="font-size:16px;font-weight:300;color:rgba(255,255,255,0.4);letter-spacing:4px;text-transform:uppercase;">{{AppName}}</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- card -->
|
||||||
|
<tr><td class="resp-card" style="padding:48px 40px;background:rgba(25,20,50,0.8);border:1px solid rgba(13,148,136,0.2);box-shadow:0 0 60px rgba(13,148,136,0.08),0 0 120px rgba(99,102,241,0.04);">
|
||||||
|
<p class="resp-heading" style="margin:0 0 20px;font-size:24px;font-weight:300;color:#ccfbf1;line-height:1.3;letter-spacing:-0.5px;">{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}</p>
|
||||||
|
<p style="margin:0 0 24px;font-size:14px;line-height:2;color:rgba(210,252,245,0.88);font-weight:300;">{{.locale.Tr "mail.reset_password.text" .ResetPwdCodeLives}}</p>
|
||||||
|
<p style="margin:0;font-size:13px;line-height:1.8;color:rgba(180,195,215,0.95);font-weight:300;"></p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td style="height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,0.3),transparent);"></td></tr>
|
||||||
|
<!-- button + link -->
|
||||||
|
<tr><td class="resp-spacer" style="padding:40px 40px;text-align:center;">
|
||||||
|
{{$recover_url := printf "%suser/recover_account?code=%s" AppUrl (QueryEscape .Code)}}
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:0 0 32px;"><tr><td align="center">
|
||||||
|
<a href="{{$recover_url}}" style="display:inline-block;padding:16px 48px;font-size:14px;font-weight:400;color:#e0f5f3;text-decoration:none;background:rgba(13,148,136,0.18);border:1px solid rgba(13,148,136,0.3);letter-spacing:1px;">Reset Password</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid rgba(13,148,136,0.18);background:rgba(13,148,136,0.03);"><tr><td style="padding:16px 18px;">
|
||||||
|
<p style="margin:0 0 8px;font-size:11px;color:rgba(180,252,238,0.75);font-weight:300;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:11px;font-family:monospace;color:#99f6e4;background:rgba(0,0,0,0.2);padding:10px 12px;border:1px solid rgba(13,148,136,0.15);word-break:break-all;">{{$recover_url}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td style="padding:32px 0 0;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:rgba(160,175,200,0.55);font-weight:300;">© <a href="{{AppUrl}}" style="color:rgba(94,234,212,0.5);text-decoration:none;font-weight:400;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{AppName}} · Team Invitation</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
<p style="margin:0 0 12px; font-size:17px; line-height:1.5; color:#1e293b; font-weight:600;">
|
||||||
|
{{.locale.Tr "mail.hi_user_x" .Invite.Email}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 8px; font-size:15px; line-height:1.6; color:#475569;">
|
||||||
|
{{.locale.Tr "mail.team_invite.text_1" (DotEscape .Inviter.DisplayName) (DotEscape .Team.Name) (DotEscape .Organization.DisplayName)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 20px; font-size:14px; line-height:1.6; color:#64748b;">
|
||||||
|
{{.locale.Tr "mail.team_invite.text_2"}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
|
||||||
|
<a href="{{.InviteURL}}" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">Accept Invitation</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
|
||||||
|
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
|
||||||
|
{{.InviteURL}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p style="margin:16px 0 0; font-size:13px; color:#64748b; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.team_invite.text_3" .Invite.Email}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#94a3b8;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
<h2 style="font-size:17px; font-weight:600; color:#1e293b; margin:0 0 16px;">
|
||||||
|
{{.Repo.FullName}} — {{.Run.WorkflowID}}: {{.RunStatusText}}
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<ul style="list-style:none; padding:0; margin:0 0 24px 0;">
|
||||||
|
{{range $job := .Jobs}}
|
||||||
|
<li style="background:linear-gradient(135deg,#f8faff,#f4f7fe); border:1px solid rgba(0,0,0,0.06); border-radius:10px; padding:12px 16px; margin-bottom:8px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.7);">
|
||||||
|
<a href="{{$job.HTMLURL}}" style="color:#3b82f6; text-decoration:none; font-weight:500; font-size:14px; display:block;">
|
||||||
|
{{$job.Status}}: {{$job.Name}}{{if gt $job.Attempt 1}} (retry #{{$job.Attempt}}){{end}} — {{$job.Duration}}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{{end}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:16px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
|
||||||
|
<a href="{{.Run.HTMLURL}}" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
|
||||||
|
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
|
||||||
|
{{.Run.HTMLURL}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#94a3b8;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
|
||||||
|
code { background: #eff4fd; padding: 2px 8px; border-radius: 5px; font-size: 14px; color: #3b82f6; font-weight: 500; border: 1px solid rgba(59,130,246,0.12); }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
<p style="margin:0 0 20px; font-size:15px; line-height:1.6; color:#475569;">
|
||||||
|
{{.locale.Tr "mail.repo.collaborator.added.text"}} <code>{{.RepoName}}</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
|
||||||
|
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
|
||||||
|
{{.Link}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#94a3b8;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
{{$repo_url := HTMLFormat "<a href='%s' style='color:#3b82f6; text-decoration:none; font-weight:500;'>%s</a>" .Issue.Repo.HTMLURL .Issue.Repo.FullName}}
|
||||||
|
{{$link := HTMLFormat "<a href='%s' style='color:#3b82f6; text-decoration:none; font-weight:500;'>#%d</a>" .Link .Issue.Index}}
|
||||||
|
<p style="margin:0 0 20px; font-size:15px; line-height:1.6; color:#475569;">
|
||||||
|
{{if .IsPull}}
|
||||||
|
{{.locale.Tr "mail.issue_assigned.pull" .Doer.Name $link $repo_url}}
|
||||||
|
{{else}}
|
||||||
|
{{.locale.Tr "mail.issue_assigned.issue" .Doer.Name $link $repo_url}}
|
||||||
|
{{end}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
|
||||||
|
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
|
||||||
|
{{.Link}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#94a3b8;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,121 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
|
||||||
|
blockquote { padding-left: 1em; margin: 1em 0; border-left: 2px solid #dbeafe; color: #64748b; }
|
||||||
|
pre { background: #eff4fd; padding: 12px; border-radius: 8px; overflow-x: auto; font-size: 13px; line-height: 1.5; border: 1px solid rgba(0,0,0,0.06); }
|
||||||
|
hr { border: none; border-top: 1px solid rgba(0,0,0,0.06); margin: 20px 0; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
{{if .IsMention}}<p style="margin:0 0 16px; font-size:15px; line-height:1.6; color:#475569;">{{.locale.Tr "mail.issue.x_mentioned_you" .Doer.Name}}</p>{{end}}
|
||||||
|
{{if eq .ActionName "push"}}
|
||||||
|
<p style="margin:0 0 16px; font-size:15px; line-height:1.6; color:#475569;">
|
||||||
|
{{if .Comment.IsForcePush}}
|
||||||
|
{{$oldCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.OldCommit}}
|
||||||
|
{{$oldShortSha := ShortSha .Comment.OldCommit}}
|
||||||
|
{{$oldCommitLink := HTMLFormat "<a href='%[1]s' style='color:#3b82f6; text-decoration:none; font-weight:500;'>%[2]s</a>" $oldCommitUrl $oldShortSha}}
|
||||||
|
|
||||||
|
{{$newCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.NewCommit}}
|
||||||
|
{{$newShortSha := ShortSha .Comment.NewCommit}}
|
||||||
|
{{$newCommitLink := HTMLFormat "<a href='%[1]s' style='color:#3b82f6; text-decoration:none; font-weight:500;'>%[2]s</a>" $newCommitUrl $newShortSha}}
|
||||||
|
|
||||||
|
{{.locale.Tr "mail.issue.action.force_push" .Doer.Name .Comment.Issue.PullRequest.HeadBranch $oldCommitLink $newCommitLink}}
|
||||||
|
{{else}}
|
||||||
|
{{.locale.TrN (len .Comment.Commits) "mail.issue.action.push_1" "mail.issue.action.push_n" .Doer.Name .Comment.Issue.PullRequest.HeadBranch (len .Comment.Commits)}}
|
||||||
|
{{end}}
|
||||||
|
</p>
|
||||||
|
{{end}}
|
||||||
|
<p style="margin:0 0 16px; font-size:15px; line-height:1.6; color:#475569;">
|
||||||
|
{{if eq .ActionName "close"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.close" .Doer.Name .Issue.Index}}
|
||||||
|
{{else if eq .ActionName "reopen"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.reopen" .Doer.Name .Issue.Index}}
|
||||||
|
{{else if eq .ActionName "merge"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.merge" .Doer.Name .Issue.Index .Issue.PullRequest.BaseBranch}}
|
||||||
|
{{else if eq .ActionName "approve"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.approve" .Doer.Name}}
|
||||||
|
{{else if eq .ActionName "reject"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.reject" .Doer.Name}}
|
||||||
|
{{else if eq .ActionName "review"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.review" .Doer.Name}}
|
||||||
|
{{else if eq .ActionName "review_dismissed"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.review_dismissed" .Doer.Name .Comment.Review.Reviewer.Name}}
|
||||||
|
{{else if eq .ActionName "ready_for_review"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.ready_for_review" .Doer.Name}}
|
||||||
|
{{end}}
|
||||||
|
|
||||||
|
{{- if eq .Body ""}}
|
||||||
|
{{if eq .ActionName "new"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.new" .Doer.Name .Issue.Index}}
|
||||||
|
{{end}}
|
||||||
|
{{else}}
|
||||||
|
{{.Body}}
|
||||||
|
{{end -}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{{- range .ReviewComments}}
|
||||||
|
<hr>
|
||||||
|
<p style="margin:8px 0; font-size:13px; color:#64748b;">{{$.locale.Tr "mail.issue.in_tree_path" .TreePath}}</p>
|
||||||
|
<div style="padding-left: 1em; margin: 1em 0;">
|
||||||
|
<pre>{{.Patch}}</pre>
|
||||||
|
<div style="margin-top:8px; font-size:14px; line-height:1.6;">{{.RenderedContent}}</div>
|
||||||
|
</div>
|
||||||
|
{{end -}}
|
||||||
|
|
||||||
|
{{if eq .ActionName "push"}}
|
||||||
|
<ul style="margin:16px 0; padding-left:20px;">
|
||||||
|
{{range .Comment.Commits}}
|
||||||
|
<li style="margin-bottom:6px; font-size:14px;">
|
||||||
|
<a href="{{$.Comment.Issue.PullRequest.BaseRepo.HTMLURL}}/commit/{{.ID}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">
|
||||||
|
{{ShortSha .ID.String}}
|
||||||
|
</a> — {{.MessageTitle}}
|
||||||
|
</li>
|
||||||
|
{{end}}
|
||||||
|
</ul>
|
||||||
|
{{end}}
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
|
||||||
|
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
|
||||||
|
{{.Link}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#94a3b8;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
|
||||||
|
blockquote { padding-left: 1em; margin: 1em 0; border-left: 2px solid #dbeafe; color: #64748b; }
|
||||||
|
ul { margin: 12px 0 16px; padding-left: 20px; }
|
||||||
|
li { margin-bottom: 6px; font-size: 14px; line-height: 1.5; color: #475569; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
{{$release_url := HTMLFormat "<a href='%s' style='color:#3b82f6; text-decoration:none; font-weight:500;'>%s</a>" .Release.HTMLURL .Release.TagName}}
|
||||||
|
{{$repo_url := HTMLFormat "<a href='%s' style='color:#3b82f6; text-decoration:none; font-weight:500;'>%s</a>" .Release.Repo.HTMLURL .Release.Repo.FullName}}
|
||||||
|
<p style="margin:0 0 16px; font-size:15px; line-height:1.6; color:#475569;">
|
||||||
|
{{.locale.Tr "mail.release.new.text" .Release.Publisher.Name $release_url $repo_url}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4 style="margin:20px 0 8px; font-size:17px; font-weight:600; color:#1e293b;">{{.locale.Tr "mail.release.title" .Release.Title}}</h4>
|
||||||
|
|
||||||
|
{{if .Release.RenderedNote}}
|
||||||
|
<div style="margin:12px 0 16px; font-size:14px; line-height:1.6; color:#475569;">
|
||||||
|
{{.Release.RenderedNote}}
|
||||||
|
</div>
|
||||||
|
{{end}}
|
||||||
|
|
||||||
|
<p style="margin:20px 0 8px; font-weight:600; color:#1e293b;">{{.locale.Tr "mail.release.downloads"}}</p>
|
||||||
|
<ul style="margin:0 0 20px; padding-left:20px;">
|
||||||
|
{{if not .DisableDownloadSourceArchives}}
|
||||||
|
<li>
|
||||||
|
<a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.zip" rel="nofollow" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{.locale.Tr "mail.release.download.zip"}}</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.tar.gz" rel="nofollow" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{.locale.Tr "mail.release.download.targz"}}</a>
|
||||||
|
</li>
|
||||||
|
{{end}}
|
||||||
|
{{if .Release.Attachments}}
|
||||||
|
{{range .Release.Attachments}}
|
||||||
|
<li>
|
||||||
|
<a href="{{.DownloadURL}}" target="_blank" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{.Name}} ({{.Size | FileSize}})</a>
|
||||||
|
</li>
|
||||||
|
{{end}}
|
||||||
|
{{end}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:16px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
|
||||||
|
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
|
||||||
|
{{.Link}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#94a3b8;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
{{$url := HTMLFormat "<a href='%[1]s' style='color:#3b82f6; text-decoration:none; font-weight:500;'>%[2]s</a>" .Link .Repo}}
|
||||||
|
<p style="margin:0 0 20px; font-size:15px; line-height:1.6; color:#475569;">
|
||||||
|
{{.Subject}}. {{.locale.Tr "mail.repo.transfer.body" $url}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
|
||||||
|
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
|
||||||
|
{{.Link}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#94a3b8;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.locale.Tr "mail.activate_account.title" (.DisplayName|DotEscape)}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
<p style="margin:0 0 12px; font-size:17px; line-height:1.5; color:#1e293b; font-weight:600;">
|
||||||
|
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 8px; font-size:15px; line-height:1.6; color:#475569;">
|
||||||
|
{{.locale.Tr "mail.activate_account.text_1" (.DisplayName|DotEscape) AppName}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 20px; font-size:14px; line-height:1.6; color:#64748b;">
|
||||||
|
{{.locale.Tr "mail.activate_account.text_2" .ActiveCodeLives}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{{$activate_url := printf "%suser/activate?code=%s" AppUrl (QueryEscape .Code)}}
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
|
||||||
|
<a href="{{$activate_url}}" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">Activate Account</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
|
||||||
|
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
|
||||||
|
{{$activate_url}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#94a3b8;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.locale.Tr "mail.activate_email.title" (.DisplayName|DotEscape)}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
<p style="margin:0 0 12px; font-size:17px; line-height:1.5; color:#1e293b; font-weight:600;">
|
||||||
|
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 20px; font-size:15px; line-height:1.6; color:#475569;">
|
||||||
|
{{.locale.Tr "mail.activate_email.text" .ActiveCodeLives}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{{$activate_url := printf "%suser/activate_email?code=%s&email=%s" AppUrl (QueryEscape .Code) (QueryEscape .Email)}}
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
|
||||||
|
<a href="{{$activate_url}}" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">Verify Email Address</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
|
||||||
|
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
|
||||||
|
{{$activate_url}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#94a3b8;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.locale.Tr "mail.register_notify.title" (.DisplayName|DotEscape) AppName}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
<p style="margin:0 0 12px; font-size:17px; line-height:1.5; color:#1e293b; font-weight:600;">
|
||||||
|
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 8px; font-size:15px; line-height:1.6; color:#475569;">
|
||||||
|
{{.locale.Tr "mail.register_notify.text_1" AppName}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 20px; font-size:14px; line-height:1.6; color:#64748b;">
|
||||||
|
{{.locale.Tr "mail.register_notify.text_2" .Username}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
|
||||||
|
<a href="{{AppUrl}}user/login" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">Go to {{AppName}}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
{{$set_pwd_url := printf "%suser/forgot_password" AppUrl}}
|
||||||
|
<p style="margin:0 0 16px; font-size:14px; line-height:1.6; color:#64748b;">
|
||||||
|
{{.locale.Tr "mail.register_notify.text_3" $set_pwd_url}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
|
||||||
|
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
|
||||||
|
{{AppUrl}}user/login
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#94a3b8;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.locale.Tr "mail.reset_password.title" (.DisplayName|DotEscape)}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #e2e8f2; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background:linear-gradient(160deg,#dce3ed,#e4eaf3,#eef1f7); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 18px; background:linear-gradient(135deg,#dbeafe,#e0e7ff,#e8f0fe); border-bottom:1px solid rgba(59,130,246,0.1); text-align:center;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; margin:0 auto 8px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:18px; font-weight:700; color:#1e293b; letter-spacing:-0.3px;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
<p style="margin:0 0 12px; font-size:17px; line-height:1.5; color:#1e293b; font-weight:600;">
|
||||||
|
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 20px; font-size:15px; line-height:1.6; color:#475569;">
|
||||||
|
{{.locale.Tr "mail.reset_password.text" .ResetPwdCodeLives}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{{$recover_url := printf "%suser/recover_account?code=%s" AppUrl (QueryEscape .Code)}}
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:40px; background-color:#3b82f6;" bgcolor="#3b82f6">
|
||||||
|
<a href="{{$recover_url}}" style="display:inline-block; padding:14px 40px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#3b82f6; border-radius:40px; border:1px solid #3b82f6; letter-spacing:0.2px;">Reset Password</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:linear-gradient(135deg,#eff4fd,#f5f7fe); border:1px solid rgba(59,130,246,0.1); border-radius:12px; padding:16px 18px; margin:24px 0 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.9);">
|
||||||
|
<p style="margin:0 0 8px; font-size:13px; color:#64748b; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#3b82f6; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid rgba(0,0,0,0.06); word-break:break-all; font-family:monospace;">
|
||||||
|
{{$recover_url}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:18px 32px 22px; background:linear-gradient(135deg,#f8f9fc,#f4f6fb); border-top:1px solid rgba(0,0,0,0.06); text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#94a3b8;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#3b82f6; text-decoration:none; font-weight:500;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:4px 0 0; font-size:11px; color:#b0bdd0;">Sent via Gitea Mail Templates</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{AppName}} · Team Invitation</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<span style="font-size:15px;">👋</span>
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
|
||||||
|
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#78350f;">
|
||||||
|
<p style="margin:0 0 12px; font-size:17px; line-height:1.5; color:#9a3412; font-family:Georgia,'Times New Roman',serif; font-weight:600;">
|
||||||
|
{{.locale.Tr "mail.hi_user_x" .Invite.Email}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p style="margin:0 0 8px; font-size:16px; line-height:1.6; color:#78350f;">
|
||||||
|
{{.locale.Tr "mail.team_invite.text_1" (DotEscape .Inviter.DisplayName) (DotEscape .Team.Name) (DotEscape .Organization.DisplayName)}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p style="margin:0 0 20px; font-size:15px; line-height:1.6; color:#92400e;">
|
||||||
|
{{.locale.Tr "mail.team_invite.text_2"}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{.InviteURL}}" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">Join the Team 🤝</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
|
||||||
|
{{.InviteURL}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p style="margin:16px 0 0; font-size:14px; color:#92400e; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.team_invite.text_3" .Invite.Email}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#92400e;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with ❤️ by the community, for the community.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<span style="font-size:15px;">👋</span>
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
|
||||||
|
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#78350f;">
|
||||||
|
<h2 style="font-size:19px; font-weight:700; color:#9a3412; margin:0 0 16px; font-family:Georgia,'Times New Roman',serif;">
|
||||||
|
{{.Repo.FullName}} — {{.Run.WorkflowID}}: {{.RunStatusText}}
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<ul style="list-style: none; padding: 0; margin: 0 0 24px 0;">
|
||||||
|
{{range $job := .Jobs}}
|
||||||
|
<li style="background-color: #fff7ed; border: 1px solid #fed7aa; border-radius: 10px; padding: 12px 16px; margin-bottom: 8px;">
|
||||||
|
<a href="{{$job.HTMLURL}}" style="color:#c2410c; text-decoration:none; font-weight:600; font-size:15px; display:block;">
|
||||||
|
{{$job.Status}}: {{$job.Name}}{{if gt $job.Attempt 1}} (retry #{{$job.Attempt}}){{end}} — {{$job.Duration}}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{{end}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:16px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{.Run.HTMLURL}}" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">View Workflow Run ⚙️</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
|
||||||
|
{{.Run.HTMLURL}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#92400e;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with ❤️ by the community, for the community.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
|
||||||
|
code { background: #fff7ed; padding: 2px 8px; border-radius: 6px; font-size: 15px; color: #c2410c; font-weight: 600; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<span style="font-size:15px;">👋</span>
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
|
||||||
|
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#78350f;">
|
||||||
|
<p style="margin:0 0 20px; font-size:16px; line-height:1.6; color:#78350f;">
|
||||||
|
{{.locale.Tr "mail.repo.collaborator.added.text"}} <code>{{.RepoName}}</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">View Repository 🔍</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
|
||||||
|
{{.Link}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#92400e;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with ❤️ by the community, for the community.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<span style="font-size:15px;">👋</span>
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
|
||||||
|
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#78350f;">
|
||||||
|
{{$repo_url := HTMLFormat "<a href='%s' style='color:#ea580c; text-decoration:none; font-weight:600;'>%s</a>" .Issue.Repo.HTMLURL .Issue.Repo.FullName}}
|
||||||
|
{{$link := HTMLFormat "<a href='%s' style='color:#ea580c; text-decoration:none; font-weight:600;'>#%d</a>" .Link .Issue.Index}}
|
||||||
|
<p style="margin:0 0 20px; font-size:16px; line-height:1.6; color:#78350f;">
|
||||||
|
{{if .IsPull}}
|
||||||
|
{{.locale.Tr "mail.issue_assigned.pull" .Doer.Name $link $repo_url}}
|
||||||
|
{{else}}
|
||||||
|
{{.locale.Tr "mail.issue_assigned.issue" .Doer.Name $link $repo_url}}
|
||||||
|
{{end}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">View on {{AppName}} ↗️</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
|
||||||
|
{{.Link}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#92400e;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with ❤️ by the community, for the community.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,128 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
|
||||||
|
blockquote { padding-left: 1em; margin: 1em 0; border-left: 3px solid #fdba74; color: #92400e; }
|
||||||
|
pre { background: #fff7ed; padding: 12px; border-radius: 8px; overflow-x: auto; font-size: 14px; line-height: 1.5; border: 1px solid #fed7aa; }
|
||||||
|
hr { border: none; border-top: 1px solid #fed7aa; margin: 20px 0; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<span style="font-size:15px;">👋</span>
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
|
||||||
|
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#78350f;">
|
||||||
|
{{if .IsMention}}<p style="margin:0 0 16px; font-size:16px; line-height:1.6; color:#78350f;">{{.locale.Tr "mail.issue.x_mentioned_you" .Doer.Name}}</p>{{end}}
|
||||||
|
{{if eq .ActionName "push"}}
|
||||||
|
<p style="margin:0 0 16px; font-size:16px; line-height:1.6; color:#78350f;">
|
||||||
|
{{if .Comment.IsForcePush}}
|
||||||
|
{{$oldCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.OldCommit}}
|
||||||
|
{{$oldShortSha := ShortSha .Comment.OldCommit}}
|
||||||
|
{{$oldCommitLink := HTMLFormat "<a href='%[1]s' style='color:#ea580c; text-decoration:none; font-weight:600;'>%[2]s</a>" $oldCommitUrl $oldShortSha}}
|
||||||
|
|
||||||
|
{{$newCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.NewCommit}}
|
||||||
|
{{$newShortSha := ShortSha .Comment.NewCommit}}
|
||||||
|
{{$newCommitLink := HTMLFormat "<a href='%[1]s' style='color:#ea580c; text-decoration:none; font-weight:600;'>%[2]s</a>" $newCommitUrl $newShortSha}}
|
||||||
|
|
||||||
|
{{.locale.Tr "mail.issue.action.force_push" .Doer.Name .Comment.Issue.PullRequest.HeadBranch $oldCommitLink $newCommitLink}}
|
||||||
|
{{else}}
|
||||||
|
{{.locale.TrN (len .Comment.Commits) "mail.issue.action.push_1" "mail.issue.action.push_n" .Doer.Name .Comment.Issue.PullRequest.HeadBranch (len .Comment.Commits)}}
|
||||||
|
{{end}}
|
||||||
|
</p>
|
||||||
|
{{end}}
|
||||||
|
<p style="margin:0 0 16px; font-size:16px; line-height:1.6; color:#78350f;">
|
||||||
|
{{if eq .ActionName "close"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.close" .Doer.Name .Issue.Index}}
|
||||||
|
{{else if eq .ActionName "reopen"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.reopen" .Doer.Name .Issue.Index}}
|
||||||
|
{{else if eq .ActionName "merge"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.merge" .Doer.Name .Issue.Index .Issue.PullRequest.BaseBranch}}
|
||||||
|
{{else if eq .ActionName "approve"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.approve" .Doer.Name}}
|
||||||
|
{{else if eq .ActionName "reject"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.reject" .Doer.Name}}
|
||||||
|
{{else if eq .ActionName "review"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.review" .Doer.Name}}
|
||||||
|
{{else if eq .ActionName "review_dismissed"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.review_dismissed" .Doer.Name .Comment.Review.Reviewer.Name}}
|
||||||
|
{{else if eq .ActionName "ready_for_review"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.ready_for_review" .Doer.Name}}
|
||||||
|
{{end}}
|
||||||
|
|
||||||
|
{{- if eq .Body ""}}
|
||||||
|
{{if eq .ActionName "new"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.new" .Doer.Name .Issue.Index}}
|
||||||
|
{{end}}
|
||||||
|
{{else}}
|
||||||
|
{{.Body}}
|
||||||
|
{{end -}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{{- range .ReviewComments}}
|
||||||
|
<hr>
|
||||||
|
<p style="margin:8px 0; font-size:14px; color:#92400e;">{{$.locale.Tr "mail.issue.in_tree_path" .TreePath}}</p>
|
||||||
|
<div style="padding-left: 1em; margin: 1em 0;">
|
||||||
|
<pre>{{.Patch}}</pre>
|
||||||
|
<div style="margin-top:8px; font-size:15px; line-height:1.6;">{{.RenderedContent}}</div>
|
||||||
|
</div>
|
||||||
|
{{end -}}
|
||||||
|
|
||||||
|
{{if eq .ActionName "push"}}
|
||||||
|
<ul style="margin:16px 0; padding-left:20px;">
|
||||||
|
{{range .Comment.Commits}}
|
||||||
|
<li style="margin-bottom:6px; font-size:15px;">
|
||||||
|
<a href="{{$.Comment.Issue.PullRequest.BaseRepo.HTMLURL}}/commit/{{.ID}}" style="color:#ea580c; text-decoration:none; font-weight:600;">
|
||||||
|
{{ShortSha .ID.String}}
|
||||||
|
</a> — {{.MessageTitle}}
|
||||||
|
</li>
|
||||||
|
{{end}}
|
||||||
|
</ul>
|
||||||
|
{{end}}
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">View on {{AppName}} ↗️</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
|
||||||
|
{{.Link}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#92400e;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with ❤️ by the community, for the community.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
|
||||||
|
blockquote { padding-left: 1em; margin: 1em 0; border-left: 3px solid #fdba74; color: #92400e; }
|
||||||
|
ul { margin: 12px 0 16px; padding-left: 20px; }
|
||||||
|
li { margin-bottom: 8px; font-size: 15px; line-height: 1.5; color: #78350f; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<span style="font-size:15px;">👋</span>
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
|
||||||
|
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#78350f;">
|
||||||
|
{{$release_url := HTMLFormat "<a href='%s' style='color:#ea580c; text-decoration:none; font-weight:600;'>%s</a>" .Release.HTMLURL .Release.TagName}}
|
||||||
|
{{$repo_url := HTMLFormat "<a href='%s' style='color:#ea580c; text-decoration:none; font-weight:600;'>%s</a>" .Release.Repo.HTMLURL .Release.Repo.FullName}}
|
||||||
|
<p style="margin:0 0 16px; font-size:16px; line-height:1.6; color:#78350f;">
|
||||||
|
{{.locale.Tr "mail.release.new.text" .Release.Publisher.Name $release_url $repo_url}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4 style="margin:20px 0 8px; font-size:19px; font-weight:700; color:#9a3412; font-family:Georgia,'Times New Roman',serif;">{{.locale.Tr "mail.release.title" .Release.Title}}</h4>
|
||||||
|
|
||||||
|
{{if .Release.RenderedNote}}
|
||||||
|
<div style="margin:12px 0 16px; font-size:15px; line-height:1.6; color:#78350f;">
|
||||||
|
{{.Release.RenderedNote}}
|
||||||
|
</div>
|
||||||
|
{{end}}
|
||||||
|
|
||||||
|
<p style="margin:20px 0 8px; font-weight:600; color:#9a3412;">{{.locale.Tr "mail.release.downloads"}}</p>
|
||||||
|
<ul style="margin:0 0 20px; padding-left:20px;">
|
||||||
|
{{if not .DisableDownloadSourceArchives}}
|
||||||
|
<li>
|
||||||
|
<a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.zip" rel="nofollow" style="color:#ea580c; text-decoration:none; font-weight:600;">{{.locale.Tr "mail.release.download.zip"}}</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.tar.gz" rel="nofollow" style="color:#ea580c; text-decoration:none; font-weight:600;">{{.locale.Tr "mail.release.download.targz"}}</a>
|
||||||
|
</li>
|
||||||
|
{{end}}
|
||||||
|
{{if .Release.Attachments}}
|
||||||
|
{{range .Release.Attachments}}
|
||||||
|
<li>
|
||||||
|
<a href="{{.DownloadURL}}" target="_blank" style="color:#ea580c; text-decoration:none; font-weight:600;">{{.Name}} ({{.Size | FileSize}})</a>
|
||||||
|
</li>
|
||||||
|
{{end}}
|
||||||
|
{{end}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:16px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">See the Release 🚀</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
|
||||||
|
{{.Link}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#92400e;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with ❤️ by the community, for the community.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<span style="font-size:15px;">👋</span>
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
|
||||||
|
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#78350f;">
|
||||||
|
{{$url := HTMLFormat "<a href='%[1]s' style='color:#ea580c; text-decoration:none; font-weight:600;'>%[2]s</a>" .Link .Repo}}
|
||||||
|
<p style="margin:0 0 20px; font-size:16px; line-height:1.6; color:#78350f;">
|
||||||
|
{{.Subject}}. {{.locale.Tr "mail.repo.transfer.body" $url}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">View Transfer 📦</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
|
||||||
|
{{.Link}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#92400e;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with ❤️ by the community, for the community.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.locale.Tr "mail.activate_account.title" (.DisplayName|DotEscape)}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<span style="font-size:15px;">👋</span>
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
|
||||||
|
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#78350f;">
|
||||||
|
<p style="margin:0 0 12px; font-size:17px; line-height:1.5; color:#9a3412; font-family:Georgia,'Times New Roman',serif; font-weight:600;">
|
||||||
|
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 8px; font-size:16px; line-height:1.6; color:#78350f;">
|
||||||
|
{{.locale.Tr "mail.activate_account.text_1" (.DisplayName|DotEscape) AppName}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 20px; font-size:15px; line-height:1.6; color:#92400e;">
|
||||||
|
{{.locale.Tr "mail.activate_account.text_2" .ActiveCodeLives}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{{$activate_url := printf "%suser/activate?code=%s" AppUrl (QueryEscape .Code)}}
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{$activate_url}}" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">Activate Your Account →</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
|
||||||
|
{{$activate_url}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#92400e;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with ❤️ by the community, for the community.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.locale.Tr "mail.activate_email.title" (.DisplayName|DotEscape)}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<span style="font-size:15px;">👋</span>
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
|
||||||
|
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#78350f;">
|
||||||
|
<p style="margin:0 0 12px; font-size:17px; line-height:1.5; color:#9a3412; font-family:Georgia,'Times New Roman',serif; font-weight:600;">
|
||||||
|
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 20px; font-size:16px; line-height:1.6; color:#78350f;">
|
||||||
|
{{.locale.Tr "mail.activate_email.text" .ActiveCodeLives}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{{$activate_url := printf "%suser/activate_email?code=%s&email=%s" AppUrl (QueryEscape .Code) (QueryEscape .Email)}}
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{$activate_url}}" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">Verify Your Email →</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
|
||||||
|
{{$activate_url}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#92400e;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with ❤️ by the community, for the community.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.locale.Tr "mail.register_notify.title" (.DisplayName|DotEscape) AppName}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<span style="font-size:15px;">👋</span>
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
|
||||||
|
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#78350f;">
|
||||||
|
<p style="margin:0 0 12px; font-size:17px; line-height:1.5; color:#9a3412; font-family:Georgia,'Times New Roman',serif; font-weight:600;">
|
||||||
|
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 8px; font-size:16px; line-height:1.6; color:#78350f;">
|
||||||
|
{{.locale.Tr "mail.register_notify.text_1" AppName}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 20px; font-size:15px; line-height:1.6; color:#92400e;">
|
||||||
|
{{.locale.Tr "mail.register_notify.text_2" .Username}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{AppUrl}}user/login" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">Welcome to {{AppName}} 🎉</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
{{$set_pwd_url := printf "%suser/forgot_password" AppUrl}}
|
||||||
|
<p style="margin:0 0 16px; font-size:15px; line-height:1.6; color:#92400e;">
|
||||||
|
{{.locale.Tr "mail.register_notify.text_3" $set_pwd_url}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
|
||||||
|
{{AppUrl}}user/login
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#92400e;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with ❤️ by the community, for the community.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.locale.Tr "mail.reset_password.title" (.DisplayName|DotEscape)}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #fff7ed; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#fff7ed; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:16px; box-shadow:0 2px 16px rgba(234,88,12,0.08); overflow:hidden; border:1px solid #fed7aa;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #fed7aa; background:linear-gradient(135deg, #fff7ed, #ffffff);">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<span style="font-size:15px;">👋</span>
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="30" height="30" style="display:inline-block; vertical-align:middle; margin:0 10px; border:0; outline:none;">
|
||||||
|
<span style="font-size:20px; font-weight:700; color:#9a3412; letter-spacing:-0.3px; vertical-align:middle; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#78350f;">
|
||||||
|
<p style="margin:0 0 12px; font-size:17px; line-height:1.5; color:#9a3412; font-family:Georgia,'Times New Roman',serif; font-weight:600;">
|
||||||
|
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 20px; font-size:16px; line-height:1.6; color:#78350f;">
|
||||||
|
{{.locale.Tr "mail.reset_password.text" .ResetPwdCodeLives}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{{$recover_url := printf "%suser/recover_account?code=%s" AppUrl (QueryEscape .Code)}}
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{$recover_url}}" style="display:inline-block; padding:14px 40px; font-size:16px; font-weight:600; color:#ffffff; text-decoration:none; background:linear-gradient(135deg, #ea580c, #c2410c); border-radius:50px; font-family:system-ui,sans-serif;">Reset Your Password 🔒</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#92400e; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#c2410c; background:#ffffff; padding:10px 12px; border-radius:8px; border:1px solid #fed7aa; word-break:break-all; font-family:monospace;">
|
||||||
|
{{$recover_url}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 24px; background:#fff7ed; border-top:1px solid #fed7aa;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#92400e;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#ea580c; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:13px; color:#a8a29e;">Built with ❤️ by the community, for the community.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{AppName}} · Team Invitation</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 24px; color:#2c1810;">
|
||||||
|
<p style="margin:0 0 14px; font-size:17px; line-height:1.5; color:#1e3a5f; font-weight:600; font-family:Georgia,'Times New Roman',serif;">
|
||||||
|
{{.locale.Tr "mail.hi_user_x" .Invite.Email}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p style="margin:0 0 8px; font-size:16px; line-height:1.7; color:#2c1810;">
|
||||||
|
{{.locale.Tr "mail.team_invite.text_1" (DotEscape .Inviter.DisplayName) (DotEscape .Team.Name) (DotEscape .Organization.DisplayName)}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p style="margin:0 0 20px; font-size:15px; line-height:1.7; color:#5c4a3a;">
|
||||||
|
{{.locale.Tr "mail.team_invite.text_2"}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{.InviteURL}}" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Accept Invitation →</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
|
||||||
|
{{.InviteURL}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p style="margin:16px 0 0; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
|
||||||
|
{{.locale.Tr "mail.team_invite.text_3" .Invite.Email}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#5c4a3a;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established · Trusted · Open</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 24px; color:#2c1810;">
|
||||||
|
<h2 style="font-size:19px; font-weight:700; color:#1e3a5f; margin:0 0 16px; font-family:Georgia,'Times New Roman',serif;">
|
||||||
|
{{.Repo.FullName}} — {{.Run.WorkflowID}}: {{.RunStatusText}}
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<ul style="list-style: none; padding: 0; margin: 0 0 24px 0;">
|
||||||
|
{{range $job := .Jobs}}
|
||||||
|
<li style="background-color: #faf8f5; border: 1px solid #d4c4a8; padding: 12px 16px; margin-bottom: 8px;">
|
||||||
|
<a href="{{$job.HTMLURL}}" style="color:#1e3a5f; text-decoration:none; font-weight:600; font-size:15px; display:block; border-bottom:1px dotted #8b6914;">
|
||||||
|
{{$job.Status}}: {{$job.Name}}{{if gt $job.Attempt 1}} (retry #{{$job.Attempt}}){{end}} — {{$job.Duration}}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{{end}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:16px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{.Run.HTMLURL}}" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">View Workflow Run →</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
|
||||||
|
{{.Run.HTMLURL}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#5c4a3a;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established · Trusted · Open</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
|
||||||
|
code { background: #faf8f5; padding: 2px 8px; border: 1px solid #d4c4a8; font-size: 15px; color: #1e3a5f; font-weight: 600; font-family: 'Courier New', monospace; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 24px; color:#2c1810;">
|
||||||
|
<p style="margin:0 0 20px; font-size:16px; line-height:1.7; color:#2c1810;">
|
||||||
|
{{.locale.Tr "mail.repo.collaborator.added.text"}} <code>{{.RepoName}}</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">View Repository →</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
|
||||||
|
{{.Link}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#5c4a3a;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established · Trusted · Open</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 24px; color:#2c1810;">
|
||||||
|
{{$repo_url := HTMLFormat "<a href='%s' style='color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;'>%s</a>" .Issue.Repo.HTMLURL .Issue.Repo.FullName}}
|
||||||
|
{{$link := HTMLFormat "<a href='%s' style='color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;'>#%d</a>" .Link .Issue.Index}}
|
||||||
|
<p style="margin:0 0 20px; font-size:16px; line-height:1.7; color:#2c1810;">
|
||||||
|
{{if .IsPull}}
|
||||||
|
{{.locale.Tr "mail.issue_assigned.pull" .Doer.Name $link $repo_url}}
|
||||||
|
{{else}}
|
||||||
|
{{.locale.Tr "mail.issue_assigned.issue" .Doer.Name $link $repo_url}}
|
||||||
|
{{end}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">View on {{AppName}} →</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
|
||||||
|
{{.Link}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#5c4a3a;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established · Trusted · Open</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,121 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
|
||||||
|
blockquote { padding-left: 1em; margin: 1em 0; border-left: 2px solid #c4a97d; color: #5c4a3a; font-style: italic; }
|
||||||
|
pre { background: #faf8f5; padding: 12px; overflow-x: auto; font-size: 14px; line-height: 1.5; border: 1px solid #d4c4a8; }
|
||||||
|
hr { border: none; border-top: 1px solid #c4a97d; margin: 20px 0; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 24px; color:#2c1810;">
|
||||||
|
{{if .IsMention}}<p style="margin:0 0 16px; font-size:16px; line-height:1.7; color:#2c1810;">{{.locale.Tr "mail.issue.x_mentioned_you" .Doer.Name}}</p>{{end}}
|
||||||
|
{{if eq .ActionName "push"}}
|
||||||
|
<p style="margin:0 0 16px; font-size:16px; line-height:1.7; color:#2c1810;">
|
||||||
|
{{if .Comment.IsForcePush}}
|
||||||
|
{{$oldCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.OldCommit}}
|
||||||
|
{{$oldShortSha := ShortSha .Comment.OldCommit}}
|
||||||
|
{{$oldCommitLink := HTMLFormat "<a href='%[1]s' style='color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;'>%[2]s</a>" $oldCommitUrl $oldShortSha}}
|
||||||
|
|
||||||
|
{{$newCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.NewCommit}}
|
||||||
|
{{$newShortSha := ShortSha .Comment.NewCommit}}
|
||||||
|
{{$newCommitLink := HTMLFormat "<a href='%[1]s' style='color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;'>%[2]s</a>" $newCommitUrl $newShortSha}}
|
||||||
|
|
||||||
|
{{.locale.Tr "mail.issue.action.force_push" .Doer.Name .Comment.Issue.PullRequest.HeadBranch $oldCommitLink $newCommitLink}}
|
||||||
|
{{else}}
|
||||||
|
{{.locale.TrN (len .Comment.Commits) "mail.issue.action.push_1" "mail.issue.action.push_n" .Doer.Name .Comment.Issue.PullRequest.HeadBranch (len .Comment.Commits)}}
|
||||||
|
{{end}}
|
||||||
|
</p>
|
||||||
|
{{end}}
|
||||||
|
<p style="margin:0 0 16px; font-size:16px; line-height:1.7; color:#2c1810;">
|
||||||
|
{{if eq .ActionName "close"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.close" .Doer.Name .Issue.Index}}
|
||||||
|
{{else if eq .ActionName "reopen"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.reopen" .Doer.Name .Issue.Index}}
|
||||||
|
{{else if eq .ActionName "merge"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.merge" .Doer.Name .Issue.Index .Issue.PullRequest.BaseBranch}}
|
||||||
|
{{else if eq .ActionName "approve"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.approve" .Doer.Name}}
|
||||||
|
{{else if eq .ActionName "reject"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.reject" .Doer.Name}}
|
||||||
|
{{else if eq .ActionName "review"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.review" .Doer.Name}}
|
||||||
|
{{else if eq .ActionName "review_dismissed"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.review_dismissed" .Doer.Name .Comment.Review.Reviewer.Name}}
|
||||||
|
{{else if eq .ActionName "ready_for_review"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.ready_for_review" .Doer.Name}}
|
||||||
|
{{end}}
|
||||||
|
|
||||||
|
{{- if eq .Body ""}}
|
||||||
|
{{if eq .ActionName "new"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.new" .Doer.Name .Issue.Index}}
|
||||||
|
{{end}}
|
||||||
|
{{else}}
|
||||||
|
{{.Body}}
|
||||||
|
{{end -}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{{- range .ReviewComments}}
|
||||||
|
<hr>
|
||||||
|
<p style="margin:8px 0; font-size:14px; color:#5c4a3a; font-style:italic;">{{$.locale.Tr "mail.issue.in_tree_path" .TreePath}}</p>
|
||||||
|
<div style="padding-left: 1em; margin: 1em 0;">
|
||||||
|
<pre>{{.Patch}}</pre>
|
||||||
|
<div style="margin-top:8px; font-size:15px; line-height:1.7;">{{.RenderedContent}}</div>
|
||||||
|
</div>
|
||||||
|
{{end -}}
|
||||||
|
|
||||||
|
{{if eq .ActionName "push"}}
|
||||||
|
<ul style="margin:16px 0; padding-left:20px;">
|
||||||
|
{{range .Comment.Commits}}
|
||||||
|
<li style="margin-bottom:6px; font-size:15px;">
|
||||||
|
<a href="{{$.Comment.Issue.PullRequest.BaseRepo.HTMLURL}}/commit/{{.ID}}" style="color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;">
|
||||||
|
{{ShortSha .ID.String}}
|
||||||
|
</a> — {{.MessageTitle}}
|
||||||
|
</li>
|
||||||
|
{{end}}
|
||||||
|
</ul>
|
||||||
|
{{end}}
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">View on {{AppName}} →</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
|
||||||
|
{{.Link}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#5c4a3a;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established · Trusted · Open</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
|
||||||
|
blockquote { padding-left: 1em; margin: 1em 0; border-left: 2px solid #c4a97d; color: #5c4a3a; font-style: italic; }
|
||||||
|
ul { margin: 12px 0 16px; padding-left: 20px; }
|
||||||
|
li { margin-bottom: 8px; font-size: 15px; line-height: 1.5; color: #2c1810; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 24px; color:#2c1810;">
|
||||||
|
{{$release_url := HTMLFormat "<a href='%s' style='color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;'>%s</a>" .Release.HTMLURL .Release.TagName}}
|
||||||
|
{{$repo_url := HTMLFormat "<a href='%s' style='color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;'>%s</a>" .Release.Repo.HTMLURL .Release.Repo.FullName}}
|
||||||
|
<p style="margin:0 0 16px; font-size:16px; line-height:1.7; color:#2c1810;">
|
||||||
|
{{.locale.Tr "mail.release.new.text" .Release.Publisher.Name $release_url $repo_url}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4 style="margin:20px 0 8px; font-size:19px; font-weight:700; color:#1e3a5f; font-family:Georgia,'Times New Roman',serif;">{{.locale.Tr "mail.release.title" .Release.Title}}</h4>
|
||||||
|
|
||||||
|
{{if .Release.RenderedNote}}
|
||||||
|
<div style="margin:12px 0 16px; font-size:15px; line-height:1.7; color:#2c1810;">
|
||||||
|
{{.Release.RenderedNote}}
|
||||||
|
</div>
|
||||||
|
{{end}}
|
||||||
|
|
||||||
|
<p style="margin:20px 0 8px; font-weight:600; color:#1e3a5f; font-variant:small-caps; letter-spacing:1px;">{{.locale.Tr "mail.release.downloads"}}</p>
|
||||||
|
<ul style="margin:0 0 20px; padding-left:20px;">
|
||||||
|
{{if not .DisableDownloadSourceArchives}}
|
||||||
|
<li>
|
||||||
|
<a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.zip" rel="nofollow" style="color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;">{{.locale.Tr "mail.release.download.zip"}}</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.tar.gz" rel="nofollow" style="color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;">{{.locale.Tr "mail.release.download.targz"}}</a>
|
||||||
|
</li>
|
||||||
|
{{end}}
|
||||||
|
{{if .Release.Attachments}}
|
||||||
|
{{range .Release.Attachments}}
|
||||||
|
<li>
|
||||||
|
<a href="{{.DownloadURL}}" target="_blank" style="color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;">{{.Name}} ({{.Size | FileSize}})</a>
|
||||||
|
</li>
|
||||||
|
{{end}}
|
||||||
|
{{end}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:16px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">See the Release →</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
|
||||||
|
{{.Link}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#5c4a3a;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established · Trusted · Open</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 24px; color:#2c1810;">
|
||||||
|
{{$url := HTMLFormat "<a href='%[1]s' style='color:#1e3a5f; text-decoration:none; font-weight:600; border-bottom:1px dotted #8b6914;'>%[2]s</a>" .Link .Repo}}
|
||||||
|
<p style="margin:0 0 20px; font-size:16px; line-height:1.7; color:#2c1810;">
|
||||||
|
{{.Subject}}. {{.locale.Tr "mail.repo.transfer.body" $url}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">View Transfer →</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
|
||||||
|
{{.Link}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#5c4a3a;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established · Trusted · Open</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.locale.Tr "mail.activate_account.title" (.DisplayName|DotEscape)}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 24px; color:#2c1810;">
|
||||||
|
<p style="margin:0 0 14px; font-size:17px; line-height:1.5; color:#1e3a5f; font-weight:600; font-family:Georgia,'Times New Roman',serif;">
|
||||||
|
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 8px; font-size:16px; line-height:1.7; color:#2c1810;">
|
||||||
|
{{.locale.Tr "mail.activate_account.text_1" (.DisplayName|DotEscape) AppName}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 20px; font-size:15px; line-height:1.7; color:#5c4a3a;">
|
||||||
|
{{.locale.Tr "mail.activate_account.text_2" .ActiveCodeLives}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{{$activate_url := printf "%suser/activate?code=%s" AppUrl (QueryEscape .Code)}}
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{$activate_url}}" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Activate Account →</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
|
||||||
|
{{$activate_url}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#5c4a3a;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established · Trusted · Open</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.locale.Tr "mail.activate_email.title" (.DisplayName|DotEscape)}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 24px; color:#2c1810;">
|
||||||
|
<p style="margin:0 0 14px; font-size:17px; line-height:1.5; color:#1e3a5f; font-weight:600; font-family:Georgia,'Times New Roman',serif;">
|
||||||
|
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 20px; font-size:16px; line-height:1.7; color:#2c1810;">
|
||||||
|
{{.locale.Tr "mail.activate_email.text" .ActiveCodeLives}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{{$activate_url := printf "%suser/activate_email?code=%s&email=%s" AppUrl (QueryEscape .Code) (QueryEscape .Email)}}
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{$activate_url}}" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Verify Email Address →</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
|
||||||
|
{{$activate_url}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#5c4a3a;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established · Trusted · Open</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.locale.Tr "mail.register_notify.title" (.DisplayName|DotEscape) AppName}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 24px; color:#2c1810;">
|
||||||
|
<p style="margin:0 0 14px; font-size:17px; line-height:1.5; color:#1e3a5f; font-weight:600; font-family:Georgia,'Times New Roman',serif;">
|
||||||
|
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 8px; font-size:16px; line-height:1.7; color:#2c1810;">
|
||||||
|
{{.locale.Tr "mail.register_notify.text_1" AppName}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 20px; font-size:15px; line-height:1.7; color:#5c4a3a;">
|
||||||
|
{{.locale.Tr "mail.register_notify.text_2" .Username}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{AppUrl}}user/login" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Proceed to Login →</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
{{$set_pwd_url := printf "%suser/forgot_password" AppUrl}}
|
||||||
|
<p style="margin:0 0 16px; font-size:15px; line-height:1.7; color:#5c4a3a;">
|
||||||
|
{{.locale.Tr "mail.register_notify.text_3" $set_pwd_url}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
|
||||||
|
{{AppUrl}}user/login
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#5c4a3a;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established · Trusted · Open</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.locale.Tr "mail.reset_password.title" (.DisplayName|DotEscape)}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body, .ExternalClass, .ReadMsgBody { background-color: #faf8f5; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#faf8f5; font-family: 'Charter', 'Georgia', 'Times New Roman', serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:24px auto; background:#ffffff; border:3px double #c4a97d; padding:0;">
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 20px; text-align:center; border-bottom:1px solid #c4a97d;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="40" height="40" style="display:inline-block; margin:0 auto 12px; border:0; outline:none;">
|
||||||
|
<p style="margin:0; font-size:20px; font-weight:700; color:#1e3a5f; letter-spacing:2px; font-variant:small-caps; font-family:Georgia,'Times New Roman',serif;">{{AppName}}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 36px 24px; color:#2c1810;">
|
||||||
|
<p style="margin:0 0 14px; font-size:17px; line-height:1.5; color:#1e3a5f; font-weight:600; font-family:Georgia,'Times New Roman',serif;">
|
||||||
|
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 20px; font-size:16px; line-height:1.7; color:#2c1810;">
|
||||||
|
{{.locale.Tr "mail.reset_password.text" .ResetPwdCodeLives}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{{$recover_url := printf "%suser/recover_account?code=%s" AppUrl (QueryEscape .Code)}}
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center">
|
||||||
|
<a href="{{$recover_url}}" style="display:inline-block; padding:13px 38px; font-size:15px; font-weight:600; color:#ffffff; text-decoration:none; background-color:#1e3a5f; border:2px solid #8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Reset Password →</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#faf8f5; border:2px solid #d4c4a8; padding:16px 18px; margin:24px 0 16px;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#5c4a3a; line-height:1.5; font-style:italic;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:13px; color:#1e3a5f; background:#ffffff; padding:10px 12px; border:1px solid #d4c4a8; word-break:break-all; font-family:monospace;">
|
||||||
|
{{$recover_url}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 36px 24px; background:#faf8f5; border-top:3px double #c4a97d; text-align:center;">
|
||||||
|
<p style="margin:0; font-size:13px; color:#5c4a3a;">
|
||||||
|
© <a href="{{AppUrl}}" style="color:#1e3a5f; text-decoration:none; font-weight:600;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:8px 0 0; font-size:12px; color:#8b6914; font-family:Georgia,'Times New Roman',serif; font-variant:small-caps; letter-spacing:1px;">Established · Trusted · Open</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{AppName}} · Team Invitation</title>
|
||||||
|
<style type="text/css">
|
||||||
|
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
|
||||||
|
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
<p style="margin:0 0 16px; font-size:16px; line-height:1.5; color:#1e293b;">
|
||||||
|
{{.locale.Tr "mail.hi_user_x" .Invite.Email}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p style="margin:0 0 16px; font-size:16px; line-height:1.5; color:#334155;">
|
||||||
|
{{.locale.Tr "mail.team_invite.text_1" (DotEscape .Inviter.DisplayName) (DotEscape .Team.Name) (DotEscape .Organization.DisplayName)}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p style="margin:0 0 20px; font-size:16px; line-height:1.5; color:#334155;">
|
||||||
|
{{.locale.Tr "mail.team_invite.text_2"}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
|
||||||
|
<a href="{{.InviteURL}}" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">Accept Invitation</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
|
||||||
|
{{.InviteURL}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p style="margin:16px 0 0; font-size:14px; color:#475569; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.team_invite.text_3" .Invite.Email}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#64748b;">
|
||||||
|
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure team invitation – if you weren’t expecting this, please ignore this email.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
|
||||||
|
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
<h2 style="font-size:20px; font-weight:600; color:#1e293b; margin:0 0 16px;">
|
||||||
|
{{.Repo.FullName}} {{.Run.WorkflowID}}: {{.RunStatusText}}
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<ul style="list-style: none; padding: 0; margin: 0 0 30px 0;">
|
||||||
|
{{range $job := .Jobs}}
|
||||||
|
<li style="background-color: #ffffff; border: 1px solid #e2e8f0; border-radius: 8px; padding: 12px 16px; margin-bottom: 10px; box-shadow: 0 1px 2px rgba(0,0,0,0.03); transition: box-shadow 0.2s ease;">
|
||||||
|
<a href="{{$job.HTMLURL}}" style="color:#1e88e5; text-decoration:none; font-weight:500; display:block;">
|
||||||
|
{{$job.Status}}: {{$job.Name}}{{if gt $job.Attempt 1}}, Attempt #{{$job.Attempt}}{{end}}, {{$job.Duration}}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{{end}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:16px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
|
||||||
|
<a href="{{.Run.HTMLURL}}" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
|
||||||
|
{{.Run.HTMLURL}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#64748b;">
|
||||||
|
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure workflow run notification – if you didn’t expect this, please ignore this email.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
|
||||||
|
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
<p style="margin:0 0 20px; font-size:16px; line-height:1.5; color:#334155;">
|
||||||
|
{{.locale.Tr "mail.repo.collaborator.added.text"}} <code style="background:#f1f5f9; padding:2px 6px; border-radius:4px; font-size:15px;">{{.RepoName}}</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
|
||||||
|
{{.Link}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#64748b;">
|
||||||
|
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure repository collaboration notification – if you didn’t expect this, please ignore this email.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
|
||||||
|
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
{{$repo_url := HTMLFormat "<a href='%s' style='color:#1e88e5; text-decoration:none; font-weight:500;'>%s</a>" .Issue.Repo.HTMLURL .Issue.Repo.FullName}}
|
||||||
|
{{$link := HTMLFormat "<a href='%s' style='color:#1e88e5; text-decoration:none; font-weight:500;'>#%d</a>" .Link .Issue.Index}}
|
||||||
|
<p style="margin:0 0 20px; font-size:16px; line-height:1.5; color:#334155;">
|
||||||
|
{{if .IsPull}}
|
||||||
|
{{.locale.Tr "mail.issue_assigned.pull" .Doer.Name $link $repo_url}}
|
||||||
|
{{else}}
|
||||||
|
{{.locale.Tr "mail.issue_assigned.issue" .Doer.Name $link $repo_url}}
|
||||||
|
{{end}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
|
||||||
|
{{.Link}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#64748b;">
|
||||||
|
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure issue assignment notification – if you didn’t expect this, please ignore this email.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,129 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
|
||||||
|
blockquote { padding-left: 1em; margin: 1em 0; border-left: 1px solid #cbd5e1; color: #475569; }
|
||||||
|
pre { background: #f1f5f9; padding: 12px; border-radius: 6px; overflow-x: auto; font-size: 14px; line-height: 1.5; }
|
||||||
|
hr { border: none; border-top: 1px solid #e2e8f0; margin: 20px 0; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
|
||||||
|
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
{{if .IsMention}}<p style="margin:0 0 16px; font-size:16px; line-height:1.5; color:#334155;">{{.locale.Tr "mail.issue.x_mentioned_you" .Doer.Name}}</p>{{end}}
|
||||||
|
{{if eq .ActionName "push"}}
|
||||||
|
<p style="margin:0 0 16px; font-size:16px; line-height:1.5; color:#334155;">
|
||||||
|
{{if .Comment.IsForcePush}}
|
||||||
|
{{$oldCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.OldCommit}}
|
||||||
|
{{$oldShortSha := ShortSha .Comment.OldCommit}}
|
||||||
|
{{$oldCommitLink := HTMLFormat "<a href='%[1]s' style='color:#1e88e5; text-decoration:none; font-weight:500;'><b>%[2]s</b></a>" $oldCommitUrl $oldShortSha}}
|
||||||
|
|
||||||
|
{{$newCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.NewCommit}}
|
||||||
|
{{$newShortSha := ShortSha .Comment.NewCommit}}
|
||||||
|
{{$newCommitLink := HTMLFormat "<a href='%[1]s' style='color:#1e88e5; text-decoration:none; font-weight:500;'><b>%[2]s</b></a>" $newCommitUrl $newShortSha}}
|
||||||
|
|
||||||
|
{{.locale.Tr "mail.issue.action.force_push" .Doer.Name .Comment.Issue.PullRequest.HeadBranch $oldCommitLink $newCommitLink}}
|
||||||
|
{{else}}
|
||||||
|
{{.locale.TrN (len .Comment.Commits) "mail.issue.action.push_1" "mail.issue.action.push_n" .Doer.Name .Comment.Issue.PullRequest.HeadBranch (len .Comment.Commits)}}
|
||||||
|
{{end}}
|
||||||
|
</p>
|
||||||
|
{{end}}
|
||||||
|
<p style="margin:0 0 16px; font-size:16px; line-height:1.5; color:#334155;">
|
||||||
|
{{if eq .ActionName "close"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.close" .Doer.Name .Issue.Index}}
|
||||||
|
{{else if eq .ActionName "reopen"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.reopen" .Doer.Name .Issue.Index}}
|
||||||
|
{{else if eq .ActionName "merge"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.merge" .Doer.Name .Issue.Index .Issue.PullRequest.BaseBranch}}
|
||||||
|
{{else if eq .ActionName "approve"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.approve" .Doer.Name}}
|
||||||
|
{{else if eq .ActionName "reject"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.reject" .Doer.Name}}
|
||||||
|
{{else if eq .ActionName "review"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.review" .Doer.Name}}
|
||||||
|
{{else if eq .ActionName "review_dismissed"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.review_dismissed" .Doer.Name .Comment.Review.Reviewer.Name}}
|
||||||
|
{{else if eq .ActionName "ready_for_review"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.ready_for_review" .Doer.Name}}
|
||||||
|
{{end}}
|
||||||
|
|
||||||
|
{{- if eq .Body ""}}
|
||||||
|
{{if eq .ActionName "new"}}
|
||||||
|
{{.locale.Tr "mail.issue.action.new" .Doer.Name .Issue.Index}}
|
||||||
|
{{end}}
|
||||||
|
{{else}}
|
||||||
|
{{.Body}}
|
||||||
|
{{end -}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{{- range .ReviewComments}}
|
||||||
|
<hr>
|
||||||
|
<p style="margin:8px 0; font-size:15px; color:#334155;">{{$.locale.Tr "mail.issue.in_tree_path" .TreePath}}</p>
|
||||||
|
<div style="padding-left: 1em; margin: 1em 0;">
|
||||||
|
<pre style="background:#f1f5f9; padding: 12px; border-radius:6px; overflow-x:auto; font-size:14px; color:#1e293b;">{{.Patch}}</pre>
|
||||||
|
<div style="margin-top:8px; font-size:15px; line-height:1.6;">{{.RenderedContent}}</div>
|
||||||
|
</div>
|
||||||
|
{{end -}}
|
||||||
|
|
||||||
|
{{if eq .ActionName "push"}}
|
||||||
|
<ul style="margin:16px 0; padding-left:20px;">
|
||||||
|
{{range .Comment.Commits}}
|
||||||
|
<li style="margin-bottom:6px; font-size:15px;">
|
||||||
|
<a href="{{$.Comment.Issue.PullRequest.BaseRepo.HTMLURL}}/commit/{{.ID}}" style="color:#1e88e5; text-decoration:none; font-weight:500;">
|
||||||
|
{{ShortSha .ID.String}}
|
||||||
|
</a> - {{.MessageTitle}}
|
||||||
|
</li>
|
||||||
|
{{end}}
|
||||||
|
</ul>
|
||||||
|
{{end}}
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
|
||||||
|
{{.Link}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#64748b;">
|
||||||
|
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure notification – if you didn’t expect this, please ignore this email.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,95 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
|
||||||
|
blockquote { padding-left: 1em; margin: 1em 0; border-left: 1px solid #cbd5e1; color: #475569; }
|
||||||
|
ul { margin: 12px 0 16px; padding-left: 20px; }
|
||||||
|
li { margin-bottom: 6px; font-size: 15px; line-height: 1.5; color: #334155; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
|
||||||
|
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
{{$release_url := HTMLFormat "<a href='%s' style='color:#1e88e5; text-decoration:none; font-weight:500;'>%s</a>" .Release.HTMLURL .Release.TagName}}
|
||||||
|
{{$repo_url := HTMLFormat "<a href='%s' style='color:#1e88e5; text-decoration:none; font-weight:500;'>%s</a>" .Release.Repo.HTMLURL .Release.Repo.FullName}}
|
||||||
|
<p style="margin:0 0 16px; font-size:16px; line-height:1.5; color:#334155;">
|
||||||
|
{{.locale.Tr "mail.release.new.text" .Release.Publisher.Name $release_url $repo_url}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4 style="margin:24px 0 8px; font-size:18px; font-weight:600; color:#1e293b;">{{.locale.Tr "mail.release.title" .Release.Title}}</h4>
|
||||||
|
|
||||||
|
{{if .Release.RenderedNote}}
|
||||||
|
<div style="margin:12px 0 16px; font-size:15px; line-height:1.6; color:#334155;">
|
||||||
|
{{.Release.RenderedNote}}
|
||||||
|
</div>
|
||||||
|
{{end}}
|
||||||
|
|
||||||
|
<p style="margin:20px 0 8px; font-weight:500; color:#1e293b;">{{.locale.Tr "mail.release.downloads"}}</p>
|
||||||
|
<ul style="margin:0 0 24px; padding-left:20px;">
|
||||||
|
{{if not .DisableDownloadSourceArchives}}
|
||||||
|
<li>
|
||||||
|
<a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.zip" rel="nofollow" style="color:#1e88e5; text-decoration:none; font-weight:500;">{{.locale.Tr "mail.release.download.zip"}}</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.tar.gz" rel="nofollow" style="color:#1e88e5; text-decoration:none; font-weight:500;">{{.locale.Tr "mail.release.download.targz"}}</a>
|
||||||
|
</li>
|
||||||
|
{{end}}
|
||||||
|
{{if .Release.Attachments}}
|
||||||
|
{{range .Release.Attachments}}
|
||||||
|
<li>
|
||||||
|
<a href="{{.DownloadURL}}" target="_blank" style="color:#1e88e5; text-decoration:none; font-weight:500;">{{.Name}} ({{.Size | FileSize}})</a>
|
||||||
|
</li>
|
||||||
|
{{end}}
|
||||||
|
{{end}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:16px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
|
||||||
|
{{.Link}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#64748b;">
|
||||||
|
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure release notification – if you didn’t expect this, please ignore this email.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
|
||||||
|
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
{{$url := HTMLFormat "<a href='%[1]s' style='color:#1e88e5; text-decoration:none; font-weight:500;'>%[2]s</a>" .Link .Repo}}
|
||||||
|
<p style="margin:0 0 20px; font-size:16px; line-height:1.5; color:#334155;">
|
||||||
|
{{.Subject}}. {{.locale.Tr "mail.repo.transfer.body" $url}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
|
||||||
|
<a href="{{.Link}}" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">{{.locale.Tr "mail.view_it_on" AppName}}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
|
||||||
|
{{.Link}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#64748b;">
|
||||||
|
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure repository transfer notification – if you didn’t expect this, please ignore this email.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.locale.Tr "mail.activate_account.title" (.DisplayName|DotEscape)}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
|
||||||
|
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
<p style="margin:0 0 16px; font-size:16px; line-height:1.5; color:#1e293b;">
|
||||||
|
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 8px; font-size:16px; line-height:1.5; color:#334155;">
|
||||||
|
{{.locale.Tr "mail.activate_account.text_1" (.DisplayName|DotEscape) AppName}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 20px; font-size:16px; line-height:1.5; color:#334155;">
|
||||||
|
{{.locale.Tr "mail.activate_account.text_2" .ActiveCodeLives}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{{$activate_url := printf "%suser/activate?code=%s" AppUrl (QueryEscape .Code)}}
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
|
||||||
|
<a href="{{$activate_url}}" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">Activate Account</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
|
||||||
|
{{$activate_url}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#64748b;">
|
||||||
|
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure account activation – if you didn’t register, please ignore this email.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.locale.Tr "mail.activate_email.title" (.DisplayName|DotEscape)}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
|
||||||
|
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
<p style="margin:0 0 16px; font-size:16px; line-height:1.5; color:#1e293b;">
|
||||||
|
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 20px; font-size:16px; line-height:1.5; color:#334155;">
|
||||||
|
{{.locale.Tr "mail.activate_email.text" .ActiveCodeLives}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{{$activate_url := printf "%suser/activate_email?code=%s&email=%s" AppUrl (QueryEscape .Code) (QueryEscape .Email)}}
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
|
||||||
|
<a href="{{$activate_url}}" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">Verify Email Address</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
|
||||||
|
{{$activate_url}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#64748b;">
|
||||||
|
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure email verification – if you didn’t request this, please ignore this email.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.locale.Tr "mail.register_notify.title" (.DisplayName|DotEscape) AppName}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
|
||||||
|
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
<p style="margin:0 0 16px; font-size:16px; line-height:1.5; color:#1e293b;">
|
||||||
|
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 8px; font-size:16px; line-height:1.5; color:#334155;">
|
||||||
|
{{.locale.Tr "mail.register_notify.text_1" AppName}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 20px; font-size:16px; line-height:1.5; color:#334155;">
|
||||||
|
{{.locale.Tr "mail.register_notify.text_2" .Username}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
|
||||||
|
<a href="{{AppUrl}}user/login" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">Log in to {{AppName}}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
{{$set_pwd_url := printf "%suser/forgot_password" AppUrl}}
|
||||||
|
<p style="margin:0 0 20px; font-size:16px; line-height:1.5; color:#334155;">
|
||||||
|
{{.locale.Tr "mail.register_notify.text_3" $set_pwd_url}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
|
||||||
|
{{AppUrl}}user/login
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#64748b;">
|
||||||
|
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure registration confirmation – if you didn’t register, please ignore this email.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{{.locale.Tr "mail.reset_password.title" (.DisplayName|DotEscape)}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
.ExternalClass, .ReadMsgBody { width: 100%; background-color: #f4f6f9; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0; padding:0; background-color:#f4f6f9; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;">
|
||||||
|
|
||||||
|
<center style="width:100%; table-layout:fixed;">
|
||||||
|
<div style="max-width:600px; margin:20px auto; background:#ffffff; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05); overflow:hidden;">
|
||||||
|
|
||||||
|
<div style="padding:28px 32px 16px; border-bottom:1px solid #eef2f6;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:middle;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="32" height="32" style="display:inline-block; vertical-align:middle; margin-right:12px; border:0; outline:none;">
|
||||||
|
<span style="font-size:22px; font-weight:600; color:#1e293b; letter-spacing:-0.2px; vertical-align:middle;">{{AppName}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:32px 32px 24px; color:#334155;">
|
||||||
|
<p style="margin:0 0 16px; font-size:16px; line-height:1.5; color:#1e293b;">
|
||||||
|
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 20px; font-size:16px; line-height:1.5; color:#334155;">
|
||||||
|
{{.locale.Tr "mail.reset_password.text" .ResetPwdCodeLives}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{{$recover_url := printf "%suser/recover_account?code=%s" AppUrl (QueryEscape .Code)}}
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin:28px 0 24px; border-collapse:separate;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" style="border-radius:48px; background-color:#1e88e5;" bgcolor="#1e88e5">
|
||||||
|
<a href="{{$recover_url}}" style="display:inline-block; padding:14px 36px; font-size:16px; font-weight:500; color:#ffffff; text-decoration:none; background-color:#1e88e5; border-radius:48px; border:1px solid #1e88e5; letter-spacing:0.3px; text-align:center;">Reset Password</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:16px 18px; margin:24px 0 16px; word-break:break-word;">
|
||||||
|
<p style="margin:0 0 8px; font-size:14px; color:#475569; line-height:1.5;">
|
||||||
|
{{.locale.Tr "mail.link_not_working_do_paste"}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0; font-size:14px; font-family:monospace; color:#1e88e5; background:#ffffff; padding:10px 12px; border-radius:6px; border:1px solid #e2e8f0; word-break:break-all;">
|
||||||
|
{{$recover_url}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div style="height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:16px 0 8px;"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:20px 32px 28px; background:#f9fbfd; border-top:1px solid #eef2f6; text-align:left;">
|
||||||
|
<p style="margin:0; font-size:14px; color:#64748b;">
|
||||||
|
© <a href="{{AppUrl}}" target="_blank" rel="noopener noreferrer" style="color:#1e88e5; text-decoration:none; font-weight:500; border-bottom:1px dotted #b9d5f0;">{{AppName}}</a>
|
||||||
|
</p>
|
||||||
|
<p style="margin:6px 0 0; font-size:12px; color:#94a3b8;">Secure password reset link – if you didn’t request this, please ignore this email.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
<div style="display:none; white-space:nowrap; font-size:0; line-height:0;"> </div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{AppName}} - Team Invitation</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-pad{padding-left:16px!important;padding-right:16px!important}
|
||||||
|
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
|
||||||
|
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
|
||||||
|
<!-- masthead -->
|
||||||
|
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
|
||||||
|
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
|
||||||
|
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- two-column body -->
|
||||||
|
<tr>
|
||||||
|
<!-- left column -->
|
||||||
|
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
|
||||||
|
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
|
||||||
|
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>{{.locale.Tr "mail.hi_user_x" .Invite.Email}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;">{{.locale.Tr "mail.team_invite.text_1" (DotEscape .Inviter.DisplayName) (DotEscape .Team.Name) (DotEscape .Organization.DisplayName)}}</p>
|
||||||
|
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;">{{.locale.Tr "mail.team_invite.text_2"}}</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
|
||||||
|
<a href="{{.InviteURL}}" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account »</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
|
||||||
|
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{.InviteURL}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td>
|
||||||
|
<!-- right column / sidebar -->
|
||||||
|
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
|
||||||
|
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
|
||||||
|
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
|
||||||
|
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">© <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-pad{padding-left:16px!important;padding-right:16px!important}
|
||||||
|
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
|
||||||
|
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
|
||||||
|
<!-- masthead -->
|
||||||
|
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
|
||||||
|
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
|
||||||
|
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- two-column body -->
|
||||||
|
<tr>
|
||||||
|
<!-- left column -->
|
||||||
|
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
|
||||||
|
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
|
||||||
|
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;"><h2>{{.Repo.FullName}} - {{.Run.WorkflowID}}: {{.RunStatusText}}</h2><ul>{{range $job := .Jobs}}<li><a href="{{$job.HTMLURL}}">{{$job.Status}}: {{$job.Name}}{{if gt $job.Attempt 1}} (retry #{{$job.Attempt}}){{end}} - {{$job.Duration}}</a></li>{{end}}</ul></p>
|
||||||
|
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;"></p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
|
||||||
|
<a href="{{.Run.HTMLURL}}" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account »</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
|
||||||
|
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{.Run.HTMLURL}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td>
|
||||||
|
<!-- right column / sidebar -->
|
||||||
|
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
|
||||||
|
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
|
||||||
|
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
|
||||||
|
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">© <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-pad{padding-left:16px!important;padding-right:16px!important}
|
||||||
|
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
|
||||||
|
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
|
||||||
|
<!-- masthead -->
|
||||||
|
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
|
||||||
|
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
|
||||||
|
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- two-column body -->
|
||||||
|
<tr>
|
||||||
|
<!-- left column -->
|
||||||
|
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
|
||||||
|
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
|
||||||
|
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;">{{.locale.Tr "mail.repo.collaborator.added.text"}} <code>{{.RepoName}}</code>.</p>
|
||||||
|
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;"></p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
|
||||||
|
<a href="{{.Link}}" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account »</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
|
||||||
|
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{.Link}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td>
|
||||||
|
<!-- right column / sidebar -->
|
||||||
|
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
|
||||||
|
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
|
||||||
|
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
|
||||||
|
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">© <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-pad{padding-left:16px!important;padding-right:16px!important}
|
||||||
|
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
|
||||||
|
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
|
||||||
|
<!-- masthead -->
|
||||||
|
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
|
||||||
|
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
|
||||||
|
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- two-column body -->
|
||||||
|
<tr>
|
||||||
|
<!-- left column -->
|
||||||
|
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
|
||||||
|
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
|
||||||
|
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;">{{$repo_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Issue.Repo.HTMLURL .Issue.Repo.FullName}}{{$link := HTMLFormat "<a href=\047%s\047>#%d</a>" .Link .Issue.Index}}{{if .IsPull}}{{.locale.Tr "mail.issue_assigned.pull" .Doer.Name $link $repo_url}}{{else}}{{.locale.Tr "mail.issue_assigned.issue" .Doer.Name $link $repo_url}}{{end}}</p>
|
||||||
|
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;"></p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
|
||||||
|
<a href="{{.Link}}" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account »</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
|
||||||
|
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{.Link}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td>
|
||||||
|
<!-- right column / sidebar -->
|
||||||
|
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
|
||||||
|
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
|
||||||
|
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
|
||||||
|
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">© <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-pad{padding-left:16px!important;padding-right:16px!important}
|
||||||
|
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
|
||||||
|
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
|
||||||
|
<!-- masthead -->
|
||||||
|
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
|
||||||
|
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
|
||||||
|
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- two-column body -->
|
||||||
|
<tr>
|
||||||
|
<!-- left column -->
|
||||||
|
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
|
||||||
|
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
|
||||||
|
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;">{{if .IsMention}}<p>{{.locale.Tr "mail.issue.x_mentioned_you" .Doer.Name}}</p>{{end}}{{if eq .ActionName "push"}}<p>{{if .Comment.IsForcePush}}{{$oldCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.OldCommit}}{{$oldShortSha := ShortSha .Comment.OldCommit}}{{$oldCommitLink := HTMLFormat "<a href=\047%[1]s\047>%[2]s</a>" $oldCommitUrl $oldShortSha}}{{$newCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.NewCommit}}{{$newShortSha := ShortSha .Comment.NewCommit}}{{$newCommitLink := HTMLFormat "<a href=\047%[1]s\047>%[2]s</a>" $newCommitUrl $newShortSha}}{{.locale.Tr "mail.issue.action.force_push" .Doer.Name .Comment.Issue.PullRequest.HeadBranch $oldCommitLink $newCommitLink}}{{else}}{{.locale.TrN (len .Comment.Commits) "mail.issue.action.push_1" "mail.issue.action.push_n" .Doer.Name .Comment.Issue.PullRequest.HeadBranch (len .Comment.Commits)}}{{end}}</p>{{end}}<p>{{if eq .ActionName "close"}}{{.locale.Tr "mail.issue.action.close" .Doer.Name .Issue.Index}}{{else if eq .ActionName "reopen"}}{{.locale.Tr "mail.issue.action.reopen" .Doer.Name .Issue.Index}}{{else if eq .ActionName "merge"}}{{.locale.Tr "mail.issue.action.merge" .Doer.Name .Issue.Index .Issue.PullRequest.BaseBranch}}{{else if eq .ActionName "approve"}}{{.locale.Tr "mail.issue.action.approve" .Doer.Name}}{{else if eq .ActionName "reject"}}{{.locale.Tr "mail.issue.action.reject" .Doer.Name}}{{else if eq .ActionName "review"}}{{.locale.Tr "mail.issue.action.review" .Doer.Name}}{{else if eq .ActionName "review_dismissed"}}{{.locale.Tr "mail.issue.action.review_dismissed" .Doer.Name .Comment.Review.Reviewer.Name}}{{else if eq .ActionName "ready_for_review"}}{{.locale.Tr "mail.issue.action.ready_for_review" .Doer.Name}}{{end}}{{- if eq .Body ""}}{{if eq .ActionName "new"}}{{.locale.Tr "mail.issue.action.new" .Doer.Name .Issue.Index}}{{end}}{{else}}{{.Body}}{{end -}}</p>{{- range .ReviewComments}}<hr><p>{{$.locale.Tr "mail.issue.in_tree_path" .TreePath}}</p><pre>{{.Patch}}</pre><div>{{.RenderedContent}}</div>{{end -}}{{if eq .ActionName "push"}}<ul>{{range .Comment.Commits}}<li><a href="{{$.Comment.Issue.PullRequest.BaseRepo.HTMLURL}}/commit/{{.ID}}">{{ShortSha .ID.String}}</a> - {{.MessageTitle}}</li>{{end}}</ul>{{end}}</p>
|
||||||
|
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;"></p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
|
||||||
|
<a href="{{.Link}}" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account »</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
|
||||||
|
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{.Link}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td>
|
||||||
|
<!-- right column / sidebar -->
|
||||||
|
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
|
||||||
|
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
|
||||||
|
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
|
||||||
|
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">© <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-pad{padding-left:16px!important;padding-right:16px!important}
|
||||||
|
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
|
||||||
|
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
|
||||||
|
<!-- masthead -->
|
||||||
|
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
|
||||||
|
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
|
||||||
|
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- two-column body -->
|
||||||
|
<tr>
|
||||||
|
<!-- left column -->
|
||||||
|
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
|
||||||
|
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
|
||||||
|
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;">{{$release_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Release.HTMLURL .Release.TagName}}{{$repo_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Release.Repo.HTMLURL .Release.Repo.FullName}}{{.locale.Tr "mail.release.new.text" .Release.Publisher.Name $release_url $repo_url}}
|
||||||
|
<h4>{{.locale.Tr "mail.release.title" .Release.Title}}</h4>
|
||||||
|
{{if .Release.RenderedNote}}<div>{{.Release.RenderedNote}}</div>{{end}}
|
||||||
|
<p>{{.locale.Tr "mail.release.downloads"}}</p>
|
||||||
|
<ul>{{if not .DisableDownloadSourceArchives}}<li><a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.zip">{{.locale.Tr "mail.release.download.zip"}}</a></li><li><a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.tar.gz">{{.locale.Tr "mail.release.download.targz"}}</a></li>{{end}}{{if .Release.Attachments}}{{range .Release.Attachments}}<li><a href="{{.DownloadURL}}">{{.Name}} ({{.Size | FileSize}})</a></li>{{end}}{{end}}</ul></p>
|
||||||
|
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;"></p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
|
||||||
|
<a href="{{.Link}}" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account »</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
|
||||||
|
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{.Link}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td>
|
||||||
|
<!-- right column / sidebar -->
|
||||||
|
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
|
||||||
|
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
|
||||||
|
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
|
||||||
|
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">© <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-pad{padding-left:16px!important;padding-right:16px!important}
|
||||||
|
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
|
||||||
|
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
|
||||||
|
<!-- masthead -->
|
||||||
|
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
|
||||||
|
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
|
||||||
|
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- two-column body -->
|
||||||
|
<tr>
|
||||||
|
<!-- left column -->
|
||||||
|
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
|
||||||
|
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
|
||||||
|
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;">{{$url := HTMLFormat "<a href=\047%[1]s\047>%[2]s</a>" .Link .Repo}}{{.Subject}}. {{.locale.Tr "mail.repo.transfer.body" $url}}</p>
|
||||||
|
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;"></p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
|
||||||
|
<a href="{{.Link}}" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account »</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
|
||||||
|
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{.Link}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td>
|
||||||
|
<!-- right column / sidebar -->
|
||||||
|
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
|
||||||
|
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
|
||||||
|
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
|
||||||
|
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">© <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.locale.Tr "mail.activate_account.title" (.DisplayName|DotEscape)}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-pad{padding-left:16px!important;padding-right:16px!important}
|
||||||
|
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
|
||||||
|
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
|
||||||
|
<!-- masthead -->
|
||||||
|
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
|
||||||
|
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
|
||||||
|
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- two-column body -->
|
||||||
|
<tr>
|
||||||
|
<!-- left column -->
|
||||||
|
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
|
||||||
|
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
|
||||||
|
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;">{{.locale.Tr "mail.activate_account.text_1" (.DisplayName|DotEscape) AppName}}</p>
|
||||||
|
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;">{{.locale.Tr "mail.activate_account.text_2" .ActiveCodeLives}}</p>
|
||||||
|
{{$activate_url := printf "%suser/activate?code=%s" AppUrl (QueryEscape .Code)}}
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
|
||||||
|
<a href="{{$activate_url}}" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account »</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
|
||||||
|
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{$activate_url}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td>
|
||||||
|
<!-- right column / sidebar -->
|
||||||
|
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
|
||||||
|
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
|
||||||
|
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
|
||||||
|
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">© <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.locale.Tr "mail.activate_email.title" (.DisplayName|DotEscape)}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-pad{padding-left:16px!important;padding-right:16px!important}
|
||||||
|
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
|
||||||
|
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
|
||||||
|
<!-- masthead -->
|
||||||
|
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
|
||||||
|
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
|
||||||
|
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- two-column body -->
|
||||||
|
<tr>
|
||||||
|
<!-- left column -->
|
||||||
|
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
|
||||||
|
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
|
||||||
|
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;">{{.locale.Tr "mail.activate_email.text" .ActiveCodeLives}}</p>
|
||||||
|
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;"></p>
|
||||||
|
{{$activate_url := printf "%suser/activate_email?code=%s&email=%s" AppUrl (QueryEscape .Code) (QueryEscape .Email)}}
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
|
||||||
|
<a href="{{$activate_url}}" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account »</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
|
||||||
|
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{$activate_url}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td>
|
||||||
|
<!-- right column / sidebar -->
|
||||||
|
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
|
||||||
|
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
|
||||||
|
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
|
||||||
|
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">© <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.locale.Tr "mail.register_notify.title" (.DisplayName|DotEscape) AppName}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-pad{padding-left:16px!important;padding-right:16px!important}
|
||||||
|
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
|
||||||
|
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
|
||||||
|
<!-- masthead -->
|
||||||
|
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
|
||||||
|
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
|
||||||
|
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- two-column body -->
|
||||||
|
<tr>
|
||||||
|
<!-- left column -->
|
||||||
|
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
|
||||||
|
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
|
||||||
|
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;">{{.locale.Tr "mail.register_notify.text_1" AppName}}</p>
|
||||||
|
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;">{{.locale.Tr "mail.register_notify.text_2" .Username}}
|
||||||
|
{{$set_pwd_url := printf "%suser/forgot_password" AppUrl}}
|
||||||
|
{{.locale.Tr "mail.register_notify.text_3" $set_pwd_url}}</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
|
||||||
|
<a href="{{AppUrl}}user/login" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account »</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
|
||||||
|
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{AppUrl}}user/login</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td>
|
||||||
|
<!-- right column / sidebar -->
|
||||||
|
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
|
||||||
|
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
|
||||||
|
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
|
||||||
|
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">© <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.locale.Tr "mail.reset_password.title" (.DisplayName|DotEscape)}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#ede4d4}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-pad{padding-left:16px!important;padding-right:16px!important}
|
||||||
|
.resp-col{width:100%!important;display:block!important;border-left:none!important;padding-left:28px!important;padding-right:28px!important;padding-top:0!important}
|
||||||
|
.resp-btn{display:block!important;width:auto!important;text-align:center!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#ede4d4;font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fefdfb;border:1px solid #c4a97d;">
|
||||||
|
<!-- masthead -->
|
||||||
|
<tr><td colspan="2" class="resp-pad" style="padding:24px 28px 16px;border-bottom:3px double #1a1a2e;">
|
||||||
|
<img src="{{AppUrl}}assets/img/favicon.png" alt="logo" width="24" height="24" style="display:inline-block;vertical-align:middle;margin-right:8px;border:0;outline:none;" />
|
||||||
|
<span style="font-size:18px;font-weight:700;color:#1a1a2e;font-variant:small-caps;letter-spacing:2px;">{{AppName}}</span><br />
|
||||||
|
<span style="font-size:11px;color:#888;font-style:italic;">Gitea Mail Templates</span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- two-column body -->
|
||||||
|
<tr>
|
||||||
|
<!-- left column -->
|
||||||
|
<td class="resp-col" width="64%" style="padding:24px 24px 16px 28px;vertical-align:top;">
|
||||||
|
<p style="margin:0 0 16px;font-size:15px;color:#333;line-height:1.7;">
|
||||||
|
<span style="float:left;font-size:42px;line-height:1;font-weight:700;color:#1a1a2e;padding-right:8px;padding-top:2px;font-family:Georgia,serif;">D</span>{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
|
||||||
|
</p>
|
||||||
|
<p style="margin:0 0 12px;font-size:13px;line-height:1.8;color:#444;">{{.locale.Tr "mail.reset_password.text" .ResetPwdCodeLives}}</p>
|
||||||
|
<p style="margin:0 0 20px;font-size:12px;line-height:1.8;color:#666;font-style:italic;"></p>
|
||||||
|
{{$recover_url := printf "%suser/recover_account?code=%s" AppUrl (QueryEscape .Code)}}
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" style="margin:0 0 24px;"><tr><td style="padding:10px 24px;background:#1a1a2e;border:1px solid #c4a97d;">
|
||||||
|
<a href="{{$recover_url}}" class="resp-btn" style="display:inline-block;font-size:13px;font-weight:700;color:#fefdfb;text-decoration:none;font-variant:small-caps;letter-spacing:1px;">Activate Account »</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border:1px solid #c4a97d;background:#fefdfb;"><tr><td style="padding:12px 14px;">
|
||||||
|
<p style="margin:0 0 4px;font-size:10px;color:#888;font-style:italic;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:10px;font-family:monospace;color:#1a1a2e;background:#f5f0e8;padding:8px 10px;border:1px solid #ddd;word-break:break-all;">{{$recover_url}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td>
|
||||||
|
<!-- right column / sidebar -->
|
||||||
|
<td class="resp-col" width="36%" style="padding:24px 28px 16px 0;vertical-align:top;border-left:1px solid #ddd;">
|
||||||
|
<p style="margin:0 0 10px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-family:system-ui,sans-serif;font-weight:700;">Quick Info</p>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-top:1px solid #ddd;border-bottom:1px solid #ddd;">
|
||||||
|
<tr><td style="padding:8px 0;font-size:11px;color:#555;font-family:system-ui,sans-serif;">From<br /><strong style="color:#1a1a2e;">{{AppName}}</strong></td></tr>
|
||||||
|
<tr><td style="padding:8px 0;border-top:1px solid #ddd;font-size:11px;color:#555;font-family:system-ui,sans-serif;">Expires<br /><strong style="color:#1a1a2e;">{{.ActiveCodeLives}}</strong></td></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td colspan="2" style="padding:16px 28px;border-top:1px solid #ccc;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:11px;color:#888;font-style:italic;">© <a href="{{AppUrl}}" style="color:#1a1a2e;text-decoration:none;font-weight:600;border-bottom:1px dotted #c4a97d;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{AppName}} - Team Invitation</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#fafafa}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-pad{padding-left:16px!important;padding-right:16px!important}
|
||||||
|
.resp-full{width:100%!important;display:block!important}
|
||||||
|
.resp-hide{display:none!important}
|
||||||
|
.resp-btn{display:block!important;width:auto!important}
|
||||||
|
.resp-heading{font-size:22px!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#fafafa;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fff;border:2px solid #000;">
|
||||||
|
<!-- header -->
|
||||||
|
<tr><td class="resp-pad" style="padding:24px 32px 0;">
|
||||||
|
<span style="font-size:14px;font-weight:900;color:#000;letter-spacing:-0.5px;text-transform:uppercase;">{{AppName}}<span style="color:#e03131;margin-left:4px;">*</span></span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- split: left 60% content, right 40% whitespace -->
|
||||||
|
<tr><td class="resp-pad" style="padding:0 32px 0;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
||||||
|
<tr>
|
||||||
|
<td class="resp-full" width="60%" style="padding:32px 0 0;">
|
||||||
|
<p class="resp-heading" style="margin:0 0 32px;font-size:28px;font-weight:900;color:#000;line-height:1.1;letter-spacing:-1px;">{{.locale.Tr "mail.hi_user_x" .Invite.Email}}</p>
|
||||||
|
<p style="margin:0 0 8px;font-size:13px;line-height:1.8;color:#333;font-weight:500;">{{.locale.Tr "mail.team_invite.text_1" (DotEscape .Inviter.DisplayName) (DotEscape .Team.Name) (DotEscape .Organization.DisplayName)}}</p>
|
||||||
|
<p style="margin:0 0 32px;font-size:12px;line-height:1.8;color:#888;border-left:2px solid #e03131;padding-left:12px;">{{.locale.Tr "mail.team_invite.text_2"}}</p>
|
||||||
|
</td>
|
||||||
|
<td class="resp-hide" width="40%" style="padding:32px 0 0 0;vertical-align:top;"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- button -->
|
||||||
|
<tr><td class="resp-pad" style="padding:0 32px 24px;">
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="border:2px solid #000;padding:14px 32px;">
|
||||||
|
<a href="{{.InviteURL}}" class="resp-btn" style="display:inline-block;font-size:14px;font-weight:900;color:#000;text-decoration:none;letter-spacing:-0.3px;">ACTIVATE</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin:24px 0 0;"><tr><td style="padding:12px 16px;background:#f5f5f5;border:1px solid #ccc;">
|
||||||
|
<p style="margin:0 0 6px;font-size:11px;color:#888;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:11px;font-family:monospace;color:#000;background:#fff;padding:8px 10px;border:1px solid #000;word-break:break-all;">{{.InviteURL}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td style="padding:16px 32px;border-top:2px solid #000;">
|
||||||
|
<p style="margin:0;font-size:11px;color:#888;"><a href="{{AppUrl}}" style="color:#e03131;text-decoration:underline;font-weight:600;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#fafafa}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-pad{padding-left:16px!important;padding-right:16px!important}
|
||||||
|
.resp-full{width:100%!important;display:block!important}
|
||||||
|
.resp-hide{display:none!important}
|
||||||
|
.resp-btn{display:block!important;width:auto!important}
|
||||||
|
.resp-heading{font-size:22px!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#fafafa;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fff;border:2px solid #000;">
|
||||||
|
<!-- header -->
|
||||||
|
<tr><td class="resp-pad" style="padding:24px 32px 0;">
|
||||||
|
<span style="font-size:14px;font-weight:900;color:#000;letter-spacing:-0.5px;text-transform:uppercase;">{{AppName}}<span style="color:#e03131;margin-left:4px;">*</span></span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- split: left 60% content, right 40% whitespace -->
|
||||||
|
<tr><td class="resp-pad" style="padding:0 32px 0;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
||||||
|
<tr>
|
||||||
|
<td class="resp-full" width="60%" style="padding:32px 0 0;">
|
||||||
|
<p class="resp-heading" style="margin:0 0 32px;font-size:28px;font-weight:900;color:#000;line-height:1.1;letter-spacing:-1px;"></p>
|
||||||
|
<p style="margin:0 0 8px;font-size:13px;line-height:1.8;color:#333;font-weight:500;"><h2>{{.Repo.FullName}} - {{.Run.WorkflowID}}: {{.RunStatusText}}</h2><ul>{{range $job := .Jobs}}<li><a href="{{$job.HTMLURL}}">{{$job.Status}}: {{$job.Name}}{{if gt $job.Attempt 1}} (retry #{{$job.Attempt}}){{end}} - {{$job.Duration}}</a></li>{{end}}</ul></p>
|
||||||
|
<p style="margin:0 0 32px;font-size:12px;line-height:1.8;color:#888;border-left:2px solid #e03131;padding-left:12px;"></p>
|
||||||
|
</td>
|
||||||
|
<td class="resp-hide" width="40%" style="padding:32px 0 0 0;vertical-align:top;"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- button -->
|
||||||
|
<tr><td class="resp-pad" style="padding:0 32px 24px;">
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="border:2px solid #000;padding:14px 32px;">
|
||||||
|
<a href="{{.Run.HTMLURL}}" class="resp-btn" style="display:inline-block;font-size:14px;font-weight:900;color:#000;text-decoration:none;letter-spacing:-0.3px;">ACTIVATE</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin:24px 0 0;"><tr><td style="padding:12px 16px;background:#f5f5f5;border:1px solid #ccc;">
|
||||||
|
<p style="margin:0 0 6px;font-size:11px;color:#888;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:11px;font-family:monospace;color:#000;background:#fff;padding:8px 10px;border:1px solid #000;word-break:break-all;">{{.Run.HTMLURL}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td style="padding:16px 32px;border-top:2px solid #000;">
|
||||||
|
<p style="margin:0;font-size:11px;color:#888;"><a href="{{AppUrl}}" style="color:#e03131;text-decoration:underline;font-weight:600;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#fafafa}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-pad{padding-left:16px!important;padding-right:16px!important}
|
||||||
|
.resp-full{width:100%!important;display:block!important}
|
||||||
|
.resp-hide{display:none!important}
|
||||||
|
.resp-btn{display:block!important;width:auto!important}
|
||||||
|
.resp-heading{font-size:22px!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#fafafa;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fff;border:2px solid #000;">
|
||||||
|
<!-- header -->
|
||||||
|
<tr><td class="resp-pad" style="padding:24px 32px 0;">
|
||||||
|
<span style="font-size:14px;font-weight:900;color:#000;letter-spacing:-0.5px;text-transform:uppercase;">{{AppName}}<span style="color:#e03131;margin-left:4px;">*</span></span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- split: left 60% content, right 40% whitespace -->
|
||||||
|
<tr><td class="resp-pad" style="padding:0 32px 0;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
||||||
|
<tr>
|
||||||
|
<td class="resp-full" width="60%" style="padding:32px 0 0;">
|
||||||
|
<p class="resp-heading" style="margin:0 0 32px;font-size:28px;font-weight:900;color:#000;line-height:1.1;letter-spacing:-1px;"></p>
|
||||||
|
<p style="margin:0 0 8px;font-size:13px;line-height:1.8;color:#333;font-weight:500;">{{.locale.Tr "mail.repo.collaborator.added.text"}} <code>{{.RepoName}}</code>.</p>
|
||||||
|
<p style="margin:0 0 32px;font-size:12px;line-height:1.8;color:#888;border-left:2px solid #e03131;padding-left:12px;"></p>
|
||||||
|
</td>
|
||||||
|
<td class="resp-hide" width="40%" style="padding:32px 0 0 0;vertical-align:top;"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- button -->
|
||||||
|
<tr><td class="resp-pad" style="padding:0 32px 24px;">
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="border:2px solid #000;padding:14px 32px;">
|
||||||
|
<a href="{{.Link}}" class="resp-btn" style="display:inline-block;font-size:14px;font-weight:900;color:#000;text-decoration:none;letter-spacing:-0.3px;">ACTIVATE</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin:24px 0 0;"><tr><td style="padding:12px 16px;background:#f5f5f5;border:1px solid #ccc;">
|
||||||
|
<p style="margin:0 0 6px;font-size:11px;color:#888;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:11px;font-family:monospace;color:#000;background:#fff;padding:8px 10px;border:1px solid #000;word-break:break-all;">{{.Link}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td style="padding:16px 32px;border-top:2px solid #000;">
|
||||||
|
<p style="margin:0;font-size:11px;color:#888;"><a href="{{AppUrl}}" style="color:#e03131;text-decoration:underline;font-weight:600;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#fafafa}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-pad{padding-left:16px!important;padding-right:16px!important}
|
||||||
|
.resp-full{width:100%!important;display:block!important}
|
||||||
|
.resp-hide{display:none!important}
|
||||||
|
.resp-btn{display:block!important;width:auto!important}
|
||||||
|
.resp-heading{font-size:22px!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#fafafa;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fff;border:2px solid #000;">
|
||||||
|
<!-- header -->
|
||||||
|
<tr><td class="resp-pad" style="padding:24px 32px 0;">
|
||||||
|
<span style="font-size:14px;font-weight:900;color:#000;letter-spacing:-0.5px;text-transform:uppercase;">{{AppName}}<span style="color:#e03131;margin-left:4px;">*</span></span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- split: left 60% content, right 40% whitespace -->
|
||||||
|
<tr><td class="resp-pad" style="padding:0 32px 0;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
||||||
|
<tr>
|
||||||
|
<td class="resp-full" width="60%" style="padding:32px 0 0;">
|
||||||
|
<p class="resp-heading" style="margin:0 0 32px;font-size:28px;font-weight:900;color:#000;line-height:1.1;letter-spacing:-1px;"></p>
|
||||||
|
<p style="margin:0 0 8px;font-size:13px;line-height:1.8;color:#333;font-weight:500;">{{$repo_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Issue.Repo.HTMLURL .Issue.Repo.FullName}}{{$link := HTMLFormat "<a href=\047%s\047>#%d</a>" .Link .Issue.Index}}{{if .IsPull}}{{.locale.Tr "mail.issue_assigned.pull" .Doer.Name $link $repo_url}}{{else}}{{.locale.Tr "mail.issue_assigned.issue" .Doer.Name $link $repo_url}}{{end}}</p>
|
||||||
|
<p style="margin:0 0 32px;font-size:12px;line-height:1.8;color:#888;border-left:2px solid #e03131;padding-left:12px;"></p>
|
||||||
|
</td>
|
||||||
|
<td class="resp-hide" width="40%" style="padding:32px 0 0 0;vertical-align:top;"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- button -->
|
||||||
|
<tr><td class="resp-pad" style="padding:0 32px 24px;">
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="border:2px solid #000;padding:14px 32px;">
|
||||||
|
<a href="{{.Link}}" class="resp-btn" style="display:inline-block;font-size:14px;font-weight:900;color:#000;text-decoration:none;letter-spacing:-0.3px;">ACTIVATE</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin:24px 0 0;"><tr><td style="padding:12px 16px;background:#f5f5f5;border:1px solid #ccc;">
|
||||||
|
<p style="margin:0 0 6px;font-size:11px;color:#888;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:11px;font-family:monospace;color:#000;background:#fff;padding:8px 10px;border:1px solid #000;word-break:break-all;">{{.Link}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td style="padding:16px 32px;border-top:2px solid #000;">
|
||||||
|
<p style="margin:0;font-size:11px;color:#888;"><a href="{{AppUrl}}" style="color:#e03131;text-decoration:underline;font-weight:600;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#fafafa}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-pad{padding-left:16px!important;padding-right:16px!important}
|
||||||
|
.resp-full{width:100%!important;display:block!important}
|
||||||
|
.resp-hide{display:none!important}
|
||||||
|
.resp-btn{display:block!important;width:auto!important}
|
||||||
|
.resp-heading{font-size:22px!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#fafafa;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fff;border:2px solid #000;">
|
||||||
|
<!-- header -->
|
||||||
|
<tr><td class="resp-pad" style="padding:24px 32px 0;">
|
||||||
|
<span style="font-size:14px;font-weight:900;color:#000;letter-spacing:-0.5px;text-transform:uppercase;">{{AppName}}<span style="color:#e03131;margin-left:4px;">*</span></span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- split: left 60% content, right 40% whitespace -->
|
||||||
|
<tr><td class="resp-pad" style="padding:0 32px 0;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
||||||
|
<tr>
|
||||||
|
<td class="resp-full" width="60%" style="padding:32px 0 0;">
|
||||||
|
<p class="resp-heading" style="margin:0 0 32px;font-size:28px;font-weight:900;color:#000;line-height:1.1;letter-spacing:-1px;"></p>
|
||||||
|
<p style="margin:0 0 8px;font-size:13px;line-height:1.8;color:#333;font-weight:500;">{{if .IsMention}}<p>{{.locale.Tr "mail.issue.x_mentioned_you" .Doer.Name}}</p>{{end}}{{if eq .ActionName "push"}}<p>{{if .Comment.IsForcePush}}{{$oldCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.OldCommit}}{{$oldShortSha := ShortSha .Comment.OldCommit}}{{$oldCommitLink := HTMLFormat "<a href=\047%[1]s\047>%[2]s</a>" $oldCommitUrl $oldShortSha}}{{$newCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.NewCommit}}{{$newShortSha := ShortSha .Comment.NewCommit}}{{$newCommitLink := HTMLFormat "<a href=\047%[1]s\047>%[2]s</a>" $newCommitUrl $newShortSha}}{{.locale.Tr "mail.issue.action.force_push" .Doer.Name .Comment.Issue.PullRequest.HeadBranch $oldCommitLink $newCommitLink}}{{else}}{{.locale.TrN (len .Comment.Commits) "mail.issue.action.push_1" "mail.issue.action.push_n" .Doer.Name .Comment.Issue.PullRequest.HeadBranch (len .Comment.Commits)}}{{end}}</p>{{end}}<p>{{if eq .ActionName "close"}}{{.locale.Tr "mail.issue.action.close" .Doer.Name .Issue.Index}}{{else if eq .ActionName "reopen"}}{{.locale.Tr "mail.issue.action.reopen" .Doer.Name .Issue.Index}}{{else if eq .ActionName "merge"}}{{.locale.Tr "mail.issue.action.merge" .Doer.Name .Issue.Index .Issue.PullRequest.BaseBranch}}{{else if eq .ActionName "approve"}}{{.locale.Tr "mail.issue.action.approve" .Doer.Name}}{{else if eq .ActionName "reject"}}{{.locale.Tr "mail.issue.action.reject" .Doer.Name}}{{else if eq .ActionName "review"}}{{.locale.Tr "mail.issue.action.review" .Doer.Name}}{{else if eq .ActionName "review_dismissed"}}{{.locale.Tr "mail.issue.action.review_dismissed" .Doer.Name .Comment.Review.Reviewer.Name}}{{else if eq .ActionName "ready_for_review"}}{{.locale.Tr "mail.issue.action.ready_for_review" .Doer.Name}}{{end}}{{- if eq .Body ""}}{{if eq .ActionName "new"}}{{.locale.Tr "mail.issue.action.new" .Doer.Name .Issue.Index}}{{end}}{{else}}{{.Body}}{{end -}}</p>{{- range .ReviewComments}}<hr><p>{{$.locale.Tr "mail.issue.in_tree_path" .TreePath}}</p><pre>{{.Patch}}</pre><div>{{.RenderedContent}}</div>{{end -}}{{if eq .ActionName "push"}}<ul>{{range .Comment.Commits}}<li><a href="{{$.Comment.Issue.PullRequest.BaseRepo.HTMLURL}}/commit/{{.ID}}">{{ShortSha .ID.String}}</a> - {{.MessageTitle}}</li>{{end}}</ul>{{end}}</p>
|
||||||
|
<p style="margin:0 0 32px;font-size:12px;line-height:1.8;color:#888;border-left:2px solid #e03131;padding-left:12px;"></p>
|
||||||
|
</td>
|
||||||
|
<td class="resp-hide" width="40%" style="padding:32px 0 0 0;vertical-align:top;"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- button -->
|
||||||
|
<tr><td class="resp-pad" style="padding:0 32px 24px;">
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="border:2px solid #000;padding:14px 32px;">
|
||||||
|
<a href="{{.Link}}" class="resp-btn" style="display:inline-block;font-size:14px;font-weight:900;color:#000;text-decoration:none;letter-spacing:-0.3px;">ACTIVATE</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin:24px 0 0;"><tr><td style="padding:12px 16px;background:#f5f5f5;border:1px solid #ccc;">
|
||||||
|
<p style="margin:0 0 6px;font-size:11px;color:#888;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:11px;font-family:monospace;color:#000;background:#fff;padding:8px 10px;border:1px solid #000;word-break:break-all;">{{.Link}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td style="padding:16px 32px;border-top:2px solid #000;">
|
||||||
|
<p style="margin:0;font-size:11px;color:#888;"><a href="{{AppUrl}}" style="color:#e03131;text-decoration:underline;font-weight:600;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="x-apple-disable-message-reformatting" />
|
||||||
|
<title>{{.Subject}}</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body,.ExternalClass,.ReadMsgBody{background-color:#fafafa}
|
||||||
|
@media only screen and (max-width:480px){
|
||||||
|
.resp-pad{padding-left:16px!important;padding-right:16px!important}
|
||||||
|
.resp-full{width:100%!important;display:block!important}
|
||||||
|
.resp-hide{display:none!important}
|
||||||
|
.resp-btn{display:block!important;width:auto!important}
|
||||||
|
.resp-heading{font-size:22px!important}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body style="margin:0;padding:0;background:#fafafa;font-family:system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
|
||||||
|
<center style="width:100%;table-layout:fixed;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="max-width:600px;background:#fff;border:2px solid #000;">
|
||||||
|
<!-- header -->
|
||||||
|
<tr><td class="resp-pad" style="padding:24px 32px 0;">
|
||||||
|
<span style="font-size:14px;font-weight:900;color:#000;letter-spacing:-0.5px;text-transform:uppercase;">{{AppName}}<span style="color:#e03131;margin-left:4px;">*</span></span>
|
||||||
|
</td></tr>
|
||||||
|
<!-- split: left 60% content, right 40% whitespace -->
|
||||||
|
<tr><td class="resp-pad" style="padding:0 32px 0;">
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
||||||
|
<tr>
|
||||||
|
<td class="resp-full" width="60%" style="padding:32px 0 0;">
|
||||||
|
<p class="resp-heading" style="margin:0 0 32px;font-size:28px;font-weight:900;color:#000;line-height:1.1;letter-spacing:-1px;"></p>
|
||||||
|
<p style="margin:0 0 8px;font-size:13px;line-height:1.8;color:#333;font-weight:500;">{{$release_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Release.HTMLURL .Release.TagName}}{{$repo_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Release.Repo.HTMLURL .Release.Repo.FullName}}{{.locale.Tr "mail.release.new.text" .Release.Publisher.Name $release_url $repo_url}}
|
||||||
|
<h4>{{.locale.Tr "mail.release.title" .Release.Title}}</h4>
|
||||||
|
{{if .Release.RenderedNote}}<div>{{.Release.RenderedNote}}</div>{{end}}
|
||||||
|
<p>{{.locale.Tr "mail.release.downloads"}}</p>
|
||||||
|
<ul>{{if not .DisableDownloadSourceArchives}}<li><a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.zip">{{.locale.Tr "mail.release.download.zip"}}</a></li><li><a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.tar.gz">{{.locale.Tr "mail.release.download.targz"}}</a></li>{{end}}{{if .Release.Attachments}}{{range .Release.Attachments}}<li><a href="{{.DownloadURL}}">{{.Name}} ({{.Size | FileSize}})</a></li>{{end}}{{end}}</ul></p>
|
||||||
|
<p style="margin:0 0 32px;font-size:12px;line-height:1.8;color:#888;border-left:2px solid #e03131;padding-left:12px;"></p>
|
||||||
|
</td>
|
||||||
|
<td class="resp-hide" width="40%" style="padding:32px 0 0 0;vertical-align:top;"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- button -->
|
||||||
|
<tr><td class="resp-pad" style="padding:0 32px 24px;">
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="border:2px solid #000;padding:14px 32px;">
|
||||||
|
<a href="{{.Link}}" class="resp-btn" style="display:inline-block;font-size:14px;font-weight:900;color:#000;text-decoration:none;letter-spacing:-0.3px;">ACTIVATE</a>
|
||||||
|
</td></tr></table>
|
||||||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin:24px 0 0;"><tr><td style="padding:12px 16px;background:#f5f5f5;border:1px solid #ccc;">
|
||||||
|
<p style="margin:0 0 6px;font-size:11px;color:#888;">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
|
||||||
|
<p style="margin:0;font-size:11px;font-family:monospace;color:#000;background:#fff;padding:8px 10px;border:1px solid #000;word-break:break-all;">{{.Link}}</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</td></tr>
|
||||||
|
<!-- footer -->
|
||||||
|
<tr><td style="padding:16px 32px;border-top:2px solid #000;">
|
||||||
|
<p style="margin:0;font-size:11px;color:#888;"><a href="{{AppUrl}}" style="color:#e03131;text-decoration:underline;font-weight:600;">{{AppName}}</a> — Gitea Mail Templates</p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</center>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||