This commit is contained in:
Richard Dern
2022-01-12 00:35:37 +01:00
commit 400e3d01f1
1363 changed files with 57778 additions and 0 deletions

98
resources/js/modules/api.js vendored Executable file
View File

@@ -0,0 +1,98 @@
/**
* Default headers to apply to every query
*/
const defaultHeaders = {
"Content-Type": "application/json",
"X-Requested-With": "XMLHttpRequest",
"X-CSRF-TOKEN": document
.querySelector('meta[name="csrf-token"]')
.getAttribute("content")
};
export default {
/**
* Send a request and return resulting JSON
*/
async send(url, params, method = "POST", upload = false) {
let headers = defaultHeaders;
if (upload) {
headers["Content-Type"] = "multipart/form-data";
}
let options = {
method: method,
headers: headers
};
if (params) {
if (upload) {
options.body = params;
} else if (method === "GET") {
// Build the query string
var query = Object.keys(params)
.map(
k => {
let key = encodeURIComponent(k);
let val = params[k];
if (val.constructor === Array) {
let arr = [];
val.forEach((v => {
arr.push(key + "[]=" + encodeURIComponent(v));
}));
return arr.join('&');
} else {
return key + "=" + encodeURIComponent(val);
}
}
)
.join("&");
url = url + "?" + query;
} else {
options.body = JSON.stringify(params);
}
}
const response = await fetch(url, options);
try {
const json = await response.json();
return json;
} catch {
return response;
}
},
/**
* Send a GET request and return resulting JSON
*/
async get(url, params) {
return this.send(url, params, "GET");
},
/**
* Send a POST request and return resulting JSON
*/
async post(url, params, upload = false) {
return this.send(url, params, "POST", upload);
},
/**
* Send a PUT request and return resulting JSON
*/
async put(url, params) {
return this.send(url, params, "PUT");
},
/**
* Send a DELETE request and return resulting JSON
*/
async delete(url, params) {
return this.send(url, params, "DELETE");
}
};

5
resources/js/modules/bootstrap.js vendored Executable file
View File

@@ -0,0 +1,5 @@
//window.Vue = require('vue');
window.collect = require("collect.js");
import api from "./api";
window.api = api;

37
resources/js/modules/components.js vendored Executable file
View File

@@ -0,0 +1,37 @@
const sets = {
app: [
"Details/DetailsDocument",
"Details/DetailsDocuments",
"Details/DetailsFeedItem",
"Details/DetailsFolder",
"DocumentsList",
"FeedItemsList",
"FoldersTree",
],
import: ["Importer"],
highlights: ["Highlights", "Highlight"],
historyBrowser: ["HistoryBrowser"],
groups: [
"GroupsBrowser"
]
};
module.exports = function(set) {
const files = sets[set];
files.map(file => {
const componentName = file
.split("/")
.pop()
.match(
/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g
)
.map(x => x.toLowerCase())
.join("-");
Vue.component(
componentName,
require("../components/" + file + ".vue").default
);
});
};

32
resources/js/modules/router.js vendored Executable file
View File

@@ -0,0 +1,32 @@
const routes = require("./routes.json");
module.exports = function(name, params) {
if (routes[name] === undefined) {
console.error("Unknown route ", name);
} else {
return (
document.querySelector("base").getAttribute("href") +
"/" +
routes[name]
.split("/")
.map(s => {
if (s[0] == "{") {
var paramName = s.substring(1, s.length - 1);
if(params[paramName]) {
return params[paramName];
}
if (params.id) {
return params.id;
}
return paramName;
}
return s;
})
.join("/")
);
}
};

View File

@@ -0,0 +1 @@
{"logout":"logout","account":"account","home":"\/","account.password":"account\/password","account.import.form":"account\/import","account.import":"account\/import","account.export":"account\/export","group.index_active":"group\/active","group.my_groups":"group\/my_groups","group.update_positions":"group\/update_positions","group.invite_user":"group\/{group}\/invite","group.leave":"group\/{group}\/leave","group.join":"group\/{group}\/join","group.accept_invitation":"group\/{group}\/accept_invitation","group.reject_invitation":"group\/{group}\/reject_invitation","group.index":"group","group.store":"group","group.show":"group\/{group}","group.update":"group\/{group}","group.destroy":"group\/{group}","folder.toggle_branch":"folder\/{folder}\/toggle_branch","folder.details":"folder\/{folder}\/details","folder.set_permission":"folder\/{folder}\/set_permission","folder.per_user_permissions":"folder\/{folder}\/per_user_permissions","folder.users_without_permissions":"folder\/{folder}\/users_without_permissions","folder.remove_permissions":"folder\/{folder}\/remove_permissions\/{user}","folder.index":"folder","folder.store":"folder","folder.show":"folder\/{folder}","folder.update":"folder\/{folder}","folder.destroy":"folder\/{folder}","document.move":"document\/move\/{sourceFolder}\/{targetFolder}","document.destroy_bookmarks":"document\/delete_bookmarks\/{folder}","document.visit":"document\/{document}\/visit","document.store":"document","document.show":"document\/{document}","feed.ignore":"feed\/{feed}\/ignore","feed.follow":"feed\/{feed}\/follow","feed_item.mark_as_read":"feed_item\/mark_as_read","feed_item.index":"feed_item","feed_item.show":"feed_item\/{feed_item}","highlight.update_positions":"highlight\/update_positions","highlight.store":"highlight","highlight.update":"highlight\/{highlight}","highlight.destroy":"highlight\/{highlight}"}

13
resources/js/modules/websockets.js vendored Executable file
View File

@@ -0,0 +1,13 @@
window.Pusher = require('pusher-js');
import Echo from "laravel-echo"
window.Echo = new Echo({
broadcaster: 'pusher',
key: 'cyca',
cluster: 'mt1',
forceTLS: false,
disableStats: true,
wsHost: window.location.hostname,
wsPort: 6001
});