qwer 0.1.4 → 0.1.5
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/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
|