From a077b4180f4a6f1b7d52a522367665943023c56b Mon Sep 17 00:00:00 2001 From: andy Date: Sun, 22 Jul 2018 22:55:12 +0100 Subject: [PATCH] vuetify 1.1.7 --- src/vue-poc/components/vp-favorite.vue | 4 +- src/vue-poc/components/vp-paramform.vue | 69 + src/vue-poc/features/edit/tabs.vue | 6 +- src/vue-poc/features/images/images.vue | 6 +- src/vue-poc/features/ping/ping.vue | 20 +- src/vue-poc/features/select.vue | 5 +- .../features/tasks/model.build/model.vue | 9 +- .../features/tasks/model.build/rxq-model.xqm | 26 +- .../features/tasks/model.build/tx-model.xq | 27 + src/vue-poc/features/tasks/rxq-tasks.xqm | 26 +- src/vue-poc/features/tasks/task/task.vue | 36 +- .../features/tasks/task/tx-dbimport.xq | 25 + src/vue-poc/features/tasks/task/tx-newapp.xq | 57 + src/vue-poc/features/tasks/taskdef.xml | 18 +- src/vue-poc/features/tasks/tasks.vue | 2 +- .../tasks/vue-compile/tx-vuecompile.xq | 20 + .../features/tasks/xqdoc/rxq-xqdoc.xqm | 7 +- src/vue-poc/features/tasks/xqdoc/tx-xqdoc.xq | 1 + src/vue-poc/features/validate/validate.vue | 82 +- src/vue-poc/lib/query-a.xqm | 2 + src/vue-poc/models.gen.xqm | 2 +- src/vue-poc/router.js | 11 +- src/vue-poc/static/app-gen.js | 219 +- src/vue-poc/static/app.html | 4 +- .../resources/schematron/docbook-mods.sch | 4275 +++++++++++++++++ .../static/resources/schematron/test.xml | 1 + src/vue-poc/tasks/docbook-schematron.xq | 7 + 27 files changed, 4706 insertions(+), 261 deletions(-) create mode 100644 src/vue-poc/components/vp-paramform.vue create mode 100644 src/vue-poc/features/tasks/model.build/tx-model.xq create mode 100644 src/vue-poc/features/tasks/task/tx-dbimport.xq create mode 100644 src/vue-poc/features/tasks/task/tx-newapp.xq create mode 100644 src/vue-poc/features/tasks/vue-compile/tx-vuecompile.xq create mode 100644 src/vue-poc/static/resources/schematron/docbook-mods.sch create mode 100644 src/vue-poc/static/resources/schematron/test.xml create mode 100644 src/vue-poc/tasks/docbook-schematron.xq diff --git a/src/vue-poc/components/vp-favorite.vue b/src/vue-poc/components/vp-favorite.vue index 1c407f5..6b8d441 100644 --- a/src/vue-poc/components/vp-favorite.vue +++ b/src/vue-poc/components/vp-favorite.vue @@ -21,13 +21,13 @@ display button that invokes a save favorite form
{{$route.meta.title}}
- + >
diff --git a/src/vue-poc/components/vp-paramform.vue b/src/vue-poc/components/vp-paramform.vue new file mode 100644 index 0000000..2370805 --- /dev/null +++ b/src/vue-poc/components/vp-paramform.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/src/vue-poc/features/edit/tabs.vue b/src/vue-poc/features/edit/tabs.vue index 5aaaeba..8751009 100644 --- a/src/vue-poc/features/edit/tabs.vue +++ b/src/vue-poc/features/edit/tabs.vue @@ -97,12 +97,12 @@ Select Tab - + > diff --git a/src/vue-poc/features/images/images.vue b/src/vue-poc/features/images/images.vue index ae0b2f9..434d339 100644 --- a/src/vue-poc/features/images/images.vue +++ b/src/vue-poc/features/images/images.vue @@ -88,11 +88,11 @@ - - +

Read or increment a database value. This measures round trip times browser-database-browser.

Counter: {{counter}}

- +
- - - - - - - - - + + + + + + + + + diff --git a/src/vue-poc/features/select.vue b/src/vue-poc/features/select.vue index 798a4b7..3053ccf 100644 --- a/src/vue-poc/features/select.vue +++ b/src/vue-poc/features/select.vue @@ -18,7 +18,7 @@

some text

- - +
{{$data.value }}
diff --git a/src/vue-poc/features/tasks/model.build/model.vue b/src/vue-poc/features/tasks/model.build/model.vue index ed9ea3d..047fd00 100644 --- a/src/vue-poc/features/tasks/model.build/model.vue +++ b/src/vue-poc/features/tasks/model.build/model.vue @@ -77,6 +77,13 @@ }, computed:{ code(){return 'import module namespace entity = "quodatum.models.generated" at "'+this.params.target+'";'} - } + }, + created:function(){ + var task=this.task + HTTP.get("tasks/model") + .then(r=>{ + console.log(r); + }) + }, } diff --git a/src/vue-poc/features/tasks/model.build/rxq-model.xqm b/src/vue-poc/features/tasks/model.build/rxq-model.xqm index 1763813..19c1d68 100644 --- a/src/vue-poc/features/tasks/model.build/rxq-model.xqm +++ b/src/vue-poc/features/tasks/model.build/rxq-model.xqm @@ -7,25 +7,31 @@ module namespace vue-api = 'quodatum:vue.api'; import module namespace bf = 'quodatum.tools.buildfields' at "./../../../lib/entity-gen.xqm"; +import module namespace query-a = 'vue-poc/query-a' at "../../../lib/query-a.xqm"; +declare variable $vue-api:query:="tx-model.xq"; (:~ : Returns a file content. :) declare %rest:POST %rest:path("/vue-poc/api/tasks/model") -%rest:form-param("efolder", "{$efolder}") -%rest:form-param("target", "{$target}") %rest:produces("application/json") %output:method("json") %updating -function vue-api:model($efolder ,$target ) +function vue-api:model( ) { - let $config:='import module namespace cfg = "quodatum:media.image.configure" at "config.xqm";' - let $src:=bf:module(bf:entities($efolder),$config) - return ( - prof:variables(), - file:write-text($target,$src), - update:output(Updated: {$target}) - ) + resolve-uri($vue-api:query)=>query-a:update(query-a:params()) }; +(:~ + : model settings. + :) +declare +%rest:GET %rest:path("/vue-poc/api/tasks/model") +%rest:produces("application/json") +%output:method("json") +function vue-api:settings() +{ + let $xq:=resolve-uri($vue-api:query) + return query-a:fields($xq) +}; \ No newline at end of file diff --git a/src/vue-poc/features/tasks/model.build/tx-model.xq b/src/vue-poc/features/tasks/model.build/tx-model.xq new file mode 100644 index 0000000..1cdd2ff --- /dev/null +++ b/src/vue-poc/features/tasks/model.build/tx-model.xq @@ -0,0 +1,27 @@ +(:~ + : Update `generated/models.xqm` from XML files in `data/models` + :) + +import module namespace bf = 'quodatum.tools.buildfields' at "./../../../lib/entity-gen.xqm"; + +(:~ + : Folder containing model definitions as xml + : @default C:/Users/andy/git/vue-poc/src/vue-poc/models/entities + :) +declare variable $efolder as xs:anyURI external :="C:/Users/andy/git/vue-poc/src/vue-poc/models/entities"; + +(:~ + : Path to xqm file to generate + : @default C:/Users/andy/git/vue-poc/src/vue-poc/models.gen.xqm + :) +declare variable $target as xs:anyURI external :="C:/Users/andy/git/vue-poc/src/vue-poc/models.gen.xqm"; + + +let $config:='import module namespace cfg = "quodatum:media.image.configure" at "config.xqm";' +let $src:=bf:module(bf:entities($efolder),$config) +return ( + prof:variables(), + file:write-text($target,$src), + update:output(Updated: {$target}) +) + diff --git a/src/vue-poc/features/tasks/rxq-tasks.xqm b/src/vue-poc/features/tasks/rxq-tasks.xqm index 06b037a..fa69759 100644 --- a/src/vue-poc/features/tasks/rxq-tasks.xqm +++ b/src/vue-poc/features/tasks/rxq-tasks.xqm @@ -2,6 +2,7 @@ : tasks :) module namespace vue-rest = 'quodatum:vue.tasks'; +import module namespace query-a = 'vue-poc/query-a' at "../../lib/query-a.xqm"; (:~ : list tasks @@ -12,10 +13,12 @@ declare %output:method("json") function vue-rest:tasks() { - let $tasks:=doc("taskdef.xml")/tasks/task + let $tasks:=doc("taskdef.xml")/tasks/task[@url] + return { $tasks!<_ type="object"> { @name/string() } + { @url/string() } { title/text() } { fn:serialize(description/node()) } @@ -31,12 +34,10 @@ declare %output:method("json") function vue-rest:task($task) { - let $tasks:=doc("taskdef.xml")/tasks/task[@name=$task] - return - { $tasks/@name/string() } - { $tasks/title/string() } - { count($tasks/params/*) } - + let $task:=doc("taskdef.xml")/tasks/task[@name=$task] + let $url:=resolve-uri($task/@url) + let $info:=query-a:fields($url) + return $info }; (:~ @@ -48,12 +49,9 @@ declare %output:method("json") function vue-rest:runtask($task) { - let $tasks:=doc("taskdef.xml")/tasks/task - return { - $tasks!<_ type="object"> - { @name/string() } - { title/text() } - - } + let $task:=doc("taskdef.xml")/tasks/task[@name=$task] + let $url:=resolve-uri($task/@url) + + return query-a:run($url,query-a:params()) }; \ No newline at end of file diff --git a/src/vue-poc/features/tasks/task/task.vue b/src/vue-poc/features/tasks/task/task.vue index 3b5d088..df970be 100644 --- a/src/vue-poc/features/tasks/task/task.vue +++ b/src/vue-poc/features/tasks/task/task.vue @@ -7,6 +7,13 @@ Task: {{ task }} + + Clear + Reset @@ -17,16 +24,10 @@ - - - - - - {{code}} + + @@ -47,22 +48,21 @@ props:["task"], data: function(){ return { - params:{ - proj:"C:/Users/andy/git/vue-poc/src/vue-poc/" - }, waiting:false, snackbar:{show:false,msg:"",context:"success"}, + valid: false + } }, methods:{ submit(){ - this.waiting=true - HTTP.post("tasks/" + this.task, Qs.stringify(this.params)) + this.waiting=true; + var params=this.$refs.params.submit(); + HTTP.post("tasks/" + this.task, Qs.stringify(params)) .then(r=>{ this.waiting=false this.snackbar={show:true,msg:r.data.msg,context:"success"} console.log(r.data) - settings.setItem('tasks/vuecompile',this.params) }) .catch(error=>{ this.waiting=false @@ -71,14 +71,6 @@ }); } }, - created:function(){ - var task=this.task - HTTP.get("tasks/"+task) - .then(r=>{ - console.log(r); - alert("OK"); - }) - }, computed:{ code(){return 'code here'} } diff --git a/src/vue-poc/features/tasks/task/tx-dbimport.xq b/src/vue-poc/features/tasks/task/tx-dbimport.xq new file mode 100644 index 0000000..921dfe3 --- /dev/null +++ b/src/vue-poc/features/tasks/task/tx-dbimport.xq @@ -0,0 +1,25 @@ +(:~ +: import to db +: @author andy bunce +: @since july 2018 +:) +import module namespace dbtools = 'quodatum.dbtools' at "../../../lib/dbtools.xqm"; + + +(:~ URL of file or folder to import + : @default C:/Users/andy/git/vue-poc/src/vue-poc/models/entities + :) +declare variable $srcpath as xs:anyURI external :="C:/Users/andy/git/vue-poc/src/vue-poc/models/entities"; + +(:~ base db path for import files + : @default / + :) +declare variable $targetpath as xs:anyURI external :="/"; + +(:~ unused boolean test + : @default true + :) +declare variable $boolean as xs:boolean external :=false(); + +let $result:=TODO +return $result diff --git a/src/vue-poc/features/tasks/task/tx-newapp.xq b/src/vue-poc/features/tasks/task/tx-newapp.xq new file mode 100644 index 0000000..de8310c --- /dev/null +++ b/src/vue-poc/features/tasks/task/tx-newapp.xq @@ -0,0 +1,57 @@ +(:~ +: create new app +: @author andy bunce +: @since july 2018 +:) + +(:~ + : name of the app to create + : @default myapp + :) +declare variable $name as xs:string external :="myapp"; + + +(:~ +: new app +:) +declare function local:new($name as xs:string){ + let $archive:=file:read-binary(fn:resolve-uri('./data/vuetif.zip')) + let $contents := archive:extract-binary($archive) + let $entries:= archive:entries($archive) + (: update paths :) + let $entries:=$entries!fn:replace(.,'vuetif',$name) + let $contents:=$contents!local:update-extract(.,'[Vv]uetif',$name) + + return archive:create($entries,$contents) +}; + +(:~ + : test for text + : @see http://stackoverflow.com/questions/2644938/how-to-tell-binary-from-text-files-in-linux + :) +declare function local:is-text($b as xs:base64Binary ) +as xs:boolean{ + fn:empty(bin:find($b, 0,bin:hex("00"))) +}; + +(:~ + : if context is text replace string else return unchanged + :) +declare function local:update-extract($extract as xs:base64Binary, + $from as xs:string, + $to as xs:string ) +as xs:base64Binary{ + if(local:is-text($extract)) + then try{ + (: escape chars etc :) + let $t:=convert:binary-to-string($extract) + let $t:=fn:replace($t,$from,$to) + return convert:string-to-base64($t) + } catch * { + $extract + } + else + $extract +}; + +update:output( { $name }.) \ No newline at end of file diff --git a/src/vue-poc/features/tasks/taskdef.xml b/src/vue-poc/features/tasks/taskdef.xml index 1b8d008..855c339 100644 --- a/src/vue-poc/features/tasks/taskdef.xml +++ b/src/vue-poc/features/tasks/taskdef.xml @@ -1,35 +1,31 @@ - + Generate model.gen.xqm Generate model.gen.xqm - - Folder containing model definitions as xml - Path to xqm file to generate - - + Load files into database Load files into database - + XQdoc - Generate XQdoc to db + Generate documentation for folder - + XQdoc to db Generate XQdoc to save - + vue compile compile - + application template application template diff --git a/src/vue-poc/features/tasks/tasks.vue b/src/vue-poc/features/tasks/tasks.vue index 3ad3156..e07579b 100644 --- a/src/vue-poc/features/tasks/tasks.vue +++ b/src/vue-poc/features/tasks/tasks.vue @@ -5,7 +5,7 @@
  • - +
diff --git a/src/vue-poc/features/tasks/vue-compile/tx-vuecompile.xq b/src/vue-poc/features/tasks/vue-compile/tx-vuecompile.xq new file mode 100644 index 0000000..641a63c --- /dev/null +++ b/src/vue-poc/features/tasks/vue-compile/tx-vuecompile.xq @@ -0,0 +1,20 @@ +(:~ +: vue compile +: @author andy bunce +: @since july 2018 +:) +import module namespace vue = 'quodatum:vue.compile' at "../../../lib/vue-compile/vue-compile.xqm"; + + +(:~ URL of the doc to validate + : @default C:/Users/andy/git/vue-poc/src/vue-poc/models/entities/adminlog.xml + :) +declare variable $doc as xs:anyURI external :="C:/Users/andy/git/vue-poc/src/vue-poc/models/entities/adminlog.xml"; + +(:~ URL of the schema to use + : @default C:/Users/andy/git/vue-poc/src/vue-poc/models/schemas/entity.xsd + :) +declare variable $schema as xs:anyURI external :="C:/Users/andy/git/vue-poc/src/vue-poc/models/schemas/entity.xsd"; + +let $result:=TODO +return $result diff --git a/src/vue-poc/features/tasks/xqdoc/rxq-xqdoc.xqm b/src/vue-poc/features/tasks/xqdoc/rxq-xqdoc.xqm index 5e6a41b..c823555 100644 --- a/src/vue-poc/features/tasks/xqdoc/rxq-xqdoc.xqm +++ b/src/vue-poc/features/tasks/xqdoc/rxq-xqdoc.xqm @@ -2,14 +2,11 @@ : Generate html for for XQuery sources :) module namespace vue-api = 'quodatum:vue.api'; -import module namespace xqd = 'quodatum:build.xqdoc' at "../../../lib/xqdoc/xqdoc-proj.xqm"; -import module namespace query-a = 'vue-poc/query-a' at "../../../lib/query-a.xqm"; -import module namespace fw="quodatum:file.walker"; -declare namespace c="http://www.w3.org/ns/xproc-step"; +import module namespace query-a = 'vue-poc/query-a' at "../../../lib/query-a.xqm"; declare variable $vue-api:query:="tx-xqdoc.xq"; -declare variable $vue-api:state as element(state):=db:open("vue-poc","/state.xml")/state; + (:~ : run xqdoc task. diff --git a/src/vue-poc/features/tasks/xqdoc/tx-xqdoc.xq b/src/vue-poc/features/tasks/xqdoc/tx-xqdoc.xq index efb72d9..bc7344b 100644 --- a/src/vue-poc/features/tasks/xqdoc/tx-xqdoc.xq +++ b/src/vue-poc/features/tasks/xqdoc/tx-xqdoc.xq @@ -26,6 +26,7 @@ let $opts:=map{ } let $op:=xqd:save-xq($files,$target,$opts) let $result:= + hello {$target}, {count($files//c:file)} files processed. {$id/string()} diff --git a/src/vue-poc/features/validate/validate.vue b/src/vue-poc/features/validate/validate.vue index 518efb3..0576195 100644 --- a/src/vue-poc/features/validate/validate.vue +++ b/src/vue-poc/features/validate/validate.vue @@ -1,15 +1,7 @@
ActionOnceRepeatLastCountAvgminmaxMedianActionOnceRepeatLastCountAvgminmaxMedian