quadro 0.5.8 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +5 -13
  2. data/MIT-LICENSE +1 -1
  3. data/Rakefile +8 -10
  4. data/app/assets/javascripts/quadro/widget.js.coffee +12 -9
  5. data/app/controllers/quadro/application_controller.rb +22 -4
  6. data/app/controllers/quadro/assets_controller.rb +1 -1
  7. data/app/controllers/quadro/pages_controller.rb +1 -1
  8. data/app/controllers/quadro/{tools_controller.rb → sitemaps_controller.rb} +2 -2
  9. data/app/controllers/quadro/users_controller.rb +1 -1
  10. data/app/controllers/quadro/widgets_controller.rb +1 -1
  11. data/app/models/quadro/asset.rb +1 -1
  12. data/app/models/quadro/asset/cover.rb +2 -2
  13. data/app/models/quadro/asset/image.rb +2 -2
  14. data/app/models/quadro/asset/slide.rb +2 -2
  15. data/app/models/quadro/interaction.rb +1 -2
  16. data/app/models/quadro/page.rb +2 -3
  17. data/app/models/quadro/user.rb +2 -2
  18. data/app/models/quadro/widget.rb +0 -3
  19. data/app/models/quadro/widget/gallery.rb +0 -1
  20. data/app/models/quadro/widget/html.rb +0 -1
  21. data/app/models/quadro/widget/slider.rb +0 -1
  22. data/app/views/quadro/assets/image/_image.html.haml +1 -1
  23. data/app/views/quadro/assets/slide/_slide.html.haml +1 -1
  24. data/app/views/quadro/shared/_navigation.html.haml +2 -2
  25. data/app/views/quadro/shared/_toolbar.html.haml +2 -2
  26. data/app/views/quadro/shared/templates/_demo.html.haml +2 -0
  27. data/app/views/quadro/sitemaps/index.xml.builder +18 -0
  28. data/app/views/quadro/{tools/sitemap_notifier.js.erb → sitemaps/ping.js.erb} +0 -0
  29. data/config/initializers/simple_form.rb +46 -23
  30. data/config/initializers/simple_form_bootstrap.rb +124 -54
  31. data/config/locales/en.yml +1 -0
  32. data/config/locales/simple_form.en.yml +31 -0
  33. data/config/routes.rb +5 -5
  34. data/lib/generators/quadro/install/templates/app/views/quadro/shared/_navigation.html.haml +1 -1
  35. data/lib/generators/quadro/install/templates/app/views/quadro/shared/templates/_demo.html.haml +2 -0
  36. data/lib/quadro/loader.rb +1 -3
  37. data/lib/quadro/version.rb +1 -1
  38. data/lib/templates/erb/scaffold/_form.html.erb +13 -0
  39. data/test/dummy/README.rdoc +15 -248
  40. data/test/dummy/Rakefile +1 -2
  41. data/test/dummy/app/assets/javascripts/application.js +4 -6
  42. data/test/dummy/app/assets/stylesheets/application.css +6 -4
  43. data/test/dummy/app/controllers/application_controller.rb +3 -1
  44. data/test/dummy/app/views/layouts/application.html.erb +2 -2
  45. data/test/dummy/app/views/quadro/shared/_navigation.html.haml +2 -2
  46. data/test/dummy/app/views/quadro/shared/templates/_demo.html.haml +2 -0
  47. data/test/dummy/bin/bundle +3 -0
  48. data/test/dummy/bin/rails +4 -0
  49. data/test/dummy/bin/rake +4 -0
  50. data/test/dummy/bin/setup +29 -0
  51. data/test/dummy/config.ru +2 -2
  52. data/test/dummy/config/application.rb +3 -35
  53. data/test/dummy/config/boot.rb +4 -9
  54. data/test/dummy/config/database.yml +8 -8
  55. data/test/dummy/config/environment.rb +3 -3
  56. data/test/dummy/config/environments/development.rb +22 -18
  57. data/test/dummy/config/environments/production.rb +46 -34
  58. data/test/dummy/config/environments/test.rb +19 -14
  59. data/test/dummy/config/initializers/assets.rb +11 -0
  60. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  61. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  62. data/test/dummy/config/initializers/inflections.rb +6 -5
  63. data/test/dummy/config/initializers/mime_types.rb +0 -1
  64. data/test/dummy/config/initializers/session_store.rb +1 -6
  65. data/test/dummy/config/initializers/wrap_parameters.rb +6 -6
  66. data/test/dummy/config/locales/en.yml +20 -2
  67. data/test/dummy/config/secrets.yml +22 -0
  68. data/test/dummy/db/migrate/{20160615055717_create_quadro_widgets.quadro.rb → 20160701222828_create_quadro_widgets.quadro.rb} +0 -0
  69. data/test/dummy/db/migrate/{20160615055718_create_quadro_pages.quadro.rb → 20160701222829_create_quadro_pages.quadro.rb} +0 -0
  70. data/test/dummy/db/migrate/{20160615055719_create_quadro_assets.quadro.rb → 20160701222830_create_quadro_assets.quadro.rb} +0 -0
  71. data/test/dummy/db/migrate/{20160615055720_devise_create_quadro_users.quadro.rb → 20160701222831_devise_create_quadro_users.quadro.rb} +0 -0
  72. data/test/dummy/db/migrate/{20160615055721_create_quadro_interactions.quadro.rb → 20160701222832_create_quadro_interactions.quadro.rb} +0 -0
  73. data/test/dummy/db/migrate/{20160619183944_add_published_at_field_on_quadro_pages.quadro.rb → 20160701222833_add_published_at_field_on_quadro_pages.quadro.rb} +0 -0
  74. data/test/dummy/db/schema.rb +36 -36
  75. data/test/integration/navigation_test.rb +0 -2
  76. data/test/test_helper.rb +9 -6
  77. metadata +201 -232
  78. data/README.md +0 -221
  79. data/app/assets/stylesheets/bootstrap/_mixins.scss +0 -40
  80. data/config/initializers/sitemap.rb +0 -9
  81. data/test/dummy/config/initializers/secret_token.rb +0 -7
  82. data/test/dummy/log/test.log +0 -0
  83. data/test/dummy/script/rails +0 -6
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YmE1MTI2NWViNTExOTdmNjAxMjAxYWM2OTFjNmZhNGZjYTY2MzY3Nw==
5
- data.tar.gz: !binary |-
6
- Y2RlYzQxZDFmNTdiMzAxYjk2YmYxMDhlZDdjNmEyYjg4OTFhMzY5Yg==
2
+ SHA1:
3
+ metadata.gz: bb73dbba9bba95e0a98de38a88a54825627196bb
4
+ data.tar.gz: 44dc4d9378f2bab776475b435db9a5d9f7e24033
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ODA3OGE4MzU3MzNmMGUzNDY1M2U5ODdhYWI4ODk3YzZmMjk1ZGI5YTc5MDRi
10
- ODljYjI4ZWVhZWQ2MDE5MTNkN2QzYzg3YjFjNjY0YTYwZmQ3MTQ0MTA3NDVh
11
- OGFhNjhhZGU0OWU2NWFkODc4ZTFmODEyZWM4ODk2Yjc3MzRkYjg=
12
- data.tar.gz: !binary |-
13
- MTU3NGVlZDkxYjRiZTBiYzdjM2UxOTU1ODk5NmU4MzYzMWJjYmVkOGM2NGQx
14
- ZDM0YTlhNDIzODBlYzkyODA0ZTM5MjFlNWVmOWM1NjNkZjk2ZTZkOTU0OTRm
15
- YTc3NzA5NzEyMGFlNDZiMWI1MGVkNDZiOGVjZThjN2E0YzAyMzc=
6
+ metadata.gz: 7928d0cbf90829226ff70643fc40bb226441e1cbe3acca801f1c1030b26dec330161660b786e1498c809b5580524ec89408e46c87bcbc035f31f1b6dcf84431e
7
+ data.tar.gz: 7e5f1abeb88f5045751e5c568b315f078951b8317cd775f93455c79a3db044c72578173a6b3afdcb3f56d89fe9b60d393f12e2510829835df7c2ec1d2d3cef92
@@ -1,4 +1,4 @@
1
- Copyright 2014 YOURNAME
1
+ Copyright 2016 Hugo Gilmar Erazo
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/Rakefile CHANGED
@@ -1,16 +1,10 @@
1
- #!/usr/bin/env rake
2
1
  begin
3
2
  require 'bundler/setup'
4
3
  rescue LoadError
5
4
  puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
5
  end
7
- begin
8
- require 'rdoc/task'
9
- rescue LoadError
10
- require 'rdoc/rdoc'
11
- require 'rake/rdoctask'
12
- RDoc::Task = Rake::RDocTask
13
- end
6
+
7
+ require 'rdoc/task'
14
8
 
15
9
  RDoc::Task.new(:rdoc) do |rdoc|
16
10
  rdoc.rdoc_dir = 'rdoc'
@@ -20,9 +14,14 @@ RDoc::Task.new(:rdoc) do |rdoc|
20
14
  rdoc.rdoc_files.include('lib/**/*.rb')
21
15
  end
22
16
 
23
- APP_RAKEFILE = File.expand_path('../test/dummy/Rakefile', __FILE__)
17
+ APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
24
18
  load 'rails/tasks/engine.rake'
25
19
 
20
+
21
+ load 'rails/tasks/statistics.rake'
22
+
23
+
24
+
26
25
  Bundler::GemHelper.install_tasks
27
26
 
28
27
  require 'rake/testtask'
@@ -34,6 +33,5 @@ Rake::TestTask.new(:test) do |t|
34
33
  t.verbose = false
35
34
  end
36
35
 
37
- require 'turnout/rake_tasks'
38
36
 
39
37
  task default: :test
@@ -19,21 +19,24 @@ class Widget
19
19
  tabSize: 2
20
20
  mode: 'htmlmixed'
21
21
  theme: 'monokai'
22
- onChange: =>
23
- @setChanged()
24
- onfocus: =>
25
- @setFocus()
26
- return
22
+ callbacks:
23
+ onChange: =>
24
+ console.log "summernote:change"
25
+ @setChanged()
26
+ return
27
+ onfocus: =>
28
+ @setFocus()
29
+ return
27
30
  return
28
31
 
29
32
  switchAirmodeOn: ->
30
- @element.destroy()
33
+ @element.summernote('destroy')
31
34
  @airmode = true
32
35
  @summernote()
33
36
  return
34
37
 
35
38
  switchAirmodeOff: ->
36
- @element.destroy()
39
+ @element.summernote('destroy')
37
40
  @airmode = false
38
41
  @summernote()
39
42
  return
@@ -47,7 +50,7 @@ class Widget
47
50
  update: ->
48
51
  $.ajax
49
52
  url: "#{@path}"
50
- type: "PUT"
53
+ type: 'PUT'
51
54
  data:
52
55
  widget:
53
56
  content: @content
@@ -58,7 +61,7 @@ class Widget
58
61
  return
59
62
 
60
63
  getContent: ->
61
- @content = $(".widget-html[data-name=#{@name}]").code()
64
+ @content = $(".widget-html[data-name=#{@name}]").summernote('code')
62
65
  return
63
66
 
64
67
  setFocus: ->
@@ -46,7 +46,7 @@ module Quadro
46
46
  asset_type = params[:type]
47
47
  if Quadro.available_assets.include?(asset_type)
48
48
  klass = asset_type.constantize
49
- new_asset = klass.new(params[:asset])
49
+ new_asset = klass.new(asset_params)
50
50
  if widget.present?
51
51
  widget.assets << new_asset
52
52
  elsif page.present?
@@ -87,7 +87,7 @@ module Quadro
87
87
  when %w(new).include?(action_name)
88
88
  parent.children.new
89
89
  when %w(create).include?(action_name)
90
- parent.children.new(params[:page])
90
+ parent.children.new(page_params)
91
91
  when %w(edit update form publish unpublish).include?(action_name)
92
92
  root.subtree.find_by_slug(params[:id]) rescue nil
93
93
  else
@@ -106,9 +106,9 @@ module Quadro
106
106
 
107
107
  def subpages
108
108
  if user_signed_in?
109
- @subpages ||= page.children.ordered.page(params[:page])
109
+ @subpages ||= page.children.ordered.page(params[:page]).per(1)
110
110
  else
111
- @subpages ||= page.children.published.ordered.page(params[:page])
111
+ @subpages ||= page.children.published.ordered.page(params[:page]).per(1)
112
112
  end
113
113
  end
114
114
 
@@ -135,5 +135,23 @@ module Quadro
135
135
  def not_found_page
136
136
  render file: 'public/404', status: :not_found, layout: false
137
137
  end
138
+
139
+ private
140
+
141
+ def page_params
142
+ params.require(:page).permit(:title, :summary, :template, :frequency, :priority, :cover_attributes, :author_id, :published_at)
143
+ end
144
+
145
+ def widget_params
146
+ params.require(:widget).permit(:name, :type, :content, :width, :height)
147
+ end
148
+
149
+ def asset_params
150
+ params.require(:asset).permit(:attachment, :width, :height, :alt, :href)
151
+ end
152
+
153
+ def user_params
154
+ params.require(:user).permit(:email, :password, :password_confirmation, :remember_me, :name)
155
+ end
138
156
  end
139
157
  end
@@ -15,7 +15,7 @@ module Quadro
15
15
  end
16
16
 
17
17
  def update
18
- if asset.update_attributes(params[:asset])
18
+ if asset.update_attributes(asset_params)
19
19
  flash[:notice] = t('quadro.flash.updated')
20
20
  else
21
21
  flash[:alert] = t('quadro.flash.not_updated')
@@ -18,7 +18,7 @@ module Quadro
18
18
  end
19
19
 
20
20
  def update
21
- if page.update_attributes(params[:page])
21
+ if page.update_attributes(page_params)
22
22
  flash[:notice] = t('quadro.flash.updated')
23
23
  else
24
24
  flash[:alert] = t('quadro.flash.not_updated')
@@ -1,12 +1,12 @@
1
1
  require_dependency 'quadro/application_controller'
2
2
 
3
3
  module Quadro
4
- class ToolsController < ApplicationController
4
+ class SitemapsController < ApplicationController
5
5
  before_filter :authenticate_user!
6
6
 
7
7
  respond_to :js, :json, :xml
8
8
 
9
- def sitemap_notifier
9
+ def ping
10
10
  notifier.run(sitemap_url)
11
11
  flash[:notice] = t('quadro.flash.notified')
12
12
  end
@@ -7,7 +7,7 @@ module Quadro
7
7
  respond_to :js, :json, :xml
8
8
 
9
9
  def update
10
- if user.update_with_password(params[:user])
10
+ if user.update_with_password(user_params)
11
11
  sign_in user, bypass: true
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@ module Quadro
7
7
  respond_to :js, :json, :xml
8
8
 
9
9
  def update
10
- if widget.update_attributes(params[:widget])
10
+ if widget.update_attributes(widget_params)
11
11
  flash[:notice] = t('quadro.flash.updated')
12
12
  else
13
13
  flash[:alert] = t('quadro.flash.not_updated')
@@ -1,7 +1,7 @@
1
1
  module Quadro
2
2
  class Asset < ActiveRecord::Base
3
3
  # attributes
4
- attr_accessible :attachment
4
+ # attr_accessible :attachment
5
5
 
6
6
  delegate :url, to: :attachment
7
7
 
@@ -2,8 +2,8 @@ module Quadro
2
2
  class Asset::Cover < Asset
3
3
  # attributes
4
4
  store :settings, accessors: [:width, :height, :alt]
5
- attr_accessible :width, :height, :alt
6
- has_attached_file :attachment, styles: { thumb: '200x200#', small: '800x600>', medium: '1024x768>', large: '1280x1024>' }, default_url: '/assets/quadro/missing/cover/:style.png'
5
+ # attr_accessible :width, :height, :alt
6
+ has_attached_file :attachment, styles: { thumb: '200x200#', small: '800x600>', medium: '1024x768>', large: '1280x1024>' }, default_url: 'quadro/missing/cover/:style.png'
7
7
 
8
8
  # validations
9
9
  validates :alt, length: { maximum: 60 }
@@ -2,8 +2,8 @@ module Quadro
2
2
  class Asset::Image < Asset
3
3
  # attributes
4
4
  store :settings, accessors: [:width, :height, :alt]
5
- attr_accessible :width, :height, :alt
6
- has_attached_file :attachment, styles: { thumb: '200x200#', small: '320x240>', medium: '640x480>', large: '800x600>' }, default_url: '/assets/quadro/missing/image/:style.png'
5
+ # attr_accessible :width, :height, :alt
6
+ has_attached_file :attachment, styles: { thumb: '200x200#', small: '320x240>', medium: '640x480>', large: '800x600>' }, default_url: 'quadro/missing/image/:style.png'
7
7
 
8
8
  # validations
9
9
  validates :alt, length: { maximum: 60 }
@@ -2,8 +2,8 @@ module Quadro
2
2
  class Asset::Slide < Asset
3
3
  # attributes
4
4
  store :settings, accessors: [:width, :height, :alt, :href]
5
- attr_accessible :width, :height, :alt, :href
6
- has_attached_file :attachment, styles: { thumb: '200x200#', small: '640x480>', medium: '800x600>', large: '1024x768>' }, default_url: '/assets/quadro/missing/slide/:style.png'
5
+ # attr_accessible :width, :height, :alt, :href
6
+ has_attached_file :attachment, styles: { thumb: '200x200#', small: '640x480>', medium: '800x600>', large: '1024x768>' }, default_url: 'quadro/missing/slide/:style.png'
7
7
 
8
8
  # validations
9
9
  validates :alt, length: { maximum: 60 }
@@ -1,13 +1,12 @@
1
1
  module Quadro
2
2
  class Interaction < ActiveRecord::Base
3
3
  # attributes
4
- attr_accessible :content, :ip_address, :user_agent
5
4
  serialize :content, Hash
6
5
 
7
6
  # associations
8
7
  belongs_to :interactable, polymorphic: true
9
8
 
10
9
  # scopes
11
- default_scope order('quadro_interactions.created_at DESC')
10
+ default_scope -> { order('quadro_interactions.created_at DESC') }
12
11
  end
13
12
  end
@@ -6,7 +6,6 @@ module Quadro
6
6
  SITEMAP_PRIORITY = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0].freeze
7
7
 
8
8
  # attributes
9
- attr_accessible :title, :summary, :template, :frequency, :priority, :cover_attributes, :author_id, :published_at
10
9
  store :settings, accessors: [:template, :frequency, :priority]
11
10
 
12
11
  # validations
@@ -36,8 +35,8 @@ module Quadro
36
35
  delegate :name, :email, to: :author, prefix: true, allow_nil: true
37
36
 
38
37
  # scopes
39
- scope :ordered, order('quadro_pages.published_at DESC, quadro_pages.created_at DESC')
40
- scope :published, where('quadro_pages.published_at IS NOT NULL')
38
+ scope :ordered, -> { order('quadro_pages.published_at DESC, quadro_pages.created_at DESC') }
39
+ scope :published, -> { where('quadro_pages.published_at IS NOT NULL') }
41
40
 
42
41
  # methods
43
42
  def publish!
@@ -1,7 +1,7 @@
1
1
  module Quadro
2
2
  class User < ActiveRecord::Base
3
3
  # attributes
4
- attr_accessible :email, :password, :password_confirmation, :remember_me, :name
4
+ # attr_accessible :email, :password, :password_confirmation, :remember_me, :name
5
5
 
6
6
  # behaviours
7
7
  devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable, :lockable
@@ -14,6 +14,6 @@ module Quadro
14
14
  has_many :pages, dependent: :destroy
15
15
 
16
16
  # scopes
17
- scope :ordered, order('quadro_users.name ASC')
17
+ scope :ordered, -> { order('quadro_users.name ASC') }
18
18
  end
19
19
  end
@@ -1,8 +1,5 @@
1
1
  module Quadro
2
2
  class Widget < ActiveRecord::Base
3
- # attributes
4
- attr_accessible :name, :type
5
-
6
3
  # validations
7
4
  validates :name, uniqueness: { scope: :page_id }
8
5
 
@@ -1,7 +1,6 @@
1
1
  module Quadro
2
2
  class Widget::Gallery < Widget
3
3
  # attributes
4
- attr_accessible :content
5
4
  store :settings, accessors: [:width, :height]
6
5
 
7
6
  # associations
@@ -1,7 +1,6 @@
1
1
  module Quadro
2
2
  class Widget::Html < Widget
3
3
  # attributes
4
- attr_accessible :content
5
4
  store :settings, accessors: [:width, :height]
6
5
 
7
6
  # methods
@@ -1,7 +1,6 @@
1
1
  module Quadro
2
2
  class Widget::Slider < Widget
3
3
  # attributes
4
- attr_accessible :content
5
4
  store :settings, accessors: [:width, :height]
6
5
 
7
6
  # associations
@@ -6,5 +6,5 @@
6
6
 
7
7
  = link_to (widget.present? ? edit_page_widget_asset_path(page_id: page.id, widget_id: widget.id, id: asset.id) : edit_page_asset_path(id: asset.id, page_id: page.id)), remote: true, class: "btn btn-link btn-xs" do
8
8
  %i.fa.fa-pencil.text-muted
9
- = link_to (widget.present? ? page_widget_asset_path(page_id: page.id, widget_id: widget.id, id: asset.id) : page_asset_path(id: asset.id, page_id: page.id)), method: "delete", confirm: t('quadro.confirmation.image'), remote: true, class: "btn btn-link btn-xs" do
9
+ = link_to (widget.present? ? page_widget_asset_path(page_id: page.id, widget_id: widget.id, id: asset.id) : page_asset_path(id: asset.id, page_id: page.id)), method: "delete", data: { confirm: t('quadro.confirmation.image') }, remote: true, class: "btn btn-link btn-xs" do
10
10
  %i.fa.fa-trash-o.text-danger
@@ -5,5 +5,5 @@
5
5
  .pull-right
6
6
  = link_to edit_page_widget_asset_path(id: asset.id, widget_id: widget.id, page_id: page.id), remote: true, class: "btn btn-link btn-xs" do
7
7
  %i.fa.fa-pencil.text-muted
8
- = link_to page_widget_asset_path(id: asset.id, widget_id: widget.id, page_id: page.id), method: "delete", confirm: t('quadro.confirmation.slide'), remote: true, class: "btn btn-link btn-xs" do
8
+ = link_to page_widget_asset_path(id: asset.id, widget_id: widget.id, page_id: page.id), method: "delete", data: { confirm: t('quadro.confirmation.slide') }, remote: true, class: "btn btn-link btn-xs" do
9
9
  %i.fa.fa-trash-o.text-danger
@@ -8,9 +8,9 @@
8
8
  = link_to root_path, class: 'navbar-brand' do
9
9
  = Quadro.config.site
10
10
  #navigation.collapse.navbar-collapse
11
- = navigation_for root, class: "nav navbar-nav navbar-right"
12
11
  - unless user_signed_in?
13
12
  %ul.nav.navbar-nav.navbar-right
14
13
  %li
15
14
  = link_to new_user_session_path, rel: "nofollow" do
16
- = t('quadro.navigation.sign_in')
15
+ = t('navigation.sign_in')
16
+ = navigation_for root, class: "nav navbar-nav navbar-right"
@@ -14,7 +14,7 @@
14
14
  = link_to edit_page_path(page.slug), remote: true, id: "quadro-edit", class: "btn btn-default btn-sm" do
15
15
  %i.fa.fa-pencil
16
16
  %span.hidden-xs.hidden-sm= t('quadro.toolbar.edit')
17
- = link_to page_path(page.slug), remote: true, method: "delete", confirm: t('quadro.confirmation.page'), id: "quadro-delete", class: "btn btn-default btn-sm" do
17
+ = link_to page_path(page.slug), remote: true, method: "delete", data: { confirm: t('quadro.confirmation.page') }, id: "quadro-delete", class: "btn btn-default btn-sm" do
18
18
  %i.fa.fa-trash-o.text-danger
19
19
  %span.hidden-xs.hidden-sm.text-danger= t('quadro.toolbar.delete')
20
20
  - unless page.is_root?
@@ -44,7 +44,7 @@
44
44
  %ul.dropdown-menu
45
45
  - unless Rails.env.development?
46
46
  %li
47
- = link_to sitemap_notifier_path, remote: true do
47
+ = link_to ping_path, remote: true do
48
48
  %i.fa.fa-sitemap
49
49
  = t('quadro.toolbar.sitemap')
50
50
  %li
@@ -21,3 +21,5 @@
21
21
  = widget_for :video, type: :video
22
22
 
23
23
  = render subpages
24
+
25
+ = paginate subpages
@@ -0,0 +1,18 @@
1
+ xml.instruct! :xml, version: "1.0", encoding: "utf-8"
2
+ xml.urlset xmlns: "http://www.sitemaps.org/schemas/sitemap/0.9" do
3
+ xml.url do
4
+ xml.loc root_url
5
+ xml.lastmod l(root.updated_at, format: :sitemap, locale: :en)
6
+ xml.changefreq root.frequency
7
+ xml.priority root.priority
8
+ end
9
+
10
+ root.descendants.published.ordered.each do |page|
11
+ xml.url do
12
+ xml.loc page_url(page)
13
+ xml.lastmod l(page.updated_at, format: :sitemap, locale: :en)
14
+ xml.changefreq page.frequency
15
+ xml.priority page.priority
16
+ end
17
+ end
18
+ end
@@ -5,8 +5,8 @@ SimpleForm.setup do |config|
5
5
  # wrapper, change the order or even add your own to the
6
6
  # stack. The options given below are used to wrap the
7
7
  # whole input.
8
- config.wrappers :default, :class => :input,
9
- :hint_class => :field_with_hint, :error_class => :field_with_errors do |b|
8
+ config.wrappers :default, class: :input,
9
+ hint_class: :field_with_hint, error_class: :field_with_errors do |b|
10
10
  ## Extensions enabled by default
11
11
  # Any of these extensions can be disabled for a
12
12
  # given input by passing: `f.input EXTENSION_NAME => false`.
@@ -18,13 +18,13 @@ SimpleForm.setup do |config|
18
18
  b.use :html5
19
19
 
20
20
  # Calculates placeholders automatically from I18n
21
- # You can also pass a string as f.input :placeholder => "Placeholder"
21
+ # You can also pass a string as f.input placeholder: "Placeholder"
22
22
  b.use :placeholder
23
23
 
24
24
  ## Optional extensions
25
- # They are disabled unless you pass `f.input EXTENSION_NAME => :lookup`
25
+ # They are disabled unless you pass `f.input EXTENSION_NAME => true`
26
26
  # to the input. If so, they will retrieve the values from the model
27
- # if any exists. If you want to enable the lookup for any of those
27
+ # if any exists. If you want to enable any of those
28
28
  # extensions by default, you can change `b.optional` to `b.use`.
29
29
 
30
30
  # Calculates maxlength from length validations for string inputs
@@ -41,8 +41,14 @@ SimpleForm.setup do |config|
41
41
 
42
42
  ## Inputs
43
43
  b.use :label_input
44
- b.use :hint, :wrap_with => { :tag => :span, :class => :hint }
45
- b.use :error, :wrap_with => { :tag => :span, :class => :error }
44
+ b.use :hint, wrap_with: { tag: :span, class: :hint }
45
+ b.use :error, wrap_with: { tag: :span, class: :error }
46
+
47
+ ## full_messages_for
48
+ # If you want to display the full error message for the attribute, you can
49
+ # use the component :full_error, like:
50
+ #
51
+ # b.use :full_error, wrap_with: { tag: :span, class: :error }
46
52
  end
47
53
 
48
54
  # The default wrapper to be used by the FormBuilder.
@@ -50,8 +56,8 @@ SimpleForm.setup do |config|
50
56
 
51
57
  # Define the way to render check boxes / radio buttons with labels.
52
58
  # Defaults to :nested for bootstrap config.
53
- # :inline => input + label
54
- # :nested => label > input
59
+ # inline: input + label
60
+ # nested: label > input
55
61
  config.boolean_style = :nested
56
62
 
57
63
  # Default class for buttons
@@ -66,7 +72,7 @@ SimpleForm.setup do |config|
66
72
  config.error_notification_tag = :div
67
73
 
68
74
  # CSS class to add for error notification helper.
69
- config.error_notification_class = 'alert alert-error'
75
+ config.error_notification_class = 'error_notification'
70
76
 
71
77
  # ID to add for error notification helper.
72
78
  # config.error_notification_id = nil
@@ -84,21 +90,21 @@ SimpleForm.setup do |config|
84
90
  # config.collection_wrapper_class = nil
85
91
 
86
92
  # You can wrap each item in a collection of radio/check boxes with a tag,
87
- # defaulting to :span. Please note that when using :boolean_style = :nested,
88
- # SimpleForm will force this option to be a label.
93
+ # defaulting to :span.
89
94
  # config.item_wrapper_tag = :span
90
95
 
91
96
  # You can define a class to use in all item wrappers. Defaulting to none.
92
97
  # config.item_wrapper_class = nil
93
98
 
94
99
  # How the label text should be generated altogether with the required text.
95
- # config.label_text = lambda { |label, required| "#{required} #{label}" }
100
+ # config.label_text = lambda { |label, required, explicit_label| "#{required} #{label}" }
96
101
 
97
102
  # You can define the class to use on all labels. Default is nil.
98
- config.label_class = 'control-label'
103
+ # config.label_class = nil
99
104
 
100
- # You can define the class to use on all forms. Default is simple_form.
101
- # config.form_class = :simple_form
105
+ # You can define the default class to be used on forms. Can be overriden
106
+ # with `html: { :class }`. Defaulting to none.
107
+ # config.default_form_class = nil
102
108
 
103
109
  # You can define which elements should obtain additional classes
104
110
  # config.generate_additional_classes_for = [:wrapper, :label, :input]
@@ -106,9 +112,12 @@ SimpleForm.setup do |config|
106
112
  # Whether attributes are required by default (or not). Default is true.
107
113
  # config.required_by_default = true
108
114
 
109
- # Tell browsers whether to use default HTML5 validations (novalidate option).
110
- # Default is enabled.
111
- config.browser_validations = true
115
+ # Tell browsers whether to use the native HTML5 validations (novalidate form option).
116
+ # These validations are enabled in SimpleForm's internal config but disabled by default
117
+ # in this configuration, which is recommended due to some quirks from different browsers.
118
+ # To stop SimpleForm from generating the novalidate option, enabling the HTML5 validations,
119
+ # change this configuration to true.
120
+ config.browser_validations = false
112
121
 
113
122
  # Collection of methods to detect if a file type was given.
114
123
  # config.file_methods = [ :mounted_as, :file?, :public_filename ]
@@ -120,7 +129,11 @@ SimpleForm.setup do |config|
120
129
 
121
130
  # Custom wrappers for input types. This should be a hash containing an input
122
131
  # type as key and the wrapper that will be used for all inputs with specified type.
123
- # config.wrapper_mappings = { :string => :prepend }
132
+ # config.wrapper_mappings = { string: :prepend }
133
+
134
+ # Namespaces where SimpleForm should look for custom input classes that
135
+ # override default inputs.
136
+ # config.custom_inputs_namespaces << "CustomInputs"
124
137
 
125
138
  # Default priority for time_zone inputs.
126
139
  # config.time_zone_priority = nil
@@ -128,9 +141,6 @@ SimpleForm.setup do |config|
128
141
  # Default priority for country inputs.
129
142
  # config.country_priority = nil
130
143
 
131
- # Default size for text inputs.
132
- # config.default_input_size = 50
133
-
134
144
  # When false, do not use translations for labels.
135
145
  # config.translate_labels = true
136
146
 
@@ -139,4 +149,17 @@ SimpleForm.setup do |config|
139
149
 
140
150
  # Cache SimpleForm inputs discovery
141
151
  # config.cache_discovery = !Rails.env.development?
152
+
153
+ # Default class for inputs
154
+ # config.input_class = nil
155
+
156
+ # Define the default class of the input wrapper of the boolean input.
157
+ config.boolean_label_class = 'checkbox'
158
+
159
+ # Defines if the default input wrapper class should be included in radio
160
+ # collection wrappers.
161
+ # config.include_default_input_wrapper_class = true
162
+
163
+ # Defines which i18n scope will be used in Simple Form.
164
+ # config.i18n_scope = 'simple_form'
142
165
  end