sweet-alert2-rails 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.travis.yml +14 -0
  4. data/Gemfile +41 -0
  5. data/MIT-LICENSE +20 -0
  6. data/README.md +86 -0
  7. data/Rakefile +12 -0
  8. data/bin/rake +17 -0
  9. data/doc/after.png +0 -0
  10. data/doc/before.png +0 -0
  11. data/lib/assets/javascripts/sweet-alert2-rails.js +85 -0
  12. data/lib/sweet-alert2-rails.rb +6 -0
  13. data/lib/sweet-alert2-rails/rails/engine.rb +6 -0
  14. data/lib/sweet-alert2-rails/railtie.rb +9 -0
  15. data/lib/sweet-alert2-rails/version.rb +3 -0
  16. data/lib/sweet-alert2-rails/view_helpers.rb +39 -0
  17. data/spec/dummy/.gitignore +2 -0
  18. data/spec/dummy/.rspec +1 -0
  19. data/spec/dummy/README.rdoc +28 -0
  20. data/spec/dummy/Rakefile +6 -0
  21. data/spec/dummy/app/assets/images/.keep +0 -0
  22. data/spec/dummy/app/assets/javascripts/application.js +17 -0
  23. data/spec/dummy/app/assets/javascripts/application_turbolinks.js +18 -0
  24. data/spec/dummy/app/assets/javascripts/confirms.js +2 -0
  25. data/spec/dummy/app/assets/stylesheets/application.css +16 -0
  26. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  27. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  28. data/spec/dummy/app/controllers/confirms_controller.rb +13 -0
  29. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  30. data/spec/dummy/app/mailers/.keep +0 -0
  31. data/spec/dummy/app/models/.keep +0 -0
  32. data/spec/dummy/app/models/concerns/.keep +0 -0
  33. data/spec/dummy/app/views/confirms/delete_cow.html.erb +1 -0
  34. data/spec/dummy/app/views/confirms/delete_cow.js.erb +1 -0
  35. data/spec/dummy/app/views/confirms/get_cow.html.erb +1 -0
  36. data/spec/dummy/app/views/confirms/index.html.erb +19 -0
  37. data/spec/dummy/app/views/confirms/pre_index.html.erb +1 -0
  38. data/spec/dummy/app/views/layouts/application.html.erb +18 -0
  39. data/spec/dummy/bin/bundle +3 -0
  40. data/spec/dummy/bin/rails +4 -0
  41. data/spec/dummy/bin/rake +4 -0
  42. data/spec/dummy/config.ru +4 -0
  43. data/spec/dummy/config/application.rb +28 -0
  44. data/spec/dummy/config/boot.rb +5 -0
  45. data/spec/dummy/config/database.yml +25 -0
  46. data/spec/dummy/config/environment.rb +5 -0
  47. data/spec/dummy/config/environments/development.rb +37 -0
  48. data/spec/dummy/config/environments/production.rb +78 -0
  49. data/spec/dummy/config/environments/test.rb +43 -0
  50. data/spec/dummy/config/initializers/assets.rb +8 -0
  51. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  52. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  53. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  54. data/spec/dummy/config/initializers/inflections.rb +16 -0
  55. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  56. data/spec/dummy/config/initializers/secret_token.rb +1 -0
  57. data/spec/dummy/config/initializers/session_store.rb +3 -0
  58. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  59. data/spec/dummy/config/locales/en.yml +23 -0
  60. data/spec/dummy/config/routes.rb +60 -0
  61. data/spec/dummy/config/secrets.yml +22 -0
  62. data/spec/dummy/lib/assets/.keep +0 -0
  63. data/spec/dummy/log/.keep +0 -0
  64. data/spec/dummy/public/404.html +67 -0
  65. data/spec/dummy/public/422.html +67 -0
  66. data/spec/dummy/public/500.html +66 -0
  67. data/spec/dummy/public/favicon.ico +0 -0
  68. data/spec/features/sweet_alert_confirm_spec.rb +116 -0
  69. data/spec/spec_helper.rb +50 -0
  70. data/sweet-alert2-rails.gemspec +24 -0
  71. metadata +169 -0
@@ -0,0 +1,23 @@
1
+ # Files in the config/locales directory are used for internationalization
2
+ # and are automatically loaded by Rails. If you want to use locales other
3
+ # than English, add the necessary files in this directory.
4
+ #
5
+ # To use the locales, use `I18n.t`:
6
+ #
7
+ # I18n.t 'hello'
8
+ #
9
+ # In views, this is aliased to just `t`:
10
+ #
11
+ # <%= t('hello') %>
12
+ #
13
+ # To use a different locale, set it with `I18n.locale`:
14
+ #
15
+ # I18n.locale = :es
16
+ #
17
+ # This would use the information in config/locales/es.yml.
18
+ #
19
+ # To learn more, please read the Rails Internationalization guide
20
+ # available at http://guides.rubyonrails.org/i18n.html.
21
+
22
+ en:
23
+ hello: "Hello world"
@@ -0,0 +1,60 @@
1
+ Rails.application.routes.draw do
2
+ # The priority is based upon order of creation: first created -> highest priority.
3
+ # See how all your routes lay out with "rake routes".
4
+
5
+ # You can have the root of your site routed with "root"
6
+ # root 'welcome#index'
7
+
8
+ # Example of regular route:
9
+ # get 'products/:id' => 'catalog#view'
10
+
11
+ # Example of named route that can be invoked with purchase_url(id: product.id)
12
+ # get 'products/:id/purchase' => 'catalog#purchase', as: :purchase
13
+
14
+ # Example resource route (maps HTTP verbs to controller actions automatically):
15
+ # resources :products
16
+
17
+ # Example resource route with options:
18
+ # resources :products do
19
+ # member do
20
+ # get 'short'
21
+ # post 'toggle'
22
+ # end
23
+ #
24
+ # collection do
25
+ # get 'sold'
26
+ # end
27
+ # end
28
+
29
+ # Example resource route with sub-resources:
30
+ # resources :products do
31
+ # resources :comments, :sales
32
+ # resource :seller
33
+ # end
34
+
35
+ # Example resource route with more complex sub-resources:
36
+ # resources :products do
37
+ # resources :comments
38
+ # resources :sales do
39
+ # get 'recent', on: :collection
40
+ # end
41
+ # end
42
+
43
+ # Example resource route with concerns:
44
+ # concern :toggleable do
45
+ # post 'toggle'
46
+ # end
47
+ # resources :posts, concerns: :toggleable
48
+ # resources :photos, concerns: :toggleable
49
+
50
+ # Example resource route within a namespace:
51
+ # namespace :admin do
52
+ # # Directs /admin/products/* to Admin::ProductsController
53
+ # # (app/controllers/admin/products_controller.rb)
54
+ # resources :products
55
+ # end
56
+ root 'confirms#pre_index'
57
+ get :confirms_page, to: 'confirms#index'
58
+ get :get_cow, to: 'confirms#get_cow'
59
+ delete :delete_cow, to: 'confirms#delete_cow'
60
+ end
@@ -0,0 +1,22 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key is used for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+
6
+ # Make sure the secret is at least 30 characters and all random,
7
+ # no regular words or you'll be exposed to dictionary attacks.
8
+ # You can use `rake secret` to generate a secure secret key.
9
+
10
+ # Make sure the secrets in this file are kept private
11
+ # if you're sharing your code publicly.
12
+
13
+ development:
14
+ secret_key_base: e8cc5e5942f7ba2eba6ce00e782341614cd9b7021c0b42c21ba3936cbdee427c8859deb1c8cbb01a0f2cb55e182bd84331d412faccb8e1af06337d3a7e1766da
15
+
16
+ test:
17
+ secret_key_base: 9c7009515b2b0bfd62c4a47c5fb724cab04067efe270bd4e3efe1123199249286a628fe9001087b9b6b9425277bcf23a3bfa775d0c6af79fe860e5d217f7131a
18
+
19
+ # Do not keep production secrets in the repository,
20
+ # instead read values from the environment.
21
+ production:
22
+ secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
File without changes
File without changes
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
@@ -0,0 +1,116 @@
1
+ require 'spec_helper'
2
+ require 'pry'
3
+
4
+ describe 'basic confirms', js: true, type: :feature do
5
+ before do
6
+ if ENV['USE_TURBOLINKS']
7
+ visit root_path
8
+ page.execute_script('Turbolinks.visit("/confirms_page");')
9
+ #find_link('Index').trigger('click')
10
+ else
11
+ visit root_path
12
+ click_link 'Index'
13
+ end
14
+ end
15
+
16
+ shared_examples 'Confirm shows correctly' do |is_cow_deleted, is_remote|
17
+ let(:got_cow) { 'You got a pretty cow' }
18
+ let(:deleted_cow) { 'You murdered a silly cow' }
19
+ let(:message) { is_cow_deleted ? deleted_cow : got_cow }
20
+
21
+ it 'doesnt follow the link when click' do
22
+ expect(page).to have_content('Are you sure?')
23
+ expect(page).not_to have_content(message)
24
+ end
25
+
26
+ it 'doesnt follow the link when click on cancel' do
27
+ sleep 1
28
+ expect(page).to_not have_content(message)
29
+ click_button('Cancel')
30
+ sleep 1
31
+ expect(page).to_not have_content(message)
32
+ end
33
+
34
+ it 'goes to the link after accept confirm' do
35
+ #click_on '.confirm'
36
+ expect(page).to_not have_content(message)
37
+ sleep 1
38
+ click_button('Ok')
39
+ expect(page).to have_content(message)
40
+ end unless is_remote
41
+ end
42
+
43
+
44
+
45
+ describe 'normal links' do
46
+ before do
47
+ #visit confirms_page_path
48
+ find_link("Basic confirm").trigger('click')
49
+ end
50
+
51
+ it_behaves_like 'Confirm shows correctly'
52
+ end
53
+ #
54
+ # describe 'methods links' do
55
+ # before do
56
+ # find_link("Delete confirm").trigger('click')
57
+ # sleep 2
58
+ # end
59
+ #
60
+ # it_behaves_like 'Confirm shows correctly', true
61
+ # end
62
+ #
63
+ # describe 'remote links' do
64
+ # before do
65
+ # find_link("Remote confirm").trigger('click')
66
+ # sleep 3
67
+ # end
68
+ #
69
+ # it_behaves_like 'Confirm shows correctly', true, true
70
+ #
71
+ #
72
+ # it 'ajax change content in the page after accept confirm' do
73
+ # #click_on '.confirm'
74
+ # sleep 3
75
+ # expect(page).to_not have_content('You murdered a silly cow with ajax')
76
+ # sleep 3
77
+ # click_button('Ok')
78
+ # expect(page).to have_content('You murdered a silly cow with ajax')
79
+ # end
80
+ # end
81
+ #
82
+ # describe 'Custom confirm' do
83
+ # before do
84
+ # visit confirms_page_path
85
+ # end
86
+ # it 'when click on a link with a confirm and have custom options' do
87
+ # find_link("Custom confirm").trigger('click')
88
+ # sleep 1
89
+ # expect(page).to have_css('.confirm', text: 'Im ready')
90
+ # expect(page).to have_css('.cancel', text: 'No way')
91
+ # expect(page).to have_css('.sa-info', visible: true)
92
+ # expect(page).to have_css('h2', text: 'Are you ready?')
93
+ # expect(page).to have_css('p', text: 'This is a subtitle')
94
+ #
95
+ # end
96
+ # end
97
+ #
98
+ # describe 'Submit confirm' do
99
+ # before do
100
+ # #visit confirms_page_path
101
+ # find("#submit-delete").trigger('click')
102
+ # end
103
+ # it_behaves_like 'Confirm shows correctly', true
104
+ # end
105
+ #
106
+ # describe 'button_tag links' do
107
+ # before do
108
+ # #visit confirms_page_path
109
+ # find_button("Button_tag confirm").trigger('click')
110
+ # end
111
+ #
112
+ # it_behaves_like 'Confirm shows correctly', true
113
+ # end
114
+
115
+
116
+ end
@@ -0,0 +1,50 @@
1
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
2
+ ENV["RAILS_ENV"] ||= 'test'
3
+ dummy_app = 'dummy'
4
+ dummy_app = 'dummy' if ENV[ 'RAILS_VERSION' ] == 'master'
5
+ require File.expand_path("../#{dummy_app}/config/environment", __FILE__)
6
+ require 'rspec/rails'
7
+ require 'rspec/autorun'
8
+ require 'capybara/rspec'
9
+
10
+ # Requires supporting ruby files with custom matchers and macros, etc,
11
+ # in spec/support/ and its subdirectories.
12
+ Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
13
+
14
+ # Checks for pending migrations before tests are run.
15
+ # If you are not using ActiveRecord, you can remove this line.
16
+ #ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
17
+
18
+ RSpec.configure do |config|
19
+ # ## Mock Framework
20
+ #
21
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
22
+ #
23
+ # config.mock_with :mocha
24
+ # config.mock_with :flexmock
25
+ # config.mock_with :rr
26
+
27
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
28
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
29
+
30
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
31
+ # examples within a transaction, remove the following line or assign false
32
+ # instead of true.
33
+ config.use_transactional_fixtures = true
34
+
35
+ # If true, the base class of anonymous controllers will be inferred
36
+ # automatically. This will be the default behavior in future versions of
37
+ # rspec-rails.
38
+ config.infer_base_class_for_anonymous_controllers = false
39
+
40
+ # Run specs in random order to surface order dependencies. If you find an
41
+ # order dependency and want to debug it, you can fix the order by providing
42
+ # the seed, which is printed after each run.
43
+ # --seed 1234
44
+ config.order = "random"
45
+
46
+ #Capybara
47
+ config.include Capybara::DSL
48
+ require 'capybara/webkit'
49
+ Capybara.javascript_driver = :webkit
50
+ end