#39 - generate timesheet #56
2
.env.ci
2
.env.ci
@@ -19,5 +19,5 @@ CACHE_DRIVER=array
|
|||||||
QUEUE_CONNECTION=sync
|
QUEUE_CONNECTION=sync
|
||||||
SESSION_DRIVER=array
|
SESSION_DRIVER=array
|
||||||
SESSION_LIFETIME=120
|
SESSION_LIFETIME=120
|
||||||
FILESYSTEM_DRIVER=local
|
FILESYSTEM_DISK=local
|
||||||
MAIL_MAILER=array
|
MAIL_MAILER=array
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ CACHE_DRIVER=array
|
|||||||
QUEUE_CONNECTION=sync
|
QUEUE_CONNECTION=sync
|
||||||
SESSION_DRIVER=file
|
SESSION_DRIVER=file
|
||||||
SESSION_LIFETIME=120
|
SESSION_LIFETIME=120
|
||||||
FILESYSTEM_DRIVER=local
|
FILESYSTEM_DISK=local
|
||||||
MAIL_MAILER=array
|
MAIL_MAILER=array
|
||||||
|
|
||||||
TELESCOPE_ENABLED=false
|
TELESCOPE_ENABLED=false
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ CACHE_DRIVER=file
|
|||||||
QUEUE_CONNECTION=sync
|
QUEUE_CONNECTION=sync
|
||||||
SESSION_DRIVER=file
|
SESSION_DRIVER=file
|
||||||
SESSION_LIFETIME=120
|
SESSION_LIFETIME=120
|
||||||
FILESYSTEM_DRIVER=local
|
FILESYSTEM_DISK=local
|
||||||
|
|
||||||
MAILHOG_PORT=1025
|
MAILHOG_PORT=1025
|
||||||
MAILHOG_DASHBOARD_PORT=8025
|
MAILHOG_DASHBOARD_PORT=8025
|
||||||
|
|||||||
@@ -8,12 +8,14 @@ use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvi
|
|||||||
use Toby\Domain\Events\VacationRequestAcceptedByAdministrative;
|
use Toby\Domain\Events\VacationRequestAcceptedByAdministrative;
|
||||||
use Toby\Domain\Events\VacationRequestAcceptedByTechnical;
|
use Toby\Domain\Events\VacationRequestAcceptedByTechnical;
|
||||||
use Toby\Domain\Events\VacationRequestApproved;
|
use Toby\Domain\Events\VacationRequestApproved;
|
||||||
|
use Toby\Domain\Events\VacationRequestCancelled;
|
||||||
use Toby\Domain\Events\VacationRequestCreated;
|
use Toby\Domain\Events\VacationRequestCreated;
|
||||||
use Toby\Domain\Events\VacationRequestStateChanged;
|
use Toby\Domain\Events\VacationRequestStateChanged;
|
||||||
use Toby\Domain\Listeners\CreateVacationRequestActivity;
|
use Toby\Domain\Listeners\CreateVacationRequestActivity;
|
||||||
use Toby\Domain\Listeners\HandleAcceptedByAdministrativeVacationRequest;
|
use Toby\Domain\Listeners\HandleAcceptedByAdministrativeVacationRequest;
|
||||||
use Toby\Domain\Listeners\HandleAcceptedByTechnicalVacationRequest;
|
use Toby\Domain\Listeners\HandleAcceptedByTechnicalVacationRequest;
|
||||||
use Toby\Domain\Listeners\HandleApprovedVacationRequest;
|
use Toby\Domain\Listeners\HandleApprovedVacationRequest;
|
||||||
|
use Toby\Domain\Listeners\HandleCancelledVacationRequest;
|
||||||
use Toby\Domain\Listeners\HandleCreatedVacationRequest;
|
use Toby\Domain\Listeners\HandleCreatedVacationRequest;
|
||||||
|
|
||||||
class EventServiceProvider extends ServiceProvider
|
class EventServiceProvider extends ServiceProvider
|
||||||
@@ -24,5 +26,6 @@ class EventServiceProvider extends ServiceProvider
|
|||||||
VacationRequestAcceptedByTechnical::class => [HandleAcceptedByTechnicalVacationRequest::class],
|
VacationRequestAcceptedByTechnical::class => [HandleAcceptedByTechnicalVacationRequest::class],
|
||||||
VacationRequestAcceptedByAdministrative::class => [HandleAcceptedByAdministrativeVacationRequest::class],
|
VacationRequestAcceptedByAdministrative::class => [HandleAcceptedByAdministrativeVacationRequest::class],
|
||||||
VacationRequestApproved::class => [HandleApprovedVacationRequest::class],
|
VacationRequestApproved::class => [HandleApprovedVacationRequest::class],
|
||||||
|
VacationRequestCancelled::class => [HandleCancelledVacationRequest::class],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ namespace Toby\Domain\Enums;
|
|||||||
enum VacationRequestState: string
|
enum VacationRequestState: string
|
||||||
{
|
{
|
||||||
case Created = "created";
|
case Created = "created";
|
||||||
case Canceled = "canceled";
|
case Cancelled = "cancelled";
|
||||||
case Rejected = "rejected";
|
case Rejected = "rejected";
|
||||||
case Approved = "approved";
|
case Approved = "approved";
|
||||||
case WaitingForTechnical = "waiting_for_technical";
|
case WaitingForTechnical = "waiting_for_technical";
|
||||||
@@ -40,7 +40,7 @@ enum VacationRequestState: string
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
self::Rejected,
|
self::Rejected,
|
||||||
self::Canceled,
|
self::Cancelled,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
20
app/Domain/Events/VacationRequestCancelled.php
Normal file
20
app/Domain/Events/VacationRequestCancelled.php
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Toby\Domain\Events;
|
||||||
|
|
||||||
|
use Illuminate\Foundation\Events\Dispatchable;
|
||||||
|
use Illuminate\Queue\SerializesModels;
|
||||||
|
use Toby\Eloquent\Models\VacationRequest;
|
||||||
|
|
||||||
|
class VacationRequestCancelled
|
||||||
|
{
|
||||||
|
use Dispatchable;
|
||||||
|
use SerializesModels;
|
||||||
|
|
||||||
|
public function __construct(
|
||||||
|
public VacationRequest $vacationRequest,
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,16 +5,10 @@ declare(strict_types=1);
|
|||||||
namespace Toby\Domain\Listeners;
|
namespace Toby\Domain\Listeners;
|
||||||
|
|
||||||
use Toby\Domain\Events\VacationRequestApproved;
|
use Toby\Domain\Events\VacationRequestApproved;
|
||||||
use Toby\Domain\VacationTypeConfigRetriever;
|
|
||||||
use Toby\Infrastructure\Jobs\SendVacationRequestDaysToGoogleCalendar;
|
use Toby\Infrastructure\Jobs\SendVacationRequestDaysToGoogleCalendar;
|
||||||
|
|
||||||
class HandleApprovedVacationRequest
|
class HandleApprovedVacationRequest
|
||||||
{
|
{
|
||||||
public function __construct(
|
|
||||||
protected VacationTypeConfigRetriever $configRetriever,
|
|
||||||
) {
|
|
||||||
}
|
|
||||||
|
|
||||||
public function handle(VacationRequestApproved $event): void
|
public function handle(VacationRequestApproved $event): void
|
||||||
{
|
{
|
||||||
SendVacationRequestDaysToGoogleCalendar::dispatch($event->vacationRequest);
|
SendVacationRequestDaysToGoogleCalendar::dispatch($event->vacationRequest);
|
||||||
|
|||||||
16
app/Domain/Listeners/HandleCancelledVacationRequest.php
Normal file
16
app/Domain/Listeners/HandleCancelledVacationRequest.php
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Toby\Domain\Listeners;
|
||||||
|
|
||||||
|
use Toby\Domain\Events\VacationRequestCancelled;
|
||||||
|
use Toby\Infrastructure\Jobs\ClearVacationRequestDaysInGoogleCalendar;
|
||||||
|
|
||||||
|
class HandleCancelledVacationRequest
|
||||||
|
{
|
||||||
|
public function handle(VacationRequestCancelled $event): void
|
||||||
|
{
|
||||||
|
ClearVacationRequestDaysInGoogleCalendar::dispatch($event->vacationRequest);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -21,7 +21,6 @@ use Maatwebsite\Excel\Events\AfterSheet;
|
|||||||
|
|
|||||||
use PhpOffice\PhpSpreadsheet\Shared\Date;
|
use PhpOffice\PhpSpreadsheet\Shared\Date;
|
||||||
use PhpOffice\PhpSpreadsheet\Style\Alignment;
|
use PhpOffice\PhpSpreadsheet\Style\Alignment;
|
||||||
use PhpOffice\PhpSpreadsheet\Style\Border;
|
use PhpOffice\PhpSpreadsheet\Style\Border;
|
||||||
use PhpOffice\PhpSpreadsheet\Style\Color;
|
|
||||||
|
Maybe move these hours to consts as start hour and end hour? Maybe move these hours to consts as start hour and end hour?
|
|||||||
use PhpOffice\PhpSpreadsheet\Style\Fill;
|
use PhpOffice\PhpSpreadsheet\Style\Fill;
|
||||||
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
|
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
|
||||||
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
|
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
|
||||||
|
|||||||
|
Maybe move these hours to consts as start hour and end hour? Maybe move these hours to consts as start hour and end hour?
Maybe move these hours to consts as start hour and end hour? Maybe move these hours to consts as start hour and end hour?
|
|||||||
@@ -10,6 +10,7 @@ use Toby\Domain\Enums\VacationRequestState;
|
|||||||
use Toby\Domain\Events\VacationRequestAcceptedByAdministrative;
|
use Toby\Domain\Events\VacationRequestAcceptedByAdministrative;
|
||||||
use Toby\Domain\Events\VacationRequestAcceptedByTechnical;
|
use Toby\Domain\Events\VacationRequestAcceptedByTechnical;
|
||||||
use Toby\Domain\Events\VacationRequestApproved;
|
use Toby\Domain\Events\VacationRequestApproved;
|
||||||
|
use Toby\Domain\Events\VacationRequestCancelled;
|
||||||
use Toby\Domain\Events\VacationRequestCreated;
|
use Toby\Domain\Events\VacationRequestCreated;
|
||||||
use Toby\Eloquent\Models\VacationRequest;
|
use Toby\Eloquent\Models\VacationRequest;
|
||||||
|
|
||||||
@@ -42,7 +43,9 @@ class VacationRequestStateManager
|
|||||||
|
|
||||||
public function cancel(VacationRequest $vacationRequest): void
|
public function cancel(VacationRequest $vacationRequest): void
|
||||||
{
|
{
|
||||||
$this->changeState($vacationRequest, VacationRequestState::Canceled);
|
$this->changeState($vacationRequest, VacationRequestState::Cancelled);
|
||||||
|
|
||||||
|
$this->dispatcher->dispatch(new VacationRequestCancelled($vacationRequest));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function acceptAsTechnical(VacationRequest $vacationRequest): void
|
public function acceptAsTechnical(VacationRequest $vacationRequest): void
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ class VacationRequestController extends Controller
|
|||||||
$stateManager->cancel($vacationRequest);
|
$stateManager->cancel($vacationRequest);
|
||||||
|
|
||||||
return redirect()->back()
|
return redirect()->back()
|
||||||
->with("success", __("Vacation request has been canceled."));
|
->with("success", __("Vacation request has been cancelled."));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function acceptAsTechnical(
|
public function acceptAsTechnical(
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Toby\Infrastructure\Jobs;
|
||||||
|
|
||||||
|
use Illuminate\Bus\Queueable;
|
||||||
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
|
use Illuminate\Foundation\Bus\Dispatchable;
|
||||||
|
use Spatie\GoogleCalendar\Event;
|
||||||
|
use Toby\Eloquent\Models\Vacation;
|
||||||
|
use Toby\Eloquent\Models\VacationRequest;
|
||||||
|
|
||||||
|
class ClearVacationRequestDaysInGoogleCalendar implements ShouldQueue
|
||||||
|
{
|
||||||
|
use Dispatchable;
|
||||||
|
use Queueable;
|
||||||
|
|
||||||
|
public function __construct(
|
||||||
|
protected VacationRequest $vacationRequest,
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public function handle(): void
|
||||||
|
{
|
||||||
|
$vacations = $this->vacationRequest->vacations()
|
||||||
|
->whereNotNull("event_id")
|
||||||
|
->get();
|
||||||
|
|
||||||
|
/** @var Vacation $vacation */
|
||||||
|
foreach ($vacations as $vacation) {
|
||||||
|
Event::find($vacation->event_id)->delete();
|
||||||
|
|
||||||
|
$vacation->update([
|
||||||
|
"event_id" => null,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
"fruitcake/laravel-cors": "^2.0",
|
"fruitcake/laravel-cors": "^2.0",
|
||||||
"guzzlehttp/guzzle": "^7.0.1",
|
"guzzlehttp/guzzle": "^7.0.1",
|
||||||
"inertiajs/inertia-laravel": "^0.5.1",
|
"inertiajs/inertia-laravel": "^0.5.1",
|
||||||
"laravel/framework": "^8.75",
|
"laravel/framework": "^9.0",
|
||||||
"laravel/sanctum": "^2.14",
|
"laravel/sanctum": "^2.14",
|
||||||
"laravel/socialite": "^5.2",
|
"laravel/socialite": "^5.2",
|
||||||
"laravel/telescope": "^4.6",
|
"laravel/telescope": "^4.6",
|
||||||
@@ -23,12 +23,11 @@
|
|||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"blumilksoftware/codestyle": "^0.9.0",
|
"blumilksoftware/codestyle": "^0.9.0",
|
||||||
"enlightn/enlightn": "^1.22",
|
"spatie/laravel-ignition": "^1.0",
|
||||||
"facade/ignition": "^2.5",
|
|
||||||
"fakerphp/faker": "^1.9.1",
|
"fakerphp/faker": "^1.9.1",
|
||||||
"laravel/dusk": "^6.21",
|
"laravel/dusk": "^6.21",
|
||||||
"mockery/mockery": "^1.4.4",
|
"mockery/mockery": "^1.4.4",
|
||||||
"nunomaduro/collision": "^5.10",
|
"nunomaduro/collision": "^6.1",
|
||||||
"phpunit/phpunit": "^9.5.10"
|
"phpunit/phpunit": "^9.5.10"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
|||||||
2990
composer.lock
generated
2990
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -1,68 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
return [
|
|
||||||
"analyzers" => ["*"],
|
|
||||||
"exclude_analyzers" => [],
|
|
||||||
"ci_mode_exclude_analyzers" => [],
|
|
||||||
"analyzer_paths" => [
|
|
||||||
"Enlightn\\Enlightn\\Analyzers" => base_path("vendor/enlightn/enlightn/src/Analyzers"),
|
|
||||||
"Enlightn\\EnlightnPro\\Analyzers" => base_path("vendor/enlightn/enlightnpro/src/Analyzers"),
|
|
||||||
],
|
|
||||||
"base_path" => [
|
|
||||||
app_path(),
|
|
||||||
database_path("migrations"),
|
|
||||||
database_path("seeders"),
|
|
||||||
],
|
|
||||||
"skip_env_specific" => env("ENLIGHTN_SKIP_ENVIRONMENT_SPECIFIC", false),
|
|
||||||
"guest_url" => null,
|
|
||||||
"dont_report" => [],
|
|
||||||
"ignore_errors" => [],
|
|
||||||
"license_whitelist" => [
|
|
||||||
"Apache-2.0",
|
|
||||||
"Apache2",
|
|
||||||
"BSD-2-Clause",
|
|
||||||
"BSD-3-Clause",
|
|
||||||
"LGPL-2.1-only",
|
|
||||||
"LGPL-2.1",
|
|
||||||
"LGPL-2.1-or-later",
|
|
||||||
"LGPL-3.0",
|
|
||||||
"LGPL-3.0-only",
|
|
||||||
"LGPL-3.0-or-later",
|
|
||||||
"MIT",
|
|
||||||
"ISC",
|
|
||||||
"CC0-1.0",
|
|
||||||
"Unlicense",
|
|
||||||
"WTFPL",
|
|
||||||
],
|
|
||||||
"credentials" => [
|
|
||||||
"username" => env("ENLIGHTN_USERNAME"),
|
|
||||||
"api_token" => env("ENLIGHTN_API_TOKEN"),
|
|
||||||
],
|
|
||||||
"github_repo" => env("ENLIGHTN_GITHUB_REPO"),
|
|
||||||
"compact_lines" => true,
|
|
||||||
"commercial_packages" => [
|
|
||||||
"enlightn/enlightnpro",
|
|
||||||
],
|
|
||||||
"allowed_permissions" => [
|
|
||||||
base_path() => "775",
|
|
||||||
app_path() => "775",
|
|
||||||
resource_path() => "775",
|
|
||||||
storage_path() => "775",
|
|
||||||
public_path() => "775",
|
|
||||||
config_path() => "775",
|
|
||||||
database_path() => "775",
|
|
||||||
base_path("routes") => "775",
|
|
||||||
app()->bootstrapPath() => "775",
|
|
||||||
app()->bootstrapPath("cache") => "775",
|
|
||||||
app()->bootstrapPath("app.php") => "664",
|
|
||||||
base_path("artisan") => "775",
|
|
||||||
public_path("index.php") => "664",
|
|
||||||
public_path("server.php") => "664",
|
|
||||||
],
|
|
||||||
"writable_directories" => [
|
|
||||||
storage_path(),
|
|
||||||
app()->bootstrapPath("cache"),
|
|
||||||
],
|
|
||||||
];
|
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
"default" => env("FILESYSTEM_DRIVER", "local"),
|
"default" => env("FILESYSTEM_DISK", "local"),
|
||||||
"disks" => [
|
"disks" => [
|
||||||
"local" => [
|
"local" => [
|
||||||
"driver" => "local",
|
"driver" => "local",
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ const statuses = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: 'Anulowany',
|
text: 'Anulowany',
|
||||||
value: 'canceled',
|
value: 'cancelled',
|
||||||
outline: {
|
outline: {
|
||||||
icon: OutlineXIcon,
|
icon: OutlineXIcon,
|
||||||
foreground: 'text-white',
|
foreground: 'text-white',
|
||||||
|
|||||||
@@ -62,7 +62,9 @@
|
|||||||
as="template"
|
as="template"
|
||||||
:value="type"
|
:value="type"
|
||||||
>
|
>
|
||||||
<li :class="[active ? 'text-white bg-blumilk-600' : 'text-gray-900', 'cursor-default select-none relative py-2 pl-3 pr-9']">
|
<li
|
||||||
|
:class="[active ? 'text-white bg-blumilk-600' : 'text-gray-900', 'cursor-default select-none relative py-2 pl-3 pr-9']"
|
||||||
|
>
|
||||||
<span :class="[selected ? 'font-semibold' : 'font-normal', 'block truncate']">
|
<span :class="[selected ? 'font-semibold' : 'font-normal', 'block truncate']">
|
||||||
{{ type.label }}
|
{{ type.label }}
|
||||||
</span>
|
</span>
|
||||||
@@ -137,7 +139,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="sm:grid sm:grid-cols-3 py-4 items-center">
|
<div class="sm:grid sm:grid-cols-3 py-4 items-center">
|
||||||
<span class="block text-sm font-medium text-gray-700 sm:mt-px">Liczba dni urlopu</span>
|
<span class="block text-sm font-medium text-gray-700 sm:mt-px">Liczba dni urlopu</span>
|
||||||
<div class="mt-1 sm:mt-0 sm:col-span-2 w-full max-w-lg bg-gray-50 border border-gray-300 rounded-md px-4 py-2 inline-flex items-center text-gray-500 sm:text-sm">
|
<div
|
||||||
|
class="mt-1 sm:mt-0 sm:col-span-2 w-full max-w-lg bg-gray-50 border border-gray-300 rounded-md px-4 py-2 inline-flex items-center text-gray-500 sm:text-sm"
|
||||||
|
>
|
||||||
{{ estimatedDays.length }}
|
{{ estimatedDays.length }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -179,11 +183,11 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {useForm} from '@inertiajs/inertia-vue3'
|
import {useForm, usePage} from '@inertiajs/inertia-vue3'
|
||||||
import FlatPickr from 'vue-flatpickr-component'
|
import FlatPickr from 'vue-flatpickr-component'
|
||||||
import {Listbox, ListboxButton, ListboxLabel, ListboxOption, ListboxOptions} from '@headlessui/vue'
|
import {Listbox, ListboxButton, ListboxLabel, ListboxOption, ListboxOptions} from '@headlessui/vue'
|
||||||
import {CheckIcon, SelectorIcon, XCircleIcon} from '@heroicons/vue/solid'
|
import {CheckIcon, SelectorIcon, XCircleIcon} from '@heroicons/vue/solid'
|
||||||
import {reactive, ref} from 'vue'
|
import {reactive, ref, computed} from 'vue'
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -218,18 +222,22 @@ export default {
|
|||||||
})
|
})
|
||||||
|
|
||||||
const estimatedDays = ref([])
|
const estimatedDays = ref([])
|
||||||
|
const minDate = computed(() => new Date(usePage().props.value.years.current, 0, 1))
|
||||||
|
const maxDate = computed(() => new Date(usePage().props.value.years.current, 11, 31))
|
||||||
|
|
||||||
const disableDates = [
|
const disableDates = [
|
||||||
date => (date.getDay() === 0 || date.getDay() === 6),
|
date => (date.getDay() === 0 || date.getDay() === 6),
|
||||||
]
|
]
|
||||||
|
|
||||||
const fromInputConfig = reactive({
|
const fromInputConfig = reactive({
|
||||||
maxDate: null,
|
minDate: minDate,
|
||||||
|
maxDate: maxDate,
|
||||||
disable: disableDates,
|
disable: disableDates,
|
||||||
})
|
})
|
||||||
|
|
||||||
const toInputConfig = reactive({
|
const toInputConfig = reactive({
|
||||||
minDate: null,
|
minDate: minDate,
|
||||||
|
maxDate: maxDate,
|
||||||
disable: disableDates,
|
disable: disableDates,
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -250,13 +258,11 @@ export default {
|
|||||||
.post('/vacation-requests')
|
.post('/vacation-requests')
|
||||||
},
|
},
|
||||||
onFromChange(selectedDates, dateStr) {
|
onFromChange(selectedDates, dateStr) {
|
||||||
this.toInputConfig.minDate = dateStr
|
this.form.to = dateStr
|
||||||
|
|
||||||
this.refreshEstimatedDays(this.form.from, this.form.to)
|
this.refreshEstimatedDays(this.form.from, this.form.to)
|
||||||
},
|
},
|
||||||
onToChange(selectedDates, dateStr) {
|
onToChange() {
|
||||||
this.fromInputConfig.maxDate = dateStr
|
|
||||||
|
|
||||||
this.refreshEstimatedDays(this.form.from, this.form.to)
|
this.refreshEstimatedDays(this.form.from, this.form.to)
|
||||||
},
|
},
|
||||||
refreshEstimatedDays(from, to) {
|
refreshEstimatedDays(from, to) {
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
"technical_approver": "Techniczny akceptujący",
|
"technical_approver": "Techniczny akceptujący",
|
||||||
"administrative_approver": "Administracyjny akceptujący",
|
"administrative_approver": "Administracyjny akceptujący",
|
||||||
"created": "Utworzony",
|
"created": "Utworzony",
|
||||||
"canceled": "Anulowany",
|
"cancelled": "Anulowany",
|
||||||
"rejected": "Odrzucony",
|
"rejected": "Odrzucony",
|
||||||
"approved": "Zatwierdzony",
|
"approved": "Zatwierdzony",
|
||||||
"waiting_for_technical": "Czeka na akceptację od technicznego",
|
"waiting_for_technical": "Czeka na akceptację od technicznego",
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
"Vacation request has been created.": "Wniosek urlopowy został utworzony.",
|
"Vacation request has been created.": "Wniosek urlopowy został utworzony.",
|
||||||
"Vacation request has been accepted.": "Wniosek urlopowy został zaakceptowany.",
|
"Vacation request has been accepted.": "Wniosek urlopowy został zaakceptowany.",
|
||||||
"Vacation request has been rejected.": "Wniosek urlopowy został odrzucony.",
|
"Vacation request has been rejected.": "Wniosek urlopowy został odrzucony.",
|
||||||
"Vacation request has been canceled.": "Wniosek urlopowy został anulowany.",
|
"Vacation request has been cancelled.": "Wniosek urlopowy został anulowany.",
|
||||||
"Sum:": "Suma:",
|
"Sum:": "Suma:",
|
||||||
"Date": "Data",
|
"Date": "Data",
|
||||||
"Day of week": "Dzień tygodnia",
|
"Day of week": "Dzień tygodnia",
|
||||||
|
|||||||
@@ -122,6 +122,6 @@ class HolidayTest extends FeatureTestCase
|
|||||||
->delete("/holidays/{$holiday->id}")
|
->delete("/holidays/{$holiday->id}")
|
||||||
->assertSessionHasNoErrors();
|
->assertSessionHasNoErrors();
|
||||||
|
|
||||||
$this->assertDeleted($holiday);
|
$this->assertModelMissing($holiday);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user
Maybe move these hours to consts as start hour and end hour?
Maybe move these hours to consts as start hour and end hour?