model_manage 0.1.10 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -5,10 +5,13 @@ source "http://rubygems.org"
5
5
 
6
6
  # Add dependencies to develop your gem here.
7
7
  # Include everything needed to run rake, tests, features, etc.
8
+
9
+ gem 'jquery-rails'
10
+ gem 'twitter-bootstrap-rails'
11
+
8
12
  group :development do
9
13
  gem "simple_form"
10
- gem "mongoid"
11
- gem "bundler", "~> 1.0.0"
14
+ gem "bundler"
12
15
  gem "jeweler", "~> 1.6.4"
13
16
  gem "simplecov"
14
17
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.10
1
+ 0.2.0
data/model_manage.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "model_manage"
8
- s.version = "0.1.10"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["\u{306a}\u{306a}\u{3053}\u{308d}\u{3073}"]
12
- s.date = "2012-03-12"
12
+ s.date = "2012-05-24"
13
13
  s.description = "\u{30e2}\u{30c7}\u{30eb}\u{3001}\u{30d5}\u{30a3}\u{30fc}\u{30eb}\u{30c9}\u{3068}\u{3044}\u{3063}\u{305f}\u{60c5}\u{5831}\u{3078}\u{7c21}\u{5358}\u{30a2}\u{30af}\u{30bb}\u{30b9}\u{3059}\u{308b}\u{3053}\u{3068}\u{3092}\u{76ee}\u{7684}\u{306b}\u{958b}\u{767a}\u{3057}\u{3066}\u{3044}\u{307e}\u{3059}\u{3002}"
14
14
  s.email = "7korobi@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -35,34 +35,39 @@ Gem::Specification.new do |s|
35
35
  "lib/model_manage/rails.rb",
36
36
  "model_manage.gemspec",
37
37
  "test/helper.rb",
38
- "test/test_model_manage.rb"
38
+ "test/test_model_manage.rb",
39
+ "vendor/assets/javascripts/model_manage/page_btn.js.coffee",
40
+ "vendor/assets/javascripts/model_manage/params.js.coffee"
39
41
  ]
40
42
  s.homepage = "http://github.com/7korobi/model_manage"
41
43
  s.licenses = ["MIT"]
42
44
  s.require_paths = ["lib"]
43
- s.rubygems_version = "1.8.11"
45
+ s.rubygems_version = "1.8.23"
44
46
  s.summary = "\u{30e2}\u{30c7}\u{30eb}\u{7ba1}\u{7406}\u{60c5}\u{5831}\u{4ed8}\u{4e0e}"
45
47
 
46
48
  if s.respond_to? :specification_version then
47
49
  s.specification_version = 3
48
50
 
49
51
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
52
+ s.add_runtime_dependency(%q<jquery-rails>, [">= 0"])
53
+ s.add_runtime_dependency(%q<twitter-bootstrap-rails>, [">= 0"])
50
54
  s.add_development_dependency(%q<simple_form>, [">= 0"])
51
- s.add_development_dependency(%q<mongoid>, [">= 0"])
52
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
55
+ s.add_development_dependency(%q<bundler>, [">= 0"])
53
56
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
54
57
  s.add_development_dependency(%q<simplecov>, [">= 0"])
55
58
  else
59
+ s.add_dependency(%q<jquery-rails>, [">= 0"])
60
+ s.add_dependency(%q<twitter-bootstrap-rails>, [">= 0"])
56
61
  s.add_dependency(%q<simple_form>, [">= 0"])
57
- s.add_dependency(%q<mongoid>, [">= 0"])
58
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
62
+ s.add_dependency(%q<bundler>, [">= 0"])
59
63
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
60
64
  s.add_dependency(%q<simplecov>, [">= 0"])
61
65
  end
62
66
  else
67
+ s.add_dependency(%q<jquery-rails>, [">= 0"])
68
+ s.add_dependency(%q<twitter-bootstrap-rails>, [">= 0"])
63
69
  s.add_dependency(%q<simple_form>, [">= 0"])
64
- s.add_dependency(%q<mongoid>, [">= 0"])
65
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
70
+ s.add_dependency(%q<bundler>, [">= 0"])
66
71
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
67
72
  s.add_dependency(%q<simplecov>, [">= 0"])
68
73
  end
@@ -0,0 +1,244 @@
1
+ class PageBtn
2
+ constructor: (base)->
3
+ base.paginate = @
4
+
5
+ @pages = $(".pagination")
6
+ @pages.html('')
7
+
8
+ @first_doc = @append_link('first')
9
+ @second_doc = @append_link('second')
10
+ @prev_gap = @append_gap('prev_gap')
11
+ @prev_doc = @append_link('prev')
12
+ @current_doc = @append_link('current')
13
+ @next_doc = @append_link('next')
14
+ @next_gap = @append_gap('next_gap')
15
+ @penu_doc = @append_link('penu')
16
+ @last_doc = @append_link('last')
17
+
18
+ @params = new Params('page')
19
+ @params.current = '1'
20
+
21
+ link: (type)->
22
+ @params.on = type
23
+ params.on = type for params in @page.search
24
+ @select()
25
+ @params.join_gui @pages, 'btn-success', 'data-href', =>
26
+ @reload()
27
+ @params.render()
28
+
29
+ link_local: (page)->
30
+ @page = page
31
+ @link 'hash'
32
+ if "onhashchange" of window and (document.documentMode is `undefined` or document.documentMode > 7)
33
+ window.onhashchange = =>
34
+ params.render() for params in @page.search
35
+ @params.render()
36
+
37
+ link_remote: (page)->
38
+ @data_render = -> true
39
+ @select = =>
40
+ @data =
41
+ length: page.length
42
+ @page =
43
+ per: 1
44
+ search: []
45
+ @link 'search'
46
+
47
+ append_gap: (name)->
48
+ @pages.append """
49
+ <span class="page #{name}">
50
+
51
+ </span>
52
+ """
53
+ @pages.find(".#{name}")
54
+
55
+ append_link: (name)->
56
+ @pages.append """
57
+ <span class="page #{name}">
58
+ <a class="btn"></a>
59
+ </span>
60
+ """
61
+ @pages.find(".#{name}")
62
+
63
+ select: ->
64
+ data = @page.data
65
+ data = params.select(data) for params in @page.search
66
+ @data = data
67
+
68
+ reload: ->
69
+ $(window).scrollTop( $(".inframe").offset().top - 20 )
70
+
71
+ @move()
72
+ @render()
73
+
74
+ move: ->
75
+ @current = @params.val() - 0
76
+ @next = @current + 1
77
+ @prev = @current - 1
78
+
79
+ @last = Math.ceil( @data.length / @page.per )
80
+ @penu = @last - 1
81
+
82
+ @second = 2
83
+ @first = 1
84
+
85
+ render: ->
86
+ @limit_if 0 < @last , @first_doc, 1,
87
+ @limit_if 1 < @last , @second_doc, 2
88
+ @limit_if 2 < @last , @last_doc, @last
89
+ @limit_if 2 < @penu , @penu_doc, @penu
90
+
91
+ @limit_if 2 < @next + 1 < @penu , @next_gap
92
+ @limit_if 2 < @next < @penu , @next_doc, @next
93
+ @limit_if 2 < @current < @penu , @current_doc, @current
94
+ @limit_if 2 < @prev < @penu , @prev_doc, @prev
95
+ @limit_if 2 < @prev - 1 < @penu , @prev_gap
96
+
97
+ @page.from = @page.per * @prev
98
+ @page.to = @page.per * @current - 1
99
+ @data_render()
100
+
101
+ limit_if: (bool, obj, text)->
102
+ if bool
103
+ if text?
104
+ obj.find("a").html(" #{text} ").attr('data-href', text)
105
+ obj.show()
106
+ else
107
+ obj.hide()
108
+
109
+ data_render: ->
110
+ drag_show = (mouse, obj)=>
111
+ base = $(obj)
112
+ drag_create base
113
+ drag_moveto base, mouse
114
+ drag_markup base, 'x'
115
+ drag_start base
116
+
117
+ q_drag = base.find(".drag_switch")
118
+ q_drag.click =>
119
+ base.fadeOut 'fast', =>
120
+ base.dragOff()
121
+ base.remove()
122
+
123
+ drag_markup = (base, mark)->
124
+ q_pick = base.find(".mes_date")
125
+ drag_switch = $("<span class='drag_switch'> #{mark} </span>")
126
+ q_pick.append drag_switch
127
+
128
+ drag_moveto = (base, mouse)->
129
+ topm = mouse.pageY + 16
130
+ leftm = $('#contentframe').offset().left
131
+ base.css
132
+ top: topm
133
+ left: leftm
134
+
135
+ drag_start = (base)->
136
+ base.find('.handler').replaceWith("<h3 class='handler'>.</h3>")
137
+ base.dragOnY()
138
+ base.addClass('drag')
139
+ base.css
140
+ cursor: 'move'
141
+ position: 'absolute'
142
+ display: 'none'
143
+ base.fadeIn('fast')
144
+
145
+ drag_create = (base)->
146
+ base.easydrag()
147
+
148
+ pump_number = base.to_z_front()
149
+ handle_id = "handler#{pump_number}"
150
+ base.setHandler handle_id
151
+ base.prepend $("<hr class='handler invisible_hr' />")
152
+
153
+ drag_on = (mouse)->
154
+ unless @base?
155
+ @base = $(@).parents(".message_filter")
156
+ drag_create @base
157
+ @base.slideUp 'fast', =>
158
+ drag_start @base
159
+
160
+ drag_off = (mouse)->
161
+ @base.fadeOut 'fast', =>
162
+ @base.find('.handler').replaceWith("<hr class='handler invisible_hr' />")
163
+ @base.removeClass('drag')
164
+ @base.dragOff()
165
+ @base.css
166
+ cursor: 'auto'
167
+ position: 'static'
168
+ @base.slideDown('fast')
169
+
170
+ rewrite = =>
171
+ @page.target.html('')
172
+ for index in [@page.from..@page.to]
173
+ create @data[index]
174
+
175
+ drag_markup @page.target, 'o'
176
+ q_drag = @page.target.find(".drag_switch")
177
+ q_drag.toggle drag_on, drag_off
178
+
179
+
180
+ bind = (base)=>
181
+ q_text = base.find("p.text")
182
+ q_text.each ->
183
+ html = $(@).html()
184
+ $(@).html( html.replace(///
185
+ (/\*)(.*?)(\*/|$)
186
+ ///g,'<em>$1$2$3</em>') )
187
+
188
+ q_anchor = base.find(".res_anchor")
189
+ q_anchor.toggle (mouse)->
190
+ ank = $(@)
191
+ unless @base?
192
+ @base = ank.parents(".message_filter")
193
+
194
+ turn = ank.attr('turn') - 0
195
+ logid = ank.attr('logid')
196
+ title = ank.attr("title")
197
+ href = @href
198
+ text = ank.text()
199
+ if 0 == text.indexOf(">>")
200
+ if turn? && logid?
201
+ message = scan turn, logid
202
+ if message?
203
+ drag_show mouse, create message
204
+ else
205
+ if gon.turns[turn]?
206
+ href = href.replace("/#{turn}/messages","/#{turn - 1}/messages")
207
+ turn -= 1
208
+ $.get href, {}, (data) =>
209
+ code = data.match(/gon.messages=(.*)<\/script>/)[1]
210
+ json = eval """
211
+ (function(){
212
+ gon.turns[#{turn}] = #{code}
213
+ })()
214
+ """
215
+ drag_show mouse, create scan turn, logid
216
+
217
+ else if "" == title
218
+ href = href.replace("#", "&logid=").replace("&move=page", "")
219
+ $.get href, {}, (data) =>
220
+ drag_show mouse, $(data).find(".message_filter")
221
+ else
222
+ window.open href, "_blank"
223
+ else
224
+ window.open href, "_blank"
225
+
226
+ ,=>
227
+ item = base.nextAll(".drag")
228
+ item.fadeOut "fast", =>
229
+ item.remove()
230
+
231
+
232
+ scan = (turn, logid)=>
233
+ if gon.turns[turn]
234
+ for obj in gon.turns[turn]
235
+ if logid == obj.logid
236
+ return obj
237
+
238
+ create = (obj)=>
239
+ if obj
240
+ html = @page.render(obj)
241
+ tag = html.appendTo(@page.target)
242
+ bind tag
243
+ tag
244
+ rewrite()
@@ -0,0 +1,64 @@
1
+ class Params
2
+ constructor: (word, check)->
3
+ @word = word
4
+ @match = new RegExp("&#{word}=(\\w+)",'i')
5
+ @check = check if check?
6
+
7
+ change: (to)->
8
+ @cookie_save(to);
9
+ uri = document.location[@on].replace(@match,'')
10
+ document.location[@on] = "#{uri}&#{@word}=#{to}"
11
+
12
+ cookie_save: (to)->
13
+ span = 1000 * 3600 * 24
14
+ now = new Date()
15
+ now.setTime( now.getTime() + 3600 * 1000 );
16
+ document.cookie = "&#{@word}=#{to}; expires=#{now.toGMTString()}; path=/" if @is_cookie
17
+ to
18
+
19
+ val: ->
20
+ path = document.location[@on].match(@match)?[1]
21
+ return @cookie_save(path) if path?
22
+
23
+ if @is_cookie
24
+ cookie = document.cookie.match(@match)?[1]
25
+ return cookie if cookie?
26
+
27
+ return @cookie_save(@current)
28
+
29
+ check: (val, obj)->
30
+ val == obj[@word]
31
+
32
+ select: (src)->
33
+ val = @val()
34
+ if val?
35
+ dst = []
36
+ for obj in src
37
+ dst.push obj if @check(val, obj)
38
+ dst
39
+ else
40
+ src
41
+
42
+ join_gui: (box, style, key, call)->
43
+ buttons = box.find('a')
44
+ @gui =
45
+ box: box
46
+ style: style
47
+ key: key
48
+ render: call
49
+
50
+ for link in buttons
51
+ link.base = @
52
+
53
+ buttons.click ->
54
+ target = $(@)
55
+ href = target.attr(@base.gui.key)
56
+ @base.change href
57
+ @base.render()
58
+ false
59
+
60
+ render: ->
61
+ if @gui?
62
+ @gui.box.find("a").removeClass(@gui.style)
63
+ @gui.render()
64
+ @gui.box.find("a[#{@gui.key}=#{@val()}]").addClass(@gui.style)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: model_manage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,43 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-12 00:00:00.000000000 Z
12
+ date: 2012-05-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: simple_form
16
- requirement: &70119994884280 !ruby/object:Gem::Requirement
15
+ name: jquery-rails
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
21
  version: '0'
22
- type: :development
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: twitter-bootstrap-rails
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
23
39
  prerelease: false
24
- version_requirements: *70119994884280
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
25
46
  - !ruby/object:Gem::Dependency
26
- name: mongoid
27
- requirement: &70119994883000 !ruby/object:Gem::Requirement
47
+ name: simple_form
48
+ requirement: !ruby/object:Gem::Requirement
28
49
  none: false
29
50
  requirements:
30
51
  - - ! '>='
@@ -32,21 +53,31 @@ dependencies:
32
53
  version: '0'
33
54
  type: :development
34
55
  prerelease: false
35
- version_requirements: *70119994883000
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
36
62
  - !ruby/object:Gem::Dependency
37
63
  name: bundler
38
- requirement: &70119994882260 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
39
65
  none: false
40
66
  requirements:
41
- - - ~>
67
+ - - ! '>='
42
68
  - !ruby/object:Gem::Version
43
- version: 1.0.0
69
+ version: '0'
44
70
  type: :development
45
71
  prerelease: false
46
- version_requirements: *70119994882260
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
47
78
  - !ruby/object:Gem::Dependency
48
79
  name: jeweler
49
- requirement: &70119994881580 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
50
81
  none: false
51
82
  requirements:
52
83
  - - ~>
@@ -54,10 +85,15 @@ dependencies:
54
85
  version: 1.6.4
55
86
  type: :development
56
87
  prerelease: false
57
- version_requirements: *70119994881580
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 1.6.4
58
94
  - !ruby/object:Gem::Dependency
59
95
  name: simplecov
60
- requirement: &70119994880620 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
61
97
  none: false
62
98
  requirements:
63
99
  - - ! '>='
@@ -65,7 +101,12 @@ dependencies:
65
101
  version: '0'
66
102
  type: :development
67
103
  prerelease: false
68
- version_requirements: *70119994880620
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
69
110
  description: モデル、フィールドといった情報へ簡単アクセスすることを目的に開発しています。
70
111
  email: 7korobi@gmail.com
71
112
  executables: []
@@ -93,6 +134,8 @@ files:
93
134
  - model_manage.gemspec
94
135
  - test/helper.rb
95
136
  - test/test_model_manage.rb
137
+ - vendor/assets/javascripts/model_manage/page_btn.js.coffee
138
+ - vendor/assets/javascripts/model_manage/params.js.coffee
96
139
  homepage: http://github.com/7korobi/model_manage
97
140
  licenses:
98
141
  - MIT
@@ -108,7 +151,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
151
  version: '0'
109
152
  segments:
110
153
  - 0
111
- hash: -2913194894653294721
154
+ hash: 2213253618630172403
112
155
  required_rubygems_version: !ruby/object:Gem::Requirement
113
156
  none: false
114
157
  requirements:
@@ -117,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
160
  version: '0'
118
161
  requirements: []
119
162
  rubyforge_project:
120
- rubygems_version: 1.8.11
163
+ rubygems_version: 1.8.23
121
164
  signing_key:
122
165
  specification_version: 3
123
166
  summary: モデル管理情報付与