From 8d9d4d6f6baaa0974455949aa6f122b02062ff89 Mon Sep 17 00:00:00 2001
From: Caesar Schinas <caesar@caesarschinas.com>
Date: Sun, 25 Dec 2022 02:35:04 -1000
Subject: [PATCH] [BRANDING] Custom loading animation for Forgejo

(cherry picked from commit a3b3b8a2dfb31f3b8000f1bfeae63ef3190c211f)
(cherry picked from commit de0fd2d2e459aec24dae1293cc1f8f04069dedac)
(cherry picked from commit e1bf4de211a92a2f4645b3f34039749456a10ea3)
(cherry picked from commit 60ffc88a47a158fe4920f05875ea8d156eecaa70)
(cherry picked from commit 7d2beea9ca4b47a29a1737b3a4d1d5486f2db1d3)
(cherry picked from commit 171eadb95225183b3c1a1dfd3a5181953868b7d2)
(cherry picked from commit 5e81f75ed2541fafb72d20911fa1db01154f8ff9)

Conflicts:
	templates/install.tmpl
	templates/post-install.tmpl
	templates/repo/migrate/migrating.tmpl
(cherry picked from commit 641c4a36c5c576d92d3dca952130542496c8c07f)
(cherry picked from commit f1dbb2dcff94bcd734309c55808470d29f497577)
(cherry picked from commit b66de5e5316b09eeaf6c3463542994293f7b2995)
(cherry picked from commit eeccdf21a11e13f796caa45c206c89d9c273bc6b)
(cherry picked from commit af37663f4d12aec35ee42769468e1e733a8bd4a0)
(cherry picked from commit ed3739dccbfdacb6e0c8408ff6a26fcac20f8eb4)
(cherry picked from commit f0036e37cf4f6e4402e2fbbe42763553399b51a8)
(cherry picked from commit 90d453898a5c6481b9b2b6fe356f0a7b3ad2eafc)
(cherry picked from commit c01154323832c57af7a84cadc4580a00bcc96e5e)
(cherry picked from commit a294f34165c4df7100589dd2b44baf60af9d14b3)
(cherry picked from commit cc00759140bc6bf3f68129ab97995c3bf01db276)
(cherry picked from commit abe6d83b85759a80d82d52faacd36e8f315d5777)
(cherry picked from commit 274d2863398cbb94f075a7532152eb9a090b504d)
(cherry picked from commit 594aaf3c95e9cf671d02a81195653e0dabb1cae9)
(cherry picked from commit 6059a376f48d96dccfaf99ff1eede2d4ba38afc5)
(cherry picked from commit 676eb49a123694beba3bed8c0f00608f80b6b03b)
(cherry picked from commit fc834fdb86e3678c3092d0e64be6ca2e0adb3a54)
(cherry picked from commit e1e89a43495612c4e9a2e57c717c2996f1ad8cce)
(cherry picked from commit 89e0d29cdb9ca413e0e31062997b9276482e5294)
(cherry picked from commit eb7fc7a27eaf7e32d53228b660dfb98049f89b4d)
(cherry picked from commit caa41ff62928df3b032234a945277bddb3c70f4f)
(cherry picked from commit a74b6adb6ae77332638fcc8325072e82ae7f0a2c)
(cherry picked from commit 4fc629b0d4c9fbc3f5933e4d5111dc67af59b393)
(cherry picked from commit 66a3fb5dcdb74c5b4d61f9aa80d14517744776f2)
(cherry picked from commit b26ec6315aa8c5ba2971affa2ac7d78fcfa4a9f4)
---
 public/assets/img/failed.png          | Bin 11009 -> 0 bytes
 public/assets/img/forgejo-loading.svg |  14 ++++++++++++++
 public/assets/img/loading.png         | Bin 12629 -> 0 bytes
 templates/install.tmpl                |   2 +-
 templates/post-install.tmpl           |   2 +-
 templates/repo/migrate/migrating.tmpl |   4 ++--
 6 files changed, 18 insertions(+), 4 deletions(-)
 delete mode 100644 public/assets/img/failed.png
 create mode 100644 public/assets/img/forgejo-loading.svg
 delete mode 100644 public/assets/img/loading.png

diff --git a/public/assets/img/failed.png b/public/assets/img/failed.png
deleted file mode 100644
index b37545f90ca3b304357516661efb9e1431fa96aa..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 11009
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

diff --git a/public/assets/img/forgejo-loading.svg b/public/assets/img/forgejo-loading.svg
new file mode 100644
index 0000000000..919552ebb5
--- /dev/null
+++ b/public/assets/img/forgejo-loading.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 212 212">
+  <style>
+    @keyframes draw-orange{0%{stroke-dashoffset:200}25%{stroke-dashoffset:200;stroke-width:0}50%{stroke-dashoffset:0;stroke-width:25}to{stroke-dashoffset:0}}@keyframes draw-red{0%{stroke-dashoffset:130;stroke-width:0}25%{stroke-dashoffset:0;stroke-width:25}50%,to{stroke-dashoffset:0}}@keyframes red-circle{0%{opacity:0}20%{opacity:0;stroke-width:0}25%{opacity:1;stroke-width:15}to{opacity:1}}@keyframes orange-circle{0%{opacity:0}45%{opacity:0;stroke-width:0}50%{opacity:1;stroke-width:15}to{opacity:1}}@keyframes fade{0%,90%{opacity:1}to{opacity:0}}circle,path{fill:none;stroke:#000;stroke-width:15}path{stroke-width:25}.orange{stroke:#f60}.red{stroke:#d40000}
+  </style>
+  <g transform="translate(6 6)">
+    <g style="animation:fade 2000ms ease-in-out 5ms infinite">
+      <path d="M58 168V70a50 50 0 0 1 50-50h20" class="orange" style="stroke-dasharray:200;stroke-dashoffset:200;animation:draw-orange 2000ms ease-out 5ms infinite"/>
+      <path d="M58 168v-30a50 50 0 0 1 50-50h20" class="red" style="stroke-dasharray:130;stroke-dashoffset:130;animation:draw-red 2000ms ease-out 5ms infinite"/>
+      <circle cx="142" cy="20" r="18" class="orange" style="opacity:0;animation:orange-circle 2000ms ease-out 5ms infinite"/>
+      <circle cx="142" cy="88" r="18" class="red" style="opacity:0;animation:red-circle 2000ms ease-out 5ms infinite"/>
+    </g>
+    <circle cx="58" cy="180" r="18" class="red"/>
+  </g>
+</svg>
diff --git a/public/assets/img/loading.png b/public/assets/img/loading.png
deleted file mode 100644
index c5ba3d9cd79960a3990d5c61fa68c98c632a1a50..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 12629
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
CkrlrH

diff --git a/templates/install.tmpl b/templates/install.tmpl
index e9b267fa1c..60d1d5fd93 100644
--- a/templates/install.tmpl
+++ b/templates/install.tmpl
@@ -347,5 +347,5 @@
 		</div>
 	</div>
 </div>
-<img class="gt-hidden" src="{{AssetUrlPrefix}}/img/loading.png">
+<img class="gt-hidden" src="{{AssetUrlPrefix}}/img/forgejo-loading.svg" width="256" height="256">
 {{template "base/footer" .}}
diff --git a/templates/post-install.tmpl b/templates/post-install.tmpl
index fb234008fb..0dbfbdc318 100644
--- a/templates/post-install.tmpl
+++ b/templates/post-install.tmpl
@@ -7,7 +7,7 @@
 					<div class="ui stackable middle very relaxed page grid">
 						<div class="sixteen wide center aligned centered column">
 							<div>
-								<img src="{{AssetUrlPrefix}}/img/loading.png" alt="{{ctx.Locale.Tr "loading"}}">
+								<img src="{{AssetUrlPrefix}}/img/forgejo-loading.svg" alt="{{ctx.Locale.Tr "loading"}}" width="256" height="256">
 							</div>
 						</div>
 					</div>
diff --git a/templates/repo/migrate/migrating.tmpl b/templates/repo/migrate/migrating.tmpl
index 649d14ad99..8921d97277 100644
--- a/templates/repo/migrate/migrating.tmpl
+++ b/templates/repo/migrate/migrating.tmpl
@@ -9,12 +9,12 @@
 					<div class="ui stackable middle very relaxed page grid">
 						<div id="repo_migrating" class="sixteen wide center aligned centered column" data-migrating-task-id="{{.MigrateTask.ID}}">
 							<div>
-								<img src="{{AssetUrlPrefix}}/img/loading.png">
+								<img src="{{AssetUrlPrefix}}/img/forgejo-loading.svg" width="256" height="256">
 							</div>
 						</div>
 						<div id="repo_migrating_failed_image" class="sixteen wide center aligned centered column gt-hidden">
 							<div>
-								<img src="{{AssetUrlPrefix}}/img/failed.png">
+								<span class="red">{{svg "octicon-git-pull-request-closed" 256 "ui red icon"}}</span>
 							</div>
 						</div>
 					</div>