diff --git a/.env b/.env
index 96449f3..0c07879 100644
--- a/.env
+++ b/.env
@@ -17,13 +17,13 @@
###> symfony/framework-bundle ###
APP_ENV=dev
APP_SECRET=83df005f029c92c8e01026218f588371
-APP_URL=http://localhost:8000
+APP_URL=https://mycrm.test
###< symfony/framework-bundle ###
###> symfony/routing ###
# Configure how to generate URLs in non-HTTP contexts, such as CLI commands.
# See https://symfony.com/doc/current/routing.html#generating-urls-in-commands
-DEFAULT_URI=http://localhost
+DEFAULT_URI=https://mycrm.test
###< symfony/routing ###
###> doctrine/doctrine-bundle ###
@@ -58,8 +58,8 @@ CORS_ALLOW_ORIGIN='^https?://(localhost|127\.0\.0\.1)(:[0-9]+)?$'
###> knpuniversity/oauth2-client-bundle ###
# Pocket-ID OIDC Configuration
# Get your credentials from your Pocket-ID instance
-OAUTH_POCKET_ID_URL=https://your-pocket-id-instance.com
-OAUTH_POCKET_ID_CLIENT_ID=your-client-id
-OAUTH_POCKET_ID_CLIENT_SECRET=your-client-secret
-OAUTH_POCKET_ID_REDIRECT_URI=http://localhost:8000/connect/pocketid/check
+OAUTH_POCKET_ID_URL=https://id.osdata-home.de
+OAUTH_POCKET_ID_CLIENT_ID=2e698201-8a79-4598-9b7d-81b57289c340
+OAUTH_POCKET_ID_CLIENT_SECRET=
+OAUTH_POCKET_ID_REDIRECT_URI=https://mycrm.test/dashboard
###< knpuniversity/oauth2-client-bundle ###
diff --git a/assets/app.js b/assets/app.js
index 5073754..da9fa7b 100644
--- a/assets/app.js
+++ b/assets/app.js
@@ -23,6 +23,9 @@ import router from './js/router';
import App from './js/App.vue';
import { useAuthStore } from './js/stores/auth';
+// Global Components
+import DocumentUpload from './js/components/DocumentUpload.vue';
+
// PrimeVue Components (lazy import as needed in components)
import 'primeicons/primeicons.css';
@@ -169,6 +172,9 @@ app.directive('tooltip', Tooltip);
app.directive('styleclass', StyleClass);
app.component('Toast', Toast);
+// Register global components
+app.component('DocumentUpload', DocumentUpload);
+
app.mount('#app');
// Apply saved theme colors after mount
diff --git a/assets/images/logo.svg b/assets/images/logo.svg
new file mode 100644
index 0000000..311c435
--- /dev/null
+++ b/assets/images/logo.svg
@@ -0,0 +1,4 @@
+
diff --git a/assets/images/osdata.svg b/assets/images/osdata.svg
new file mode 100644
index 0000000..e8516ec
--- /dev/null
+++ b/assets/images/osdata.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/images/osdata_clear.svg b/assets/images/osdata_clear.svg
new file mode 100644
index 0000000..aae9d19
--- /dev/null
+++ b/assets/images/osdata_clear.svg
@@ -0,0 +1,50 @@
+
+
+
diff --git a/assets/js/components/DocumentUpload.vue b/assets/js/components/DocumentUpload.vue
new file mode 100644
index 0000000..2f32c22
--- /dev/null
+++ b/assets/js/components/DocumentUpload.vue
@@ -0,0 +1,379 @@
+
+
+
+
{{ title }}
+
+
+
+
+
+
+
+
+
+ {{ data.originalFilename }}
+
+
+
+
+
+
+ {{ formatFileSize(data.size) }}
+
+
+
+
+ {{ formatDate(data.uploadedAt) }}
+
+
+
+
+ {{ data.uploadedBy ? `${data.uploadedBy.firstName} ${data.uploadedBy.lastName}` : 'Unbekannt' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/js/components/GitCommitList.vue b/assets/js/components/GitCommitList.vue
new file mode 100644
index 0000000..e307ec9
--- /dev/null
+++ b/assets/js/components/GitCommitList.vue
@@ -0,0 +1,142 @@
+
+
+
+
+
+ Keine Commits gefunden
+
+
+
+
+
+ {{ data.shortHash }}
+
+
+
+
+
+ {{ data.subject }}
+
+ {{ data.body }}
+
+
+
+
+
+
+
+ {{ data.author }}
+ {{ data.email }}
+
+
+
+
+
+
+ {{ formatDate(data.date) }}
+
+
+
+
+
+
+
+
+
diff --git a/assets/js/components/GitContributionChart.vue b/assets/js/components/GitContributionChart.vue
new file mode 100644
index 0000000..086556b
--- /dev/null
+++ b/assets/js/components/GitContributionChart.vue
@@ -0,0 +1,291 @@
+
+
+
+
Contributions im letzten Jahr
+
+
+ {{ totalContributions }} Commits
+
+
+
+
+
+
+
+
+
+
+
+
Keine Contributions im letzten Jahr
+
+
+
+
+
+
+
+
+
Weniger
+
+
+
+
+
+
Mehr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/js/layout/AppFooter.vue b/assets/js/layout/AppFooter.vue
index 450d1a0..c15da52 100644
--- a/assets/js/layout/AppFooter.vue
+++ b/assets/js/layout/AppFooter.vue
@@ -5,3 +5,9 @@
2025 © osdata.org
+
+
\ No newline at end of file
diff --git a/assets/js/views/ProjectManagement.vue b/assets/js/views/ProjectManagement.vue
index 1f7d3c0..70cbc1e 100644
--- a/assets/js/views/ProjectManagement.vue
+++ b/assets/js/views/ProjectManagement.vue
@@ -277,6 +277,89 @@
/>
+
+
+
+
+
+
+
Git Repositories
+
+
+
+
+
+ {{ data.name }}
+
+
+
+
+
+
+ {{ data.url }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.branch || 'main' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Keine Git-Repositories verknüpft
+
+
+
+
+
@@ -285,6 +368,177 @@
+
+
+
+
+
+