diff --git a/assets/scripts/core/index.js b/assets/scripts/core/index.js
index 0ce9c17..d92a24a 100644
--- a/assets/scripts/core/index.js
+++ b/assets/scripts/core/index.js
@@ -1 +1,2 @@
export * from './device';
+export * from './insertScript';
diff --git a/assets/scripts/core/insertScript.js b/assets/scripts/core/insertScript.js
new file mode 100644
index 0000000..f97c9df
--- /dev/null
+++ b/assets/scripts/core/insertScript.js
@@ -0,0 +1,14 @@
+export const insertScript = (id, src, onload) => {
+ // script is already inserted, do nothing
+ if (document.getElementById(id)) return;
+
+ // insert script
+ const firstScriptTag = document.getElementsByTagName('script')[0];
+ const scriptTag = document.createElement('script');
+ scriptTag.id = id;
+ scriptTag.onload = onload;
+ scriptTag.src = src;
+ scriptTag.defer = true;
+ scriptTag.async = true;
+ firstScriptTag.parentNode.insertBefore(scriptTag, firstScriptTag);
+};
diff --git a/assets/scripts/sections/achievements.js b/assets/scripts/sections/achievements.js
new file mode 100644
index 0000000..7aa0ddc
--- /dev/null
+++ b/assets/scripts/sections/achievements.js
@@ -0,0 +1,218 @@
+function fourColumRow(gallery, entries, i) {
+ let entry1 = document.createElement("div");
+ entry1.classList.add("col-lg-6", "m-0", "p-0");
+ entry1.appendChild(entries[i].cloneNode(true));
+ entry1.children[0].classList.add("img-type-1");
+ gallery.appendChild(entry1);
+ i++;
+
+ let entry2 = document.createElement("div");
+ entry2.classList.add("col-lg-3", "m-0", "p-0");
+ entry2.appendChild(entries[i].cloneNode(true));
+ entry2.children[0].classList.add("img-type-1");
+ gallery.appendChild(entry2);
+ i++;
+
+ let entry3 = document.createElement("div");
+ entry3.classList.add("col-lg-3", "m-0", "p-0");
+ entry3.appendChild(entries[i].cloneNode(true));
+ entry3.children[0].classList.add("img-type-2");
+ i++;
+ entry3.appendChild(entries[i].cloneNode(true));
+ entry3.children[1].classList.add("img-type-2");
+ gallery.appendChild(entry3);
+ i++;
+}
+
+function fourColumnReversedRow(gallery, entries, i) {
+ let entry1 = document.createElement("div");
+ entry1.classList.add("col-lg-3", "m-0", "p-0");
+ entry1.appendChild(entries[i].cloneNode(true));
+ entry1.children[0].classList.add("img-type-2");
+ i++;
+ entry1.appendChild(entries[i].cloneNode(true));
+ entry1.children[1].classList.add("img-type-2");
+ gallery.appendChild(entry1);
+ i++;
+
+ let entry2 = document.createElement("div");
+ entry2.classList.add("col-lg-3", "m-0", "p-0");
+ entry2.appendChild(entries[i].cloneNode(true));
+ entry2.children[0].classList.add("img-type-1");
+ gallery.appendChild(entry2);
+ i++;
+
+ let entry3 = document.createElement("div");
+ entry3.classList.add("col-lg-6", "m-0", "p-0");
+ entry3.appendChild(entries[i].cloneNode(true));
+ entry3.children[0].classList.add("img-type-1");
+ gallery.appendChild(entry3);
+ i++;
+}
+
+function threeColumnRow(gallery, entries, i) {
+ console.log(i);
+ let entry1 = document.createElement("div");
+ entry1.classList.add("col-lg-6", "col-md-6", "m-0", "p-0");
+ entry1.appendChild(entries[i].cloneNode(true));
+ entry1.children[0].classList.add("img-type-1");
+ gallery.appendChild(entry1);
+ i++;
+
+ let entry2 = document.createElement("div");
+ entry2.classList.add("col-lg-3", "col-md-3", "m-0", "p-0");
+ entry2.appendChild(entries[i].cloneNode(true));
+ entry2.children[0].classList.add("img-type-1");
+ gallery.appendChild(entry2);
+ i++;
+
+ let entry3 = document.createElement("div");
+ entry3.classList.add("col-lg-3", "col-md-3", "m-0", "p-0");
+ entry3.appendChild(entries[i].cloneNode(true));
+ entry3.children[0].classList.add("img-type-1");
+ gallery.appendChild(entry3);
+ i++;
+}
+
+function threeColumnReversedRow(gallery, entries, i) {
+ let entry1 = document.createElement("div");
+ entry1.classList.add("col-lg-3", "col-md-3", "m-0", "p-0");
+ entry1.appendChild(entries[i].cloneNode(true));
+ entry1.children[0].classList.add("img-type-1");
+ gallery.appendChild(entry1);
+ i++;
+
+ let entry2 = document.createElement("div");
+ entry2.classList.add("col-lg-3", "col-md-3", "m-0", "p-0");
+ entry2.appendChild(entries[i].cloneNode(true));
+ entry2.children[0].classList.add("img-type-1");
+ gallery.appendChild(entry2);
+ i++;
+
+ let entry3 = document.createElement("div");
+ entry3.classList.add("col-lg-6", "col-md-3", "m-0", "p-0");
+ entry3.appendChild(entries[i].cloneNode(true));
+ entry3.children[0].classList.add("img-type-1");
+ gallery.appendChild(entry3);
+ i++;
+}
+
+function twoColumnRow(gallery, entries, i) {
+ let entry1 = document.createElement("div");
+ entry1.classList.add("col-6", "m-0", "p-0");
+ entry1.appendChild(entries[i].cloneNode(true));
+ entry1.children[0].classList.add("img-type-1");
+ gallery.appendChild(entry1);
+ i++;
+
+ let entry2 = document.createElement("div");
+ entry2.classList.add("col-6", "m-0", "p-0");
+ entry2.appendChild(entries[i].cloneNode(true));
+ entry2.children[0].classList.add("img-type-1");
+ gallery.appendChild(entry2);
+ i++;
+}
+
+function singleColumnRow(gallery, entries, i) {
+ let entry1 = document.createElement("div");
+ entry1.classList.add("col-12", "m-0", "p-0");
+ entry1.appendChild(entries[i].cloneNode(true));
+ entry1.children[0].classList.add("img-type-1");
+ gallery.appendChild(entry1);
+ i++;
+}
+
+function showAchievements() {
+ // show achievements from achievements-holder div
+ let gallery = document.getElementById("gallery");
+ if (gallery == null) {
+ return
+ }
+ gallery.innerHTML = "";
+ const entries = document.getElementById("achievements-holder").children;
+ let len = entries.length;
+ let i = 0;
+ let rowNumber = 1;
+ while (i < len) {
+ if (isLaptop) {
+ if (i + 4 <= len) {
+ if (rowNumber % 2) {
+ fourColumRow(gallery, entries, i);
+ } else {
+ fourColumnReversedRow(gallery, entries, i);
+ }
+ i += 4;
+
+ } else if (i + 3 <= len) {
+ if (rowNumber % 2) {
+ threeColumnRow(gallery, entries, i);
+ } else {
+ threeColumnReversedRow(gallery, entries, i);
+ }
+ i += 3;
+ } else if (i + 2 <= len) {
+ twoColumnRow(gallery, entries, i);
+ i += 2;
+ } else {
+ singleColumnRow(gallery, entries, i);
+ i++;
+ }
+ } else if (isTablet) {
+ if (i + 2 <= len) {
+ twoColumnRow(gallery, entries, i);
+ i += 2;
+ } else {
+ singleColumnRow(gallery, entries, i);
+ i++;
+ }
+ } else {
+ singleColumnRow(gallery, entries, i);
+ i++;
+ }
+ rowNumber++;
+ }
+
+ // show full image on click
+ let elements = document.getElementsByClassName("achievement-entry");
+ len = elements.length;
+ for (let i = 0; i < len; i++) {
+ elements[i].onclick = function () {
+ let achievements = document.getElementsByClassName("achievement-entry");
+ let len2 = achievements.length;
+ for (let j = 0; j < len2; j++) {
+ achievements[j].classList.toggle("hidden");
+ }
+ this.classList.toggle("achievement-details");
+ this.classList.toggle("hidden");
+ this.parentElement.classList.toggle("col-lg-12");
+ this.parentElement.classList.toggle("col-md-12");
+ this.parentElement.classList.toggle("col-sm-12");
+ if (this.children["SmallImage"].hasAttribute("active")) {
+ let mainLogo = this.children["LargeImage"].getAttribute("Style");
+ this.children["LargeImage"].setAttribute("active", true);
+ this.children["SmallImage"].removeAttribute("active");
+
+ this.setAttribute("Style", mainLogo);
+ } else {
+ let mainLogo = this.children["SmallImage"].getAttribute("Style");
+ this.children["SmallImage"].setAttribute("active", true);
+ this.children["LargeImage"].removeAttribute("active");
+ this.setAttribute("Style", mainLogo);
+ }
+
+ if (this.children["caption"] != undefined) {
+ this.children["caption"].classList.toggle("hidden");
+ }
+ if (this.children["enlarge-icon"] != undefined) {
+ this.children["enlarge-icon"].classList.toggle("fa-search-plus");
+ this.children["enlarge-icon"].classList.toggle("fa-times");
+ }
+ if (this.children["achievement-title"] != undefined) {
+ this.children["achievement-title"].classList.toggle("hidden");
+ }
+ }
+ }
+}
+
+['DOMContentLoaded', 'resize'].forEach((event) =>
+ document.addEventListener(event, showAchievements));
diff --git a/assets/scripts/sections/index.js b/assets/scripts/sections/index.js
index 89da2dd..3589ed9 100644
--- a/assets/scripts/sections/index.js
+++ b/assets/scripts/sections/index.js
@@ -2,3 +2,6 @@ import './navbar';
import './sidebar';
import './education';
+import './achievements';
+import './projects';
+import './publications';
diff --git a/assets/scripts/sections/projects.js b/assets/scripts/sections/projects.js
new file mode 100644
index 0000000..271a135
--- /dev/null
+++ b/assets/scripts/sections/projects.js
@@ -0,0 +1,18 @@
+import Filterizr from 'filterizr';
+import { insertScript } from '../core'
+
+document.addEventListener('DOMContentLoaded', () => {
+ // ================== Project cards =====================
+
+ // setup project filter buttons
+ var projectCardHolder = document.getElementById("project-card-holder");
+ if (projectCardHolder != null && projectCardHolder.children.length != 0) {
+ new Filterizr(".filtr-projects", {
+ layout: 'sameWidth',
+ controlsSelector: '.project-filtr-control',
+ });
+ }
+});
+
+// dynamically insert github buttons script.
+insertScript('github-buttons', 'https://buttons.github.io/buttons.js');
diff --git a/assets/scripts/sections/publications.js b/assets/scripts/sections/publications.js
new file mode 100644
index 0000000..f4106d9
--- /dev/null
+++ b/assets/scripts/sections/publications.js
@@ -0,0 +1,12 @@
+import Filterizr from 'filterizr';
+
+document.addEventListener('DOMContentLoaded', () => {
+ var publicationCardHolder = document.getElementById("publication-card-holder");
+ if (publicationCardHolder != null && publicationCardHolder.children.length != 0) {
+ new Filterizr(".filtr-publications", {
+ layout: 'sameWidth',
+ gridItemsSelector: '.pub-filtr-item',
+ controlsSelector: '.pub-filtr-control',
+ });
+ }
+});
diff --git a/layouts/index.html b/layouts/index.html
index 4ba24a7..c54653f 100644
--- a/layouts/index.html
+++ b/layouts/index.html
@@ -75,12 +75,6 @@
{{ partial "scripts.html" . }}
-
-
-
-
-
-
{{- partial "misc/support.html" . -}}
diff --git a/layouts/partials/cards/project.html b/layouts/partials/cards/project.html
index cdf33bf..84ba341 100644
--- a/layouts/partials/cards/project.html
+++ b/layouts/partials/cards/project.html
@@ -42,8 +42,9 @@
{{ end }}
{{ if .repo }}
+
'
- },
- heart: {
- width: 12,
- height: 16,
- path: '
'
- },
- eye: {
- width: 16,
- height: 16,
- path: '
'
- },
- star: {
- width: 14,
- height: 16,
- path: '
'
- },
- "repo-forked": {
- width: 10,
- height: 16,
- path: '
'
- },
- "issue-opened": {
- width: 14,
- height: 16,
- path: '
'
- },
- "cloud-download": {
- width: 16,
- height: 16,
- path: '
'
- }
- },
- x = {},
- y = function (e, t) {
- var o = x[e] || (x[e] = []);
- if (!(o.push(t) > 1)) {
- var r = p((function () {
- for (delete x[e]; t = o.shift();) t.apply(null, arguments)
- }));
- if (i) {
- var a = new n;
- d(a, "abort", r), d(a, "error", r), d(a, "load", (function () {
- var e;
- try {
- e = JSON.parse(a.responseText)
- } catch (e) {
- return void r(e)
- }
- r(200 !== a.status, e)
- })), a.open("GET", e), a.send()
- } else {
- var l = this || window;
- l._ = function (e) {
- l._ = null, r(200 !== e.meta.status, e.data)
- };
- var c = h(l.document)("script", {
- async: !0,
- src: e + (/\?/.test(e) ? "&" : "?") + "callback=_"
- }),
- s = function () {
- l._ && l._({
- meta: {}
- })
- };
- d(c, "load", s), d(c, "error", s), c.readyState && u(c, /de|m/, s), l.document.getElementsByTagName("head")[0].appendChild(c)
- }
- }
- },
- k = function (e, t, o) {
- var r = h(e.ownerDocument),
- n = e.appendChild(r("style", {
- type: "text/css"
- })),
- a = "body{margin:0}a{text-decoration:none;outline:0}.widget{display:inline-block;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:0;white-space:nowrap}.btn,.social-count{position:relative;display:inline-block;height:14px;padding:2px 5px;font-size:11px;font-weight:600;line-height:14px;vertical-align:bottom;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-repeat:repeat-x;background-position:-1px -1px;background-size:110% 110%;border:1px solid}.btn{border-radius:.25em}.btn:not(:last-child){border-radius:.25em 0 0 .25em}.social-count{border-left:0;border-radius:0 .25em .25em 0}.widget-lg .btn,.widget-lg .social-count{height:20px;padding:3px 10px;font-size:12px;line-height:20px}.octicon{display:inline-block;vertical-align:text-top;fill:currentColor}" + function (e) {
- if (null == e) return m.light;
- var t = c(e, ";", ":", (function (e) {
- return e.replace(/^[ \t\n\f\r]+|[ \t\n\f\r]+$/g, "")
- }));
- return m[b(m, t["no-preference"]) ? t["no-preference"] : "light"] + v("light", t.light) + v("dark", t.dark)
- }(t["data-color-scheme"]);
- n.styleSheet ? n.styleSheet.cssText = a : n.appendChild(e.ownerDocument.createTextNode(a));
- var i, l, d = r("a", {
- className: "btn",
- href: t.href,
- target: "_blank",
- rel: "noopener",
- innerHTML: (i = t["data-icon"], l = /^large$/i.test(t["data-size"]) ? 16 : 14, i = ("" + i).toLowerCase().replace(/^octicon-/, ""), b(w, i) || (i = "mark-github"), '
"),
- "aria-label": t["aria-label"] || void 0
- }, [" ", r("span", {}, [t["data-text"] || ""])]),
- s = e.appendChild(r("div", {
- className: "widget" + (/^large$/i.test(t["data-size"]) ? " widget-lg" : "")
- }, [d])),
- f = d.hostname.split(".").reverse();
- if ("" === f[0] && f.shift(), "com" !== f[0] || "github" !== f[1]) return d.href = "#", d.target = "_self", void o(s);
- var u = f.length,
- g = (" /" + d.pathname).split(/\/+/);
- if (((2 === u || 3 === u && "gist" === f[2]) && "archive" === g[3] || 2 === u && "releases" === g[3] && "download" === g[4] || 3 === u && "codeload" === f[2]) && (d.target = "_top"), /^true$/i.test(t["data-show-count"]) && 2 === u) {
- var p, x;
- if (!g[2] && g[1]) p = x = "followers";
- else if (!g[3] && g[2]) x = "stargazers_count", p = "stargazers";
- else if (g[4] || "subscription" !== g[3])
- if (g[4] || "fork" !== g[3]) {
- if ("issues" !== g[3]) return void o(s);
- x = "open_issues_count", p = "issues"
- } else x = "forks_count", p = "network/members";
- else x = "subscribers_count", p = "watchers";
- var k = g[2] ? "/repos/" + g[1] + "/" + g[2] : "/users/" + g[1];
- y.call(this, "https://api.github.com" + k, (function (e, t) {
- if (!e) {
- var n = t[x];
- s.appendChild(r("a", {
- className: "social-count",
- href: t.html_url + "/" + p,
- target: "_blank",
- rel: "noopener",
- "aria-label": n + " " + x.replace(/_count$/, "").replace("_", " ").slice(0, n < 2 ? -1 : void 0) + " on GitHub"
- }, [("" + n).replace(/\B(?=(\d{3})+(?!\d))/g, ",")]))
- }
- o(s)
- }))
- } else o(s)
- },
- C = window.devicePixelRatio || 1,
- z = function (e) {
- return (C > 1 ? o.ceil(o.round(e * C) / C * 2) / 2 : o.ceil(e)) || 0
- },
- F = function (e, t) {
- e.style.width = t[0] + "px", e.style.height = t[1] + "px"
- },
- M = function (t, r) {
- if (null != t && null != r)
- if (t.getAttribute && (t = function (e) {
- for (var t = {
- href: e.href,
- title: e.title,
- "aria-label": e.getAttribute("aria-label")
- }, o = ["icon", "color-scheme", "text", "size", "show-count"], r = 0, n = o.length; r < n; r++) {
- var a = "data-" + o[r];
- t[a] = e.getAttribute(a)
- }
- return null == t["data-text"] && (t["data-text"] = e.textContent || e.innerText), t
- }(t)), l) {
- var n = g("span", {
- title: t.title || void 0
- });
- k(n.attachShadow({
- mode: "closed"
- }), t, (function () {
- r(n)
- }))
- } else {
- var i = g("iframe", {
- src: "javascript:0",
- title: t.title || void 0,
- allowtransparency: !0,
- scrolling: "no",
- frameBorder: 0
- });
- F(i, [0, 0]), i.style.border = "none";
- var c = function () {
- var n, l = i.contentWindow;
- try {
- n = l.document.body
- } catch (t) {
- return void e.body.appendChild(i.parentNode.removeChild(i))
- }
- s(i, "load", c), k.call(l, n, t, (function (e) {
- var n = function (e) {
- var t = e.offsetWidth,
- r = e.offsetHeight;
- if (e.getBoundingClientRect) {
- var n = e.getBoundingClientRect();
- t = o.max(t, z(n.width)), r = o.max(r, z(n.height))
- }
- return [t, r]
- }(e);
- i.parentNode.removeChild(i), f(i, "load", (function () {
- F(i, n)
- })), i.src = a + "#" + (i.name = function (e, t, o, r) {
- null == t && (t = "&"), null == o && (o = "="), null == r && (r = window.encodeURIComponent);
- var n = [];
- for (var a in e) {
- var i = e[a];
- null != i && n.push(r(a) + o + r(i))
- }
- return n.join(t)
- }(t)), r(i)
- }))
- };
- d(i, "load", c), e.body.appendChild(i)
- }
- };
- t.protocol + "//" + t.host + t.pathname === a ? k(e.body, c(window.name || t.hash.replace(/^#/, "")), (function () { })) : function (t) {
- if (/m/.test(e.readyState) || !/g/.test(e.readyState) && !e.documentElement.doScroll) setTimeout(t);
- else if (e.addEventListener) {
- var o = p(t);
- f(e, "DOMContentLoaded", o), f(window, "load", o)
- } else u(e, /m/, t)
- }((function () {
- for (var t = e.querySelectorAll ? e.querySelectorAll("a.github-button") : function () {
- for (var t = [], o = e.getElementsByTagName("a"), r = 0, n = o.length; r < n; r++) ~(" " + o[r].className + " ").replace(/[ \t\n\f\r]+/g, " ").indexOf(" github-button ") && t.push(o[r]);
- return t
- }(), o = 0, r = t.length; o < r; o++) ! function (e) {
- M(e, (function (t) {
- e.parentNode.replaceChild(t, e)
- }))
- }(t[o])
- }))
-}
diff --git a/static/js/home.js b/static/js/home.js
deleted file mode 100644
index 9956ef8..0000000
--- a/static/js/home.js
+++ /dev/null
@@ -1,301 +0,0 @@
-"use strict";
-
-var projectCards, publicationCards;
-
-(function ($) {
- jQuery(document).ready(function () {
-
- var isMobile = false, isTablet = false, isLaptop = false;
-
- function detectDevice() {
- if (window.innerWidth <= 425) {
- isMobile = true;
- isTablet = false;
- isLaptop = false;
- } else if (window.innerWidth <= 768) {
- isMobile = false;
- isTablet = true;
- isLaptop = false;
- } else {
- isMobile = false;
- isTablet = false;
- isLaptop = true;
- }
- }
- detectDevice();
-
-
- // ================== Project cards =====================
- // Add click action on project category selector buttons
- var filterButtons = document.getElementById("project-filter-buttons");
- if (filterButtons != null) {
- var btns = filterButtons.children;
-
- for (let i = 0; i < btns.length; i++) {
- btns[i].onclick = function () {
- showGithubStars(btns[i].id);
- }
- }
- }
-
- var projectCardHolder = document.getElementById("project-card-holder");
- if (projectCardHolder != null && projectCardHolder.children.length != 0) {
- projectCards = $(".filtr-projects").filterizr(
- {
- layout: 'sameWidth',
- controlsSelector: '.project-filtr-control',
- });
- }
-
- // ================== Publication cards =====================
- var publicationCardHolder = document.getElementById("publication-card-holder");
- if (publicationCardHolder != null && publicationCardHolder.children.length != 0) {
- publicationCards = $(".filtr-publications").filterizr(
- {
- layout: 'sameWidth',
- gridItemsSelector: '.pub-filtr-item',
- controlsSelector: '.pub-filtr-control',
- });
- }
-
- function showGithubStars() {
- // fix the github button class
- // we had set it to github-button-inactive in projects holder cards so that respective javascript
- // don't render it and replace respective span with shadow root
- let githubButtons = document.getElementsByClassName("github-button-inactive");
- while (githubButtons.length > 0) {
- if (githubButtons[0].classList != undefined) {
- githubButtons[0].classList.replace("github-button-inactive", "github-button");
- }
- }
- // now render github button. it will call the github API and fill the respective fields
- renderGithubButton();
- }
- showGithubStars();
-
- // =============== Achievements ===========
-
- function fourColumRow(gallery, entries, i) {
- let entry1 = document.createElement("div");
- entry1.classList.add("col-lg-6", "m-0", "p-0");
- entry1.appendChild(entries[i].cloneNode(true));
- entry1.children[0].classList.add("img-type-1");
- gallery.appendChild(entry1);
- i++;
-
- let entry2 = document.createElement("div");
- entry2.classList.add("col-lg-3", "m-0", "p-0");
- entry2.appendChild(entries[i].cloneNode(true));
- entry2.children[0].classList.add("img-type-1");
- gallery.appendChild(entry2);
- i++;
-
- let entry3 = document.createElement("div");
- entry3.classList.add("col-lg-3", "m-0", "p-0");
- entry3.appendChild(entries[i].cloneNode(true));
- entry3.children[0].classList.add("img-type-2");
- i++;
- entry3.appendChild(entries[i].cloneNode(true));
- entry3.children[1].classList.add("img-type-2");
- gallery.appendChild(entry3);
- i++;
- }
-
- function fourColumnReversedRow(gallery, entries, i) {
- let entry1 = document.createElement("div");
- entry1.classList.add("col-lg-3", "m-0", "p-0");
- entry1.appendChild(entries[i].cloneNode(true));
- entry1.children[0].classList.add("img-type-2");
- i++;
- entry1.appendChild(entries[i].cloneNode(true));
- entry1.children[1].classList.add("img-type-2");
- gallery.appendChild(entry1);
- i++;
-
- let entry2 = document.createElement("div");
- entry2.classList.add("col-lg-3", "m-0", "p-0");
- entry2.appendChild(entries[i].cloneNode(true));
- entry2.children[0].classList.add("img-type-1");
- gallery.appendChild(entry2);
- i++;
-
- let entry3 = document.createElement("div");
- entry3.classList.add("col-lg-6", "m-0", "p-0");
- entry3.appendChild(entries[i].cloneNode(true));
- entry3.children[0].classList.add("img-type-1");
- gallery.appendChild(entry3);
- i++;
- }
-
- function threeColumnRow(gallery, entries, i) {
- console.log(i);
- let entry1 = document.createElement("div");
- entry1.classList.add("col-lg-6", "col-md-6", "m-0", "p-0");
- entry1.appendChild(entries[i].cloneNode(true));
- entry1.children[0].classList.add("img-type-1");
- gallery.appendChild(entry1);
- i++;
-
- let entry2 = document.createElement("div");
- entry2.classList.add("col-lg-3", "col-md-3", "m-0", "p-0");
- entry2.appendChild(entries[i].cloneNode(true));
- entry2.children[0].classList.add("img-type-1");
- gallery.appendChild(entry2);
- i++;
-
- let entry3 = document.createElement("div");
- entry3.classList.add("col-lg-3", "col-md-3", "m-0", "p-0");
- entry3.appendChild(entries[i].cloneNode(true));
- entry3.children[0].classList.add("img-type-1");
- gallery.appendChild(entry3);
- i++;
- }
- function threeColumnReversedRow(gallery, entries, i) {
- let entry1 = document.createElement("div");
- entry1.classList.add("col-lg-3", "col-md-3", "m-0", "p-0");
- entry1.appendChild(entries[i].cloneNode(true));
- entry1.children[0].classList.add("img-type-1");
- gallery.appendChild(entry1);
- i++;
-
- let entry2 = document.createElement("div");
- entry2.classList.add("col-lg-3", "col-md-3", "m-0", "p-0");
- entry2.appendChild(entries[i].cloneNode(true));
- entry2.children[0].classList.add("img-type-1");
- gallery.appendChild(entry2);
- i++;
-
- let entry3 = document.createElement("div");
- entry3.classList.add("col-lg-6", "col-md-3", "m-0", "p-0");
- entry3.appendChild(entries[i].cloneNode(true));
- entry3.children[0].classList.add("img-type-1");
- gallery.appendChild(entry3);
- i++;
- }
- function twoColumnRow(gallery, entries, i) {
- let entry1 = document.createElement("div");
- entry1.classList.add("col-6", "m-0", "p-0");
- entry1.appendChild(entries[i].cloneNode(true));
- entry1.children[0].classList.add("img-type-1");
- gallery.appendChild(entry1);
- i++;
-
- let entry2 = document.createElement("div");
- entry2.classList.add("col-6", "m-0", "p-0");
- entry2.appendChild(entries[i].cloneNode(true));
- entry2.children[0].classList.add("img-type-1");
- gallery.appendChild(entry2);
- i++;
- }
-
- function singleColumnRow(gallery, entries, i) {
- let entry1 = document.createElement("div");
- entry1.classList.add("col-12", "m-0", "p-0");
- entry1.appendChild(entries[i].cloneNode(true));
- entry1.children[0].classList.add("img-type-1");
- gallery.appendChild(entry1);
- i++;
- }
-
- function showAchievements() {
- // show achievements from achievements-holder div
- let gallery = document.getElementById("gallery");
- if (gallery == null) {
- return
- }
- gallery.innerHTML = "";
- const entries = document.getElementById("achievements-holder").children;
- let len = entries.length;
- let i = 0;
- let rowNumber = 1;
- while (i < len) {
- if (isLaptop) {
- if (i + 4 <= len) {
- if (rowNumber % 2) {
- fourColumRow(gallery, entries, i);
- } else {
- fourColumnReversedRow(gallery, entries, i);
- }
- i += 4;
-
- } else if (i + 3 <= len) {
- if (rowNumber % 2) {
- threeColumnRow(gallery, entries, i);
- } else {
- threeColumnReversedRow(gallery, entries, i);
- }
- i += 3;
- } else if (i + 2 <= len) {
- twoColumnRow(gallery, entries, i);
- i += 2;
- } else {
- singleColumnRow(gallery, entries, i);
- i++;
- }
- } else if (isTablet) {
- if (i + 2 <= len) {
- twoColumnRow(gallery, entries, i);
- i += 2;
- } else {
- singleColumnRow(gallery, entries, i);
- i++;
- }
- } else {
- singleColumnRow(gallery, entries, i);
- i++;
- }
- rowNumber++;
- }
-
- // show full image on click
- let elements = document.getElementsByClassName("achievement-entry");
- len = elements.length;
- for (let i = 0; i < len; i++) {
- elements[i].onclick = function () {
- let achievements = document.getElementsByClassName("achievement-entry");
- let len2 = achievements.length;
- for (let j = 0; j < len2; j++) {
- achievements[j].classList.toggle("hidden");
- }
- this.classList.toggle("achievement-details");
- this.classList.toggle("hidden");
- this.parentElement.classList.toggle("col-lg-12");
- this.parentElement.classList.toggle("col-md-12");
- this.parentElement.classList.toggle("col-sm-12");
- if (this.children["SmallImage"].hasAttribute("active")) {
- let mainLogo = this.children["LargeImage"].getAttribute("Style");
- this.children["LargeImage"].setAttribute("active", true);
- this.children["SmallImage"].removeAttribute("active");
-
- this.setAttribute("Style", mainLogo);
- } else {
- let mainLogo = this.children["SmallImage"].getAttribute("Style");
- this.children["SmallImage"].setAttribute("active", true);
- this.children["LargeImage"].removeAttribute("active");
- this.setAttribute("Style", mainLogo);
- }
-
- if (this.children["caption"] != undefined) {
- this.children["caption"].classList.toggle("hidden");
- }
- if (this.children["enlarge-icon"] != undefined) {
- this.children["enlarge-icon"].classList.toggle("fa-search-plus");
- this.children["enlarge-icon"].classList.toggle("fa-times");
- }
- if (this.children["achievement-title"] != undefined) {
- this.children["achievement-title"].classList.toggle("hidden");
- }
- }
- }
- }
- showAchievements();
-
- // re-render custom functions on window resize
- window.onresize = function () {
- detectDevice();
- adjustRecentPostsHeight();
- showAchievements();
- };
- });
-
-})(jQuery);
diff --git a/static/js/imagesloaded.pkgd.min.js b/static/js/imagesloaded.pkgd.min.js
deleted file mode 100644
index e443a77..0000000
--- a/static/js/imagesloaded.pkgd.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
- * imagesLoaded PACKAGED v4.1.4
- * JavaScript is all like "You images are done yet or what?"
- * MIT License
- */
-
-!function(e,t){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",t):"object"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()}("undefined"!=typeof window?window:this,function(){function e(){}var t=e.prototype;return t.on=function(e,t){if(e&&t){var i=this._events=this._events||{},n=i[e]=i[e]||[];return n.indexOf(t)==-1&&n.push(t),this}},t.once=function(e,t){if(e&&t){this.on(e,t);var i=this._onceEvents=this._onceEvents||{},n=i[e]=i[e]||{};return n[t]=!0,this}},t.off=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){var n=i.indexOf(t);return n!=-1&&i.splice(n,1),this}},t.emitEvent=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){i=i.slice(0),t=t||[];for(var n=this._onceEvents&&this._onceEvents[e],o=0;o
0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]i?1:0}}(r))),o="asc"===e?i:i.reverse();this.filterItems=o},t.prototype.shuffle=function(){var t=this,e=this.getFiltered(this.options.filter);if(e.length>1){var n=this.getFiltered(this.options.filter).map(function(e){return t.filterItems.indexOf(e)}).slice(),r=void 0;do{r=d(e)}while(u(e,r));(r=d(e)).forEach(function(e,r){var i,o=n[r];t.filterItems=Object.assign([],t.filterItems,((i={})[o]=e,i))})}},t.prototype.search=function(t,e){return e?t.filter(function(t){return t.contentsMatchSearch(e)}):t},t.prototype.shouldBeFiltered=function(t,e){var n,r,i=this.options.getRaw().multifilterLogicalOperator;return Array.isArray(e)?"or"===i?!!(n=t,r=e,Array.prototype.filter.call(n,function(t){return r.includes(t)})).length:function(t,e){return t.reduce(function(t,n){return t&&e.includes(n)},!0)}(e,t):t.includes(e)},t}(),B=function(){return(B=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]',(i=document.createElement("img")).classList.add("Filterizr__spinner"),i.src="data:image/svg+xml;base64,"+window.btoa(r),i.alt="Spinner",i),this.styledNode=new tt(this.node,e),this.initialize()}return Object.defineProperty(t.prototype,"styles",{get:function(){return this.styledNode},enumerable:!0,configurable:!0}),t.prototype.destroy=function(){return et(this,void 0,void 0,function(){return nt(this,function(t){switch(t.label){case 0:return[4,this.styles.fadeOut()];case 1:return t.sent(),this.filterContainer.node.removeChild(this.node),[2]}})})},t.prototype.initialize=function(){this.styles.initialize(),this.filterContainer.node.appendChild(this.node)},t}(),it=n(2),ot=n.n(it);function st(t,e){return t.reduce(function(t,n){return t+n.width+e},0)}function at(t,e){return t.length?t.reduce(function(t,n){return t+n.height+e},0):0}var ut=function(){return(ut=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0?t[0].h:0;for(this.root.h=o,e=0;et*o&&((i={})[o]=r,i))},{0:0}),o=e.map(function(o,s){var a=o.height,u=Math.floor(r[s]/t);return{left:e.slice(i[u],s).reduce(function(t,e){return t+e.width+n},0),top:(a+n)*u}});return{containerHeight:Object.keys(i).length*(e[0].height+n)+n,itemsPositions:o}}(t,e,r);case i.SAME_WIDTH:return function(t,e,n){var r=Math.floor(t/(e[0].width+n)),i=e.map(function(t,i){var o=t.width,s=Math.floor(i/r);return{left:(i-r*s)*(o+n),top:e.slice(0,i).filter(function(t,e){return(i-e)%r==0}).reduce(function(t,e){return t+e.height+n},0)}}),o=e.reduce(function(t,e,i){var o=e.height,s=Math.floor(i/r);return t[i-r*s]+=o+n,t},Array.apply(null,Array(r)).map(Number.prototype.valueOf,0));return{containerHeight:Math.max.apply(Math,o)+n,itemsPositions:i}}(t,e,r);case i.PACKED:return function(t,e,n){var r=new ct(t),i=e.map(function(t){var e=t.width,r=t.height;return{w:e+n,h:r+n}});r.fit(i);var o=i.map(function(t){var e=t.fit;return{left:e.x,top:e.y}});return{containerHeight:r.root.h+n,itemsPositions:o}}(t,e,r);case i.SAME_SIZE:default:return function(t,e,n){var r=Math.floor(t/(e[0].width+n)),i=e.map(function(t,e){var i=t.width,o=t.height,s=Math.floor(e/r);return{left:(e-r*s)*(i+n),top:s*(o+n)}});return{containerHeight:Math.ceil(e.length/r)*(e[0].height+n)+n,itemsPositions:i}}(t,e,r)}});function ft(t){if(!t)throw new Error("Filterizr as a jQuery plugin, requires jQuery to work. If you would prefer to use the vanilla JS version, please use the correct bundle file.");t.fn.filterizr=function(){var e="."+t.trim(this.get(0).className).replace(/\s+/g,"."),n=arguments;if(!this._fltr&&0===n.length||1===n.length&&"object"==typeof n[0]){var r=n.length>0?n[0]:v;this._fltr=new yt(e,r)}else if(n.length>=1&&"string"==typeof n[0]){var i=n[0],o=Array.prototype.slice.call(n,1),s=this._fltr;switch(i){case"filter":return s.filter.apply(s,o),this;case"insertItem":return s.insertItem.apply(s,o),this;case"removeItem":return s.removeItem.apply(s,o),this;case"toggleFilter":return s.toggleFilter.apply(s,o),this;case"sort":return s.sort.apply(s,o),this;case"shuffle":return s.shuffle.apply(s,o),this;case"search":return s.search.apply(s,o),this;case"setOptions":return s.setOptions.apply(s,o),this;case"destroy":return s.destroy.apply(s,o),delete this._fltr,this;default:throw new Error("Filterizr: "+i+" is not part of the Filterizr API. Please refer to the docs for more information.")}}return this}}var ht=function(t,e,n,r){return new(n||(n=Promise))(function(i,o){function s(t){try{u(r.next(t))}catch(t){o(t)}}function a(t){try{u(r.throw(t))}catch(t){o(t)}}function u(t){t.done?i(t.value):new n(function(e){e(t.value)}).then(s,a)}u((r=r.apply(t,e||[])).next())})},pt=function(t,e){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=(i=s.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]