Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • vilem.ded/howto-cards
  • yjarosz/labCards
  • sarah.diehl/howto-cards
  • jacek.lebioda/howto-cards
  • pinar.alper/howto-cards
  • maharshi.vyas/howto-cards
  • manuel.maidorn/howto-cards
  • roland.krause/howto-cards
  • miriam.fougeras/howto-cards
  • soraya.hezzaz/howto-cards
  • fasavanh.sanichanh/howto-cards
  • marie.fossepre/howto-cards
  • jennifer.behm/howto-cards
  • annegrat.daujeumont/howto-cards
  • jon.gales/howto-cards-jpg
  • sandy.thill/howto-cards
  • jenny.tran/howto-cards
17 results
Show changes
Commits on Source (984)
Showing
with 262 additions and 331 deletions
#!/bin/sh
# change this with environment
DEFAULT_NOT_SOURCE_REGEX="/\\/assets\\//"
NOT_SOURCE_REGEX="${NOT_SOURCE_REGEX:-$DEFAULT_NOT_SOURCE_REGEX}"
TIMESTAMP_SUFFIX="${SUFFIX:-.timestamp}"
LOGFILE="${LOGFILE:-/dev/null}"
[ -z "$1" ] && echo "$0: no inputs specified?" >/dev/stderr
while [ -n "$1" ]
do
echo "sourcing directory '$1' ..." >> "$LOGFILE"
find "$1" -type f -name '*.md' | grep -v "$NOT_SOURCE_REGEX" | while read file ; do
fn=`basename "$file"`
dir=`dirname "$file"`
tsfn="$fn.timestamp"
(
echo "making timestamp in '$dir' for file '$fn' ..." >> "$LOGFILE"
cd "$dir"
if [ -f "$tsfn" ]
then echo "... but it already exists; skipping!" >> "$LOGFILE"
else
TIMESTAMP=`git log -n 1 --pretty=format:%cs -- "$fn"`
mv "$fn" "$fn.temporary"
head -n1 "$fn.temporary" > "$fn"
echo "timestamp: \"$TIMESTAMP\"" >> "$fn"
tail -n+2 "$fn.temporary" >> "$fn"
rm -f "$fn.temporary"
fi
)
done
shift
done
import os, re from generator import core, save
from os import path
from natsort import natsorted
def line_prepender(filename, line): # walk through the folders with all the cards
with open(filename, 'r+') as f: ind, wl = core.core(["external"])
content = f.read()
f.seek(0, 0)
f.write(line.rstrip('\r\n') + '\n' + content)
def build_link(title, href): save.save_index(ind, "cards.md")
save.save_whitelist(wl, ".ci/whitelist.txt")
# strip the number of the title
if ('handbook' in href):
title = re.sub('[0-9.]', '', title).strip()
# remove sym link reference in href
if ('handbook-additional' in href):
href = href.replace('handbook-additional', 'handbook').strip()
elif ('handbook-annexes' in href):
href = href.replace('handbook-annexes', 'handbook').strip()
# add relative url
href = "{{ '" + href + "' | relative_url }}"
return f'\t\t\t<li><a href="{href}">{title}</a></li>\n'
def build_section_start(title, shortcut):
title = title.replace("Gdpr", "GDPR")
title = title.replace("Handbook additional", "PI/Supervisor specifics")
title = title.replace("Handbook annexes", "Annexes")
title = title.replace("Covid 19", "COVID-19")
title = title.replace("Ppc", "PPC")
return f'\n\t<div class="index-box noborderbox" id="{shortcut}">\n\t\t<h3>{title}</h3>\n\t\t<ul>\n'
def build_section_end():
return "\t\t</ul>\n\t</div>"
def remove_header(localroot, root, filename, n=5):
nfirstlines = []
#cwd = os.getcwd()
os.chdir(localroot)
#print("Local root folder:" + os.getcwd())
os.chdir(root)
#print("Local folder:" + os.getcwd())
# count the number of lines
count = 0
headerCheck = False
with open(filename, 'r') as f:
for line in f:
count += 1
# check if the header is actually a header
if (count == 0 or count == n) and line[0:3] == "---":
headerCheck = True
# remove the header
if count > n and headerCheck:
with open(filename) as f, open("tmp"+filename, "w") as out:
for _ in range(n):
nfirstlines.append(next(f))
for line in f:
out.write(line)
os.remove(filename)
os.rename("tmp"+filename, filename)
print(" - Old header removed.")
# change back to the local root
os.chdir(localroot)
#print("exit folder:" + os.getcwd())
# loop through the entire internal tree
localroot = os.getcwd()
# generate the index properly speaking
cardDirs = ["internal", "external", "policies"]
sections = []
# determine first the directories
for direct in cardDirs:
if path.isdir(direct):
dirs = os.listdir(direct)
dirs = natsorted(dirs)
for d in dirs:
if d[0] != ".":
sections.append(d)
sections = list(set(sections))
sections = natsorted(sections)
# Index contains the generated content, init it with an empty container
index = ''
index += '\n<div class="index-box-container">\n'
localIndexArr = [[]] * len(sections)
for folder in cardDirs:
# check if folder exists
if path.isdir(folder):
dirs = os.listdir(folder)
dirs = natsorted(dirs)
for d in dirs:
if d[0] != ".":
# set the header of the section
#index += "\n### " + d.replace("-", " ").capitalize() + "\n"
# get the index of the section
indexS = sections.index(d)
#print(indexS)
if len(localIndexArr[indexS]) == 0:
localIndexArr[indexS] = ["\n"]
# walk through the folders with all the cards
for root, dirs, files in os.walk(folder+"/"+d):
for file in files:
if file.endswith(".md"):
fileName = os.path.join(root, file)
# ignore subsections (.md files that start with _)
if file[0] != "_":
print(" > Generating header for: " + fileName)
# remove the previous header
remove_header(localroot, root, file, 8)
# generate a permalink
permalink = "/" + root + "/"
# generate the shortcut
shortcut = re.sub(folder, '', root)
# remove the first /
shortcut = shortcut[1:]
# replace the / with a :
shortcut = re.sub('/', ':', shortcut)
# define the header for each card
header = "---\n"
header += "layout: page\n"
header += "permalink: " + permalink + "\n"
header += "shortcut: " + shortcut + "\n"
header += "redirect_from:\n"
header += " - /cards/" + shortcut + "\n"
header += " - /" + folder + "/cards/" + shortcut + "\n"
header += "---"
# add the header properly speaking
line_prepender(fileName, header)
# open file and get the title after the header
count = 0
title = ""
bp = 9
with open(fileName, 'r') as f:
for line in f:
count += 1
if count == bp:
if len(line) > 2:
title = line
break
else:
bp += 1
# remove first and last chars
title = title.rstrip("\n\r")
title = title[2:]
localIndexArr[indexS].append(build_link(title, root))
# output
print(" + New header added.")
print("-----------------------")
# join all subcategories to the index
localIndexArr[indexS] = natsorted(localIndexArr[indexS])
print(localIndexArr)
# determine the index
k = 0
for s in sections:
index += build_section_start(s.replace("-", " ").capitalize(), s)
index += ''.join(localIndexArr[k])
index += build_section_end()
k += 1
# Close the container
index += "\n</div>"
## add link to return to main index
index += """<br><center><a href="{{ '/' | relative_url }}">go back</a></center>"""
index += """<br><center><a href="{{ '/cards' | relative_url }}">Overview of all HowTo cards</a></center>"""
# output the index
#print(index)
# Read in the file
indexFile = "cards.md"
filedata = ""
with open(indexFile, 'r') as file :
for line in file:
filedata += line
# stop reading once the index place holder has been reached
if re.search("<!-- index -->", line):
filedata += "[[ index ]]"
break
# Replace the target string
filedata = filedata.replace('[[ index ]]', index)
# Write the file out again
with open(indexFile, 'w') as file:
file.write(filedata)
print("\n > New index generated and saved in " + indexFile)
Subproject commit 53a922a13c4e8916c97599b5242493a47ea0a2e2
/privacy-policy
/search
https://www.dev47apps.com/
https://www.dev47apps.com/droidcam/connect/
https://cerbere.uni.lu/
http://iptel.uni.lux/
javascript:%20showBanner();
javascript:showBanner();
media/7zip-encryption-windows.mp4?width=400
media/Get_MD5_checksum_windows.mp4
/privacy-policy
/search
https://www.dev47apps.com/
https://www.dev47apps.com/droidcam/connect/
https://cerbere.uni.lu/
http://iptel.uni.lux/
javascript:%20showBanner();
javascript:showBanner();
media/7zip-encryption-windows.mp4?width=400
media/Get_MD5_checksum_windows.mp4
https://intranet.uni.lux
https://intranet.uni.lux/the_university/lcsb/lscb_internal/
https://uniluxembourg.sharepoint.com/sites/lcsb/lscb_internal/LCSB%20Handbook/Appendix%20files/Godparent%20Checklist%20-%20newcomers.pdf
https://uniluxembourg.sharepoint.com/sites/lcsb/lscb_internal/LCSB%20Handbook/Appendix%20files/Newcomer%20Checklist%20Before%20Arriving%20in%20Luxembourg.pdf
https://uniluxembourg.sharepoint.com/sites/lcsb/lscb_internal/LCSB%20Handbook/Appendix%20files/Newcomer%20Checklist%20upon%20Arrival%20in%20Luxembourg.pdf
https://uniluxembourg.sharepoint.com/sites/lcsb/lscb_internal/SitePages/default.aspx
https://uniluxembourg.sharepoint.com/sites/sc/Lists/Policies%20%20Procedures/DispForm.aspx?ID=9
https://uniluxembourg.sharepoint.com/sites/siu/Documents%20partages/Dropit%20client%20-%20configuration%20guide.pdf#search=dropit
https://uniluxembourg.sharepoint.com/sites/siu/SitePages/siu-guides.aspx
\ No newline at end of file
*.png filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.mp4 filter=lfs diff=lfs merge=lfs -text
...@@ -11,8 +11,10 @@ stages: ...@@ -11,8 +11,10 @@ stages:
variables: variables:
GIT_STRATEGY: clone GIT_STRATEGY: clone
GIT_DEPTH: 0
DOCKER_DRIVER: overlay2 DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: "" DOCKER_TLS_CERTDIR: ""
GIT_SUBMODULE_STRATEGY: recursive
# prepare # prepare
# ------------------------------------------------------------------------------------ # ------------------------------------------------------------------------------------
...@@ -24,11 +26,12 @@ prepare:index: ...@@ -24,11 +26,12 @@ prepare:index:
- if: $CI_COMMIT_REF_NAME - if: $CI_COMMIT_REF_NAME
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_COMMIT_MESSAGE !~ /tmpBranch/ && $CI_COMMIT_MESSAGE !~ /Update index/' - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_COMMIT_MESSAGE !~ /tmpBranch/ && $CI_COMMIT_MESSAGE !~ /Update index/'
before_script: before_script:
- pip install natsort - pip install -r .ci/generator/requirements.txt
script: script:
- python .ci/generateIndex.py - python .ci/generateIndex.py
- mkdir .tmp - mkdir .tmp
- cp cards.md .tmp/. - cp cards.md .tmp/.
- cp .ci/whitelist.txt .tmp/.
artifacts: artifacts:
expire_in: 1 day expire_in: 1 day
paths: paths:
...@@ -71,34 +74,42 @@ save:commitIndex: ...@@ -71,34 +74,42 @@ save:commitIndex:
# ------------------------------------------------------------------------------------ # ------------------------------------------------------------------------------------
build:pages: build:pages:
image: $CI_REGISTRY/r3/docker/jekyll-lcsb:1.8 image: $CI_REGISTRY/r3/docker/jekyll-lcsb
stage: build stage: build
variables: variables:
JEKYLL_ENV: production JEKYLL_ENV: production
BUNDLER_VERSION: 2.0.2 BUNDLER_VERSION: 2.1.4
artifacts: artifacts:
expire_in: 1 day expire_in: 1 day
paths: paths:
- build - build
- .tmp
rules: rules:
- if: $CI_COMMIT_REF_NAME - if: $CI_COMMIT_REF_NAME
- if: $CI_MERGE_REQUEST_ID
before_script: before_script:
- apt-get -qq update - apt-get -qq update
- apt-get install -y -qq git-lfs - apt-get install -y -qq git-lfs
- gem install bundler:$BUNDLER_VERSION && bundle install - gem install bundler:$BUNDLER_VERSION && bundle install
script: script:
# copy the index
- cp .tmp/cards.md .
# Generate the configuration for forks (will use Gitlab Pages on personal namespaces) # Generate the configuration for forks (will use Gitlab Pages on personal namespaces)
- 'echo "url: https://$CI_PROJECT_NAMESPACE.$CI_PAGES_DOMAIN" >> .ci/_config_gitlab_pages.yml' - |
- 'echo "baseurl: /$CI_PROJECT_NAME" >> .ci/_config_gitlab_pages.yml' if [ $CI_MERGE_REQUEST_ID ]; then
export CI_COMMIT_REF_NAME="develop";
# If there is no config for the current branch, use the one for Gitlab Pages else
- 'if [ ! -f ".ci/_config_$CI_COMMIT_REF_NAME.yml" ]; then mv .ci/_config_gitlab_pages.yml .ci/_config_$CI_COMMIT_REF_NAME.yml; fi' echo "url: https://$CI_PROJECT_NAMESPACE.$CI_PAGES_DOMAIN" >> .ci/_config_gitlab_pages.yml;
echo "baseurl: /$CI_PROJECT_NAME" >> .ci/_config_gitlab_pages.yml;
# If there is no config for the current branch, use the one for Gitlab Pages
if [ ! -f ".ci/_config_$CI_COMMIT_REF_NAME.yml" ]; then
mv .ci/_config_gitlab_pages.yml .ci/_config_$CI_COMMIT_REF_NAME.yml;
fi
fi
# Display, which configuration is used # Display, which configuration is used
- 'echo "Configuration: " && cat ".ci/_config_$CI_COMMIT_REF_NAME.yml"' - |
echo "Configuration: " && cat ".ci/_config_$CI_COMMIT_REF_NAME.yml"
# Run Jekyll with custom configuration # Run Jekyll with custom configuration
- LOGFILE=/dev/stdout .ci/add-timestamp-to-howtocard.sh external
- bundle exec jekyll build -d build --config "_config.yml,.ci/_config_$CI_COMMIT_REF_NAME.yml" - bundle exec jekyll build -d build --config "_config.yml,.ci/_config_$CI_COMMIT_REF_NAME.yml"
# check # check
...@@ -106,16 +117,15 @@ build:pages: ...@@ -106,16 +117,15 @@ build:pages:
check:links: check:links:
stage: check stage: check
image: image: $CI_REGISTRY/r3/apps/tailorbird/linkchecker
name: $CI_REGISTRY/r3/apps/tailorbird/linkchecker
entrypoint: [""]
rules: rules:
- if: $CI_COMMIT_REF_NAME - if: $CI_COMMIT_REF_NAME
- if: $CI_MERGE_REQUEST_ID - if: $CI_MERGE_REQUEST_ID
allow_failure: true allow_failure: true
before_script: before_script:
- cp .ci/jsonWhitelist.txt build/. - cp .tmp/whitelist.txt build/.
- cp -r build checkFolder - cp -r build /check
- cd /
script: script:
- python link_check.py - python link_check.py
...@@ -166,7 +176,7 @@ deploy:vm: ...@@ -166,7 +176,7 @@ deploy:vm:
- echo "$KNOWNHOSTS" > ~/.ssh/known_hosts - echo "$KNOWNHOSTS" > ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts - chmod 644 ~/.ssh/known_hosts
rules: rules:
- if: '$CI_PIPELINE_SOURCE != "merge_request_event" && $CI_COMMIT_REF_NAME == "develop" && $CI_PROJECT_PATH == "R3/howto-cards"' #- if: '$CI_PIPELINE_SOURCE != "merge_request_event" && $CI_COMMIT_REF_NAME == "develop" && $CI_PROJECT_PATH == "R3/howto-cards"'
- if: '$CI_PIPELINE_SOURCE != "merge_request_event" && $CI_COMMIT_REF_NAME == "master" && $CI_PROJECT_PATH == "R3/howto-cards"' - if: '$CI_PIPELINE_SOURCE != "merge_request_event" && $CI_COMMIT_REF_NAME == "master" && $CI_PROJECT_PATH == "R3/howto-cards"'
script: script:
- ssh -p $SSHPORT $SSHCONNECT "mkdir -p ~/$CI_COMMIT_REF_NAME/sources/public/$CI_JOB_ID ~/$CI_COMMIT_REF_NAME/public" - ssh -p $SSHPORT $SSHCONNECT "mkdir -p ~/$CI_COMMIT_REF_NAME/sources/public/$CI_JOB_ID ~/$CI_COMMIT_REF_NAME/public"
......
[submodule ".ci/generator"]
path = .ci/generator
url = https://gitlab.lcsb.uni.lu/R3/apps/generator.git
...@@ -12,7 +12,7 @@ gem "jekyll", "~> 4.0" ...@@ -12,7 +12,7 @@ gem "jekyll", "~> 4.0"
gem "bundler", "> 2.0" gem "bundler", "> 2.0"
gem "minima", "~> 2.5" gem "minima", "~> 2.5"
gem 'jekyll-theme-lcsb-default', '~> 0.4.7' gem 'jekyll-theme-lcsb-default', '~> 0.5.0'
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and # If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`. # uncomment the line below. To upgrade, run `bundle update github-pages`.
...@@ -46,3 +46,5 @@ gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby] ...@@ -46,3 +46,5 @@ gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby]
gem "wdm", "~> 0.1.1" if Gem.win_platform? gem "wdm", "~> 0.1.1" if Gem.win_platform?
gem 'jekyll-spaceship', "~> 0.9" gem 'jekyll-spaceship', "~> 0.9"
gem "webrick", "~> 1.7"
...@@ -10,6 +10,10 @@ ...@@ -10,6 +10,10 @@
{% comment %}This is used to generate share URL for howto-pages{% endcomment %} {% comment %}This is used to generate share URL for howto-pages{% endcomment %}
<div class="footer-text-container"> <div class="footer-text-container">
{% if page.timestamp %}
<p>Last page modification: {{ page.timestamp }}</p>
{% endif %}
{% if page.shortcut %} {% if page.shortcut %}
<p> <p>
Share this page: Share this page:
...@@ -44,4 +48,4 @@ ...@@ -44,4 +48,4 @@
</footer> </footer>
{% if site.siteID > 0 %} {% if site.siteID > 0 %}
{%- include gdpr-banner.html -%} {%- include gdpr-banner.html -%}
{% endif %} {% endif %}
\ No newline at end of file
<script src="{{ '/assets/vendor/js/jquery-3.6.0.min.js' | relative_url }}"></script>
<script type="text/javascript" src="https://analytics.lcsb.uni.lu/lap/static/js/jquery.min.js"></script>
<script type="text/javascript" src="{{ "assets/js/router.js" | relative_url }}"></script> <script type="text/javascript" src="{{ "assets/js/router.js" | relative_url }}"></script>
<script type="text/javascript" src="{{ "assets/js/box_hider.js" | relative_url }}"></script> <script type="text/javascript" src="{{ "assets/js/box_hider.js" | relative_url }}"></script>
<script> <script>
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
align-content: flex-start; align-content: flex-start;
padding-right: 10px; padding-right: 10px;
border: solid 1px rgba(0,0,0,0); border: solid 1px rgba(0,0,0,0);
border-right: solid 2px rgba(240, 240, 240, 0.7); border-right: solid 2px rgba(240, 240, 240, 0.7);
} }
@media (max-width: 1080px) { @media (max-width: 1080px) {
.container > .left-inner-container { .container > .left-inner-container {
...@@ -241,19 +241,19 @@ ...@@ -241,19 +241,19 @@
color: #ccc; color: #ccc;
} }
.right-inner-container.droppable > .card-pinned.card-grayed.card-pulsate { .right-inner-container.droppable > .card-pinned.card-grayed.card-pulsate {
animation-name: stretch; animation-name: stretch;
animation-duration: 0.6s; animation-duration: 0.6s;
animation-direction: alternate; animation-direction: alternate;
animation-iteration-count: infinite; animation-iteration-count: infinite;
animation-play-state: running; animation-play-state: running;
} }
@keyframes stretch { @keyframes stretch {
0% { 0% {
transform: scale(.90); transform: scale(.90);
} }
100% { 100% {
transform: scale(1.1); transform: scale(1.1);
} }
} }
/* ==================================================== */ /* ==================================================== */
/* Search bar */ /* Search bar */
...@@ -305,15 +305,15 @@ div.search-bar { ...@@ -305,15 +305,15 @@ div.search-bar {
text-align: center; text-align: center;
cursor: pointer; cursor: pointer;
} }
@media (max-width: 1080px) { @media (max-width: 1080px) {
.indicator { .indicator {
top: 128px; top: 128px;
right: 72px; right: 72px;
} }
} }
@media (max-width: 650px) { @media (max-width: 700px) {
.indicator { .indicator {
top: 50px; top: 10px;
right: 50px; right: 50px;
} }
} }
...@@ -330,7 +330,7 @@ div.search-bar { ...@@ -330,7 +330,7 @@ div.search-bar {
/* Tooltip */ /* Tooltip */
/* ==================================================== */ /* ==================================================== */
.tooltip .tooltip-text { .tooltip .tooltip-text {
visibility: hidden; visibility: hidden;
width: 400px; width: 400px;
right: 120%; right: 120%;
top: -43px; top: -43px;
......
/** /**
* This is used to hide the sections of the index page * This is used to hide the sections of the index page
* based on the URL fragment (a.k.a. "hash") * based on the URL fragment (a.k.a. "hash")
*/ */
window.boxHider = (function() { window.boxHider = (function() {
function GetSelectedId() { function GetSelectedId() {
var boxId = window.location.hash; var boxId = window.location.hash + '-card';
if (boxId.length > 0) { if (boxId.length > 0) {
return boxId.substring(1); return boxId.substring(1);
} }
...@@ -23,13 +23,17 @@ window.boxHider = (function() { ...@@ -23,13 +23,17 @@ window.boxHider = (function() {
function GetSelectedBoxElement(id) { function GetSelectedBoxElement(id) {
var allBoxesArray = GetAllBoxElementsArray(); var allBoxesArray = GetAllBoxElementsArray();
var element = document.getElementById(id); // note: handbook and lab are actually grouped sections
if (id.startsWith('handbook') || id.startsWith('lab') || id.startsWith('qms') || id.startsWith('publication')) {
if (allBoxesArray.includes(element)) { return true;
return element; } else {
} var element = document.getElementById(id);
return false; if (allBoxesArray.includes(element)) {
return element;
}
return false;
}
} }
function HideElement(element) { function HideElement(element) {
...@@ -61,7 +65,7 @@ window.boxHider = (function() { ...@@ -61,7 +65,7 @@ window.boxHider = (function() {
var boxId = GetSelectedId(); var boxId = GetSelectedId();
if (boxId.length == 0) { if (boxId.length == 0) {
// If there is no hash in the URL, just show all the boxes // If there is no hash in the URL, just show all the boxes
ShowAllBoxes(); ShowAllBoxes();
return; return;
} }
// Otherwise, proceed to getting the corresponding div element // Otherwise, proceed to getting the corresponding div element
...@@ -84,6 +88,30 @@ window.boxHider = (function() { ...@@ -84,6 +88,30 @@ window.boxHider = (function() {
ShowElement(box); ShowElement(box);
} }
}); });
} else if (boxId.startsWith('lab')) {
allBoxes.map(function(box) {
if (!box.id.startsWith('lab')) {
HideElement(box);
} else {
ShowElement(box);
}
});
} else if (boxId.startsWith('qms')) {
allBoxes.map(function(box) {
if (!box.id.startsWith('qms')) {
HideElement(box);
} else {
ShowElement(box);
}
});
} else if (boxId.startsWith('publication')) {
allBoxes.map(function(box) {
if (!box.id.startsWith('publication')) {
HideElement(box);
} else {
ShowElement(box);
}
});
} else { } else {
allBoxes.map(function(box) { allBoxes.map(function(box) {
if (box != selectedBox) { if (box != selectedBox) {
......
This diff is collapsed.
...@@ -31,71 +31,153 @@ order: -1 ...@@ -31,71 +31,153 @@ order: -1
<div class="index-box-container"> <div class="index-box-container">
<div class="index-box noborderbox" id="access"> <div class="index-box noborderbox" id="access-card">
<h3>Access</h3> <h3>Access</h3>
<ul> <ul>
<li><a href="{{ 'external/access/harrenhal-access' | relative_url }}">HARRENHAL access</a></li> <li><a href="{{ 'external/access/harrenhal-access' | relative_url }}">HARRENHAL access</a></li>
<li><a href="{{ 'external/access/lums-passwords' | relative_url }}">LUMS account</a></li> <li><a href="{{ 'external/access/lums-passwords' | relative_url }}">LUMS account</a></li>
<li><a href="{{ 'external/access/passwords' | relative_url }}">Managing your passwords</a></li> <li><a href="{{ 'external/access/passwords' | relative_url }}">Managing your passwords</a></li>
<li><a href="{{ 'external/access/vpn-cerbere-access' | relative_url }}">VPN/CERBERE connection</a></li> <li><a href="{{ 'external/access/vpn-access' | relative_url }}">VPN connection</a></li>
<li><a href="{{ 'external/access/vpn-cerbere-access' | relative_url }}">Connect to Cerbere via VPN</a></li>
<li><a href="{{ 'external/access/vpn-mobile' | relative_url }}">VPN connection on your mobile phone</a></li>
<li><a href="{{ 'external/access/wifiNetworkAccessGuests' | relative_url }}">WiFi network access for guests</a></li>
</ul>
</div>
<div class="index-box noborderbox" id="backup-card">
<h3>Backup</h3>
<ul>
<li><a href="{{ 'external/backup/computer' | relative_url }}">Staff Computer</a></li>
</ul> </ul>
</div> </div>
<div class="index-box noborderbox" id="contribute"> <div class="index-box noborderbox" id="contribute-card">
<h3>Contribute</h3> <h3>Contribute</h3>
<ul> <ul>
<li><a href="{{ 'external/contribute/git-clients' | relative_url }}">Git clients</a></li> <li><a href="{{ 'external/contribute/git-clients' | relative_url }}">Git clients</a></li>
<li><a href="{{ 'external/contribute/install-git' | relative_url }}">Installation of Git</a></li> <li><a href="{{ 'external/contribute/install-git' | relative_url }}">Installation of Git</a></li>
<li><a href="{{ 'external/contribute/markdown' | relative_url }}">Markdown</a></li> <li><a href="{{ 'external/contribute/markdown' | relative_url }}">Markdown</a></li>
<li><a href="{{ 'external/contribute/mirror-fork' | relative_url }}">Mirror fork automatically</a></li> <li><a href="{{ 'external/contribute/mirror-fork' | relative_url }}">Mirror fork automatically</a></li>
<li><a href="{{ 'external/contribute/review' | relative_url }}">Reviewing in Git</a></li>
<li><a href="{{ 'external/contribute/ssh-key-generation' | relative_url }}">Key-based Authentication on GitLab</a></li>
<li><a href="{{ 'external/contribute/supersede' | relative_url }}">Take over a stale merge request</a></li>
<li><a href="{{ 'external/contribute/vscode' | relative_url }}">Contribute using Visual Studio Code</a></li> <li><a href="{{ 'external/contribute/vscode' | relative_url }}">Contribute using Visual Studio Code</a></li>
<li><a href="{{ 'external/contribute/web-ide' | relative_url }}">Contribute using Gitlab Web IDE</a></li> <li><a href="{{ 'external/contribute/web-ide' | relative_url }}">Contribute using Gitlab Web IDE</a></li>
</ul> </ul>
</div> </div>
<div class="index-box noborderbox" id="exchange-channels"> <div class="index-box noborderbox" id="exchange-channels-card">
<h3>Exchange channels</h3> <h3>Exchange channels</h3>
<ul> <ul>
<li><a href="{{ 'external/exchange-channels/asperaweb' | relative_url }}">AsperaWEB Quick Guide</a></li> <li><a href="{{ 'external/exchange-channels/asperaweb' | relative_url }}">AsperaWEB Quick Guide</a></li>
<li><a href="{{ 'external/exchange-channels/atlas-hpc' | relative_url }}">Data transfer between Atlas and UL HPC Clusters</a></li>
<li><a href="{{ 'external/exchange-channels/calendar' | relative_url }}">Sharing calendar in Microsoft Exchange</a></li> <li><a href="{{ 'external/exchange-channels/calendar' | relative_url }}">Sharing calendar in Microsoft Exchange</a></li>
<li><a href="{{ 'external/exchange-channels/cryptomator' | relative_url }}">Cryptomator</a></li>
<li><a href="{{ 'external/exchange-channels/lft' | relative_url }}">LCSB file transfer (LFT) Quick Guide</a></li>
<li><a href="{{ 'external/exchange-channels/owncloud' | relative_url }}">Owncloud</a></li> <li><a href="{{ 'external/exchange-channels/owncloud' | relative_url }}">Owncloud</a></li>
</ul> </ul>
</div> </div>
<div class="index-box noborderbox" id="general"> <div class="index-box noborderbox" id="general-card">
<h3>General</h3> <h3>General</h3>
<ul> <ul>
<li><a href="{{ 'external/general/attend-webex' | relative_url }}">Attend the LCSB Team Meeting online (webex)</a></li> <li><a href="{{ 'external/general/usefulLinks' | relative_url }}">Useful links for living in Luxembourg</a></li>
<li><a href="{{ 'external/general/getToLCSB' | relative_url }}">How to get to the Luxembourg Centre for Systems Biomedicine</a></li>
<li><a href="{{ 'external/general/BelvalCampusMap' | relative_url }}">Belval Campus Map</a></li>
<li><a href="{{ 'external/general/glossary' | relative_url }}">Glossary</a></li>
<li><a href="{{ 'external/general/links' | relative_url }}">Important websites</a></li>
<li><a href="{{ 'external/general/remote-working' | relative_url }}">Work remotely</a></li> <li><a href="{{ 'external/general/remote-working' | relative_url }}">Work remotely</a></li>
<li><a href="{{ 'external/general/attend-webex' | relative_url }}">Attend the LCSB Team Meeting online (webex)</a></li>
</ul> </ul>
</div> </div>
<div class="index-box noborderbox" id="integrity"> <div class="index-box noborderbox" id="integrity-card">
<h3>Integrity</h3> <h3>Integrity</h3>
<ul> <ul>
<li><a href="{{ 'external/integrity/checksum' | relative_url }}">Ensuring Integrity of Data Files with Checksums</a></li> <li><a href="{{ 'external/integrity/checksum' | relative_url }}">Ensuring Integrity of Data Files with Checksums</a></li>
<li><a href="{{ 'external/integrity/encryption/cloud' | relative_url }}">Data upload to cloud</a></li> <li><a href="{{ 'external/integrity/dmp' | relative_url }}">Data Management Plan</a></li>
<li><a href="{{ 'external/integrity/encryption/disk' | relative_url }}">Encrypting the Startup Disk for Your Laptop/Desktop</a></li> <li><a href="{{ 'external/integrity/encryption/disk' | relative_url }}">Encrypting the Startup Disk for Your Laptop/Desktop</a></li>
<li><a href="{{ 'external/integrity/encryption/file' | relative_url }}">Encrypting Files and Folders</a></li> <li><a href="{{ 'external/integrity/encryption/file' | relative_url }}">Encrypting Files and Folders</a></li>
<li><a href="{{ 'external/integrity/naming' | relative_url }}">Naming files</a></li> <li><a href="{{ 'external/integrity/naming' | relative_url }}">Naming files</a></li>
<li><a href="{{ 'external/integrity/organization' | relative_url }}">Organization</a></li> <li><a href="{{ 'external/integrity/organization' | relative_url }}">Organization</a></li>
<li><a href="{{ 'external/integrity/sanitisation' | relative_url }}">Sanitising Data Files</a></li>
<li><a href="{{ 'external/integrity/spreadsheets' | relative_url }}">Working with spreadsheets</a></li> <li><a href="{{ 'external/integrity/spreadsheets' | relative_url }}">Working with spreadsheets</a></li>
<li><a href="{{ 'external/integrity/transfer/owncloud-privatebin' | relative_url }}">Transfer of Human Data with OwnCloud</a></li>
</ul>
</div>
<div class="index-box noborderbox" id="lab-equipment-card">
<h3>Lab: Equipment</h3>
<ul>
<li><a href="{{ 'external/lab-equipment/autoclaves' | relative_url }}">Autoclaves: utilization</a></li>
<li><a href="{{ 'external/lab-equipment/balances' | relative_url }}">Balances: utilization and maintenance</a></li>
<li><a href="{{ 'external/lab-equipment/biosafety-cabinets' | relative_url }}">Biosafety Cabinets: good practices</a></li>
<li><a href="{{ 'external/lab-equipment/cold-traps' | relative_url }}">Cold traps: maintenance</a></li>
<li><a href="{{ 'external/lab-equipment/cryostorage' | relative_url }}">Cryostorage: utilization</a></li>
<li><a href="{{ 'external/lab-equipment/dishwasher-utilization-and-maintenance' | relative_url }}">Dishwasher: utilization and maintenance</a></li>
<li><a href="{{ 'external/lab-equipment/electric-car' | relative_url }}">Electric Car</a></li>
<li><a href="{{ 'external/lab-equipment/freezers' | relative_url }}">-20°C Freezers: maintenance</a></li>
<li><a href="{{ 'external/lab-equipment/freezers-80' | relative_url }}">-80°C freezers: maintenance</a></li>
<li><a href="{{ 'external/lab-equipment/freezers-150' | relative_url }}">-150°C freezers: maintenance</a></li>
<li><a href="{{ 'external/lab-equipment/fridges' | relative_url }}">Fridges: maintenance</a></li>
<li><a href="{{ 'external/lab-equipment/hoods' | relative_url }}">Hoods: Laminar Flow - Fume Hood - Biosafety Cabinet</a></li>
<li><a href="{{ 'external/lab-equipment/incubators' | relative_url }}">Incubators: maintenance</a></li>
<li><a href="{{ 'external/lab-equipment/lightcycler' | relative_url }}">LightCycler: leave the virtual instrument mode</a></li>
<li><a href="{{ 'external/lab-equipment/pH-meter' | relative_url }}">pH meter: utilization and maintenance</a></li>
<li><a href="{{ 'external/lab-equipment/power-consumption' | relative_url }}">Power consumption of the equipment</a></li>
</ul>
</div>
<div class="index-box noborderbox" id="lab-good-practice-card">
<h3>Lab: Good Practice</h3>
<ul>
<li><a href="{{ 'external/lab-good-practice/mycoplasma' | relative_url }}">Mycoplasma contamination check</a></li>
</ul> </ul>
</div> </div>
<div class="index-box noborderbox" id="lab"> <div class="index-box noborderbox" id="lab-hsa-card">
<h3>Lab</h3> <h3>Lab: Health & Safety, Access</h3>
<ul> <ul>
<li><a href="{{ 'external/lab/book-lab-equipment' | relative_url }}">How to book a Lab Equipment in Quarks</a></li> <li><a href="{{ 'external/lab-hsa/diphoterine' | relative_url }}">Diphoterine: utilization</a></li>
<li><a href="{{ 'external/lab/dishwasher-utilization-and-maintenance' | relative_url }}">Dishwasher utilization and maintenance</a></li> <li><a href="{{ 'external/lab-hsa/handwashing' | relative_url }}">Handwashing</a></li>
<li><a href="{{ 'external/lab/handwashing' | relative_url }}">Handwashing</a></li> <li><a href="{{ 'external/lab-hsa/lab-coats' | relative_url }}">Lab coats</a></li>
<li><a href="{{ 'external/lab/lab-coats' | relative_url }}">Lab coats</a></li> <li><a href="{{ 'external/lab-hsa/personal-alert-safety-system' | relative_url }}">Personal alert safety system (PASS)</a></li>
<li><a href="{{ 'external/lab/maintenance_of_cold_traps' | relative_url }}">Maintenance of cold traps </a></li> <li><a href="{{ 'external/lab-hsa/pictograms' | relative_url }}">Pictograms</a></li>
<li><a href="{{ 'external/lab/personal-alert-safety-system' | relative_url }}">Personal alert safety system (PASS)</a></li> <li><a href="{{ 'external/lab-hsa/ppe' | relative_url }}">Personal Protective Equipment (PPE)</a></li>
<li><a href="{{ 'external/lab/quarks-chemical-platform' | relative_url }}">Quarks - Chemical platform</a></li> <li><a href="{{ 'external/lab-hsa/shipment' | relative_url }}">Shipment of biological or chemical samples with carrier</a></li>
<li><a href="{{ 'external/lab/utilization-of-balances' | relative_url }}">Utilization of balances</a></li> <li><a href="{{ 'external/lab-hsa/spill' | relative_url }}">Spill in a laboratory</a></li>
<li><a href="{{ 'external/lab/utilization-of-pH-meter' | relative_url }}">Utilization of pH meter</a></li> <li><a href="{{ 'external/lab-hsa/spill-bsc' | relative_url }}">Spill in a Biosafety Cabinet</a></li>
<li><a href="{{ 'external/lab-hsa/waste' | relative_url }}">Waste Management: Chemical and Biological waste</a></li>
</ul> </ul>
</div> </div>
<div class="index-box noborderbox" id="lab-quarks-card">
<h3>Lab: Quarks</h3>
<ul>
<li><a href="{{ 'external/lab-quarks/book-lab-equipment' | relative_url }}">Booking of a Lab Equipment</a></li>
<li><a href="{{ 'external/lab-quarks/general' | relative_url }}">General information on Quarks</a></li>
</ul>
</div>
<div class="index-box noborderbox" id="on-offboarding-card">
<h3>On offboarding</h3>
<ul>
<li><a href="{{ 'external/on-offboarding/checklistBeforeArriving' | relative_url }}">Newcomer Checklist before Arriving in Luxembourg</a></li>
<li><a href="{{ 'external/on-offboarding/checklistArrival' | relative_url }}">Checklist upon arrival in Luxembourg</a></li>
<li><a href="{{ 'external/on-offboarding/onboarding' | relative_url }}">Onboarding new members at the LCSB</a></li>
</ul>
</div>
<div class="index-box noborderbox" id="publication-card">
<h3>Publication</h3>
<ul>
<li><a href="{{ 'external/publication/orcid' | relative_url }}">Obtain an ORCID</a></li>
<li><a href="{{ 'external/publication/phdThesisTemplate' | relative_url }}">LaTeX template for a doctoral thesis at University of Luxembourg</a></li>
<li><a href="{{ 'external/publication/10WaysImproveEnglish' | relative_url }}">10 ways to improve your English</a></li>
</ul>
</div>
<div class="index-box noborderbox" id="publication-code-card">
<h3>Publication: Publishing code and programs</h3>
<ul>
<li><a href="{{ 'external/publication-code/publish-repo' | relative_url }}">Publish a repository</a></li>
<li><a href="{{ 'external/publication-code/add-gitignore' | relative_url }}">Add a .gitignore to your repository</a></li>
<li><a href="{{ 'external/publication-code/publishInBiotools' | relative_url }}">Publishing a tool in *bio.tools*</a></li>
</ul>
</div>
</div><br><center><a href="{{ '/' | relative_url }}">go back</a></center><br><center><a href="{{ '/cards' | relative_url }}">Overview of all HowTo cards</a></center> </div><br><center><a href="{{ '/' | relative_url }}">go back</a></center><br><center><a href="{{ '/cards' | relative_url }}">Overview of all HowTo cards</a></center>
\ No newline at end of file
--- ---
card_order: 100
layout: page layout: page
permalink: /external/access/harrenhal-access/ permalink: /external/access/harrenhal-access/
shortcut: access:harrenhal-access shortcut: access:harrenhal-access
redirect_from: redirect_from:
- /cards/access:harrenhal-access - /cards/access:harrenhal-access
- /external/cards/access:harrenhal-access - /external/cards/access:harrenhal-access
- /access/harrenhal-access
- /external/external/access/harrenhal-access/
--- ---
# HARRENHAL access # HARRENHAL access
...@@ -24,15 +27,7 @@ Launch your favorite web browser and go to [HARRENHAL](https://harrenhal.uni.lu) ...@@ -24,15 +27,7 @@ Launch your favorite web browser and go to [HARRENHAL](https://harrenhal.uni.lu)
<img src="img/login_01.png" height="450px"><br/> <img src="img/login_01.png" height="450px"><br/>
2. Reset your temporary password 2. Configure the two-factor authentication.
* New Password - New password that you want to use.
* Confirm New Password - Confirm the new password.
* Click **Continue**
<img src="img/login_02.png" height="300px"><br/>
3. Configure the two-factor authentication.
* Scan the QR code with your favorite two-factor authentication app. Or click **show** to display the TOTP key. * Scan the QR code with your favorite two-factor authentication app. Or click **show** to display the TOTP key.
* Enter the 6-digit authentication code provided by your two-factor authentication app. * Enter the 6-digit authentication code provided by your two-factor authentication app.
...@@ -70,14 +65,3 @@ Once you successfully complete the password reset and the two-factor authenticat ...@@ -70,14 +65,3 @@ Once you successfully complete the password reset and the two-factor authenticat
2. Access to a VM in the list by clicking on it. 2. Access to a VM in the list by clicking on it.
<img src="img/server_01.png" height="500px"><br/> <img src="img/server_01.png" height="500px"><br/>
## How to change your password ?
Go to your account menu and click **Settings**
* Current Password - Current password you want to change.
* New Password - New password you want to use.
* Confirm New Password - Same new password.
* Click **Update Password**
<img src="img/change_password_01.png" height="200px"><br/>
external/access/harrenhal-access/img/all_connections_01.png

129 B | W: | H:

external/access/harrenhal-access/img/all_connections_01.png

7.97 KiB | W: | H:

external/access/harrenhal-access/img/all_connections_01.png
external/access/harrenhal-access/img/all_connections_01.png
external/access/harrenhal-access/img/all_connections_01.png
external/access/harrenhal-access/img/all_connections_01.png
  • 2-up
  • Swipe
  • Onion skin
external/access/harrenhal-access/img/change_password_01.png

130 B

external/access/harrenhal-access/img/login_01.png

130 B | W: | H:

external/access/harrenhal-access/img/login_01.png

17.2 KiB | W: | H:

external/access/harrenhal-access/img/login_01.png
external/access/harrenhal-access/img/login_01.png
external/access/harrenhal-access/img/login_01.png
external/access/harrenhal-access/img/login_01.png
  • 2-up
  • Swipe
  • Onion skin