allow correcting file transfer data if no files were received
This commit is contained in:
@@ -12,8 +12,10 @@ inoremap <silent> <expr> <Down> coc#pum#visible() ? coc#pum#next(0) : coc#inline
|
||||
inoremap <silent> <expr> <C-P> coc#pum#visible() ? coc#pum#prev(1) : coc#inline#visible() ? coc#inline#prev() : "\"
|
||||
inoremap <silent> <expr> <C-N> coc#pum#visible() ? coc#pum#next(1) : coc#inline#visible() ? coc#inline#next() : "\"
|
||||
nnoremap :NERDTreeFind
|
||||
snoremap <silent> c
|
||||
nnoremap :NERDTree
|
||||
nmap <Plug>(ctrlp)
|
||||
snoremap "_c
|
||||
nnoremap :NERDTreeToggle
|
||||
xmap \T <Plug>(table-mode-tableize-delimiter)
|
||||
xmap \tt <Plug>(table-mode-tableize)
|
||||
@@ -26,6 +28,10 @@ nnoremap \1 :call SN("1")
|
||||
nmap \rn <Plug>(coc-rename)
|
||||
xmap gx <Plug>NetrwBrowseXVis
|
||||
nmap gx <Plug>NetrwBrowseX
|
||||
snoremap <C-R> "_c
|
||||
snoremap <silent> <C-H> c
|
||||
snoremap <silent> <Del> c
|
||||
snoremap <silent> <BS> c
|
||||
nnoremap <silent> <Plug>GitGutterPreviewHunk :call gitgutter#utility#warn('Please change your map <Plug>GitGutterPreviewHunk to <Plug>(GitGutterPreviewHunk)')
|
||||
nnoremap <silent> <Plug>(GitGutterPreviewHunk) :GitGutterPreviewHunk
|
||||
nnoremap <silent> <Plug>GitGutterUndoHunk :call gitgutter#utility#warn('Please change your map <Plug>GitGutterUndoHunk to <Plug>(GitGutterUndoHunk)')
|
||||
@@ -145,7 +151,9 @@ if &shortmess =~ 'A'
|
||||
else
|
||||
set shortmess=aoO
|
||||
endif
|
||||
badd +0 src/View/Modals/dataTransferModal.tsx
|
||||
badd +617 src/View/Modals/dataTransferModal.tsx
|
||||
badd +22 src/View/Modals/storageModal.tsx
|
||||
badd +0 src/ViewModel/Global/fileTransferViewModel.ts
|
||||
argglobal
|
||||
%argdel
|
||||
edit src/View/Modals/dataTransferModal.tsx
|
||||
@@ -154,7 +162,10 @@ let s:save_splitright = &splitright
|
||||
set splitbelow splitright
|
||||
wincmd _ | wincmd |
|
||||
vsplit
|
||||
1wincmd h
|
||||
wincmd _ | wincmd |
|
||||
vsplit
|
||||
2wincmd h
|
||||
wincmd w
|
||||
wincmd w
|
||||
let &splitbelow = s:save_splitbelow
|
||||
let &splitright = s:save_splitright
|
||||
@@ -165,11 +176,12 @@ set winminheight=0
|
||||
set winheight=1
|
||||
set winminwidth=0
|
||||
set winwidth=1
|
||||
exe 'vert 1resize ' . ((&columns * 31 + 126) / 253)
|
||||
exe 'vert 2resize ' . ((&columns * 221 + 126) / 253)
|
||||
exe 'vert 1resize ' . ((&columns * 31 + 116) / 233)
|
||||
exe 'vert 2resize ' . ((&columns * 100 + 116) / 233)
|
||||
exe 'vert 3resize ' . ((&columns * 100 + 116) / 233)
|
||||
argglobal
|
||||
enew
|
||||
file NERD_tree_tab_1
|
||||
file NERD_tree_tab_2
|
||||
balt src/View/Modals/dataTransferModal.tsx
|
||||
let s:cpo_save=&cpo
|
||||
set cpo&vim
|
||||
@@ -193,6 +205,14 @@ nnoremap <buffer> <silent> R :call nerdtree#ui_glue#invokeKeyMap("R")
|
||||
nnoremap <buffer> <silent> T :call nerdtree#ui_glue#invokeKeyMap("T")
|
||||
nnoremap <buffer> <silent> U :call nerdtree#ui_glue#invokeKeyMap("U")
|
||||
nnoremap <buffer> <silent> X :call nerdtree#ui_glue#invokeKeyMap("X")
|
||||
nmap <buffer> [c <Plug>(GitGutterPrevHunk)
|
||||
nmap <buffer> \hp <Plug>(GitGutterPreviewHunk)
|
||||
nmap <buffer> \hu <Plug>(GitGutterUndoHunk)
|
||||
nmap <buffer> \hs <Plug>(GitGutterStageHunk)
|
||||
xmap <buffer> \hs <Plug>(GitGutterStageHunk)
|
||||
nmap <buffer> ]c <Plug>(GitGutterNextHunk)
|
||||
xmap <buffer> ac <Plug>(GitGutterTextObjectOuterVisual)
|
||||
omap <buffer> ac <Plug>(GitGutterTextObjectOuterPending)
|
||||
nnoremap <buffer> <silent> cd :call nerdtree#ui_glue#invokeKeyMap("cd")
|
||||
nnoremap <buffer> <silent> e :call nerdtree#ui_glue#invokeKeyMap("e")
|
||||
nnoremap <buffer> <silent> f :call nerdtree#ui_glue#invokeKeyMap("f")
|
||||
@@ -200,6 +220,8 @@ nnoremap <buffer> <silent> go :call nerdtree#ui_glue#invokeKeyMap("go")
|
||||
nnoremap <buffer> <silent> gb :call nerdtree#ui_glue#invokeKeyMap("gb")
|
||||
nnoremap <buffer> <silent> gi :call nerdtree#ui_glue#invokeKeyMap("gi")
|
||||
nnoremap <buffer> <silent> gs :call nerdtree#ui_glue#invokeKeyMap("gs")
|
||||
xmap <buffer> ic <Plug>(GitGutterTextObjectInnerVisual)
|
||||
omap <buffer> ic <Plug>(GitGutterTextObjectInnerPending)
|
||||
nnoremap <buffer> <silent> i :call nerdtree#ui_glue#invokeKeyMap("i")
|
||||
nnoremap <buffer> <silent> m :call nerdtree#ui_glue#invokeKeyMap("m")
|
||||
nnoremap <buffer> <silent> o :call nerdtree#ui_glue#invokeKeyMap("o")
|
||||
@@ -350,7 +372,7 @@ setlocal nowrap
|
||||
setlocal wrapmargin=0
|
||||
wincmd w
|
||||
argglobal
|
||||
balt src/View/Modals/dataTransferModal.tsx
|
||||
balt src/View/Modals/storageModal.tsx
|
||||
let s:cpo_save=&cpo
|
||||
set cpo&vim
|
||||
nmap <buffer> [c <Plug>(GitGutterPrevHunk)
|
||||
@@ -498,16 +520,182 @@ setlocal wrap
|
||||
setlocal wrapmargin=0
|
||||
silent! normal! zE
|
||||
let &fdl = &fdl
|
||||
let s:l = 1 - ((0 * winheight(0) + 20) / 40)
|
||||
let s:l = 615 - ((22 * winheight(0) + 18) / 36)
|
||||
if s:l < 1 | let s:l = 1 | endif
|
||||
keepjumps exe s:l
|
||||
normal! zt
|
||||
keepjumps 1
|
||||
normal! 0
|
||||
keepjumps 615
|
||||
normal! 0142|
|
||||
wincmd w
|
||||
2wincmd w
|
||||
exe 'vert 1resize ' . ((&columns * 31 + 126) / 253)
|
||||
exe 'vert 2resize ' . ((&columns * 221 + 126) / 253)
|
||||
argglobal
|
||||
if bufexists(fnamemodify("src/ViewModel/Global/fileTransferViewModel.ts", ":p")) | buffer src/ViewModel/Global/fileTransferViewModel.ts | else | edit src/ViewModel/Global/fileTransferViewModel.ts | endif
|
||||
balt src/View/Modals/dataTransferModal.tsx
|
||||
let s:cpo_save=&cpo
|
||||
set cpo&vim
|
||||
imap <buffer> <nowait> <silent> <C-K> <Cmd>:call coc#snippet#jump(0, 0)
|
||||
imap <buffer> <nowait> <silent> <C-J> <Cmd>:call coc#snippet#jump(1, 0)
|
||||
smap <buffer> <nowait> <silent> <NL> <Cmd>:call coc#snippet#jump(1, 0)
|
||||
smap <buffer> <nowait> <silent> <Cmd>:call coc#snippet#jump(0, 0)
|
||||
nmap <buffer> [c <Plug>(GitGutterPrevHunk)
|
||||
nmap <buffer> \hp <Plug>(GitGutterPreviewHunk)
|
||||
nmap <buffer> \hu <Plug>(GitGutterUndoHunk)
|
||||
nmap <buffer> \hs <Plug>(GitGutterStageHunk)
|
||||
xmap <buffer> \hs <Plug>(GitGutterStageHunk)
|
||||
nmap <buffer> ]c <Plug>(GitGutterNextHunk)
|
||||
xmap <buffer> ac <Plug>(GitGutterTextObjectOuterVisual)
|
||||
omap <buffer> ac <Plug>(GitGutterTextObjectOuterPending)
|
||||
xmap <buffer> ic <Plug>(GitGutterTextObjectInnerVisual)
|
||||
omap <buffer> ic <Plug>(GitGutterTextObjectInnerPending)
|
||||
smap <buffer> <nowait> <silent> <C-K> <Cmd>:call coc#snippet#jump(0, 0)
|
||||
smap <buffer> <nowait> <silent> <C-J> <Cmd>:call coc#snippet#jump(1, 0)
|
||||
imap <buffer> <nowait> <silent> <NL> <Cmd>:call coc#snippet#jump(1, 0)
|
||||
imap <buffer> <nowait> <silent> <Cmd>:call coc#snippet#jump(0, 0)
|
||||
let &cpo=s:cpo_save
|
||||
unlet s:cpo_save
|
||||
setlocal keymap=
|
||||
setlocal noarabic
|
||||
setlocal autoindent
|
||||
setlocal backupcopy=
|
||||
setlocal balloonexpr=
|
||||
setlocal nobinary
|
||||
setlocal nobreakindent
|
||||
setlocal breakindentopt=
|
||||
setlocal bufhidden=
|
||||
setlocal buflisted
|
||||
setlocal buftype=
|
||||
setlocal nocindent
|
||||
setlocal cinkeys=0{,0},0),0],:,0#,!^F,o,O,e
|
||||
setlocal cinoptions=
|
||||
setlocal cinscopedecls=public,protected,private
|
||||
setlocal cinwords=if,else,while,do,for,switch
|
||||
setlocal colorcolumn=
|
||||
setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
|
||||
setlocal commentstring=//\ %s
|
||||
setlocal complete=.,w,b,u,t,i
|
||||
setlocal concealcursor=
|
||||
setlocal conceallevel=0
|
||||
setlocal completefunc=
|
||||
setlocal nocopyindent
|
||||
setlocal cryptmethod=
|
||||
setlocal nocursorbind
|
||||
setlocal nocursorcolumn
|
||||
setlocal nocursorline
|
||||
setlocal cursorlineopt=both
|
||||
setlocal define=
|
||||
setlocal dictionary=
|
||||
setlocal nodiff
|
||||
setlocal equalprg=
|
||||
setlocal errorformat=%+A\ %#%f\ %#(%l\\,%c):\ %m,%C%m
|
||||
setlocal noexpandtab
|
||||
if &filetype != 'typescript'
|
||||
setlocal filetype=typescript
|
||||
endif
|
||||
setlocal fillchars=
|
||||
setlocal fixendofline
|
||||
setlocal foldcolumn=0
|
||||
setlocal foldenable
|
||||
setlocal foldexpr=0
|
||||
setlocal foldignore=#
|
||||
setlocal foldlevel=0
|
||||
setlocal foldmarker={{{,}}}
|
||||
setlocal foldmethod=manual
|
||||
setlocal foldminlines=1
|
||||
setlocal foldnestmax=20
|
||||
setlocal foldtext=foldtext()
|
||||
setlocal formatexpr=
|
||||
setlocal formatoptions=croql
|
||||
setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
|
||||
setlocal formatprg=
|
||||
setlocal grepprg=
|
||||
setlocal iminsert=0
|
||||
setlocal imsearch=-1
|
||||
setlocal include=
|
||||
setlocal includeexpr=
|
||||
setlocal indentexpr=GetTypescriptIndent()
|
||||
setlocal indentkeys=0{,0},0),0],:,0#,!^F,o,O,e,0],0)
|
||||
setlocal noinfercase
|
||||
setlocal iskeyword=@,48-57,_,192-255,$
|
||||
setlocal keywordprg=
|
||||
setlocal nolinebreak
|
||||
setlocal nolisp
|
||||
setlocal lispoptions=
|
||||
setlocal lispwords=
|
||||
setlocal nolist
|
||||
setlocal listchars=
|
||||
setlocal makeencoding=
|
||||
setlocal makeprg=tsc\ \ $*\ %
|
||||
setlocal matchpairs=(:),{:},[:]
|
||||
setlocal nomodeline
|
||||
setlocal modifiable
|
||||
setlocal nrformats=bin,octal,hex
|
||||
set number
|
||||
setlocal number
|
||||
setlocal numberwidth=4
|
||||
setlocal omnifunc=
|
||||
setlocal path=
|
||||
setlocal nopreserveindent
|
||||
setlocal nopreviewwindow
|
||||
setlocal quoteescape=\\
|
||||
setlocal noreadonly
|
||||
setlocal norelativenumber
|
||||
setlocal norightleft
|
||||
setlocal rightleftcmd=search
|
||||
setlocal noscrollbind
|
||||
setlocal scrolloff=-1
|
||||
setlocal shiftwidth=4
|
||||
setlocal noshortname
|
||||
setlocal showbreak=
|
||||
setlocal sidescrolloff=-1
|
||||
set signcolumn=yes
|
||||
setlocal signcolumn=yes
|
||||
setlocal nosmartindent
|
||||
setlocal nosmoothscroll
|
||||
setlocal softtabstop=0
|
||||
setlocal nospell
|
||||
setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
|
||||
setlocal spellfile=
|
||||
setlocal spelllang=en
|
||||
setlocal spelloptions=
|
||||
setlocal statusline=
|
||||
setlocal suffixesadd=.ts,.tsx
|
||||
setlocal swapfile
|
||||
setlocal synmaxcol=3000
|
||||
if &syntax != 'typescript'
|
||||
setlocal syntax=typescript
|
||||
endif
|
||||
setlocal tabstop=8
|
||||
setlocal tagcase=
|
||||
setlocal tagfunc=
|
||||
setlocal tags=
|
||||
setlocal termwinkey=
|
||||
setlocal termwinscroll=10000
|
||||
setlocal termwinsize=
|
||||
setlocal textwidth=0
|
||||
setlocal thesaurus=
|
||||
setlocal thesaurusfunc=
|
||||
setlocal noundofile
|
||||
setlocal undolevels=-123456
|
||||
setlocal varsofttabstop=
|
||||
setlocal vartabstop=
|
||||
setlocal virtualedit=
|
||||
setlocal wincolor=
|
||||
setlocal nowinfixheight
|
||||
setlocal nowinfixwidth
|
||||
setlocal wrap
|
||||
setlocal wrapmargin=0
|
||||
silent! normal! zE
|
||||
let &fdl = &fdl
|
||||
let s:l = 74 - ((13 * winheight(0) + 18) / 36)
|
||||
if s:l < 1 | let s:l = 1 | endif
|
||||
keepjumps exe s:l
|
||||
normal! zt
|
||||
keepjumps 74
|
||||
normal! 0140|
|
||||
wincmd w
|
||||
3wincmd w
|
||||
exe 'vert 1resize ' . ((&columns * 31 + 116) / 233)
|
||||
exe 'vert 2resize ' . ((&columns * 100 + 116) / 233)
|
||||
exe 'vert 3resize ' . ((&columns * 100 + 116) / 233)
|
||||
tabnext 1
|
||||
if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0
|
||||
silent exe 'bwipe ' . s:wipebuf
|
||||
@@ -522,7 +710,6 @@ if filereadable(s:sx)
|
||||
exe "source " . fnameescape(s:sx)
|
||||
endif
|
||||
let &g:so = s:so_save | let &g:siso = s:siso_save
|
||||
nohlsearch
|
||||
doautoall SessionLoadPost
|
||||
unlet SessionLoad
|
||||
" vim: set ft=vim :
|
||||
|
||||
Vendored
+755
-676
File diff suppressed because it is too large
Load Diff
Vendored
+10630
-7986
File diff suppressed because it is too large
Load Diff
Vendored
+1
-1
@@ -22,7 +22,7 @@ async function getFromCache(event) {
|
||||
|
||||
async function fetchAndCache(event) {
|
||||
const request = event.request;
|
||||
const response = await fetch(request, {cache: "no-cache"});
|
||||
const response = await fetch(request, { cache: "no-cache" });
|
||||
if (response.status === 200) {
|
||||
// Only cache successful responses
|
||||
const cache = await caches.open(CACHE_VERSION);
|
||||
|
||||
@@ -335,64 +335,64 @@ export function implementPinchZoom(canvas: HTMLElement) {
|
||||
}
|
||||
|
||||
canvas.addEventListener("touchstart", (event: TouchEvent) => {
|
||||
(document.activeElement as HTMLElement).blur();
|
||||
(document.activeElement as HTMLElement).blur();
|
||||
|
||||
if (lastElement != undefined && lastElement != element()) reset();
|
||||
lastElement = element();
|
||||
if (lastElement != undefined && lastElement != element()) reset();
|
||||
lastElement = element();
|
||||
|
||||
initialZoom = currentZoom;
|
||||
initialX = currentX;
|
||||
initialY = currentY;
|
||||
initialZoom = currentZoom;
|
||||
initialX = currentX;
|
||||
initialY = currentY;
|
||||
|
||||
if (event.touches.length != 2) {
|
||||
pinching = false;
|
||||
initialTouchX = event.touches[0].clientX;
|
||||
initialTouchY = event.touches[0].clientY;
|
||||
return;
|
||||
}
|
||||
if (event.touches.length != 2) {
|
||||
pinching = false;
|
||||
initialTouchX = event.touches[0].clientX;
|
||||
initialTouchY = event.touches[0].clientY;
|
||||
return;
|
||||
}
|
||||
|
||||
pinching = true;
|
||||
initialDistance = distance(event);
|
||||
initialTouchX = midpoint(event, "x");
|
||||
initialTouchY = midpoint(event, "y");
|
||||
pinching = true;
|
||||
initialDistance = distance(event);
|
||||
initialTouchX = midpoint(event, "x");
|
||||
initialTouchY = midpoint(event, "y");
|
||||
});
|
||||
canvas.addEventListener("touchmove", (event: TouchEvent) => {
|
||||
if (!pinching) {
|
||||
apply(currentZoom, [
|
||||
initialX +
|
||||
(event.touches[0].clientX - initialTouchX) / initialZoom,
|
||||
initialY +
|
||||
(event.touches[0].clientY - initialTouchY) / initialZoom,
|
||||
]);
|
||||
return;
|
||||
}
|
||||
if (event.touches.length < 2) return;
|
||||
event.preventDefault();
|
||||
const currentDistance = distance(event);
|
||||
const midX = midpoint(event, "x");
|
||||
const midY = midpoint(event, "y");
|
||||
const ratio = currentDistance / initialDistance;
|
||||
const difference = currentDistance - initialDistance;
|
||||
apply(initialZoom * ratio, [
|
||||
initialX + (midX - difference - initialTouchX) / initialZoom,
|
||||
initialY + (midY - difference - initialTouchY) / initialZoom,
|
||||
]);
|
||||
if (!pinching) {
|
||||
apply(currentZoom, [
|
||||
initialX +
|
||||
(event.touches[0].clientX - initialTouchX) / initialZoom,
|
||||
initialY +
|
||||
(event.touches[0].clientY - initialTouchY) / initialZoom,
|
||||
]);
|
||||
return;
|
||||
}
|
||||
if (event.touches.length < 2) return;
|
||||
event.preventDefault();
|
||||
const currentDistance = distance(event);
|
||||
const midX = midpoint(event, "x");
|
||||
const midY = midpoint(event, "y");
|
||||
const ratio = currentDistance / initialDistance;
|
||||
const difference = currentDistance - initialDistance;
|
||||
apply(initialZoom * ratio, [
|
||||
initialX + (midX - difference - initialTouchX) / initialZoom,
|
||||
initialY + (midY - difference - initialTouchY) / initialZoom,
|
||||
]);
|
||||
});
|
||||
canvas.addEventListener("wheel", (event: WheelEvent) => {
|
||||
event.preventDefault();
|
||||
if (!event.shiftKey) {
|
||||
apply(currentZoom, [
|
||||
currentX - event.deltaX,
|
||||
currentY - event.deltaY,
|
||||
]);
|
||||
return;
|
||||
}
|
||||
apply(currentZoom + (event.deltaY < 0 ? 1 : -1) * 0.1, [
|
||||
initialX,
|
||||
initialY,
|
||||
]);
|
||||
event.preventDefault();
|
||||
if (!event.shiftKey) {
|
||||
apply(currentZoom, [
|
||||
currentX - event.deltaX,
|
||||
currentY - event.deltaY,
|
||||
]);
|
||||
return;
|
||||
}
|
||||
apply(currentZoom + (event.deltaY < 0 ? 1 : -1) * 0.1, [
|
||||
initialX,
|
||||
initialY,
|
||||
]);
|
||||
});
|
||||
canvas.addEventListener("scroll", (event: MouseEvent) => {
|
||||
event.preventDefault();
|
||||
event.preventDefault();
|
||||
});
|
||||
}
|
||||
|
||||
+114
-112
@@ -45,125 +45,127 @@ export function BoardPage(
|
||||
}),
|
||||
);
|
||||
|
||||
const wrapper = <div class="content main-content" children:set={pages}></div>
|
||||
Utility.implementPinchZoom(wrapper);
|
||||
const wrapper = (
|
||||
<div class="content main-content" children:set={pages}></div>
|
||||
);
|
||||
Utility.implementPinchZoom(wrapper);
|
||||
|
||||
// task modal
|
||||
const taskSettingsModal = React.createProxyState(
|
||||
[boardViewModel.selectedTaskViewModel],
|
||||
() => {
|
||||
if (boardViewModel.selectedTaskViewModel.value == undefined) {
|
||||
return <div></div>;
|
||||
} else {
|
||||
ViewController.setFocusWithDelay();
|
||||
[boardViewModel.selectedTaskViewModel],
|
||||
() => {
|
||||
if (boardViewModel.selectedTaskViewModel.value == undefined) {
|
||||
return <div></div>;
|
||||
} else {
|
||||
ViewController.setFocusWithDelay();
|
||||
|
||||
return TaskSettingsModal(
|
||||
coreViewModel,
|
||||
boardViewModel.selectedTaskViewModel.value,
|
||||
);
|
||||
}
|
||||
},
|
||||
return TaskSettingsModal(
|
||||
coreViewModel,
|
||||
boardViewModel.selectedTaskViewModel.value,
|
||||
);
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
return (
|
||||
<div class="pane">
|
||||
<div class="toolbar">
|
||||
<span>
|
||||
<button
|
||||
class="ghost board-close-button"
|
||||
aria-label={
|
||||
coreViewModel.translations.chatPage.task
|
||||
.closeBoardButtonAudioLabel
|
||||
}
|
||||
on:click={boardViewModel.close}
|
||||
>
|
||||
<span class="icon">arrow_back</span>
|
||||
</button>
|
||||
<button
|
||||
class="ghost board-toggle-button inset-outline"
|
||||
aria-label={
|
||||
coreViewModel.translations.chatPage.task
|
||||
.toggleBoardButtonAudioLabel
|
||||
}
|
||||
on:click={
|
||||
boardViewModel.taskPageViewModel.toggleBoardList
|
||||
}
|
||||
toggle:selected={
|
||||
boardViewModel.taskPageViewModel.isShowingBoadList
|
||||
}
|
||||
>
|
||||
<span class="icon">dock_to_right</span>
|
||||
</button>
|
||||
<button
|
||||
class="ghost"
|
||||
aria-label={
|
||||
coreViewModel.translations.chatPage.task
|
||||
.boardSettingsHeadline
|
||||
}
|
||||
on:click={boardViewModel.showSettings}
|
||||
>
|
||||
<span class="icon">settings</span>
|
||||
</button>
|
||||
</span>
|
||||
<span class="scroll-h ribbon">
|
||||
{BoardViewToggleButton(
|
||||
coreViewModel.translations.chatPage.task
|
||||
.listViewButtonAudioLabel,
|
||||
"view_list",
|
||||
BoardPageTypes.List,
|
||||
boardViewModel,
|
||||
)}
|
||||
{BoardViewToggleButton(
|
||||
coreViewModel.translations.chatPage.task
|
||||
.kanbanViewButtonAudioLabel,
|
||||
"view_kanban",
|
||||
BoardPageTypes.Kanban,
|
||||
boardViewModel,
|
||||
)}
|
||||
{BoardViewToggleButton(
|
||||
coreViewModel.translations.chatPage.task
|
||||
.statusViewButtonAudioLabel,
|
||||
"grid_view",
|
||||
BoardPageTypes.StatusGrid,
|
||||
boardViewModel,
|
||||
)}
|
||||
</span>
|
||||
<span>
|
||||
<button
|
||||
class="ghost inset-outline"
|
||||
aria-label={
|
||||
coreViewModel.translations.chatPage.task
|
||||
.filterTasksButtonAudioLabel
|
||||
}
|
||||
on:click={boardViewModel.showFilterModal}
|
||||
toggle:selected={boardViewModel.isFilterActive}
|
||||
>
|
||||
<span class="icon">filter_alt</span>
|
||||
</button>
|
||||
<button
|
||||
class="ghost"
|
||||
aria-label={
|
||||
coreViewModel.translations.chatPage.task
|
||||
.createTaskButtonAudioLabel
|
||||
}
|
||||
on:click={boardViewModel.createTask}
|
||||
>
|
||||
<span class="icon">add</span>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
<div class="pane">
|
||||
<div class="toolbar">
|
||||
<span>
|
||||
<button
|
||||
class="ghost board-close-button"
|
||||
aria-label={
|
||||
coreViewModel.translations.chatPage.task
|
||||
.closeBoardButtonAudioLabel
|
||||
}
|
||||
on:click={boardViewModel.close}
|
||||
>
|
||||
<span class="icon">arrow_back</span>
|
||||
</button>
|
||||
<button
|
||||
class="ghost board-toggle-button inset-outline"
|
||||
aria-label={
|
||||
coreViewModel.translations.chatPage.task
|
||||
.toggleBoardButtonAudioLabel
|
||||
}
|
||||
on:click={
|
||||
boardViewModel.taskPageViewModel.toggleBoardList
|
||||
}
|
||||
toggle:selected={
|
||||
boardViewModel.taskPageViewModel.isShowingBoadList
|
||||
}
|
||||
>
|
||||
<span class="icon">dock_to_right</span>
|
||||
</button>
|
||||
<button
|
||||
class="ghost"
|
||||
aria-label={
|
||||
coreViewModel.translations.chatPage.task
|
||||
.boardSettingsHeadline
|
||||
}
|
||||
on:click={boardViewModel.showSettings}
|
||||
>
|
||||
<span class="icon">settings</span>
|
||||
</button>
|
||||
</span>
|
||||
<span class="scroll-h ribbon">
|
||||
{BoardViewToggleButton(
|
||||
coreViewModel.translations.chatPage.task
|
||||
.listViewButtonAudioLabel,
|
||||
"view_list",
|
||||
BoardPageTypes.List,
|
||||
boardViewModel,
|
||||
)}
|
||||
{BoardViewToggleButton(
|
||||
coreViewModel.translations.chatPage.task
|
||||
.kanbanViewButtonAudioLabel,
|
||||
"view_kanban",
|
||||
BoardPageTypes.Kanban,
|
||||
boardViewModel,
|
||||
)}
|
||||
{BoardViewToggleButton(
|
||||
coreViewModel.translations.chatPage.task
|
||||
.statusViewButtonAudioLabel,
|
||||
"grid_view",
|
||||
BoardPageTypes.StatusGrid,
|
||||
boardViewModel,
|
||||
)}
|
||||
</span>
|
||||
<span>
|
||||
<button
|
||||
class="ghost inset-outline"
|
||||
aria-label={
|
||||
coreViewModel.translations.chatPage.task
|
||||
.filterTasksButtonAudioLabel
|
||||
}
|
||||
on:click={boardViewModel.showFilterModal}
|
||||
toggle:selected={boardViewModel.isFilterActive}
|
||||
>
|
||||
<span class="icon">filter_alt</span>
|
||||
</button>
|
||||
<button
|
||||
class="ghost"
|
||||
aria-label={
|
||||
coreViewModel.translations.chatPage.task
|
||||
.createTaskButtonAudioLabel
|
||||
}
|
||||
on:click={boardViewModel.createTask}
|
||||
>
|
||||
<span class="icon">add</span>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
{wrapper}
|
||||
{wrapper}
|
||||
|
||||
{BoardSettingsModal(coreViewModel, boardViewModel)}
|
||||
{SearchModal(
|
||||
coreViewModel,
|
||||
boardViewModel.searchViewModel,
|
||||
coreViewModel.translations.chatPage.task.filterTasksHeadline,
|
||||
TaskViewModelToEntry,
|
||||
boardViewModel.isPresentingFilterModal,
|
||||
)}
|
||||
<div children:set={taskSettingsModal}></div>
|
||||
</div>
|
||||
);
|
||||
{BoardSettingsModal(coreViewModel, boardViewModel)}
|
||||
{SearchModal(
|
||||
coreViewModel,
|
||||
boardViewModel.searchViewModel,
|
||||
coreViewModel.translations.chatPage.task.filterTasksHeadline,
|
||||
TaskViewModelToEntry,
|
||||
boardViewModel.isPresentingFilterModal,
|
||||
)}
|
||||
<div children:set={taskSettingsModal}></div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Binary file not shown.
@@ -375,7 +375,7 @@ function TransferDisplayModal(
|
||||
coreViewModel.translations.dataTransferModal
|
||||
.transferDataHeadline
|
||||
}
|
||||
</h2>
|
||||
</h2>
|
||||
|
||||
<p
|
||||
class="secondary"
|
||||
@@ -394,11 +394,11 @@ function TransferDisplayModal(
|
||||
coreViewModel.translations.dataTransferModal
|
||||
.allFilesSent
|
||||
}
|
||||
</p>
|
||||
</p>
|
||||
|
||||
<hr></hr>
|
||||
<hr></hr>
|
||||
|
||||
<div class="flex-column gap content-margin-bottom">
|
||||
<div class="flex-column gap content-margin-bottom">
|
||||
<div class="tile">
|
||||
<span class="icon">forum</span>
|
||||
<div>
|
||||
@@ -514,8 +514,8 @@ function TransferDataInputModal(
|
||||
.transferChannelHeadline
|
||||
}
|
||||
</span>
|
||||
<input
|
||||
type="number"
|
||||
<input
|
||||
type="number"
|
||||
on:enter={
|
||||
fileTransferViewModel.prepareReceivingData
|
||||
}
|
||||
@@ -536,7 +536,7 @@ function TransferDataInputModal(
|
||||
}
|
||||
</span>
|
||||
<input
|
||||
type="number"
|
||||
type="number"
|
||||
on:enter={
|
||||
fileTransferViewModel.prepareReceivingData
|
||||
}
|
||||
@@ -612,10 +612,23 @@ function DataReceptionModal(
|
||||
]}
|
||||
></div>
|
||||
</main>
|
||||
<button on:click={ViewController.reload}>
|
||||
{coreViewModel.translations.general.reloadAppButton}
|
||||
<span class="icon">refresh</span>
|
||||
</button>
|
||||
<div class="flex-row width-100">
|
||||
<button
|
||||
class="flex"
|
||||
on:click={
|
||||
fileTransferViewModel.showTransferDataInputModal
|
||||
}
|
||||
toggle:disabled={
|
||||
fileTransferViewModel.cannotExitReception
|
||||
}
|
||||
>
|
||||
{coreViewModel.translations.general.backButton}
|
||||
</button>
|
||||
<button class="flex" on:click={ViewController.reload}>
|
||||
{coreViewModel.translations.general.reloadAppButton}
|
||||
<span class="icon">refresh</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -71,6 +71,10 @@ export default class FileTransferViewModel extends Context {
|
||||
this.receivingTransferChannel.value == "" ||
|
||||
this.receivingTransferKey.value == "",
|
||||
);
|
||||
cannotExitReception: React.State<boolean> = React.createProxyState(
|
||||
[this.filePathsReceived],
|
||||
() => this.filePathsReceived.value.size > 0,
|
||||
);
|
||||
|
||||
cannotExport: React.State<boolean> = React.createProxyState(
|
||||
[this.exportKey, this.exportKeyConfirmation],
|
||||
|
||||
Reference in New Issue
Block a user