vuetify 1.5.0
This commit is contained in:
parent
ab8bfccecb
commit
c5e27fffa0
19 changed files with 308 additions and 213 deletions
|
|
@ -157,6 +157,7 @@
|
||||||
{href: '/namespace', text: 'Namespaces',icon: 'label' },
|
{href: '/namespace', text: 'Namespaces',icon: 'label' },
|
||||||
{href: '/entity', text: 'Entities',icon: 'redeem' },
|
{href: '/entity', text: 'Entities',icon: 'redeem' },
|
||||||
]},
|
]},
|
||||||
|
|
||||||
{
|
{
|
||||||
icon: 'cast_connected',
|
icon: 'cast_connected',
|
||||||
text: 'Server' ,
|
text: 'Server' ,
|
||||||
|
|
@ -172,6 +173,7 @@
|
||||||
{href: '/server/dicetest',text: 'Dice performance',icon: 'update'},
|
{href: '/server/dicetest',text: 'Dice performance',icon: 'update'},
|
||||||
{href: '/server/settings',text: 'Server settings',icon: 'settings_applications'}
|
{href: '/server/settings',text: 'Server settings',icon: 'settings_applications'}
|
||||||
]},
|
]},
|
||||||
|
|
||||||
{
|
{
|
||||||
icon: 'camera_roll',
|
icon: 'camera_roll',
|
||||||
text: 'Images' ,
|
text: 'Images' ,
|
||||||
|
|
@ -185,6 +187,7 @@
|
||||||
{href: '/map',text: 'Map',icon: 'place'},
|
{href: '/map',text: 'Map',icon: 'place'},
|
||||||
{href: '/images/report',text: 'Reports',icon: 'report'}
|
{href: '/images/report',text: 'Reports',icon: 'report'}
|
||||||
]},
|
]},
|
||||||
|
|
||||||
{
|
{
|
||||||
icon: 'format_list_bulleted',
|
icon: 'format_list_bulleted',
|
||||||
text: 'Forms' ,
|
text: 'Forms' ,
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
//Manage array of text sources used for:edit tabs
|
//Manage array of text sources used for:edit tabs
|
||||||
// item{
|
// item{
|
||||||
// name:
|
// name: file name
|
||||||
// contentType: "text/xml",
|
// contentType: "text/xml",
|
||||||
// mode: "xml",
|
// mode: "xml",
|
||||||
// text:
|
// text:
|
||||||
// id: ids have the form "Tn"
|
// id: ids have the form "Tn"
|
||||||
// url: path to save to
|
// uri: path to save to
|
||||||
// requires: Settings,HTTP
|
// requires: Settings,HTTP
|
||||||
//
|
//
|
||||||
const GEditTabs={
|
const GEditTabs={
|
||||||
|
|
@ -20,20 +20,22 @@ const GEditTabs={
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
// add tab return index
|
||||||
addItem(tab){
|
addItem(tab){
|
||||||
//console.log("new: ",tab);
|
//console.log("new: ",tab);
|
||||||
var def={name: "AA"+this.nextId,
|
var def={name: "AA"+this.nextId,
|
||||||
contentType: "text/xml",
|
contentType: "text/xml",
|
||||||
mode: "xml",
|
mode: "xml",
|
||||||
text: "<foo>" +this.nextId +"</foo>",
|
text: "<foo>" +this.nextId +"</foo>",
|
||||||
url: null
|
uri: null
|
||||||
};
|
};
|
||||||
var etab = Object.assign(def,tab);
|
var etab = Object.assign(def,tab);
|
||||||
etab.id= "T" + this.nextId
|
etab.id= "T" + this.nextId
|
||||||
this.items.push (etab);
|
this.items.push (etab);
|
||||||
this.length++
|
this.length++
|
||||||
this.nextId++;
|
this.nextId++;
|
||||||
return etab;
|
var ind=this.items.indexOf(etab)
|
||||||
|
return ind;
|
||||||
},
|
},
|
||||||
|
|
||||||
closeItem(item){
|
closeItem(item){
|
||||||
|
|
|
||||||
|
|
@ -34,16 +34,27 @@ const MimeTypes=new function(){
|
||||||
"format": formatdom
|
"format": formatdom
|
||||||
},
|
},
|
||||||
"css": {
|
"css": {
|
||||||
"format": formatcss
|
"format": formatcss,
|
||||||
|
"icon": "school"
|
||||||
|
},
|
||||||
|
"xquery": {
|
||||||
|
"icon": "spa"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
// return [{name:.. mode:..}..]
|
||||||
this.list=function(){
|
this.list=function(){
|
||||||
var that=this
|
var that=this
|
||||||
var h= Object.keys(this.contentType).map(
|
var h= Object.keys(this.contentType).map(
|
||||||
function(k){ return {name: k, mode: that.contentType[k].mode}}
|
function(k){ return {name: k, mode: that.contentType[k].mode}}
|
||||||
)
|
)
|
||||||
return h
|
return h
|
||||||
}
|
};
|
||||||
|
|
||||||
|
this.icon=function(mode){
|
||||||
|
var i= this.mode[mode] && this.mode[mode].icon
|
||||||
|
return i || "insert_drive_file"
|
||||||
|
};
|
||||||
|
|
||||||
this.install=function(Vue){
|
this.install=function(Vue){
|
||||||
Object.defineProperty(Vue.prototype, '$MimeTypes', {
|
Object.defineProperty(Vue.prototype, '$MimeTypes', {
|
||||||
get () { return MimeTypes }
|
get () { return MimeTypes }
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<!--
|
<!--
|
||||||
Show tab editor for tab list.
|
Show tab editor for tab list.
|
||||||
|
props
|
||||||
|
'edittabs' object
|
||||||
|
'current' integer current index 0 based
|
||||||
-->
|
-->
|
||||||
<template id="qd-tablist">
|
<template id="qd-tablist">
|
||||||
<v-menu left bottom :close-on-content-click="false" >
|
<v-menu left bottom :close-on-content-click="false" >
|
||||||
|
|
@ -30,12 +33,12 @@
|
||||||
avatar dense ripple
|
avatar dense ripple
|
||||||
@click="setItem(index)" :inactive="index == current"
|
@click="setItem(index)" :inactive="index == current"
|
||||||
>
|
>
|
||||||
<v-list-tile-avatar>
|
<v-list-tile-avatar :title="edittabs.items[index].contentType">
|
||||||
<v-icon v-if="index == current">check_circle</v-icon>
|
<v-icon v-if="index == current">check_circle</v-icon>
|
||||||
<v-icon v-else>insert_drive_file</v-icon>
|
<v-icon v-else>insert_drive_file</v-icon>
|
||||||
</v-list-tile-avatar>
|
</v-list-tile-avatar>
|
||||||
|
|
||||||
<v-list-tile-content>
|
<v-list-tile-content :title="edittabs.items[index].url">
|
||||||
<v-list-tile-title>{{ edittabs.items[index].name }}</v-list-tile-title>
|
<v-list-tile-title>{{ edittabs.items[index].name }}</v-list-tile-title>
|
||||||
</v-list-tile-content>
|
</v-list-tile-content>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -74,11 +74,11 @@ sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|
||||||
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi
|
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi
|
||||||
ut aliquip ex ea commodo consequat.`},
|
ut aliquip ex ea commodo consequat.`},
|
||||||
|
|
||||||
{name:"Shopping.xq", id:"2", mode: "xquery" ,dirty: false,
|
{name:"shopping.xq", id:"2", mode: "xquery" ,dirty: false,
|
||||||
text:`let $a:=1 to 5
|
text:`let $a:=1 to 5
|
||||||
return $a `},
|
return $a `},
|
||||||
|
|
||||||
{name:"videos.xml", id:"3", mode:"xml",dirty: false, location: "xmldb:/vue-poc/aaa/bca/videos.xml",
|
{name:"videos.xml", id:"3", mode:"xml",dirty: false, uri: "xmldb:/vue-poc/aaa/bca/videos.xml",
|
||||||
text:`<foo version="1.0">
|
text:`<foo version="1.0">
|
||||||
<node>hello</node>
|
<node>hello</node>
|
||||||
</foo>`}
|
</foo>`}
|
||||||
|
|
|
||||||
|
|
@ -115,10 +115,11 @@
|
||||||
v-for="item in EditTabs.items"
|
v-for="item in EditTabs.items"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
ripple
|
ripple
|
||||||
|
:title="item.uri"
|
||||||
style="text-transform: none;text-align:left"
|
style="text-transform: none;text-align:left"
|
||||||
>
|
>
|
||||||
<v-avatar >
|
<v-avatar >
|
||||||
<v-icon size="16px">insert_drive_file</v-icon>
|
<v-icon :title="item.mode" >{{ $MimeTypes.icon(item.mode) }}</v-icon>
|
||||||
</v-avatar>
|
</v-avatar>
|
||||||
<span >{{ (item.dirty?"*":"") }}</span>
|
<span >{{ (item.dirty?"*":"") }}</span>
|
||||||
<span >{{ item.name }}</span>
|
<span >{{ item.name }}</span>
|
||||||
|
|
@ -136,7 +137,6 @@
|
||||||
v-for="item in EditTabs.items"
|
v-for="item in EditTabs.items"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
>
|
>
|
||||||
|
|
||||||
<v-card >
|
<v-card >
|
||||||
<div style="height:200px" ref="ace" v-resize="onResize" >
|
<div style="height:200px" ref="ace" v-resize="onResize" >
|
||||||
<v-flex xs12 fill-height >
|
<v-flex xs12 fill-height >
|
||||||
|
|
@ -171,8 +171,7 @@
|
||||||
|
|
||||||
methods:{
|
methods:{
|
||||||
add(){
|
add(){
|
||||||
var a=this.EditTabs.addItem({text:"hi "+ new Date()})
|
this.curIndex=this.EditTabs.addItem({text:"hi "+ new Date()})
|
||||||
this.curIndex=this.EditTabs.items.indexOf(a)
|
|
||||||
},
|
},
|
||||||
|
|
||||||
tabClose(item,index){
|
tabClose(item,index){
|
||||||
|
|
@ -230,7 +229,7 @@
|
||||||
var d=this.active.mode;
|
var d=this.active.mode;
|
||||||
var f=this.$MimeTypes.mode[d];
|
var f=this.$MimeTypes.mode[d];
|
||||||
var f=f && f.validate;
|
var f=f && f.validate;
|
||||||
alert("no validate yet");
|
this.curIndex=this.EditTabs.addItem({text:"validate: todo\n "+ this.curIndex +"\n" + new Date()})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -60,8 +60,9 @@
|
||||||
v-for="image in images"
|
v-for="image in images"
|
||||||
:key="image.name"
|
:key="image.name"
|
||||||
>
|
>
|
||||||
<v-card flat tile >
|
<v-card tile :elevation="2" :hover="true" color="grey lighten-3" >
|
||||||
<div :style="style(image)" v-bind:class="{ selcard: image.selected}"
|
<div :style="style(image)" v-bind:class="{ selcard: image.selected}"
|
||||||
|
|
||||||
@dblclick="go(image)" @click.prevent.stop="image.selected =! image.selected ">
|
@dblclick="go(image)" @click.prevent.stop="image.selected =! image.selected ">
|
||||||
<span v-if="image.keywords >0 ">#{{image.keywords}}</span>
|
<span v-if="image.keywords >0 ">#{{image.keywords}}</span>
|
||||||
<v-avatar icon small v-if="image.geo">
|
<v-avatar icon small v-if="image.geo">
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<template id="login">
|
<template id="login">
|
||||||
<v-layout>
|
<v-layout>
|
||||||
<v-flex xs12 sm6 offset-sm3>
|
<v-flex >
|
||||||
<v-card >
|
<v-card >
|
||||||
|
|
||||||
<v-card-title class="red">
|
<v-card-title class="red">
|
||||||
|
|
@ -9,42 +9,41 @@
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
|
|
||||||
<v-card-actions>
|
<v-card-actions>
|
||||||
|
<v-form v-model="valid" ref="form">
|
||||||
<v-text-field
|
<v-text-field
|
||||||
name="input-name"
|
label="Enter your user id "
|
||||||
label="User name"
|
|
||||||
hint="Enter your name"
|
|
||||||
v-model="name"
|
v-model="name"
|
||||||
|
:rules="nameRules"
|
||||||
required
|
required
|
||||||
></v-text-field>
|
></v-text-field>
|
||||||
</v-card-actions>
|
|
||||||
|
|
||||||
<v-card-actions>
|
|
||||||
<v-text-field
|
<v-text-field
|
||||||
name="input-password"
|
label="Enter your password"
|
||||||
label="Password"
|
|
||||||
hint="Enter your password"
|
|
||||||
v-model="password"
|
v-model="password"
|
||||||
|
min="8"
|
||||||
:append-icon="hidepass ? 'visibility' : 'visibility_off'"
|
:append-icon="hidepass ? 'visibility' : 'visibility_off'"
|
||||||
@click:append="() => (hidepass = !hidepass)"
|
@click:append="() => hidepass = !hidepass"
|
||||||
:type="hidepass ? 'password' : 'text'"
|
:type="hidepass ? 'password' : 'text'"
|
||||||
|
:rules="passwordRules"
|
||||||
|
counter
|
||||||
required
|
required
|
||||||
></v-text-field>
|
></v-text-field>
|
||||||
</v-card-actions>
|
|
||||||
|
|
||||||
<v-alert color="error" v-bind:value="showMessage">
|
|
||||||
{{message}}
|
|
||||||
</v-alert>
|
|
||||||
|
|
||||||
<v-card-actions>
|
|
||||||
<v-switch
|
<v-switch
|
||||||
label="Remember me" v-model="remember">
|
label="Remember me" v-model="remember">
|
||||||
</v-switch>
|
</v-switch>
|
||||||
|
<v-layout justify-space-between>
|
||||||
|
<v-spacer></v-spacer>
|
||||||
|
<v-btn @click="submit" :class=" { 'blue darken-4 white--text' : valid, disabled: !valid }">Login</v-btn>
|
||||||
|
|
||||||
|
</v-layout>
|
||||||
|
</v-form>
|
||||||
|
</v-card-actions>
|
||||||
|
<v-card-actions>
|
||||||
|
<a href="">Forgot Password</a>
|
||||||
|
<v-alert color="error" v-bind:value="showMessage">
|
||||||
|
{{message}}
|
||||||
|
</v-alert>
|
||||||
</v-card-actions>
|
</v-card-actions>
|
||||||
|
|
||||||
<v-card-actions >
|
|
||||||
<v-spacer></v-spacer>
|
|
||||||
<v-btn color="primary" @click="go()">Login</v-btn>
|
|
||||||
</v-card-actions>
|
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-flex>
|
</v-flex>
|
||||||
</v-layout>
|
</v-layout>
|
||||||
|
|
@ -53,9 +52,16 @@
|
||||||
<script>{
|
<script>{
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
hidepass: true,
|
valid: false,
|
||||||
name:'',
|
|
||||||
password: '',
|
password: '',
|
||||||
|
passwordRules: [
|
||||||
|
(v) => !!v || 'Password is required',
|
||||||
|
],
|
||||||
|
name: '',
|
||||||
|
nameRules: [
|
||||||
|
(v) => !!v || 'Name is required'
|
||||||
|
],
|
||||||
|
hidepass: true,
|
||||||
remember: false,
|
remember: false,
|
||||||
redirect: this.$route.query.redirect,
|
redirect: this.$route.query.redirect,
|
||||||
message:"",
|
message:"",
|
||||||
|
|
@ -63,6 +69,14 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
|
submit () {
|
||||||
|
if (this.$refs.form.validate()) {
|
||||||
|
this.go()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
clear () {
|
||||||
|
this.$refs.form.reset()
|
||||||
|
},
|
||||||
go () {
|
go () {
|
||||||
this.hidepass=true
|
this.hidepass=true
|
||||||
this.showMessage=false
|
this.showMessage=false
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,27 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<template id="documentation">
|
<template id="documentation">
|
||||||
<v-container fluid>
|
<v-container fluid>
|
||||||
<h1>TODO</h1>
|
<v-toolbar dense >
|
||||||
<a href="/vue-poc/api/xqdoc" target="doc">list</a>
|
<v-toolbar-title>documentation</v-toolbar-title>
|
||||||
|
<v-spacer></v-spacer>
|
||||||
|
<a href="/vue-poc/api/xqdocjob" target="doc">json</a>
|
||||||
|
</v-toolbar>
|
||||||
|
|
||||||
|
<v-container fluid grid-list-md>
|
||||||
|
<v-layout row wrap >
|
||||||
|
<v-flex height="80px"
|
||||||
|
xs2
|
||||||
|
v-for="item in items"
|
||||||
|
:key="item.id"
|
||||||
|
>
|
||||||
|
<v-card :hover="true" >
|
||||||
|
<v-card-title>{{ item.id }}</v-card-title>
|
||||||
|
<v-card-text>{{ item.name }}</v-card-text>
|
||||||
|
</v-card>
|
||||||
|
</v-flex>
|
||||||
|
</v-layout>
|
||||||
|
</v-container>
|
||||||
|
|
||||||
</v-container>
|
</v-container>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -15,9 +34,9 @@
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
get() {
|
get() {
|
||||||
HTTP.get('xqdoc')
|
HTTP.get('xqdocjob')
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
this.items = res.data.items;
|
this.items = res.data;
|
||||||
console.log("items",this.items)
|
console.log("items",this.items)
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ module namespace j = 'quodatum.test.xqdoc';
|
||||||
: job list
|
: job list
|
||||||
:)
|
:)
|
||||||
declare
|
declare
|
||||||
%rest:GET %rest:path("/vue-poc/api/xqdoc")
|
%rest:GET %rest:path("/vue-poc/api/xqdocjob")
|
||||||
%output:method("json")
|
%output:method("json")
|
||||||
function j:list()
|
function j:list()
|
||||||
as element(json)
|
as element(json)
|
||||||
|
|
@ -24,7 +24,7 @@ as element(json)
|
||||||
: job info
|
: job info
|
||||||
:)
|
:)
|
||||||
declare
|
declare
|
||||||
%rest:GET %rest:path("/vue-poc/api/xqdoc/{$job}")
|
%rest:GET %rest:path("/vue-poc/api/xqdocjob/{$job}")
|
||||||
%output:method("json")
|
%output:method("json")
|
||||||
function j:job($job)
|
function j:job($job)
|
||||||
as element(json)
|
as element(json)
|
||||||
|
|
|
||||||
|
|
@ -11,9 +11,12 @@
|
||||||
<v-card-text>
|
<v-card-text>
|
||||||
<p>Read json data for 1st page for entity.</p>
|
<p>Read json data for 1st page for entity.</p>
|
||||||
<v-flex xs12 sm6>
|
<v-flex xs12 sm6>
|
||||||
<v-text-field v-model="url"
|
<v-combobox
|
||||||
label="url"
|
v-model="url"
|
||||||
></v-text-field>
|
:items="urls"
|
||||||
|
label="Select target"
|
||||||
|
></v-combobox>
|
||||||
|
|
||||||
</v-flex>
|
</v-flex>
|
||||||
|
|
||||||
<table class="v-table">
|
<table class="v-table">
|
||||||
|
|
@ -82,6 +85,7 @@
|
||||||
getValues: new perfStat(),
|
getValues: new perfStat(),
|
||||||
repeat: {get:false},
|
repeat: {get:false},
|
||||||
url: "data/entity",
|
url: "data/entity",
|
||||||
|
urls: ["data/entity","data/taskhistory"],
|
||||||
counter: 0,
|
counter: 0,
|
||||||
result: null
|
result: null
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<v-btn @click="get()" >
|
<v-btn @click="get()" >
|
||||||
Read <v-icon right>compare_arrows</v-icon>
|
Read Db<v-icon right>compare_arrows</v-icon>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
|
|
@ -62,7 +62,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<v-btn @click="update()" >
|
<v-btn @click="update()" >
|
||||||
Write <v-icon right>compare_arrows</v-icon>
|
Write Db<v-icon right>compare_arrows</v-icon>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
|
|
@ -103,9 +103,11 @@
|
||||||
<script>{
|
<script>{
|
||||||
data: function(){
|
data: function(){
|
||||||
return {
|
return {
|
||||||
|
nothingValues: new perfStat(),
|
||||||
|
staticValues: new perfStat(),
|
||||||
getValues: new perfStat(),
|
getValues: new perfStat(),
|
||||||
postValues: new perfStat(),
|
postValues: new perfStat(),
|
||||||
repeat: {get:false,post:false},
|
repeat: {get: false, post: false, staticx: false, nothing: false},
|
||||||
counter: "(unread)"
|
counter: "(unread)"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -135,6 +137,18 @@
|
||||||
this.get(); //does this leak??
|
this.get(); //does this leak??
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
nothing () {
|
||||||
|
var _start = performance.now();
|
||||||
|
HTTP.post("nothing",axios_json)
|
||||||
|
.then(r=>{
|
||||||
|
var elapsed=Math.floor(performance.now() - _start);
|
||||||
|
this.counter=r.data
|
||||||
|
Object.assign(this.nothingValues,this.nothingValues.log(elapsed))
|
||||||
|
if(this.repeat.nothing){
|
||||||
|
this.nothing(); //does this leak??
|
||||||
|
}
|
||||||
|
})
|
||||||
},
|
},
|
||||||
gchange(v){
|
gchange(v){
|
||||||
if(v)this.get()
|
if(v)this.get()
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
module namespace ping = 'quodatum.test.ping';
|
module namespace ping = 'quodatum.test.ping';
|
||||||
declare variable $ping:db as xs:string:="vue-poc";
|
declare variable $ping:db as xs:string:="vue-poc";
|
||||||
declare variable $ping:state as element(state):=db:open($ping:db,"/state.xml")/state;
|
declare %basex:lazy variable $ping:state as element(state):=db:open($ping:db,"/state.xml")/state;
|
||||||
|
|
||||||
(:~
|
(:~
|
||||||
: ping incr counter
|
: ping incr counter
|
||||||
|
|
@ -24,3 +24,14 @@ function ping:dostate()
|
||||||
{
|
{
|
||||||
$ping:state/ping
|
$ping:state/ping
|
||||||
};
|
};
|
||||||
|
|
||||||
|
(:~
|
||||||
|
: ping fastest no work
|
||||||
|
:)
|
||||||
|
declare
|
||||||
|
%output:method("text")
|
||||||
|
%rest:GET %rest:path("/vue-poc/api/nodb")
|
||||||
|
function ping:nodb()
|
||||||
|
{
|
||||||
|
"ok"
|
||||||
|
};
|
||||||
|
|
@ -31,7 +31,7 @@
|
||||||
</v-expansion-panel>
|
</v-expansion-panel>
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
</v-card>
|
</v-card>
|
||||||
<v-snackbar v-model="true" >Settings are currently only stored locally in the browser, using <code>localstorage</code></v-snackbar>
|
<v-snackbar :value="true" >Settings are currently only stored locally in the browser, using <code>localstorage</code></v-snackbar>
|
||||||
</v-container>
|
</v-container>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -65,6 +65,7 @@
|
||||||
console.log("settings")
|
console.log("settings")
|
||||||
Settings.keys()
|
Settings.keys()
|
||||||
.then( v =>{
|
.then( v =>{
|
||||||
|
console.log("keys: ",v)
|
||||||
this.keys=v
|
this.keys=v
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ function vue-rest:task($task)
|
||||||
};
|
};
|
||||||
|
|
||||||
(:~
|
(:~
|
||||||
: task run
|
: Run the named task and log history
|
||||||
:)
|
:)
|
||||||
declare
|
declare
|
||||||
%rest:POST %rest:path("/vue-poc/api/tasks/{$task}")
|
%rest:POST %rest:path("/vue-poc/api/tasks/{$task}")
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
<tasks>
|
<tasks>
|
||||||
<task name="model" url="model.build/tx-model.xq">
|
<task name="model" url="model.build/tx-model.xq">
|
||||||
<title>Generate model.gen.xqm</title>
|
<title>Generate model.gen.xqm</title>
|
||||||
<description> Generate
|
<description>
|
||||||
<code>model.gen.xqm</code></description>
|
Generate
|
||||||
|
<code>model.gen.xqm</code>
|
||||||
|
</description>
|
||||||
</task>
|
</task>
|
||||||
|
|
||||||
<task name="import" url="task/tx-dbimport.xq">
|
<task name="import" url="task/tx-dbimport.xq">
|
||||||
|
|
@ -10,19 +12,10 @@
|
||||||
<description>Load files into database</description>
|
<description>Load files into database</description>
|
||||||
</task>
|
</task>
|
||||||
|
|
||||||
<task name="xqdoc" url="xqdoc/tx-xqdoc.xq">
|
|
||||||
<title>XQdoc</title>
|
|
||||||
<description>Generate documentation for folder</description>
|
|
||||||
</task>
|
|
||||||
|
|
||||||
<task name="xqdoc2" url="xqdoc/tx-xqdoc2.xq">
|
<task name="xqdoc2" url="xqdoc/tx-xqdoc2.xq">
|
||||||
<title>XQdoc 2</title>
|
<title>XQdoc 2</title>
|
||||||
<description>Generate xquery documentation for folder. Using standard task.</description>
|
<description>Generate xquery documentation for folder. Using standard
|
||||||
</task>
|
task.</description>
|
||||||
|
|
||||||
<task name="xqdoc-rest" url="xqdoc/tx-xqrest.xq">
|
|
||||||
<title>XQdoc rest</title>
|
|
||||||
<description>XQdoc...</description>
|
|
||||||
</task>
|
</task>
|
||||||
|
|
||||||
<task name="xqdoc-rest2" url="xqdoc/tx-xqrest2.xq">
|
<task name="xqdoc-rest2" url="xqdoc/tx-xqrest2.xq">
|
||||||
|
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
(:~
|
|
||||||
: Generate html for for XQuery sources
|
|
||||||
: @return info about the run (json format)
|
|
||||||
:)
|
|
||||||
import module namespace fw="quodatum:file.walker";
|
|
||||||
import module namespace xqd = 'quodatum:build.xqdoc' at "../../../lib/xqdoc/xqdoc-proj.xqm";
|
|
||||||
declare namespace c="http://www.w3.org/ns/xproc-step";
|
|
||||||
|
|
||||||
(:~ URL of the root folder to document
|
|
||||||
: @default C:/Users/andy/git/vue-poc/src/vue-poc
|
|
||||||
:)
|
|
||||||
declare variable $efolder as xs:anyURI external
|
|
||||||
:=xs:anyURI("C:/Users/andy/git/vue-poc/src/vue-poc");
|
|
||||||
|
|
||||||
(:~ URL of the schema to use
|
|
||||||
: @default C:/tmp/xqdoc/
|
|
||||||
:)
|
|
||||||
declare variable $target as xs:anyURI external
|
|
||||||
:=xs:anyURI("C:/tmp/xqdoc/");
|
|
||||||
|
|
||||||
declare variable $state as element(state):=db:open("vue-poc","/state.xml")/state;
|
|
||||||
|
|
||||||
let $project:=tokenize($efolder,"[/\\]")[last()]=>trace("xqdoc: ")
|
|
||||||
let $files:= fw:directory-list($efolder,map{"include-filter":".*\.xqm"})
|
|
||||||
let $id:=$state/last-id
|
|
||||||
let $opts:=map{
|
|
||||||
"project": $project,
|
|
||||||
"id": $id/string()
|
|
||||||
}
|
|
||||||
let $op:=xqd:save-xq($files,$target,$opts)
|
|
||||||
let $result:=<json type="object">
|
|
||||||
<extra>hello</extra>
|
|
||||||
<msg> {$target}, {count($files//c:file)} files processed.</msg>
|
|
||||||
<id>{$id/string()}</id>
|
|
||||||
</json>
|
|
||||||
return (
|
|
||||||
update:output($result),
|
|
||||||
replace value of node $id with 1+$state/last-id
|
|
||||||
)
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// generated 2019-01-23T22:04:55.22Z
|
// generated 2019-02-05T23:14:56.207Z
|
||||||
|
|
||||||
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/components/qd-autoheight.vue
|
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/components/qd-autoheight.vue
|
||||||
Vue.component('qd-autoheight',{template:`
|
Vue.component('qd-autoheight',{template:`
|
||||||
|
|
@ -475,12 +475,12 @@ Vue.component('qd-tablist',{template:`
|
||||||
<v-card-text>
|
<v-card-text>
|
||||||
<v-list style="height: 300px; overflow-y: auto;">
|
<v-list style="height: 300px; overflow-y: auto;">
|
||||||
<v-list-tile v-for="index in edittabs.sorted(q)" :key="index" avatar dense ripple @click="setItem(index)" :inactive="index == current">
|
<v-list-tile v-for="index in edittabs.sorted(q)" :key="index" avatar dense ripple @click="setItem(index)" :inactive="index == current">
|
||||||
<v-list-tile-avatar>
|
<v-list-tile-avatar :title="edittabs.items[index].contentType">
|
||||||
<v-icon v-if="index == current">check_circle</v-icon>
|
<v-icon v-if="index == current">check_circle</v-icon>
|
||||||
<v-icon v-else>insert_drive_file</v-icon>
|
<v-icon v-else>insert_drive_file</v-icon>
|
||||||
</v-list-tile-avatar>
|
</v-list-tile-avatar>
|
||||||
|
|
||||||
<v-list-tile-content>
|
<v-list-tile-content :title="edittabs.items[index].url">
|
||||||
<v-list-tile-title>{{ edittabs.items[index].name }}</v-list-tile-title>
|
<v-list-tile-title>{{ edittabs.items[index].name }}</v-list-tile-title>
|
||||||
</v-list-tile-content>
|
</v-list-tile-content>
|
||||||
|
|
||||||
|
|
@ -1135,7 +1135,6 @@ const AceExtras={
|
||||||
caption: "archive:create#2",
|
caption: "archive:create#2",
|
||||||
snippet: "archive:create(${1:entries}, ${2:contents})",
|
snippet: "archive:create(${1:entries}, ${2:contents})",
|
||||||
score: 100,
|
score: 100,
|
||||||
content: "this is a test completer",
|
|
||||||
meta: "archive",
|
meta: "archive",
|
||||||
completer: this
|
completer: this
|
||||||
}, {
|
}, {
|
||||||
|
|
@ -1193,12 +1192,12 @@ Vue.use(Auth);
|
||||||
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/components/EditTabs.js
|
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/components/EditTabs.js
|
||||||
//Manage array of text sources used for:edit tabs
|
//Manage array of text sources used for:edit tabs
|
||||||
// item{
|
// item{
|
||||||
// name:
|
// name: file name
|
||||||
// contentType: "text/xml",
|
// contentType: "text/xml",
|
||||||
// mode: "xml",
|
// mode: "xml",
|
||||||
// text:
|
// text:
|
||||||
// id: ids have the form "Tn"
|
// id: ids have the form "Tn"
|
||||||
// url: path to save to
|
// uri: path to save to
|
||||||
// requires: Settings,HTTP
|
// requires: Settings,HTTP
|
||||||
//
|
//
|
||||||
const GEditTabs={
|
const GEditTabs={
|
||||||
|
|
@ -1213,20 +1212,22 @@ const GEditTabs={
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
// add tab return index
|
||||||
addItem(tab){
|
addItem(tab){
|
||||||
//console.log("new: ",tab);
|
//console.log("new: ",tab);
|
||||||
var def={name: "AA"+this.nextId,
|
var def={name: "AA"+this.nextId,
|
||||||
contentType: "text/xml",
|
contentType: "text/xml",
|
||||||
mode: "xml",
|
mode: "xml",
|
||||||
text: "<foo>" +this.nextId +"</foo>",
|
text: "<foo>" +this.nextId +"</foo>",
|
||||||
url: null
|
uri: null
|
||||||
};
|
};
|
||||||
var etab = Object.assign(def,tab);
|
var etab = Object.assign(def,tab);
|
||||||
etab.id= "T" + this.nextId
|
etab.id= "T" + this.nextId
|
||||||
this.items.push (etab);
|
this.items.push (etab);
|
||||||
this.length++
|
this.length++
|
||||||
this.nextId++;
|
this.nextId++;
|
||||||
return etab;
|
var ind=this.items.indexOf(etab)
|
||||||
|
return ind;
|
||||||
},
|
},
|
||||||
|
|
||||||
closeItem(item){
|
closeItem(item){
|
||||||
|
|
@ -1422,16 +1423,27 @@ const MimeTypes=new function(){
|
||||||
"format": formatdom
|
"format": formatdom
|
||||||
},
|
},
|
||||||
"css": {
|
"css": {
|
||||||
"format": formatcss
|
"format": formatcss,
|
||||||
|
"icon": "school"
|
||||||
|
},
|
||||||
|
"xquery": {
|
||||||
|
"icon": "spa"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
// return [{name:.. mode:..}..]
|
||||||
this.list=function(){
|
this.list=function(){
|
||||||
var that=this
|
var that=this
|
||||||
var h= Object.keys(this.contentType).map(
|
var h= Object.keys(this.contentType).map(
|
||||||
function(k){ return {name: k, mode: that.contentType[k].mode}}
|
function(k){ return {name: k, mode: that.contentType[k].mode}}
|
||||||
)
|
)
|
||||||
return h
|
return h
|
||||||
}
|
};
|
||||||
|
|
||||||
|
this.icon=function(mode){
|
||||||
|
var i= this.mode[mode] && this.mode[mode].icon
|
||||||
|
return i || "insert_drive_file"
|
||||||
|
};
|
||||||
|
|
||||||
this.install=function(Vue){
|
this.install=function(Vue){
|
||||||
Object.defineProperty(Vue.prototype, '$MimeTypes', {
|
Object.defineProperty(Vue.prototype, '$MimeTypes', {
|
||||||
get () { return MimeTypes }
|
get () { return MimeTypes }
|
||||||
|
|
@ -2752,9 +2764,9 @@ const Tabs=Vue.extend({template:`
|
||||||
<qd-tablist v-if="EditTabs" :edittabs="EditTabs" :current="curIndex" @selected="setItem">tab list</qd-tablist>
|
<qd-tablist v-if="EditTabs" :edittabs="EditTabs" :current="curIndex" @selected="setItem">tab list</qd-tablist>
|
||||||
|
|
||||||
<v-tabs v-model="curIndex" slot="extension">
|
<v-tabs v-model="curIndex" slot="extension">
|
||||||
<v-tab v-for="item in EditTabs.items" :key="item.id" ripple style="text-transform: none;text-align:left">
|
<v-tab v-for="item in EditTabs.items" :key="item.id" ripple :title="item.uri" style="text-transform: none;text-align:left">
|
||||||
<v-avatar>
|
<v-avatar>
|
||||||
<v-icon size="16px">insert_drive_file</v-icon>
|
<v-icon :title="item.mode">{{ $MimeTypes.icon(item.mode) }}</v-icon>
|
||||||
</v-avatar>
|
</v-avatar>
|
||||||
<span>{{ (item.dirty?"*":"") }}</span>
|
<span>{{ (item.dirty?"*":"") }}</span>
|
||||||
<span>{{ item.name }}</span>
|
<span>{{ item.name }}</span>
|
||||||
|
|
@ -2769,7 +2781,6 @@ const Tabs=Vue.extend({template:`
|
||||||
|
|
||||||
<v-tabs-items v-model="curIndex">
|
<v-tabs-items v-model="curIndex">
|
||||||
<v-tab-item v-for="item in EditTabs.items" :key="item.id">
|
<v-tab-item v-for="item in EditTabs.items" :key="item.id">
|
||||||
|
|
||||||
<v-card>
|
<v-card>
|
||||||
<div style="height:200px" ref="ace" v-resize="onResize">
|
<div style="height:200px" ref="ace" v-resize="onResize">
|
||||||
<v-flex xs12 fill-height>
|
<v-flex xs12 fill-height>
|
||||||
|
|
@ -2802,8 +2813,7 @@ const Tabs=Vue.extend({template:`
|
||||||
|
|
||||||
methods:{
|
methods:{
|
||||||
add(){
|
add(){
|
||||||
var a=this.EditTabs.addItem({text:"hi "+ new Date()})
|
this.curIndex=this.EditTabs.addItem({text:"hi "+ new Date()})
|
||||||
this.curIndex=this.EditTabs.items.indexOf(a)
|
|
||||||
},
|
},
|
||||||
|
|
||||||
tabClose(item,index){
|
tabClose(item,index){
|
||||||
|
|
@ -2861,7 +2871,7 @@ const Tabs=Vue.extend({template:`
|
||||||
var d=this.active.mode;
|
var d=this.active.mode;
|
||||||
var f=this.$MimeTypes.mode[d];
|
var f=this.$MimeTypes.mode[d];
|
||||||
var f=f && f.validate;
|
var f=f && f.validate;
|
||||||
alert("no validate yet");
|
this.curIndex=this.EditTabs.addItem({text:"validate: todo\n "+ this.curIndex +"\n" + new Date()})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -3797,7 +3807,7 @@ const Images=Vue.extend({template:`
|
||||||
<v-container v-if="!busy" fluid grid-list-md>
|
<v-container v-if="!busy" fluid grid-list-md>
|
||||||
<v-layout row wrap v-touch="{ left: () => pageNext(), right: () => pageBack()}">
|
<v-layout row wrap v-touch="{ left: () => pageNext(), right: () => pageBack()}">
|
||||||
<v-flex height="80px" xs2 v-for="image in images" :key="image.name">
|
<v-flex height="80px" xs2 v-for="image in images" :key="image.name">
|
||||||
<v-card flat tile>
|
<v-card tile :elevation="2" :hover="true" color="grey lighten-3">
|
||||||
<div :style="style(image)" v-bind:class="{ selcard: image.selected}" @dblclick="go(image)" @click.prevent.stop="image.selected =! image.selected ">
|
<div :style="style(image)" v-bind:class="{ selcard: image.selected}" @dblclick="go(image)" @click.prevent.stop="image.selected =! image.selected ">
|
||||||
<span v-if="image.keywords >0 ">#{{image.keywords}}</span>
|
<span v-if="image.keywords >0 ">#{{image.keywords}}</span>
|
||||||
<v-avatar icon small v-if="image.geo">
|
<v-avatar icon small v-if="image.geo">
|
||||||
|
|
@ -4512,7 +4522,7 @@ const Jobs=Vue.extend({template:`
|
||||||
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/features/login/login.vue
|
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/features/login/login.vue
|
||||||
const Login=Vue.extend({template:`
|
const Login=Vue.extend({template:`
|
||||||
<v-layout>
|
<v-layout>
|
||||||
<v-flex xs12 sm6 offset-sm3>
|
<v-flex>
|
||||||
<v-card>
|
<v-card>
|
||||||
|
|
||||||
<v-card-title class="red">
|
<v-card-title class="red">
|
||||||
|
|
@ -4520,26 +4530,25 @@ const Login=Vue.extend({template:`
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
|
|
||||||
<v-card-actions>
|
<v-card-actions>
|
||||||
<v-text-field name="input-name" label="User name" hint="Enter your name" v-model="name" required></v-text-field>
|
<v-form v-model="valid" ref="form">
|
||||||
</v-card-actions>
|
<v-text-field label="Enter your user id " v-model="name" :rules="nameRules" required></v-text-field>
|
||||||
|
<v-text-field label="Enter your password" v-model="password" min="8" :append-icon="hidepass ? 'visibility' : 'visibility_off'" @click:append="() => hidepass = !hidepass" :type="hidepass ? 'password' : 'text'" :rules="passwordRules" counter required></v-text-field>
|
||||||
|
<v-switch label="Remember me" v-model="remember">
|
||||||
|
</v-switch>
|
||||||
|
<v-layout justify-space-between>
|
||||||
|
<v-spacer></v-spacer>
|
||||||
|
<v-btn @click="submit" :class=" { 'blue darken-4 white--text' : valid, disabled: !valid }">Login</v-btn>
|
||||||
|
|
||||||
|
</v-layout>
|
||||||
|
</v-form>
|
||||||
|
</v-card-actions>
|
||||||
<v-card-actions>
|
<v-card-actions>
|
||||||
<v-text-field name="input-password" label="Password" hint="Enter your password" v-model="password" :append-icon="hidepass ? 'visibility' : 'visibility_off'" @click:append="() => (hidepass = !hidepass)" :type="hidepass ? 'password' : 'text'" required></v-text-field>
|
<a href>Forgot Password</a>
|
||||||
</v-card-actions>
|
|
||||||
|
|
||||||
<v-alert color="error" v-bind:value="showMessage">
|
<v-alert color="error" v-bind:value="showMessage">
|
||||||
{{message}}
|
{{message}}
|
||||||
</v-alert>
|
</v-alert>
|
||||||
|
|
||||||
<v-card-actions>
|
|
||||||
<v-switch label="Remember me" v-model="remember">
|
|
||||||
</v-switch>
|
|
||||||
</v-card-actions>
|
</v-card-actions>
|
||||||
|
|
||||||
<v-card-actions>
|
|
||||||
<v-spacer></v-spacer>
|
|
||||||
<v-btn color="primary" @click="go()">Login</v-btn>
|
|
||||||
</v-card-actions>
|
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-flex>
|
</v-flex>
|
||||||
</v-layout>
|
</v-layout>
|
||||||
|
|
@ -4547,9 +4556,16 @@ const Login=Vue.extend({template:`
|
||||||
|
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
hidepass: true,
|
valid: false,
|
||||||
name:'',
|
|
||||||
password: '',
|
password: '',
|
||||||
|
passwordRules: [
|
||||||
|
(v) => !!v || 'Password is required',
|
||||||
|
],
|
||||||
|
name: '',
|
||||||
|
nameRules: [
|
||||||
|
(v) => !!v || 'Name is required'
|
||||||
|
],
|
||||||
|
hidepass: true,
|
||||||
remember: false,
|
remember: false,
|
||||||
redirect: this.$route.query.redirect,
|
redirect: this.$route.query.redirect,
|
||||||
message:"",
|
message:"",
|
||||||
|
|
@ -4557,6 +4573,14 @@ const Login=Vue.extend({template:`
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
|
submit () {
|
||||||
|
if (this.$refs.form.validate()) {
|
||||||
|
this.go()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
clear () {
|
||||||
|
this.$refs.form.reset()
|
||||||
|
},
|
||||||
go () {
|
go () {
|
||||||
this.hidepass=true
|
this.hidepass=true
|
||||||
this.showMessage=false
|
this.showMessage=false
|
||||||
|
|
@ -4621,8 +4645,23 @@ const Leaflet=Vue.extend({template:`
|
||||||
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/features/model/documentation.vue
|
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/features/model/documentation.vue
|
||||||
const Documentation=Vue.extend({template:`
|
const Documentation=Vue.extend({template:`
|
||||||
<v-container fluid>
|
<v-container fluid>
|
||||||
<h1>TODO</h1>
|
<v-toolbar dense>
|
||||||
<a href="/vue-poc/api/xqdoc" target="doc">list</a>
|
<v-toolbar-title>documentation</v-toolbar-title>
|
||||||
|
<v-spacer></v-spacer>
|
||||||
|
<a href="/vue-poc/api/xqdocjob" target="doc">list</a>
|
||||||
|
</v-toolbar>
|
||||||
|
|
||||||
|
<v-container fluid grid-list-md>
|
||||||
|
<v-layout row wrap>
|
||||||
|
<v-flex height="80px" xs2 v-for="item in items" :key="item.id">
|
||||||
|
<v-card :hover="true">
|
||||||
|
<v-card-title>{{ item.id }}</v-card-title>
|
||||||
|
<v-card-text>{{ item.name }}</v-card-text>
|
||||||
|
</v-card>
|
||||||
|
</v-flex>
|
||||||
|
</v-layout>
|
||||||
|
</v-container>
|
||||||
|
|
||||||
</v-container>
|
</v-container>
|
||||||
`,
|
`,
|
||||||
|
|
||||||
|
|
@ -4634,9 +4673,9 @@ const Documentation=Vue.extend({template:`
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
get() {
|
get() {
|
||||||
HTTP.get('xqdoc')
|
HTTP.get('xqdocjob')
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
this.items = res.data.items;
|
this.items = res.data;
|
||||||
console.log("items",this.items)
|
console.log("items",this.items)
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
@ -5555,7 +5594,8 @@ const Dicetest=Vue.extend({template:`
|
||||||
<v-card-text>
|
<v-card-text>
|
||||||
<p>Read json data for 1st page for entity.</p>
|
<p>Read json data for 1st page for entity.</p>
|
||||||
<v-flex xs12 sm6>
|
<v-flex xs12 sm6>
|
||||||
<v-text-field v-model="url" label="url"></v-text-field>
|
<v-combobox v-model="url" :items="urls" label="Select target"></v-combobox>
|
||||||
|
|
||||||
</v-flex>
|
</v-flex>
|
||||||
|
|
||||||
<table class="v-table">
|
<table class="v-table">
|
||||||
|
|
@ -5623,6 +5663,7 @@ const Dicetest=Vue.extend({template:`
|
||||||
getValues: new perfStat(),
|
getValues: new perfStat(),
|
||||||
repeat: {get:false},
|
repeat: {get:false},
|
||||||
url: "data/entity",
|
url: "data/entity",
|
||||||
|
urls: ["data/entity","data/taskhistory"],
|
||||||
counter: 0,
|
counter: 0,
|
||||||
result: null
|
result: null
|
||||||
}
|
}
|
||||||
|
|
@ -5697,7 +5738,7 @@ const Ping=Vue.extend({template:`
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<v-btn @click="get()">
|
<v-btn @click="get()">
|
||||||
Read <v-icon right>compare_arrows</v-icon>
|
Read Db<v-icon right>compare_arrows</v-icon>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
|
|
@ -5730,7 +5771,7 @@ const Ping=Vue.extend({template:`
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<v-btn @click="update()">
|
<v-btn @click="update()">
|
||||||
Write <v-icon right>compare_arrows</v-icon>
|
Write Db<v-icon right>compare_arrows</v-icon>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
|
|
@ -5770,9 +5811,11 @@ const Ping=Vue.extend({template:`
|
||||||
|
|
||||||
data: function(){
|
data: function(){
|
||||||
return {
|
return {
|
||||||
|
nothingValues: new perfStat(),
|
||||||
|
staticValues: new perfStat(),
|
||||||
getValues: new perfStat(),
|
getValues: new perfStat(),
|
||||||
postValues: new perfStat(),
|
postValues: new perfStat(),
|
||||||
repeat: {get:false,post:false},
|
repeat: {get: false, post: false, staticx: false, nothing: false},
|
||||||
counter: "(unread)"
|
counter: "(unread)"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -5802,6 +5845,18 @@ const Ping=Vue.extend({template:`
|
||||||
this.get(); //does this leak??
|
this.get(); //does this leak??
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
nothing () {
|
||||||
|
var _start = performance.now();
|
||||||
|
HTTP.post("nothing",axios_json)
|
||||||
|
.then(r=>{
|
||||||
|
var elapsed=Math.floor(performance.now() - _start);
|
||||||
|
this.counter=r.data
|
||||||
|
Object.assign(this.nothingValues,this.nothingValues.log(elapsed))
|
||||||
|
if(this.repeat.nothing){
|
||||||
|
this.nothing(); //does this leak??
|
||||||
|
}
|
||||||
|
})
|
||||||
},
|
},
|
||||||
gchange(v){
|
gchange(v){
|
||||||
if(v)this.get()
|
if(v)this.get()
|
||||||
|
|
@ -6078,7 +6133,7 @@ const Keys=Vue.extend({template:`
|
||||||
</v-expansion-panel>
|
</v-expansion-panel>
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
</v-card>
|
</v-card>
|
||||||
<v-snackbar v-model="true">Settings are currently only stored locally in the browser, using <code>localstorage</code></v-snackbar>
|
<v-snackbar :value="true">Settings are currently only stored locally in the browser, using <code>localstorage</code></v-snackbar>
|
||||||
</v-container>
|
</v-container>
|
||||||
`,
|
`,
|
||||||
|
|
||||||
|
|
@ -6111,6 +6166,7 @@ const Keys=Vue.extend({template:`
|
||||||
console.log("settings")
|
console.log("settings")
|
||||||
Settings.keys()
|
Settings.keys()
|
||||||
.then( v =>{
|
.then( v =>{
|
||||||
|
console.log("keys: ",v)
|
||||||
this.keys=v
|
this.keys=v
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -7377,6 +7433,7 @@ const Vuepoc=Vue.extend({template:`
|
||||||
{href: '/namespace', text: 'Namespaces',icon: 'label' },
|
{href: '/namespace', text: 'Namespaces',icon: 'label' },
|
||||||
{href: '/entity', text: 'Entities',icon: 'redeem' },
|
{href: '/entity', text: 'Entities',icon: 'redeem' },
|
||||||
]},
|
]},
|
||||||
|
|
||||||
{
|
{
|
||||||
icon: 'cast_connected',
|
icon: 'cast_connected',
|
||||||
text: 'Server' ,
|
text: 'Server' ,
|
||||||
|
|
@ -7392,6 +7449,7 @@ const Vuepoc=Vue.extend({template:`
|
||||||
{href: '/server/dicetest',text: 'Dice performance',icon: 'update'},
|
{href: '/server/dicetest',text: 'Dice performance',icon: 'update'},
|
||||||
{href: '/server/settings',text: 'Server settings',icon: 'settings_applications'}
|
{href: '/server/settings',text: 'Server settings',icon: 'settings_applications'}
|
||||||
]},
|
]},
|
||||||
|
|
||||||
{
|
{
|
||||||
icon: 'camera_roll',
|
icon: 'camera_roll',
|
||||||
text: 'Images' ,
|
text: 'Images' ,
|
||||||
|
|
@ -7405,6 +7463,7 @@ const Vuepoc=Vue.extend({template:`
|
||||||
{href: '/map',text: 'Map',icon: 'place'},
|
{href: '/map',text: 'Map',icon: 'place'},
|
||||||
{href: '/images/report',text: 'Reports',icon: 'report'}
|
{href: '/images/report',text: 'Reports',icon: 'report'}
|
||||||
]},
|
]},
|
||||||
|
|
||||||
{
|
{
|
||||||
icon: 'format_list_bulleted',
|
icon: 'format_list_bulleted',
|
||||||
text: 'Forms' ,
|
text: 'Forms' ,
|
||||||
|
|
@ -7604,11 +7663,11 @@ sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|
||||||
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi
|
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi
|
||||||
ut aliquip ex ea commodo consequat.`},
|
ut aliquip ex ea commodo consequat.`},
|
||||||
|
|
||||||
{name:"Shopping.xq", id:"2", mode: "xquery" ,dirty: false,
|
{name:"shopping.xq", id:"2", mode: "xquery" ,dirty: false,
|
||||||
text:`let $a:=1 to 5
|
text:`let $a:=1 to 5
|
||||||
return $a `},
|
return $a `},
|
||||||
|
|
||||||
{name:"videos.xml", id:"3", mode:"xml",dirty: false, location: "xmldb:/vue-poc/aaa/bca/videos.xml",
|
{name:"videos.xml", id:"3", mode:"xml",dirty: false, uri: "xmldb:/vue-poc/aaa/bca/videos.xml",
|
||||||
text:`<foo version="1.0">
|
text:`<foo version="1.0">
|
||||||
<node>hello</node>
|
<node>hello</node>
|
||||||
</foo>`}
|
</foo>`}
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
<link rel="shortcut icon" href="/vue-poc/ui/icon.png"/>
|
<link rel="shortcut icon" href="/vue-poc/ui/icon.png"/>
|
||||||
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic"/>
|
<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 rel="stylesheet" href="//fonts.googleapis.com/icon?family=Material+Icons"/>
|
||||||
<link rel="stylesheet" href="//unpkg.com/vuetify@1.4.3/dist/vuetify.min.css" type="text/css"/>
|
<link rel="stylesheet" href="//unpkg.com/vuetify@1.5.0/dist/vuetify.min.css" 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/@riophae/vue-treeselect@0.0.29/dist/vue-treeselect.min.css"/>
|
||||||
<link rel="stylesheet" href="/vue-poc/ui/prism/prism.css" rel="stylesheet" type="text/css"/>
|
<link rel="stylesheet" href="/vue-poc/ui/prism/prism.css" rel="stylesheet" type="text/css"/>
|
||||||
<link rel="stylesheet" href="//unpkg.com/leaflet@1.0.3/dist/leaflet.css"/>
|
<link rel="stylesheet" href="//unpkg.com/leaflet@1.0.3/dist/leaflet.css"/>
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div id="app">
|
<div id="app">
|
||||||
<h3><code>vue-poc</code> <small>(v0.3.151)</small> </h3>
|
<h3><code>vue-poc</code> <small>(v0.3.152)</small> </h3>
|
||||||
|
|
||||||
<div class="spinner">
|
<div class="spinner">
|
||||||
<div class="rect1"></div>
|
<div class="rect1"></div>
|
||||||
|
|
@ -37,7 +37,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/vue-router/3.0.1/vue-router.js" crossorigin="anonymous"></script>
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/axios/0.18.0/axios.js" crossorigin="anonymous"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/axios/0.18.0/axios.js" crossorigin="anonymous"></script>
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/qs/6.4.0/qs.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.4.3/dist/vuetify.min.js" crossorigin="anonymous"></script>
|
<script src="//unpkg.com/vuetify@1.5.0/dist/vuetify.min.js" crossorigin="anonymous"></script>
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.4.2/ace.js" crossorigin="anonymous"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.4.2/ace.js" crossorigin="anonymous"></script>
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.4.2/ext-language_tools.js" crossorigin="anonymous"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.4.2/ext-language_tools.js" crossorigin="anonymous"></script>
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.4.2/ext-linking.js" crossorigin="anonymous" charset="utf-8"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.4.2/ext-linking.js" crossorigin="anonymous" charset="utf-8"></script>
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue