Provide list of images and folder for generation of publically available URL
This commit is contained in:
parent
315c9dc0b8
commit
bded5c06b2
9 changed files with 766 additions and 163 deletions
16
motorradig/.idea/workspace.xml
generated
16
motorradig/.idea/workspace.xml
generated
|
|
@ -2,7 +2,15 @@
|
|||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="eed7de89-f054-487c-bf59-36356758942b" name="Default Changelist" comment="">
|
||||
<change afterPath="$PROJECT_DIR$/resources/js/views/Gallery.vue" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/FileController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/FileController.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/composer.lock" beforeDir="false" afterPath="$PROJECT_DIR$/composer.lock" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/js/Icon.js" beforeDir="false" afterPath="$PROJECT_DIR$/public/js/Icon.js" 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/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" />
|
||||
<change beforePath="$PROJECT_DIR$/routes/api.php" beforeDir="false" afterPath="$PROJECT_DIR$/routes/api.php" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
|
@ -151,6 +159,10 @@
|
|||
<property name="settings.editor.selected.configurable" value="preferences.general" />
|
||||
</component>
|
||||
<component name="RecentsManager">
|
||||
<key name="MoveFile.RECENT_KEYS">
|
||||
<recent name="$PROJECT_DIR$/resources/views" />
|
||||
<recent name="$PROJECT_DIR$/public" />
|
||||
</key>
|
||||
<key name="CopyFile.RECENT_KEYS">
|
||||
<recent name="$PROJECT_DIR$/resources/js/views" />
|
||||
<recent name="D:\repos\motorradig\motorradig\resources\js\views" />
|
||||
|
|
@ -158,10 +170,6 @@
|
|||
<recent name="$PROJECT_DIR$/app/Http/Controllers" />
|
||||
<recent name="$PROJECT_DIR$/resources/js" />
|
||||
</key>
|
||||
<key name="MoveFile.RECENT_KEYS">
|
||||
<recent name="$PROJECT_DIR$/resources/views" />
|
||||
<recent name="$PROJECT_DIR$/public" />
|
||||
</key>
|
||||
</component>
|
||||
<component name="RunManager" selected="Node.js.app.js">
|
||||
<configuration name="app.js" type="NodeJSConfigurationType" temporary="true" nameIsGenerated="true" path-to-js-file="$PROJECT_DIR$/public/js/app.js" working-dir="$PROJECT_DIR$/public/js">
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
10
motorradig/composer.lock
generated
10
motorradig/composer.lock
generated
|
|
@ -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).",
|
||||
|
|
|
|||
2
motorradig/public/js/Icon.js
vendored
2
motorradig/public/js/Icon.js
vendored
|
|
@ -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");
|
||||
|
||||
|
||||
/***/ })
|
||||
|
|
|
|||
670
motorradig/public/js/app.js
vendored
670
motorradig/public/js/app.js
vendored
|
|
@ -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 <https://feross.org>
|
||||
* @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 = /^<!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 = /^<!\--/;
|
||||
var conditionalComment = /^<!\[/;
|
||||
|
||||
|
|
@ -45032,7 +45336,7 @@ function parseHTML (html, options) {
|
|||
/* */
|
||||
|
||||
var onRE = /^@|^v-on:/;
|
||||
var dirRE = /^v-|^@|^:|^#/;
|
||||
var dirRE = /^v-|^@|^:/;
|
||||
var forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/;
|
||||
var forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/;
|
||||
var stripParensRE = /^\(|\)$/g;
|
||||
|
|
@ -45656,7 +45960,7 @@ function processSlotContent (el) {
|
|||
if (el.parent && !maybeComponent(el.parent)) {
|
||||
warn$2(
|
||||
"<template v-slot> 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");
|
||||
|
||||
|
||||
/***/ })
|
||||
|
|
|
|||
2
motorradig/resources/js/routes.js
vendored
2
motorradig/resources/js/routes.js
vendored
|
|
@ -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 },
|
||||
|
||||
];
|
||||
|
||||
|
|
|
|||
200
motorradig/resources/js/views/Gallery.vue
Normal file
200
motorradig/resources/js/views/Gallery.vue
Normal file
|
|
@ -0,0 +1,200 @@
|
|||
<template>
|
||||
<div id="root">
|
||||
|
||||
<div class="title level-item has-text-centered">Motorrad IG
|
||||
</div>
|
||||
|
||||
<div class="has-text-centered">
|
||||
|
||||
<button class="button" @click="" >Über uns</button>
|
||||
<button class="button" @click="" >Aktuelles</button>
|
||||
<button class="button" @click="">Mitgliedsantrag</button>
|
||||
|
||||
<span v-if="!this.$store.state.user.hasOwnProperty('role')"><button class="button" @click="" >Tourplan (Beispiel)</button></span>
|
||||
<span v-else-if="this.$store.state.user.role==='GUEST'"><button class="button" @click="" >Tourplan (Gast)</button></span>
|
||||
<span v-else-if="this.$store.state.user.role==='MEMBER'"><button class="button" @click="" >Tourplan (komplett)</button></span>
|
||||
<span v-else-if="this.$store.state.user.role==='ADMIN'"><button class="button" @click="" >Tourplan (komplett)</button></span>
|
||||
|
||||
|
||||
<button class="button" @click="" >Wetter</button>
|
||||
<button class="button" @click="" >Links</button>
|
||||
<button class="button" @click="" >Impressum</button>
|
||||
|
||||
<button class="button" @click="showContent()" >Show content</button>
|
||||
|
||||
<router-link class="button" :to="{ name: 'Login' }">Log-In</router-link>
|
||||
|
||||
|
||||
<div style="background-color:darkmagenta;">
|
||||
<p> .....<br/></p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<span>GALLERY:</span>
|
||||
</div>
|
||||
|
||||
</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(),
|
||||
]
|
||||
}),
|
||||
//folders: this.$store.state.folders
|
||||
folders: ['Folder1','Folder2'],
|
||||
selectedFolder:this.$store.state.selectedFolder
|
||||
}
|
||||
},
|
||||
beforeDestroy() {
|
||||
this.editor.destroy()
|
||||
},
|
||||
created() {
|
||||
this.loadFoldersWithImages();
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
||||
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() {
|
||||
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(res => {
|
||||
console.log("savePage success: Wrote "+this.$store.state.page_name);
|
||||
console.log("Going back to main view");
|
||||
this.$router.push("/");
|
||||
}
|
||||
)
|
||||
},
|
||||
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;
|
||||
const 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(res=>{
|
||||
console.log(res);
|
||||
})
|
||||
},
|
||||
createFolderRequest(event) {
|
||||
var folderName=event.target.value;
|
||||
|
||||
console.log("Request creation of folder:"+folderName);
|
||||
|
||||
const 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(res=>{
|
||||
console.log(res.data);
|
||||
this.$store.state.folders.push(folderName);
|
||||
this.$store.state.selectedFolder=folderName;
|
||||
})
|
||||
},
|
||||
loadFoldersWithImages() {
|
||||
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(res=>{
|
||||
console.log("Receiving folders");
|
||||
console.log(res.data.folders);
|
||||
this.$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(event) {
|
||||
console.log("New Folder selected:");
|
||||
console.log(event.target.value);
|
||||
this.$store.state.selectedFolder=event.target.value;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
@ -17,6 +17,9 @@
|
|||
<span v-if="this.$store.state.user.role==='ADMIN'"><button class="button" @click="userlistPage()" >Userverwaltung</button></span>
|
||||
<span v-if="this.$store.state.user.role==='ADMIN'"><button class="button" @click="upload()" >Upload</button></span>
|
||||
|
||||
<span v-if="this.$store.state.user.role==='MEMBER'"><button class="button" @click="galleryPage()" >Bilder-Uploads</button></span>
|
||||
<span v-if="this.$store.state.user.role==='ADMIN'"><button class="button" @click="galleryPage()" >Bilder-Uploads</button></span>
|
||||
|
||||
<button class="button" @click="" >Wetter</button>
|
||||
<button class="button" @click="loadPage('links')" >Links</button>
|
||||
<button class="button" @click="loadPage('Impressum')" >Impressum</button>
|
||||
|
|
@ -110,6 +113,10 @@
|
|||
|
||||
}
|
||||
)
|
||||
},
|
||||
galleryPage() {
|
||||
console.log("Pushing to Gallery Page");
|
||||
this.$router.push('/gallery');
|
||||
}
|
||||
}
|
||||
,
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue