ezframe 0.0.1 → 0.0.3
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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +11 -4
- data/app_template/asset/image/favicon.ico +0 -0
- data/app_template/asset/js/ezframe.js +288 -0
- data/app_template/config/generic.yml +3 -0
- data/app_template/config/materialize.yml +5 -0
- data/{example/chat → app_template}/config.ru +2 -10
- data/app_template/pages/basic.rb +5 -0
- data/exe/create_table.rb +1 -0
- data/exe/setup.rb +15 -0
- data/ezframe.gemspec +3 -4
- data/lib/ezframe/auth.rb +15 -12
- data/lib/ezframe/column_set.rb +68 -28
- data/lib/ezframe/column_type.rb +231 -68
- data/lib/ezframe/config.rb +4 -0
- data/lib/ezframe/controller.rb +20 -10
- data/lib/ezframe/database.rb +10 -3
- data/lib/ezframe/ht.rb +167 -0
- data/lib/ezframe/html.rb +28 -4
- data/lib/ezframe/japanese_utils.rb +40 -0
- data/lib/ezframe/{pages.rb → loader.rb} +3 -0
- data/lib/ezframe/materialize.rb +55 -20
- data/lib/ezframe/model.rb +0 -2
- data/lib/ezframe/page_base.rb +18 -12
- data/lib/ezframe/page_kit.rb +12 -33
- data/lib/ezframe/template.rb +20 -15
- data/lib/ezframe/util.rb +5 -0
- data/lib/ezframe/version.rb +1 -1
- data/lib/ezframe.rb +5 -4
- metadata +27 -70
- data/example/auth/Gemfile +0 -8
- data/example/auth/asset/css/materialize.min.css +0 -13
- data/example/auth/asset/js/common.js +0 -200
- data/example/auth/asset/js/htmlgen.js +0 -79
- data/example/auth/columns/user.yml +0 -12
- data/example/auth/config/view_conf.yml +0 -3
- data/example/auth/config.ru +0 -26
- data/example/auth/pages/app.rb +0 -61
- data/example/auth/template/base.html +0 -12
- data/example/chat/Gemfile +0 -9
- data/example/chat/asset/css/materialize.min.css +0 -13
- data/example/chat/asset/js/common.js +0 -200
- data/example/chat/asset/js/htmlgen.js +0 -79
- data/example/chat/columns/belong.yml +0 -6
- data/example/chat/columns/channel.yml +0 -3
- data/example/chat/columns/talk.yml +0 -6
- data/example/chat/columns/user.yml +0 -12
- data/example/chat/config/view_conf.yml +0 -3
- data/example/chat/pages/app.rb +0 -59
- data/example/chat/template/base.html +0 -12
- data/example/todo/Gemfile +0 -8
- data/example/todo/asset/css/datatable.css +0 -54
- data/example/todo/asset/css/materialize.min.css +0 -13
- data/example/todo/asset/js/common.js +0 -135
- data/example/todo/asset/js/datatable.js +0 -1814
- data/example/todo/asset/js/htmlgen.js +0 -79
- data/example/todo/asset/js/init.js +0 -3
- data/example/todo/asset/js/materialize.min.js +0 -6
- data/example/todo/asset/js/mydatatable.js +0 -9
- data/example/todo/asset/js/mymaterialize.js +0 -22
- data/example/todo/columns/todo.yml +0 -9
- data/example/todo/config/view_conf.yml +0 -3
- data/example/todo/config.ru +0 -15
- data/example/todo/pages/app.rb +0 -93
- data/example/todo/template/base.html +0 -12
- data/exe/myrackup +0 -5
- data/lib/ezframe/hthash.rb +0 -116
@@ -1,135 +0,0 @@
|
|
1
|
-
function add_event(obj) {
|
2
|
-
var elems = obj.querySelectorAll('[event]')
|
3
|
-
if (elems) {
|
4
|
-
console.log("events=" + elems.length)
|
5
|
-
for (var i = 0; i < elems.length; i++) {
|
6
|
-
var elem = elems[i]
|
7
|
-
var event_s = elem.getAttribute("event")
|
8
|
-
var event = parse_event(event_s)
|
9
|
-
// console.log(JSON.stringify(event))
|
10
|
-
elem.addEventListener(event.on, function () {
|
11
|
-
execute_event(this)
|
12
|
-
})
|
13
|
-
}
|
14
|
-
}
|
15
|
-
M.AutoInit();
|
16
|
-
initialize_materialize_tabs()
|
17
|
-
// init_datatable(document.querySelector("#main-table table"))
|
18
|
-
}
|
19
|
-
|
20
|
-
function parse_event(event) {
|
21
|
-
var ev = {}
|
22
|
-
var a = event.split(":")
|
23
|
-
for (var i = 0; i < a.length; i++) {
|
24
|
-
if (a[i].indexOf("=") > 0) {
|
25
|
-
var b = a[i].split("=")
|
26
|
-
var key = b[0]
|
27
|
-
var value = b[1]
|
28
|
-
var cur_value = ev[key]
|
29
|
-
if (cur_value) {
|
30
|
-
if (Array.isArray(cur_value)) {
|
31
|
-
cur_value.push(value)
|
32
|
-
} else {
|
33
|
-
ev[key] = [ev[key], value]
|
34
|
-
}
|
35
|
-
} else {
|
36
|
-
ev[key] = value
|
37
|
-
}
|
38
|
-
}
|
39
|
-
}
|
40
|
-
if (!ev.url) {
|
41
|
-
ev.url = location.pathname
|
42
|
-
}
|
43
|
-
return ev
|
44
|
-
}
|
45
|
-
|
46
|
-
function execute_event(obj) {
|
47
|
-
var event_s = obj.getAttribute("event")
|
48
|
-
var event = parse_event(event_s)
|
49
|
-
with_attr(event, obj)
|
50
|
-
post_values(event, obj)
|
51
|
-
}
|
52
|
-
|
53
|
-
function with_attr(event, obj) {
|
54
|
-
if (!event.with) {
|
55
|
-
return null
|
56
|
-
}
|
57
|
-
var with_s = event.with
|
58
|
-
if (event.with == "form") {
|
59
|
-
var node = obj
|
60
|
-
while (node && node.nodeName != 'FORM') {
|
61
|
-
node = node.parentNode
|
62
|
-
}
|
63
|
-
form = collect_form_values(node)
|
64
|
-
event.form = form
|
65
|
-
}
|
66
|
-
}
|
67
|
-
|
68
|
-
function post_values(event, obj) {
|
69
|
-
var xhr = new XMLHttpRequest();
|
70
|
-
xhr.onreadystatechange = function () {
|
71
|
-
if (this.readyState == 4 && this.status == 200) {
|
72
|
-
var res = this.response;
|
73
|
-
manage_response(res, event, obj)
|
74
|
-
}
|
75
|
-
}
|
76
|
-
xhr.open("POST", event.url, true);
|
77
|
-
xhr.setRequestHeader("Content-Type", "application/json");
|
78
|
-
xhr.responseType = 'json';
|
79
|
-
xhr.send(JSON.stringify({ event: event }));
|
80
|
-
}
|
81
|
-
|
82
|
-
function manage_response(res, event, obj) {
|
83
|
-
var elem;
|
84
|
-
console.log("manage_response: res="+JSON.stringify(res)+", event=" + JSON.stringify(event) +
|
85
|
-
", obj=" + JSON.stringify(obj))
|
86
|
-
if (res.inject) {
|
87
|
-
console.log("inject")
|
88
|
-
elem = document.querySelector(res.inject)
|
89
|
-
elem.innerHTML = htmlgen(res.body)
|
90
|
-
document
|
91
|
-
add_event(elem)
|
92
|
-
}
|
93
|
-
if (res.reset) {
|
94
|
-
elem = document.querySelector(res.reset)
|
95
|
-
if (event.reset=="form") {
|
96
|
-
while (node && node.nodeName != 'FORM') {
|
97
|
-
node = node.parentNode
|
98
|
-
}
|
99
|
-
node.reset();
|
100
|
-
} else {
|
101
|
-
var elems = document.querySelectorAll(event.reset)
|
102
|
-
if (elems) {
|
103
|
-
for(var i = 0; i < elems.length; i++) {
|
104
|
-
elem = elems[i]
|
105
|
-
}
|
106
|
-
|
107
|
-
}
|
108
|
-
}
|
109
|
-
}
|
110
|
-
}
|
111
|
-
|
112
|
-
function collect_form_values(obj) {
|
113
|
-
var res = {};
|
114
|
-
var inputs = Array.from(obj.querySelectorAll("input"));
|
115
|
-
var selects = Array.from(obj.querySelectorAll("select"));
|
116
|
-
console.dir(inputs)
|
117
|
-
inputs = inputs.concat(selects)
|
118
|
-
for (var i = 0; i < inputs.length; i++) {
|
119
|
-
var elem = inputs[i]
|
120
|
-
if ((elem.type == "checkbox" || elem.type == "radio") && !elem.checked) {
|
121
|
-
continue
|
122
|
-
}
|
123
|
-
var cur_value = res[elem.name]
|
124
|
-
if (cur_value) {
|
125
|
-
if (Array.isArray(cur_value)) {
|
126
|
-
cur_value.push(elem.value)
|
127
|
-
} else {
|
128
|
-
res[elem.name] = [ cur_value, elem.value ]
|
129
|
-
}
|
130
|
-
} else {
|
131
|
-
res[elem.name] = elem.value
|
132
|
-
}
|
133
|
-
}
|
134
|
-
return res
|
135
|
-
}
|