Commit a9f07305 authored by flothoni's avatar flothoni

Merge branch 'dev' of gitlab.inria.fr:vidjil/vidjil into...

Merge branch 'dev' of gitlab.inria.fr:vidjil/vidjil into feature-c/4014-clones-selectionnable-even-if-disable
parents 1e9c31ec f6bb6e74
Pipeline #188613 failed with stages
in 16 minutes and 51 seconds
......@@ -51,12 +51,13 @@ test_germlines:
- /^feature-.*g.*\/.*$/
- schedules
# Doc
# Includes
include:
- local: '/doc/.gitlab-ci.yml'
- local: '/doc/.gitlab-ci.yml' # Doc
- local: 'algo/.gitlab-ci-compilers.yml' # Stage multiple_tests
- local: 'algo/.gitlab-ci.yml' # Vidjil-algo pipelines
- template: Code-Quality.gitlab-ci.yml # Code quality
# Algorithm
......@@ -188,6 +189,7 @@ test_browser_unit:
artifacts:
paths:
- browser/
when: always
only:
- /^feature-.*c.*\/.*$/
- /^hotfix-.*c.*\/.*$/
......@@ -207,7 +209,8 @@ test_browser_unit:
- HEADLESS=1 make -C browser/test functional
artifacts:
paths:
- browser/
- browser/
when: always
reports:
junit: browser/test/test/TEST-*.xml
only:
......@@ -234,6 +237,7 @@ test_browser_unit:
artifacts:
paths:
- browser/
when: always
reports:
junit: browser/test/test/TEST-*.xml
only:
......@@ -285,7 +289,14 @@ old-chrome-browser-functional-external-chrome:
tags:
- legacy
# Code quality
code_quality:
stage: test_quality
artifacts:
paths: [gl-code-quality-report.json]
code_quality_custom:
stage: test_quality
script: make -C browser quality
only:
......@@ -412,6 +423,7 @@ deploy_review_server:
- make -C browser icons
- cp ./docker/vidjil-client/conf/conf.js ./browser/js/conf.js
- sed -i -r "s/localhost/${CI_BUILD_REF_SLUG}.server.ci.vidjil.org/g" ./browser/js/conf.js
- 'sed -i "s/\"server_id\" : \"\"/\"server_id\" : \"${CI_BUILD_REF_SLUG}.server.ci.vidjil.org\"/" ./browser/js/conf.js'
- sed -r 's/^.*FILE_SOURCE.*$/FILE_SOURCE="\/usr\/share\/vidjil\/demo"/' ./docker/vidjil-server/conf/defs.py > ./server/web2py/applications/vidjil/modules/defs.py
- sed -i -e "/EMAIL_SUBJECT_START/c EMAIL_SUBJECT_START='[Vidjil/CI][$CI_COMMIT_REF_NAME]'" -e '/FROM_EMAIL/c FROM_EMAIL="server.ci@vidjil.org"' ./server/web2py/applications/vidjil/modules/defs.py
- mv docker docker_${CI_BUILD_REF_SLUG}
......@@ -423,7 +435,7 @@ deploy_review_server:
- sed -i -r "s/WEB2PY_ADMIN_PASSWORD=/WEB2PY_ADMIN_PASSWORD=$REVIEW_SERVER_ADMIN_PASSWORD/" docker-compose.yml
- cd ..
- rsync -av --exclude .git . $REVIEW_SERVER:$REVIEW_SERVER_PATH_SERVER$CI_BUILD_REF_SLUG || $(case "$?" in 0|23) exit 0 ;; *) exit $?; esac)
- ssh $REVIEW_SERVER "cd $REVIEW_SERVER_PATH_SERVER; ./install_certs.sh ${CI_BUILD_REF_SLUG}; cd ${CI_BUILD_REF_SLUG}/docker_${CI_BUILD_REF_SLUG}; mkdir -p postfix/ssl; docker-compose up -d mysql fuse uwsgi nginx workers"
- ssh $REVIEW_SERVER "cd $REVIEW_SERVER_PATH_SERVER; ./install_certs.sh ${CI_BUILD_REF_SLUG}; cd ${CI_BUILD_REF_SLUG}/docker_${CI_BUILD_REF_SLUG}; mkdir -p postfix/ssl; docker-compose up -d mysql fuse uwsgi nginx workers; sleep 20s; docker-compose exec -T uwsgi bash -c 'cd /usr/share/vidjil/server/web2py/applications/vidjil/scripts; /usr/local/bin/gosu 1005 bash launch_python_script.sh load-sql.py -n /usr/share/vidjil/docker/ci/ci.sql'"
environment:
name: review_server/$CI_BUILD_REF_NAME
url: http://$CI_BUILD_REF_SLUG.server.ci.vidjil.org/browser/
......
......@@ -32,14 +32,17 @@ Benchmarks
* [ ] push: `git push origin master release-20XX-XX`
* [ ] mirror to GH: `git push github master release-20XX.XX`
* [ ] click `publish_release` (there may be changes to CD...)
* [ ] deploy the doc
After these steps, we merge back the release in `dev`:
* [ ] merge this MR to dev
## After the release: deploy
Sometimes, the deploy stages can occur several days after the release.
Open a new internal issue with the "Deploy" template.
* [ ] Click `deploy_release_prod` in the `deploy_prod` stage, deploying the release on `vidjil-algo-next` on the public server
* [ ] Open a new internal issue with the `Deploy (vidjil-algo)` template : vdj#XXXXX
/label ~cpp
......@@ -291,16 +291,16 @@ int main (int argc, char **argv)
// ----------------------------------------------------------------------------------------------------------------------
group = "Germline presets (at least one -g or -V/(-D)/-J option must be given)";
group = "Germline/recombination selection (at least one -g or -V/(-D)/-J option must be given)";
vector <string> multi_germlines ;
app.add_option("--germline,-g", multi_germlines, R"Z(
-g <.g FILE>(:FILTER)
multiple locus/germlines, with tuned parameters.
-g <.g FILE>(:FOCUS) ...
germline preset(s) (.g file(s)), detecting multiple recombinations, with tuned parameters.
Common values are '-g germline/homo-sapiens.g' or '-g germline/mus-musculus.g'
The list of locus/recombinations can be restricted, such as in '-g germline/homo-sapiens.g:IGH,IGK,IGL'
One can focus on some recombinations, such as in '-g germline/homo-sapiens.g:IGH,IGK,IGL'
-g PATH
multiple locus/germlines, shortcut for '-g PATH/)Z" DEFAULT_MULTI_GERMLINE_FILE R"Z(',
human germline preset, shortcut for '-g PATH/)Z" DEFAULT_MULTI_GERMLINE_FILE R"Z(',
processes human TRA, TRB, TRG, TRD, IGH, IGK and IGL locus, possibly with incomplete/unusal recombinations)Z")
-> group(group) -> type_name("GERMLINES");
......@@ -314,7 +314,7 @@ int main (int argc, char **argv)
app.add_option("-D", v_reps_D,
"custom D germline multi-fasta file(s), analyze into V(D)J components")
"custom D germline multi-fasta file(s) for V(D)J designation")
-> group(group) -> type_name("FILE");
app.add_option("-J", v_reps_J,
......
......@@ -4,9 +4,15 @@
/* default tag color */
/* #dcffed also available */
#vmi-menu {
position: unset;
bottom: unset;
top: 32px;
right: 0;
width: unset;
background-color: #000000;
margin: 6px 0 0 0;
}
#vmi-menu div {
padding: 5px;
border: 1px solid;
}
html {
height: 100%;
......@@ -52,14 +58,15 @@ ul {
}
#visu-container {
position: relative;
display: flex;
flex: 1 1 auto;
flex-flow: column;
-khtml-user-select: none;
-webkit-user-select: none;
-moz-user-select: -moz-none;
-ms-user-select: none;
user-select: none;
height: 100%;
margin: auto;
width: 100%;
overflow: hidden;
background: #000000;
}
......@@ -107,28 +114,38 @@ ul {
user-select: none;
overflow: hidden;
}
#mid-container {
#vidjil-panels {
position: fixed;
display: flex;
flex: 1 1 auto;
top: 32px;
left: 0;
bottom: 125px ;
width: calc(100% - 6px + 6px);
overflow: hidden;
background: #000000;
margin: 6px;
display: flex;
flex: auto;
overflow: hidden;
}
.vidjil-panels-left {
width: calc(100% - 6px - 70px);
}
.vidjil-panels-full {
width: calc(100% - 6px);
}
#mid-container {
display: flex;
flex: auto;
overflow: hidden;
}
#right-container {
-khtml-user-select: none;
-webkit-user-select: none;
-moz-user-select: -moz-none;
-ms-user-select: none;
user-select: none;
display: flex;
flex: 1 0 auto;
flex-flow: column;
float: right;
width: 0px;
width: 475px;
}
#left-container {
display: flex;
flex: 1 0 auto;
flex-flow: column;
position: relative;
width: 475px;
......@@ -142,11 +159,16 @@ ul {
#visu,
#visu2 {
height: 50%;
display: flex;
flex: auto;
width: 100%;
}
#visu2 {
max-height: calc(100% - 6px);
}
#visu3 {
height: 100%;
}
line {
stroke: #586e75;
stroke-width: 0.5;
......@@ -414,6 +436,7 @@ line {
#list {
flex: 1 1 auto;
height: 0px;
min-height: 20%;
max-height: 100%;
display: flex;
flex-direction: column;
......@@ -445,12 +468,9 @@ line {
padding-right: 30px;
}
.list {
width: 445px;
display: block;
padding: 2px;
}
.listElem {
width: 445px;
font-size: 13px;
cursor: pointer;
-webkit-transition: color 0.2s;
......@@ -459,19 +479,20 @@ line {
transition: color 0.2s;
padding: 1px 4px 4px 1px;
height: 14px;
display: flex;
}
.selected {
color: #fdf6e3;
}
.nameBox {
width: 300px;
margin-right: 10px;
overflow: hidden;
display: inline-block;
height: 16px;
position: relative;
float: left;
white-space: nowrap;
display: flex;
flex: 1 1 auto;
}
.seq-fixed .nameBox {
width: 250px;
......@@ -479,7 +500,6 @@ line {
.list .axisBox,
.axisBox span {
max-width: 52px;
float: right;
overflow: hidden;
display: inline-block;
max-height: 16px;
......@@ -500,9 +520,8 @@ line {
}
.starBox {
width: 16px;
float: right;
height: 16px;
display: inline-block;
display: inline-flex;
user-select: none;
overflow: hidden;
}
......@@ -517,9 +536,8 @@ line {
.infoBox {
font-size: 90%;
width: 16px;
float: right;
height: 15px;
display: inline-block;
display: inline-flex;
user-select: none;
text-align: center;
border: solid;
......@@ -588,8 +606,6 @@ line {
}
/*style segmenter element*/
.list_select {
width: 445px;
display: block;
border: solid;
border-width: 2px;
padding: 0px;
......@@ -606,7 +622,7 @@ line {
}
.seq-fixed {
position: relative;
display: inline-block;
display: inline-flex;
width: auto;
margin: -2px;
padding: 2px;
......@@ -974,6 +990,10 @@ div.button {
padding-left: 10px;
padding-right: 10px;
}
.clipboard-button {
margin-left: -5px;
padding: 3px;
}
.smallbutton {
cursor: pointer;
font-size: 13px;
......@@ -1063,9 +1083,8 @@ span.logo {
}
#bot-container {
position: fixed;
left: 0;
bottom: 0;
width: 100%;
left: 6px;
border-top: solid;
border-width: 6px;
min-height: 125px;
......@@ -1339,11 +1358,9 @@ span.warningReads {
.axis_select select[selected=selected] {
color: #fdf6e3;
}
#visu-separator {
.visu-separator {
position: relative;
height: 6px;
cursor: move;
cursor: -webkit-grab;
background: #333333;
}
#bot-separator {
......@@ -1354,15 +1371,17 @@ span.warningReads {
position: relative;
top: -6px;
}
#vertical-separator {
#vertical-separator,
#vertical-separator-right {
position: relative;
float: left;
height: 100%;
width: 6px;
line-height: calc(100% - 1px);
background: #333333;
cursor: pointer;
}
#vertical-separator-right {
float: right;
}
#visu-separator:hover,
#vertical-separator:hover,
#bot-separator:hover {
......@@ -1906,11 +1925,12 @@ table.log textarea {
border: 1px solid #333333;
overflow-wrap: break-word;
overflow-y: hidden;
max-width: 457px;
min-height: 32px;
max-height: 32px;
width: 100%;
width: 99%;
background-color: #000000;
margin-left: auto;
margin-right: auto;
}
.patient_info_text {
margin-bottom: 5px;
......@@ -2284,3 +2304,30 @@ form .form_label {
.list_lock_on {
color: #839496;
}
.set_group {
display: inline-flex;
flex-wrap: wrap;
flex-direction: row;
margin-bottom: 25px;
margin-right: 15px;
flex-flow: column;
width: 48%;
}
.set_group_header {
width: 100%;
}
.set_cell {
word-break: break-all;
}
.set_data {
width: 100%;
}
.analysis_button {
display: inline-flex;
}
.margined-top {
margin-top: 10px;
}
.margined-bottom {
margin-bottom: 10px;
}
......@@ -11,7 +11,7 @@ retrieve:
### Don't edit below ###
FONTELLO_HOST ?= http://fontello.com
FONTELLO_HOST ?= https://fontello.com
fontopen:
@if test ! `which curl` ; then \
......
......@@ -4,9 +4,15 @@
/* default tag color */
/* #dcffed also available */
#vmi-menu {
position: unset;
bottom: unset;
top: 32px;
right: 0;
width: unset;
background-color: #ffffff;
margin: 6px 0 0 0;
}
#vmi-menu div {
padding: 5px;
border: 1px solid;
}
html {
height: 100%;
......@@ -52,14 +58,15 @@ ul {
}
#visu-container {
position: relative;
display: flex;
flex: 1 1 auto;
flex-flow: column;
-khtml-user-select: none;
-webkit-user-select: none;
-moz-user-select: -moz-none;
-ms-user-select: none;
user-select: none;
height: 100%;
margin: auto;
width: 100%;
overflow: hidden;
background: #ffffff;
}
......@@ -107,28 +114,38 @@ ul {
user-select: none;
overflow: hidden;
}
#mid-container {
#vidjil-panels {
position: fixed;
display: flex;
flex: 1 1 auto;
top: 32px;
left: 0;
bottom: 125px ;
width: calc(100% - 6px + 6px);
overflow: hidden;
background: #ffffff;
margin: 6px;
display: flex;
flex: auto;
overflow: hidden;
}
.vidjil-panels-left {
width: calc(100% - 6px - 70px);
}
.vidjil-panels-full {
width: calc(100% - 6px);
}
#mid-container {
display: flex;
flex: auto;
overflow: hidden;
}
#right-container {
-khtml-user-select: none;
-webkit-user-select: none;
-moz-user-select: -moz-none;
-ms-user-select: none;
user-select: none;
display: flex;
flex: 1 0 auto;
flex-flow: column;
float: right;
width: 0px;
width: 475px;
}
#left-container {
display: flex;
flex: 1 0 auto;
flex-flow: column;
position: relative;
width: 475px;
......@@ -142,11 +159,16 @@ ul {
#visu,
#visu2 {
height: 50%;
display: flex;
flex: auto;
width: 100%;
}
#visu2 {
max-height: calc(100% - 6px);
}
#visu3 {
height: 100%;
}
line {
stroke: #93a1a1;
stroke-width: 0.5;
......@@ -248,10 +270,9 @@ line {
fill: #ffffff;
opacity: 1;
pointer-events: none;
}
#resolution5 {
fill: #cccccc;
fill: #ffffff;
opacity: 0.6;
pointer-events: none;
}
......@@ -415,6 +436,7 @@ line {
#list {
flex: 1 1 auto;
height: 0px;
min-height: 20%;
max-height: 100%;
display: flex;
flex-direction: column;
......@@ -446,12 +468,9 @@ line {
padding-right: 30px;
}
.list {
width: 445px;
display: block;
padding: 2px;
}
.listElem {
width: 445px;
font-size: 13px;
cursor: pointer;
-webkit-transition: color 0.2s;
......@@ -460,19 +479,20 @@ line {
transition: color 0.2s;
padding: 1px 4px 4px 1px;
height: 14px;
display: flex;
}
.selected {
color: #002b36;
}
.nameBox {
width: 300px;
margin-right: 10px;
overflow: hidden;
display: inline-block;
height: 16px;
position: relative;
float: left;
white-space: nowrap;
display: flex;
flex: 1 1 auto;
}
.seq-fixed .nameBox {
width: 250px;
......@@ -480,7 +500,6 @@ line {
.list .axisBox,
.axisBox span {
max-width: 52px;
float: right;
overflow: hidden;
display: inline-block;
max-height: 16px;
......@@ -501,9 +520,8 @@ line {
}
.starBox {
width: 16px;
float: right;
height: 16px;
display: inline-block;
display: inline-flex;
user-select: none;
overflow: hidden;
}
......@@ -518,9 +536,8 @@ line {
.infoBox {
font-size: 90%;
width: 16px;
float: right;
height: 15px;
display: inline-block;
display: inline-flex;
user-select: none;
text-align: center;
border: solid;
......@@ -589,8 +606,6 @@ line {
}
/*style segmenter element*/
.list_select {
width: 445px;
display: block;
border: solid;
border-width: 2px;
padding: 0px;
......@@ -607,7 +622,7 @@ line {
}
.seq-fixed {
position: relative;
display: inline-block;
display: inline-flex;
width: auto;
margin: -2px;
padding: 2px;
......@@ -820,7 +835,7 @@ span .end-codon {
transition-delay: 0s, 0s;
}
#add_clone_menu > #addclone_input.error {
border: 1px solid #8b0000;
border: 1px solid darkred;
}
#menu_right_part {
float: right;
......@@ -893,7 +908,7 @@ a.tag-link {
.modal.info-container {
top: 50px;
left: 495px;