Basecamp → CML Migrace

Basecamp:
Import:
BC aktivita:
✓ Hotovo:
Načítám projekty z Basecampu...
Žádné projekty pro tento filtr
Zobrazeno {{ filteredProjects.length }} z {{ projects.length }}
{{ p.name }} Archiv Smazaný Importován Smazán — lze znovu Přeskočen Hotovo
{{ p.description?.substring(0, 200) }}
BC aktivita: {{ daysAgoText(p.updated_at) }}
{{ p.local_project.members }} {{ p.local_project.todo_lists }} {{ p.local_project.active_todos }} aktivních {{ p.local_project.completed_todos }} hotových

Vyber projekt ze seznamu vlevo

Vyber projekt pro zobrazení detailu, import nebo propojení s CML

Nepřihlášen

Pro migraci se musíš nejdříve přihlásit v CML.

Přihlásit se
{{ checkedProjects.length }} {{ checkedProjects.length === 1 ? 'projekt' : (checkedProjects.length < 5 ? 'projekty' : 'projektů') }} vybráno
Importuji {{ bulkProgress.current }}/{{ bulkProgress.total }}: {{ bulkProgress.currentName }}
{{ bulkProgress.done }} {{ bulkProgress.failed }}
Resync {{ bulkResyncProgress.current }}/{{ bulkResyncProgress.total }}: {{ bulkResyncProgress.currentName }} — {{ bulkResyncProgress.currentStep }}
Viz overlay pro detail

Hromadný resync — {{ bulkResyncProgress.done + bulkResyncProgress.failed }}/{{ bulkResyncProgress.total }} projektů

{{ bulkResyncProgress.done }} {{ bulkResyncProgress.failed }}
{{ p.name }}
{{ p.currentStep }}
{{ p.errors.length }} {{ p.errors.length === 1 ? 'chyba' : 'chyb' }}
URL OK {{ p.validation.total_issues }} URL
{{ p.elapsed }}s
{{ bulkResyncProgress.done }} OK, {{ bulkResyncProgress.failed }} chyb, {{ bulkResyncLog.length }} celkem chyb

Hromadný resync — {{ checkedResyncableCount }} {{ checkedResyncableCount === 1 ? 'projekt' : (checkedResyncableCount < 5 ? 'projekty' : 'projektů') }}

Chyby při hromadném resyncu ({{ bulkResyncLog.length }})

Čas Projekt Krok Chyba
{{ err.timestamp }} {{ err.project }} {{ err.step }} {{ err.error }}

Migrace Basecamp příloh do S3

Skenuji obsah projektu...

Nalezeno {{ attachmentScanResult.count }} Basecamp příloh

Tento projekt neobsahuje žádné Basecamp přílohy k migraci. 🎉

Tyto soubory jsou uloženy na Basecamp serverech a budou staženy a nahrány na váš S3 storage.

{{ att.source }} {{ att.source_title }}
... a dalších {{ attachmentScanResult.count - 50 }} příloh
Migrace probíhá...
{{ attachmentStreamProgress.elapsed ? attachmentStreamProgress.elapsed.toFixed(0) + 's' : '' }} · ETA: {{ formatEta(attachmentStreamProgress.eta) }}
{{ attachmentStreamProgress.done }}/{{ attachmentStreamProgress.total }}
Položek
{{ attachmentStreamProgress.stats?.downloaded || 0 }}
Staženo
{{ attachmentStreamProgress.stats?.uploaded_to_s3 || 0 }}
Nahráno S3
{{ formatBytes(attachmentStreamProgress.total_bytes || 0) }}
Staženo dat
{{ attachmentStreamProgress.phase }} {{ attachmentStreamProgress.item }}
{{ attachmentStreamProgress.errors.length }} chyb
{{ err.type }}: {{ err.error }}
Migrace dokončena {{ attachmentMigrationResult.elapsed.toFixed(1) }}s
{{ attachmentMigrationResult.stats.total_attachments_found }}
Nalezeno
{{ attachmentMigrationResult.stats.downloaded }}
Staženo
{{ attachmentMigrationResult.stats.uploaded_to_s3 }}
Nahráno na S3
{{ attachmentMigrationResult.stats.content_updated }}
Obsahů aktualiz.
{{ attachmentMigrationResult.errors.length }} chyb
{{ err.type }}: {{ err.error }}
{{ err.url }}
Retry: {{ attachmentRetryResult.fixed }} / {{ attachmentRetryResult.retried }} opraveno
{{ attachmentRetryResult.errors.length }} st\u00e1le selhalo
Všechny URL v pořádku — žádné neplatné odkazy.
{{ attachmentValidationResult.total_issues }} neplatných URL
{{ issue.type }} {{ issue.source_title }} {{ issue.message }}

Ověření dat vs. Basecamp

{{ s.label }}
{{ s.stats }}
{{ verifyProgressLabel }}
{{ verifyError }}

Plný resync z Basecampu

{{ s.label }}
{{ s.detail }}
{{ s.stats }}
{{ resyncProgressLabel }}
{{ resyncVerification.all_ok ? 'Vše kompletní!' : 'Nalezeny nesrovnalosti' }}
Porovnání dat Basecamp vs. CML
Typ BC CML
{{ c.label }} {{ c.bc }} {{ c.local }}
Validace URL: Všechny odkazy v pořádku — žádné neplatné Basecamp URL.
Validace URL: {{ resyncValidation.total_issues }} neplatných Basecamp URL
{{ issue.type }} {{ issue.source_title }} {{ issue.message }}
{{ resyncError }}

Import z Basecampu

{{ s.label }}
{{ s.detail }}
{{ s.stats }}
{{ importProgressLabel }}
{{ importVerification.all_ok ? 'Import kompletní!' : 'Nalezeny nesrovnalosti' }}
Porovnání dat Basecamp vs. CML
Typ BC CML
{{ c.label }} {{ c.bc }} {{ c.local }}
{{ importError }}

Analýza kvality importu

Rate limit — čekám {{ analysisLive.rate_limit.wait_seconds }}s (pokus {{ analysisLive.rate_limit.attempt }}) Analyzuji... {{ analysisProjects.filter(p => p.cached).length }}/{{ analysisProjects.length }} z 24h cache Hotovo za {{ analysisLive.elapsed_display }}
{{ analysisCurrent }} / {{ analysisTotal }} — {{ analysisCurrentProject }}
{{ analysisLive.step_label }}
{{ analysisLive.elapsed_display }}
ETA {{ analysisLive.eta_display }}
~{{ analysisLive.avg_per_project }}s / projekt
Projekty: {{ analysisLive.counters.projects_done }}/{{ analysisLive.counters.projects_total }}
Todolisty BC: {{ analysisLive.counters.bc_todolists }}
Úkoly BC: {{ analysisLive.counters.bc_todos }}
Dokumenty BC: {{ analysisLive.counters.bc_documents }}
Komentáře BC: {{ analysisLive.counters.bc_comments }}
Everhour: {{ analysisLive.counters.bc_everhour }}
API volání: {{ analysisLive.counters.api_calls }}
Retry: {{ analysisLive.counters.retries }}
Chyby: {{ analysisLive.counters.errors }}
{{ analysisSummary.avg }}%
Průměr
{{ analysisSummary.perfect }}
100%
{{ analysisSummary.good }}
80–99%
{{ analysisSummary.bad }}
< 80%
{{ analysisProjects.length }}
Projektů celkem
Filtr:
Celkem {{ analysisLive.elapsed_display }} {{ analysisLive.counters.api_calls }} API volání {{ analysisLive.counters.retries }} retry {{ analysisLive.counters.errors }} chyb {{ analysisProjects.filter(p => p.cached).length }}/{{ analysisProjects.length }} z cache {{ analysisLive.counters.bc_todolists }} todolistů / {{ analysisLive.counters.bc_todos }} úkolů {{ analysisLive.counters.bc_documents }} dokumentů {{ analysisLive.counters.bc_comments }} komentářů {{ analysisLive.counters.bc_everhour }} EH záznamů
Cleanup výsledky — {{ analysisCleanupResults.projectCount }} projektů
Žádné duplikáty nenalezeny — vše čisté ✓
Celkem {{ analysisCleanupResults.totalActions }} akcí provedeno ({{ analysisCleanupResults.errorCount }} chyb)
{{ proj.name }}
{{ proj.stats.merged_lists }} listů sloučeno {{ proj.stats.merged_todos }} úkolů sloučeno {{ proj.stats.deleted_empty_todos }} prázdných smazáno {{ proj.stats.moved_comments }} komentářů přesunuto
{{ detail }}
Live API Log {{ analysisLog.length }} ✓ {{ analysisLogStats.ok }} ✗ {{ analysisLogStats.fail }} ↻ {{ analysisLogStats.retries }} {{ analysisLogStats.avgMs }}ms avg
# Projekt Todolisty Úkoly Dokumenty Komentáře Everhour Celkem
{{ i + 1 }}
{{ p.name }} Archiv cache Chyba ({{ (p.elapsed_ms / 1000).toFixed(1) }}s) resync
{{ p.todolists.local }} / {{ p.todolists.bc }}
{{ p.todolists.local_active||0 }}a +{{ p.todolists.local_archived||0 }}ar / {{ p.todolists.bc_active||0 }}a +{{ p.todolists.bc_archived||0 }}ar
{{ p.todos.local }} / {{ p.todos.bc }}
{{ p.todos.local_active||0 }}a +{{ p.todos.local_archived||0 }}ar / {{ p.todos.bc_active||0 }}a +{{ p.todos.bc_archived||0 }}ar
{{ p.documents.local }} / {{ p.documents.bc }}
{{ p.comments?.local||0 }} / {{ p.comments?.bc||0 }}
{{ p.everhour.local }} / {{ p.everhour.bc }}
{{ p.error ? 'ERR' : (p.overall_pct + '%') }}
Žádné projekty pro tento filtr
Načítám data z Basecampu a Everhour...
Připojuji se k API — první projekt se zobrazí za moment.

Resync z analýzy — {{ analysisBulkResyncProgress.done + analysisBulkResyncProgress.failed }}/{{ analysisBulkResyncProgress.total }} projektů

{{ analysisBulkResyncProgress.done }} {{ analysisBulkResyncProgress.failed }}
{{ analysisBulkResyncProgress.currentName }} {{ analysisBulkResyncProgress.currentStep }} Krok {{ analysisBulkResyncProgress.stepsDone }}/{{ analysisBulkResyncProgress.stepsTotal }}
{{ p.name }} retry #{{ p.retryCount }}
{{ p.currentStep }}
{{ p.errors.length }} {{ p.errors.length === 1 ? 'chyba' : 'chyb' }}
URL OK {{ p.validation.total_issues }} URL
{{ p.elapsed }}s
{{ analysisBulkResyncProgress.done }} OK, {{ analysisBulkResyncProgress.failed }} chyb, {{ analysisBulkResyncLog.length }} celkem chyb

Resync z analýzy — {{ analysisCheckedCount }} {{ analysisCheckedCount === 1 ? 'projekt' : (analysisCheckedCount < 5 ? 'projekty' : 'projektů') }}

Projekty budou resyncovány postupně (první dokončí, druhý začne). Neúspěšné se automaticky znovu pokusí.

Chyby při resyncu z analýzy ({{ analysisBulkResyncLog.length }})

Čas Projekt Krok Chyba
{{ err.timestamp }} {{ err.project }} {{ err.step }} {{ err.error }}
{{ toast.message }}