No longer require child relationship for database control

This commit is contained in:
David Botton 2022-03-01 15:58:21 -05:00
parent c9fb83ebfd
commit d55148a9bd
6 changed files with 46 additions and 26 deletions

View file

@ -1 +1 @@
<data id="I3855082798" data-in-package="clog-user" data-custom-slots="" data-clog-next-id="3" data-clog-title="panel-1"></data><div data-clog-type="database" data-clog-dbi-dbtype=":sqlite3" data-clog-dbi-dbname="/home/dbotton/common-lisp/clog/test/test.db" data-clog-dbi-dbparams="" data-clog-name="database-1" style="box-sizing: content-box; position: static; left: 70px; top: 61px;"><table data-clog-type="db-table" data-clog-one-row-table="r" data-clog-one-row-where="" data-clog-one-row-order="" data-clog-one-row-limit="" data-clog-one-row-master="" data-clog-one-row-id-name="rowid" data-clog-one-row-columns="rowid name nickname phone" data-clog-name="db-table-2" style="box-sizing: content-box; position: static; left: 0px; top: 0px; width: 100%; height: 0px;" data-on-create="(get-row target panel)" data-on-header="(create-child target &quot;<tr class='w3-green'><th>Row ID</th><th>Name</th><th>Nick Name</th><th>Phone</th></tr>&quot;)" class="w3-table-all w3-card-4"></table></div> <data id="I3855152244" data-in-package="clog-user" data-custom-slots="" data-clog-next-id="3" data-clog-title="panel-1"></data><div data-clog-type="database" data-clog-dbi-dbtype=":sqlite3" data-clog-dbi-dbname="/home/dbotton/common-lisp/clog/test/test.db" data-clog-dbi-dbparams="" data-clog-name="database-1" style="box-sizing: content-box; position: static; left: 70px; top: 61px;"></div><table data-clog-type="db-table" data-clog-one-row-table="r" data-clog-one-row-where="" data-clog-one-row-order="" data-clog-one-row-limit="" data-clog-one-row-master="" data-clog-one-row-id-name="rowid" data-clog-one-row-columns="rowid name nickname phone" data-clog-name="db-table-2" style="box-sizing: content-box; position: absolute; left: 15px; top: 27px; width: 471px; height: 180px;" data-on-create="(get-row target panel)" data-on-header="(create-child target &quot;<tr class='w3-green'><th>Row ID</th><th>Name</th><th>Nick Name</th><th>Phone</th></tr>&quot;)" class="w3-table-all w3-card-4" data-clog-one-row-db="database-1"></table>

View file

@ -1 +1 @@
<data id="I3854987208" data-in-package="clog-user" data-custom-slots="" data-clog-next-id="10" data-clog-title="panel-1"></data><div data-clog-type="database" data-clog-dbi-dbtype=":sqlite3" data-clog-dbi-dbname="/home/dbotton/common-lisp/clog/test/test.db" data-clog-dbi-dbparams="" data-clog-name="database-1" style="box-sizing: content-box; position: static; left: 17px; top: 18px;"><div data-clog-type="one-row" data-clog-one-row-table="r" data-clog-one-row-where="" data-clog-one-row-order="" data-clog-one-row-limit="" data-clog-one-row-master="" data-clog-one-row-id-name="rowid" data-clog-one-row-columns="rowid name nickname" data-clog-name="one-row-2" style="box-sizing: content-box; position: static; left: 69px; top: 6px;"><select data-clog-type="lookup-list" size="4" data-clog-one-row-table="i" data-clog-lookup-value="invoice" data-clog-lookup-option="disp2" data-clog-one-row-where="" data-clog-one-row-order="" data-clog-one-row-limit="" data-clog-one-row-master="name" data-clog-one-row-id-name="rowid" data-clog-one-row-columns="rowid name invoice (&quot;invoice || ' ' || idate&quot; &quot;disp2&quot;)" data-clog-name="invoice" style="box-sizing: content-box; position: absolute; left: 81px; top: 106px; width: 260px; height: 74px;"></select><select data-clog-type="lookup-drop" data-clog-one-row-table="i" data-clog-lookup-value="invoice" data-clog-lookup-option="invoice" data-clog-one-row-where="" data-clog-one-row-order="" data-clog-one-row-limit="" data-clog-one-row-master="name" data-clog-one-row-id-name="rowid" data-clog-one-row-columns="rowid name invoice" data-clog-name="lookup-drop-7" style="box-sizing: content-box; position: absolute; left: 93px; top: 197px; width: 237px; height: 20px;" data-on-create="(get-row (one-row-2 panel) panel)"></select></div></div><span data-clog-type="span" data-clog-name="name" style="box-sizing: content-box; position: absolute; left: 97px; top: 42px; width: 205px; height: 23px; color: rgb(0, 0, 0); background-attachment: scroll; background-color: rgb(221, 221, 50);">span</span><input type="TEXT" value="" data-clog-type="input" data-clog-name="nickname" style="box-sizing: content-box; position: absolute; left: 97px; top: 68px;"><button data-clog-type="button" data-clog-name="button-8" data-on-click="(get-row (one-row-2 panel) panel)" style="box-sizing: content-box; position: absolute; left: 3px; top: 32px; width: 35px; height: 22px;">First</button><button data-clog-type="button" data-clog-name="button-9" class="" data-on-click="(next-row (one-row-2 panel) panel)" style="box-sizing: content-box; position: absolute; left: 3px; top: 65px; width: 35px; height: 22px;">Next</button> <data id="I3855156119" data-in-package="clog-user" data-custom-slots="" data-clog-next-id="10" data-clog-title="panel-1"></data><div data-clog-type="database" data-clog-dbi-dbtype=":sqlite3" data-clog-dbi-dbname="/home/dbotton/common-lisp/clog/test/test.db" data-clog-dbi-dbparams="" data-clog-name="database-1" style="box-sizing: content-box; position: static; left: 17px; top: 18px;"><div data-clog-type="one-row" data-clog-one-row-table="r" data-clog-one-row-where="" data-clog-one-row-order="" data-clog-one-row-limit="" data-clog-one-row-master="" data-clog-one-row-id-name="rowid" data-clog-one-row-columns="rowid name nickname" data-clog-name="one-row-2" style="box-sizing: content-box; position: static; left: 69px; top: 6px;" data-clog-one-row-db=""></div></div><span data-clog-type="span" data-clog-name="name" style="box-sizing: content-box; position: absolute; left: 97px; top: 42px; width: 205px; height: 23px; color: rgb(0, 0, 0); background-attachment: scroll; background-color: rgb(221, 221, 50);">span</span><input type="TEXT" value="" data-clog-type="input" data-clog-name="nickname" style="box-sizing: content-box; position: absolute; left: 97px; top: 68px;"><select data-clog-type="lookup-list" size="4" data-clog-one-row-table="i" data-clog-lookup-value="invoice" data-clog-lookup-option="disp2" data-clog-one-row-where="" data-clog-one-row-order="" data-clog-one-row-limit="" data-clog-one-row-master="name" data-clog-one-row-id-name="rowid" data-clog-one-row-columns="rowid name invoice (&quot;invoice || ' ' || idate&quot; &quot;disp2&quot;)" data-clog-name="invoice" style="box-sizing: content-box; position: absolute; left: 81px; top: 106px; width: 260px; height: 74px;" data-clog-one-row-db="one-row-2"></select><select data-clog-type="lookup-drop" data-clog-one-row-table="i" data-clog-lookup-value="invoice" data-clog-lookup-option="invoice" data-clog-one-row-where="" data-clog-one-row-order="" data-clog-one-row-limit="" data-clog-one-row-master="name" data-clog-one-row-id-name="rowid" data-clog-one-row-columns="rowid name invoice" data-clog-name="lookup-drop-7" style="box-sizing: content-box; position: absolute; left: 93px; top: 197px; width: 237px; height: 20px;" data-on-create="(get-row (one-row-2 panel) panel)" data-clog-one-row-db="one-row-2"></select><button data-clog-type="button" data-clog-name="button-8" data-on-click="(get-row (one-row-2 panel) panel)" style="box-sizing: content-box; position: absolute; left: 3px; top: 32px; width: 35px; height: 22px;">First</button><button data-clog-type="button" data-clog-name="button-9" class="" data-on-click="(next-row (one-row-2 panel) panel)" style="box-sizing: content-box; position: absolute; left: 3px; top: 65px; width: 35px; height: 22px;">Next</button>

View file

@ -1 +1 @@
<data id="I3855007794" data-in-package="clog-user" data-custom-slots="" data-clog-next-id="10" data-clog-title="panel-1"></data><div data-clog-type="database" data-clog-dbi-dbtype=":sqlite3" data-clog-dbi-dbname="/home/dbotton/common-lisp/clog/test/test.db" data-clog-dbi-dbparams="" data-clog-name="database-1" style="box-sizing: content-box; position: static; left: 28px; top: 133px;"><select data-clog-type="lookup-list" size="4" data-clog-one-row-table="i" data-clog-lookup-value="name" data-clog-lookup-option="dsp" data-clog-one-row-where="" data-clog-one-row-order="" data-clog-one-row-limit="" data-clog-one-row-master="" data-clog-one-row-id-name="rowid" data-clog-one-row-columns="rowid name (&quot;invoice||' - '||idate&quot; &quot;dsp&quot;)" data-clog-name="name" style="box-sizing: content-box; position: absolute; left: 82px; top: 13px; width: 233px; height: 74px;" data-on-create="(get-row target panel)" data-on-change="(get-row (one-row-3 panel) panel)"></select><div data-clog-type="one-row" data-clog-one-row-table="r" data-clog-one-row-where="" data-clog-one-row-order="" data-clog-one-row-limit="" data-clog-one-row-master="name" data-clog-one-row-id-name="rowid" data-clog-one-row-columns="rowid (name dname) nickname" data-clog-name="one-row-3" style="box-sizing: content-box; position: static; left: 75px; top: 223px;"></div></div><span data-clog-type="span" data-clog-name="nickname" style="box-sizing: content-box; position: absolute; left: 75px; top: 135px; width: 241px; height: 23px; bottom: 82px;">n/a</span><span data-clog-type="span" data-clog-name="dname" style="box-sizing: content-box; position: absolute; left: 75px; top: 100px; width: 241px; height: 23px; bottom: 111px;">n/a</span> <data id="I3855156167" data-in-package="clog-user" data-custom-slots="" data-clog-next-id="10" data-clog-title="panel-1"></data><div data-clog-type="database" data-clog-dbi-dbtype=":sqlite3" data-clog-dbi-dbname="/home/dbotton/common-lisp/clog/test/test.db" data-clog-dbi-dbparams="" data-clog-name="database-1" style="box-sizing: content-box; position: static; left: 28px; top: 133px;"><select data-clog-type="lookup-list" size="4" data-clog-one-row-table="i" data-clog-lookup-value="name" data-clog-lookup-option="dsp" data-clog-one-row-where="" data-clog-one-row-order="" data-clog-one-row-limit="" data-clog-one-row-master="" data-clog-one-row-id-name="rowid" data-clog-one-row-columns="rowid name (&quot;invoice||' - '||idate&quot; &quot;dsp&quot;)" data-clog-name="name" style="box-sizing: content-box; position: absolute; left: 82px; top: 13px; width: 233px; height: 74px;" data-on-create="(get-row target panel)" data-on-change="(get-row (one-row-3 panel) panel)" data-clog-one-row-db=""></select><div data-clog-type="one-row" data-clog-one-row-table="r" data-clog-one-row-where="" data-clog-one-row-order="" data-clog-one-row-limit="" data-clog-one-row-master="name" data-clog-one-row-id-name="rowid" data-clog-one-row-columns="rowid (name dname) nickname" data-clog-name="one-row-3" style="box-sizing: content-box; position: static; left: 75px; top: 223px;" data-clog-one-row-db=""></div></div><span data-clog-type="span" data-clog-name="nickname" style="box-sizing: content-box; position: absolute; left: 75px; top: 135px; width: 241px; height: 23px; bottom: 82px;">n/a</span><span data-clog-type="span" data-clog-name="dname" style="box-sizing: content-box; position: absolute; left: 75px; top: 100px; width: 241px; height: 23px; bottom: 111px;">n/a</span>

File diff suppressed because one or more lines are too long

Binary file not shown.

View file

@ -1365,6 +1365,7 @@
:create-type :base :create-type :base
:setup ,(lambda (control content control-record) :setup ,(lambda (control content control-record)
(declare (ignore content) (ignore control-record)) (declare (ignore content) (ignore control-record))
(setf (attribute control "data-clog-one-row-db") "")
(setf (attribute control "data-clog-one-row-table") "") (setf (attribute control "data-clog-one-row-table") "")
(setf (attribute control "data-clog-one-row-where") "") (setf (attribute control "data-clog-one-row-where") "")
(setf (attribute control "data-clog-one-row-order") "") (setf (attribute control "data-clog-one-row-order") "")
@ -1375,10 +1376,14 @@
:on-setup ,(lambda (control control-record) :on-setup ,(lambda (control control-record)
(declare (ignore control-record)) (declare (ignore control-record))
(let ((parent (attribute (parent-element control) "data-clog-name")) (let ((parent (attribute (parent-element control) "data-clog-name"))
(cdb (attribute control "data-clog-one-row-db"))
(master (attribute control "data-clog-one-row-master"))) (master (attribute control "data-clog-one-row-master")))
(if (or (equal cdb "")
(equal cdb "undefined"))
(setf cdb parent))
(when (equal master "") (when (equal master "")
(setf master nil)) (setf master nil))
(format nil "(setf (clog-database target) ~A) ~ (format nil "(setf (clog-database target) (clog-database (~A panel))) ~
~A ~ ~A ~
(setf (table-name target) \"~A\") ~ (setf (table-name target) \"~A\") ~
(setf (where-clause target) \"~A\") ~ (setf (where-clause target) \"~A\") ~
@ -1386,12 +1391,10 @@
(setf (limit target) \"~A\") ~ (setf (limit target) \"~A\") ~
(setf (row-id-name target) \"~A\") ~ (setf (row-id-name target) \"~A\") ~
(setf (table-columns target) '(~A))" (setf (table-columns target) '(~A))"
(if master cdb
(format nil "(clog-database (~A panel))" parent)
(format nil "(~A panel)" parent))
(if master (if master
(format nil "(set-master-one-row target (~A panel) \"~A\")" (format nil "(set-master-one-row target (~A panel) \"~A\")"
parent master) cdb master)
"") "")
(attribute control "data-clog-one-row-table") (attribute control "data-clog-one-row-table")
(attribute control "data-clog-one-row-where") (attribute control "data-clog-one-row-where")
@ -1402,7 +1405,9 @@
:events ((:name "on-fetch" :events ((:name "on-fetch"
:parameters "target") :parameters "target")
,@*events-element*) ,@*events-element*)
:properties ((:name "table name" :properties ((:name "database control"
:attr "data-clog-one-row-db")
(:name "table name"
:attr "data-clog-one-row-table") :attr "data-clog-one-row-table")
(:name "table row id name" (:name "table row id name"
:attr "data-clog-one-row-id-name") :attr "data-clog-one-row-id-name")
@ -1424,6 +1429,7 @@
:create-type :base :create-type :base
:setup ,(lambda (control content control-record) :setup ,(lambda (control content control-record)
(declare (ignore content) (ignore control-record)) (declare (ignore content) (ignore control-record))
(setf (attribute control "data-clog-one-row-db") "")
(setf (attribute control "data-clog-one-row-table") "") (setf (attribute control "data-clog-one-row-table") "")
(setf (attribute control "data-clog-one-row-where") "") (setf (attribute control "data-clog-one-row-where") "")
(setf (attribute control "data-clog-one-row-order") "") (setf (attribute control "data-clog-one-row-order") "")
@ -1434,10 +1440,14 @@
:on-setup ,(lambda (control control-record) :on-setup ,(lambda (control control-record)
(declare (ignore control-record)) (declare (ignore control-record))
(let ((parent (attribute (parent-element control) "data-clog-name")) (let ((parent (attribute (parent-element control) "data-clog-name"))
(cdb (attribute control "data-clog-one-row-db"))
(master (attribute control "data-clog-one-row-master"))) (master (attribute control "data-clog-one-row-master")))
(if (or (equal cdb "")
(equal cdb "undefined"))
(setf cdb parent))
(when (equal master "") (when (equal master "")
(setf master nil)) (setf master nil))
(format nil "(setf (clog-database target) ~A) ~ (format nil "(setf (clog-database target) (clog-database (~A panel))) ~
~A ~ ~A ~
(setf (table-name target) \"~A\") ~ (setf (table-name target) \"~A\") ~
(setf (where-clause target) \"~A\") ~ (setf (where-clause target) \"~A\") ~
@ -1445,12 +1455,10 @@
(setf (limit target) \"~A\") ~ (setf (limit target) \"~A\") ~
(setf (row-id-name target) \"~A\") ~ (setf (row-id-name target) \"~A\") ~
(setf (table-columns target) '(~A))" (setf (table-columns target) '(~A))"
(if master cdb
(format nil "(clog-database (~A panel))" parent)
(format nil "(~A panel)" parent))
(if master (if master
(format nil "(set-master-one-row target (~A panel) \"~A\")" (format nil "(set-master-one-row target (~A panel) \"~A\")"
parent master) cdb master)
"") "")
(attribute control "data-clog-one-row-table") (attribute control "data-clog-one-row-table")
(attribute control "data-clog-one-row-where") (attribute control "data-clog-one-row-where")
@ -1469,7 +1477,9 @@
(:name "on-column" (:name "on-column"
:parameters "target column table-column") :parameters "target column table-column")
,@*events-element*) ,@*events-element*)
:properties ((:name "table name" :properties ((:name "database control"
:attr "data-clog-one-row-db")
(:name "table name"
:attr "data-clog-one-row-table") :attr "data-clog-one-row-table")
(:name "table row id name" (:name "table row id name"
:attr "data-clog-one-row-id-name") :attr "data-clog-one-row-id-name")
@ -1491,6 +1501,7 @@
:create-type :base :create-type :base
:setup ,(lambda (control content control-record) :setup ,(lambda (control content control-record)
(declare (ignore content) (ignore control-record)) (declare (ignore content) (ignore control-record))
(setf (attribute control "data-clog-one-row-db") "")
(setf (attribute control "data-clog-one-row-table") "") (setf (attribute control "data-clog-one-row-table") "")
(setf (attribute control "data-clog-lookup-value") "") (setf (attribute control "data-clog-lookup-value") "")
(setf (attribute control "data-clog-lookup-option") "") (setf (attribute control "data-clog-lookup-option") "")
@ -1503,10 +1514,14 @@
:on-setup ,(lambda (control control-record) :on-setup ,(lambda (control control-record)
(declare (ignore control-record)) (declare (ignore control-record))
(let ((parent (attribute (parent-element control) "data-clog-name")) (let ((parent (attribute (parent-element control) "data-clog-name"))
(cdb (attribute control "data-clog-one-row-db"))
(master (attribute control "data-clog-one-row-master"))) (master (attribute control "data-clog-one-row-master")))
(if (or (equal cdb "")
(equal cdb "undefined"))
(setf cdb parent))
(when (equal master "") (when (equal master "")
(setf master nil)) (setf master nil))
(format nil "(setf (clog-database target) ~A) ~ (format nil "(setf (clog-database target) (clog-database (~A panel))) ~
~A ~ ~A ~
(setf (table-name target) \"~A\") ~ (setf (table-name target) \"~A\") ~
(setf (value-field target) :|~A|) ~ (setf (value-field target) :|~A|) ~
@ -1516,12 +1531,10 @@
(setf (limit target) \"~A\") ~ (setf (limit target) \"~A\") ~
(setf (row-id-name target) \"~A\") ~ (setf (row-id-name target) \"~A\") ~
(setf (table-columns target) '(~A))" (setf (table-columns target) '(~A))"
(if master cdb
(format nil "(clog-database (~A panel))" parent)
(format nil "(~A panel)" parent))
(if master (if master
(format nil "(set-master-one-row target (~A panel) \"~A\")" (format nil "(set-master-one-row target (~A panel) \"~A\")"
parent master) cdb master)
"") "")
(attribute control "data-clog-one-row-table") (attribute control "data-clog-one-row-table")
(attribute control "data-clog-lookup-value") (attribute control "data-clog-lookup-value")
@ -1542,6 +1555,8 @@
(setf (attribute control "multiple") t) (setf (attribute control "multiple") t)
(remove-attribute control "multiple")) (remove-attribute control "multiple"))
(property control "multiple"))) (property control "multiple")))
(:name "database control"
:attr "data-clog-one-row-db")
(:name "table name" (:name "table name"
:attr "data-clog-one-row-table") :attr "data-clog-one-row-table")
(:name "table row id name" (:name "table row id name"
@ -1569,6 +1584,7 @@
:setup ,(lambda (control content control-record) :setup ,(lambda (control content control-record)
(declare (ignore content) (ignore control-record)) (declare (ignore content) (ignore control-record))
(setf (size control) "4") (setf (size control) "4")
(setf (attribute control "data-clog-one-row-db") "")
(setf (attribute control "data-clog-one-row-table") "") (setf (attribute control "data-clog-one-row-table") "")
(setf (attribute control "data-clog-lookup-value") "") (setf (attribute control "data-clog-lookup-value") "")
(setf (attribute control "data-clog-lookup-option") "") (setf (attribute control "data-clog-lookup-option") "")
@ -1581,10 +1597,14 @@
:on-setup ,(lambda (control control-record) :on-setup ,(lambda (control control-record)
(declare (ignore control-record)) (declare (ignore control-record))
(let ((parent (attribute (parent-element control) "data-clog-name")) (let ((parent (attribute (parent-element control) "data-clog-name"))
(cdb (attribute control "data-clog-one-row-db"))
(master (attribute control "data-clog-one-row-master"))) (master (attribute control "data-clog-one-row-master")))
(if (or (equal cdb "")
(equal cdb "undefined"))
(setf cdb parent))
(when (equal master "") (when (equal master "")
(setf master nil)) (setf master nil))
(format nil "(setf (clog-database target) ~A) ~ (format nil "(setf (clog-database target) (clog-database (~A panel))) ~
~A ~ ~A ~
(setf (table-name target) \"~A\") ~ (setf (table-name target) \"~A\") ~
(setf (value-field target) :|~A|) ~ (setf (value-field target) :|~A|) ~
@ -1594,12 +1614,10 @@
(setf (limit target) \"~A\") ~ (setf (limit target) \"~A\") ~
(setf (row-id-name target) \"~A\") ~ (setf (row-id-name target) \"~A\") ~
(setf (table-columns target) '(~A))" (setf (table-columns target) '(~A))"
(if master cdb
(format nil "(clog-database (~A panel))" parent)
(format nil "(~A panel)" parent))
(if master (if master
(format nil "(set-master-one-row target (~A panel) \"~A\")" (format nil "(set-master-one-row target (~A panel) \"~A\")"
parent master) cdb master)
"") "")
(attribute control "data-clog-one-row-table") (attribute control "data-clog-one-row-table")
(attribute control "data-clog-lookup-value") (attribute control "data-clog-lookup-value")
@ -1620,6 +1638,8 @@
(setf (attribute control "multiple") t) (setf (attribute control "multiple") t)
(remove-attribute control "multiple")) (remove-attribute control "multiple"))
(property control "multiple"))) (property control "multiple")))
(:name "database control"
:attr "data-clog-one-row-db")
(:name "table name" (:name "table name"
:attr "data-clog-one-row-table") :attr "data-clog-one-row-table")
(:name "table row id name" (:name "table row id name"