Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A card based projects list in Vue #839

Open
wants to merge 108 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
e8c4203
Hello world for projects status
alneberg Mar 1, 2024
bac7a57
Got Vue to run for projects_status
alneberg Mar 1, 2024
555872c
A basic loop in Vue
alneberg Mar 5, 2024
9358b33
Got basic project list fetching to work in Vue
alneberg Mar 7, 2024
125eccd
Project list sorted on most recent date
alneberg Mar 7, 2024
d0ee355
Basic card setup and a checkbox to switch sorting order
alneberg Mar 7, 2024
52eb977
Badge for project type with color
alneberg Mar 8, 2024
22dc4a3
Able to filter away all
alneberg Mar 8, 2024
c805b8b
Can filter on any project status
alneberg Mar 8, 2024
7dfaf10
Can now filter on project type and project coordinator as well
alneberg Mar 8, 2024
24a8b3d
Counting types work
alneberg Mar 8, 2024
019016a
Search works
alneberg Mar 8, 2024
426480c
Started adding latest running note, but not finished
alneberg Mar 8, 2024
0f91ea3
A bit more DRY for running notes
alneberg Mar 11, 2024
45b12b7
Even more DRY
alneberg Mar 11, 2024
cf2e93b
Tiny styling of the filter part
alneberg Mar 11, 2024
4558136
Load bootstrap before vue and other js opt-ins
alneberg Mar 11, 2024
7fb5ab7
Slightly nicer filtering of projects coordinators
alneberg Mar 11, 2024
dd4e643
Nicer filter of status and type
alneberg Mar 11, 2024
69e9b44
Sorting icon
alneberg Mar 11, 2024
2e7c820
A separate project card component
alneberg Mar 11, 2024
1b7bac0
Fetch project agreements in slices
alneberg Mar 12, 2024
eb5d774
Color and badge for project status
alneberg Mar 12, 2024
0dd21af
Formatting of running note
alneberg Mar 12, 2024
b658ad7
Sticky notes on project status
alneberg Mar 12, 2024
74051cb
simplify the genstat_defaults fetching
alneberg Mar 12, 2024
a3a7fa3
Added a api endpoint to fetch multiple latest sticky notes
alneberg Mar 12, 2024
7608e0b
Basic fetching of latest sticky running note
alneberg Mar 12, 2024
7864370
Automatically fetch sticky running notes
alneberg Mar 12, 2024
7324913
Switched to a column based x-overflow layout
alneberg Mar 14, 2024
8e76b10
Quicker filtering
alneberg Mar 14, 2024
5c2033f
Added application filter
alneberg Mar 14, 2024
8647357
Bugfix for type label
alneberg Mar 14, 2024
c7e3d18
More information on each project
alneberg Mar 14, 2024
79242cc
Added tooltip and NA for project info
alneberg Mar 14, 2024
8d3fa7d
A bit of padding and bugfix of sticky dates
alneberg Mar 14, 2024
15b7296
Added a spinner for loading projects
alneberg Mar 14, 2024
c4c68a2
Possible to choose category to use for columns
alneberg Mar 14, 2024
73127ba
Select for sorting and added project comment
alneberg Mar 14, 2024
72f3086
Slight update of the readme
alneberg Mar 26, 2024
636478c
Using modals for the cards instead of collapse
alneberg Mar 26, 2024
f6b86c4
Testing out websocket toy example
alneberg Apr 3, 2024
087689d
Trying out websockets
alneberg Apr 5, 2024
295e38b
stashing some javscript websocket tests
alneberg Apr 8, 2024
06da4cc
Moved projects_samples to 'old'
alneberg Apr 11, 2024
da5e98c
Basic new project page that is also the modal content
alneberg Apr 11, 2024
19f922d
Added common header for modal and project page
alneberg Apr 11, 2024
695b446
Complete restructure of files and how the app should run
alneberg Apr 12, 2024
a6a5b14
Started playing around with tabs for projects
alneberg Apr 12, 2024
26f18c1
Dynamic column width on the project page
alneberg Apr 15, 2024
44881c1
Added tooltips with field sources and fetching sample information
alneberg May 13, 2024
8b92cbe
Added most fields on the main project page
alneberg May 14, 2024
12b0ff0
Added latest sticky note to project page
alneberg May 14, 2024
da1fa0a
Text wrap for portal title
alneberg May 14, 2024
5b50ca2
Typofix
alneberg May 15, 2024
6c5b122
left aligned the dl-horizontal and fixed the old project page
alneberg May 17, 2024
770460b
Added filtering on Library Construction Method
alneberg May 17, 2024
6c4f8e5
Sort by status and close button of the modal
alneberg May 17, 2024
ce682f3
Basic modal navigation, a bit buggy still
alneberg May 20, 2024
f379adf
Avoid overwriting sticky running notes
alneberg May 20, 2024
b5ed532
More Vue style handling of the modal, managed to fix the scrolling bug
alneberg May 20, 2024
2e75f4f
Got the tabs working again
alneberg May 20, 2024
1932591
Moved running notes to it's own component
alneberg May 21, 2024
a7875d7
Collapseable new running note form
alneberg May 21, 2024
af4a4af
Filtering and searching project running notes work
alneberg May 21, 2024
2da5eb8
Toggle preview categories for running notes
alneberg May 22, 2024
ee0c078
Put together user tagging
alneberg May 24, 2024
cec9f41
Trying to submit running notes from Vue
alneberg May 27, 2024
508d89b
Fix for user with running notes and also disable form when submitting…
alneberg May 28, 2024
77ff3ed
Press enter to start adding a running note
alneberg May 28, 2024
2264eb1
Added lab responsible as a filter option
alneberg May 28, 2024
3aa0970
Don't always show the full date of running notes
alneberg May 28, 2024
7ce9ee5
Trying out reports
alneberg May 28, 2024
a31e969
Type is not a good variable name
alneberg May 28, 2024
f72bc97
Don't read in MultiQC until needed
alneberg May 29, 2024
12803f6
Reversed key and value in javascript
alneberg May 29, 2024
1d19ed7
Display reports somewhat nice
alneberg May 30, 2024
2c53168
Pill badge
alneberg Jun 3, 2024
fbb451f
trying out badges for multiqc as well
alneberg Jun 3, 2024
352924d
Less padding
alneberg Jun 3, 2024
e8f38ab
Adjusting report titles in links
alneberg Jun 3, 2024
189d889
Collapseable filter list
alneberg Jun 3, 2024
626711c
Sorting the filter alternatives
alneberg Jun 3, 2024
7f17934
Fix link bug for reports
alneberg Jun 3, 2024
787c8aa
Cleaning up the new project page title
alneberg Jun 4, 2024
b4f1453
Moved out columns and sorting selects
alneberg Jun 4, 2024
8110541
Display active filters
alneberg Jun 5, 2024
8c11163
Refactor filters and got fitler buttons to work
alneberg Jun 11, 2024
5a3c62f
Renamed from projects status to project cards and added under constru…
alneberg Jun 17, 2024
15e2dc8
Changed default setting and restored type filter
alneberg Jun 17, 2024
2bf8f1d
Dev version of vue to help with debugging
alneberg Jun 26, 2024
e1ddf67
Renaming the html files temporarily for merging
alneberg Jun 26, 2024
e46423f
Merge with master
alneberg Jun 26, 2024
78793ae
Moved project samples to old and replaced it
alneberg Jun 26, 2024
a358ff0
README formatting
alneberg Jun 26, 2024
80e75b0
Link to project cards from index and link to old project page from new
alneberg Jun 26, 2024
627676e
Link from old project page to the new one
alneberg Jun 26, 2024
a2819c6
Autoreload for the old html
alneberg Jun 26, 2024
6b8b1ea
Copy project name to clipboard
alneberg Jun 26, 2024
0a3d3f4
Merged with master
alneberg Nov 8, 2024
72b4cdb
Changed to micromamba dockerfile and added automatic server start in …
alneberg Nov 11, 2024
957844a
Fixed formatting and a bug found by ruff
alneberg Nov 11, 2024
eb30988
Some clarifying comments
alneberg Nov 14, 2024
0b9131d
Ruff formatting
alneberg Nov 14, 2024
b0cc93c
Removed unused variables
alneberg Nov 14, 2024
513fd10
Merged with master
alneberg Nov 14, 2024
ec19d4f
Spelling fix from review
alneberg Nov 25, 2024
b70a7b8
Added source for external js
alneberg Nov 25, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 6 additions & 9 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,19 @@
"extensions": [
"charliermarsh.ruff",
"ms-python.python",
"vscode-es6-string-html"
"Tobermory.es6-string-html"
]
}
},
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
"postCreateCommand": [
"pip3 install -e .",
"ln -s /root/conf/.genologicsrc /root/.genologicsrc",
"ln -s /root/conf/genosqlrc.yaml /root/.genosqlrc.yaml"
],
"forwardPorts": [9761],
"postCreateCommand": "./.devcontainer/postCreateCommand.sh",
"postStartCommand": "cd run_dir && python ../status_app.py --develop --testing_mode",
// Configure tool-specific properties.
// "customizations": {},
// Uncomment to connect as an existing user other than the container default. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "devcontainer"
"remoteUser": "mambauser",
"mounts": [
"source=${localEnv:HOME}/conf,target=/root/conf,type=bind,consistency=cached"
"source=${localEnv:HOME}/conf,target=/home/mambauser/conf,type=bind,consistency=cached"
]
}
9 changes: 9 additions & 0 deletions .devcontainer/postCreateCommand.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/usr/bin/env bash

/usr/local/bin/_entrypoint.sh

echo $PATH

python -m pip install -e .
ln -s /home/mambauser/conf/.genologicsrc /home/mambauser/.genologicsrc
ln -s /home/mambauser/conf/genosqlrc.yaml /home/mambauser/.genosqlrc.yaml
22 changes: 14 additions & 8 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
FROM condaforge/mambaforge:latest

FROM mambaorg/micromamba:latest

# Need git to install genologics
USER root
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
&& rm -rf /var/lib/apt/lists/*
USER $MAMBA_USER

# Install dependencies
COPY conda_requirements.yml conda_requirements.yml
RUN mamba install -y python=3.12
RUN mamba install -y pango>=1.42.4 pandas>=1.3.2
RUN mamba install -y -c conda-forge psycopg2 open-fonts xorg-libxrender xorg-libxext xorg-libxau
COPY --chown=$MAMBA_USER:$MAMBA_USER conda_requirements.yml conda_requirements.yml
COPY --chown=$MAMBA_USER:$MAMBA_USER requirements.txt /tmp/requirements.txt
COPY --chown=$MAMBA_USER:$MAMBA_USER requirements_dev.txt /tmp/requirements_dev.txt

RUN micromamba install -y -n base -f conda_requirements.yml

COPY requirements.txt requirements.txt
ARG MAMBA_DOCKERFILE_ACTIVATE=1
# Update pip to latest version
RUN python -m ensurepip --upgrade
RUN python -m pip install --upgrade pip
RUN python -m pip install --upgrade setuptools
RUN python -m pip install -r requirements.txt
RUN python -m pip install -r requirements.txt
RUN python -m pip install -r requirements_dev.txt
11 changes: 8 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
# Genomics Status

Genomics Status is a Tornado web app for visualizing information and statistics regarding SciLifeLab Genomics platform operations.
Genomics Status is a Tornado web app for visualizing information and statistics regarding operations by NGI Stockholm at SciLifeLab.

Status interfaces with StatusDB; the CouchDB database instance we're using at SciLifeLab to store metadata in
various forms. Document specifications for StatusDB are available in the internal wiki. Documentation about CouchDB can be found [here](http://guide.couchdb.org/).
Genomics Status interfaces with StatusDB; the CouchDB database instance used to store metadata in various forms. Documentation about CouchDB can be found [here](http://guide.couchdb.org/).

## Installing and running genomics status

Expand Down Expand Up @@ -169,3 +168,9 @@ Handlers that inherit from ```tornado.web.RequestHandler``` should implement at
Tornado templates are a good way to generate dynamic pages server side. The advantage of templates is that you can embeed python code in them. [The official documentation](http://www.tornadoweb.org/en/stable/template.html) is good enough to learn how they work.

On Genomics Status, templates are located in `status/run_dir/design`


TODO:
- [ ] Fix links to old project page vs new project page
- [ ] Add link to project cards from menu and front page

2 changes: 1 addition & 1 deletion run_dir/design/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -157,9 +157,9 @@ <h6 class="dropdown-header">External</h6>
</div>
</div>

<script src="/static/js/bootstrap-5-alpha.bundle.min.js"></script>
{% block js %}
{% end %}
<script src="/static/js/bootstrap-5-alpha.bundle.min.js"></script>
<script>
$('.a-modal').on('click', function(e){
e.preventDefault();
Expand Down
2 changes: 2 additions & 0 deletions run_dir/design/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ <h6 class="dropdown-header">User Presets</h6>
<li><a class="dropdown-item" href="/projects?load_preset={{preset_name}}">{{preset_name}}</a></li>
{% end %}
{% end %}
<div role="separator" class="dropdown-divider"></div>
<li><a class="dropdown-item" href="/project_cards">Experimental: Project Cards</a></li>
</ul>
</div>
</div>
Expand Down
24 changes: 24 additions & 0 deletions run_dir/design/project_cards.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{% extends "base.html" %}

<!--
Template file: projects_status.html
URL: /project_cards
Title: Project cards
-->


{% block stuff %}

<div id="v_projects_main">
<v-projects-cards :user="{email: '{{user.email}}', user: '{{user.name}}'}"/>
</div>
{% end %}

{% block js %}

<script src="/static/js/vue.v3.2.47.global.prod.js"></script>
<script src="/static/js/axios.v1.3.4.min.js"></script>
<script src="/static/js/external/textarea-caret.3.1.0.js"></script>
<script type="module" src="/static/js/projects_main_vue.js"></script>

{% end %}
Loading
Loading