Diff -- /var/www/vhosts/3dshawn.com/ptmatrix.3dshawn.com/TEMPLATES/tf_tasks_import.html
Diff
/var/www/vhosts/3dshawn.com/ptmatrix.3dshawn.com/TEMPLATES/tf_tasks_import.html
added on local at 2026-07-01 12:35:10
Added
+72
lines
Removed
-0
lines
Context
0
unchanged
Blobs
from
to ce19e767f71c
to ce19e767f71c
Unified diff
Naive LCS-based line diff. Additions in emerald, deletions in rose. Both sides decompressed live from BLOB_STORE.| 1 | <div class="page-header"> | |
| 2 | <div> | |
| 3 | <h1>Import tasks — $project_name</h1> | |
| 4 | <p class="subtitle">Drop in a CSV exported from <strong>Asana</strong>, <strong>Monday.com</strong>, <strong>Jira</strong>, <strong>Trello</strong>, or any CSV with a <code>title</code> column. PTMatrix normalizes the column names + status/priority values automatically.</p> | |
| 5 | </div> | |
| 6 | <div class="flex-end"> | |
| 7 | <a href="/project.cgi?id=$project_id" class="btn btn-ghost">← Back to project</a> | |
| 8 | </div> | |
| 9 | </div> | |
| 10 | ||
| 11 | [if:$has_success] | |
| 12 | <div class="card mb-3" style="border-left:3px solid #22c55e;padding:18px"> | |
| 13 | <strong style="color:#22c55e">✓ Imported $imported task(s)</strong> | |
| 14 | [if:$skipped] · <span class="text-muted">$skipped skipped</span>[/if] | |
| 15 | [if:$has_source] · <span class="text-muted">detected format: <strong>$detected_source</strong></span>[/if] | |
| 16 | <div style="margin-top:8px"><a href="/kanban.cgi?project=$project_id" class="btn btn-primary btn-sm">View on Kanban →</a> <a href="/project.cgi?id=$project_id" class="btn btn-ghost btn-sm">Project page →</a></div> | |
| 17 | </div> | |
| 18 | [/if] | |
| 19 | ||
| 20 | [if:$has_skips] | |
| 21 | <div class="card mb-3" style="border-left:3px solid var(--col-warn);padding:14px 18px"> | |
| 22 | <strong>Notes</strong> | |
| 23 | <ul style="margin:8px 0 0;padding-left:20px"> | |
| 24 | [loop:@skip_reasons]<li style="font-size:13px;margin-bottom:4px">$loop1.msg</li>[/loop] | |
| 25 | </ul> | |
| 26 | </div> | |
| 27 | [/if] | |
| 28 | ||
| 29 | <form method="POST" action="/tasks_import.cgi?project=$project_id" enctype="multipart/form-data" class="card" style="padding:20px"> | |
| 30 | <div class="field"> | |
| 31 | <label>CSV file</label> | |
| 32 | <input class="input" type="file" name="csv" accept=".csv,text/csv" required> | |
| 33 | <div class="text-muted" style="font-size:12px;margin-top:6px">Max 5 MB. UTF-8 encoded. First row is the header.</div> | |
| 34 | </div> | |
| 35 | <div style="display:flex;justify-content:flex-end;margin-top:14px"> | |
| 36 | <button type="submit" class="btn btn-primary">Upload & import</button> | |
| 37 | </div> | |
| 38 | </form> | |
| 39 | ||
| 40 | <div class="card mt-3" style="padding:18px 20px"> | |
| 41 | <h3 style="margin-top:0">Supported source formats</h3> | |
| 42 | <p class="text-muted" style="font-size:13px;margin:0 0 10px">PTMatrix recognises column names from each tool's standard CSV export. You don't need to rename anything.</p> | |
| 43 | <ul style="font-size:13px;margin:0;padding-left:22px;line-height:1.7"> | |
| 44 | <li><strong>Asana</strong> — <code>Name</code>, <code>Notes</code>, <code>Assignee Email</code>, <code>Due Date</code>, <code>Start Date</code>, <code>Tags</code>, <code>Section/Column</code></li> | |
| 45 | <li><strong>Monday.com</strong> — <code>Item Name</code> (or <code>Name</code>), <code>Status</code> (Working on it → in_progress, Stuck → blocked, Done → done), <code>Owner</code></li> | |
| 46 | <li><strong>Jira</strong> — <code>Summary</code>, <code>Description</code>, <code>Status</code> (To Do, In Progress, Done), <code>Priority</code> (Highest → urgent), <code>Issue Type</code>, <code>Labels</code>, <code>Story Points</code>, <code>Original Estimate</code></li> | |
| 47 | <li><strong>Trello</strong> — <code>Card Name</code>, <code>List Name</code> (becomes status), <code>Labels</code></li> | |
| 48 | <li><strong>Generic CSV</strong> — use PTMatrix's own column names below</li> | |
| 49 | </ul> | |
| 50 | </div> | |
| 51 | ||
| 52 | <div class="card mt-3" style="padding:20px"> | |
| 53 | <h3 style="margin-top:0">Generic CSV format reference</h3> | |
| 54 | <p class="text-muted" style="font-size:13px">Column order doesn't matter. Only <code>title</code> is required. Everything else is optional.</p> | |
| 55 | <table class="table" style="margin-top:8px"> | |
| 56 | <thead><tr><th>Column</th><th>What it does</th><th>Example</th></tr></thead> | |
| 57 | <tbody> | |
| 58 | <tr><td><code>title</code> <span style="color:#ef4444">*</span></td><td>Task title</td><td>Fix login redirect</td></tr> | |
| 59 | <tr><td><code>description</code></td><td>Multi-line OK (wrap in quotes)</td><td>"Steps:\n1. Visit /login\n2. ..."</td></tr> | |
| 60 | <tr><td><code>status</code></td><td>open / in_progress / blocked / review / done / cancelled</td><td>open</td></tr> | |
| 61 | <tr><td><code>priority</code></td><td>low / medium / high / urgent / critical</td><td>high</td></tr> | |
| 62 | <tr><td><code>type</code></td><td>Matched (case-insensitive) against your task types</td><td>Bug</td></tr> | |
| 63 | <tr><td><code>assignee_email</code></td><td>Must match an active user in your company</td><td>jane@acme.com</td></tr> | |
| 64 | <tr><td><code>due_date</code></td><td>YYYY-MM-DD</td><td>2026-07-15</td></tr> | |
| 65 | <tr><td><code>start_date</code></td><td>YYYY-MM-DD</td><td>2026-07-01</td></tr> | |
| 66 | <tr><td><code>estimated_hours</code></td><td>Decimal allowed</td><td>4.5</td></tr> | |
| 67 | <tr><td><code>story_points</code></td><td>Integer</td><td>5</td></tr> | |
| 68 | <tr><td><code>labels</code></td><td>Comma or semicolon separated; created if missing</td><td>backend; auth</td></tr> | |
| 69 | </tbody> | |
| 70 | </table> | |
| 71 | <p class="text-muted" style="font-size:12px;margin-top:14px">Tip: <a href="/tasks_export.cgi?project=$project_id">Export current tasks</a> to see the format, edit in Excel/Sheets, and re-import.</p> | |
| 72 | </div> |