add search to simpletable

shift-build-2464
Nadim Salloum 2021-05-15 11:19:38 +02:00
parent 8a7c533bb5
commit f642c9c555
7 changed files with 970 additions and 137 deletions

View File

@ -102,8 +102,8 @@ class ContactController extends Controller
{ {
Contact::create( Contact::create(
$request->validate([ $request->validate([
'firstname' => ['required', 'max:75'], 'firstname' => ['max:75'],
'lastname' => ['required', 'max:75'], 'lastname' => ['max:75'],
'email' => ['nullable', 'max:75', 'email'], 'email' => ['nullable', 'max:75', 'email'],
'phone' => ['max:75'], 'phone' => ['max:75'],
'address' => ['nullable', 'max:150'], 'address' => ['nullable', 'max:150'],
@ -114,7 +114,7 @@ class ContactController extends Controller
]) ])
); );
return Redirect::route('contacts')->with('success', 'Kontakt erstellt.'); return Redirect::route('contacts/1')->with('success', 'Kontakt erstellt.');
} }
/** /**

780
public/js/app.js vendored
View File

@ -16775,6 +16775,9 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ }); /* harmony export */ });
/* harmony import */ var _Components_Paginator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/Components/Paginator */ "./resources/js/Components/Paginator.vue"); /* harmony import */ var _Components_Paginator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/Components/Paginator */ "./resources/js/Components/Paginator.vue");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
components: { components: {
@ -16784,13 +16787,23 @@ __webpack_require__.r(__webpack_exports__);
data: Object, data: Object,
columns: Array, columns: Array,
title: String, title: String,
defaultSort: Object defaultSort: Object,
filters: Object
}, },
data: function data() { data: function data() {
return { return {
form: this.filters,
sort: this.defaultSort sort: this.defaultSort
}; };
}, },
watch: {
form: {
deep: true,
handler: (0,lodash__WEBPACK_IMPORTED_MODULE_1__.throttle)(function () {
this.refreshTable();
}, 300)
}
},
methods: { methods: {
sortTable: function sortTable(col) { sortTable: function sortTable(col) {
event.preventDefault(); event.preventDefault();
@ -16809,6 +16822,16 @@ __webpack_require__.r(__webpack_exports__);
preserveState: true preserveState: true
}); });
}, },
reset: function reset() {
this.form = (0,lodash__WEBPACK_IMPORTED_MODULE_1__.mapValues)(this.form, function () {
return null;
});
},
refreshTable: function refreshTable() {
this.$inertia.get(this.route('contacts'), (0,lodash__WEBPACK_IMPORTED_MODULE_1__.pickBy)(this.form), {
preserveState: true
});
},
isActiveSort: function isActiveSort(col, dir) { isActiveSort: function isActiveSort(col, dir) {
return col == this.sort.by && dir == this.sort.direction; return col == this.sort.by && dir == this.sort.direction;
} }
@ -18192,6 +18215,126 @@ __webpack_require__.r(__webpack_exports__);
/***/ }), /***/ }),
/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Contacts/Components/ContactForm.vue?vue&type=script&lang=js":
/*!********************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Contacts/Components/ContactForm.vue?vue&type=script&lang=js ***!
\********************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _Jetstream_Button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/Jetstream/Button */ "./resources/js/Jetstream/Button.vue");
/* harmony import */ var _Components_BreadCrumb_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/Components/BreadCrumb.vue */ "./resources/js/Components/BreadCrumb.vue");
/* harmony import */ var _Components_SimpleTable_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/Components/SimpleTable.vue */ "./resources/js/Components/SimpleTable.vue");
/* harmony import */ var _Jetstream_Label_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/Jetstream/Label.vue */ "./resources/js/Jetstream/Label.vue");
/* harmony import */ var _Jetstream_Input_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/Jetstream/Input.vue */ "./resources/js/Jetstream/Input.vue");
/* harmony import */ var _Jetstream_ActionMessage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/Jetstream/ActionMessage */ "./resources/js/Jetstream/ActionMessage.vue");
/* harmony import */ var _Jetstream_InputError__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/Jetstream/InputError */ "./resources/js/Jetstream/InputError.vue");
/* harmony import */ var _Jetstream_FormSection__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/Jetstream/FormSection */ "./resources/js/Jetstream/FormSection.vue");
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
components: {
JetButton: _Jetstream_Button__WEBPACK_IMPORTED_MODULE_0__.default,
JetFormSection: _Jetstream_FormSection__WEBPACK_IMPORTED_MODULE_7__.default,
BreadCrumb: _Components_BreadCrumb_vue__WEBPACK_IMPORTED_MODULE_1__.default,
SimpleTable: _Components_SimpleTable_vue__WEBPACK_IMPORTED_MODULE_2__.default,
JetLabel: _Jetstream_Label_vue__WEBPACK_IMPORTED_MODULE_3__.default,
JetInput: _Jetstream_Input_vue__WEBPACK_IMPORTED_MODULE_4__.default,
JetInputError: _Jetstream_InputError__WEBPACK_IMPORTED_MODULE_6__.default,
JetActionMessage: _Jetstream_ActionMessage__WEBPACK_IMPORTED_MODULE_5__.default
},
props: {
contact: Object,
meta: Object
},
data: function data() {
return {
form: this.$inertia.form({
_method: 'PUT',
firstname: this.contact.firstname,
lastname: this.contact.lastname,
company: this.contact.company,
email: this.contact.email,
phone: this.contact.phone,
address: this.contact.address,
zip: this.contact.zip,
city: this.contact.city,
country: this.contact.country,
notes: this.contact.notes
})
};
},
methods: {
submitForm: function submitForm() {
this.form.post(route(this.meta.link, this.form), {
preserveScroll: true
});
}
}
});
/***/ }),
/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Contacts/Create.vue?vue&type=script&lang=js":
/*!****************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Contacts/Create.vue?vue&type=script&lang=js ***!
\****************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _Layouts_Layout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/Layouts/Layout */ "./resources/js/Layouts/Layout.vue");
/* harmony import */ var _Components_BreadCrumb_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/Components/BreadCrumb.vue */ "./resources/js/Components/BreadCrumb.vue");
/* harmony import */ var _Components_ContactForm_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Components/ContactForm.vue */ "./resources/js/Pages/Contacts/Components/ContactForm.vue");
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
components: {
Layout: _Layouts_Layout__WEBPACK_IMPORTED_MODULE_0__.default,
BreadCrumb: _Components_BreadCrumb_vue__WEBPACK_IMPORTED_MODULE_1__.default,
ContactForm: _Components_ContactForm_vue__WEBPACK_IMPORTED_MODULE_2__.default
},
props: {},
data: function data() {
return {
meta: {
link: 'contacts.store',
button_text: 'Kontakt speichern',
on_success: 'Kontakt gespeichert'
},
form: this.$inertia.form({
_method: 'PUT',
firstname: null,
lastname: null,
company: null,
email: null,
phone: null,
address: null,
zip: null,
city: null,
country: null,
notes: null
})
};
}
});
/***/ }),
/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Contacts/Edit.vue?vue&type=script&lang=js": /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Contacts/Edit.vue?vue&type=script&lang=js":
/*!**************************************************************************************************************************************************************************************************!*\ /*!**************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Contacts/Edit.vue?vue&type=script&lang=js ***! !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Contacts/Edit.vue?vue&type=script&lang=js ***!
@ -18323,23 +18466,20 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ }); /* harmony export */ });
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js"); /* harmony import */ var _Layouts_Layout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/Layouts/Layout */ "./resources/js/Layouts/Layout.vue");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _Components_SimpleTable_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/Components/SimpleTable.vue */ "./resources/js/Components/SimpleTable.vue");
/* harmony import */ var _Layouts_Layout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/Layouts/Layout */ "./resources/js/Layouts/Layout.vue"); /* harmony import */ var _Components_SearchFilter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/Components/SearchFilter */ "./resources/js/Components/SearchFilter.vue");
/* harmony import */ var _Components_SimpleTable_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/Components/SimpleTable.vue */ "./resources/js/Components/SimpleTable.vue"); /* harmony import */ var _Jetstream_Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/Jetstream/Button */ "./resources/js/Jetstream/Button.vue");
/* harmony import */ var _Components_SearchFilter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/Components/SearchFilter */ "./resources/js/Components/SearchFilter.vue");
/* harmony import */ var _Jetstream_Button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/Jetstream/Button */ "./resources/js/Jetstream/Button.vue");
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
components: { components: {
SearchFilter: _Components_SearchFilter__WEBPACK_IMPORTED_MODULE_3__.default, SearchFilter: _Components_SearchFilter__WEBPACK_IMPORTED_MODULE_2__.default,
JetButton: _Jetstream_Button__WEBPACK_IMPORTED_MODULE_4__.default, JetButton: _Jetstream_Button__WEBPACK_IMPORTED_MODULE_3__.default,
Layout: _Layouts_Layout__WEBPACK_IMPORTED_MODULE_1__.default, Layout: _Layouts_Layout__WEBPACK_IMPORTED_MODULE_0__.default,
SimpleTable: _Components_SimpleTable_vue__WEBPACK_IMPORTED_MODULE_2__.default SimpleTable: _Components_SimpleTable_vue__WEBPACK_IMPORTED_MODULE_1__.default
}, },
props: { props: {
filters: Object, filters: Object,
@ -18348,10 +18488,6 @@ __webpack_require__.r(__webpack_exports__);
}, },
data: function data() { data: function data() {
return { return {
form: {
search: this.filters.search,
trashed: this.filters.trashed
},
columns: [{ columns: [{
key: 'name', key: 'name',
value: 'Name', value: 'Name',
@ -18377,23 +18513,6 @@ __webpack_require__.r(__webpack_exports__);
value: 'Telefon' value: 'Telefon'
}] }]
}; };
},
watch: {
form: {
deep: true,
handler: (0,lodash__WEBPACK_IMPORTED_MODULE_0__.throttle)(function () {
this.$inertia.get(this.route('contacts'), (0,lodash__WEBPACK_IMPORTED_MODULE_0__.pickBy)(this.form), {
preserveState: false
});
}, 300)
}
},
methods: {
reset: function reset() {
this.form = (0,lodash__WEBPACK_IMPORTED_MODULE_0__.mapValues)(this.form, function () {
return null;
});
}
} }
}); });
@ -19825,44 +19944,54 @@ var _hoisted_1 = {
}; };
var _hoisted_2 = { var _hoisted_2 = {
key: 0, key: 0,
"class": "whitespace-nowrap" "class": "whitespace-nowrap mb-3"
}; };
var _hoisted_3 = { var _hoisted_3 = {
"class": "font-semibold text-xl m-3 text-gray-800 leading-tight" "class": "mb-1 font-bold text-3xl"
}; };
var _hoisted_4 = { var _hoisted_4 = {
key: 1, key: 1,
"class": "bg-white rounded-md shadow overflow-x-auto" "class": "my-6 flex justify-between items-center"
}; };
var _hoisted_5 = { var _hoisted_5 = {
"class": "w-full whitespace-nowrap" "class": "flex items-center w-full max-w-md mr-4"
}; };
var _hoisted_6 = { var _hoisted_6 = {
"class": "text-left font-bold" "class": "flex w-full bg-white shadow rounded"
}; };
var _hoisted_7 = { var _hoisted_7 = {
key: 2,
"class": "bg-white rounded-md shadow overflow-x-auto"
};
var _hoisted_8 = {
"class": "w-full whitespace-nowrap"
};
var _hoisted_9 = {
"class": "text-left font-bold"
};
var _hoisted_10 = {
key: 1, key: 1,
"class": "flex items-center" "class": "flex items-center"
}; };
var _hoisted_8 = { var _hoisted_11 = {
key: 1, key: 1,
"class": "px-6 py-4 flex items-center focus:text-indigo-500" "class": "px-6 py-4 flex items-center focus:text-blue-200"
}; };
var _hoisted_9 = { var _hoisted_12 = {
key: 0, key: 0,
"class": "border-t w-px" "class": "border-t w-px"
}; };
var _hoisted_10 = { var _hoisted_13 = {
key: 0 key: 0
}; };
var _hoisted_11 = { var _hoisted_14 = {
key: 2 key: 3
}; };
var _hoisted_12 = { var _hoisted_15 = {
"class": "inline-flex font-medium text-gray-500 ml-3" "class": "inline-flex font-medium text-gray-500 ml-3"
}; };
var _hoisted_13 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(" Keine Einträge gefunden "); var _hoisted_16 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(" Keine Einträge gefunden ");
function render(_ctx, _cache, $props, $setup, $data, $options) { function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_unicon = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("unicon"); var _component_unicon = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("unicon");
@ -19871,9 +20000,28 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_Paginator = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("Paginator"); var _component_Paginator = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("Paginator");
return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)("div", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_1, [$props.title ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("h3", _hoisted_3, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.title), 1 return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)("div", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_1, [$props.title ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("h1", _hoisted_3, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.title), 1
/* TEXT */ /* TEXT */
)])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true), $props.data.total > 0 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)("div", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("table", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("tr", _hoisted_6, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($props.columns, function (col, index) { )])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true), $data.form ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)("div", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_6, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("input", {
type: "text",
ref: "search",
"onUpdate:modelValue": _cache[1] || (_cache[1] = function ($event) {
return $data.form.search = $event;
}),
autofocus: "true",
name: "search",
placeholder: "Suchen...",
"class": "relative border-gray-200 w-full px-6 py-3 focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50 rounded",
autocomplete: "off"
}, null, 512
/* NEED_PATCH */
), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $data.form.search]])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("button", {
onClick: _cache[2] || (_cache[2] = function () {
return $options.reset && $options.reset.apply($options, arguments);
}),
type: "button",
"class": "ml-3 text-sm text-gray-500 hover:text-gray-700 focus:text-blue-200"
}, "Reset")])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true), $props.data.total > 0 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)("div", _hoisted_7, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("table", _hoisted_8, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("tr", _hoisted_9, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($props.columns, function (col, index) {
return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)("th", { return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)("th", {
key: col.key, key: col.key,
"class": "px-6 pt-4 pb-4", "class": "px-6 pt-4 pb-4",
@ -19901,7 +20049,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
name: "arrow-down" name: "arrow-down"
})) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)], 8 })) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)], 8
/* PROPS */ /* PROPS */
, ["onClick"])) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)("span", _hoisted_7, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(col.value), 1 , ["onClick"])) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)("span", _hoisted_10, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(col.value), 1
/* TEXT */ /* TEXT */
))], 8 ))], 8
/* PROPS */ /* PROPS */
@ -19918,7 +20066,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
"class": "border-t" "class": "border-t"
}, [row.link ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_inertia_link, { }, [row.link ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_inertia_link, {
key: 0, key: 0,
"class": "px-6 py-4 flex items-center focus:text-indigo-500", "class": "px-6 py-4 flex items-center focus:text-blue-200",
href: row.link href: row.link
}, { }, {
"default": (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () { "default": (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
@ -19931,12 +20079,12 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
}, 1032 }, 1032
/* PROPS, DYNAMIC_SLOTS */ /* PROPS, DYNAMIC_SLOTS */
, ["href"])) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)("span", _hoisted_8, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(row[col.key]), 1 , ["href"])) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)("span", _hoisted_11, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(row[col.key]), 1
/* TEXT */ /* TEXT */
))]); ))]);
}), 128 }), 128
/* KEYED_FRAGMENT */ /* KEYED_FRAGMENT */
)), row.link ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)("td", _hoisted_9, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_inertia_link, { )), row.link ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)("td", _hoisted_12, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_inertia_link, {
"class": "px-4 flex items-center", "class": "px-4 flex items-center",
href: row.link, href: row.link,
tabindex: "-1" tabindex: "-1"
@ -19957,18 +20105,18 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
, ["href"])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)]); , ["href"])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)]);
}), 128 }), 128
/* KEYED_FRAGMENT */ /* KEYED_FRAGMENT */
)), $props.data.total === 0 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)("tr", _hoisted_10, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("td", { )), $props.data.total === 0 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)("tr", _hoisted_13, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("td", {
"class": "border-t px-6 py-4", "class": "border-t px-6 py-4",
colspan: $props.columns.length colspan: $props.columns.length
}, "Keine Einträge gefunden", 8 }, "Keine Einträge gefunden", 8
/* PROPS */ /* PROPS */
, ["colspan"])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)])])) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)("div", _hoisted_11, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("span", _hoisted_12, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_unicon, { , ["colspan"])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)])])) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)("div", _hoisted_14, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("span", _hoisted_15, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_unicon, {
fill: "#7e8491", fill: "#7e8491",
"class": "mr-2", "class": "mr-2",
height: "24", height: "24",
width: "24", width: "24",
name: "meh" name: "meh"
}), _hoisted_13])]))]), $props.data.links ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_Paginator, { }), _hoisted_16])]))]), $props.data.links ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_Paginator, {
key: 0, key: 0,
"class": "mt-6", "class": "mt-6",
links: $props.data.links links: $props.data.links
@ -23182,6 +23330,399 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
/***/ }), /***/ }),
/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Contacts/Components/ContactForm.vue?vue&type=template&id=6a1266a4":
/*!************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Contacts/Components/ContactForm.vue?vue&type=template&id=6a1266a4 ***!
\************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "render": () => (/* binding */ render)
/* harmony export */ });
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
var _hoisted_1 = {
"class": "max-w-7xl py-10 sm:px-6 lg:px-8"
};
var _hoisted_2 = {
"class": "col-span-6 sm:col-span-4"
};
var _hoisted_3 = {
"class": "grid grid-cols-6 gap-6"
};
var _hoisted_4 = {
"class": "col-span-6 sm:col-span-3"
};
var _hoisted_5 = {
"class": "col-span-6 sm:col-span-3"
};
var _hoisted_6 = {
"class": "col-span-6 sm:col-span-4"
};
var _hoisted_7 = {
"class": "col-span-6 sm:col-span-4"
};
var _hoisted_8 = {
"class": "col-span-6 sm:col-span-4"
};
var _hoisted_9 = {
"class": "grid grid-cols-6 gap-6"
};
var _hoisted_10 = {
"class": "col-span-6 sm:col-span-2"
};
var _hoisted_11 = {
"class": "col-span-6 sm:col-span-3"
};
var _hoisted_12 = {
"class": "col-span-6 sm:col-span-1"
};
var _hoisted_13 = {
"class": "col-span-6 sm:col-span-4"
};
var _hoisted_14 = {
"class": "grid grid-cols-6 gap-6"
};
var _hoisted_15 = {
"class": "col-span-6 sm:col-span-3"
};
var _hoisted_16 = {
"class": "col-span-6 sm:col-span-3"
};
var _hoisted_17 = {
"class": "col-span-6 sm:col-span-4"
};
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_jet_label = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("jet-label");
var _component_jet_input = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("jet-input");
var _component_jet_input_error = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("jet-input-error");
var _component_jet_action_message = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("jet-action-message");
var _component_jet_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("jet-button");
var _component_jet_form_section = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("jet-form-section");
return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)("div", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_form_section, {
onSubmitted: $options.submitForm
}, {
title: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, "title")];
}),
description: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, "description")];
}),
form: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_label, {
"for": "firstname",
value: "Vorname"
}), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_input, {
id: "firstname",
type: "text",
"class": "mt-1 block w-full",
modelValue: $data.form.firstname,
"onUpdate:modelValue": _cache[1] || (_cache[1] = function ($event) {
return $data.form.firstname = $event;
}),
ref: "firstname",
autocomplete: "firstname"
}, null, 8
/* PROPS */
, ["modelValue"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_input_error, {
message: $data.form.errors.firstname,
"class": "mt-2"
}, null, 8
/* PROPS */
, ["message"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_label, {
"for": "lastname",
value: "Nachname"
}), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_input, {
id: "lastname",
type: "text",
"class": "mt-1 block w-full",
modelValue: $data.form.lastname,
"onUpdate:modelValue": _cache[2] || (_cache[2] = function ($event) {
return $data.form.lastname = $event;
}),
ref: "lastname",
autocomplete: "lastname"
}, null, 8
/* PROPS */
, ["modelValue"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_input_error, {
message: $data.form.errors.lastname,
"class": "mt-2"
}, null, 8
/* PROPS */
, ["message"])])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_6, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_label, {
"for": "company",
value: "Firma"
}), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_input, {
id: "company",
type: "text",
"class": "mt-1 block w-full",
modelValue: $data.form.company,
"onUpdate:modelValue": _cache[3] || (_cache[3] = function ($event) {
return $data.form.company = $event;
}),
ref: "company",
autocomplete: "company"
}, null, 8
/* PROPS */
, ["modelValue"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_input_error, {
message: $data.form.errors.company,
"class": "mt-2"
}, null, 8
/* PROPS */
, ["message"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_7, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_label, {
"for": "address",
value: "Strasse"
}), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_input, {
id: "address",
type: "text",
"class": "mt-1 block w-full",
modelValue: $data.form.address,
"onUpdate:modelValue": _cache[4] || (_cache[4] = function ($event) {
return $data.form.address = $event;
}),
ref: "address",
autocomplete: "address"
}, null, 8
/* PROPS */
, ["modelValue"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_input_error, {
message: $data.form.errors.address,
"class": "mt-2"
}, null, 8
/* PROPS */
, ["message"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_8, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_9, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_10, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_label, {
"for": "zip",
value: "PLZ"
}), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_input, {
id: "zip",
type: "text",
"class": "mt-1 block w-full",
modelValue: $data.form.zip,
"onUpdate:modelValue": _cache[5] || (_cache[5] = function ($event) {
return $data.form.zip = $event;
}),
ref: "zip",
autocomplete: "zip"
}, null, 8
/* PROPS */
, ["modelValue"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_input_error, {
message: $data.form.errors.zip,
"class": "mt-2"
}, null, 8
/* PROPS */
, ["message"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_11, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_label, {
"for": "city",
value: "Ort"
}), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_input, {
id: "city",
type: "text",
"class": "mt-1 block w-full",
modelValue: $data.form.city,
"onUpdate:modelValue": _cache[6] || (_cache[6] = function ($event) {
return $data.form.city = $event;
}),
ref: "city",
autocomplete: "city"
}, null, 8
/* PROPS */
, ["modelValue"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_input_error, {
message: $data.form.errors.city,
"class": "mt-2"
}, null, 8
/* PROPS */
, ["message"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_12, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_label, {
"for": "country",
value: "Land"
}), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_input, {
id: "country",
type: "text",
"class": "mt-1 block w-full",
modelValue: $data.form.country,
"onUpdate:modelValue": _cache[7] || (_cache[7] = function ($event) {
return $data.form.country = $event;
}),
ref: "country",
autocomplete: "country"
}, null, 8
/* PROPS */
, ["modelValue"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_input_error, {
message: $data.form.errors.country,
"class": "mt-2"
}, null, 8
/* PROPS */
, ["message"])])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_13, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_14, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_15, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_label, {
"for": "email",
value: "E-Mail"
}), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_input, {
id: "email",
type: "email",
"class": "mt-1 block w-full",
modelValue: $data.form.email,
"onUpdate:modelValue": _cache[8] || (_cache[8] = function ($event) {
return $data.form.email = $event;
}),
ref: "email",
autocomplete: "email"
}, null, 8
/* PROPS */
, ["modelValue"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_input_error, {
message: $data.form.errors.email,
"class": "mt-2"
}, null, 8
/* PROPS */
, ["message"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_16, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_label, {
"for": "phone",
value: "Telefon"
}), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_input, {
id: "phone",
type: "text",
"class": "mt-1 block w-full",
modelValue: $data.form.phone,
"onUpdate:modelValue": _cache[9] || (_cache[9] = function ($event) {
return $data.form.phone = $event;
}),
ref: "phone",
autocomplete: "phone"
}, null, 8
/* PROPS */
, ["modelValue"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_input_error, {
message: $data.form.errors.phone,
"class": "mt-2"
}, null, 8
/* PROPS */
, ["message"])])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_17, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_label, {
"for": "notes",
value: "Bemerkungen"
}), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("textarea", {
"class": "mt-1 block w-full border-gray-300 focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50 rounded-md shadow-sm",
"onUpdate:modelValue": _cache[10] || (_cache[10] = function ($event) {
return $data.form.notes = $event;
}),
ref: "input"
}, "\n ", 512
/* NEED_PATCH */
), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $data.form.notes]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_input_error, {
message: $data.form.errors.notes,
"class": "mt-2"
}, null, 8
/* PROPS */
, ["message"])])];
}),
actions: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_action_message, {
on: $data.form.recentlySuccessful,
"class": "mr-3"
}, {
"default": (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.meta.on_success), 1
/* TEXT */
)];
}),
_: 1
/* STABLE */
}, 8
/* PROPS */
, ["on"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_jet_button, {
"class": {
'opacity-25': $data.form.processing
},
disabled: $data.form.processing
}, {
"default": (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.meta.button_text), 1
/* TEXT */
)];
}),
_: 1
/* STABLE */
}, 8
/* PROPS */
, ["class", "disabled"])];
}),
_: 1
/* STABLE */
}, 8
/* PROPS */
, ["onSubmitted"])]);
}
/***/ }),
/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Contacts/Create.vue?vue&type=template&id=4bd47082":
/*!********************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Contacts/Create.vue?vue&type=template&id=4bd47082 ***!
\********************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "render": () => (/* binding */ render)
/* harmony export */ });
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
var _hoisted_1 = {
"class": "font-semibold text-xl text-gray-800 leading-tight"
};
var _hoisted_2 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(" Neuen Kontakt erfassen ");
var _hoisted_3 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)("Neuen Kontakt erfassen");
var _hoisted_4 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)("Anschliessend können mit dem neuen Kontakt Verträge abgeschlossen werden.");
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_bread_crumb = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("bread-crumb");
var _component_contact_form = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("contact-form");
var _component_layout = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("layout");
return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_layout, null, {
header: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("h2", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_bread_crumb, {
text: "Kontakte",
href: _ctx.route('contacts')
}, null, 8
/* PROPS */
, ["href"]), _hoisted_2])];
}),
"default": (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_contact_form, {
contact: $data.form,
meta: $data.meta
}, {
title: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
return [_hoisted_3];
}),
description: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
return [_hoisted_4];
}),
_: 1
/* STABLE */
}, 8
/* PROPS */
, ["contact", "meta"])])];
}),
_: 1
/* STABLE */
});
}
/***/ }),
/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Contacts/Edit.vue?vue&type=template&id=1c2aec8d": /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Contacts/Edit.vue?vue&type=template&id=1c2aec8d":
/*!******************************************************************************************************************************************************************************************************************************************************************************!*\ /*!******************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Contacts/Edit.vue?vue&type=template&id=1c2aec8d ***! !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Contacts/Edit.vue?vue&type=template&id=1c2aec8d ***!
@ -23595,9 +24136,6 @@ var _hoisted_2 = {
var _hoisted_3 = { var _hoisted_3 = {
"class": "w-full mx-auto sm:px-6 lg:px-8" "class": "w-full mx-auto sm:px-6 lg:px-8"
}; };
var _hoisted_4 = {
"class": "mb-6 flex justify-between items-center"
};
function render(_ctx, _cache, $props, $setup, $data, $options) { function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_simple_table = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("simple-table"); var _component_simple_table = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("simple-table");
@ -23608,27 +24146,15 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
return [_hoisted_1]; return [_hoisted_1];
}), }),
"default": (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () { "default": (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(" <search-filter ref=\"search\" v-model=\"form.search\" class=\"w-full max-w-md mr-4\" @reset=\"reset\"></search-filter> "), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("input", { return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_simple_table, {
type: "text",
ref: "search",
"onUpdate:modelValue": _cache[1] || (_cache[1] = function ($event) {
return $data.form.search = $event;
}),
autofocus: "true",
name: "search",
placeholder: "Suchen...",
"class": "border-gray-300 focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50 rounded-md shadow-sm block w-full",
autocomplete: "off"
}, null, 512
/* NEED_PATCH */
), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $data.form.search]])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_simple_table, {
title: $props.contacts.total + ' Kontakte', title: $props.contacts.total + ' Kontakte',
data: $props.contacts, data: $props.contacts,
columns: $data.columns, columns: $data.columns,
defaultSort: $props.sort defaultSort: $props.sort,
filters: $props.filters
}, null, 8 }, null, 8
/* PROPS */ /* PROPS */
, ["title", "data", "columns", "defaultSort"])])])]; , ["title", "data", "columns", "defaultSort", "filters"])])])];
}), }),
_: 1 _: 1
/* STABLE */ /* STABLE */
@ -48920,6 +49446,32 @@ _Index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__.default.__file =
/***/ }), /***/ }),
/***/ "./resources/js/Pages/Contacts/Components/ContactForm.vue":
/*!****************************************************************!*\
!*** ./resources/js/Pages/Contacts/Components/ContactForm.vue ***!
\****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _ContactForm_vue_vue_type_template_id_6a1266a4__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ContactForm.vue?vue&type=template&id=6a1266a4 */ "./resources/js/Pages/Contacts/Components/ContactForm.vue?vue&type=template&id=6a1266a4");
/* harmony import */ var _ContactForm_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ContactForm.vue?vue&type=script&lang=js */ "./resources/js/Pages/Contacts/Components/ContactForm.vue?vue&type=script&lang=js");
_ContactForm_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__.default.render = _ContactForm_vue_vue_type_template_id_6a1266a4__WEBPACK_IMPORTED_MODULE_0__.render
/* hot reload */
if (false) {}
_ContactForm_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__.default.__file = "resources/js/Pages/Contacts/Components/ContactForm.vue"
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_ContactForm_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__.default);
/***/ }),
/***/ "./resources/js/Pages/Contacts/Create.vue": /***/ "./resources/js/Pages/Contacts/Create.vue":
/*!************************************************!*\ /*!************************************************!*\
!*** ./resources/js/Pages/Contacts/Create.vue ***! !*** ./resources/js/Pages/Contacts/Create.vue ***!
@ -48931,10 +49483,18 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ }); /* harmony export */ });
const script = {} /* harmony import */ var _Create_vue_vue_type_template_id_4bd47082__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Create.vue?vue&type=template&id=4bd47082 */ "./resources/js/Pages/Contacts/Create.vue?vue&type=template&id=4bd47082");
script.__file = "resources/js/Pages/Contacts/Create.vue" /* harmony import */ var _Create_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Create.vue?vue&type=script&lang=js */ "./resources/js/Pages/Contacts/Create.vue?vue&type=script&lang=js");
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (script);
_Create_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__.default.render = _Create_vue_vue_type_template_id_4bd47082__WEBPACK_IMPORTED_MODULE_0__.render
/* hot reload */
if (false) {}
_Create_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__.default.__file = "resources/js/Pages/Contacts/Create.vue"
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_Create_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__.default);
/***/ }), /***/ }),
@ -49950,6 +50510,38 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_Index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./Index.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Cars/Index.vue?vue&type=script&lang=js"); /* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_Index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./Index.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Cars/Index.vue?vue&type=script&lang=js");
/***/ }),
/***/ "./resources/js/Pages/Contacts/Components/ContactForm.vue?vue&type=script&lang=js":
/*!****************************************************************************************!*\
!*** ./resources/js/Pages/Contacts/Components/ContactForm.vue?vue&type=script&lang=js ***!
\****************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_ContactForm_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__.default)
/* harmony export */ });
/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_ContactForm_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ContactForm.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Contacts/Components/ContactForm.vue?vue&type=script&lang=js");
/***/ }),
/***/ "./resources/js/Pages/Contacts/Create.vue?vue&type=script&lang=js":
/*!************************************************************************!*\
!*** ./resources/js/Pages/Contacts/Create.vue?vue&type=script&lang=js ***!
\************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_Create_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__.default)
/* harmony export */ });
/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_Create_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./Create.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Contacts/Create.vue?vue&type=script&lang=js");
/***/ }), /***/ }),
/***/ "./resources/js/Pages/Contacts/Edit.vue?vue&type=script&lang=js": /***/ "./resources/js/Pages/Contacts/Edit.vue?vue&type=script&lang=js":
@ -50894,6 +51486,38 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_Index_vue_vue_type_template_id_5cf1bb2b__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./Index.vue?vue&type=template&id=5cf1bb2b */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Cars/Index.vue?vue&type=template&id=5cf1bb2b"); /* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_Index_vue_vue_type_template_id_5cf1bb2b__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./Index.vue?vue&type=template&id=5cf1bb2b */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Cars/Index.vue?vue&type=template&id=5cf1bb2b");
/***/ }),
/***/ "./resources/js/Pages/Contacts/Components/ContactForm.vue?vue&type=template&id=6a1266a4":
/*!**********************************************************************************************!*\
!*** ./resources/js/Pages/Contacts/Components/ContactForm.vue?vue&type=template&id=6a1266a4 ***!
\**********************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_ContactForm_vue_vue_type_template_id_6a1266a4__WEBPACK_IMPORTED_MODULE_0__.render)
/* harmony export */ });
/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_ContactForm_vue_vue_type_template_id_6a1266a4__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ContactForm.vue?vue&type=template&id=6a1266a4 */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Contacts/Components/ContactForm.vue?vue&type=template&id=6a1266a4");
/***/ }),
/***/ "./resources/js/Pages/Contacts/Create.vue?vue&type=template&id=4bd47082":
/*!******************************************************************************!*\
!*** ./resources/js/Pages/Contacts/Create.vue?vue&type=template&id=4bd47082 ***!
\******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_Create_vue_vue_type_template_id_4bd47082__WEBPACK_IMPORTED_MODULE_0__.render)
/* harmony export */ });
/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_Create_vue_vue_type_template_id_4bd47082__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./Create.vue?vue&type=template&id=4bd47082 */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Contacts/Create.vue?vue&type=template&id=4bd47082");
/***/ }), /***/ }),
/***/ "./resources/js/Pages/Contacts/Edit.vue?vue&type=template&id=1c2aec8d": /***/ "./resources/js/Pages/Contacts/Edit.vue?vue&type=template&id=1c2aec8d":
@ -55607,6 +56231,8 @@ var map = {
"./Auth/VerifyEmail.vue": "./resources/js/Pages/Auth/VerifyEmail.vue", "./Auth/VerifyEmail.vue": "./resources/js/Pages/Auth/VerifyEmail.vue",
"./Cars/Index": "./resources/js/Pages/Cars/Index.vue", "./Cars/Index": "./resources/js/Pages/Cars/Index.vue",
"./Cars/Index.vue": "./resources/js/Pages/Cars/Index.vue", "./Cars/Index.vue": "./resources/js/Pages/Cars/Index.vue",
"./Contacts/Components/ContactForm": "./resources/js/Pages/Contacts/Components/ContactForm.vue",
"./Contacts/Components/ContactForm.vue": "./resources/js/Pages/Contacts/Components/ContactForm.vue",
"./Contacts/Create": "./resources/js/Pages/Contacts/Create.vue", "./Contacts/Create": "./resources/js/Pages/Contacts/Create.vue",
"./Contacts/Create.vue": "./resources/js/Pages/Contacts/Create.vue", "./Contacts/Create.vue": "./resources/js/Pages/Contacts/Create.vue",
"./Contacts/Edit": "./resources/js/Pages/Contacts/Edit.vue", "./Contacts/Edit": "./resources/js/Pages/Contacts/Edit.vue",

View File

@ -1,8 +1,16 @@
<template> <template>
<div> <div>
<div class="bg-grey overflow-hidden sm:rounded-lg"> <div class="bg-grey overflow-hidden sm:rounded-lg">
<div v-if="title" class="whitespace-nowrap"> <div v-if="title" class="whitespace-nowrap mb-3">
<h3 class="font-semibold text-xl m-3 text-gray-800 leading-tight">{{ title }}</h3> <h1 class="mb-1 font-bold text-3xl">{{ title }}</h1>
</div>
<div v-if="form" class="my-6 flex justify-between items-center">
<div class="flex items-center w-full max-w-md mr-4">
<div class="flex w-full bg-white shadow rounded">
<input type="text" ref="search" v-model="form.search" autofocus="true" name="search" placeholder="Suchen..." class="relative border-gray-200 w-full px-6 py-3 focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50 rounded" autocomplete="off">
</div>
<button @click="reset" type="button" class="ml-3 text-sm text-gray-500 hover:text-gray-700 focus:text-blue-200">Reset</button>
</div>
</div> </div>
<div v-if="data.total > 0" class="bg-white rounded-md shadow overflow-x-auto"> <div v-if="data.total > 0" class="bg-white rounded-md shadow overflow-x-auto">
<table class="w-full whitespace-nowrap"> <table class="w-full whitespace-nowrap">
@ -20,10 +28,10 @@
</tr> </tr>
<tr v-for="row in data.data" :key="row.link" class="hover:bg-gray-100 focus-within:bg-gray-100"> <tr v-for="row in data.data" :key="row.link" class="hover:bg-gray-100 focus-within:bg-gray-100">
<td v-for="col in columns" :key="col.key" class="border-t"> <td v-for="col in columns" :key="col.key" class="border-t">
<inertia-link v-if="row.link" class="px-6 py-4 flex items-center focus:text-indigo-500" :href="row.link"> <inertia-link v-if="row.link" class="px-6 py-4 flex items-center focus:text-blue-200" :href="row.link">
{{ row[col.key] }} {{ row[col.key] }}
</inertia-link> </inertia-link>
<span v-else class="px-6 py-4 flex items-center focus:text-indigo-500"> <span v-else class="px-6 py-4 flex items-center focus:text-blue-200">
{{ row[col.key] }} {{ row[col.key] }}
</span> </span>
</td> </td>
@ -52,6 +60,7 @@
<script> <script>
import Paginator from "@/Components/Paginator" import Paginator from "@/Components/Paginator"
import { pickBy, throttle, mapValues } from 'lodash'
export default { export default {
components: { components: {
@ -62,12 +71,22 @@ export default {
columns: Array, columns: Array,
title: String, title: String,
defaultSort: Object, defaultSort: Object,
filters: Object,
}, },
data() { data() {
return { return {
form: this.filters,
sort: this.defaultSort, sort: this.defaultSort,
} }
}, },
watch: {
form: {
deep: true,
handler: throttle(function() {
this.refreshTable();
}, 300),
},
},
methods: { methods: {
sortTable(col) { sortTable(col) {
event.preventDefault(); event.preventDefault();
@ -79,6 +98,12 @@ export default {
this.sort.by = col; this.sort.by = col;
this.$inertia.get(this.data.path, {'sortby': this.sort.by, 'direction': this.sort.direction}, { preserveState: true }) this.$inertia.get(this.data.path, {'sortby': this.sort.by, 'direction': this.sort.direction}, { preserveState: true })
}, },
reset() {
this.form = mapValues(this.form, () => null)
},
refreshTable() {
this.$inertia.get(this.route('contacts'), pickBy(this.form), { preserveState: true })
},
isActiveSort(col, dir) { isActiveSort(col, dir) {
return col == this.sort.by && dir == this.sort.direction; return col == this.sort.by && dir == this.sort.direction;
} }

View File

@ -0,0 +1,148 @@
<template>
<div class="max-w-7xl py-10 sm:px-6 lg:px-8">
<jet-form-section @submitted="submitForm">
<template #title>
<slot name="title"></slot>
</template>
<template #description>
<slot name="description"></slot>
</template>
<template #form>
<div class="col-span-6 sm:col-span-4">
<div class="grid grid-cols-6 gap-6">
<div class="col-span-6 sm:col-span-3">
<jet-label for="firstname" value="Vorname" />
<jet-input id="firstname" type="text" class="mt-1 block w-full" v-model="form.firstname" ref="firstname" autocomplete="firstname" />
<jet-input-error :message="form.errors.firstname" class="mt-2" />
</div>
<div class="col-span-6 sm:col-span-3">
<jet-label for="lastname" value="Nachname" />
<jet-input id="lastname" type="text" class="mt-1 block w-full" v-model="form.lastname" ref="lastname" autocomplete="lastname" />
<jet-input-error :message="form.errors.lastname" class="mt-2" />
</div>
</div>
</div>
<div class="col-span-6 sm:col-span-4">
<jet-label for="company" value="Firma" />
<jet-input id="company" type="text" class="mt-1 block w-full" v-model="form.company" ref="company" autocomplete="company" />
<jet-input-error :message="form.errors.company" class="mt-2" />
</div>
<div class="col-span-6 sm:col-span-4">
<jet-label for="address" value="Strasse" />
<jet-input id="address" type="text" class="mt-1 block w-full" v-model="form.address" ref="address" autocomplete="address" />
<jet-input-error :message="form.errors.address" class="mt-2" />
</div>
<div class="col-span-6 sm:col-span-4">
<div class="grid grid-cols-6 gap-6">
<div class="col-span-6 sm:col-span-2">
<jet-label for="zip" value="PLZ" />
<jet-input id="zip" type="text" class="mt-1 block w-full" v-model="form.zip" ref="zip" autocomplete="zip" />
<jet-input-error :message="form.errors.zip" class="mt-2" />
</div>
<div class="col-span-6 sm:col-span-3">
<jet-label for="city" value="Ort" />
<jet-input id="city" type="text" class="mt-1 block w-full" v-model="form.city" ref="city" autocomplete="city" />
<jet-input-error :message="form.errors.city" class="mt-2" />
</div>
<div class="col-span-6 sm:col-span-1">
<jet-label for="country" value="Land" />
<jet-input id="country" type="text" class="mt-1 block w-full" v-model="form.country" ref="country" autocomplete="country" />
<jet-input-error :message="form.errors.country" class="mt-2" />
</div>
</div>
</div>
<div class="col-span-6 sm:col-span-4">
<div class="grid grid-cols-6 gap-6">
<div class="col-span-6 sm:col-span-3">
<jet-label for="email" value="E-Mail" />
<jet-input id="email" type="email" class="mt-1 block w-full" v-model="form.email" ref="email" autocomplete="email" />
<jet-input-error :message="form.errors.email" class="mt-2" />
</div>
<div class="col-span-6 sm:col-span-3">
<jet-label for="phone" value="Telefon" />
<jet-input id="phone" type="text" class="mt-1 block w-full" v-model="form.phone" ref="phone" autocomplete="phone" />
<jet-input-error :message="form.errors.phone" class="mt-2" />
</div>
</div>
</div>
<div class="col-span-6 sm:col-span-4">
<jet-label for="notes" value="Bemerkungen" />
<textarea class="mt-1 block w-full border-gray-300 focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50 rounded-md shadow-sm" v-model="form.notes" ref="input">
</textarea>
<jet-input-error :message="form.errors.notes" class="mt-2" />
</div>
</template>
<template #actions>
<jet-action-message :on="form.recentlySuccessful" class="mr-3">
{{ meta.on_success }}
</jet-action-message>
<jet-button :class="{ 'opacity-25': form.processing }" :disabled="form.processing">
{{ meta.button_text }}
</jet-button>
</template>
</jet-form-section>
</div>
</template>
<script>
import JetButton from '@/Jetstream/Button'
import BreadCrumb from '@/Components/BreadCrumb.vue'
import SimpleTable from '@/Components/SimpleTable.vue'
import JetLabel from '@/Jetstream/Label.vue'
import JetInput from '@/Jetstream/Input.vue'
import JetActionMessage from '@/Jetstream/ActionMessage'
import JetInputError from '@/Jetstream/InputError'
import JetFormSection from '@/Jetstream/FormSection'
export default {
components: {
JetButton,
JetFormSection,
BreadCrumb,
SimpleTable,
JetLabel,
JetInput,
JetInputError,
JetActionMessage,
},
props: {
contact: Object,
meta: Object,
},
data() {
return {
form: this.$inertia.form({
_method: 'PUT',
firstname: this.contact.firstname,
lastname: this.contact.lastname,
company: this.contact.company,
email: this.contact.email,
phone: this.contact.phone,
address: this.contact.address,
zip: this.contact.zip,
city: this.contact.city,
country: this.contact.country,
notes: this.contact.notes,
}),
}
},
methods: {
submitForm() {
this.form.post(route(this.meta.link, this.form), {
preserveScroll: true,
});
},
},
}
</script>

View File

@ -0,0 +1,56 @@
<template>
<layout>
<template #header>
<h2 class="font-semibold text-xl text-gray-800 leading-tight">
<bread-crumb text="Kontakte" :href="route('contacts')" />
Neuen Kontakt erfassen
</h2>
</template>
<div>
<contact-form :contact="form" :meta="meta">
<template #title>Neuen Kontakt erfassen</template>
<template #description>Anschliessend können mit dem neuen Kontakt Verträge abgeschlossen werden.</template>
</contact-form>
</div>
</layout>
</template>
<script>
import Layout from '@/Layouts/Layout'
import BreadCrumb from '@/Components/BreadCrumb.vue'
import ContactForm from './Components/ContactForm.vue'
export default {
components: {
Layout,
BreadCrumb,
ContactForm,
},
props: {
},
data() {
return {
meta: {
link: 'contacts.store',
button_text: 'Kontakt speichern',
on_success: 'Kontakt gespeichert',
},
form: this.$inertia.form({
_method: 'PUT',
firstname: null,
lastname: null,
company: null,
email: null,
phone: null,
address: null,
zip: null,
city: null,
country: null,
notes: null,
}),
}
},
}
</script>

View File

@ -7,18 +7,13 @@
</template> </template>
<div class="py-12"> <div class="py-12">
<div class="w-full mx-auto sm:px-6 lg:px-8"> <div class="w-full mx-auto sm:px-6 lg:px-8">
<div class="mb-6 flex justify-between items-center"> <simple-table :title="contacts.total + ' Kontakte'" :data="contacts" :columns="columns" :defaultSort="sort" :filters="filters" />
<!-- <search-filter ref="search" v-model="form.search" class="w-full max-w-md mr-4" @reset="reset"></search-filter> -->
<input type="text" ref="search" v-model="form.search" autofocus="true" name="search" placeholder="Suchen..." class="border-gray-300 focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50 rounded-md shadow-sm block w-full" autocomplete="off">
</div>
<simple-table :title="contacts.total + ' Kontakte'" :data="contacts" :columns="columns" :defaultSort="sort" />
</div> </div>
</div> </div>
</layout> </layout>
</template> </template>
<script> <script>
import { pickBy, throttle, mapValues } from 'lodash'
import Layout from '@/Layouts/Layout' import Layout from '@/Layouts/Layout'
import SimpleTable from '@/Components/SimpleTable.vue' import SimpleTable from '@/Components/SimpleTable.vue'
import SearchFilter from '@/Components/SearchFilter' import SearchFilter from '@/Components/SearchFilter'
@ -38,10 +33,6 @@ export default {
}, },
data() { data() {
return { return {
form: {
search: this.filters.search,
trashed: this.filters.trashed,
},
columns: [ columns: [
{key: 'name', value: 'Name', sortable: true}, {key: 'name', value: 'Name', sortable: true},
{key: 'company', value: 'Firma', sortable: true}, {key: 'company', value: 'Firma', sortable: true},
@ -52,18 +43,5 @@ export default {
], ],
} }
}, },
watch: {
form: {
deep: true,
handler: throttle(function() {
this.$inertia.get(this.route('contacts'), pickBy(this.form), { preserveState: false })
}, 300),
},
},
methods: {
reset() {
this.form = mapValues(this.form, () => null)
},
},
} }
</script> </script>

View File

@ -34,11 +34,11 @@ Route::get('contacts', [ContactController::class, 'index'])
->name('contacts') ->name('contacts')
->middleware(['auth:sanctum', 'verified']); ->middleware(['auth:sanctum', 'verified']);
Route::post('contacts/buyers', [ContactController::class, 'index']) Route::get('contacts/buyers', [ContactController::class, 'index'])
->name('contacts.buyers') ->name('contacts.buyers')
->middleware(['auth:sanctum', 'verified']); ->middleware(['auth:sanctum', 'verified']);
Route::post('contacts/sellers', [ContactController::class, 'index']) Route::get('contacts/sellers', [ContactController::class, 'index'])
->name('contacts.sellers') ->name('contacts.sellers')
->middleware(['auth:sanctum', 'verified']); ->middleware(['auth:sanctum', 'verified']);