diff --git a/contrib/cont-responder/browser.factor b/contrib/cont-responder/browser.factor index afc43327e7..6d60470516 100644 --- a/contrib/cont-responder/browser.factor +++ b/contrib/cont-responder/browser.factor @@ -44,12 +44,13 @@ USE: html USE: parser USE: errors -: ( vocab word -- ) +: ( allow-edit? vocab word -- ) #! An object for storing the current browser #! user interface state. [ "current-word" set "current-vocab" set + "allow-edit?" set ] extend ; : write-vocab-list ( -- ) @@ -93,7 +94,7 @@ USE: errors #! Write the source for the given word from the vocab as HTML. [ "responder" "inspect" put - "Edit" [ "edit-state" t put ] quot-href
+ "allow-edit?" get [ "Edit" [ "edit-state" t put ] quot-href
] when "edit-state" get [ write-editable-word-source ] [ @@ -189,16 +190,25 @@ USE: errors ] ] ] - ] show + ] show [ + "allow-edit?" get [ + "eval" get [ + "eval" f put + "Editing has been disabled." show-message-page + ] when + ] unless + "allow-edit?" get "allow-edit?" set + ] extend ] bind [ + "allow-edit?" get "vocabs" get "words" get "eval" get dup [ "vocabs" get swap eval-string ] [ drop ] ifte ] bind ] forever ; -: browser-responder ( -- ) +: browser-responder ( allow-edit? -- ) #! Start the Smalltalk-like browser. "browser" "" browse ; -"browser" [ browser-responder ] install-cont-responder +"browser" [ f browser-responder ] install-cont-responder