ezframe 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/README.md +11 -4
  4. data/app_template/asset/image/favicon.ico +0 -0
  5. data/app_template/asset/js/ezframe.js +288 -0
  6. data/app_template/config/generic.yml +3 -0
  7. data/app_template/config/materialize.yml +5 -0
  8. data/{example/chat → app_template}/config.ru +2 -10
  9. data/app_template/pages/basic.rb +5 -0
  10. data/exe/create_table.rb +1 -0
  11. data/exe/setup.rb +15 -0
  12. data/ezframe.gemspec +3 -4
  13. data/lib/ezframe/auth.rb +15 -12
  14. data/lib/ezframe/column_set.rb +68 -28
  15. data/lib/ezframe/column_type.rb +231 -68
  16. data/lib/ezframe/config.rb +4 -0
  17. data/lib/ezframe/controller.rb +20 -10
  18. data/lib/ezframe/database.rb +10 -3
  19. data/lib/ezframe/ht.rb +167 -0
  20. data/lib/ezframe/html.rb +28 -4
  21. data/lib/ezframe/japanese_utils.rb +40 -0
  22. data/lib/ezframe/{pages.rb → loader.rb} +3 -0
  23. data/lib/ezframe/materialize.rb +55 -20
  24. data/lib/ezframe/model.rb +0 -2
  25. data/lib/ezframe/page_base.rb +18 -12
  26. data/lib/ezframe/page_kit.rb +12 -33
  27. data/lib/ezframe/template.rb +20 -15
  28. data/lib/ezframe/util.rb +5 -0
  29. data/lib/ezframe/version.rb +1 -1
  30. data/lib/ezframe.rb +5 -4
  31. metadata +27 -70
  32. data/example/auth/Gemfile +0 -8
  33. data/example/auth/asset/css/materialize.min.css +0 -13
  34. data/example/auth/asset/js/common.js +0 -200
  35. data/example/auth/asset/js/htmlgen.js +0 -79
  36. data/example/auth/columns/user.yml +0 -12
  37. data/example/auth/config/view_conf.yml +0 -3
  38. data/example/auth/config.ru +0 -26
  39. data/example/auth/pages/app.rb +0 -61
  40. data/example/auth/template/base.html +0 -12
  41. data/example/chat/Gemfile +0 -9
  42. data/example/chat/asset/css/materialize.min.css +0 -13
  43. data/example/chat/asset/js/common.js +0 -200
  44. data/example/chat/asset/js/htmlgen.js +0 -79
  45. data/example/chat/columns/belong.yml +0 -6
  46. data/example/chat/columns/channel.yml +0 -3
  47. data/example/chat/columns/talk.yml +0 -6
  48. data/example/chat/columns/user.yml +0 -12
  49. data/example/chat/config/view_conf.yml +0 -3
  50. data/example/chat/pages/app.rb +0 -59
  51. data/example/chat/template/base.html +0 -12
  52. data/example/todo/Gemfile +0 -8
  53. data/example/todo/asset/css/datatable.css +0 -54
  54. data/example/todo/asset/css/materialize.min.css +0 -13
  55. data/example/todo/asset/js/common.js +0 -135
  56. data/example/todo/asset/js/datatable.js +0 -1814
  57. data/example/todo/asset/js/htmlgen.js +0 -79
  58. data/example/todo/asset/js/init.js +0 -3
  59. data/example/todo/asset/js/materialize.min.js +0 -6
  60. data/example/todo/asset/js/mydatatable.js +0 -9
  61. data/example/todo/asset/js/mymaterialize.js +0 -22
  62. data/example/todo/columns/todo.yml +0 -9
  63. data/example/todo/config/view_conf.yml +0 -3
  64. data/example/todo/config.ru +0 -15
  65. data/example/todo/pages/app.rb +0 -93
  66. data/example/todo/template/base.html +0 -12
  67. data/exe/myrackup +0 -5
  68. 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
- }