diff --git a/.babelrc b/.babelrc deleted file mode 100644 index d3eac154c..000000000 --- a/.babelrc +++ /dev/null @@ -1,11 +0,0 @@ -{ - "presets": ["@babel/preset-react", "@babel/preset-env"], - "plugins": [ - [ - "@babel/plugin-transform-runtime", - { - "regenerator": true - } - ] - ] -} diff --git a/.docker.test.env b/.docker.test.env new file mode 100644 index 000000000..c6fb25bec --- /dev/null +++ b/.docker.test.env @@ -0,0 +1,26 @@ +# APP +FLASK_ENV=development +BEHIND_PROXY=False +SERVICE_VERSION=7d60186f594d420f82901f0514eb3c7e6b6e62d5 +LOGLEVEL=DEBUG +LOGFILE="/var/log/headstart/headstart.log" + +# DB +POSTGRES_USER=testuser +POSTGRES_PASSWORD=postgres +POSTGRES_HOST=db_server +POSTGRES_PORT=5434 +POSTGRES_DATABASE=testdb + +# REDIS +REDIS_HOST=redis-1 +REDIS_PORT=6355 +REDIS_PASSWORD=testredispassword +REDIS_DB=0 + +# R +R_BASE_APIKEY=5812aa4367eb1dc3d366d99fdaaef0e3 + +# ORCID +ORCID_CLIENT_ID="APP-DL8ZAR72EZWW15NX" +ORCID_CLIENT_SECRET="a3389b1a-19c0-4f78-857a-4aba19f5fa46" \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index b5599658c..000000000 --- a/.eslintrc.js +++ /dev/null @@ -1,36 +0,0 @@ -module.exports = { - parser: "@babel/eslint-parser", - parserOptions: { - requireConfigFile: false, - babelOptions: { - presets: ["@babel/preset-react"], - }, - ecmaFeatures: { - jsx: true, - }, - }, - extends: [ - "eslint:recommended", - "plugin:react/recommended", - "plugin:flowtype/recommended", - ], - plugins: ["react", "react-hooks"], - rules: { - // we don't use prop-types - "react/prop-types": 0, - // this would throw an error e.g. for quotes ('') - "react/no-unescaped-entities": 0, - // in callbacks it's handy to leave unused function parameters - "no-unused-vars": ["error", { args: "none" }], - }, - env: { - browser: true, - node: true, - es6: true, - }, - settings: { - react: { - version: "detect", - }, - }, -}; diff --git a/.flake8 b/.flake8 new file mode 100644 index 000000000..3867c3f86 --- /dev/null +++ b/.flake8 @@ -0,0 +1,5 @@ +[flake8] +max-line-length = 100 +# required for compatibility with Black: +extend-ignore = E203 +exclude = .venv \ No newline at end of file diff --git a/.gitignore b/.gitignore index d70ade073..35adbffb4 100644 --- a/.gitignore +++ b/.gitignore @@ -44,7 +44,6 @@ server/preprocessing/other-scripts/renv /*.Rproj .Rproj.user - # python files *.pyc *.pkl @@ -54,6 +53,7 @@ server/preprocessing/other-scripts/renv /server/nbproject/private/ .pytest_cache *__pycache__* +.venv # python files *.pyc @@ -63,4 +63,17 @@ server/preprocessing/other-scripts/renv /nbproject/private/ /server/nbproject/private/ .pytest_cache -*__pycache__* \ No newline at end of file +*.egg-info/ +*__pycache__* + +# Mac files +.DS_Store + +# personal +.vscode/settings.json +# temporal +local_dev/config_local_headstart.ini +local_dev/config_local_searchflow.ini + +# mac os +.DS_Store diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 000000000..11f628e05 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v14.21.3 \ No newline at end of file diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 000000000..441b983df --- /dev/null +++ b/babel.config.js @@ -0,0 +1,20 @@ +module.exports = { + presets: [ + "@babel/preset-react", + [ + "@babel/preset-env", + { + targets: { node: "current" }, + modules: "commonjs", + }, + ], + ], + plugins: [ + [ + "@babel/plugin-transform-runtime", + { + regenerator: true, + }, + ], + ], +}; diff --git a/docker-compose-dataworker.yml b/docker-compose-dataworker.yml deleted file mode 100644 index 9ca1e3804..000000000 --- a/docker-compose-dataworker.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: '3.7' - -services: - - dataprocessing: - image: dataprocessing:${SERVICE_VERSION} - env_file: - - server/workers/dataprocessing/dataprocessing.env - environment: - SERVICE_VERSION: "${SERVICE_VERSION}" - REDIS_HOST: "${REDIS_HOST}" - REDIS_PORT: "${REDIS_PORT}" - REDIS_DB: "${REDIS_DB}" - REDIS_PASSWORD: "${REDIS_PASSWORD}" - restart: always - volumes: - - /opt/local/renv/cache:/renv/cache - - /var/log/headstart:/var/log/headstart - network_mode: host \ No newline at end of file diff --git a/docker-compose-end2endtest.yml b/docker-compose-end2endtest.yml index f6d07a283..891230de3 100644 --- a/docker-compose-end2endtest.yml +++ b/docker-compose-end2endtest.yml @@ -1,23 +1,22 @@ -# docker-compose-end2endtest.yml - -version: '3.7' services: end2endtest: build: context: ./server/workers/tests - dockerfile: ./Dockerfile_tests + dockerfile: ./Dockerfile.tests container_name: end2endtest hostname: "end2endtest" environment: - POSTGRES_USER: "testuser" - POSTGRES_PASSWORD: "testpassword" - POSTGRES_HOST: "test_db" - POSTGRES_PORT: 5432 - DEFAULT_DATABASE: "testdb" + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + POSTGRES_HOST: ${POSTGRES_HOST} + POSTGRES_PORT: ${POSTGRES_PORT} + POSTGRES_HOSTS: ${POSTGRES_HOST} + POSTGRES_PORTS: ${POSTGRES_PORT} + DEFAULT_DATABASE: ${POSTGRES_DATABASE} SERVICE_VERSION: "test_version" ports: - - "0.0.0.0:5000:5000" + - "7575:80" volumes: - ./server/:/app depends_on: @@ -28,40 +27,72 @@ services: networks: - test - backend: - container_name: backend - hostname: "backend" - build: - context: ./server/workers/tests - dockerfile: ./Dockerfile_backend - volumes: - - ./server/:/var/www/html/server - - ./server/workers/tests/test_data/test.sqlite:/var/www/localstorage/test.sqlite + db: + container_name: ${POSTGRES_HOST} + image: 'postgres:12.2-alpine' restart: "no" + hostname: ${POSTGRES_HOST} + environment: + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + POSTGRES_PORT: ${POSTGRES_PORT} + DEFAULT_DATABASE: ${POSTGRES_DATABASE} + command: postgres -c config_file=/etc/postgresql.conf -c hba_file=/etc/pg_hba.conf + volumes: + - ./server/workers/tests/test_data/pg_hba_test_local.conf:/etc/pg_hba.conf + - ./server/workers/tests/test_data/postgresql_test_local.conf:/etc/postgresql.conf + ports: + - "${POSTGRES_PORT}:${POSTGRES_PORT}" networks: - test - ports: - - "80:80" + + redis: + image: 'redis:6.0-alpine' + restart: unless-stopped + hostname: "${REDIS_HOST}" + # container_name: "${REDIS_HOST}" + environment: + REDIS_HOST: "${REDIS_HOST}" + REDIS_PORT: "${REDIS_PORT}" + REDIS_PASSWORD: "${REDIS_PASSWORD}" + command: ["redis-server", "/etc/redis/redis.conf", "--bind", "${REDIS_HOST}", "--port", "${REDIS_PORT}"] + volumes: + - 'redis:/var/lib/redis/data' + - ./local_dev/redis.conf:/etc/redis/redis.conf + ports: + - "127.0.0.1:${REDIS_PORT}:${REDIS_PORT}" + networks: + - test api: build: - context: server - dockerfile: workers/api/Dockerfile + context: server/workers + dockerfile: api/Dockerfile + container_name: api + hostname: "api" restart: unless-stopped environment: - SERVICE_VERSION: "test" - BEHIND_PROXY: "false" - DEFAULT_DATABASE: "testdb" - FLASK_ENV: "development" - volumes: - - ./server/workers/tests/mock_app.py:/app/mock_app.py - command: ["python", "mock_app.py"] + SERVICE_VERSION: "${SERVICE_VERSION}" + REDIS_HOST: "${REDIS_HOST}" + REDIS_PORT: "${REDIS_PORT}" + REDIS_PASSWORD: "${REDIS_PASSWORD}" + REDIS_DB: "${REDIS_DB}" + BEHIND_PROXY: "${BEHIND_PROXY}" + FLASK_ENV: "${FLASK_ENV}" + POSTGRES_USER: "${POSTGRES_USER}" + POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}" + POSTGRES_HOST: "${POSTGRES_HOST}" + DEFAULT_DATABASE: "${POSTGRES_DATABASE}" + command: ["python", "api/tests/mock_app.py"] + depends_on: + - redis + - db networks: - test persistence: - container_name: api - hostname: "test_api" + container_name: persistence + hostname: "persistence" build: context: server dockerfile: workers/persistence/Dockerfile @@ -69,37 +100,230 @@ services: environment: SERVICE_VERSION: "test" BEHIND_PROXY: "false" - DEFAULT_DATABASE: "testdb" FLASK_ENV: "development" + POSTGRES_HOSTS: ${POSTGRES_HOST} + POSTGRES_PORTS: ${POSTGRES_PORT} + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + DEFAULT_DATABASE: ${POSTGRES_DATABASE} volumes: - - ./server/workers/tests/mock_app.py:/app/mock_app.py + - ./server/workers/tests/mock_app.py:/persistence/mock_app.py command: ["python", "mock_app.py"] networks: - test - db: - container_name: test_db - image: 'postgres:12.2-alpine' + backend: + build: + context: ./server/workers/tests + dockerfile: ./Dockerfile.backend + container_name: backend + hostname: "backend" + volumes: + - ./server/:/var/www/html/server + - ./server/workers/tests/test_data/test.sqlite:/var/www/localstorage/test.sqlite restart: "no" - hostname: "db_server" + networks: + - test + depends_on: + - api + ports: + - "80:80" + + orcid: + build: + context: server + dockerfile: workers/orcid/Dockerfile + restart: unless-stopped environment: - POSTGRES_USER: "testuser" - POSTGRES_PASSWORD: "testpassword" - POSTGRES_HOST: "db_server" - POSTGRES_PORT: 5432 - DEFAULT_DATABASE: "testdb" - command: postgres -c config_file=/etc/postgresql.conf -c hba_file=/etc/pg_hba.conf + SERVICE_VERSION: "${SERVICE_VERSION}" + REDIS_HOST: "${REDIS_HOST}" + REDIS_PORT: "${REDIS_PORT}" + REDIS_DB: "${REDIS_DB}" + REDIS_PASSWORD: "${REDIS_PASSWORD}" + LOGLEVEL: "${LOGLEVEL}" + LC_ALL: "en_US.UTF-8" + LANG: "en_US.UTF-8" + PYTHONIOENCODING: "utf-8" + ORCID_CLIENT_ID: "${ORCID_CLIENT_ID}" + ORCID_CLIENT_SECRET: "${ORCID_CLIENT_SECRET}" + depends_on: + - redis + networks: + - test + + dataprocessing: + build: + context: server + dockerfile: workers/dataprocessing/Dockerfile + environment: + SERVICE_VERSION: "${SERVICE_VERSION}" + REDIS_HOST: "${REDIS_HOST}" + REDIS_PORT: "${REDIS_PORT}" + REDIS_DB: "${REDIS_DB}" + REDIS_PASSWORD: "${REDIS_PASSWORD}" + LOGLEVEL: "${LOGLEVEL}" + LOGFILE: "${LOGFILE}" + RENV_VERSION: 0.14.0-5 + CRAN_REPOS: https://cran.wu.ac.at + LC_ALL: "en_US.UTF-8" + LANG: "en_US.UTF-8" + RENV_PATHS_CACHE: /renv/cache + PYTHONIOENCODING: "utf-8" + restart: unless-stopped volumes: - # - db_data:/var/lib/postgresql/data - - ./server/workers/tests/test_data/pg_hba_test_local.conf:/etc/pg_hba.conf - - ./server/workers/tests/test_data/postgresql_test_local.conf:/etc/postgresql.conf + - ./local_dev/renv/cache:/renv/cache + - /var/log/headstart:/var/log/headstart + - ./server/preprocessing/other-scripts:/headstart/other-scripts + depends_on: + - redis + networks: + - test + + base: + build: + context: server + dockerfile: workers/base/Dockerfile + environment: + SERVICE_VERSION: "${SERVICE_VERSION}" + REDIS_HOST: "${REDIS_HOST}" + REDIS_PORT: "${REDIS_PORT}" + REDIS_DB: "${REDIS_DB}" + REDIS_PASSWORD: "${REDIS_PASSWORD}" + LOGLEVEL: "${LOGLEVEL}" + LOGFILE: "/var/log/headstart/headstart.log" + RENV_VERSION: 0.14.0-5 + CRAN_REPOS: https://cran.wu.ac.at + LC_ALL: "en_US.UTF-8" + LANG: "en_US.UTF-8" + RENV_PATHS_CACHE: /renv/cache + PYTHONIOENCODING: "utf-8" + R_BASE_APIKEY: "${R_BASE_APIKEY}" + restart: unless-stopped + volumes: + - ./local_dev/renv/cache:/renv/cache + - /var/log/headstart:/var/log/headstart + - ./server/preprocessing/other-scripts:/headstart/other-scripts + depends_on: + - redis + networks: + - test + + pubmed: + build: + context: server + dockerfile: workers/pubmed/Dockerfile + environment: + SERVICE_VERSION: "${SERVICE_VERSION}" + REDIS_HOST: "${REDIS_HOST}" + REDIS_PORT: "${REDIS_PORT}" + REDIS_DB: "${REDIS_DB}" + REDIS_PASSWORD: "${REDIS_PASSWORD}" + LOGLEVEL: "${LOGLEVEL}" + LOGFILE: "${LOGFILE}" + RENV_VERSION: 0.14.0-5 + CRAN_REPOS: https://cran.wu.ac.at + LC_ALL: "en_US.UTF-8" + LANG: "en_US.UTF-8" + RENV_PATHS_CACHE: /renv/cache + PYTHONIOENCODING: "utf-8" + restart: unless-stopped + volumes: + - ./local_dev/renv/cache:/renv/cache + - /var/log/headstart:/var/log/headstart + - ./server/preprocessing/other-scripts:/headstart/other-scripts + depends_on: + - redis + networks: + - test + + openaire: + build: + context: server + dockerfile: workers/openaire/Dockerfile + environment: + SERVICE_VERSION: "${SERVICE_VERSION}" + REDIS_HOST: "${REDIS_HOST}" + REDIS_PORT: "${REDIS_PORT}" + REDIS_DB: "${REDIS_DB}" + REDIS_PASSWORD: "${REDIS_PASSWORD}" + LOGLEVEL: "${LOGLEVEL}" + LOGFILE: "${LOGFILE}" + RENV_VERSION: 0.14.0-5 + CRAN_REPOS: https://cran.wu.ac.at + LC_ALL: "en_US.UTF-8" + LANG: "en_US.UTF-8" + RENV_PATHS_CACHE: /renv/cache + PYTHONIOENCODING: "utf-8" + restart: unless-stopped + volumes: + - ./local_dev/renv/cache:/renv/cache + - /var/log/headstart:/var/log/headstart + - ./server/preprocessing/other-scripts:/headstart/other-scripts + depends_on: + - redis + networks: + - test + + metrics: + build: + context: server + dockerfile: workers/metrics/Dockerfile + environment: + SERVICE_VERSION: "${SERVICE_VERSION}" + REDIS_HOST: "${REDIS_HOST}" + REDIS_PORT: "${REDIS_PORT}" + REDIS_DB: "${REDIS_DB}" + REDIS_PASSWORD: "${REDIS_PASSWORD}" + LOGLEVEL: "${LOGLEVEL}" + LOGFILE: "${LOGFILE}" + RENV_VERSION: 0.14.0-5 + CRAN_REPOS: https://cran.wu.ac.at + LC_ALL: "en_US.UTF-8" + LANG: "en_US.UTF-8" + RENV_PATHS_CACHE: /renv/cache + PYTHONIOENCODING: "utf-8" + restart: unless-stopped + volumes: + - ./local_dev/renv/cache:/renv/cache + - /var/log/headstart:/var/log/headstart + - ./server/preprocessing/other-scripts:/headstart/other-scripts + depends_on: + - redis + networks: + - test + + searchflow: + build: local_dev/searchflow-container + volumes: + - ../project-website:/var/www/html + - ./local_dev/config_local_projectwebsite.php:/var/www/html/config_local.php + - ../search-flow/:/var/www/html/search-flow + - ./local_dev/config_local_searchflow.ini:/var/www/html/search-flow/config_local.ini + - ../Headstart:/var/www/html/headstart + - ./local_dev/config_local_headstart.ini:/var/www/html/headstart/server/preprocessing/conf/config_local.ini + - ./local_dev/entrypoint.php:/var/www/html/entrypoint.php ports: - - "5432:5432" + - 127.0.0.1:8085:80 networks: - test + # proxy: + # image: 'nginx' + # volumes: + # - ./templates:/etc/nginx/templates + # environment: + # - NGINX_PORT=80 + # ports: + # - '127.0.0.1:8081:80' + # networks: + # - dev_headstart + volumes: + redis: db_data: + driver: local + api_cache: + driver: local networks: test: diff --git a/docker-compose-phptest.yml b/docker-compose-phptest.yml index 6c423a42d..d6835f546 100644 --- a/docker-compose-phptest.yml +++ b/docker-compose-phptest.yml @@ -1,6 +1,3 @@ -# docker-compose-phptest.yml - -version: '3.7' services: composer: image: composer:2.5.8 diff --git a/docker-compose.yml b/docker-compose.yml index c7c721434..b7b695a58 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,3 @@ -version: '3.7' - services: db: @@ -29,7 +27,7 @@ services: - 'redis:/var/lib/redis/data' - ./local_dev/redis.conf:/etc/redis/redis.conf ports: - - "127.0.0.1:${REDIS_PORT}:6379" + - "127.0.0.1:${REDIS_PORT}:${REDIS_PORT}" networks: - headstart @@ -51,11 +49,14 @@ services: volumes: - ./api_cache:/var/api_cache - ./server/workers/api/src:/api + - ./server/workers/common:/api/common depends_on: - redis - base - pubmed - openaire + - orcid + - metrics networks: - headstart @@ -80,6 +81,28 @@ services: networks: - headstart + orcid: + build: + context: server + dockerfile: workers/orcid/Dockerfile + restart: unless-stopped + environment: + SERVICE_VERSION: "${SERVICE_VERSION}" + REDIS_HOST: "${REDIS_HOST}" + REDIS_PORT: "${REDIS_PORT}" + REDIS_DB: "${REDIS_DB}" + REDIS_PASSWORD: "${REDIS_PASSWORD}" + LOGLEVEL: "${LOGLEVEL}" + LC_ALL: "en_US.UTF-8" + LANG: "en_US.UTF-8" + PYTHONIOENCODING: "utf-8" + ORCID_CLIENT_ID: "${ORCID_CLIENT_ID}" + ORCID_CLIENT_SECRET: "${ORCID_CLIENT_SECRET}" + depends_on: + - redis + networks: + - headstart + dataprocessing: build: context: server @@ -193,6 +216,34 @@ services: networks: - headstart + metrics: + build: + context: server + dockerfile: workers/metrics/Dockerfile + environment: + SERVICE_VERSION: "${SERVICE_VERSION}" + REDIS_HOST: "${REDIS_HOST}" + REDIS_PORT: "${REDIS_PORT}" + REDIS_DB: "${REDIS_DB}" + REDIS_PASSWORD: "${REDIS_PASSWORD}" + LOGLEVEL: "${LOGLEVEL}" + LOGFILE: "${LOGFILE}" + RENV_VERSION: 0.14.0-5 + CRAN_REPOS: https://cran.wu.ac.at + LC_ALL: "en_US.UTF-8" + LANG: "en_US.UTF-8" + RENV_PATHS_CACHE: /renv/cache + PYTHONIOENCODING: "utf-8" + restart: unless-stopped + volumes: + - ./local_dev/renv/cache:/renv/cache + - /var/log/headstart:/var/log/headstart + - ./server/preprocessing/other-scripts:/headstart/other-scripts + depends_on: + - redis + networks: + - headstart + searchflow: build: local_dev/searchflow-container volumes: diff --git a/eslintrc.config.ts b/eslintrc.config.ts new file mode 100644 index 000000000..9c2ed11e6 --- /dev/null +++ b/eslintrc.config.ts @@ -0,0 +1,34 @@ +export default [ + { + parser: "@babel/eslint-parser", + parserOptions: { + requireConfigFile: false, + babelOptions: { + presets: ["@babel/preset-react"], + }, + ecmaFeatures: { + jsx: true, + }, + }, + extends: ["eslint:recommended", "plugin:react/recommended"], + plugins: ["react", "react-hooks"], + rules: { + // we don't use prop-types + "react/prop-types": 0, + // this would throw an error e.g. for quotes ('') + "react/no-unescaped-entities": 0, + // in callbacks it's handy to leave unused function parameters + "no-unused-vars": ["error", { args: "none" }], + }, + env: { + browser: true, + node: true, + es6: true, + }, + settings: { + react: { + version: "detect", + }, + }, + }, +]; diff --git a/examples/gsheets/config.example.php b/examples/gsheets/config.example.php deleted file mode 100644 index d1ba22a19..000000000 --- a/examples/gsheets/config.example.php +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/examples/gsheets/data-config.js b/examples/gsheets/data-config.js deleted file mode 100644 index 56fe1a85b..000000000 --- a/examples/gsheets/data-config.js +++ /dev/null @@ -1,46 +0,0 @@ -var data_config = { - tag: "visualization", - mode: "gsheets", - - bubble_min_scale: 1.1, - bubble_max_scale: 1.1, - - paper_min_scale: 1, - - input_format: "json", - use_area_uri: true, - preview_type: "pdf", - use_hypothesis: true, - - show_intro: false, - show_list:true, - is_force_papers: true, - - show_context: true, - create_title_from_context: true, - show_context_timestamp: true, - show_loading_screen: true, - - scale_toolbar: false, - - content_based: true, - is_evaluation: true, - - is_force_areas: true, - area_force_alpha: 0.03, - papers_force_alpha: 0.2, - - language: "eng_gsheets", - - sort_options: ["year", "title", "area"], - filter_options: ["all", "open_access"], - - show_keywords: true, - hide_keywords_overview: false, - show_resulttype: true, - - filter_menu_dropdown: true, - - embed_modal: true, - share_modal: false -}; diff --git a/examples/gsheets/index.php b/examples/gsheets/index.php deleted file mode 100644 index 6e485b78a..000000000 --- a/examples/gsheets/index.php +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - - - - - - Knowledge Map of <?php echo $topic ?> - - - -
-
- - - - - - - - - - - diff --git a/examples/gsheets/map.css b/examples/gsheets/map.css deleted file mode 100644 index 873caea5d..000000000 --- a/examples/gsheets/map.css +++ /dev/null @@ -1,64 +0,0 @@ -.errors-container { - margin: 20px 10px; - display: none; - padding-left: 50px; -} - -.show-errors { - display: block; -} - -.topheader { - padding-top: 59px; -} - -.error-row-top, .error-row-entry { - padding: 5px; -} - -.errors-info { - line-height: 110% !important; - z-index: 99; - font-family: 'Lato', sans-serif !important; - position: relative; -} - -.errors-info, .expand-icon { - cursor: pointer; - text-decoration: underline; -} - -.errors-table-hidden { - display: none; -} - -.dismiss-reload { - color: white; - text-decoration: underline; -} - -.dismiss-reload:hover { - color: white; - text-decoration: none; -} - -.show-reload-button { - display: block; -} - -.hide-reload-text { - display: none; -} - -@media screen and (max-width: 1150px) { - .reload-button { - padding: 10px 12px; - max-width: 180px; - } -} - -@media screen and (max-width: 640px) { - .errors-container { - padding-left: 0px; - } -} \ No newline at end of file diff --git a/examples/project_website/base.html b/examples/project_website/base.html index 2c1fe62d7..7aa470d61 100644 --- a/examples/project_website/base.html +++ b/examples/project_website/base.html @@ -34,15 +34,11 @@ - - - - - - - - - - diff --git a/examples/project_website/pubmed.html b/examples/project_website/pubmed.html index afc7d68e5..bcc5f5a9a 100644 --- a/examples/project_website/pubmed.html +++ b/examples/project_website/pubmed.html @@ -35,16 +35,12 @@ - - - -