-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from it-at-m/beta
Initial public release
- Loading branch information
Showing
26 changed files
with
12,219 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
--- | ||
name: Bug report | ||
about: Create a report to help us improve | ||
title: "" | ||
labels: "" | ||
assignees: "" | ||
--- | ||
|
||
**Describe the bug** | ||
A clear and concise description of what the bug is. | ||
|
||
**To Reproduce** | ||
Steps to reproduce the behavior: | ||
|
||
1. Go to '...' | ||
2. Click on '....' | ||
3. Scroll down to '....' | ||
4. See error | ||
|
||
**Expected behavior** | ||
A clear and concise description of what you expected to happen. | ||
|
||
**Screenshots** | ||
If applicable, add screenshots to help explain your problem. | ||
|
||
**Additional context** | ||
Add any other context about the problem here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
--- | ||
name: Feature request | ||
about: Suggest an idea for this project | ||
title: "" | ||
labels: "" | ||
assignees: "" | ||
--- | ||
|
||
**Is your feature request related to a problem? Please describe.** | ||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] | ||
|
||
**Describe the solution you'd like** | ||
A clear and concise description of what you want to happen. | ||
|
||
**Describe alternatives you've considered** | ||
A clear and concise description of any alternative solutions or features you've considered. | ||
|
||
**Additional context** | ||
Add any other context or screenshots about the feature request here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
name: build and test | ||
|
||
on: | ||
push: | ||
branches: ["main", "beta"] | ||
pull_request: | ||
branches: ["main", "beta"] | ||
|
||
env: | ||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
permissions: | ||
contents: read # for checkout | ||
security-events: read # to get dependencies for compliance even on PRs | ||
|
||
jobs: | ||
compliance: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 | ||
- name: Advance Security Policy as Code | ||
uses: advanced-security/[email protected] | ||
with: | ||
policy: it-at-m/policy-as-code | ||
policy-path: default.yaml | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
argvs: "--disable-dependabot --disable-secret-scanning --disable-code-scanning --display" | ||
build: | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write # to be able to publish a GitHub release | ||
issues: write # to be able to comment on released issues | ||
pull-requests: write # to be able to comment on released pull requests | ||
id-token: write # to enable use of OIDC for npm provenance | ||
steps: | ||
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 | ||
- uses: actions/setup-node@v4 | ||
with: | ||
node-version: "20" | ||
cache: "npm" | ||
registry-url: "https://registry.npmjs.org" | ||
- run: npm ci | ||
- run: npm run coverage | ||
- run: npm run build | ||
- name: run semantic-release | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | ||
run: npm run semantic-release |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# Logs | ||
logs | ||
*.log | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
pnpm-debug.log* | ||
lerna-debug.log* | ||
|
||
node_modules | ||
dist | ||
dist-demo | ||
dist-ssr | ||
*.local | ||
|
||
# Editor directories and files | ||
.vscode/* | ||
!.vscode/extensions.json | ||
.idea | ||
.DS_Store | ||
*.suo | ||
*.ntvs* | ||
*.njsproj | ||
*.sln | ||
*.sw? | ||
|
||
## Test results | ||
coverage/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
{ | ||
"branches": [ | ||
"main", | ||
"+([0-9])?(.{+([0-9]),x}).x", | ||
"next", | ||
"next-major", | ||
{ | ||
"name": "alpha", | ||
"prerelease": true | ||
}, | ||
{ | ||
"name": "beta", | ||
"prerelease": true | ||
} | ||
], | ||
"plugins": [ | ||
"@semantic-release/commit-analyzer", | ||
"@semantic-release/release-notes-generator", | ||
"@semantic-release/npm", | ||
[ | ||
"@semantic-release/github", | ||
{ | ||
"assets": [ | ||
{ | ||
"path": "dist/ezldap-vue-select.js", | ||
"label": "JS distribution" | ||
}, | ||
{ | ||
"path": "dist/ezldap-vue-select.umd.cjs", | ||
"label": "UMD/CJS distribution" | ||
}, | ||
{ | ||
"path": "dist/style.css", | ||
"label": "CSS distribution" | ||
} | ||
] | ||
} | ||
] | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
{ | ||
"recommendations": [ | ||
"vue.volar", | ||
"vue.vscode-typescript-vue-plugin", | ||
"zixuanchen.vitest-explorer", | ||
"esbenp.prettier-vscode", | ||
"dbaeumer.vscode-eslint" | ||
], | ||
"unwantedRecommendations": ["octref.vetur", "Orta.vscode-jest"] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
# ezldap-vue-select | ||
|
||
Provides a Vue.js/Vuetify component `ldap-person-auswahl` for a LDAP-based person search and selection. Uses the [ezLDAP-API](docs/ezLDAP-openapi.yaml) as a datasource. | ||
|
||
Therefore, the `modelValue` of the component is equivalent to `LdapBaseUserDTO` object of the [ezLDAP-API](docs/ezLDAP-openapi.yaml). | ||
|
||
## Usage | ||
|
||
### Required Peer Dependencies | ||
|
||
``` | ||
"@mdi/font": "> 5", | ||
"vue": "^3.2.0", | ||
"vuetify": "^3.3.0" | ||
``` | ||
|
||
### Installation | ||
|
||
``` | ||
npm install @muenchen/ezldap-vue-select | ||
``` | ||
|
||
### Use | ||
|
||
Import component: | ||
|
||
```js | ||
import { LdapPersonAuswahl } from "@muenchen/ezldap-vue-select"; | ||
``` | ||
|
||
Register component (e.g. in `Main.vue`): | ||
|
||
```js | ||
export default { | ||
name: "MyApp", | ||
components: { | ||
LdapPersonAuswahl | ||
} | ||
}); | ||
``` | ||
|
||
Use component in `template`: | ||
|
||
```html | ||
<template> | ||
<ldap-person-auswahl | ||
v-model:modelValue="personData" | ||
id="my-custom-id" | ||
label="Custom Label" | ||
placeholder="Search for LDAP uid ..." | ||
no-data-text="No Person found" | ||
/> | ||
</template> | ||
``` | ||
|
||
more example use cases see [sources of demo app](src/App.vue). | ||
|
||
## Data structure | ||
|
||
`v-model:modelValue` / Prop `modelValue`: | ||
|
||
see [ezLDAP-API](docs/ezLDAP-openapi.yaml) -> Schemas `LdapBaseUserDTO` | ||
|
||
If the value of the component is initially present, following rules are evaluated and actions performed: | ||
|
||
- if `value` == `null` || `{}` : no user is pre-selected | ||
- if `value.lhmObjectId` != null && `value.cn` != null && `value.ou` != null : pre-selection of input based on this data | ||
- if `value.lhmObjectId` != null && `value.cn` == null && `value.ou` == null && Prop `initial-lookup` = true: triggers initial lookup of user data based on `lhmObjectId` from ezLDAP-API, user is then pre-selected | ||
- if `value.uid` != null && `value.cn` == null && `value.ou` == null && Prop `initial-lookup` = true: triggers initial lookup of user data based on `uid` from ezLDAP-API, user is then pre-selected | ||
|
||
Applications can therefore only persist the `lhmObjectId` of the user, but also show more than just the ID in the frontend for presentation purposes. | ||
|
||
## Development | ||
|
||
The template uses Vue `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more. | ||
|
||
```bash | ||
npm run dev | ||
``` | ||
|
||
### Build | ||
|
||
```bash | ||
npm run build | ||
``` | ||
|
||
### Recommended IDE Setup | ||
|
||
- [VS Code](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin). | ||
|
||
### Type Support For `.vue` Imports in TS | ||
|
||
TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types. | ||
|
||
If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps: | ||
|
||
1. Disable the built-in TypeScript Extension | ||
1. Run `Extensions: Show Built-in Extensions` from VSCode's command palette | ||
2. Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)` | ||
2. Reload the VSCode window by running `Developer: Reload Window` from the command palette. | ||
|
||
## Release & Publish | ||
|
||
This project uses [semantic-release](https://github.com/semantic-release/semantic-release)! | ||
|
||
| Commit message | Release type | | ||
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------- | | ||
| `fix: stop graphite breaking when too much pressure applied` | Patch Release | | ||
| `feat: add 'graphiteWidth' option` | ~~Minor~~ Feature Release | | ||
| `perf: remove graphiteWidth option`<br><br>`BREAKING CHANGE: The graphiteWidth option has been removed.`<br>`The default graphite width of 10mm is always used for performance reasons.` | ~~Major~~ Breaking Release | | ||
|
||
## Contributing | ||
|
||
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**. | ||
|
||
If you have a suggestion that would make this better, please open an issue with the tag "enhancement", fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". | ||
Don't forget to give the project a star! Thanks again! | ||
|
||
1. Open an issue with the tag "enhancement" | ||
2. Fork the Project | ||
3. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) | ||
4. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) | ||
5. Push to the Branch (`git push origin feature/AmazingFeature`) | ||
6. Open a Pull Request | ||
|
||
## License | ||
|
||
Distributed under the MIT License. See [LICENSE](LICENSE) file for more information. | ||
|
||
## Contact | ||
|
||
it@M - <[email protected]> |
Oops, something went wrong.