only remove clog data attributes

This commit is contained in:
David Botton 2024-07-22 02:38:36 -04:00
parent fd2525076e
commit 180b64c6ca
7 changed files with 138 additions and 51 deletions

2
clog.asd vendored
View file

@ -72,7 +72,7 @@
(asdf:defsystem #:clog/tools
:depends-on (#:clog #:clog-ace #:clog-terminal #:s-base64 #:cl-indentify
#:definitions #:parenscript #:trivial-main-thread #:swank)
#:definitions #:parenscript #:trivial-main-thread #:plump #:swank)
:pathname "tools/"
:components (;; clog-db-admin app
(:file "clog-db-admin")

View file

@ -46,7 +46,7 @@
if($(this).attr('data-clog-composite-control') == 't'){$(this).text('')}~
if($(this).attr('id') !== undefined && ~
$(this).attr('id').substring(0,5)=='CLOGB'){$(this).removeAttr('id')}});~
html_beautify (z.html(),{'wrap_line_length':'80'})"
z.html();"
(jquery content))))
(destroy data))
(maphash
@ -143,7 +143,7 @@
(let* ((control-record (control-info (value (select-tool app))))
(control-type-name (getf control-record :create-type)))
(cond ((eq control-type-name :custom-query)
(input-dialog win "Enter html (must have an outer element):"
(input-dialog win "Enter html (must have one outer element):"
(lambda (custom-query)
(when custom-query
(when (do-drop-new-control
@ -174,7 +174,7 @@
:title "Custom Control"
:default-value (getf control-record :create-content)))
((eq control-type-name :custom-block)
(input-dialog win "Enter html to create control:"
(input-dialog win "Enter inner html of block:"
(lambda (custom-query)
(when custom-query
(when (do-drop-new-control
@ -1014,19 +1014,7 @@ not a temporarily attached one when using select-control."
(place-inside-bottom-of (bottom-panel box)
(get-placer control)))
(get-control-list app panel-id))
(setf result (js-query content
(format nil
"var z=~a.clone();~
z.find('*').each(function(){~
var m=$(this).attr('data-clog-name');
if($(this).attr('data-clog-composite-control') == 't'){$(this).text('')}~
if($(this).attr('data-clog-composite-control') == 'b'){$(this).html($(this).attr('data-original-html'))}~
for(n in $(this).get(0).dataset){delete $(this).get(0).dataset[n]}~
if(m){$(this).attr('data-clog-name', m);}~
});~
html_beautify (z.html(),{'wrap_line_length': '80',
'extra_liners': 'div,form,input,button,select,textarea,ol,ul,table,style,datalist'})"
(jquery content))))
(setf result (pprint-as-html content))
(maphash
(lambda (html-id control)
(declare (ignore html-id))

View file

@ -2,6 +2,50 @@
;; Code rendering utlities
(defun pprint-as-html (content)
(js-query content (format nil "html_beautify ('~A',{'wrap_line_length':'80',~
'extra_liners':'div,form,input,button,select,textarea,ol,ul,table,style,datalist'})"
(escape-string (remove-clog-attributes (inner-html content))))))
(defun remove-clog-attributes (html)
(let ((root (plump:parse html)))
(html-remove-attributes root '("data-clog-type"
"data-original-html"
"data-clog-composite-control"
"data-clog-custom-create"))
(with-output-to-string (str)
(plump:serialize root str))))
(defun html-remove-attributes (root attrs)
(let ((v (plump:child-elements root)))
(dotimes (n (length v))
(if (equalp (plump:tag-name (aref v n)) "data")
(plump:remove-child (aref v n))
(progn
(when (plump:child-elements (aref v n))
(let ((composite (plump:attribute (aref v n) "data-clog-composite-control")))
(if composite
(progn
(if (equalp composite "b")
(let* ((new-html (plump:parse (plump:attribute (aref v n) "data-original-html")))
(new-children (plump:child-elements new-html)))
(plump:clear (aref v n))
(dotimes (cn (length new-children))
(plump:append-child (aref v n) (aref new-children cn))))
(plump:clear (aref v n))))
(html-remove-attributes (aref v n) attrs))))
(maphash (lambda (k v)
(declare (ignore v))
(unless (ppcre:scan "^data-clog-name" k)
(when (ppcre:scan "^data-clog-" k)
(pushnew k attrs :test 'equalp)))
(when (ppcre:scan "^data-on-" k)
(pushnew k attrs :test 'equalp)))
(plump:attributes (aref v n)))
(mapcar (lambda (attr)
(plump:remove-attribute (aref v n) attr))
attrs))))))
(defun render-clog-code (content hide-loc)
"Render panel to clog code and add to window"
(let* ((app (connection-data-item content "builder-app-data"))
@ -100,19 +144,8 @@
cmembers
cname ;;defun
(ppcre:regex-replace-all "\""
(js-query content
(format nil
"var z=~a.clone();~
z.find('*').each(function(){~
var m=$(this).attr('data-clog-name');
if($(this).attr('data-clog-composite-control') == 't'){$(this).text('')}~
if($(this).attr('data-clog-composite-control') == 'b'){$(this).html($(this).attr('data-original-html'))}~
for(n in $(this).get(0).dataset){delete $(this).get(0).dataset[n]}~
if(m){$(this).attr('data-clog-name', m);}~
});~
html_beautify (z.html(),{'wrap_line_length': '80'})"
(jquery content)))
"\\\"")
(pprint-as-html content)
"\\\"")
cname
vars
(reverse creates) ; Insure that on-setup/on-create follow order in tree

View file

@ -443,7 +443,7 @@ clog-builder window.")
(on-new-builder-panel-ext obj)
(on-new-builder-panel obj))))
(create-gui-menu-item file :content "New CLOG Panel Popup Editor" :on-click 'on-new-builder-page)
(create-gui-menu-item file :content "New HTML Panel Popup Editor" :on-click 'on-new-builder-basic-page)
(create-gui-menu-item file :content "New No-CSS Panel External Editor" :on-click 'on-new-builder-basic-page)
(create-gui-menu-item file :content "New Custom Boot Panel External Editor" :on-click 'on-new-builder-custom-page)
(create-gui-menu-item file :content "New CLOG Builder Window" :on-click
(lambda (obj)

View file

@ -1 +1 @@
<data id="I3921165914" data-in-package="clog-tools" data-custom-slots="(classes :accessor classes) (search-js :accessor search-js :initform nil) (fname :accessor fname) (state :accessor state :initform t)" data-clog-next-id="24" data-clog-title="sys-browser"></data><select data-clog-type="dropdown" data-clog-name="type-box" style="box-sizing: content-box; position: absolute; left: 5px; top: 10px; width: 190px; height: 20px;" data-on-create="(sys-browser-type-box-create panel target)" data-on-change="(sys-browser-populate panel)"></select><select data-clog-type="dropdown" data-clog-name="package-box" style="box-sizing: content-box; position: absolute; left: 205px; top: 10px; width: 300px; height: 20px; bottom: 335.028px;" data-on-create="(sys-browser-package-box panel target)" data-on-change="(sys-browser-populate panel)"></select><label for="CLOGB386795982312" data-clog-type="label" data-clog-for="class-only" data-clog-name="label-class-only" style="box-sizing: content-box; position: absolute; left: 535px; top: 9px;" class="">pkg only</label><input type="CHECKBOX" value="" data-clog-type="checkbox" data-clog-name="class-only" style="box-sizing: content-box; position: absolute; left: 516px; top: 15px;" checked="checked" data-on-change="(sys-browser-populate panel)"><input type="TEXT" value="" data-clog-type="input" data-clog-name="search-box" style="box-sizing: content-box; position: absolute; inset: 7px 5px 332.045px 605px; height: 22px;" data-on-key-up="(sys-browser-search-box-key-up panel target data)" placeholder="search" name=""><select data-clog-type="listbox" size="4" data-clog-name="class-box" style="box-sizing: content-box; position: absolute; left: 5px; top: 40px; right: 5px; height: 125px;" class="w3-small" data-on-change="(sys-browser-select panel target)" data-on-click="(sys-browser-select panel target)"></select><textarea name="" cols="20" rows="2" data-clog-type="textarea" data-clog-name="doc-box" style="box-sizing: content-box; position: absolute; right: 5px; height: 50px; resize: none; min-width: 0px; top: 175px; left: 5px;" class="&nbsp;w3-small"></textarea><input type="TEXT" value="clog-user" data-clog-type="input" data-clog-name="pac-box" style="box-sizing: content-box; position: absolute; left: 5px; top: 239px; right: 5px; height: 18px;" placeholder="Current Package" class="w3-small"><div class="ace_editor ace_hidpi ace-xcode ace-tm" data-clog-type="clog-ace" data-clog-composite-control="t" data-clog-ace-theme="ace/theme/xcode" data-clog-ace-mode="ace/mode/lisp" data-clog-ace-tab-size="2" data-clog-name="src-box" style="border: thin solid black; box-sizing: content-box; position: absolute; inset: 273px 5px 50px;" data-on-create="(setup-lisp-ace target (status-box panel))" data-on-input="(sys-browser-src-box-on-input panel target)"></div><input type="button" data-clog-type="fbutton" data-clog-name="file-name" style="box-sizing: content-box; position: absolute; left: 5px; bottom: 24px; right: 290px; text-align: left; height: 18px;" class="w3-small" data-on-click="(sys-browser-file-name-on-click panel target)"><input type="BUTTON" value="Eval Form" data-clog-type="fbutton" data-clog-name="eval-form-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 215px; bottom: 24px;" class="w3-tiny" disabled="disabled" data-on-click="(sys-browser-eval-form-button-on-click panel target)"><input type="BUTTON" value="Eval Sel" data-clog-type="fbutton" data-clog-name="eval-sel-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 145px; bottom: 25px;" class="w3-tiny" data-on-click="(sys-browser-eval-sel-button-on-click panel target)" placeholder="" disabled="disabled"><input type="BUTTON" value="Eval File" data-clog-type="fbutton" data-clog-name="eval-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 75px; bottom: 25px;" class="w3-tiny" data-on-click="(sys-browser-eval-button-on-click panel target)" disabled="disabled"><input type="BUTTON" value="Save" data-clog-type="fbutton" data-clog-name="save-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 5px; bottom: 25px;" class="w3-tiny" disabled="disabled" data-on-click="(sys-browser-save-button-on-click panel target)"><div data-clog-type="div" data-clog-name="status-box" style="box-sizing: content-box; position: absolute; left: 5px; bottom: 5px; right: 5px;" class="w3-tiny w3-border">status</div>
<data id="I3930618984" data-in-package="clog-tools" data-custom-slots="(classes :accessor classes) (search-js :accessor search-js :initform nil) (fname :accessor fname) (state :accessor state :initform t)" data-clog-next-id="24" data-clog-title="sys-browser"></data><select data-clog-type="dropdown" data-clog-name="type-box" style="box-sizing: content-box; position: absolute; left: 5px; top: 10px; width: 190px; height: 20px;" data-on-create="(sys-browser-type-box-create panel target)" data-on-change="(sys-browser-populate panel)"></select><select data-clog-type="dropdown" data-clog-name="package-box" style="box-sizing: content-box; position: absolute; left: 205px; top: 10px; width: 300px; height: 20px; bottom: 335.028px;" data-on-create="(sys-browser-package-box panel target)" data-on-change="(sys-browser-populate panel)"></select><label for="CLOGB386795982312" data-clog-type="label" data-clog-for="class-only" data-clog-name="label-class-only" style="box-sizing: content-box; position: absolute; left: 535px; top: 9px;" class="">pkg only</label><input type="CHECKBOX" value="" data-clog-type="checkbox" data-clog-name="class-only" style="box-sizing: content-box; position: absolute; left: 516px; top: 15px;" checked="checked" data-on-change="(sys-browser-populate panel)"><input type="TEXT" value="" data-clog-type="input" data-clog-name="search-box" style="box-sizing: content-box; position: absolute; inset: 7px 5px 332.045px 605px; height: 22px;" data-on-key-up="(sys-browser-search-box-key-up panel target data)" placeholder="search" name=""><select data-clog-type="listbox" size="4" data-clog-name="class-box" style="box-sizing: content-box; position: absolute; left: 5px; top: 40px; right: 5px; height: 125px;" class="w3-small" data-on-change="(sys-browser-select panel target)" data-on-click="(sys-browser-select panel target)"></select><textarea name="" cols="20" rows="2" data-clog-type="textarea" data-clog-name="doc-box" style="box-sizing: content-box; position: absolute; right: 5px; height: 50px; resize: none; min-width: 0px; top: 175px; left: 5px;" class="&nbsp;w3-small"></textarea><input type="TEXT" value="clog-user" data-clog-type="input" data-clog-name="pac-box" style="box-sizing: content-box; position: absolute; left: 5px; top: 239px; right: 5px; height: 18px;" placeholder="Current Package" class="w3-small"><div class="ace_editor ace_hidpi ace-xcode ace-tm" data-clog-type="clog-ace" data-clog-composite-control="t" data-clog-ace-theme="ace/theme/xcode" data-clog-ace-mode="ace/mode/lisp" data-clog-ace-tab-size="2" data-clog-name="src-box" style="border: thin solid black; box-sizing: content-box; position: absolute; inset: 273px 5px 50px;" data-on-create="(setup-lisp-ace target (status-box panel))" data-on-input="(sys-browser-src-box-on-input panel target)"></div><input type="button" data-clog-type="fbutton" data-clog-name="file-name" style="box-sizing: content-box; position: absolute; left: 5px; bottom: 24px; right: 290px; text-align: left; height: 18px;" class="w3-small" data-on-click="(sys-browser-file-name-on-click panel target)"><input type="BUTTON" value="Eval Form" data-clog-type="fbutton" data-clog-name="eval-form-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 215px; bottom: 24px;" class="w3-tiny" disabled="disabled" data-on-click="(sys-browser-eval-form-button-on-click panel target)"><input type="BUTTON" value="Eval Sel" data-clog-type="fbutton" data-clog-name="eval-sel-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 145px; bottom: 25px;" class="w3-tiny" data-on-click="(sys-browser-eval-sel-button-on-click panel target)" placeholder="" disabled="disabled"><input type="BUTTON" value="Eval File" data-clog-type="fbutton" data-clog-name="eval-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 75px; bottom: 25px;" class="w3-tiny" data-on-click="(sys-browser-eval-button-on-click panel target)" disabled="disabled"><input type="BUTTON" value="Save" data-clog-type="fbutton" data-clog-name="save-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 5px; bottom: 25px;" class="w3-tiny" disabled="disabled" data-on-click="(sys-browser-save-button-on-click panel target)"><div data-clog-type="div" data-clog-name="status-box" style="box-sizing: content-box; position: absolute; left: 5px; bottom: 5px; right: 5px;" class="w3-tiny w3-border">status</div>

View file

@ -15,58 +15,115 @@
(search-js :accessor search-js :initform nil)
(fname :accessor fname) (state :accessor state :initform t)))
(defun create-sys-browser
(clog-obj &key (hidden nil) (class nil) (html-id nil) (auto-place t))
(clog-obj &key hidden class style html-id (auto-place t))
(let ((panel
(change-class
(clog:create-div clog-obj :content
"<select style=\"box-sizing: content-box; position: absolute; left: 5px; top: 10px; width: 190px; height: 20px;\" id=\"CLOGB3921165388\" data-clog-name=\"type-box\"></select><select style=\"box-sizing: content-box; position: absolute; left: 205px; top: 10px; width: 300px; height: 20px; bottom: 335.028px;\" id=\"CLOGB3921165389\" data-clog-name=\"package-box\"></select><label for=\"CLOGB386795982312\" style=\"box-sizing: content-box; position: absolute; left: 535px; top: 9px;\" class=\"\" id=\"CLOGB3921165390\" data-clog-name=\"label-class-only\">pkg only</label><input type=\"CHECKBOX\" value=\"\" style=\"box-sizing: content-box; position: absolute; left: 516px; top: 15px;\" checked=\"checked\" id=\"CLOGB3921165391\" data-clog-name=\"class-only\"><input type=\"TEXT\" value=\"\" style=\"box-sizing: content-box; position: absolute; inset: 7px 5px 332.045px 605px; height: 22px;\" placeholder=\"search\" name=\"\" id=\"CLOGB3921165392\" data-clog-name=\"search-box\"><select size=\"4\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 40px; right: 5px; height: 125px;\" class=\"w3-small\" id=\"CLOGB3921165393\" data-clog-name=\"class-box\"></select><textarea name=\"\" cols=\"20\" rows=\"2\" style=\"box-sizing: content-box; position: absolute; right: 5px; height: 50px; resize: none; min-width: 0px; top: 175px; left: 5px;\" class=\"&nbsp;w3-small\" id=\"CLOGB3921165394\" data-clog-name=\"doc-box\"></textarea><input type=\"TEXT\" value=\"clog-user\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 239px; right: 5px; height: 18px;\" placeholder=\"Current Package\" class=\"w3-small\" id=\"CLOGB3921165395\" data-clog-name=\"pac-box\"><div class=\"ace_editor ace_hidpi ace-xcode ace-tm\" style=\"border: thin solid black; box-sizing: content-box; position: absolute; inset: 273px 5px 50px;\" id=\"CLOGB3921165396\" data-clog-name=\"src-box\"></div><input type=\"button\" style=\"box-sizing: content-box; position: absolute; left: 5px; bottom: 24px; right: 290px; text-align: left; height: 18px;\" class=\"w3-small\" id=\"CLOGB3921165397\" data-clog-name=\"file-name\"><input type=\"BUTTON\" value=\"Eval Form\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 215px; bottom: 24px;\" class=\"w3-tiny\" disabled=\"disabled\" id=\"CLOGB3921165398\" data-clog-name=\"eval-form-button\"><input type=\"BUTTON\" value=\"Eval Sel\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 145px; bottom: 25px;\" class=\"w3-tiny\" placeholder=\"\" disabled=\"disabled\" id=\"CLOGB3921165399\" data-clog-name=\"eval-sel-button\"><input type=\"BUTTON\" value=\"Eval File\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 75px; bottom: 25px;\" class=\"w3-tiny\" disabled=\"disabled\" id=\"CLOGB3921165400\" data-clog-name=\"eval-button\"><input type=\"BUTTON\" value=\"Save\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 5px; bottom: 25px;\" class=\"w3-tiny\" disabled=\"disabled\" id=\"CLOGB3921165401\" data-clog-name=\"save-button\"><div style=\"box-sizing: content-box; position: absolute; left: 5px; bottom: 5px; right: 5px;\" class=\"w3-tiny w3-border\" id=\"CLOGB3921165402\" data-clog-name=\"status-box\">status</div>"
:hidden hidden :class class :html-id html-id
:auto-place auto-place)
"<select data-clog-name=\"type-box\"
style=\"box-sizing: content-box; position: absolute; left: 5px; top: 10px; width: 190px; height: 20px;\"
id=\"CLOGB3930618984\"></select>
<select data-clog-name=\"package-box\"
style=\"box-sizing: content-box; position: absolute; left: 205px; top: 10px; width: 300px; height: 20px; bottom: 335.028px;\"
id=\"CLOGB3930618985\"></select><label for=\"CLOGB386795982312\"
data-clog-name=\"label-class-only\"
style=\"box-sizing: content-box; position: absolute; left: 535px; top: 9px;\"
class=\"\" id=\"CLOGB3930618986\">pkg only</label>
<input type=\"CHECKBOX\" value=\"\" data-clog-name=\"class-only\"
style=\"box-sizing: content-box; position: absolute; left: 516px; top: 15px;\"
checked=\"checked\" id=\"CLOGB3930618987\">
<input type=\"TEXT\" value=\"\" data-clog-name=\"search-box\"
style=\"box-sizing: content-box; position: absolute; inset: 7px 5px 332.045px 605px; height: 22px;\"
placeholder=\"search\" name=\"\" id=\"CLOGB3930618988\">
<select size=\"4\" data-clog-name=\"class-box\"
style=\"box-sizing: content-box; position: absolute; left: 5px; top: 40px; right: 5px; height: 125px;\"
class=\"w3-small\" id=\"CLOGB3930618989\"></select>
<textarea name=\"\" cols=\"20\" rows=\"2\" data-clog-name=\"doc-box\"
style=\"box-sizing: content-box; position: absolute; right: 5px; height: 50px; resize: none; min-width: 0px; top: 175px; left: 5px;\"
class=\" w3-small\" id=\"CLOGB3930618990\"></textarea>
<input type=\"TEXT\" value=\"clog-user\" data-clog-name=\"pac-box\"
style=\"box-sizing: content-box; position: absolute; left: 5px; top: 239px; right: 5px; height: 18px;\"
placeholder=\"Current Package\" class=\"w3-small\" id=\"CLOGB3930618991\">
<div class=\"ace_editor ace_hidpi ace-xcode ace-tm\" data-clog-name=\"src-box\"
style=\"border: thin solid black; box-sizing: content-box; position: absolute; inset: 273px 5px 50px;\"
id=\"CLOGB3930618992\"></div>
<input type=\"button\" data-clog-name=\"file-name\"
style=\"box-sizing: content-box; position: absolute; left: 5px; bottom: 24px; right: 290px; text-align: left; height: 18px;\"
class=\"w3-small\" id=\"CLOGB3930618993\">
<input type=\"BUTTON\" value=\"Eval Form\" data-clog-name=\"eval-form-button\"
style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 215px; bottom: 24px;\"
class=\"w3-tiny\" disabled=\"disabled\" id=\"CLOGB3930618994\">
<input type=\"BUTTON\" value=\"Eval Sel\" data-clog-name=\"eval-sel-button\"
style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 145px; bottom: 25px;\"
class=\"w3-tiny\" placeholder=\"\" disabled=\"disabled\" id=\"CLOGB3930618995\">
<input type=\"BUTTON\" value=\"Eval File\" data-clog-name=\"eval-button\"
style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 75px; bottom: 25px;\"
class=\"w3-tiny\" disabled=\"disabled\" id=\"CLOGB3930618996\">
<input type=\"BUTTON\" value=\"Save\" data-clog-name=\"save-button\"
style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 5px; bottom: 25px;\"
class=\"w3-tiny\" disabled=\"disabled\" id=\"CLOGB3930618997\">
<div data-clog-name=\"status-box\"
style=\"box-sizing: content-box; position: absolute; left: 5px; bottom: 5px; right: 5px;\"
class=\"w3-tiny w3-border\" id=\"CLOGB3930618998\">status</div>"
:hidden hidden :class class :style style :html-id
html-id :auto-place auto-place)
'sys-browser)))
(setf (slot-value panel 'status-box)
(attach-as-child clog-obj "CLOGB3921165402" :clog-type
(attach-as-child clog-obj "CLOGB3930618998" :clog-type
'clog:clog-div :new-id t))
(setf (slot-value panel 'save-button)
(attach-as-child clog-obj "CLOGB3921165401" :clog-type
(attach-as-child clog-obj "CLOGB3930618997" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'eval-button)
(attach-as-child clog-obj "CLOGB3921165400" :clog-type
(attach-as-child clog-obj "CLOGB3930618996" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'eval-sel-button)
(attach-as-child clog-obj "CLOGB3921165399" :clog-type
(attach-as-child clog-obj "CLOGB3930618995" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'eval-form-button)
(attach-as-child clog-obj "CLOGB3921165398" :clog-type
(attach-as-child clog-obj "CLOGB3930618994" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'file-name)
(attach-as-child clog-obj "CLOGB3921165397" :clog-type
(attach-as-child clog-obj "CLOGB3930618993" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'src-box)
(attach-as-child clog-obj "CLOGB3921165396" :clog-type
(attach-as-child clog-obj "CLOGB3930618992" :clog-type
'clog-ace:clog-ace-element :new-id t))
(setf (slot-value panel 'pac-box)
(attach-as-child clog-obj "CLOGB3921165395" :clog-type
(attach-as-child clog-obj "CLOGB3930618991" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'doc-box)
(attach-as-child clog-obj "CLOGB3921165394" :clog-type
(attach-as-child clog-obj "CLOGB3930618990" :clog-type
'clog:clog-text-area :new-id t))
(setf (slot-value panel 'class-box)
(attach-as-child clog-obj "CLOGB3921165393" :clog-type
(attach-as-child clog-obj "CLOGB3930618989" :clog-type
'clog:clog-select :new-id t))
(setf (slot-value panel 'search-box)
(attach-as-child clog-obj "CLOGB3921165392" :clog-type
(attach-as-child clog-obj "CLOGB3930618988" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'class-only)
(attach-as-child clog-obj "CLOGB3921165391" :clog-type
(attach-as-child clog-obj "CLOGB3930618987" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'label-class-only)
(attach-as-child clog-obj "CLOGB3921165390" :clog-type
(attach-as-child clog-obj "CLOGB3930618986" :clog-type
'clog:clog-label :new-id t))
(setf (slot-value panel 'package-box)
(attach-as-child clog-obj "CLOGB3921165389" :clog-type
(attach-as-child clog-obj "CLOGB3930618985" :clog-type
'clog:clog-select :new-id t))
(setf (slot-value panel 'type-box)
(attach-as-child clog-obj "CLOGB3921165388" :clog-type
(attach-as-child clog-obj "CLOGB3930618984" :clog-type
'clog:clog-select :new-id t))
(let ((target (type-box panel)))
(declare (ignorable target))

9
tutorial/README.md vendored
View file

@ -1,5 +1,14 @@
To run a tutorial load clog:
If using the builder open a CLOG Builder REPL and type:
```
> (clog:run-tutorial 1)
```
If using another REPL load CLOG:
```
CL-USER> (ql:quickload :clog)
To load "clog":