Refresh
This commit is contained in:
98
resources/js/modules/api.js
vendored
Executable file
98
resources/js/modules/api.js
vendored
Executable 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
5
resources/js/modules/bootstrap.js
vendored
Executable 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
37
resources/js/modules/components.js
vendored
Executable 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
32
resources/js/modules/router.js
vendored
Executable 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("/")
|
||||
);
|
||||
}
|
||||
};
|
||||
1
resources/js/modules/routes.json
Executable file
1
resources/js/modules/routes.json
Executable 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
13
resources/js/modules/websockets.js
vendored
Executable 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
|
||||
});
|
||||
Reference in New Issue
Block a user