login
admin
back
clay search
view all the instances of a search within clay.
source code
paste this code into a hawk file
protocol: hawk-500
!: |^ print :: ++ our (crip (pib-as:c %p /sys/our)) ++ dek (crip (pub-as:c %tas /desk tas/%base)) ++ now (crip (pib-as:c %da /sys/now)) ++ default-pax t+'/sys/vane' ++ default-query ud/0 ++ default-line-up ud/5 ++ default-line-down ud/25 ++ print :: ;hawk-sidebar.hf =side "top" =label "search" =min "10" =size "150" =max "500" =open "" ;+ print-query ;div.page ;+ print-code == == ++ print-query :: ;form.b0.frw.af.jf.z1.p3.g1.mono.s0.ma(method "post", slot "side") =style "max-width: 750px;" ;label.fc :: desk :: ;span.mono.s-2.b1.p-1.bd1.f4: desk ;input.bd1.p2.s0 =type "text" =style "width: 120px;" =name "/desk" =autocomplete "off" =placeholder "base" =required "" =value (trip dek) ; == ;span.s-2.o6.hidden ;span: ex: ;span.mono.o7: base == == ;label.fc.grow :: path :: ;span.mono.s-2.b1.p-1.bd1.f4: path (directory or file) ;input.bd1.p2.s0 =type "text" =name "/pax" =autocomplete "off" =required "" =value (pub:c /pax default-pax) ; == == ;div.basis-full; ;label.fc.grow :: query :: ;span.mono.s-2.b1.p-1.bd1.f4: query (line num or search term) ;input.bd1.p2 =name "/query" =required "" =autocomplete "off" =value (pub:c /query default-query) ; == == ;label.fc :: up :: ;span.mono.s-2.b1.p-1.bd1.f4: lines up ;input.bd1.p2 =type "number" =style "width: 100px;" =name "/line-up" =autocomplete "off" =min "0" =max "999" =required "" =value (pub:c /line-up default-line-up) ; == == ;label.fc :: down :: ;span.mono.s-2.b1.p-1.bd1.f4: lines down ;input.bd1.p2 =style "width: 100px;" =type "number" =name "/line-down" =autocomplete "off" =min "0" =max "999" =required "" =value (pub:c /line-down default-line-down) ; == == ;button.loader.p-2.bd1.b2.hover.s0 ;span.loaded: search ;span.loading: ====== == == ++ print-code :: =/ pux=(unit path) %- mole |. %- stab q:(rub:c /pax default-pax) ?~ pux ;div.mono.s0 ;div.f-1: invalid path ;div: {(pib:c /pax)} == =/ bek /[our]/[dek]/[now] =/ fqcp (welp bek u.pux) =/ files=(list path) .^((list path) %ct fqcp) ?~ (lent files) ;div ;div.f-2: no files to search within ;div.mono: {(trip dek)}/{(spud u.pux)} == ;div.fc.g4 ;* %+ murn files |= pax=path ?. =((rear pax) %hoon) ~ :- ~ %+ print-clay-file pax (to-wain:format .^(@t %cx (welp bek pax))) == ++ print-clay-file :: |= [pax=path code=wain] =/ up=@ud :: =< q %+ slow %ud (crip (pub:c /line-up default-line-up)) =/ down=@ud :: =< q %+ slow %ud (crip (pub:c /line-down default-line-down)) =/ maybe-line (slaw %ud (crip (pub:c /query default-query))) ?~ maybe-line :: search :: =/ matches=(list @ud) =| m=(list @ud) =/ i 0 |- ?~ code m ?~ a=(find (pub:c /query t/'++') (trip i.code)) $(code t.code, i +(i)) =/ prev (mole |.((snag 0 m))) ?~ prev $(code t.code, i +(i), m [i m]) =/ gap (sub i u.prev) ?: (gth gap down) $(code t.code, i +(i), m [i m]) $(code t.code, i +(i)) ?~ (lent matches) ;/("") ;div.fc.g4 ;* %+ turn matches |= line=@ud (print-range pax code line up down) == %: print-range :: line-lookup :: pax code u.maybe-line up down == ++ print-range :: |= [pax=path code=wain line=@ud up=@ud down=@ud] =/ start %+ fall %- mole |. (sub line up) 0 =/ end (add line down) =/ gap (sub end start) ;form.mono.s-1.br1.bd1(method "post") ;div.hidden :: ;input.br1.bd1.p-2 =type "text" =name "/pax" =autocomplete "off" =required "" =value (pub:c /pax default-pax) ; == ;input.br1.bd1.p-2 =name "/query" =required "" =autocomplete "off" =value (scow %ud line) ; == ;input.br1.bd1.p-2 =type "number" =name "/line-up" =autocomplete "off" =required "" =value (scow %ud up) ; == ;input.br1.bd1.p-2 =type "number" =name "/line-down" =autocomplete "off" =required "" =value (scow %ud down) ; == == ;button.b2.p2.frw.jb.ac.hover.wf ;span.bold: {(trip dek)}/{(spud pax)} ;span ;span: lines {<start>}\-{<end>} ;span.f4: of {<(lent code)>} == == ;div.pre.s-1.scroll-y.scroll-x ;* =< p %^ spin (swag [start gap] code) start |= [=cord num=@] :_ +(num) =/ cls ?: =(num line) "active b0" "" :: ;div(class cls) ;span.tr.f4.o7.inline(style "width: 6ch;"): {<num>} ;span: {(trip cord)} == == == --