goby-database 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +43 -2
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -40,6 +40,9 @@ class Project{
|
|
|
40
40
|
get_class_id:this.db.prepare(`SELECT id FROM system_classlist WHERE name = ?`),
|
|
41
41
|
get_all_classes:this.db.prepare(`SELECT id, name, metadata FROM system_classlist`),
|
|
42
42
|
save_class_meta:this.db.prepare(`UPDATE system_classlist set metadata = ? WHERE id = ?`),
|
|
43
|
+
update_window:this.db.prepare(`UPDATE system_windows set open = @open, type=@type, metadata = @meta WHERE id = @id`),
|
|
44
|
+
create_window: this.db.prepare(`INSERT INTO system_windows (type,open, metadata) VALUES (@type, @open, @meta)`),
|
|
45
|
+
get_windows:this.db.prepare(`SELECT id, type, open, metadata FROM system_windows`),
|
|
43
46
|
match_junction:this.db.prepare(`SELECT id, side_a, side_b, metadata FROM system_junctionlist WHERE (side_a = @input_1 AND side_b = @input_2 ) OR ( side_a = @input_2 AND side_b = @input_1 )`),
|
|
44
47
|
fuzzy_match_junction:this.db.prepare(`SELECT id, side_a, side_b, metadata FROM system_junctionlist WHERE (side_a LIKE @input_1 AND side_b LIKE @input_2 ) OR ( side_a LIKE @input_2 AND side_b LIKE @input_1 )`)
|
|
45
48
|
}
|
|
@@ -59,6 +62,11 @@ class Project{
|
|
|
59
62
|
|
|
60
63
|
}
|
|
61
64
|
|
|
65
|
+
get_latest_id(table_name){
|
|
66
|
+
let id=this.db.prepare(`SELECT last_insert_rowid() AS id FROM ${table_name}`).get().id;
|
|
67
|
+
return id;
|
|
68
|
+
}
|
|
69
|
+
|
|
62
70
|
|
|
63
71
|
|
|
64
72
|
init(){
|
|
@@ -78,10 +86,14 @@ class Project{
|
|
|
78
86
|
this.create_table('system','windows',[
|
|
79
87
|
'id INTEGER NOT NULL PRIMARY KEY',
|
|
80
88
|
'type TEXT',
|
|
81
|
-
'open
|
|
89
|
+
'open INTEGER',
|
|
82
90
|
'metadata TEXT'
|
|
83
91
|
]);
|
|
84
|
-
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
// let home_id=this.action_config_window('home',0,{pos:[null,null], size:[540,400]})
|
|
95
|
+
// let hopper_id=this.action_config_window('hopper',0,{pos:[null,null], size:[300,400]})
|
|
96
|
+
// console.log('home:',home_id,'hopper:',hopper_id)
|
|
85
97
|
this.db.prepare(`INSERT INTO system_windows
|
|
86
98
|
(type, open, metadata)
|
|
87
99
|
VALUES
|
|
@@ -681,6 +693,35 @@ class Project{
|
|
|
681
693
|
return classes;
|
|
682
694
|
}
|
|
683
695
|
|
|
696
|
+
retrieve_windows(){
|
|
697
|
+
let windows=this.run.get_windows.all();
|
|
698
|
+
windows.map(a=>a.metadata=JSON.parse(a.metadata));
|
|
699
|
+
return windows;
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
action_config_window(type,open,meta={pos:[null,null], size:[1000,700]},id){
|
|
703
|
+
if(id!==undefined){
|
|
704
|
+
this.run.update_window.run({
|
|
705
|
+
id,
|
|
706
|
+
open,
|
|
707
|
+
type,
|
|
708
|
+
meta:JSON.stringify(meta)
|
|
709
|
+
})
|
|
710
|
+
}else{
|
|
711
|
+
|
|
712
|
+
this.run.create_window.run({
|
|
713
|
+
open,
|
|
714
|
+
type,
|
|
715
|
+
meta:JSON.stringify(meta)
|
|
716
|
+
})
|
|
717
|
+
let id=this.get_latest_id('system_windows')
|
|
718
|
+
return id;
|
|
719
|
+
}
|
|
720
|
+
// {pos:[null,null], size:[1000,700]}
|
|
721
|
+
|
|
722
|
+
// this.db.prepare(`INSERT INTO system_classlist (name, metadata) VALUES ('${name}','${JSON.stringify(table_meta)}')`)
|
|
723
|
+
}
|
|
724
|
+
|
|
684
725
|
|
|
685
726
|
}
|
|
686
727
|
|