fix: misc frontend

This commit is contained in:
Ruben Fiszel
2022-07-03 00:06:11 +02:00
parent 4a0e68a049
commit ac8aab4006
8 changed files with 47 additions and 44 deletions
+18 -18
View File
@@ -8,7 +8,6 @@
"name": "windmill",
"version": "1.15.1",
"dependencies": {
"@codingame/monaco-jsonrpc": "^0.4.0",
"@fortawesome/free-brands-svg-icons": "^6.1.1",
"@fortawesome/free-solid-svg-icons": "^6.1.1",
"@types/vscode": "^1.63.0",
@@ -18,7 +17,8 @@
"monaco-languageclient": "^1.0.1",
"svelte-awesome": "^3.0.0",
"svelte-markdown": "^0.2.1",
"svelte-split-pane": "^0.1.2"
"svelte-split-pane": "^0.1.2",
"vscode-ws-jsonrpc": "^1.0.1"
},
"devDependencies": {
"@sveltejs/adapter-node": "^1.0.0-next.78",
@@ -177,14 +177,6 @@
"node": ">=4"
}
},
"node_modules/@codingame/monaco-jsonrpc": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/@codingame/monaco-jsonrpc/-/monaco-jsonrpc-0.4.0.tgz",
"integrity": "sha512-5IQkYvFMyWQWutFhK77Tk5q1VIQoFySElqpAI1fUWXIIAepiYD7xJRawzMgJqhIzER7t44FbBN4uVvoXLRmJ6g==",
"dependencies": {
"vscode-jsonrpc": "^8.0.1"
}
},
"node_modules/@colors/colors": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
@@ -6615,6 +6607,14 @@
"resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.3.tgz",
"integrity": "sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA=="
},
"node_modules/vscode-ws-jsonrpc": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/vscode-ws-jsonrpc/-/vscode-ws-jsonrpc-1.0.1.tgz",
"integrity": "sha512-gcaLDOjweVcqBzB6tMQ+B2QesyVrpFskinur8QsuonyOL2THWoK9KUAahpMOnq9SleX0WS92VhnmRhlIM0slNQ==",
"dependencies": {
"vscode-jsonrpc": "^8.0.1"
}
},
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -6833,14 +6833,6 @@
}
}
},
"@codingame/monaco-jsonrpc": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/@codingame/monaco-jsonrpc/-/monaco-jsonrpc-0.4.0.tgz",
"integrity": "sha512-5IQkYvFMyWQWutFhK77Tk5q1VIQoFySElqpAI1fUWXIIAepiYD7xJRawzMgJqhIzER7t44FbBN4uVvoXLRmJ6g==",
"requires": {
"vscode-jsonrpc": "^8.0.1"
}
},
"@colors/colors": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
@@ -11394,6 +11386,14 @@
"resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.3.tgz",
"integrity": "sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA=="
},
"vscode-ws-jsonrpc": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/vscode-ws-jsonrpc/-/vscode-ws-jsonrpc-1.0.1.tgz",
"integrity": "sha512-gcaLDOjweVcqBzB6tMQ+B2QesyVrpFskinur8QsuonyOL2THWoK9KUAahpMOnq9SleX0WS92VhnmRhlIM0slNQ==",
"requires": {
"vscode-jsonrpc": "^8.0.1"
}
},
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+2 -2
View File
@@ -47,7 +47,6 @@
},
"type": "module",
"dependencies": {
"@codingame/monaco-jsonrpc": "^0.4.0",
"@fortawesome/free-brands-svg-icons": "^6.1.1",
"@fortawesome/free-solid-svg-icons": "^6.1.1",
"@types/vscode": "^1.63.0",
@@ -57,6 +56,7 @@
"monaco-languageclient": "^1.0.1",
"svelte-awesome": "^3.0.0",
"svelte-markdown": "^0.2.1",
"svelte-split-pane": "^0.1.2"
"svelte-split-pane": "^0.1.2",
"vscode-ws-jsonrpc": "^1.0.1"
}
}
+3 -4
View File
@@ -19,7 +19,7 @@
export let formatAction: (() => void) | undefined = undefined
export let automaticLayout = true
export let websocketAlive = { pyright: false, black: false, deno: false }
export let extraLib: string = (lang == 'typescript' && !deno) ? buildExtraLib() : ''
export let extraLib: string = lang == 'typescript' && !deno ? buildExtraLib() : ''
export let extraLibPath: string = 'file:///node_modules/@types/windmill/index.d.ts'
let websockets: WebSocket[] = []
@@ -86,9 +86,8 @@
const vscode = await import('vscode')
const { RequestType, toSocket, WebSocketMessageReader, WebSocketMessageWriter } =
await import('@codingame/monaco-jsonrpc')
function createLanguageClient(
await import('vscode-ws-jsonrpc')
s function createLanguageClient(
transports: MessageTransports,
name: string,
initializationOptions?: any
+10 -7
View File
@@ -3,23 +3,26 @@ import { UserService } from '$lib/gen'
import { clearStores } from './stores.js'
import { sendUserToast } from './utils.js'
function clearCookies() {
document.cookie.split(";").forEach(function (c) { document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/") })
}
export function logoutWithRedirect(rd?: string): void {
const error = encodeURIComponent('You have been logged out because your session has expired.')
goto(`/user/login?error=${error}${rd ? '&rd=' + encodeURIComponent(rd) : ''}`)
const error = document.cookie.includes('token')
? `error=${encodeURIComponent('You have been logged out because your session has expired.')}&`
: ''
clearCookies()
goto(`/user/login?${error}${rd ? 'rd=' + encodeURIComponent(rd) : ''}`)
}
export async function logout(logoutMessage?: string): Promise<void> {
try {
clearStores()
await UserService.logout()
clearCookies()
goto(`/user/login${logoutMessage ? '?error=' + encodeURIComponent(logoutMessage) : ''}`)
sendUserToast('you have been logged out')
} catch (error) {
goto(
`/user/login?error=${encodeURIComponent(
'There was a problem logging you out, check the logs'
)}`
)
goto('/user/login')
console.error(error)
}
}
+6 -3
View File
@@ -24,7 +24,8 @@
const monacoEditorUnhandledErrors = [
'Model not found',
'Connection is disposed.',
'Connection got disposed.'
'Connection got disposed.',
'Stopping server timed out.'
]
async function loadUser() {
@@ -72,8 +73,10 @@
}
if (status == '401') {
sendUserToast('Logged out after a request was unauthorized', true)
logout($page.url.pathname)
if ($page.url.pathname != '/user/login') {
sendUserToast('Logged out after a request was unauthorized', true)
logout($page.url.pathname)
}
} else {
if (body) {
sendUserToast(`${body}`, true)
+4 -6
View File
@@ -21,6 +21,7 @@
import { onMount } from 'svelte'
import Icon from 'svelte-awesome'
import '../app.css'
import { page } from '$app/stores'
import { OpenAPI } from '$lib/gen'
import { superadmin, userStore, usersWorkspaceStore, workspaceStore } from '$lib/stores'
import { clickOutside, sendUserToast, sleep } from '$lib/utils'
@@ -56,12 +57,9 @@
isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent)
//Mobile
isCollapsed = isMobile
await sleep(2000)
if (!$workspaceStore || !$userStore) {
sendUserToast(
'Workspace not set or corresponding to another user. Redirecting to list of workspaces.',
true
)
if (!document.cookie.includes('token')) {
goto('/user/login')
} else if (!$workspaceStore) {
goto('/user/workspaces')
}
})
+1 -3
View File
@@ -5,9 +5,7 @@
$workspaceStore = localStorage.getItem('workspace') ?? undefined
if (!$workspaceStore) {
goto('/user/workspaces')
} else {
if ($workspaceStore) {
goto('/scripts')
}
</script>
@@ -16,7 +16,9 @@
let workspaces: { id: string; name: string; username: string }[] = []
async function loadInvites() {
invites = await UserService.listWorkspaceInvites()
try {
invites = await UserService.listWorkspaceInvites()
} catch {}
}
async function loadWorkspaces() {