No images in this repository’s iceberg at this time
Download raw (8.2 KB)
<!DOCTYPE HTML> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Contour</title> <link rel="stylesheet" href="https://semestriel.framapad.org/p/9f7m-osp-website-css/export/txt" type="text/css" media="all" charset="utf-8"> <style> .tree:before { content: "█"; } img { max-width: 200px; max-height: 200px; } </style> </head> <body> <h1>Contour</h1> <h2>File history</h2> <div id="file_history"></div> <h2>Tree</h2> <ul id="tree"></ul> <h2>BLOB</h2> <div id="blob"></div> <h2>ICEBERG</h2> <div id="iceberg"></div> <h2>Commits</h2> <ul id="commits"></ul> <script type="text/javascript" charset="utf-8"> var gitlab_url = "http://gitlab.constantvzw.org"; var user_name = "osp"; var project_name = "work.contour"; var this_url = new URL(window.location.href); // DIFF: SHOWS ALL VERSIONS OF ONE PICTURE //////////////////////////////////// const file_elt = document.querySelector('#file_history'); const file_path = 'communication%2Fbanners%2Fbanner-eflux.png'; const file_commits_url = "https://gitlab.constantvzw.org/api/v4/projects/456/repository/commits?path=" + file_path; fetch(file_commits_url) .then((resp) => resp.json()) .then(function(data){ return data.map(function(file) { blob_id = file.id; const commit_url = "https://gitlab.constantvzw.org/api/v4/projects/456/repository/files/" + file_path + "?ref=" + blob_id; fetch(commit_url) .then((resp) => resp.json()) .then(function(data){ let img = document.createElement('img'); img.src = 'data:image/jpeg;base64,' + data['content']; file_elt.appendChild(img); }); }); }); // BLOB ////////////////////////////////////// var blob = this_url.searchParams.get("blob"); var path = this_url.searchParams.get("path"); if (blob){ var blob_url = "https://gitlab.constantvzw.org/api/v4/projects/456/repository/blobs/" + blob + "/raw"; const blob_elt = document.querySelector('#blob'); fetch(blob_url) .then((resp) => resp.blob()) .then(function(data){ var mime = data["type"]; // if PNG, JPG, or GIF if(mime == "image/png" | mime == "image/jpg" | mime == "image/gif") { let img = document.createElement('img'); img.src = blob_url; blob_elt.appendChild(img); } // if TXT, SVG, code... else if (mime == "text/plain" | mime == "image/svg+xml") { var reader = new FileReader(); reader.onloadend=function(){ blob_elt.innerHTML = reader.result; }; reader.readAsText(data); } // DOWNLOAD RAW FILE let raw = document.createElement('a'); project_path = [gitlab_url, user_name, project_name].join('/'); raw.href = project_path + "/raw/master/" + path; raw.innerHTML = 'Download raw file.'; raw.download = name; raw.target = '_blank'; blob_elt.appendChild(raw); }) } // TREE //////////////////////////////////////////////////// // IF WE'RE LOOKING AT A BLOB, OUTPUTS THE CURRENT TREE if (blob) { var path = this_url.searchParams.get("path"); path = path.split('/').slice(0, -1).join('/'); } else { var path = this_url.searchParams.get("path"); } const tree_elt = document.querySelector('#tree'); if(path) { // IF SUBFOLDER var tree_url = "https://gitlab.constantvzw.org/api/v4/projects/456/repository/tree?path=" + path; // BREADCRUMB let breadcrumb = document.createElement('h3'); breadcrumb.innerHTML = "You're visiting: " + path; tree_elt.appendChild(breadcrumb); // LINK TO PREVIOUS FOLDER previous_path = path.split('/').slice(0, -1).join('/'); let li = document.createElement('li'); li.innerHTML = "<a href='?path=" + previous_path + "'>..</a>"; tree_elt.appendChild(li); } // IF ROOT FOLDER else { var tree_url = "https://gitlab.constantvzw.org/api/v4/projects/456/repository/tree"; } fetch(tree_url) .then((resp) => resp.json()) .then(function(data){ return data.map(function(file) { let li = document.createElement('li'); li.classList.add(file.type); if (file.type == 'tree') { li.innerHTML = "<a href='?path=" + file.path + "' >" + file.name + "</a>"; } else { li.innerHTML = "<a href='?path=" + file.path + "&blob=" + file.id + "' >" + file.name + "</a>"; } tree_elt.appendChild(li); // ICEBERG //if (file.name == "iceberg"){ // iceberg = fil4.id; // const iceberg_elt = document.querySelector('#iceberg'); // const iceberg_url = "https://gitlab.constantvzw.org/api/v4/projects/456/repository/tree/?path=iceberg"; // fetch(iceberg_url) // .then((resp) => resp.json()) // .then(function(data){ // return data.map(function(iceberg) { // let img = document.createElement('img'); // img.src = "https://gitlab.constantvzw.org/osp/work.contour/raw/master/" + iceberg.path; // iceberg_elt.appendChild(img); // }); // }) //} }) }) .catch(function(error) { console.log(JSON.stringify(error)); }); // END TREE // COMMITS /////////////////////////////// let commits_url = "https://gitlab.constantvzw.org/api/v4/projects/456/repository/commits?per_page=100"; let page = 1; var pages; function getAllCommits(){ const commits_elt = document.querySelector('#commits'); commits_url = "https://gitlab.constantvzw.org/api/v4/projects/456/repository/commits?per_page=100&page=" + page; fetch(commits_url) .then(function(resp){ pages = resp.headers.get("X-Total-Pages"); return resp.json(); }) .then(function(data){ return data.map(function(commit) { let li = document.createElement('li'), time = document.createElement('time'), msg = document.createElement('p'), author = document.createElement('p'); msg.classList.add("msg"); author.classList.add("author"); time.innerHTML = commit.created_at; msg.innerHTML = commit.message; author.innerHTML = commit.author_name; li.appendChild(time); li.appendChild(msg); li.appendChild(author); commits_elt.appendChild(li); }) }) .then(function(){ if (page < pages){ page += 1; commits_url = "https://gitlab.constantvzw.org/api/v4/projects/456/repository/commits?per_page=100&page=" + page; getAllCommits(); } }) //.catch(function(error) { // console.log(JSON.stringify(error)); //}); } getAllCommits(); // END COMMITS </script> <script type="text/javascript" charset="utf-8" src="pad.js"> </script> </body> </html>