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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9a049889a8c127dd590b21203a34431749253774
4
- data.tar.gz: fc0d9ee35aeed5287c9d2224562d25c83fa02738
3
+ metadata.gz: 21f2eacd42e7dcaa4021a2b55f282743600b9bad
4
+ data.tar.gz: fe6c3eb79af6eee3263fbe01cd6db70cbf8c4a97
5
5
  SHA512:
6
- metadata.gz: eab2bb0b69143658380a3ccf3863a49e3939826d0d42e0164667eaad9da8cf092c1fad10c0cc9c246784cb2bdf940b22011814ed8512ba81c861703e24342707
7
- data.tar.gz: 2c905049ad978b2b8b32db7a691d1e1295a31a0e58ea209ca65b7ed384616e98d952ac1324e2d0a535da3aa4b18ba0ba2fee264a7367e5ecf583b2bf9808fa22
6
+ metadata.gz: be881f80e2e17ae3dcc89c4996be8e52bada80bc3e58810adbbc63429cd2f835a2fdc34d7ce9d1dc8dc2c567fcd24ecd544a37ed2958877e114bb353a4e969e8
7
+ data.tar.gz: e7c5a955a88fa1edadc12cd22aa26fcce930f3735c74a09500967aba0d9c03746d07acde924453d9fa9b36d2d63c5f013fd7e1ec4f6d93e06dc92bad147fc52b
@@ -7,7 +7,9 @@ module Qwer
7
7
  # 初始化
8
8
  # page_size: 单页记录数
9
9
  # page: 当前页数
10
- def initialize(page_size, page)
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, dname, datas, *args)
34
- html_str = Translater.table_data(table_head, dname, datas, *args)
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
 
@@ -3,26 +3,168 @@
3
3
  module Qwer
4
4
  require "qwer/version"
5
5
 
6
- module Qwer
7
- # Your code goes here...
8
- def self.sayhi
9
- puts "hello world"
10
- end
11
- module Helpers
12
- def table_seach
13
- '<h5 class="page-header">查询条件</h5>'
14
- '<div class="dataTables_wrapper form-inline">
15
- <div>
16
- <form class="pjax-form" id="user_search" action="/users" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓">
17
- <label class="control-label" for="q_邮箱:">邮箱:</label>
18
- <input class="form-control" type="search" name="q[email_cont]" id="q_email_cont">
19
- <a class="btn btn-success green" href="/users/new">新增</a>
20
- <button type="submit" class="btn btn-info" data-toggle="modal" data-target="#search_model">查询</button>
21
- </form>
22
- </div>
23
- </div>'
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
@@ -1,15 +1,20 @@
1
+ require 'qwer/layout_helper'
2
+
1
3
  module Qwer
2
4
  class Translater
3
- def self.table_search(form_params, data_params, model)
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
- data_params.reject { |key, value| html_str << "<div class='form-group'><label class='control-label'>#{value}:</label><input class='form-control' type='search' name='#{key}' id='q_#{key}'></div>" }
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 self.table_data(table_head, dname, opt, datas, *args)
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
- def self.sequence(index)
38
+ # 设置数据表格序号
39
+ def sequence(index)
34
40
  (@page.to_i - 1) * @page_size.to_i + index + 1
35
41
  end
36
42
 
37
- def self.edit?(opt)
43
+ # 判断是否是编辑方法
44
+ def edit?(opt)
38
45
  opt == "edit"
39
46
 
40
47
  end
41
48
 
42
- def self.delete?(opt)
49
+ # 判断是否是删除方法
50
+ def delete?(opt)
43
51
  opt == "del"
44
52
  end
45
53
 
46
- def self.send_keys data, key
54
+ # 获取给定的params的key的值
55
+ def send_keys data, key
47
56
  keys = key.to_s.split '.'
48
- keys.each do |item|
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
- def self.opt_btns key, value, dname, data
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
@@ -1,3 +1,3 @@
1
1
  module Qwer
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
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
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-15 00:00:00.000000000 Z
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
Binary file