Commit Graph

101 Commits

Author SHA1 Message Date
Meier Lukas
db198c6dab feat: add media management (#1337)
* feat: add media management

* feat: add missing page search item

* fix: medias should be hidden for anonymous users

* chore: rename show-all to include-from-all-users

* fix: inconsistent table column for creator-id of media

* fix: schema check not working because of custom type for blob in mysql

* chore: temporarily remove migrations

* chore: readd removed migrations
2024-10-26 22:45:32 +02:00
Meier Lukas
c37a0e38d9 fix: health-check widget sorting & last seen (#1363)
Co-authored-by: Yossi Hillali <950010+hillaliy@users.noreply.github.com>
2024-10-23 17:30:10 +02:00
Meier Lukas
2f1c800844 feat: add everyone group (#1322)
* feat: add everyone group through seed

* feat: add reserved group name check in group router actions

* feat: improve user interface for everyone group

* fix: reserved group alert is a server component

* feat: add all users to everyone group

* chore: update lockfile

* fix: format issues

* fix: lint issues

* fix: lint format issues

* test: add unit tests for everyone group

* refactor: add codegen for documentation urls by sitemap

* refactor: change group query to count

* chore: remove migrations temporarily

* chore: add migrations again

* chore: add lint rule to prevent usage of raw documentation links

* fix: format issues
2024-10-21 17:23:51 +02:00
Yossi Hillali
ce67fcd57c fix: add subscription to health monitoring widget (#1210)
* fix: add subscription

* fix: add time stamped

* fix: rtl, timestamp, scrollArea

* fix: common.rtl

* fix: rtl

* fix: reviewed changes

* fix: translation

* fix: reviewed changes

* fix: deepScource

* fix: reviewed changes

* fix: add last seen
2024-10-18 21:42:33 +03:00
Meier Lukas
348687670d feat: user setting ping icons (#1277)
* feat: user setting ping icons

* fix: format issues

* test: adjust test to match expectations
2024-10-12 00:20:47 +02:00
Meier Lukas
0f8d9edb3e refactor: replace serverdata with suspense query (#1265)
* refactor: replace serverdata with suspense query

* fix: deepsource issues
2024-10-11 23:47:07 +02:00
Meier Lukas
ab1744ce20 feat: add first day of week user setting (#1249)
* feat: add first day of week user setting

* fix: add missing migrations

* fix: format and test issues

* fix: deepsource issue

* refactor: rename first-day-of-week procedure
2024-10-07 21:13:38 +02:00
Meier Lukas
1421ccc917 fix: permissions not restricted for certain management pages / actions (#1219)
* fix: restrict parts of manage navigation to admins

* fix: restrict stats cards on manage home page

* fix: restrict access to amount of certain stats for manage home

* fix: restrict visibility of board create button

* fix: restrict access to integration pages

* fix: restrict access to tools pages for admins

* fix: restrict access to user and group pages

* test: adjust tests to match permission changes for routes

* fix: remove certain pages from spotlight without admin

* fix: app management not restricted
2024-10-05 17:03:32 +02:00
Manuel
b14f82b4bb feat: add api keys (#991)
* feat: add api keys

* chore: address pull request feedback

---------

Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
2024-10-05 16:18:31 +02:00
Meier Lukas
4c9471e608 feat(spotlight): add support for custom search-engines (#1200)
* feat(spotlight): add search settings link

* feat(search-engine): add to manage pages

* feat(spotlight): add children option for external search engines

* chore: revert search settings

* fix: deepsource issue

* fix: inconsistent breadcrum placement

* chore: address pull request feedback
2024-10-04 15:59:08 +02:00
Yossi Hillali
0f56dc1ecd feat: OMV integration & health monitoring widget (#1142) 2024-09-30 14:05:13 +03:00
SeDemal
36915d95fe feat: DnsHole feature parity with oldmarr (#1145)
* feat: DnsHole feature parity with oldmarr
feat: advanced control management
feat: disconnected state
fix: summary widget sizing
feat: summary text flash on update

* feat: dnshole summary integrations disconnected error page

* fix: classnaming

* refactor: small rename, console to logger and unnecessary as conversion changes

---------

Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
2024-09-24 23:25:13 +02:00
Meier Lukas
ce1ef3cbe7 feat: add improved search (#1051)
* feat: add improved search

* wip: add support for sorting, rename use-options to use-query-options, add use-options for local usage, add pages search group

* feat: add help links from manage layout to help search mode

* feat: add additional search engines

* feat: add group search details

* refactor: improve users search group type

* feat: add apps search group, add disabled search interaction

* feat: add integrations and boards for search

* wip: hook issue with react

* fix: hook issue regarding actions and interactions

* chore: address pull request feedback

* fix: format issues

* feat: add additional global actions to search

* chore: remove unused code

* fix: search engine short key

* fix: typecheck issues

* fix: deepsource issues

* fix: eslint issue

* fix: lint issues

* fix: unordered dependencies

* chore: address pull request feedback
2024-09-20 16:51:42 +02:00
Meier Lukas
6738296830 refactor: move modals to seperate package (#1135)
* refactor: move modals to seperate package

* fix: format issue

* fix: lint issues

* fix: format issue

* fix: only used as type
2024-09-16 19:53:37 +02:00
Manuel
2535192b2c feat: downloads widget (#844)
Usenet and Torrent downloads in 1 widget.
sabNZBd, NzbGet, Deluge, qBitTorrent, and transmission support.
Columns can be reordered in Edit mode.
Sorting enabled.
Time uses Dayjs with auto translation.
Can pause/resume single items, clients, or all.
Can delete items (With option to delete assossiated files).
Clients list and details.
Include all filtering and processing for ratio from oldmarr torrent widget.
Invalidation of old data (older than 30 seconds) to show an integration is not responding anymore.

Misc (So many miscs):
Fixed validation error with multiText.
Fixed translation application for multiSelect to behave the same as select.
Added background to gitignore (I needed to add a background to visually test opacity, probably will in the future too)
Added setOptions to frontend components so potential updates made from the Dashboard can be saved.
Extracted background and border color to use in widgets.
humanFileSize function based on the si format (powers of 1024, not 1000).
Improved integrationCreatorByKind by @Meierschlumpf.
Changed integrationCreatorByKind to integrationCreator so it functions directly from the integration.
Added integrationCreatorFromSecrets to directly work with secrets from db.
Added getIntegrationKindsByCategory to get a list of integrations sharing categories.
Added IntegrationKindByCategory type to get the types possible for a category (Great to cast on integration.kind that isn't already properly limited/typed but for which we know the limitation)
Added a common AtLeastOneOf type. Applied to TKind and IntegrationSecretKind[] where it was already being used and Added to the getIntegrationKindsByCategory's output to be more freely used.
Added the Modify type, instead of omiting to then add again just to change a parameters type, use the modify instead. Applied code wide already.
Hook to get list of integration depending on permission level of user. (By @Meierschlumpf)
2024-09-11 17:30:21 +02:00
Yossi Hillali
08d4472d8b feat: indexer manager widget (#1057)
* fix(deps): update tanstack-query monorepo to ^5.53.2 (#1055)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>

<br/>
<div align="center">
  <img src="https://homarr.dev/img/logo.png" height="80" alt="" />
  <h3>Homarr</h3>
</div>

**Thank you for your contribution. Please ensure that your pull request meets the following pull request:**

- [ ] Builds without warnings or errors (``pnpm buid``, autofix with ``pnpm format:fix``)
- [ ] Pull request targets ``dev`` branch
- [ ] Commits follow the [conventional commits guideline](https://www.conventionalcommits.org/en/v1.0.0/)
- [ ] No shorthand variable names are used (eg. ``x``, ``y``, ``i`` or any abbrevation)

* fix: requested changes

* fix: requested changes

* feat: add cron job

* fix: review changes

* fix: add missing oldmarr import mappings

---------

Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
2024-09-07 23:18:16 +02:00
Meier Lukas
5404cebf5b feat: add import for config files from oldmarr (#1019)
* wip: add oldmarr config import

* wip: add support for wrong amount of categories / sections with autofix, color mapping, position adjustments of wrappers

* fix: lockfile broken

* feat: add support for form data trpc requests

* wip: improve file upload

* refactor: restructure import, add import configuration

* wip: add configurations for import to modal

* refactor: move oldmarr import to old-import package

* fix: column count not respects screen size for board

* feat: add beta badge for oldmarr config import

* chore: address pull request feedback

* fix: format issues

* fix: inconsistent versions

* fix: deepsource issues

* fix: revert {} to Record<string, never> convertion to prevent typecheck issue

* fix: inconsistent zod version

* fix: format issue

* chore: address pull request feedback

* fix: wrong import

* fix: broken lock file

* fix: inconsistent versions

* fix: format issues
2024-09-07 18:13:24 +02:00
Meier Lukas
b080e0de71 feat: add colorscheme to user in db (#987) 2024-09-01 20:37:52 +02:00
Manuel
f0cd45c813 feat: implement openapi (#482) 2024-08-25 18:03:32 +02:00
Manuel
acbb834889 feat: add media requests widget (#774)
Co-authored-by: SeDemal <Tagaishi@hotmail.ch>
Co-authored-by: SeDemal <demal.sebastien@bluewin.ch>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
2024-08-24 15:23:16 +02:00
Meier Lukas
2d155fa0c4 feat: add password requirements (#988)
* feat: add password requirements

* fix: format issue

* fix: unexpected empty string in component jsx

* test: adjust unit test passwords
2024-08-19 21:11:36 +02:00
Meier Lukas
9ce172e78a feat: add dynamic section (#842)
* chore: add parent_section_id and change position to x and y_offset for sqlite section table

* chore: rename existing positions to x_offset and y_offset

* chore: add related mysql migration

* chore: add missing height and width to section table

* fix: missing width and height in migration copy script

* fix: typecheck issues

* fix: test not working caused by unsimilar schemas

* wip: add dynamic section

* refactor: improve structure of gridstack sections

* feat: add rendering of dynamic sections

* feat: add saving of moved sections

* wip: add static row count, restrict min-width and height

* chore: address pull request feedback

* fix: format issues

* fix: size calculation within dynamic sections

* fix: on resize not called when min width or height is reached

* fix: size of items while dragging is to big

* chore: temporarly remove migration files

* chore: readd migrations

* fix: format and deepsource issues

* chore: remove db_dev.sqlite file

* chore: add *.sqlite to .gitignore

* chore: address pull request feedback

* feat: add dynamic section actions for adding and removing them
2024-08-10 12:37:16 +02:00
Meier Lukas
f327837d82 feat: add user setting for home board (#956) 2024-08-09 19:24:50 +02:00
Meier Lukas
fcb72e6716 feat: add column count and is public options to board creation modal (#930)
* feat: add column count and is public options to board creation modal

* test: adjust board creation test to match modified schema
2024-08-09 18:28:52 +02:00
Yossi Hillali
44712608b7 feat: AdGuard Home integration (#929)
* feat: AdGuard Home integration

* fix: code improvments

* fix: a better errorMessages method
2024-08-07 09:06:59 +03:00
Meier Lukas
7fa5e70d5b feat: reset password cli (#903)
* feat: add password reset cli

* feat: add homarr cli to docker image
2024-08-04 21:44:51 +02:00
Meier Lukas
b53a2b6b78 feat: add refresh button to docker containers table (#913) 2024-08-04 21:19:31 +02:00
Meier Lukas
b8b084c188 fix: restrict access to docker containers page to admins (#912) 2024-08-04 21:19:16 +02:00
Yossi Hillali
65c6854e44 feat: dnshole controls widget (#867)
* feat: dnshole controls widget

* feat: add duration and timer modal

* fix: code improvment

* fix: add support for many integrations

* fix: add support for more integrations

* fix: move ControlsCard outside of main component

* fix: deepsource
2024-08-04 18:47:00 +03:00
Meier Lukas
67dad45214 fix: fetch timeout for external requests to small (#881)
* fix: fetch timeout for external requests to small

* fix: format issue

* fix: move clear timeout for fetch to finally
2024-07-29 06:30:56 +02:00
Manuel
15d9327d46 feat: add rss widget (#760)
Co-authored-by: SeDemal <demal.sebastien@bluewin.ch>
2024-07-27 18:11:29 +02:00
Meier Lukas
6f7327b774 feat: restrict non credential provider interactions (#871)
* wip: add provider field to sqlite user table

* feat: disable invites when credentials provider is not used

* wip: add migration for provider field in user table with sqlite

* wip: remove fields that can not be modified by non credential users

* wip: make username, mail and avatar disabled instead of hidden

* wip: external users membership of group cannot be managed manually

* feat: add alerts to inform about disabled fields and managing group members

* wip: add mysql migration for provider on user table

* chore: fix format issues

* chore: address pull request feedback

* fix: build issue

* fix: deepsource issues

* fix: tests not working

* feat: restrict login to specific auth providers

* chore: address pull request feedback

* fix: deepsource issue
2024-07-27 11:38:51 +02:00
Meier Lukas
46943b147a feat: add integration access check to middlewares (#756)
* feat: add integration access check to middlewares

* fix: format issues

* fix: remove group and user permissions and items from context

* refactor: move action check to seperate function
2024-07-08 17:39:36 +02:00
Meier Lukas
408cdeb5c3 feat: add integration access settings (#725)
* feat: add integration access settings

* fix: typecheck and test issues

* fix: test timeout

* chore: address pull request feedback

* chore: add throw if action forbidden for integration permissions

* fix: unable to create new migrations because of duplicate prevId in sqlite snapshots

* chore: add sqlite migration for integration permissions

* test: add unit tests for integration access

* test: add permission checks to integration router tests

* test: add unit test for integration permissions

* chore: add mysql migration

* fix: format issues
2024-07-08 00:00:37 +02:00
Meier Lukas
95101e34ed feat: add docker actions (#752)
* feat: add docker actions

* chore: remove unnecessary import
2024-07-07 09:58:40 +02:00
Meier Lukas
998615fc11 fix: memory leak caused by many unclosed redis subscriptions (#750)
* fix: memory leak caused by many unclosed redis subscriptions

* chore: address pull request feedback
2024-07-07 09:58:20 +02:00
Meier Lukas
41dba7b516 fix: controller is already closed trpc subscription observable error (#743) 2024-07-03 20:31:06 +02:00
Manuel
bb8640b162 feat: add jellyfin integration (#672)
* feat: #655 implement jellyfin media server

* fix: table overflow

* feat: pr feedback

* refactor: format

* refactor: merge existing code

* fix: code smells

* refactor: format commit
2024-07-03 20:06:57 +02:00
Manuel
dba97a3bd6 feat: add calendar widget (#663)
* feat: add calendar widget

* feat: add artifacts to gitignore
2024-07-02 12:13:13 +02:00
Manuel
08d571ad74 feat: add tasks page (#692) 2024-07-01 18:57:40 +02:00
Meier Lukas
f92aeba403 feat: test integration connection (#669)
* feat: add test integration for pi-hole

* refactor: test integration for pi-hole

* fix: multiple secrets of same type could be used for integration creation

* fix: remove integration test connection test and add mock for test-connection function

* fix: add missing onUpdateFn to mysql integration secrets

* fix: format issues

* feat: add home assistant test connection

* fix: deepsource issues

* test: add system integration tests for test connection

* fix: add before all for pulling home assistant image

* test: add unit tests for handleTestConnectionResponseAsync

* test: add unit test for testConnectionAsync

* test: add mroe tests to integration-test-connection

* fix: deepsource issues

* fix: deepsource issue

* chore: address pull request feedback
2024-06-22 21:02:04 +02:00
Manuel
2e782ae442 feat: add homeassistant integration (#578) 2024-06-10 21:16:39 +02:00
Meier Lukas
3a3a8251bd feat: improve user init setup (#643) 2024-06-08 23:35:48 +02:00
homarr-renovate[bot]
1bae7352dc chore(deps): update dependency eslint to v9 (#452)
* chore(deps): update dependency eslint to v9

* chore: migrate eslint to v9

* fix: dependency issues

* fix: unit tests not working

* chore: disable lint check for Image component that does not work in ci

* fix: lint issue

---------

Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
2024-06-08 20:49:57 +02:00
Meier Lukas
d7ecdf5567 feat: add simple app ping (#580)
* feat: add simple ping

* refactor: make ping run on server and show errors

* fix: format issues

* fix: missing translation for enabled ping option for app

* refactor: remove ping queue as no longer needed

* chore: address pull request feedback

* test: add some unit tests

* fix: format issues

* fix: deepsource issues
2024-06-08 17:33:16 +02:00
SeDemal
cfd8b328b4 feat: weather widget scalable (#574)
* refactor: Make weather widget scalable

* fix: formatting

* fix: map key again

* fix: null assertions
2024-06-05 21:26:59 +02:00
Thomas Camlong
dd2937a0d6 feat: add docker container table (#520)
* WIP On docker integration

* WIP on adding docker support

* WIP on adding docker support

* chore: Add cacheTime parameter to createCacheChannel function

* bugfix: Add node-loader npm dependency for webpack configuration

* revert changes

* chore: Add node-loader npm dependency for webpack configuration

* feat: Add Docker container list to DockerPage

* chore: apply pr suggestions

* fix: fix printing issue using a Date objext

* chore: Update npm dependencies

* feat: Create DockerTable component for displaying Docker container list

* feat: Refactor DockerPage to use DockerTable component

* feat: Refactor DockerPage to use DockerTable component

* feat: Add useTimeAgo hook for displaying relative timestamps

* feat: Add hooks module to common package

* refactor: Update DockerTable component

Include container actions and state badges

* feat: add information about instance for docker containers

* feat: Add OverflowBadge component for displaying overflowed data

* feat: Refactor DockerSingleton to use host and instance properties

This commit refactors the DockerSingleton class in the `docker.ts` file to use the `host` and `instance` properties instead of the previous `key` and `remoteApi` properties. This change improves clarity and consistency in the codebase.

* feat: Add OverflowBadge component for displaying overflowed data

* feat: Improve DockerTable component with Avatar and Name column

This commit enhances the DockerTable component in the `DockerTable.tsx` file by adding an Avatar and Name column. The Avatar column displays an icon based on the Docker container's image, while the Name column shows the container's name. This improvement provides better visual representation and identification of the containers in the table.

* feat: Enhance DockerTable component with Avatar and Name columns

* refactor: improve docker table and icon resolution

* chore: address pull request feedback

* fix: format issues

* chore: add missing translations

* refactor: remove black background

---------

Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
2024-05-29 21:57:02 +02:00
Manuel
7e64d39693 feat: add analytics (#528)
* feat: add analytics

* feat: send data to umami

* refactor: fix format

* fix: click behavior of switches

* refactor: format

* chore: rerun ci

---------

Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
2024-05-26 17:18:25 +02:00
Meier Lukas
d57b771a17 feat: add pi hole summary integration (#521)
* feat: add pi hole summary integration

* feat: add pi hole summary widget

* fix: type issues with integrations and integrationIds

* feat: add middleware for integrations and improve cache redis channel

* feat: add error boundary for widgets

* fix: broken lock file

* fix: format format issues

* fix: typecheck issue

* fix: deepsource issues

* fix: widget sandbox without error boundary

* chore: address pull request feedback

* chore: remove todo comment and created issue

* fix: format issues

* fix: deepsource issue
2024-05-26 17:13:34 +02:00
Thomas Camlong
048711fe05 chore: Update trpc logger info (#526)
It now includes the username of the person doing the tRPC request (because the user id is not enough)
2024-05-20 17:00:50 +02:00