mirror of
https://github.com/tdurieux/anonymous_github.git
synced 2026-05-15 14:38:03 +02:00
multiple fixes
This commit is contained in:
@@ -72,6 +72,47 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="admin-section-header" ng-if="userInfo && userInfo.isAdmin && user && user.username == userInfo.username">
|
||||
<h2><i class="fas fa-key"></i> API tokens</h2>
|
||||
<span class="section-count">{{tokens.length}}</span>
|
||||
</div>
|
||||
|
||||
<div ng-if="userInfo && userInfo.isAdmin && user && user.username == userInfo.username" class="user-detail-card">
|
||||
<p class="paper-page-lede">Personal API tokens for this admin account. Send as <code>Authorization: Bearer <token></code> to authenticate without GitHub OAuth (useful for development).</p>
|
||||
|
||||
<form ng-submit="createToken()" class="d-flex" style="gap: 8px; margin-bottom: 12px;">
|
||||
<input type="text" class="form-control" ng-model="newTokenName" placeholder="Token name (e.g. dev-laptop)" required />
|
||||
<button type="submit" class="btn btn-primary"><i class="fas fa-plus"></i> Generate</button>
|
||||
</form>
|
||||
|
||||
<div ng-if="newTokenPlaintext" class="alert alert-warning" role="alert">
|
||||
<strong>Copy this token now — it will not be shown again:</strong>
|
||||
<pre style="white-space: pre-wrap; word-break: break-all; margin: 8px 0 0; font-family: var(--font-mono); font-size: 0.85rem;">{{newTokenPlaintext}}</pre>
|
||||
<button class="btn btn-sm" ng-click="newTokenPlaintext = null">Dismiss</button>
|
||||
</div>
|
||||
|
||||
<div class="paper-table w-100" ng-if="tokens.length">
|
||||
<div class="paper-table-head" role="row" style="grid-template-columns: 1fr 200px 200px 80px;">
|
||||
<div role="columnheader">Name</div>
|
||||
<div role="columnheader">Created</div>
|
||||
<div role="columnheader">Last used</div>
|
||||
<div role="columnheader" aria-label="Actions"></div>
|
||||
</div>
|
||||
<div class="paper-table-row" role="row" ng-repeat="t in tokens" style="grid-template-columns: 1fr 200px 200px 80px;">
|
||||
<div role="cell" ng-bind="t.name"></div>
|
||||
<div role="cell" ng-bind="t.createdAt | humanTime"></div>
|
||||
<div role="cell"><span ng-if="t.lastUsedAt">{{t.lastUsedAt | humanTime}}</span><span ng-if="!t.lastUsedAt" class="text-muted">never</span></div>
|
||||
<div role="cell">
|
||||
<button class="btn btn-sm text-danger" ng-click="revokeToken(t)" title="Revoke"><i class="fas fa-trash-alt"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="paper-table-empty" ng-if="!tokens.length">
|
||||
<i class="fas fa-inbox"></i>
|
||||
<span>No tokens yet.</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="admin-section-header">
|
||||
<h2><i class="fas fa-code-branch"></i> Anonymized repositories</h2>
|
||||
<span class="section-count">{{repositories.length}}</span>
|
||||
|
||||
@@ -175,8 +175,14 @@
|
||||
<label class="form-check-label" for="notebook">Display Notebooks</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" id="page" name="page" ng-model="options.page" ng-disabled="!details.hasPage" />
|
||||
<input class="form-check-input" type="checkbox" id="page" name="page" ng-model="options.page" ng-disabled="!details.hasPage || (details.pageSource && details.pageSource.branch !== source.branch)" />
|
||||
<label class="form-check-label" for="page">GitHub Pages</label>
|
||||
<small class="form-text text-muted d-block" ng-show="!details.hasPage">
|
||||
{{ 'WARNINGS.page_not_enabled_on_repo' | translate }}
|
||||
</small>
|
||||
<small class="form-text text-muted d-block" ng-show="details.hasPage && details.pageSource && details.pageSource.branch !== source.branch">
|
||||
{{ 'WARNINGS.page_branch_mismatch' | translate:{ pageBranch: details.pageSource.branch, selectedBranch: source.branch } }}
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -264,7 +270,8 @@
|
||||
<div class="anonymize-preview-body markdown-body body" ng-bind-html="html_readme"></div>
|
||||
</div>
|
||||
|
||||
<div class="anonymize-preview-col" ng-if="detectedType === 'pr' && details">
|
||||
<div class="anonymize-preview-col" ng-if="detectedType === 'pr' && details"
|
||||
ng-init="prTabState = { active: options.diff ? 'diff' : 'comments' }">
|
||||
<div class="anonymize-preview-head">
|
||||
<span class="paper-eyebrow">Live preview</span>
|
||||
<span class="anonymize-preview-sub">Pull request with redactions applied</span>
|
||||
@@ -283,32 +290,45 @@
|
||||
<div class="pr-body shadow-sm p-3 mb-4 rounded" style="background: var(--paper-bg-alt)" ng-if="options.body">
|
||||
<markdown content="anonymizePrContent(details.pullRequest.body)" options="options" terms="terms"></markdown>
|
||||
</div>
|
||||
<ul class="nav nav-tabs" id="prTabs" role="tablist">
|
||||
<li class="nav-item" role="presentation" ng-if="options.diff">
|
||||
<button class="nav-link active" id="pills-diff-tab" data-toggle="pill" data-target="#pills-diff" type="button" role="tab">Diff</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation" ng-if="options.comments">
|
||||
<button class="nav-link" ng-class="{'active':!options.diff}" id="pills-comments-tab" data-toggle="pill" data-target="#pills-comments" type="button" role="tab">
|
||||
<ng-pluralize count="details.pullRequest.comments.length" when="{'0': 'No comment', 'one': 'One Comment', 'other': '{} Comments'}"></ng-pluralize>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content" id="pills-tabContent">
|
||||
<div class="tab-pane show active" id="pills-diff" role="tabpanel" ng-if="options.diff">
|
||||
<div class="pr-diff shadow-sm p-3 mb-4 rounded" style="background: var(--paper-bg-alt)">
|
||||
<pre style="overflow-x: auto"><code ng-bind-html="anonymizePrContent(details.pullRequest.diff) | diff"></code></pre>
|
||||
</div>
|
||||
<nav class="paper-tabs" ng-if="options.diff || options.comments" role="tablist">
|
||||
<button
|
||||
class="paper-tab"
|
||||
ng-if="options.diff"
|
||||
ng-class="{'active': prTabState.active == 'diff'}"
|
||||
ng-click="prTabState.active = 'diff'"
|
||||
type="button"
|
||||
role="tab"
|
||||
>
|
||||
<i class="fas fa-code"></i> Diff
|
||||
</button>
|
||||
<button
|
||||
class="paper-tab"
|
||||
ng-if="options.comments"
|
||||
ng-class="{'active': prTabState.active == 'comments'}"
|
||||
ng-click="prTabState.active = 'comments'"
|
||||
type="button"
|
||||
role="tab"
|
||||
>
|
||||
<i class="far fa-comment-dots"></i>
|
||||
<ng-pluralize count="details.pullRequest.comments.length" when="{'0': 'No comments', 'one': '1 comment', 'other': '{} comments'}"></ng-pluralize>
|
||||
</button>
|
||||
</nav>
|
||||
<div class="paper-tab-content">
|
||||
<div ng-if="options.diff && prTabState.active == 'diff'">
|
||||
<div class="pr-diff" ng-bind-html="anonymizePrContent(details.pullRequest.diff) | diff"></div>
|
||||
</div>
|
||||
<div class="tab-pane" ng-class="{'show active':!options.diff}" id="pills-comments" role="tabpanel" ng-if="options.comments">
|
||||
<ul class="pr-comments list-group">
|
||||
<li class="pr-comment list-group-item" ng-repeat="comment in details.pullRequest.comments">
|
||||
<div class="d-flex w-100 justify-content-between flex-wrap">
|
||||
<h5 class="mb-1" ng-if="options.username">@{{anonymizePrContent(comment.author)}}</h5>
|
||||
<small ng-bind="comment.updatedDate | date" ng-if="options.date"></small>
|
||||
<div ng-if="options.comments && prTabState.active == 'comments'">
|
||||
<ul class="pr-comments">
|
||||
<li class="pr-comment" ng-repeat="comment in details.pullRequest.comments">
|
||||
<div class="pr-comment-head">
|
||||
<span class="pr-comment-author" ng-if="options.username">
|
||||
<i class="far fa-user"></i> @<span ng-bind="anonymizePrContent(comment.author)"></span>
|
||||
</span>
|
||||
<span class="pr-comment-date" ng-if="options.date" ng-bind="comment.updatedDate | date"></span>
|
||||
</div>
|
||||
<div class="pr-comment-body" ng-if="options.body">
|
||||
<markdown content="anonymizePrContent(comment.body)" options="options" terms="terms"></markdown>
|
||||
</div>
|
||||
<p class="mb-1">
|
||||
<markdown class="pr-comment-body" ng-if="options.body" content="anonymizePrContent(comment.body)" options="options" terms="terms"></markdown>
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -186,7 +186,7 @@
|
||||
<div class="anon-text">
|
||||
<a ng-href="{{item._viewUrl}}" class="repo-name" ng-bind="item._name"></a>
|
||||
<div class="anon-sub">
|
||||
<a ng-if="item._type === 'repo'" href="https://github.com/{{item.source.fullName}}/" ng-bind="item.source.fullName"></a><span ng-if="item._type === 'repo' && item.options.update"> · <a href="https://github.com/{{item.source.fullName}}/tree/{{item.source.branch}}" ng-bind="item.source.branch"></a></span><span ng-if="item._type === 'repo' && !item.options.update"> · @<a href="https://github.com/{{item.source.fullName}}/tree/{{item.source.commit}}" ng-bind="item.source.commit.substring(0, 8)"></a></span>
|
||||
<a ng-if="item._type === 'repo'" href="https://github.com/{{item.source.fullName}}/" ng-bind="item.source.fullName"></a><span ng-if="item._type === 'repo' && item.options.update"> · <a href="https://github.com/{{item.source.fullName}}/tree/{{item.source.branch}}" ng-bind="item.source.branch"></a><span ng-if="item.source.commit"> · @<a href="https://github.com/{{item.source.fullName}}/tree/{{item.source.commit}}" ng-bind="item.source.commit.substring(0, 8)"></a></span></span><span ng-if="item._type === 'repo' && !item.options.update"> · @<a href="https://github.com/{{item.source.fullName}}/tree/{{item.source.commit}}" ng-bind="item.source.commit.substring(0, 8)"></a></span>
|
||||
<a ng-if="item._type === 'pr'" href="https://github.com/{{item.source.repositoryFullName}}/pull/{{item.source.pullRequestId}}" ng-bind="item._source"></a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -196,11 +196,14 @@
|
||||
<span class="empty-dash" ng-if="!item.conference">—</span>
|
||||
</div>
|
||||
<div class="cell-status" role="cell">
|
||||
<span
|
||||
class="status-dot"
|
||||
ng-class="{'status-removed': item.status == 'removed' || item.status == 'expired' || item.status == 'removing' || item.status == 'expiring', 'status-preparing': item.status == 'preparing' || item.status == 'download', 'status-ready': item.status == 'ready', 'status-error': item.status == 'error'}"
|
||||
></span>
|
||||
<span ng-bind="item.status | title"></span>
|
||||
<div class="status-line">
|
||||
<span
|
||||
class="status-dot"
|
||||
ng-class="{'status-removed': item.status == 'removed' || item.status == 'expired' || item.status == 'removing' || item.status == 'expiring', 'status-preparing': item.status == 'preparing' || item.status == 'download', 'status-ready': item.status == 'ready', 'status-error': item.status == 'error'}"
|
||||
></span>
|
||||
<span ng-bind="item.status | title"></span>
|
||||
</div>
|
||||
<div class="status-sub" ng-if="item.anonymizeDate" title="Last anonymized {{item.anonymizeDate | humanTime}}" ng-bind="item.anonymizeDate | humanTime"></div>
|
||||
</div>
|
||||
<div class="cell-views num" role="cell" ng-bind="item.pageView | number"></div>
|
||||
<div class="cell-expires" role="cell">
|
||||
|
||||
@@ -13,6 +13,14 @@
|
||||
ng-show="files.length"
|
||||
ng-class="{'collapsed': sidebarCollapsed}"
|
||||
>
|
||||
<div
|
||||
ng-if="options.truncatedFolders.length > 0"
|
||||
class="alert alert-warning small p-2 mb-2"
|
||||
role="alert"
|
||||
>
|
||||
<i class="fas fa-exclamation-triangle"></i>
|
||||
{{ 'WARNINGS.repo_truncated' | translate }}
|
||||
</div>
|
||||
<tree class="files" file="files"></tree>
|
||||
<div class="bottom column">
|
||||
<div
|
||||
|
||||
+80
-105
@@ -1,112 +1,87 @@
|
||||
<div class="container-fluid h-100">
|
||||
<div class="row h-100">
|
||||
<div class="col-md h-100 overflow-auto p-0 d-flex flex-column">
|
||||
<div class="d-flex align-content-between status-bar shadow">
|
||||
<div class="last-update">
|
||||
Anonymization Date: {{details.anonymizeDate|date}}
|
||||
</div>
|
||||
<div class="pr-page" ng-init="tabState = { active: (details && details.diff) ? 'diff' : 'comments' }">
|
||||
<div class="container paper-page pr-page-inner">
|
||||
<div class="paper-crumbs">
|
||||
<a href="/dashboard">Reviewer</a> /
|
||||
<span class="here">Pull request</span>
|
||||
</div>
|
||||
|
||||
<header class="pr-header">
|
||||
<h1 class="paper-page-title pr-title">
|
||||
<span ng-if="details.title" ng-bind="details.title"></span>
|
||||
<span ng-if="!details.title" class="text-muted">Untitled pull request</span>
|
||||
</h1>
|
||||
<div class="pr-header-meta">
|
||||
<span class="paper-pill" ng-class="{'good': details.merged, 'warn': details.state == 'open', 'bad': details.state == 'closed' && !details.merged}">
|
||||
<span class="status-dot" ng-class="{'status-ready': details.merged, 'status-error': details.state == 'closed' && !details.merged}"></span>
|
||||
{{ details.merged ? 'Merged' : (details.state | title) }}
|
||||
</span>
|
||||
<span class="pr-meta-item" ng-if="details.baseRepositoryFullName">
|
||||
<i class="fab fa-github"></i> <span ng-bind="details.baseRepositoryFullName"></span>
|
||||
</span>
|
||||
<span class="pr-meta-item" ng-if="details.updatedDate">
|
||||
<i class="far fa-clock"></i> <span ng-bind="details.updatedDate | date"></span>
|
||||
</span>
|
||||
<span class="pr-meta-item" ng-if="details.anonymizeDate">
|
||||
<i class="fas fa-user-secret"></i> Anonymized <span ng-bind="details.anonymizeDate | date"></span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="overflow-auto paper-page" style="padding-top: 18px;">
|
||||
<div class="paper-crumbs">Reviewer / <span class="here">Pull request</span></div>
|
||||
<div class="d-flex w-100 justify-content-between align-items-end flex-wrap" style="gap: 12px;">
|
||||
<h1 class="paper-page-title pr-title" style="margin: 6px 0;">
|
||||
<span ng-if="details.title">{{details.title}}</span>
|
||||
<span class="paper-pill" ng-class="{'good':details.merged, 'warn':details.state=='open', 'bad':details.state=='closed' && !details.merged}">
|
||||
{{details.merged?"merged":details.state | title}}
|
||||
</span>
|
||||
</h1>
|
||||
<small class="paper-pill" ng-if="details.updatedDate" ng-bind="details.updatedDate | date"></small>
|
||||
</div>
|
||||
<div class="paper-meta-rule" ng-if="details.baseRepositoryFullName">
|
||||
<span>on <b>{{details.baseRepositoryFullName}}</b></span>
|
||||
</div>
|
||||
<div
|
||||
class="pr-body shadow-sm p-3 mb-4 rounded border"
|
||||
ng-if="details.body"
|
||||
>
|
||||
<markdown content="details.body"></markdown>
|
||||
</div>
|
||||
<ul class="nav nav-tabs" id="myTab" role="tablist">
|
||||
<li class="nav-item" role="presentation" ng-if="details.diff">
|
||||
<button
|
||||
class="nav-link active"
|
||||
id="pills-diff-tab"
|
||||
data-toggle="pill"
|
||||
data-target="#pills-diff"
|
||||
type="button"
|
||||
role="tab"
|
||||
aria-controls="pills-diff"
|
||||
aria-selected="true"
|
||||
>
|
||||
Diff
|
||||
</button>
|
||||
</header>
|
||||
|
||||
<section class="pr-body-card" ng-if="details.body">
|
||||
<div class="paper-section-eyebrow">Description</div>
|
||||
<markdown content="details.body"></markdown>
|
||||
</section>
|
||||
|
||||
<nav class="paper-tabs" ng-if="details.diff || details.comments" role="tablist">
|
||||
<button
|
||||
class="paper-tab"
|
||||
ng-if="details.diff"
|
||||
ng-class="{'active': tabState.active == 'diff'}"
|
||||
ng-click="tabState.active = 'diff'"
|
||||
type="button"
|
||||
role="tab"
|
||||
>
|
||||
<i class="fas fa-code"></i> Diff
|
||||
</button>
|
||||
<button
|
||||
class="paper-tab"
|
||||
ng-if="details.comments"
|
||||
ng-class="{'active': tabState.active == 'comments'}"
|
||||
ng-click="tabState.active = 'comments'"
|
||||
type="button"
|
||||
role="tab"
|
||||
>
|
||||
<i class="far fa-comment-dots"></i>
|
||||
<ng-pluralize
|
||||
count="details.comments.length"
|
||||
when="{'0': 'No comments', 'one': '1 comment', 'other': '{} comments'}"
|
||||
></ng-pluralize>
|
||||
</button>
|
||||
</nav>
|
||||
|
||||
<div class="paper-tab-content">
|
||||
<div ng-if="details.diff && tabState.active =='diff'">
|
||||
<div class="pr-diff" ng-bind-html="details.diff | diff"></div>
|
||||
</div>
|
||||
|
||||
<div ng-if="details.comments && tabState.active =='comments'">
|
||||
<ul class="pr-comments">
|
||||
<li class="pr-comment" ng-repeat="comment in details.comments">
|
||||
<div class="pr-comment-head">
|
||||
<span class="pr-comment-author" ng-if="comment.author">
|
||||
<i class="far fa-user"></i> @<span ng-bind="comment.author"></span>
|
||||
</span>
|
||||
<span class="pr-comment-date" ng-if="comment.updatedDate" ng-bind="comment.updatedDate | date"></span>
|
||||
</div>
|
||||
<div class="pr-comment-body" ng-if="comment.body">
|
||||
<markdown content="comment.body"></markdown>
|
||||
</div>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation" ng-if="details.comments">
|
||||
<button
|
||||
class="nav-link"
|
||||
ng-class="{'active':!details.diff}"
|
||||
id="pills-comments-tab"
|
||||
data-toggle="pill"
|
||||
data-target="#pills-comments"
|
||||
type="button"
|
||||
role="tab"
|
||||
aria-controls="pills-comments"
|
||||
aria-selected="false"
|
||||
>
|
||||
<ng-pluralize
|
||||
count="details.comments.length"
|
||||
when="{'0': 'No comment',
|
||||
'one': 'One Comment',
|
||||
'other': '{} Comments'}"
|
||||
>
|
||||
</ng-pluralize>
|
||||
</button>
|
||||
<li class="paper-table-empty" ng-if="!details.comments.length">
|
||||
<i class="far fa-comment-dots"></i>
|
||||
<span>No comments on this pull request.</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content" id="pills-tabContent">
|
||||
<div
|
||||
class="tab-pane show active"
|
||||
id="pills-diff"
|
||||
role="tabpanel"
|
||||
aria-labelledby="pills-diff-tab"
|
||||
ng-if="details.diff"
|
||||
>
|
||||
<div class="pr-diff shadow-sm p-3 mb-5 bg-white rounded">
|
||||
<pre><code ng-bind-html="details.diff | diff"></code></pre>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="tab-pane"
|
||||
ng-class="{'show active':!details.diff}"
|
||||
id="pills-comments"
|
||||
role="tabpanel"
|
||||
aria-labelledby="pills-comments-tab"
|
||||
ng-if="details.comments"
|
||||
>
|
||||
<ul class="pr-comments list-group">
|
||||
<li
|
||||
class="pr-comment list-group-item"
|
||||
ng-repeat="comment in details.comments"
|
||||
>
|
||||
<div class="d-flex w-100 justify-content-between">
|
||||
<h5 class="mb-1" ng-if="comment.author">
|
||||
@{{comment.author}}
|
||||
</h5>
|
||||
<small
|
||||
ng-bind="comment.updatedDate | date"
|
||||
ng-if="comment.updatedDate"
|
||||
></small>
|
||||
</div>
|
||||
<p class="mb-1" ng-if="comment.body">
|
||||
<markdown
|
||||
class="pr-comment-body"
|
||||
content="comment.body"
|
||||
></markdown>
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+88
-118
@@ -1,137 +1,107 @@
|
||||
<div class="container paper-page">
|
||||
<div class="paper-crumbs">Anonymization / <span class="here">Status</span></div>
|
||||
<h1 class="paper-page-title">Status of <em>{{repoId}}</em></h1>
|
||||
<p class="paper-page-lede">Track progress as your anonymization is prepared.</p>
|
||||
<div class="paper-meta-rule"></div>
|
||||
<div class="d-flex align-items-end justify-content-between flex-wrap" style="gap: 12px;">
|
||||
<div>
|
||||
<h1 class="paper-page-title">Status of <em>{{repoId}}</em></h1>
|
||||
<p class="paper-page-lede">Track progress as your anonymization is prepared.</p>
|
||||
</div>
|
||||
<span class="status-pill" ng-class="{'status-pill-ready': repo.status == 'ready', 'status-pill-error': repo.status == 'error', 'status-pill-removed': repo.status == 'removed' || repo.status == 'expired'}">
|
||||
<span class="status-dot" ng-class="{'status-ready': repo.status == 'ready', 'status-error': repo.status == 'error', 'status-removed': repo.status == 'removed' || repo.status == 'expired'}"></span>
|
||||
<span ng-bind="repo.status | title"></span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<section class="py-4">
|
||||
<section class="paper-settings-section">
|
||||
<div class="paper-section-eyebrow">Progress</div>
|
||||
|
||||
<p>
|
||||
The current status of your repository. The repository will take few
|
||||
minutes to get ready depending on the size of the repository. Visit the
|
||||
<a href="/faq">FAQ</a> for more information.
|
||||
<p class="paper-section-copy">
|
||||
The repository will take a few minutes to get ready, depending on its
|
||||
size. Visit the <a href="/faq">FAQ</a> for more information.
|
||||
</p>
|
||||
|
||||
<div class="progress" style="height: 25px">
|
||||
<div
|
||||
class="progress-bar"
|
||||
role="progressbar"
|
||||
style="width: {{progress}}%;"
|
||||
aria-valuenow="{{progress}}"
|
||||
aria-valuemin="0"
|
||||
aria-valuemax="100"
|
||||
>
|
||||
<span>
|
||||
{{repo.status | title}}
|
||||
<span ng-if="repo.statusMessage"
|
||||
>: {{repo.statusMessage | title}}</span
|
||||
>
|
||||
</span>
|
||||
<div class="paper-progress" ng-if="repo.status != 'error'" role="progressbar" aria-valuenow="{{progress}}" aria-valuemin="0" aria-valuemax="100" ng-class="{'paper-progress-ready': repo.status == 'ready'}">
|
||||
<div class="paper-progress-bar" style="width: {{progress}}%;"></div>
|
||||
<div class="paper-progress-label">
|
||||
<span ng-bind="repo.status | title"></span><span ng-if="repo.statusMessage"> · <span ng-bind="repo.statusMessage"></span></span>
|
||||
<span class="paper-progress-pct">{{progress || 0}}%</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Your repository will be available at
|
||||
<a href="/r/{{repoId}}/" target="__self">/r/{{repoId}}/</a>.
|
||||
</p>
|
||||
<p ng-if="repo.options.page">
|
||||
Your GitHub Page will be available at
|
||||
<a href="/w/{{repoId}}/" target="__self">/w/{{repoId}}/</a>.
|
||||
</p>
|
||||
<div class="paper-error-card" ng-if="repo.status == 'error'" role="alert">
|
||||
<div class="paper-error-head">
|
||||
<i class="fas fa-exclamation-triangle"></i>
|
||||
<div>
|
||||
<div class="paper-error-eyebrow">Anonymization failed</div>
|
||||
<div class="paper-error-title">Something went wrong while preparing this repository.</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="paper-error-msg" ng-if="repo.statusMessage">{{ 'ERRORS.' + repo.statusMessage | translate }}</p>
|
||||
<p class="paper-error-msg" ng-if="!repo.statusMessage">No additional details were reported. The most common causes are private repositories, missing branches, and rate limits.</p>
|
||||
<ul class="paper-error-hints">
|
||||
<li>Make sure the source URL points to a repository or pull request you can access.</li>
|
||||
<li>Check that the chosen branch and commit still exist on GitHub.</li>
|
||||
<li>If you just signed in, the access token may need a moment to propagate — try again.</li>
|
||||
</ul>
|
||||
<div class="paper-error-actions">
|
||||
<a class="btn btn-ink" ng-href="/anonymize/{{repoId}}"><i class="far fa-edit mr-1"></i> Edit anonymization</a>
|
||||
<a class="btn" href="/faq"><i class="far fa-question-circle mr-1"></i> Read the FAQ</a>
|
||||
<a class="btn" href="https://github.com/tdurieux/anonymous_github/issues/new" target="_blank" rel="noopener"><i class="fab fa-github mr-1"></i> Report an issue</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="text-center">
|
||||
<a
|
||||
class="btn btn-ink"
|
||||
href="/r/{{repoId}}/"
|
||||
target="__self"
|
||||
ng-if="repo.status == 'ready'"
|
||||
>Go to the anonymized repository</a
|
||||
>
|
||||
<a
|
||||
class="btn"
|
||||
href="/w/{{repoId}}/"
|
||||
target="__self"
|
||||
ng-if="repo.options.page && repo.status == 'ready'"
|
||||
>Go to the anonymized Github page</a
|
||||
>
|
||||
</p>
|
||||
<div class="paper-detail-grid">
|
||||
<div class="detail-label">Repository</div>
|
||||
<div class="detail-value">
|
||||
<a href="/r/{{repoId}}/" target="__self">/r/{{repoId}}/</a>
|
||||
</div>
|
||||
<div class="detail-label" ng-if="repo.options.page">GitHub Page</div>
|
||||
<div class="detail-value" ng-if="repo.options.page">
|
||||
<a href="/w/{{repoId}}/" target="__self">/w/{{repoId}}/</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="anonymize-submit-bar" ng-if="repo.status == 'ready'">
|
||||
<a class="btn btn-ink" href="/r/{{repoId}}/" target="__self">
|
||||
<i class="far fa-eye mr-1"></i> Go to anonymized repository
|
||||
</a>
|
||||
<a class="btn" href="/w/{{repoId}}/" target="__self" ng-if="repo.options.page">
|
||||
<i class="fas fa-globe mr-1"></i> Go to anonymized GitHub page
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="py-4">
|
||||
<section class="paper-settings-section">
|
||||
<div class="paper-section-eyebrow">Support Anonymous GitHub</div>
|
||||
<p class="paper-section-copy">
|
||||
A small team keeps this running. If it helps you, please consider
|
||||
contributing back — in code, ideas, or coffee.
|
||||
</p>
|
||||
|
||||
<iframe
|
||||
id="kofiframe"
|
||||
src="https://ko-fi.com/tdurieux/?hidefeed=true&widget=true&embed=true&preview=true"
|
||||
style="border: none; width: 100%"
|
||||
height="650"
|
||||
title="tdurieux"
|
||||
></iframe>
|
||||
<div class="paper-support-grid">
|
||||
<a class="paper-support-card" href="https://github.com/tdurieux/anonymous_github/" target="_blank" rel="noopener">
|
||||
<div class="paper-support-eyebrow"><i class="fas fa-code-branch"></i> Contribute</div>
|
||||
<p>Collaborate by implementing new features and fixing bugs. Help with new file formats or deployment is welcome.</p>
|
||||
<span class="paper-support-cta">Open on GitHub <i class="fas fa-arrow-right"></i></span>
|
||||
</a>
|
||||
<a class="paper-support-card" href="https://github.com/tdurieux/anonymous_github/issues/new" target="_blank" rel="noopener">
|
||||
<div class="paper-support-eyebrow"><i class="far fa-comment-dots"></i> Feedback</div>
|
||||
<p>Tell us about bugs and missing features. Your feedback shapes the project's priorities.</p>
|
||||
<span class="paper-support-cta">File an issue <i class="fas fa-arrow-right"></i></span>
|
||||
</a>
|
||||
<a class="paper-support-card" href="https://github.com/sponsors/tdurieux/" target="_blank" rel="noopener">
|
||||
<div class="paper-support-eyebrow"><i class="fas fa-heart"></i> Sponsor</div>
|
||||
<p>Server costs hover around $25 a month. Any contribution helps keep the lights on.</p>
|
||||
<span class="paper-support-cta">GitHub Sponsors <i class="fas fa-arrow-right"></i></span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="row text-center">
|
||||
<div class="col-lg-4">
|
||||
<i class="rounded-circle fa fa-edit"></i>
|
||||
|
||||
<h2>Contribute</h2>
|
||||
<p>
|
||||
Collaborate to the Anonymous GitHub by implementing new features and
|
||||
fixing bugs. Contribution likes supporting new file format or
|
||||
improving the deployment are more than welcome.
|
||||
</p>
|
||||
<p>
|
||||
<a
|
||||
class="btn btn-secondary"
|
||||
href="https://github.com/tdurieux/anonymous_github/"
|
||||
target="__self"
|
||||
>Go to GitHub »</a
|
||||
>
|
||||
</p>
|
||||
</div>
|
||||
<!-- /.col-lg-4 -->
|
||||
<div class="col-lg-4">
|
||||
<i class="rounded-circle fa fa-comments"></i>
|
||||
|
||||
<h2>Feedback</h2>
|
||||
<p>
|
||||
Feedback is also really valuable for the project. It helps to project
|
||||
to identify bugs, missing feature and define priorities for the
|
||||
project.
|
||||
</p>
|
||||
<p>
|
||||
<a
|
||||
class="btn btn-secondary"
|
||||
href="https://github.com/tdurieux/anonymous_github/issues/new"
|
||||
target="__self"
|
||||
>Create an issue »</a
|
||||
>
|
||||
</p>
|
||||
</div>
|
||||
<!-- /.col-lg-4 -->
|
||||
<div class="col-lg-4">
|
||||
<i class="rounded-circle fa fa-dollar-sign"></i>
|
||||
|
||||
<h2>Finance</h2>
|
||||
<p>
|
||||
You can also help the project by supporting financially the project.
|
||||
The server costs around 25$ per month. Any help to support the cost
|
||||
would be gladly appreciated.
|
||||
</p>
|
||||
<p>
|
||||
<a
|
||||
class="btn btn-secondary"
|
||||
href="https://github.com/sponsors/tdurieux/"
|
||||
target="__self"
|
||||
>GitHub Sponsor »</a
|
||||
>
|
||||
<a
|
||||
class="btn btn-secondary"
|
||||
href="https://ko-fi.com/tdurieux"
|
||||
target="__self"
|
||||
>Ko-fi »</a
|
||||
>
|
||||
</p>
|
||||
</div>
|
||||
<div class="paper-kofi-wrap">
|
||||
<iframe
|
||||
id="kofiframe"
|
||||
src="https://ko-fi.com/tdurieux/?hidefeed=true&widget=true&embed=true&preview=true"
|
||||
title="tdurieux"
|
||||
loading="lazy"
|
||||
></iframe>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user