Wip
This commit is contained in:
@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Admin\DocumentationArticleRequest;
|
||||
use App\Models\DocumentationCategory;
|
||||
use App\Models\DocumentationItem;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
@@ -11,7 +12,7 @@ class DocumentationArticleController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$articles = DocumentationItem::query()->latest()->paginate();
|
||||
$articles = DocumentationItem::query()->with('category:id,title')->latest()->paginate();
|
||||
|
||||
return inertia('Admin/Documentation/Articles/Index', [
|
||||
'articles' => $articles
|
||||
@@ -20,7 +21,11 @@ class DocumentationArticleController extends Controller
|
||||
|
||||
public function create()
|
||||
{
|
||||
return inertia('Admin/Documentation/Articles/Create');
|
||||
$categories = DocumentationCategory::pluck('title', 'id');
|
||||
|
||||
return inertia('Admin/Documentation/Articles/Create', [
|
||||
'categories' => $categories,
|
||||
]);
|
||||
}
|
||||
|
||||
public function store(DocumentationArticleRequest $request)
|
||||
@@ -30,6 +35,9 @@ class DocumentationArticleController extends Controller
|
||||
'content' => $request->input('content')
|
||||
]);
|
||||
|
||||
$article->documentation_category_id = $request->input('category_id');
|
||||
$article->save();
|
||||
|
||||
return redirect()->route('admin.documentation.articles.index')->with('success', __('Documentation article has been created'));
|
||||
}
|
||||
|
||||
@@ -37,12 +45,15 @@ class DocumentationArticleController extends Controller
|
||||
{
|
||||
$article = DocumentationItem::findOrFail($id);
|
||||
|
||||
$categories = DocumentationCategory::pluck('title', 'id');
|
||||
|
||||
return inertia('Admin/Documentation/Articles/Edit', [
|
||||
'article' => $article
|
||||
'article' => $article,
|
||||
'categories' => $categories
|
||||
]);
|
||||
}
|
||||
|
||||
public function update(Request $request, $id)
|
||||
public function update(DocumentationArticleRequest $request, $id)
|
||||
{
|
||||
$article = DocumentationItem::findOrFail($id);
|
||||
|
||||
@@ -51,6 +62,9 @@ class DocumentationArticleController extends Controller
|
||||
'content' => $request->input('content')
|
||||
]);
|
||||
|
||||
$article->documentation_category_id = $request->input('category_id');
|
||||
$article->save();
|
||||
|
||||
return redirect()->route('admin.documentation.articles.index')->with('success', __('Documentation article has been updated'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ class UserController extends Controller
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
// TODO: Implement show feature for a user
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
|
||||
@@ -98,17 +98,19 @@ class SiteController extends Controller
|
||||
|
||||
public function requestFtpPassword(Request $request, $id)
|
||||
{
|
||||
$this->validate($request, ['password' => 'required|string']);
|
||||
if ($request->user()->requires_password_for_ftp) {
|
||||
$this->validate($request, ['password' => 'required|string']);
|
||||
|
||||
if (!Hash::check($request->input('password'), $request->user()->password)) {
|
||||
return response([
|
||||
'message' => 'The given data was invalid',
|
||||
'errors' => [
|
||||
'password' => [
|
||||
trans('auth.failed')
|
||||
if (!Hash::check($request->input('password'), $request->user()->password)) {
|
||||
return response([
|
||||
'message' => 'The given data was invalid',
|
||||
'errors' => [
|
||||
'password' => [
|
||||
trans('auth.failed')
|
||||
]
|
||||
]
|
||||
]
|
||||
], 422);
|
||||
], 422);
|
||||
}
|
||||
}
|
||||
|
||||
$site = $request->user()->sites()->findOrFail($id);
|
||||
|
||||
@@ -58,6 +58,7 @@ class HandleInertiaRequests extends Middleware
|
||||
'avatar' => Auth::user()->getGravatar(),
|
||||
'theme' => Auth::user()->theme,
|
||||
'keyboard_shortcuts' => Auth::user()->keyboard_shortcuts,
|
||||
'requires_password_for_ftp' => Auth::user()->requires_password_for_ftp,
|
||||
] : null,
|
||||
'package' => auth()->user() && auth()->user()->package ? [
|
||||
'name' => auth()->user()->package->name,
|
||||
|
||||
@@ -32,6 +32,10 @@ class DocumentationArticleRequest extends FormRequest
|
||||
'content' => [
|
||||
'required',
|
||||
'min:2'
|
||||
],
|
||||
'category_id' => [
|
||||
'required',
|
||||
'exists:documentation_categories,id'
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
@@ -13,6 +13,6 @@ class DocumentationItem extends Model
|
||||
|
||||
public function category()
|
||||
{
|
||||
return $this->belongsTo(DocumentationCategory::class);
|
||||
return $this->belongsTo(DocumentationCategory::class, 'documentation_category_id');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,8 @@ class User extends Authenticatable implements HasLocalePreference
|
||||
'language',
|
||||
'blocked',
|
||||
'theme',
|
||||
'keyboard_shortcuts'
|
||||
'keyboard_shortcuts',
|
||||
'requires_password_for_ftp'
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
@@ -44,7 +45,8 @@ class User extends Authenticatable implements HasLocalePreference
|
||||
protected $casts = [
|
||||
'email_verified_at' => 'datetime',
|
||||
'ftp_password' => Encrypted::class,
|
||||
'keyboard_shortcuts' => 'boolean'
|
||||
'keyboard_shortcuts' => 'boolean',
|
||||
'requires_password_for_ftp' => 'boolean'
|
||||
];
|
||||
|
||||
protected $appends = [
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class AddRequiresPasswordForFtpToUsersTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->boolean('requires_password_for_ftp')->after('blocked')->default(true);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->dropColumn('requires_password_for_ftp');
|
||||
});
|
||||
}
|
||||
}
|
||||
125
public/js/13.js
vendored
125
public/js/13.js
vendored
@@ -84,6 +84,15 @@ __webpack_require__.r(__webpack_exports__);
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
|
||||
@@ -145,7 +154,8 @@ __webpack_require__.r(__webpack_exports__);
|
||||
"package": this.user.package_id,
|
||||
notes: this.user.notes,
|
||||
language: this.user.language,
|
||||
blocked: this.user.blocked
|
||||
blocked: this.user.blocked,
|
||||
requires_password_for_ftp: this.user.requires_password_for_ftp
|
||||
}
|
||||
};
|
||||
},
|
||||
@@ -804,6 +814,119 @@ var render = function() {
|
||||
}
|
||||
}),
|
||||
_vm._v(" "),
|
||||
_c("div", [
|
||||
_c("input", {
|
||||
directives: [
|
||||
{
|
||||
name: "model",
|
||||
rawName: "v-model",
|
||||
value:
|
||||
_vm.form
|
||||
.requires_password_for_ftp,
|
||||
expression:
|
||||
"form.requires_password_for_ftp"
|
||||
}
|
||||
],
|
||||
staticClass: "form-checkbox",
|
||||
attrs: {
|
||||
id: "isolate_per_site_per_user",
|
||||
type: "checkbox"
|
||||
},
|
||||
domProps: {
|
||||
checked: Array.isArray(
|
||||
_vm.form
|
||||
.requires_password_for_ftp
|
||||
)
|
||||
? _vm._i(
|
||||
_vm.form
|
||||
.requires_password_for_ftp,
|
||||
null
|
||||
) > -1
|
||||
: _vm.form
|
||||
.requires_password_for_ftp
|
||||
},
|
||||
on: {
|
||||
change: function($event) {
|
||||
var $$a =
|
||||
_vm.form
|
||||
.requires_password_for_ftp,
|
||||
$$el = $event.target,
|
||||
$$c = $$el.checked
|
||||
? true
|
||||
: false
|
||||
if (Array.isArray($$a)) {
|
||||
var $$v = null,
|
||||
$$i = _vm._i($$a, $$v)
|
||||
if ($$el.checked) {
|
||||
$$i < 0 &&
|
||||
_vm.$set(
|
||||
_vm.form,
|
||||
"requires_password_for_ftp",
|
||||
$$a.concat([$$v])
|
||||
)
|
||||
} else {
|
||||
$$i > -1 &&
|
||||
_vm.$set(
|
||||
_vm.form,
|
||||
"requires_password_for_ftp",
|
||||
$$a
|
||||
.slice(0, $$i)
|
||||
.concat(
|
||||
$$a.slice($$i + 1)
|
||||
)
|
||||
)
|
||||
}
|
||||
} else {
|
||||
_vm.$set(
|
||||
_vm.form,
|
||||
"requires_password_for_ftp",
|
||||
$$c
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"label",
|
||||
{
|
||||
staticClass: "ml-2 text-sm",
|
||||
attrs: {
|
||||
for:
|
||||
"isolate_per_site_per_user"
|
||||
}
|
||||
},
|
||||
[
|
||||
_vm._v(
|
||||
_vm._s(
|
||||
_vm.__(
|
||||
"Require password to show FTP password"
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"p",
|
||||
{
|
||||
staticClass:
|
||||
"text-small mt-1 text-medium-emphasis"
|
||||
},
|
||||
[
|
||||
_vm._v(
|
||||
"\n " +
|
||||
_vm._s(
|
||||
_vm.__(
|
||||
"Disabling this will allow this user to get the FTP password right away."
|
||||
)
|
||||
) +
|
||||
"\n "
|
||||
)
|
||||
]
|
||||
)
|
||||
]),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"FormActions",
|
||||
[
|
||||
|
||||
124
public/js/14.js
vendored
124
public/js/14.js
vendored
@@ -84,6 +84,14 @@ __webpack_require__.r(__webpack_exports__);
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
|
||||
@@ -152,7 +160,8 @@ __webpack_require__.r(__webpack_exports__);
|
||||
"package": (_this$defaultPackage = this.defaultPackage) !== null && _this$defaultPackage !== void 0 ? _this$defaultPackage : null,
|
||||
notes: null,
|
||||
language: 'en',
|
||||
blocked: null
|
||||
blocked: null,
|
||||
requires_password_for_ftp: null
|
||||
}
|
||||
};
|
||||
},
|
||||
@@ -793,6 +802,119 @@ var render = function() {
|
||||
}
|
||||
}),
|
||||
_vm._v(" "),
|
||||
_c("div", [
|
||||
_c("input", {
|
||||
directives: [
|
||||
{
|
||||
name: "model",
|
||||
rawName: "v-model",
|
||||
value:
|
||||
_vm.form
|
||||
.requires_password_for_ftp,
|
||||
expression:
|
||||
"form.requires_password_for_ftp"
|
||||
}
|
||||
],
|
||||
staticClass: "form-checkbox",
|
||||
attrs: {
|
||||
id: "isolate_per_site_per_user",
|
||||
type: "checkbox"
|
||||
},
|
||||
domProps: {
|
||||
checked: Array.isArray(
|
||||
_vm.form
|
||||
.requires_password_for_ftp
|
||||
)
|
||||
? _vm._i(
|
||||
_vm.form
|
||||
.requires_password_for_ftp,
|
||||
null
|
||||
) > -1
|
||||
: _vm.form
|
||||
.requires_password_for_ftp
|
||||
},
|
||||
on: {
|
||||
change: function($event) {
|
||||
var $$a =
|
||||
_vm.form
|
||||
.requires_password_for_ftp,
|
||||
$$el = $event.target,
|
||||
$$c = $$el.checked
|
||||
? true
|
||||
: false
|
||||
if (Array.isArray($$a)) {
|
||||
var $$v = null,
|
||||
$$i = _vm._i($$a, $$v)
|
||||
if ($$el.checked) {
|
||||
$$i < 0 &&
|
||||
_vm.$set(
|
||||
_vm.form,
|
||||
"requires_password_for_ftp",
|
||||
$$a.concat([$$v])
|
||||
)
|
||||
} else {
|
||||
$$i > -1 &&
|
||||
_vm.$set(
|
||||
_vm.form,
|
||||
"requires_password_for_ftp",
|
||||
$$a
|
||||
.slice(0, $$i)
|
||||
.concat(
|
||||
$$a.slice($$i + 1)
|
||||
)
|
||||
)
|
||||
}
|
||||
} else {
|
||||
_vm.$set(
|
||||
_vm.form,
|
||||
"requires_password_for_ftp",
|
||||
$$c
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"label",
|
||||
{
|
||||
staticClass: "ml-2 text-sm",
|
||||
attrs: {
|
||||
for:
|
||||
"isolate_per_site_per_user"
|
||||
}
|
||||
},
|
||||
[
|
||||
_vm._v(
|
||||
_vm._s(
|
||||
_vm.__(
|
||||
"Require password to show FTP password"
|
||||
)
|
||||
)
|
||||
)
|
||||
]
|
||||
),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"p",
|
||||
{
|
||||
staticClass:
|
||||
"text-small mt-1 text-medium-emphasis"
|
||||
},
|
||||
[
|
||||
_vm._v(
|
||||
"\n " +
|
||||
_vm._s(
|
||||
_vm.__(
|
||||
"Disabling this will allow this user to get the FTP password right away."
|
||||
)
|
||||
) +
|
||||
"\n "
|
||||
)
|
||||
]
|
||||
)
|
||||
]),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"FormActions",
|
||||
[
|
||||
|
||||
2
public/js/18.js
vendored
2
public/js/18.js
vendored
@@ -233,7 +233,7 @@ __webpack_require__.r(__webpack_exports__);
|
||||
},
|
||||
props: {
|
||||
"package": Object,
|
||||
providers: Object,
|
||||
providers: [Array, Object],
|
||||
syncedProviders: Array
|
||||
},
|
||||
methods: {
|
||||
|
||||
318
public/js/20.js
vendored
318
public/js/20.js
vendored
@@ -25,10 +25,11 @@ __webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _components_layouts_SettingsLayout__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/components/layouts/SettingsLayout */ "./resources/js/components/layouts/SettingsLayout.vue");
|
||||
/* harmony import */ var _components_SettingsSegment__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/components/SettingsSegment */ "./resources/js/components/SettingsSegment.vue");
|
||||
/* harmony import */ var _components_forms_FormInput__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/components/forms/FormInput */ "./resources/js/components/forms/FormInput.vue");
|
||||
/* harmony import */ var _components_forms_FormTextarea__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/components/forms/FormTextarea */ "./resources/js/components/forms/FormTextarea.vue");
|
||||
/* harmony import */ var _components_Form__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @/components/Form */ "./resources/js/components/Form.vue");
|
||||
/* harmony import */ var _components_FormActions__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @/components/FormActions */ "./resources/js/components/FormActions.vue");
|
||||
/* harmony import */ var _Tabs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./../Tabs */ "./resources/js/Pages/Admin/Documentation/Tabs.vue");
|
||||
/* harmony import */ var _components_forms_FormSelect__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/components/forms/FormSelect */ "./resources/js/components/forms/FormSelect.vue");
|
||||
/* harmony import */ var _components_forms_FormTextarea__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @/components/forms/FormTextarea */ "./resources/js/components/forms/FormTextarea.vue");
|
||||
/* harmony import */ var _components_Form__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @/components/Form */ "./resources/js/components/Form.vue");
|
||||
/* harmony import */ var _components_FormActions__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @/components/FormActions */ "./resources/js/components/FormActions.vue");
|
||||
/* harmony import */ var _Tabs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./../Tabs */ "./resources/js/Pages/Admin/Documentation/Tabs.vue");
|
||||
//
|
||||
//
|
||||
//
|
||||
@@ -69,6 +70,11 @@ __webpack_require__.r(__webpack_exports__);
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -110,19 +116,24 @@ __webpack_require__.r(__webpack_exports__);
|
||||
StatusBubble: _components_StatusBubble__WEBPACK_IMPORTED_MODULE_10__["default"],
|
||||
NotificationBadge: _components_NotificationBadge__WEBPACK_IMPORTED_MODULE_11__["default"],
|
||||
FormInput: _components_forms_FormInput__WEBPACK_IMPORTED_MODULE_15__["default"],
|
||||
FormTextarea: _components_forms_FormTextarea__WEBPACK_IMPORTED_MODULE_16__["default"],
|
||||
FormTextarea: _components_forms_FormTextarea__WEBPACK_IMPORTED_MODULE_17__["default"],
|
||||
SettingsLayout: _components_layouts_SettingsLayout__WEBPACK_IMPORTED_MODULE_13__["default"],
|
||||
SettingsSegment: _components_SettingsSegment__WEBPACK_IMPORTED_MODULE_14__["default"],
|
||||
Form: _components_Form__WEBPACK_IMPORTED_MODULE_17__["default"],
|
||||
FormActions: _components_FormActions__WEBPACK_IMPORTED_MODULE_18__["default"],
|
||||
Tabs: _Tabs__WEBPACK_IMPORTED_MODULE_19__["default"]
|
||||
Form: _components_Form__WEBPACK_IMPORTED_MODULE_18__["default"],
|
||||
FormActions: _components_FormActions__WEBPACK_IMPORTED_MODULE_19__["default"],
|
||||
Tabs: _Tabs__WEBPACK_IMPORTED_MODULE_20__["default"],
|
||||
FormSelect: _components_forms_FormSelect__WEBPACK_IMPORTED_MODULE_16__["default"]
|
||||
},
|
||||
props: {
|
||||
categories: Object
|
||||
},
|
||||
data: function data() {
|
||||
return {
|
||||
sending: false,
|
||||
form: {
|
||||
title: null,
|
||||
description: null
|
||||
description: null,
|
||||
category_id: null
|
||||
}
|
||||
};
|
||||
},
|
||||
@@ -300,6 +311,108 @@ __webpack_require__.r(__webpack_exports__);
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/forms/FormSelect.vue?vue&type=script&lang=js&":
|
||||
/*!***************************************************************************************************************************************************************************!*\
|
||||
!*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/forms/FormSelect.vue?vue&type=script&lang=js& ***!
|
||||
\***************************************************************************************************************************************************************************/
|
||||
/*! exports provided: default */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _components_FormGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/components/FormGroup */ "./resources/js/components/FormGroup.vue");
|
||||
/* harmony import */ var _components_Label__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/components/Label */ "./resources/js/components/Label.vue");
|
||||
/* harmony import */ var _components_ErrorText__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ErrorText */ "./resources/js/components/ErrorText.vue");
|
||||
/* harmony import */ var _components_HelperText__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/HelperText */ "./resources/js/components/HelperText.vue");
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
|
||||
|
||||
var defaultClasses = 'w-full border-medium-emphasis text-body h-10 max-w-lg px-2 border rounded bg-surface-1 focus:outline-none focus:border-primary';
|
||||
/* harmony default export */ __webpack_exports__["default"] = ({
|
||||
props: {
|
||||
id: {
|
||||
type: String,
|
||||
required: false
|
||||
},
|
||||
label: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
type: {
|
||||
type: String,
|
||||
"default": function _default() {
|
||||
return 'text';
|
||||
}
|
||||
},
|
||||
required: {
|
||||
type: Boolean,
|
||||
"default": function _default() {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
helperText: {
|
||||
type: String
|
||||
},
|
||||
errors: {
|
||||
type: Array
|
||||
},
|
||||
placeholder: {
|
||||
type: String
|
||||
},
|
||||
value: {
|
||||
required: false,
|
||||
"default": ''
|
||||
},
|
||||
loading: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
"default": false
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
"default": false
|
||||
}
|
||||
},
|
||||
components: {
|
||||
FormGroup: _components_FormGroup__WEBPACK_IMPORTED_MODULE_0__["default"],
|
||||
Label: _components_Label__WEBPACK_IMPORTED_MODULE_1__["default"],
|
||||
ErrorText: _components_ErrorText__WEBPACK_IMPORTED_MODULE_2__["default"],
|
||||
HelperText: _components_HelperText__WEBPACK_IMPORTED_MODULE_3__["default"]
|
||||
},
|
||||
data: function data() {
|
||||
return {
|
||||
defaultClasses: defaultClasses,
|
||||
selected: this.value
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
updateValue: function updateValue(value) {
|
||||
this.$emit('input', value);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/forms/FormTextarea.vue?vue&type=script&lang=js&":
|
||||
/*!*****************************************************************************************************************************************************************************!*\
|
||||
!*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/forms/FormTextarea.vue?vue&type=script&lang=js& ***!
|
||||
@@ -512,6 +625,41 @@ var render = function() {
|
||||
}
|
||||
}),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"FormSelect",
|
||||
{
|
||||
attrs: {
|
||||
label: _vm.__("Category"),
|
||||
errors:
|
||||
_vm.$page.props.errors
|
||||
.category_id
|
||||
},
|
||||
model: {
|
||||
value: _vm.form.category_id,
|
||||
callback: function($$v) {
|
||||
_vm.$set(
|
||||
_vm.form,
|
||||
"category_id",
|
||||
$$v
|
||||
)
|
||||
},
|
||||
expression: "form.category_id"
|
||||
}
|
||||
},
|
||||
_vm._l(_vm.categories, function(
|
||||
title,
|
||||
id
|
||||
) {
|
||||
return _c("option", {
|
||||
domProps: {
|
||||
value: id,
|
||||
textContent: _vm._s(title)
|
||||
}
|
||||
})
|
||||
}),
|
||||
0
|
||||
),
|
||||
_vm._v(" "),
|
||||
_c("FormTextarea", {
|
||||
attrs: {
|
||||
rows: "10",
|
||||
@@ -795,6 +943,89 @@ render._withStripped = true
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/forms/FormSelect.vue?vue&type=template&id=75d3772b&":
|
||||
/*!*******************************************************************************************************************************************************************************************************************!*\
|
||||
!*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/forms/FormSelect.vue?vue&type=template&id=75d3772b& ***!
|
||||
\*******************************************************************************************************************************************************************************************************************/
|
||||
/*! exports provided: render, staticRenderFns */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
|
||||
var render = function() {
|
||||
var _vm = this
|
||||
var _h = _vm.$createElement
|
||||
var _c = _vm._self._c || _h
|
||||
return _c(
|
||||
"FormGroup",
|
||||
[
|
||||
_c("Label", { attrs: { errors: _vm.errors, forId: _vm.id } }, [
|
||||
_vm._v(_vm._s(_vm.label))
|
||||
]),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"select",
|
||||
{
|
||||
directives: [
|
||||
{
|
||||
name: "model",
|
||||
rawName: "v-model",
|
||||
value: _vm.value,
|
||||
expression: "value"
|
||||
}
|
||||
],
|
||||
class: [
|
||||
_vm.defaultClasses,
|
||||
_vm.disabled || _vm.loading ? "opacity-50" : "",
|
||||
_vm.loading ? "cursor-wait" : ""
|
||||
],
|
||||
attrs: {
|
||||
disabled: _vm.loading || _vm.disabled,
|
||||
id: _vm.id,
|
||||
required: _vm.required,
|
||||
placeholder: _vm.placeholder
|
||||
},
|
||||
on: {
|
||||
input: function($event) {
|
||||
return _vm.updateValue($event.target.value)
|
||||
},
|
||||
change: function($event) {
|
||||
var $$selectedVal = Array.prototype.filter
|
||||
.call($event.target.options, function(o) {
|
||||
return o.selected
|
||||
})
|
||||
.map(function(o) {
|
||||
var val = "_value" in o ? o._value : o.value
|
||||
return val
|
||||
})
|
||||
_vm.value = $event.target.multiple
|
||||
? $$selectedVal
|
||||
: $$selectedVal[0]
|
||||
}
|
||||
}
|
||||
},
|
||||
[_vm._t("default")],
|
||||
2
|
||||
),
|
||||
_vm._v(" "),
|
||||
_vm.errors ? _c("ErrorText", [_vm._v(_vm._s(_vm.errors[0]))]) : _vm._e(),
|
||||
_vm._v(" "),
|
||||
_vm.helperText && !_vm.errors
|
||||
? _c("HelperText", [_vm._v(_vm._s(_vm.helperText))])
|
||||
: _vm._e()
|
||||
],
|
||||
1
|
||||
)
|
||||
}
|
||||
var staticRenderFns = []
|
||||
render._withStripped = true
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/forms/FormTextarea.vue?vue&type=template&id=c608beae&":
|
||||
@@ -1374,6 +1605,75 @@ __webpack_require__.r(__webpack_exports__);
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/js/components/forms/FormSelect.vue":
|
||||
/*!******************************************************!*\
|
||||
!*** ./resources/js/components/forms/FormSelect.vue ***!
|
||||
\******************************************************/
|
||||
/*! exports provided: default */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _FormSelect_vue_vue_type_template_id_75d3772b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FormSelect.vue?vue&type=template&id=75d3772b& */ "./resources/js/components/forms/FormSelect.vue?vue&type=template&id=75d3772b&");
|
||||
/* harmony import */ var _FormSelect_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FormSelect.vue?vue&type=script&lang=js& */ "./resources/js/components/forms/FormSelect.vue?vue&type=script&lang=js&");
|
||||
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* normalize component */
|
||||
|
||||
var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
|
||||
_FormSelect_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
|
||||
_FormSelect_vue_vue_type_template_id_75d3772b___WEBPACK_IMPORTED_MODULE_0__["render"],
|
||||
_FormSelect_vue_vue_type_template_id_75d3772b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
|
||||
false,
|
||||
null,
|
||||
null,
|
||||
null
|
||||
|
||||
)
|
||||
|
||||
/* hot reload */
|
||||
if (false) { var api; }
|
||||
component.options.__file = "resources/js/components/forms/FormSelect.vue"
|
||||
/* harmony default export */ __webpack_exports__["default"] = (component.exports);
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/js/components/forms/FormSelect.vue?vue&type=script&lang=js&":
|
||||
/*!*******************************************************************************!*\
|
||||
!*** ./resources/js/components/forms/FormSelect.vue?vue&type=script&lang=js& ***!
|
||||
\*******************************************************************************/
|
||||
/*! exports provided: default */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FormSelect_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./FormSelect.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/forms/FormSelect.vue?vue&type=script&lang=js&");
|
||||
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FormSelect_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]);
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/js/components/forms/FormSelect.vue?vue&type=template&id=75d3772b&":
|
||||
/*!*************************************************************************************!*\
|
||||
!*** ./resources/js/components/forms/FormSelect.vue?vue&type=template&id=75d3772b& ***!
|
||||
\*************************************************************************************/
|
||||
/*! exports provided: render, staticRenderFns */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_FormSelect_vue_vue_type_template_id_75d3772b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./FormSelect.vue?vue&type=template&id=75d3772b& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/forms/FormSelect.vue?vue&type=template&id=75d3772b&");
|
||||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_FormSelect_vue_vue_type_template_id_75d3772b___WEBPACK_IMPORTED_MODULE_0__["render"]; });
|
||||
|
||||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_FormSelect_vue_vue_type_template_id_75d3772b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/js/components/forms/FormTextarea.vue":
|
||||
|
||||
317
public/js/21.js
vendored
317
public/js/21.js
vendored
@@ -25,10 +25,11 @@ __webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _components_layouts_SettingsLayout__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/components/layouts/SettingsLayout */ "./resources/js/components/layouts/SettingsLayout.vue");
|
||||
/* harmony import */ var _components_SettingsSegment__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/components/SettingsSegment */ "./resources/js/components/SettingsSegment.vue");
|
||||
/* harmony import */ var _components_forms_FormInput__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/components/forms/FormInput */ "./resources/js/components/forms/FormInput.vue");
|
||||
/* harmony import */ var _components_forms_FormTextarea__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/components/forms/FormTextarea */ "./resources/js/components/forms/FormTextarea.vue");
|
||||
/* harmony import */ var _components_Form__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @/components/Form */ "./resources/js/components/Form.vue");
|
||||
/* harmony import */ var _components_FormActions__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @/components/FormActions */ "./resources/js/components/FormActions.vue");
|
||||
/* harmony import */ var _Tabs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./../Tabs */ "./resources/js/Pages/Admin/Documentation/Tabs.vue");
|
||||
/* harmony import */ var _components_forms_FormSelect__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/components/forms/FormSelect */ "./resources/js/components/forms/FormSelect.vue");
|
||||
/* harmony import */ var _components_forms_FormTextarea__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @/components/forms/FormTextarea */ "./resources/js/components/forms/FormTextarea.vue");
|
||||
/* harmony import */ var _components_Form__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @/components/Form */ "./resources/js/components/Form.vue");
|
||||
/* harmony import */ var _components_FormActions__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @/components/FormActions */ "./resources/js/components/FormActions.vue");
|
||||
/* harmony import */ var _Tabs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./../Tabs */ "./resources/js/Pages/Admin/Documentation/Tabs.vue");
|
||||
//
|
||||
//
|
||||
//
|
||||
@@ -70,6 +71,10 @@ __webpack_require__.r(__webpack_exports__);
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -111,22 +116,25 @@ __webpack_require__.r(__webpack_exports__);
|
||||
StatusBubble: _components_StatusBubble__WEBPACK_IMPORTED_MODULE_10__["default"],
|
||||
NotificationBadge: _components_NotificationBadge__WEBPACK_IMPORTED_MODULE_11__["default"],
|
||||
FormInput: _components_forms_FormInput__WEBPACK_IMPORTED_MODULE_15__["default"],
|
||||
FormTextarea: _components_forms_FormTextarea__WEBPACK_IMPORTED_MODULE_16__["default"],
|
||||
FormTextarea: _components_forms_FormTextarea__WEBPACK_IMPORTED_MODULE_17__["default"],
|
||||
SettingsLayout: _components_layouts_SettingsLayout__WEBPACK_IMPORTED_MODULE_13__["default"],
|
||||
SettingsSegment: _components_SettingsSegment__WEBPACK_IMPORTED_MODULE_14__["default"],
|
||||
Form: _components_Form__WEBPACK_IMPORTED_MODULE_17__["default"],
|
||||
FormActions: _components_FormActions__WEBPACK_IMPORTED_MODULE_18__["default"],
|
||||
Tabs: _Tabs__WEBPACK_IMPORTED_MODULE_19__["default"]
|
||||
Form: _components_Form__WEBPACK_IMPORTED_MODULE_18__["default"],
|
||||
FormSelect: _components_forms_FormSelect__WEBPACK_IMPORTED_MODULE_16__["default"],
|
||||
FormActions: _components_FormActions__WEBPACK_IMPORTED_MODULE_19__["default"],
|
||||
Tabs: _Tabs__WEBPACK_IMPORTED_MODULE_20__["default"]
|
||||
},
|
||||
props: {
|
||||
article: Object
|
||||
article: Object,
|
||||
categories: Object
|
||||
},
|
||||
data: function data() {
|
||||
return {
|
||||
sending: false,
|
||||
form: {
|
||||
title: this.article.title,
|
||||
content: this.article.content
|
||||
content: this.article.content,
|
||||
category_id: this.article.documentation_category_id
|
||||
}
|
||||
};
|
||||
},
|
||||
@@ -304,6 +312,108 @@ __webpack_require__.r(__webpack_exports__);
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/forms/FormSelect.vue?vue&type=script&lang=js&":
|
||||
/*!***************************************************************************************************************************************************************************!*\
|
||||
!*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/forms/FormSelect.vue?vue&type=script&lang=js& ***!
|
||||
\***************************************************************************************************************************************************************************/
|
||||
/*! exports provided: default */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _components_FormGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/components/FormGroup */ "./resources/js/components/FormGroup.vue");
|
||||
/* harmony import */ var _components_Label__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/components/Label */ "./resources/js/components/Label.vue");
|
||||
/* harmony import */ var _components_ErrorText__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ErrorText */ "./resources/js/components/ErrorText.vue");
|
||||
/* harmony import */ var _components_HelperText__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/HelperText */ "./resources/js/components/HelperText.vue");
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
|
||||
|
||||
var defaultClasses = 'w-full border-medium-emphasis text-body h-10 max-w-lg px-2 border rounded bg-surface-1 focus:outline-none focus:border-primary';
|
||||
/* harmony default export */ __webpack_exports__["default"] = ({
|
||||
props: {
|
||||
id: {
|
||||
type: String,
|
||||
required: false
|
||||
},
|
||||
label: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
type: {
|
||||
type: String,
|
||||
"default": function _default() {
|
||||
return 'text';
|
||||
}
|
||||
},
|
||||
required: {
|
||||
type: Boolean,
|
||||
"default": function _default() {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
helperText: {
|
||||
type: String
|
||||
},
|
||||
errors: {
|
||||
type: Array
|
||||
},
|
||||
placeholder: {
|
||||
type: String
|
||||
},
|
||||
value: {
|
||||
required: false,
|
||||
"default": ''
|
||||
},
|
||||
loading: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
"default": false
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
"default": false
|
||||
}
|
||||
},
|
||||
components: {
|
||||
FormGroup: _components_FormGroup__WEBPACK_IMPORTED_MODULE_0__["default"],
|
||||
Label: _components_Label__WEBPACK_IMPORTED_MODULE_1__["default"],
|
||||
ErrorText: _components_ErrorText__WEBPACK_IMPORTED_MODULE_2__["default"],
|
||||
HelperText: _components_HelperText__WEBPACK_IMPORTED_MODULE_3__["default"]
|
||||
},
|
||||
data: function data() {
|
||||
return {
|
||||
defaultClasses: defaultClasses,
|
||||
selected: this.value
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
updateValue: function updateValue(value) {
|
||||
this.$emit('input', value);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/forms/FormTextarea.vue?vue&type=script&lang=js&":
|
||||
/*!*****************************************************************************************************************************************************************************!*\
|
||||
!*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/forms/FormTextarea.vue?vue&type=script&lang=js& ***!
|
||||
@@ -516,6 +626,41 @@ var render = function() {
|
||||
}
|
||||
}),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"FormSelect",
|
||||
{
|
||||
attrs: {
|
||||
label: _vm.__("Category"),
|
||||
errors:
|
||||
_vm.$page.props.errors
|
||||
.category_id
|
||||
},
|
||||
model: {
|
||||
value: _vm.form.category_id,
|
||||
callback: function($$v) {
|
||||
_vm.$set(
|
||||
_vm.form,
|
||||
"category_id",
|
||||
$$v
|
||||
)
|
||||
},
|
||||
expression: "form.category_id"
|
||||
}
|
||||
},
|
||||
_vm._l(_vm.categories, function(
|
||||
title,
|
||||
id
|
||||
) {
|
||||
return _c("option", {
|
||||
domProps: {
|
||||
value: id,
|
||||
textContent: _vm._s(title)
|
||||
}
|
||||
})
|
||||
}),
|
||||
0
|
||||
),
|
||||
_vm._v(" "),
|
||||
_c("FormTextarea", {
|
||||
attrs: {
|
||||
rows: "10",
|
||||
@@ -799,6 +944,89 @@ render._withStripped = true
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/forms/FormSelect.vue?vue&type=template&id=75d3772b&":
|
||||
/*!*******************************************************************************************************************************************************************************************************************!*\
|
||||
!*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/forms/FormSelect.vue?vue&type=template&id=75d3772b& ***!
|
||||
\*******************************************************************************************************************************************************************************************************************/
|
||||
/*! exports provided: render, staticRenderFns */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
|
||||
var render = function() {
|
||||
var _vm = this
|
||||
var _h = _vm.$createElement
|
||||
var _c = _vm._self._c || _h
|
||||
return _c(
|
||||
"FormGroup",
|
||||
[
|
||||
_c("Label", { attrs: { errors: _vm.errors, forId: _vm.id } }, [
|
||||
_vm._v(_vm._s(_vm.label))
|
||||
]),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"select",
|
||||
{
|
||||
directives: [
|
||||
{
|
||||
name: "model",
|
||||
rawName: "v-model",
|
||||
value: _vm.value,
|
||||
expression: "value"
|
||||
}
|
||||
],
|
||||
class: [
|
||||
_vm.defaultClasses,
|
||||
_vm.disabled || _vm.loading ? "opacity-50" : "",
|
||||
_vm.loading ? "cursor-wait" : ""
|
||||
],
|
||||
attrs: {
|
||||
disabled: _vm.loading || _vm.disabled,
|
||||
id: _vm.id,
|
||||
required: _vm.required,
|
||||
placeholder: _vm.placeholder
|
||||
},
|
||||
on: {
|
||||
input: function($event) {
|
||||
return _vm.updateValue($event.target.value)
|
||||
},
|
||||
change: function($event) {
|
||||
var $$selectedVal = Array.prototype.filter
|
||||
.call($event.target.options, function(o) {
|
||||
return o.selected
|
||||
})
|
||||
.map(function(o) {
|
||||
var val = "_value" in o ? o._value : o.value
|
||||
return val
|
||||
})
|
||||
_vm.value = $event.target.multiple
|
||||
? $$selectedVal
|
||||
: $$selectedVal[0]
|
||||
}
|
||||
}
|
||||
},
|
||||
[_vm._t("default")],
|
||||
2
|
||||
),
|
||||
_vm._v(" "),
|
||||
_vm.errors ? _c("ErrorText", [_vm._v(_vm._s(_vm.errors[0]))]) : _vm._e(),
|
||||
_vm._v(" "),
|
||||
_vm.helperText && !_vm.errors
|
||||
? _c("HelperText", [_vm._v(_vm._s(_vm.helperText))])
|
||||
: _vm._e()
|
||||
],
|
||||
1
|
||||
)
|
||||
}
|
||||
var staticRenderFns = []
|
||||
render._withStripped = true
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/forms/FormTextarea.vue?vue&type=template&id=c608beae&":
|
||||
@@ -1378,6 +1606,75 @@ __webpack_require__.r(__webpack_exports__);
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/js/components/forms/FormSelect.vue":
|
||||
/*!******************************************************!*\
|
||||
!*** ./resources/js/components/forms/FormSelect.vue ***!
|
||||
\******************************************************/
|
||||
/*! exports provided: default */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _FormSelect_vue_vue_type_template_id_75d3772b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FormSelect.vue?vue&type=template&id=75d3772b& */ "./resources/js/components/forms/FormSelect.vue?vue&type=template&id=75d3772b&");
|
||||
/* harmony import */ var _FormSelect_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FormSelect.vue?vue&type=script&lang=js& */ "./resources/js/components/forms/FormSelect.vue?vue&type=script&lang=js&");
|
||||
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* normalize component */
|
||||
|
||||
var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
|
||||
_FormSelect_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
|
||||
_FormSelect_vue_vue_type_template_id_75d3772b___WEBPACK_IMPORTED_MODULE_0__["render"],
|
||||
_FormSelect_vue_vue_type_template_id_75d3772b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
|
||||
false,
|
||||
null,
|
||||
null,
|
||||
null
|
||||
|
||||
)
|
||||
|
||||
/* hot reload */
|
||||
if (false) { var api; }
|
||||
component.options.__file = "resources/js/components/forms/FormSelect.vue"
|
||||
/* harmony default export */ __webpack_exports__["default"] = (component.exports);
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/js/components/forms/FormSelect.vue?vue&type=script&lang=js&":
|
||||
/*!*******************************************************************************!*\
|
||||
!*** ./resources/js/components/forms/FormSelect.vue?vue&type=script&lang=js& ***!
|
||||
\*******************************************************************************/
|
||||
/*! exports provided: default */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FormSelect_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./FormSelect.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/forms/FormSelect.vue?vue&type=script&lang=js&");
|
||||
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FormSelect_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]);
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/js/components/forms/FormSelect.vue?vue&type=template&id=75d3772b&":
|
||||
/*!*************************************************************************************!*\
|
||||
!*** ./resources/js/components/forms/FormSelect.vue?vue&type=template&id=75d3772b& ***!
|
||||
\*************************************************************************************/
|
||||
/*! exports provided: render, staticRenderFns */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_FormSelect_vue_vue_type_template_id_75d3772b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./FormSelect.vue?vue&type=template&id=75d3772b& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/forms/FormSelect.vue?vue&type=template&id=75d3772b&");
|
||||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_FormSelect_vue_vue_type_template_id_75d3772b___WEBPACK_IMPORTED_MODULE_0__["render"]; });
|
||||
|
||||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_FormSelect_vue_vue_type_template_id_75d3772b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/js/components/forms/FormTextarea.vue":
|
||||
|
||||
16
public/js/31.js
vendored
16
public/js/31.js
vendored
@@ -85,6 +85,8 @@ __webpack_require__.r(__webpack_exports__);
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
|
||||
@@ -445,6 +447,12 @@ var render = function() {
|
||||
)
|
||||
]),
|
||||
_vm._v(" "),
|
||||
_c("TableHeader", [
|
||||
_vm._v(
|
||||
_vm._s(_vm.__("Category"))
|
||||
)
|
||||
]),
|
||||
_vm._v(" "),
|
||||
_c("TableHeader")
|
||||
],
|
||||
1
|
||||
@@ -470,6 +478,14 @@ var render = function() {
|
||||
)
|
||||
]),
|
||||
_vm._v(" "),
|
||||
_c("TableData", [
|
||||
_vm._v(
|
||||
_vm._s(
|
||||
article.category.title
|
||||
)
|
||||
)
|
||||
]),
|
||||
_vm._v(" "),
|
||||
_c(
|
||||
"TableData",
|
||||
[
|
||||
|
||||
9
public/js/40.js
vendored
9
public/js/40.js
vendored
@@ -159,6 +159,8 @@ __webpack_require__.r(__webpack_exports__);
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
|
||||
@@ -252,8 +254,11 @@ __webpack_require__.r(__webpack_exports__);
|
||||
methods: {
|
||||
useNotification: _hooks_notification__WEBPACK_IMPORTED_MODULE_18__["useNotification"],
|
||||
confirmRequestFtpPassword: function confirmRequestFtpPassword() {
|
||||
this.modalIsOpen = true;
|
||||
return;
|
||||
if (!this.$page.props.auth.user.requires_password_for_ftp) {
|
||||
this.requestFtpPassword();
|
||||
} else {
|
||||
this.modalIsOpen = true;
|
||||
}
|
||||
},
|
||||
closeModal: function closeModal() {
|
||||
this.form.password = null;
|
||||
|
||||
2
public/js/app.js
vendored
2
public/js/app.js
vendored
@@ -43,7 +43,7 @@
|
||||
/******/
|
||||
/******/ // script path function
|
||||
/******/ function jsonpScriptSrc(chunkId) {
|
||||
/******/ return __webpack_require__.p + "js/" + ({}[chunkId]||chunkId) + ".js?id=" + {"0":"73f3008f1b3680de4be5","1":"036bc93ad1cffe03c96e","2":"d2a49802291d427ca7c8","3":"a0f4c2f49863abbfe7f1","4":"27416beeac7dd90b6c9f","5":"fbfbcf45610d060d921e","6":"73fc0264b5cc06f5bd55","7":"140acb8c38018bb7c822","8":"e835283042c657d72cfa","9":"e38040143ab4cb3b9fef","10":"e217ea28c7893da97d0e","11":"ef2595fcf3dd3fef8e64","12":"b96242d4ce01132cb92f","13":"3dcdef58d7cfcb427534","14":"f9a657f13956ab04d9f5","15":"6eeef8da00ef7dc93e05","16":"8a379b56eb36d181e9f4","17":"4acf5c704242d5b434e3","18":"a4d35f7f4ddaf31838f9","19":"4c910b7e5f24c14a47d6","20":"1ac55132a0e763c8a929","21":"b3fd152189bf57725034","22":"0c4b75b30658fdebebae","23":"9b8077a4e79e7701098a","24":"c5a95d9ed56549caacb2","25":"d9d2027a11ecbc558b64","26":"8212b5fc5fbcd654f57e","27":"03b296d674cf510f2802","28":"ea3017360011ab2e319d","29":"8f82331a7dcdfe7df5ae","30":"6ceb83a04ab07de58130","31":"c673fa515ca0cbb5f023","32":"299f56beafa07c3da8e7","33":"7052607a90bab1dab893","34":"fdfd02ddd707c1495b23","35":"d9e6bb79584e50e16702","36":"55e0a7e2d3ea918d162f","37":"cbb34ce64f8c91bfa86b","38":"09ad5dfae90c1f91f2c7","39":"4ea98fb105d4cf4b8916","40":"14b0b6d58e1ca940c22f","41":"6d82271a9b23a2787fc8","42":"fa3ac6dd9e5384468617","43":"d341cbb69c87bda6f394","44":"885a09c2df87f03455ee","45":"dfa44e4b18da0ec74e04","46":"2b2c1dcac830350de72a","47":"2a2aaa87648daa92e4dc","48":"4cb469bc5454b000cbc7","49":"5f6e24c654d05522e313","50":"41e3af00aadda2036038","51":"21a5ad16c9318416587d","52":"60dd1ddfb97b994a1018","53":"ad3dfac514f00d194887","54":"24e588ab18461e348783","55":"d8aec6ee1a5781b6af87","56":"99dee147a9adbb340507","57":"6edfa2c75fb31a1195b8","58":"fcc08fc7e48e734ab2a7","59":"b736d0ac4880f045f12a","60":"7cc85b6cb3f60be021b4","61":"b39bcd32e03c012a816f","62":"d61b419c5b861c001670","63":"37ac4d3b25619e38fd90","64":"4f44b9f12add6be38b47","65":"a9de2950510b1bbb3ea1","66":"ee681a4a50dba9230df9","67":"6b787068fde1e6464596","68":"9caad723841dddfa13ae","69":"7f006e10ce6a9ea40908","70":"5c262f47c883d5c74a8d","71":"87e8edd3eba0a29944d5","72":"e88d92ed4b2efbbf1e86","73":"3174bd6a722bab7cc6e6","74":"fb29103b00712180c4b7","75":"a05d60b1e784176f99bd","76":"6c85122b7fd55535796f","77":"ac563e59d325c5b4bdbc","78":"d61ce291b6fabaeafe0b","79":"069176fd73397f72a5c2","80":"5a8b8d6dfd61aeae151d"}[chunkId] + ""
|
||||
/******/ return __webpack_require__.p + "js/" + ({}[chunkId]||chunkId) + ".js?id=" + {"0":"73f3008f1b3680de4be5","1":"036bc93ad1cffe03c96e","2":"d2a49802291d427ca7c8","3":"a0f4c2f49863abbfe7f1","4":"27416beeac7dd90b6c9f","5":"fbfbcf45610d060d921e","6":"73fc0264b5cc06f5bd55","7":"140acb8c38018bb7c822","8":"e835283042c657d72cfa","9":"e38040143ab4cb3b9fef","10":"e217ea28c7893da97d0e","11":"ef2595fcf3dd3fef8e64","12":"b96242d4ce01132cb92f","13":"cab89b14cd45c289a9fc","14":"11d29fcbe86173ca56f9","15":"6eeef8da00ef7dc93e05","16":"8a379b56eb36d181e9f4","17":"4acf5c704242d5b434e3","18":"8d97cc8de8beda80e71b","19":"4c910b7e5f24c14a47d6","20":"e875424c3f416ebb5868","21":"ffeb542246f96fb44e86","22":"0c4b75b30658fdebebae","23":"9b8077a4e79e7701098a","24":"c5a95d9ed56549caacb2","25":"d9d2027a11ecbc558b64","26":"8212b5fc5fbcd654f57e","27":"03b296d674cf510f2802","28":"ea3017360011ab2e319d","29":"8f82331a7dcdfe7df5ae","30":"6ceb83a04ab07de58130","31":"b1bf2875f660b6a7bfb2","32":"299f56beafa07c3da8e7","33":"7052607a90bab1dab893","34":"fdfd02ddd707c1495b23","35":"d9e6bb79584e50e16702","36":"55e0a7e2d3ea918d162f","37":"cbb34ce64f8c91bfa86b","38":"09ad5dfae90c1f91f2c7","39":"4ea98fb105d4cf4b8916","40":"2cc9e6308f173afc956e","41":"6d82271a9b23a2787fc8","42":"fa3ac6dd9e5384468617","43":"d341cbb69c87bda6f394","44":"885a09c2df87f03455ee","45":"dfa44e4b18da0ec74e04","46":"2b2c1dcac830350de72a","47":"2a2aaa87648daa92e4dc","48":"4cb469bc5454b000cbc7","49":"5f6e24c654d05522e313","50":"41e3af00aadda2036038","51":"21a5ad16c9318416587d","52":"60dd1ddfb97b994a1018","53":"ad3dfac514f00d194887","54":"24e588ab18461e348783","55":"d8aec6ee1a5781b6af87","56":"99dee147a9adbb340507","57":"6edfa2c75fb31a1195b8","58":"fcc08fc7e48e734ab2a7","59":"b736d0ac4880f045f12a","60":"7cc85b6cb3f60be021b4","61":"b39bcd32e03c012a816f","62":"d61b419c5b861c001670","63":"37ac4d3b25619e38fd90","64":"4f44b9f12add6be38b47","65":"a9de2950510b1bbb3ea1","66":"ee681a4a50dba9230df9","67":"6b787068fde1e6464596","68":"9caad723841dddfa13ae","69":"7f006e10ce6a9ea40908","70":"5c262f47c883d5c74a8d","71":"87e8edd3eba0a29944d5","72":"e88d92ed4b2efbbf1e86","73":"3174bd6a722bab7cc6e6","74":"fb29103b00712180c4b7","75":"a05d60b1e784176f99bd","76":"6c85122b7fd55535796f","77":"ac563e59d325c5b4bdbc","78":"d61ce291b6fabaeafe0b","79":"069176fd73397f72a5c2","80":"5a8b8d6dfd61aeae151d"}[chunkId] + ""
|
||||
/******/ }
|
||||
/******/
|
||||
/******/ // The require function
|
||||
|
||||
@@ -22,7 +22,11 @@
|
||||
<form class="space-y-4" @submit.prevent="submit">
|
||||
<FormInput :label="__('Title')" :errors="$page.props.errors.title"
|
||||
v-model="form.title"/>
|
||||
<FormTextarea rows="10" :label="__('Content')" :errors="$page.props.errors.content" v-model="form.content" />
|
||||
<FormSelect :label="__('Category')" :errors="$page.props.errors.category_id" v-model="form.category_id">
|
||||
<option v-for="(title, id) in categories" :value="id" v-text="title"></option>
|
||||
</FormSelect>
|
||||
<FormTextarea rows="10" :label="__('Content')"
|
||||
:errors="$page.props.errors.content" v-model="form.content"/>
|
||||
|
||||
<FormActions>
|
||||
<Button>{{ __('Save changes') }}</Button>
|
||||
@@ -55,6 +59,7 @@ import MainLayout from '@/Layouts/MainLayout'
|
||||
import SettingsLayout from '@/components/layouts/SettingsLayout'
|
||||
import SettingsSegment from '@/components/SettingsSegment'
|
||||
import FormInput from '@/components/forms/FormInput'
|
||||
import FormSelect from '@/components/forms/FormSelect'
|
||||
import FormTextarea from '@/components/forms/FormTextarea'
|
||||
import Form from '@/components/Form'
|
||||
import FormActions from '@/components/FormActions'
|
||||
@@ -89,6 +94,11 @@ export default {
|
||||
Form,
|
||||
FormActions,
|
||||
Tabs,
|
||||
FormSelect,
|
||||
},
|
||||
|
||||
props: {
|
||||
categories: Object
|
||||
},
|
||||
|
||||
data() {
|
||||
@@ -98,6 +108,7 @@ export default {
|
||||
form: {
|
||||
title: null,
|
||||
description: null,
|
||||
category_id: null,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
@@ -22,6 +22,9 @@
|
||||
<form class="space-y-4" @submit.prevent="submit">
|
||||
<FormInput :label="__('Title')" :errors="$page.props.errors.title"
|
||||
v-model="form.title"/>
|
||||
<FormSelect :label="__('Category')" :errors="$page.props.errors.category_id" v-model="form.category_id">
|
||||
<option v-for="(title, id) in categories" :value="id" v-text="title"></option>
|
||||
</FormSelect>
|
||||
<FormTextarea rows="10" :label="__('Content')" :errors="$page.props.errors.content"
|
||||
v-model="form.content"/>
|
||||
|
||||
@@ -56,6 +59,7 @@ import MainLayout from '@/Layouts/MainLayout'
|
||||
import SettingsLayout from '@/components/layouts/SettingsLayout'
|
||||
import SettingsSegment from '@/components/SettingsSegment'
|
||||
import FormInput from '@/components/forms/FormInput'
|
||||
import FormSelect from '@/components/forms/FormSelect'
|
||||
import FormTextarea from '@/components/forms/FormTextarea'
|
||||
import Form from '@/components/Form'
|
||||
import FormActions from '@/components/FormActions'
|
||||
@@ -88,12 +92,14 @@ export default {
|
||||
SettingsLayout,
|
||||
SettingsSegment,
|
||||
Form,
|
||||
FormSelect,
|
||||
FormActions,
|
||||
Tabs,
|
||||
},
|
||||
|
||||
props: {
|
||||
article: Object
|
||||
article: Object,
|
||||
categories: Object,
|
||||
},
|
||||
|
||||
data() {
|
||||
@@ -103,6 +109,7 @@ export default {
|
||||
form: {
|
||||
title: this.article.title,
|
||||
content: this.article.content,
|
||||
category_id: this.article.documentation_category_id,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
<TableHeader>{{ __('Title') }}</TableHeader>
|
||||
<TableHeader>{{ __('Category') }}</TableHeader>
|
||||
<TableHeader></TableHeader>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
@@ -31,6 +32,7 @@
|
||||
<TableData>
|
||||
{{ article.title }}
|
||||
</TableData>
|
||||
<TableData>{{ article.category.title }}</TableData>
|
||||
<TableData>
|
||||
<inertia-link :href="route('admin.documentation.articles.edit', article.id)"
|
||||
class="text-primary font-medium">
|
||||
|
||||
@@ -206,7 +206,7 @@ export default {
|
||||
|
||||
props: {
|
||||
package: Object,
|
||||
providers: Object,
|
||||
providers: [Array, Object],
|
||||
syncedProviders: Array,
|
||||
},
|
||||
|
||||
|
||||
@@ -37,6 +37,14 @@
|
||||
<option v-for="language in languages" :value="language" v-text="language"></option>
|
||||
</FormSelect>
|
||||
<FormTextarea :label="__('Blocked')" :errors="$page.props.errors.blocked" rows="2" v-model="form.blocked" />
|
||||
<div>
|
||||
<input id="isolate_per_site_per_user" class="form-checkbox" type="checkbox"
|
||||
v-model="form.requires_password_for_ftp">
|
||||
<label for="isolate_per_site_per_user" class="ml-2 text-sm">{{ __('Require password to show FTP password') }}</label>
|
||||
<p class="text-small mt-1 text-medium-emphasis">
|
||||
{{ __('Disabling this will allow this user to get the FTP password right away.') }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<FormActions>
|
||||
<Button>{{ __('Save changes') }}</Button>
|
||||
@@ -126,6 +134,7 @@
|
||||
notes: null,
|
||||
language: 'en',
|
||||
blocked: null,
|
||||
requires_password_for_ftp: null,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
@@ -36,6 +36,15 @@
|
||||
</FormSelect>
|
||||
<FormTextarea :label="__('Blocked')" :errors="$page.props.errors.blocked" rows="2" v-model="form.blocked" />
|
||||
|
||||
<div>
|
||||
<input id="isolate_per_site_per_user" class="form-checkbox" type="checkbox"
|
||||
v-model="form.requires_password_for_ftp">
|
||||
<label for="isolate_per_site_per_user" class="ml-2 text-sm">{{ __('Require password to show FTP password') }}</label>
|
||||
<p class="text-small mt-1 text-medium-emphasis">
|
||||
{{ __('Disabling this will allow this user to get the FTP password right away.') }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<FormActions>
|
||||
<Button>{{ __('Save changes') }}</Button>
|
||||
<Button variant="danger" type="button" @click="confirmDelete">{{ __('Delete') }}</Button>
|
||||
@@ -119,6 +128,7 @@
|
||||
notes: this.user.notes,
|
||||
language: this.user.language,
|
||||
blocked: this.user.blocked,
|
||||
requires_password_for_ftp: this.user.requires_password_for_ftp,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
@@ -50,20 +50,21 @@
|
||||
<TableRow>
|
||||
<TableHeader>{{ __('FTP host') }}</TableHeader>
|
||||
<TableData :border="false">
|
||||
<copy :label="`${ip_address}`" :value="ip_address" />
|
||||
<copy :label="`${ip_address}`" :value="ip_address"/>
|
||||
</TableData>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TableHeader>{{ __('FTP user') }}</TableHeader>
|
||||
<TableData :border="false">
|
||||
<copy :label="`${system_user.user_name}`" :value="system_user.user_name" />
|
||||
<copy :label="`${system_user.user_name}`"
|
||||
:value="system_user.user_name"/>
|
||||
</TableData>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TableHeader>{{ __('FTP password') }}</TableHeader>
|
||||
<TableData :border="false">
|
||||
<div v-if="ftp_password" v-text="ftp_password">
|
||||
<copy :label="`${ftp_password}`" :value="ftp_password" />
|
||||
<copy :label="`${ftp_password}`" :value="ftp_password"/>
|
||||
</div>
|
||||
|
||||
<Button variant="secondary" @click="confirmRequestFtpPassword"
|
||||
@@ -101,7 +102,8 @@
|
||||
</div>
|
||||
<div class="grid grid-cols-2 gap-4">
|
||||
<div class="col-span-2 md:col-span-1">
|
||||
<FormInput label="A" :errors="$page.props.errors.domain" :value="`www`"/>
|
||||
<FormInput label="A" :errors="$page.props.errors.domain"
|
||||
:value="`www`"/>
|
||||
</div>
|
||||
<div class="col-span-2 md:col-span-1">
|
||||
<FormInput label="IP" allow-copy :errors="$page.props.errors.domain"
|
||||
@@ -120,149 +122,151 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import TopBar from './components/TopBar'
|
||||
import Container from '@/components/Container'
|
||||
import Content from '@/components/Content'
|
||||
import Page from '@/components/Page'
|
||||
import PageHeader from '@/components/PageHeader'
|
||||
import PageHeaderTitle from '@/components/PageHeaderTitle'
|
||||
import PageBody from '@/components/PageBody'
|
||||
import Button from '@/components/Button'
|
||||
import List from '@/components/List'
|
||||
import ListItem from '@/components/ListItem'
|
||||
import StatusBubble from '@/components/StatusBubble'
|
||||
import NotificationBadge from '@/components/NotificationBadge'
|
||||
import MainLayout from '@/Layouts/MainLayout'
|
||||
import SettingsLayout from '@/components/layouts/SettingsLayout'
|
||||
import SettingsSegment from '@/components/SettingsSegment'
|
||||
import FormInput from '@/components/forms/FormInput'
|
||||
import Form from '@/components/Form'
|
||||
import FormActions from '@/components/FormActions'
|
||||
import {useNotification} from '@/hooks/notification'
|
||||
import Tabs from './Tabs'
|
||||
import Table from '@/components/Table'
|
||||
import TableHead from '@/components/TableHead'
|
||||
import TableHeader from '@/components/TableHeader'
|
||||
import TableRow from '@/components/TableRow'
|
||||
import TableBody from '@/components/TableBody'
|
||||
import TableData from '@/components/TableData'
|
||||
import Modal from '@/components/Modal'
|
||||
import ModalContainer from '@/components/ModalContainer'
|
||||
import Copy from '@/components/Copy'
|
||||
import TopBar from './components/TopBar'
|
||||
import Container from '@/components/Container'
|
||||
import Content from '@/components/Content'
|
||||
import Page from '@/components/Page'
|
||||
import PageHeader from '@/components/PageHeader'
|
||||
import PageHeaderTitle from '@/components/PageHeaderTitle'
|
||||
import PageBody from '@/components/PageBody'
|
||||
import Button from '@/components/Button'
|
||||
import List from '@/components/List'
|
||||
import ListItem from '@/components/ListItem'
|
||||
import StatusBubble from '@/components/StatusBubble'
|
||||
import NotificationBadge from '@/components/NotificationBadge'
|
||||
import MainLayout from '@/Layouts/MainLayout'
|
||||
import SettingsLayout from '@/components/layouts/SettingsLayout'
|
||||
import SettingsSegment from '@/components/SettingsSegment'
|
||||
import FormInput from '@/components/forms/FormInput'
|
||||
import Form from '@/components/Form'
|
||||
import FormActions from '@/components/FormActions'
|
||||
import {useNotification} from '@/hooks/notification'
|
||||
import Tabs from './Tabs'
|
||||
import Table from '@/components/Table'
|
||||
import TableHead from '@/components/TableHead'
|
||||
import TableHeader from '@/components/TableHeader'
|
||||
import TableRow from '@/components/TableRow'
|
||||
import TableBody from '@/components/TableBody'
|
||||
import TableData from '@/components/TableData'
|
||||
import Modal from '@/components/Modal'
|
||||
import ModalContainer from '@/components/ModalContainer'
|
||||
import Copy from '@/components/Copy'
|
||||
|
||||
export default {
|
||||
metaInfo() {
|
||||
return {
|
||||
title: this.site.domain,
|
||||
}
|
||||
},
|
||||
export default {
|
||||
metaInfo() {
|
||||
return {
|
||||
title: this.site.domain,
|
||||
}
|
||||
},
|
||||
|
||||
layout: MainLayout,
|
||||
layout: MainLayout,
|
||||
|
||||
components: {
|
||||
TopBar,
|
||||
Container,
|
||||
Content,
|
||||
Page,
|
||||
PageHeader,
|
||||
PageHeaderTitle,
|
||||
PageBody,
|
||||
Button,
|
||||
List,
|
||||
ListItem,
|
||||
StatusBubble,
|
||||
NotificationBadge,
|
||||
FormInput,
|
||||
SettingsLayout,
|
||||
SettingsSegment,
|
||||
Form,
|
||||
FormActions,
|
||||
Tabs,
|
||||
Table,
|
||||
TableHead,
|
||||
TableHeader,
|
||||
TableRow,
|
||||
TableBody,
|
||||
TableData,
|
||||
Modal,
|
||||
ModalContainer,
|
||||
Copy
|
||||
},
|
||||
components: {
|
||||
TopBar,
|
||||
Container,
|
||||
Content,
|
||||
Page,
|
||||
PageHeader,
|
||||
PageHeaderTitle,
|
||||
PageBody,
|
||||
Button,
|
||||
List,
|
||||
ListItem,
|
||||
StatusBubble,
|
||||
NotificationBadge,
|
||||
FormInput,
|
||||
SettingsLayout,
|
||||
SettingsSegment,
|
||||
Form,
|
||||
FormActions,
|
||||
Tabs,
|
||||
Table,
|
||||
TableHead,
|
||||
TableHeader,
|
||||
TableRow,
|
||||
TableBody,
|
||||
TableData,
|
||||
Modal,
|
||||
ModalContainer,
|
||||
Copy
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
sending: false,
|
||||
data() {
|
||||
return {
|
||||
sending: false,
|
||||
|
||||
modalIsOpen: false,
|
||||
modalIsOpen: false,
|
||||
|
||||
ftp_password: null,
|
||||
ftp_password: null,
|
||||
|
||||
form : {
|
||||
password : null
|
||||
form: {
|
||||
password: null
|
||||
},
|
||||
|
||||
breadcrumbs: [
|
||||
{
|
||||
title: this.$page.props.settings.name,
|
||||
to: '/',
|
||||
},
|
||||
{
|
||||
title: this.__('Sites'),
|
||||
to: this.route('sites.index'),
|
||||
},
|
||||
{
|
||||
title: this.site.domain,
|
||||
to: this.route('sites.show', this.site.id),
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
|
||||
breadcrumbs: [
|
||||
{
|
||||
title: this.$page.props.settings.name,
|
||||
to: '/',
|
||||
},
|
||||
{
|
||||
title: this.__('Sites'),
|
||||
to: this.route('sites.index'),
|
||||
},
|
||||
{
|
||||
title: this.site.domain,
|
||||
to: this.route('sites.show', this.site.id),
|
||||
},
|
||||
],
|
||||
props: {
|
||||
site: Object,
|
||||
ip_address: String,
|
||||
system_user: Object,
|
||||
},
|
||||
|
||||
methods: {
|
||||
useNotification,
|
||||
|
||||
confirmRequestFtpPassword() {
|
||||
if (!this.$page.props.auth.user.requires_password_for_ftp) {
|
||||
this.requestFtpPassword();
|
||||
} else {
|
||||
this.modalIsOpen = true;
|
||||
}
|
||||
},
|
||||
|
||||
props: {
|
||||
site: Object,
|
||||
ip_address: String,
|
||||
system_user: Object,
|
||||
closeModal() {
|
||||
this.form.password = null;
|
||||
this.modalIsOpen = false;
|
||||
this.$page.props.errors = [];
|
||||
},
|
||||
|
||||
methods: {
|
||||
useNotification,
|
||||
requestFtpPassword() {
|
||||
this.$page.props.errors = [];
|
||||
|
||||
confirmRequestFtpPassword() {
|
||||
this.modalIsOpen = true;
|
||||
window.axios.post(this.route('sites.request-ftp-password', this.site.id).url(), this.form)
|
||||
.then(response => {
|
||||
if (!response.data.ftp_password) {
|
||||
this.useNotification({
|
||||
variant: 'danger',
|
||||
title: this.__('FTP password'),
|
||||
message: this.__('Unable to retrieve FTP password'),
|
||||
})
|
||||
|
||||
return;
|
||||
},
|
||||
return;
|
||||
}
|
||||
|
||||
closeModal() {
|
||||
this.form.password = null;
|
||||
this.modalIsOpen = false;
|
||||
this.$page.props.errors = [];
|
||||
},
|
||||
this.form.password = null;
|
||||
this.modalIsOpen = false;
|
||||
|
||||
requestFtpPassword() {
|
||||
this.$page.props.errors = [];
|
||||
|
||||
window.axios.post(this.route('sites.request-ftp-password', this.site.id).url(), this.form)
|
||||
.then(response => {
|
||||
if (!response.data.ftp_password) {
|
||||
this.useNotification({
|
||||
variant: 'danger',
|
||||
title: this.__('FTP password'),
|
||||
message: this.__('Unable to retrieve FTP password'),
|
||||
})
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
this.form.password = null;
|
||||
this.modalIsOpen = false;
|
||||
|
||||
this.ftp_password = response.data.ftp_password;
|
||||
})
|
||||
this.ftp_password = response.data.ftp_password;
|
||||
})
|
||||
.catch(errors => {
|
||||
this.$page.props.errors = errors.response.data.errors;
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -14,10 +14,6 @@ echo "Updating database.."
|
||||
|
||||
php artisan migrate --force
|
||||
|
||||
echo "Restarting workers.."
|
||||
|
||||
php artisan horizon:terminate
|
||||
|
||||
echo "Clearing cache.."
|
||||
|
||||
php artisan cache:clear
|
||||
@@ -26,4 +22,8 @@ echo "Refreshing routes.."
|
||||
|
||||
php artisan route:cache
|
||||
|
||||
echo "Restarting workers.."
|
||||
|
||||
php artisan horizon:terminate
|
||||
|
||||
echo "All done!"
|
||||
|
||||
Reference in New Issue
Block a user