abstracted 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,26 +9,14 @@ $(App).on 'app:modal:open', ->
9
9
  App.trigger('app:pageload')
10
10
 
11
11
  $(App).on 'app:pageload', ->
12
- page = new App.Materialize()
13
- page.prepare()
14
- sweet = new App.SweetAlert()
15
- sweet.prepare()
12
+ App.page.prepare()
13
+ App.sweet.prepare()
16
14
  if $('table.resources_table')
17
- rl = new App.ResourcesList($('form'))
18
- rl.prepare()
19
- rs = new App.ResourceForm()
20
- rs.prepare()
21
- fab = new App.fabDelete()
22
- fab.prepare()
15
+ App.resourceslist.prepare()
16
+ App.ps.scrollTable('table.resources_table')
17
+ App.resourceform.prepare()
18
+ App.fab.prepare()
23
19
 
24
- #
25
- # PageOnChange really just calls a pageload - as of now 19-06-15
26
- # fixed elements like SELECT's, Materialized's elements, et al.
27
- #
28
- # @pageOnChange = () ->
29
- # console.log 'page changed '
30
- # pageOnLoad()
31
- #
32
- # call the App.pageload
33
- $(document).on 'page:change', ->
34
- App.pageload()
20
+ # $(App).on 'app:pageunload', ->
21
+ # if App.ps && App.ps.scrollTimeout
22
+ # clearTimeout App.ps.scrollTimeout
@@ -6,5 +6,6 @@
6
6
  *= require sweetalert
7
7
  * require materialize-tags/dist/css/materialize-tags.css
8
8
  *= require selectize/dist/css/selectize.css
9
+ *= require balloon.min.css
9
10
  * require_tree .
10
11
  */
@@ -0,0 +1 @@
1
+ [data-balloon]{position:relative}[data-balloon]::before{opacity:0;pointer-events:none;transition:all .18s ease-out;background:rgba(17,17,17,0.9);border-radius:4px;color:#fff;content:attr(data-balloon);font-size:12px;padding:.5em 1em;position:absolute;white-space:nowrap;z-index:10}[data-balloon]::after{background:no-repeat url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="36px" height="12px"><path fill="rgba(17,17,17,0.9)" transform="rotate(0)" d="M2.658,0.000 C-13.615,0.000 50.938,0.000 34.662,0.000 C28.662,0.000 23.035,12.002 18.660,12.002 C14.285,12.002 8.594,0.000 2.658,0.000 Z"/></svg>');background-size:100% auto;width:18px;height:6px;opacity:0;pointer-events:none;transition:all .18s ease-out;content:'';position:absolute;z-index:10}[data-balloon]:hover::before,[data-balloon]:hover::after{opacity:1;pointer-events:auto}[data-balloon][data-balloon-pos="up"]::before{bottom:100%;left:50%;margin-bottom:11px;transform:translate3d(-50%, 10px, 0);transform-origin:top}[data-balloon][data-balloon-pos="up"]::after{bottom:100%;left:50%;margin-bottom:5px;transform:translate3d(-50%, 10px, 0);transform-origin:top}[data-balloon][data-balloon-pos="up"]:hover::before{transform:translate3d(-50%, 0, 0)}[data-balloon][data-balloon-pos="up"]:hover::after{transform:translate3d(-50%, 0, 0)}[data-balloon][data-balloon-pos='down']::before{left:50%;margin-top:11px;top:100%;transform:translate3d(-50%, -10px, 0)}[data-balloon][data-balloon-pos='down']::after{background:no-repeat url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="36px" height="12px"><path fill="rgba(17,17,17,0.9)" transform="rotate(180 18 6)" d="M2.658,0.000 C-13.615,0.000 50.938,0.000 34.662,0.000 C28.662,0.000 23.035,12.002 18.660,12.002 C14.285,12.002 8.594,0.000 2.658,0.000 Z"/></svg>');background-size:100% auto;width:18px;height:6px;left:50%;margin-top:5px;top:100%;transform:translate3d(-50%, -10px, 0)}[data-balloon][data-balloon-pos='down']:hover::before{transform:translate3d(-50%, 0, 0)}[data-balloon][data-balloon-pos='down']:hover::after{transform:translate3d(-50%, 0, 0)}[data-balloon][data-balloon-pos='left']::before{margin-right:11px;right:100%;top:50%;transform:translate3d(10px, -50%, 0)}[data-balloon][data-balloon-pos='left']::after{background:no-repeat url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12px" height="36px"><path fill="rgba(17,17,17,0.9)" transform="rotate(-90 18 18)" d="M2.658,0.000 C-13.615,0.000 50.938,0.000 34.662,0.000 C28.662,0.000 23.035,12.002 18.660,12.002 C14.285,12.002 8.594,0.000 2.658,0.000 Z"/></svg>');background-size:100% auto;width:6px;height:18px;margin-right:5px;right:100%;top:50%;transform:translate3d(10px, -50%, 0)}[data-balloon][data-balloon-pos='left']:hover::before{transform:translate3d(0, -50%, 0)}[data-balloon][data-balloon-pos='left']:hover::after{transform:translate3d(0, -50%, 0)}[data-balloon][data-balloon-pos='right']::before{left:100%;margin-left:11px;top:50%;transform:translate3d(-10px, -50%, 0)}[data-balloon][data-balloon-pos='right']::after{background:no-repeat url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12px" height="36px"><path fill="rgba(17,17,17,0.9)" transform="rotate(90 6 6)" d="M2.658,0.000 C-13.615,0.000 50.938,0.000 34.662,0.000 C28.662,0.000 23.035,12.002 18.660,12.002 C14.285,12.002 8.594,0.000 2.658,0.000 Z"/></svg>');background-size:100% auto;width:6px;height:18px;left:100%;margin-left:5px;top:50%;transform:translate3d(-10px, -50%, 0)}[data-balloon][data-balloon-pos='right']:hover::before{transform:translate3d(0, -50%, 0)}[data-balloon][data-balloon-pos='right']:hover::after{transform:translate3d(0, -50%, 0)}[data-balloon][data-balloon-length='small']::before{white-space:normal;width:80px}[data-balloon][data-balloon-length='medium']::before{white-space:normal;width:150px}[data-balloon][data-balloon-length='large']::before{white-space:normal;width:260px}[data-balloon][data-balloon-length='xlarge']::before{white-space:normal;width:380px}@media screen and (max-width: 768px){[data-balloon][data-balloon-length='xlarge']::before{white-space:normal;width:90vw}}[data-balloon][data-balloon-length='fit']::before{white-space:normal;width:100%}
@@ -104,11 +104,9 @@ class AbstractResourcesController < ApplicationController
104
104
  #
105
105
  # build an array of the resource - particular to <SELECT>
106
106
  def set_parents
107
- unless (resource_class.respond_to?( 'arraying') && resource? )
108
- @parents = []
109
- else
110
- @parents = resource_class.arraying({ order: 'name'}, resource.possible_parents)
111
- end
107
+ @parents = []
108
+ return @parents unless resource_class.respond_to? :roots #( 'arraying') && resource? )
109
+ @parents = resource_class.arraying({ order: 'name'}, resource.possible_parents)
112
110
  rescue Exception => e
113
111
  scoop_from_error e
114
112
  end
@@ -315,13 +313,14 @@ class AbstractResourcesController < ApplicationController
315
313
  #
316
314
  # returns the url for the resource - like /users/1
317
315
  def resource_url options={}
318
- options = resource_options(options)
319
- action= case params[:action]
320
- when 'show'; '/%s' % resource.id
321
- when 'edit'; '/%s/edit' % resource.id
322
- else ''
323
- end
324
- parent? ? ("%s/%s%s%s" % [parent_url,resource_name,action,options]) : ("/%s%s%s" % [resource_name,action,options])
316
+ r=request.path
317
+ id=params[:id]
318
+ options = case params[:action]
319
+ when 'create','update','delete','destroy'; ""
320
+ else resource_options(options)
321
+ end
322
+ return "%s%s" % [r,options] if r.match "#{resource.class.to_s.tableize}\/#{id}$"
323
+ "%s%s" % [ r.split("/#{params[:action]}")[0], options]
325
324
  rescue Exception => e
326
325
  scoop_from_error e
327
326
  end
@@ -330,11 +329,13 @@ class AbstractResourcesController < ApplicationController
330
329
  #
331
330
  # returns the url for the resources - /employees or /employees/1/events
332
331
  def resources_url options={}
333
- options = resource_options(options)
334
- r = "%s_path" % resource_name
335
- d,a,r = send(r).split("/")
336
- a = a =~ /admin/ ? [ '/',a, parent_url ].join("/") : parent_url
337
- [ a, r ].join("/").gsub /\/\//,'/'
332
+ r=request.path
333
+ options = case params[:action]
334
+ when 'create','update','delete','destroy'; ""
335
+ else resource_options(options)
336
+ end
337
+ return "%s%s" % [r,options] if r.match "#{resource.class.to_s.tableize}$"
338
+ "%s%s%s" % [ r.split( resource.class.to_s.tableize)[0],resource.class.to_s.tableize, options]
338
339
  rescue Exception => e
339
340
  scoop_from_error e
340
341
  end
@@ -342,7 +343,8 @@ class AbstractResourcesController < ApplicationController
342
343
  #
343
344
  # parent_url returns the parent url - /employees/1
344
345
  def parent_url options={}
345
- parent? ? ( "/%s/%s" % [ @parent.class.table_name, @parent.id ] ) : ""
346
+ parent? ? url_for(@parent) : ""
347
+ # parent? ? ( "/%s/%s" % [ @parent.class.table_name, @parent.id ] ) : ""
346
348
  rescue Exception => e
347
349
  scoop_from_error e
348
350
  end
@@ -405,7 +407,7 @@ class AbstractResourcesController < ApplicationController
405
407
  end
406
408
 
407
409
  def resource_options options
408
- options.merge! params.except( "id", "controller", "action" )
410
+ options.merge! params.except( "id", "controller", "action", "utf8", "_method", "authenticity_token" )
409
411
  options = (options.empty? ? "" : "?" + options.collect{ |k,v| "#{k}=#{v}" }.join("&"))
410
412
  end
411
413
 
@@ -558,7 +560,7 @@ class AbstractResourcesController < ApplicationController
558
560
  #
559
561
 
560
562
  def scoop_from_error e
561
- raise e if Rails.env=='development'
563
+ raise e if %w{ test development }.include? Rails.env
562
564
  logger.debug "AbstractResourcesController##{params[:action]}: #{e.class}"
563
565
  a_url = root_path
564
566
 
@@ -199,8 +199,8 @@ module AbstractResourcesHelper
199
199
 
200
200
  # return a link to delete a row
201
201
  def show_resource_delete_icon item, url, lbl='name'
202
- link_to item, class: 'delete_link', data: { url: url, name: "#{item.send lbl }", id: "#{item.id}", remove: "#tr-#{item.class.to_s}-#{item.id}" } do
203
- content_tag :i, 'delete', class: 'material-icons small', title: "#{t('.delete')}"
202
+ link_to item, class: 'delete_link', data: { balloon: t("balloons.delete" ), balloon_pos: "left", url: url, name: "#{item.send lbl }", id: "#{item.id}", remove: "#tr-#{item.class.to_s}-#{item.id}" } do
203
+ content_tag :i, 'delete', class: 'material-icons small'
204
204
  end
205
205
  # = link_to account, class: 'delete_link', data: { url: '/admin/accounts', name: "#{account.name}", id: "#{account.id}", remove: "#tr-#{account.id}" } do
206
206
  # %i.material-icons.small{ title: "#{t('.delete')}"} delete
@@ -35,21 +35,24 @@ class AbstractResource < ActiveRecord::Base
35
35
  lot.where id: population
36
36
  end
37
37
 
38
- def self.arrange_array(options={}, hash=nil)
39
- hash ||= arrange(options)
40
-
41
- arr = []
42
- hash.each do |node, children|
43
- arr << node
44
- arr += arrange_array(options, children) unless children.nil?
45
- end
46
- arr
47
- end
48
-
49
- def possible_parents
50
- prtns = self.arrange_array(:order => 'name')
51
- return new_record? ? prtns : prtns - subtree
52
- end
38
+ # depreciated ------------ 12/3/2016
39
+ #
40
+ # ancestry related methods - find them on AncestryAbstractResource
41
+ # def self.arrange_array(options={}, hash=nil)
42
+ # hash ||= arrange(options)
43
+ #
44
+ # arr = []
45
+ # hash.each do |node, children|
46
+ # arr << node
47
+ # arr += arrange_array(options, children) unless children.nil?
48
+ # end
49
+ # arr
50
+ # end
51
+ #
52
+ # def possible_parents
53
+ # prtns = self.arrange_array(:order => 'name')
54
+ # return new_record? ? prtns : prtns - subtree
55
+ # end
53
56
 
54
57
  def resource_name
55
58
  self.class.to_s.underscore.pluralize
@@ -57,7 +60,7 @@ class AbstractResource < ActiveRecord::Base
57
60
 
58
61
  #
59
62
  # include Exceptions
60
- include PrintEngine
63
+ include PrintEngine unless Rails.env=='test'
61
64
  #
62
65
  #
63
66
  #
@@ -67,16 +70,9 @@ class AbstractResource < ActiveRecord::Base
67
70
  # end
68
71
  #
69
72
  # # implement on relevant models
70
- def default_record_template
71
- 'accounts/record.html.haml'
72
- end
73
-
74
- def self.default_list_template
75
- 'list.html.haml'
76
- end
77
-
78
- def self.default_label_template
79
- 'label.html.haml'
73
+ def find_template paper="A4"
74
+ raise 'you have to implement "def find_template(paper)" on your Model'
75
+ # 'label.html.haml'
80
76
  end
81
77
  #
82
78
  # def print_label options={}
@@ -94,13 +90,14 @@ class AbstractResource < ActiveRecord::Base
94
90
  def print_record(options={})
95
91
  params = {}
96
92
  params[:context] = options[:context]
93
+ template = options[:template]
97
94
  options = options[:params]
98
95
  params[:print_job] = {}
99
96
  params[:print_job][:download] = options[:download] || false
100
97
  params[:print_job][:print_driver] = options[:print_driver] || :pdf
101
98
  params[:print_job][:print_format] = options[:print_format] || 'sheet'
102
99
  params[:print_job][:paper] = options[:paper] || "A4"
103
- params[:print_job][:view_template_path] = options[:template] || (options[:paper]!="A4" ? self.send("default_#{options[:paper]}_template") : default_record_template)
100
+ params[:print_job][:view_template_path] = template || self.find_template( options[:paper] )
104
101
  params[:printer_name] = options[:printer_name]
105
102
  params[:user] = options[:user]
106
103
  pj = self.class.print [self], params
@@ -108,12 +105,16 @@ class AbstractResource < ActiveRecord::Base
108
105
  #
109
106
  def self.print_list(options={})
110
107
  params = {}
108
+ params[:context] = options[:context]
109
+ template = options[:template]
110
+ options = options[:params]
111
111
  params[:print_job] = {}
112
112
  params[:print_job][:download] = options[:download] || false
113
113
  params[:print_job][:print_driver] = options[:print_driver] || :pdf
114
114
  params[:print_job][:print_format] = options[:print_format] || 'list'
115
115
  params[:print_job][:paper] = options[:paper] || "A4"
116
- params[:print_job][:view_template_path] = options[:template] || self.default_list_template
116
+ params[:print_job][:view_template_path] = template || self.find_template( options[:paper] )
117
+
117
118
  params[:printer_name] = options[:printer_name]
118
119
  params[:user] = options[:user]
119
120
  self.print options[:resources], params
@@ -3,26 +3,44 @@
3
3
  -# .col.s12
4
4
  -# %h3= yield :title
5
5
 
6
- .row
7
- .col.s12
8
- %form.form-inline{ action: resources_url( resources, controller: params[:controller]), method: "get"}
9
- .form-group.col.s12
10
- %label{ for: "q" }
11
- %input.search-list.form-control{ style: "width: 100%", type: "text", id: "q", name: "q", placeholder: t('search_placeholder'), value: "#{params[:q] || ''}" }
12
- .collection{ style: "border: 0px"}
13
- %a.search-list.btn.btn-primary{ type: "submit"}= t('search_button_text')
14
- - if resources.respond_to? :total_count
15
- %span.blue-grey-text{style: "margin-top: 6px"}
16
- = t("#{resources_name}.posts", size: resources.total_count)
17
- -#
18
- -# = link_to t( resource_class.to_s + '.new'), new_resource_url, class: 'btn btn-success'
6
+ .row{ style: "margin-top: 20px"}
7
+ .col.s12.m12.l12
8
+ %form#list-search-form.form-inline{ action: resources_url( resources, controller: params[:controller]), method: "get"}
9
+ - if resources.respond_to? :total_count
10
+ %label
11
+ %span.blue-grey-text{style: "margin-top: 6px"}
12
+ = t("#{resources_name}.posts", size: resources.total_count)
13
+ %br
14
+ %input.search-list.form-control{ style: "width: 75%", type: "text", id: "q", name: "q", placeholder: t("#{params[:controller]}.search_placeholder"), value: "#{params[:q] || ''}" }
15
+ %a.search-list.btn.btn-primary{ type: "submit"}= t('search_button_text')
16
+
17
+ -# .form-group
18
+ -# -# %label{ for: "q" }
19
+ -# %input.search-list.form-control{ type: "text", id: "q", name: "q", placeholder: t("#{params[:controller]}.search_placeholder"), value: "#{params[:q] || ''}" }
20
+ -# .collection{ style: "border: 0px"}
21
+ -# %a.search-list.btn.btn-primary{ type: "submit"}= t('search_button_text')
22
+ -# - if resources.respond_to? :total_count
23
+ -# %span.blue-grey-text{style: "margin-top: 6px"}
24
+ -# = t("#{resources_name}.posts", size: resources.total_count)
19
25
 
20
26
  .row
21
27
  .col.s12
22
28
  &nbsp;
23
29
  .row
24
30
  .col.s12
25
- %table.bordered.responsive-table.striped.hoverable.page.resources_table
31
+ %table.bordered.responsive-table.striped.hoverable.page.resources_table{ id: "#{resource_name}_table_list"}
26
32
  = render partial: resources_name
27
33
 
28
34
  = build_fab_button build_fab_options( resource, fab_button_options.merge!( action: params[:action] ))
35
+
36
+ :coffeescript
37
+
38
+ $ ->
39
+ # console.log 'calling scrollTable ' + $('table.resources_table')[0].id
40
+ # if App.ps
41
+ # if App.ps.scrollTimeout
42
+ # clearTimeout App.ps.scrollTimeout
43
+ # if App.ps.lastPage > App.ps.nextPage
44
+ # App.shared.callToast 'Der er mere end én side resultater - scroll ned for at se flere!'
45
+ #
46
+ # App.ps.scrollTable('table.resources_table')
@@ -3,5 +3,6 @@
3
3
  %h3= render partial: 'title'
4
4
  - @disabled = true
5
5
  = render 'form'
6
- = build_fab_button build_fab_options( resource, fab_button_options.merge!( action: params[:action] ))
7
- = render partial: 'show'
6
+ - unless params[:format] == 'js'
7
+ = build_fab_button build_fab_options( resource, fab_button_options.merge!( action: params[:action] ))
8
+ = render partial: 'show'
@@ -1,3 +1,3 @@
1
1
  module Abstracted
2
- VERSION = "0.3.3"
2
+ VERSION = "0.3.4"
3
3
  end
@@ -57,5 +57,7 @@ module Exceptions
57
57
  class ExcludedInstanceAllreadyGoneError < OxenStandardError; end
58
58
  class IncludedInstanceAllreadyHereError < OxenStandardError; end
59
59
 
60
+ class MovingFileFailedError < OxenStandardError; end
61
+
60
62
 
61
63
  end
@@ -18,27 +18,166 @@ require 'rails_helper'
18
18
  # is no simpler way to get a handle on the object needed for the example.
19
19
  # Message expectations are only used when there is no simpler way to specify
20
20
  # that an instance is receiving a specific message.
21
- RSpec.describe "nested requests", :type => :request do
21
+ # RSpec.describe "nested requests", :type => :request do
22
+ #
23
+ # describe "GET #index" do
24
+ # it "gets all posts" do
25
+ # get "/posts"
26
+ # expect(assigns(:posts)).not_to eq([])
27
+ # end
28
+ #
29
+ # it "gets all posts to a user" do
30
+ # user = User.create(login: 'fisk')
31
+ # post = Post.create(user: user, title: 'fisk')
32
+ # get user_posts_path(user_id: user.id)
33
+ # expect(@controller.parent?).to eq true
34
+ # expect(@controller.resources_url).to eq "/users/1/posts"
35
+ # expect(@controller.resources.first).to eq (post)
36
+ # end
37
+ #
38
+ # end
39
+ #
40
+ # end
41
+ RSpec.describe "testing resource_url - for nested requests", type: :request do
42
+ describe "nested other ACTION" do
43
+ it "/users/1/print" do
44
+ user = User.create! id: 1, login: "test"
45
+ get "/users/1/print"
46
+ expect(@controller.resource_url).to eq("/users/1?ids=[\"1\"]")
47
+ end
48
+ it "/users/1/posts/1print" do
49
+ user = User.create! id: 1, login: "test"
50
+ post = Post.create! id: 1, user_id: user.id, title: "test"
51
+ get "/users/1/posts/1/print"
52
+ expect(@controller.resource_url).to eq("/users/1/posts/1?user_id=1&ids=[\"1\"]")
53
+ end
54
+ it "/admin/users/1/posts/1/print" do
55
+ user = User.create! id: 1, login: "test"
56
+ post = Post.create! id: 1, user_id: user.id, title: "test"
57
+ get "/admin/users/1/posts/1/print"
58
+ expect(@controller.resource_url).to eq("/admin/users/1/posts/1?user_id=1&ids=[\"1\"]")
59
+ end
60
+ it "/admin/users/1/edit" do
61
+ user = User.create! id: 1, login: "test"
62
+ get "/admin/users/1/edit"
63
+ expect(@controller.resource_url).to eq("/admin/users/1")
64
+ end
65
+ end
66
+ describe "nested EDIT" do
67
+ it "/users/1/posts/1/edit" do
68
+ user = User.create! id: 1, login: "test"
69
+ post = Post.create! id: 1, user_id: user.id, title: "test"
70
+ get "/users/1/posts/1/edit"
71
+ expect(@controller.resource_url).to eq("/users/1/posts/1?user_id=1")
72
+ end
73
+ it "/admin/users/1/edit" do
74
+ user = User.create! id: 1, login: "test"
75
+ get "/admin/users/1/edit"
76
+ expect(@controller.resource_url).to eq("/admin/users/1")
77
+ end
78
+ it "/users/1/edit" do
79
+ user = User.create! id: 1, login: "test"
80
+ get "/users/1/edit"
81
+ expect(@controller.resource_url).to eq("/users/1")
82
+ end
83
+ it "/admin/users/1/edit?q=mx" do
84
+ user = User.create! id: 1, login: "test"
85
+ get "/admin/users/1/edit?q=mx"
86
+ expect(@controller.resource_url).to eq("/admin/users/1?q=mx")
87
+ end
88
+ end
89
+ describe "nested GET" do
90
+ it "/users/1/posts/1" do
91
+ user = User.create! id: 1, login: "test"
92
+ post = Post.create! id: 1, user_id: user.id, title: "test"
93
+ get "/users/1/posts/1"
94
+ expect(@controller.resource_url).to eq("/users/1/posts/1?user_id=1")
95
+ end
96
+ it "/admin/users/1" do
97
+ user = User.create! id: 1, login: "test"
98
+ get "/admin/users/1"
99
+ expect(@controller.resource_url).to eq("/admin/users/1")
100
+ end
101
+ it "/users/1" do
102
+ user = User.create! id: 1, login: "test"
103
+ get "/users/1"
104
+ expect(@controller.resource_url).to eq("/users/1")
105
+ end
106
+ it "/admin/users/1?q=mx" do
107
+ user = User.create! id: 1, login: "test"
108
+ get "/admin/users/1?q=mx"
109
+ expect(@controller.resource_url).to eq("/admin/users/1?q=mx")
110
+ end
111
+ end
112
+ end
22
113
 
23
- describe "GET #index" do
24
- it "gets all posts" do
25
- get "/posts"
26
- expect(assigns(:posts)).not_to eq([])
114
+ RSpec.describe "testing resources_url - for nested requests", type: :request do
115
+ describe "nested EDIT" do
116
+ it "/users/1/posts/1/edit" do
117
+ user = User.create! id: 1, login: "test"
118
+ post = Post.create! id: 1, user_id: user.id, title: "test"
119
+ get "/users/1/posts/1/edit"
120
+ expect(@controller.resources_url).to eq("/users/1/posts?user_id=1")
121
+
122
+ end
123
+ it "/admin/users/1/edit" do
124
+ user = User.create! id: 1, login: "test"
125
+ get "/admin/users/1/edit"
126
+ expect(@controller.resources_url).to eq("/admin/users")
27
127
  end
128
+ it "/users/1/edit" do
129
+ user = User.create! id: 1, login: "test"
130
+ get "/users/1/edit"
131
+ expect(@controller.resources_url).to eq("/users")
132
+ end
133
+ it "/admin/users/1/edit?q=mx" do
134
+ user = User.create! id: 1, login: "test"
135
+ get "/admin/users/1/edit?q=mx"
136
+ expect(@controller.resources_url).to eq("/admin/users?q=mx")
137
+ end
138
+ end
139
+ describe "nested GET" do
140
+ it "/users/1/posts" do
141
+ user = User.create! id: 1, login: "test"
142
+ get "/users/1/posts"
143
+ expect(@controller.resources_url).to eq("/users/1/posts?user_id=1&ids=[]&perpage=20&page=1")
28
144
 
29
- it "gets all posts to a user" do
30
- user = User.create(login: 'fisk')
31
- post = Post.create(user: user, title: 'fisk')
32
- get user_posts_path(user_id: user.id)
33
- expect(@controller.parent?).to eq true
34
- expect(@controller.resources_url).to eq "/users/1/posts"
35
- expect(@controller.resources.first).to eq (post)
36
145
  end
146
+ it "/users/1/posts/1" do
147
+ user = User.create! id: 1, login: "test"
148
+ post = Post.create! id: 1, user_id: user.id, title: "test"
149
+ get "/users/1/posts/1"
150
+ expect(@controller.resources_url).to eq("/users/1/posts?user_id=1")
37
151
 
152
+ end
153
+ it "/admin/users" do
154
+ get "/admin/users"
155
+ expect(@controller.resources_url).to eq("/admin/users?ids=[]&perpage=20&page=1")
156
+ end
157
+ it "/admin/users/1" do
158
+ user = User.create! id: 1, login: "test"
159
+ get "/admin/users/1"
160
+ expect(@controller.resources_url).to eq("/admin/users")
161
+ end
162
+ it "/users/1" do
163
+ user = User.create! id: 1, login: "test"
164
+ get "/users/1"
165
+ expect(@controller.resources_url).to eq("/users")
166
+ end
167
+ it "/admin/users/1?q=mx" do
168
+ user = User.create! id: 1, login: "test"
169
+ get "/admin/users/1?q=mx"
170
+ expect(@controller.resources_url).to eq("/admin/users?q=mx")
171
+ end
38
172
  end
39
-
40
173
  end
41
174
 
175
+
176
+ # RSpec.describe Admin::UsersController, type: :controller do
177
+ #
178
+ #
179
+ # end
180
+
42
181
  RSpec.describe UsersController, type: :controller do
43
182
 
44
183
 
@@ -61,178 +200,179 @@ RSpec.describe UsersController, type: :controller do
61
200
  # in order to pass any filters (e.g. authentication) defined in
62
201
  # UsersController. Be sure to keep this updated too.
63
202
  let(:valid_session) { {} }
203
+ #
204
+ # describe "GET #index" do
205
+ # it "assigns all users as @resources" do
206
+ # user = User.create! valid_attributes
207
+ # get :index, {}, valid_session
208
+ # expect(assigns(:resources)).to eq([user])
209
+ # end
210
+ # end
211
+ #
212
+ # describe "GET #show" do
213
+ # it "assigns the requested user as @resource" do
214
+ # user = User.create! valid_attributes
215
+ # get :show, {:id => user.to_param}, valid_session
216
+ # expect(assigns(:resource)).to eq(user)
217
+ # end
218
+ # end
219
+ #
220
+ #
221
+ # describe "GET #new" do
222
+ # it "assigns a new user as @resource" do
223
+ # get :new, {}, valid_session
224
+ # expect(assigns(:resource)).to be_a_new(User)
225
+ # end
226
+ # end
227
+ #
228
+ # describe "GET #edit" do
229
+ # it "assigns the requested user as @resource" do
230
+ # user = User.create! valid_attributes
231
+ # get :edit, {:id => user.to_param}, valid_session
232
+ # expect(assigns(:resource)).to eq(user)
233
+ # end
234
+ # end
235
+ #
236
+ # describe "POST #create" do
237
+ # context "with valid params" do
238
+ # it "creates a new User" do
239
+ # expect {
240
+ # post :create, {:user => valid_attributes}, valid_session
241
+ # }.to change(User, :count).by(1)
242
+ # end
243
+ #
244
+ # it "assigns a newly created user as @resource" do
245
+ # post :create, {:user => valid_attributes}, valid_session
246
+ # expect(assigns(:resource)).to be_a(User)
247
+ # expect(assigns(:resource)).to be_persisted
248
+ # end
249
+ #
250
+ # it "redirects to the list of users, as @resources" do
251
+ # post :create, {:user => valid_attributes}, valid_session
252
+ # expect(response).to redirect_to(users_url)
253
+ # end
254
+ # end
255
+ #
256
+ # # with Rails 4.x strong_parameters and Responders, forms with invalid attributes
257
+ # # will silently fail - thus depriving haxors any idea of the issues
258
+ # #
259
+ # # context "with invalid params" do
260
+ # # it "assigns a newly created but unsaved user as @user" do
261
+ # # post :create, {:user => invalid_attributes}, valid_session
262
+ # # expect(assigns(:resource)).to be_a_new(User)
263
+ # # end
264
+ # #
265
+ # # it "re-renders the 'new' template" do
266
+ # # post :create, {:user => invalid_attributes}, valid_session
267
+ # # expect(response).to render_template("new")
268
+ # # end
269
+ # # end
270
+ # end
271
+ #
272
+ # describe "PUT #update" do
273
+ # context "with valid params" do
274
+ # let(:new_attributes) {
275
+ # { login: 'mil'}
276
+ # }
277
+ #
278
+ # it "updates the requested @resource" do
279
+ # user = User.create! valid_attributes
280
+ # put :update, {:id => user.to_param, :user => new_attributes}, valid_session
281
+ # user.reload
282
+ # expect(user.login).to eq('mil')
283
+ # end
284
+ #
285
+ # it "assigns the requested user as @resource" do
286
+ # user = User.create! valid_attributes
287
+ # put :update, {:id => user.to_param, :user => valid_attributes}, valid_session
288
+ # expect(assigns(:resource)).to eq(user)
289
+ # end
290
+ #
291
+ # it "redirects to list of users" do
292
+ # user = User.create! valid_attributes
293
+ # put :update, {:id => user.to_param, :user => valid_attributes}, valid_session
294
+ # expect(response).to redirect_to(users_url)
295
+ # end
296
+ # end
297
+ #
298
+ # # with Rails 4.x strong_parameters and Responders, forms with invalid attributes
299
+ # # will silently fail - thus depriving haxors any idea of the issues
300
+ # #
301
+ # context "with invalid params" do
302
+ # it "assigns the user as @resource" do
303
+ # user = User.create! valid_attributes
304
+ # put :update, {:id => user.to_param, :user => invalid_attributes}, valid_session
305
+ # expect(assigns(:resource)).to eq(user)
306
+ # end
307
+ # #
308
+ # # it "re-renders the 'edit' template" do
309
+ # # user = User.create! valid_attributes
310
+ # # put :update, {:id => user.to_param, :user => invalid_attributes}, valid_session
311
+ # # expect(response).to render_template("edit")
312
+ # # end
313
+ # end
314
+ # end
315
+ #
316
+ # describe "DELETE #destroy" do
317
+ # it "destroys the requested user" do
318
+ # user = User.create! valid_attributes
319
+ # expect {
320
+ # delete :destroy, {:id => user.to_param}, valid_session
321
+ # }.to change(User, :count).by(-1)
322
+ # end
323
+ #
324
+ # it "redirects to the users list" do
325
+ # user = User.create! valid_attributes
326
+ # delete :destroy, {:id => user.to_param}, valid_session
327
+ # expect(response).to redirect_to(users_url)
328
+ # end
329
+ # end
64
330
 
65
- describe "GET #index" do
66
- it "assigns all users as @resources" do
67
- user = User.create! valid_attributes
68
- get :index, {}, valid_session
69
- expect(assigns(:resources)).to eq([user])
70
- end
71
- end
72
-
73
- describe "GET #show" do
74
- it "assigns the requested user as @resource" do
75
- user = User.create! valid_attributes
76
- get :show, {:id => user.to_param}, valid_session
77
- expect(assigns(:resource)).to eq(user)
78
- end
79
- end
80
-
81
-
82
- describe "GET #new" do
83
- it "assigns a new user as @resource" do
84
- get :new, {}, valid_session
85
- expect(assigns(:resource)).to be_a_new(User)
86
- end
87
- end
88
-
89
- describe "GET #edit" do
90
- it "assigns the requested user as @resource" do
91
- user = User.create! valid_attributes
92
- get :edit, {:id => user.to_param}, valid_session
93
- expect(assigns(:resource)).to eq(user)
94
- end
95
- end
96
-
97
- describe "POST #create" do
98
- context "with valid params" do
99
- it "creates a new User" do
100
- expect {
101
- post :create, {:user => valid_attributes}, valid_session
102
- }.to change(User, :count).by(1)
103
- end
104
331
 
105
- it "assigns a newly created user as @resource" do
106
- post :create, {:user => valid_attributes}, valid_session
107
- expect(assigns(:resource)).to be_a(User)
108
- expect(assigns(:resource)).to be_persisted
109
- end
332
+ describe "inherited methods to verify resources, classes and names" do
110
333
 
111
- it "redirects to the list of users, as @resources" do
112
- post :create, {:user => valid_attributes}, valid_session
113
- expect(response).to redirect_to(users_url)
114
- end
115
- end
116
334
 
117
- # with Rails 4.x strong_parameters and Responders, forms with invalid attributes
118
- # will silently fail - thus depriving haxors any idea of the issues
335
+ # it "any action should respond to parent?" do
336
+ # get :index
337
+ # expect(@controller.parent?).to eq(false)
338
+ # end
119
339
  #
120
- # context "with invalid params" do
121
- # it "assigns a newly created but unsaved user as @user" do
122
- # post :create, {:user => invalid_attributes}, valid_session
123
- # expect(assigns(:resource)).to be_a_new(User)
124
- # end
340
+ # it "any action should respond to resource" do
341
+ # get :new
342
+ # expect(@controller.resource).not_to eq(nil)
343
+ # end
125
344
  #
126
- # it "re-renders the 'new' template" do
127
- # post :create, {:user => invalid_attributes}, valid_session
128
- # expect(response).to render_template("new")
129
- # end
345
+ # it "index action should respond to resources" do
346
+ # get :index
347
+ # expect(@controller.resources).not_to eq(nil)
130
348
  # end
131
- end
132
-
133
- describe "PUT #update" do
134
- context "with valid params" do
135
- let(:new_attributes) {
136
- { login: 'mil'}
137
- }
138
-
139
- it "updates the requested @resource" do
140
- user = User.create! valid_attributes
141
- put :update, {:id => user.to_param, :user => new_attributes}, valid_session
142
- user.reload
143
- expect(user.login).to eq('mil')
144
- end
145
-
146
- it "assigns the requested user as @resource" do
147
- user = User.create! valid_attributes
148
- put :update, {:id => user.to_param, :user => valid_attributes}, valid_session
149
- expect(assigns(:resource)).to eq(user)
150
- end
151
-
152
- it "redirects to list of users" do
153
- user = User.create! valid_attributes
154
- put :update, {:id => user.to_param, :user => valid_attributes}, valid_session
155
- expect(response).to redirect_to(users_url)
156
- end
157
- end
158
-
159
- # with Rails 4.x strong_parameters and Responders, forms with invalid attributes
160
- # will silently fail - thus depriving haxors any idea of the issues
161
349
  #
162
- context "with invalid params" do
163
- it "assigns the user as @resource" do
164
- user = User.create! valid_attributes
165
- put :update, {:id => user.to_param, :user => invalid_attributes}, valid_session
166
- expect(assigns(:resource)).to eq(user)
167
- end
350
+ # it "any action should respond to resource_class" do
351
+ # get :new
352
+ # expect(@controller.resource_class).to eq(User)
353
+ # end
168
354
  #
169
- # it "re-renders the 'edit' template" do
170
- # user = User.create! valid_attributes
171
- # put :update, {:id => user.to_param, :user => invalid_attributes}, valid_session
172
- # expect(response).to render_template("edit")
173
- # end
174
- end
175
- end
176
-
177
- describe "DELETE #destroy" do
178
- it "destroys the requested user" do
179
- user = User.create! valid_attributes
180
- expect {
181
- delete :destroy, {:id => user.to_param}, valid_session
182
- }.to change(User, :count).by(-1)
183
- end
184
-
185
- it "redirects to the users list" do
186
- user = User.create! valid_attributes
187
- delete :destroy, {:id => user.to_param}, valid_session
188
- expect(response).to redirect_to(users_url)
189
- end
190
- end
191
-
192
-
193
- describe "inherited methods to verify resources, classes and names" do
194
-
195
- it "any action should respond to parent?" do
196
- get :index
197
- expect(@controller.parent?).to eq(false)
198
- end
199
-
200
- it "any action should respond to resource" do
201
- get :new
202
- expect(@controller.resource).not_to eq(nil)
203
- end
204
-
205
- it "index action should respond to resources" do
206
- get :index
207
- expect(@controller.resources).not_to eq(nil)
208
- end
209
-
210
- it "any action should respond to resource_class" do
211
- get :new
212
- expect(@controller.resource_class).to eq(User)
213
- end
214
-
215
- it "any action should respond to resource_name" do
216
- get :new
217
- expect(@controller.resource_name).to eq('users')
218
- end
219
-
220
- it "any action should respond to parent_class" do
221
- get :new
222
- expect(@controller.parent_class).to eq(NilClass)
223
- end
224
-
225
- it "should return a url on the resource" do
226
- user = User.create! valid_attributes
227
- response = get :show, {:id => user.to_param, murky: '2'}, valid_session
228
- expect(@controller.resource_url).to eq "/users/#{user.id}?murky=2"
229
- end
230
-
231
- it "should return a url on the resources" do
232
- user = User.create! valid_attributes
233
- get :index, {:id => user.to_param}, valid_session
234
- expect(@controller.resources_url).to eq "/users"
235
- end
355
+ # it "any action should respond to resource_name" do
356
+ # get :new
357
+ # expect(@controller.resource_name).to eq('users')
358
+ # end
359
+ #
360
+ # it "any action should respond to parent_class" do
361
+ # get :new
362
+ # expect(@controller.parent_class).to eq(NilClass)
363
+ # end
364
+ #
365
+ # it "should return a url on the resource" do
366
+ # user = User.create! valid_attributes
367
+ # response = get :show, {:id => user.to_param, murky: '2'}, valid_session
368
+ # expect(@controller.resource_url).to eq "/users/#{user.id}?murky=2"
369
+ # end
370
+ #
371
+ # it "should return a url on the resources" do
372
+ # user = User.create! valid_attributes
373
+ # get :index, {:id => user.to_param}, valid_session
374
+ # expect(@controller.resources_url).to eq "/users"
375
+ # end
236
376
 
237
377
  end
238
378