|
|
@ -5,6 +5,7 @@ tag app-edit |
|
|
|
|
|
|
|
def open data |
|
|
|
link = data |
|
|
|
new_link_text = value=api.construct_link_text(link) |
|
|
|
active = yes |
|
|
|
|
|
|
|
def close |
|
|
@ -16,11 +17,7 @@ tag app-edit |
|
|
|
imba.commit! |
|
|
|
|
|
|
|
def handle_click_set_default_bang |
|
|
|
unless link.is_bang |
|
|
|
return err "setting default bang", "Link is not a bang." |
|
|
|
config.data.default_bang = link |
|
|
|
config.save! |
|
|
|
api.sort_links! |
|
|
|
config.set_default_bang link |
|
|
|
close! |
|
|
|
|
|
|
|
def handle_delete |
|
|
@ -32,75 +29,62 @@ tag app-edit |
|
|
|
|
|
|
|
def save |
|
|
|
try |
|
|
|
if /\s/.test link.name.trim! |
|
|
|
throw "Link name may not contain spaces." |
|
|
|
api.update_link link, api.construct_link_text link |
|
|
|
api.update_link link, new_link_text |
|
|
|
close! |
|
|
|
catch e |
|
|
|
err "saving link", e |
|
|
|
|
|
|
|
get new_link_text |
|
|
|
"wip" |
|
|
|
|
|
|
|
def cycle_focus |
|
|
|
if document.activeElement is $dn |
|
|
|
$n.focus! |
|
|
|
elif document.activeElement is $n |
|
|
|
$u.focus! |
|
|
|
else |
|
|
|
$dn.focus! |
|
|
|
|
|
|
|
def render |
|
|
|
|
|
|
|
<self> |
|
|
|
css d:flex fld:column gap:20px w:100% |
|
|
|
|
|
|
|
<div> |
|
|
|
<input$dn bind=new_link_text> |
|
|
|
|
|
|
|
<app-tips> |
|
|
|
|
|
|
|
<.tip-row> |
|
|
|
|
|
|
|
<.tip |
|
|
|
@click=close |
|
|
|
@hotkey('esc').capture.if(!state.loading)=close |
|
|
|
> |
|
|
|
<.tip-hotkey> "Esc" |
|
|
|
<.tip-content> "Cancel" |
|
|
|
|
|
|
|
<.tip |
|
|
|
@click=handle_delete |
|
|
|
@hotkey('shift+backspace').capture.if(!state.loading)=handle_delete |
|
|
|
> |
|
|
|
css fl:2 |
|
|
|
<.tip-hotkey> "Shift + Backspace" |
|
|
|
<.tip-content> "Delete Link" |
|
|
|
|
|
|
|
if link.is_bang |
|
|
|
<.tip @click=handle_click_set_default_bang> |
|
|
|
css fl:2 |
|
|
|
<.tip-content> "Set Default Bang" |
|
|
|
|
|
|
|
<.tip |
|
|
|
@click=save |
|
|
|
@hotkey('shift+return').capture.if(!state.loading)=save |
|
|
|
@hotkey('return').capture.if(!state.loading)=save |
|
|
|
> |
|
|
|
css fl:2 |
|
|
|
<.tip-hotkey> "Return" |
|
|
|
<.tip-content> "Update Link" |
|
|
|
|
|
|
|
<.tip.noclick |
|
|
|
@hotkey('tab').capture.if(!state.loading)=cycle_focus |
|
|
|
if link.is_bang |
|
|
|
<.tip @click=handle_click_set_default_bang> |
|
|
|
<.tip-hotkey> "Click" |
|
|
|
<.tip-content> "Set Default Bang" |
|
|
|
else |
|
|
|
<.tip |
|
|
|
@click=close |
|
|
|
@hotkey('esc').capture.if(!state.loading)=close |
|
|
|
> |
|
|
|
<.tip-hotkey> "Tab" |
|
|
|
<.tip-content> "Next" |
|
|
|
<.tip-hotkey> "Esc" |
|
|
|
<.tip-content> "Cancel" |
|
|
|
|
|
|
|
<.inputs> |
|
|
|
css d:flex fld:column gap:20px |
|
|
|
if link.is_bang |
|
|
|
|
|
|
|
<div> |
|
|
|
<input$dn bind=link.display_name> |
|
|
|
<app-tips-more> |
|
|
|
|
|
|
|
<div> |
|
|
|
<input$n bind=link.name> |
|
|
|
<.tip-row> |
|
|
|
|
|
|
|
<div> |
|
|
|
<input$u bind=link.url> |
|
|
|
<.tip |
|
|
|
@click=close |
|
|
|
@hotkey('esc').capture.if(!state.loading)=close |
|
|
|
> |
|
|
|
<.tip-hotkey> "Esc" |
|
|
|
<.tip-content> "Cancel" |
|
|
|
|
|
|
|
<.tip.placeholder> |
|
|
|
|
|
|
|
<.tip.placeholder> |
|
|
|