Skip to content

Commit c7a59e9

Browse files
authored
Merge pull request #75 from FriendsOfREDAXO/fulcalendar-6x
fullcalendar 6.x
2 parents feaa230 + f482271 commit c7a59e9

File tree

724 files changed

+59631
-50540
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

724 files changed

+59631
-50540
lines changed

.gitignore

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,28 @@
1+
# Node.js
2+
node_modules/
3+
npm-debug.log
4+
yarn-debug.log
5+
yarn-error.log
16

7+
# Development files
8+
.sass-cache/
9+
*.map
10+
*.log
11+
12+
# IDE and editor folders
13+
.idea/
14+
.vscode/
15+
*.sublime-project
16+
*.sublime-workspace
17+
18+
# OS generated files
219
.DS_Store
3-
vendor/.DS_Store
4-
.DS_Store
20+
.DS_Store?
21+
._*
22+
.Spotlight-V100
23+
.Trashes
24+
ehthumbs.db
25+
Thumbs.db
26+
27+
# Optional: exclude source scss if you don't want to commit it
28+
# assets/vendor/palettecolorpicker/*.scss

README.md

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
# ForCal - Calendar AddOn für REDAXO CMS
2+
3+
## Features
4+
5+
- Kalenderansicht
6+
- Termin-Verwaltung
7+
- Kategorien
8+
- Orte
9+
- Wiederholende Termine
10+
- iCal-Import/Export
11+
- Mehrsprachigkeit
12+
- Benutzerspezifische Berechtigungen
13+
114
# FORCal – Kalender für REDAXO
215

316
FORCal ist flexibel wie ein Framework und lässt sich an die individuellen Anforderungen anpassen. Das AddOn ist skalierbar, unterstützt Multi-Language.
@@ -768,6 +781,26 @@ echo '<a href="'.$link->webOutlook().'">Outlook</a><br>';
768781
echo '<a href="'.$link->ics().'">ICS</a>';
769782
```
770783

784+
785+
## Aktualisierung des FullCalendar
786+
787+
Der FullCalendar wird mit npm verwaltet. Um auf eine neuere Version zu aktualisieren:
788+
789+
```bash
790+
# Im Addon-Verzeichnis
791+
cd redaxo/src/addons/forcal
792+
793+
# FullCalendar aktualisieren
794+
npm update fullcalendar
795+
796+
# Oder auf bestimmte Version aktualisieren
797+
# npm install fullcalendar@X.X.X
798+
799+
# Build-Prozess ausführen, um die aktualisierten Dateien zu kopieren
800+
npm run build
801+
```
802+
803+
771804
## Bugtracker
772805

773806
Du hast einen Fehler gefunden oder ein nettes Feature parat? [Lege ein Issue an](https://github.com/FriendsOfREDAXO/forcal/issues). Bevor du ein neues Issue erstellst, suche bitte ob bereits eines mit deinem Anliegen existiert und lese die [Issue Guidelines (englisch)](https://github.com/necolas/issue-guidelines) von [Nicolas Gallagher](https://github.com/necolas/).
@@ -793,4 +826,3 @@ siehe [LICENSE](https://github.com/FriendsOfREDAXO/forcal/blob/master/LICENCE)
793826
Mit freundlicher Unterstützung durch:
794827

795828
[Deutsche Fußball-Route NRW e.V.](https://dfr-nrw.de)
796-
```

assets/fc-bootstrap3-compat.css

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
/* FullCalendar 6.x Bootstrap 3 Kompatibilitätsanpassungen */
2+
3+
/* Schriftarten und Grundeinstellungen */
4+
.fc {
5+
font-family: inherit;
6+
font-size: 1em;
7+
}
8+
9+
/* Button-Styling für Bootstrap 3 */
10+
.fc .fc-button {
11+
display: inline-block;
12+
margin-bottom: 0;
13+
font-weight: 400;
14+
text-align: center;
15+
white-space: nowrap;
16+
vertical-align: middle;
17+
touch-action: manipulation;
18+
cursor: pointer;
19+
background-image: none;
20+
border: 1px solid transparent;
21+
padding: 6px 12px;
22+
font-size: 14px;
23+
line-height: 1.42857143;
24+
border-radius: 4px;
25+
}
26+
27+
.fc .fc-button-primary {
28+
color: #fff;
29+
background-color: #337ab7;
30+
border-color: #2e6da4;
31+
}
32+
33+
.fc .fc-button-primary:hover {
34+
color: #fff;
35+
background-color: #286090;
36+
border-color: #204d74;
37+
}
38+
39+
.fc .fc-button-primary:disabled {
40+
color: #fff;
41+
background-color: #337ab7;
42+
border-color: #2e6da4;
43+
opacity: 0.65;
44+
}
45+
46+
.fc .fc-button-primary:not(:disabled):active,
47+
.fc .fc-button-primary:not(:disabled).fc-button-active {
48+
color: #fff;
49+
background-color: #286090;
50+
border-color: #204d74;
51+
}
52+
53+
/* Toolbar-Anpassungen */
54+
.fc .fc-toolbar {
55+
display: flex;
56+
flex-wrap: wrap;
57+
justify-content: space-between;
58+
align-items: center;
59+
margin-bottom: 1em;
60+
}
61+
62+
/* Tabellen-Styling für Bootstrap 3 Kompatibilität */
63+
.fc .fc-scrollgrid {
64+
border-collapse: collapse;
65+
border-spacing: 0;
66+
table-layout: fixed;
67+
width: 100%;
68+
}
69+
70+
.fc .fc-scrollgrid td,
71+
.fc .fc-scrollgrid th {
72+
border: 1px solid #ddd;
73+
}
74+
75+
/* Event-Styling */
76+
.fc-event {
77+
background-color: #337ab7;
78+
border: 1px solid #2e6da4;
79+
color: #fff;
80+
}
81+
82+
/* Responsive Anpassungen */
83+
@media screen and (max-width: 767px) {
84+
.fc .fc-toolbar {
85+
flex-direction: column;
86+
}
87+
88+
.fc .fc-toolbar-chunk {
89+
margin-bottom: 0.5em;
90+
}
91+
}

assets/fc-colorpicker-dark.css

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
/* macOS-inspirierte Anpassungen für den Palette Color Picker im Dark Mode */
2+
3+
body.rex-theme-dark .palette-color-picker-button {
4+
background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path fill="%23f5c86c" d="M2 2h8v8H2z"/><path fill="%23f56c6c" d="M12 2h8v8h-8z"/><path fill="%23f46ac6" d="M22 2h8v8h-8z"/><path fill="%23c3f167" d="M2 12h8v8H2z"/><path fill="%23333" d="M12 12h8v8h-8z"/><path fill="%23c76cf5" d="M22 12h8v8h-8z"/><path fill="%2369e369" d="M2 22h8v8H2z"/><path fill="%236bc6f4" d="M12 22h8v8h-8z"/><path fill="%236b6bf5" d="M22 22h8v8h-8z"/><path d="M9 3v6H3V3h6m1-1H2v8h8V2zm9 1v6h-6V3h6m1-1h-8v8h8V2zm9 1v6h-6V3h6m1-1h-8v8h8V2zM9 13v6H3v-6h6m1-1H2v8h8v-8zm9 1v6h-6v-6h6m1-1h-8v8h8v-8zm9 1v6h-6v-6h6m1-1h-8v8h8v-8zM9 23v6H3v-6h6m1-1H2v8h8v-8zm9 1v6h-6v-6h6m1-1h-8v8h8v-8zm9 1v6h-6v-6h6m1-1h-8v8h8v-8z" opacity=".5"/></svg>') center center no-repeat;
5+
background-size: 28px 28px;
6+
background-color: #282828;
7+
border-radius: 6px;
8+
border: 1px solid rgba(255, 255, 255, 0.1);
9+
overflow: hidden;
10+
}
11+
12+
body.rex-theme-dark .palette-color-picker-bubble {
13+
background-color: #282828;
14+
border: 1px solid rgba(255, 255, 255, 0.1);
15+
border-radius: 8px;
16+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
17+
padding: 12px;
18+
}
19+
20+
body.rex-theme-dark .palette-color-picker-bubble:after {
21+
border-top-color: #282828;
22+
}
23+
24+
body.rex-theme-dark .palette-color-picker-bubble:before {
25+
border-top-color: rgba(255, 255, 255, 0.1);
26+
}
27+
28+
body.rex-theme-dark .palette-color-picker-bubble.downside:after {
29+
border-bottom-color: #282828;
30+
border-top-color: transparent;
31+
}
32+
33+
body.rex-theme-dark .palette-color-picker-bubble.downside:before {
34+
border-bottom-color: rgba(255, 255, 255, 0.1);
35+
border-top-color: transparent;
36+
}
37+
38+
body.rex-theme-dark .palette-color-picker-bubble span.swatch,
39+
body.rex-theme-dark .palette-color-picker-bubble .swatch {
40+
outline: 1px solid rgba(255, 255, 255, 0.2);
41+
border: 2px solid #282828;
42+
border-radius: 6px;
43+
transition: transform 0.15s ease;
44+
}
45+
46+
body.rex-theme-dark .palette-color-picker-bubble .swatch:hover {
47+
transform: scale(1.1);
48+
}
49+
50+
body.rex-theme-dark .palette-color-picker-bubble .swatch.active {
51+
outline-color: #0a84ff;
52+
box-shadow: 0 0 0 2px rgba(10, 132, 255, 0.5);
53+
}
54+
55+
body.rex-theme-dark .palette-color-picker-bubble .swatch.clear {
56+
background-color: #444;
57+
}
58+
59+
body.rex-theme-dark .palette-color-picker-bubble .swatch.clear:before {
60+
background-color: #ff453a;
61+
}
62+
63+
/* System Dark Mode Support */
64+
@media (prefers-color-scheme: dark) {
65+
body:not(.rex-theme-light) .palette-color-picker-button {
66+
background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path fill="%23f5c86c" d="M2 2h8v8H2z"/><path fill="%23f56c6c" d="M12 2h8v8h-8z"/><path fill="%23f46ac6" d="M22 2h8v8h-8z"/><path fill="%23c3f167" d="M2 12h8v8H2z"/><path fill="%23333" d="M12 12h8v8h-8z"/><path fill="%23c76cf5" d="M22 12h8v8h-8z"/><path fill="%2369e369" d="M2 22h8v8H2z"/><path fill="%236bc6f4" d="M12 22h8v8h-8z"/><path fill="%236b6bf5" d="M22 22h8v8h-8z"/><path d="M9 3v6H3V3h6m1-1H2v8h8V2zm9 1v6h-6V3h6m1-1h-8v8h8V2zm9 1v6h-6V3h6m1-1h-8v8h8V2zM9 13v6H3v-6h6m1-1H2v8h8v-8zm9 1v6h-6v-6h6m1-1h-8v8h8v-8zm9 1v6h-6v-6h6m1-1h-8v8h8v-8zM9 23v6H3v-6h6m1-1H2v8h8v-8zm9 1v6h-6v-6h6m1-1h-8v8h8v-8zm9 1v6h-6v-6h6m1-1h-8v8h8v-8z" opacity=".5"/></svg>') center center no-repeat;
67+
background-size: 28px 28px;
68+
background-color: #282828;
69+
border-radius: 6px;
70+
border: 1px solid rgba(255, 255, 255, 0.1);
71+
overflow: hidden;
72+
}
73+
74+
body:not(.rex-theme-light) .palette-color-picker-bubble {
75+
background-color: #282828;
76+
border: 1px solid rgba(255, 255, 255, 0.1);
77+
border-radius: 8px;
78+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
79+
padding: 12px;
80+
}
81+
82+
body:not(.rex-theme-light) .palette-color-picker-bubble:after {
83+
border-top-color: #282828;
84+
}
85+
86+
body:not(.rex-theme-light) .palette-color-picker-bubble:before {
87+
border-top-color: rgba(255, 255, 255, 0.1);
88+
}
89+
90+
body:not(.rex-theme-light) .palette-color-picker-bubble.downside:after {
91+
border-bottom-color: #282828;
92+
border-top-color: transparent;
93+
}
94+
95+
body:not(.rex-theme-light) .palette-color-picker-bubble.downside:before {
96+
border-bottom-color: rgba(255, 255, 255, 0.1);
97+
border-top-color: transparent;
98+
}
99+
100+
body:not(.rex-theme-light) .palette-color-picker-bubble span.swatch,
101+
body:not(.rex-theme-light) .palette-color-picker-bubble .swatch {
102+
outline: 1px solid rgba(255, 255, 255, 0.2);
103+
border: 2px solid #282828;
104+
border-radius: 6px;
105+
transition: transform 0.15s ease;
106+
}
107+
108+
body:not(.rex-theme-light) .palette-color-picker-bubble .swatch:hover {
109+
transform: scale(1.1);
110+
}
111+
112+
body:not(.rex-theme-light) .palette-color-picker-bubble .swatch.active {
113+
outline-color: #0a84ff;
114+
box-shadow: 0 0 0 2px rgba(10, 132, 255, 0.5);
115+
}
116+
117+
body:not(.rex-theme-light) .palette-color-picker-bubble .swatch.clear {
118+
background-color: #444;
119+
}
120+
121+
body:not(.rex-theme-light) .palette-color-picker-bubble .swatch.clear:before {
122+
background-color: #ff453a;
123+
}
124+
}

0 commit comments

Comments
 (0)