ezframe 0.0.1 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
}
|