Basic editor for main page text (tiptap, tiptap-extensions)
This commit is contained in:
parent
4f75f07c0a
commit
98fc0ef0f8
9 changed files with 29053 additions and 75 deletions
27
motorradig/.idea/workspace.xml
generated
27
motorradig/.idea/workspace.xml
generated
|
|
@ -2,8 +2,14 @@
|
|||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="eed7de89-f054-487c-bf59-36356758942b" name="Default Changelist" comment="">
|
||||
<change afterPath="$PROJECT_DIR$/public/js/Icon.js" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/resources/js/views/EditPage.vue" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/package-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/package-lock.json" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/js/app.js" beforeDir="false" afterPath="$PROJECT_DIR$/public/js/app.js" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/js/app.js" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/app.js" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/js/routes.js" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/routes.js" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/js/views/Main.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/views/Main.vue" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
|
|
@ -17,6 +23,13 @@
|
|||
<executable />
|
||||
</execution>
|
||||
</component>
|
||||
<component name="FileTemplateManagerImpl">
|
||||
<option name="RECENT_TEMPLATES">
|
||||
<list>
|
||||
<option value="JavaScript File" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
|
||||
</component>
|
||||
|
|
@ -125,7 +138,7 @@
|
|||
<component name="PropertiesComponent">
|
||||
<property name="ASKED_ADD_EXTERNAL_FILES" value="true" />
|
||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$/app/Http/Controllers" />
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$/resources/js/views" />
|
||||
<property name="node.js.detected.package.eslint" value="true" />
|
||||
<property name="node.js.detected.package.tslint" value="true" />
|
||||
<property name="node.js.path.for.package.eslint" value="project" />
|
||||
|
|
@ -140,9 +153,9 @@
|
|||
<recent name="$PROJECT_DIR$/public" />
|
||||
</key>
|
||||
<key name="CopyFile.RECENT_KEYS">
|
||||
<recent name="$PROJECT_DIR$/resources/js/views" />
|
||||
<recent name="$PROJECT_DIR$/app/Http/Controllers" />
|
||||
<recent name="$PROJECT_DIR$/resources/js" />
|
||||
<recent name="$PROJECT_DIR$/resources/js/views" />
|
||||
<recent name="$PROJECT_DIR$/resources/js/vue" />
|
||||
<recent name="$PROJECT_DIR$/resources/js/vue/components" />
|
||||
</key>
|
||||
|
|
@ -207,7 +220,7 @@
|
|||
<workItem from="1575965115540" duration="593000" />
|
||||
<workItem from="1575966299565" duration="383000" />
|
||||
<workItem from="1579075615585" duration="8354000" />
|
||||
<workItem from="1579595422946" duration="4917000" />
|
||||
<workItem from="1579595422946" duration="14949000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
|
|
@ -231,13 +244,17 @@
|
|||
<option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" />
|
||||
</component>
|
||||
<component name="WindowStateProjectService">
|
||||
<state x="1371" y="133" width="1720" height="857" key="com.intellij.history.integration.ui.views.FileHistoryDialog" timestamp="1579784437079">
|
||||
<screen x="1280" y="23" width="1920" height="1057" />
|
||||
</state>
|
||||
<state x="1371" y="133" width="1720" height="857" key="com.intellij.history.integration.ui.views.FileHistoryDialog/0.23.1280.777/1280.23.1920.1057@1280.23.1920.1057" timestamp="1579784437079" />
|
||||
<state x="1903" y="197" width="673" height="708" key="find.popup" timestamp="1579597123793">
|
||||
<screen x="1280" y="23" width="1920" height="1057" />
|
||||
</state>
|
||||
<state x="1903" y="197" width="673" height="708" key="find.popup/0.23.1280.777/1280.23.1920.1057@1280.23.1920.1057" timestamp="1579597123793" />
|
||||
<state x="1905" y="258" width="670" height="676" key="search.everywhere.popup" timestamp="1579597080472">
|
||||
<state x="1905" y="258" width="670" height="676" key="search.everywhere.popup" timestamp="1579787265055">
|
||||
<screen x="1280" y="23" width="1920" height="1057" />
|
||||
</state>
|
||||
<state x="1905" y="258" width="670" height="676" key="search.everywhere.popup/0.23.1280.777/1280.23.1920.1057@1280.23.1920.1057" timestamp="1579597080472" />
|
||||
<state x="1905" y="258" width="670" height="676" key="search.everywhere.popup/0.23.1280.777/1280.23.1920.1057@1280.23.1920.1057" timestamp="1579787265055" />
|
||||
</component>
|
||||
</project>
|
||||
84
motorradig/package-lock.json
generated
84
motorradig/package-lock.json
generated
|
|
@ -3511,6 +3511,14 @@
|
|||
"integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
|
||||
"dev": true
|
||||
},
|
||||
"fault": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/fault/-/fault-1.0.3.tgz",
|
||||
"integrity": "sha512-sfFuP4X0hzrbGKjAUNXYvNqsZ5F6ohx/dZ9I0KQud/aiZNwg263r5L9yGB0clvXHCkzXh5W3t7RSHchggYIFmA==",
|
||||
"requires": {
|
||||
"format": "^0.2.2"
|
||||
}
|
||||
},
|
||||
"faye-websocket": {
|
||||
"version": "0.10.0",
|
||||
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
|
||||
|
|
@ -3667,6 +3675,11 @@
|
|||
"integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
|
||||
"dev": true
|
||||
},
|
||||
"format": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
|
||||
"integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs="
|
||||
},
|
||||
"forwarded": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
|
||||
|
|
@ -4578,6 +4591,11 @@
|
|||
"integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==",
|
||||
"dev": true
|
||||
},
|
||||
"highlight.js": {
|
||||
"version": "9.16.2",
|
||||
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.16.2.tgz",
|
||||
"integrity": "sha512-feMUrVLZvjy0oC7FVJQcSQRqbBq9kwqnYE4+Kj9ZjbHh3g+BisiPgF49NyQbVLNdrL/qqZr3Ca9yOKwgn2i/tw=="
|
||||
},
|
||||
"hmac-drbg": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
|
||||
|
|
@ -5566,6 +5584,15 @@
|
|||
"integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
|
||||
"dev": true
|
||||
},
|
||||
"lowlight": {
|
||||
"version": "1.13.0",
|
||||
"resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.13.0.tgz",
|
||||
"integrity": "sha512-bFXLa+UO1eM3zieFAcNqf6rTQ1D5ERFv64/euQbbH/LT3U9XXwH6tOrgUAGWDsQ1QgN3ZhgOcv8p3/S+qKGdTQ==",
|
||||
"requires": {
|
||||
"fault": "^1.0.2",
|
||||
"highlight.js": "~9.16.0"
|
||||
}
|
||||
},
|
||||
"lru-cache": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
|
||||
|
|
@ -6233,9 +6260,9 @@
|
|||
}
|
||||
},
|
||||
"orderedmap": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-1.1.0.tgz",
|
||||
"integrity": "sha512-abUlPCcmyI/17BWWoUWeAbnniTFUZuczP6iowD9XMBcUoD9jRtUO6w+KXkw64TDk+iHdyDfTAjIH7mTRzhXcaw=="
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-1.1.1.tgz",
|
||||
"integrity": "sha512-3Ux8um0zXbVacKUkcytc0u3HgC0b0bBLT+I60r2J/En72cI0nZffqrA7Xtf2Hqs27j1g82llR5Mhbd0Z1XW4AQ=="
|
||||
},
|
||||
"original": {
|
||||
"version": "1.0.2",
|
||||
|
|
@ -7247,6 +7274,14 @@
|
|||
"integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
|
||||
"dev": true
|
||||
},
|
||||
"prosemirror-collab": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.2.2.tgz",
|
||||
"integrity": "sha512-tBnHKMLgy5Qmx9MYVcLfs3pAyjtcqYYDd9kp3y+LSiQzkhMQDfZSV3NXWe4Gsly32adSef173BvObwfoSQL5MA==",
|
||||
"requires": {
|
||||
"prosemirror-state": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"prosemirror-commands": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.1.2.tgz",
|
||||
|
|
@ -7278,6 +7313,16 @@
|
|||
"prosemirror-view": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"prosemirror-history": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.1.2.tgz",
|
||||
"integrity": "sha512-erhxYS5gm/6MiXP8jUoJBgc8IbaqjHDVPl9KGg5JrMZOSSOwHv85+4Fb0Q7sYtv2fYwAjOSw/kSA9vkxJ6wOwA==",
|
||||
"requires": {
|
||||
"prosemirror-state": "^1.2.2",
|
||||
"prosemirror-transform": "^1.0.0",
|
||||
"rope-sequence": "^1.3.0"
|
||||
}
|
||||
},
|
||||
"prosemirror-inputrules": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.1.2.tgz",
|
||||
|
|
@ -7830,6 +7875,11 @@
|
|||
"inherits": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"rope-sequence": {
|
||||
"version": "1.3.2",
|
||||
"resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.2.tgz",
|
||||
"integrity": "sha512-ku6MFrwEVSVmXLvy3dYph3LAMNS0890K7fabn+0YIRQ2T96T9F4gkFf0vf0WW0JUraNWwGRtInEpH7yO4tbQZg=="
|
||||
},
|
||||
"run-queue": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
|
||||
|
|
@ -8859,6 +8909,34 @@
|
|||
"tiptap-utils": "^1.8.3"
|
||||
}
|
||||
},
|
||||
"tiptap-extensions": {
|
||||
"version": "1.28.6",
|
||||
"resolved": "https://registry.npmjs.org/tiptap-extensions/-/tiptap-extensions-1.28.6.tgz",
|
||||
"integrity": "sha512-hkYKJHxkqmeIRyuOaVvsrC/IcoXZmBw/Gx4JJHPiCAKvLQyjgYZpNjbVH9nIgdlxLvVjFDVBoPWGHy00qGp8qQ==",
|
||||
"requires": {
|
||||
"lowlight": "1.13.0",
|
||||
"prosemirror-collab": "1.2.2",
|
||||
"prosemirror-history": "1.1.2",
|
||||
"prosemirror-model": "1.8.2",
|
||||
"prosemirror-state": "1.3.2",
|
||||
"prosemirror-tables": "1.0.0",
|
||||
"prosemirror-transform": "1.2.2",
|
||||
"prosemirror-utils": "0.9.6",
|
||||
"prosemirror-view": "1.13.4",
|
||||
"tiptap": "^1.26.6",
|
||||
"tiptap-commands": "^1.12.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"prosemirror-transform": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.2.2.tgz",
|
||||
"integrity": "sha512-expO11jAsxaHk2RdZtzPsumc1bAAZi4UiXwTLQbftsdnIUWZE5Snyag595p1lx/B8QHUZ6tYWWOaOkzXKoJmYw==",
|
||||
"requires": {
|
||||
"prosemirror-model": "^1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"tiptap-utils": {
|
||||
"version": "1.8.3",
|
||||
"resolved": "https://registry.npmjs.org/tiptap-utils/-/tiptap-utils-1.8.3.tgz",
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"tiptap": "^1.26.6",
|
||||
"tiptap-extensions": "^1.28.6",
|
||||
"vue-router": "^3.1.5",
|
||||
"vuex": "^3.1.2"
|
||||
}
|
||||
|
|
|
|||
112
motorradig/public/js/Icon.js
vendored
Normal file
112
motorradig/public/js/Icon.js
vendored
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
/******/ (function(modules) { // webpackBootstrap
|
||||
/******/ // The module cache
|
||||
/******/ var installedModules = {};
|
||||
/******/
|
||||
/******/ // The require function
|
||||
/******/ function __webpack_require__(moduleId) {
|
||||
/******/
|
||||
/******/ // Check if module is in cache
|
||||
/******/ if(installedModules[moduleId]) {
|
||||
/******/ return installedModules[moduleId].exports;
|
||||
/******/ }
|
||||
/******/ // Create a new module (and put it into the cache)
|
||||
/******/ var module = installedModules[moduleId] = {
|
||||
/******/ i: moduleId,
|
||||
/******/ l: false,
|
||||
/******/ exports: {}
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Execute the module function
|
||||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||||
/******/
|
||||
/******/ // Flag the module as loaded
|
||||
/******/ module.l = true;
|
||||
/******/
|
||||
/******/ // Return the exports of the module
|
||||
/******/ return module.exports;
|
||||
/******/ }
|
||||
/******/
|
||||
/******/
|
||||
/******/ // expose the modules object (__webpack_modules__)
|
||||
/******/ __webpack_require__.m = modules;
|
||||
/******/
|
||||
/******/ // expose the module cache
|
||||
/******/ __webpack_require__.c = installedModules;
|
||||
/******/
|
||||
/******/ // define getter function for harmony exports
|
||||
/******/ __webpack_require__.d = function(exports, name, getter) {
|
||||
/******/ if(!__webpack_require__.o(exports, name)) {
|
||||
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
|
||||
/******/ }
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // define __esModule on exports
|
||||
/******/ __webpack_require__.r = function(exports) {
|
||||
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
||||
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||
/******/ }
|
||||
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // create a fake namespace object
|
||||
/******/ // mode & 1: value is a module id, require it
|
||||
/******/ // mode & 2: merge all properties of value into the ns
|
||||
/******/ // mode & 4: return value when already ns object
|
||||
/******/ // mode & 8|1: behave like require
|
||||
/******/ __webpack_require__.t = function(value, mode) {
|
||||
/******/ if(mode & 1) value = __webpack_require__(value);
|
||||
/******/ if(mode & 8) return value;
|
||||
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
|
||||
/******/ var ns = Object.create(null);
|
||||
/******/ __webpack_require__.r(ns);
|
||||
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
|
||||
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
|
||||
/******/ return ns;
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
||||
/******/ __webpack_require__.n = function(module) {
|
||||
/******/ var getter = module && module.__esModule ?
|
||||
/******/ function getDefault() { return module['default']; } :
|
||||
/******/ function getModuleExports() { return module; };
|
||||
/******/ __webpack_require__.d(getter, 'a', getter);
|
||||
/******/ return getter;
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Object.prototype.hasOwnProperty.call
|
||||
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
||||
/******/
|
||||
/******/ // __webpack_public_path__
|
||||
/******/ __webpack_require__.p = "/";
|
||||
/******/
|
||||
/******/
|
||||
/******/ // Load entry module and return exports
|
||||
/******/ return __webpack_require__(__webpack_require__.s = 1);
|
||||
/******/ })
|
||||
/************************************************************************/
|
||||
/******/ ({
|
||||
|
||||
/***/ "./resources/js/views/components/Icon.js":
|
||||
/*!***********************************************!*\
|
||||
!*** ./resources/js/views/components/Icon.js ***!
|
||||
\***********************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
throw new Error("Module build failed (from ./node_modules/babel-loader/lib/index.js):\nError: ENOENT: no such file or directory, open '/Users/tschneider/dev/repo/motorradig/motorradig/resources/js/views/components/Icon.js'");
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 1:
|
||||
/*!*****************************************************!*\
|
||||
!*** multi ./resources/js/views/components/Icon.js ***!
|
||||
\*****************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
module.exports = __webpack_require__(/*! /Users/tschneider/dev/repo/motorradig/motorradig/resources/js/views/components/Icon.js */"./resources/js/views/components/Icon.js");
|
||||
|
||||
|
||||
/***/ })
|
||||
|
||||
/******/ });
|
||||
28740
motorradig/public/js/app.js
vendored
28740
motorradig/public/js/app.js
vendored
File diff suppressed because it is too large
Load diff
2
motorradig/resources/js/app.js
vendored
2
motorradig/resources/js/app.js
vendored
|
|
@ -7,10 +7,12 @@
|
|||
import Vue from 'vue';
|
||||
import VueRouter from 'vue-router';
|
||||
import Vuex from 'vuex';
|
||||
import { Editor } from 'tiptap'
|
||||
|
||||
window.Vue=require('vue');
|
||||
window.axios=require('axios');
|
||||
|
||||
|
||||
import {routes} from './routes.js';
|
||||
import {store} from './store.js';
|
||||
|
||||
|
|
|
|||
2
motorradig/resources/js/routes.js
vendored
2
motorradig/resources/js/routes.js
vendored
|
|
@ -1,6 +1,7 @@
|
|||
import Login from "./views/auth/Login";
|
||||
import Register from "./views/auth/Register";
|
||||
import Main from "./views/Main";
|
||||
import EditPage from "./views/EditPage";
|
||||
|
||||
import Vue from 'vue';
|
||||
import VueRouter from "vue-router";
|
||||
|
|
@ -9,6 +10,7 @@ export const routes= [
|
|||
{ path:'', name : 'main', component: Main },
|
||||
{ path:'/login', name : 'Login', component: Login },
|
||||
{ path:'/register', name : 'register', component: Register },
|
||||
{ path:'/edit_page', name : 'edit_page', component: EditPage },
|
||||
];
|
||||
|
||||
Vue.use(VueRouter);
|
||||
|
|
|
|||
131
motorradig/resources/js/views/EditPage.vue
Normal file
131
motorradig/resources/js/views/EditPage.vue
Normal file
|
|
@ -0,0 +1,131 @@
|
|||
<template>
|
||||
<div id="root">
|
||||
|
||||
<div class="title level-item has-text-centered">Motorrad IG
|
||||
</div>
|
||||
|
||||
<div class="has-text-centered">
|
||||
<button class="button" @click="changeMainText('Über uns')" >Über uns</button>
|
||||
<button class="button" @click="changeMainText('Aktuelles')" >Aktuelles</button>
|
||||
<button class="button" @click="changeMainText('Mitgliedsantrag')">Mitgliedsantrag</button>
|
||||
|
||||
|
||||
<span v-if="!this.$store.state.user.hasOwnProperty('role')"><button class="button" @click="changeMainText('Tourplan')" >Tourplan (Beispiel)</button></span>
|
||||
<span v-else-if="this.$store.state.user.role==='GUEST'"><button class="button" @click="changeMainText('Tourplan')" >Tourplan (Gast)</button></span>
|
||||
<span v-else-if="this.$store.state.user.role==='MEMBER'"><button class="button" @click="changeMainText('Tourplan')" >Tourplan (komplett)</button></span>
|
||||
<span v-else-if="this.$store.state.user.role==='ADMIN'"><button class="button" @click="changeMainText('Tourplan')" >Tourplan (komplett)</button></span>
|
||||
|
||||
|
||||
<button class="button" @click="changeMainText('Wetter')" >Wetter</button>
|
||||
<button class="button" @click="changeMainText('Links')" >Links</button>
|
||||
<button class="button" @click="changeMainText('Impressum')" >Impressum</button>
|
||||
<router-link class="button" :to="{ name: 'Login' }">Log-In</router-link>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
<div>
|
||||
|
||||
<editor-menu-bar :editor="editor" v-slot="{ commands, isActive }">
|
||||
<div class="menubar">
|
||||
<button :class="{ 'is-active': isActive.bold() }" @click="commands.bold">
|
||||
Bold
|
||||
</button>
|
||||
<button :class="{ 'is-active': isActive.underline() }" @click="commands.bold">
|
||||
Underline
|
||||
</button>
|
||||
|
||||
</div>
|
||||
</editor-menu-bar>
|
||||
<editor-content :editor="editor" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import { Editor, EditorContent, EditorMenuBar } from 'tiptap'
|
||||
import {
|
||||
Blockquote,
|
||||
CodeBlock,
|
||||
HardBreak,
|
||||
Heading,
|
||||
HorizontalRule,
|
||||
OrderedList,
|
||||
BulletList,
|
||||
ListItem,
|
||||
TodoItem,
|
||||
TodoList,
|
||||
Bold,
|
||||
Code,
|
||||
Italic,
|
||||
Link,
|
||||
Strike,
|
||||
Underline,
|
||||
History,
|
||||
} from 'tiptap-extensions'
|
||||
export default {
|
||||
components: {
|
||||
EditorContent,
|
||||
EditorMenuBar,
|
||||
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
editor: new Editor({
|
||||
extensions: [
|
||||
new Blockquote(),
|
||||
new BulletList(),
|
||||
new CodeBlock(),
|
||||
new HardBreak(),
|
||||
new Heading({ levels: [1, 2, 3] }),
|
||||
new HorizontalRule(),
|
||||
new ListItem(),
|
||||
new OrderedList(),
|
||||
new TodoItem(),
|
||||
new TodoList(),
|
||||
new Link(),
|
||||
new Bold(),
|
||||
new Code(),
|
||||
new Italic(),
|
||||
new Strike(),
|
||||
new Underline(),
|
||||
new History(),
|
||||
],
|
||||
content: `
|
||||
<h2>
|
||||
Hi there,
|
||||
</h2>
|
||||
<p>
|
||||
this is a very <em>basic</em> example of tiptap.
|
||||
</p>
|
||||
<pre><code>body { display: none; }</code></pre>
|
||||
<ul>
|
||||
<li>
|
||||
A regular list
|
||||
</li>
|
||||
<li>
|
||||
With regular items 👏
|
||||
</li>
|
||||
</ul>
|
||||
<blockquote>
|
||||
It's amazing 👏
|
||||
<br />
|
||||
– mom
|
||||
</blockquote>
|
||||
`,
|
||||
}),
|
||||
}
|
||||
},
|
||||
beforeDestroy() {
|
||||
this.editor.destroy()
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
@ -21,21 +21,26 @@
|
|||
<button class="button" @click="changeMainText('Impressum')" >Impressum</button>
|
||||
<router-link class="button" :to="{ name: 'Login' }">Log-In</router-link>
|
||||
|
||||
<span v-if="this.$store.state.user.role==='ADMIN'"><button class="button">Administration</button></span>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
<div>
|
||||
<p id="main" visible="true" style="text-align:center;">Das alte Problem: Die Sonne scheint und Dein Motorrad ruft,<br/>
|
||||
<p id="main" visible="true" style="text-align:center;">Das alte Problem: Die Sonne scheint und Dein Motorrad
|
||||
ruft,<br/>
|
||||
doch alle Deine Freunde sind plötzlich verhindert.<br/><br/>
|
||||
Die Idee!!<br/><br/>
|
||||
Selber anrufen und angerufen werden.<br/>
|
||||
Einmal im Jahr erhältst Du eine Liste aller IG-Mitglieder inkl. Telefonnummern.<br/>
|
||||
</p>
|
||||
<p visible="true" style="text-align:center;"> Einmal im Jahr erhältst Du eine Liste aller IG-Mitglieder
|
||||
inkl. Telefonnummern.<br/>
|
||||
Die Erscheinungstermine unserer Mitgliederliste + News sind natürlich auf die Motorrad-Saison<br/>
|
||||
abgestimmt, ca: März, Juni und September (Saisonstart, -mitte, -ende). Für Eure (Urlaubs) Planung und<br/>
|
||||
abgestimmt, ca: März, Juni und September (Saisonstart, -mitte, -ende). Für Eure (Urlaubs) Planung
|
||||
und<br/>
|
||||
damit der Winter nicht zu lange wird, halten wir in der November- Dezember-Ausgabe schon den<br/>
|
||||
Tourenkalender für das nächste Jahr für Euch bereit. Zusätzlich eröffnet Dir die Liste die Möglichkeit zur<br/>
|
||||
Tourenkalender für das nächste Jahr für Euch bereit. Zusätzlich eröffnet Dir die Liste die Möglichkeit
|
||||
zur<br/>
|
||||
Teilnahme an einem regelmäßigen Stammtisch, gemeinsame Ausfahrten an Wochenenden, einer<br/>
|
||||
Urlaubsbörse sowie Saisonauftakt- und Jahrestreffen. Eigeninitiative ist hierbei erwünscht.<br/>
|
||||
|
||||
|
|
@ -43,11 +48,14 @@
|
|||
müssen wir einmal jährlich einen Selbstkostenbeitrag in Höhe von 20,- EUR erheben.<br/>
|
||||
Diese Kosten entstehen durch Werbung, Porto, Erfassungsmaterialien etc..<br/>
|
||||
Hast Du jetzt immer noch eine positive Einstellung zu dieser Idee? Dann nichts wie hin.<br/>
|
||||
Stammtisch Düsseldorf: Wir treffen uns jeden 2. Mittwoch im Monat ab ca. 19 Uhr in der<br/>
|
||||
Trattoria and Bar Antonio, Roßstr. 87, 40476 Düsseldorf-Derendorf, Tel.: 0211/43637525.<br/>
|
||||
Stadtplan und Anfahrt mit öffentlichen Verkehrsmitteln findet ihr unter:<br/>
|
||||
<a href="http://www.douro-restaurant.de/">http://www.douro-restaurant.de/</a>. Das Douro befindet sich direkt neben der Kirche.<br/>
|
||||
Stammtisch Düsseldorf: Wir treffen uns jeden 2. Mittwoch im Monat ab ca. 19 Uhr in:<br/>
|
||||
Tannenbaum Düsseldorf:<br/>
|
||||
<br/>
|
||||
<a href="https://www.tannenbaum-duesseldorf.de/">https://www.tannenbaum-duesseldorf.de/</a>. Das Douro befindet sich
|
||||
direkt neben der Kirche.<br/>
|
||||
Parkmöglichkeiten sind im Umkreis um den Italiener genügend vorhanden.<br/>
|
||||
|
||||
<span v-if="this.$store.state.user.role==='ADMIN'"><br/><button class="button" @click="editPage">Text bearbeiten</button></span>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
@ -85,6 +93,9 @@
|
|||
console.log("Logout unsuccessful.");
|
||||
console.log(error);
|
||||
})
|
||||
},
|
||||
editPage() {
|
||||
this.$router.push('/edit_page');
|
||||
}
|
||||
}
|
||||
,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue