From a8578cfb9963ca733cec35bd30e58b232c91af6f Mon Sep 17 00:00:00 2001 From: Haxxer Date: Thu, 31 Oct 2024 10:22:28 +0000 Subject: [PATCH] Componentized all collapsibles --- resources/js/app.js | 53 +- .../calendar/calendar_linking_collapsible.js | 7 + resources/js/calendar/clock_collapsible.js | 7 + resources/js/calendar/cycles_collapsible.js | 7 + resources/js/calendar/eras_collapsible.js | 7 + .../calendar/event_categories_collapsible.js | 7 + resources/js/calendar/events_collapsible.js | 7 + .../js/calendar/leap_days_collapsible.js | 7 + .../js/calendar/locations_collapsible.js | 7 + resources/js/calendar/moons_collapsible.js | 7 + .../real_time_advancement_collapsible.js | 7 + resources/js/calendar/seasons_collapsible.js | 7 + resources/js/calendar/settings_collapsible.js | 7 + .../calendar/user_management_collapsible.js | 7 + resources/js/calendar/weather_collapsible.js | 7 + .../calendar-linking-collapsible.blade.php | 48 + .../components/clock-collapsible.blade.php | 130 ++ .../views/components/collapsible.blade.php | 17 +- .../components/cycles-collapsible.blade.php | 20 + .../components/eras-collapsible.blade.php | 52 + .../event-categories-collapsible.blade.php | 29 + .../components/events-collapsible.blade.php | 110 ++ .../leap-days-collapsible.blade.php | 73 + .../locations-collapsible.blade.php | 48 + .../components/moons-collapsible.blade.php | 40 + ...eal-time-advancement-collapsible.blade.php | 175 ++ .../components/seasons-collapsible.blade.php | 74 + .../components/settings-collapsible.blade.php | 244 +++ .../user-management-collapsible.blade.php | 36 + .../components/weather-collapsible.blade.php | 81 + resources/views/inputs/full.blade.php | 1677 ++--------------- 31 files changed, 1478 insertions(+), 1527 deletions(-) create mode 100644 resources/js/calendar/calendar_linking_collapsible.js create mode 100644 resources/js/calendar/clock_collapsible.js create mode 100644 resources/js/calendar/cycles_collapsible.js create mode 100644 resources/js/calendar/eras_collapsible.js create mode 100644 resources/js/calendar/event_categories_collapsible.js create mode 100644 resources/js/calendar/events_collapsible.js create mode 100644 resources/js/calendar/leap_days_collapsible.js create mode 100644 resources/js/calendar/locations_collapsible.js create mode 100644 resources/js/calendar/moons_collapsible.js create mode 100644 resources/js/calendar/real_time_advancement_collapsible.js create mode 100644 resources/js/calendar/seasons_collapsible.js create mode 100644 resources/js/calendar/settings_collapsible.js create mode 100644 resources/js/calendar/user_management_collapsible.js create mode 100644 resources/js/calendar/weather_collapsible.js create mode 100644 resources/views/components/calendar-linking-collapsible.blade.php create mode 100644 resources/views/components/clock-collapsible.blade.php create mode 100644 resources/views/components/cycles-collapsible.blade.php create mode 100644 resources/views/components/eras-collapsible.blade.php create mode 100644 resources/views/components/event-categories-collapsible.blade.php create mode 100644 resources/views/components/events-collapsible.blade.php create mode 100644 resources/views/components/leap-days-collapsible.blade.php create mode 100644 resources/views/components/locations-collapsible.blade.php create mode 100644 resources/views/components/moons-collapsible.blade.php create mode 100644 resources/views/components/real-time-advancement-collapsible.blade.php create mode 100644 resources/views/components/seasons-collapsible.blade.php create mode 100644 resources/views/components/settings-collapsible.blade.php create mode 100644 resources/views/components/user-management-collapsible.blade.php create mode 100644 resources/views/components/weather-collapsible.blade.php diff --git a/resources/js/app.js b/resources/js/app.js index f8771882..a141c2d1 100755 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -304,27 +304,68 @@ Alpine.data('MainApp', () => ({ import ContextMenu from './context-menu.js'; Alpine.data('context_menu', ContextMenu); +import RichEditor from './rich-editor.js'; +Alpine.data('rich_editor', RichEditor); + +import MoonTooltip from './moon-tooltip.js'; +Alpine.data('moon_tooltip', MoonTooltip); + +import WeatherTooltip from './weather-tooltip.js'; +Alpine.data("weather_tooltip", WeatherTooltip); + import StatisticsCollapsible from './calendar/statistics_collapsible.js'; Alpine.data('statistics_collapsible', StatisticsCollapsible); import CurrentDateCollapsible from './calendar/current_date_collapsible.js'; Alpine.data('current_date_collapsible', CurrentDateCollapsible); +import ClockCollapsible from './calendar/clock_collapsible.js'; +Alpine.data('clock_collapsible', ClockCollapsible); + +import RealTimeAdvancementCollapsible from './calendar/real_time_advancement_collapsible.js'; +Alpine.data('real_time_advancement_collapsible', RealTimeAdvancementCollapsible); + import WeekdaysCollapsible from './calendar/weekdays_collapsible.js'; Alpine.data('weekdays_collapsible', WeekdaysCollapsible); import MonthsCollapsible from './calendar/months_collapsible.js'; Alpine.data('months_collapsible', MonthsCollapsible); +import LeapDaysCollapsible from './calendar/leap_days_collapsible.js'; +Alpine.data('leap_days_collapsible', LeapDaysCollapsible); -import RichEditor from './rich-editor.js'; -Alpine.data('rich_editor', RichEditor); +import ErasCollapsible from './calendar/eras_collapsible.js'; +Alpine.data('eras_collapsible', ErasCollapsible); -import MoonTooltip from './moon-tooltip.js'; -Alpine.data('moon_tooltip', MoonTooltip); +import MoonsCollapsible from './calendar/moons_collapsible.js'; +Alpine.data('moons_collapsible', MoonsCollapsible); -import WeatherTooltip from './weather-tooltip.js'; -Alpine.data("weather_tooltip", WeatherTooltip); +import SeasonsCollapsible from './calendar/seasons_collapsible.js'; +Alpine.data('seasons_collapsible', SeasonsCollapsible); + +import WeatherCollapsible from './calendar/weather_collapsible.js'; +Alpine.data('weather_collapsible', WeatherCollapsible); + +import LocationsCollapsible from './calendar/locations_collapsible.js'; +Alpine.data('locations_collapsible', LocationsCollapsible); + +import CyclesCollapsible from './calendar/cycles_collapsible.js'; +Alpine.data('cycles_collapsible', CyclesCollapsible); + +import EventCategoriesCollapsible from './calendar/event_categories_collapsible.js'; +Alpine.data('event_categories_collapsible', EventCategoriesCollapsible); + +import EventsCollapsible from './calendar/events_collapsible.js'; +Alpine.data('events_collapsible', EventsCollapsible); + +import SettingsCollapsible from './calendar/settings_collapsible.js'; +Alpine.data('settings_collapsible', SettingsCollapsible); + +import UserManagementCollapsible from './calendar/user_management_collapsible.js'; +Alpine.data('user_management_collapsible', UserManagementCollapsible); + +import CalendarLinkingCollapsible from './calendar/calendar_linking_collapsible.js'; +Alpine.data('calendar_linking_collapsible', CalendarLinkingCollapsible); Alpine.start(); diff --git a/resources/js/calendar/calendar_linking_collapsible.js b/resources/js/calendar/calendar_linking_collapsible.js new file mode 100644 index 00000000..47d658f8 --- /dev/null +++ b/resources/js/calendar/calendar_linking_collapsible.js @@ -0,0 +1,7 @@ +export default () => ({ + reordering: false, + + load: function(static_data) { + // + } +}) diff --git a/resources/js/calendar/clock_collapsible.js b/resources/js/calendar/clock_collapsible.js new file mode 100644 index 00000000..47d658f8 --- /dev/null +++ b/resources/js/calendar/clock_collapsible.js @@ -0,0 +1,7 @@ +export default () => ({ + reordering: false, + + load: function(static_data) { + // + } +}) diff --git a/resources/js/calendar/cycles_collapsible.js b/resources/js/calendar/cycles_collapsible.js new file mode 100644 index 00000000..47d658f8 --- /dev/null +++ b/resources/js/calendar/cycles_collapsible.js @@ -0,0 +1,7 @@ +export default () => ({ + reordering: false, + + load: function(static_data) { + // + } +}) diff --git a/resources/js/calendar/eras_collapsible.js b/resources/js/calendar/eras_collapsible.js new file mode 100644 index 00000000..47d658f8 --- /dev/null +++ b/resources/js/calendar/eras_collapsible.js @@ -0,0 +1,7 @@ +export default () => ({ + reordering: false, + + load: function(static_data) { + // + } +}) diff --git a/resources/js/calendar/event_categories_collapsible.js b/resources/js/calendar/event_categories_collapsible.js new file mode 100644 index 00000000..47d658f8 --- /dev/null +++ b/resources/js/calendar/event_categories_collapsible.js @@ -0,0 +1,7 @@ +export default () => ({ + reordering: false, + + load: function(static_data) { + // + } +}) diff --git a/resources/js/calendar/events_collapsible.js b/resources/js/calendar/events_collapsible.js new file mode 100644 index 00000000..47d658f8 --- /dev/null +++ b/resources/js/calendar/events_collapsible.js @@ -0,0 +1,7 @@ +export default () => ({ + reordering: false, + + load: function(static_data) { + // + } +}) diff --git a/resources/js/calendar/leap_days_collapsible.js b/resources/js/calendar/leap_days_collapsible.js new file mode 100644 index 00000000..47d658f8 --- /dev/null +++ b/resources/js/calendar/leap_days_collapsible.js @@ -0,0 +1,7 @@ +export default () => ({ + reordering: false, + + load: function(static_data) { + // + } +}) diff --git a/resources/js/calendar/locations_collapsible.js b/resources/js/calendar/locations_collapsible.js new file mode 100644 index 00000000..47d658f8 --- /dev/null +++ b/resources/js/calendar/locations_collapsible.js @@ -0,0 +1,7 @@ +export default () => ({ + reordering: false, + + load: function(static_data) { + // + } +}) diff --git a/resources/js/calendar/moons_collapsible.js b/resources/js/calendar/moons_collapsible.js new file mode 100644 index 00000000..47d658f8 --- /dev/null +++ b/resources/js/calendar/moons_collapsible.js @@ -0,0 +1,7 @@ +export default () => ({ + reordering: false, + + load: function(static_data) { + // + } +}) diff --git a/resources/js/calendar/real_time_advancement_collapsible.js b/resources/js/calendar/real_time_advancement_collapsible.js new file mode 100644 index 00000000..47d658f8 --- /dev/null +++ b/resources/js/calendar/real_time_advancement_collapsible.js @@ -0,0 +1,7 @@ +export default () => ({ + reordering: false, + + load: function(static_data) { + // + } +}) diff --git a/resources/js/calendar/seasons_collapsible.js b/resources/js/calendar/seasons_collapsible.js new file mode 100644 index 00000000..47d658f8 --- /dev/null +++ b/resources/js/calendar/seasons_collapsible.js @@ -0,0 +1,7 @@ +export default () => ({ + reordering: false, + + load: function(static_data) { + // + } +}) diff --git a/resources/js/calendar/settings_collapsible.js b/resources/js/calendar/settings_collapsible.js new file mode 100644 index 00000000..47d658f8 --- /dev/null +++ b/resources/js/calendar/settings_collapsible.js @@ -0,0 +1,7 @@ +export default () => ({ + reordering: false, + + load: function(static_data) { + // + } +}) diff --git a/resources/js/calendar/user_management_collapsible.js b/resources/js/calendar/user_management_collapsible.js new file mode 100644 index 00000000..47d658f8 --- /dev/null +++ b/resources/js/calendar/user_management_collapsible.js @@ -0,0 +1,7 @@ +export default () => ({ + reordering: false, + + load: function(static_data) { + // + } +}) diff --git a/resources/js/calendar/weather_collapsible.js b/resources/js/calendar/weather_collapsible.js new file mode 100644 index 00000000..47d658f8 --- /dev/null +++ b/resources/js/calendar/weather_collapsible.js @@ -0,0 +1,7 @@ +export default () => ({ + reordering: false, + + load: function(static_data) { + // + } +}) diff --git a/resources/views/components/calendar-linking-collapsible.blade.php b/resources/views/components/calendar-linking-collapsible.blade.php new file mode 100644 index 00000000..40ab56ca --- /dev/null +++ b/resources/views/components/calendar-linking-collapsible.blade.php @@ -0,0 +1,48 @@ +@props(['calendar' => null]) + +
+

Calendar linking allows you to connect two calendar's dates, making one follow + the other!

+

This is a complex feature, we recommend you check out the article on Calendar Linking.

+
+ +@if(Auth::user()->can('link', $calendar)) + + + +@else + +
+

Link calendars together, and make this calendar's date drive the date of other + calendars!

+

Subscribe + now to unlock this feature!

+
+ +@endif diff --git a/resources/views/components/clock-collapsible.blade.php b/resources/views/components/clock-collapsible.blade.php new file mode 100644 index 00000000..12c6357f --- /dev/null +++ b/resources/views/components/clock-collapsible.blade.php @@ -0,0 +1,130 @@ +@props(['calendar' => null]) + +
+
Enable:
+
+ @if(request()->is('calendars/*/edit') && $calendar->isLinked()) + {{ Arr::get($calendar->static_data, 'clock.enabled') ? "Yes" : "No" }} + @else + + @endif +
+
Render:
+
+ +
+
+ +
+ +
+
+ Hours: +
+
+ Minutes: +
+
+ +
+
+ @if(request()->is('calendars/*/edit') && $calendar->isLinked()) + {{ Arr::get($calendar->static_data, 'clock.hours') }} + @else +
+ +
+ +
+ +
+ @endif +
+ +
+ @if(request()->is('calendars/*/edit') && $calendar->isLinked()) + {{ Arr::get($calendar->static_data, 'clock.minutes') }} + @else +
+ +
+ +
+ +
+ @endif +
+ +
+ +
+
+ Offset hours: +
+
+ Crowding: +
+
+ +
+ +
+
+ +
+ + + +
+ +
+
+ +
+
+ +
+ + + +
+ +
+
+ +
+ + +
+ +@if(request()->is('calendars/*/edit') && $calendar->isLinked()) +

Why can't I edit the clock?

+@endif diff --git a/resources/views/components/collapsible.blade.php b/resources/views/components/collapsible.blade.php index bce6f764..8c75b74d 100644 --- a/resources/views/components/collapsible.blade.php +++ b/resources/views/components/collapsible.blade.php @@ -1,4 +1,6 @@ -@props(['calendar' => null, 'contains' => null, 'step' => null, 'icon' => null]) +@props(['calendar' => null, 'contains' => null, 'step' => null, 'icon' => null, 'premium_feature' => false]) + +@php($contains_clean = Str::replace("-", " ", $contains))
{{ $contains }} + @if($premium_feature && isset($calendar) && !$calendar->isPremium()) + + + + @endif +
- +
diff --git a/resources/views/components/cycles-collapsible.blade.php b/resources/views/components/cycles-collapsible.blade.php new file mode 100644 index 00000000..c60981c6 --- /dev/null +++ b/resources/views/components/cycles-collapsible.blade.php @@ -0,0 +1,20 @@ +@props(['calendar' => null]) + +
+ Cycle format: +
+
+ +
+ +
+
+
+ +
+ +
+ +
diff --git a/resources/views/components/eras-collapsible.blade.php b/resources/views/components/eras-collapsible.blade.php new file mode 100644 index 00000000..2b8c3e79 --- /dev/null +++ b/resources/views/components/eras-collapsible.blade.php @@ -0,0 +1,52 @@ +@props(['calendar' => null]) + +@if(request()->is('calendars/*/edit') && $calendar->isLinked()) + + + +

Why can't I edit the eras?

+ +@else + +
+
+ New Era: +
+
+ +
+
+ +
+ +
+
+
+ +
+ +@endif diff --git a/resources/views/components/event-categories-collapsible.blade.php b/resources/views/components/event-categories-collapsible.blade.php new file mode 100644 index 00000000..7a778000 --- /dev/null +++ b/resources/views/components/event-categories-collapsible.blade.php @@ -0,0 +1,29 @@ +@props(['calendar' => null]) + +
+
+ New event category: +
+
+
+ +
+ +
+
+ +
+ +
+
+
+ +
+
+ Default category: + +
+
diff --git a/resources/views/components/events-collapsible.blade.php b/resources/views/components/events-collapsible.blade.php new file mode 100644 index 00000000..7b1a49b8 --- /dev/null +++ b/resources/views/components/events-collapsible.blade.php @@ -0,0 +1,110 @@ +@props(['calendar' => null]) + + + +
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
diff --git a/resources/views/components/leap-days-collapsible.blade.php b/resources/views/components/leap-days-collapsible.blade.php new file mode 100644 index 00000000..ee6eb0b8 --- /dev/null +++ b/resources/views/components/leap-days-collapsible.blade.php @@ -0,0 +1,73 @@ +@props(['calendar' => null]) + +@if(request()->is('calendars/*/edit') && $calendar->isLinked()) + + + +

Why can't I edit the leap days?

+ +@else + +
+
+ New leap day: +
+
+ +
+ + + + +
+ +
+
+ + +
+
Name
+
+ +
+ +@endif diff --git a/resources/views/components/locations-collapsible.blade.php b/resources/views/components/locations-collapsible.blade.php new file mode 100644 index 00000000..983993af --- /dev/null +++ b/resources/views/components/locations-collapsible.blade.php @@ -0,0 +1,48 @@ +@props(['calendar' => null]) + +
+ You need weather enabled (temperatures, precipitation) or the clock enabled (timezone, + sunrise/sunset) for locations to function. +
+ +
+

Preset locations work only with four or two seasons and weather enabled.

+

If you name your seasons winter, spring, summer, and autumn/fall, the system matches them + with the presets' seasons, no matter which order.

+
+ + diff --git a/resources/views/components/moons-collapsible.blade.php b/resources/views/components/moons-collapsible.blade.php new file mode 100644 index 00000000..15bbe182 --- /dev/null +++ b/resources/views/components/moons-collapsible.blade.php @@ -0,0 +1,40 @@ +@props(['calendar' => null]) + +
+
+ New moon: +
+
+ +
+
+ +
+ + + + + +
+ +
+
+
+
+
diff --git a/resources/views/components/real-time-advancement-collapsible.blade.php b/resources/views/components/real-time-advancement-collapsible.blade.php new file mode 100644 index 00000000..977722a1 --- /dev/null +++ b/resources/views/components/real-time-advancement-collapsible.blade.php @@ -0,0 +1,175 @@ +@props(['calendar' => null]) + +@if(isset($calendar) && $calendar->isPremium()) + @if(request()->is('calendars/*/edit') && $calendar->parent()->exists()) +

Why can't I edit the real time + advancement?

+ @else +
advancement_real_rate ?? 1 }}, + advancement_real_rate_unit: '{{ $calendar->advancement_real_rate_unit ?? "hours" }}', + advancement_rate: {{ $calendar->advancement_rate ?? 1 }}, + advancement_rate_unit: '{{ $calendar->advancement_rate_unit ?? ($calendar->clock_enabled ? "hours" : "days") }}', + advancement_webhook_url: '{{ $calendar->advancement_webhook_url }}', + advancement_webhook_format: '{{ $calendar->advancement_webhook_format }}', + advancement_timezone: Intl.DateTimeFormat().resolvedOptions().timeZone, + }, + toggle_clock($event){ + this.clock_enabled = $event.detail.enabled; + if(this.data.advancement_rate_unit !== 'days'){ + this.data.advancement_rate_unit = 'days'; + } + }, + clock_enabled: {{ $calendar->clock_enabled ? "true" : "false" }}, + toJSON(){ + return JSON.parse(JSON.stringify(this.data)); + } + }" + > + +
+
Enable real-time advancement:
+
+ @if(request()->is('calendars/*/edit') && $calendar->isChild()) + + @else + + @endif +
+
+ +
+ +
+
+
+ +
+ For every +
+ +
+
+ + + +
+
+ +
+ Advance this calendar by +
+ +
+
+ + + +
+
+ +
+ + The clock is not enabled, so minutes and hours are not available for real + time advancement. + +
+ +
+
+
+ +
+
+ Notification webhooks +
+
+ +
+
+ + + + @feature('discord') + + Setup a Discord webhook + + @endfeature +
+
+ + @feature('discord') +
+
+ +
+
+ This calendar has configured through the Discord integration. + You can manage via your + profile. +
+
+ @endfeature + +
+ +
+ @endif +@else + +
+

Make your calendar advance its time automatically, with settings to control how fast or + slow it should advance!

+

Subscribe + now to unlock this feature!

+
+ +@endif diff --git a/resources/views/components/seasons-collapsible.blade.php b/resources/views/components/seasons-collapsible.blade.php new file mode 100644 index 00000000..b1b2549c --- /dev/null +++ b/resources/views/components/seasons-collapsible.blade.php @@ -0,0 +1,74 @@ +@props(['calendar' => null]) + +
+
+ Season type: +
+
+ +
+
+
+ Date Based +
+
+ +
+
+ Length Based +
+
+
+ +
+
+ + +
+
+ +
+
+ New season: +
+
+ +
+
+ +
+ +
+
+
+ +
+ +
+ +
+ +
+
+ Season offset (days): +
+
+ +
+
+ +
+ +
diff --git a/resources/views/components/settings-collapsible.blade.php b/resources/views/components/settings-collapsible.blade.php new file mode 100644 index 00000000..683f0d7c --- /dev/null +++ b/resources/views/components/settings-collapsible.blade.php @@ -0,0 +1,244 @@ +@props(['calendar' => null]) + +
+ +
Layout Settings:
+ + @if(request()->is('calendars/*/edit')) + + @endif + +
+ + + + + +
+ + + +
Guest View Settings:
+ +
+ + + + + + + +
+ + + +
Hiding Settings:
+ +
+ + + + + + + + + + + + + + + + + +
+ + @if(isset($calendar) && Auth::user()->can('add-users', $calendar)) + +
Event Settings:
+ + + + @endif + +
Advanced Settings:
+ + + + @if(request()->is('calendars/*/edit') && $calendar->isLinked()) +

Why are some settings disabled?

+ @endif + +
diff --git a/resources/views/components/user-management-collapsible.blade.php b/resources/views/components/user-management-collapsible.blade.php new file mode 100644 index 00000000..44d335ee --- /dev/null +++ b/resources/views/components/user-management-collapsible.blade.php @@ -0,0 +1,36 @@ +@props(['calendar' => null]) + +@if(Auth::user()->can('add-users', $calendar)) + +
+

Invite your friends to collaborate!

+

Once they accept your invite, you'll be able to assign them a role.

+
+ +
+ +
+ +
+
+ + +
+ +
+ +
+ +@else + +
+

Invite your friends to collaborate on this calendar!

+

Subscribe + now to unlock this feature!

+
+ +@endif diff --git a/resources/views/components/weather-collapsible.blade.php b/resources/views/components/weather-collapsible.blade.php new file mode 100644 index 00000000..b777e270 --- /dev/null +++ b/resources/views/components/weather-collapsible.blade.php @@ -0,0 +1,81 @@ +@props(['calendar' => null]) + + +
+ You need at least one season for weather to function. +
+ + diff --git a/resources/views/inputs/full.blade.php b/resources/views/inputs/full.blade.php index 41134ca4..952bf0e0 100755 --- a/resources/views/inputs/full.blade.php +++ b/resources/views/inputs/full.blade.php @@ -1,1550 +1,193 @@
- @include('inputs.sidebar.header') + @include('inputs.sidebar.header') - @yield('label') + @yield('label') -
-
- - - -
-
+
+
+ + + +
+
-
-
- -
-
+
+
+ +
+
- - - -
- +
+ - - - - + - - - + -
- - -
+ @if(request()->is('calendars/*/edit')) + + @endif -
-
Enable:
-
- @if(request()->is('calendars/*/edit') && $calendar->isLinked()) - {{ Arr::get($calendar->static_data, 'clock.enabled') ? "Yes" : "No" }} - @else - - @endif -
-
Render:
-
- -
-
+ -
+ -
-
- Hours: -
-
- Minutes: -
-
+ -
-
- @if(request()->is('calendars/*/edit') && $calendar->isLinked()) - {{ Arr::get($calendar->static_data, 'clock.hours') }} - @else -
- -
- -
- -
- @endif -
+ -
- @if(request()->is('calendars/*/edit') && $calendar->isLinked()) - {{ Arr::get($calendar->static_data, 'clock.minutes') }} - @else -
- -
- -
- -
- @endif -
+ -
+ -
-
- Offset hours: -
-
- Crowding: -
-
+ -
+ -
-
- -
+ - + -
- -
-
+ -
-
- -
+ - + @if(request()->is('calendars/*/edit')) + -
- -
-
+ + @endif +
-
- - -
- - @if(request()->is('calendars/*/edit') && $calendar->isLinked()) -

Why can't I edit the clock?

- @endif - -
- - -
- - - @if(request()->is('calendars/*/edit')) - - - -
- - -
- - @if(isset($calendar) && $calendar->isPremium()) - @if(request()->is('calendars/*/edit') && $calendar->parent()->exists()) -

Why can't I edit the real time - advancement?

- @else -
advancement_real_rate ?? 1 }}, - advancement_real_rate_unit: '{{ $calendar->advancement_real_rate_unit ?? "hours" }}', - advancement_rate: {{ $calendar->advancement_rate ?? 1 }}, - advancement_rate_unit: '{{ $calendar->advancement_rate_unit ?? ($calendar->clock_enabled ? "hours" : "days") }}', - advancement_webhook_url: '{{ $calendar->advancement_webhook_url }}', - advancement_webhook_format: '{{ $calendar->advancement_webhook_format }}', - advancement_timezone: Intl.DateTimeFormat().resolvedOptions().timeZone, - }, - toggle_clock($event){ - this.clock_enabled = $event.detail.enabled; - if(this.data.advancement_rate_unit !== 'days'){ - this.data.advancement_rate_unit = 'days'; - } - }, - clock_enabled: {{ $calendar->clock_enabled ? "true" : "false" }}, - toJSON(){ - return JSON.parse(JSON.stringify(this.data)); - } - }" - > - -
-
Enable real-time advancement:
-
- @if(request()->is('calendars/*/edit') && $calendar->isChild()) - - @else - - @endif -
-
- -
- -
-
-
- -
- For every -
- -
-
- - - -
-
- -
- Advance this calendar by -
- -
-
- - - -
-
- -
- - The clock is not enabled, so minutes and hours are not available for real time advancement. - -
- -
-
-
- -
-
- Notification webhooks -
-
- -
-
- - - - @feature('discord') - - Setup a Discord webhook - - @endfeature -
-
- - @feature('discord') -
-
- -
-
- This calendar has configured through the Discord integration. You can manage via your profile. -
-
- @endfeature - -
- -
- @endif - @else - -
-

Make your calendar advance its time automatically, with settings to control how fast or - slow it should advance!

-

Subscribe - now to unlock this feature!

-
- - @endif -
-
- @endif - - - - - - - - - - -
- - -
- - @if(request()->is('calendars/*/edit') && $calendar->isLinked()) - -
    - - @php - $leap_days = Arr::get($calendar->static_data, 'year_data.leap_days'); - @endphp - - @foreach ($leap_days as $leap_day) -
  • -
    - {{ $leap_day['name'] }} - {{ $leap_day['intercalary'] ? "Intercalary" : "" }} -
    -
    - Interval: {{ str_replace(",", ", ", $leap_day['interval']) }} -
    -
    - Offset: {{ $leap_day['offset'] }} -
    - @if($leap_day['intercalary']) -
    - @if($leap_day['day'] == 0) - Added before day 1 - @else - Added after day {{ $leap_day['day'] }} - @endif -
    - @else - @if($leap_day['adds_week_day']) -
    - Adds a weekday named: {{ $leap_day['week_day'] }} -
    - @endif - @endif -
  • - @endforeach - -
- -

Why can't I edit the leap days?

- - @else - -
-
- New leap day: -
-
- -
- - - - -
- -
-
- - -
-
Name
-
- -
- - @endif - -
-
- - - - - -
- - -
- - @if(request()->is('calendars/*/edit') && $calendar->isLinked()) - -
    - - @php - $eras = Arr::get($calendar->static_data, 'eras'); - @endphp - - @foreach ($eras as $era) -
  • -
    - {{ $era['name'] }} - @if($era['settings']['starting_era']) - Starting Era - @endif -
    - @if(!$era['settings']['starting_era']) -
    - Year: {{ $era['date']['year'] }}
    - Month: {{ $era['date']['timespan']+1 }}
    - Day: {{ $era['date']['day'] }}
    -
    - @endif -
  • - @endforeach - -
- -

Why can't I edit the eras?

- - @else - -
-
- New Era: -
-
- -
-
- -
- -
-
-
- -
- - @endif - -
-
- - - - - - -
- - -
- -
-
- New moon: -
-
- -
-
- -
- - - - - -
- -
-
-
-
-
-
-
- - - - - - -
- - -
- -
-
- Season type: -
-
- -
-
-
- Date Based -
-
- -
-
- Length Based -
-
-
- -
-
- - -
-
- -
-
- New season: -
-
- -
-
- -
- -
-
-
- -
- -
- -
- -
-
- Season offset (days): -
-
- -
-
- -
- -
-
- -
- - - - - - -
- - -
- -
- You need at least one season for weather to function. -
- - -
- -
- - - - - -
- - -
- -
- You need weather enabled (temperatures, precipitation) or the clock enabled (timezone, - sunrise/sunset) for locations to function. -
- -
-

Preset locations work only with four or two seasons and weather enabled.

-

If you name your seasons winter, spring, summer, and autumn/fall, the system matches them - with the presets' seasons, no matter which order.

-
- - - -
- - -
- - - - - -
- - -
- -
- Cycle format: -
-
- -
- -
-
-
- -
- -
- -
- -
- -
- - - - - -
- - -
- -
-
- New event category: -
-
-
- -
- -
-
- -
- -
-
-
- -
-
- Default category: - -
-
-
-
- - - - - -
- - -
- - - -
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- - - - - - -
- - -
- -
- -
Layout Settings:
- - @if(request()->is('calendars/*/edit')) - - @endif - -
- - - - - -
- - - -
Guest View Settings:
- -
- - - - - - - -
- - - -
Hiding Settings:
- -
- - - - - - - - - - - - - - - - - -
- - @if(isset($calendar) && Auth::user()->can('add-users', $calendar)) - -
Event Settings:
- - - - @endif - -
Advanced Settings:
- - - - @if(request()->is('calendars/*/edit') && $calendar->isLinked()) -

Why are some settings disabled?

- @endif - -
-
-
- - @if(request()->is('calendars/*/edit')) - - - - -
- - -
- - @if(Auth::user()->can('add-users', $calendar)) - -
-

Invite your friends to collaborate!

-

Once they accept your invite, you'll be able to assign them a role.

-
- -
- -
- -
-
- - -
- -
- -
- - @else - -
-

Invite your friends to collaborate on this calendar!

-

Subscribe - now to unlock this feature!

-
- - @endif - -
-
- - @endif - - @if(request()->is('calendars/*/edit')) - - - -
- - - - -
- -
-

Calendar linking allows you to connect two calendar's dates, making one follow - the other!

-

This is a complex feature, we recommend you check out the article on Calendar Linking.

-
- - @if(Auth::user()->can('link', $calendar)) - - - - @else - -
-

Link calendars together, and make this calendar's date drive the date of other - calendars!

-

Subscribe - now to unlock this feature!

-
- - @endif -
-
- @endif -
- - +
- + + + +
+ + +
+ +
+ + + + + + + +
+
+
+
+
+
+ + + + + +
+ + @include('layouts.calendar-' . (isset($calendar) ? $calendar->setting('layout', 'grid') : 'grid')) + +