OneBot: Leantime 改造版源码(BOM/Univer 表格/AI 接管/品牌替换等)
This commit is contained in:
124
app/Domain/Widgets/Templates/partials/calendar.blade.php
Normal file
124
app/Domain/Widgets/Templates/partials/calendar.blade.php
Normal file
@@ -0,0 +1,124 @@
|
||||
@props([
|
||||
'includeTitle' => true,
|
||||
'calendar' => [],
|
||||
])
|
||||
|
||||
@dispatchEvent('beforeCalendar')
|
||||
|
||||
|
||||
<div class="clear minCalendar" style="position:absolute; top:10px; right:35px;">
|
||||
|
||||
<button class="btn btn-link btn-round-icon dropdown-toggle f-right" type="button" data-tippy-content="{{ __('text.calendar_view') }}"
|
||||
data-toggle="dropdown"> <i class="fa-solid fa-calendar-week"></i></button>
|
||||
<ul class="dropdown-menu pull-right">
|
||||
<li>
|
||||
<a class="fc-agendaDay-button fc-button fc-state-default fc-corner-right calendarViewSelect" href="javascript:void(0);"
|
||||
data-value="multiMonthOneMonth"
|
||||
@if($tpl->getToggleState("dashboardCalendarView") == 'multiMonthOneMonth') selected='selected' @endif>Month</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="fc-timeGridWeek-button fc-button fc-state-default fc-corner-right calendarViewSelect" href="javascript:void(0);"
|
||||
data-value="timeGridWeek" @if($tpl->getToggleState("dashboardCalendarView") == 'timeGridWeek') selected='selected' @endif>Week</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="fc-agendaWeek-button fc-button fc-state-default calendarViewSelect" href="javascript:void(0);"
|
||||
data-value="timeGridDay" @if($tpl->getToggleState("dashboardCalendarView") == 'timeGridDay' || empty($tpl->getToggleState("dashboardCalendarView")) ) selected='selected' @endif>Day</a>
|
||||
</li>
|
||||
<li><a class="fc-agendaWeek-button fc-button fc-state-default calendarViewSelect" href="javascript:void(0);"
|
||||
data-value="listWeek" @if($tpl->getToggleState("dashboardCalendarView") == 'listWeek') selected='selected' @endif>List</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="tw-h-full minCalendar">
|
||||
<div class="clear"></div>
|
||||
<div class="fc-toolbar tw-z-10">
|
||||
<div class="fc-left tw-flex">
|
||||
<div class="day-selector tw-w-full tw-flex tw-gap-2 tw-mb-4 tw-justify-between"
|
||||
@php
|
||||
$currentView = $tpl->getToggleState("dashboardCalendarView") ?: 'timeGridDay';
|
||||
@endphp
|
||||
@if ($currentView !== 'timeGridDay') style="display:none" @endif>
|
||||
@php
|
||||
$today = dtHelper()->userNow();
|
||||
$startOfWeek = dtHelper()->userNow()->startOf("week");
|
||||
$week = [];
|
||||
for($i = 0; $i < 7; $i++) {
|
||||
$date = $startOfWeek->modify("+$i days");
|
||||
$week[] = $date;
|
||||
}
|
||||
@endphp
|
||||
@foreach($week as $day)
|
||||
<button class="day-button tw-rounded-md tw-w-12 tw-h-12 tw-flex tw-flex-col tw-items-center tw-justify-center tw-text-sm {{ $day->format('Y-m-d') === $today->format('Y-m-d') ? 'today active' : '' }}" data-date="{{ $day->format('Y-m-d') }}">
|
||||
<span class="tw-text-xs">{{ $day->format('D') }}</span>
|
||||
<span class="tw-font-medium">{{ $day->format('d') }}</span>
|
||||
</button>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
<div class="minCalendarWrapper">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
var eventSources = [];
|
||||
|
||||
var events = {events: [
|
||||
@foreach ($calendar as $event)
|
||||
{
|
||||
|
||||
title: {!! json_encode($event['title']) !!},
|
||||
|
||||
start: new Date({{ format($event['dateFrom'])->jsTimestamp() }}),
|
||||
@if (isset($event['dateTo']))
|
||||
end: new Date({{ format($event['dateTo'])->jsTimestamp() }}),
|
||||
@endif
|
||||
@if ((isset($event['allDay']) && $event['allDay'] === true))
|
||||
allDay: true,
|
||||
@else
|
||||
allDay: false,
|
||||
@endif
|
||||
enitityId: {{ $event['id'] }},
|
||||
@if (isset($event['eventType']) && $event['eventType'] == 'calendar')
|
||||
url: '#/calendar/editEvent/{{ $event['id'] }}',
|
||||
backgroundColor: '{{ $event['backgroundColor'] ?? "var(--accent2)" }}',
|
||||
borderColor: '{{ $event['borderColor'] ?? "var(--accent2)" }}',
|
||||
enitityType: "event",
|
||||
@else
|
||||
url: '#/tickets/showTicket/{{ $event['id'] }}?projectId={{ $event['projectId'] }}',
|
||||
backgroundColor: '{{ $event['backgroundColor'] ?? "var(--accent2)" }}',
|
||||
borderColor: '{{ $event['borderColor'] ?? "var(--accent2)" }}',
|
||||
enitityType: "ticket",
|
||||
@endif
|
||||
},
|
||||
@endforeach
|
||||
]};
|
||||
|
||||
eventSources.push(events);
|
||||
|
||||
<?php
|
||||
$externalCalendars = $externalCalendars ?? [];
|
||||
|
||||
foreach ($externalCalendars as $externalCalendar) { ?>
|
||||
eventSources.push(
|
||||
{
|
||||
url: '<?= BASE_URL ?>/calendar/externalCal/<?= $externalCalendar['id'] ?>',
|
||||
format: 'ics',
|
||||
color: '<?= $externalCalendar['colorClass'] ?>',
|
||||
editable: false,
|
||||
}
|
||||
);
|
||||
<?php } ?>
|
||||
|
||||
var initialView = '{{ $tpl->getToggleState("dashboardCalendarView") ? $tpl->getToggleState("dashboardCalendarView") : "timeGridDay" }}';
|
||||
leantime.calendarController.initWidgetCalendar(".minCalendarWrapper", initialView)
|
||||
|
||||
|
||||
|
||||
@dispatchEvent('scripts.beforeClose')
|
||||
|
||||
</script>
|
||||
Reference in New Issue
Block a user