vuetify 1.1.1
This commit is contained in:
parent
e78818abfb
commit
c5740af450
41 changed files with 688 additions and 350 deletions
|
|
@ -44,8 +44,9 @@
|
|||
<vp-favorite :frmfav.sync="frmfav"></vp-favorite>
|
||||
|
||||
<v-spacer></v-spacer>
|
||||
<qd-search></qd-search>
|
||||
|
||||
|
||||
<qd-search></qd-search>
|
||||
|
||||
<v-spacer></v-spacer>
|
||||
|
||||
<v-menu left transition="v-fade-transition">
|
||||
|
|
@ -241,7 +242,7 @@
|
|||
Vue.config.errorHandler = function (err, vm, info) {
|
||||
// handle error
|
||||
// `info` is a Vue-specific error info, e.g. which lifecycle hook
|
||||
console.error(err, vm, info);
|
||||
console.log('[Global Error Handler]: Error in ' + info + ': ' + err);
|
||||
var msg=JSON.stringify(err)
|
||||
that.showAlert("vue error:\n"+msg)
|
||||
//alert("vue error");
|
||||
|
|
@ -262,9 +263,9 @@
|
|||
|
||||
HTTP.get("status")
|
||||
.then(r=>{
|
||||
console.log("status",r.data)
|
||||
Object.assign(Auth,r.data)
|
||||
this.$forceUpdate()
|
||||
console.log("status",r)
|
||||
//Object.assign(Auth,r.data)
|
||||
//this.$forceUpdate()
|
||||
})
|
||||
},
|
||||
|
||||
|
|
|
|||
42
src/vue-poc/components/qd-fileupload.vue
Normal file
42
src/vue-poc/components/qd-fileupload.vue
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
file upload see https://github.com/thetutlage/vue-clip
|
||||
-->
|
||||
<template id="qd-fileupload">
|
||||
<vue-clip :options="options">
|
||||
<template slot="clip-uploader-action">
|
||||
<div>
|
||||
<div class="dz-message"><h2> Click or Drag and Drop files here upload </h2></div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template slot="clip-uploader-body" scope="props">
|
||||
<div v-for="file in props.files">
|
||||
<img v-bind:src="file.dataUrl" />
|
||||
{{ file.name }} {{ file.status }}
|
||||
</div>
|
||||
</template>
|
||||
|
||||
</vue-clip>
|
||||
</template>
|
||||
|
||||
<script>{
|
||||
data () {
|
||||
return {
|
||||
options: {
|
||||
url: '/vue-poc/api/upload',
|
||||
paramName: 'file',
|
||||
maxFilesize: {
|
||||
limit: 1,
|
||||
message: '{{ filesize }} is greater than the {{ maxFilesize }}'
|
||||
},
|
||||
maxFiles: {
|
||||
limit: 5,
|
||||
message: 'You can only upload a max of 5 files'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
|
@ -3,18 +3,17 @@
|
|||
search
|
||||
-->
|
||||
<template id="qd-search">
|
||||
<v-select
|
||||
<v-combobox
|
||||
placeholder="Search..." prepend-icon="search"
|
||||
autocomplete
|
||||
:loading="loading"
|
||||
combobox
|
||||
clearable
|
||||
cache-items
|
||||
:items="items2"
|
||||
@keyup.enter="goSearch"
|
||||
:search-input.sync="si"
|
||||
v-model="q"
|
||||
></v-select>
|
||||
></v-combobox>
|
||||
</template>
|
||||
|
||||
<script>{
|
||||
|
|
@ -31,7 +30,7 @@
|
|||
this.loading = true
|
||||
// Simulated ajax query
|
||||
setTimeout(() => {
|
||||
this.items2 = ["aa","bb",this.si],
|
||||
this.items2 = ["aa","bb"],
|
||||
this.loading = false
|
||||
}, 500)
|
||||
},
|
||||
|
|
|
|||
|
|
@ -12,16 +12,25 @@
|
|||
v-model="search"
|
||||
></v-text-field>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn @click="getData">Refresh</v-btn>
|
||||
<v-btn
|
||||
icon
|
||||
:loading="loading"
|
||||
:disabled="loading"
|
||||
@click="getItems"
|
||||
>
|
||||
<v-icon>refresh</v-icon>
|
||||
</v-btn>
|
||||
<span>{{ entity }}</span>
|
||||
</v-toolbar>
|
||||
<v-data-table
|
||||
|
||||
<v-data-table
|
||||
:headers="headers"
|
||||
:items="items"
|
||||
:search="search"
|
||||
v-model="selected"
|
||||
select-all
|
||||
class="elevation-1"
|
||||
no-data-text="No users found @todo"
|
||||
:no-data-text="noDataMsg"
|
||||
>
|
||||
<template slot="items" slot-scope="props">
|
||||
<slot></slot>
|
||||
|
|
@ -44,8 +53,14 @@
|
|||
]
|
||||
},
|
||||
dataUri:{
|
||||
default: "users"
|
||||
}
|
||||
default: "entity"
|
||||
},
|
||||
noDataMsg:{
|
||||
default: "No USERS found @todo"
|
||||
},
|
||||
entity:{
|
||||
default: "entity"
|
||||
}
|
||||
},
|
||||
data: function(){
|
||||
return {
|
||||
|
|
@ -57,18 +72,19 @@
|
|||
}
|
||||
},
|
||||
methods:{
|
||||
getData(){
|
||||
getItems(){
|
||||
this.loading=true;
|
||||
HTTP.get(this.dataUri)
|
||||
.then(r=>{
|
||||
this.loading=false
|
||||
this.items=r.data
|
||||
this.loading=false;
|
||||
console.log("items",r);
|
||||
this.items=r.data.items;
|
||||
})
|
||||
}
|
||||
},
|
||||
created:function(){
|
||||
console.log("qd-table")
|
||||
this.getData()
|
||||
console.log("qd-table");
|
||||
this.getItems();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,13 @@
|
|||
<template id="about">
|
||||
|
||||
<v-jumbotron color="grey lighten-2">
|
||||
<v-speed-dial v-model="fab" hover right direction="bottom" transition="slide-y-reverse-transition">
|
||||
|
||||
<v-container fill-height>
|
||||
<v-layout align-center>
|
||||
<v-flex>
|
||||
<h3 class="display-3">Vue-poc<v-spacer></v-spacer>
|
||||
<v-speed-dial v-model="fab" hover right direction="bottom"
|
||||
transition="slide-y-reverse-transition">
|
||||
<v-btn slot="activator" class="blue darken-2" dark fab hover v-model="fab">
|
||||
<v-icon>account_circle</v-icon>
|
||||
<v-icon>close</v-icon>
|
||||
|
|
@ -17,11 +23,6 @@
|
|||
<v-icon>delete</v-icon>
|
||||
</v-btn>
|
||||
</v-speed-dial>
|
||||
<v-container fill-height>
|
||||
<v-layout align-center>
|
||||
<v-flex>
|
||||
<h3 class="display-3">Vue-poc
|
||||
|
||||
</h3>
|
||||
<span class="subheading">A development environment for managing XML sources and processes.</span>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,12 +5,6 @@
|
|||
<v-toolbar >
|
||||
|
||||
|
||||
|
||||
<v-btn icon to="add" append>
|
||||
<v-icon>add_circle</v-icon>
|
||||
</v-btn>
|
||||
|
||||
|
||||
<v-text-field
|
||||
append-icon="search"
|
||||
label="Filter logs"
|
||||
|
|
@ -20,26 +14,39 @@
|
|||
></v-text-field>
|
||||
|
||||
<v-btn
|
||||
icon :color="autorefresh?'red':'green'"
|
||||
icon :color="autorefresh?'green':''"
|
||||
:loading="loading"
|
||||
:disabled="loading"
|
||||
@click="getItems"
|
||||
@dblclick="toggle"
|
||||
:disabled="loading"
|
||||
|
||||
>
|
||||
<v-icon>refresh</v-icon>
|
||||
</v-btn>
|
||||
|
||||
<v-btn
|
||||
to="add" append
|
||||
small
|
||||
absolute
|
||||
bottom
|
||||
right
|
||||
fab
|
||||
>
|
||||
<v-icon>add</v-icon>
|
||||
</v-btn>
|
||||
<v-spacer></v-spacer>
|
||||
<v-menu offset-y left>
|
||||
<v-btn icon slot="activator"><v-icon>settings</v-icon></v-btn>
|
||||
<v-card >
|
||||
<v-toolbar class="green">
|
||||
<v-card-title >Settings TODO</v-card-title>
|
||||
</v-toolbar>
|
||||
<v-card-text>
|
||||
<v-btn @click="autorefresh= ! autorefresh">Autorefresh</v-btn>
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
</v-menu>
|
||||
<v-menu bottom left min-width="300px">
|
||||
<v-btn icon slot="activator" >
|
||||
<v-icon>settings</v-icon>
|
||||
</v-btn>
|
||||
<v-list subheader>
|
||||
<v-subheader>Settings</v-subheader>
|
||||
|
||||
<v-list-tile >
|
||||
<v-list-tile-title><v-switch label="Auto Refresh" v-model="autorefresh"></v-switch></v-list-tile-title>
|
||||
</v-list-tile>
|
||||
</v-list>
|
||||
</v-menu>
|
||||
</v-toolbar>
|
||||
<v-data-table
|
||||
:headers="headers"
|
||||
|
|
@ -88,6 +95,9 @@
|
|||
}
|
||||
},
|
||||
methods:{
|
||||
address(text){
|
||||
return "%" + text;
|
||||
},
|
||||
getItems(){
|
||||
this.loading=true
|
||||
HTTP.get("log",{params:this.q})
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<v-container fluid>
|
||||
<v-card>
|
||||
<v-toolbar class="lime darken-1">
|
||||
<v-card-title ><qd-link href="https://github.com/zdy1988/vue-jstree">vue-jstree@1.0.11</qd-link> </v-card-title>
|
||||
<v-card-title ><qd-link href="https://github.com/zdy1988/vue-jstree">vue-jstree@2.1.16</qd-link> </v-card-title>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn>todo</v-btn>
|
||||
</v-toolbar>
|
||||
|
|
|
|||
18
src/vue-poc/features/images/tasks/save-thumb-format.xq
Normal file
18
src/vue-poc/features/images/tasks/save-thumb-format.xq
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
(:~ save in multiple formats :)
|
||||
|
||||
import module namespace t="expkg-zone58:image.thumbnailator";
|
||||
|
||||
declare namespace cfg = "quodatum:media.image.configure";
|
||||
|
||||
declare variable $cfg:IMAGEDIR:="P:/pictures/";
|
||||
|
||||
let $types:=("gif","jpg","png")
|
||||
for $type in $types
|
||||
let $task:=<thumbnail>
|
||||
<size width="100" height="100"/>
|
||||
<output format="{ $type }"/>
|
||||
</thumbnail>
|
||||
let $thumb:= file:resolve-path("Pictures/2002/05 may/2005/DSCF1313.JPG", $cfg:IMAGEDIR)
|
||||
=>fetch:binary()
|
||||
=>t:task($task)
|
||||
return file:write-binary(``[c:\tmp\thumb.`{$type}`]``,$thumb)
|
||||
|
|
@ -59,10 +59,9 @@
|
|||
load(){
|
||||
|
||||
this.loading= true
|
||||
HTTP.get("data/namespace",{params:{}})
|
||||
HTTP.get("data/namespace",{params:{q:this.q}})
|
||||
.then(r=>{
|
||||
this.items= r.data.items
|
||||
this.q= null
|
||||
this.loading= false
|
||||
})
|
||||
.catch(error=> {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<template id="scratch">
|
||||
<v-container fluid>
|
||||
<qd-fileupload title="Up it" selected-callback="upit">up load</qd-fileupload>
|
||||
<qd-autoheight>
|
||||
<vue-ace :content="ace" mode="xml" ></vue-ace>
|
||||
</qd-autoheight>
|
||||
|
|
@ -14,8 +15,13 @@
|
|||
ace:"<xml>here</xml>"
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
upit:function(s){
|
||||
alert("up")
|
||||
}
|
||||
},
|
||||
mounted:function(){
|
||||
console.log("notfound",this.$route.path)
|
||||
console.log("scratch",this.$route.path)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ declare
|
|||
%updating
|
||||
function vue-api:model($efolder ,$target )
|
||||
{
|
||||
let $config:='import module namespace cfg = "quodatum:media.image.configure" at "features/images/config.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(),
|
||||
|
|
|
|||
|
|
@ -20,16 +20,21 @@ declare
|
|||
%updating
|
||||
function vue-api:model($efolder ,$target )
|
||||
{
|
||||
let $project:=tokenize($efolder,"[/\\]")[last()]=>trace("DDD")
|
||||
let $project:=tokenize($efolder,"[/\\]")[last()]=>trace("xqdoc: ")
|
||||
let $files:= fw:directory-list($efolder,map{"include-filter":".*\.xqm"})
|
||||
let $op:=xqd:save-xq($files,$target,map{"project":$project})
|
||||
let $id:=$vue-api:state/last-id
|
||||
let $opts:=map{
|
||||
"project": $project,
|
||||
"id": $id/string()
|
||||
}
|
||||
let $op:=xqd:save-xq($files,$target,$opts)
|
||||
let $result:=<json type="object">
|
||||
<msg> {$target}, {count($files//c:file)} files processed.</msg>
|
||||
<id>{$vue-api:state/last-id/string()}</id>
|
||||
<id>{$id/string()}</id>
|
||||
</json>
|
||||
return (
|
||||
db:output($result),
|
||||
replace value of node $vue-api:state/last-id with 1+$vue-api:state/last-id
|
||||
replace value of node $id with 1+$vue-api:state/last-id
|
||||
)
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -36,12 +36,25 @@
|
|||
</v-stepper-content>
|
||||
|
||||
<v-stepper-content step="3" non-linear>
|
||||
<v-card class="grey lighten-1 z-depth-1 mb-5" height="200px" >
|
||||
output todo
|
||||
</v-card>
|
||||
|
||||
<v-btn flat @click="step -= 1">Back</v-btn>
|
||||
<v-card class="grey lighten-1 z-depth-1 mb-5" >
|
||||
<v-card-actions>
|
||||
<v-btn flat @click="step -= 1">Back</v-btn>
|
||||
<v-btn color="primary" @click="go()">go</v-btn>
|
||||
</v-card-actions>
|
||||
<v-card-text>
|
||||
<v-layout style="height:200px" fill-height>
|
||||
<v-flex xs6>
|
||||
<img :src="image" class="contain" style="width:100%; height:100%;"/>
|
||||
</v-flex>
|
||||
<v-flex xs6>
|
||||
<img :src="image" class="contain" style="width:50%; height:50%;object-position: 50% 50%;"/>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-card-text>
|
||||
|
||||
</v-card>
|
||||
|
||||
|
||||
</v-stepper-content>
|
||||
</v-stepper-items>
|
||||
</v-stepper>
|
||||
|
|
@ -51,9 +64,13 @@
|
|||
<script>{
|
||||
data(){
|
||||
return {
|
||||
image:"http://images.metmuseum.org/CRDImages/ep/original/DT46.jpg",
|
||||
image:"https://cdn.pixabay.com/photo/2017/10/31/07/49/horses-2904536_960_720.jpg",
|
||||
step: 0,
|
||||
taskxml:"<task></task>"
|
||||
taskxml:"<task></task>",
|
||||
items:[
|
||||
{
|
||||
src: 'https://cdn.pixabay.com/photo/2017/10/31/07/49/horses-2904536_960_720.jpg'
|
||||
}]
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@
|
|||
: @author Andy Bunce may-2017
|
||||
:)
|
||||
module namespace vue-api = 'quodatum:vue.api.thumbnail';
|
||||
import module namespace t="expkg-zone58:image.thumbnailator";
|
||||
import module namespace qweb = 'quodatum.web.utils4' at "../../lib/webutils.xqm";
|
||||
import module namespace rest = "http://exquery.org/ns/restxq";
|
||||
|
||||
|
||||
|
|
@ -15,16 +17,12 @@ declare
|
|||
%rest:POST %rest:path("/vue-poc/api/thumbnail")
|
||||
%rest:form-param("url", "{$url}")
|
||||
%rest:form-param("task", "{$task}")
|
||||
%rest:produces("application/json")
|
||||
%output:method("json")
|
||||
function vue-api:thumbnail($url,$task )
|
||||
{
|
||||
let $x:=fn:parse-xml($task)=>fn:trace("task: ")
|
||||
return <json type="object" >
|
||||
<items type="array">
|
||||
{(1 to 100)!(<_>A{.}</_>)}
|
||||
</items>
|
||||
</json>
|
||||
let $thumb:=fetch:binary($url)=>t:task($x/thumbnail)
|
||||
|
||||
return (qweb:download-response("raw","xx.gif"), $thumb)
|
||||
};
|
||||
|
||||
(:~
|
||||
|
|
|
|||
|
|
@ -1,7 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<template id="users">
|
||||
<v-container fluid>
|
||||
<qd-table :headers="headers" data-uri="data/users">
|
||||
<qd-table :headers="headers" data-uri="data/user" entity="user" no-data-msg="Nothing found">
|
||||
<template slot="items" slot-scope="props">
|
||||
|
||||
<td >{{ props.item.id}}</td>
|
||||
<td >{{ props.item.state }}</td>
|
||||
|
||||
</template>
|
||||
</qd-table>
|
||||
</v-container>
|
||||
|
||||
|
|
@ -25,8 +31,8 @@
|
|||
}
|
||||
},
|
||||
|
||||
created:function(){
|
||||
console.log("qd-table")
|
||||
}
|
||||
created:function(){
|
||||
console.log("users")
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,36 +1,30 @@
|
|||
(:~
|
||||
: XSLT transform handler
|
||||
: schema validation
|
||||
: @author andy bunce
|
||||
: @since oct 2017
|
||||
:)
|
||||
|
||||
module namespace tx = 'quodatum:vue.api.transform';
|
||||
module namespace tx = 'quodatum:vue.api.validate';
|
||||
import module namespace qv = 'quodatum.validate' at "validate.xqm";
|
||||
|
||||
declare namespace cnt="http://cambridge.org/core/content";
|
||||
(:~ location of schema to use :)
|
||||
declare variable $tx:nvdl:=resolve-uri("../static/consignment/nvdl/consignment.nvdl",static-base-uri());
|
||||
|
||||
(:~ location of schema to use :)
|
||||
declare variable $tx:schematron:=resolve-uri("../static/consignment/nvdl/core-consignment.sch",static-base-uri());
|
||||
|
||||
declare variable $tx:validators:=(qv:schematron(?,$tx:schematron)
|
||||
,qv:nvdl(?,$tx:nvdl)
|
||||
);
|
||||
|
||||
(:~ run validation doc in db :)
|
||||
|
||||
(:~ run validation
|
||||
: @return json
|
||||
:)
|
||||
declare
|
||||
%rest:GET %rest:path("/vue-poc/api/validate")
|
||||
%rest:query-param("doc", "{$doc}")
|
||||
%rest:query-param("schema", "{$schema}")
|
||||
%rest:produces("text/xml")
|
||||
%output:method("xml")
|
||||
function tx:validate-path($doc,$schema){
|
||||
tx:validate(doc($doc))
|
||||
%rest:POST %rest:path("/vue-poc/api/validate")
|
||||
%rest:form-param("doc", "{$doc}")
|
||||
%rest:form-param("schema", "{$schema}")
|
||||
%rest:produces("application/json")
|
||||
%output:method("json")
|
||||
function tx:validate-path($doc as xs:anyURI,
|
||||
$schema as xs:anyURI)
|
||||
{
|
||||
(: tx:validate(doc($doc)) :)
|
||||
let $_:=trace($doc,"doc ")
|
||||
let $_:=trace($schema,"schema: ")
|
||||
let $validators:=qv:xsd(?,$schema)
|
||||
let $report:= qv:validation($doc ,$validators,attribute type {"xsd"})
|
||||
return qv:json($report,map{})
|
||||
};
|
||||
|
||||
(:~ run validations add custom details - content-type:)
|
||||
declare function tx:validate($doc){
|
||||
let $type:=$doc//cnt:*=>head()=>local-name()=>substring-after("content-")
|
||||
return qv:validation($doc,$tx:validators,attribute type {$type})
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,20 +1,27 @@
|
|||
<!DOCTYPE html>
|
||||
<template id="validate">
|
||||
<v-container fluid v-resize="onResize">
|
||||
<v-container fluid >
|
||||
<v-snackbar v-model="snackbar.show"
|
||||
:timeout="6000"
|
||||
:success="snackbar.context === 'success'"
|
||||
:error="snackbar.context === 'error'"
|
||||
>
|
||||
{{ snackbar.msg }}
|
||||
<v-btn dark flat @click="snackbar.show = false">Close</v-btn>
|
||||
</v-snackbar>
|
||||
<v-card>
|
||||
<v-toolbar class="orange">
|
||||
<v-btn @click="validate" :loading="loading"
|
||||
:disabled="loading"
|
||||
><v-icon>play_circle_outline</v-icon>Validate</v-btn>
|
||||
<span v-text="elapsed"></span>ms. Height:
|
||||
<span v-text="height"></span>
|
||||
<span v-text="elapsed"></span>ms.
|
||||
<v-spacer></v-spacer>
|
||||
|
||||
<v-menu offset-y left>
|
||||
<v-btn icon dark slot="activator"><v-icon>settings</v-icon></v-btn>
|
||||
<v-card >
|
||||
<v-toolbar class="green">
|
||||
<v-card-title >Settings................</v-card-title>
|
||||
<v-card-title >@TODO.......</v-card-title>
|
||||
</v-toolbar>
|
||||
<v-card-text>
|
||||
stuff
|
||||
|
|
@ -22,13 +29,23 @@
|
|||
</v-card>
|
||||
</v-menu>
|
||||
</v-toolbar>
|
||||
<v-card-text >
|
||||
<qd-autoheight>
|
||||
<v-flex fill-height xs12 >
|
||||
test here
|
||||
</v-flex>
|
||||
</qd-autoheight>
|
||||
<v-card-text v-resize="onResize" style="height:100px" ref="auto">
|
||||
<v-container fluid>
|
||||
|
||||
<v-layout row wrap>
|
||||
<v-flex xs8>
|
||||
<v-text-field v-for="field in fields" :key="field.model"
|
||||
v-model="params[field.model]" :label="field.label" clearable :rules="[rules.required]" box
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs4 fill-height style="overflow:scroll">
|
||||
<pre >Result: {{ result }}</pre>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-container>
|
||||
</v-card-text>
|
||||
|
||||
</v-card>
|
||||
</v-container>
|
||||
</template>
|
||||
|
|
@ -40,38 +57,53 @@
|
|||
elapsed: null,
|
||||
height: null,
|
||||
result: null,
|
||||
doc: "c:/test.xml",
|
||||
schema: "c:/schema.xsd"
|
||||
}
|
||||
fields:[
|
||||
{model: "schema", label: "Schema (xsd url)"},
|
||||
{model: "doc", label: "Doc (url)"}
|
||||
|
||||
],
|
||||
rules: {
|
||||
required: value => !!value || 'Required.'
|
||||
},
|
||||
params:{
|
||||
doc: "C:/Users/andy/git/vue-poc/src/vue-poc/models/adminlog.xml",
|
||||
schema: "C:/Users/andy/git/vue-poc/src/vue-poc/models/schemas/entity.xsd"
|
||||
},
|
||||
snackbar:{show:false,msg:"",context:"success"}
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
onResize(){
|
||||
this.height = window.innerHeight
|
||||
//console.log("EL",this.$el);
|
||||
var el=this.$refs["auto"];
|
||||
var h=window.innerHeight - el.getBoundingClientRect().top -32;
|
||||
var h=Math.max(1,h) ;
|
||||
//console.log("resize h",h,el.style)
|
||||
el.style.height=h +"px";
|
||||
},
|
||||
validate(){
|
||||
|
||||
validate(){
|
||||
this.loading=true
|
||||
this.start = performance.now();
|
||||
HTTPNE.get("validate",Qs.stringify({doc: this.doc, schema: this.schema}))
|
||||
HTTP.post("validate",Qs.stringify(this.params))
|
||||
.then(r=>{
|
||||
console.log(r)
|
||||
console.log(r);
|
||||
this.snackbar={show:true,msg:r.data.msg,context:"success"};
|
||||
this.elapsed=Math.floor(performance.now() - this.start);
|
||||
this.loading=false
|
||||
if(r.data.rc==0){
|
||||
this.result=r.data.result
|
||||
this.result=r.data
|
||||
}else{
|
||||
this.result=r.data.info
|
||||
this.result=r.data
|
||||
}
|
||||
})
|
||||
.catch(r=> {
|
||||
console.log("error",r)
|
||||
console.log("error",r.response.data)
|
||||
this.snackbar={show: true, msg: r.response.data, context: "error"}
|
||||
this.result=r.message + ": "+ r.config.url + "\n"+ r.response.data
|
||||
this.loading=false
|
||||
});
|
||||
},
|
||||
},
|
||||
created:function(){
|
||||
console.log("notfound",this.$route.query.q)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
(:~
|
||||
: general validation tools, apply sequence of validators
|
||||
: schematron and nvdl msg handling
|
||||
: general validation tools,
|
||||
: qv:validation: apply sequence of validators
|
||||
: schematron qv:schematron(?,$schematron)
|
||||
: nvdl qv:nvdl(?,$nvdl)
|
||||
|
||||
msg handling
|
||||
: format as json friendly
|
||||
: @author andy bunce ,quodatum ltd
|
||||
: @licence apache 2
|
||||
|
|
@ -16,28 +20,29 @@ declare namespace svrl = "http://purl.oclc.org/dsdl/svrl";
|
|||
: @param $extras custom attributes and elements to include in response
|
||||
:)
|
||||
declare function qv:validation($doc ,$validators as function(*)*,$extras)
|
||||
as element(validation){
|
||||
let $uri:=base-uri($doc)
|
||||
as element(validation)
|
||||
{
|
||||
let $_:=trace(if($doc instance of xs:anyURI)then $doc else base-uri($doc),"£££££")
|
||||
let $uri:=if($doc instance of xs:anyURI)then $doc else base-uri($doc)
|
||||
let $results:=for-each($validators,function($f){$f($doc)})
|
||||
return <validation location="{$uri}" nodes="{count($doc//*)}">{ $extras,$results}</validation>
|
||||
return <validation location="{$uri}" >{ $extras,$results}</validation>
|
||||
};
|
||||
|
||||
(:~ report as json
|
||||
: @param $options can limit size eg {"limit":200}
|
||||
:)
|
||||
declare function qv:json($d as element(validation),$options as item())
|
||||
as element(_){
|
||||
as element(json)
|
||||
{
|
||||
let $limit:= if($options?limit) then $options?limit else 5000
|
||||
let $type:=$d/@type/string()
|
||||
let $uri:=$d/@location/string()
|
||||
let $name:=tokenize($uri,"/")[last()]
|
||||
let $nodes:=$d/@nodes/string()
|
||||
let $fix:=function($r){element {name($r)}{attribute type {"array"},qv:msg-limit($r/_,$limit)}}
|
||||
return <_ type="object">
|
||||
return <json type="object">
|
||||
<uri>{$uri}</uri>
|
||||
<name>{$name}</name>
|
||||
<type>{$type}</type>
|
||||
<nodes type="number">{$nodes}</nodes>
|
||||
|
||||
<msgcounts type="object">{
|
||||
for $v in $d/* return element {name($v)}{attribute type {"number"},count($v/_)}
|
||||
|
|
@ -47,12 +52,13 @@ as element(_){
|
|||
$d/*!$fix(.)
|
||||
}</reports>
|
||||
|
||||
</_>
|
||||
</json>
|
||||
};
|
||||
|
||||
(:~ restrict number of messages o/p :)
|
||||
declare function qv:msg-limit($msgs as element(_)* ,$limit as xs:integer)
|
||||
as element(_)*{
|
||||
as element(_)*
|
||||
{
|
||||
let $count:=count($msgs)
|
||||
return if($count>$limit)
|
||||
then (subsequence($msgs,1,$limit -1),<_ type="object"><text>Messages truncated, {1+ $count - $limit} not shown.</text></_>)
|
||||
|
|
@ -63,7 +69,8 @@ return if($count>$limit)
|
|||
: run schematron on doc, returns two reports
|
||||
:)
|
||||
declare function qv:schematron($d,$sch as xs:anyURI)
|
||||
as element()*{
|
||||
as element()*
|
||||
{
|
||||
let $report:= sch:validate-document($d,doc($sch))
|
||||
return (
|
||||
qv:msgs("failed-assert",$report/svrl:schematron-output/svrl:failed-assert!qv:msg-from-svrl(.)),
|
||||
|
|
@ -73,7 +80,8 @@ return (
|
|||
|
||||
(:~ convert svrl node to standard msg :)
|
||||
declare function qv:msg-from-svrl($svrl as element())
|
||||
as element(_){
|
||||
as element(_)
|
||||
{
|
||||
<_ type="object">
|
||||
<text>{$svrl/svrl:text/string()}</text>
|
||||
<role>{$svrl/@role/string()}</role>
|
||||
|
|
@ -82,14 +90,23 @@ as element(_){
|
|||
};
|
||||
|
||||
(:~ create nvdl report :)
|
||||
declare function qv:nvdl($d,$nvdl as xs:anyURI){
|
||||
declare function qv:nvdl($d,$nvdl as xs:anyURI)
|
||||
{
|
||||
let $report:= validate:rng-report($d, $nvdl)
|
||||
return qv:msgs("nvdl",$report/message!qv:msg-from-nvdl(.))
|
||||
};
|
||||
|
||||
(:~ create xsd report :)
|
||||
declare function qv:xsd($d,$xsd as xs:anyURI)
|
||||
{
|
||||
let $report:= validate:xsd-report($d, $xsd)
|
||||
return qv:msgs("xsd",$report/message!qv:msg-from-nvdl(.))
|
||||
};
|
||||
|
||||
(:~ convert nvdl message to standard msg format :)
|
||||
declare function qv:msg-from-nvdl($message as element())
|
||||
as element(_){
|
||||
as element(_)
|
||||
{
|
||||
<_ type="object">
|
||||
<text>{$message/string()}</text>
|
||||
<role>{$message/@level/lower-case(.)}</role>
|
||||
|
|
@ -97,8 +114,11 @@ as element(_){
|
|||
</_>
|
||||
};
|
||||
|
||||
(:~ create element type to wrap array of msgs
|
||||
:)
|
||||
declare %private function qv:msgs($type as xs:string,$msgs as element(_)*)
|
||||
as element(){
|
||||
as element()
|
||||
{
|
||||
element {$type} {attribute type {"array"},$msgs}
|
||||
|
||||
};
|
||||
|
|
@ -20,7 +20,7 @@ function tx:xslt($xml,$xslt) {
|
|||
let $x:=fn:parse-xml($xml)
|
||||
let $s:=fn:parse-xml($xslt)
|
||||
let $params:=map{}
|
||||
let $opts:=map{"cache":true()}
|
||||
let $opts:=map{"cache":false()} (: BUG? :)
|
||||
let $r:=xslt:transform-text($x,$s,$params,$opts)
|
||||
return
|
||||
<json objects="json">
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
xmlns:c="http://www.w3.org/ns/xproc-step" version="2.0">
|
||||
<!-- build project index" -->
|
||||
<xsl:param name="project" as="xs:string" />
|
||||
|
||||
<xsl:param name="id" as="xs:string" />
|
||||
<xsl:param name="resources" as="xs:string" select="'resources/'" />
|
||||
|
||||
<xsl:variable name="css" select="concat($resources,'base.css')" />
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
content="xqdoc-r - https://github.com/quodatum/xqdoc-r" />
|
||||
|
||||
<title>
|
||||
<xsl:value-of select="'Index'" />
|
||||
<xsl:value-of select="'Index'" /> <xsl:value-of select="$id" />
|
||||
- xqDoc
|
||||
</title>
|
||||
<link rel="shortcut icon" type="image/x-icon" href="{$resources}xqdoc.png" />
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
<div id="main">
|
||||
<h1>
|
||||
XQDoc for
|
||||
<xsl:value-of select="$project" />
|
||||
<xsl:value-of select="$project" /> ,id: <xsl:value-of select="$id" />
|
||||
</h1>
|
||||
<xsl:call-template name="toc" />
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
<xsl:param name="project" as="xs:string" />
|
||||
<xsl:param name="source" as="xs:string" />
|
||||
<xsl:param name="filename" as="xs:string" />
|
||||
<xsl:param name="id" as="xs:string" />
|
||||
<xsl:param name="show-private" as="xs:boolean" select="false()" />
|
||||
<xsl:param name="resources" as="xs:string" select="'../resources/'" />
|
||||
|
||||
|
|
@ -32,6 +33,7 @@
|
|||
<title>
|
||||
<xsl:value-of select="$docuri" />
|
||||
- xqDoc
|
||||
<xsl:value-of select="$id" />
|
||||
</title>
|
||||
<link rel="shortcut icon" type="image/x-icon" href="{$resources}xqdoc.png" />
|
||||
<link rel="stylesheet" type="text/css" href="{$resources}page.css" />
|
||||
|
|
@ -428,7 +430,7 @@
|
|||
<div>
|
||||
<a href="{$index}">
|
||||
↰
|
||||
<xsl:value-of select="$project" />
|
||||
<xsl:value-of select="$project" /> :id= <xsl:value-of select="$id" />
|
||||
</a>
|
||||
</div>
|
||||
<h2>
|
||||
|
|
|
|||
|
|
@ -14,8 +14,11 @@ declare variable $xqd:XML:=map{"indent": "no"};
|
|||
declare variable $xqd:mod-xslt external :="html-module.xsl";
|
||||
declare variable $xqd:index-xslt external :="html-index.xsl";
|
||||
|
||||
(:~ save documentation for files to target
|
||||
:
|
||||
(:~
|
||||
: save documentation for files to target
|
||||
: @param $files c:directory-list
|
||||
: @param $target where to save
|
||||
: @param $opts
|
||||
:)
|
||||
declare function xqd:save-xq($files,$target,$params as map(*))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
(: entity access maps
|
||||
: auto generated from xml files in entities folder at: 2018-06-20T22:41:55.037+01:00
|
||||
: auto generated from xml files in entities folder at: 2018-06-27T22:03:58.364+01:00
|
||||
:)
|
||||
|
||||
module namespace entity = 'quodatum.models.generated';
|
||||
|
|
|
|||
|
|
@ -27,8 +27,7 @@
|
|||
<xpath>.</xpath>
|
||||
</field>
|
||||
</fields>
|
||||
<views>
|
||||
</views>
|
||||
<iconclass>fa fa-calendar</iconclass>
|
||||
<views iconclass="fa fa-calendar"/>
|
||||
|
||||
<data type="element(entry)">hof:top-k-by(admin:logs(), hof:id#1, 2)/string()!reverse(admin:logs(.,true()))</data>
|
||||
</entity>
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
<entity name="entity.field" xmlns="https://github.com/Quodatum/app-doc/entity">
|
||||
<has-a name="entity"/>
|
||||
<description>About an entity field. </description>
|
||||
<namespace prefix="ent"
|
||||
uri="https://github.com/Quodatum/app-doc/entity" />
|
||||
<has-a name="entity" />
|
||||
<description>About an entity field. </description>
|
||||
<namespace prefix="ent"
|
||||
uri="https://github.com/Quodatum/app-doc/entity" />
|
||||
<fields>
|
||||
<field name="name" type="xs:string">
|
||||
<description>name</description>
|
||||
|
|
@ -21,13 +21,12 @@
|
|||
<xpath>ent:xpath</xpath>
|
||||
</field>
|
||||
<field name="parent" type="xs:string">
|
||||
<description>containing entity</description>
|
||||
<xpath>../../@name</xpath>
|
||||
</field>
|
||||
<description>containing entity</description>
|
||||
<xpath>../../@name</xpath>
|
||||
</field>
|
||||
</fields>
|
||||
<views>
|
||||
<views iconclass="pin_drop">
|
||||
<view name="filter">name description</view>
|
||||
</views>
|
||||
<iconclass>glyphicon glyphicon-minus</iconclass>
|
||||
<data type="element(ent:field)">collection("doc-doc")//ent:field</data>
|
||||
</entity>
|
||||
|
|
@ -30,7 +30,7 @@
|
|||
</field>
|
||||
<field name="iconclass" type="xs:string">
|
||||
<description>css class for icon</description>
|
||||
<xpath>ent:iconclass</xpath>
|
||||
<xpath>ent:views/@iconclass</xpath>
|
||||
</field>
|
||||
<field name="nfields" type="xs:integer">
|
||||
<description>The number of fields for this entity</description>
|
||||
|
|
@ -48,6 +48,7 @@
|
|||
<description>parent entity link if any</description>
|
||||
<xpath>fn:concat("/data/entity/",ent:parent/@name)</xpath>
|
||||
</field>
|
||||
|
||||
<!--
|
||||
<field name="fields" entity="field">
|
||||
<description>parent entity link if any</description>
|
||||
|
|
@ -55,9 +56,8 @@
|
|||
</field>
|
||||
-->
|
||||
</fields>
|
||||
<views>
|
||||
<views iconclass="place">
|
||||
<view name="filter">name description</view>
|
||||
</views>
|
||||
<iconclass>glyphicon glyphicon-list-alt</iconclass>
|
||||
</views>
|
||||
<data type="element(ent:entity)">collection("vue-poc")//ent:entity</data>
|
||||
</entity>
|
||||
29
src/vue-poc/models/entities/filehistory.xml
Normal file
29
src/vue-poc/models/entities/filehistory.xml
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
<entity name="filehistory" xmlns="https://github.com/Quodatum/app-doc/entity">
|
||||
<description>vue-poc file view events </description>
|
||||
<namespace prefix="h" uri="urn:quodatum:vue-poc.history" />
|
||||
<fields>
|
||||
<field name="created" type="xs:string">
|
||||
<description>time of event</description>
|
||||
<xpath>@when</xpath>
|
||||
</field>
|
||||
<field name="user" type="xs:string">
|
||||
<description>user</description>
|
||||
<xpath>@user</xpath>
|
||||
</field>
|
||||
<field name="id" type="xs:string">
|
||||
<description>id</description>
|
||||
<xpath>@id</xpath>
|
||||
</field>
|
||||
<field name="protocol" type="xs:string">
|
||||
<description>mode eg file basexdb</description>
|
||||
<xpath>h:file/@mode</xpath>
|
||||
</field>
|
||||
|
||||
<field name="url" type="xs:string">
|
||||
<description>path</description>
|
||||
<xpath>h:file/@url</xpath>
|
||||
</field>
|
||||
</fields>
|
||||
<views iconclass="fa fa-calendar"/>
|
||||
<data type="element(h:event)">doc("vue-poc/history.xml")/h:history/h:event[h:file]</data>
|
||||
</entity>
|
||||
|
|
@ -28,10 +28,9 @@
|
|||
<xpath>string-length(result)</xpath>
|
||||
</field>
|
||||
</fields>
|
||||
<views>
|
||||
<views iconclass="fa fa-file-code-o">
|
||||
<view name="filter">name description</view>
|
||||
</views>
|
||||
<iconclass>fa fa-file-code-o</iconclass>
|
||||
<data type="element(jobrun)">collection("vue-poc/jobrun")/jobrun
|
||||
</data>
|
||||
</entity>
|
||||
|
|
@ -10,15 +10,14 @@
|
|||
<xpath>@prefix</xpath>
|
||||
</field>
|
||||
<field name="description" type="xs:string">
|
||||
<description>about the namespace</description>
|
||||
<xpath>description</xpath>
|
||||
</field>
|
||||
|
||||
<description>about the namespace</description>
|
||||
<xpath>description</xpath>
|
||||
</field>
|
||||
|
||||
</fields>
|
||||
<views>
|
||||
<view name="filter">xmlns description</view>
|
||||
</views>
|
||||
<iconclass>label</iconclass>
|
||||
<views iconclass="label">
|
||||
<view name="filter">xmlns description</view>
|
||||
</views>
|
||||
<data type="element(namespace)">collection("vue-poc")/namespaces/namespace
|
||||
</data>
|
||||
</entity>
|
||||
32
src/vue-poc/models/entities/query.xml
Normal file
32
src/vue-poc/models/entities/query.xml
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
<entity name="query" xmlns="https://github.com/Quodatum/app-doc/entity">
|
||||
<description>An replx query</description>
|
||||
<namespace prefix="xqdoc" uri="http://www.xqdoc.org/1.0" />
|
||||
|
||||
<fields>
|
||||
<field name="id" type="xs:string">
|
||||
<description>unique id</description>
|
||||
<xpath>@id</xpath>
|
||||
</field>
|
||||
<field name="created" type="xs:string">
|
||||
<description>date</description>
|
||||
<xpath>created</xpath>
|
||||
</field>
|
||||
<field name="query" type="xs:string">
|
||||
<description>query</description>
|
||||
<xpath>query</xpath>
|
||||
</field>
|
||||
<field name="result" type="xs:string">
|
||||
<description>result</description>
|
||||
<xpath>substring(result,0,1000)</xpath>
|
||||
</field>
|
||||
<field name="resultlength" type="xs:integer">
|
||||
<description>result</description>
|
||||
<xpath>string-length(result)</xpath>
|
||||
</field>
|
||||
</fields>
|
||||
<views iconclass="fa fa-file-code-o">
|
||||
<view name="filter">name description</view>
|
||||
</views>
|
||||
<data type="element(query)">collection("replx/queries")/query
|
||||
</data>
|
||||
</entity>
|
||||
|
|
@ -18,6 +18,6 @@
|
|||
<xpath>"app.item.index({'name':'benchx'})"</xpath>
|
||||
</field>
|
||||
</fields>
|
||||
<iconclass>fa fa-question-circle</iconclass>
|
||||
<views iconclass="fa fa-question-circle" />
|
||||
<data type="element(search)"></data>
|
||||
</entity>
|
||||
|
|
@ -38,10 +38,8 @@
|
|||
</field>
|
||||
</fields>
|
||||
|
||||
<views>
|
||||
<views iconclass="fa fa-file">
|
||||
<view name="filter">name</view>
|
||||
</views>
|
||||
|
||||
<iconclass>fa fa-file</iconclass>
|
||||
<data type="element(image)">collection($cfg:DB-IMAGE || "/image")/image</data>
|
||||
</entity>
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
<entity name="user" xmlns="https://github.com/Quodatum/app-doc/entity">
|
||||
<description>users </description>
|
||||
<description>A BaseX user </description>
|
||||
|
||||
<fields>
|
||||
<field name="name" type="xs:string">
|
||||
|
|
@ -11,8 +11,6 @@
|
|||
<xpath>@permission</xpath>
|
||||
</field>
|
||||
</fields>
|
||||
<views>
|
||||
</views>
|
||||
<iconclass>fa fa-calendar</iconclass>
|
||||
<views iconclass="person"/>
|
||||
<data type="element(user)">user:list-details()</data>
|
||||
</entity>
|
||||
|
|
@ -11,8 +11,6 @@
|
|||
<xpath>@root</xpath>
|
||||
</field>
|
||||
</fields>
|
||||
<views>
|
||||
</views>
|
||||
<iconclass>fa fa-calendar</iconclass>
|
||||
<views iconclass="pages"/>
|
||||
<data type="element(entry)">()</data>
|
||||
</entity>
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
<entity name="filehistory" xmlns="https://github.com/Quodatum/app-doc/entity">
|
||||
<description>vue-poc file view events </description>
|
||||
<namespace prefix="h" uri="urn:quodatum:vue-poc.history"/>
|
||||
<fields>
|
||||
<field name="created" type="xs:string">
|
||||
<description>time of event</description>
|
||||
<xpath>@when</xpath>
|
||||
</field>
|
||||
<field name="user" type="xs:string">
|
||||
<description>user</description>
|
||||
<xpath>@user</xpath>
|
||||
</field>
|
||||
<field name="id" type="xs:string">
|
||||
<description>id</description>
|
||||
<xpath>@id</xpath>
|
||||
</field>
|
||||
<field name="protocol" type="xs:string">
|
||||
<description>mode eg file basexdb</description>
|
||||
<xpath>h:file/@mode</xpath>
|
||||
</field>
|
||||
|
||||
<field name="url" type="xs:string">
|
||||
<description>path</description>
|
||||
<xpath>h:file/@url</xpath>
|
||||
</field>
|
||||
</fields>
|
||||
<views>
|
||||
</views>
|
||||
<iconclass>fa fa-calendar</iconclass>
|
||||
<data type="element(h:event)">doc("vue-poc/history.xml")/h:history/h:event[h:file]</data>
|
||||
</entity>
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
<entity name="query" xmlns="https://github.com/Quodatum/app-doc/entity">
|
||||
<description>An replx query</description>
|
||||
<namespace prefix="xqdoc" uri="http://www.xqdoc.org/1.0"/>
|
||||
|
||||
<fields>
|
||||
<field name="id" type="xs:string">
|
||||
<description>unique id</description>
|
||||
<xpath>@id</xpath>
|
||||
</field>
|
||||
<field name="created" type="xs:string">
|
||||
<description>date</description>
|
||||
<xpath>created</xpath>
|
||||
</field>
|
||||
<field name="query" type="xs:string">
|
||||
<description>query</description>
|
||||
<xpath>query</xpath>
|
||||
</field>
|
||||
<field name="result" type="xs:string">
|
||||
<description>result</description>
|
||||
<xpath>substring(result,0,1000)</xpath>
|
||||
</field>
|
||||
<field name="resultlength" type="xs:integer">
|
||||
<description>result</description>
|
||||
<xpath>string-length(result)</xpath>
|
||||
</field>
|
||||
</fields>
|
||||
<views>
|
||||
<view name="filter">name description</view>
|
||||
</views>
|
||||
<iconclass>fa fa-file-code-o</iconclass>
|
||||
<data type="element(query)">collection("replx/queries")/query
|
||||
</data>
|
||||
</entity>
|
||||
89
src/vue-poc/models/schemas/entity.xsd
Normal file
89
src/vue-poc/models/schemas/entity.xsd
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
<xs:schema attributeFormDefault="unqualified"
|
||||
elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="https://github.com/Quodatum/app-doc/entity" xmlns:ent="https://github.com/Quodatum/app-doc/entity">
|
||||
<xs:element name="entity">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Root element for entity</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="ent:description" />
|
||||
<xs:element maxOccurs="1" minOccurs="0" ref="ent:namespace">
|
||||
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="fields">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="field" maxOccurs="unbounded"
|
||||
minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element type="xs:string" name="description" />
|
||||
<xs:element type="xs:string" name="xpath" />
|
||||
</xs:sequence>
|
||||
<xs:attribute type="xs:string" name="name" use="optional" />
|
||||
<xs:attribute type="xs:string" name="type" use="optional" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element type="ent:viewsType" name="views" />
|
||||
<xs:element ref="ent:data" />
|
||||
</xs:sequence>
|
||||
<xs:attribute type="xs:string" name="name" />
|
||||
<xs:attribute type="xs:string" name="type" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
|
||||
<xs:complexType name="viewsType">
|
||||
|
||||
<xs:sequence>
|
||||
<xs:element name="view" minOccurs="0" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
<xs:attribute name="iconclass" type="xs:string"></xs:attribute>
|
||||
|
||||
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="dataComplexType">
|
||||
<xs:annotation></xs:annotation>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:string">
|
||||
<xs:attribute name="type" type="xs:string">
|
||||
<xs:annotation></xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:element name="namespace">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="prefix" type="xs:string"></xs:attribute>
|
||||
|
||||
<xs:attribute name="uri" type="xs:string"></xs:attribute>
|
||||
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="data" type="ent:dataComplexType" />
|
||||
|
||||
<xs:element name="description" type="ent:mixed-text">
|
||||
<xs:annotation>
|
||||
<xs:documentation>about the entity</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
|
||||
<!-- Complex type used for comment text to allow the inclusion of embedded
|
||||
HTML markup within comments. -->
|
||||
<xs:complexType mixed="true" name="mixed-text">
|
||||
<xs:sequence>
|
||||
<xs:any maxOccurs="unbounded" minOccurs="0" processContents="skip" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
</xs:schema>
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
// generated 2018-06-24T22:46:13.105+01:00
|
||||
// generated 2018-07-06T22:33:10.411+01:00
|
||||
|
||||
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/components/qd-autoheight.vue
|
||||
Vue.component('qd-autoheight',{template:`
|
||||
|
|
@ -50,6 +50,46 @@ Vue.component('qd-confirm',{template:`
|
|||
|
||||
);
|
||||
|
||||
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/components/qd-fileupload.vue
|
||||
Vue.component('qd-fileupload',{template:`
|
||||
<vue-clip :options="options">
|
||||
<template slot="clip-uploader-action">
|
||||
<div>
|
||||
<div class="dz-message"><h2> Click or Drag and Drop files here upload </h2></div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template slot="clip-uploader-body" scope="props">
|
||||
<div v-for="file in props.files">
|
||||
<img v-bind:src="file.dataUrl">
|
||||
{{ file.name }} {{ file.status }}
|
||||
</div>
|
||||
</template>
|
||||
|
||||
</vue-clip>
|
||||
`,
|
||||
|
||||
data () {
|
||||
return {
|
||||
options: {
|
||||
url: '/vue-poc/api/upload',
|
||||
paramName: 'file',
|
||||
maxFilesize: {
|
||||
limit: 1,
|
||||
message: '{{ filesize }} is greater than the {{ maxFilesize }}'
|
||||
},
|
||||
maxFiles: {
|
||||
limit: 5,
|
||||
message: 'You can only upload a max of 5 files'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
);
|
||||
|
||||
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/components/qd-fullscreen.vue
|
||||
Vue.component('qd-fullscreen',{template:`
|
||||
<a @click="toggle()" href="javascript:void(0);" title="Fullscreen toggle">
|
||||
|
|
@ -153,7 +193,7 @@ Vue.component('qd-panel',{template:`
|
|||
|
||||
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/components/qd-search.vue
|
||||
Vue.component('qd-search',{template:`
|
||||
<v-select placeholder="Search..." prepend-icon="search" autocomplete="" :loading="loading" combobox="" clearable="" cache-items="" :items="items2" @keyup.enter="goSearch" :search-input.sync="si" v-model="q"></v-select>
|
||||
<v-combobox placeholder="Search..." prepend-icon="search" autocomplete="" :loading="loading" clearable="" cache-items="" :items="items2" @keyup.enter="goSearch" :search-input.sync="si" v-model="q"></v-combobox>
|
||||
`,
|
||||
|
||||
data:function(){return {
|
||||
|
|
@ -169,7 +209,7 @@ Vue.component('qd-search',{template:`
|
|||
this.loading = true
|
||||
// Simulated ajax query
|
||||
setTimeout(() => {
|
||||
this.items2 = ["aa","bb",this.si],
|
||||
this.items2 = ["aa","bb"],
|
||||
this.loading = false
|
||||
}, 500)
|
||||
},
|
||||
|
|
@ -194,9 +234,13 @@ Vue.component('qd-table',{template:`
|
|||
<v-toolbar>
|
||||
<v-text-field append-icon="search" label="Filter user" single-line="" hide-details="" v-model="search"></v-text-field>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn @click="getData">Refresh</v-btn>
|
||||
<v-btn icon="" :loading="loading" :disabled="loading" @click="getItems">
|
||||
<v-icon>refresh</v-icon>
|
||||
</v-btn>
|
||||
<span>{{ entity }}</span>
|
||||
</v-toolbar>
|
||||
<v-data-table :headers="headers" :items="items" :search="search" v-model="selected" select-all="" class="elevation-1" no-data-text="No users found @todo">
|
||||
|
||||
<v-data-table :headers="headers" :items="items" :search="search" v-model="selected" select-all="" class="elevation-1" :no-data-text="noDataMsg">
|
||||
<template slot="items" slot-scope="props">
|
||||
<slot></slot>
|
||||
</template>
|
||||
|
|
@ -217,8 +261,14 @@ Vue.component('qd-table',{template:`
|
|||
]
|
||||
},
|
||||
dataUri:{
|
||||
default: "users"
|
||||
}
|
||||
default: "entity"
|
||||
},
|
||||
noDataMsg:{
|
||||
default: "No USERS found @todo"
|
||||
},
|
||||
entity:{
|
||||
default: "entity"
|
||||
}
|
||||
},
|
||||
data: function(){
|
||||
return {
|
||||
|
|
@ -230,18 +280,19 @@ Vue.component('qd-table',{template:`
|
|||
}
|
||||
},
|
||||
methods:{
|
||||
getData(){
|
||||
getItems(){
|
||||
this.loading=true;
|
||||
HTTP.get(this.dataUri)
|
||||
.then(r=>{
|
||||
this.loading=false
|
||||
this.items=r.data
|
||||
this.loading=false;
|
||||
console.log("items",r);
|
||||
this.items=r.data.items;
|
||||
})
|
||||
}
|
||||
},
|
||||
created:function(){
|
||||
console.log("qd-table")
|
||||
this.getData()
|
||||
console.log("qd-table");
|
||||
this.getItems();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -890,7 +941,12 @@ const Notfound=Vue.extend({template:`
|
|||
const About=Vue.extend({template:`
|
||||
|
||||
<v-jumbotron color="grey lighten-2">
|
||||
<v-speed-dial v-model="fab" hover="" right="" direction="bottom" transition="slide-y-reverse-transition">
|
||||
|
||||
<v-container fill-height="">
|
||||
<v-layout align-center="">
|
||||
<v-flex>
|
||||
<h3 class="display-3">Vue-poc<v-spacer></v-spacer>
|
||||
<v-speed-dial v-model="fab" hover="" right="" direction="bottom" transition="slide-y-reverse-transition">
|
||||
<v-btn slot="activator" class="blue darken-2" dark="" fab="" hover="" v-model="fab">
|
||||
<v-icon>account_circle</v-icon>
|
||||
<v-icon>close</v-icon>
|
||||
|
|
@ -905,11 +961,6 @@ const About=Vue.extend({template:`
|
|||
<v-icon>delete</v-icon>
|
||||
</v-btn>
|
||||
</v-speed-dial>
|
||||
<v-container fill-height="">
|
||||
<v-layout align-center="">
|
||||
<v-flex>
|
||||
<h3 class="display-3">Vue-poc
|
||||
|
||||
</h3>
|
||||
<span class="subheading">A development environment for managing XML sources and processes.</span>
|
||||
|
||||
|
|
@ -1032,29 +1083,28 @@ const Log=Vue.extend({template:`
|
|||
<v-toolbar>
|
||||
|
||||
|
||||
|
||||
<v-btn icon="" to="add" append="">
|
||||
<v-icon>add_circle</v-icon>
|
||||
</v-btn>
|
||||
|
||||
|
||||
<v-text-field append-icon="search" label="Filter logs" single-line="" hide-details="" v-model="search"></v-text-field>
|
||||
|
||||
<v-btn icon="" :color="autorefresh?'red':'green'" :loading="loading" @click="getItems" @dblclick="toggle" :disabled="loading">
|
||||
<v-btn icon="" :color="autorefresh?'green':''" :loading="loading" :disabled="loading" @click="getItems" @dblclick="toggle">
|
||||
<v-icon>refresh</v-icon>
|
||||
</v-btn>
|
||||
|
||||
<v-btn to="add" append="" small="" absolute="" bottom="" right="" fab="">
|
||||
<v-icon>add</v-icon>
|
||||
</v-btn>
|
||||
<v-spacer></v-spacer>
|
||||
<v-menu offset-y="" left="">
|
||||
<v-btn icon="" slot="activator"><v-icon>settings</v-icon></v-btn>
|
||||
<v-card>
|
||||
<v-toolbar class="green">
|
||||
<v-card-title>Settings TODO</v-card-title>
|
||||
</v-toolbar>
|
||||
<v-card-text>
|
||||
<v-btn @click="autorefresh= ! autorefresh">Autorefresh</v-btn>
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
</v-menu>
|
||||
<v-menu bottom="" left="" min-width="300px">
|
||||
<v-btn icon="" slot="activator">
|
||||
<v-icon>settings</v-icon>
|
||||
</v-btn>
|
||||
<v-list subheader="">
|
||||
<v-subheader>Settings</v-subheader>
|
||||
|
||||
<v-list-tile>
|
||||
<v-list-tile-title><v-switch label="Auto Refresh" v-model="autorefresh"></v-switch></v-list-tile-title>
|
||||
</v-list-tile>
|
||||
</v-list>
|
||||
</v-menu>
|
||||
</v-toolbar>
|
||||
<v-data-table :headers="headers" :items="items" :search="search" class="elevation-1" no-data-text="No logs found" v-bind:pagination.sync="pagination">
|
||||
<template slot="items" slot-scope="props">
|
||||
|
|
@ -1095,6 +1145,9 @@ const Log=Vue.extend({template:`
|
|||
}
|
||||
},
|
||||
methods:{
|
||||
address(text){
|
||||
return "%" + text;
|
||||
},
|
||||
getItems(){
|
||||
this.loading=true
|
||||
HTTP.get("log",{params:this.q})
|
||||
|
|
@ -1654,7 +1707,7 @@ const Tree=Vue.extend({template:`
|
|||
<v-container fluid="">
|
||||
<v-card>
|
||||
<v-toolbar class="lime darken-1">
|
||||
<v-card-title><qd-link href="https://github.com/zdy1988/vue-jstree">vue-jstree@1.0.11</qd-link> </v-card-title>
|
||||
<v-card-title><qd-link href="https://github.com/zdy1988/vue-jstree">vue-jstree@2.1.16</qd-link> </v-card-title>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn>todo</v-btn>
|
||||
</v-toolbar>
|
||||
|
|
@ -4048,10 +4101,9 @@ const Namespace=Vue.extend({template:`
|
|||
load(){
|
||||
|
||||
this.loading= true
|
||||
HTTP.get("data/namespace",{params:{}})
|
||||
HTTP.get("data/namespace",{params:{q:this.q}})
|
||||
.then(r=>{
|
||||
this.items= r.data.items
|
||||
this.q= null
|
||||
this.loading= false
|
||||
})
|
||||
.catch(error=> {
|
||||
|
|
@ -4418,6 +4470,7 @@ const Repo=Vue.extend({template:`
|
|||
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/features/scratch.vue
|
||||
const Scratch=Vue.extend({template:`
|
||||
<v-container fluid="">
|
||||
<qd-fileupload title="Up it" selected-callback="upit">up load</qd-fileupload>
|
||||
<qd-autoheight>
|
||||
<vue-ace :content="ace" mode="xml"></vue-ace>
|
||||
</qd-autoheight>
|
||||
|
|
@ -4430,8 +4483,13 @@ const Scratch=Vue.extend({template:`
|
|||
ace:"<xml>here</xml>"
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
upit:function(s){
|
||||
alert("up")
|
||||
}
|
||||
},
|
||||
mounted:function(){
|
||||
console.log("notfound",this.$route.path)
|
||||
console.log("scratch",this.$route.path)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -5269,12 +5327,25 @@ const Thumbnail=Vue.extend({template:`
|
|||
</v-stepper-content>
|
||||
|
||||
<v-stepper-content step="3" non-linear="">
|
||||
<v-card class="grey lighten-1 z-depth-1 mb-5" height="200px">
|
||||
output todo
|
||||
</v-card>
|
||||
|
||||
<v-btn flat="" @click="step -= 1">Back</v-btn>
|
||||
<v-card class="grey lighten-1 z-depth-1 mb-5">
|
||||
<v-card-actions>
|
||||
<v-btn flat="" @click="step -= 1">Back</v-btn>
|
||||
<v-btn color="primary" @click="go()">go</v-btn>
|
||||
</v-card-actions>
|
||||
<v-card-text>
|
||||
<v-layout style="height:200px" fill-height="">
|
||||
<v-flex xs6="">
|
||||
<img :src="image" class="contain" style="width:100%; height:100%;">
|
||||
</v-flex>
|
||||
<v-flex xs6="">
|
||||
<img :src="image" class="contain" style="width:50%; height:50%;object-position: 50% 50%;">
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-card-text>
|
||||
|
||||
</v-card>
|
||||
|
||||
|
||||
</v-stepper-content>
|
||||
</v-stepper-items>
|
||||
</v-stepper>
|
||||
|
|
@ -5283,9 +5354,13 @@ const Thumbnail=Vue.extend({template:`
|
|||
|
||||
data(){
|
||||
return {
|
||||
image:"http://images.metmuseum.org/CRDImages/ep/original/DT46.jpg",
|
||||
image:"https://cdn.pixabay.com/photo/2017/10/31/07/49/horses-2904536_960_720.jpg",
|
||||
step: 0,
|
||||
taskxml:"<task></task>"
|
||||
taskxml:"<task></task>",
|
||||
items:[
|
||||
{
|
||||
src: 'https://cdn.pixabay.com/photo/2017/10/31/07/49/horses-2904536_960_720.jpg'
|
||||
}]
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
|
|
@ -5331,7 +5406,13 @@ const Thumbnail=Vue.extend({template:`
|
|||
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/features/users/users.vue
|
||||
const Users=Vue.extend({template:`
|
||||
<v-container fluid="">
|
||||
<qd-table :headers="headers" data-uri="data/users">
|
||||
<qd-table :headers="headers" data-uri="data/user" entity="user" no-data-msg="Nothing found">
|
||||
<template slot="items" slot-scope="props">
|
||||
|
||||
<td>{{ props.item.id}}</td>
|
||||
<td>{{ props.item.state }}</td>
|
||||
|
||||
</template>
|
||||
</qd-table>
|
||||
</v-container>
|
||||
|
||||
|
|
@ -5354,28 +5435,31 @@ const Users=Vue.extend({template:`
|
|||
}
|
||||
},
|
||||
|
||||
created:function(){
|
||||
console.log("qd-table")
|
||||
}
|
||||
created:function(){
|
||||
console.log("users")
|
||||
}
|
||||
}
|
||||
|
||||
);
|
||||
|
||||
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/features/validate/validate.vue
|
||||
const Validate=Vue.extend({template:`
|
||||
<v-container fluid="" v-resize="onResize">
|
||||
<v-container fluid="">
|
||||
<v-snackbar v-model="snackbar.show" :timeout="6000" :success="snackbar.context === 'success'" :error="snackbar.context === 'error'">
|
||||
{{ snackbar.msg }}
|
||||
<v-btn dark="" flat="" @click="snackbar.show = false">Close</v-btn>
|
||||
</v-snackbar>
|
||||
<v-card>
|
||||
<v-toolbar class="orange">
|
||||
<v-btn @click="validate" :loading="loading" :disabled="loading"><v-icon>play_circle_outline</v-icon>Validate</v-btn>
|
||||
<span v-text="elapsed"></span>ms. Height:
|
||||
<span v-text="height"></span>
|
||||
<span v-text="elapsed"></span>ms.
|
||||
<v-spacer></v-spacer>
|
||||
|
||||
<v-menu offset-y="" left="">
|
||||
<v-btn icon="" dark="" slot="activator"><v-icon>settings</v-icon></v-btn>
|
||||
<v-card>
|
||||
<v-toolbar class="green">
|
||||
<v-card-title>Settings................</v-card-title>
|
||||
<v-card-title>@TODO.......</v-card-title>
|
||||
</v-toolbar>
|
||||
<v-card-text>
|
||||
stuff
|
||||
|
|
@ -5383,13 +5467,21 @@ const Validate=Vue.extend({template:`
|
|||
</v-card>
|
||||
</v-menu>
|
||||
</v-toolbar>
|
||||
<v-card-text>
|
||||
<qd-autoheight>
|
||||
<v-flex fill-height="" xs12="">
|
||||
test here
|
||||
</v-flex>
|
||||
</qd-autoheight>
|
||||
<v-card-text v-resize="onResize" style="height:100px" ref="auto">
|
||||
<v-container fluid="">
|
||||
|
||||
<v-layout row="" wrap="">
|
||||
<v-flex xs8="">
|
||||
<v-text-field v-for="field in fields" :key="field.model" v-model="params[field.model]" :label="field.label" clearable="" :rules="[rules.required]" box=""></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs4="" fill-height="" style="overflow:scroll">
|
||||
<pre>Result: {{ result }}</pre>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-container>
|
||||
</v-card-text>
|
||||
|
||||
</v-card>
|
||||
</v-container>
|
||||
`,
|
||||
|
|
@ -5400,38 +5492,53 @@ const Validate=Vue.extend({template:`
|
|||
elapsed: null,
|
||||
height: null,
|
||||
result: null,
|
||||
doc: "c:/test.xml",
|
||||
schema: "c:/schema.xsd"
|
||||
}
|
||||
fields:[
|
||||
{model: "schema", label: "Schema (xsd url)"},
|
||||
{model: "doc", label: "Doc (url)"}
|
||||
|
||||
],
|
||||
rules: {
|
||||
required: value => !!value || 'Required.'
|
||||
},
|
||||
params:{
|
||||
doc: "C:/Users/andy/git/vue-poc/src/vue-poc/models/adminlog.xml",
|
||||
schema: "C:/Users/andy/git/vue-poc/src/vue-poc/models/schemas/entity.xsd"
|
||||
},
|
||||
snackbar:{show:false,msg:"",context:"success"}
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
onResize(){
|
||||
this.height = window.innerHeight
|
||||
//console.log("EL",this.$el);
|
||||
var el=this.$refs["auto"];
|
||||
var h=window.innerHeight - el.getBoundingClientRect().top -32;
|
||||
var h=Math.max(1,h) ;
|
||||
//console.log("resize h",h,el.style)
|
||||
el.style.height=h +"px";
|
||||
},
|
||||
validate(){
|
||||
|
||||
validate(){
|
||||
this.loading=true
|
||||
this.start = performance.now();
|
||||
HTTPNE.get("validate",Qs.stringify({doc: this.doc, schema: this.schema}))
|
||||
HTTP.post("validate",Qs.stringify(this.params))
|
||||
.then(r=>{
|
||||
console.log(r)
|
||||
console.log(r);
|
||||
this.snackbar={show:true,msg:r.data.msg,context:"success"};
|
||||
this.elapsed=Math.floor(performance.now() - this.start);
|
||||
this.loading=false
|
||||
if(r.data.rc==0){
|
||||
this.result=r.data.result
|
||||
this.result=r.data
|
||||
}else{
|
||||
this.result=r.data.info
|
||||
this.result=r.data
|
||||
}
|
||||
})
|
||||
.catch(r=> {
|
||||
console.log("error",r)
|
||||
console.log("error",r.response.data)
|
||||
this.snackbar={show: true, msg: r.response.data, context: "error"}
|
||||
this.result=r.message + ": "+ r.config.url + "\n"+ r.response.data
|
||||
this.loading=false
|
||||
});
|
||||
},
|
||||
},
|
||||
created:function(){
|
||||
console.log("notfound",this.$route.query.q)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -5805,8 +5912,9 @@ const Vuepoc=Vue.extend({template:`
|
|||
<vp-favorite :frmfav.sync="frmfav"></vp-favorite>
|
||||
|
||||
<v-spacer></v-spacer>
|
||||
<qd-search></qd-search>
|
||||
|
||||
|
||||
<qd-search></qd-search>
|
||||
|
||||
<v-spacer></v-spacer>
|
||||
|
||||
<v-menu left="" transition="v-fade-transition">
|
||||
|
|
@ -6001,7 +6109,7 @@ const Vuepoc=Vue.extend({template:`
|
|||
Vue.config.errorHandler = function (err, vm, info) {
|
||||
// handle error
|
||||
// `info` is a Vue-specific error info, e.g. which lifecycle hook
|
||||
console.error(err, vm, info);
|
||||
console.log('[Global Error Handler]: Error in ' + info + ': ' + err);
|
||||
var msg=JSON.stringify(err)
|
||||
that.showAlert("vue error:\n"+msg)
|
||||
//alert("vue error");
|
||||
|
|
@ -6022,9 +6130,9 @@ const Vuepoc=Vue.extend({template:`
|
|||
|
||||
HTTP.get("status")
|
||||
.then(r=>{
|
||||
console.log("status",r.data)
|
||||
Object.assign(Auth,r.data)
|
||||
this.$forceUpdate()
|
||||
console.log("status",r)
|
||||
//Object.assign(Auth,r.data)
|
||||
//this.$forceUpdate()
|
||||
})
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -135,6 +135,10 @@ height: 100%;
|
|||
background-color: green;
|
||||
border: thick double #32a1ce;
|
||||
}
|
||||
|
||||
.contain {
|
||||
object-fit: contain;
|
||||
}
|
||||
.canvas {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic"/>
|
||||
<link rel="stylesheet" href="//fonts.googleapis.com/icon?family=Material+Icons"/>
|
||||
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="//unpkg.com/vuetify@1.0.19/dist/vuetify.min.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="//unpkg.com/vuetify@1.1.1/dist/vuetify.min.css" rel="stylesheet" type="text/css"/>
|
||||
<link rel="stylesheet" href="//unpkg.com/@riophae/vue-treeselect@0.0.29/dist/vue-treeselect.min.css">
|
||||
<link rel="stylesheet" href="//unpkg.com/vue-form-generator@2.2.2/dist/vfg-core.css"/>
|
||||
<link href="/vue-poc/ui/app.css" rel="stylesheet" type="text/css"/>
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
<body>
|
||||
<div id="app">
|
||||
<h3><code>vue-poc</code> <small>(v0.3.5)</small> </h3>
|
||||
<h3><code>vue-poc</code> <small>(v0.3.6)</small> </h3>
|
||||
|
||||
<div class="spinner">
|
||||
<div class="rect1"></div>
|
||||
|
|
@ -38,7 +38,7 @@
|
|||
<script src="//cdnjs.cloudflare.com/ajax/libs/vue-router/3.0.1/vue-router.js" crossorigin="anonymous"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/axios/0.17.1/axios.js" crossorigin="anonymous"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/qs/6.4.0/qs.js" crossorigin="anonymous" ></script>
|
||||
<script src="//unpkg.com/vuetify@1.0.19/dist/vuetify.min.js" crossorigin="anonymous"></script>
|
||||
<script src="//unpkg.com/vuetify@1.1.1/dist/vuetify.min.js" crossorigin="anonymous"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.3.3/ace.js" crossorigin="anonymous"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.3.3/ext-language_tools.js" crossorigin="anonymous"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.3.3/ext-linking.js" type="text/javascript" charset="utf-8"></script>
|
||||
|
|
@ -49,8 +49,8 @@
|
|||
<script src="//cdnjs.cloudflare.com/ajax/libs/localforage/1.7.1/localforage.js" crossorigin="anonymous"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js" crossorigin="anonymous"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/vis/4.20.1/vis-timeline-graph2d.min.js" crossorigin="anonymous"></script>
|
||||
|
||||
<script src="//unpkg.com/vue-jstree@1.0.11/dist/vue-jstree.js" crossorigin="anonymous"></script>
|
||||
<script src="https://unpkg.com/vue-clip@1.0.0/dist/vue-clip.js" crossorigin="anonymous"></script>
|
||||
<script src="//unpkg.com/vue-jstree@2.1.6/dist/vue-jstree.js" crossorigin="anonymous"></script>
|
||||
<script src="//unpkg.com/@riophae/vue-treeselect@0.0.29/dist/vue-treeselect.min.js" crossorigin="anonymous"></script>
|
||||
|
||||
<script src="//unpkg.com/vue-form-generator@2.2.2/dist/vfg-core.js" crossorigin="anonymous"></script>
|
||||
|
|
|
|||
|
|
@ -1,19 +0,0 @@
|
|||
(:~
|
||||
: Update `generated/models.xqm` from files in `data/models`
|
||||
: using file:///C:/Users/andy/workspace/app-doc/src/doc/data/doc/models
|
||||
:)
|
||||
|
||||
declare namespace task="https://github.com/Quodatum/app-doc/task";
|
||||
import module namespace bf = 'quodatum.tools.buildfields' at "../lib/entity-gen.xqm";
|
||||
|
||||
declare variable $efolder:="C:/Users/andy/git/vue-poc/src/vue-poc/models";
|
||||
declare variable $target:="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 (
|
||||
file:write-text($target,$src)
|
||||
,db:output("generated " || $target)
|
||||
)
|
||||
|
||||
Loading…
Add table
Reference in a new issue