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.
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
- }