From afa1501840d73b59b73979c51f6a5e37e3c236b7 Mon Sep 17 00:00:00 2001
From: Steffen Vogel <post@steffenvogel.de>
Date: Wed, 4 Nov 2020 16:53:17 +0100
Subject: [PATCH] fix link wizard

---
 script.js          | 54 ++++++++++++++++------------------------------
 src/usage/Links.md |  2 +-
 2 files changed, 19 insertions(+), 37 deletions(-)

diff --git a/script.js b/script.js
index 1d12edd..c162a0b 100644
--- a/script.js
+++ b/script.js
@@ -12,33 +12,11 @@ function escapeHtml(unsafe) {
     .replace(/'/g, "&#039;");
 }
 
-function getProfiles() {
-    window.fetch(serviceUrl + '/profile/all', { mode: 'no-cors' })
-        .then((response) => response.json())
-        .then((json) => {
-            this.console.log(json);
-            for (const i in json.jobs) {
-                let job = json.jobs[i];
-                elm = this.document.getElementById('build-' + job.name);
-                
-                if (elm) {
-                    elm.classList.add(job.status);
-                    elm.innerText = job.status;
-                    elm.insertAdjacentHTML('afterend', '<span class="build-log">(open <a href="' + job.web_url + '">build log</a> #' + job.id + ' from ' + new Date(job.created_at).toLocaleString() + ')</span>');
-                }
-            }
-        });
+async function getProfiles() {
+    let response = await fetch(serviceUrl + '/profile/api/all');
+    let json = await response.json();
 
-    return [
-        {
-            slug: "pti",
-            display_name: "[PTI] Praktikum Technische Informatik"
-        },
-        {
-            slug: "gdet3",
-            display_name: "[GDET3] Grundgebiete der Elektrotechnik 3"
-        }
-    ]
+    return json.profiles;
 }
 
 function updateLink(event) {
@@ -46,6 +24,7 @@ function updateLink(event) {
     var filePath = document.getElementById("link-wizard-path");
     var outputDiv = document.getElementById("link-wizard-output");
     var directLink = document.getElementById("link-wizard-direct-link");
+    var badgeDiv = document.getElementById("link-wizard-badge");
     var badgePre_md = document.getElementById("link-wizard-badge-md");
     var badgePreHtml = document.getElementById("link-wizard-badge-html");
 
@@ -56,23 +35,26 @@ function updateLink(event) {
     if (profileSlug.length > 0) {
         var link = updateDirectLink(slug, path);
 
-        // Link
-        directLink.innerHTML = link;
-
-        // Badges
+        // Badge Code
         var badge_md = '[![](' + badgeURL + ')](' + link +')';
         var badgeHtml = '<a href="' + link + '"><img src="' + badgeURL + '" /></a>';
 
         badgePre_md.innerHTML = badge_md;
         badgePreHtml.innerHTML = escapeHtml(badgeHtml);
 
+        // Link
+        directLink.innerHTML = '<a href="' + link + '">' + link + '</a>';
+
+        // Badge
+        badgeDiv.innerHTML = badgeHtml
+
         outputDiv.style.display = 'block';
     }
 }
 
-function generateProfileDropdown(profilesSelect) {
+async function generateProfileDropdown(profilesSelect) {
     // Fill profiles select
-    var profiles = getProfiles();
+    let profiles = await getProfiles();
 
     for(var i = 0; i < profiles.length; i++) {
         var o = document.createElement("option");
@@ -95,8 +77,8 @@ function updateDirectLink(profileSlug, path) {
 
 function loadBuildStatus() {
     window.fetch(serviceUrl + '/profile/all')
-        .then((response) => response.json())
-        .then((json) => {
+        .then(response => response.json())
+        .then(json => {
             this.console.log(json);
             for (const i in json.jobs) {
                 let job = json.jobs[i];
@@ -203,10 +185,10 @@ function insertVersionCollapsibles() {
     }
 }
 
-window.addEventListener('load', function () {
+window.addEventListener('load', e => {
     if (window.location.pathname.endsWith('/Profiles.html')) {
-        loadBuildStatus();
         insertVersionCollapsibles();
+        loadBuildStatus();
     }
 
     if (window.location.pathname.endsWith('/Links.html')) {
diff --git a/src/usage/Links.md b/src/usage/Links.md
index 95411cd..7af78f4 100644
--- a/src/usage/Links.md
+++ b/src/usage/Links.md
@@ -25,7 +25,7 @@ You can use the following wizard to generate links and badges which open specifi
         <h3>Link</h3>
         <pre id="link-wizard-direct-link"></pre>
         <h3>Badge</h3>
-        <img src="https://jupyter.pages.rwth-aachen.de/documentation/images/badge-launch-rwth-jupyter.svg" alt="RWTHjupyter badge">
+        <div id="link-wizard-badge"><img src="https://jupyter.pages.rwth-aachen.de/documentation/images/badge-launch-rwth-jupyter.svg" alt="RWTHjupyter badge"></div>
         <h5>Markdown Snippet</h5>
         <pre id="link-wizard-badge-md"></pre>
         <h5>HTML Snippet</h5>
-- 
GitLab