-
- {{ currentItem }}
- add_circle
-
-
+ add_circle
+ {{ currentItem }} : {{ active && active.name }}
+
+ unused
+ {{ active && active.mode }}
+ {{ active && active.dirty }}
{{ items.length }}
@@ -16,6 +17,7 @@
@@ -27,13 +29,13 @@
insert_drive_file
- {{ item.name }}
+ {{ item.name }}
close
@@ -49,12 +51,13 @@
-
+
@@ -69,59 +72,84 @@
showadd: false,
nextId:4,
a1:"",
- currentItem: null,
+ currentItem: null, //href of current
+ active: null,
items: [
- {name:"web.txt", id:"1", mode:"text",
+ {name:"web.txt", id:"1", mode:"text", dirty: false,
text:"1 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."},
- {name:"Shopping.xq", id:"2", mode: "xquery" ,
+ {name:"Shopping.xq", id:"2", mode: "xquery" ,dirty: false,
text:"2 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."},
- {name:"videos.xml", id:"3", mode:"xml",
+ {name:"videos.xml", id:"3", mode:"xml",dirty: false,
text:"2 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."},
],
wrap: true,
- mode: "xquery",
aceSettings: {}
}
},
methods:{
tabClose(item){
- alert("close:"+ item.id);
+ if(item.dirty){
+ alert("save first")
+ }else{
+ var index=this.items.indexOf(item);
+ if (index > -1) {
+ this.items.splice(index, 1);
+ index=(index==0)?0:index-1;
+ this.currentItem=(this.items.length)?"T"+this.items[index].id : null;
+ }
+ }
},
setItem(v){
- //alert(v);
- this.currentItem=v;
+ this.currentItem="T"+v;
},
- addItem(){
- var tab={name: "AA"+this.nextId,
+ addItem(tab){
+ console.log("TABS: ",tab);
+ var def={name: "AA"+this.nextId,
id: ""+this.nextId,
+ contentType: "text/xml",
mode: "xml",
text: "New text" +this.nextId
};
- this.items.push (tab);
- this.currentItem="tab-" + this.nextId
+ var etab = Object.assign(def,tab);
+ this.items.push (etab);
+ this.currentItem="T" + this.nextId
this.nextId++;
},
+ changeContent(val){
+ var item=this.active;
+ //console.log("change",val);
+
+ if (item.text !== val) {
+ item.text = val;
+ item.dirty=true;
+ }
+ },
onResize(){
var el=this.$refs["ace"];
for (e of el){
- console.log("top",e.offsetTop)
+ //console.log("top",e.offsetTop)
var h=Math.max(1,window.innerHeight - e.offsetTop -200)
- console.log("h",h)
+ // console.log("h",h)
e.style.height=h +"px";
}
},
},
-
+ watch:{
+ currentItem: function (val) {
+ this.active = this.items.find(e=> val=="T"+e.id)
+ }
+ },
computed:{
sorted(){
- return this.items.slice(0).sort()
+ return this.items.slice(0).sort((a,b) => a.name.localeCompare(b.name)) ;
}
},
+
beforeRouteEnter (to, from, next) {
settings.getItem('settings/ace')
.then( v =>{
diff --git a/src/vue-poc/static/app-gen.js b/src/vue-poc/static/app-gen.js
index 3d8a88a..ced5ebc 100644
--- a/src/vue-poc/static/app-gen.js
+++ b/src/vue-poc/static/app-gen.js
@@ -1,4 +1,4 @@
-// generated 2018-03-18T22:12:38.816Z
+// generated 2018-03-22T22:55:38.143Z
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/components/qd-confirm.vue
Vue.component('qd-confirm',{template:`
@@ -468,13 +468,12 @@ Vue.component('vp-selectpath',{template:`
Add a new tab
-
- Cancel
+
Content:
-
+
Empty
@@ -508,16 +507,16 @@ Vue.component('vp-selectpath',{template:`
-
-
+ Cancel
Add tab
- `,
+
+ `,
props: {
frmfav: Boolean
@@ -535,7 +534,11 @@ Vue.component('vp-selectpath',{template:`
},
favorite(){
- this.$emit('selectpath', {type:this.type})
+ this.$emit('selectpath', {
+ type:this.type,
+ name: "doc" + moment().format("YYYY-MM-DDThh:mm:ss") ,
+ text:"Some text"
+ })
}
}
}
@@ -1141,8 +1144,8 @@ const Files=Vue.extend({template:`
const History=Vue.extend({template:`
-
- History
+ History
+
@@ -1153,7 +1156,7 @@ const History=Vue.extend({template:`
-
+
`,
@@ -1494,11 +1497,12 @@ const Edit=Vue.extend({template:`
const Tabs=Vue.extend({template:`
-
- {{ currentItem }}
- add_circle
-
-
+ add_circle
+ {{ currentItem }} : {{ active && active.name }}
+
+ unused
+ {{ active && active.mode }}
+ {{ active && active.dirty }}
{{ items.length }}
@@ -1506,18 +1510,18 @@ const Tabs=Vue.extend({template:`
-
+
-
+
insert_drive_file
- {{ item.name }}
+ {{ item.name }}
close
@@ -1530,11 +1534,11 @@ const Tabs=Vue.extend({template:`
-
+
-
+
@@ -1548,59 +1552,84 @@ const Tabs=Vue.extend({template:`
showadd: false,
nextId:4,
a1:"",
- currentItem: null,
+ currentItem: null, //href of current
+ active: null,
items: [
- {name:"web.txt", id:"1", mode:"text",
+ {name:"web.txt", id:"1", mode:"text", dirty: false,
text:"1 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."},
- {name:"Shopping.xq", id:"2", mode: "xquery" ,
+ {name:"Shopping.xq", id:"2", mode: "xquery" ,dirty: false,
text:"2 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."},
- {name:"videos.xml", id:"3", mode:"xml",
+ {name:"videos.xml", id:"3", mode:"xml",dirty: false,
text:"2 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."},
],
wrap: true,
- mode: "xquery",
aceSettings: {}
}
},
methods:{
tabClose(item){
- alert("close:"+ item.id);
+ if(item.dirty){
+ alert("save first")
+ }else{
+ var index=this.items.indexOf(item);
+ if (index > -1) {
+ this.items.splice(index, 1);
+ index=(index==0)?0:index-1;
+ this.currentItem=(this.items.length)?"T"+this.items[index].id : null;
+ }
+ }
},
setItem(v){
- //alert(v);
- this.currentItem=v;
+ this.currentItem="T"+v;
},
- addItem(){
- var tab={name: "AA"+this.nextId,
+ addItem(tab){
+ console.log("TABS: ",tab);
+ var def={name: "AA"+this.nextId,
id: ""+this.nextId,
+ contentType: "text/xml",
mode: "xml",
text: "New text" +this.nextId
};
- this.items.push (tab);
- this.currentItem="tab-" + this.nextId
+ var etab = Object.assign(def,tab);
+ this.items.push (etab);
+ this.currentItem="T" + this.nextId
this.nextId++;
},
+ changeContent(val){
+ var item=this.active;
+ //console.log("change",val);
+
+ if (item.text !== val) {
+ item.text = val;
+ item.dirty=true;
+ }
+ },
onResize(){
var el=this.$refs["ace"];
for (e of el){
- console.log("top",e.offsetTop)
+ //console.log("top",e.offsetTop)
var h=Math.max(1,window.innerHeight - e.offsetTop -200)
- console.log("h",h)
+ // console.log("h",h)
e.style.height=h +"px";
}
},
},
-
+ watch:{
+ currentItem: function (val) {
+ this.active = this.items.find(e=> val=="T"+e.id)
+ }
+ },
computed:{
sorted(){
- return this.items.slice(0).sort()
+ return this.items.slice(0).sort((a,b) => a.name.localeCompare(b.name)) ;
}
},
+
beforeRouteEnter (to, from, next) {
settings.getItem('settings/ace')
.then( v =>{
diff --git a/src/vue-poc/static/app.html b/src/vue-poc/static/app.html
index e173d51..0aa897b 100644
--- a/src/vue-poc/static/app.html
+++ b/src/vue-poc/static/app.html
@@ -10,7 +10,7 @@
-
+
@@ -21,7 +21,7 @@
-
vue-poc
(v0.3.3)
+
vue-poc
(v0.3.4)
@@ -37,7 +37,7 @@
-
+
@@ -47,10 +47,12 @@
+
-
+
+