Compare commits

...

16 Commits

Author SHA1 Message Date
5f7c2063c3 ISSUE-72| Update eslint 2024-02-20 20:54:47 +01:00
09611184e8 ISSUE-72| Update vue tooltip dependency 2024-02-20 20:48:41 +01:00
f7ed4d9a84 KI working after vue upgrade 2024-02-11 09:24:52 +01:00
00002b81de KI working after npm upgrade and on node 16 2024-02-11 09:08:53 +01:00
c2552f3c3a Merge pull request 'Push image to Gitea registry' (!84) from gitea-registry into main
Reviewed-on: kompetenzinventar/ki-frontend#84
2023-12-10 18:47:54 +01:00
687454afdb Push image to Gitea registry 2023-12-04 20:09:52 +01:00
a7c8774cc4 Merge pull request 'Add labels to Docker images' (!83) from docker-labels into main
Reviewed-on: kompetenzinventar/ki-frontend#83
2023-11-16 11:18:44 +01:00
b63e5a6c2d Merge pull request 'Rewrite Drone config' (!82) from drone-config into main
Reviewed-on: kompetenzinventar/ki-frontend#82
2023-11-16 11:18:35 +01:00
1b221ab180 Merge pull request 'Improve SPA cacheing' (!81) from nginx-cacheing into main
Reviewed-on: kompetenzinventar/ki-frontend#81
2023-11-13 16:51:10 +01:00
e2b101eb89 Add labels to Docker images 2023-11-07 14:54:40 +01:00
654169c383 Rewrite Drone config
- Split PR and "push to main" actions
- Deploy latest main to dev system
- Build image for Git tags
2023-11-06 23:33:33 +01:00
26edf1d4b2 Improve SPA cacheing 2023-11-06 18:35:05 +01:00
e7ff487aeb Merge pull request '"Problem melden"-Link korrigiert' (!78) from brain-patch-1 into main
Reviewed-on: kompetenzinventar/ki-frontend#78
2023-10-27 15:12:55 +02:00
c5bda80f11 Merge pull request 'Klarnamen in der Suche berücksichtigen' (!80) from zeitschlag/ki-frontend:feature/48-search-address-name into main
Reviewed-on: kompetenzinventar/ki-frontend#80
2023-10-27 15:12:06 +02:00
379ddaf5b9 Change placeholder (kompetenzinventar/ki-doku#48) 2023-04-20 18:14:07 +02:00
13fb15e033 Fix link for new issues 2022-07-20 18:26:39 +02:00
9 changed files with 9736 additions and 16988 deletions

View File

@ -4,40 +4,103 @@
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
kind: pipeline kind: pipeline
type: docker type: docker
name: default name: qa
trigger:
event:
- push
- pull_request
branch:
- main
steps: steps:
- name: reuse - name: reuse
image: fsfe/reuse:latest image: fsfe/reuse
- name: lint
image: node:20
commands:
- npm ci
- npm run lint
- name: docker-publish ---
image: plugins/docker kind: pipeline
settings: type: docker
registry: registry.wtf-eg.net name: build
repo: registry.wtf-eg.net/ki-frontend
target: ki-frontend trigger:
auto_tag: true
username:
from_secret: "docker_username"
password:
from_secret: "docker_password"
when:
event: event:
- push - push
branch: branch:
- main - main
- name: docker-publish-tag depends_on:
- qa
steps:
- name: docker-publish
image: plugins/docker image: plugins/docker
settings: settings:
registry: registry.wtf-eg.net registry: git.wtf-eg.de
repo: registry.wtf-eg.net/ki-frontend repo: git.wtf-eg.de/kompetenzinventar/frontend
target: ki-frontend target: ki-frontend
auto_tag: true auto_tag: true
username: username:
from_secret: "docker_username" from_secret: "docker_username"
password: password:
from_secret: "docker_password" from_secret: "docker_password"
when:
---
kind: pipeline
type: docker
name: deploy
trigger:
event:
- push
branch:
- main
depends_on:
- build
steps:
- name: deploy-dev
image: appleboy/drone-ssh
settings:
host:
- dev01.wtf-eg.net
username: drone_deployment
key:
from_secret: "dev01_deployment_key"
command_timeout: 2m
script:
- echo "Executing forced command..."
---
kind: pipeline
type: docker
name: tag-release
trigger:
event: event:
- tag - tag
steps:
- name: reuse
image: fsfe/reuse
- name: lint
image: node:20
commands:
- npm ci
- npm run lint
- name: docker-publish
image: plugins/docker
settings:
registry: git.wtf-eg.de
repo: git.wtf-eg.de/kompetenzinventar/frontend
target: ki-frontend
auto_tag: true
username:
from_secret: "docker_username"
password:
from_secret: "docker_password"

View File

@ -8,7 +8,7 @@ module.exports = {
'eslint:recommended' 'eslint:recommended'
], ],
parserOptions: { parserOptions: {
parser: 'babel-eslint' parser: '@babel/eslint-parser'
}, },
rules: { rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',

View File

@ -2,7 +2,7 @@
# #
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
FROM node:14-alpine as builder FROM node:20-alpine as builder
COPY . ./ COPY . ./
@ -13,3 +13,8 @@ FROM nginx as ki-frontend
COPY --from=builder /dist/ /usr/share/nginx/html/ COPY --from=builder /dist/ /usr/share/nginx/html/
COPY etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf COPY etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf
LABEL org.opencontainers.image.source=https://git.wtf-eg.de/kompetenzinventar/ki-frontend.git
LABEL org.opencontainers.image.url=https://git.wtf-eg.de/kompetenzinventar/ki-frontend
LABEL org.opencontainers.image.documentation=https://git.wtf-eg.de/kompetenzinventar/ki-frontend#docker
LABEL org.opencontainers.image.vendor="WTF Kooperative eG"

View File

@ -9,10 +9,24 @@ server {
#access_log /var/log/nginx/host.access.log main; #access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html; root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html; # routes without dots serve the index.html without caching
location / {
add_header Cache-Control "no-cache";
try_files $uri $uri/index.html /index.html;
}
# static js and css files that get replaced instead of updated
location ~ \.(js|css) {
add_header Cache-Control "public, max-age=31536000, immutable";
try_files $uri =404;
}
# cache other static files for 30 days
location ~ \.(?!html) {
add_header Cache-Control "public, max-age=2592000";
try_files $uri =404;
} }
#error_page 404 /404.html; #error_page 404 /404.html;

26504
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -7,22 +7,22 @@
"lint": "vue-cli-service lint" "lint": "vue-cli-service lint"
}, },
"devDependencies": { "devDependencies": {
"@vue/cli-plugin-babel": "^4.5.0", "@vue/cli-plugin-babel": "~5.0.8",
"@vue/cli-plugin-eslint": "^4.5.0", "@vue/cli-plugin-eslint": "~5.0.8",
"@vue/cli-plugin-router": "^4.5.0", "@vue/cli-plugin-router": "~5.0.8",
"@vue/cli-service": "^4.5.0", "@vue/cli-service": "~5.0.8",
"@vue/compiler-sfc": "^3.0.0", "@vue/compiler-sfc": "^3.0.0",
"babel-eslint": "^10.1.0", "@babel/eslint-parser": "7.23.10",
"bootstrap": "^5.0.1", "bootstrap": "^5.3.2",
"bootstrap-icons": "^1.5.0", "bootstrap-icons": "^1.11.3",
"core-js": "^3.6.5", "core-js": "^3.6.5",
"eslint": "^6.7.2", "eslint": "^7.32.0",
"eslint-plugin-vue": "^7.0.0", "eslint-plugin-vue": "^7.0.0",
"sass": "^1.37.5", "sass": "^1.37.5",
"sass-loader": "^10.2.0", "sass-loader": "^10.2.0",
"v-tooltip": "^4.0.0-alpha.1", "v-tooltip": "^4.0.0-beta.17",
"vue": "^3.0.0", "vue": "^3.4.0",
"vue-router": "^4.0.0-0", "vue-router": "^4.2.5",
"vuex": "^4.0.2" "vuex": "^4.1.0"
} }
} }

View File

@ -21,3 +21,11 @@
.search-card{ .search-card{
height: 100%; height: 100%;
} }
.card-body {
background-color: #fff;
}
.list-group-flush > .list-group-item {
background-color: #fff;
}

View File

@ -13,7 +13,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
<div class="fw-bold text-white mb-2">Kompetenzinventar</div> <div class="fw-bold text-white mb-2">Kompetenzinventar</div>
<ul class="list-unstyled"> <ul class="list-unstyled">
<li><a href="https://git.wtf-eg.de/kompetenzinventar">Quellcode</a></li> <li><a href="https://git.wtf-eg.de/kompetenzinventar">Quellcode</a></li>
<li><a href="https://git.wtf-eg.de/kompetenzinventar/ki-frontend/issues/new">Problem melden</a></li> <li><a href="https://git.wtf-eg.de/kompetenzinventar/ki-doku/issues/new/choose">Problem melden</a></li>
</ul> </ul>
</div> </div>
</div> </div>

View File

@ -19,7 +19,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
class="form-control" class="form-control"
id="searchText" id="searchText"
v-model="searchText" v-model="searchText"
placeholder="Nick, Fähigkeit, Sprache" placeholder="Nick, Name, Fähigkeit, Sprache"
ref="searchTextInput" ref="searchTextInput"
/> />
</div> </div>