Merge current 'v3.0' into master
This commit is contained in:
commit
3f48e6f8ef
38 changed files with 180 additions and 106 deletions
14
.github/workflows/build.yaml
vendored
14
.github/workflows/build.yaml
vendored
|
@ -20,9 +20,21 @@ jobs:
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Setup node
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version-file: webui/.nvmrc
|
||||||
|
cache: yarn
|
||||||
|
cache-dependency-path: webui/yarn.lock
|
||||||
|
|
||||||
- name: Build webui
|
- name: Build webui
|
||||||
|
working-directory: ./webui
|
||||||
|
run: |
|
||||||
|
yarn install
|
||||||
|
yarn build
|
||||||
|
|
||||||
|
- name: Package webui
|
||||||
run: |
|
run: |
|
||||||
make clean-webui generate-webui
|
|
||||||
tar czvf webui.tar.gz ./webui/static/
|
tar czvf webui.tar.gz ./webui/static/
|
||||||
|
|
||||||
- name: Artifact webui
|
- name: Artifact webui
|
||||||
|
|
11
.github/workflows/experimental.yaml
vendored
11
.github/workflows/experimental.yaml
vendored
|
@ -25,9 +25,18 @@ jobs:
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Setup node
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version-file: webui/.nvmrc
|
||||||
|
cache: yarn
|
||||||
|
cache-dependency-path: webui/yarn.lock
|
||||||
|
|
||||||
- name: Build webui
|
- name: Build webui
|
||||||
|
working-directory: ./webui
|
||||||
run: |
|
run: |
|
||||||
make clean-webui generate-webui
|
yarn install
|
||||||
|
yarn build
|
||||||
|
|
||||||
- name: Set up Go ${{ env.GO_VERSION }}
|
- name: Set up Go ${{ env.GO_VERSION }}
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
|
|
2
.github/workflows/test-integration.yaml
vendored
2
.github/workflows/test-integration.yaml
vendored
|
@ -39,7 +39,7 @@ jobs:
|
||||||
fail-fast: true
|
fail-fast: true
|
||||||
matrix:
|
matrix:
|
||||||
parallel: [12]
|
parallel: [12]
|
||||||
index: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 , 11]
|
index: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
|
|
21
.github/workflows/test-unit.yaml
vendored
21
.github/workflows/test-unit.yaml
vendored
|
@ -29,3 +29,24 @@ jobs:
|
||||||
|
|
||||||
- name: Tests
|
- name: Tests
|
||||||
run: make test-unit
|
run: make test-unit
|
||||||
|
|
||||||
|
test-ui-unit:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Check out code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Set up Node.js ${{ env.NODE_VERSION }}
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version-file: webui/.nvmrc
|
||||||
|
cache: 'yarn'
|
||||||
|
cache-dependency-path: webui/yarn.lock
|
||||||
|
|
||||||
|
- name: UI unit tests
|
||||||
|
run: |
|
||||||
|
yarn --cwd webui install
|
||||||
|
yarn --cwd webui test:unit:ci
|
||||||
|
|
2
.github/workflows/validate.yaml
vendored
2
.github/workflows/validate.yaml
vendored
|
@ -8,7 +8,7 @@ on:
|
||||||
env:
|
env:
|
||||||
GO_VERSION: '1.22'
|
GO_VERSION: '1.22'
|
||||||
GOLANGCI_LINT_VERSION: v1.59.0
|
GOLANGCI_LINT_VERSION: v1.59.0
|
||||||
MISSSPELL_VERSION: v0.4.1
|
MISSSPELL_VERSION: v0.6.0
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
|
|
29
CHANGELOG.md
29
CHANGELOG.md
|
@ -1,3 +1,32 @@
|
||||||
|
## [v3.0.2](https://github.com/traefik/traefik/tree/v3.0.2) (2024-06-10)
|
||||||
|
[All Commits](https://github.com/traefik/traefik/compare/v3.0.1...v3.0.2)
|
||||||
|
|
||||||
|
**Bug fixes:**
|
||||||
|
- **[logs]** Bump OTel dependencies ([#10763](https://github.com/traefik/traefik/pull/10763) by [DrFaust92](https://github.com/DrFaust92))
|
||||||
|
- **[logs]** Append to log file if it exists ([#10756](https://github.com/traefik/traefik/pull/10756) by [lbenguigui](https://github.com/lbenguigui))
|
||||||
|
- **[metrics]** Fix service name label_replace in Grafana ([#10758](https://github.com/traefik/traefik/pull/10758) by [xdavidwu](https://github.com/xdavidwu))
|
||||||
|
- **[middleware]** Forward the correct status code when compression is disabled within the Brotli handler ([#10780](https://github.com/traefik/traefik/pull/10780) by [rtribotte](https://github.com/rtribotte))
|
||||||
|
- **[middleware]** Support Accept-Encoding header weights with Compress middleware ([#10777](https://github.com/traefik/traefik/pull/10777) by [ldez](https://github.com/ldez))
|
||||||
|
|
||||||
|
**Documentation:**
|
||||||
|
- Update v2 > v3 migration guide ([#10728](https://github.com/traefik/traefik/pull/10728) by [0anas01](https://github.com/0anas01))
|
||||||
|
|
||||||
|
**Misc:**
|
||||||
|
- Merge current v2.11 into v3.0 ([#10796](https://github.com/traefik/traefik/pull/10796) by [kevinpollet](https://github.com/kevinpollet))
|
||||||
|
- Merge current v2.11 into v3.0 ([#10781](https://github.com/traefik/traefik/pull/10781) by [ldez](https://github.com/ldez))
|
||||||
|
|
||||||
|
## [v2.11.4](https://github.com/traefik/traefik/tree/v2.11.4) (2024-06-10)
|
||||||
|
[All Commits](https://github.com/traefik/traefik/compare/v2.11.3...v2.11.4)
|
||||||
|
|
||||||
|
**Bug fixes:**
|
||||||
|
- **[acme]** Update go-acme/lego to v4.17.3 ([#10768](https://github.com/traefik/traefik/pull/10768) by [ldez](https://github.com/ldez))
|
||||||
|
|
||||||
|
**Documentation:**
|
||||||
|
- **[acme]** Fix .com and .org domain examples ([#10635](https://github.com/traefik/traefik/pull/10635) by [rptaylor](https://github.com/rptaylor))
|
||||||
|
- **[middleware]** Add a note about the Ratelimit middleware's behavior when the sourceCriterion header is missing ([#10752](https://github.com/traefik/traefik/pull/10752) by [dgutzmann](https://github.com/dgutzmann))
|
||||||
|
- Add user guides link to getting started ([#10785](https://github.com/traefik/traefik/pull/10785) by [norlinhenrik](https://github.com/norlinhenrik))
|
||||||
|
- Remove helm default repo warning as repo has been long deprecated ([#10772](https://github.com/traefik/traefik/pull/10772) by [corneliusroemer](https://github.com/corneliusroemer))
|
||||||
|
|
||||||
## [v3.0.1](https://github.com/traefik/traefik/tree/v3.0.1) (2024-05-22)
|
## [v3.0.1](https://github.com/traefik/traefik/tree/v3.0.1) (2024-05-22)
|
||||||
[All Commits](https://github.com/traefik/traefik/compare/v3.0.0...v3.0.1)
|
[All Commits](https://github.com/traefik/traefik/compare/v3.0.0...v3.0.1)
|
||||||
|
|
||||||
|
|
9
Makefile
9
Makefile
|
@ -88,7 +88,7 @@ crossbinary-default: generate generate-webui
|
||||||
|
|
||||||
.PHONY: test
|
.PHONY: test
|
||||||
#? test: Run the unit and integration tests
|
#? test: Run the unit and integration tests
|
||||||
test: test-unit test-integration
|
test: test-ui-unit test-unit test-integration
|
||||||
|
|
||||||
.PHONY: test-unit
|
.PHONY: test-unit
|
||||||
#? test-unit: Run the unit tests
|
#? test-unit: Run the unit tests
|
||||||
|
@ -105,6 +105,13 @@ test-integration: binary
|
||||||
test-gateway-api-conformance: build-image-dirty
|
test-gateway-api-conformance: build-image-dirty
|
||||||
GOOS=$(GOOS) GOARCH=$(GOARCH) go test ./integration -v -test.run K8sConformanceSuite -k8sConformance $(TESTFLAGS)
|
GOOS=$(GOOS) GOARCH=$(GOARCH) go test ./integration -v -test.run K8sConformanceSuite -k8sConformance $(TESTFLAGS)
|
||||||
|
|
||||||
|
.PHONY: test-ui-unit
|
||||||
|
#? test-ui-unit: Run the unit tests for the webui
|
||||||
|
test-ui-unit:
|
||||||
|
$(MAKE) build-webui-image
|
||||||
|
docker run --rm -v "$(PWD)/webui/static":'/src/webui/static' traefik-webui yarn --cwd webui install
|
||||||
|
docker run --rm -v "$(PWD)/webui/static":'/src/webui/static' traefik-webui yarn --cwd webui test:unit:ci
|
||||||
|
|
||||||
.PHONY: pull-images
|
.PHONY: pull-images
|
||||||
#? pull-images: Pull all Docker images to avoid timeout during integration tests
|
#? pull-images: Pull all Docker images to avoid timeout during integration tests
|
||||||
pull-images:
|
pull-images:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
FROM alpine:3.18 as alpine
|
FROM alpine:3.20
|
||||||
|
|
||||||
RUN apk --no-cache --no-progress add \
|
RUN apk --no-cache --no-progress add \
|
||||||
build-base \
|
build-base \
|
||||||
|
|
|
@ -119,6 +119,6 @@ IP: 172.27.0.4
|
||||||
|
|
||||||
!!! question "Where to Go Next?"
|
!!! question "Where to Go Next?"
|
||||||
|
|
||||||
Now that you have a basic understanding of how Traefik can automatically create the routes to your services and load balance them, it is time to dive into [the documentation](/ "Link to the docs landing page") and let Traefik work for you!
|
Now that you have a basic understanding of how Traefik can automatically create the routes to your services and load balance them, it is time to dive into [the user guides](../../user-guides/docker-compose/basic-example/ "Link to the user guides") and [the documentation](/ "Link to the docs landing page") and let Traefik work for you!
|
||||||
|
|
||||||
{!traefik-for-business-applications.md!}
|
{!traefik-for-business-applications.md!}
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
FROM alpine:3.14
|
FROM alpine:3.20
|
||||||
|
|
||||||
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/.local/bin
|
ENV PATH="${PATH}:/venv/bin"
|
||||||
|
|
||||||
COPY requirements.txt /mkdocs/
|
COPY requirements.txt /mkdocs/
|
||||||
WORKDIR /mkdocs
|
WORKDIR /mkdocs
|
||||||
VOLUME /mkdocs
|
VOLUME /mkdocs
|
||||||
|
|
||||||
RUN apk --no-cache --no-progress add py3-pip gcc musl-dev python3-dev \
|
RUN apk --no-cache --no-progress add py3-pip gcc musl-dev python3-dev \
|
||||||
&& pip3 install --user -r requirements.txt
|
&& python3 -m venv /venv \
|
||||||
|
&& source /venv/bin/activate \
|
||||||
|
&& pip3 install -r requirements.txt
|
||||||
|
|
|
@ -1,45 +1,23 @@
|
||||||
mkdocs==1.2.2
|
markdown-include==0.5.1
|
||||||
|
mkdocs==1.2.4
|
||||||
|
mkdocs-exclude==1.0.2
|
||||||
mkdocs-traefiklabs>=100.0.7
|
mkdocs-traefiklabs>=100.0.7
|
||||||
|
|
||||||
appdirs==1.4.4
|
click==8.1.7
|
||||||
CacheControl==0.12.6
|
colorama==0.4.6
|
||||||
certifi==2020.12.5
|
ghp-import==2.1.0
|
||||||
chardet==4.0.0
|
importlib_metadata==7.1.0
|
||||||
click==8.0.4
|
Jinja2==3.1.3
|
||||||
colorama==0.4.4
|
|
||||||
contextlib2==0.6.0
|
|
||||||
distlib==0.3.1
|
|
||||||
distro==1.5.0
|
|
||||||
ghp-import==2.0.2
|
|
||||||
html5lib==1.1
|
|
||||||
idna==3.2
|
|
||||||
importlib-metadata==4.11.3
|
|
||||||
Jinja2==3.0.0
|
|
||||||
lockfile==0.12.2
|
|
||||||
Markdown==3.3.6
|
Markdown==3.3.6
|
||||||
markdown-include==0.5.1
|
MarkupSafe==2.1.5
|
||||||
MarkupSafe==2.1.1
|
|
||||||
mergedeep==1.3.4
|
mergedeep==1.3.4
|
||||||
mkdocs-bootswatch==1.0
|
mkdocs-material-extensions==1.3.1
|
||||||
mkdocs-exclude==1.0.2
|
packaging==24.0
|
||||||
mkdocs-material-extensions==1.0.3
|
Pygments==2.18.0
|
||||||
msgpack==1.0.2
|
|
||||||
ordered-set==4.0.2
|
|
||||||
packaging==20.9
|
|
||||||
pep517==0.10.0
|
|
||||||
progress==1.5
|
|
||||||
Pygments==2.11.2
|
|
||||||
pymdown-extensions==7.0
|
pymdown-extensions==7.0
|
||||||
pyparsing==2.4.7
|
python-dateutil==2.9.0.post0
|
||||||
python-dateutil==2.8.2
|
|
||||||
PyYAML==6.0.1
|
PyYAML==6.0.1
|
||||||
pyyaml-env-tag==0.1
|
pyyaml_env_tag==0.1
|
||||||
requests==2.25.1
|
six==1.16.0
|
||||||
retrying==1.3.3
|
watchdog==4.0.0
|
||||||
six==1.15.0
|
zipp==3.18.1
|
||||||
toml==0.10.2
|
|
||||||
urllib3==1.26.5
|
|
||||||
watchdog==2.1.7
|
|
||||||
webencodings==0.5.1
|
|
||||||
zipp==3.7.0
|
|
||||||
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
3.7
|
|
|
@ -4,11 +4,11 @@ RepositoryName = "traefik"
|
||||||
OutputType = "file"
|
OutputType = "file"
|
||||||
FileName = "traefik_changelog.md"
|
FileName = "traefik_changelog.md"
|
||||||
|
|
||||||
# example new bugfix v3.0.1
|
# example new bugfix v3.0.2
|
||||||
CurrentRef = "v3.0"
|
CurrentRef = "v3.0"
|
||||||
PreviousRef = "v3.0.0"
|
PreviousRef = "v3.0.1"
|
||||||
BaseBranch = "v3.0"
|
BaseBranch = "v3.0"
|
||||||
FutureCurrentRefName = "v3.0.1"
|
FutureCurrentRefName = "v3.0.2"
|
||||||
|
|
||||||
ThresholdPreviousRef = 10
|
ThresholdPreviousRef = 10
|
||||||
ThresholdCurrentRef = 10
|
ThresholdCurrentRef = 10
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
FROM node:20.11
|
FROM node:20.14
|
||||||
# Current Active LTS release according to (https://nodejs.org/en/about/releases/)
|
# Current Active LTS release according to (https://nodejs.org/en/about/releases/)
|
||||||
|
|
||||||
ENV WEBUI_DIR /src/webui
|
ENV WEBUI_DIR /src/webui
|
||||||
|
|
|
@ -8,10 +8,10 @@
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"transfer": "node dev/scripts/transfer.js",
|
"transfer": "node dev/scripts/transfer.js",
|
||||||
"lint": "eslint --ext .js,.vue src",
|
"lint": "eslint --ext .js,.vue src",
|
||||||
"dev": "export APP_ENV='development' && quasar dev",
|
"dev": "APP_ENV=development quasar dev",
|
||||||
"build-quasar": "quasar build",
|
"build-quasar": "quasar build",
|
||||||
"build-staging": "export NODE_ENV='production' && export APP_ENV='development' && yarn build-quasar",
|
"build-staging": "NODE_ENV=production APP_ENV=development yarn build-quasar",
|
||||||
"build": "export NODE_ENV='production' && export APP_ENV='production' && yarn build-quasar && yarn transfer spa",
|
"build": "NODE_ENV=production APP_ENV=production yarn build-quasar && yarn transfer spa",
|
||||||
"build:nc": "yarn build",
|
"build:nc": "yarn build",
|
||||||
"test": "echo \"See package.json => scripts for available tests.\" && exit 0",
|
"test": "echo \"See package.json => scripts for available tests.\" && exit 0",
|
||||||
"test:unit": "vitest",
|
"test:unit": "vitest",
|
||||||
|
@ -56,6 +56,7 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^20 || ^18 || ^16",
|
"node": "^20 || ^18 || ^16",
|
||||||
"npm": ">= 6.13.4",
|
"npm": ">= 6.13.4",
|
||||||
"yarn": ">= 1.21.1"
|
"yarn": ">= 1.22.22"
|
||||||
}
|
},
|
||||||
|
"packageManager": "yarn@1.22.22"
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ make clean-webui generate-webui # Generate static contents in `webui/static/` fo
|
||||||
|
|
||||||
## How to build (only for frontend developer)
|
## How to build (only for frontend developer)
|
||||||
|
|
||||||
- prerequisite: [Node 20.11+](https://nodejs.org) [Yarn 1.22.19](https://yarnpkg.com/)
|
- prerequisite: [Node 20.14+](https://nodejs.org) [Yarn 1.22.22](https://yarnpkg.com/)
|
||||||
|
|
||||||
- Go to the `webui/` directory
|
- Go to the `webui/` directory
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ import { defineComponent } from 'vue'
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'AvatarState',
|
name: 'AvatarState',
|
||||||
props: {
|
props: {
|
||||||
state: String
|
state: { type: String, default: undefined, required: false }
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -128,13 +128,14 @@ export default defineComponent({
|
||||||
QPageScroller
|
QPageScroller
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
data: Object,
|
data: { type: Object, default: undefined, required: false },
|
||||||
columns: Array[Object],
|
columns: Array[Object],
|
||||||
loading: Boolean,
|
loading: Boolean,
|
||||||
onLoadMore: Function,
|
onLoadMore: { type: Function, default: undefined, required: false },
|
||||||
endReached: Boolean,
|
endReached: Boolean,
|
||||||
onRowClick: Function
|
onRowClick: { type: Function, default: undefined, required: false }
|
||||||
},
|
},
|
||||||
|
emits: ['update:currentSort', 'update:currentSortDir'],
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
currentSort: 'name',
|
currentSort: 'name',
|
||||||
|
|
|
@ -137,7 +137,7 @@ export default {
|
||||||
filters: {
|
filters: {
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
data: Object,
|
data: { type: Object, default: undefined, required: false },
|
||||||
dense: Boolean
|
dense: Boolean
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|
|
@ -75,8 +75,8 @@
|
||||||
ERRORS
|
ERRORS
|
||||||
</div>
|
</div>
|
||||||
<q-chip
|
<q-chip
|
||||||
v-for="(errorMsg, index) in middleware.error"
|
v-for="(errorMsg, errorIndex) in middleware.error"
|
||||||
:key="index"
|
:key="errorIndex"
|
||||||
class="app-chip app-chip-error"
|
class="app-chip app-chip-error"
|
||||||
>
|
>
|
||||||
{{ errorMsg }}
|
{{ errorMsg }}
|
||||||
|
|
|
@ -70,7 +70,7 @@
|
||||||
export default {
|
export default {
|
||||||
name: 'PanelMirroringServices',
|
name: 'PanelMirroringServices',
|
||||||
props: {
|
props: {
|
||||||
data: Object,
|
data: { type: Object, default: undefined, required: false },
|
||||||
dense: Boolean
|
dense: Boolean
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|
|
@ -146,8 +146,8 @@ export default defineComponent({
|
||||||
AvatarState
|
AvatarState
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
data: Object,
|
data: { type: Object, default: undefined, required: false },
|
||||||
protocol: String
|
protocol: { type: String, default: undefined, required: false }
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
getProviderLogoPath () {
|
getProviderLogoPath () {
|
||||||
|
|
|
@ -102,7 +102,7 @@ export default defineComponent({
|
||||||
AvatarState
|
AvatarState
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
data: Object,
|
data: { type: Object, default: undefined, required: false },
|
||||||
dense: Boolean,
|
dense: Boolean,
|
||||||
hasStatus: Boolean
|
hasStatus: Boolean
|
||||||
},
|
},
|
||||||
|
|
|
@ -155,7 +155,7 @@ export default defineComponent({
|
||||||
StickyServiceDetails
|
StickyServiceDetails
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
data: Object,
|
data: { type: Object, default: undefined, required: false },
|
||||||
dense: Boolean
|
dense: Boolean
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|
|
@ -77,12 +77,12 @@
|
||||||
{{ domain.main }}
|
{{ domain.main }}
|
||||||
</q-chip>
|
</q-chip>
|
||||||
<q-chip
|
<q-chip
|
||||||
v-for="(domain, key) in domain.sans"
|
v-for="(sanDomain, sanKey) in domain.sans"
|
||||||
:key="key"
|
:key="sanKey"
|
||||||
dense
|
dense
|
||||||
class="app-chip app-chip-entry-points"
|
class="app-chip app-chip-entry-points"
|
||||||
>
|
>
|
||||||
{{ domain }}
|
{{ sanDomain }}
|
||||||
</q-chip>
|
</q-chip>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -130,8 +130,8 @@ export default defineComponent({
|
||||||
BooleanState
|
BooleanState
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
data: Object,
|
data: { type: Object, default: undefined, required: false },
|
||||||
protocol: String
|
protocol: { type: String, default: undefined, required: false }
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -66,7 +66,7 @@ export default defineComponent({
|
||||||
name: 'PanelWeightedServices',
|
name: 'PanelWeightedServices',
|
||||||
components: {},
|
components: {},
|
||||||
props: {
|
props: {
|
||||||
data: Object,
|
data: { type: Object, default: undefined, required: false },
|
||||||
dense: Boolean
|
dense: Boolean
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|
|
@ -9,7 +9,7 @@ import { defineComponent } from 'vue'
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
props: {
|
props: {
|
||||||
name: String
|
name: { type: String, default: undefined, required: false }
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
getLogoPath () {
|
getLogoPath () {
|
||||||
|
|
|
@ -23,6 +23,7 @@ export default defineComponent({
|
||||||
props: {
|
props: {
|
||||||
isOpen: Boolean
|
isOpen: Boolean
|
||||||
},
|
},
|
||||||
|
emits: ['onClose'],
|
||||||
methods: {
|
methods: {
|
||||||
close () {
|
close () {
|
||||||
this.$emit('onClose')
|
this.$emit('onClose')
|
||||||
|
|
|
@ -10,20 +10,20 @@ export default {
|
||||||
name: 'SkeletonBox',
|
name: 'SkeletonBox',
|
||||||
props: {
|
props: {
|
||||||
maxWidth: {
|
maxWidth: {
|
||||||
default: 100,
|
type: Number,
|
||||||
type: Number
|
default: 100
|
||||||
},
|
},
|
||||||
minWidth: {
|
minWidth: {
|
||||||
default: 80,
|
type: Number,
|
||||||
type: Number
|
default: 80
|
||||||
},
|
},
|
||||||
height: {
|
height: {
|
||||||
default: '2em',
|
type: String,
|
||||||
type: String
|
default: '2em'
|
||||||
},
|
},
|
||||||
width: {
|
width: {
|
||||||
default: null,
|
type: String,
|
||||||
type: String
|
default: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|
|
@ -55,7 +55,7 @@ export default defineComponent({
|
||||||
BooleanState
|
BooleanState
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
sticky: Object,
|
sticky: { type: Object, default: undefined, required: false },
|
||||||
dense: Boolean
|
dense: Boolean
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -42,9 +42,10 @@ import Helps from '../../_helpers/Helps'
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'ToolBarTable',
|
name: 'ToolBarTable',
|
||||||
props: {
|
props: {
|
||||||
status: String,
|
status: { type: String, default: undefined, required: false },
|
||||||
filter: String
|
filter: { type: String, default: undefined, required: false }
|
||||||
},
|
},
|
||||||
|
emits: ['update:status', 'update:filter'],
|
||||||
computed: {
|
computed: {
|
||||||
getStatus: {
|
getStatus: {
|
||||||
get () {
|
get () {
|
||||||
|
|
|
@ -118,9 +118,9 @@ export default defineComponent({
|
||||||
AvatarState
|
AvatarState
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
name: String,
|
name: { type: String, default: undefined, required: false },
|
||||||
data: Object,
|
data: { type: Object, default: undefined, required: false },
|
||||||
type: String
|
type: { type: String, default: undefined, required: false }
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -28,11 +28,11 @@ import { defineComponent } from 'vue'
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'PanelEntry',
|
name: 'PanelEntry',
|
||||||
props: {
|
props: {
|
||||||
address: String,
|
address: { type: String, default: undefined, required: false },
|
||||||
name: String,
|
name: { type: String, default: undefined, required: false },
|
||||||
type: String,
|
type: { type: String, default: undefined, required: false },
|
||||||
focus: Boolean,
|
focus: Boolean,
|
||||||
exSize: Number
|
exSize: { type: Number, default: undefined, required: false }
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -28,7 +28,10 @@
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: 'PanelFeature',
|
name: 'PanelFeature',
|
||||||
props: ['featureKey', 'featureVal'],
|
props: {
|
||||||
|
featureKey: { type: String, default: undefined, required: false },
|
||||||
|
featureVal: { type: [String, Boolean], default: undefined, required: false }
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
isString () {
|
isString () {
|
||||||
return typeof this.featureVal === 'string'
|
return typeof this.featureVal === 'string'
|
||||||
|
|
|
@ -6,7 +6,10 @@
|
||||||
<q-card-section>
|
<q-card-section>
|
||||||
<div class="row items-center no-wrap">
|
<div class="row items-center no-wrap">
|
||||||
<div class="col text-center">
|
<div class="col text-center">
|
||||||
<q-avatar class="provider-logo" font-size="inherit">
|
<q-avatar
|
||||||
|
class="provider-logo"
|
||||||
|
font-size="inherit"
|
||||||
|
>
|
||||||
<q-icon :name="`img:${getLogoPath}`" />
|
<q-icon :name="`img:${getLogoPath}`" />
|
||||||
</q-avatar>
|
</q-avatar>
|
||||||
</div>
|
</div>
|
||||||
|
@ -27,8 +30,9 @@ export default defineComponent({
|
||||||
name: 'PanelProvider',
|
name: 'PanelProvider',
|
||||||
props: {
|
props: {
|
||||||
name: {
|
name: {
|
||||||
|
type: String,
|
||||||
default: '',
|
default: '',
|
||||||
type: String
|
required: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|
|
@ -116,12 +116,14 @@ export default defineComponent({
|
||||||
mixins: [GetTablePropsMixin],
|
mixins: [GetTablePropsMixin],
|
||||||
props: {
|
props: {
|
||||||
name: {
|
name: {
|
||||||
|
type: String,
|
||||||
default: '',
|
default: '',
|
||||||
type: String
|
required: false
|
||||||
},
|
},
|
||||||
type: {
|
type: {
|
||||||
|
type: String,
|
||||||
default: '',
|
default: '',
|
||||||
type: String
|
required: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
|
|
|
@ -282,12 +282,14 @@ export default defineComponent({
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
name: {
|
name: {
|
||||||
|
type: String,
|
||||||
default: '',
|
default: '',
|
||||||
type: String
|
required: false
|
||||||
},
|
},
|
||||||
type: {
|
type: {
|
||||||
|
type: String,
|
||||||
default: '',
|
default: '',
|
||||||
type: String
|
required: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
|
|
|
@ -227,12 +227,14 @@ export default defineComponent({
|
||||||
mixins: [GetTablePropsMixin],
|
mixins: [GetTablePropsMixin],
|
||||||
props: {
|
props: {
|
||||||
name: {
|
name: {
|
||||||
|
type: String,
|
||||||
default: '',
|
default: '',
|
||||||
type: String
|
required: false
|
||||||
},
|
},
|
||||||
type: {
|
type: {
|
||||||
|
type: String,
|
||||||
default: '',
|
default: '',
|
||||||
type: String
|
required: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
|
|
Loading…
Reference in a new issue