Skip to content

Commit

Permalink
fix accepting volunteer on edit page
Browse files Browse the repository at this point in the history
  • Loading branch information
gheorghelupu17 committed Oct 16, 2023
1 parent fd58f34 commit 8565553
Show file tree
Hide file tree
Showing 5 changed files with 148 additions and 67 deletions.
5 changes: 3 additions & 2 deletions app/Http/Resources/Project/EditProjectResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ class EditProjectResource extends Resource

public function toArray(Request $request): array
{

return [
'id' => $this->id,
// 'type' => $this->type,
Expand All @@ -38,8 +39,8 @@ public function toArray(Request $request): array
'description' => $this->description ?? '',
'scope' => $this->scope ?? '',
'reason_to_donate' => $this->reason_to_donate ?? '',
'accepting_volunteers' => \boolval($this->accepting_volunteers),
'accepting_comments' => \boolval($this->accepting_comments),
'accepting_volunteers' =>$this->accepting_volunteers ? __('field.boolean.true'): __('field.boolean.false'),
'accepting_comments' => $this->accepting_comments ? __('field.boolean.true'): __('field.boolean.false'),
'videos' => '',
'external_links' => $this->external_links,
'counties' => $this->counties->pluck('id')->toArray(),
Expand Down
4 changes: 4 additions & 0 deletions lang/ro.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,10 @@
"project_beneficiary_extra": "Descrie beneficiarii proiectului/comunitatea căreia i se adresează, incluzând timpul și numărul acestora. Nu depăși 500 caractere",
"why_to_donate": "De ce să donez?",
"why_to_donate_extra": "Precizează nevoile sesizate în rândul beneficiarilor/comunității în care va fi implementat proiectul.",
"accepting_volunteers": "Proiectul acceptă voluntari?",
"accepting_volunteers_extra": "Dacă da, precizează care sunt activitățile pentru care se pot înscrie voluntarii.",
"accepting_comments": "Proiectul acceptă comentarii?",
"accepting_comments_extra": "Dacă da, text.",
"has_comments_label": "Proiectul acceptă comentarii?",
"has_volunteers_label": "Proiectul acceptă voluntari?",
"photo_gallery": "Galerie foto",
Expand Down
4 changes: 4 additions & 0 deletions lang/ro/field.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,9 @@
'updated_at' => 'Actualizată la',
'id' => 'ID',
'id_format' => '#:number',
'boolean'=>[
'true'=>'Da',
'false'=>'Nu',
],

];
2 changes: 1 addition & 1 deletion lang/ro/validation.php
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,6 @@
'target_budget' => 'Bugetul țintă',
'categories' => 'Categorii',
'counties' => 'Județe',
'preview' => 'Imaginea principala'
'preview' => 'Imaginea principala',
],
];
200 changes: 136 additions & 64 deletions resources/js/Pages/AdminOng/Projects/EditProject.vue
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,77 @@
</EditModal>
</template>
</Field>
<Field :label="$t('accepting_volunteers')" :hasPendingChanges="changes.includes('accepting_volunteers')" alt :errors="formChangeStatus.errors.accepting_volunteers">
<template #value>
{{ originalProject.accepting_volunteers }}
</template>

<template #action>
<EditModal
@action="editField('accepting_volunteers')"
@cancel="resetField('accepting_volunteers')"
class="flex justify-end col-span-1"
>
<fieldset>
<legend class="text-sm font-semibold leading-6 text-gray-900"> {{ $t('accepting_volunteers') }}</legend>
<div class="mt-6 space-y-6">
<div class="relative flex gap-x-3">
<div class="flex h-6 items-center">
<Checkbox
class="form-checkbox"
id="accepting_comments"
color="gray-700"
v-model="project.accepting_volunteers"
:checked="project.accepting_volunteers==='Da'"
:error="errors.accepting_volunteers"
/>
</div>
<div class="text-sm leading-6">
<label for="accepting_comments" class="font-medium text-gray-900">{{$t('accepting_volunteers')}}</label>
<p class="text-gray-500">{{ $t('accepting_volunteers_extra') }}</p>
</div>
</div>
</div>
</fieldset>
</EditModal>
</template>
</Field>

<Field :label="$t('accepting_comments')" :hasPendingChanges="changes.includes('accepting_comments')" alt :errors="formChangeStatus.errors.accepting_comments">
<template #value>
{{ originalProject.accepting_comments }}
</template>

<template #action>
<EditModal
@action="editField('accepting_comments')"
@cancel="resetField('accepting_comments')"
class="flex justify-end col-span-1"
>
<fieldset>
<legend class="text-sm font-semibold leading-6 text-gray-900"> {{ $t('accepting_comments') }}</legend>
<div class="mt-6 space-y-6">
<div class="relative flex gap-x-3">
<div class="flex h-6 items-center">
<Checkbox
class="form-checkbox"
id="accepting_comments"
color="gray-700"
v-model="project.accepting_comments"
:checked="project.accepting_comments==='Da'"
:error="errors.accepting_comments"
/>
</div>
<div class="text-sm leading-6">
<label for="accepting_comments" class="font-medium text-gray-900">{{$t('accepting_comments')}}</label>
<p class="text-gray-500">{{ $t('accepting_comments_extra') }}</p>
</div>
</div>
</div>
</fieldset>
</EditModal>
</template>
</Field>

<!-- Edit main image -->
<Field :label="$t('main_image')" :errors="formChangeStatus.errors.preview">
Expand Down Expand Up @@ -300,7 +371,7 @@
>
<DangerButton @click="removeImage(index)">{{ $t('remove_image') }} </DangerButton>
<SecondaryButton class="col-start-2" @click="setCoverImage(index)"
>{{ $t('set_cover_image') }}
>{{ $t('set_cover_image') }}
</SecondaryButton>
</div>
</div>
Expand Down Expand Up @@ -406,70 +477,71 @@
</template>

<script setup>
import { ref, computed } from 'vue';
import { useForm } from '@inertiajs/vue3';
/** Import components. */
import DashboardLayout from '@/Layouts/DashboardLayout.vue';
import Title from '@/Components/Title.vue';
import SvgLoader from '@/Components/SvgLoader.vue';
import Field from '@/Components/Field.vue';
import EditModal from '@/Components/modals/EditModal.vue';
import Input from '@/Components/form/Input.vue';
import Textarea from '@/Components/form/Textarea.vue';
import FileInput from '@/Components/form/FileInput.vue';
import Repeater from '@/Components/form/Repeater.vue';
import InputWithIcon from '@/Components/form/InputWithIcon.vue';
import SecondaryButton from '@/Components/buttons/SecondaryButton.vue';
import DangerButton from '@/Components/buttons/DangerButton.vue';
import SelectMultiple from '@/Components/form/SelectMultiple.vue';
import Select from "@/Components/form/Select.vue";
const props = defineProps({
project: Object,
errors: Object,
counties: Array,
projectCategories: Array,
flash: Object,
changes: Array,
import { ref, computed } from 'vue';
import { useForm } from '@inertiajs/vue3';
/** Import components. */
import DashboardLayout from '@/Layouts/DashboardLayout.vue';
import Title from '@/Components/Title.vue';
import SvgLoader from '@/Components/SvgLoader.vue';
import Field from '@/Components/Field.vue';
import EditModal from '@/Components/modals/EditModal.vue';
import Input from '@/Components/form/Input.vue';
import Textarea from '@/Components/form/Textarea.vue';
import FileInput from '@/Components/form/FileInput.vue';
import Repeater from '@/Components/form/Repeater.vue';
import InputWithIcon from '@/Components/form/InputWithIcon.vue';
import SecondaryButton from '@/Components/buttons/SecondaryButton.vue';
import DangerButton from '@/Components/buttons/DangerButton.vue';
import SelectMultiple from '@/Components/form/SelectMultiple.vue';
import Select from "@/Components/form/Select.vue";
import Checkbox from "@/Components/form/Checkbox.vue";
const props = defineProps({
project: Object,
errors: Object,
counties: Array,
projectCategories: Array,
flash: Object,
changes: Array,
});
const project = ref(props.project);
const originalProject = computed(() => props.project);
const resetField = (field) => {
project.value[field] = originalProject.value[field];
};
const formChangeStatus = useForm({
status: 'pending',
id: project.value.id,
});
const changeProjectStatus = (id, status, type) => {
let tmpRoute =
type === 'regional' ? route('dashboard.projects.regional.status', id) : route('dashboard.projects.status', id);
if (confirm('Are you sure you want to change the status of this project?')) {
formChangeStatus.post(tmpRoute);
}
};
const editField = (field) => {
const form = useForm({
[field]: project.value[field],
});
const project = ref(props.project);
const originalProject = computed(() => props.project);
const resetField = (field) => {
project.value[field] = originalProject.value[field];
};
const formChangeStatus = useForm({
status: 'pending',
id: project.value.id,
// if (field ==='counties') {
// console.log(props.counties.find(form.counties));
// project.counties_names = props.counties.find(form.counties);
// }
// console.log(form,field);
form.post(route('dashboard.projects.update', project.value.id), {
preserveScroll: true,
onSuccess: (response) => {
//
},
});
const changeProjectStatus = (id, status, type) => {
let tmpRoute =
type === 'regional' ? route('dashboard.projects.regional.status', id) : route('dashboard.projects.status', id);
if (confirm('Are you sure you want to change the status of this project?')) {
formChangeStatus.post(tmpRoute);
}
};
const editField = (field) => {
const form = useForm({
[field]: project.value[field],
});
// if (field ==='counties') {
// console.log(props.counties.find(form.counties));
// project.counties_names = props.counties.find(form.counties);
// }
// console.log(form,field);
form.post(route('dashboard.projects.update', project.value.id), {
preserveScroll: true,
onSuccess: (response) => {
//
},
});
};
};
</script>

0 comments on commit 8565553

Please sign in to comment.