From bded5c06b275209f4d5de6d3dd6b4ac8be227f77 Mon Sep 17 00:00:00 2001 From: Torsten Date: Tue, 18 Feb 2020 09:10:30 +0100 Subject: [PATCH] Provide list of images and folder for generation of publically available URL --- motorradig/.idea/workspace.xml | 16 +- .../app/Http/Controllers/FileController.php | 20 + motorradig/composer.lock | 10 +- motorradig/public/js/Icon.js | 2 +- motorradig/public/js/app.js | 670 ++++++++++++++---- motorradig/resources/js/routes.js | 2 + motorradig/resources/js/views/Gallery.vue | 200 ++++++ motorradig/resources/js/views/Main.vue | 7 + motorradig/routes/api.php | 2 + 9 files changed, 766 insertions(+), 163 deletions(-) create mode 100644 motorradig/resources/js/views/Gallery.vue diff --git a/motorradig/.idea/workspace.xml b/motorradig/.idea/workspace.xml index c79d176..ca5a915 100644 --- a/motorradig/.idea/workspace.xml +++ b/motorradig/.idea/workspace.xml @@ -2,7 +2,15 @@ + + + + + + + + + + + + @@ -158,10 +170,6 @@ - - - - diff --git a/motorradig/app/Http/Controllers/FileController.php b/motorradig/app/Http/Controllers/FileController.php index 65c77ce..4fc56ce 100644 --- a/motorradig/app/Http/Controllers/FileController.php +++ b/motorradig/app/Http/Controllers/FileController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers; use App\Pagecontents; use Illuminate\Http\Request; use Log; +use DB; use App\File; use App\Folder; @@ -72,4 +73,23 @@ class FileController extends Controller Log::info("Incoming deleteFile request"); } + public function getFoldersWithImages(Request $request) { + Log::info("Incoming getFoldersWithImages request"); + + $query = " SELECT + files.name as file_name, + folders.name as folder_name + FROM + files, + folders + WHERE + files.folder_id=folders.id + ;"; + $filelisting = DB::select($query); + + Log::info("Result:"); + Log::info($filelisting); + + return response(['status'=>'success','folders'=>$filelisting],200); + } } diff --git a/motorradig/composer.lock b/motorradig/composer.lock index 3ab0c5c..11bbb61 100644 --- a/motorradig/composer.lock +++ b/motorradig/composer.lock @@ -1800,11 +1800,6 @@ "MIT" ], "authors": [ - { - "name": "Ben Ramsey", - "email": "ben@benramsey.com", - "homepage": "https://benramsey.com" - }, { "name": "Marijn Huizendveld", "email": "marijn.huizendveld@gmail.com" @@ -1812,6 +1807,11 @@ { "name": "Thibaud Fabre", "email": "thibaud@aztech.io" + }, + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" } ], "description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).", diff --git a/motorradig/public/js/Icon.js b/motorradig/public/js/Icon.js index 1abe271..f001292 100644 --- a/motorradig/public/js/Icon.js +++ b/motorradig/public/js/Icon.js @@ -391,7 +391,7 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! /mnt/d/dev/repos/motorradig/motorradig/resources/js/Icon.js */"./resources/js/Icon.js"); +module.exports = __webpack_require__(/*! /Users/tschneider/dev/repo/motorradig/motorradig/resources/js/Icon.js */"./resources/js/Icon.js"); /***/ }) diff --git a/motorradig/public/js/app.js b/motorradig/public/js/app.js index 4d3712f..fc730a7 100644 --- a/motorradig/public/js/app.js +++ b/motorradig/public/js/app.js @@ -110,7 +110,6 @@ module.exports = __webpack_require__(/*! ./lib/axios */ "./node_modules/axios/li var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); var settle = __webpack_require__(/*! ./../core/settle */ "./node_modules/axios/lib/core/settle.js"); var buildURL = __webpack_require__(/*! ./../helpers/buildURL */ "./node_modules/axios/lib/helpers/buildURL.js"); -var buildFullPath = __webpack_require__(/*! ../core/buildFullPath */ "./node_modules/axios/lib/core/buildFullPath.js"); var parseHeaders = __webpack_require__(/*! ./../helpers/parseHeaders */ "./node_modules/axios/lib/helpers/parseHeaders.js"); var isURLSameOrigin = __webpack_require__(/*! ./../helpers/isURLSameOrigin */ "./node_modules/axios/lib/helpers/isURLSameOrigin.js"); var createError = __webpack_require__(/*! ../core/createError */ "./node_modules/axios/lib/core/createError.js"); @@ -133,8 +132,7 @@ module.exports = function xhrAdapter(config) { requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); } - var fullPath = buildFullPath(config.baseURL, config.url); - request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true); // Set the request timeout in MS request.timeout = config.timeout; @@ -195,11 +193,7 @@ module.exports = function xhrAdapter(config) { // Handle timeout request.ontimeout = function handleTimeout() { - var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded'; - if (config.timeoutErrorMessage) { - timeoutErrorMessage = config.timeoutErrorMessage; - } - reject(createError(timeoutErrorMessage, config, 'ECONNABORTED', + reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', request)); // Clean up request @@ -213,7 +207,7 @@ module.exports = function xhrAdapter(config) { var cookies = __webpack_require__(/*! ./../helpers/cookies */ "./node_modules/axios/lib/helpers/cookies.js"); // Add xsrf header - var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? + var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined; @@ -236,8 +230,8 @@ module.exports = function xhrAdapter(config) { } // Add withCredentials to request if needed - if (!utils.isUndefined(config.withCredentials)) { - request.withCredentials = !!config.withCredentials; + if (config.withCredentials) { + request.withCredentials = true; } // Add responseType to request if needed @@ -516,15 +510,7 @@ Axios.prototype.request = function request(config) { } config = mergeConfig(this.defaults, config); - - // Set config.method - if (config.method) { - config.method = config.method.toLowerCase(); - } else if (this.defaults.method) { - config.method = this.defaults.method.toLowerCase(); - } else { - config.method = 'get'; - } + config.method = config.method ? config.method.toLowerCase() : 'get'; // Hook up interceptors middleware var chain = [dispatchRequest, undefined]; @@ -639,38 +625,6 @@ InterceptorManager.prototype.forEach = function forEach(fn) { module.exports = InterceptorManager; -/***/ }), - -/***/ "./node_modules/axios/lib/core/buildFullPath.js": -/*!******************************************************!*\ - !*** ./node_modules/axios/lib/core/buildFullPath.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var isAbsoluteURL = __webpack_require__(/*! ../helpers/isAbsoluteURL */ "./node_modules/axios/lib/helpers/isAbsoluteURL.js"); -var combineURLs = __webpack_require__(/*! ../helpers/combineURLs */ "./node_modules/axios/lib/helpers/combineURLs.js"); - -/** - * Creates a new URL by combining the baseURL with the requestedURL, - * only when the requestedURL is not already an absolute URL. - * If the requestURL is absolute, this function returns the requestedURL untouched. - * - * @param {string} baseURL The base URL - * @param {string} requestedURL Absolute or relative URL to combine - * @returns {string} The combined full path - */ -module.exports = function buildFullPath(baseURL, requestedURL) { - if (baseURL && !isAbsoluteURL(requestedURL)) { - return combineURLs(baseURL, requestedURL); - } - return requestedURL; -}; - - /***/ }), /***/ "./node_modules/axios/lib/core/createError.js": @@ -717,6 +671,8 @@ var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/util var transformData = __webpack_require__(/*! ./transformData */ "./node_modules/axios/lib/core/transformData.js"); var isCancel = __webpack_require__(/*! ../cancel/isCancel */ "./node_modules/axios/lib/cancel/isCancel.js"); var defaults = __webpack_require__(/*! ../defaults */ "./node_modules/axios/lib/defaults.js"); +var isAbsoluteURL = __webpack_require__(/*! ./../helpers/isAbsoluteURL */ "./node_modules/axios/lib/helpers/isAbsoluteURL.js"); +var combineURLs = __webpack_require__(/*! ./../helpers/combineURLs */ "./node_modules/axios/lib/helpers/combineURLs.js"); /** * Throws a `Cancel` if cancellation has been requested. @@ -736,6 +692,11 @@ function throwIfCancellationRequested(config) { module.exports = function dispatchRequest(config) { throwIfCancellationRequested(config); + // Support baseURL config + if (config.baseURL && !isAbsoluteURL(config.url)) { + config.url = combineURLs(config.baseURL, config.url); + } + // Ensure headers exist config.headers = config.headers || {}; @@ -750,7 +711,7 @@ module.exports = function dispatchRequest(config) { config.headers = utils.merge( config.headers.common || {}, config.headers[config.method] || {}, - config.headers + config.headers || {} ); utils.forEach( @@ -873,23 +834,13 @@ module.exports = function mergeConfig(config1, config2) { config2 = config2 || {}; var config = {}; - var valueFromConfig2Keys = ['url', 'method', 'params', 'data']; - var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy']; - var defaultToConfig2Keys = [ - 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer', - 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', - 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', - 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent', - 'httpsAgent', 'cancelToken', 'socketPath' - ]; - - utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) { + utils.forEach(['url', 'method', 'params', 'data'], function valueFromConfig2(prop) { if (typeof config2[prop] !== 'undefined') { config[prop] = config2[prop]; } }); - utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) { + utils.forEach(['headers', 'auth', 'proxy'], function mergeDeepProperties(prop) { if (utils.isObject(config2[prop])) { config[prop] = utils.deepMerge(config1[prop], config2[prop]); } else if (typeof config2[prop] !== 'undefined') { @@ -901,25 +852,13 @@ module.exports = function mergeConfig(config1, config2) { } }); - utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) { - if (typeof config2[prop] !== 'undefined') { - config[prop] = config2[prop]; - } else if (typeof config1[prop] !== 'undefined') { - config[prop] = config1[prop]; - } - }); - - var axiosKeys = valueFromConfig2Keys - .concat(mergeDeepPropertiesKeys) - .concat(defaultToConfig2Keys); - - var otherKeys = Object - .keys(config2) - .filter(function filterAxiosKeys(key) { - return axiosKeys.indexOf(key) === -1; - }); - - utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) { + utils.forEach([ + 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', + 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', + 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength', + 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken', + 'socketPath' + ], function defaultToConfig2(prop) { if (typeof config2[prop] !== 'undefined') { config[prop] = config2[prop]; } else if (typeof config1[prop] !== 'undefined') { @@ -1027,12 +966,13 @@ function setContentTypeIfUnset(headers, value) { function getDefaultAdapter() { var adapter; - if (typeof XMLHttpRequest !== 'undefined') { - // For browsers use XHR adapter - adapter = __webpack_require__(/*! ./adapters/xhr */ "./node_modules/axios/lib/adapters/xhr.js"); - } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { + // Only Node.JS has a process variable that is of [[Class]] process + if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { // For node use HTTP adapter adapter = __webpack_require__(/*! ./adapters/http */ "./node_modules/axios/lib/adapters/xhr.js"); + } else if (typeof XMLHttpRequest !== 'undefined') { + // For browsers use XHR adapter + adapter = __webpack_require__(/*! ./adapters/xhr */ "./node_modules/axios/lib/adapters/xhr.js"); } return adapter; } @@ -1554,6 +1494,7 @@ module.exports = function spread(callback) { var bind = __webpack_require__(/*! ./helpers/bind */ "./node_modules/axios/lib/helpers/bind.js"); +var isBuffer = __webpack_require__(/*! is-buffer */ "./node_modules/is-buffer/index.js"); /*global toString:true*/ @@ -1571,27 +1512,6 @@ function isArray(val) { return toString.call(val) === '[object Array]'; } -/** - * Determine if a value is undefined - * - * @param {Object} val The value to test - * @returns {boolean} True if the value is undefined, otherwise false - */ -function isUndefined(val) { - return typeof val === 'undefined'; -} - -/** - * Determine if a value is a Buffer - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Buffer, otherwise false - */ -function isBuffer(val) { - return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) - && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val); -} - /** * Determine if a value is an ArrayBuffer * @@ -1648,6 +1568,16 @@ function isNumber(val) { return typeof val === 'number'; } +/** + * Determine if a value is undefined + * + * @param {Object} val The value to test + * @returns {boolean} True if the value is undefined, otherwise false + */ +function isUndefined(val) { + return typeof val === 'undefined'; +} + /** * Determine if a value is an Object * @@ -2014,6 +1944,180 @@ __webpack_require__.r(__webpack_exports__); /***/ }), +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/views/Gallery.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/views/Gallery.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 tiptap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tiptap */ "./node_modules/tiptap/dist/tiptap.esm.js"); +/* harmony import */ var tiptap_extensions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tiptap-extensions */ "./node_modules/tiptap-extensions/dist/extensions.esm.js"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + EditorContent: tiptap__WEBPACK_IMPORTED_MODULE_0__["EditorContent"], + EditorMenuBar: tiptap__WEBPACK_IMPORTED_MODULE_0__["EditorMenuBar"] + }, + data: function data() { + return { + editor: new tiptap__WEBPACK_IMPORTED_MODULE_0__["Editor"]({ + extensions: [new tiptap_extensions__WEBPACK_IMPORTED_MODULE_1__["Blockquote"](), new tiptap_extensions__WEBPACK_IMPORTED_MODULE_1__["BulletList"](), new tiptap_extensions__WEBPACK_IMPORTED_MODULE_1__["CodeBlock"](), new tiptap_extensions__WEBPACK_IMPORTED_MODULE_1__["HardBreak"](), new tiptap_extensions__WEBPACK_IMPORTED_MODULE_1__["Heading"]({ + levels: [1, 2, 3] + }), new tiptap_extensions__WEBPACK_IMPORTED_MODULE_1__["HorizontalRule"](), new tiptap_extensions__WEBPACK_IMPORTED_MODULE_1__["ListItem"](), new tiptap_extensions__WEBPACK_IMPORTED_MODULE_1__["OrderedList"](), new tiptap_extensions__WEBPACK_IMPORTED_MODULE_1__["TodoItem"](), new tiptap_extensions__WEBPACK_IMPORTED_MODULE_1__["TodoList"](), new tiptap_extensions__WEBPACK_IMPORTED_MODULE_1__["Link"](), new tiptap_extensions__WEBPACK_IMPORTED_MODULE_1__["Bold"](), new tiptap_extensions__WEBPACK_IMPORTED_MODULE_1__["Code"](), new tiptap_extensions__WEBPACK_IMPORTED_MODULE_1__["Italic"](), new tiptap_extensions__WEBPACK_IMPORTED_MODULE_1__["Strike"](), new tiptap_extensions__WEBPACK_IMPORTED_MODULE_1__["Underline"](), new tiptap_extensions__WEBPACK_IMPORTED_MODULE_1__["History"]()] + }), + //folders: this.$store.state.folders + folders: ['Folder1', 'Folder2'], + selectedFolder: this.$store.state.selectedFolder + }; + }, + beforeDestroy: function beforeDestroy() { + this.editor.destroy(); + }, + created: function created() { + this.loadFoldersWithImages(); + }, + methods: { + showContent: function showContent() { + console.log(">>"); //console.log(this.editor.view.dom.innerText); + //console.log(this.editor.docView.dom.innerHTML); + + console.log(this.editor.view.docView.dom.innerHTML); + }, + savePage: function savePage() { + var _this = this; + + console.log('Saving to page:' + this.$store.state.page_name); + axios.post('http://localhost:8000/api/v1/auth/save_page', { + page: this.$store.state.page_name, + body: this.editor.view.docView.dom.innerHTML + }, { + headers: { + 'Authorization': 'Bearer ' + this.$store.state.user_token + } + }).then(function (res) { + console.log("savePage success: Wrote " + _this.$store.state.page_name); + console.log("Going back to main view"); + + _this.$router.push("/"); + }); + }, + uploadFile: function uploadFile(event) { + console.log("File changed:"); + console.log(event.target.files[0].name); + var selectedFile = event.target.files[0]; + var selectedFolder = this.$store.state.selectedFolder; + var formData = new FormData(); //formData.append('image',selectedFile,selectedFile.name); + + formData.append('image', selectedFile); + formData.append('folder', selectedFolder); + axios.post('http://localhost:8000/api/v1/auth/upload', formData, { + headers: { + 'Authorization': 'Bearer ' + this.$store.state.user_token, + 'Content-Type': 'multipart/form-data' + } + }).then(function (res) { + console.log(res); + }); + }, + createFolderRequest: function createFolderRequest(event) { + var _this2 = this; + + var folderName = event.target.value; + console.log("Request creation of folder:" + folderName); + var formData = new FormData(); + formData.append("folder", folderName); + axios.post('http://localhost:8000/api/v1/auth/create_folder', formData, { + headers: { + 'Authorization': 'Bearer ' + this.$store.state.user_token, + 'Content-Type': 'multipart/form-data' + } + }).then(function (res) { + console.log(res.data); + + _this2.$store.state.folders.push(folderName); + + _this2.$store.state.selectedFolder = folderName; + }); + }, + loadFoldersWithImages: function loadFoldersWithImages() { + var _this3 = this; + + console.log("Requesting folders with images"); + axios.post('http://localhost:8000/api/v1/auth/get_folders_with_images', {}, { + headers: { + 'Authorization': 'Bearer ' + this.$store.state.user_token + } + }).then(function (res) { + console.log("Receiving folders"); + console.log(res.data.folders); + _this3.$store.state.folders = res.data.folders; + console.log("Length:" + res.data.folders.length); + console.log("First entry:"); + console.log(res.data.folders); + console.log("Received the following data:"); + + for (var i = 0; i < res.data.folders.length; i++) { + var folder = res.data.folders[i].folder_name; + var file = res.data.folders[i].file_name; + console.log('http://localhost:8000/upload/images/' + folder + "/" + file); + } + }); + }, + newFolderSelected: function newFolderSelected(event) { + console.log("New Folder selected:"); + console.log(event.target.value); + this.$store.state.selectedFolder = event.target.value; + } + } +}); + +/***/ }), + /***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/views/Main.vue?vue&type=script&lang=js&": /*!**********************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/views/Main.vue?vue&type=script&lang=js& ***! @@ -2071,6 +2175,9 @@ __webpack_require__.r(__webpack_exports__); // // // +// +// +// /* harmony default export */ __webpack_exports__["default"] = ({ data: function data() { return { @@ -2129,6 +2236,10 @@ __webpack_require__.r(__webpack_exports__); console.log(res.data.body); _this2.$store.state.page_content = res.data.body; }); + }, + galleryPage: function galleryPage() { + console.log("Pushing to Gallery Page"); + this.$router.push('/gallery'); } }, created: function created() { @@ -3935,6 +4046,28 @@ https://highlightjs.org/ })); +/***/ }), + +/***/ "./node_modules/is-buffer/index.js": +/*!*****************************************!*\ + !*** ./node_modules/is-buffer/index.js ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ + +module.exports = function isBuffer (obj) { + return obj != null && obj.constructor != null && + typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) +} + + /***/ }), /***/ "./node_modules/lowlight/lib/core.js": @@ -31427,6 +31560,149 @@ render._withStripped = true +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/views/Gallery.vue?vue&type=template&id=c9f3dafa&": +/*!*****************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/views/Gallery.vue?vue&type=template&id=c9f3dafa& ***! + \*****************************************************************************************************************************************************************************************************/ +/*! 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("div", { attrs: { id: "root" } }, [ + _c("div", { staticClass: "title level-item has-text-centered" }, [ + _vm._v("Motorrad IG\n ") + ]), + _vm._v(" "), + _c( + "div", + { staticClass: "has-text-centered" }, + [ + _c( + "button", + { staticClass: "button", on: { click: function($event) {} } }, + [_vm._v("Über uns")] + ), + _vm._v(" "), + _c( + "button", + { staticClass: "button", on: { click: function($event) {} } }, + [_vm._v("Aktuelles")] + ), + _vm._v(" "), + _c( + "button", + { staticClass: "button", on: { click: function($event) {} } }, + [_vm._v("Mitgliedsantrag")] + ), + _vm._v(" "), + !this.$store.state.user.hasOwnProperty("role") + ? _c("span", [ + _c( + "button", + { staticClass: "button", on: { click: function($event) {} } }, + [_vm._v("Tourplan (Beispiel)")] + ) + ]) + : this.$store.state.user.role === "GUEST" + ? _c("span", [ + _c( + "button", + { staticClass: "button", on: { click: function($event) {} } }, + [_vm._v("Tourplan (Gast)")] + ) + ]) + : this.$store.state.user.role === "MEMBER" + ? _c("span", [ + _c( + "button", + { staticClass: "button", on: { click: function($event) {} } }, + [_vm._v("Tourplan (komplett)")] + ) + ]) + : this.$store.state.user.role === "ADMIN" + ? _c("span", [ + _c( + "button", + { staticClass: "button", on: { click: function($event) {} } }, + [_vm._v("Tourplan (komplett)")] + ) + ]) + : _vm._e(), + _vm._v(" "), + _c( + "button", + { staticClass: "button", on: { click: function($event) {} } }, + [_vm._v("Wetter")] + ), + _vm._v(" "), + _c( + "button", + { staticClass: "button", on: { click: function($event) {} } }, + [_vm._v("Links")] + ), + _vm._v(" "), + _c( + "button", + { staticClass: "button", on: { click: function($event) {} } }, + [_vm._v("Impressum")] + ), + _vm._v(" "), + _c( + "button", + { + staticClass: "button", + on: { + click: function($event) { + return _vm.showContent() + } + } + }, + [_vm._v("Show content")] + ), + _vm._v(" "), + _c( + "router-link", + { staticClass: "button", attrs: { to: { name: "Login" } } }, + [_vm._v("Log-In")] + ), + _vm._v(" "), + _vm._m(0), + _vm._v(" "), + _vm._m(1) + ], + 1 + ) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticStyle: { "background-color": "darkmagenta" } }, [ + _c("p", [_vm._v("  ....."), _c("br")]) + ]) + }, + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", [_c("span", [_vm._v("GALLERY:")])]) + } +] +render._withStripped = true + + + /***/ }), /***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/views/Main.vue?vue&type=template&id=2ad93e50&": @@ -31550,6 +31826,40 @@ var render = function() { ]) : _vm._e(), _vm._v(" "), + this.$store.state.user.role === "MEMBER" + ? _c("span", [ + _c( + "button", + { + staticClass: "button", + on: { + click: function($event) { + return _vm.galleryPage() + } + } + }, + [_vm._v("Bilder-Uploads")] + ) + ]) + : _vm._e(), + _vm._v(" "), + this.$store.state.user.role === "ADMIN" + ? _c("span", [ + _c( + "button", + { + staticClass: "button", + on: { + click: function($event) { + return _vm.galleryPage() + } + } + }, + [_vm._v("Bilder-Uploads")] + ) + ]) + : _vm._e(), + _vm._v(" "), _c( "button", { staticClass: "button", on: { click: function($event) {} } }, @@ -35496,7 +35806,7 @@ if (inBrowser && window.Vue) { "use strict"; /* WEBPACK VAR INJECTION */(function(global, setImmediate) {/*! - * Vue.js v2.6.11 + * Vue.js v2.6.10 * (c) 2014-2019 Evan You * Released under the MIT License. */ @@ -37462,7 +37772,7 @@ if (typeof Promise !== 'undefined' && isNative(Promise)) { isUsingMicroTask = true; } else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) { // Fallback to setImmediate. - // Technically it leverages the (macro) task queue, + // Techinically it leverages the (macro) task queue, // but it is still a better choice than setTimeout. timerFunc = function () { setImmediate(flushCallbacks); @@ -37551,7 +37861,7 @@ var initProxy; warn( "Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " + 'properties starting with "$" or "_" are not proxied in the Vue instance to ' + - 'prevent conflicts with Vue internals. ' + + 'prevent conflicts with Vue internals' + 'See: https://vuejs.org/v2/api/#data', target ); @@ -38411,7 +38721,7 @@ function bindDynamicKeys (baseObj, values) { if (typeof key === 'string' && key) { baseObj[values[i]] = values[i + 1]; } else if (key !== '' && key !== null) { - // null is a special value for explicitly removing a binding + // null is a speical value for explicitly removing a binding warn( ("Invalid value for dynamic directive argument (expected string or null): " + key), this @@ -38906,12 +39216,6 @@ function _createElement ( ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag); if (config.isReservedTag(tag)) { // platform built-in elements - if (isDef(data) && isDef(data.nativeOn)) { - warn( - ("The .native modifier for v-on is only valid on components but it was used on <" + tag + ">."), - context - ); - } vnode = new VNode( config.parsePlatformTagName(tag), data, children, undefined, undefined, context @@ -39037,7 +39341,7 @@ function renderMixin (Vue) { // render self var vnode; try { - // There's no need to maintain a stack because all render fns are called + // There's no need to maintain a stack becaues all render fns are called // separately from one another. Nested component's render fns are called // when parent component is patched. currentRenderingInstance = vm; @@ -40936,7 +41240,7 @@ Object.defineProperty(Vue, 'FunctionalRenderContext', { value: FunctionalRenderContext }); -Vue.version = '2.6.11'; +Vue.version = '2.6.10'; /* */ @@ -41609,7 +41913,7 @@ function createPatchFunction (backend) { } } - function removeVnodes (vnodes, startIdx, endIdx) { + function removeVnodes (parentElm, vnodes, startIdx, endIdx) { for (; startIdx <= endIdx; ++startIdx) { var ch = vnodes[startIdx]; if (isDef(ch)) { @@ -41720,7 +42024,7 @@ function createPatchFunction (backend) { refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm; addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue); } else if (newStartIdx > newEndIdx) { - removeVnodes(oldCh, oldStartIdx, oldEndIdx); + removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx); } } @@ -41812,7 +42116,7 @@ function createPatchFunction (backend) { if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); } addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue); } else if (isDef(oldCh)) { - removeVnodes(oldCh, 0, oldCh.length - 1); + removeVnodes(elm, oldCh, 0, oldCh.length - 1); } else if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); } @@ -42041,7 +42345,7 @@ function createPatchFunction (backend) { // destroy old node if (isDef(parentElm)) { - removeVnodes([oldVnode], 0, 0); + removeVnodes(parentElm, [oldVnode], 0, 0); } else if (isDef(oldVnode.tag)) { invokeDestroyHook(oldVnode); } @@ -44747,7 +45051,7 @@ var startTagOpen = new RegExp(("^<" + qnameCapture)); var startTagClose = /^\s*(\/?)>/; var endTag = new RegExp(("^<\\/" + qnameCapture + "[^>]*>")); var doctype = /^]+>/i; -// #7298: escape - to avoid being passed as HTML comment when inlined in page +// #7298: escape - to avoid being pased as HTML comment when inlined in page var comment = /^ can only appear at the root level inside " + - "the receiving component", + "the receiving the component", el ); } @@ -46219,7 +46523,7 @@ function isDirectChildOfTemplateFor (node) { /* */ -var fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/; +var fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function\s*(?:[\w$]+)?\s*\(/; var fnInvokeRE = /\([^)]*?\);*$/; var simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/; @@ -46988,8 +47292,6 @@ function checkNode (node, warn) { var range = node.rawAttrsMap[name]; if (name === 'v-for') { checkFor(node, ("v-for=\"" + value + "\""), warn, range); - } else if (name === 'v-slot' || name[0] === '#') { - checkFunctionParameterExpression(value, (name + "=\"" + value + "\""), warn, range); } else if (onRE.test(name)) { checkEvent(value, (name + "=\"" + value + "\""), warn, range); } else { @@ -47009,9 +47311,9 @@ function checkNode (node, warn) { } function checkEvent (exp, text, warn, range) { - var stripped = exp.replace(stripStringRE, ''); - var keywordMatch = stripped.match(unaryOperatorsRE); - if (keywordMatch && stripped.charAt(keywordMatch.index - 1) !== '$') { + var stipped = exp.replace(stripStringRE, ''); + var keywordMatch = stipped.match(unaryOperatorsRE); + if (keywordMatch && stipped.charAt(keywordMatch.index - 1) !== '$') { warn( "avoid using JavaScript unary operator as property name: " + "\"" + (keywordMatch[0]) + "\" in expression " + (text.trim()), @@ -47066,19 +47368,6 @@ function checkExpression (exp, text, warn, range) { } } -function checkFunctionParameterExpression (exp, text, warn, range) { - try { - new Function(exp, ''); - } catch (e) { - warn( - "invalid function parameter expression: " + (e.message) + " in\n\n" + - " " + exp + "\n\n" + - " Raw expression: " + (text.trim()) + "\n", - range - ); - } -} - /* */ var range = 2; @@ -48784,9 +49073,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _views_EditPage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./views/EditPage */ "./resources/js/views/EditPage.vue"); /* harmony import */ var _views_UserList__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./views/UserList */ "./resources/js/views/UserList.vue"); /* harmony import */ var _views_Upload__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./views/Upload */ "./resources/js/views/Upload.vue"); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.common.js"); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var vue_router__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vue-router */ "./node_modules/vue-router/dist/vue-router.esm.js"); +/* harmony import */ var _views_Gallery__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./views/Gallery */ "./resources/js/views/Gallery.vue"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.common.js"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_7__); +/* harmony import */ var vue_router__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vue-router */ "./node_modules/vue-router/dist/vue-router.esm.js"); + @@ -48819,8 +49110,12 @@ var routes = [{ path: '/upload', name: 'upload', component: _views_Upload__WEBPACK_IMPORTED_MODULE_5__["default"] +}, { + path: '/gallery', + name: 'galley', + component: _views_Gallery__WEBPACK_IMPORTED_MODULE_6__["default"] }]; -vue__WEBPACK_IMPORTED_MODULE_6___default.a.use(vue_router__WEBPACK_IMPORTED_MODULE_7__["default"]); +vue__WEBPACK_IMPORTED_MODULE_7___default.a.use(vue_router__WEBPACK_IMPORTED_MODULE_8__["default"]); /***/ }), @@ -48921,6 +49216,75 @@ __webpack_require__.r(__webpack_exports__); +/***/ }), + +/***/ "./resources/js/views/Gallery.vue": +/*!****************************************!*\ + !*** ./resources/js/views/Gallery.vue ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Gallery_vue_vue_type_template_id_c9f3dafa___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Gallery.vue?vue&type=template&id=c9f3dafa& */ "./resources/js/views/Gallery.vue?vue&type=template&id=c9f3dafa&"); +/* harmony import */ var _Gallery_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Gallery.vue?vue&type=script&lang=js& */ "./resources/js/views/Gallery.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"])( + _Gallery_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Gallery_vue_vue_type_template_id_c9f3dafa___WEBPACK_IMPORTED_MODULE_0__["render"], + _Gallery_vue_vue_type_template_id_c9f3dafa___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "resources/js/views/Gallery.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./resources/js/views/Gallery.vue?vue&type=script&lang=js&": +/*!*****************************************************************!*\ + !*** ./resources/js/views/Gallery.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_Gallery_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!./Gallery.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/views/Gallery.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_Gallery_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./resources/js/views/Gallery.vue?vue&type=template&id=c9f3dafa&": +/*!***********************************************************************!*\ + !*** ./resources/js/views/Gallery.vue?vue&type=template&id=c9f3dafa& ***! + \***********************************************************************/ +/*! 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_Gallery_vue_vue_type_template_id_c9f3dafa___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!./Gallery.vue?vue&type=template&id=c9f3dafa& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/views/Gallery.vue?vue&type=template&id=c9f3dafa&"); +/* 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_Gallery_vue_vue_type_template_id_c9f3dafa___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_Gallery_vue_vue_type_template_id_c9f3dafa___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + /***/ }), /***/ "./resources/js/views/Main.vue": @@ -49286,8 +49650,8 @@ __webpack_require__.r(__webpack_exports__); /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -__webpack_require__(/*! /mnt/d/dev/repos/motorradig/motorradig/resources/js/app.js */"./resources/js/app.js"); -module.exports = __webpack_require__(/*! /mnt/d/dev/repos/motorradig/motorradig/resources/sass/app.scss */"./resources/sass/app.scss"); +__webpack_require__(/*! /Users/tschneider/dev/repo/motorradig/motorradig/resources/js/app.js */"./resources/js/app.js"); +module.exports = __webpack_require__(/*! /Users/tschneider/dev/repo/motorradig/motorradig/resources/sass/app.scss */"./resources/sass/app.scss"); /***/ }) diff --git a/motorradig/resources/js/routes.js b/motorradig/resources/js/routes.js index 0b2139e..d6ff635 100644 --- a/motorradig/resources/js/routes.js +++ b/motorradig/resources/js/routes.js @@ -4,6 +4,7 @@ import Main from "./views/Main"; import EditPage from "./views/EditPage"; import UserList from "./views/UserList"; import Upload from "./views/Upload"; +import Gallery from "./views/Gallery"; import Vue from 'vue'; import VueRouter from "vue-router"; @@ -15,6 +16,7 @@ export const routes= [ { path:'/edit_page', name : 'edit_page', component: EditPage }, { path:'/userlist', name : 'userlist', component: UserList }, { path:'/upload', name : 'upload', component: Upload }, + { path:'/gallery', name : 'galley', component: Gallery }, ]; diff --git a/motorradig/resources/js/views/Gallery.vue b/motorradig/resources/js/views/Gallery.vue new file mode 100644 index 0000000..027bcf5 --- /dev/null +++ b/motorradig/resources/js/views/Gallery.vue @@ -0,0 +1,200 @@ + + + + diff --git a/motorradig/resources/js/views/Main.vue b/motorradig/resources/js/views/Main.vue index ad26a8f..80f20ad 100644 --- a/motorradig/resources/js/views/Main.vue +++ b/motorradig/resources/js/views/Main.vue @@ -17,6 +17,9 @@ + + + @@ -110,6 +113,10 @@ } ) + }, + galleryPage() { + console.log("Pushing to Gallery Page"); + this.$router.push('/gallery'); } } , diff --git a/motorradig/routes/api.php b/motorradig/routes/api.php index ec6ca25..690552a 100644 --- a/motorradig/routes/api.php +++ b/motorradig/routes/api.php @@ -54,6 +54,8 @@ Route::prefix('v1')->group(function () { Route::post('create_folder','FileController@createFolder'); Route::post('get_folders','FileController@getFolders'); + + Route::post('get_folders_with_images','FileController@getFoldersWithImages'); }); }); });