From eeccdf21a11e13f796caa45c206c89d9c273bc6b 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)
---
 public/img/failed.png                 | Bin 11009 -> 0 bytes
 public/img/forgejo-loading.svg        |  14 ++++++++++++++
 public/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/img/failed.png
 create mode 100644 public/img/forgejo-loading.svg
 delete mode 100644 public/img/loading.png

diff --git a/public/img/failed.png b/public/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/img/forgejo-loading.svg b/public/img/forgejo-loading.svg
new file mode 100644
index 0000000000..919552ebb5
--- /dev/null
+++ b/public/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/img/loading.png b/public/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 2cb5ecd15d..4608c0ec8d 100644
--- a/templates/install.tmpl
+++ b/templates/install.tmpl
@@ -346,5 +346,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 7f74a4d0d2..179c741315 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 id="repo_migrating" class="sixteen wide center aligned centered column">
 							<div>
-								<img src="{{AssetUrlPrefix}}/img/loading.png">
+								<img src="{{AssetUrlPrefix}}/img/forgejo-loading.svg" width="256" height="256">
 							</div>
 						</div>
 					</div>
diff --git a/templates/repo/migrate/migrating.tmpl b/templates/repo/migrate/migrating.tmpl
index 51caa28aa1..ea2c616d8b 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" task="{{.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>