qwer 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/qwer.rb +6 -4
- data/lib/qwer/layout_helper.rb +161 -19
- data/lib/qwer/translater.rb +21 -14
- data/lib/qwer/version.rb +1 -1
- metadata +2 -3
- data/lib/temp/test.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 21f2eacd42e7dcaa4021a2b55f282743600b9bad
|
4
|
+
data.tar.gz: fe6c3eb79af6eee3263fbe01cd6db70cbf8c4a97
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be881f80e2e17ae3dcc89c4996be8e52bada80bc3e58810adbbc63429cd2f835a2fdc34d7ce9d1dc8dc2c567fcd24ecd544a37ed2958877e114bb353a4e969e8
|
7
|
+
data.tar.gz: e7c5a955a88fa1edadc12cd22aa26fcce930f3735c74a09500967aba0d9c03746d07acde924453d9fa9b36d2d63c5f013fd7e1ec4f6d93e06dc92bad147fc52b
|
data/lib/qwer.rb
CHANGED
@@ -7,7 +7,9 @@ module Qwer
|
|
7
7
|
# 初始化
|
8
8
|
# page_size: 单页记录数
|
9
9
|
# page: 当前页数
|
10
|
-
|
10
|
+
# model: 当前业务model
|
11
|
+
def initialize(model, page_size, page)
|
12
|
+
@model = model
|
11
13
|
@page_size = page_size
|
12
14
|
@page = page
|
13
15
|
end
|
@@ -21,7 +23,7 @@ module Qwer
|
|
21
23
|
# data: 要查询的内容
|
22
24
|
# args : 其他参数
|
23
25
|
def table_seach(params, data,*args)
|
24
|
-
html_str = Translater.table_search(params, data)
|
26
|
+
html_str = Translater.new.table_search(params, data, @model)
|
25
27
|
html_str.html_safe
|
26
28
|
end
|
27
29
|
|
@@ -30,8 +32,8 @@ module Qwer
|
|
30
32
|
# datas: 数据
|
31
33
|
# dname: 数据名称
|
32
34
|
# args: 其他参数
|
33
|
-
def table_data(table_head,
|
34
|
-
html_str = Translater.table_data(table_head,
|
35
|
+
def table_data(table_head, opt, datas, *args)
|
36
|
+
html_str = Translater.new.table_data(table_head, @model, opt, datas, *args)
|
35
37
|
html_str.html_safe
|
36
38
|
end
|
37
39
|
|
data/lib/qwer/layout_helper.rb
CHANGED
@@ -3,26 +3,168 @@
|
|
3
3
|
module Qwer
|
4
4
|
require "qwer/version"
|
5
5
|
|
6
|
-
module
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
6
|
+
module Helper
|
7
|
+
class HelperMethod
|
8
|
+
MAX_LOOP_NUM = 10
|
9
|
+
DEFAULT_COL_NUM = 3
|
10
|
+
|
11
|
+
# 查询项布局初始化
|
12
|
+
# col_num : table的列数
|
13
|
+
# data_size : 查询项数量
|
14
|
+
def initialize(col_num, data_size)
|
15
|
+
@col_num = col_num
|
16
|
+
@data_size = data_size
|
17
|
+
end
|
18
|
+
|
19
|
+
def form_render data_params, form_params
|
20
|
+
html_str = ""
|
21
|
+
# 适配单行是都能显示 先暂时定位3 以后做适配
|
22
|
+
if data_params.size > DEFAULT_COL_NUM
|
23
|
+
html_str << form_table_render(form_params, data_params)
|
24
|
+
else
|
25
|
+
|
26
|
+
data_params.reject { |key, value|
|
27
|
+
if value.class.to_s.eql?('String')
|
28
|
+
html_str << "<div><label class='control-label'>#{value}:</label><input class='form-control' type='search' name='#{key}' id='q_#{key}'></div>"
|
29
|
+
else
|
30
|
+
html_str << "<div><label class='control-label'>#{value[:name]}:</label>"
|
31
|
+
if select? value
|
32
|
+
html_str << add_selector(key, value)
|
33
|
+
else
|
34
|
+
html_str << "<input class='#{value[:css] ||= 'form-control'}' type='search' name='#{key}' id='q_#{key}'>"
|
35
|
+
end
|
36
|
+
html_str << "</div>"
|
37
|
+
end
|
38
|
+
|
39
|
+
}
|
40
|
+
html_str << button_render(form_params)
|
41
|
+
end
|
42
|
+
html_str
|
43
|
+
end
|
44
|
+
|
45
|
+
private
|
46
|
+
|
47
|
+
def add_selector key, value
|
48
|
+
html_str = "<select class='form-control' name='#{key}' id='#{get_input_id key}'>"
|
49
|
+
if value[:data].present?
|
50
|
+
html_str << "<option value=''>全部</option>" if value[:data].include? 'all'
|
51
|
+
value[:data].each do |item|
|
52
|
+
html_str << "<option value='#{item[:k]}'>#{item[:v]}</option>" if item.class.to_s.eql? 'Hash'
|
53
|
+
end
|
54
|
+
end
|
55
|
+
html_str << "</select>"
|
24
56
|
end
|
57
|
+
|
58
|
+
# 得到查询项,table
|
59
|
+
def form_table_render form_param, data_params
|
60
|
+
conter = 1
|
61
|
+
total = 1
|
62
|
+
html_str = "<table class='table text-left'>"
|
63
|
+
data_params.reject { |key, value|
|
64
|
+
html_str << "<tr>" if tr_start? conter
|
65
|
+
html_str << "<td style='border: none'>"
|
66
|
+
html_str << "<div class='form-group'>"
|
67
|
+
if value.class.to_s.eql? 'String'
|
68
|
+
html_str << "<label class='control-label'>#{value}:</label><input class='#{'form-control'}' type='search' name='#{key}' id='#{get_input_id key}'></div>"
|
69
|
+
else
|
70
|
+
html_str << "<label class='control-label'>#{value[:name]}:</label>"
|
71
|
+
if select? value
|
72
|
+
html_str << add_selector(key, value)
|
73
|
+
else
|
74
|
+
html_str << "<input class='#{value[:css] ||= 'form-control'}' type='search' name='#{key}' id='#{get_input_id key}'>"
|
75
|
+
end
|
76
|
+
end
|
77
|
+
html_str << "</div>"
|
78
|
+
|
79
|
+
html_str << "</td>"
|
80
|
+
|
81
|
+
if !tr_end? conter
|
82
|
+
# 一行tr 还没有结束 需要填补td
|
83
|
+
html_str << add_td_or_blank_td(form_param, conter, total)
|
84
|
+
end
|
85
|
+
html_str << "</tr>" if tr_end? conter
|
86
|
+
conter = 0 if tr_end? conter
|
87
|
+
conter += 1
|
88
|
+
total += 1
|
89
|
+
}
|
90
|
+
# 查询项 正好占满整行,需要另起一个tr,添加 button
|
91
|
+
html_str << add_new_btn_tr(form_param)
|
92
|
+
html_str << "</table>"
|
93
|
+
end
|
94
|
+
|
95
|
+
# 添加空td,或button td
|
96
|
+
def add_td_or_blank_td form_params, counter, total
|
97
|
+
html_str = ""
|
98
|
+
return html_str if has_any_td? total
|
99
|
+
# 循环添加td,直至填满tr,在最后添加button
|
100
|
+
while true
|
101
|
+
break if tr_end?(counter + 1) || counter > MAX_LOOP_NUM
|
102
|
+
html_str << "<td style='border: none;'></td>"
|
103
|
+
counter += 1
|
104
|
+
end
|
105
|
+
html_str << "<td style='border:none;text-align:center;'>"
|
106
|
+
html_str << button_render(form_params)
|
107
|
+
html_str << "</td>"
|
108
|
+
end
|
109
|
+
|
110
|
+
def button_render form_params
|
111
|
+
html_str = "<a class='btn btn-success green' href='#{form_params[:new]}'>新增</a>" if form_params[:new]
|
112
|
+
html_str << "<button type='submit' class='btn btn-info' data-toggle='modal' data-target='#search_model'>查询</button>"
|
113
|
+
end
|
114
|
+
|
115
|
+
# 单行tr 开始
|
116
|
+
def tr_start? counter
|
117
|
+
counter == 1
|
118
|
+
end
|
119
|
+
|
120
|
+
# 单行tr 结束
|
121
|
+
def tr_end? counter
|
122
|
+
counter == @col_num
|
123
|
+
end
|
124
|
+
|
125
|
+
# 有剩余td 没有添加
|
126
|
+
def has_any_td? total
|
127
|
+
total < @data_size
|
128
|
+
end
|
129
|
+
|
130
|
+
# 是否是下拉栏
|
131
|
+
def select? value
|
132
|
+
value[:type] == 'select'
|
133
|
+
end
|
134
|
+
|
135
|
+
def data? value
|
136
|
+
value[:type] == 'date'
|
137
|
+
end
|
138
|
+
|
139
|
+
def data_time? value
|
140
|
+
value[:type] == 'data_time'
|
141
|
+
end
|
142
|
+
|
143
|
+
def get_input_id key
|
144
|
+
k = key.to_s
|
145
|
+
k['['] = "_"
|
146
|
+
k[']'] = ""
|
147
|
+
k
|
148
|
+
end
|
149
|
+
|
150
|
+
# 添加一行新的tr(有必要的话)
|
151
|
+
def add_new_btn_tr params
|
152
|
+
html_str = ""
|
153
|
+
result = @data_size % @col_num
|
154
|
+
if result.zero?
|
155
|
+
html_str << "<tr>"
|
156
|
+
(@col_num-1).times{
|
157
|
+
html_str << "<td style='border:none;'>"
|
158
|
+
html_str << "</td>"
|
159
|
+
}
|
160
|
+
html_str << "<td style='border:none;text-align: center;'>"
|
161
|
+
html_str << button_render(params)
|
162
|
+
html_str << "</td>"
|
163
|
+
html_str << "</tr>"
|
164
|
+
end
|
165
|
+
html_str
|
166
|
+
end
|
167
|
+
|
25
168
|
end
|
26
169
|
end
|
27
|
-
|
28
170
|
end
|
data/lib/qwer/translater.rb
CHANGED
@@ -1,15 +1,20 @@
|
|
1
|
+
require 'qwer/layout_helper'
|
2
|
+
|
1
3
|
module Qwer
|
2
4
|
class Translater
|
3
|
-
|
5
|
+
DEFAULT_COL_NUM = 3
|
6
|
+
INIT_CONTER = 1
|
7
|
+
|
8
|
+
def table_search(form_params, data_params, model)
|
9
|
+
col_num = form_params[:col_num] ||= DEFAULT_COL_NUM
|
10
|
+
conter ||= INIT_CONTER
|
4
11
|
html_str = "<form class='#{form_params[:form_class] ||= 'pjax-form'}' id='' action='#{form_params[:action] ||= model}' accept-charset='#{form_params[:charset] ||= 'UTF-8' }' method='#{form_params[:method] ||= 'get'}'>"
|
5
12
|
html_str << "<input name='utf8' type='hidden' value='✓'>"
|
6
|
-
|
7
|
-
html_str << "<a class='btn btn-success green' href='#{form_params[:new]}'>新增</a>" if form_params[:new]
|
8
|
-
html_str << "<button type='submit' class='btn btn-info' data-toggle='modal' data-target='#search_model'>查询</button>"
|
13
|
+
html_str << Qwer::Helper::HelperMethod.new(col_num, data_params.size).form_render(data_params, form_params).to_s
|
9
14
|
html_str << "</form>"
|
10
15
|
end
|
11
16
|
|
12
|
-
def
|
17
|
+
def table_data(table_head, dname, opt, datas, *args)
|
13
18
|
html_str = "<table class='table table-striped table-hover' id='editable-sample'><thead><tr><th>#</th>"
|
14
19
|
table_head.reject { |key, value| html_str << "<th>#{value}</th>" }
|
15
20
|
html_str << "<th>操作</th></tr></thead><tbody>"
|
@@ -30,28 +35,30 @@ module Qwer
|
|
30
35
|
|
31
36
|
private
|
32
37
|
|
33
|
-
|
38
|
+
# 设置数据表格序号
|
39
|
+
def sequence(index)
|
34
40
|
(@page.to_i - 1) * @page_size.to_i + index + 1
|
35
41
|
end
|
36
42
|
|
37
|
-
|
43
|
+
# 判断是否是编辑方法
|
44
|
+
def edit?(opt)
|
38
45
|
opt == "edit"
|
39
46
|
|
40
47
|
end
|
41
48
|
|
42
|
-
|
49
|
+
# 判断是否是删除方法
|
50
|
+
def delete?(opt)
|
43
51
|
opt == "del"
|
44
52
|
end
|
45
53
|
|
46
|
-
|
54
|
+
# 获取给定的params的key的值
|
55
|
+
def send_keys data, key
|
47
56
|
keys = key.to_s.split '.'
|
48
|
-
keys.
|
49
|
-
data = data.send item if data.present?
|
50
|
-
end
|
51
|
-
data
|
57
|
+
keys.inject(data){|result, item| result.send item if result.present? }
|
52
58
|
end
|
53
59
|
|
54
|
-
|
60
|
+
# 操作列
|
61
|
+
def opt_btns key, value, dname, data
|
55
62
|
if edit? key.to_s
|
56
63
|
return "<a class='#{value[:css] ||= 'label label-success'}' href='/#{dname}/#{data.id.to_s}/edit'>#{value[:name] ||= '编辑'}</a>"
|
57
64
|
elsif delete? key.to_s
|
data/lib/qwer/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qwer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- lidejian@skio.cn
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02-
|
11
|
+
date: 2017-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -105,7 +105,6 @@ files:
|
|
105
105
|
- lib/qwer/layout_helper.rb
|
106
106
|
- lib/qwer/translater.rb
|
107
107
|
- lib/qwer/version.rb
|
108
|
-
- lib/temp/test.png
|
109
108
|
- qwer-0.1.1.gem
|
110
109
|
- qwer.gemspec
|
111
110
|
homepage: https://www.baidu.com
|
data/lib/temp/test.png
DELETED
Binary file
|