mirror of
https://github.com/Einundzwanzig-Podcast/einundzwanzig-portal.git
synced 2025-12-11 06:46:47 +00:00
Nova getting started added
This commit is contained in:
@@ -9,6 +9,8 @@ use Laravel\Nova\Fields\BelongsToMany;
|
||||
|
||||
class Category extends Resource
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* The model the resource corresponds to.
|
||||
*
|
||||
@@ -32,6 +34,11 @@ class Category extends Resource
|
||||
'id',
|
||||
];
|
||||
|
||||
public static function label()
|
||||
{
|
||||
return __('Categories');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the fields displayed by the resource.
|
||||
*
|
||||
|
||||
@@ -2,46 +2,48 @@
|
||||
|
||||
namespace App\Nova;
|
||||
|
||||
use Laravel\Nova\Fields\ID;
|
||||
use Illuminate\Http\Request;
|
||||
use Laravel\Nova\Fields\Text;
|
||||
use Laravel\Nova\Fields\BelongsTo;
|
||||
use Laravel\Nova\Fields\ID;
|
||||
use Laravel\Nova\Fields\Text;
|
||||
|
||||
class City extends Resource
|
||||
{
|
||||
/**
|
||||
* The model the resource corresponds to.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public static $model = \App\Models\City::class;
|
||||
|
||||
/**
|
||||
* The single value that should be used to represent the resource when being displayed.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public static $title = 'id';
|
||||
|
||||
/**
|
||||
* The columns that should be searched.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static $search = [
|
||||
'id',
|
||||
];
|
||||
|
||||
public static function label()
|
||||
{
|
||||
return __('Cities');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the fields displayed by the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function fields(Request $request)
|
||||
{
|
||||
return [
|
||||
ID::make()->sortable(),
|
||||
ID::make()
|
||||
->sortable(),
|
||||
|
||||
Text::make('Name')
|
||||
->rules('required', 'string'),
|
||||
@@ -56,6 +58,7 @@ class City extends Resource
|
||||
* Get the cards available for the request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function cards(Request $request)
|
||||
@@ -67,6 +70,7 @@ class City extends Resource
|
||||
* Get the filters available for the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function filters(Request $request)
|
||||
@@ -78,6 +82,7 @@ class City extends Resource
|
||||
* Get the lenses available for the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function lenses(Request $request)
|
||||
@@ -89,6 +94,7 @@ class City extends Resource
|
||||
* Get the actions available for the resource.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function actions(Request $request)
|
||||
|
||||
@@ -9,6 +9,8 @@ use Laravel\Nova\Fields\HasMany;
|
||||
|
||||
class Country extends Resource
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* The model the resource corresponds to.
|
||||
*
|
||||
@@ -32,6 +34,11 @@ class Country extends Resource
|
||||
'id',
|
||||
];
|
||||
|
||||
public static function label()
|
||||
{
|
||||
return __('Countries');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the fields displayed by the resource.
|
||||
*
|
||||
|
||||
@@ -10,6 +10,8 @@ use Laravel\Nova\Fields\BelongsToMany;
|
||||
|
||||
class Course extends Resource
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* The model the resource corresponds to.
|
||||
*
|
||||
@@ -33,6 +35,11 @@ class Course extends Resource
|
||||
'id',
|
||||
];
|
||||
|
||||
public static function label()
|
||||
{
|
||||
return __('Courses');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the fields displayed by the resource.
|
||||
*
|
||||
|
||||
@@ -2,20 +2,24 @@
|
||||
|
||||
namespace App\Nova\Dashboards;
|
||||
|
||||
use Laravel\Nova\Cards\Help;
|
||||
use Laravel\Nova\Dashboards\Main as Dashboard;
|
||||
use Nova\Start\Start;
|
||||
|
||||
class Main extends Dashboard
|
||||
{
|
||||
public function name()
|
||||
{
|
||||
return 'Getting Started';
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the cards for the dashboard.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function cards()
|
||||
{
|
||||
return [
|
||||
new Help,
|
||||
new Start,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,8 @@ use Laravel\Nova\Fields\BelongsTo;
|
||||
|
||||
class Event extends Resource
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* The model the resource corresponds to.
|
||||
*
|
||||
@@ -32,6 +34,11 @@ class Event extends Resource
|
||||
'id',
|
||||
];
|
||||
|
||||
public static function label()
|
||||
{
|
||||
return __('Events');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the fields displayed by the resource.
|
||||
*
|
||||
|
||||
@@ -10,6 +10,8 @@ use Laravel\Nova\Fields\BelongsTo;
|
||||
|
||||
class Lecturer extends Resource
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* The model the resource corresponds to.
|
||||
*
|
||||
@@ -33,6 +35,11 @@ class Lecturer extends Resource
|
||||
'id',
|
||||
];
|
||||
|
||||
public static function label()
|
||||
{
|
||||
return __('Lecturers');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the fields displayed by the resource.
|
||||
*
|
||||
|
||||
@@ -8,6 +8,8 @@ use Laravel\Nova\Fields\Text;
|
||||
|
||||
class Participant extends Resource
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* The model the resource corresponds to.
|
||||
*
|
||||
@@ -31,6 +33,11 @@ class Participant extends Resource
|
||||
'id',
|
||||
];
|
||||
|
||||
public static function label()
|
||||
{
|
||||
return __('Participants');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the fields displayed by the resource.
|
||||
*
|
||||
|
||||
@@ -9,6 +9,8 @@ use Laravel\Nova\Fields\BelongsTo;
|
||||
|
||||
class Registration extends Resource
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* The model the resource corresponds to.
|
||||
*
|
||||
@@ -32,6 +34,11 @@ class Registration extends Resource
|
||||
'id',
|
||||
];
|
||||
|
||||
public static function label()
|
||||
{
|
||||
return __('Registrations');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the fields displayed by the resource.
|
||||
*
|
||||
|
||||
@@ -8,6 +8,8 @@ use Laravel\Nova\Http\Requests\NovaRequest;
|
||||
|
||||
class Team extends Resource
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* The model the resource corresponds to.
|
||||
* @var class-string<\App\Models\Team>
|
||||
|
||||
@@ -12,6 +12,8 @@ use Laravel\Nova\Http\Requests\NovaRequest;
|
||||
|
||||
class User extends Resource
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* The model the resource corresponds to.
|
||||
* @var class-string<\App\Models\User>
|
||||
@@ -32,6 +34,11 @@ class User extends Resource
|
||||
'id', 'name', 'email',
|
||||
];
|
||||
|
||||
public static function label()
|
||||
{
|
||||
return __('Users');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the fields displayed by the resource.
|
||||
*
|
||||
|
||||
@@ -9,6 +9,8 @@ use Laravel\Nova\Fields\BelongsTo;
|
||||
|
||||
class Venue extends Resource
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* The model the resource corresponds to.
|
||||
*
|
||||
@@ -32,6 +34,11 @@ class Venue extends Resource
|
||||
'id',
|
||||
];
|
||||
|
||||
public static function label()
|
||||
{
|
||||
return __('Venues');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the fields displayed by the resource.
|
||||
*
|
||||
|
||||
@@ -2,8 +2,23 @@
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use App\Nova\Category;
|
||||
use App\Nova\City;
|
||||
use App\Nova\Country;
|
||||
use App\Nova\Course;
|
||||
use App\Nova\Dashboards\Main;
|
||||
use App\Nova\Event;
|
||||
use App\Nova\Lecturer;
|
||||
use App\Nova\Participant;
|
||||
use App\Nova\Registration;
|
||||
use App\Nova\Team;
|
||||
use App\Nova\User;
|
||||
use App\Nova\Venue;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
use Itsmejoshua\Novaspatiepermissions\Novaspatiepermissions;
|
||||
use Laravel\Nova\Menu\MenuItem;
|
||||
use Laravel\Nova\Menu\MenuSection;
|
||||
use Laravel\Nova\Nova;
|
||||
use Laravel\Nova\NovaApplicationServiceProvider;
|
||||
|
||||
@@ -17,6 +32,34 @@ class NovaServiceProvider extends NovaApplicationServiceProvider
|
||||
{
|
||||
parent::boot();
|
||||
|
||||
Nova::mainMenu(function (Request $request) {
|
||||
return [
|
||||
MenuSection::dashboard(Main::class)
|
||||
->icon('lightning-bolt'),
|
||||
|
||||
MenuSection::make('Schule', [
|
||||
MenuItem::resource(City::class),
|
||||
MenuItem::resource(Lecturer::class),
|
||||
MenuItem::resource(Venue::class),
|
||||
MenuItem::resource(Course::class),
|
||||
MenuItem::resource(Event::class),
|
||||
MenuItem::resource(Participant::class),
|
||||
MenuItem::resource(Registration::class),
|
||||
])
|
||||
->icon('academic-cap')
|
||||
->collapsable(),
|
||||
|
||||
MenuSection::make('Admin', [
|
||||
MenuItem::resource(Category::class),
|
||||
MenuItem::resource(Country::class),
|
||||
MenuItem::resource(Team::class),
|
||||
MenuItem::resource(User::class),
|
||||
])
|
||||
->icon('key')
|
||||
->collapsable(),
|
||||
];
|
||||
});
|
||||
|
||||
Nova::withBreadcrumbs();
|
||||
|
||||
// disable theme switcher
|
||||
|
||||
@@ -21,7 +21,8 @@
|
||||
"spatie/laravel-google-fonts": "^1.2",
|
||||
"spatie/laravel-sluggable": "^3.4",
|
||||
"stijnvanouplines/blade-country-flags": "^1.0",
|
||||
"wireui/wireui": "^1.17"
|
||||
"wireui/wireui": "^1.17",
|
||||
"nova/start": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"fakerphp/faker": "^1.9.1",
|
||||
@@ -92,6 +93,10 @@
|
||||
{
|
||||
"type": "composer",
|
||||
"url": "https://nova.laravel.com"
|
||||
},
|
||||
{
|
||||
"type": "path",
|
||||
"url": "./nova-components/Start"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
38
composer.lock
generated
38
composer.lock
generated
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "dafb57f82691675a5d03595d824baa57",
|
||||
"content-hash": "fe688c8ea9a0c69b1cff7d3876e83e4f",
|
||||
"packages": [
|
||||
{
|
||||
"name": "bacon/bacon-qr-code",
|
||||
@@ -3284,6 +3284,42 @@
|
||||
},
|
||||
"time": "2022-11-12T15:38:23+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nova/start",
|
||||
"version": "dev-blueprint",
|
||||
"dist": {
|
||||
"type": "path",
|
||||
"url": "./nova-components/Start",
|
||||
"reference": "fbea082cebeff60ba53b11985fbb6ed65ab46008"
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.3|^8.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Nova\\Start\\CardServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Nova\\Start\\": "src/"
|
||||
}
|
||||
},
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "A Laravel Nova card.",
|
||||
"keywords": [
|
||||
"laravel",
|
||||
"nova"
|
||||
],
|
||||
"transport-options": {
|
||||
"relative": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nunomaduro/termwind",
|
||||
"version": "v1.14.2",
|
||||
|
||||
10
lang/de.json
10
lang/de.json
@@ -1,4 +1,14 @@
|
||||
{
|
||||
"Lecturers": "Dozenten",
|
||||
"Cities": "Städte",
|
||||
"Venues": "Veranstaltungs-Orte",
|
||||
"Courses": "Kurse",
|
||||
"Events": "Termine",
|
||||
"Participants": "Teilnehmer",
|
||||
"Registrations": "Registrierungen",
|
||||
"Categories": "Kategorien",
|
||||
"Countries": "Länder",
|
||||
"Users": "Benutzer",
|
||||
"I want to submit new courses on this platform": "Ich bin Dozent und möchte neue Kurse auf dieser Plattform einstellen",
|
||||
"(and :count more error)": "(und :count weiterer Fehler)",
|
||||
"(and :count more errors)": "(und :count weitere Fehler)",
|
||||
|
||||
10
nova-components/Start/.gitignore
vendored
Normal file
10
nova-components/Start/.gitignore
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
/.idea
|
||||
/vendor
|
||||
/node_modules
|
||||
package-lock.json
|
||||
composer.phar
|
||||
composer.lock
|
||||
phpunit.xml
|
||||
.phpunit.result.cache
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
1
nova-components/Start/.npmrc
Normal file
1
nova-components/Start/.npmrc
Normal file
@@ -0,0 +1 @@
|
||||
progress=false
|
||||
29
nova-components/Start/composer.json
Normal file
29
nova-components/Start/composer.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "nova/start",
|
||||
"description": "A Laravel Nova card.",
|
||||
"keywords": [
|
||||
"laravel",
|
||||
"nova"
|
||||
],
|
||||
"license": "MIT",
|
||||
"require": {
|
||||
"php": "^7.3|^8.0"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Nova\\Start\\": "src/"
|
||||
}
|
||||
},
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Nova\\Start\\CardServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"config": {
|
||||
"sort-packages": true
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
}
|
||||
2
nova-components/Start/dist/css/card.css
vendored
Normal file
2
nova-components/Start/dist/css/card.css
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
/* Nova Card CSS */
|
||||
|
||||
522
nova-components/Start/dist/js/card.js
vendored
Normal file
522
nova-components/Start/dist/js/card.js
vendored
Normal file
@@ -0,0 +1,522 @@
|
||||
/******/ (() => { // webpackBootstrap
|
||||
/******/ "use strict";
|
||||
/******/ var __webpack_modules__ = ({
|
||||
|
||||
/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/Card.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/components/Card.vue?vue&type=script&lang=js ***!
|
||||
\**********************************************************************************************************************************************************************************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
||||
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
||||
/* harmony export */ });
|
||||
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
|
||||
name: 'Help',
|
||||
props: {
|
||||
card: Object
|
||||
},
|
||||
methods: {
|
||||
link: function link(path) {
|
||||
return "https://nova.laravel.com/docs/".concat(this.version, "/").concat(path);
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
resources: function resources() {
|
||||
return this.link('resources');
|
||||
},
|
||||
actions: function actions() {
|
||||
return this.link('actions/defining-actions.html');
|
||||
},
|
||||
filters: function filters() {
|
||||
return this.link('filters/defining-filters.html');
|
||||
},
|
||||
lenses: function lenses() {
|
||||
return this.link('lenses/defining-lenses.html');
|
||||
},
|
||||
metrics: function metrics() {
|
||||
return this.link('metrics/defining-metrics.html');
|
||||
},
|
||||
cards: function cards() {
|
||||
return this.link('customization/cards.html');
|
||||
},
|
||||
version: function version() {
|
||||
var parts = Nova.config('version').split('.');
|
||||
parts.splice(-2);
|
||||
return "".concat(parts, ".0");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./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/components/Card.vue?vue&type=template&id=b9bc2c0a":
|
||||
/*!**************************************************************************************************************************************************************************************************************************************************************************!*\
|
||||
!*** ./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/components/Card.vue?vue&type=template&id=b9bc2c0a ***!
|
||||
\**************************************************************************************************************************************************************************************************************************************************************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
__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 */ "vue");
|
||||
/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
|
||||
|
||||
var _hoisted_1 = {
|
||||
"class": "flex justify-center items-center"
|
||||
};
|
||||
var _hoisted_2 = {
|
||||
"class": "w-full"
|
||||
};
|
||||
var _hoisted_3 = {
|
||||
"class": "leading-tight mt-3"
|
||||
};
|
||||
var _hoisted_4 = {
|
||||
"class": "leading-tight mt-3"
|
||||
};
|
||||
var _hoisted_5 = {
|
||||
"class": "md:grid md:grid-cols-2"
|
||||
};
|
||||
var _hoisted_6 = {
|
||||
"class": "border-r border-b border-gray-200 dark:border-gray-700"
|
||||
};
|
||||
var _hoisted_7 = ["href"];
|
||||
var _hoisted_8 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", {
|
||||
"class": "flex justify-center w-11 flex-shrink-0 mr-6"
|
||||
}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", {
|
||||
"class": "text-4xl text-primary-500 dark:text-primary-600"
|
||||
}, "1.")], -1 /* HOISTED */);
|
||||
var _hoisted_9 = {
|
||||
"class": "leading-normal mt-3"
|
||||
};
|
||||
var _hoisted_10 = {
|
||||
"class": "border-b border-gray-200 dark:border-gray-700"
|
||||
};
|
||||
var _hoisted_11 = ["href"];
|
||||
var _hoisted_12 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", {
|
||||
"class": "flex justify-center w-11 flex-shrink-0 mr-6"
|
||||
}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", {
|
||||
"class": "text-4xl text-primary-500 dark:text-primary-600"
|
||||
}, "2.")], -1 /* HOISTED */);
|
||||
var _hoisted_13 = {
|
||||
"class": "leading-normal mt-3"
|
||||
};
|
||||
var _hoisted_14 = {
|
||||
"class": "border-r border-b border-gray-200 dark:border-gray-700"
|
||||
};
|
||||
var _hoisted_15 = ["href"];
|
||||
var _hoisted_16 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", {
|
||||
"class": "flex justify-center w-11 flex-shrink-0 mr-6"
|
||||
}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", {
|
||||
"class": "text-4xl text-primary-500 dark:text-primary-600"
|
||||
}, "3.")], -1 /* HOISTED */);
|
||||
var _hoisted_17 = {
|
||||
"class": "leading-normal mt-3"
|
||||
};
|
||||
var _hoisted_18 = {
|
||||
"class": "border-b border-gray-200 dark:border-gray-700"
|
||||
};
|
||||
var _hoisted_19 = ["href"];
|
||||
var _hoisted_20 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", {
|
||||
"class": "flex justify-center w-11 flex-shrink-0 mr-6"
|
||||
}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", {
|
||||
"class": "text-4xl text-primary-500 dark:text-primary-600"
|
||||
}, "4.")], -1 /* HOISTED */);
|
||||
var _hoisted_21 = {
|
||||
"class": "leading-normal mt-3"
|
||||
};
|
||||
var _hoisted_22 = {
|
||||
"class": "border-r md:border-b-0 border-b border-gray-200 dark:border-gray-700"
|
||||
};
|
||||
var _hoisted_23 = ["href"];
|
||||
var _hoisted_24 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", {
|
||||
"class": "flex justify-center w-11 flex-shrink-0 mr-6"
|
||||
}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", {
|
||||
"class": "text-4xl text-primary-500 dark:text-primary-600"
|
||||
}, "5.")], -1 /* HOISTED */);
|
||||
var _hoisted_25 = {
|
||||
"class": "leading-normal mt-3"
|
||||
};
|
||||
var _hoisted_26 = {
|
||||
"class": "md:border-b-0 border-b border-gray-200 dark:border-gray-700"
|
||||
};
|
||||
var _hoisted_27 = ["href"];
|
||||
var _hoisted_28 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", {
|
||||
"class": "flex justify-center w-11 flex-shrink-0 mr-6"
|
||||
}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", {
|
||||
"class": "text-4xl text-primary-500 dark:text-primary-600"
|
||||
}, "6.")], -1 /* HOISTED */);
|
||||
var _hoisted_29 = {
|
||||
"class": "leading-normal mt-3"
|
||||
};
|
||||
function render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
var _component_Heading = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("Heading");
|
||||
var _component_Card = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("Card", true);
|
||||
return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Heading, null, {
|
||||
"default": (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
|
||||
return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.__('Getting Started')), 1 /* TEXT */)];
|
||||
}),
|
||||
|
||||
_: 1 /* STABLE */
|
||||
}), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", _hoisted_3, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.__('Als Dozent hast du Zugriff auf das Daten-Backend und kannst neue Items anlegen.')), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", _hoisted_4, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.__('Hier ein paar Tipps, wie du am besten startest:')), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Card, {
|
||||
"class": "mt-8"
|
||||
}, {
|
||||
"default": (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
|
||||
return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_6, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("a", {
|
||||
href: $options.resources,
|
||||
"class": "no-underline flex p-6"
|
||||
}, [_hoisted_8, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Heading, {
|
||||
level: 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)(_ctx.__('Stadt suchen und anlegen')), 1 /* TEXT */)];
|
||||
}),
|
||||
|
||||
_: 1 /* STABLE */
|
||||
}), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", _hoisted_9, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.__('Gehe auf die Seite "Städte" und suche nach der Stadt, in der du die Items anlegen möchtest. Wenn du die Stadt nicht findest, kannst du sie anlegen.')), 1 /* TEXT */)])], 8 /* PROPS */, _hoisted_7)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_10, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("a", {
|
||||
href: $options.actions,
|
||||
"class": "no-underline flex p-6"
|
||||
}, [_hoisted_12, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Heading, {
|
||||
level: 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)(_ctx.__('Veranstaltungs-Ort suchen und anlegen')), 1 /* TEXT */)];
|
||||
}),
|
||||
|
||||
_: 1 /* STABLE */
|
||||
}), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", _hoisted_13, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.__('Gehe auf die Seite "Veranstaltungs-Orte" und suche nach dem Ort, an dem du die Items anlegen möchtest. Wenn du den Ort nicht findest, kannst du ihn anlegen.')), 1 /* TEXT */)])], 8 /* PROPS */, _hoisted_11)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_14, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("a", {
|
||||
href: $options.filters,
|
||||
"class": "no-underline flex p-6"
|
||||
}, [_hoisted_16, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Heading, {
|
||||
level: 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)(_ctx.__('Dozenten-Profil bearbeiten')), 1 /* TEXT */)];
|
||||
}),
|
||||
|
||||
_: 1 /* STABLE */
|
||||
}), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", _hoisted_17, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.__('Gehe auf die Seite "Dozenten" und suche nach deinem Dozenten-Profil. Wenn du es nicht findest, kannst du es anlegen.')), 1 /* TEXT */)])], 8 /* PROPS */, _hoisted_15)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_18, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("a", {
|
||||
href: $options.lenses,
|
||||
"class": "no-underline flex p-6"
|
||||
}, [_hoisted_20, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Heading, {
|
||||
level: 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)(_ctx.__('Kurse anlegen und verwalten')), 1 /* TEXT */)];
|
||||
}),
|
||||
|
||||
_: 1 /* STABLE */
|
||||
}), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", _hoisted_21, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.__('Gehe auf die Seite "Kurse" und suche nach dem Kurs, den du editieren möchtest. Wenn du den Kurs nicht findest, kannst du ihn anlegen.')), 1 /* TEXT */)])], 8 /* PROPS */, _hoisted_19)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_22, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("a", {
|
||||
href: $options.metrics,
|
||||
"class": "no-underline flex p-6"
|
||||
}, [_hoisted_24, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Heading, {
|
||||
level: 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)(_ctx.__('Termine anlegen und verwalten')), 1 /* TEXT */)];
|
||||
}),
|
||||
|
||||
_: 1 /* STABLE */
|
||||
}), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", _hoisted_25, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.__('Gehe auf die Seite "Termine" und suche nach dem Termin, den du editieren möchtest. Wenn du den Termin nicht findest, kannst du ihn anlegen.')), 1 /* TEXT */)])], 8 /* PROPS */, _hoisted_23)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_26, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("a", {
|
||||
href: $options.cards,
|
||||
"class": "no-underline flex p-6"
|
||||
}, [_hoisted_28, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Heading, {
|
||||
level: 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)(_ctx.__('Berechtigungen')), 1 /* TEXT */)];
|
||||
}),
|
||||
|
||||
_: 1 /* STABLE */
|
||||
}), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", _hoisted_29, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.__('Wenn Buttons zur Bearbeitung fehlen, dann hast du nicht die nötigen Berechtigungen. Melde dich bei einem der Admins.')), 1 /* TEXT */)])], 8 /* PROPS */, _hoisted_27)])])];
|
||||
}),
|
||||
_: 1 /* STABLE */
|
||||
})])]);
|
||||
}
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/js/card.js":
|
||||
/*!******************************!*\
|
||||
!*** ./resources/js/card.js ***!
|
||||
\******************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _components_Card__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components/Card */ "./resources/js/components/Card.vue");
|
||||
|
||||
Nova.booting(function (app, store) {
|
||||
app.component('start', _components_Card__WEBPACK_IMPORTED_MODULE_0__["default"]);
|
||||
});
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/css/card.css":
|
||||
/*!********************************!*\
|
||||
!*** ./resources/css/card.css ***!
|
||||
\********************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
// extracted by mini-css-extract-plugin
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./node_modules/vue-loader/dist/exportHelper.js":
|
||||
/*!******************************************************!*\
|
||||
!*** ./node_modules/vue-loader/dist/exportHelper.js ***!
|
||||
\******************************************************/
|
||||
/***/ ((__unused_webpack_module, exports) => {
|
||||
|
||||
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
// runtime helper for setting properties on components
|
||||
// in a tree-shakable way
|
||||
exports["default"] = (sfc, props) => {
|
||||
const target = sfc.__vccOpts || sfc;
|
||||
for (const [key, val] of props) {
|
||||
target[key] = val;
|
||||
}
|
||||
return target;
|
||||
};
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/js/components/Card.vue":
|
||||
/*!******************************************!*\
|
||||
!*** ./resources/js/components/Card.vue ***!
|
||||
\******************************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
||||
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
||||
/* harmony export */ });
|
||||
/* harmony import */ var _Card_vue_vue_type_template_id_b9bc2c0a__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Card.vue?vue&type=template&id=b9bc2c0a */ "./resources/js/components/Card.vue?vue&type=template&id=b9bc2c0a");
|
||||
/* harmony import */ var _Card_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Card.vue?vue&type=script&lang=js */ "./resources/js/components/Card.vue?vue&type=script&lang=js");
|
||||
/* harmony import */ var _home_fsociety_Code_side_einundzwanzig_bitcoin_school_nova_components_Start_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
|
||||
|
||||
|
||||
|
||||
|
||||
;
|
||||
const __exports__ = /*#__PURE__*/(0,_home_fsociety_Code_side_einundzwanzig_bitcoin_school_nova_components_Start_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_Card_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_Card_vue_vue_type_template_id_b9bc2c0a__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/components/Card.vue"]])
|
||||
/* hot reload */
|
||||
if (false) {}
|
||||
|
||||
|
||||
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__exports__);
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/js/components/Card.vue?vue&type=script&lang=js":
|
||||
/*!******************************************************************!*\
|
||||
!*** ./resources/js/components/Card.vue?vue&type=script&lang=js ***!
|
||||
\******************************************************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
__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_Card_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_Card_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]!./Card.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/components/Card.vue?vue&type=script&lang=js");
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/js/components/Card.vue?vue&type=template&id=b9bc2c0a":
|
||||
/*!************************************************************************!*\
|
||||
!*** ./resources/js/components/Card.vue?vue&type=template&id=b9bc2c0a ***!
|
||||
\************************************************************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
__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_Card_vue_vue_type_template_id_b9bc2c0a__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_Card_vue_vue_type_template_id_b9bc2c0a__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]!./Card.vue?vue&type=template&id=b9bc2c0a */ "./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/components/Card.vue?vue&type=template&id=b9bc2c0a");
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "vue":
|
||||
/*!**********************!*\
|
||||
!*** external "Vue" ***!
|
||||
\**********************/
|
||||
/***/ ((module) => {
|
||||
|
||||
module.exports = Vue;
|
||||
|
||||
/***/ })
|
||||
|
||||
/******/ });
|
||||
/************************************************************************/
|
||||
/******/ // The module cache
|
||||
/******/ var __webpack_module_cache__ = {};
|
||||
/******/
|
||||
/******/ // The require function
|
||||
/******/ function __webpack_require__(moduleId) {
|
||||
/******/ // Check if module is in cache
|
||||
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
||||
/******/ if (cachedModule !== undefined) {
|
||||
/******/ return cachedModule.exports;
|
||||
/******/ }
|
||||
/******/ // Create a new module (and put it into the cache)
|
||||
/******/ var module = __webpack_module_cache__[moduleId] = {
|
||||
/******/ // no module.id needed
|
||||
/******/ // no module.loaded needed
|
||||
/******/ exports: {}
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Execute the module function
|
||||
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
||||
/******/
|
||||
/******/ // Return the exports of the module
|
||||
/******/ return module.exports;
|
||||
/******/ }
|
||||
/******/
|
||||
/******/ // expose the modules object (__webpack_modules__)
|
||||
/******/ __webpack_require__.m = __webpack_modules__;
|
||||
/******/
|
||||
/************************************************************************/
|
||||
/******/ /* webpack/runtime/chunk loaded */
|
||||
/******/ (() => {
|
||||
/******/ var deferred = [];
|
||||
/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => {
|
||||
/******/ if(chunkIds) {
|
||||
/******/ priority = priority || 0;
|
||||
/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];
|
||||
/******/ deferred[i] = [chunkIds, fn, priority];
|
||||
/******/ return;
|
||||
/******/ }
|
||||
/******/ var notFulfilled = Infinity;
|
||||
/******/ for (var i = 0; i < deferred.length; i++) {
|
||||
/******/ var [chunkIds, fn, priority] = deferred[i];
|
||||
/******/ var fulfilled = true;
|
||||
/******/ for (var j = 0; j < chunkIds.length; j++) {
|
||||
/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {
|
||||
/******/ chunkIds.splice(j--, 1);
|
||||
/******/ } else {
|
||||
/******/ fulfilled = false;
|
||||
/******/ if(priority < notFulfilled) notFulfilled = priority;
|
||||
/******/ }
|
||||
/******/ }
|
||||
/******/ if(fulfilled) {
|
||||
/******/ deferred.splice(i--, 1)
|
||||
/******/ var r = fn();
|
||||
/******/ if (r !== undefined) result = r;
|
||||
/******/ }
|
||||
/******/ }
|
||||
/******/ return result;
|
||||
/******/ };
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/compat get default export */
|
||||
/******/ (() => {
|
||||
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
||||
/******/ __webpack_require__.n = (module) => {
|
||||
/******/ var getter = module && module.__esModule ?
|
||||
/******/ () => (module['default']) :
|
||||
/******/ () => (module);
|
||||
/******/ __webpack_require__.d(getter, { a: getter });
|
||||
/******/ return getter;
|
||||
/******/ };
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/define property getters */
|
||||
/******/ (() => {
|
||||
/******/ // define getter functions for harmony exports
|
||||
/******/ __webpack_require__.d = (exports, definition) => {
|
||||
/******/ for(var key in definition) {
|
||||
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
||||
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
||||
/******/ }
|
||||
/******/ }
|
||||
/******/ };
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
||||
/******/ (() => {
|
||||
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/make namespace object */
|
||||
/******/ (() => {
|
||||
/******/ // define __esModule on exports
|
||||
/******/ __webpack_require__.r = (exports) => {
|
||||
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
||||
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||
/******/ }
|
||||
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
||||
/******/ };
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/jsonp chunk loading */
|
||||
/******/ (() => {
|
||||
/******/ // no baseURI
|
||||
/******/
|
||||
/******/ // object to store loaded and loading chunks
|
||||
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
|
||||
/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
|
||||
/******/ var installedChunks = {
|
||||
/******/ "/js/card": 0,
|
||||
/******/ "css/card": 0
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // no chunk on demand loading
|
||||
/******/
|
||||
/******/ // no prefetching
|
||||
/******/
|
||||
/******/ // no preloaded
|
||||
/******/
|
||||
/******/ // no HMR
|
||||
/******/
|
||||
/******/ // no HMR manifest
|
||||
/******/
|
||||
/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);
|
||||
/******/
|
||||
/******/ // install a JSONP callback for chunk loading
|
||||
/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => {
|
||||
/******/ var [chunkIds, moreModules, runtime] = data;
|
||||
/******/ // add "moreModules" to the modules object,
|
||||
/******/ // then flag all "chunkIds" as loaded and fire callback
|
||||
/******/ var moduleId, chunkId, i = 0;
|
||||
/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) {
|
||||
/******/ for(moduleId in moreModules) {
|
||||
/******/ if(__webpack_require__.o(moreModules, moduleId)) {
|
||||
/******/ __webpack_require__.m[moduleId] = moreModules[moduleId];
|
||||
/******/ }
|
||||
/******/ }
|
||||
/******/ if(runtime) var result = runtime(__webpack_require__);
|
||||
/******/ }
|
||||
/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
|
||||
/******/ for(;i < chunkIds.length; i++) {
|
||||
/******/ chunkId = chunkIds[i];
|
||||
/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
|
||||
/******/ installedChunks[chunkId][0]();
|
||||
/******/ }
|
||||
/******/ installedChunks[chunkId] = 0;
|
||||
/******/ }
|
||||
/******/ return __webpack_require__.O(result);
|
||||
/******/ }
|
||||
/******/
|
||||
/******/ var chunkLoadingGlobal = self["webpackChunknova_start"] = self["webpackChunknova_start"] || [];
|
||||
/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
|
||||
/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
|
||||
/******/ })();
|
||||
/******/
|
||||
/************************************************************************/
|
||||
/******/
|
||||
/******/ // startup
|
||||
/******/ // Load entry module and return exports
|
||||
/******/ // This entry module depends on other loaded chunks and execution need to be delayed
|
||||
/******/ __webpack_require__.O(undefined, ["css/card"], () => (__webpack_require__("./resources/js/card.js")))
|
||||
/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["css/card"], () => (__webpack_require__("./resources/css/card.css")))
|
||||
/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__);
|
||||
/******/
|
||||
/******/ })()
|
||||
;
|
||||
4
nova-components/Start/dist/mix-manifest.json
vendored
Normal file
4
nova-components/Start/dist/mix-manifest.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"/js/card.js": "/js/card.js",
|
||||
"/css/card.css": "/css/card.css"
|
||||
}
|
||||
33
nova-components/Start/nova.mix.js
Normal file
33
nova-components/Start/nova.mix.js
Normal file
@@ -0,0 +1,33 @@
|
||||
const mix = require('laravel-mix')
|
||||
const webpack = require('webpack')
|
||||
const path = require('path')
|
||||
|
||||
class NovaExtension {
|
||||
name() {
|
||||
return 'nova-extension'
|
||||
}
|
||||
|
||||
register(name) {
|
||||
this.name = name
|
||||
}
|
||||
|
||||
webpackConfig(webpackConfig) {
|
||||
webpackConfig.externals = {
|
||||
vue: 'Vue',
|
||||
}
|
||||
|
||||
webpackConfig.resolve.alias = {
|
||||
...(webpackConfig.resolve.alias || {}),
|
||||
'laravel-nova': path.join(
|
||||
__dirname,
|
||||
'../../vendor/laravel/nova/resources/js/mixins/packages.js'
|
||||
),
|
||||
}
|
||||
|
||||
webpackConfig.output = {
|
||||
uniqueName: this.name,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mix.extend('nova', new NovaExtension())
|
||||
20
nova-components/Start/package.json
Normal file
20
nova-components/Start/package.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "npm run development",
|
||||
"development": "mix",
|
||||
"watch": "mix watch",
|
||||
"watch-poll": "mix watch -- --watch-options-poll=1000",
|
||||
"hot": "mix watch --hot",
|
||||
"prod": "npm run production",
|
||||
"production": "mix --production",
|
||||
"nova:install": "npm --prefix='../../vendor/laravel/nova' ci"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/compiler-sfc": "^3.2.22",
|
||||
"laravel-mix": "^6.0.41",
|
||||
"postcss": "^8.3.11",
|
||||
"vue-loader": "^16.8.3"
|
||||
},
|
||||
"dependencies": {}
|
||||
}
|
||||
1
nova-components/Start/postcss.config.js
Normal file
1
nova-components/Start/postcss.config.js
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = {}
|
||||
1
nova-components/Start/resources/css/card.css
Normal file
1
nova-components/Start/resources/css/card.css
Normal file
@@ -0,0 +1 @@
|
||||
/* Nova Card CSS */
|
||||
5
nova-components/Start/resources/js/card.js
Normal file
5
nova-components/Start/resources/js/card.js
Normal file
@@ -0,0 +1,5 @@
|
||||
import Card from './components/Card'
|
||||
|
||||
Nova.booting((app, store) => {
|
||||
app.component('start', Card)
|
||||
})
|
||||
167
nova-components/Start/resources/js/components/Card.vue
Normal file
167
nova-components/Start/resources/js/components/Card.vue
Normal file
@@ -0,0 +1,167 @@
|
||||
<template>
|
||||
<div class="flex justify-center items-center">
|
||||
<div class="w-full">
|
||||
<Heading>{{ __('Getting Started') }}</Heading>
|
||||
<p class="leading-tight mt-3">
|
||||
{{ __('Als Dozent hast du Zugriff auf das Daten-Backend und kannst neue Items anlegen.') }}
|
||||
</p>
|
||||
<p class="leading-tight mt-3">
|
||||
{{ __('Hier ein paar Tipps, wie du am besten startest:') }}
|
||||
</p>
|
||||
|
||||
<Card class="mt-8">
|
||||
<div class="md:grid md:grid-cols-2">
|
||||
<div class="border-r border-b border-gray-200 dark:border-gray-700">
|
||||
<a :href="resources" class="no-underline flex p-6">
|
||||
<div class="flex justify-center w-11 flex-shrink-0 mr-6">
|
||||
<div class="text-4xl text-primary-500 dark:text-primary-600">1.</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<Heading :level="3">{{ __('Stadt suchen und anlegen') }}</Heading>
|
||||
<p class="leading-normal mt-3">
|
||||
{{
|
||||
__('Gehe auf die Seite "Städte" und suche nach der Stadt, in der du die Items anlegen möchtest. Wenn du die Stadt nicht findest, kannst du sie anlegen.')
|
||||
}}
|
||||
</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="border-b border-gray-200 dark:border-gray-700">
|
||||
<a :href="actions" class="no-underline flex p-6">
|
||||
<div class="flex justify-center w-11 flex-shrink-0 mr-6">
|
||||
<div class="text-4xl text-primary-500 dark:text-primary-600">2.</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<Heading :level="3">{{ __('Veranstaltungs-Ort suchen und anlegen') }}</Heading>
|
||||
<p class="leading-normal mt-3">
|
||||
{{
|
||||
__('Gehe auf die Seite "Veranstaltungs-Orte" und suche nach dem Ort, an dem du die Items anlegen möchtest. Wenn du den Ort nicht findest, kannst du ihn anlegen.')
|
||||
}}
|
||||
</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="border-r border-b border-gray-200 dark:border-gray-700">
|
||||
<a :href="filters" class="no-underline flex p-6">
|
||||
<div class="flex justify-center w-11 flex-shrink-0 mr-6">
|
||||
<div class="text-4xl text-primary-500 dark:text-primary-600">3.</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<Heading :level="3">{{ __('Dozenten-Profil bearbeiten') }}</Heading>
|
||||
<p class="leading-normal mt-3">
|
||||
{{
|
||||
__('Gehe auf die Seite "Dozenten" und suche nach deinem Dozenten-Profil. Wenn du es nicht findest, kannst du es anlegen.')
|
||||
}}
|
||||
</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="border-b border-gray-200 dark:border-gray-700">
|
||||
<a :href="lenses" class="no-underline flex p-6">
|
||||
<div class="flex justify-center w-11 flex-shrink-0 mr-6">
|
||||
<div class="text-4xl text-primary-500 dark:text-primary-600">4.</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<Heading :level="3">{{ __('Kurse anlegen und verwalten') }}</Heading>
|
||||
<p class="leading-normal mt-3">
|
||||
{{
|
||||
__('Gehe auf die Seite "Kurse" und suche nach dem Kurs, den du editieren möchtest. Wenn du den Kurs nicht findest, kannst du ihn anlegen.')
|
||||
}}
|
||||
</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="border-r md:border-b-0 border-b border-gray-200 dark:border-gray-700"
|
||||
>
|
||||
<a :href="metrics" class="no-underline flex p-6">
|
||||
<div class="flex justify-center w-11 flex-shrink-0 mr-6">
|
||||
<div class="text-4xl text-primary-500 dark:text-primary-600">5.</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<Heading :level="3">{{ __('Termine anlegen und verwalten') }}</Heading>
|
||||
<p class="leading-normal mt-3">
|
||||
{{
|
||||
__('Gehe auf die Seite "Termine" und suche nach dem Termin, den du editieren möchtest. Wenn du den Termin nicht findest, kannst du ihn anlegen.')
|
||||
}}
|
||||
</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="md:border-b-0 border-b border-gray-200 dark:border-gray-700"
|
||||
>
|
||||
<a :href="cards" class="no-underline flex p-6">
|
||||
<div class="flex justify-center w-11 flex-shrink-0 mr-6">
|
||||
<div class="text-4xl text-primary-500 dark:text-primary-600">6.</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<Heading :level="3">{{ __('Berechtigungen') }}</Heading>
|
||||
<p class="leading-normal mt-3">
|
||||
{{
|
||||
__('Wenn Buttons zur Bearbeitung fehlen, dann hast du nicht die nötigen Berechtigungen. Melde dich bei einem der Admins.')
|
||||
}}
|
||||
</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</Card>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'Help',
|
||||
|
||||
props: {
|
||||
card: Object,
|
||||
},
|
||||
|
||||
methods: {
|
||||
link (path) {
|
||||
return `https://nova.laravel.com/docs/${this.version}/${path}`
|
||||
},
|
||||
},
|
||||
|
||||
computed: {
|
||||
resources () {
|
||||
return this.link('resources')
|
||||
},
|
||||
actions () {
|
||||
return this.link('actions/defining-actions.html')
|
||||
},
|
||||
filters () {
|
||||
return this.link('filters/defining-filters.html')
|
||||
},
|
||||
lenses () {
|
||||
return this.link('lenses/defining-lenses.html')
|
||||
},
|
||||
metrics () {
|
||||
return this.link('metrics/defining-metrics.html')
|
||||
},
|
||||
cards () {
|
||||
return this.link('customization/cards.html')
|
||||
},
|
||||
version () {
|
||||
const parts = Nova.config('version')
|
||||
.split('.')
|
||||
parts.splice(-2)
|
||||
|
||||
return `${parts}.0`
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
19
nova-components/Start/routes/api.php
Normal file
19
nova-components/Start/routes/api.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Card API Routes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you may register API routes for your card. These routes
|
||||
| are loaded by the ServiceProvider of your card. You're free to add
|
||||
| as many additional routes to this file as your card may require.
|
||||
|
|
||||
*/
|
||||
|
||||
// Route::get('/endpoint', function (Request $request) {
|
||||
// //
|
||||
// });
|
||||
54
nova-components/Start/src/CardServiceProvider.php
Normal file
54
nova-components/Start/src/CardServiceProvider.php
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace Nova\Start;
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Laravel\Nova\Events\ServingNova;
|
||||
use Laravel\Nova\Nova;
|
||||
|
||||
class CardServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
* Bootstrap any application services.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
$this->app->booted(function () {
|
||||
$this->routes();
|
||||
});
|
||||
|
||||
Nova::serving(function (ServingNova $event) {
|
||||
Nova::script('start', __DIR__.'/../dist/js/card.js');
|
||||
Nova::style('start', __DIR__.'/../dist/css/card.css');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the card's routes.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function routes()
|
||||
{
|
||||
if ($this->app->routesAreCached()) {
|
||||
return;
|
||||
}
|
||||
|
||||
Route::middleware(['nova'])
|
||||
->prefix('nova-vendor/start')
|
||||
->group(__DIR__.'/../routes/api.php');
|
||||
}
|
||||
|
||||
/**
|
||||
* Register any application services.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function register()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
25
nova-components/Start/src/Start.php
Normal file
25
nova-components/Start/src/Start.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace Nova\Start;
|
||||
|
||||
use Laravel\Nova\Card;
|
||||
|
||||
class Start extends Card
|
||||
{
|
||||
/**
|
||||
* The width of the card (1/3, 1/2, or full).
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $width = 'full';
|
||||
|
||||
/**
|
||||
* Get the component name for the element.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function component()
|
||||
{
|
||||
return 'start';
|
||||
}
|
||||
}
|
||||
10
nova-components/Start/webpack.mix.js
Normal file
10
nova-components/Start/webpack.mix.js
Normal file
@@ -0,0 +1,10 @@
|
||||
let mix = require('laravel-mix')
|
||||
|
||||
require('./nova.mix')
|
||||
|
||||
mix
|
||||
.setPublicPath('dist')
|
||||
.js('resources/js/card.js', 'js')
|
||||
.vue({ version: 3 })
|
||||
.css('resources/css/card.css', 'css')
|
||||
.nova('nova/start')
|
||||
@@ -2,7 +2,9 @@
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build"
|
||||
"build": "vite build",
|
||||
"build-start": "cd nova-components/Start && npm run dev",
|
||||
"build-start-prod": "cd nova-components/Start && npm run prod"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tailwindcss/forms": "^0.5.2",
|
||||
@@ -16,4 +18,4 @@
|
||||
"tailwindcss": "^3.1.0",
|
||||
"vite": "^3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user